diff options
275 files changed, 9025 insertions, 3652 deletions
@@ -1,3 +1,78 @@ +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. @@ -456,14 +456,9 @@ else LIB_SYMLINK = lib32 endif +# Populating the staging with the base directories is handled by the skeleton package $(STAGING_DIR): - @mkdir -p $(STAGING_DIR)/bin - @mkdir -p $(STAGING_DIR)/lib - @ln -snf lib $(STAGING_DIR)/$(LIB_SYMLINK) - @mkdir -p $(STAGING_DIR)/usr/lib - @ln -snf lib $(STAGING_DIR)/usr/$(LIB_SYMLINK) - @mkdir -p $(STAGING_DIR)/usr/include - @mkdir -p $(STAGING_DIR)/usr/bin + @mkdir -p $(STAGING_DIR) @ln -snf $(STAGING_DIR) $(BASE_DIR)/staging RSYNC_VCS_EXCLUSIONS = \ diff --git a/arch/Config.in.powerpc b/arch/Config.in.powerpc index 95bcaeefe6..8581a4d10d 100644 --- a/arch/Config.in.powerpc +++ b/arch/Config.in.powerpc @@ -200,6 +200,8 @@ config BR2_GCC_TARGET_CPU 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 diff --git a/board/arm/foundation-v8/readme.txt b/board/arm/foundation-v8/readme.txt index f6d06988fb..5406ed3b13 100644 --- a/board/arm/foundation-v8/readme.txt +++ b/board/arm/foundation-v8/readme.txt @@ -3,14 +3,14 @@ ARM software simulator of the AArch64 architecture. First, one has to download the AArch64 software simulator from: - https://silver.arm.com/download/download.tm?pv=1509509 + https://silver.arm.com/download/download.tm?pv=2482590 Then, use the arm_foundationv8_defconfig configuration to build your Buildroot system. Finally, boot your system with: - ${LOCATION_OF_FOUNDATIONV8_SIMULATOR}/Foundation_v8 \ + ${LOCATION_OF_FOUNDATIONV8_SIMULATOR}/models/Linux64_GCC-4.1/Foundation_Platform \ --image output/images/linux-system.axf \ --block-device output/images/rootfs.ext2 \ --network=nat diff --git a/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch b/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch index 1971503d47..6dae31ea89 100644 --- a/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch +++ b/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch @@ -11,7 +11,7 @@ diff --git a/include/configs/zynq_zed.h b/include/configs/zynq_zed.h index 946de95..2400a88 100644 --- a/include/configs/zynq_zed.h +++ b/include/configs/zynq_zed.h -@@ -24,4 +24,29 @@ +@@ -24,4 +24,28 @@ #include <configs/zynq-common.h> @@ -20,7 +20,7 @@ index 946de95..2400a88 100644 + "envload=mmc info && if fatload mmc 0 0x1000 uEnv.txt;"\ + " then echo Importing uEnv.txt; env import -t 0x1000" \ + " $filesize; fi;\0" \ -+ "bootcmd=run $modeboot\0" \ ++ "bootcmd=run envload; run $modeboot\0" \ + "modeboot=sdboot\0" \ + "baudrate=115200\0" \ + "bootenv=uEnv.txt\0" \ @@ -28,8 +28,7 @@ index 946de95..2400a88 100644 + "kernel_image=uImage\0" \ + "ramdisk_image=rootfs.cpio.uboot\0" \ + "fpga_image=system.bit\0" \ -+ "sdboot=echo Booting from SD...;" \ -+ " run envload; run fpgaboot;" \ ++ "sdboot=echo Booting from SD...; run fpgaboot;" \ + " fatload mmc 0 0x1000000 ${kernel_image}" \ + " && fatload mmc 0 0x2000000 ${ramdisk_image}" \ + " && fatload mmc 0 0x3000000 ${devicetree_image}" \ diff --git a/board/qemu/aarch64-virt/linux-4.2.config b/board/qemu/aarch64-virt/linux-4.3.config index 93cb42f2ea..93cb42f2ea 100644 --- a/board/qemu/aarch64-virt/linux-4.2.config +++ b/board/qemu/aarch64-virt/linux-4.3.config diff --git a/board/qemu/aarch64-virt/readme.txt b/board/qemu/aarch64-virt/readme.txt index 097760c624..d43fe09f75 100644 --- a/board/qemu/aarch64-virt/readme.txt +++ b/board/qemu/aarch64-virt/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/arm-nuri/readme.txt b/board/qemu/arm-nuri/readme.txt index d7a642828d..df07a5c3a2 100644 --- a/board/qemu/arm-nuri/readme.txt +++ b/board/qemu/arm-nuri/readme.txt @@ -8,4 +8,4 @@ graphical window is the framebuffer. Startup time is slow because of the SMP CPU emulation so be patient. This emulation is known to be flaky. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/arm-versatile/linux-4.2.config b/board/qemu/arm-versatile/linux-4.3.config index 9a1ae58c2d..9a1ae58c2d 100644 --- a/board/qemu/arm-versatile/linux-4.2.config +++ b/board/qemu/arm-versatile/linux-4.3.config diff --git a/board/qemu/arm-versatile/readme.txt b/board/qemu/arm-versatile/readme.txt index af65d05ec1..1812994219 100644 --- a/board/qemu/arm-versatile/readme.txt +++ b/board/qemu/arm-versatile/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/arm-vexpress/readme.txt b/board/qemu/arm-vexpress/readme.txt index c8f24be12f..a3dc6e4999 100644 --- a/board/qemu/arm-vexpress/readme.txt +++ b/board/qemu/arm-vexpress/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/microblazebe-mmu/linux-4.2.config b/board/qemu/microblazebe-mmu/linux-4.3.config index 6b4ff22279..7bcd382060 100644 --- a/board/qemu/microblazebe-mmu/linux-4.2.config +++ b/board/qemu/microblazebe-mmu/linux-4.3.config @@ -17,3 +17,4 @@ CONFIG_XILINX_EMACLITE=y CONFIG_SERIAL_UARTLITE=y CONFIG_SERIAL_UARTLITE_CONSOLE=y # CONFIG_VGA_CONSOLE is not set +CONFIG_TMPFS=y diff --git a/board/qemu/microblazebe-mmu/readme.txt b/board/qemu/microblazebe-mmu/readme.txt index 9f93ab57da..9ade6fb3d7 100644 --- a/board/qemu/microblazebe-mmu/readme.txt +++ b/board/qemu/microblazebe-mmu/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/microblazeel-mmu/linux-4.2.config b/board/qemu/microblazeel-mmu/linux-4.3.config index c7d6b305ba..a6228280bd 100644 --- a/board/qemu/microblazeel-mmu/linux-4.2.config +++ b/board/qemu/microblazeel-mmu/linux-4.3.config @@ -16,3 +16,4 @@ CONFIG_XILINX_EMACLITE=y CONFIG_SERIAL_UARTLITE=y CONFIG_SERIAL_UARTLITE_CONSOLE=y # CONFIG_VGA_CONSOLE is not set +CONFIG_TMPFS=y diff --git a/board/qemu/microblazeel-mmu/readme.txt b/board/qemu/microblazeel-mmu/readme.txt index 230527da24..005ea63961 100644 --- a/board/qemu/microblazeel-mmu/readme.txt +++ b/board/qemu/microblazeel-mmu/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/mips-malta/linux-4.2.config b/board/qemu/mips-malta/linux-4.3.config index 3a26ac830f..3a26ac830f 100644 --- a/board/qemu/mips-malta/linux-4.2.config +++ b/board/qemu/mips-malta/linux-4.3.config diff --git a/board/qemu/mips-malta/readme.txt b/board/qemu/mips-malta/readme.txt index 2c960597a8..96c952c669 100644 --- a/board/qemu/mips-malta/readme.txt +++ b/board/qemu/mips-malta/readme.txt @@ -6,4 +6,4 @@ The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. No keyboard support has been enabled. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/mips64-malta/linux-4.2.config b/board/qemu/mips64-malta/linux-4.3.config index cd0b560634..cd0b560634 100644 --- a/board/qemu/mips64-malta/linux-4.2.config +++ b/board/qemu/mips64-malta/linux-4.3.config diff --git a/board/qemu/mips64-malta/readme.txt b/board/qemu/mips64-malta/readme.txt index 80c9310e13..9aa7aa1bbc 100644 --- a/board/qemu/mips64-malta/readme.txt +++ b/board/qemu/mips64-malta/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/mips64el-malta/linux-4.2.config b/board/qemu/mips64el-malta/linux-4.3.config index c6b46d4d7f..c6b46d4d7f 100644 --- a/board/qemu/mips64el-malta/linux-4.2.config +++ b/board/qemu/mips64el-malta/linux-4.3.config diff --git a/board/qemu/mips64el-malta/readme.txt b/board/qemu/mips64el-malta/readme.txt index 82ab88358f..d6da29bcec 100644 --- a/board/qemu/mips64el-malta/readme.txt +++ b/board/qemu/mips64el-malta/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/mipsel-malta/linux-4.2.config b/board/qemu/mipsel-malta/linux-4.3.config index 79d7352474..79d7352474 100644 --- a/board/qemu/mipsel-malta/linux-4.2.config +++ b/board/qemu/mipsel-malta/linux-4.3.config diff --git a/board/qemu/mipsel-malta/readme.txt b/board/qemu/mipsel-malta/readme.txt index a77eb88625..7dbb50bb7f 100644 --- a/board/qemu/mipsel-malta/readme.txt +++ b/board/qemu/mipsel-malta/readme.txt @@ -6,4 +6,4 @@ The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. No keyboard support has been enabled. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/ppc-g3beige/linux-4.2.config b/board/qemu/ppc-g3beige/linux-4.3.config index 7994553544..7994553544 100644 --- a/board/qemu/ppc-g3beige/linux-4.2.config +++ b/board/qemu/ppc-g3beige/linux-4.3.config diff --git a/board/qemu/ppc-g3beige/readme.txt b/board/qemu/ppc-g3beige/readme.txt index cd358b3880..fd19b687b3 100644 --- a/board/qemu/ppc-g3beige/readme.txt +++ b/board/qemu/ppc-g3beige/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/ppc-mpc8544ds/linux-4.3.config b/board/qemu/ppc-mpc8544ds/linux-4.3.config new file mode 100644 index 0000000000..b36847c93d --- /dev/null +++ b/board/qemu/ppc-mpc8544ds/linux-4.3.config @@ -0,0 +1,38 @@ +CONFIG_PPC_85xx=y +CONFIG_PHYS_64BIT=y +CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio" +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MPC8540_ADS=y +CONFIG_MPC85xx_DS=y +CONFIG_HIGHMEM=y +CONFIG_MATH_EMULATION=y +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_MSI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_NETDEVICES=y +CONFIG_E1000=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=6 +CONFIG_SERIAL_8250_RUNTIME_UARTS=6 +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_FSL=y +CONFIG_USB_OHCI_HCD=y +CONFIG_TMPFS=y diff --git a/board/qemu/ppc-mpc8544ds/readme.txt b/board/qemu/ppc-mpc8544ds/readme.txt index 8a3374f0f0..0ade52ca75 100644 --- a/board/qemu/ppc-mpc8544ds/readme.txt +++ b/board/qemu/ppc-mpc8544ds/readme.txt @@ -4,5 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.0.2 -QEMU 2.1.x and 2.2.x are known broken. +Tested with QEMU 2.3.0 diff --git a/board/qemu/ppc-virtex-ml507/linux-4.2.config b/board/qemu/ppc-virtex-ml507/linux-4.3.config index ed4eb792b6..ed4eb792b6 100644 --- a/board/qemu/ppc-virtex-ml507/linux-4.2.config +++ b/board/qemu/ppc-virtex-ml507/linux-4.3.config diff --git a/board/qemu/ppc-virtex-ml507/readme.txt b/board/qemu/ppc-virtex-ml507/readme.txt index 0cf1f9d266..a25ed482bd 100644 --- a/board/qemu/ppc-virtex-ml507/readme.txt +++ b/board/qemu/ppc-virtex-ml507/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/ppc64-pseries/readme.txt b/board/qemu/ppc64-pseries/readme.txt index 718da6fb15..0dd1682134 100644 --- a/board/qemu/ppc64-pseries/readme.txt +++ b/board/qemu/ppc64-pseries/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/sh4-r2d/linux-4.2.config b/board/qemu/sh4-r2d/linux-4.3.config index a3d6544549..a3d6544549 100644 --- a/board/qemu/sh4-r2d/linux-4.2.config +++ b/board/qemu/sh4-r2d/linux-4.3.config diff --git a/board/qemu/sh4-r2d/readme.txt b/board/qemu/sh4-r2d/readme.txt index b7476b936a..d877bbff7b 100644 --- a/board/qemu/sh4-r2d/readme.txt +++ b/board/qemu/sh4-r2d/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/sh4eb-r2d/linux-4.2.config b/board/qemu/sh4eb-r2d/linux-4.3.config index 6ead626c41..6ead626c41 100644 --- a/board/qemu/sh4eb-r2d/linux-4.2.config +++ b/board/qemu/sh4eb-r2d/linux-4.3.config diff --git a/board/qemu/sh4eb-r2d/readme.txt b/board/qemu/sh4eb-r2d/readme.txt index 23198ba2e4..7f5eec4fd3 100644 --- a/board/qemu/sh4eb-r2d/readme.txt +++ b/board/qemu/sh4eb-r2d/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.4.0.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/sparc-ss10/linux-4.2.config b/board/qemu/sparc-ss10/linux-4.3.config index cb8d01dc02..cb8d01dc02 100644 --- a/board/qemu/sparc-ss10/linux-4.2.config +++ b/board/qemu/sparc-ss10/linux-4.3.config diff --git a/board/qemu/sparc-ss10/readme.txt b/board/qemu/sparc-ss10/readme.txt index 1972a117bc..1e2738077f 100644 --- a/board/qemu/sparc-ss10/readme.txt +++ b/board/qemu/sparc-ss10/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/sparc64-sun4u/linux-4.1.config b/board/qemu/sparc64-sun4u/linux-4.3.config index 2b282f9ae4..0e1e16879d 100644 --- a/board/qemu/sparc64-sun4u/linux-4.1.config +++ b/board/qemu/sparc64-sun4u/linux-4.3.config @@ -1,4 +1,3 @@ -# CONFIG_SWAP is not set CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_NO_HZ_IDLE=y @@ -16,11 +15,10 @@ CONFIG_BLK_DEV_SD=y CONFIG_ATA=y CONFIG_PATA_CMD64X=y CONFIG_NETDEVICES=y -CONFIG_NE2K_PCI=y +CONFIG_E1000=y CONFIG_SERIAL_SUNSU=y CONFIG_SERIAL_SUNSU_CONSOLE=y CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_TMPFS=y CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf-8" diff --git a/board/qemu/sparc64-sun4u/readme.txt b/board/qemu/sparc64-sun4u/readme.txt index 90d1edc29e..9b37394596 100644 --- a/board/qemu/sparc64-sun4u/readme.txt +++ b/board/qemu/sparc64-sun4u/readme.txt @@ -1,6 +1,6 @@ Run the emulation with: - qemu-system-sparc64 -M sun4u -kernel output/images/vmlinux -append "root=/dev/sda console=ttyS0,115200" -serial stdio output/images/rootfs.ext2 + qemu-system-sparc64 -M sun4u -kernel output/images/vmlinux -append "root=/dev/sda console=ttyS0,115200" -serial stdio output/images/rootfs.ext2 -net nic,model=e1000 -net user The login prompt will appear in the terminal that started Qemu. diff --git a/board/qemu/x86/linux-4.2.config b/board/qemu/x86/linux-4.3.config index 20726c3dc4..20726c3dc4 100644 --- a/board/qemu/x86/linux-4.2.config +++ b/board/qemu/x86/linux-4.3.config diff --git a/board/qemu/x86/readme.txt b/board/qemu/x86/readme.txt index 85d5c60254..daf62f4fee 100644 --- a/board/qemu/x86/readme.txt +++ b/board/qemu/x86/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the graphical window. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/x86_64/linux-4.2.config b/board/qemu/x86_64/linux-4.3.config index 20726c3dc4..20726c3dc4 100644 --- a/board/qemu/x86_64/linux-4.2.config +++ b/board/qemu/x86_64/linux-4.3.config diff --git a/board/qemu/x86_64/readme.txt b/board/qemu/x86_64/readme.txt index d397a79f09..cfd52eec25 100644 --- a/board/qemu/x86_64/readme.txt +++ b/board/qemu/x86_64/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the graphical window. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/board/qemu/xtensa-lx60/linux-4.2.config b/board/qemu/xtensa-lx60/linux-4.3.config index 51701b20a1..51701b20a1 100644 --- a/board/qemu/xtensa-lx60/linux-4.2.config +++ b/board/qemu/xtensa-lx60/linux-4.3.config diff --git a/board/qemu/xtensa-lx60/readme.txt b/board/qemu/xtensa-lx60/readme.txt index 2dad34a75d..04393ea2b0 100644 --- a/board/qemu/xtensa-lx60/readme.txt +++ b/board/qemu/xtensa-lx60/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.2.1 +Tested with QEMU 2.3.0 diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk index 66e728f79d..0e3f808f7e 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -72,9 +72,11 @@ UBOOT_BIN_IFT = $(UBOOT_BIN).ift endif # The kernel calls AArch64 'arm64', but U-Boot calls it just 'arm', so -# we have to special case it. +# 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 diff --git a/configs/arm_foundationv8_defconfig b/configs/arm_foundationv8_defconfig index dbaf3d6865..2deb333eed 100644 --- a/configs/arm_foundationv8_defconfig +++ b/configs/arm_foundationv8_defconfig @@ -1,5 +1,7 @@ BR2_aarch64=y -BR2_TOOLCHAIN_EXTERNAL=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="3.13" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_13=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y diff --git a/configs/qemu_aarch64_virt_defconfig b/configs/qemu_aarch64_virt_defconfig index 23bd9b2939..a695afb9f6 100644 --- a/configs/qemu_aarch64_virt_defconfig +++ b/configs/qemu_aarch64_virt_defconfig @@ -2,20 +2,21 @@ BR2_aarch64=y # System +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" # Filesystem # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux-4.3.config" diff --git a/configs/qemu_arm_nuri_defconfig b/configs/qemu_arm_nuri_defconfig index dad86382f6..0854ae05c0 100644 --- a/configs/qemu_arm_nuri_defconfig +++ b/configs/qemu_arm_nuri_defconfig @@ -5,8 +5,6 @@ BR2_ARM_ENABLE_NEON=y BR2_ARM_FPU_VFPV3D16=y # System -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y -BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttySAC1" # Filesystem @@ -16,12 +14,12 @@ BR2_TARGET_ROOTFS_INITRAMFS=y # Lock to 3.10 headers to avoid breaking with newer kernels # Stuck at 3.10.x because there's no Nuri DTS BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="3.10.87" +BR2_DEFAULT_KERNEL_VERSION="3.10.92" BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.10.87" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.10.92" BR2_LINUX_KERNEL_DEFCONFIG="exynos4" BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/configs/qemu_arm_versatile_defconfig b/configs/qemu_arm_versatile_defconfig index 9a69c4972f..1ac59fd379 100644 --- a/configs/qemu_arm_versatile_defconfig +++ b/configs/qemu_arm_versatile_defconfig @@ -2,23 +2,23 @@ BR2_arm=y BR2_arm926t=y -# system -BR2_TARGET_GENERIC_GETTY=y +# System +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" -# filesystem +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arm-versatile/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arm-versatile/linux-4.3.config" BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/configs/qemu_arm_vexpress_defconfig b/configs/qemu_arm_vexpress_defconfig index 135812a407..5f1a997b30 100644 --- a/configs/qemu_arm_vexpress_defconfig +++ b/configs/qemu_arm_vexpress_defconfig @@ -5,23 +5,22 @@ BR2_ARM_ENABLE_NEON=y BR2_ARM_FPU_VFPV3D16=y # System -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y -BR2_TARGET_GENERIC_GETTY=y +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" # Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_DEFCONFIG="vexpress" BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y diff --git a/configs/qemu_microblazebe_mmu_defconfig b/configs/qemu_microblazebe_mmu_defconfig index f623f6c463..e8fcaecbad 100644 --- a/configs/qemu_microblazebe_mmu_defconfig +++ b/configs/qemu_microblazebe_mmu_defconfig @@ -3,22 +3,23 @@ BR2_microblaze=y BR2_microblazebe=y # System +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" # Filesystem # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux-4.3.config" BR2_LINUX_KERNEL_LINUX_BIN=y BR2_LINUX_KERNEL_PATCH="board/qemu/microblazebe-mmu/xilinx-xemaclite.patch" diff --git a/configs/qemu_microblazeel_mmu_defconfig b/configs/qemu_microblazeel_mmu_defconfig index 151e2f1f06..01a423ba1d 100644 --- a/configs/qemu_microblazeel_mmu_defconfig +++ b/configs/qemu_microblazeel_mmu_defconfig @@ -3,22 +3,23 @@ BR2_microblaze=y BR2_microblazeel=y # System +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" # Filesystem # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux-4.3.config" BR2_LINUX_KERNEL_LINUX_BIN=y BR2_LINUX_KERNEL_PATCH="board/qemu/microblazeel-mmu/xilinx-xemaclite.patch" diff --git a/configs/qemu_mips64_malta_defconfig b/configs/qemu_mips64_malta_defconfig index 2a2e576a74..736ca708b5 100644 --- a/configs/qemu_mips64_malta_defconfig +++ b/configs/qemu_mips64_malta_defconfig @@ -2,21 +2,24 @@ BR2_mips64=y BR2_MIPS_NABI64=y +# System +BR2_SYSTEM_DHCP="eth0" + # Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64-malta/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64-malta/linux-4.3.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/configs/qemu_mips64el_malta_defconfig b/configs/qemu_mips64el_malta_defconfig index d5f9cc96f1..4c29ed5ba7 100644 --- a/configs/qemu_mips64el_malta_defconfig +++ b/configs/qemu_mips64el_malta_defconfig @@ -2,21 +2,24 @@ BR2_mips64el=y BR2_MIPS_NABI64=y +# System +BR2_SYSTEM_DHCP="eth0" + # Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64el-malta/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64el-malta/linux-4.3.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/configs/qemu_mips_malta_defconfig b/configs/qemu_mips_malta_defconfig index ffd2cbcdf4..4913490aff 100644 --- a/configs/qemu_mips_malta_defconfig +++ b/configs/qemu_mips_malta_defconfig @@ -2,21 +2,24 @@ BR2_mips=y BR2_mips_32r2=y -# filesystem +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips-malta/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips-malta/linux-4.3.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/configs/qemu_mipsel_malta_defconfig b/configs/qemu_mipsel_malta_defconfig index fb6af7334e..f3f513b663 100644 --- a/configs/qemu_mipsel_malta_defconfig +++ b/configs/qemu_mipsel_malta_defconfig @@ -2,21 +2,24 @@ BR2_mipsel=y BR2_mips_32r2=y -# filesystem +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mipsel-malta/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mipsel-malta/linux-4.3.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/configs/qemu_ppc64_pseries_defconfig b/configs/qemu_ppc64_pseries_defconfig index b337b48e02..08d6cbbf5a 100644 --- a/configs/qemu_ppc64_pseries_defconfig +++ b/configs/qemu_ppc64_pseries_defconfig @@ -3,21 +3,21 @@ BR2_powerpc64=y BR2_powerpc_power7=y # System -BR2_TARGET_GENERIC_GETTY=y +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="hvc0" # Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_DEFCONFIG="pseries" BR2_LINUX_KERNEL_VMLINUX=y diff --git a/configs/qemu_ppc_g3beige_defconfig b/configs/qemu_ppc_g3beige_defconfig index 538decb5de..a344f53f1f 100644 --- a/configs/qemu_ppc_g3beige_defconfig +++ b/configs/qemu_ppc_g3beige_defconfig @@ -2,21 +2,24 @@ BR2_powerpc=y BR2_powerpc_750=y -# filesystem +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-g3beige/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-g3beige/linux-4.3.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/configs/qemu_ppc_mpc8544ds_defconfig b/configs/qemu_ppc_mpc8544ds_defconfig index d6b8786e69..f89fcca3aa 100644 --- a/configs/qemu_ppc_mpc8544ds_defconfig +++ b/configs/qemu_ppc_mpc8544ds_defconfig @@ -2,20 +2,24 @@ BR2_powerpc=y BR2_powerpc_8548=y -# filesystem +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" -BR2_LINUX_KERNEL_DEFCONFIG="mpc85xx" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-mpc8544ds/linux-4.3.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/configs/qemu_ppc_virtex_ml507_defconfig b/configs/qemu_ppc_virtex_ml507_defconfig index d82c2dd3be..71f1492d5c 100644 --- a/configs/qemu_ppc_virtex_ml507_defconfig +++ b/configs/qemu_ppc_virtex_ml507_defconfig @@ -6,10 +6,10 @@ BR2_powerpc_440=y # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Use soft float BR2_SOFT_FLOAT=y @@ -17,9 +17,9 @@ BR2_SOFT_FLOAT=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-virtex-ml507/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-virtex-ml507/linux-4.3.config" BR2_LINUX_KERNEL_VMLINUX=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="virtex440-ml507" diff --git a/configs/qemu_sh4_r2d_defconfig b/configs/qemu_sh4_r2d_defconfig index 951a9a7554..819773849d 100644 --- a/configs/qemu_sh4_r2d_defconfig +++ b/configs/qemu_sh4_r2d_defconfig @@ -2,23 +2,23 @@ BR2_sh=y BR2_sh4=y -# system -BR2_TARGET_GENERIC_GETTY=y +# System +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="ttySC1" -# filesystem +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4-r2d/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4-r2d/linux-4.3.config" BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/configs/qemu_sh4eb_r2d_defconfig b/configs/qemu_sh4eb_r2d_defconfig index 4e6ea97632..1417699221 100644 --- a/configs/qemu_sh4eb_r2d_defconfig +++ b/configs/qemu_sh4eb_r2d_defconfig @@ -2,23 +2,22 @@ BR2_sh=y BR2_sh4eb=y -# system -BR2_TARGET_GENERIC_GETTY=y +# System BR2_TARGET_GENERIC_GETTY_PORT="ttySC1" -# filesystem +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2.3" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2.3" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4eb-r2d/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4eb-r2d/linux-4.3.config" BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/configs/qemu_sparc64_sun4u_defconfig b/configs/qemu_sparc64_sun4u_defconfig index 0bb4b3ec73..00ceb89210 100644 --- a/configs/qemu_sparc64_sun4u_defconfig +++ b/configs/qemu_sparc64_sun4u_defconfig @@ -2,18 +2,21 @@ BR2_sparc64=y BR2_sparc_v9=y -# filesystem +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.1 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.1" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc64-sun4u/linux-4.1.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc64-sun4u/linux-4.3.config" diff --git a/configs/qemu_sparc_ss10_defconfig b/configs/qemu_sparc_ss10_defconfig index aa063ca9a1..6bb1c81b10 100644 --- a/configs/qemu_sparc_ss10_defconfig +++ b/configs/qemu_sparc_ss10_defconfig @@ -2,21 +2,22 @@ BR2_sparc=y BR2_sparc_v8=y -BR2_GLOBAL_PATCH_DIR="board/qemu/sparc-ss10" +# System +BR2_SYSTEM_DHCP="eth0" -# filesystem +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc-ss10/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc-ss10/linux-4.3.config" BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/configs/qemu_x86_64_defconfig b/configs/qemu_x86_64_defconfig index cf877ae6c2..22983bf60e 100644 --- a/configs/qemu_x86_64_defconfig +++ b/configs/qemu_x86_64_defconfig @@ -1,22 +1,22 @@ # Architecture BR2_x86_64=y -# system -BR2_TARGET_GENERIC_GETTY=y +# System +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="tty1" -# filesystem +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux-4.3.config" diff --git a/configs/qemu_x86_defconfig b/configs/qemu_x86_defconfig index 44916721a3..0e1316ddf9 100644 --- a/configs/qemu_x86_defconfig +++ b/configs/qemu_x86_defconfig @@ -2,22 +2,22 @@ BR2_i386=y BR2_x86_pentiumpro=y -# system -BR2_TARGET_GENERIC_GETTY=y +# System +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="tty1" -# filesystem +# Filesystem BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux-4.3.config" diff --git a/configs/qemu_xtensa_lx60_defconfig b/configs/qemu_xtensa_lx60_defconfig index 5c803da11b..42b844c956 100644 --- a/configs/qemu_xtensa_lx60_defconfig +++ b/configs/qemu_xtensa_lx60_defconfig @@ -5,26 +5,28 @@ BR2_XTENSA_CUSTOM_NAME="dc232b" BR2_XTENSA_CORE_NAME="lx60" BR2_XTENSA_OVERLAY_DIR="board/qemu/xtensa-lx60" +# Patches BR2_GLOBAL_PATCH_DIR="board/qemu/xtensa-lx60" # System +BR2_SYSTEM_DHCP="eth0" BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" # Filesystem # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Lock to 4.2 headers to avoid breaking with newer kernels +# Lock to 4.3 headers to avoid breaking with newer kernels BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_DEFAULT_KERNEL_VERSION="4.3" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux-4.3.config" BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y BR2_LINUX_KERNEL_IMAGE_NAME="Image.elf" BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="zImage" diff --git a/docs/manual/download-location.txt b/docs/manual/download-location.txt index cca7e7e13b..0b53f54ca1 100644 --- a/docs/manual/download-location.txt +++ b/docs/manual/download-location.txt @@ -17,7 +17,7 @@ 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 <shared download location> + export BR2_DL_DIR=<shared download location> ----------------- The download location can also be set in the +.config+ file, with the diff --git a/docs/website/about.html b/docs/website/about.html deleted file mode 100644 index 5d7cee30a9..0000000000 --- a/docs/website/about.html +++ /dev/null @@ -1,62 +0,0 @@ -<!--#include file="header.html" --> - -<div class="row"> - <div class="col-sm-6 col-sm-offset-3" style="padding-bottom:10px"> - <img class="center-block" src="images/menuconfig.png" - style="max-width:100%;" - alt="Buildroot menuconfig" border="0"> - </div> -<div class="col-sm-10 col-sm-offset-1"> - -<p>Buildroot is a set of Makefiles and patches that makes it easy to -generate a complete embedded Linux system. Buildroot can generate any -or all of a cross-compilation toolchain, a root filesystem, a kernel -image and a bootloader image. Buildroot is useful mainly for people -working with small or embedded systems, using various CPU -architectures (x86, ARM, MIPS, PowerPC, etc.) : it automates the -building process of your embedded system and eases the -cross-compilation process.</p> - -<p>The major Buildroot features are:</p> - -<ul> - - <li>Can <b>handle everything</b> in your embedded system development - project: cross-compiling toolchain, root filesystem generation, - kernel image compilation and bootloader compilation. Buildroot is - also sufficiently flexible that it can also be used for only one or - several of these steps.</li> - - <li>Is <b>very easy</b> to set up, thanks to its menuconfig, gconfig - and xconfig configuration interfaces, familiar to all embedded Linux - developers. Building a basic embedded Linux system with Buildroot - typically takes 15-30 minutes.</li> - - <li>Supports <b>several hundreds of packages</b> for userspace - applications and libraries: X.org stack, Gtk2, Qt, DirectFB, SDL, - GStreamer and a large number of network-related and system-related - utilities and libraries are supported.</li> - - <li>Supports <b>multiple filesystem types</b> for the root - filesystem image: JFFS2, UBIFS, tarballs, romfs, cramfs, squashfs - and more.</li> - - <li>Can generate an (e)glibc or uClibc cross-compilation toolchain, - or re-use your existing glibc, eglibc or uClibc cross-compilation - toolchain</li> - - <li>Has a <b>simple structure</b> that makes it easy to understand - and extend. It relies only on the well-known Makefile language.</li> - -</ul> - -<p>Buildroot is maintained by <a href= -"mailto:jacmet@uclibc.org">Peter Korsgaard</a>, and licensed under the -<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU -GENERAL PUBLIC LICENSE V2 (Or later)</a>. Stable releases are -delivered every three months.</p> - -</div><!--/.col-sm-10 --> -</div><!--/.row --> - -<!--#include file="footer.html" --> diff --git a/docs/website/contribute.html b/docs/website/contribute.html index f9fdec6bd6..da5700c528 100644 --- a/docs/website/contribute.html +++ b/docs/website/contribute.html @@ -1,38 +1,43 @@ <!--#include file="header.html" --> -<div class="row"> -<div class="col-sm-10 col-sm-offset-1"> - -<h2>Contribute</h2> - -<p>Buildroot is an open source project and you are very welcome to contribute to -it.<br /> -There are many different ways to contribute:</p> - -<ul> -<li>Reproducing, analyzing and fixing bugs from our - <a href="https://bugs.buildroot.org/">bug tracker</a></li> -<li>Analyzing and fixing <a href="http://autobuild.buildroot.org/"> - autobuild failures</a></li> -<li>Reviewing and testing patches sent by other developers. See the - <a href="http://lists.buildroot.org/mailman/listinfo/buildroot">mailing list - </a> or <a href="http://patchwork.ozlabs.org/project/buildroot/list/"> - patchwork</a>.</li> -<li>Working on items from the - <a href="http://www.elinux.org/Buildroot#Todo_list">TODO list</a></li> -<li>Submitting your own patches through the - <a href="http://lists.buildroot.org/mailman/listinfo/buildroot">mailing list - </a></li> -</ul> - -<p>For more details on these topics, check out the -<a href="http://buildroot.org/manual.html#_contributing_to_buildroot"> -Contributing to buildroot</a> chapter in the Buildroot manual. Thanks for your help!</p> - -<p>If you need any support yourself, have a look at <a href="./support.html"> -Support</a>.</p> +<div class="container"> +<div class="row nh"> +<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12"> + + <div class="panel panel-primary"> + <div class="panel-heading">Contribute</div> + <div class="panel-body"> + <p>Buildroot is an open source project and you are very welcome to contribute to + it.<br /> + There are many different ways to contribute:</p> + + <ul> + <li>Reproducing, analyzing and fixing bugs from our + <a href="https://bugs.buildroot.org/">bug tracker</a></li> + <li>Analyzing and fixing <a href="http://autobuild.buildroot.org/"> + autobuild failures</a></li> + <li>Reviewing and testing patches sent by other developers. See the + <a href="http://lists.buildroot.org/mailman/listinfo/buildroot">mailing list + </a> or <a href="http://patchwork.ozlabs.org/project/buildroot/list/"> + patchwork</a>.</li> + <li>Working on items from the + <a href="http://www.elinux.org/Buildroot#Todo_list">TODO list</a></li> + <li>Submitting your own patches through the + <a href="http://lists.buildroot.org/mailman/listinfo/buildroot">mailing list + </a></li> + </ul> + + <p>For more details on these topics, check out the + <a href="http://buildroot.org/manual.html#_contributing_to_buildroot"> + Contributing to buildroot</a> chapter in the Buildroot manual. Thanks for your help!</p> + + <p>If you need any support yourself, have a look at <a href="./support.html"> + Support</a>.</p> + </div> + </div> </div><!--/.col-sm-10 --> </div><!--/.row --> +</div> <!--#include file="footer.html" --> diff --git a/docs/website/css/bootstrap.min.css b/docs/website/css/bootstrap.min.css deleted file mode 100644 index 6b15b2deec..0000000000 --- a/docs/website/css/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -@import url(//fonts.googleapis.com/css?family=Telex);/*! - * bootswatch v3.3.0 - * Homepage: http://bootswatch.com - * Copyright 2012-2014 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:'Telex',sans-serif;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2fa4e7;text-decoration:none}a:hover,a:focus{color:#157ab5;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:'Telex',sans-serif;font-weight:bold;line-height:1.1;color:#317eac}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#2fa4e7}a.text-primary:hover{color:#178acc}.text-success{color:#468847}a.text-success:hover{color:#356635}.text-info{color:#3a87ad}a.text-info:hover{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover{color:#953b39}.bg-primary{color:#fff;background-color:#2fa4e7}a.bg-primary:hover{background-color:#178acc}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#555555;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#555555}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eeeeee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:38px;line-height:1.42857143 \0}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm{line-height:30px;line-height:1.5 \0}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg{line-height:54px;line-height:1.33 \0}_:-ms-fullscreen,:root input[type="date"],_:-ms-fullscreen,:root input[type="time"],_:-ms-fullscreen,:root input[type="datetime-local"],_:-ms-fullscreen,:root input[type="month"]{line-height:1.42857143}_:-ms-fullscreen.input-sm,:root input[type="date"].input-sm,_:-ms-fullscreen.input-sm,:root input[type="time"].input-sm,_:-ms-fullscreen.input-sm,:root input[type="datetime-local"].input-sm,_:-ms-fullscreen.input-sm,:root input[type="month"].input-sm{line-height:1.5}_:-ms-fullscreen.input-lg,:root input[type="date"].input-lg,_:-ms-fullscreen.input-lg,:root input[type="time"].input-lg,_:-ms-fullscreen.input-lg,:root input[type="datetime-local"].input-lg,_:-ms-fullscreen.input-lg,:root input[type="month"].input-lg{line-height:1.33}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,select.form-group-lg .form-control{height:54px;line-height:54px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.62px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#555555;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#555555;background-color:#ffffff;border-color:rgba(0,0,0,0.1)}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#555555;background-color:#e6e6e6;border-color:rgba(0,0,0,0.1)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:rgba(0,0,0,0.1)}.btn-default .badge{color:#ffffff;background-color:#555555}.btn-primary{color:#ffffff;background-color:#2fa4e7;border-color:#2fa4e7}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#178acc;border-color:#1684c2}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2fa4e7;border-color:#2fa4e7}.btn-primary .badge{color:#2fa4e7;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#73a839;border-color:#73a839}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#59822c;border-color:#547a29}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#73a839;border-color:#73a839}.btn-success .badge{color:#73a839;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#033c73;border-color:#033c73}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#022241;border-color:#011d37}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#033c73;border-color:#033c73}.btn-info .badge{color:#033c73;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#dd5600;border-color:#dd5600}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#aa4200;border-color:#a03e00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#dd5600;border-color:#dd5600}.btn-warning .badge{color:#dd5600;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#c71c22;border-color:#c71c22}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#9a161a;border-color:#911419}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#c71c22;border-color:#c71c22}.btn-danger .badge{color:#c71c22;background-color:#ffffff}.btn-link{color:#2fa4e7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#157ab5;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#2fa4e7}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2fa4e7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#2fa4e7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2fa4e7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#2fa4e7;border-color:#1995dc}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#dddddd}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#dddddd;background-color:transparent}.navbar-default .navbar-toggle{border-color:#178acc}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#178acc}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#1995dc}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#178acc;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#dddddd;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#dddddd}.navbar-inverse{background-color:#033c73;border-color:#022f5a}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#022f5a}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#022f5a}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#022a50}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#022f5a;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#2fa4e7;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#157ab5;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#2fa4e7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#178acc}.label-success{background-color:#73a839}.label-success[href]:hover,.label-success[href]:focus{background-color:#59822c}.label-info{background-color:#033c73}.label-info[href]:hover,.label-info[href]:focus{background-color:#022241}.label-warning{background-color:#dd5600}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#aa4200}.label-danger{background-color:#c71c22}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#9a161a}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#2fa4e7;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2fa4e7;background-color:#ffffff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2fa4e7}.thumbnail .caption{padding:9px;color:#555555}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#2fa4e7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#73a839}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#033c73}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#dd5600}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#c71c22}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555555}a.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2fa4e7;border-color:#2fa4e7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e6f4fc}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#555555;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#555555}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#dddddd}.panel-primary>.panel-heading{color:#ffffff;background-color:#2fa4e7;border-color:#dddddd}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-primary>.panel-heading .badge{color:#2fa4e7;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-success{border-color:#dddddd}.panel-success>.panel-heading{color:#468847;background-color:#73a839;border-color:#dddddd}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-success>.panel-heading .badge{color:#73a839;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-info{border-color:#dddddd}.panel-info>.panel-heading{color:#3a87ad;background-color:#033c73;border-color:#dddddd}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-info>.panel-heading .badge{color:#033c73;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-warning{border-color:#dddddd}.panel-warning>.panel-heading{color:#c09853;background-color:#dd5600;border-color:#dddddd}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-warning>.panel-heading .badge{color:#dd5600;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-danger{border-color:#dddddd}.panel-danger>.panel-heading{color:#b94a48;background-color:#c71c22;border-color:#dddddd}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-danger>.panel-heading .badge{color:#c71c22;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:rgba(0,0,0,0.9);border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:rgba(0,0,0,0.9)}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:rgba(0,0,0,0.9)}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:rgba(0,0,0,0.9)}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:rgba(0,0,0,0.9)}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:rgba(0,0,0,0.9)}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:rgba(0,0,0,0.9)}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:rgba(0,0,0,0.9)}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:rgba(0,0,0,0.9)}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:left;background-color:#ffffff;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{transition:transform .6s ease-in-out;backface-visibility:hidden;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{background-image:-webkit-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-o-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb', endColorstr='#ff1d9ce5', GradientType=0);border-bottom:1px solid #178acc;filter:none;-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-default .badge{background-color:#fff;color:#2fa4e7}.navbar-inverse{background-image:-webkit-linear-gradient(#04519b, #044687 60%, #033769);background-image:-o-linear-gradient(#04519b, #044687 60%, #033769);background-image:linear-gradient(#04519b, #044687 60%, #033769);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04519b', endColorstr='#ff033769', GradientType=0);filter:none;border-bottom:1px solid #022241}.navbar-inverse .badge{background-color:#fff;color:#033c73}.navbar .navbar-nav>li>a,.navbar-brand{text-shadow:0 1px 0 rgba(0,0,0,0.1)}@media (max-width:767px){.navbar .dropdown-header{color:#fff}}.btn{text-shadow:0 1px 0 rgba(0,0,0,0.1)}.btn .caret{border-top-color:#fff}.btn-default{background-image:-webkit-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-o-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:linear-gradient(#fff, #fff 60%, #f5f5f5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff5f5f5', GradientType=0);filter:none;border-bottom:1px solid #e6e6e6}.btn-default:hover{color:#555555}.btn-default .caret{border-top-color:#555555}.btn-default{background-image:-webkit-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-o-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:linear-gradient(#fff, #fff 60%, #f5f5f5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff5f5f5', GradientType=0);filter:none;border-bottom:1px solid #e6e6e6}.btn-primary{background-image:-webkit-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-o-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb', endColorstr='#ff1d9ce5', GradientType=0);filter:none;border-bottom:1px solid #178acc}.btn-success{background-image:-webkit-linear-gradient(#88c149, #73a839 60%, #699934);background-image:-o-linear-gradient(#88c149, #73a839 60%, #699934);background-image:linear-gradient(#88c149, #73a839 60%, #699934);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff88c149', endColorstr='#ff699934', GradientType=0);filter:none;border-bottom:1px solid #59822c}.btn-info{background-image:-webkit-linear-gradient(#04519b, #033c73 60%, #02325f);background-image:-o-linear-gradient(#04519b, #033c73 60%, #02325f);background-image:linear-gradient(#04519b, #033c73 60%, #02325f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04519b', endColorstr='#ff02325f', GradientType=0);filter:none;border-bottom:1px solid #022241}.btn-warning{background-image:-webkit-linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-image:-o-linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-image:linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff6707', endColorstr='#ffc94e00', GradientType=0);filter:none;border-bottom:1px solid #aa4200}.btn-danger{background-image:-webkit-linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-image:-o-linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-image:linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe12b31', endColorstr='#ffb5191f', GradientType=0);filter:none;border-bottom:1px solid #9a161a}.panel-primary .panel-heading,.panel-success .panel-heading,.panel-warning .panel-heading,.panel-danger .panel-heading,.panel-info .panel-heading,.panel-primary .panel-title,.panel-success .panel-title,.panel-warning .panel-title,.panel-danger .panel-title,.panel-info .panel-title{color:#fff}
\ No newline at end of file diff --git a/docs/website/css/bootswatch.less b/docs/website/css/bootswatch.less deleted file mode 100644 index 5a4dbac4a2..0000000000 --- a/docs/website/css/bootswatch.less +++ /dev/null @@ -1,127 +0,0 @@ -// Cerulean 3.3.0 -// Bootswatch -// ----------------------------------------------------- - -@import url(//fonts.googleapis.com/css?family=Telex); - -.btn-shadow(@color) { - #gradient > .vertical-three-colors(lighten(@color, 8%), @color, 60%, darken(@color, 4%)); - filter: none; - border-bottom: 1px solid darken(@color, 10%); -} - -// Navbar ===================================================================== - -.navbar { - .btn-shadow(@navbar-default-bg); - filter: none; - .box-shadow(0 1px 10px rgba(0, 0, 0, 0.1)); - - &-default { - - .badge { - background-color: #fff; - color: @navbar-default-bg; - } - } - - &-inverse { - #gradient > .vertical-three-colors(lighten(@navbar-inverse-bg, 8%), lighten(@navbar-inverse-bg, 4%), 60%, darken(@navbar-inverse-bg, 2%)); - filter: none; - border-bottom: 1px solid darken(@navbar-inverse-bg, 10%); - - .badge { - background-color: #fff; - color: @navbar-inverse-bg; - } - } - - .navbar-nav > li > a, - &-brand { - text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); - } -} - -@media (max-width: @grid-float-breakpoint-max) { - - .navbar { - - .dropdown-header { - color: #fff; - } - } -} - -// Buttons ==================================================================== - -.btn { - - text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); - - .caret { - border-top-color: #fff; - } -} - -.btn-default { - - .btn-shadow(@btn-default-bg); - - &:hover { - color: @btn-default-color; - } - - .caret { - border-top-color: @text-color; - } -} - -.btn-default { - .btn-shadow(@btn-default-bg); -} - -.btn-primary { - .btn-shadow(@btn-primary-bg); -} - -.btn-success { - .btn-shadow(@btn-success-bg); -} - -.btn-info { - .btn-shadow(@btn-info-bg); -} - -.btn-warning { - .btn-shadow(@btn-warning-bg); -} - -.btn-danger { - .btn-shadow(@btn-danger-bg); -} - -// Typography ================================================================= - -// Tables ===================================================================== - -// Forms ====================================================================== - -// Navs ======================================================================= - -// Indicators ================================================================= - -// Progress bars ============================================================== - -// Containers ================================================================= - -.panel-primary, -.panel-success, -.panel-warning, -.panel-danger, -.panel-info { - - .panel-heading, - .panel-title { - color: #fff; - } -} diff --git a/docs/website/css/buildroot.css b/docs/website/css/buildroot.css deleted file mode 100644 index 7138abc496..0000000000 --- a/docs/website/css/buildroot.css +++ /dev/null @@ -1,46 +0,0 @@ -body { - padding-top: 60px; - padding-bottom: 40px; -} - -.button_column { - width: 430px; -} - -.gplus { - float:right; - margin: 10px 0 0; -} - -div.sponsor-main { - background: #eeeeee; - padding-top: 2em; - padding-bottom: 2em; -} - -div.sponsor { - padding: 0.5em; - height: 12em; - display: table !important; -} - -div.sponsor-description { - background: #eeeeee; - display: table-cell; - vertical-align: middle; - text-align: center; -} - -div.sponsor-description img { - max-width: 99%; - height: 4em; - margin-bottom: 1em; -} - -div.panel-body p { - text-overflow: ellipsis; - width: 95%; - white-space: nowrap; - overflow: hidden; - height: 1.5em; -} diff --git a/docs/website/css/main.css b/docs/website/css/main.css new file mode 100644 index 0000000000..db9c4c90de --- /dev/null +++ b/docs/website/css/main.css @@ -0,0 +1,260 @@ +/* + * 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: 300px; + 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; +} diff --git a/docs/website/css/timeline.css b/docs/website/css/timeline.css new file mode 100644 index 0000000000..df58461ae2 --- /dev/null +++ b/docs/website/css/timeline.css @@ -0,0 +1,184 @@ +.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; + } +} diff --git a/docs/website/css/variables.less b/docs/website/css/variables.less deleted file mode 100644 index 8ac9d6bf9e..0000000000 --- a/docs/website/css/variables.less +++ /dev/null @@ -1,856 +0,0 @@ -// Cerulean 3.3.0 -// Variables -// -------------------------------------------------- - - -//== Colors -// -//## Gray and brand colors for use across Bootstrap. - -@gray-base: #000; -@gray-darker: lighten(#000, 13.5%); // #222 -@gray-dark: lighten(#000, 20%); // #333 -@gray: lighten(#000, 33.5%); // #555 -@gray-light: lighten(#000, 60%); // #999 -@gray-lighter: lighten(#000, 93.5%); // #eee - -@brand-primary: #2FA4E7; -@brand-success: #73A839; -@brand-info: #033C73; -@brand-warning: #DD5600; -@brand-danger: #C71C22; - - -//== Scaffolding -// -//## Settings for some of the most global styles. - -//** Background color for `<body>`. -@body-bg: #fff; -//** Global text color on `<body>`. -@text-color: @gray; - -//** Global textual link color. -@link-color: @brand-primary; -//** Link hover color set via `darken()` function. -@link-hover-color: darken(@link-color, 15%); -//** Link hover decoration. -@link-hover-decoration: underline; - - -//== Typography -// -//## Font, line-height, and color for body text, headings, and more. - -@font-family-sans-serif: 'Telex', sans-serif; -@font-family-serif: Georgia, "Times New Roman", Times, serif; -//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`. -@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace; -@font-family-base: @font-family-sans-serif; - -@font-size-base: 14px; -@font-size-large: ceil((@font-size-base * 1.25)); // ~18px -@font-size-small: ceil((@font-size-base * 0.85)); // ~12px - -@font-size-h1: floor((@font-size-base * 2.6)); // ~36px -@font-size-h2: floor((@font-size-base * 2.15)); // ~30px -@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px -@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px -@font-size-h5: @font-size-base; -@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px - -//** Unit-less `line-height` for use in components like buttons. -@line-height-base: 1.428571429; // 20/14 -//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc. -@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px - -//** By default, this inherits from the `<body>`. -@headings-font-family: @font-family-base; -@headings-font-weight: bold; -@headings-line-height: 1.1; -@headings-color: #317EAC; - - -//== Iconography -// -//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. - -//** Load fonts from this directory. -@icon-font-path: "../fonts/"; -//** File name for all font files. -@icon-font-name: "glyphicons-halflings-regular"; -//** Element ID within SVG icon file. -@icon-font-svg-id: "glyphicons_halflingsregular"; - - -//== Components -// -//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start). - -@padding-base-vertical: 8px; -@padding-base-horizontal: 12px; - -@padding-large-vertical: 14px; -@padding-large-horizontal: 16px; - -@padding-small-vertical: 5px; -@padding-small-horizontal: 10px; - -@padding-xs-vertical: 1px; -@padding-xs-horizontal: 5px; - -@line-height-large: 1.33; -@line-height-small: 1.5; - -@border-radius-base: 4px; -@border-radius-large: 6px; -@border-radius-small: 3px; - -//** Global color for active items (e.g., navs or dropdowns). -@component-active-color: #fff; -//** Global background color for active items (e.g., navs or dropdowns). -@component-active-bg: @brand-primary; - -//** Width of the `border` for generating carets that indicator dropdowns. -@caret-width-base: 4px; -//** Carets increase slightly in size for larger components. -@caret-width-large: 5px; - - -//== Tables -// -//## Customizes the `.table` component with basic values, each used across all table variations. - -//** Padding for `<th>`s and `<td>`s. -@table-cell-padding: 8px; -//** Padding for cells in `.table-condensed`. -@table-condensed-cell-padding: 5px; - -//** Default background color used for all tables. -@table-bg: transparent; -//** Background color used for `.table-striped`. -@table-bg-accent: #f9f9f9; -//** Background color used for `.table-hover`. -@table-bg-hover: #f5f5f5; -@table-bg-active: @table-bg-hover; - -//** Border color for table and cell borders. -@table-border-color: #ddd; - - -//== Buttons -// -//## For each of Bootstrap's buttons, define text, background and border color. - -@btn-font-weight: normal; - -@btn-default-color: @text-color; -@btn-default-bg: #fff; -@btn-default-border: rgba(0, 0, 0, 0.1); - -@btn-primary-color: #fff; -@btn-primary-bg: @brand-primary; -@btn-primary-border: @btn-primary-bg; - -@btn-success-color: #fff; -@btn-success-bg: @brand-success; -@btn-success-border: @btn-success-bg; - -@btn-info-color: #fff; -@btn-info-bg: @brand-info; -@btn-info-border: @btn-info-bg; - -@btn-warning-color: #fff; -@btn-warning-bg: @brand-warning; -@btn-warning-border: @btn-warning-bg; - -@btn-danger-color: #fff; -@btn-danger-bg: @brand-danger; -@btn-danger-border: @btn-danger-bg; - -@btn-link-disabled-color: @gray-light; - - -//== Forms -// -//## - -//** `<input>` background color -@input-bg: #fff; -//** `<input disabled>` background color -@input-bg-disabled: @gray-lighter; - -//** Text color for `<input>`s -@input-color: @text-color; -//** `<input>` border color -@input-border: #ccc; - -// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4 -//** Default `.form-control` border radius -@input-border-radius: @border-radius-base; -//** Large `.form-control` border radius -@input-border-radius-large: @border-radius-large; -//** Small `.form-control` border radius -@input-border-radius-small: @border-radius-small; - -//** Border color for inputs on focus -@input-border-focus: #66afe9; - -//** Placeholder text color -@input-color-placeholder: @gray-light; - -//** Default `.form-control` height -@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); -//** Large `.form-control` height -@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); -//** Small `.form-control` height -@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); - -@legend-color: @text-color; -@legend-border-color: #e5e5e5; - -//** Background color for textual input addons -@input-group-addon-bg: @gray-lighter; -//** Border color for textual input addons -@input-group-addon-border-color: @input-border; - -//** Disabled cursor for form controls and buttons. -@cursor-disabled: not-allowed; - - -//== Dropdowns -// -//## Dropdown menu container and contents. - -//** Background for the dropdown menu. -@dropdown-bg: #fff; -//** Dropdown menu `border-color`. -@dropdown-border: rgba(0,0,0,.15); -//** Dropdown menu `border-color` **for IE8**. -@dropdown-fallback-border: #ccc; -//** Divider color for between dropdown items. -@dropdown-divider-bg: #e5e5e5; - -//** Dropdown link text color. -@dropdown-link-color: @gray-dark; -//** Hover color for dropdown links. -@dropdown-link-hover-color: #fff; -//** Hover background for dropdown links. -@dropdown-link-hover-bg: @dropdown-link-active-bg; - -//** Active dropdown menu item text color. -@dropdown-link-active-color: #fff; -//** Active dropdown menu item background color. -@dropdown-link-active-bg: @component-active-bg; - -//** Disabled dropdown menu item background color. -@dropdown-link-disabled-color: @text-muted; - -//** Text color for headers within dropdown menus. -@dropdown-header-color: @text-muted; - -//** Deprecated `@dropdown-caret-color` as of v3.1.0 -@dropdown-caret-color: #000; - - -//-- Z-index master list -// -// Warning: Avoid customizing these values. They're used for a bird's eye view -// of components dependent on the z-axis and are designed to all work together. -// -// Note: These variables are not generated into the Customizer. - -@zindex-navbar: 1000; -@zindex-dropdown: 1000; -@zindex-popover: 1060; -@zindex-tooltip: 1070; -@zindex-navbar-fixed: 1030; -@zindex-modal: 1040; - - -//== Media queries breakpoints -// -//## Define the breakpoints at which your layout will change, adapting to different screen sizes. - -// Extra small screen / phone -//** Deprecated `@screen-xs` as of v3.0.1 -@screen-xs: 480px; -//** Deprecated `@screen-xs-min` as of v3.2.0 -@screen-xs-min: @screen-xs; -//** Deprecated `@screen-phone` as of v3.0.1 -@screen-phone: @screen-xs-min; - -// Small screen / tablet -//** Deprecated `@screen-sm` as of v3.0.1 -@screen-sm: 768px; -@screen-sm-min: @screen-sm; -//** Deprecated `@screen-tablet` as of v3.0.1 -@screen-tablet: @screen-sm-min; - -// Medium screen / desktop -//** Deprecated `@screen-md` as of v3.0.1 -@screen-md: 992px; -@screen-md-min: @screen-md; -//** Deprecated `@screen-desktop` as of v3.0.1 -@screen-desktop: @screen-md-min; - -// Large screen / wide desktop -//** Deprecated `@screen-lg` as of v3.0.1 -@screen-lg: 1200px; -@screen-lg-min: @screen-lg; -//** Deprecated `@screen-lg-desktop` as of v3.0.1 -@screen-lg-desktop: @screen-lg-min; - -// So media queries don't overlap when required, provide a maximum -@screen-xs-max: (@screen-sm-min - 1); -@screen-sm-max: (@screen-md-min - 1); -@screen-md-max: (@screen-lg-min - 1); - - -//== Grid system -// -//## Define your custom responsive grid. - -//** Number of columns in the grid. -@grid-columns: 12; -//** Padding between columns. Gets divided in half for the left and right. -@grid-gutter-width: 30px; -// Navbar collapse -//** Point at which the navbar becomes uncollapsed. -@grid-float-breakpoint: @screen-sm-min; -//** Point at which the navbar begins collapsing. -@grid-float-breakpoint-max: (@grid-float-breakpoint - 1); - - -//== Container sizes -// -//## Define the maximum width of `.container` for different screen sizes. - -// Small screen / tablet -@container-tablet: (720px + @grid-gutter-width); -//** For `@screen-sm-min` and up. -@container-sm: @container-tablet; - -// Medium screen / desktop -@container-desktop: (940px + @grid-gutter-width); -//** For `@screen-md-min` and up. -@container-md: @container-desktop; - -// Large screen / wide desktop -@container-large-desktop: (1140px + @grid-gutter-width); -//** For `@screen-lg-min` and up. -@container-lg: @container-large-desktop; - - -//== Navbar -// -//## - -// Basics of a navbar -@navbar-height: 50px; -@navbar-margin-bottom: @line-height-computed; -@navbar-border-radius: @border-radius-base; -@navbar-padding-horizontal: floor((@grid-gutter-width / 2)); -@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); -@navbar-collapse-max-height: 340px; - -@navbar-default-color: #ddd; -@navbar-default-bg: @brand-primary; -@navbar-default-border: darken(@navbar-default-bg, 6.5%); - -// Navbar links -@navbar-default-link-color: #fff; -@navbar-default-link-hover-color: #fff; -@navbar-default-link-hover-bg: darken(@navbar-default-bg, 10%); -@navbar-default-link-active-color: #fff; -@navbar-default-link-active-bg: darken(@navbar-default-bg, 10%); -@navbar-default-link-disabled-color: #ddd; -@navbar-default-link-disabled-bg: transparent; - -// Navbar brand label -@navbar-default-brand-color: @navbar-default-link-color; -@navbar-default-brand-hover-color: #fff; -@navbar-default-brand-hover-bg: none; - -// Navbar toggle -@navbar-default-toggle-hover-bg: darken(@navbar-default-bg, 10%); -@navbar-default-toggle-icon-bar-bg: #fff; -@navbar-default-toggle-border-color: darken(@navbar-default-bg, 10%); - - -// Inverted navbar -// Reset inverted navbar basics -@navbar-inverse-color: #fff; -@navbar-inverse-bg: @brand-info; -@navbar-inverse-border: darken(@navbar-inverse-bg, 5%); - -// Inverted navbar links -@navbar-inverse-link-color: #fff; -@navbar-inverse-link-hover-color: #fff; -@navbar-inverse-link-hover-bg: darken(@navbar-inverse-bg, 5%); -@navbar-inverse-link-active-color: #fff; -@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 5%); -@navbar-inverse-link-disabled-color: #ccc; -@navbar-inverse-link-disabled-bg: transparent; - -// Inverted navbar brand label -@navbar-inverse-brand-color: @navbar-inverse-link-color; -@navbar-inverse-brand-hover-color: #fff; -@navbar-inverse-brand-hover-bg: none; - -// Inverted navbar toggle -@navbar-inverse-toggle-hover-bg: darken(@navbar-inverse-bg, 5%); -@navbar-inverse-toggle-icon-bar-bg: #fff; -@navbar-inverse-toggle-border-color: darken(@navbar-inverse-bg, 5%); - - -//== Navs -// -//## - -//=== Shared nav styles -@nav-link-padding: 10px 15px; -@nav-link-hover-bg: @gray-lighter; - -@nav-disabled-link-color: @gray-light; -@nav-disabled-link-hover-color: @gray-light; - -//== Tabs -@nav-tabs-border-color: #ddd; - -@nav-tabs-link-hover-border-color: @gray-lighter; - -@nav-tabs-active-link-hover-bg: @body-bg; -@nav-tabs-active-link-hover-color: @gray; -@nav-tabs-active-link-hover-border-color: #ddd; - -@nav-tabs-justified-link-border-color: #ddd; -@nav-tabs-justified-active-link-border-color: @body-bg; - -//== Pills -@nav-pills-border-radius: @border-radius-base; -@nav-pills-active-link-hover-bg: @component-active-bg; -@nav-pills-active-link-hover-color: @component-active-color; - - -//== Pagination -// -//## - -@pagination-color: @link-color; -@pagination-bg: #fff; -@pagination-border: #ddd; - -@pagination-hover-color: @link-hover-color; -@pagination-hover-bg: @gray-lighter; -@pagination-hover-border: #ddd; - -@pagination-active-color: @gray-light; -@pagination-active-bg: #f5f5f5; -@pagination-active-border: @pagination-hover-border; - -@pagination-disabled-color: @gray-light; -@pagination-disabled-bg: #fff; -@pagination-disabled-border: #ddd; - - -//== Pager -// -//## - -@pager-bg: @pagination-bg; -@pager-border: @pagination-border; -@pager-border-radius: 15px; - -@pager-hover-bg: @pagination-hover-bg; - -@pager-active-bg: @pagination-active-bg; -@pager-active-color: @pagination-active-color; - -@pager-disabled-color: @gray-light; - - -//== Jumbotron -// -//## - -@jumbotron-padding: 30px; -@jumbotron-color: inherit; -@jumbotron-bg: @gray-lighter; -@jumbotron-heading-color: inherit; -@jumbotron-font-size: ceil((@font-size-base * 1.5)); - - -//== Form states and alerts -// -//## Define colors for form feedback states and, by default, alerts. - -@state-success-text: #468847; -@state-success-bg: #dff0d8; -@state-success-border: darken(spin(@state-success-bg, -10), 5%); - -@state-info-text: #3a87ad; -@state-info-bg: #d9edf7; -@state-info-border: darken(spin(@state-info-bg, -10), 7%); - -@state-warning-text: #c09853; -@state-warning-bg: #fcf8e3; -@state-warning-border: darken(spin(@state-warning-bg, -10), 3%); - -@state-danger-text: #b94a48; -@state-danger-bg: #f2dede; -@state-danger-border: darken(spin(@state-danger-bg, -10), 3%); - - -//== Tooltips -// -//## - -//** Tooltip max width -@tooltip-max-width: 200px; -//** Tooltip text color -@tooltip-color: #fff; -//** Tooltip background color -@tooltip-bg: rgba(0,0,0,.9); -@tooltip-opacity: .9; - -//** Tooltip arrow width -@tooltip-arrow-width: 5px; -//** Tooltip arrow color -@tooltip-arrow-color: @tooltip-bg; - - -//== Popovers -// -//## - -//** Popover body background color -@popover-bg: #fff; -//** Popover maximum width -@popover-max-width: 276px; -//** Popover border color -@popover-border-color: rgba(0,0,0,.2); -//** Popover fallback border color -@popover-fallback-border-color: #ccc; - -//** Popover title background color -@popover-title-bg: darken(@popover-bg, 3%); - -//** Popover arrow width -@popover-arrow-width: 10px; -//** Popover arrow color -@popover-arrow-color: @popover-bg; - -//** Popover outer arrow width -@popover-arrow-outer-width: (@popover-arrow-width + 1); -//** Popover outer arrow color -@popover-arrow-outer-color: fadein(@popover-border-color, 5%); -//** Popover outer arrow fallback color -@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); - - -//== Labels -// -//## - -//** Default label background color -@label-default-bg: @gray-light; -//** Primary label background color -@label-primary-bg: @brand-primary; -//** Success label background color -@label-success-bg: @brand-success; -//** Info label background color -@label-info-bg: @brand-info; -//** Warning label background color -@label-warning-bg: @brand-warning; -//** Danger label background color -@label-danger-bg: @brand-danger; - -//** Default label text color -@label-color: #fff; -//** Default text color of a linked label -@label-link-hover-color: #fff; - - -//== Modals -// -//## - -//** Padding applied to the modal body -@modal-inner-padding: 20px; - -//** Padding applied to the modal title -@modal-title-padding: 15px; -//** Modal title line-height -@modal-title-line-height: @line-height-base; - -//** Background color of modal content area -@modal-content-bg: #fff; -//** Modal content border color -@modal-content-border-color: rgba(0,0,0,.2); -//** Modal content border color **for IE8** -@modal-content-fallback-border-color: #999; - -//** Modal backdrop background color -@modal-backdrop-bg: #000; -//** Modal backdrop opacity -@modal-backdrop-opacity: .5; -//** Modal header border color -@modal-header-border-color: #e5e5e5; -//** Modal footer border color -@modal-footer-border-color: @modal-header-border-color; - -@modal-lg: 900px; -@modal-md: 600px; -@modal-sm: 300px; - - -//== Alerts -// -//## Define alert colors, border radius, and padding. - -@alert-padding: 15px; -@alert-border-radius: @border-radius-base; -@alert-link-font-weight: bold; - -@alert-success-bg: @state-success-bg; -@alert-success-text: @state-success-text; -@alert-success-border: @state-success-border; - -@alert-info-bg: @state-info-bg; -@alert-info-text: @state-info-text; -@alert-info-border: @state-info-border; - -@alert-warning-bg: @state-warning-bg; -@alert-warning-text: @state-warning-text; -@alert-warning-border: @state-warning-border; - -@alert-danger-bg: @state-danger-bg; -@alert-danger-text: @state-danger-text; -@alert-danger-border: @state-danger-border; - - -//== Progress bars -// -//## - -//** Background color of the whole progress component -@progress-bg: #f5f5f5; -//** Progress bar text color -@progress-bar-color: #fff; -//** Variable for setting rounded corners on progress bar. -@progress-border-radius: @border-radius-base; - -//** Default progress bar color -@progress-bar-bg: @brand-primary; -//** Success progress bar color -@progress-bar-success-bg: @brand-success; -//** Warning progress bar color -@progress-bar-warning-bg: @brand-warning; -//** Danger progress bar color -@progress-bar-danger-bg: @brand-danger; -//** Info progress bar color -@progress-bar-info-bg: @brand-info; - - -//== List group -// -//## - -//** Background color on `.list-group-item` -@list-group-bg: #fff; -//** `.list-group-item` border color -@list-group-border: #ddd; -//** List group border radius -@list-group-border-radius: @border-radius-base; - -//** Background color of single list items on hover -@list-group-hover-bg: #f5f5f5; -//** Text color of active list items -@list-group-active-color: @component-active-color; -//** Background color of active list items -@list-group-active-bg: @component-active-bg; -//** Border color of active list elements -@list-group-active-border: @list-group-active-bg; -//** Text color for content within active list items -@list-group-active-text-color: lighten(@list-group-active-bg, 40%); - -//** Text color of disabled list items -@list-group-disabled-color: @gray-light; -//** Background color of disabled list items -@list-group-disabled-bg: @gray-lighter; -//** Text color for content within disabled list items -@list-group-disabled-text-color: @list-group-disabled-color; - -@list-group-link-color: #555; -@list-group-link-hover-color: @list-group-link-color; -@list-group-link-heading-color: #333; - - -//== Panels -// -//## - -@panel-bg: #fff; -@panel-body-padding: 15px; -@panel-heading-padding: 10px 15px; -@panel-footer-padding: @panel-heading-padding; -@panel-border-radius: @border-radius-base; - -//** Border color for elements within panels -@panel-inner-border: #ddd; -@panel-footer-bg: #f5f5f5; - -@panel-default-text: @text-color; -@panel-default-border: #ddd; -@panel-default-heading-bg: #f5f5f5; - -@panel-primary-text: #fff; -@panel-primary-border: @panel-default-border; -@panel-primary-heading-bg: @brand-primary; - -@panel-success-text: @state-success-text; -@panel-success-border: @panel-default-border; -@panel-success-heading-bg: @brand-success; - -@panel-info-text: @state-info-text; -@panel-info-border: @panel-default-border; -@panel-info-heading-bg: @brand-info; - -@panel-warning-text: @state-warning-text; -@panel-warning-border: @panel-default-border; -@panel-warning-heading-bg: @brand-warning; - -@panel-danger-text: @state-danger-text; -@panel-danger-border: @panel-default-border; -@panel-danger-heading-bg: @brand-danger; - - -//== Thumbnails -// -//## - -//** Padding around the thumbnail image -@thumbnail-padding: 4px; -//** Thumbnail background color -@thumbnail-bg: @body-bg; -//** Thumbnail border color -@thumbnail-border: #ddd; -//** Thumbnail border radius -@thumbnail-border-radius: @border-radius-base; - -//** Custom text color for thumbnail captions -@thumbnail-caption-color: @text-color; -//** Padding around the thumbnail caption -@thumbnail-caption-padding: 9px; - - -//== Wells -// -//## - -@well-bg: #f5f5f5; -@well-border: darken(@well-bg, 7%); - - -//== Badges -// -//## - -@badge-color: #fff; -//** Linked badge text color on hover -@badge-link-hover-color: #fff; -@badge-bg: @brand-primary; - -//** Badge text color in active nav link -@badge-active-color: @link-color; -//** Badge background color in active nav link -@badge-active-bg: #fff; - -@badge-font-weight: bold; -@badge-line-height: 1; -@badge-border-radius: 10px; - - -//== Breadcrumbs -// -//## - -@breadcrumb-padding-vertical: 8px; -@breadcrumb-padding-horizontal: 15px; -//** Breadcrumb background color -@breadcrumb-bg: #f5f5f5; -//** Breadcrumb text color -@breadcrumb-color: #ccc; -//** Text color of current page in the breadcrumb -@breadcrumb-active-color: @gray-light; -//** Textual separator for between breadcrumb elements -@breadcrumb-separator: "/"; - - -//== Carousel -// -//## - -@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); - -@carousel-control-color: #fff; -@carousel-control-width: 15%; -@carousel-control-opacity: .5; -@carousel-control-font-size: 20px; - -@carousel-indicator-active-bg: #fff; -@carousel-indicator-border-color: #fff; - -@carousel-caption-color: #fff; - - -//== Close -// -//## - -@close-font-weight: bold; -@close-color: #000; -@close-text-shadow: 0 1px 0 #fff; - - -//== Code -// -//## - -@code-color: #c7254e; -@code-bg: #f9f2f4; - -@kbd-color: #fff; -@kbd-bg: #333; - -@pre-bg: #f5f5f5; -@pre-color: @gray-dark; -@pre-border-color: #ccc; -@pre-scrollable-max-height: 340px; - - -//== Type -// -//## - -//** Horizontal offset for forms and lists. -@component-offset-horizontal: 180px; -//** Text muted color -@text-muted: @gray-light; -//** Abbreviations and acronyms border color -@abbr-border-color: @gray-light; -//** Headings small color -@headings-small-color: @gray-light; -//** Blockquote small color -@blockquote-small-color: @gray-light; -//** Blockquote font size -@blockquote-font-size: (@font-size-base * 1.25); -//** Blockquote border color -@blockquote-border-color: @gray-lighter; -//** Page header border color -@page-header-border-color: @gray-lighter; -//** Width of horizontal description list titles -@dl-horizontal-offset: @component-offset-horizontal; -//** Horizontal line color. -@hr-border: @gray-lighter; diff --git a/docs/website/docs.html b/docs/website/docs.html index 6edc989cf6..9cee36da28 100644 --- a/docs/website/docs.html +++ b/docs/website/docs.html @@ -1,69 +1,119 @@ <!--#include file="header.html" --> -<div class="row"> -<div class="col-sm-10 col-sm-offset-1"> - -<h2>Documentation</h2> - -<p>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:</p> - -<h4>Latest stable release</h4> -<ul> - <li><a href="/manual.html">Online HTML</a></li> - <li><a href="/downloads/manual/manual.pdf">PDF document</a></li> - <li><a href="/downloads/manual/manual.text">ASCII text</a></li> -</ul> - -<h4>Nightly build</h4> -<ul> - <li><a href="http://nightly.buildroot.org/manual.html">Online HTML</a></li> - <li><a href="http://nightly.buildroot.org/manual.pdf">PDF document</a></li> - <li><a href="http://nightly.buildroot.org/manual.text">ASCII text</a></li> -</ul> - -<p>If you find any errors (factual, grammatical, whatever) please - report them to us.</p> - -<h2>Training</h2> - -<p><a href="http://www.free-electrons.com">Free Electrons</a> offers a -complete <a href="http://free-electrons.com/training/buildroot/">3-days -training course on Buildroot</a>. They also make the training -materials freely available:</p> - -<ul> - <li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf">slides - (PDF)</a></li> - <li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-labs.pdf">practical - labs (PDF)</a></li> - <li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-labs.tar.xz">practical - labs data (.tar.xz)</a></li> -</ul> - -<h2>Getting support</h2> - -<p>If you find that you need help with Buildroot, you can ask for -help:</p> - -<ul> - - <li>On the <a href="support.html">buildroot mailing list</a> - at <code>buildroot at buildroot.org</code></li> - - <li>On the <a href="irc://freenode.net/#buildroot">Buildroot IRC - channel</a>, <code>#buildroot</code> on Freenode</li> - - <li>On our <a href="https://bugs.buildroot.org">bugtracker</a>.</li> - - <li>Through the various companies offering commercial Buildroot - support.</li> - -</ul> - -</div><!--/.col-sm-10 --> -</div><!--/.row --> +<div class="container"> +<div class="row nh"> +<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12"> + + <div class="panel panel-primary"> + <div class="panel-heading">Documentation</div> + <div class="panel-body"> + <p>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:</p> + + <div class="row mt centered"> + <div class="col-sm-4"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <a href="/manual.html"><img src="images/browser.png" width="180" alt=""></a> + </div> + <div class="back"> + <a href="/manual.html"><img src="images/browser.png" width="180" alt=""></a> + </div> + </div> + </div> + + <h3>HTML <br> + <a href="/manual.html">Stable</a> | + <a href="http://nightly.buildroot.org/manual.html">Nightly</a> + </h3> + + </div> + + <div class="col-sm-4"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <img src="images/pdf-icon.png" width="180" alt=""> + </div> + <div class="back"> + <img src="images/pdf-icon.png" width="180" alt=""> + </div> + </div> + </div> + + <h3>PDF <br> + <a href="/downloads/manual/manual.pdf">Stable</a> | + <a href="http://nightly.buildroot.org/manual.pdf">Nightly</a> + </h3> + + </div> + + <div class="col-sm-4"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <img src="images/text.png" width="180" alt=""> + </div> + <div class="back"> + <img src="images/text.png" width="180" alt=""> + </div> + </div> + </div> + + <h3>ASCII <br> + <a href="/downloads/manual/manual.text">Stable</a> | + <a href="http://nightly.buildroot.org/manual.text">Nightly</a> + </h3> + + </div> + </div> + + <p>If you find any errors (factual, grammatical, whatever) please + report them to us.</p> + </div> + </div> + + <div class="panel panel-primary"> + <div class="panel-heading">Training</div> + <div class="panel-body"> + <p><a href="http://www.free-electrons.com">Free Electrons</a> offers a + complete <a href="http://free-electrons.com/training/buildroot/">3-days + training course on Buildroot</a>. They also make the training + materials freely available:</p> + + <div class="row"> + <div class="col-sm-8"> + <div class="panel panel-success"> + <div class="panel-heading">Slides preview</div> + <div class="panel-body"> + <div id="slides" style="width: 100%; padding-bottom: 75%; position: relative"> + <a href="http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf"><img src="images/buildroot-slides.png" alt="buildroot slides" style="position:absolute; width:100%; height:100%; top:0; left:0;"></a> + </div> + </div> + </div> + </div> + + <div class="col-sm-4"> + <div class="panel panel-default "> + <div class="panel-heading">Training materials</div> + <div class="panel-body"> + <ul> + <li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf">slides (PDF)</a></li> + <li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-labs.pdf">practical labs (PDF)</a></li> + <li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-labs.tar.xz">practical labs data (.tar.xz)</a></li> + </ul> + </div> + </div> + </div> + </div> + </div> + </div> + +</div> +</div> +</div> <!--#include file="footer.html" --> diff --git a/docs/website/download.html b/docs/website/download.html index a6c2ac0ca1..4f8d67ae7c 100644 --- a/docs/website/download.html +++ b/docs/website/download.html @@ -1,94 +1,183 @@ <!--#include file="header.html" --> -<div class="row"> -<div class="col-sm-10 col-sm-offset-1"> - -<h2>Download</h2> - -<p> - -The latest stable release is <b>2015.08.1</b>, which can be downloaded -here:<p> - -<a href="/downloads/buildroot-2015.08.1.tar.gz">buildroot-2015.08.1.tar.gz</a> -(<a href="/downloads/buildroot-2015.08.1.tar.gz.sign">PGP signature</a>) -or -<a href="/downloads/buildroot-2015.08.1.tar.bz2">buildroot-2015.08.1.tar.bz2</a> -(<a href="/downloads/buildroot-2015.08.1.tar.bz2.sign">PGP signature</a>). - -<p> -The latest release candidate is <b>2015.11-rc1</b>, which can be -downloaded here:<p> - -<a href="/downloads/buildroot-2015.11-rc1.tar.gz">buildroot-2015.11-rc1.tar.gz</a> -(<a href="/downloads/buildroot-2015.11-rc1.tar.gz.sign">PGP signature</a>) -or -<a href="/downloads/buildroot-2015.11-rc1.tar.bz2">buildroot-2015.11-rc1.tar.bz2</a> -(<a href="/downloads/buildroot-2015.11-rc1.tar.bz2.sign">PGP signature</a>). -<p> - -This and earlier releases (and their PGP signatures) can always be downloaded from -<a href="/downloads/">http://buildroot.net/downloads/</a>. - -<p> - -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. - -<ul> - <li>You can download the - <a href="downloads/snapshots/buildroot-snapshot.tar.bz2">latest snapshot - </a> or view recent <a href="downloads/snapshots/">daily snapshots</a>. - </li> - - <li>You can also <a href="http://git.buildroot.net/buildroot">browse the - source tree online</a>. - </li> -</ul> - -<p> -Older versions can be downloaded from <a href="/downloads/">the release archive</a>. -</p> - -<h2>Repository</h2> - -The buildroot repository can be browsed online through cgit at -<a href="http://git.buildroot.net/buildroot/">http://git.buildroot.net/buildroot</a>. -To grab a copy of the repository use - -<pre> -git clone git://git.buildroot.net/buildroot</pre> - -Or if you're behind a firewall blocking git: - -<pre> -git clone http://git.buildroot.net/git/buildroot.git</pre> - -<p> - -Please use the native git protocol if at all possible, as it's a lot -more efficient than HTTP. - -<p> - -If you are not already familiar with using Git, we recommend you visit <a -href="http://git-scm.org">the Git website</a>. - -<p> - -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: - -<pre> -git pull -</pre> - -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. +<div class="container"> +<div class="row nh"> +<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12"> + + <div class="panel panel-primary"> + <div class="panel-heading">Download</div> + <div class="panel-body"> + + <h3 style="text-align: center;">Latest stable release: <b>2015.11</b></h3> + + <div class="row mt centered"> + <div class="col-sm-6"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <a href="/downloads/buildroot-2015.11.tar.gz"><img src="images/zip.png" width="180" alt=""></a> + </div> + <div class="back"> + <a href="/downloads/buildroot-2015.11.tar.gz"><img src="images/zip.png" width="180" alt=""></a> + </div> + </div> + </div> + <h3><a href="/downloads/buildroot-2015.11.tar.gz">buildroot-2015.11.tar.gz</a></h3> + <p><a href="/downloads/buildroot-2015.11.tar.gz.sign">PGP signature</a></p> + </div> + <div class="col-sm-6"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <a href="/downloads/buildroot-2015.11.tar.bz2"><img src="images/package.png" width="180" alt=""></a> + </div> + <div class="back"> + <a href="/downloads/buildroot-2015.11.tar.bz2"><img src="images/package.png" width="180" alt=""></a> + </div> + </div> + </div> + + <h3><a href="/downloads/buildroot-2015.11.tar.bz2">buildroot-2015.11.tar.bz2</a></h3> + <p><a href="/downloads/buildroot-2015.11.tar.bz2.sign">PGP signature</a></p> + </div> + </div> +<!-- + <h3 style="text-align: center;">Latest release candidate: <b>2015.11-rc3</b></h3> + <div class="row mt centered"> + <div class="col-sm-6"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <a href="/downloads/buildroot-2015.11-rc3.tar.gz"><img src="images/zip.png" width="180" alt=""></a> + </div> + <div class="back"> + <a href="/downloads/buildroot-2015.11-rc3.tar.gz"><img src="images/zip.png" width="180" alt=""></a> + </div> + </div> + </div> + + <h3><a href="/downloads/buildroot-2015.11-rc3.tar.gz">buildroot-2015.11-rc3.tar.gz</a></h3> + <p><a href="/downloads/buildroot-2015.11-rc3.tar.gz.sign">PGP signature</a></p> + </div> + <div class="col-sm-6"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <a href="/downloads/buildroot-2015.11-rc3.tar.bz2"><img src="images/package.png" width="180" alt=""></a> + </div> + <div class="back"> + <a href="/downloads/buildroot-2015.11-rc3.tar.bz2"><img src="images/package.png" width="180" alt=""></a> + </div> + </div> + </div> + + <h3><a href="/downloads/buildroot-2015.11-rc3.tar.bz2">buildroot-2015.11-rc3.tar.bz2</a></h3> + <p><a href="/downloads/buildroot-2015.11-rc3.tar.bz2.sign">PGP signature</a></p> + </div> + </div> +--> + This and earlier releases (and their PGP signatures) can always be downloaded from + <a href="/downloads/">http://buildroot.net/downloads/</a>. + </div> + </div> + + <div class="panel panel-primary"> + <div class="panel-heading">Source code</div> + <div class="panel-body"> + + <div class="row"> + <div class="col-sm-7"> + <div class="panel panel-success"> + <div class="panel-heading">Repository</div> + <div class="panel-body"> + <P>The buildroot repository can be browsed online through cgit at + <a href="http://git.buildroot.net/buildroot/">http://git.buildroot.net/buildroot</a>. + To grab a copy of the repository use</p> + + + <div class="input-group" style="width: 100%;"> + <input class="form-control" style="width: 85%;" id="giturl" + value="git clone git://git.buildroot.net/buildroot" type="text" readonly></input> + <span class="input-group-button"> + <button class="btn pull-right" type="button" data-clipboard-target="#giturl" + data-toggle="tooltip" data-placement="bottom" data-trigger="manual" title="Copied!"> + <img class="clippy" src="images/clippy.svg" alt="Copy to clipboard" width="13"> + </button> + </span> + </div><br> + + <p> + Or if you're behind a firewall blocking git: + </p> + + <div class="input-group" style="width: 100%;"> + <input class="form-control" style="width: 85%;" id="giturlhttps" + value="git clone https://git.buildroot.net/buildroot" type="text" readonly></input> + <span class="input-group-button"> + <button class="btn pull-right" type="button" data-clipboard-target="#giturlhttps" + data-toggle="tooltip" data-placement="bottom" data-trigger="click" title="Copied!"> + <img class="clippy" src="images/clippy.svg" alt="Copy to clipboard" width="13"> + </button> + </span> + </div><br> + + <p> + + Please use the native git protocol if at all possible, as it's a lot + more efficient than HTTP. + + <p> + + If you are not already familiar with using Git, we recommend you visit <a + href="http://git-scm.org">the Git website</a>. + + <p> + + 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: + + <pre> + git pull + </pre> + + 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. + </div> + </div> + </div> + + <div class="col-sm-5"> + <div class="panel panel-default "> + <div class="panel-heading">Tarballs</div> + <div class="panel-body"> + 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. + + <ul> + <li>You can download the + <a href="downloads/snapshots/buildroot-snapshot.tar.bz2">latest snapshot + </a> or view recent <a href="downloads/snapshots/">daily snapshots</a>. + </li> + + <li>You can also <a href="http://git.buildroot.net/buildroot">browse the + source tree online</a>. + </li> + </ul> + + <p> + Older versions can be downloaded from <a href="/downloads/">the release archive</a>. + </p> + </div> + </div> + </div> + </div> + </div> + </div> </div><!--/.col-sm-10 --> </div><!--/.row --> +</div> <!--#include file="footer.html" --> diff --git a/docs/website/fonts/glyphicons-halflings-regular.woff b/docs/website/fonts/glyphicons-halflings-regular.woff Binary files differindex 8c54182aa5..d83c539b82 100644 --- a/docs/website/fonts/glyphicons-halflings-regular.woff +++ b/docs/website/fonts/glyphicons-halflings-regular.woff diff --git a/docs/website/footer.html b/docs/website/footer.html index 9f7194ffba..16fab36c95 100644 --- a/docs/website/footer.html +++ b/docs/website/footer.html @@ -1,7 +1,7 @@ - </div> <!-- /container --> - <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> - <script type="text/javascript" src="js/bootstrap.min.js"></script> - <script type="text/javascript" src="https://www.google.com/jsapi"></script> - <script type="text/javascript" src="js/buildroot.js"></script> - </body> + <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> + <script src="https://oss.maxcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> + <script type="text/javascript" src="https://www.google.com/jsapi"></script> + <script src="https://cdn.rawgit.com/zenorocha/clipboard.js/master/dist/clipboard.min.js"></script> + <script type="text/javascript" src="js/buildroot.js"></script> +</body> </html> diff --git a/docs/website/git.html b/docs/website/git.html deleted file mode 100644 index 890397592c..0000000000 --- a/docs/website/git.html +++ /dev/null @@ -1,48 +0,0 @@ -<!--#include file="header.html" --> - -<div class="row"> -<div class="col-sm-10 col-sm-offset-1"> - -<h3>Git Access</h3> - -The buildroot repository can be browsed online through cgit at -<a href="http://git.buildroot.net/buildroot/">http://git.buildroot.net/buildroot</a>. -To grab a copy of the repository use - -<pre> -git clone git://git.buildroot.net/buildroot</pre> - -Or if you're behind a firewall blocking git: - -<pre> -git clone http://git.buildroot.net/git/buildroot.git</pre> - -<p> - -Please use the native git protocol if at all possible, as it's a lot -more efficient than HTTP. - -<p> - -If you are not already familiar with using Git, we recommend you visit <a -href="http://git-scm.org">the Git website</a>. - -<p> - -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: - -<pre> -git pull -</pre> - -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. - -</div><!--/.col-sm-10 --> -</div><!--/.row --> - -<!--#include file="footer.html" --> - diff --git a/docs/website/header.html b/docs/website/header.html index 98f6ec5bf1..3842f32721 100644 --- a/docs/website/header.html +++ b/docs/website/header.html @@ -1,49 +1,52 @@ <!DOCTYPE html> <html lang="en"> - <head> - <meta charset="utf-8"> - <title>Buildroot: making embedded Linux easy</title> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <meta name="author" content="The Buildroot developers"> - <link rel="shortcut icon" href="favicon.ico"> - <link href="css/bootstrap.min.css" rel="stylesheet"> - <link href="css/buildroot.css" rel="stylesheet"> +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="Buildroot" content=""> + <meta name="angelo.compagnucci@gmail.com" content=""> + <link rel="shortcut icon" href="images/favicon.png"> - <style type="text/css"> - </style> + <title>Buildroot - Making Embedded Linux Easy</title> - <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements --> - <!--[if lt IE 9]> - <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> - <![endif]--> - </head> - <body> - <nav class="navbar navbar-default navbar-fixed-top"> - <div class="row"> - <div class="col-sm-10 col-sm-offset-1"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#buildroot-navbar-collapse-1"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="/">Buildroot</a> - </div> - <div class="collapse navbar-collapse" id="buildroot-navbar-collapse-1"> - <ul class="nav navbar-nav"> - <li><a href="/news.html">News</a></li> - <li><a href="/about.html">About</a></li> - <li><a href="/download.html">Download</a></li> - <li><a href="/docs.html">Documentation</a></li> - <li><a href="/support.html">Support</a></li> - <li><a href="/contribute.html">Contribute</a></li> - <li><a href="/sponsors.html">Sponsors</a></li> - </ul> - <a class="gplus" href="https://plus.google.com/100084591154899263420/posts"> - <img src="images/gplus.png" height="28" width="28" alt="Google+" /></a> - </div><!--/.nav-collapse --> - </div> - </div> - </nav> - <div class="container-fluid"> + <link href="https://oss.maxcdn.com/bootswatch/3.3.5/paper/bootstrap.min.css" rel="stylesheet"> + <link href="css/main.css" rel="stylesheet"> + + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> + <![endif]--> +</head> + +<body> + <!-- Fixed navbar --> + <div class="navbar navbar-default navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/"><b>Buildroot</b></a> + </div> + <div class="navbar-collapse collapse"> + <ul class="nav navbar-nav navbar-right"> + <li><a href="/news.html"> + <span class="glyphicon glyphicon-star"></span> News</a></li> + <li><a href="/docs.html"> + <span class="glyphicon glyphicon-book"></span> Documentation</a></li> + <li><a href="/support.html"> + <span class="glyphicon glyphicon-question-sign"></span> Support</a></li> + <li><a href="/contribute.html"> + <span class="glyphicon glyphicon-share"></span> Contribute</a></li> + <li><a href="/sponsors.html"> + <span class="glyphicon glyphicon-usd"></span> Sponsors</a></li> + <li><a id="menubutton" class="btn btn-success btn-shrink" href="/download.html"> + <span class="glyphicon glyphicon-cloud-download"></span> + <span class="text-shrink" >Download</span></a></li> + </ul> + </div><!--/.nav-collapse --> + </div> + </div> diff --git a/docs/website/images/browser.png b/docs/website/images/browser.png Binary files differnew file mode 100644 index 0000000000..56039dfaae --- /dev/null +++ b/docs/website/images/browser.png diff --git a/docs/website/images/bug-buddy.png b/docs/website/images/bug-buddy.png Binary files differnew file mode 100644 index 0000000000..5d38fd831e --- /dev/null +++ b/docs/website/images/bug-buddy.png diff --git a/docs/website/images/buildroot-slides.png b/docs/website/images/buildroot-slides.png Binary files differnew file mode 100644 index 0000000000..6ecba3d479 --- /dev/null +++ b/docs/website/images/buildroot-slides.png diff --git a/docs/website/images/clippy.svg b/docs/website/images/clippy.svg new file mode 100644 index 0000000000..d827e82e5d --- /dev/null +++ b/docs/website/images/clippy.svg @@ -0,0 +1,3 @@ +<svg height="1024" width="896" xmlns="http://www.w3.org/2000/svg"> + <path d="M128 768h256v64H128v-64z m320-384H128v64h320v-64z m128 192V448L384 640l192 192V704h320V576H576z m-288-64H128v64h160v-64zM128 704h160v-64H128v64z m576 64h64v128c-1 18-7 33-19 45s-27 18-45 19H64c-35 0-64-29-64-64V192c0-35 29-64 64-64h192C256 57 313 0 384 0s128 57 128 128h192c35 0 64 29 64 64v320h-64V320H64v576h640V768zM128 256h512c0-35-29-64-64-64h-64c-35 0-64-29-64-64s-29-64-64-64-64 29-64 64-29 64-64 64h-64c-35 0-64 29-64 64z"/> +</svg>
\ No newline at end of file diff --git a/docs/website/images/email.png b/docs/website/images/email.png Binary files differnew file mode 100644 index 0000000000..367dadc7f1 --- /dev/null +++ b/docs/website/images/email.png diff --git a/docs/website/images/gift.png b/docs/website/images/gift.png Binary files differnew file mode 100644 index 0000000000..f527f82837 --- /dev/null +++ b/docs/website/images/gift.png diff --git a/docs/website/images/glyphicons-halflings-white.png b/docs/website/images/glyphicons-halflings-white.png Binary files differdeleted file mode 100644 index 3bf6484a29..0000000000 --- a/docs/website/images/glyphicons-halflings-white.png +++ /dev/null diff --git a/docs/website/images/glyphicons-halflings.png b/docs/website/images/glyphicons-halflings.png Binary files differdeleted file mode 100644 index a996999320..0000000000 --- a/docs/website/images/glyphicons-halflings.png +++ /dev/null diff --git a/docs/website/images/gplus.png b/docs/website/images/gplus.png Binary files differdeleted file mode 100644 index 0ec57bbe26..0000000000 --- a/docs/website/images/gplus.png +++ /dev/null diff --git a/docs/website/images/hammer.png b/docs/website/images/hammer.png Binary files differnew file mode 100644 index 0000000000..454a5e5814 --- /dev/null +++ b/docs/website/images/hammer.png diff --git a/docs/website/images/irc.png b/docs/website/images/irc.png Binary files differnew file mode 100644 index 0000000000..442be4d74d --- /dev/null +++ b/docs/website/images/irc.png diff --git a/docs/website/images/menuconfig.png b/docs/website/images/menuconfig.png Binary files differindex dffddfa469..423694f3e3 100644 --- a/docs/website/images/menuconfig.png +++ b/docs/website/images/menuconfig.png diff --git a/docs/website/images/menuconfig_small.png b/docs/website/images/menuconfig_small.png Binary files differdeleted file mode 100644 index dffddfa469..0000000000 --- a/docs/website/images/menuconfig_small.png +++ /dev/null diff --git a/docs/website/images/nconfig.png b/docs/website/images/nconfig.png Binary files differnew file mode 100644 index 0000000000..cc05d6e8e8 --- /dev/null +++ b/docs/website/images/nconfig.png diff --git a/docs/website/images/package.png b/docs/website/images/package.png Binary files differnew file mode 100644 index 0000000000..9dd8b1e0a1 --- /dev/null +++ b/docs/website/images/package.png diff --git a/docs/website/images/pdf-icon.png b/docs/website/images/pdf-icon.png Binary files differnew file mode 100644 index 0000000000..71ae983de7 --- /dev/null +++ b/docs/website/images/pdf-icon.png diff --git a/docs/website/images/text.png b/docs/website/images/text.png Binary files differnew file mode 100644 index 0000000000..e2eee546f8 --- /dev/null +++ b/docs/website/images/text.png diff --git a/docs/website/images/tux-flat.png b/docs/website/images/tux-flat.png Binary files differnew file mode 100644 index 0000000000..782699f5ee --- /dev/null +++ b/docs/website/images/tux-flat.png diff --git a/docs/website/images/valid-html401.png b/docs/website/images/valid-html401.png Binary files differdeleted file mode 100644 index ec9bc0ce00..0000000000 --- a/docs/website/images/valid-html401.png +++ /dev/null diff --git a/docs/website/images/xconfig.png b/docs/website/images/xconfig.png Binary files differnew file mode 100644 index 0000000000..cb99a3a353 --- /dev/null +++ b/docs/website/images/xconfig.png diff --git a/docs/website/images/zip.png b/docs/website/images/zip.png Binary files differnew file mode 100644 index 0000000000..02a1dc1134 --- /dev/null +++ b/docs/website/images/zip.png diff --git a/docs/website/index.html b/docs/website/index.html index c6882fb48c..61c2248955 100644 --- a/docs/website/index.html +++ b/docs/website/index.html @@ -1,47 +1,151 @@ <!--#include file="header.html" --> -<div class="row"> - <div class="container" style="width:100%"> - <div class="col-sm-10 col-sm-offset-1 jumbotron"> - <div class="row"> - <div class="col-sm-9"> - <h1>Buildroot<br/><small>Making Embedded Linux Easy</small></h1> - <p>Buildroot is a simple, efficient and easy-to-use tool to generate - embedded Linux systems through cross-compilation.</p> - </div> - <div class="col-sm-3"> - <img src="images/logo.png" class="center-block" style="width:170px; heigth:170px;" - alt="Buildroot logo" /> - </div> + +<div id="headerwrap"> + <div class="container"> + <div class="row"> + <div class="col-sm-6"> + <img class="img-responsive center-block" src="images/logo.png" alt="" style="max-width:300px"> + </div><!-- /col-lg-6 --> + <div class="col-sm-6"> + <h1>Buildroot<br> + <small>Making Embedded Linux Easy</small></h1> + <div class="col-sm-6" style="margin-top:1em; padding-left:0px;"> + <a class="btn btn-default btn-lg" style="width:100%;" href="#about"><span class="glyphicon glyphicon-info-sign"></span> Learn more</a> + </div> + <div class="col-sm-6" style="margin-top:1em; padding-left:0px;"> + <a class="btn btn-default btn-lg" style="width:100%; margin-bottom: 20px;" href="/download.html"><span class="glyphicon glyphicon-cloud-download"></span> Download</a> + </div> + </div><!-- /col-lg-6 --> + </div><!-- /row --> + </div><!-- /container --> +</div><!-- /headerwrap --> + +<a name="about"></a> +<div class="container"> + <div class="row mt centered"> + <div class="col-lg-8 col-lg-offset-2"> + <h1>Buildroot is a simple, efficient and easy-to-use tool to + generate embedded Linux systems through cross-compilation.</h1> + </div> + </div><!-- /row --> + + <div class="row mt centered"> + <div class="col-md-4"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <img src="images/tux-flat.png" width="180" alt=""> + </div> + <div class="back"> + <img src="images/tux-flat.png" width="180" alt=""> + </div> + </div> + </div> + + <h4>Can handle everything</h4> + <p>Cross-compilation toolchain, root filesystem generation, + kernel image compilation and bootloader compilation.</p> + </div><!--/col-lg-4 --> + + <div class="col-md-4"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <img src="images/hammer.png" width="180" alt=""> + </div> + <div class="back"> + <img src="images/hammer.png" width="180" alt=""> + </div> + </div> </div> - <div class="row"> - <div class="col-sm-offset-5 col-sm-7"> - <div class="col-sm-6" style="margin-top:1em; padding-left:0px;"> - <a class="btn btn-primary btn-lg" style="width:100%;" href="/about.html"><span class="glyphicon glyphicon-info-sign"></span> Learn more »</a> - </div> - <div class="col-sm-6" style="margin-top:1em; padding-left:0px;"> - <a class="btn btn-primary btn-lg" style="width:100%;" href="/download.html"><span class="glyphicon glyphicon-cloud-download"></span> Download »</a> - </div> - </div> + + <h4>Is very easy</h4> + <p>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.</p> + + </div><!--/col-lg-4 --> + + <div class="col-md-4"> + <div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');"> + <div class="flipper"> + <div class="front"> + <img src="images/gift.png" width="180" alt=""> + </div> + <div class="back"> + <img src="images/gift.png" width="180" alt=""> + </div> + </div> </div> + + <h4>Supports several hundreds of packages</h4> + <p>X.org stack, Gtk3, Qt 5, GStreamer, Webkit, Kodi, a large number of network-related and system-related utilities are supported.</p> + + </div><!--/col-lg-4 --> + </div><!-- /row --> + <hr> +</div><!-- /container --> + +<div class="container"> + <div class="row mt centered"> + <div class="col-lg-6 col-lg-offset-3"> + <h1>Buildroot is for Everyone.</h1> + <h3>Has a simple structure that makes it easy to understand and extend. It relies only on the well-known Makefile language.</h3> </div> - </div> -</div> + </div><!-- /row --> -<div class="row"> - <div class="col-sm-5 col-sm-offset-1"> - <div class="panel panel-default"> - <div class="panel-body" id="commit-activity"> - <a href="http://git.buildroot.net/buildroot"><h2>Recent commits</h2></a> + <div class="row mt centered"> + <div class="col-lg-8 col-lg-offset-2"> + <div id="carousel-example-generic" class="carousel slide" data-ride="carousel"> + <!-- Wrapper for slides --> + <div class="carousel-inner"> + <div class="item active"> + <img src="images/nconfig.png" alt=""> + </div> + <div class="item"> + <img src="images/menuconfig.png" alt=""> + </div> + <div class="item"> + <img src="images/xconfig.png" alt=""> + </div> + </div> + <!-- Indicators --> + <ol class="carousel-indicators" style="margin-top:10px"> + <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li> + <li data-target="#carousel-example-generic" data-slide-to="1"></li> + <li data-target="#carousel-example-generic" data-slide-to="2"></li> + </ol> </div> + </div><!-- /col-lg-8 --> + </div><!-- /row --> +</div><!-- /container --> + +<div class="container"> + <div class="row mt centered"> + <div class="col-lg-6 col-lg-offset-3"> + <h1>Our recent activity.</h1> + <h3>Buildroot is an open source project: many developers contribute to it daily.</h3> </div> - </div> - <div class="col-sm-5" > - <div class="panel panel-default" style="min-height: 22em;"> - <div class="panel-body" id="mailing-list-activity"> - <a href="http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot"><h2>Recent discussions</h2></a> + </div><!-- /row --> +</div><!-- /container --> + +<div class="container"> + <div class="row"> + <div class="col-sm-6"> + <div class="panel panel-primary"> + <div class="panel-heading"><a href="http://git.buildroot.net/buildroot"><h5>Recent commits</h5></a></div> + <div class="panel-box panel-body ellipsis" id="commit-activity"> + </div> + </div> + </div> + <div class="col-sm-6" > + <div class="panel panel-primary"> + <div class="panel-heading"><a href="http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot"><h5>Recent discussions</h5></a></div> + <div class="panel-box panel-body ellipsis" id="mailing-list-activity"> + </div> </div> </div> </div> -</div> +</div><!-- /container --> <!--#include file="footer.html" --> diff --git a/docs/website/js/bootstrap.min.js b/docs/website/js/bootstrap.min.js deleted file mode 100644 index 7c1561a8b9..0000000000 --- a/docs/website/js/bootstrap.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.2.0 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f+', [role="menu"], [role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.2.0",c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.$body.addClass("modal-open"),this.setScrollbar(),this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one("bsTransitionEnd",function(){c.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(300):c.$element.trigger("focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.$body.removeClass("modal-open"),this.resetScrollbar(),this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;if(this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2.0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-k<o.left?"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger("shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass("fade")?e.one("bsTransitionEnd",q).emulateTransitionEnd(150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?2*k.left-e+i:2*k.top-f+j,m=k.left?"left":"top",n=k.left?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(l,d[0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.removeAttr("aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one("bsTransitionEnd",b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName;return a.extend({},"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:0,left:0}:b.offset())},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file diff --git a/docs/website/js/buildroot.js b/docs/website/js/buildroot.js index 83a3ac0305..2fd3b7811b 100644 --- a/docs/website/js/buildroot.js +++ b/docs/website/js/buildroot.js @@ -53,6 +53,21 @@ function google_analytics() { s.parentNode.insertBefore(ga, s); } +$(function() { + $('a[href*=#]:not([href=#])').click(function() { + if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { + var 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; + } + } + }); +}); + google.load("feeds", "1"); google.setOnLoadCallback(initialize); google_analytics(); @@ -62,4 +77,37 @@ jQuery(document).ready(function($) { // Get the basename of the URL url = url.split(/[\\/]/).pop() $('.nav a[href="/' + url + '"]').parent().addClass('active'); + + $('#slides').html('<iframe src="http://docs.google.com/gview?url=http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf&embedded=true" style="position:absolute; width:100%; height:100%; top:0; left:0;" frameborder="0"></iframe>') +}); + +function showTooltip(elem, msg) { + elem.setAttribute('class', 'btn tooltipped tooltipped-s'); + elem.setAttribute('aria-label', msg); +} + +var 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) { + var 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; + } + } + }); }); diff --git a/docs/website/js/jquery-1.11.1.min.js b/docs/website/js/jquery-1.11.1.min.js deleted file mode 100644 index ab28a24729..0000000000 --- a/docs/website/js/jquery-1.11.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; -if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px") -},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m}); diff --git a/docs/website/news.html b/docs/website/news.html index 23b5f7e716..89c5062c9f 100644 --- a/docs/website/news.html +++ b/docs/website/news.html @@ -1,1547 +1,2766 @@ <!--#include file="header.html" --> -<div class="row"> -<div class="col-sm-10 col-sm-offset-1"> - -<h2>News</h2> - -<p> - -<ul> - <li><b>xxx November 2015 -- 2015.11-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see - the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.11-rc1">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.11-rc1.tar.bz2">2015.11-rc1 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>6 September 2015 -- 2015.08.1 released</b> - - <p>The 2015.08.1 bugfix release is out - Thanks to everyone - contributing. This release fixes critical issues discovered since - the 2015.08 release. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.08.1">CHANGES</a> - file for more details, - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.08.1.tar.bz2">2015.08.1 release</a>.</p> - - <li><b>31 August 2015 -- 2015.08 released</b> - - <p>The stable 2015.08 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.08">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2015-August/138336.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.08.tar.bz2">2015.08 release</a>.</p> - - <li><b>24 August 2015 -- 2015.08-rc2 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see - the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.08-rc2">CHANGES</a> - file for details, and - the <a href="http://lists.buildroot.org/pipermail/buildroot/2015-August/137879.html">release - announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.08-rc2.tar.bz2">2015.08-rc2 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>5 August 2015 -- 2015.08-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see - the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.08-rc1">CHANGES</a> - file for details, read - the <a href="http://lists.buildroot.org/pipermail/buildroot/2015-August/135417.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.08-rc1.tar.bz2">2015.08-rc1 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>31 May 2015 -- 2015.05 released</b> - - <p>The stable 2015.05 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.05">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2015-May/129209.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.05.tar.bz2">2015.05 release</a>.</p> - - <li><b>22 May 2015 -- 2015.05-rc3 released</b> - - <p>Release candidate 3 is out with more cleanups and security / build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.05-rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.02-rc5.tar.bz2">2015.05-rc3 - release candidate</a>, and report any problems found to the <a - href="lists.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>11 May 2015 -- 2015.05-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.05-rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.05-rc2.tar.bz2">2015.05-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>4 May 2015 -- 2015.05-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.05-rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2015-May/127794.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.05-rc1.tar.bz2">2015.05-rc1 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>1 March 2015 -- 2015.02 released</b> - - <p>The stable 2015.02 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.02">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2015-March/120396.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.02.tar.bz2">2015.02 release</a>.</p> - - <li><b>24 February 2015 -- 2015.02-rc3 released</b> - - <p>Release candidate 3 is out with more cleanups and security / build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.02-rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.02-rc3.tar.bz2">2015.02-rc3 - release candidate</a>, and report any problems found to the <a - href="lists.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>15 February 2015 -- 2015.02-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.02-rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.02-rc2.tar.bz2">2015.02-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>8 February 2015 -- 2015.02-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.02-rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2015-February/118982.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2015.02-rc1.tar.bz2">2015.02-rc1 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>1 December 2014 -- 2014.11 released</b> - - <p>The stable 2014.11 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11">CHANGES</a> - file for more details, - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.11.tar.bz2">2014.11 release</a>.</p> - - <li><b>28 November 2014 -- 2014.11-rc3 released</b> - - <p>Release candidate 3 is out with more cleanups and build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.11-rc3.tar.bz2">2014.11-rc3 - release candidate</a>, and report any problems found to the <a - href="lists.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>21 November 2014 -- 2014.11-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.11-rc2.tar.bz2">2014.11-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>13 November 2014 -- Report from Buildroot Developers Meeting</b> - - <p>A report from the recent - <a href="http://elinux.org/Buildroot:DeveloperDaysELCE2014"> - Buildroot Developers Meeting</a> is now - <a href="http://lists.buildroot.org/pipermail/buildroot/2014-October/109966.html">available</a>.</p> - - <p>Once again, thanks to all the participants and to - <a href="http://www.mind.be">Mind</a> for sponsoring the event.</p> - - <p>The next Developer Days will take place on February 2nd and 3rd - in Brussels, Belgium, right after <a - href="http://fosdem.org">FOSDEM</a>. See the <a - href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2015">wiki</a> - for more details.</p> - - <li><b>12 November 2014 -- 2014.11-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2014-November/111946.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.11-rc1.tar.bz2">2014.11-rc1 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>1 September 2014 -- 2014.08 released</b> - - <p>The stable 2014.08 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2014-September/105257.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.08.tar.bz2">2014.08 release</a>.</p> - - <li><b>26 August 2014 -- 2014.08-rc3 released</b> - - <p>Release candidate 3 is out with more cleanups and build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.08-rc3.tar.bz2">2014.08-rc3 - release candidate</a>, and report any problems found to the <a - href="lists.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>18 August 2014 -- 2014.08-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.08-rc2.tar.bz2">2014.08-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>8 August 2014 -- 2014.08-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2014-August/103972.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.08-rc1.tar.bz2">2014.08-rc1 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>31 May 2014 -- 2014.05 released</b> - - <p>The stable 2014.05 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.05">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2014-May/097863.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.05.tar.bz2">2014.05 release</a>.</p> - - <li><b>28 May 2014 -- 2014.05-rc3 released</b> - - <p>Release candidate 3 is out with more cleanups and build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.05-rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.05-rc3.tar.bz2">2014.05-rc3 - release candidate</a>, and report any problems found to the <a - href="lists.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>21 May 2014 -- 2014.05-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.05-rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.05-rc2.tar.bz2">2014.05-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>13 May 2014 -- 2014.05-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.05-rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2014-May/096492.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.05-rc1.tar.bz2">2014.05-rc1 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>27 February 2014 -- 2014.02 released</b> - - <p>The stable 2014.02 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.02">CHANGES</a> - file for more details, - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.02.tar.bz2">2014.02 release</a>.</p> - - <li><b>25 February 2014 -- 2014.02-rc3 released</b> - - <p>Release candidate 3 is out with more cleanups and build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.02-rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.02-rc3.tar.bz2">2014.02-rc3 - release candidate</a>, and report any problems found to the <a - href="lists.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>20 February 2014 -- 2014.02-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.02-rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.02-rc2.tar.bz2">2014.02-rc2 - release candidate</a>, and report any problems found to the <a - href="lists.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>11 February 2014 -- 2014.02-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.02-rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2014-February/089055.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2014.02-rc1.tar.bz2">2014.02-rc1 - release candidate</a>, and report any problems found to the - <a href="support.html">mailing list</a> or - <a href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>9 February 2014 -- Report from Buildroot Developers Meeting</b> - - <p>A report from the recent - <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2014"> - Buildroot Developers Meeting</a> is now - <a href="http://lists.buildroot.org/pipermail/buildroot/2014-February/088373.html">available</a>.</p> - - <p>Once again, thanks to all the participants and to - <a href="http://www.google.com">Google</a> and - <a href="http://www.mind.be">Mind</a> for sponsoring the event.</p> - - <li><b>30 January 2014 -- Upcoming Buildroot Developers meeting</b> - - <p>The upcoming Buildroot Developers meeting will take place in - Brussels on February, 3rd and 4th, after the - <a href="http://www.fosdem.org">FOSDEM</a> conference. Additional - details about the meeting can be found on the corresponding - <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2014"> - wiki page</a>.</p> - - <p>Persons not able to join the meeting in Brussels can participate - remotely using Google Hangouts. Simply give your Google address to - <code>thomas.petazzoni@free-electrons.com</code>.</p> - - <p>This meeting is sponsored by - <a href="http://www.google.com">Google</a> (for the meeting room) - and <a href="http://www.mind.be">Mind</a> (for the dinner). - Thanks to our sponsors!</p> - - <li><b>30 November 2013 -- 2013.11 released</b> - - <p>The stable 2013.11 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.11">CHANGES</a> - file for more details, read the <a href="http://lists.buildroot.org/pipermail/buildroot/2013-November/083600.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.11.tar.bz2">2013.11 release</a>.</p> - - <li><b>30 November 2013 -- Slides from Embedded Linux Conference Europe</b> - - <p>The slides from the Buildroot presentation at the recent - <a href="http://events.linuxfoundation.org/events/embedded-linux-conference-europe">Embedded Linux Conference Europe 2013</a> - are now - <a href="http://elinux.org/images/2/23/Buildroot-whats-new-elce2013.pdf">available</a>.</p> - - <li><b>18 November 2013 -- 2013.11-rc3 released</b> - - <p>Another week, another release candidate with more fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.11-rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.11-rc3.tar.bz2">2013.11-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>18 November 2013 -- 2013.11-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.11-rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.11-rc2.tar.bz2">2013.11-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>13 November 2013 -- Announcement of the next Buildroot Developer Days</b> - - <p>The next <i>Buildroot Developer Days</i> meeting will take - place on Monday 3rd and Tuesday 4th February 2014 in Brussels, - Belgium - Just after - <a href="http://www.fosdem.org">FOSDEM</a> (February - 1st/2nd). This two days meeting is mainly open to Buildroot - developers and contributors, or Buildroot users having a prior - experience with the tool. It will allow developers to work on - Buildroot and discuss current issues, the future directions, and - more.</p> - - <p>In addition to the Buildroot event, we encourage embedded Linux - developers to propose talks for the Embedded and Mobile Developer - Room at FOSDEM. See - the <a href="https://lists.fosdem.org/pipermail/fosdem/2013-October/001870.html">CFP</a>.</p> - - <p>We would like to thank our - sponsor <a href="http://www.google.com">Google</a> for sponsoring - the event by providing all the needed logistics.</p> - - <p>For more details, see the - <a href="http://www.elinux.org/Buildroot:DeveloperDaysFOSDEM2014">wiki - page</a> dedicated to the meeting.</p> - - <li><b>12 November 2013 -- 2013.11-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.11_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2013-November/082514.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.11-rc1.tar.bz2">2013.11-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>11 November 2013 -- Report from Buildroot Developers Meeting</b> - - <p>A report from the recent - <a href="http://elinux.org/Buildroot:DeveloperDaysELCE2013"> - Buildroot Developers Meeting</a> is now - <a href="http://lists.buildroot.org/pipermail/buildroot/2013-November/082401.html">available</a>.</p> - - <p>Once again, thanks to all the participants and to - <a href="http://www.imgtec.com/">Imagination Technologies</a> - for sponsoring the event.</p> - - <li><b>17 September 2013 -- 2013.08.1 released</b> - - <p>The 2013.08.1 bugfix release is out - Thanks to everyone - contributing. This release fixes critical issues discovered since - the 2013.08 release. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08.1">CHANGES</a> - file for more details, - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.08.1.tar.bz2">2013.08.1 release</a>.</p> - - <li><b>16 September 2013 -- Buildroot Developer Days</b> - - <p>The next <i>Buildroot Developer Days</i> meeting will take - place on Saturday October 26th and Sunday October 27th 2013 in - Edinburgh, UK - Just after the <a - href="https://events.linuxfoundation.org/events/embedded-linux-conference-europe"> - Embedded Linux Conference Europe</a> (October 23th-24th). This two - days meeting is mainly open to Buildroot developers and - contributors, or Buildroot users having a prior experience with - the tool. It will allow developers to work on Buildroot and - discuss current issues, the future directions, and more.</p> - - <p>For more details, see the - <a href="http://www.elinux.org/Buildroot:DeveloperDaysELCE2013">wiki - page</a> dedicated to the meeting.</p> - - <li><b>31 August 2013 -- 2013.08 released</b> - - <p>The stable 2013.08 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08">CHANGES</a> - file for more details, read the <a href="http://lists.buildroot.org/pipermail/buildroot/2013-August/077224.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.08.tar.bz2">2013.08 release</a>.</p> - - <li><b>29 August 2013 -- 2013.08-rc3 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08_rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.08-rc3.tar.bz2">2013.08-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>16 August 2013 -- 2013.08-rc2 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see - the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08_rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.08-rc2.tar.bz2">2013.08-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>5 August 2013 -- 2013.08-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see - the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08_rc1">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.08-rc1.tar.bz2">2013.08-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>31 May 2013 -- 2013.05 released</b> - - <p>The stable 2013.05 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.05">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2013-May/073121.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.05.tar.bz2">2013.05 release</a>.</p> - - <li><b>25 May 2013 -- 2013.05-rc3 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.05_rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.05-rc3.tar.bz2">2013.05-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>15 May 2013 -- 2013.05-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.05_rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.05-rc2.tar.bz2">2013.05-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>8 May 2013 -- 2013.05-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.05_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2013-May/071737.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.05-rc1.tar.bz2">2013.05-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>28 February 2013 -- 2013.02 released</b> - - <p>The stable 2013.02 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02">CHANGES</a> - file for more details - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.02.tar.bz2">2013.02 release</a>.</p> - - <li><b>26 February 2013 -- 2013.02-rc3 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02_rc3">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.02-rc3.tar.bz2">2013.02-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>19 February 2013 -- 2013.02-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02_rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.02-rc2.tar.bz2">2013.02-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>10 February 2013 -- 2013.02-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2013-February/067148.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2013.02-rc1.tar.bz2">2013.02-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>10 February 2013 -- Report from Buildroot Developers Meeting</b> - - <p>A report from the recent Buildroot Developers Meeting is now - <a href="http://lists.buildroot.org/pipermail/buildroot/2013-February/067105.html">available</a>. - <a href="http://emlinews.net">Embedded Linux News</a> also has a - <a href="http://www.emlinews.net/2013/02/buildroot-developers-meeting-report/"> - writeup about the event</a>, including photos.</p> - - <p>Once again, thanks to all the participants and to - <a href="http://www.google.com">Google</a> for sponsoring the event.</p> - - <li><b>12 January 2013 -- Next Buildroot Developers Meeting next to FOSDEM, Brussels</b> - - <p>The next Buildroot Developers Meeting will take place on Monday - 4th February 2013 and Tuesday 5th February 2013 in Brussels, - Belgium. Those dates have been chosen to immediately follow the - great <a href="http://www.fosdem.org">FOSDEM</a> conference.</p> - - <p>Attending this meeting is free, after registration by - contacting <a href="mailto:thomas.petazzoni@free-electrons.com">Thomas - Petazzoni</a>. For more details about the meeting, please see - the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013">related - Wiki page</a>.</p> - - <p>We would like to - thank <a href="http://www.google.com">Google</a> for providing the - meeting location and the Internet connection, and offering free - lunch and refreshments to the participants.</p> - - <li><b>3 January 2013 -- 2012.11.1 released</b> - - <p>The 2012.11.1 bugfix release is out - Thanks to everyone - contributing. This release fixes critical issues discovered since - the 2012.11 release, most importantly with non-largefile builds on - recent Ubuntu versions. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11.1">CHANGES</a> - file for more details, - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.11.1.tar.bz2">2012.11.1 release</a>.</p> - - <li><b>2 December 2012 -- 2012.11 released</b> - - <p>The stable 2012.11 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11">CHANGES</a> - file for more details - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.11.tar.bz2">2012.11 release</a>.</p> - - <li><b>30 November 2012 -- 2012.11-rc2 released</b> - - <p>RC2 is out with more bugfixes - See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11_rc2">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.11-rc2.tar.bz2">2012.11-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>17 November 2012 -- 2012.11-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2012-November/061995.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.11-rc1.tar.bz2">2012.11-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>17 November 2012 -- Buildroot Developer Day</b> - - <p>A report from the recent <i>Buildroot Developer Days</i> meeting - in Barcelona, Spain is now <a - href="http://lists.buildroot.org/pipermail/buildroot/2012-November/061558.html">available</a>. - Many thanks to all the participants, and a special thanks to Arnout - Vandecappelle from <a href="http://mind.be/">mind</a> for taking - notes and Thomas Petazzoni from <a - href="http://free-electrons.com/">Free Electrons</a> for handling - all the practical arrangements, and naturally our sponsors, <a - href="http://www.fluendo.com/">Fluendo</a> and <a href="http://www.synopsys.com/">Synopsis</a>. - </p> - <p>The next Developer Days will take place on February 4th and 5th - in Brussels, Belgium, right after <a href="http://fosdem.org">FOSDEM</a>.</p> - - <li><b>31 August 2012 -- 2012.08 released</b> - - <p>The stable 2012.08 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.08">CHANGES</a> - file for more details and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.08.tar.bz2">2012.08 release</a>.</p> - - <li><b>25 August 2012 -- 2012.08-rc3 released</b> - - <p>We have a new release candidate! Various fixes, and addition - of licensing informations on many - packages. See <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.08_rc3">CHANGES</a> - file for details</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.08-rc3.tar.bz2">2012.08-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>15 August 2012 -- 2012.08-rc2 released</b> - - <p>We have a new release candidate! Various fixes, and addition - of licensing informations on many - packages. See <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.08_rc2">CHANGES</a> - file for details</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.08-rc2.tar.bz2">2012.08-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>1 August 2012 -- 2012.08-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.08_rc1">CHANGES</a> - file for details</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.08-rc1.tar.bz2">2012.08-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>22 July 2012 -- Buildroot Developer Day</b> - - <p>The next <i>Buildroot Developer Day</i> meeting will take place - on Saturday November 3th and Sunday November 4th 2012 in - Barcelona, Spain, just before - the <a href="https://events.linuxfoundation.org/events/embedded-linux-conference-europe">Embedded - Linux Conference Europe</a> (November 5th-7th). This two days - meeting is mainly opened to Buildroot developers and contributors, - or Buildroot users having a prior experience with the tool. This - meeting will allow developers to work and Buildroot, and discuss - current issues, the future directions, and more.</p> - - <p>For more details, see - the <a href="http://elinux.org/Buildroot#Buildroot_Developers_Meeting.2C_3-4_November_2012.2C_Barcelona_Spain">wiki - page</a> dedicated to the meeting.</p> - - <li><b>30 May 2012 -- 2012.05 released</b> - - <p>The stable 2012.05 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.05">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2012-May/054342.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.05.tar.bz2">2012.05 release</a>.</p> - - <li><b>25 May 2012 -- 2012.05-rc3 released</b> - - <p>RC3 is out with more bugfixes - See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.05_rc3">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.05-rc3.tar.bz2">2012.05-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>18 May 2012 -- 2012.05-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.05_rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.05-rc2.tar.bz2">2012.05-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>10 May 2012 -- 2012.05-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.05_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2012-May/053736.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.05-rc1.tar.bz2">2012.05-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>20 April 2012 -- Autobuilder Results Online</b> - - <p>The status of the autobuilders, which do repeated - <code>randpackageconfig</code> builds for continuous integration - testing, is now online at <a - href='http://autobuild.buildroot.org'>autobuild.buildroot.org</a>. The - code behind it can be found in <a - href='http://git.buildroot.net/buildroot-test/'>git</a>.</p> - - <p>Thanks to Thomas Petazzoni for running the web interface, and - to <a href='http://gcc.gnu.org/wiki/CompileFarm'>The GCC Compile - Farm</a> and <a href='http://free-electrons.com/'>Free - Electrons</a> for hosting builders. Thomas also sends out a daily - summary of the build status to the mailing list.</p> - - <li><b>29 February 2012 -- 2012.02 released</b> - - <p>The stable 2012.02 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2012-February/050752.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.02.tar.bz2">2012.02 release</a>.</p> - - <li><b>27 February 2012 -- 2012.02-rc3 released</b> - - <p>RC3 is out with more bugfixes - See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02_rc3">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.02-rc3.tar.bz2">2012.02-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>19 February 2012 -- 2012.02-rc2 released</b> - - <p>Another week, another release candidate with more cleanups and - build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02_rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.02-rc2.tar.bz2">2012.02-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>12 February 2012 -- 2012.02-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2012-February/050234.html">announcement</a>.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2012.02-rc1.tar.bz2">2012.02-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>31 January 2012 -- Buildroot Developer Day</b> - - <p>Another <i>Buildroot Developer Day</i> will take place on - Friday, February 3rd in Brussels, Belgium - The day before <a - href="http://fosdem.org">FOSDEM</a>. See the - <a href="http://lists.buildroot.org/pipermail/buildroot/2012-January/049340.html">announcement</a> - or the <a href="http://free-electrons.com/blog/bdd-2012-brussels/">Free Electrons blog</a> - for more info.</p> - - <li><b>30 November 2011 -- 2011.11 released</b> - - <p>The stable 2011.11 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2011-November/047926.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.11.tar.bz2">2011.11 release</a>.</p> - - <li><b>26 November 2011 -- 2011.11-rc3 released</b> - - <p>RC3 is out with more bugfixes - See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc3">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.11-rc3.tar.bz2">2011.11-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>18 November 2011 -- 2011.11-rc2 released</b> - - <p>Another week, another release candidate with a bunch of - cleanups and build fixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.11-rc2.tar.bz2">2011.11-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>11 November 2011 -- 2011.11-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2011-November/047395.html">announcement</a> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.11-rc1.tar.bz2">2011.11-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>31 August 2011 -- 2011.08 released</b> - - <p>The stable 2011.08 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08">CHANGES</a> - file for more details, and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.08.tar.bz2">2011.08 release</a>.</p> - - <li><b>29 August 2011 -- 2011.08-rc2 released</b> - - <p>RC2 is out with more bugfixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08_rc2">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2011-August/045211.html">announcement</a>. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.08-rc2.tar.bz2">2011.08-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>4 August 2011 -- 2011.08-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2011-August/044855.html">announcement</a>. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.08-rc1.tar.bz2">2011.08-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>27 May 2011 -- 2011.05 released</b> - - <p>The stable 2011.05 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05">CHANGES</a> - file for more details, and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.05.tar.bz2">2011.05 release</a>.</p> - - <li><b>24 May 2011 -- 2011.05-rc2 released</b> - - <p>RC2 is out with more bugfixes. See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05_rc2">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.05-rc2.tar.bz2">2011.05-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>18 May 2011 -- 2011.05-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2011-May/043317.html">announcement</a>. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.05-rc1.tar.bz2">2011.05-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>28 February 2011 -- 2011.02 released</b> - - <p>The stable 2011.02 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2011-February/041662.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.02.tar.bz2">2011.02 release</a>.</p> - - <li><b>24 February 2011 -- 2011.02-rc2 released</b> - - <p>RC2 is out with more cleanups and bugfixes, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02_rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.02-rc2.tar.bz2">2011.02-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>14 February 2011 -- 2011.02-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2011-February/041365.html">announcement</a>. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2011.02-rc1.tar.bz2">2011.02-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>30 November 2010 -- 2010.11 released</b> - - <p>The stable 2010.11 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2010-November/039135.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.11.tar.bz2">2010.11 release</a>.</p> - - <li><b>25 November 2010 -- 2010.11-rc2 released</b> - - <p>RC2 is out with more cleanups and bugfixes, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11_rc2">CHANGES</a> - file for details.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.11-rc2.tar.bz2">2010.11-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>8 November 2010 -- 2010.11-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11_rc1">CHANGES</a> - file for details, and read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2010-November/038645.html">announcement</a>. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.11-rc1.tar.bz2">2010.11-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>28 September 2010 - Buildroot Developer Day</b> - - <p>A <i>Buildroot Developer Day</i> will take place on - Friday, October 29th in Cambridge, UK - Just the day after the - <a href="http://www.embeddedlinuxconference.com/elc_europe10/">Embedded - Linux Conference Europe</a>. This <i>Developer Day</i> aims - at allowing Buildroot developers to meet and exchange ideas on the - project and its future. See the - <a href="http://lists.buildroot.org/pipermail/buildroot/2010-September/037930.html">announcement</a> - for more info.</p> - - <p>Thanks to Thomas Petazzoni for taking care of the practical - arrangements.</p> - - <li><b>31 August 2010 -- 2010.08 released</b> - - <p>The stable 2010.08 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2010-August/037078.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.08.tar.bz2">2010.08 release</a>.</p> - - <li><b>30 August 2010 -- 2010.08-rc2 released</b> - - <p>RC2 is out with more cleanups and bugfixes, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08_rc2">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.08-rc2.tar.bz2">2010.08-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - This is very much expected to be the final release - candidate, so give it a good test and expect a final 2010.08 - release before September unless critical issues are found.</p> - - <li><b>30 July 2010 -- 2010.08-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08_rc1">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.08-rc1.tar.bz2">2010.08-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>30 May 2010 -- 2010.05 released</b> - - <p>The stable 2010.05 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05">CHANGES</a> - file for more details, read the - <a href="http://lists.buildroot.org/pipermail/buildroot/2010-May/034878.html">announcement</a> - and go to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.05.tar.bz2">2010.05 release</a>.</p> - - <li><b>27 May 2010 -- 2010.05-rc3 released</b> - - <p>RC3 is out with more cleanups and bugfixes, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05_rc3">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.05-rc3.tar.bz2">2010.05-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>11 May 2010 -- 2010.05-rc2 released</b> - - <p>Another week, another release candidate with a bunch of - cleanups and build fixes.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.05-rc2.tar.bz2">2010.05-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>3 May 2010 -- 2010.05-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05_rc1">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.05-rc1.tar.bz2">2010.05-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>2 May 2010 - FOSDEM slides online</b> - - <p>The slides from the <a - href="http://fosdem.org/2010/schedule/events/emb_cross_build">Cross - Build Systems: Present & Future</a> session at <a - href="http://fosdem.org/2010">FOSDEM</a> are now <a - href="http://send-patches.org/news/20100211-1-FOSDEM-Crossdev-Workshop.pdf">online</a>. - - <li><b>26 February 2010 -- 2010.02 released</b> - - <p>The stable 2010.02 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02">CHANGES</a> - file for more details, and go to the <a href="/downloads/">downloads page</a> - to pick up the <a href="/downloads/buildroot-2010.02.tar.bz2">2010.02 - release</a>.</p> - - <li><b>23 February 2010 -- 2010.02-rc2 released</b> - - <p>RC2 is out with more cleanups and bugfixes, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02_rc2">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.02-rc2.tar.bz2">2010.02-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>9 February 2010 -- 2010.02-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02_rc1">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2010.02-rc1.tar.bz2">2010.02-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>1 December 2009 -- 2009.11 released</b> - - <p>The stable 2009.11 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://lists.buildroot.org/pipermail/buildroot/2009-December/030672.html">announcement</a> - or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11">CHANGES</a> - for more details, and go to the <a href="/downloads/">downloads page</a> - to pick up the <a href="/downloads/buildroot-2009.11.tar.bz2">2009.11 - release</a>.</p> - - <li><b>29 November 2009 -- 2009.11-rc2 released</b> - - <p>RC2 is out with more cleanups and bugfixes, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11_rc2">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.11-rc2.tar.bz2">2009.11-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>23 November 2009 -- 2009.11-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11_rc1">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.11-rc1.tar.bz2">2009.11-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>7 September 2009 -- First Buildroot Developer Day</b> - - <p>The first <i>Buildroot Developer Day</i> will take place on - Saturday, October 17th in Grenoble, France, just the day after - Embedded Linux Conference Europe. This <i>Developer Day</i> aims - at allowing Buildroot developers to meet and exchange ideas on the - project and its future.</p> - - <p>As the number of places is limited, interested candidates are - invited to send an e-mail to Peter Korsgaard (<code>jacmet at - uclibc dot org</code>) and Thomas Petazzoni (<code>thomas dot - petazzoni at free-electrons dot com</code>).</p> - - <p>This <i>Developer Day</i> will take place thanks to the - sponsoring of <a href="http://www.calao-systems.com">Calao - Systems</a> and <a href="http://www.free-electrons.com">Free - Electrons</a>.</p> - - <li><b>31 August 2009 -- 2009.08 released</b> - - <p>The stable 2009.08 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://lists.buildroot.org/pipermail/buildroot/2009-August/029018.html">announcement</a> - or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08">CHANGES</a> - for more details, and go to the <a href="/downloads/">downloads page</a> - to pick up the <a href="/downloads/buildroot-2009.08.tar.bz2">2009.08 - release</a>.</p> - - <li><b>26 August 2009 -- 2009.08-rc3 released</b> - <p>A number of bugfixes have been added to the tree since RC2 - (especially thanks to Thomas Petazzoni) - See the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc3">CHANGES</a> - file for details. This is very much expected to be the final release - candidate, so give it a good test and expect a final 2009.08 - release next weekend unless critical issues are found.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.08-rc3.tar.bz2">2009.08-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>6 August 2009 -- 2009.08-rc2 released</b> - - <p>RC2 is out with more cleanups and bugfixes, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc2">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.08-rc2.tar.bz2">2009.08-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>2 August 2009 -- 2009.08-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc1">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.08-rc1.tar.bz2">2009.08-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>1 June 2009 -- 2009.05 released</b> - - <p>The stable 2009.05 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://lists.buildroot.org/pipermail/buildroot/2009-June/027640.html">announcement</a> - or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05">CHANGES</a> - for more details, and go to the <a href="/downloads/">downloads page</a> - to pick up the <a href="/downloads/buildroot-2009.05.tar.bz2">2009.05 - release</a>.</p> - - <li><b>27 May 2009 -- 2009.05-rc3 released</b> - - <p>We had a number of fixes post-RC2, so RC3 is out (see <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc3">CHANGES</a> - for details). Now is the moment to test and verify that everything - is working for your favorite config - Expect a final 2009.05 very soon.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.05-rc3.tar.bz2">2009.05-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>19 May 2009 -- 2009.05-rc2 released</b> - - <p>RC2 is out with more cleanups and bug fixes (see <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc2">CHANGES</a>). - Unless big issues are found, expect this to be the last release - candidate before the release - So give it a good test.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.05-rc2.tar.bz2">2009.05-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>14 May 2009 -- Buildroot.org</b> - - <p>Earl Levine has been so kind to donate the <b>buildroot.org</b> - domain to us, so the website can now also be reached at <a - href="http://www.buildroot.org">www.buildroot.org</a> (and git at - <a href="http://git.buildroot.org/buildroot">git.buildroot.org</a>). - - Thanks a lot Earl!</p> - - <li><b>5 May 2009 -- 2009.05-rc1 released</b> - - <p>We have a new release candidate! Lots of changes all over the - tree, see the <a - href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc1">CHANGES</a> - file for details. - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.05-rc1.tar.bz2">2009.05-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>3 May 2009 -- Moved to git</b> - - <p>We've moved the source code from <a - href="http://subversion.tigris.org">Subversion</a> to <a - href="http://git-scm.org">Git</a>. You can browse the repo online - <a href="http://git.buildroot.net/buildroot">here</a>, and clone - the repo using: - <pre>git clone git://git.buildroot.net/buildroot</pre> - See the <a href="/git.html">Git Access</a> page for more details. - </p> - - <li><b>27 March 2009 -- new Logo</b> - - <p>We have a <a href="images/logo.png">logo</a>! We have so far - been using the <a href="http://busybox.net">Busybox</a> logo on - the website, as the website was a copy of the <a - href="http://busybox.net">Busybox</a> one - But not anymore, we - now have a shiny new logo of our own.</p> - - <li><b>12 February 2009 -- 2009.02 released</b> - <p>The stable 2009.02 release is out - Thanks to everyone - contributing and testing the release candidates. See the - <a href="http://lists.buildroot.org/pipermail/buildroot/2009-February/025974.html">announcement</a> - for more details, and go to the <a href="/downloads/">downloads page</a> - to pick up the <a href="/downloads/buildroot-2009.02.tar.bz2">2009.02 - release</a>.</p> - - <li><b>9 February 2009 -- 2009.02-rc4 released</b> - <p>We had more than 50 changes since RC3, several of them - toolchain related, so decided to make a RC4 as well. This is - very much expected to be the final release candidate, so give it - a good test and expect a final 2009.02 release this week unless - critical issues are found.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.02-rc4.tar.bz2">2009.02-rc4 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>31 January 2009 -- 2009.02-rc3 released</b> - <p>RC3 is out with more cleanups and bug fixes. Unless big issues - are found, expect this to be the last release candidate before the - release - So give it a good test.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.02-rc3.tar.bz2">2009.02-rc3 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>23 January 2009 -- 2009.02-rc2 released</b> - <p>Another week, another release candidate with a bunch of - cleanups and build fixes.</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.02-rc2.tar.bz2">2009.02-rc2 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>.</p> - - <li><b>16 January 2009 -- Release candidate and new maintainer</b> - <p>It has been a long time coming, but we finally have a new - release candidate! - And a new maintainer to match (Peter Korsgaard).</p> - - <p>Head to the <a href="/downloads/">downloads page</a> to pick up the - <a href="/downloads/buildroot-2009.02-rc1.tar.bz2">2009.02-rc1 - release candidate</a>, and report any problems found to the <a - href="support.html">mailing list</a> or <a - href="https://bugs.uclibc.org">bug tracker</a>. The plan is to - release 2009.02 in time for <a - href="http://www.fosdem.org/2009/">FOSDEM</a>.</p> - - <li><b>16 July 2006 -- Buildroot mailing list</b> - <p>Buildroot now has its own <a href=support.html>mailing list</a>.</p> - - <li><b>21 February 2005 -- Buildroot webpage added</b><p> - - Buildroot is a set of Makefiles and patches that makes it easy generate a - cross-compilation toolchain and root filesystem for your target Linux - system using the <a href= "http://www.uclibc.org/">uClibc C library</a>. - Buildroot is useful mainly for people working with small or embedded - systems. Embedded systems often use processors that are not the regular - x86 processors everyone is used to using on their PC. It can be PowerPC - processors, MIPS processors, ARM processors, etc. And to be extra safe, - you do not need to be root to build or run buildroot. - - <p> - - And as of today buildroot even has its own webpage, making it a first class - citizen of uclibc.org and busybox.net, and more importantly, make it easy - to find and point to buildroot. - - <p> - - If you find a bug in buildroot, or wish to submit a patch to fix a problem - or add a shiny new feature, please use the <a - href="https://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post - the details, to make certain your work is not lost. +<link href="css/timeline.css" rel="stylesheet"> +<div class="container"> +<div class="row nh"> +<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12"> +<h2>News</h2> +<ul class="timeline"> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.11 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 November 2015</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2015.11 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.11">CHANGES</a> + file for more details, read the + <a href="http://lists.busybox.net/pipermail/buildroot/2015-November/145727.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.11.tar.bz2">2015.11 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.11-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>26 November 2015</small></p> + </div> + <div class="timeline-body"> + <p>Release candidate 3 is out with more cleanups and security + / build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.11-rc3">CHANGES</a> + file for details.</p> + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up + the <a href="/downloads/buildroot-2015.11-rc3.tar.bz2">2015.11-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.11-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>19 November 2015</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.11-rc2">CHANGES</a> + file for details.</p> + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up + the <a href="/downloads/buildroot-2015.11-rc2.tar.bz2">2015.11-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.11-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>7 November 2015</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of + changes all over the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.11-rc1">CHANGES</a> + file for details. See also + the <a href="http://lists.busybox.net/pipermail/buildroot/2015-November/144026.html">announcement + e-mail</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.11-rc1.tar.bz2">2015.11-rc1 + release candidate</a>, and report any + problems found to the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.08.1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>6 September 2015</small></p> + </div> + <div class="timeline-body"> + <p>The 2015.08.1 bugfix release is out - Thanks to everyone + contributing. This release fixes critical issues discovered since + the 2015.08 release. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.08.1">CHANGES</a> + file for more details, + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.08.1.tar.bz2">2015.08.1 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.08 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 August 2015</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2015.08 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.08">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2015-August/138336.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.08.tar.bz2">2015.08 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.08-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>24 August 2015</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.08-rc2">CHANGES</a> + file for details, and + the <a href="http://lists.buildroot.org/pipermail/buildroot/2015-August/137879.html">release + announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.08-rc2.tar.bz2">2015.08-rc2 + release candidate</a>, and report any problems found to the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.08-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>5 August 2015</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.08-rc1">CHANGES</a> + file for details, read + the <a href="http://lists.buildroot.org/pipermail/buildroot/2015-August/135417.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.08-rc1.tar.bz2">2015.08-rc1 + release candidate</a>, and report any problems found to the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.05 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 May 2015</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2015.05 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.05">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2015-May/129209.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.05.tar.bz2">2015.05 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.05-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>22 May 2015</small></p> + </div> + <div class="timeline-body"> + <p>Release candidate 3 is out with more cleanups and security + / build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.05-rc3">CHANGES</a> + file for details.</p> + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up + the <a href="/downloads/buildroot-2015.05-rc3.tar.bz2">2015.05-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.05-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>11 May 2015</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.05-rc2">CHANGES</a> + file for details.</p> + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2015.05-rc2.tar.bz2">2015.05-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.05-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>4 May 2015</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.05-rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2015-May/127794.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.05-rc1.tar.bz2">2015.05-rc1 + release candidate</a>, and report any problems found to the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.02 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>1 March 2015</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2015.02 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.02">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2015-March/120396.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.02.tar.bz2">2015.02 release</a>.</p> + </div> + </div> + </li> + + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.02-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>24 February 2015</small></p> + </div> + <div class="timeline-body"> + <p>Release candidate 3 is out with more cleanups and security + / build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.02-rc3">CHANGES</a> + file for details.</p> + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2015.02-rc3.tar.bz2">2015.02-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.02-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>15 February 2015</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.02-rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.02-rc2.tar.bz2">2015.02-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2015.02-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>8 February 2015</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2015.02-rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2015-February/118982.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2015.02-rc1.tar.bz2">2015.02-rc1 + release candidate</a>, and report any problems found to + the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.11 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>1 December 2014</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2014.11 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11">CHANGES</a> + file for more details, + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.11.tar.bz2">2014.11 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.11-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>28 November 2014</small></p> + </div> + <div class="timeline-body"> + <p>Release candidate 3 is out with more cleanups and build + fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc3">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2014.11-rc3.tar.bz2">2014.11-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.11-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>21 November 2014</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.11-rc2.tar.bz2">2014.11-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Report from Buildroot Developers Meeting</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>13 November 2014</small></p> + </div> + <div class="timeline-body"> + <p>A report from the recent + <a href="http://elinux.org/Buildroot:DeveloperDaysELCE2014"> + Buildroot Developers Meeting</a> is now + <a href="http://lists.buildroot.org/pipermail/buildroot/2014-October/109966.html">available</a>.</p> + + <p>Once again, thanks to all the participants and to + <a href="http://www.mind.be">Mind</a> for sponsoring the event.</p> + + <p>The next Developer Days will take place on February 2nd and + 3rd in Brussels, Belgium, right + after <a href="http://fosdem.org">FOSDEM</a>. See + the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2015">wiki</a> + for more details.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.11-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>12 November 2014</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2014-November/111946.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.11-rc1.tar.bz2">2014.11-rc1 + release candidate</a>, and report any problems found to the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.08 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>1 September 2014</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2014.08 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2014-September/105257.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.08.tar.bz2">2014.08 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.08-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>26 August 2014</small></p> + </div> + <div class="timeline-body"> + <p>Release candidate 3 is out with more cleanups and build + fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc3">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.08-rc3.tar.bz2">2014.08-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.08-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>18 August 2014</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.08-rc2.tar.bz2">2014.08-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.08-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>8 August 2014</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.08-rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2014-August/103972.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.08-rc1.tar.bz2">2014.08-rc1 + release candidate</a>, and report any problems found to the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.05 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 May 2014</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2014.05 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.05">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2014-May/097863.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.05.tar.bz2">2014.05 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.05-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>28 May 2014</small></p> + </div> + <div class="timeline-body"> + <p>Release candidate 3 is out with more cleanups and build + fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.05-rc3">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.05-rc3.tar.bz2">2014.05-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.05-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>21 May 2014</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.05-rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2014.05-rc2.tar.bz2">2014.05-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.05-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>13 May 2014</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.05-rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2014-May/096492.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.05-rc1.tar.bz2">2014.05-rc1 + release candidate</a>, and report any problems found to the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">27 February 2014</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>2014.02 released</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2014.02 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.02">CHANGES</a> + file for more details, + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.02.tar.bz2">2014.02 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">25 February 2014</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>2014.02-rc3 released</small></p> + </div> + <div class="timeline-body"> + <p>Release candidate 3 is out with more cleanups and build + fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.02-rc3">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.02-rc3.tar.bz2">2014.02-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">20 February 2014</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>2014.02-rc2 released</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.02-rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.02-rc2.tar.bz2">2014.02-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2014.02-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>11 February 2014</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.02-rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2014-February/089055.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2014.02-rc1.tar.bz2">2014.02-rc1 + release candidate</a>, and report any problems found to the + <a href="support.html">mailing list</a> or + <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">9 February 2014</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>Report from Buildroot Developers Meeting</small></p> + </div> + <div class="timeline-body"> + <p>A report from the recent + <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2014"> + Buildroot Developers Meeting</a> is now + <a href="http://lists.buildroot.org/pipermail/buildroot/2014-February/088373.html">available</a>.</p> + + <p>Once again, thanks to all the participants and to + <a href="http://www.google.com">Google</a> and + <a href="http://www.mind.be">Mind</a> for sponsoring the event.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Upcoming Buildroot Developers meeting</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 January 2014</small></p> + </div> + <div class="timeline-body"> + <p>The upcoming Buildroot Developers meeting will take place in + Brussels on February, 3rd and 4th, after the + <a href="http://www.fosdem.org">FOSDEM</a> conference. Additional + details about the meeting can be found on the corresponding + <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2014"> + wiki page</a>.</p> + + <p>Persons not able to join the meeting in Brussels can participate + remotely using Google Hangouts. Simply give your Google address to + <code>thomas.petazzoni@free-electrons.com</code>.</p> + + <p>This meeting is sponsored by + <a href="http://www.google.com">Google</a> (for the meeting room) + and <a href="http://www.mind.be">Mind</a> (for the dinner). + Thanks to our sponsors!</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.11 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 November 2013</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2013.11 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.11">CHANGES</a> + file for more details, read the <a href="http://lists.buildroot.org/pipermail/buildroot/2013-November/083600.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.11.tar.bz2">2013.11 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Slides from Embedded Linux Conference Europe</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 November 2013</small></p> + </div> + <div class="timeline-body"> + <p>The slides from the Buildroot presentation at the recent + <a href="http://events.linuxfoundation.org/events/embedded-linux-conference-europe">Embedded Linux Conference Europe 2013</a> + are now + <a href="http://elinux.org/images/2/23/Buildroot-whats-new-elce2013.pdf">available</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.11-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>18 November 2013</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more + fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.11-rc3">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.11-rc3.tar.bz2">2013.11-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.11-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>18 November 2013</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.11-rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.11-rc2.tar.bz2">2013.11-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Announcement of the next Buildroot Developer Days</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>13 November 2013</small></p> + </div> + <div class="timeline-body"> + <p>The next <i>Buildroot Developer Days</i> meeting will take + place on Monday 3rd and Tuesday 4th February 2014 in Brussels, + Belgium - Just after + <a href="http://www.fosdem.org">FOSDEM</a> (February + 1st/2nd). This two days meeting is mainly open to Buildroot + developers and contributors, or Buildroot users having a prior + experience with the tool. It will allow developers to work on + Buildroot and discuss current issues, the future directions, and + more.</p> + + <p>In addition to the Buildroot event, we encourage embedded Linux + developers to propose talks for the Embedded and Mobile Developer + Room at FOSDEM. See + the <a href="https://lists.fosdem.org/pipermail/fosdem/2013-October/001870.html">CFP</a>.</p> + + <p>We would like to thank our + sponsor <a href="http://www.google.com">Google</a> for sponsoring + the event by providing all the needed logistics.</p> + + <p>For more details, see the + <a href="http://www.elinux.org/Buildroot:DeveloperDaysFOSDEM2014">wiki + page</a> dedicated to the meeting.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.11-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>12 November 2013</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.11_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2013-November/082514.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.11-rc1.tar.bz2">2013.11-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Report from Buildroot Developers Meeting</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>11 November 2013</small></p> + </div> + <div class="timeline-body"> + <p>A report from the recent + <a href="http://elinux.org/Buildroot:DeveloperDaysELCE2013"> + Buildroot Developers Meeting</a> is now + <a href="http://lists.buildroot.org/pipermail/buildroot/2013-November/082401.html">available</a>.</p> + + <p>Once again, thanks to all the participants and to + <a href="http://www.imgtec.com/">Imagination Technologies</a> + for sponsoring the event.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.08.1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>17 September 2013</small></p> + </div> + <div class="timeline-body"> + <p>The 2013.08.1 bugfix release is out - Thanks to everyone + contributing. This release fixes critical issues discovered since + the 2013.08 release. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08.1">CHANGES</a> + file for more details, + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.08.1.tar.bz2">2013.08.1 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Buildroot Developer Days</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>16 September 2013</small></p> + </div> + <div class="timeline-body"> + <p>The next <i>Buildroot Developer Days</i> meeting will take + place on Saturday October 26th and Sunday October 27th 2013 in + Edinburgh, UK - Just after the <a + href="https://events.linuxfoundation.org/events/embedded-linux-conference-europe"> + Embedded Linux Conference Europe</a> (October 23th-24th). This two + days meeting is mainly open to Buildroot developers and + contributors, or Buildroot users having a prior experience with + the tool. It will allow developers to work on Buildroot and + discuss current issues, the future directions, and more.</p> + + <p>For more details, see the + <a href="http://www.elinux.org/Buildroot:DeveloperDaysELCE2013">wiki + page</a> dedicated to the meeting.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.08 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 August 2013</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2013.08 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08">CHANGES</a> + file for more details, read the <a href="http://lists.buildroot.org/pipermail/buildroot/2013-August/077224.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.08.tar.bz2">2013.08 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.08-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>29 August 2013</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups and + build fixes. See the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08_rc3">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.08-rc3.tar.bz2">2013.08-rc3 + release candidate</a>, and report any problems found to the <a + href="support.html">mailing list</a> or <a + href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.08-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>16 August 2013</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08_rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.08-rc2.tar.bz2">2013.08-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.08-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>5 August 2013</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.08_rc1">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.08-rc1.tar.bz2">2013.08-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.05 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 May 2013</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2013.05 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.05">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2013-May/073121.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.05.tar.bz2">2013.05 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.05-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>25 May 2013</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups and + build fixes. See the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.05_rc3">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.05-rc3.tar.bz2">2013.05-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.05-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>15 May 2013</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups and + build fixes. See the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.05_rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.05-rc2.tar.bz2">2013.05-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.05-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>8 May 2013</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.05_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2013-May/071737.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.05-rc1.tar.bz2">2013.05-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.02 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>28 February 2013</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2013.02 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02">CHANGES</a> + file for more details + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.02.tar.bz2">2013.02 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.02-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>26 February 2013</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02_rc3">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.02-rc3.tar.bz2">2013.02-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.02-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>19 February 2013</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups and + build fixes. See the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02_rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.02-rc2.tar.bz2">2013.02-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2013.02-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>10 February 2013</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2013-February/067148.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2013.02-rc1.tar.bz2">2013.02-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Report from Buildroot Developers Meeting</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>10 February 2013</small></p> + </div> + <div class="timeline-body"> + <p>A report from the recent Buildroot Developers Meeting is now + <a href="http://lists.buildroot.org/pipermail/buildroot/2013-February/067105.html">available</a>. + <a href="http://emlinews.net">Embedded Linux News</a> also has a + <a href="http://www.emlinews.net/2013/02/buildroot-developers-meeting-report/"> + writeup about the event</a>, including photos.</p> + + <p>Once again, thanks to all the participants and to + <a href="http://www.google.com">Google</a> for sponsoring the event.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Next Buildroot Developers Meeting next to FOSDEM, Brussels</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>12 January 2013</small></p> + </div> + <div class="timeline-body"> + <p>The next Buildroot Developers Meeting will take place on Monday + 4th February 2013 and Tuesday 5th February 2013 in Brussels, + Belgium. Those dates have been chosen to immediately follow the + great <a href="http://www.fosdem.org">FOSDEM</a> conference.</p> + + <p>Attending this meeting is free, after registration by + contacting <a href="mailto:thomas.petazzoni@free-electrons.com">Thomas + Petazzoni</a>. For more details about the meeting, please see + the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2013">related + Wiki page</a>.</p> + + <p>We would like to + thank <a href="http://www.google.com">Google</a> for providing the + meeting location and the Internet connection, and offering free + lunch and refreshments to the participants.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.11.1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>3 January 2013</small></p> + </div> + <div class="timeline-body"> + <p>The 2012.11.1 bugfix release is out - Thanks to everyone + contributing. This release fixes critical issues discovered since + the 2012.11 release, most importantly with non-largefile builds on + recent Ubuntu versions. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11.1">CHANGES</a> + file for more details, + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.11.1.tar.bz2">2012.11.1 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.11 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>2 December 2012</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2012.11 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11">CHANGES</a> + file for more details + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.11.tar.bz2">2012.11 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.11-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 November 2012</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more bugfixes - See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11_rc2">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.11-rc2.tar.bz2">2012.11-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.11-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>17 November 2012</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.11_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2012-November/061995.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.11-rc1.tar.bz2">2012.11-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Buildroot Developer Day</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>17 November 2012</small></p> + </div> + <div class="timeline-body"> + <p>A report from the recent <i>Buildroot Developer Days</i> + meeting in Barcelona, Spain is + now <a href="http://lists.buildroot.org/pipermail/buildroot/2012-November/061558.html">available</a>. + Many thanks to all the participants, and a special thanks to + Arnout Vandecappelle from <a href="http://mind.be/">mind</a> + for taking notes and Thomas Petazzoni + from <a href="http://free-electrons.com/">Free Electrons</a> + for handling all the practical arrangements, and naturally + our sponsors, <a href="http://www.fluendo.com/">Fluendo</a> + and <a href="http://www.synopsys.com/">Synopsis</a>. + </p> + <p>The next Developer Days will take place on February 4th and + 5th in Brussels, Belgium, right + after <a href="http://fosdem.org">FOSDEM</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.08 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 August 2012</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2012.08 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.08">CHANGES</a> + file for more details and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.08.tar.bz2">2012.08 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.08-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>25 August 2012</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Various fixes, and + addition of licensing informations on many + packages. See <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.08_rc3">CHANGES</a> + file for details</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.08-rc3.tar.bz2">2012.08-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.08-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>15 August 2012</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Various fixes, and addition + of licensing informations on many + packages. See <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.08_rc2">CHANGES</a> + file for details</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.08-rc2.tar.bz2">2012.08-rc2 + release candidate</a>, and report any problems found to the <a + href="support.html">mailing list</a> or <a + href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.08-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>1 August 2012</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.08_rc1">CHANGES</a> + file for details</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.08-rc1.tar.bz2">2012.08-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Buildroot Developer Day</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>22 July 2012</small></p> + </div> + <div class="timeline-body"> + <p>The next <i>Buildroot Developer Day</i> meeting will take place + on Saturday November 3th and Sunday November 4th 2012 in + Barcelona, Spain, just before + the <a href="https://events.linuxfoundation.org/events/embedded-linux-conference-europe">Embedded + Linux Conference Europe</a> (November 5th-7th). This two days + meeting is mainly opened to Buildroot developers and contributors, + or Buildroot users having a prior experience with the tool. This + meeting will allow developers to work and Buildroot, and discuss + current issues, the future directions, and more.</p> + + <p>For more details, see + the <a href="http://elinux.org/Buildroot#Buildroot_Developers_Meeting.2C_3-4_November_2012.2C_Barcelona_Spain">wiki + page</a> dedicated to the meeting.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.05 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 May 2012</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2012.05 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.05">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2012-May/054342.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.05.tar.bz2">2012.05 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.05-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>25 May 2012</small></p> + </div> + <div class="timeline-body"> + <p>RC3 is out with more bugfixes - See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.05_rc3">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.05-rc3.tar.bz2">2012.05-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.05-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>18 May 2012</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.05_rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.05-rc2.tar.bz2">2012.05-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.05-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>10 May 2012</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.05_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2012-May/053736.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.05-rc1.tar.bz2">2012.05-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Autobuilder Results Online</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>20 April 2012</small></p> + </div> + <div class="timeline-body"> + <p>The status of the autobuilders, which do repeated + <code>randpackageconfig</code> builds for continuous + integration testing, is now online + at <a href='http://autobuild.buildroot.org'>autobuild.buildroot.org</a>. The + code behind it can be found + in <a href='http://git.buildroot.net/buildroot-test/'>git</a>.</p> + + <p>Thanks to Thomas Petazzoni for running the web interface, and + to <a href='http://gcc.gnu.org/wiki/CompileFarm'>The GCC Compile + Farm</a> and <a href='http://free-electrons.com/'>Free + Electrons</a> for hosting builders. Thomas also sends out a daily + summary of the build status to the mailing list.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.02 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>29 February 2012</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2012.02 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2012-February/050752.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.02.tar.bz2">2012.02 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.02-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>27 February 2012</small></p> + </div> + <div class="timeline-body"> + <p>RC3 is out with more bugfixes - See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02_rc3">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.02-rc3.tar.bz2">2012.02-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.02-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>19 February 2012</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with more cleanups + and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02_rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.02-rc2.tar.bz2">2012.02-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2012.02-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>12 February 2012</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2012.02_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2012-February/050234.html">announcement</a>.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2012.02-rc1.tar.bz2">2012.02-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Buildroot Developer Day</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 January 2012</small></p> + </div> + <div class="timeline-body"> + <p>Another <i>Buildroot Developer Day</i> will take place on + Friday, February 3rd in Brussels, Belgium - The day + before <a href="http://fosdem.org">FOSDEM</a>. See the + <a href="http://lists.buildroot.org/pipermail/buildroot/2012-January/049340.html">announcement</a> + or + the <a href="http://free-electrons.com/blog/bdd-2012-brussels/">Free + Electrons blog</a> for more info.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.11 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 November 2011</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2011.11 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2011-November/047926.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.11.tar.bz2">2011.11 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.11-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>26 November 2011</small></p> + </div> + <div class="timeline-body"> + <p>RC3 is out with more bugfixes - See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc3">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.11-rc3.tar.bz2">2011.11-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.11-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>18 November 2011</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with a bunch of + cleanups and build fixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.11-rc2.tar.bz2">2011.11-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.11-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>11 November 2011</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.11_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2011-November/047395.html">announcement</a> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.11-rc1.tar.bz2">2011.11-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.08 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 August 2011</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2011.08 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08">CHANGES</a> + file for more details, and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.08.tar.bz2">2011.08 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.08-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>29 August 2011</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more bugfixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08_rc2">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2011-August/045211.html">announcement</a>. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.08-rc2.tar.bz2">2011.08-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.08-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>4 August 2011</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.08_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2011-August/044855.html">announcement</a>. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.08-rc1.tar.bz2">2011.08-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.05 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>27 May 2011</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2011.05 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05">CHANGES</a> + file for more details, and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.05.tar.bz2">2011.05 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.05-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>24 May 2011</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more bugfixes. See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05_rc2">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.05-rc2.tar.bz2">2011.05-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.05-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>18 May 2011</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.05_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2011-May/043317.html">announcement</a>. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.05-rc1.tar.bz2">2011.05-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.02 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>28 February 2011</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2011.02 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2011-February/041662.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.02.tar.bz2">2011.02 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.02-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>24 February 2011</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more cleanups and bugfixes, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02_rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.02-rc2.tar.bz2">2011.02-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2011.02-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>14 February 2011</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2011.02_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2011-February/041365.html">announcement</a>. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2011.02-rc1.tar.bz2">2011.02-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.11 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 November 2010</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2010.11 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2010-November/039135.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.11.tar.bz2">2010.11 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.11-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>25 November 2010</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more cleanups and bugfixes, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11_rc2">CHANGES</a> + file for details.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.11-rc2.tar.bz2">2010.11-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.11-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>8 November 2010</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.11_rc1">CHANGES</a> + file for details, and read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2010-November/038645.html">announcement</a>. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.11-rc1.tar.bz2">2010.11-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Buildroot Developer Day</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>28 September 2010</small></p> + </div> + <div class="timeline-body"> + <p>A <i>Buildroot Developer Day</i> will take place on + Friday, October 29th in Cambridge, UK - Just the day after the + <a href="http://www.embeddedlinuxconference.com/elc_europe10/">Embedded + Linux Conference Europe</a>. This <i>Developer Day</i> + aims at allowing Buildroot developers to meet and exchange + ideas on the project and its future. See the + <a href="http://lists.buildroot.org/pipermail/buildroot/2010-September/037930.html">announcement</a> + for more info.</p> + + <p>Thanks to Thomas Petazzoni for taking care of the practical + arrangements.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.08 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 August 2010</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2010.08 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2010-August/037078.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.08.tar.bz2">2010.08 release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.08-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 August 2010</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more cleanups and bugfixes, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08_rc2">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.08-rc2.tar.bz2">2010.08-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + + This is very much expected to be the final release candidate, + so give it a good test and expect a final 2010.08 release + before September unless critical issues are found.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.08-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 July 2010</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.08_rc1">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.08-rc1.tar.bz2">2010.08-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.05 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>30 May 2010</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2010.05 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05">CHANGES</a> + file for more details, read the + <a href="http://lists.buildroot.org/pipermail/buildroot/2010-May/034878.html">announcement</a> + and go to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.05.tar.bz2">2010.05 release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.05-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>27 May 2010</small></p> + </div> + <div class="timeline-body"> + <p>RC3 is out with more cleanups and bugfixes, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05_rc3">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.05-rc3.tar.bz2">2010.05-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.05-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>11 May 2010</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with a bunch of + cleanups and build fixes.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.05-rc2.tar.bz2">2010.05-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.05-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>3 May 2010</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.05_rc1">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.05-rc1.tar.bz2">2010.05-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">FOSDEM slides online</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>2 May 2010</small></p> + </div> + <div class="timeline-body"> + <p>The slides from + the <a href="http://fosdem.org/2010/schedule/events/emb_cross_build">Cross + Build Systems: Present & Future</a> session + at <a href="http://fosdem.org/2010">FOSDEM</a> are + now <a href="http://send-patches.org/news/20100211-1-FOSDEM-Crossdev-Workshop.pdf">online</a>. + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.02 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>26 February 2010</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2010.02 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02">CHANGES</a> + file for more details, and go to + the <a href="/downloads/">downloads page</a> to pick up + the <a href="/downloads/buildroot-2010.02.tar.bz2">2010.02 + release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.02-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>23 February 2010</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more cleanups and bugfixes, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02_rc2">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.02-rc2.tar.bz2">2010.02-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2010.02-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>9 February 2010</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2010.02_rc1">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2010.02-rc1.tar.bz2">2010.02-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.11 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>1 December 2009</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2009.11 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://lists.buildroot.org/pipermail/buildroot/2009-December/030672.html">announcement</a> + or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11">CHANGES</a> + for more details, and go to the <a href="/downloads/">downloads page</a> + to pick up the <a href="/downloads/buildroot-2009.11.tar.bz2">2009.11 + release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.11-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>29 November 2009</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more cleanups and bugfixes, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11_rc2">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2009.11-rc2.tar.bz2">2009.11-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.11-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>23 November 2009</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.11_rc1">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2009.11-rc1.tar.bz2">2009.11-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">First Buildroot Developer Day</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>7 September 2009</small></p> + </div> + <div class="timeline-body"> + <p>The first <i>Buildroot Developer Day</i> will take place on + Saturday, October 17th in Grenoble, France, just the day after + Embedded Linux Conference Europe. This <i>Developer Day</i> aims + at allowing Buildroot developers to meet and exchange ideas on the + project and its future.</p> + + <p>As the number of places is limited, interested candidates are + invited to send an e-mail to Peter Korsgaard (<code>jacmet at + uclibc dot org</code>) and Thomas Petazzoni (<code>thomas dot + petazzoni at free-electrons dot com</code>).</p> + + <p>This <i>Developer Day</i> will take place thanks to the + sponsoring of <a href="http://www.calao-systems.com">Calao + Systems</a> and <a href="http://www.free-electrons.com">Free + Electrons</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.08 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 August 2009</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2009.08 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://lists.buildroot.org/pipermail/buildroot/2009-August/029018.html">announcement</a> + or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08">CHANGES</a> + for more details, and go to the <a href="/downloads/">downloads page</a> + to pick up the <a href="/downloads/buildroot-2009.08.tar.bz2">2009.08 + release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.08-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>26 August 2009</small></p> + </div> + <div class="timeline-body"> + <p>A number of bugfixes have been added to the tree since RC2 + (especially thanks to Thomas Petazzoni) - See + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc3">CHANGES</a> + file for details. This is very much expected to be the final + release candidate, so give it a good test and expect a final + 2009.08 release next weekend unless critical issues are + found.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2009.08-rc3.tar.bz2">2009.08-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.08-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>6 August 2009</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more cleanups and bugfixes, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc2">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2009.08-rc2.tar.bz2">2009.08-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.08-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>2 August 2009</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over + the tree, see + the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.08_rc1">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2009.08-rc1.tar.bz2">2009.08-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.05 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>1 June 2009</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2009.05 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://lists.buildroot.org/pipermail/buildroot/2009-June/027640.html">announcement</a> + or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05">CHANGES</a> + for more details, and go to the <a href="/downloads/">downloads page</a> + to pick up the <a href="/downloads/buildroot-2009.05.tar.bz2">2009.05 + release</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.05-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>27 May 2009</small></p> + </div> + <div class="timeline-body"> + <p>We had a number of fixes post-RC2, so RC3 is out + (see <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc3">CHANGES</a> + for details). Now is the moment to test and verify that + everything is working for your favorite config - Expect a + final 2009.05 very soon.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2009.05-rc3.tar.bz2">2009.05-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.05-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>19 May 2009</small></p> + </div> + <div class="timeline-body"> + <p>RC2 is out with more cleanups and bug fixes + (see <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc2">CHANGES</a>). + Unless big issues are found, expect this to be the last + release candidate before the release - So give it a good + test.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2009.05-rc2.tar.bz2">2009.05-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Buildroot.org</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>14 May 2009</small></p> + </div> + <div class="timeline-body"> + <p>Earl Levine has been so kind to donate + the <b>buildroot.org</b> domain to us, so the website can + now also be reached + at <a href="http://www.buildroot.org">www.buildroot.org</a> + (and git at + <a href="http://git.buildroot.org/buildroot">git.buildroot.org</a>). + + Thanks a lot Earl!</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.05-rc1 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>5 May 2009</small></p> + </div> + <div class="timeline-body"> + <p>We have a new release candidate! Lots of changes all over the + tree, see the <a + href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc1">CHANGES</a> + file for details. + + <p>Head to the <a href="/downloads/">downloads page</a> to pick up the + <a href="/downloads/buildroot-2009.05-rc1.tar.bz2">2009.05-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Moved to git</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>3 May 2009</small></p> + </div> + <div class="timeline-body"> + <p>We've moved the source code + from <a href="http://subversion.tigris.org">Subversion</a> + to <a href="http://git-scm.org">Git</a>. You can browse the + repo online + <a href="http://git.buildroot.net/buildroot">here</a>, and clone + the repo using: + <pre>git clone git://git.buildroot.net/buildroot</pre> + See the <a href="/git.html">Git Access</a> page for more details. + </p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title"><new Logo/h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>27 March 2009</small></p> + </div> + <div class="timeline-body"> + <p>We have a <a href="images/logo.png">logo</a>! We have so + far been using the <a href="http://busybox.net">Busybox</a> + logo on the website, as the website was a copy of + the <a href="http://busybox.net">Busybox</a> one - But not + anymore, we now have a shiny new logo of our own.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.02 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>12 February 2009</small></p> + </div> + <div class="timeline-body"> + <p>The stable 2009.02 release is out - Thanks to everyone + contributing and testing the release candidates. See the + <a href="http://lists.buildroot.org/pipermail/buildroot/2009-February/025974.html">announcement</a> + for more details, and go to the <a href="/downloads/">downloads page</a> + to pick up the <a href="/downloads/buildroot-2009.02.tar.bz2">2009.02 + release</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.02-rc4 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>9 February 2009</small></p> + </div> + <div class="timeline-body"> + <p>We had more than 50 changes since RC3, several of them + toolchain related, so decided to make a RC4 as well. This is + very much expected to be the final release candidate, so + give it a good test and expect a final 2009.02 release this + week unless critical issues are found.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2009.02-rc4.tar.bz2">2009.02-rc4 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.02-rc3 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 January 2009</small></p> + </div> + <div class="timeline-body"> + <p>RC3 is out with more cleanups and bug fixes. Unless big + issues are found, expect this to be the last release + candidate before the release - So give it a good test.</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2009.02-rc3.tar.bz2">2009.02-rc3 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">2009.02-rc2 released</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>23 January 2009</small></p> + </div> + <div class="timeline-body"> + <p>Another week, another release candidate with a bunch of + cleanups and build fixes.</p> + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2009.02-rc2.tar.bz2">2009.02-rc2 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Release candidate and new maintainer</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>16 January 2009</small></p> + </div> + <div class="timeline-body"> + + <p>It has been a long time coming, but we finally have a new + release candidate! - And a new maintainer to match (Peter + Korsgaard).</p> + + <p>Head to the <a href="/downloads/">downloads page</a> to + pick up the + <a href="/downloads/buildroot-2009.02-rc1.tar.bz2">2009.02-rc1 + release candidate</a>, and report any problems found to + the <a href="support.html">mailing list</a> + or <a href="https://bugs.uclibc.org">bug tracker</a>. The + plan is to release 2009.02 in time + for <a href="http://www.fosdem.org/2009/">FOSDEM</a>.</p> + </div> + </div> + </li> + + <li> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Buildroot mailing list</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>16 July 2006</small></p> + </div> + <div class="timeline-body"> + <p>Buildroot now has its own <a href=support.html>mailing list</a>.</p> + </div> + </div> + </li> + + <li class="timeline-inverted"> + <div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div> + <div class="timeline-panel"> + <div class="timeline-heading"> + <h4 class="timeline-title">Buildroot webpage added</h4> + <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>21 February 2005</small></p> + + <p>Buildroot is a set of Makefiles and patches that makes it easy generate a + cross-compilation toolchain and root filesystem for your target Linux + system using the <a href= "http://www.uclibc.org/">uClibc C library</a>. + Buildroot is useful mainly for people working with small or embedded + systems. Embedded systems often use processors that are not the regular + x86 processors everyone is used to using on their PC. It can be PowerPC + processors, MIPS processors, ARM processors, etc. And to be extra safe, + you do not need to be root to build or run buildroot.</p> + + <p>And as of today buildroot even has its own webpage, making it a first class + citizen of uclibc.org and busybox.net, and more importantly, make it easy + to find and point to buildroot.</p> + + <p>If you find a bug in buildroot, or wish to submit a patch + to fix a problem or add a shiny new feature, please use + the <a href="https://bugs.uclibc.org/">Bug and Patch + Tracking System</a> to post the details, to make certain + your work is not lost</p> + </div> + </div> + </li> </ul> </div><!--/.col-sm-10 --> </div><!--/.row --> +</div> <!--#include file="footer.html" --> diff --git a/docs/website/sponsors.html b/docs/website/sponsors.html index 9de0605705..db50e37fa8 100644 --- a/docs/website/sponsors.html +++ b/docs/website/sponsors.html @@ -1,169 +1,221 @@ <!--#include file="header.html" --> -<div class="row"><!-- current sponsor row --> - <div class="col-sm-10 col-sm-offset-1"> - <h2>Sponsors</h2> +<div class="container"> +<div class="row nh"><!-- current sponsor row --> +<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12"> - <h3>Current sponsors</h3> - </div> -</div> + <div class="panel panel-primary"> + <div class="panel-heading">Current sponsors</div> + <div class="panel-body"> -<div class="row"><!-- main sponsor row --> - <div class="col-sm-10 col-sm-offset-1"> - <div class="col-sm-12 sponsor-main"> - <div class="col-sm-4"> - <a href="http://google.com"> - <img src="images/google-logo.png"/> - </a> - </div> - <div class="col-sm-8"> - <p><a href="http://www.google">Google</a> is sponsoring - the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2015">Buildroot - Developers Meeting</a> colocated with the FOSDEM conference, - taking place on February 2-3 in Brussels, Belgium. Google is - providing the meeting room and lunch for the two days of the - meeting.</p> - </div> - </div> - </div> -</div> -<div class="row" style="margin-top: 10px;"> - <div class="col-sm-10 col-sm-offset-1"> - <div class="col-sm-12 sponsor-main"> - <div class="col-sm-4"> - <a href="http://mind.be"> - <img src="images/mind-logo.png"/> - </a> - </div> - <div class="col-sm-8"> - <p><a href="http://www.mind.be">Mind</a> is the Embedded - Software division of Essensium, which provides consultancy - and services specifically in the field of Linux and Open - Source SW for Embedded Systems.</p> - - <p>Mind is sponsoring - the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2015">Buildroot - Developers Meeting</a> colocated with the FOSDEM conference, - taking place on February 2-3 in Brussels, Belgium. Mind has - funded the Monday dinner for the meeting participants.</p> - </div> - </div> - </div> -</div><!-- /main sponsor row --> + <div class="row"> + <div class="col-sm-12"> + <div class="panel panel-default"> + <div class="panel-body"> + <div class="col-sm-4"> + <a href="http://google.com"> + <img class="img-responsive center-block" src="images/google-logo.png"/> + </a> + </div> + <div class="col-sm-8"> + <a href="http://www.google">Google</a> is sponsoring + the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2015">Buildroot + Developers Meeting</a> colocated with the FOSDEM conference, + taking place on February 2-3 in Brussels, Belgium. Google is + providing the meeting room and lunch for the two days of the + meeting. + </div> + </div> + </div> + </div> -<div class="row"><!-- past sponsor row --> - <div class="col-sm-10 col-sm-offset-1"> - <h3>Past sponsors</h3> + <div class="col-sm-12"> + <div class="panel panel-default"> + <div class="panel-body"> + <div class="col-sm-4"> + <a href="http://mind.be"> + <img class="img-responsive center-block" src="images/mind-logo.png"/> + </a> + </div> + <div class="col-sm-8"> + <a href="http://www.mind.be">Mind</a> is the Embedded + Software division of Essensium, which provides consultancy + and services specifically in the field of Linux and Open + Source SW for Embedded Systems. - <p>Throughout its history, the Buildroot project has been sponsored by - various companies, that we would like to thank below.</p> - </div> -</div><!--/past sponsor row --> - -<div class="row"><!-- past sponsors row 1--> - <div class="col-sm-10 col-sm-offset-1"> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://www.mind.be"> - <img src="images/mind-logo.png" alt="Mind" title="Mind"/> - </a><br/> - <a href="http://www.mind.be">Mind</a> sponsored the dinner of - the FOSDEM 2014 Developers Meeting (Brussels), the meeting - room and the dinner for the ELCE 2014 Developers Meeting - (Düsseldorf), and the dinner for the FOSDEM 2015 Developers - meeting (Brussels). - </div> - </div> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://www.google.com"> - <img src="images/google-logo.png" alt="Google" title="Google"/> - </a><br/> - <a href="http://www.google.com">Google</a> provided the - logistics for the FOSDEM 2013, FOSDEM 2014 and FOSDEM 2015 - Developer Days in Brussels, Belgium. - </div> - </div> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://www.imgtec.com/"> - <img src="images/imgtec-logo.png" alt="Imagination Technologies" title="Imagination Technologies"/> - </a><br/> - <a href="http://www.imgtec.com/">Imagination Technologies</a> - sponsored the meeting room and dinner of the ELCE 2013 - Developer Days in Edinburgh, UK. + Mind is sponsoring + the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2015">Buildroot + Developers Meeting</a> colocated with the FOSDEM conference, + taking place on February 2-3 in Brussels, Belgium. Mind has + funded the Monday dinner for the meeting participants. + </div> + </div> + </div> + </div> </div> </div> </div> -</div><!--/past sponsors row 1--> - -<div class="row"><!-- past sponsors row 2--> - <div class="col-sm-10 col-sm-offset-1"> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://circuitco.com/"> - <img src="images/circuitco-logo.png" alt="CircuitCo" title="CircuitCo"/> - </a><br/> - <a href="http://circuitco.com/">CircuitCo</a> sponsored - several development boards for the Google Summer of Code - 2013 project on Buildroot. - </div> - </div> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://boundarydevices.com/"> - <img src="images/boundary-devices-logo.png" alt="Boundary Devices" title="Boundary Devices"/> - </a><br/> - <a href="http://boundarydevices.com/">BoundaryDevices</a> - sponsored an i.MX6 development board for the Google Summer of - Code 2013 project on Buildroot. - </div> - </div> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://www.fluendo.com/"> - <img src="images/fluendo-logo.png" alt="Fluendo" title="Fluendo"/> - </a><br/> - <a href="http://www.fluendo.com/">Fluendo</a> sponsored the - meeting room for the ELCE 2012 Developer Days in Barcelona - Spain. - </div> - </div> - </div> -</div><!--/past sponsors row 2--> - -<div class="row"><!-- past sponsors row 3--> - <div class="col-sm-10 col-sm-offset-1"> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://www.synopsys.com"> - <img src="images/synopsys-logo.png" alt="Synopsys" title="Synopsys"/> - </a><br/> - <a href="http://www.synopsys.com">Synopsys</a> sponsored the - dinner for the ELCE 2012 Developer Days in Barcelona, Spain. + + <div class="panel panel-primary"> + <div class="panel-heading">Past sponsors</div> + <div class="panel-body"> + <p>Throughout its history, the Buildroot project has been sponsored by + various companies, that we would like to thank below.</p> + + <div class="row"> + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <a href="http://www.mind.be"> + <img class="img-responsive center-block" src="images/mind-logo.png"/> + </a> + </div> + <div class="col-sm-12" style="font-size: 12px;"> + <a href="http://www.mind.be">Mind</a> sponsored the dinner of + the FOSDEM 2014 Developers Meeting (Brussels), the meeting + room and the dinner for the ELCE 2014 Developers Meeting + (Düsseldorf), and the dinner for the FOSDEM 2015 Developers + meeting (Brussels). + </div> + </div> + </div> + </div> + + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <p><a href="http://www.google.com"> + <img class="img-responsive center-block" src="images/google-logo.png"/></a></p> + </div> + <div class="col-sm-12"> + <p><a href="http://www.google.com">Google</a> provided the + logistics for the FOSDEM 2013, FOSDEM 2014 and FOSDEM 2015 + Developer Days in Brussels, Belgium.</p> + </div> + </div> + </div> + </div> + + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <p><a href="http://www.imgtec.com/"> + <img class="img-responsive center-block" src="images/imgtec-logo.png"/></a></p> + </div> + <div class="col-sm-12"> + <a href="http://www.imgtec.com/">Imagination Technologies</a> + sponsored the meeting room and dinner of the ELCE 2013 + Developer Days in Edinburgh, UK. + </div> + </div> + </div> + </div> </div> - </div> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://www.calao-systems.com/"> - <img src="images/calao-logo.png"/ alt="Calao Systems" title="Calao Systems"> - </a><br/> - <a href="http://www.calao-systems.com/">Calao Systems</a> - provided a a meeting room for the ELCE 2009 Developer Days - in Grenoble, France. + + <div class="row"> + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <p><a href="http://circuitco.com/"> + <img class="img-responsive center-block" src="images/circuitco-logo.png"/></a></p> + </div> + <div class="col-sm-12"> + <p><a href="http://circuitco.com/">CircuitCo</a> sponsored + several development boards for the Google Summer of Code + 2013 project on Buildroot.</p> + </div> + </div> + </div> + </div> + + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <p><a href="http://boundarydevices.com/"> + <img class="img-responsive center-block" src="images/boundary-devices-logo.png"/></a></p> + </div> + <div class="col-sm-12"> + <p><a href="http://boundarydevices.com/">BoundaryDevices</a> + sponsored an i.MX6 development board for the Google Summer of + Code 2013 project on Buildroot.</p> + </div> + </div> + </div> + </div> + + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <p><a href="http://www.fluendo.com/"> + <img class="img-responsive center-block" src="images/fluendo-logo.png"/></a></p> + </div> + <div class="col-sm-12"> + <p><a href="http://www.fluendo.com/">Fluendo</a> sponsored the + meeting room for the ELCE 2012 Developer Days in Barcelona + Spain.</p> + </div> + </div> + </div> + </div> </div> - </div> - <div class="col-xs-12 col-sm-4 sponsor"> - <div class="sponsor-description"> - <a href="http://www.free-electrons.com"> - <img src="images/free-electrons-logo.png" alt="Free Electrons" title="Free Electrons"/> - </a><br/> - <a href="http://www.free-electrons.com">Free Electrons</a> - sponsored the lunch for the ELCE 2009 Developer Days in - Grenoble, France. + + <div class="row"> + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <p><a href="http://www.synopsys.com"> + <img class="img-responsive center-block" src="images/synopsys-logo.png"/></a></p> + </div> + <div class="col-sm-12"> + <p><a href="http://www.synopsys.com">Synopsys</a> sponsored the + dinner for the ELCE 2012 Developer Days in Barcelona, Spain.</p> + </div> + </div> + </div> + </div> + + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <p><a href="http://www.calao-systems.com/"> + <img class="img-responsive center-block" src="images/calao-logo.png"/></a></p> + </div> + <div class="col-sm-12"> + <p><a href="http://www.calao-systems.com/">Calao Systems</a> + provided a a meeting room for the ELCE 2009 Developer Days + in Grenoble, France.</p> + </div> + </div> + </div> + </div> + + <div class="col-sm-4"> + <div class="panel panel-default panel-sponsor"> + <div class="panel-body"> + <div class="col-sm-12"> + <p><a href="http://www.free-electrons.com"> + <img class="img-responsive center-block" src="images/free-electrons-logo.png"/></a></p> + </div> + <div class="col-sm-12"> + <p><a href="http://www.free-electrons.com">Free Electrons</a> + sponsored the lunch for the ELCE 2009 Developer Days in + Grenoble, France.</p> + </div> + </div> + </div> + </div> </div> + </div> </div> -</div><!--/past sponsors row 3--> +</div> <!--#include file="footer.html" --> diff --git a/docs/website/support.html b/docs/website/support.html index 3b464b4cc9..2f16efe0ae 100644 --- a/docs/website/support.html +++ b/docs/website/support.html @@ -1,51 +1,96 @@ <!--#include file="header.html" --> -<div class="row"> -<div class="col-sm-10 col-sm-offset-1"> +<div class="container"> +<div class="row nh"> +<div class="col-lg-10 col-lg-offset-1 col-md-12 col-sm-12 col-xs-12"> -<h2>Support</h2> + <div class="panel panel-primary"> + <div class="panel-heading">Support</div> + <div class="panel-body"> + <p>You can get support for Buildroot through three main channels:</p> -<p>You can get support for Buildroot through three main channels:</p> + <div class="row"> + <div class="col-sm-12"> + <div class="panel panel-primary"> + <div class="panel-heading">IRC</div> + <div class="panel-body"> + <div class="row"> + <div class="col-sm-1"> + <img class="img-responsive" src="images/irc.png" style="max-width:50px; margin-bottom:10px;"> + </div> + <div class="col-sm-11"> + <p>The Buildroot IRC channel is <a href="irc://freenode.net/#buildroot"> + #buildroot</a>, hosted on Freenode. If you do not have an IRC client, you can + use the <a href="http://webchat.freenode.net">Freenode web interface</a>. + When asking for help on IRC, share relevant logs or pieces of code using a code + sharing website.</p> + </div> + </div> + </div> + </div> + </div> -<h3>IRC</h3> -<p>The Buildroot IRC channel is <a href="irc://freenode.net/#buildroot"> -#buildroot</a>, hosted on Freenode. If you do not have an IRC client, you can -use the <a href="http://webchat.freenode.net">Freenode web interface</a>. -When asking for help on IRC, share relevant logs or pieces of code using a code -sharing website.</p> + <div class="col-sm-12"> + <div class="panel panel-primary"> + <div class="panel-heading">Mailing List Information</div> + <div class="panel-body"> + <div class="row"> + <div class="col-sm-1"> + <img class="img-responsive" src="images/email.png" style="max-width:50px; margin-bottom:10px;"> + </div> + <div class="col-sm-11"> + <p>The <a href="/lists/buildroot/">mailing list</a> is for discussion and + development. You can subscribe by visiting + <a href="http://lists.buildroot.org/mailman/listinfo/buildroot">this page</a>. + Only subscribers to the Buildroot mailing list are allowed to post + to this list.</p> -<h3>Mailing List Information</h3> -<p>The <a href="/lists/buildroot/">mailing list</a> is for discussion and -development. You can subscribe by visiting -<a href="http://lists.buildroot.org/mailman/listinfo/buildroot">this page</a>. -Only subscribers to the Buildroot mailing list are allowed to post -to this list.</p> + <p>The list is also available + through <a href="http://gmane.org">Gmane</a> + at <a href="http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot">gmane.comp.lib.uclibc.buildroot</a>. + </p> -<p>The list is also available through <a -href="http://gmane.org">Gmane</a> at <a href="http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot">gmane.comp.lib.uclibc.buildroot</a>. -</p> + <h4>Search the List Archives</h4> + <p>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.</p> -<h4>Search the List Archives</h4> -<p>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. Checking the archives is a great way to avoid annoying everyone on the -list with frequently asked questions...</p> + <form method="get" action="http://search.gmane.org/"> + <input type="text" name="query"> + <input type="hidden" name="group" value="gmane.comp.lib.uclibc.buildroot"> + <button type="submit" class="btn btn-default">Submit</button> + </form> + </div> + </div> + </div> + </div> + </div> -<form method="get" action="http://search.gmane.org/"> - <input type="text" name="query"> - <input type="hidden" name="group" value="gmane.comp.lib.uclibc.buildroot"> - <input type="submit" value="Search"> -</form> + <div class="col-sm-12"> + <div class="panel panel-primary"> + <div class="panel-heading">Bug Tracker</div> + <div class="panel-body"> + <div class="row"> + <div class="col-sm-1"> + <img class="img-responsive" src="images/bug-buddy.png" style="max-width:50px; margin-bottom:10px;"> + </div> + <div class="col-sm-11"> + <p>If you encounter any problem while using Buildroot, you can use the + <a href="https://bugs.buildroot.org/">Bug Tracker</a> to post your bugs and/or + participate to find solutions to existing problems.</p> -<h3>Bug Tracker</h3> - -<p>If you encounter any problem while using Buildroot, you can use the -<a href="https://bugs.buildroot.org/">Bug Tracker</a> to post your bugs and/or -participate to find solutions to existing problems.</p> - -<p>Note: patches are only accepted through the mailing list.</p> + <p>Note: patches are only accepted through the mailing list.</p> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> </div><!--/.col-sm-10 --> </div><!--/.row --> +</div> <!--#include file="footer.html" --> diff --git a/package/Makefile.in b/package/Makefile.in index bb2a0f96df..82a66c2b93 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -292,12 +292,10 @@ HOST_CONFIGURE_OPTS = \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_SYSROOT_DIR="/" \ PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig:$(HOST_DIR)/usr/share/pkgconfig" \ - LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib$(if $(LD_LIBRARY_PATH),:$(LD_LIBRARY_PATH))" \ INTLTOOL_PERL=$(PERL) HOST_MAKE_ENV = \ PATH=$(BR_PATH) \ - LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib$(if $(LD_LIBRARY_PATH),:$(LD_LIBRARY_PATH))" \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG_SYSROOT_DIR="/" \ PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" diff --git a/package/apitrace/Config.in b/package/apitrace/Config.in index 4fe82aa1b6..a977712818 100644 --- a/package/apitrace/Config.in +++ b/package/apitrace/Config.in @@ -10,6 +10,7 @@ config BR2_PACKAGE_APITRACE depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBX11 + 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 diff --git a/package/apitrace/apitrace.mk b/package/apitrace/apitrace.mk index 28a40e4e20..fbd957c617 100644 --- a/package/apitrace/apitrace.mk +++ b/package/apitrace/apitrace.mk @@ -9,7 +9,7 @@ APITRACE_SITE = $(call github,apitrace,apitrace,$(APITRACE_VERSION)) APITRACE_LICENSE = MIT APITRACE_LICENSE_FILES = LICENSE -APITRACE_DEPENDENCIES = xlib_libX11 host-python +APITRACE_DEPENDENCIES = xlib_libX11 host-python libpng # Gui was never tested, so we prefer to explicitly disable it APITRACE_CONF_OPTS += -DENABLE_GUI=false diff --git a/package/audiofile/0001-Fix-pkg-config-for-static-linking.patch b/package/audiofile/0001-Fix-pkg-config-for-static-linking.patch new file mode 100644 index 0000000000..54757abbd5 --- /dev/null +++ b/package/audiofile/0001-Fix-pkg-config-for-static-linking.patch @@ -0,0 +1,56 @@ +From 2abf7d2e5c533bf4d7407c2c8057a329cd49a3cd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks> +Date: Tue, 24 Nov 2015 21:57:27 +0100 +Subject: [PATCH 1/1] Fix pkg-config for static linking +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Static linking userspace programs such as MPD against libaudiofile fails if +FLAC is available, because libaudiofile is linked against FLAC, but this isn't +expressed in the pkg-config file: + +[..] +arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libaudiofile.a(FLAC.o): In function `FLACDecoder::reset2()': +FLAC.cpp:(.text+0x58): undefined reference to `FLAC__stream_decoder_seek_absolute' +/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libaudiofile.a(FLAC.o): In function `FLACEncoder::sync2()': +FLAC.cpp:(.text+0x88): undefined reference to `FLAC__stream_encoder_finish' +/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libaudiofile.a(FLAC.o): In function `FLACDecoder::~FLACDecoder()': +FLAC.cpp:(.text+0xc4): undefined reference to `FLAC__stream_decoder_delete' +/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libaudiofile.a(FLAC.o): In function `FLACEncoder::~FLACEncoder()': +FLAC.cpp:(.text+0x164): undefined reference to `FLAC__stream_encoder_delete' +/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libaudiofile.a(FLAC.o): In function `FLACDecoder::runPull()': +[..] + +The Libs.private field is specifically designed for such usage: + +From pkg-config documentation: + + Libs.private: + + This line should list any private libraries in use. Private + libraries are libraries which are not exposed through your + library, but are needed in the case of static linking. + +Therefore, this patch adds a reference to FLAC as well as to lcov in the +Libs.private field of the pkg-config file. + +Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> +--- + audiofile.pc.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/audiofile.pc.in b/audiofile.pc.in +index ad5956a..d6055ef 100644 +--- a/audiofile.pc.in ++++ b/audiofile.pc.in +@@ -8,5 +8,5 @@ Description: audiofile + Requires: + Version: @VERSION@ + Libs: -L${libdir} -laudiofile +-Libs.private: -lm ++Libs.private: @FLAC_LIBS@ @COVERAGE_LIBS@ -lm + Cflags: -I${includedir} +-- +2.6.2 + diff --git a/package/autossh/autossh.mk b/package/autossh/autossh.mk index 01d3c65cc9..d52b4e9666 100644 --- a/package/autossh/autossh.mk +++ b/package/autossh/autossh.mk @@ -10,6 +10,11 @@ AUTOSSH_SOURCE = autossh-$(AUTOSSH_VERSION).tgz AUTOSSH_LICENSE = Modified BSD AUTOSSH_LICENSE_FILES = autossh.c +# Bundled ./configure is not up-to-date with what is in configure.ac +AUTOSSH_AUTORECONF = YES + +AUTOSSH_CONF_OPTS = --with-ssh=/usr/bin/ssh + define AUTOSSH_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -D $(@D)/autossh $(TARGET_DIR)/usr/bin/autossh endef diff --git a/package/axfsutils/0001-fix-cflags.patch b/package/axfsutils/0001-fix-cflags.patch new file mode 100644 index 0000000000..0415d82f45 --- /dev/null +++ b/package/axfsutils/0001-fix-cflags.patch @@ -0,0 +1,19 @@ +Makefile: complement CFLAGS provided by the user + +In some circumstances, the user may want to pass its own CFLAGS, +like for when the zlib headers are not located in the standard gcc +search paths. + +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> + +diff -durN a/mkfs.axfs-legacy/Makefile b/mkfs.axfs-legacy/Makefile +--- a/mkfs.axfs-legacy/Makefile ++++ b/mkfs.axfs-legacy/Makefile +@@ -1,5 +1,5 @@ +-INC = -I./ +-CFLAGS = -g $(INC) -O0 ++INC += -I./ ++CFLAGS += -g $(INC) -O0 + + MKFSOBJS = mkfs.axfs.o + diff --git a/package/axfsutils/0002-use-ldflags.patch b/package/axfsutils/0002-use-ldflags.patch new file mode 100644 index 0000000000..20e03a9bb5 --- /dev/null +++ b/package/axfsutils/0002-use-ldflags.patch @@ -0,0 +1,20 @@ +Makefile: use LDFLAGS as provided by the user + +In some circumstances, the user may want to pass some LDFLAGS, like +-L flags to point to the zlib location if it was not installed in a +standard location. + +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> + +diff -durN a/mkfs.axfs-legacy/Makefile b/mkfs.axfs-legacy/Makefile +--- a/mkfs.axfs-legacy/Makefile ++++ b/mkfs.axfs-legacy/Makefile +@@ -6,7 +6,7 @@ + all: mkfs.axfs + + mkfs.axfs: $(MKFSOBJS) +- $(CC) $(CFLAGS) -o mkfs.axfs $(MKFSOBJS) -lz ++ $(CC) $(CFLAGS) $(LDFLAGS) -o mkfs.axfs $(MKFSOBJS) -lz + + clean_mkfs.axfs: + rm -rf $(MKFSOBJS) mkfs.axfs diff --git a/package/axfsutils/axfsutils.mk b/package/axfsutils/axfsutils.mk index 3e6ea52838..4dd60efcde 100644 --- a/package/axfsutils/axfsutils.mk +++ b/package/axfsutils/axfsutils.mk @@ -13,7 +13,7 @@ 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) $(MAKE) -C $(@D)/mkfs.axfs-legacy + $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/mkfs.axfs-legacy endef define HOST_AXFSUTILS_INSTALL_CMDS diff --git a/package/boost/Config.in b/package/boost/Config.in index edffd7e351..cffaf6e0e9 100644 --- a/package/boost/Config.in +++ b/package/boost/Config.in @@ -67,11 +67,12 @@ config BR2_PACKAGE_BOOST_CONTAINER # see # http://www.boost.org/doc/libs/1_59_0/libs/context/doc/html/context/architectures.html -# for the list of supported architectures. +# for the list of supported architectures. Sparc pretends to be +# supported, but it doesn't build. config BR2_PACKAGE_BOOST_CONTEXT bool "boost-context" depends on (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel \ - || BR2_powerpc || BR2_sparc || BR2_x86_64) + || BR2_powerpc || BR2_x86_64) config BR2_PACKAGE_BOOST_COROUTINE bool "boost-coroutine" diff --git a/package/boost/boost.mk b/package/boost/boost.mk index efc0020fe2..178f7b8738 100644 --- a/package/boost/boost.mk +++ b/package/boost/boost.mk @@ -89,6 +89,10 @@ BOOST_OPTS += toolset=gcc \ abi=$(BOOST_ABI) \ variant=$(if $(BR2_ENABLE_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 diff --git a/package/bullet/Config.in b/package/bullet/Config.in index fc285ab33a..d4d69d2c9e 100644 --- a/package/bullet/Config.in +++ b/package/bullet/Config.in @@ -1,6 +1,9 @@ config BR2_PACKAGE_BULLET bool "bullet" depends on BR2_INSTALL_LIBSTDCPP + # Affected by + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68476 + depends on !BR2_microblaze help Bullet is a Collision Detection and Rigid Body Dynamics Library. @@ -9,3 +12,4 @@ config BR2_PACKAGE_BULLET comment "bullet needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP + depends on !BR2_microblaze diff --git a/package/busybox/0002-unzip.patch b/package/busybox/0002-unzip.patch new file mode 100644 index 0000000000..400e528435 --- /dev/null +++ b/package/busybox/0002-unzip.patch @@ -0,0 +1,111 @@ +From 1de25a6e87e0e627aa34298105a3d17c60a1f44e Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko <vda.linux@googlemail.com> +Date: Mon, 26 Oct 2015 19:33:05 +0100 +Subject: [PATCH] unzip: test for bad archive SEGVing + +function old new delta +huft_build 1296 1300 +4 + +Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> +Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> +--- + archival/libarchive/decompress_gunzip.c | 11 +++++++---- + testsuite/unzip.tests | 23 ++++++++++++++++++++++- + 2 files changed, 29 insertions(+), 5 deletions(-) + +diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c +index 7b6f459..30bf451 100644 +--- a/archival/libarchive/decompress_gunzip.c ++++ b/archival/libarchive/decompress_gunzip.c +@@ -305,11 +305,12 @@ static int huft_build(const unsigned *b, const unsigned n, + unsigned i; /* counter, current code */ + unsigned j; /* counter */ + int k; /* number of bits in current code */ +- unsigned *p; /* pointer into c[], b[], or v[] */ ++ const unsigned *p; /* pointer into c[], b[], or v[] */ + huft_t *q; /* points to current table */ + huft_t r; /* table entry for structure assignment */ + huft_t *u[BMAX]; /* table stack */ + unsigned v[N_MAX]; /* values in order of bit length */ ++ unsigned v_end; + int ws[BMAX + 1]; /* bits decoded stack */ + int w; /* bits decoded */ + unsigned x[BMAX + 1]; /* bit offsets, then code stack */ +@@ -324,7 +325,7 @@ static int huft_build(const unsigned *b, const unsigned n, + + /* Generate counts for each bit length */ + memset(c, 0, sizeof(c)); +- p = (unsigned *) b; /* cast allows us to reuse p for pointing to b */ ++ p = b; + i = n; + do { + c[*p]++; /* assume all entries <= BMAX */ +@@ -365,12 +366,14 @@ static int huft_build(const unsigned *b, const unsigned n, + } + + /* Make a table of values in order of bit lengths */ +- p = (unsigned *) b; ++ p = b; + i = 0; ++ v_end = 0; + do { + j = *p++; + if (j != 0) { + v[x[j]++] = i; ++ v_end = x[j]; + } + } while (++i < n); + +@@ -432,7 +435,7 @@ static int huft_build(const unsigned *b, const unsigned n, + + /* set up table entry in r */ + r.b = (unsigned char) (k - w); +- if (p >= v + n) { ++ if (p >= v + v_end) { // Was "if (p >= v + n)" but v[] can be shorter! + r.e = 99; /* out of values--invalid code */ + } else if (*p < s) { + r.e = (unsigned char) (*p < 256 ? 16 : 15); /* 256 is EOB code */ +diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests +index 8677a03..ca0a458 100755 +--- a/testsuite/unzip.tests ++++ b/testsuite/unzip.tests +@@ -7,7 +7,7 @@ + + . ./testing.sh + +-# testing "test name" "options" "expected result" "file input" "stdin" ++# testing "test name" "commands" "expected result" "file input" "stdin" + # file input will be file called "input" + # test can create a file "actual" instead of writing to stdout + +@@ -30,6 +30,27 @@ testing "unzip (subdir only)" "unzip -q foo.zip foo/ && test -d foo && test ! -f + rmdir foo + rm foo.zip + ++# File containing some damaged encrypted stream ++testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \ ++"Archive: bad.zip ++ inflating: ]3j½r«IK-%Ix ++unzip: inflate error ++1 ++" \ ++"" "\ ++begin-base64 644 bad.zip ++UEsDBBQAAgkIAAAAIQA5AAAANwAAADwAAAAQAAcAXTNqwr1ywqtJGxJLLSVJ ++eCkBD0AdKBk8JzQsIj01JC0/ORJQSwMEFAECCAAAAAAhADoAAAAPAAAANgAA ++AAwAAQASw73Ct1DCokohPXQiNjoUNTUiHRwgLT4WHlBLAQIQABQAAggIAAAA ++oQA5AAAANwAAADwAAAAQQAcADAAAACwAMgCAAAAAAABdM2rCvXLCq0kbEkst ++JUl4KQEPQB0oGSY4Cz4QNgEnJSYIPVBLAQIAABQAAggAAAAAIQAqAAAADwAA ++BDYAAAAMAAEADQAAADIADQAAAEEAAAASw73Ct1DKokohPXQiNzA+FAI1HCcW ++NzITNFBLBQUKAC4JAA04Cw0EOhZQSwUGAQAABAIAAgCZAAAAeQAAAAIALhM= ++==== ++" ++ ++rm * ++ + # Clean up scratch directory. + + cd .. +-- +2.6.2 + diff --git a/package/c-ares/c-ares.mk b/package/c-ares/c-ares.mk index c858887a18..77ae4b968f 100644 --- a/package/c-ares/c-ares.mk +++ b/package/c-ares/c-ares.mk @@ -7,6 +7,7 @@ C_ARES_VERSION = 1.10.0 C_ARES_SITE = http://c-ares.haxx.se/download C_ARES_INSTALL_STAGING = YES +C_ARES_CONF_OPTS = --with-random=/dev/urandom # Rebuild configure to avoid XC_CHECK_USER_CFLAGS C_ARES_AUTORECONF = YES C_ARES_LICENSE = MIT diff --git a/package/collectd/0002-ipc-enable-gnu-source.patch b/package/collectd/0002-ipc-enable-gnu-source.patch new file mode 100644 index 0000000000..459fdbdbb2 --- /dev/null +++ b/package/collectd/0002-ipc-enable-gnu-source.patch @@ -0,0 +1,28 @@ +https://github.com/collectd/collectd/commit/3e3848349b753d78a0b1d19648fb394866856bda + + ipc: enable _GNU_SOURCE to fix build with musl libc + + This fixes compile the compile error: + + > ipc.c:154:49: error: 'struct shm_info' has no member named 'used_ids' + > ipc_submit_g("shm", "segments", NULL, shm_info.used_ids); + > ^ + + Fixes #1147 + +Signed-off-by: Alex Suykov <alex.suykov@gmail.com> + +diff --git a/src/ipc.c b/src/ipc.c +index 3763f24..b403847 100644 +--- a/src/ipc.c ++++ b/src/ipc.c +@@ -32,6 +32,9 @@ + #include "configfile.h" + + #if KERNEL_LINUX ++ /* _GNU_SOURCE is needed for struct shm_info.used_ids on musl libc */ ++# define _GNU_SOURCE ++ + /* X/OPEN tells us to use <sys/{types,ipc,sem}.h> for semctl() */ + /* X/OPEN tells us to use <sys/{types,ipc,msg}.h> for msgctl() */ + /* X/OPEN tells us to use <sys/{types,ipc,shm}.h> for shmctl() */ diff --git a/package/conntrack-tools/0001-src-fix-build-with-musl-libc.patch b/package/conntrack-tools/0001-src-fix-build-with-musl-libc.patch new file mode 100644 index 0000000000..5881f98721 --- /dev/null +++ b/package/conntrack-tools/0001-src-fix-build-with-musl-libc.patch @@ -0,0 +1,37 @@ +From d7b20d9bbed23a7a7e40af2f5e78f37ff67e8d93 Mon Sep 17 00:00:00 2001 +From: Rodrigo Rebello <rprebello@gmail.com> +Date: Mon, 23 Nov 2015 02:12:48 -0200 +Subject: [PATCH] src: fix build with musl libc + +The GNU version of 'struct tcphdr' is not exposed by musl libc headers +unless _GNU_SOURCE is defined. Without this definition, the build fails +with: + + rpc.c: In function 'rpc_helper_cb': + rpc.c:351:15: error: 'struct tcphdr' has no member named 'doff' + offset += th->doff * 4; + ^ + +Upstream status: sent +http://patchwork.ozlabs.org/patch/547376/ + +Signed-off-by: Rodrigo Rebello <rprebello@gmail.com> +--- + src/helpers/rpc.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/helpers/rpc.c b/src/helpers/rpc.c +index 82493c2..3a7b337 100644 +--- a/src/helpers/rpc.c ++++ b/src/helpers/rpc.c +@@ -28,6 +28,7 @@ + + #include <rpc/rpc_msg.h> + #include <rpc/pmap_prot.h> ++#define _GNU_SOURCE + #include <netinet/tcp.h> + #include <netinet/udp.h> + +-- +2.1.4 + diff --git a/package/conntrack-tools/conntrack-tools.mk b/package/conntrack-tools/conntrack-tools.mk index eac5841168..728758789c 100644 --- a/package/conntrack-tools/conntrack-tools.mk +++ b/package/conntrack-tools/conntrack-tools.mk @@ -13,10 +13,22 @@ CONNTRACK_TOOLS_DEPENDENCIES = host-pkgconf \ CONNTRACK_TOOLS_LICENSE = GPLv2+ CONNTRACK_TOOLS_LICENSE_FILES = COPYING +CONNTRACK_TOOLS_CFLAGS = $(TARGET_CFLAGS) + +# Some of conntrack-tools source files include both linux/in.h (via +# linux/netfilter.h for kernel headers >= 4.2) and netinet/in.h, which +# causes some symbol conflicts when musl is used. Defining __GLIBC__ +# works around that issue since the kernel headers are prepared to +# avoid redefinition of certain symbols when they see __GLIBC__. +ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) +CONNTRACK_TOOLS_CFLAGS += -D__GLIBC__ +endif + ifeq ($(BR2_PACKAGE_LIBTIRPC),y) -CONNTRACK_TOOLS_CONF_ENV += \ - CFLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`" +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)) diff --git a/package/dcron/dcron.service b/package/dcron/dcron.service index b9fa489a49..924ed72205 100644 --- a/package/dcron/dcron.service +++ b/package/dcron/dcron.service @@ -3,8 +3,8 @@ Description=Task scheduler daemon After=syslog.target [Service] -ExecStart=/usr/sbin/crond -f -S -Restart=always +ExecStart=/usr/sbin/crond -S +Type=forking [Install] WantedBy=multi-user.target diff --git a/package/dhcp/S80dhcp-server b/package/dhcp/S80dhcp-server index 3df14ff122..356e73565a 100755 --- a/package/dhcp/S80dhcp-server +++ b/package/dhcp/S80dhcp-server @@ -7,6 +7,9 @@ # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="" +# Allow a few customizations from a config file +test -r /etc/default/dhcpd.conf && . /etc/default/dhcpd.conf + # Sanity checks test -f /usr/sbin/dhcpd || exit 0 test -f /etc/dhcp/dhcpd.conf || exit 0 diff --git a/package/dhcp/dhcpd.service b/package/dhcp/dhcpd.service index 7b265cbf3f..d58fbd5d05 100644 --- a/package/dhcp/dhcpd.service +++ b/package/dhcp/dhcpd.service @@ -7,7 +7,7 @@ Type=forking PIDFile=/run/dhcpd.pid ExecStart=/usr/sbin/dhcpd -q -pf /run/dhcpd.pid $INTERFACES KillSignal=SIGINT -EnvironmentFile=/etc/default/dhcpd.conf +EnvironmentFile=-/etc/default/dhcpd.conf [Install] WantedBy=multi-user.target diff --git a/package/directfb/Config.in b/package/directfb/Config.in index 548f602eb6..8c13d30794 100644 --- a/package/directfb/Config.in +++ b/package/directfb/Config.in @@ -3,6 +3,7 @@ config BR2_PACKAGE_DIRECTFB depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 + depends on !BR2_TOOLCHAIN_USES_MUSL # sigval_t issue select BR2_PACKAGE_FREETYPE select BR2_PACKAGE_ZLIB help @@ -164,5 +165,6 @@ config BR2_PACKAGE_DIRECTFB_TESTS endif # BR2_PACKAGE_DIRECTFB -comment "directfb needs a toolchain w/ C++, threads, gcc >= 4.5" - depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 +comment "directfb needs a (e)glibc or uClibc toolchain w/ C++, threads, gcc >= 4.5" + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || BR2_TOOLCHAIN_USES_MUSL diff --git a/package/dropbear/dropbear.hash b/package/dropbear/dropbear.hash index 981bb1d702..4b2d99a0dc 100644 --- a/package/dropbear/dropbear.hash +++ b/package/dropbear/dropbear.hash @@ -1,2 +1,2 @@ # From https://matt.ucc.asn.au/dropbear/releases/SHA256SUM.asc -sha256 55ea7c1e904ffe4b1cdbe1addca8291a2533d7d285fd22ac33608e9502a62446 dropbear-2015.68.tar.bz2 +sha256 62a8cc3df1d0f136d46f50d4f8d92f7ab7ce1addac76b25446b3f6aaf80bf257 dropbear-2015.70.tar.bz2 diff --git a/package/dropbear/dropbear.mk b/package/dropbear/dropbear.mk index 57c1b5cdbd..f32a60d069 100644 --- a/package/dropbear/dropbear.mk +++ b/package/dropbear/dropbear.mk @@ -4,7 +4,7 @@ # ################################################################################ -DROPBEAR_VERSION = 2015.68 +DROPBEAR_VERSION = 2015.70 DROPBEAR_SITE = http://matt.ucc.asn.au/dropbear/releases DROPBEAR_SOURCE = dropbear-$(DROPBEAR_VERSION).tar.bz2 DROPBEAR_LICENSE = MIT, BSD-2c-like, BSD-2c diff --git a/package/dropbear/dropbear.service b/package/dropbear/dropbear.service index 66ec9cf551..620cdd7a50 100644 --- a/package/dropbear/dropbear.service +++ b/package/dropbear/dropbear.service @@ -19,7 +19,7 @@ if [ -L /etc/dropbear \ mkdir -p "$(readlink /etc/dropbear)"; \ fi; \ fi' -EnvironmentFile=/etc/default/dropbear +EnvironmentFile=-/etc/default/dropbear ExecStart=/usr/sbin/dropbear -F -R $DROPBEAR_ARGS ExecReload=/bin/kill -HUP $MAINPID diff --git a/package/ebtables/Config.in b/package/ebtables/Config.in index 3f7566a607..fa123b196e 100644 --- a/package/ebtables/Config.in +++ b/package/ebtables/Config.in @@ -1,7 +1,12 @@ config BR2_PACKAGE_EBTABLES bool "ebtables" + depends on !BR2_TOOLCHAIN_USES_MUSL # mixes userspace and kernel headers depends on BR2_USE_MMU # fork() help Ethernet bridge frame table administration http://ebtables.netfilter.org/ + +comment "ebtables needs a glibc or uClibc toolchain" + depends on BR2_TOOLCHAIN_USES_MUSL + depends on BR2_USE_MMU diff --git a/package/efl/libecore/libecore.mk b/package/efl/libecore/libecore.mk index b5016dc959..28a8bae87d 100644 --- a/package/efl/libecore/libecore.mk +++ b/package/efl/libecore/libecore.mk @@ -97,7 +97,7 @@ define LIBECORE_BUILD_MAKEKEYS_FOR_HOST $(HOST_CONFIGURE_OPTS) $(MAKE1) -C $(@D)/src/util makekeys.o makekeys endef -LIBECORE_POST_EXTRACT_HOOKS += LIBECORE_BUILD_MAKEKEYS_FOR_HOST +LIBECORE_PRE_CONFIGURE_HOOKS += LIBECORE_BUILD_MAKEKEYS_FOR_HOST else LIBECORE_CONF_OPTS += --disable-ecore-x-xcb endif diff --git a/package/efl/libethumb/0001-ethumb-drop-unused-dlfcn.h-include.patch b/package/efl/libethumb/0001-ethumb-drop-unused-dlfcn.h-include.patch new file mode 100644 index 0000000000..834b0a8627 --- /dev/null +++ b/package/efl/libethumb/0001-ethumb-drop-unused-dlfcn.h-include.patch @@ -0,0 +1,28 @@ +From f7eeddc88ce67c248ebb1e6b8a3cb74d61de42b4 Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard <peter@korsgaard.com> +Date: Thu, 26 Nov 2015 22:07:24 +0100 +Subject: [PATCH] ethumb: drop unused dlfcn.h include + +ethumb includes dlfcn.h even though it isn't used, breaking builds with +purely static toolchains. + +Signed-off-by: Peter Korsgaard <peter@korsgaard.com> +--- + src/lib/ethumb.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/lib/ethumb.c b/src/lib/ethumb.c +index d1453a0..48c6a2d 100644 +--- a/src/lib/ethumb.c ++++ b/src/lib/ethumb.c +@@ -58,7 +58,6 @@ void *alloca (size_t); + #include <sys/types.h> + #include <sys/stat.h> + #include <dirent.h> +-#include <dlfcn.h> + #include <ctype.h> + + #ifdef HAVE_XATTR +-- +2.1.4 + diff --git a/package/espeak/0001-Fix-build-of-shared-library-on-architectures-needing.patch b/package/espeak/0001-Fix-build-of-shared-library-on-architectures-needing.patch new file mode 100644 index 0000000000..2590e15841 --- /dev/null +++ b/package/espeak/0001-Fix-build-of-shared-library-on-architectures-needing.patch @@ -0,0 +1,31 @@ +From 08a464e2b6bd31bb2bf4e258ebfa9b9d65805abf Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +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 <thomas.petazzoni@free-electrons.com> +--- + 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 + diff --git a/package/fastd/0002-Don-t-depend-on-net-if_ether.h.patch b/package/fastd/0002-Don-t-depend-on-net-if_ether.h.patch new file mode 100644 index 0000000000..9036ae58d1 --- /dev/null +++ b/package/fastd/0002-Don-t-depend-on-net-if_ether.h.patch @@ -0,0 +1,261 @@ +From 8ed750311482824e427db3b8b2cec6842ea8bc96 Mon Sep 17 00:00:00 2001 +From: Matthias Schiffer <mschiffer@universe-factory.net> +Date: Thu, 25 Jun 2015 01:03:23 +0200 +Subject: [PATCH] Don't depend on net/if_ether.h + +Instead of adding compatiblity code to make this work with musl, just +duplicate the needed definitions in fastd. + +[Backport from upstream commit 9ac7f3588dda7d175e04878e7b871a88306d13bf. +Fixes missing 'sys/queue.h' issue when building with musl.] + +Signed-off-by: Rodrigo Rebello <rprebello@gmail.com> +--- + cmake/checks.cmake | 5 ----- + src/compat.h | 22 ---------------------- + src/config.y | 1 + + src/fastd.h | 15 +++++++++++---- + src/fastd_config.h.in | 3 --- + src/log.c | 2 +- + src/peer.c | 7 ++++--- + src/receive.c | 2 +- + src/send.c | 2 +- + src/socket.c | 2 ++ + src/status.c | 1 + + src/types.h | 1 + + 12 files changed, 23 insertions(+), 40 deletions(-) + +diff --git a/cmake/checks.cmake b/cmake/checks.cmake +index f9f0399..62d52ff 100644 +--- a/cmake/checks.cmake ++++ b/cmake/checks.cmake +@@ -54,11 +54,6 @@ if(NOT DARWIN) + endif(NOT DARWIN) + + +-set(CMAKE_EXTRA_INCLUDE_FILES "netinet/if_ether.h") +-check_type_size("struct ethhdr" SIZEOF_ETHHDR) +-string(COMPARE NOTEQUAL "${SIZEOF_ETHHDR}" "" HAVE_ETHHDR) +- +- + set(CMAKE_REQUIRED_INCLUDES "sys/types.h") + + if(NOT DARWIN) +diff --git a/src/compat.h b/src/compat.h +index 991c268..29c9253 100644 +--- a/src/compat.h ++++ b/src/compat.h +@@ -39,32 +39,10 @@ + #include <unistd.h> + + #include <sys/types.h> +-#include <sys/queue.h> + #include <sys/socket.h> + +-#include <net/if.h> +-#include <net/if_arp.h> + #include <netinet/in.h> +-#include <netinet/if_ether.h> + +-#ifndef ETH_ALEN +-/** The length of a MAC address */ +-#define ETH_ALEN 6 +-#endif +- +-#ifndef ETH_HLEN +-/** The length of the standard ethernet header */ +-#define ETH_HLEN 14 +-#endif +- +-#ifndef HAVE_ETHHDR +-/** An ethernet header */ +-struct ethhdr { +- uint8_t h_dest[ETH_ALEN]; /**< The destination MAC address field */ +- uint8_t h_source[ETH_ALEN]; /**< The source MAC address field */ +- uint16_t h_proto; /**< The EtherType/length field */ +-} __attribute__((packed)); +-#endif + + #if defined(USE_FREEBIND) && !defined(IP_FREEBIND) + /** Compatiblity define for systems supporting, but not defining IP_FREEBIND */ +diff --git a/src/config.y b/src/config.y +index f2f597f..5b00d7c 100644 +--- a/src/config.y ++++ b/src/config.y +@@ -33,6 +33,7 @@ + %code requires { + #include <src/fastd.h> + #include <arpa/inet.h> ++ #include <net/if.h> + } + + %union { +diff --git a/src/fastd.h b/src/fastd.h +index f1b2f93..ec2316b 100644 +--- a/src/fastd.h ++++ b/src/fastd.h +@@ -58,7 +58,14 @@ + + /** An ethernet address */ + struct __attribute__((__packed__)) fastd_eth_addr { +- uint8_t data[ETH_ALEN]; /**< The bytes of the address */ ++ uint8_t data[6]; /**< The bytes of the address */ ++}; ++ ++/** An ethernet header */ ++struct __attribute__((packed)) fastd_eth_header { ++ fastd_eth_addr_t dest; /**< The destination MAC address field */ ++ fastd_eth_addr_t source; /**< The source MAC address field */ ++ uint16_t proto; /**< The EtherType/length field */ + }; + + +@@ -408,7 +415,7 @@ static inline void fastd_setnonblock(int fd) { + static inline size_t fastd_max_payload(void) { + switch (conf.mode) { + case MODE_TAP: +- return conf.mtu+ETH_HLEN; ++ return conf.mtu + sizeof(fastd_eth_header_t); + case MODE_TUN: + return conf.mtu; + default: +@@ -420,14 +427,14 @@ static inline size_t fastd_max_payload(void) { + /** Returns the source address of an ethernet packet */ + static inline fastd_eth_addr_t fastd_buffer_source_address(const fastd_buffer_t buffer) { + fastd_eth_addr_t ret; +- memcpy(&ret, buffer.data+offsetof(struct ethhdr, h_source), ETH_ALEN); ++ memcpy(&ret, buffer.data + offsetof(fastd_eth_header_t, source), sizeof(fastd_eth_addr_t)); + return ret; + } + + /** Returns the destination address of an ethernet packet */ + static inline fastd_eth_addr_t fastd_buffer_dest_address(const fastd_buffer_t buffer) { + fastd_eth_addr_t ret; +- memcpy(&ret, buffer.data+offsetof(struct ethhdr, h_dest), ETH_ALEN); ++ memcpy(&ret, buffer.data + offsetof(fastd_eth_header_t, dest), sizeof(fastd_eth_addr_t)); + return ret; + } + +diff --git a/src/fastd_config.h.in b/src/fastd_config.h.in +index 6a55930..5f9c868 100644 +--- a/src/fastd_config.h.in ++++ b/src/fastd_config.h.in +@@ -35,9 +35,6 @@ + /** Defined if the platform supports the AI_ADDRCONFIG flag to getaddrinfo() */ + #cmakedefine HAVE_AI_ADDRCONFIG + +-/** Defined if the platform defines the \e ethhdr struct */ +-#cmakedefine HAVE_ETHHDR +- + /** Defined if the platform defines get_current_dir_name() */ + #cmakedefine HAVE_GET_CURRENT_DIR_NAME + +diff --git a/src/log.c b/src/log.c +index 7d1538a..0727bbb 100644 +--- a/src/log.c ++++ b/src/log.c +@@ -74,7 +74,7 @@ size_t fastd_snprint_peer_address(char *buffer, size_t size, const fastd_peer_ad + if (!bind_address && hide) + return snprintf_safe(buffer, size, "[hidden]:%u", ntohs(address->in6.sin6_port)); + if (inet_ntop(AF_INET6, &address->in6.sin6_addr, addr_buf, sizeof(addr_buf))) { +- char ifname_buf[IF_NAMESIZE]; ++ char ifname_buf[IFNAMSIZ]; + if (!iface && IN6_IS_ADDR_LINKLOCAL(&address->in6.sin6_addr)) + iface = if_indextoname(address->in6.sin6_scope_id, ifname_buf); + +diff --git a/src/peer.c b/src/peer.c +index 9ce5ca2..3313112 100644 +--- a/src/peer.c ++++ b/src/peer.c +@@ -34,13 +34,14 @@ + #include "poll.h" + + #include <arpa/inet.h> ++#include <net/if.h> + #include <sys/wait.h> + + + /** Adds peer-specific fields to \e env */ + void fastd_peer_set_shell_env(fastd_shell_env_t *env, const fastd_peer_t *peer, const fastd_peer_address_t *local_addr, const fastd_peer_address_t *peer_addr) { +- /* both INET6_ADDRSTRLEN and IFNAMESIZE already include space for the zero termination, so there is no need to add space for the '%' here. */ +- char buf[INET6_ADDRSTRLEN+IF_NAMESIZE]; ++ /* both INET6_ADDRSTRLEN and IFNAMSIZ already include space for the zero termination, so there is no need to add space for the '%' here. */ ++ char buf[INET6_ADDRSTRLEN+IFNAMSIZ]; + + fastd_shell_env_set(env, "PEER_NAME", peer ? peer->name : NULL); + +@@ -850,7 +851,7 @@ void fastd_peer_set_established(fastd_peer_t *peer) { + + /** Compares two MAC addresses */ + static inline int eth_addr_cmp(const fastd_eth_addr_t *addr1, const fastd_eth_addr_t *addr2) { +- return memcmp(addr1->data, addr2->data, ETH_ALEN); ++ return memcmp(addr1->data, addr2->data, sizeof(fastd_eth_addr_t)); + } + + /** Compares two fastd_peer_eth_addr_t entries by their MAC addresses */ +diff --git a/src/receive.c b/src/receive.c +index 2ee402a..6db5cfd 100644 +--- a/src/receive.c ++++ b/src/receive.c +@@ -289,7 +289,7 @@ void fastd_receive(fastd_socket_t *sock) { + /** Handles a received and decrypted payload packet */ + void fastd_handle_receive(fastd_peer_t *peer, fastd_buffer_t buffer, bool reordered) { + if (conf.mode == MODE_TAP) { +- if (buffer.len < ETH_HLEN) { ++ if (buffer.len < sizeof(fastd_eth_header_t)) { + pr_debug("received truncated packet"); + fastd_buffer_free(buffer); + return; +diff --git a/src/send.c b/src/send.c +index caa7312..6d9f66f 100644 +--- a/src/send.c ++++ b/src/send.c +@@ -209,7 +209,7 @@ static inline bool send_data_tap_single(fastd_buffer_t buffer, fastd_peer_t *sou + if (conf.mode != MODE_TAP) + return false; + +- if (buffer.len < ETH_HLEN) { ++ if (buffer.len < sizeof(fastd_eth_header_t)) { + pr_debug("truncated ethernet packet"); + fastd_buffer_free(buffer); + return true; +diff --git a/src/socket.c b/src/socket.c +index e932148..03a11a6 100644 +--- a/src/socket.c ++++ b/src/socket.c +@@ -32,6 +32,8 @@ + #include "fastd.h" + #include "poll.h" + ++#include <net/if.h> ++ + + /** + Creates a new socket bound to a specific address +diff --git a/src/status.c b/src/status.c +index d0b8511..27d6b38 100644 +--- a/src/status.c ++++ b/src/status.c +@@ -39,6 +39,7 @@ + #include "peer.h" + + #include <json.h> ++#include <net/if.h> + #include <sys/un.h> + + +diff --git a/src/types.h b/src/types.h +index f380541..b684621 100644 +--- a/src/types.h ++++ b/src/types.h +@@ -87,6 +87,7 @@ typedef struct fastd_bind_address fastd_bind_address_t; + typedef struct fastd_socket fastd_socket_t; + typedef struct fastd_peer_group fastd_peer_group_t; + typedef struct fastd_eth_addr fastd_eth_addr_t; ++typedef struct fastd_eth_header fastd_eth_header_t; + typedef struct fastd_peer fastd_peer_t; + typedef struct fastd_peer_eth_addr fastd_peer_eth_addr_t; + typedef struct fastd_remote fastd_remote_t; +-- +2.1.4 + diff --git a/package/fastd/Config.in b/package/fastd/Config.in index 15451f058d..f753ce4817 100644 --- a/package/fastd/Config.in +++ b/package/fastd/Config.in @@ -1,6 +1,9 @@ config BR2_PACKAGE_FASTD bool "fastd" + depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap + depends on !BR2_STATIC_LIBS # libuecc select BR2_PACKAGE_LIBUECC select BR2_PACKAGE_LIBSODIUM select BR2_PACKAGE_LIBCAP @@ -20,5 +23,8 @@ config BR2_PACKAGE_FASTD_STATUS_SOCKET endif -comment "fastd needs a toolchain w/ threads" - depends on !BR2_TOOLCHAIN_HAS_THREADS +comment "fastd needs a toolchain w/ threads, headers >= 3.0, dynamic library" + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS \ + || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 \ + || BR2_STATIC_LIBS diff --git a/package/ffmpeg/Config.in b/package/ffmpeg/Config.in index e5981fee55..a273aead2c 100644 --- a/package/ffmpeg/Config.in +++ b/package/ffmpeg/Config.in @@ -1,8 +1,7 @@ menuconfig BR2_PACKAGE_FFMPEG bool "ffmpeg" - # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2 + depends on !BR2_nios2 help FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. diff --git a/package/gauche/0002-gc-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch b/package/gauche/0002-gc-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch new file mode 100644 index 0000000000..6cc065693f --- /dev/null +++ b/package/gauche/0002-gc-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch @@ -0,0 +1,62 @@ +gc/configure.ac: add check for NO_GETCONTEXT definition + +This patch is ported from bdwgc package. Since Gauche uses an internal +copy of the boehm gc code, it is affected by the same problem. + +Both configure and configure.ac are modified because autoreconf fails +due to an incompatibility with the version of the autotools used by +Buildroot. + +Signed-off-by: Hiroshi Kawashima <kei-k@ca2.so-net.ne.jp> + +Original credits of patch in bdwgc package: +Signed-off-by: Samuel Martin <s.martin49@gmail.com> +[yann.morin.1998@free.fr: add a comment, change variable name, use + AS_IF, remove debug traces, use AC_CHECK_FUNCS (as suggested by + Thomas)] +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> +Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +diff -ur a/gc/configure b/gc/configure +--- a/gc/configure 2015-11-12 21:41:02.394822056 +0900 ++++ b/gc/configure 2015-11-12 22:04:14.655157423 +0900 +@@ -16153,6 +16153,23 @@ + $as_echo "$ac_cv_fno_strict_aliasing" >&6; } + fi + ++# Check for getcontext (uClibc can be configured without it, for example) ++for ac_func in getcontext ++do : ++ ac_fn_c_check_func "$LINENO" "getcontext" "ac_cv_func_getcontext" ++if test "x$ac_cv_func_getcontext" = xyes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GETCONTEXT 1 ++_ACEOF ++ ++fi ++done ++ ++if test "$ac_cv_func_getcontext" = "no"; then : ++ CFLAGS="$CFLAGS -DNO_GETCONTEXT" ++ CPPFLAGS="$CPPFLAGS -DNO_GETCONTEXT" ++fi ++ + case "$host" in + # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64 + # and unnecessary everywhere. +diff -ur a/gc/configure.ac b/gc/configure.ac +--- a/gc/configure.ac 2015-11-12 22:31:44.851510997 +0900 ++++ b/gc/configure.ac 2015-11-12 22:33:39.292191227 +0900 +@@ -459,6 +459,12 @@ + AC_MSG_RESULT($ac_cv_fno_strict_aliasing) + fi + ++# Check for getcontext (uClibc can be configured without it, for example) ++AC_CHECK_FUNCS([getcontext]) ++AS_IF([test "$ac_cv_func_getcontext" = "no"], ++ [CFLAGS="$CFLAGS -DNO_GETCONTEXT" ++ CPPFLAGS="$CPPFLAGS -DNO_GETCONTEXT"]) ++ + case "$host" in + # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64 + # and unnecessary everywhere. diff --git a/package/gauche/Config.in b/package/gauche/Config.in index 072067224f..fd0617acc6 100644 --- a/package/gauche/Config.in +++ b/package/gauche/Config.in @@ -1,8 +1,19 @@ +# 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_sh64 || BR2_sparc || \ + BR2_sparc64 || 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_ARCH_HAS_ATOMICS + 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 @@ -13,7 +24,8 @@ config BR2_PACKAGE_GAUCHE http://practical-scheme.net/gauche/ -comment "gauche needs a toolchain w/ NPTL" +comment "gauche needs a toolchain w/ NPTL, dynamic library" depends on BR2_USE_MMU depends on BR2_ARCH_HAS_ATOMICS - depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL + depends on BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS diff --git a/package/gauche/gauche.mk b/package/gauche/gauche.mk index b887c6acfe..95a448b12b 100644 --- a/package/gauche/gauche.mk +++ b/package/gauche/gauche.mk @@ -12,6 +12,7 @@ GAUCHE_LICENSE_FILES = COPYING GAUCHE_DEPENDENCIES = host-gauche HOST_GAUCHE_CONF_OPTS = --without-zlib +GAUCHE_CONF_OPTS = --without-libatomic-ops ifeq ($(BR2_PACKAGE_ZLIB),y) GAUCHE_CONF_OPTS += --with-zlib=$(STAGING_DIR) diff --git a/package/gcc/4.8.5/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch b/package/gcc/4.8.5/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch new file mode 100644 index 0000000000..c11ad35aac --- /dev/null +++ b/package/gcc/4.8.5/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch @@ -0,0 +1,29 @@ +From 9bf6066d588632dab9f78932df15b5b4140f31f3 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be> +Date: Fri, 6 Nov 2015 14:27:23 +0100 +Subject: [PATCH] gcc/config.gcc: fix typo for powerpc e6500 cpu_is_64bit + +Otherwise it is not recognized as a 64-bit powerpc and gcc will not generate +64-bit binaries by default. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> +--- + gcc/config.gcc | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 4a7cbd2..9cc765e 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -439,7 +439,7 @@ powerpc*-*-*) + cpu_type=rs6000 + extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h" + case x$with_cpu in +- xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500) ++ xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500) + cpu_is_64bit=yes + ;; + esac +-- +2.6.2 + diff --git a/package/gcc/4.9.3/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch b/package/gcc/4.9.3/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch new file mode 100644 index 0000000000..c11ad35aac --- /dev/null +++ b/package/gcc/4.9.3/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch @@ -0,0 +1,29 @@ +From 9bf6066d588632dab9f78932df15b5b4140f31f3 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be> +Date: Fri, 6 Nov 2015 14:27:23 +0100 +Subject: [PATCH] gcc/config.gcc: fix typo for powerpc e6500 cpu_is_64bit + +Otherwise it is not recognized as a 64-bit powerpc and gcc will not generate +64-bit binaries by default. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> +--- + gcc/config.gcc | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 4a7cbd2..9cc765e 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -439,7 +439,7 @@ powerpc*-*-*) + cpu_type=rs6000 + extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h" + case x$with_cpu in +- xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500) ++ xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500) + cpu_is_64bit=yes + ;; + esac +-- +2.6.2 + diff --git a/package/gcc/5.2.0/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch b/package/gcc/5.2.0/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch new file mode 100644 index 0000000000..c11ad35aac --- /dev/null +++ b/package/gcc/5.2.0/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch @@ -0,0 +1,29 @@ +From 9bf6066d588632dab9f78932df15b5b4140f31f3 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be> +Date: Fri, 6 Nov 2015 14:27:23 +0100 +Subject: [PATCH] gcc/config.gcc: fix typo for powerpc e6500 cpu_is_64bit + +Otherwise it is not recognized as a 64-bit powerpc and gcc will not generate +64-bit binaries by default. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> +--- + gcc/config.gcc | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 4a7cbd2..9cc765e 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -439,7 +439,7 @@ powerpc*-*-*) + cpu_type=rs6000 + extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h" + case x$with_cpu in +- xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500) ++ xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500) + cpu_is_64bit=yes + ;; + esac +-- +2.6.2 + diff --git a/package/gcc/arc-2015.06/0001-Handle-correctly-compare-arguments.patch b/package/gcc/arc-2015.06/0001-Handle-correctly-compare-arguments.patch new file mode 100644 index 0000000000..b9a60d9c67 --- /dev/null +++ b/package/gcc/arc-2015.06/0001-Handle-correctly-compare-arguments.patch @@ -0,0 +1,71 @@ +From b4035128ba8f8bbbf9527f54f261a87b304ca4c5 Mon Sep 17 00:00:00 2001 +From: Claudiu Zissulescu <claziss@synopsys.com> +Date: Mon, 9 Nov 2015 15:23:39 +0100 +Subject: [PATCH] Handle correctly compare arguments + +--- + gcc/config/arc/arc.c | 24 ++++++++++++++++++------ + 1 files changed, 18 insertions(+), 6 deletions(-) + +diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c +index bd53525..caf483b 100644 +--- a/gcc/config/arc/arc.c ++++ b/gcc/config/arc/arc.c +@@ -1998,7 +1998,7 @@ gen_compare_reg (rtx comparison, enum machine_mode omode) + rtx y = XEXP (comparison, 1); + rtx tmp, cc_reg; + enum machine_mode mode, cmode; +- ++ bool swap = false; + + cmode = GET_MODE (x); + if (cmode == VOIDmode) +@@ -2073,6 +2073,7 @@ gen_compare_reg (rtx comparison, enum machine_mode omode) + rtx op0 = gen_rtx_REG (cmode, 0); + rtx op1 = gen_rtx_REG (cmode, GET_MODE_SIZE (cmode) / UNITS_PER_WORD); + ++ swap = false; + switch (code) + { + case NE: case EQ: case GT: case UNLE: case GE: case UNLT: +@@ -2080,22 +2081,33 @@ gen_compare_reg (rtx comparison, enum machine_mode omode) + break; + case LT: case UNGE: case LE: case UNGT: + code = swap_condition (code); +- tmp = x; +- x = y; +- y = tmp; ++ swap = true; + break; + default: + gcc_unreachable (); + } + if (currently_expanding_to_rtl) + { +- emit_move_insn (op0, x); +- emit_move_insn (op1, y); ++ if (swap) ++ { ++ emit_move_insn (op0, y); ++ emit_move_insn (op1, x); ++ } ++ else ++ { ++ emit_move_insn (op0, x); ++ emit_move_insn (op1, y); ++ } + } + else + { + gcc_assert (rtx_equal_p (op0, x)); + gcc_assert (rtx_equal_p (op1, y)); ++ if (swap) ++ { ++ op0 = y; ++ op1 = x; ++ } + } + emit_insn (gen_cmp_float (cc_reg, gen_rtx_COMPARE (mode, op0, op1))); + } +-- +2.5.0 diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk index c416b44e6d..dbdb6158e1 100644 --- a/package/gcc/gcc-final/gcc-final.mk +++ b/package/gcc/gcc-final/gcc-final.mk @@ -100,7 +100,7 @@ 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)/usr/bin/$(GNU_TARGET_NAME)-cc ]; then \ - ln -snf $(GNU_TARGET_NAME)-gcc \ + ln -f $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc \ $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc; \ fi endef diff --git a/package/gettext/gettext.mk b/package/gettext/gettext.mk index 724b39331d..cb509f2f9e 100644 --- a/package/gettext/gettext.mk +++ b/package/gettext/gettext.mk @@ -8,8 +8,8 @@ GETTEXT_VERSION = 0.19.6 GETTEXT_SITE = $(BR2_GNU_MIRROR)/gettext GETTEXT_SOURCE = gettext-$(GETTEXT_VERSION).tar.xz GETTEXT_INSTALL_STAGING = YES -GETTEXT_LICENSE = GPLv2+ -GETTEXT_LICENSE_FILES = COPYING +GETTEXT_LICENSE = LGPLv2.1+ (libintl), GPLv3+ (the rest) +GETTEXT_LICENSE_FILES = COPYING gettext-runtime/intl/COPYING.LIB GETTEXT_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv) HOST_GETTEXT_DEPENDENCIES = # we don't want the libiconv dependency diff --git a/package/glmark2/glmark2.mk b/package/glmark2/glmark2.mk index a2e88523a3..bd5b51a3f8 100644 --- a/package/glmark2/glmark2.mk +++ b/package/glmark2/glmark2.mk @@ -36,7 +36,7 @@ GLMARK2_DEPENDENCIES += wayland GLMARK2_FLAVORS += wayland-glesv2 endif -ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_HAS_LIBGL),yy) +ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGL),yyy) GLMARK2_DEPENDENCIES += wayland GLMARK2_FLAVORS += wayland-gl endif diff --git a/package/gmp/gmp.mk b/package/gmp/gmp.mk index c143794b45..af6958de81 100644 --- a/package/gmp/gmp.mk +++ b/package/gmp/gmp.mk @@ -12,5 +12,10 @@ GMP_LICENSE = LGPLv3+ GMP_LICENSE_FILES = COPYING.LESSERv3 GMP_DEPENDENCIES = host-m4 +# GMP doesn't support assembly for r6 ISA yet +ifeq ($(BR2_mips_32r6)$(BR2_mips_64r6),y) +GMP_CONF_OPTS += --disable-assembly +endif + $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/package/gpsd/Config.in b/package/gpsd/Config.in index fa8b8f6b2a..b4008ebd83 100644 --- a/package/gpsd/Config.in +++ b/package/gpsd/Config.in @@ -1,7 +1,6 @@ comment "gpsd needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS - depends on !BR2_microblaze config BR2_PACKAGE_GPSD bool "gpsd" @@ -10,8 +9,6 @@ config BR2_PACKAGE_GPSD depends on BR2_TOOLCHAIN_HAS_THREADS # Always tries to build a shared library depends on !BR2_STATIC_LIBS - # triggers gcc ice - depends on !BR2_microblaze 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, diff --git a/package/gpsd/gpsd.mk b/package/gpsd/gpsd.mk index 30554034b5..9ad19a867c 100644 --- a/package/gpsd/gpsd.mk +++ b/package/gpsd/gpsd.mk @@ -13,6 +13,7 @@ GPSD_INSTALL_STAGING = YES GPSD_DEPENDENCIES = host-scons host-pkgconf GPSD_LDFLAGS = $(TARGET_LDFLAGS) +GPSD_CFLAGS = $(TARGET_CFLAGS) GPSD_SCONS_ENV = $(TARGET_CONFIGURE_OPTS) @@ -37,6 +38,13 @@ else GPSD_SCONS_OPTS += libgpsmm=no endif +# prevents from triggering GCC ICE +# A bug was reported to the gcc bug tracker: +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68485 +ifeq ($(BR2_microblaze),y) +GPSD_CFLAGS += -fno-expensive-optimizations -fno-schedule-insns +endif + # Enable or disable Qt binding ifeq ($(BR2_PACKAGE_QT_NETWORK),y) GPSD_SCONS_ENV += QMAKE="$(QT_QMAKE)" @@ -191,7 +199,7 @@ ifeq ($(BR2_PACKAGE_GPSD_MAX_DEV),y) GPSD_SCONS_OPTS += limited_max_devices=$(BR2_PACKAGE_GPSD_MAX_DEV_VALUE) endif -GPSD_SCONS_ENV += LDFLAGS="$(GPSD_LDFLAGS)" +GPSD_SCONS_ENV += LDFLAGS="$(GPSD_LDFLAGS)" CFLAGS="$(GPSD_CFLAGS)" define GPSD_BUILD_CMDS (cd $(@D); \ diff --git a/package/gstreamer/gst-plugins-bad/gst-plugins-bad.mk b/package/gstreamer/gst-plugins-bad/gst-plugins-bad.mk index 0a85603ccb..fa2f124f90 100644 --- a/package/gstreamer/gst-plugins-bad/gst-plugins-bad.mk +++ b/package/gstreamer/gst-plugins-bad/gst-plugins-bad.mk @@ -7,6 +7,9 @@ GST_PLUGINS_BAD_VERSION = 0.10.23 GST_PLUGINS_BAD_SOURCE = gst-plugins-bad-$(GST_PLUGINS_BAD_VERSION).tar.xz GST_PLUGINS_BAD_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-bad +# COPYING.LIB is in fact v2, but most of the code is v2.1+ +GST_PLUGINS_BAD_LICENSE = LGPLv2.1+, GPLv2+ +GST_PLUGINS_BAD_LICENSE_FILES = COPYING.LIB COPYING GST_PLUGINS_BAD_CONF_OPTS = \ --disable-examples diff --git a/package/gstreamer/gst-plugins-base/gst-plugins-base.mk b/package/gstreamer/gst-plugins-base/gst-plugins-base.mk index 08733d172b..e1374ed801 100644 --- a/package/gstreamer/gst-plugins-base/gst-plugins-base.mk +++ b/package/gstreamer/gst-plugins-base/gst-plugins-base.mk @@ -8,6 +8,8 @@ GST_PLUGINS_BASE_VERSION = 0.10.36 GST_PLUGINS_BASE_SOURCE = gst-plugins-base-$(GST_PLUGINS_BASE_VERSION).tar.xz GST_PLUGINS_BASE_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-base GST_PLUGINS_BASE_INSTALL_STAGING = YES +GST_PLUGINS_BASE_LICENSE = GPLv2+, LGPLv2+ +GST_PLUGINS_BASE_LICENSE_FILES = COPYING COPYING.LIB # freetype is only used by examples, but if it is not found # and the host has a freetype-config script, then the host diff --git a/package/gstreamer/gst-plugins-good/gst-plugins-good.mk b/package/gstreamer/gst-plugins-good/gst-plugins-good.mk index fee83a1c60..a686caf604 100644 --- a/package/gstreamer/gst-plugins-good/gst-plugins-good.mk +++ b/package/gstreamer/gst-plugins-good/gst-plugins-good.mk @@ -7,6 +7,8 @@ GST_PLUGINS_GOOD_VERSION = 0.10.31 GST_PLUGINS_GOOD_SOURCE = gst-plugins-good-$(GST_PLUGINS_GOOD_VERSION).tar.xz GST_PLUGINS_GOOD_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-good +GST_PLUGINS_GOOD_LICENSE = LGPLv2.1+ +GST_PLUGINS_GOOD_LICENSE_FILES = COPYING GST_PLUGINS_GOOD_CONF_OPTS = \ --disable-examples \ diff --git a/package/gstreamer/gst-plugins-ugly/gst-plugins-ugly.mk b/package/gstreamer/gst-plugins-ugly/gst-plugins-ugly.mk index e8f23620f6..b921dc1480 100644 --- a/package/gstreamer/gst-plugins-ugly/gst-plugins-ugly.mk +++ b/package/gstreamer/gst-plugins-ugly/gst-plugins-ugly.mk @@ -7,6 +7,10 @@ GST_PLUGINS_UGLY_VERSION = 0.10.19 GST_PLUGINS_UGLY_SOURCE = gst-plugins-ugly-$(GST_PLUGINS_UGLY_VERSION).tar.xz GST_PLUGINS_UGLY_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-ugly +# COPYING is in fact LGPLv2.1, but all of the code is v2+ +# (except for one test, xingmux) +GST_PLUGINS_UGLY_LICENSE = LGPLv2+, GPLv2+ (synaesthesia) +GST_PLUGINS_UGLY_LICENSE_FILES = COPYING GST_PLUGINS_UGLY_CONF_OPTS = \ --disable-examples diff --git a/package/gstreamer/gstreamer/gstreamer.mk b/package/gstreamer/gstreamer/gstreamer.mk index 1dbd66fdae..f2bde30d29 100644 --- a/package/gstreamer/gstreamer/gstreamer.mk +++ b/package/gstreamer/gstreamer/gstreamer.mk @@ -8,11 +8,14 @@ GSTREAMER_VERSION = 0.10.36 GSTREAMER_SOURCE = gstreamer-$(GSTREAMER_VERSION).tar.xz GSTREAMER_SITE = http://gstreamer.freedesktop.org/src/gstreamer GSTREAMER_INSTALL_STAGING = YES +# COPYING is in fact v2, but most of the code is v2.1+ +GSTREAMER_LICENSE = LGPLv2.1+ +GSTREAMER_LICENSE_FILES = COPYING # Checking if unaligned memory access works correctly cannot be done when cross # compiling. For the following architectures there is no information available # in the configure script. -ifeq ($(BR2_arc)$(BR2_xtensa)$(BR2_microblaze),y) +ifeq ($(BR2_arc)$(BR2_xtensa)$(BR2_microblaze)$(BR2_nios2),y) GSTREAMER_CONF_ENV = as_cv_unaligned_access=no endif ifeq ($(BR2_aarch64),y) @@ -27,6 +30,7 @@ GSTREAMER_CONF_OPTS = \ $(if $(BR2_PACKAGE_GSTREAMER_GST_DEBUG),,--disable-gst-debug) \ $(if $(BR2_PACKAGE_GSTREAMER_PLUGIN_REGISTRY),,--disable-registry) -GSTREAMER_DEPENDENCIES = libglib2 host-pkgconf host-bison host-flex +GSTREAMER_DEPENDENCIES = libglib2 host-pkgconf host-bison host-flex \ + $(if $(BR2_PACKAGE_LIBXML2),libxml2) $(eval $(autotools-package)) diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in b/package/gstreamer1/gst1-plugins-bad/Config.in index 26a963eb13..f7714016bc 100644 --- a/package/gstreamer1/gst1-plugins-bad/Config.in +++ b/package/gstreamer1/gst1-plugins-bad/Config.in @@ -636,11 +636,12 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265 bool "x265" depends on BR2_INSTALL_LIBSTDCPP + depends on !BR2_STATIC_LIBS select BR2_PACKAGE_X265 help x265 encoding plugin -comment "x265 needs a toolchain w/ C++" - depends on !BR2_INSTALL_LIBSTDCPP +comment "x265 needs a toolchain w/ C++, dynamic library" + depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS endif diff --git a/package/gstreamer1/gstreamer1/gstreamer1.mk b/package/gstreamer1/gstreamer1/gstreamer1.mk index 526b0ec216..265afa0c9b 100644 --- a/package/gstreamer1/gstreamer1/gstreamer1.mk +++ b/package/gstreamer1/gstreamer1/gstreamer1.mk @@ -14,7 +14,7 @@ GSTREAMER1_LICENSE = LGPLv2+ LGPLv2.1+ # Checking if unaligned memory access works correctly cannot be done when cross # compiling. For the following architectures there is no information available # in the configure script. -ifeq ($(BR2_arc)$(BR2_xtensa)$(BR2_microblaze),y) +ifeq ($(BR2_arc)$(BR2_xtensa)$(BR2_microblaze)$(BR2_nios2),y) GSTREAMER1_CONF_ENV = as_cv_unaligned_access=no endif ifeq ($(BR2_aarch64),y) @@ -36,4 +36,14 @@ GSTREAMER1_CONF_OPTS = \ GSTREAMER1_DEPENDENCIES = libglib2 host-pkgconf host-bison host-flex +# gstreamer-1.6 changed the location of its gstconfig.h file, +# and unfortunately, not all (by far!) consumers have been +# updated to look in the correct location. +# Add a symlink to the legacy location +define GSTREAMER1_LEGACY_CGSTCONFIG_H + ln -sf $(STAGING_DIR)/usr/lib/gstreamer-1.0/include/gst/gstconfig.h \ + $(STAGING_DIR)/usr/include/gstreamer-1.0/gst/gstconfig.h +endef +GSTREAMER1_POST_INSTALL_STAGING_HOOKS += GSTREAMER1_LEGACY_CGSTCONFIG_H + $(eval $(autotools-package)) diff --git a/package/guile/Config.in b/package/guile/Config.in index d24f318448..e93d3534ae 100644 --- a/package/guile/Config.in +++ b/package/guile/Config.in @@ -1,8 +1,10 @@ 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_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 @@ -14,6 +16,7 @@ config BR2_PACKAGE_GUILE http://www.gnu.org/software/guile -comment "guile needs a toolchain w/ threads, wchar" - depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR +comment "guile needs a uClibc or (e)glibc toolchain w/ threads, wchar, dynamic library" + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ + BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL diff --git a/package/hostapd/0001-EAP-pwd-peer-Fix-last-fragment-length-validation.patch b/package/hostapd/0001-EAP-pwd-peer-Fix-last-fragment-length-validation.patch new file mode 100644 index 0000000000..82c26398b6 --- /dev/null +++ b/package/hostapd/0001-EAP-pwd-peer-Fix-last-fragment-length-validation.patch @@ -0,0 +1,54 @@ +From 8057821706784608b828e769ccefbced95591e50 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 1 Nov 2015 18:18:17 +0200 +Subject: [PATCH] EAP-pwd peer: Fix last fragment length validation + +All but the last fragment had their length checked against the remaining +room in the reassembly buffer. This allowed a suitably constructed last +fragment frame to try to add extra data that would go beyond the buffer. +The length validation code in wpabuf_put_data() prevents an actual +buffer write overflow from occurring, but this results in process +termination. (CVE-2015-5315) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + src/eap_peer/eap_pwd.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c +index 1f78544..75ceef1 100644 +--- a/src/eap_peer/eap_pwd.c ++++ b/src/eap_peer/eap_pwd.c +@@ -903,7 +903,7 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + /* + * buffer and ACK the fragment + */ +- if (EAP_PWD_GET_MORE_BIT(lm_exch)) { ++ if (EAP_PWD_GET_MORE_BIT(lm_exch) || data->in_frag_pos) { + data->in_frag_pos += len; + if (data->in_frag_pos > wpabuf_size(data->inbuf)) { + wpa_printf(MSG_INFO, "EAP-pwd: Buffer overflow attack " +@@ -916,7 +916,8 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + return NULL; + } + wpabuf_put_data(data->inbuf, pos, len); +- ++ } ++ if (EAP_PWD_GET_MORE_BIT(lm_exch)) { + resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_PWD, + EAP_PWD_HDR_SIZE, + EAP_CODE_RESPONSE, eap_get_id(reqData)); +@@ -930,10 +931,8 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + * we're buffering and this is the last fragment + */ + if (data->in_frag_pos) { +- wpabuf_put_data(data->inbuf, pos, len); + wpa_printf(MSG_DEBUG, "EAP-pwd: Last fragment, %d bytes", + (int) len); +- data->in_frag_pos += len; + pos = wpabuf_head_u8(data->inbuf); + len = data->in_frag_pos; + } +-- +1.9.1 + diff --git a/package/hostapd/0002-EAP-pwd-server-Fix-last-fragment-length-validation.patch b/package/hostapd/0002-EAP-pwd-server-Fix-last-fragment-length-validation.patch new file mode 100644 index 0000000000..bfc4c74e95 --- /dev/null +++ b/package/hostapd/0002-EAP-pwd-server-Fix-last-fragment-length-validation.patch @@ -0,0 +1,51 @@ +From bef802ece03f9ae9d52a21f0cf4f1bc2c5a1f8aa Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 1 Nov 2015 18:24:16 +0200 +Subject: [PATCH] EAP-pwd server: Fix last fragment length validation + +All but the last fragment had their length checked against the remaining +room in the reassembly buffer. This allowed a suitably constructed last +fragment frame to try to add extra data that would go beyond the buffer. +The length validation code in wpabuf_put_data() prevents an actual +buffer write overflow from occurring, but this results in process +termination. (CVE-2015-5314) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + src/eap_server/eap_server_pwd.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/eap_server/eap_server_pwd.c b/src/eap_server/eap_server_pwd.c +index cb83ff7..9f787ab 100644 +--- a/src/eap_server/eap_server_pwd.c ++++ b/src/eap_server/eap_server_pwd.c +@@ -970,7 +970,7 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + /* + * the first and all intermediate fragments have the M bit set + */ +- if (EAP_PWD_GET_MORE_BIT(lm_exch)) { ++ if (EAP_PWD_GET_MORE_BIT(lm_exch) || data->in_frag_pos) { + if ((data->in_frag_pos + len) > wpabuf_size(data->inbuf)) { + wpa_printf(MSG_DEBUG, "EAP-pwd: Buffer overflow " + "attack detected! (%d+%d > %d)", +@@ -981,6 +981,8 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + } + wpabuf_put_data(data->inbuf, pos, len); + data->in_frag_pos += len; ++ } ++ if (EAP_PWD_GET_MORE_BIT(lm_exch)) { + wpa_printf(MSG_DEBUG, "EAP-pwd: Got a %d byte fragment", + (int) len); + return; +@@ -990,8 +992,6 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + * buffering fragments so that's how we know it's the last) + */ + if (data->in_frag_pos) { +- wpabuf_put_data(data->inbuf, pos, len); +- data->in_frag_pos += len; + pos = wpabuf_head_u8(data->inbuf); + len = data->in_frag_pos; + wpa_printf(MSG_DEBUG, "EAP-pwd: Last fragment, %d bytes", +-- +1.9.1 + diff --git a/package/ibrdtnd/ibrdtnd.mk b/package/ibrdtnd/ibrdtnd.mk index e9fa43da8d..01ebb7ab36 100644 --- a/package/ibrdtnd/ibrdtnd.mk +++ b/package/ibrdtnd/ibrdtnd.mk @@ -9,7 +9,7 @@ IBRDTND_SOURCE = ibrdtnd-$(IBRDTND_VERSION).tar.gz 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 +IBRDTND_DEPENDENCIES = ibrdtn ibrcommon host-pkgconf # Disable features that don't have the necessary dependencies in # Buildroot @@ -18,6 +18,9 @@ IBRDTND_CONF_OPTS = \ --without-wifip2p \ --without-vmime +# don't build documentation +IBRDTND_CONF_ENV = PDFLATEX='no' + ifeq ($(BR2_PACKAGE_LIBDAEMON),y) IBRDTND_CONF_OPTS += --enable-libdaemon IBRDTND_DEPENDENCIES += libdaemon diff --git a/package/iodine/iodine.mk b/package/iodine/iodine.mk index 57deb9ece8..9de54e041e 100644 --- a/package/iodine/iodine.mk +++ b/package/iodine/iodine.mk @@ -10,8 +10,19 @@ IODINE_DEPENDENCIES = zlib IODINE_LICENSE = MIT IODINE_LICENSE_FILES = README +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 - $(MAKE) CC="$(TARGET_CC)" ARCH=$(BR2_ARCH) -C $(@D) + $(TARGET_CONFIGURE_OPTS) CFLAGS="$(IODINE_CFLAGS)" \ + $(MAKE) ARCH=$(BR2_ARCH) -C $(@D) endef define IODINE_INSTALL_TARGET_CMDS diff --git a/package/iproute2/0001-Avoid-in6_addr-redefinition.patch b/package/iproute2/0001-Avoid-in6_addr-redefinition.patch new file mode 100644 index 0000000000..52e29408ad --- /dev/null +++ b/package/iproute2/0001-Avoid-in6_addr-redefinition.patch @@ -0,0 +1,95 @@ +From 48596709d8ab59727b79a5c6db33ebb251c36543 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Thu, 19 Nov 2015 17:44:25 +0100 +Subject: [PATCH] Avoid in6_addr redefinition +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Due to both <netinet/in.h> and <linux/in6.h> being included, the +in6_addr is being redefined: once from the C library headers and once +from the kernel headers. This causes some build failures with for +example the musl C library: + +In file included from ../include/linux/xfrm.h:4:0, + from xfrm.h:29, + from ipxfrm.c:39: +../include/linux/in6.h:32:8: error: redefinition of ‘struct in6_addr’ + struct in6_addr { + ^ +In file included from .../output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netdb.h:9:0, + from ipxfrm.c:34: +.../output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:24:8: note: originally defined here + struct in6_addr + ^ + +In order to fix this, use just the C library header <netinet/in.h>. + +Original patch taken from +http://git.alpinelinux.org/cgit/aports/tree/main/iproute2/musl-fixes.patch. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + include/libiptc/ipt_kernel_headers.h | 2 -- + include/linux/if_bridge.h | 1 - + include/linux/netfilter.h | 2 -- + include/linux/xfrm.h | 1 - + 4 files changed, 6 deletions(-) + +diff --git a/include/libiptc/ipt_kernel_headers.h b/include/libiptc/ipt_kernel_headers.h +index 7e87828..9566be5 100644 +--- a/include/libiptc/ipt_kernel_headers.h ++++ b/include/libiptc/ipt_kernel_headers.h +@@ -15,12 +15,10 @@ + #else /* libc5 */ + #include <sys/socket.h> + #include <linux/ip.h> +-#include <linux/in.h> + #include <linux/if.h> + #include <linux/icmp.h> + #include <linux/tcp.h> + #include <linux/udp.h> + #include <linux/types.h> +-#include <linux/in6.h> + #endif + #endif +diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h +index ee197a3..f823aa4 100644 +--- a/include/linux/if_bridge.h ++++ b/include/linux/if_bridge.h +@@ -15,7 +15,6 @@ + + #include <linux/types.h> + #include <linux/if_ether.h> +-#include <linux/in6.h> + + #define SYSFS_BRIDGE_ATTR "bridge" + #define SYSFS_BRIDGE_FDB "brforward" +diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h +index b71b4c9..3e4e6ae 100644 +--- a/include/linux/netfilter.h ++++ b/include/linux/netfilter.h +@@ -4,8 +4,6 @@ + #include <linux/types.h> + + #include <linux/sysctl.h> +-#include <linux/in.h> +-#include <linux/in6.h> + + /* Responses from hook functions. */ + #define NF_DROP 0 +diff --git a/include/linux/xfrm.h b/include/linux/xfrm.h +index b8f5451..a9761a5 100644 +--- a/include/linux/xfrm.h ++++ b/include/linux/xfrm.h +@@ -1,7 +1,6 @@ + #ifndef _LINUX_XFRM_H + #define _LINUX_XFRM_H + +-#include <linux/in6.h> + #include <linux/types.h> + + /* All of the structures in this file may not change size as they are +-- +2.6.3 + diff --git a/package/iproute2/0002-Add-missing-sys-types.h-include.patch b/package/iproute2/0002-Add-missing-sys-types.h-include.patch new file mode 100644 index 0000000000..ef918140da --- /dev/null +++ b/package/iproute2/0002-Add-missing-sys-types.h-include.patch @@ -0,0 +1,38 @@ +From 560dee4b4be54699c0c9679771c9e0d61e4db80a Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Thu, 19 Nov 2015 17:48:55 +0100 +Subject: [PATCH] Add missing <sys/types.h> include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The u_intXX_t types are defined in <sys/types.h>, so it should be +included before using those types. Otherwise, with certain C +libraries, the build fails with: + +In file included from ../include/iptables.h:4:0, + from m_ipt.c:18: +../include/iptables_common.h:47:16: error: unknown type name ‘u_int32_t’ + #define __le32 u_int32_t + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + include/iptables_common.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/include/iptables_common.h b/include/iptables_common.h +index 9099667..2c27a4b 100644 +--- a/include/iptables_common.h ++++ b/include/iptables_common.h +@@ -43,6 +43,8 @@ extern char *lib_dir; + extern void init_extensions(void); + #endif + ++#include <sys/types.h> ++ + #define __be32 u_int32_t + #define __le32 u_int32_t + #define __be16 u_int16_t +-- +2.6.3 + diff --git a/package/jimtcl/jimtcl.mk b/package/jimtcl/jimtcl.mk index e79e0f6951..fe35223b43 100644 --- a/package/jimtcl/jimtcl.mk +++ b/package/jimtcl/jimtcl.mk @@ -33,8 +33,8 @@ else JIMTCL_SHARED = --shared define JIMTCL_INSTALL_LIB $(INSTALL) -m 0755 -D $(@D)/libjim.so.$(JIMTCL_VERSION) \ - $(1)/usr/lib/libjim.$(JIMTCL_VERSION) - ln -s libjim.$(JIMTCL_VERSION) $(1)/usr/lib/libjim.so + $(1)/usr/lib/libjim.so.$(JIMTCL_VERSION) + ln -sf libjim.so.$(JIMTCL_VERSION) $(1)/usr/lib/libjim.so endef endif @@ -46,7 +46,11 @@ define JIMTCL_CONFIGURE_CMDS ) 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" \ $(MAKE) -C $(@D) endef diff --git a/package/kompexsqlite/Config.in b/package/kompexsqlite/Config.in index b6d7d7f1ae..5b71842577 100644 --- a/package/kompexsqlite/Config.in +++ b/package/kompexsqlite/Config.in @@ -1,5 +1,7 @@ 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 @@ -8,5 +10,6 @@ config BR2_PACKAGE_KOMPEXSQLITE http://sqlitewrapper.kompex-online.com/index.php -comment "kompexsqlite needs a toolchain w/ C++, dynamic library" - depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS +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 diff --git a/package/libcurl/libcurl.mk b/package/libcurl/libcurl.mk index 8587baadba..7c259b268b 100644 --- a/package/libcurl/libcurl.mk +++ b/package/libcurl/libcurl.mk @@ -30,7 +30,7 @@ LIBCURL_CONF_ENV += ac_cv_lib_crypto_CRYPTO_lock=yes # 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=$$LD_LIBRARY_PATH:/lib:/usr/lib +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 ifeq ($(BR2_PACKAGE_GNUTLS),y) diff --git a/package/libfreeimage/0003-LibWebP-fix-compilation-issue-with-GCC-5.x-C-11.patch b/package/libfreeimage/0003-LibWebP-fix-compilation-issue-with-GCC-5.x-C-11.patch new file mode 100644 index 0000000000..6964827cca --- /dev/null +++ b/package/libfreeimage/0003-LibWebP-fix-compilation-issue-with-GCC-5.x-C-11.patch @@ -0,0 +1,1172 @@ +From 44bce1b66c1cdd5308ac3ac773ea0a53d83790fd Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard <peter@korsgaard.com> +Date: Tue, 24 Nov 2015 21:16:39 +0100 +Subject: [PATCH] LibWebP: fix compilation issue with GCC 5.x / C++11 + +GCC 5.1 / C++11 gets confused about the "#<TEXT>" in the inline assembly +code, and dies with errors like: + +Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:37:34: error: invalid +character ' ' in raw string delimiter + +Fix it by introducting white space around the string literals like it has +been done in upstream webp: + +https://chromium.googlesource.com/webm/libwebp/+/eebaf97f5a1cb713d81d311308d8a48c124e5aef + +Discussed upstream: +http://sourceforge.net/p/freeimage/discussion/36110/thread/605ef8e4/ + +[Scripted by sed -i 's/"\(#[A-Z0-9]*\)"/" \1 "/g' *.c] +Signed-off-by: Peter Korsgaard <peter@korsgaard.com> +--- + Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c | 28 +- + Source/LibWebP/src/dsp/dsp.enc_mips32.c | 314 ++++++++++----------- + Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c | 288 +++++++++---------- + Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c | 10 +- + Source/LibWebP/src/dsp/dsp.lossless_mips32.c | 34 +-- + Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c | 8 +- + .../LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c | 18 +- + Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c | 10 +- + 8 files changed, 355 insertions(+), 355 deletions(-) + +diff --git a/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c +index dac2c93..aaa8111 100644 +--- a/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c +@@ -548,10 +548,10 @@ static void SimpleVFilter16(uint8_t* p, int stride, int thresh) { + // TEMP3 = SRC[D + D1 * BPS]
+ #define LOAD_4_BYTES(TEMP0, TEMP1, TEMP2, TEMP3, \
+ A, A1, B, B1, C, C1, D, D1, SRC) \
+- "lbu %["#TEMP0"], "#A"+"#A1"*"XSTR(BPS)"(%["#SRC"]) \n\t" \
+- "lbu %["#TEMP1"], "#B"+"#B1"*"XSTR(BPS)"(%["#SRC"]) \n\t" \
+- "lbu %["#TEMP2"], "#C"+"#C1"*"XSTR(BPS)"(%["#SRC"]) \n\t" \
+- "lbu %["#TEMP3"], "#D"+"#D1"*"XSTR(BPS)"(%["#SRC"]) \n\t" \
++ "lbu %[" #TEMP0 "], " #A "+" #A1 "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \
++ "lbu %[" #TEMP1 "], " #B "+" #B1 "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \
++ "lbu %[" #TEMP2 "], " #C "+" #C1 "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \
++ "lbu %[" #TEMP3 "], " #D "+" #D1 "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \
+
+ static void SimpleHFilter16(uint8_t* p, int stride, int thresh) {
+ int i;
+@@ -623,8 +623,8 @@ static void SimpleHFilter16i(uint8_t* p, int stride, int thresh) { + // DST[A * BPS] = TEMP0
+ // DST[B + C * BPS] = TEMP1
+ #define STORE_8_BYTES(TEMP0, TEMP1, A, B, C, DST) \
+- "usw %["#TEMP0"], "#A"*"XSTR(BPS)"(%["#DST"]) \n\t" \
+- "usw %["#TEMP1"], "#B"+"#C"*"XSTR(BPS)"(%["#DST"]) \n\t"
++ "usw %[" #TEMP0 "], " #A "*"XSTR(BPS)"(%[" #DST "]) \n\t" \
++ "usw %[" #TEMP1 "], " #B "+" #C "*"XSTR(BPS)"(%[" #DST "]) \n\t"
+
+ static void VE4(uint8_t* dst) { // vertical
+ const uint8_t* top = dst - BPS;
+@@ -725,8 +725,8 @@ static void RD4(uint8_t* dst) { // Down-right + // TEMP0 = SRC[A * BPS]
+ // TEMP1 = SRC[B + C * BPS]
+ #define LOAD_8_BYTES(TEMP0, TEMP1, A, B, C, SRC) \
+- "ulw %["#TEMP0"], "#A"*"XSTR(BPS)"(%["#SRC"]) \n\t" \
+- "ulw %["#TEMP1"], "#B"+"#C"*"XSTR(BPS)"(%["#SRC"]) \n\t"
++ "ulw %[" #TEMP0 "], " #A "*"XSTR(BPS)"(%[" #SRC "]) \n\t" \
++ "ulw %[" #TEMP1 "], " #B "+" #C "*"XSTR(BPS)"(%[" #SRC "]) \n\t"
+
+ static void LD4(uint8_t* dst) { // Down-Left
+ int temp0, temp1, temp2, temp3, temp4;
+@@ -873,24 +873,24 @@ static void DC8uvNoTop(uint8_t* dst) { // DC with no top samples + #define CLIPPING(SIZE) \
+ "preceu.ph.qbl %[temp2], %[temp0] \n\t" \
+ "preceu.ph.qbr %[temp0], %[temp0] \n\t" \
+-".if "#SIZE" == 8 \n\t" \
++".if " #SIZE " == 8 \n\t" \
+ "preceu.ph.qbl %[temp3], %[temp1] \n\t" \
+ "preceu.ph.qbr %[temp1], %[temp1] \n\t" \
+ ".endif \n\t" \
+ "addu.ph %[temp2], %[temp2], %[dst_1] \n\t" \
+ "addu.ph %[temp0], %[temp0], %[dst_1] \n\t" \
+-".if "#SIZE" == 8 \n\t" \
++".if " #SIZE " == 8 \n\t" \
+ "addu.ph %[temp3], %[temp3], %[dst_1] \n\t" \
+ "addu.ph %[temp1], %[temp1], %[dst_1] \n\t" \
+ ".endif \n\t" \
+ "shll_s.ph %[temp2], %[temp2], 7 \n\t" \
+ "shll_s.ph %[temp0], %[temp0], 7 \n\t" \
+-".if "#SIZE" == 8 \n\t" \
++".if " #SIZE " == 8 \n\t" \
+ "shll_s.ph %[temp3], %[temp3], 7 \n\t" \
+ "shll_s.ph %[temp1], %[temp1], 7 \n\t" \
+ ".endif \n\t" \
+ "precrqu_s.qb.ph %[temp0], %[temp2], %[temp0] \n\t" \
+-".if "#SIZE" == 8 \n\t" \
++".if " #SIZE " == 8 \n\t" \
+ "precrqu_s.qb.ph %[temp1], %[temp3], %[temp1] \n\t" \
+ ".endif \n\t"
+
+@@ -899,7 +899,7 @@ static void DC8uvNoTop(uint8_t* dst) { // DC with no top samples + int dst_1 = ((int)(DST)[-1] << 16) + (DST)[-1]; \
+ int temp0, temp1, temp2, temp3; \
+ __asm__ volatile ( \
+- ".if "#SIZE" < 8 \n\t" \
++ ".if " #SIZE " < 8 \n\t" \
+ "ulw %[temp0], 0(%[top]) \n\t" \
+ "subu.ph %[dst_1], %[dst_1], %[top_1] \n\t" \
+ CLIPPING(4) \
+@@ -911,7 +911,7 @@ static void DC8uvNoTop(uint8_t* dst) { // DC with no top samples + CLIPPING(8) \
+ "usw %[temp0], 0(%[dst]) \n\t" \
+ "usw %[temp1], 4(%[dst]) \n\t" \
+- ".if "#SIZE" == 16 \n\t" \
++ ".if " #SIZE " == 16 \n\t" \
+ "ulw %[temp0], 8(%[top]) \n\t" \
+ "ulw %[temp1], 12(%[top]) \n\t" \
+ CLIPPING(8) \
+diff --git a/Source/LibWebP/src/dsp/dsp.enc_mips32.c b/Source/LibWebP/src/dsp/dsp.enc_mips32.c +index 545aa3a..bf1c16d 100644 +--- a/Source/LibWebP/src/dsp/dsp.enc_mips32.c ++++ b/Source/LibWebP/src/dsp/dsp.enc_mips32.c +@@ -31,26 +31,26 @@ static const int kC2 = 35468; + // TEMP0..TEMP3 - registers for corresponding tmp elements
+ // TEMP4..TEMP5 - temporary registers
+ #define VERTICAL_PASS(A, B, C, D, TEMP4, TEMP0, TEMP1, TEMP2, TEMP3) \
+- "lh %[temp16], "#A"(%[temp20]) \n\t" \
+- "lh %[temp18], "#B"(%[temp20]) \n\t" \
+- "lh %[temp17], "#C"(%[temp20]) \n\t" \
+- "lh %[temp19], "#D"(%[temp20]) \n\t" \
+- "addu %["#TEMP4"], %[temp16], %[temp18] \n\t" \
++ "lh %[temp16], " #A "(%[temp20]) \n\t" \
++ "lh %[temp18], " #B "(%[temp20]) \n\t" \
++ "lh %[temp17], " #C "(%[temp20]) \n\t" \
++ "lh %[temp19], " #D "(%[temp20]) \n\t" \
++ "addu %[" #TEMP4 "], %[temp16], %[temp18] \n\t" \
+ "subu %[temp16], %[temp16], %[temp18] \n\t" \
+- "mul %["#TEMP0"], %[temp17], %[kC2] \n\t" \
++ "mul %[" #TEMP0 "], %[temp17], %[kC2] \n\t" \
+ "mul %[temp18], %[temp19], %[kC1] \n\t" \
+ "mul %[temp17], %[temp17], %[kC1] \n\t" \
+ "mul %[temp19], %[temp19], %[kC2] \n\t" \
+- "sra %["#TEMP0"], %["#TEMP0"], 16 \n\n" \
++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 16 \n\n" \
+ "sra %[temp18], %[temp18], 16 \n\n" \
+ "sra %[temp17], %[temp17], 16 \n\n" \
+ "sra %[temp19], %[temp19], 16 \n\n" \
+- "subu %["#TEMP2"], %["#TEMP0"], %[temp18] \n\t" \
+- "addu %["#TEMP3"], %[temp17], %[temp19] \n\t" \
+- "addu %["#TEMP0"], %["#TEMP4"], %["#TEMP3"] \n\t" \
+- "addu %["#TEMP1"], %[temp16], %["#TEMP2"] \n\t" \
+- "subu %["#TEMP2"], %[temp16], %["#TEMP2"] \n\t" \
+- "subu %["#TEMP3"], %["#TEMP4"], %["#TEMP3"] \n\t"
++ "subu %[" #TEMP2 "], %[" #TEMP0 "], %[temp18] \n\t" \
++ "addu %[" #TEMP3 "], %[temp17], %[temp19] \n\t" \
++ "addu %[" #TEMP0 "], %[" #TEMP4 "], %[" #TEMP3 "] \n\t" \
++ "addu %[" #TEMP1 "], %[temp16], %[" #TEMP2 "] \n\t" \
++ "subu %[" #TEMP2 "], %[temp16], %[" #TEMP2 "] \n\t" \
++ "subu %[" #TEMP3 "], %[" #TEMP4 "], %[" #TEMP3 "] \n\t"
+
+ // macro for one horizontal pass in ITransformOne
+ // MUL and STORE macros inlined
+@@ -59,58 +59,58 @@ static const int kC2 = 35468; + // A - offset in bytes to load from ref and store to dst buffer
+ // TEMP0, TEMP4, TEMP8 and TEMP12 - registers for corresponding tmp elements
+ #define HORIZONTAL_PASS(A, TEMP0, TEMP4, TEMP8, TEMP12) \
+- "addiu %["#TEMP0"], %["#TEMP0"], 4 \n\t" \
+- "addu %[temp16], %["#TEMP0"], %["#TEMP8"] \n\t" \
+- "subu %[temp17], %["#TEMP0"], %["#TEMP8"] \n\t" \
+- "mul %["#TEMP0"], %["#TEMP4"], %[kC2] \n\t" \
+- "mul %["#TEMP8"], %["#TEMP12"], %[kC1] \n\t" \
+- "mul %["#TEMP4"], %["#TEMP4"], %[kC1] \n\t" \
+- "mul %["#TEMP12"], %["#TEMP12"], %[kC2] \n\t" \
+- "sra %["#TEMP0"], %["#TEMP0"], 16 \n\t" \
+- "sra %["#TEMP8"], %["#TEMP8"], 16 \n\t" \
+- "sra %["#TEMP4"], %["#TEMP4"], 16 \n\t" \
+- "sra %["#TEMP12"], %["#TEMP12"], 16 \n\t" \
+- "subu %[temp18], %["#TEMP0"], %["#TEMP8"] \n\t" \
+- "addu %[temp19], %["#TEMP4"], %["#TEMP12"] \n\t" \
+- "addu %["#TEMP0"], %[temp16], %[temp19] \n\t" \
+- "addu %["#TEMP4"], %[temp17], %[temp18] \n\t" \
+- "subu %["#TEMP8"], %[temp17], %[temp18] \n\t" \
+- "subu %["#TEMP12"], %[temp16], %[temp19] \n\t" \
++ "addiu %[" #TEMP0 "], %[" #TEMP0 "], 4 \n\t" \
++ "addu %[temp16], %[" #TEMP0 "], %[" #TEMP8 "] \n\t" \
++ "subu %[temp17], %[" #TEMP0 "], %[" #TEMP8 "] \n\t" \
++ "mul %[" #TEMP0 "], %[" #TEMP4 "], %[kC2] \n\t" \
++ "mul %[" #TEMP8 "], %[" #TEMP12 "], %[kC1] \n\t" \
++ "mul %[" #TEMP4 "], %[" #TEMP4 "], %[kC1] \n\t" \
++ "mul %[" #TEMP12 "], %[" #TEMP12 "], %[kC2] \n\t" \
++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 16 \n\t" \
++ "sra %[" #TEMP8 "], %[" #TEMP8 "], 16 \n\t" \
++ "sra %[" #TEMP4 "], %[" #TEMP4 "], 16 \n\t" \
++ "sra %[" #TEMP12 "], %[" #TEMP12 "], 16 \n\t" \
++ "subu %[temp18], %[" #TEMP0 "], %[" #TEMP8 "] \n\t" \
++ "addu %[temp19], %[" #TEMP4 "], %[" #TEMP12 "] \n\t" \
++ "addu %[" #TEMP0 "], %[temp16], %[temp19] \n\t" \
++ "addu %[" #TEMP4 "], %[temp17], %[temp18] \n\t" \
++ "subu %[" #TEMP8 "], %[temp17], %[temp18] \n\t" \
++ "subu %[" #TEMP12 "], %[temp16], %[temp19] \n\t" \
+ "lw %[temp20], 0(%[args]) \n\t" \
+- "sra %["#TEMP0"], %["#TEMP0"], 3 \n\t" \
+- "sra %["#TEMP4"], %["#TEMP4"], 3 \n\t" \
+- "sra %["#TEMP8"], %["#TEMP8"], 3 \n\t" \
+- "sra %["#TEMP12"], %["#TEMP12"], 3 \n\t" \
+- "lbu %[temp16], 0+"XSTR(BPS)"*"#A"(%[temp20]) \n\t" \
+- "lbu %[temp17], 1+"XSTR(BPS)"*"#A"(%[temp20]) \n\t" \
+- "lbu %[temp18], 2+"XSTR(BPS)"*"#A"(%[temp20]) \n\t" \
+- "lbu %[temp19], 3+"XSTR(BPS)"*"#A"(%[temp20]) \n\t" \
+- "addu %["#TEMP0"], %[temp16], %["#TEMP0"] \n\t" \
+- "addu %["#TEMP4"], %[temp17], %["#TEMP4"] \n\t" \
+- "addu %["#TEMP8"], %[temp18], %["#TEMP8"] \n\t" \
+- "addu %["#TEMP12"], %[temp19], %["#TEMP12"] \n\t" \
+- "slt %[temp16], %["#TEMP0"], $zero \n\t" \
+- "slt %[temp17], %["#TEMP4"], $zero \n\t" \
+- "slt %[temp18], %["#TEMP8"], $zero \n\t" \
+- "slt %[temp19], %["#TEMP12"], $zero \n\t" \
+- "movn %["#TEMP0"], $zero, %[temp16] \n\t" \
+- "movn %["#TEMP4"], $zero, %[temp17] \n\t" \
+- "movn %["#TEMP8"], $zero, %[temp18] \n\t" \
+- "movn %["#TEMP12"], $zero, %[temp19] \n\t" \
++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 3 \n\t" \
++ "sra %[" #TEMP4 "], %[" #TEMP4 "], 3 \n\t" \
++ "sra %[" #TEMP8 "], %[" #TEMP8 "], 3 \n\t" \
++ "sra %[" #TEMP12 "], %[" #TEMP12 "], 3 \n\t" \
++ "lbu %[temp16], 0+"XSTR(BPS)"*" #A "(%[temp20]) \n\t" \
++ "lbu %[temp17], 1+"XSTR(BPS)"*" #A "(%[temp20]) \n\t" \
++ "lbu %[temp18], 2+"XSTR(BPS)"*" #A "(%[temp20]) \n\t" \
++ "lbu %[temp19], 3+"XSTR(BPS)"*" #A "(%[temp20]) \n\t" \
++ "addu %[" #TEMP0 "], %[temp16], %[" #TEMP0 "] \n\t" \
++ "addu %[" #TEMP4 "], %[temp17], %[" #TEMP4 "] \n\t" \
++ "addu %[" #TEMP8 "], %[temp18], %[" #TEMP8 "] \n\t" \
++ "addu %[" #TEMP12 "], %[temp19], %[" #TEMP12 "] \n\t" \
++ "slt %[temp16], %[" #TEMP0 "], $zero \n\t" \
++ "slt %[temp17], %[" #TEMP4 "], $zero \n\t" \
++ "slt %[temp18], %[" #TEMP8 "], $zero \n\t" \
++ "slt %[temp19], %[" #TEMP12 "], $zero \n\t" \
++ "movn %[" #TEMP0 "], $zero, %[temp16] \n\t" \
++ "movn %[" #TEMP4 "], $zero, %[temp17] \n\t" \
++ "movn %[" #TEMP8 "], $zero, %[temp18] \n\t" \
++ "movn %[" #TEMP12 "], $zero, %[temp19] \n\t" \
+ "addiu %[temp20], $zero, 255 \n\t" \
+- "slt %[temp16], %["#TEMP0"], %[temp20] \n\t" \
+- "slt %[temp17], %["#TEMP4"], %[temp20] \n\t" \
+- "slt %[temp18], %["#TEMP8"], %[temp20] \n\t" \
+- "slt %[temp19], %["#TEMP12"], %[temp20] \n\t" \
+- "movz %["#TEMP0"], %[temp20], %[temp16] \n\t" \
+- "movz %["#TEMP4"], %[temp20], %[temp17] \n\t" \
++ "slt %[temp16], %[" #TEMP0 "], %[temp20] \n\t" \
++ "slt %[temp17], %[" #TEMP4 "], %[temp20] \n\t" \
++ "slt %[temp18], %[" #TEMP8 "], %[temp20] \n\t" \
++ "slt %[temp19], %[" #TEMP12 "], %[temp20] \n\t" \
++ "movz %[" #TEMP0 "], %[temp20], %[temp16] \n\t" \
++ "movz %[" #TEMP4 "], %[temp20], %[temp17] \n\t" \
+ "lw %[temp16], 8(%[args]) \n\t" \
+- "movz %["#TEMP8"], %[temp20], %[temp18] \n\t" \
+- "movz %["#TEMP12"], %[temp20], %[temp19] \n\t" \
+- "sb %["#TEMP0"], 0+"XSTR(BPS)"*"#A"(%[temp16]) \n\t" \
+- "sb %["#TEMP4"], 1+"XSTR(BPS)"*"#A"(%[temp16]) \n\t" \
+- "sb %["#TEMP8"], 2+"XSTR(BPS)"*"#A"(%[temp16]) \n\t" \
+- "sb %["#TEMP12"], 3+"XSTR(BPS)"*"#A"(%[temp16]) \n\t"
++ "movz %[" #TEMP8 "], %[temp20], %[temp18] \n\t" \
++ "movz %[" #TEMP12 "], %[temp20], %[temp19] \n\t" \
++ "sb %[" #TEMP0 "], 0+"XSTR(BPS)"*" #A "(%[temp16]) \n\t" \
++ "sb %[" #TEMP4 "], 1+"XSTR(BPS)"*" #A "(%[temp16]) \n\t" \
++ "sb %[" #TEMP8 "], 2+"XSTR(BPS)"*" #A "(%[temp16]) \n\t" \
++ "sb %[" #TEMP12 "], 3+"XSTR(BPS)"*" #A "(%[temp16]) \n\t"
+
+ // Does one or two inverse transforms.
+ static WEBP_INLINE void ITransformOne(const uint8_t* ref, const int16_t* in,
+@@ -161,9 +161,9 @@ static void ITransform(const uint8_t* ref, const int16_t* in, + // K - offset in bytes (kZigzag[n] * 4)
+ // N - offset in bytes (n * 2)
+ #define QUANTIZE_ONE(J, K, N) \
+- "lh %[temp0], "#J"(%[ppin]) \n\t" \
+- "lhu %[temp1], "#J"(%[ppsharpen]) \n\t" \
+- "lw %[temp2], "#K"(%[ppzthresh]) \n\t" \
++ "lh %[temp0], " #J "(%[ppin]) \n\t" \
++ "lhu %[temp1], " #J "(%[ppsharpen]) \n\t" \
++ "lw %[temp2], " #K "(%[ppzthresh]) \n\t" \
+ "sra %[sign], %[temp0], 15 \n\t" \
+ "xor %[coeff], %[temp0], %[sign] \n\t" \
+ "subu %[coeff], %[coeff], %[sign] \n\t" \
+@@ -172,9 +172,9 @@ static void ITransform(const uint8_t* ref, const int16_t* in, + "addiu %[temp5], $zero, 0 \n\t" \
+ "addiu %[level], $zero, 0 \n\t" \
+ "beqz %[temp4], 2f \n\t" \
+- "lhu %[temp1], "#J"(%[ppiq]) \n\t" \
+- "lw %[temp2], "#K"(%[ppbias]) \n\t" \
+- "lhu %[temp3], "#J"(%[ppq]) \n\t" \
++ "lhu %[temp1], " #J "(%[ppiq]) \n\t" \
++ "lw %[temp2], " #K "(%[ppbias]) \n\t" \
++ "lhu %[temp3], " #J "(%[ppq]) \n\t" \
+ "mul %[level], %[coeff], %[temp1] \n\t" \
+ "addu %[level], %[level], %[temp2] \n\t" \
+ "sra %[level], %[level], 17 \n\t" \
+@@ -184,8 +184,8 @@ static void ITransform(const uint8_t* ref, const int16_t* in, + "subu %[level], %[level], %[sign] \n\t" \
+ "mul %[temp5], %[level], %[temp3] \n\t" \
+ "2: \n\t" \
+- "sh %[temp5], "#J"(%[ppin]) \n\t" \
+- "sh %[level], "#N"(%[pout]) \n\t"
++ "sh %[temp5], " #J "(%[ppin]) \n\t" \
++ "sh %[level], " #N "(%[pout]) \n\t"
+
+ static int QuantizeBlock(int16_t in[16], int16_t out[16],
+ const VP8Matrix* const mtx) {
+@@ -254,14 +254,14 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], + // E..H - offsets in bytes to store first results to tmp buffer
+ // E1..H1 - offsets in bytes to store second results to tmp buffer
+ #define HORIZONTAL_PASS(A, E, F, G, H, E1, F1, G1, H1) \
+- "lbu %[temp0], 0+"XSTR(BPS)"*"#A"(%[a]) \n\t" \
+- "lbu %[temp1], 1+"XSTR(BPS)"*"#A"(%[a]) \n\t" \
+- "lbu %[temp2], 2+"XSTR(BPS)"*"#A"(%[a]) \n\t" \
+- "lbu %[temp3], 3+"XSTR(BPS)"*"#A"(%[a]) \n\t" \
+- "lbu %[temp4], 0+"XSTR(BPS)"*"#A"(%[b]) \n\t" \
+- "lbu %[temp5], 1+"XSTR(BPS)"*"#A"(%[b]) \n\t" \
+- "lbu %[temp6], 2+"XSTR(BPS)"*"#A"(%[b]) \n\t" \
+- "lbu %[temp7], 3+"XSTR(BPS)"*"#A"(%[b]) \n\t" \
++ "lbu %[temp0], 0+"XSTR(BPS)"*" #A "(%[a]) \n\t" \
++ "lbu %[temp1], 1+"XSTR(BPS)"*" #A "(%[a]) \n\t" \
++ "lbu %[temp2], 2+"XSTR(BPS)"*" #A "(%[a]) \n\t" \
++ "lbu %[temp3], 3+"XSTR(BPS)"*" #A "(%[a]) \n\t" \
++ "lbu %[temp4], 0+"XSTR(BPS)"*" #A "(%[b]) \n\t" \
++ "lbu %[temp5], 1+"XSTR(BPS)"*" #A "(%[b]) \n\t" \
++ "lbu %[temp6], 2+"XSTR(BPS)"*" #A "(%[b]) \n\t" \
++ "lbu %[temp7], 3+"XSTR(BPS)"*" #A "(%[b]) \n\t" \
+ "addu %[temp8], %[temp0], %[temp2] \n\t" \
+ "subu %[temp0], %[temp0], %[temp2] \n\t" \
+ "addu %[temp2], %[temp1], %[temp3] \n\t" \
+@@ -278,14 +278,14 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], + "subu %[temp3], %[temp3], %[temp6] \n\t" \
+ "addu %[temp6], %[temp4], %[temp5] \n\t" \
+ "subu %[temp4], %[temp4], %[temp5] \n\t" \
+- "sw %[temp7], "#E"(%[tmp]) \n\t" \
+- "sw %[temp2], "#H"(%[tmp]) \n\t" \
+- "sw %[temp8], "#F"(%[tmp]) \n\t" \
+- "sw %[temp0], "#G"(%[tmp]) \n\t" \
+- "sw %[temp1], "#E1"(%[tmp]) \n\t" \
+- "sw %[temp3], "#H1"(%[tmp]) \n\t" \
+- "sw %[temp6], "#F1"(%[tmp]) \n\t" \
+- "sw %[temp4], "#G1"(%[tmp]) \n\t"
++ "sw %[temp7], " #E "(%[tmp]) \n\t" \
++ "sw %[temp2], " #H "(%[tmp]) \n\t" \
++ "sw %[temp8], " #F "(%[tmp]) \n\t" \
++ "sw %[temp0], " #G "(%[tmp]) \n\t" \
++ "sw %[temp1], " #E1 "(%[tmp]) \n\t" \
++ "sw %[temp3], " #H1 "(%[tmp]) \n\t" \
++ "sw %[temp6], " #F1 "(%[tmp]) \n\t" \
++ "sw %[temp4], " #G1 "(%[tmp]) \n\t"
+
+ // macro for one vertical pass in Disto4x4 (TTransform)
+ // two calls of function TTransform are merged into single one
+@@ -300,10 +300,10 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], + // A1..D1 - offsets in bytes to load second results from tmp buffer
+ // E..H - offsets in bytes to load from w buffer
+ #define VERTICAL_PASS(A, B, C, D, A1, B1, C1, D1, E, F, G, H) \
+- "lw %[temp0], "#A1"(%[tmp]) \n\t" \
+- "lw %[temp1], "#C1"(%[tmp]) \n\t" \
+- "lw %[temp2], "#B1"(%[tmp]) \n\t" \
+- "lw %[temp3], "#D1"(%[tmp]) \n\t" \
++ "lw %[temp0], " #A1 "(%[tmp]) \n\t" \
++ "lw %[temp1], " #C1 "(%[tmp]) \n\t" \
++ "lw %[temp2], " #B1 "(%[tmp]) \n\t" \
++ "lw %[temp3], " #D1 "(%[tmp]) \n\t" \
+ "addu %[temp8], %[temp0], %[temp1] \n\t" \
+ "subu %[temp0], %[temp0], %[temp1] \n\t" \
+ "addu %[temp1], %[temp2], %[temp3] \n\t" \
+@@ -324,18 +324,18 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], + "subu %[temp1], %[temp1], %[temp5] \n\t" \
+ "subu %[temp0], %[temp0], %[temp6] \n\t" \
+ "subu %[temp8], %[temp8], %[temp7] \n\t" \
+- "lhu %[temp4], "#E"(%[w]) \n\t" \
+- "lhu %[temp5], "#F"(%[w]) \n\t" \
+- "lhu %[temp6], "#G"(%[w]) \n\t" \
+- "lhu %[temp7], "#H"(%[w]) \n\t" \
++ "lhu %[temp4], " #E "(%[w]) \n\t" \
++ "lhu %[temp5], " #F "(%[w]) \n\t" \
++ "lhu %[temp6], " #G "(%[w]) \n\t" \
++ "lhu %[temp7], " #H "(%[w]) \n\t" \
+ "madd %[temp4], %[temp3] \n\t" \
+ "madd %[temp5], %[temp1] \n\t" \
+ "madd %[temp6], %[temp0] \n\t" \
+ "madd %[temp7], %[temp8] \n\t" \
+- "lw %[temp0], "#A"(%[tmp]) \n\t" \
+- "lw %[temp1], "#C"(%[tmp]) \n\t" \
+- "lw %[temp2], "#B"(%[tmp]) \n\t" \
+- "lw %[temp3], "#D"(%[tmp]) \n\t" \
++ "lw %[temp0], " #A "(%[tmp]) \n\t" \
++ "lw %[temp1], " #C "(%[tmp]) \n\t" \
++ "lw %[temp2], " #B "(%[tmp]) \n\t" \
++ "lw %[temp3], " #D "(%[tmp]) \n\t" \
+ "addu %[temp8], %[temp0], %[temp1] \n\t" \
+ "subu %[temp0], %[temp0], %[temp1] \n\t" \
+ "addu %[temp1], %[temp2], %[temp3] \n\t" \
+@@ -413,70 +413,70 @@ static int Disto16x16(const uint8_t* const a, const uint8_t* const b, + // A - offset in bytes to load from src and ref buffers
+ // TEMP0..TEMP3 - registers for corresponding tmp elements
+ #define HORIZONTAL_PASS(A, TEMP0, TEMP1, TEMP2, TEMP3) \
+- "lw %["#TEMP1"], 0(%[args]) \n\t" \
+- "lw %["#TEMP2"], 4(%[args]) \n\t" \
+- "lbu %[temp16], 0+"XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \
+- "lbu %[temp17], 0+"XSTR(BPS)"*"#A"(%["#TEMP2"]) \n\t" \
+- "lbu %[temp18], 1+"XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \
+- "lbu %[temp19], 1+"XSTR(BPS)"*"#A"(%["#TEMP2"]) \n\t" \
++ "lw %[" #TEMP1 "], 0(%[args]) \n\t" \
++ "lw %[" #TEMP2 "], 4(%[args]) \n\t" \
++ "lbu %[temp16], 0+"XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \
++ "lbu %[temp17], 0+"XSTR(BPS)"*" #A "(%[" #TEMP2 "]) \n\t" \
++ "lbu %[temp18], 1+"XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \
++ "lbu %[temp19], 1+"XSTR(BPS)"*" #A "(%[" #TEMP2 "]) \n\t" \
+ "subu %[temp20], %[temp16], %[temp17] \n\t" \
+- "lbu %[temp16], 2+"XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \
+- "lbu %[temp17], 2+"XSTR(BPS)"*"#A"(%["#TEMP2"]) \n\t" \
+- "subu %["#TEMP0"], %[temp18], %[temp19] \n\t" \
+- "lbu %[temp18], 3+"XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \
+- "lbu %[temp19], 3+"XSTR(BPS)"*"#A"(%["#TEMP2"]) \n\t" \
+- "subu %["#TEMP1"], %[temp16], %[temp17] \n\t" \
+- "subu %["#TEMP2"], %[temp18], %[temp19] \n\t" \
+- "addu %["#TEMP3"], %[temp20], %["#TEMP2"] \n\t" \
+- "subu %["#TEMP2"], %[temp20], %["#TEMP2"] \n\t" \
+- "addu %[temp20], %["#TEMP0"], %["#TEMP1"] \n\t" \
+- "subu %["#TEMP0"], %["#TEMP0"], %["#TEMP1"] \n\t" \
+- "mul %[temp16], %["#TEMP2"], %[c5352] \n\t" \
+- "mul %[temp17], %["#TEMP2"], %[c2217] \n\t" \
+- "mul %[temp18], %["#TEMP0"], %[c5352] \n\t" \
+- "mul %[temp19], %["#TEMP0"], %[c2217] \n\t" \
+- "addu %["#TEMP1"], %["#TEMP3"], %[temp20] \n\t" \
+- "subu %[temp20], %["#TEMP3"], %[temp20] \n\t" \
+- "sll %["#TEMP0"], %["#TEMP1"], 3 \n\t" \
+- "sll %["#TEMP2"], %[temp20], 3 \n\t" \
++ "lbu %[temp16], 2+"XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \
++ "lbu %[temp17], 2+"XSTR(BPS)"*" #A "(%[" #TEMP2 "]) \n\t" \
++ "subu %[" #TEMP0 "], %[temp18], %[temp19] \n\t" \
++ "lbu %[temp18], 3+"XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \
++ "lbu %[temp19], 3+"XSTR(BPS)"*" #A "(%[" #TEMP2 "]) \n\t" \
++ "subu %[" #TEMP1 "], %[temp16], %[temp17] \n\t" \
++ "subu %[" #TEMP2 "], %[temp18], %[temp19] \n\t" \
++ "addu %[" #TEMP3 "], %[temp20], %[" #TEMP2 "] \n\t" \
++ "subu %[" #TEMP2 "], %[temp20], %[" #TEMP2 "] \n\t" \
++ "addu %[temp20], %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \
++ "subu %[" #TEMP0 "], %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \
++ "mul %[temp16], %[" #TEMP2 "], %[c5352] \n\t" \
++ "mul %[temp17], %[" #TEMP2 "], %[c2217] \n\t" \
++ "mul %[temp18], %[" #TEMP0 "], %[c5352] \n\t" \
++ "mul %[temp19], %[" #TEMP0 "], %[c2217] \n\t" \
++ "addu %[" #TEMP1 "], %[" #TEMP3 "], %[temp20] \n\t" \
++ "subu %[temp20], %[" #TEMP3 "], %[temp20] \n\t" \
++ "sll %[" #TEMP0 "], %[" #TEMP1 "], 3 \n\t" \
++ "sll %[" #TEMP2 "], %[temp20], 3 \n\t" \
+ "addiu %[temp16], %[temp16], 1812 \n\t" \
+ "addiu %[temp17], %[temp17], 937 \n\t" \
+ "addu %[temp16], %[temp16], %[temp19] \n\t" \
+ "subu %[temp17], %[temp17], %[temp18] \n\t" \
+- "sra %["#TEMP1"], %[temp16], 9 \n\t" \
+- "sra %["#TEMP3"], %[temp17], 9 \n\t"
++ "sra %[" #TEMP1 "], %[temp16], 9 \n\t" \
++ "sra %[" #TEMP3 "], %[temp17], 9 \n\t"
+
+ // macro for one vertical pass in FTransform
+ // temp0..temp15 holds tmp[0]..tmp[15]
+ // A..D - offsets in bytes to store to out buffer
+ // TEMP0, TEMP4, TEMP8 and TEMP12 - registers for corresponding tmp elements
+ #define VERTICAL_PASS(A, B, C, D, TEMP0, TEMP4, TEMP8, TEMP12) \
+- "addu %[temp16], %["#TEMP0"], %["#TEMP12"] \n\t" \
+- "subu %[temp19], %["#TEMP0"], %["#TEMP12"] \n\t" \
+- "addu %[temp17], %["#TEMP4"], %["#TEMP8"] \n\t" \
+- "subu %[temp18], %["#TEMP4"], %["#TEMP8"] \n\t" \
+- "mul %["#TEMP8"], %[temp19], %[c2217] \n\t" \
+- "mul %["#TEMP12"], %[temp18], %[c2217] \n\t" \
+- "mul %["#TEMP4"], %[temp19], %[c5352] \n\t" \
++ "addu %[temp16], %[" #TEMP0 "], %[" #TEMP12 "] \n\t" \
++ "subu %[temp19], %[" #TEMP0 "], %[" #TEMP12 "] \n\t" \
++ "addu %[temp17], %[" #TEMP4 "], %[" #TEMP8 "] \n\t" \
++ "subu %[temp18], %[" #TEMP4 "], %[" #TEMP8 "] \n\t" \
++ "mul %[" #TEMP8 "], %[temp19], %[c2217] \n\t" \
++ "mul %[" #TEMP12 "], %[temp18], %[c2217] \n\t" \
++ "mul %[" #TEMP4 "], %[temp19], %[c5352] \n\t" \
+ "mul %[temp18], %[temp18], %[c5352] \n\t" \
+ "addiu %[temp16], %[temp16], 7 \n\t" \
+- "addu %["#TEMP0"], %[temp16], %[temp17] \n\t" \
+- "sra %["#TEMP0"], %["#TEMP0"], 4 \n\t" \
+- "addu %["#TEMP12"], %["#TEMP12"], %["#TEMP4"] \n\t" \
+- "subu %["#TEMP4"], %[temp16], %[temp17] \n\t" \
+- "sra %["#TEMP4"], %["#TEMP4"], 4 \n\t" \
+- "addiu %["#TEMP8"], %["#TEMP8"], 30000 \n\t" \
+- "addiu %["#TEMP12"], %["#TEMP12"], 12000 \n\t" \
+- "addiu %["#TEMP8"], %["#TEMP8"], 21000 \n\t" \
+- "subu %["#TEMP8"], %["#TEMP8"], %[temp18] \n\t" \
+- "sra %["#TEMP12"], %["#TEMP12"], 16 \n\t" \
+- "sra %["#TEMP8"], %["#TEMP8"], 16 \n\t" \
+- "addiu %[temp16], %["#TEMP12"], 1 \n\t" \
+- "movn %["#TEMP12"], %[temp16], %[temp19] \n\t" \
+- "sh %["#TEMP0"], "#A"(%[temp20]) \n\t" \
+- "sh %["#TEMP4"], "#C"(%[temp20]) \n\t" \
+- "sh %["#TEMP8"], "#D"(%[temp20]) \n\t" \
+- "sh %["#TEMP12"], "#B"(%[temp20]) \n\t"
++ "addu %[" #TEMP0 "], %[temp16], %[temp17] \n\t" \
++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 4 \n\t" \
++ "addu %[" #TEMP12 "], %[" #TEMP12 "], %[" #TEMP4 "] \n\t" \
++ "subu %[" #TEMP4 "], %[temp16], %[temp17] \n\t" \
++ "sra %[" #TEMP4 "], %[" #TEMP4 "], 4 \n\t" \
++ "addiu %[" #TEMP8 "], %[" #TEMP8 "], 30000 \n\t" \
++ "addiu %[" #TEMP12 "], %[" #TEMP12 "], 12000 \n\t" \
++ "addiu %[" #TEMP8 "], %[" #TEMP8 "], 21000 \n\t" \
++ "subu %[" #TEMP8 "], %[" #TEMP8 "], %[temp18] \n\t" \
++ "sra %[" #TEMP12 "], %[" #TEMP12 "], 16 \n\t" \
++ "sra %[" #TEMP8 "], %[" #TEMP8 "], 16 \n\t" \
++ "addiu %[temp16], %[" #TEMP12 "], 1 \n\t" \
++ "movn %[" #TEMP12 "], %[temp16], %[temp19] \n\t" \
++ "sh %[" #TEMP0 "], " #A "(%[temp20]) \n\t" \
++ "sh %[" #TEMP4 "], " #C "(%[temp20]) \n\t" \
++ "sh %[" #TEMP8 "], " #D "(%[temp20]) \n\t" \
++ "sh %[" #TEMP12 "], " #B "(%[temp20]) \n\t"
+
+ static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) {
+ int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8;
+@@ -516,14 +516,14 @@ static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) { + #if !defined(WORK_AROUND_GCC)
+
+ #define GET_SSE_INNER(A, B, C, D) \
+- "lbu %[temp0], "#A"(%[a]) \n\t" \
+- "lbu %[temp1], "#A"(%[b]) \n\t" \
+- "lbu %[temp2], "#B"(%[a]) \n\t" \
+- "lbu %[temp3], "#B"(%[b]) \n\t" \
+- "lbu %[temp4], "#C"(%[a]) \n\t" \
+- "lbu %[temp5], "#C"(%[b]) \n\t" \
+- "lbu %[temp6], "#D"(%[a]) \n\t" \
+- "lbu %[temp7], "#D"(%[b]) \n\t" \
++ "lbu %[temp0], " #A "(%[a]) \n\t" \
++ "lbu %[temp1], " #A "(%[b]) \n\t" \
++ "lbu %[temp2], " #B "(%[a]) \n\t" \
++ "lbu %[temp3], " #B "(%[b]) \n\t" \
++ "lbu %[temp4], " #C "(%[a]) \n\t" \
++ "lbu %[temp5], " #C "(%[b]) \n\t" \
++ "lbu %[temp6], " #D "(%[a]) \n\t" \
++ "lbu %[temp7], " #D "(%[b]) \n\t" \
+ "subu %[temp0], %[temp0], %[temp1] \n\t" \
+ "subu %[temp2], %[temp2], %[temp3] \n\t" \
+ "subu %[temp4], %[temp4], %[temp5] \n\t" \
+diff --git a/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c +index ec58efe..1a3f968 100644 +--- a/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c +@@ -27,25 +27,25 @@ static const int kC2 = 35468; + // I - input (macro doesn't change it)
+ #define ADD_SUB_HALVES_X4(O0, O1, O2, O3, O4, O5, O6, O7, \
+ I0, I1, I2, I3, I4, I5, I6, I7) \
+- "addq.ph %["#O0"], %["#I0"], %["#I1"] \n\t" \
+- "subq.ph %["#O1"], %["#I0"], %["#I1"] \n\t" \
+- "addq.ph %["#O2"], %["#I2"], %["#I3"] \n\t" \
+- "subq.ph %["#O3"], %["#I2"], %["#I3"] \n\t" \
+- "addq.ph %["#O4"], %["#I4"], %["#I5"] \n\t" \
+- "subq.ph %["#O5"], %["#I4"], %["#I5"] \n\t" \
+- "addq.ph %["#O6"], %["#I6"], %["#I7"] \n\t" \
+- "subq.ph %["#O7"], %["#I6"], %["#I7"] \n\t"
++ "addq.ph %[" #O0 "], %[" #I0 "], %[" #I1 "] \n\t" \
++ "subq.ph %[" #O1 "], %[" #I0 "], %[" #I1 "] \n\t" \
++ "addq.ph %[" #O2 "], %[" #I2 "], %[" #I3 "] \n\t" \
++ "subq.ph %[" #O3 "], %[" #I2 "], %[" #I3 "] \n\t" \
++ "addq.ph %[" #O4 "], %[" #I4 "], %[" #I5 "] \n\t" \
++ "subq.ph %[" #O5 "], %[" #I4 "], %[" #I5 "] \n\t" \
++ "addq.ph %[" #O6 "], %[" #I6 "], %[" #I7 "] \n\t" \
++ "subq.ph %[" #O7 "], %[" #I6 "], %[" #I7 "] \n\t"
+
+ // IO - input/output
+ #define ABS_X8(IO0, IO1, IO2, IO3, IO4, IO5, IO6, IO7) \
+- "absq_s.ph %["#IO0"], %["#IO0"] \n\t" \
+- "absq_s.ph %["#IO1"], %["#IO1"] \n\t" \
+- "absq_s.ph %["#IO2"], %["#IO2"] \n\t" \
+- "absq_s.ph %["#IO3"], %["#IO3"] \n\t" \
+- "absq_s.ph %["#IO4"], %["#IO4"] \n\t" \
+- "absq_s.ph %["#IO5"], %["#IO5"] \n\t" \
+- "absq_s.ph %["#IO6"], %["#IO6"] \n\t" \
+- "absq_s.ph %["#IO7"], %["#IO7"] \n\t"
++ "absq_s.ph %[" #IO0 "], %[" #IO0 "] \n\t" \
++ "absq_s.ph %[" #IO1 "], %[" #IO1 "] \n\t" \
++ "absq_s.ph %[" #IO2 "], %[" #IO2 "] \n\t" \
++ "absq_s.ph %[" #IO3 "], %[" #IO3 "] \n\t" \
++ "absq_s.ph %[" #IO4 "], %[" #IO4 "] \n\t" \
++ "absq_s.ph %[" #IO5 "], %[" #IO5 "] \n\t" \
++ "absq_s.ph %[" #IO6 "], %[" #IO6 "] \n\t" \
++ "absq_s.ph %[" #IO7 "], %[" #IO7 "] \n\t"
+
+ // dpa.w.ph $ac0 temp0 ,temp1
+ // $ac += temp0[31..16] * temp1[31..16] + temp0[15..0] * temp1[15..0]
+@@ -56,15 +56,15 @@ static const int kC2 = 35468; + #define MUL_HALF(O0, I0, I1, I2, I3, I4, I5, I6, I7, \
+ I8, I9, I10, I11, I12, I13, I14, I15) \
+ "mult $ac0, $zero, $zero \n\t" \
+- "dpa.w.ph $ac0, %["#I2"], %["#I0"] \n\t" \
+- "dpax.w.ph $ac0, %["#I5"], %["#I6"] \n\t" \
+- "dpa.w.ph $ac0, %["#I8"], %["#I9"] \n\t" \
+- "dpax.w.ph $ac0, %["#I11"], %["#I4"] \n\t" \
+- "dpa.w.ph $ac0, %["#I12"], %["#I7"] \n\t" \
+- "dpax.w.ph $ac0, %["#I13"], %["#I1"] \n\t" \
+- "dpa.w.ph $ac0, %["#I14"], %["#I3"] \n\t" \
+- "dpax.w.ph $ac0, %["#I15"], %["#I10"] \n\t" \
+- "mflo %["#O0"], $ac0 \n\t"
++ "dpa.w.ph $ac0, %[" #I2 "], %[" #I0 "] \n\t" \
++ "dpax.w.ph $ac0, %[" #I5 "], %[" #I6 "] \n\t" \
++ "dpa.w.ph $ac0, %[" #I8 "], %[" #I9 "] \n\t" \
++ "dpax.w.ph $ac0, %[" #I11 "], %[" #I4 "] \n\t" \
++ "dpa.w.ph $ac0, %[" #I12 "], %[" #I7 "] \n\t" \
++ "dpax.w.ph $ac0, %[" #I13 "], %[" #I1 "] \n\t" \
++ "dpa.w.ph $ac0, %[" #I14 "], %[" #I3 "] \n\t" \
++ "dpax.w.ph $ac0, %[" #I15 "], %[" #I10 "] \n\t" \
++ "mflo %[" #O0 "], $ac0 \n\t"
+
+ #define OUTPUT_EARLY_CLOBBER_REGS_17() \
+ OUTPUT_EARLY_CLOBBER_REGS_10(), \
+@@ -77,69 +77,69 @@ static const int kC2 = 35468; + // A - offset in bytes to load from src and ref buffers
+ // TEMP0..TEMP3 - registers for corresponding tmp elements
+ #define HORIZONTAL_PASS(A, TEMP0, TEMP1, TEMP2, TEMP3) \
+- "lw %["#TEMP0"], 0(%[args]) \n\t" \
+- "lw %["#TEMP1"], 4(%[args]) \n\t" \
+- "lw %["#TEMP2"], "XSTR(BPS)"*"#A"(%["#TEMP0"]) \n\t" \
+- "lw %["#TEMP3"], "XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \
+- "preceu.ph.qbl %["#TEMP0"], %["#TEMP2"] \n\t" \
+- "preceu.ph.qbl %["#TEMP1"], %["#TEMP3"] \n\t" \
+- "preceu.ph.qbr %["#TEMP2"], %["#TEMP2"] \n\t" \
+- "preceu.ph.qbr %["#TEMP3"], %["#TEMP3"] \n\t" \
+- "subq.ph %["#TEMP0"], %["#TEMP0"], %["#TEMP1"] \n\t" \
+- "subq.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP3"] \n\t" \
+- "rotr %["#TEMP0"], %["#TEMP0"], 16 \n\t" \
+- "addq.ph %["#TEMP1"], %["#TEMP2"], %["#TEMP0"] \n\t" \
+- "subq.ph %["#TEMP3"], %["#TEMP2"], %["#TEMP0"] \n\t" \
+- "seh %["#TEMP0"], %["#TEMP1"] \n\t" \
+- "sra %[temp16], %["#TEMP1"], 16 \n\t" \
+- "seh %[temp19], %["#TEMP3"] \n\t" \
+- "sra %["#TEMP3"], %["#TEMP3"], 16 \n\t" \
+- "subu %["#TEMP2"], %["#TEMP0"], %[temp16] \n\t" \
+- "addu %["#TEMP0"], %["#TEMP0"], %[temp16] \n\t" \
++ "lw %[" #TEMP0 "], 0(%[args]) \n\t" \
++ "lw %[" #TEMP1 "], 4(%[args]) \n\t" \
++ "lw %[" #TEMP2 "], "XSTR(BPS)"*" #A "(%[" #TEMP0 "]) \n\t" \
++ "lw %[" #TEMP3 "], "XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \
++ "preceu.ph.qbl %[" #TEMP0 "], %[" #TEMP2 "] \n\t" \
++ "preceu.ph.qbl %[" #TEMP1 "], %[" #TEMP3 "] \n\t" \
++ "preceu.ph.qbr %[" #TEMP2 "], %[" #TEMP2 "] \n\t" \
++ "preceu.ph.qbr %[" #TEMP3 "], %[" #TEMP3 "] \n\t" \
++ "subq.ph %[" #TEMP0 "], %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \
++ "subq.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP3 "] \n\t" \
++ "rotr %[" #TEMP0 "], %[" #TEMP0 "], 16 \n\t" \
++ "addq.ph %[" #TEMP1 "], %[" #TEMP2 "], %[" #TEMP0 "] \n\t" \
++ "subq.ph %[" #TEMP3 "], %[" #TEMP2 "], %[" #TEMP0 "] \n\t" \
++ "seh %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \
++ "sra %[temp16], %[" #TEMP1 "], 16 \n\t" \
++ "seh %[temp19], %[" #TEMP3 "] \n\t" \
++ "sra %[" #TEMP3 "], %[" #TEMP3 "], 16 \n\t" \
++ "subu %[" #TEMP2 "], %[" #TEMP0 "], %[temp16] \n\t" \
++ "addu %[" #TEMP0 "], %[" #TEMP0 "], %[temp16] \n\t" \
+ "mul %[temp17], %[temp19], %[c2217] \n\t" \
+- "mul %[temp18], %["#TEMP3"], %[c5352] \n\t" \
+- "mul %["#TEMP1"], %[temp19], %[c5352] \n\t" \
+- "mul %[temp16], %["#TEMP3"], %[c2217] \n\t" \
+- "sll %["#TEMP2"], %["#TEMP2"], 3 \n\t" \
+- "sll %["#TEMP0"], %["#TEMP0"], 3 \n\t" \
+- "subu %["#TEMP3"], %[temp17], %[temp18] \n\t" \
+- "addu %["#TEMP1"], %[temp16], %["#TEMP1"] \n\t" \
+- "addiu %["#TEMP3"], %["#TEMP3"], 937 \n\t" \
+- "addiu %["#TEMP1"], %["#TEMP1"], 1812 \n\t" \
+- "sra %["#TEMP3"], %["#TEMP3"], 9 \n\t" \
+- "sra %["#TEMP1"], %["#TEMP1"], 9 \n\t"
++ "mul %[temp18], %[" #TEMP3 "], %[c5352] \n\t" \
++ "mul %[" #TEMP1 "], %[temp19], %[c5352] \n\t" \
++ "mul %[temp16], %[" #TEMP3 "], %[c2217] \n\t" \
++ "sll %[" #TEMP2 "], %[" #TEMP2 "], 3 \n\t" \
++ "sll %[" #TEMP0 "], %[" #TEMP0 "], 3 \n\t" \
++ "subu %[" #TEMP3 "], %[temp17], %[temp18] \n\t" \
++ "addu %[" #TEMP1 "], %[temp16], %[" #TEMP1 "] \n\t" \
++ "addiu %[" #TEMP3 "], %[" #TEMP3 "], 937 \n\t" \
++ "addiu %[" #TEMP1 "], %[" #TEMP1 "], 1812 \n\t" \
++ "sra %[" #TEMP3 "], %[" #TEMP3 "], 9 \n\t" \
++ "sra %[" #TEMP1 "], %[" #TEMP1 "], 9 \n\t"
+
+ // macro for one vertical pass in FTransform
+ // temp0..temp15 holds tmp[0]..tmp[15]
+ // A..D - offsets in bytes to store to out buffer
+ // TEMP0, TEMP4, TEMP8 and TEMP12 - registers for corresponding tmp elements
+ #define VERTICAL_PASS(A, B, C, D, TEMP0, TEMP4, TEMP8, TEMP12) \
+- "addu %[temp16], %["#TEMP0"], %["#TEMP12"] \n\t" \
+- "subu %[temp19], %["#TEMP0"], %["#TEMP12"] \n\t" \
+- "addu %[temp17], %["#TEMP4"], %["#TEMP8"] \n\t" \
+- "subu %[temp18], %["#TEMP4"], %["#TEMP8"] \n\t" \
+- "mul %["#TEMP8"], %[temp19], %[c2217] \n\t" \
+- "mul %["#TEMP12"], %[temp18], %[c2217] \n\t" \
+- "mul %["#TEMP4"], %[temp19], %[c5352] \n\t" \
++ "addu %[temp16], %[" #TEMP0 "], %[" #TEMP12 "] \n\t" \
++ "subu %[temp19], %[" #TEMP0 "], %[" #TEMP12 "] \n\t" \
++ "addu %[temp17], %[" #TEMP4 "], %[" #TEMP8 "] \n\t" \
++ "subu %[temp18], %[" #TEMP4 "], %[" #TEMP8 "] \n\t" \
++ "mul %[" #TEMP8 "], %[temp19], %[c2217] \n\t" \
++ "mul %[" #TEMP12 "], %[temp18], %[c2217] \n\t" \
++ "mul %[" #TEMP4 "], %[temp19], %[c5352] \n\t" \
+ "mul %[temp18], %[temp18], %[c5352] \n\t" \
+ "addiu %[temp16], %[temp16], 7 \n\t" \
+- "addu %["#TEMP0"], %[temp16], %[temp17] \n\t" \
+- "sra %["#TEMP0"], %["#TEMP0"], 4 \n\t" \
+- "addu %["#TEMP12"], %["#TEMP12"], %["#TEMP4"] \n\t" \
+- "subu %["#TEMP4"], %[temp16], %[temp17] \n\t" \
+- "sra %["#TEMP4"], %["#TEMP4"], 4 \n\t" \
+- "addiu %["#TEMP8"], %["#TEMP8"], 30000 \n\t" \
+- "addiu %["#TEMP12"], %["#TEMP12"], 12000 \n\t" \
+- "addiu %["#TEMP8"], %["#TEMP8"], 21000 \n\t" \
+- "subu %["#TEMP8"], %["#TEMP8"], %[temp18] \n\t" \
+- "sra %["#TEMP12"], %["#TEMP12"], 16 \n\t" \
+- "sra %["#TEMP8"], %["#TEMP8"], 16 \n\t" \
+- "addiu %[temp16], %["#TEMP12"], 1 \n\t" \
+- "movn %["#TEMP12"], %[temp16], %[temp19] \n\t" \
+- "sh %["#TEMP0"], "#A"(%[temp20]) \n\t" \
+- "sh %["#TEMP4"], "#C"(%[temp20]) \n\t" \
+- "sh %["#TEMP8"], "#D"(%[temp20]) \n\t" \
+- "sh %["#TEMP12"], "#B"(%[temp20]) \n\t"
++ "addu %[" #TEMP0 "], %[temp16], %[temp17] \n\t" \
++ "sra %[" #TEMP0 "], %[" #TEMP0 "], 4 \n\t" \
++ "addu %[" #TEMP12 "], %[" #TEMP12 "], %[" #TEMP4 "] \n\t" \
++ "subu %[" #TEMP4 "], %[temp16], %[temp17] \n\t" \
++ "sra %[" #TEMP4 "], %[" #TEMP4 "], 4 \n\t" \
++ "addiu %[" #TEMP8 "], %[" #TEMP8 "], 30000 \n\t" \
++ "addiu %[" #TEMP12 "], %[" #TEMP12 "], 12000 \n\t" \
++ "addiu %[" #TEMP8 "], %[" #TEMP8 "], 21000 \n\t" \
++ "subu %[" #TEMP8 "], %[" #TEMP8 "], %[temp18] \n\t" \
++ "sra %[" #TEMP12 "], %[" #TEMP12 "], 16 \n\t" \
++ "sra %[" #TEMP8 "], %[" #TEMP8 "], 16 \n\t" \
++ "addiu %[temp16], %[" #TEMP12 "], 1 \n\t" \
++ "movn %[" #TEMP12 "], %[temp16], %[temp19] \n\t" \
++ "sh %[" #TEMP0 "], " #A "(%[temp20]) \n\t" \
++ "sh %[" #TEMP4 "], " #C "(%[temp20]) \n\t" \
++ "sh %[" #TEMP8 "], " #D "(%[temp20]) \n\t" \
++ "sh %[" #TEMP12 "], " #B "(%[temp20]) \n\t"
+
+ static void FTransform(const uint8_t* src, const uint8_t* ref, int16_t* out) {
+ const int c2217 = 2217;
+@@ -329,11 +329,11 @@ static int Disto16x16(const uint8_t* const a, const uint8_t* const b, + // Intra predictions
+
+ #define FILL_PART(J, SIZE) \
+- "usw %[value], 0+"#J"*"XSTR(BPS)"(%[dst]) \n\t" \
+- "usw %[value], 4+"#J"*"XSTR(BPS)"(%[dst]) \n\t" \
+- ".if "#SIZE" == 16 \n\t" \
+- "usw %[value], 8+"#J"*"XSTR(BPS)"(%[dst]) \n\t" \
+- "usw %[value], 12+"#J"*"XSTR(BPS)"(%[dst]) \n\t" \
++ "usw %[value], 0+" #J "*"XSTR(BPS)"(%[dst]) \n\t" \
++ "usw %[value], 4+" #J "*"XSTR(BPS)"(%[dst]) \n\t" \
++ ".if " #SIZE " == 16 \n\t" \
++ "usw %[value], 8+" #J "*"XSTR(BPS)"(%[dst]) \n\t" \
++ "usw %[value], 12+" #J "*"XSTR(BPS)"(%[dst]) \n\t" \
+ ".endif \n\t"
+
+ #define FILL_8_OR_16(DST, VALUE, SIZE) do { \
+@@ -348,7 +348,7 @@ static int Disto16x16(const uint8_t* const a, const uint8_t* const b, + FILL_PART( 5, SIZE) \
+ FILL_PART( 6, SIZE) \
+ FILL_PART( 7, SIZE) \
+- ".if "#SIZE" == 16 \n\t" \
++ ".if " #SIZE " == 16 \n\t" \
+ FILL_PART( 8, 16) \
+ FILL_PART( 9, 16) \
+ FILL_PART(10, 16) \
+@@ -425,7 +425,7 @@ HORIZONTAL_PRED(dst, left, 16) + CLIPPING() \
+ "usw %[temp0], 0(%[dst]) \n\t" \
+ "usw %[temp1], 4(%[dst]) \n\t" \
+- ".if "#SIZE" == 16 \n\t" \
++ ".if " #SIZE " == 16 \n\t" \
+ "ulw %[temp0], 8(%[top]) \n\t" \
+ "ulw %[temp1], 12(%[top]) \n\t" \
+ CLIPPING() \
+@@ -1060,8 +1060,8 @@ static void Intra4Preds(uint8_t* dst, const uint8_t* top) { + #if !defined(WORK_AROUND_GCC)
+
+ #define GET_SSE_INNER(A) \
+- "lw %[temp0], "#A"(%[a]) \n\t" \
+- "lw %[temp1], "#A"(%[b]) \n\t" \
++ "lw %[temp0], " #A "(%[a]) \n\t" \
++ "lw %[temp1], " #A "(%[b]) \n\t" \
+ "preceu.ph.qbr %[temp2], %[temp0] \n\t" \
+ "preceu.ph.qbl %[temp0], %[temp0] \n\t" \
+ "preceu.ph.qbr %[temp3], %[temp1] \n\t" \
+@@ -1185,28 +1185,28 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) { + // N - offset in bytes (n * 2)
+ // N1 - offset in bytes ((n + 1) * 2)
+ #define QUANTIZE_ONE(J, K, N, N1) \
+- "ulw %[temp1], "#J"(%[ppin]) \n\t" \
+- "ulw %[temp2], "#J"(%[ppsharpen]) \n\t" \
+- "lhu %[temp3], "#K"(%[ppzthresh]) \n\t" \
+- "lhu %[temp6], "#K"+4(%[ppzthresh]) \n\t" \
++ "ulw %[temp1], " #J "(%[ppin]) \n\t" \
++ "ulw %[temp2], " #J "(%[ppsharpen]) \n\t" \
++ "lhu %[temp3], " #K "(%[ppzthresh]) \n\t" \
++ "lhu %[temp6], " #K "+4(%[ppzthresh]) \n\t" \
+ "absq_s.ph %[temp4], %[temp1] \n\t" \
+ "ins %[temp3], %[temp6], 16, 16 \n\t" \
+ "addu.ph %[coeff], %[temp4], %[temp2] \n\t" \
+ "shra.ph %[sign], %[temp1], 15 \n\t" \
+ "li %[level], 0x10001 \n\t" \
+ "cmp.lt.ph %[temp3], %[coeff] \n\t" \
+- "lhu %[temp1], "#J"(%[ppiq]) \n\t" \
++ "lhu %[temp1], " #J "(%[ppiq]) \n\t" \
+ "pick.ph %[temp5], %[level], $0 \n\t" \
+- "lw %[temp2], "#K"(%[ppbias]) \n\t" \
++ "lw %[temp2], " #K "(%[ppbias]) \n\t" \
+ "beqz %[temp5], 0f \n\t" \
+- "lhu %[temp3], "#J"(%[ppq]) \n\t" \
++ "lhu %[temp3], " #J "(%[ppq]) \n\t" \
+ "beq %[temp5], %[level], 1f \n\t" \
+ "andi %[temp5], %[temp5], 0x1 \n\t" \
+ "andi %[temp4], %[coeff], 0xffff \n\t" \
+ "beqz %[temp5], 2f \n\t" \
+ "mul %[level], %[temp4], %[temp1] \n\t" \
+- "sh $0, "#J"+2(%[ppin]) \n\t" \
+- "sh $0, "#N1"(%[pout]) \n\t" \
++ "sh $0, " #J "+2(%[ppin]) \n\t" \
++ "sh $0, " #N1 "(%[pout]) \n\t" \
+ "addu %[level], %[level], %[temp2] \n\t" \
+ "sra %[level], %[level], 17 \n\t" \
+ "slt %[temp4], %[max_level], %[level] \n\t" \
+@@ -1216,15 +1216,15 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) { + "subu %[level], %[level], %[temp6] \n\t" \
+ "mul %[temp5], %[level], %[temp3] \n\t" \
+ "or %[ret], %[ret], %[level] \n\t" \
+- "sh %[level], "#N"(%[pout]) \n\t" \
+- "sh %[temp5], "#J"(%[ppin]) \n\t" \
++ "sh %[level], " #N "(%[pout]) \n\t" \
++ "sh %[temp5], " #J "(%[ppin]) \n\t" \
+ "j 3f \n\t" \
+ "2: \n\t" \
+- "lhu %[temp1], "#J"+2(%[ppiq]) \n\t" \
++ "lhu %[temp1], " #J "+2(%[ppiq]) \n\t" \
+ "srl %[temp5], %[coeff], 16 \n\t" \
+ "mul %[level], %[temp5], %[temp1] \n\t" \
+- "lw %[temp2], "#K"+4(%[ppbias]) \n\t" \
+- "lhu %[temp3], "#J"+2(%[ppq]) \n\t" \
++ "lw %[temp2], " #K "+4(%[ppbias]) \n\t" \
++ "lhu %[temp3], " #J "+2(%[ppq]) \n\t" \
+ "addu %[level], %[level], %[temp2] \n\t" \
+ "sra %[level], %[level], 17 \n\t" \
+ "srl %[temp6], %[sign], 16 \n\t" \
+@@ -1233,20 +1233,20 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) { + "xor %[level], %[level], %[temp6] \n\t" \
+ "subu %[level], %[level], %[temp6] \n\t" \
+ "mul %[temp5], %[level], %[temp3] \n\t" \
+- "sh $0, "#J"(%[ppin]) \n\t" \
+- "sh $0, "#N"(%[pout]) \n\t" \
++ "sh $0, " #J "(%[ppin]) \n\t" \
++ "sh $0, " #N "(%[pout]) \n\t" \
+ "or %[ret], %[ret], %[level] \n\t" \
+- "sh %[temp5], "#J"+2(%[ppin]) \n\t" \
+- "sh %[level], "#N1"(%[pout]) \n\t" \
++ "sh %[temp5], " #J "+2(%[ppin]) \n\t" \
++ "sh %[level], " #N1 "(%[pout]) \n\t" \
+ "j 3f \n\t" \
+ "1: \n\t" \
+- "lhu %[temp1], "#J"(%[ppiq]) \n\t" \
+- "lw %[temp2], "#K"(%[ppbias]) \n\t" \
+- "ulw %[temp3], "#J"(%[ppq]) \n\t" \
++ "lhu %[temp1], " #J "(%[ppiq]) \n\t" \
++ "lw %[temp2], " #K "(%[ppbias]) \n\t" \
++ "ulw %[temp3], " #J "(%[ppq]) \n\t" \
+ "andi %[temp5], %[coeff], 0xffff \n\t" \
+ "srl %[temp0], %[coeff], 16 \n\t" \
+- "lhu %[temp6], "#J"+2(%[ppiq]) \n\t" \
+- "lw %[coeff], "#K"+4(%[ppbias]) \n\t" \
++ "lhu %[temp6], " #J "+2(%[ppiq]) \n\t" \
++ "lw %[coeff], " #K "+4(%[ppbias]) \n\t" \
+ "mul %[level], %[temp5], %[temp1] \n\t" \
+ "mul %[temp4], %[temp0], %[temp6] \n\t" \
+ "addu %[level], %[level], %[temp2] \n\t" \
+@@ -1259,15 +1259,15 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) { + "subu.ph %[level], %[level], %[sign] \n\t" \
+ "mul.ph %[temp3], %[level], %[temp3] \n\t" \
+ "or %[ret], %[ret], %[level] \n\t" \
+- "sh %[level], "#N"(%[pout]) \n\t" \
++ "sh %[level], " #N "(%[pout]) \n\t" \
+ "srl %[level], %[level], 16 \n\t" \
+- "sh %[level], "#N1"(%[pout]) \n\t" \
+- "usw %[temp3], "#J"(%[ppin]) \n\t" \
++ "sh %[level], " #N1 "(%[pout]) \n\t" \
++ "usw %[temp3], " #J "(%[ppin]) \n\t" \
+ "j 3f \n\t" \
+ "0: \n\t" \
+- "sh $0, "#N"(%[pout]) \n\t" \
+- "sh $0, "#N1"(%[pout]) \n\t" \
+- "usw $0, "#J"(%[ppin]) \n\t" \
++ "sh $0, " #N "(%[pout]) \n\t" \
++ "sh $0, " #N1 "(%[pout]) \n\t" \
++ "usw $0, " #J "(%[ppin]) \n\t" \
+ "3: \n\t"
+
+ static int QuantizeBlock(int16_t in[16], int16_t out[16],
+@@ -1326,37 +1326,37 @@ static int Quantize2Blocks(int16_t in[32], int16_t out[32], + // A, B, C, D - offset in bytes to load from in buffer
+ // TEMP0, TEMP1 - registers for corresponding tmp elements
+ #define HORIZONTAL_PASS_WHT(A, B, C, D, TEMP0, TEMP1) \
+- "lh %["#TEMP0"], "#A"(%[in]) \n\t" \
+- "lh %["#TEMP1"], "#B"(%[in]) \n\t" \
+- "lh %[temp8], "#C"(%[in]) \n\t" \
+- "lh %[temp9], "#D"(%[in]) \n\t" \
+- "ins %["#TEMP1"], %["#TEMP0"], 16, 16 \n\t" \
++ "lh %[" #TEMP0 "], " #A "(%[in]) \n\t" \
++ "lh %[" #TEMP1 "], " #B "(%[in]) \n\t" \
++ "lh %[temp8], " #C "(%[in]) \n\t" \
++ "lh %[temp9], " #D "(%[in]) \n\t" \
++ "ins %[" #TEMP1 "], %[" #TEMP0 "], 16, 16 \n\t" \
+ "ins %[temp9], %[temp8], 16, 16 \n\t" \
+- "subq.ph %[temp8], %["#TEMP1"], %[temp9] \n\t" \
+- "addq.ph %[temp9], %["#TEMP1"], %[temp9] \n\t" \
+- "precrq.ph.w %["#TEMP0"], %[temp8], %[temp9] \n\t" \
++ "subq.ph %[temp8], %[" #TEMP1 "], %[temp9] \n\t" \
++ "addq.ph %[temp9], %[" #TEMP1 "], %[temp9] \n\t" \
++ "precrq.ph.w %[" #TEMP0 "], %[temp8], %[temp9] \n\t" \
+ "append %[temp8], %[temp9], 16 \n\t" \
+- "subq.ph %["#TEMP1"], %["#TEMP0"], %[temp8] \n\t" \
+- "addq.ph %["#TEMP0"], %["#TEMP0"], %[temp8] \n\t" \
+- "rotr %["#TEMP1"], %["#TEMP1"], 16 \n\t"
++ "subq.ph %[" #TEMP1 "], %[" #TEMP0 "], %[temp8] \n\t" \
++ "addq.ph %[" #TEMP0 "], %[" #TEMP0 "], %[temp8] \n\t" \
++ "rotr %[" #TEMP1 "], %[" #TEMP1 "], 16 \n\t"
+
+ // macro for one vertical pass in FTransformWHT
+ // temp0..temp7 holds tmp[0]..tmp[15]
+ // A, B, C, D - offsets in bytes to store to out buffer
+ // TEMP0, TEMP2, TEMP4 and TEMP6 - registers for corresponding tmp elements
+ #define VERTICAL_PASS_WHT(A, B, C, D, TEMP0, TEMP2, TEMP4, TEMP6) \
+- "addq.ph %[temp8], %["#TEMP0"], %["#TEMP4"] \n\t" \
+- "addq.ph %[temp9], %["#TEMP2"], %["#TEMP6"] \n\t" \
+- "subq.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP6"] \n\t" \
+- "subq.ph %["#TEMP6"], %["#TEMP0"], %["#TEMP4"] \n\t" \
+- "addqh.ph %["#TEMP0"], %[temp8], %[temp9] \n\t" \
+- "subqh.ph %["#TEMP4"], %["#TEMP6"], %["#TEMP2"] \n\t" \
+- "addqh.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP6"] \n\t" \
+- "subqh.ph %["#TEMP6"], %[temp8], %[temp9] \n\t" \
+- "usw %["#TEMP0"], "#A"(%[out]) \n\t" \
+- "usw %["#TEMP2"], "#B"(%[out]) \n\t" \
+- "usw %["#TEMP4"], "#C"(%[out]) \n\t" \
+- "usw %["#TEMP6"], "#D"(%[out]) \n\t"
++ "addq.ph %[temp8], %[" #TEMP0 "], %[" #TEMP4 "] \n\t" \
++ "addq.ph %[temp9], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \
++ "subq.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \
++ "subq.ph %[" #TEMP6 "], %[" #TEMP0 "], %[" #TEMP4 "] \n\t" \
++ "addqh.ph %[" #TEMP0 "], %[temp8], %[temp9] \n\t" \
++ "subqh.ph %[" #TEMP4 "], %[" #TEMP6 "], %[" #TEMP2 "] \n\t" \
++ "addqh.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \
++ "subqh.ph %[" #TEMP6 "], %[temp8], %[temp9] \n\t" \
++ "usw %[" #TEMP0 "], " #A "(%[out]) \n\t" \
++ "usw %[" #TEMP2 "], " #B "(%[out]) \n\t" \
++ "usw %[" #TEMP4 "], " #C "(%[out]) \n\t" \
++ "usw %[" #TEMP6 "], " #D "(%[out]) \n\t"
+
+ static void FTransformWHT(const int16_t* in, int16_t* out) {
+ int temp0, temp1, temp2, temp3, temp4;
+@@ -1385,10 +1385,10 @@ static void FTransformWHT(const int16_t* in, int16_t* out) { + // convert 8 coeffs at time
+ // A, B, C, D - offsets in bytes to load from out buffer
+ #define CONVERT_COEFFS_TO_BIN(A, B, C, D) \
+- "ulw %[temp0], "#A"(%[out]) \n\t" \
+- "ulw %[temp1], "#B"(%[out]) \n\t" \
+- "ulw %[temp2], "#C"(%[out]) \n\t" \
+- "ulw %[temp3], "#D"(%[out]) \n\t" \
++ "ulw %[temp0], " #A "(%[out]) \n\t" \
++ "ulw %[temp1], " #B "(%[out]) \n\t" \
++ "ulw %[temp2], " #C "(%[out]) \n\t" \
++ "ulw %[temp3], " #D "(%[out]) \n\t" \
+ "absq_s.ph %[temp0], %[temp0] \n\t" \
+ "absq_s.ph %[temp1], %[temp1] \n\t" \
+ "absq_s.ph %[temp2], %[temp2] \n\t" \
+diff --git a/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c +index 6c34efb..6a1f8f4 100644 +--- a/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c +@@ -48,7 +48,7 @@ + "srl %[temp0], %[length], 0x2 \n\t" \
+ "beqz %[temp0], 4f \n\t" \
+ " andi %[temp6], %[length], 0x3 \n\t" \
+- ".if "#INVERSE" \n\t" \
++ ".if " #INVERSE " \n\t" \
+ "lbu %[temp1], -1(%[src]) \n\t" \
+ "1: \n\t" \
+ "lbu %[temp2], 0(%[src]) \n\t" \
+@@ -84,7 +84,7 @@ + "lbu %[temp1], -1(%[src]) \n\t" \
+ "lbu %[temp2], 0(%[src]) \n\t" \
+ "addiu %[src], %[src], 1 \n\t" \
+- ".if "#INVERSE" \n\t" \
++ ".if " #INVERSE " \n\t" \
+ "addu %[temp3], %[temp1], %[temp2] \n\t" \
+ "sb %[temp3], -1(%[src]) \n\t" \
+ ".else \n\t" \
+@@ -131,7 +131,7 @@ static WEBP_INLINE void PredictLine(const uint8_t* src, uint8_t* dst, + "ulw %[temp3], 4(%[src]) \n\t" \
+ "ulw %[temp4], 4(%[pred]) \n\t" \
+ "addiu %[src], %[src], 8 \n\t" \
+- ".if "#INVERSE" \n\t" \
++ ".if " #INVERSE " \n\t" \
+ "addu.qb %[temp5], %[temp1], %[temp2] \n\t" \
+ "addu.qb %[temp6], %[temp3], %[temp4] \n\t" \
+ ".else \n\t" \
+@@ -152,7 +152,7 @@ static WEBP_INLINE void PredictLine(const uint8_t* src, uint8_t* dst, + "lbu %[temp2], 0(%[pred]) \n\t" \
+ "addiu %[src], %[src], 1 \n\t" \
+ "addiu %[pred], %[pred], 1 \n\t" \
+- ".if "#INVERSE" \n\t" \
++ ".if " #INVERSE " \n\t" \
+ "addu %[temp3], %[temp1], %[temp2] \n\t" \
+ ".else \n\t" \
+ "subu %[temp3], %[temp1], %[temp2] \n\t" \
+@@ -177,7 +177,7 @@ static WEBP_INLINE void PredictLine(const uint8_t* src, uint8_t* dst, + __asm__ volatile ( \
+ "lbu %[temp1], 0(%[src]) \n\t" \
+ "lbu %[temp2], 0(%[pred]) \n\t" \
+- ".if "#INVERSE" \n\t" \
++ ".if " #INVERSE " \n\t" \
+ "addu %[temp3], %[temp1], %[temp2] \n\t" \
+ ".else \n\t" \
+ "subu %[temp3], %[temp1], %[temp2] \n\t" \
+diff --git a/Source/LibWebP/src/dsp/dsp.lossless_mips32.c b/Source/LibWebP/src/dsp/dsp.lossless_mips32.c +index 68fbe85..abe97c1 100644 +--- a/Source/LibWebP/src/dsp/dsp.lossless_mips32.c ++++ b/Source/LibWebP/src/dsp/dsp.lossless_mips32.c +@@ -285,28 +285,28 @@ static VP8LStreaks HuffmanCostCombinedCount(const uint32_t* X, + // literal_ and successive histograms could be unaligned
+ // so we must use ulw and usw
+ #define ADD_TO_OUT(A, B, C, D, E, P0, P1, P2) \
+- "ulw %[temp0], "#A"(%["#P0"]) \n\t" \
+- "ulw %[temp1], "#B"(%["#P0"]) \n\t" \
+- "ulw %[temp2], "#C"(%["#P0"]) \n\t" \
+- "ulw %[temp3], "#D"(%["#P0"]) \n\t" \
+- "ulw %[temp4], "#A"(%["#P1"]) \n\t" \
+- "ulw %[temp5], "#B"(%["#P1"]) \n\t" \
+- "ulw %[temp6], "#C"(%["#P1"]) \n\t" \
+- "ulw %[temp7], "#D"(%["#P1"]) \n\t" \
++ "ulw %[temp0], " #A "(%[" #P0 "]) \n\t" \
++ "ulw %[temp1], " #B "(%[" #P0 "]) \n\t" \
++ "ulw %[temp2], " #C "(%[" #P0 "]) \n\t" \
++ "ulw %[temp3], " #D "(%[" #P0 "]) \n\t" \
++ "ulw %[temp4], " #A "(%[" #P1 "]) \n\t" \
++ "ulw %[temp5], " #B "(%[" #P1 "]) \n\t" \
++ "ulw %[temp6], " #C "(%[" #P1 "]) \n\t" \
++ "ulw %[temp7], " #D "(%[" #P1 "]) \n\t" \
+ "addu %[temp4], %[temp4], %[temp0] \n\t" \
+ "addu %[temp5], %[temp5], %[temp1] \n\t" \
+ "addu %[temp6], %[temp6], %[temp2] \n\t" \
+ "addu %[temp7], %[temp7], %[temp3] \n\t" \
+- "addiu %["#P0"], %["#P0"], 16 \n\t" \
+- ".if "#E" == 1 \n\t" \
+- "addiu %["#P1"], %["#P1"], 16 \n\t" \
++ "addiu %[" #P0 "], %[" #P0 "], 16 \n\t" \
++ ".if " #E " == 1 \n\t" \
++ "addiu %[" #P1 "], %[" #P1 "], 16 \n\t" \
+ ".endif \n\t" \
+- "usw %[temp4], "#A"(%["#P2"]) \n\t" \
+- "usw %[temp5], "#B"(%["#P2"]) \n\t" \
+- "usw %[temp6], "#C"(%["#P2"]) \n\t" \
+- "usw %[temp7], "#D"(%["#P2"]) \n\t" \
+- "addiu %["#P2"], %["#P2"], 16 \n\t" \
+- "bne %["#P0"], %[LoopEnd], 1b \n\t" \
++ "usw %[temp4], " #A "(%[" #P2 "]) \n\t" \
++ "usw %[temp5], " #B "(%[" #P2 "]) \n\t" \
++ "usw %[temp6], " #C "(%[" #P2 "]) \n\t" \
++ "usw %[temp7], " #D "(%[" #P2 "]) \n\t" \
++ "addiu %[" #P2 "], %[" #P2 "], 16 \n\t" \
++ "bne %[" #P0 "], %[LoopEnd], 1b \n\t" \
+ ".set pop \n\t" \
+
+ #define ASM_END_COMMON_0 \
+diff --git a/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c +index 821cda9..31ac181 100644 +--- a/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c +@@ -29,14 +29,14 @@ static void FUNC_NAME(const TYPE* src, \ + for (x = 0; x < (width >> 2); ++x) { \
+ int tmp1, tmp2, tmp3, tmp4; \
+ __asm__ volatile ( \
+- ".ifc "#TYPE", uint8_t \n\t" \
++ ".ifc " #TYPE ", uint8_t \n\t" \
+ "lbu %[tmp1], 0(%[src]) \n\t" \
+ "lbu %[tmp2], 1(%[src]) \n\t" \
+ "lbu %[tmp3], 2(%[src]) \n\t" \
+ "lbu %[tmp4], 3(%[src]) \n\t" \
+ "addiu %[src], %[src], 4 \n\t" \
+ ".endif \n\t" \
+- ".ifc "#TYPE", uint32_t \n\t" \
++ ".ifc " #TYPE ", uint32_t \n\t" \
+ "lw %[tmp1], 0(%[src]) \n\t" \
+ "lw %[tmp2], 4(%[src]) \n\t" \
+ "lw %[tmp3], 8(%[src]) \n\t" \
+@@ -55,7 +55,7 @@ static void FUNC_NAME(const TYPE* src, \ + "lwx %[tmp2], %[tmp2](%[color_map]) \n\t" \
+ "lwx %[tmp3], %[tmp3](%[color_map]) \n\t" \
+ "lwx %[tmp4], %[tmp4](%[color_map]) \n\t" \
+- ".ifc "#TYPE", uint8_t \n\t" \
++ ".ifc " #TYPE ", uint8_t \n\t" \
+ "ext %[tmp1], %[tmp1], 8, 8 \n\t" \
+ "ext %[tmp2], %[tmp2], 8, 8 \n\t" \
+ "ext %[tmp3], %[tmp3], 8, 8 \n\t" \
+@@ -66,7 +66,7 @@ static void FUNC_NAME(const TYPE* src, \ + "sb %[tmp4], 3(%[dst]) \n\t" \
+ "addiu %[dst], %[dst], 4 \n\t" \
+ ".endif \n\t" \
+- ".ifc "#TYPE", uint32_t \n\t" \
++ ".ifc " #TYPE ", uint32_t \n\t" \
+ "sw %[tmp1], 0(%[dst]) \n\t" \
+ "sw %[tmp2], 4(%[dst]) \n\t" \
+ "sw %[tmp3], 8(%[dst]) \n\t" \
+diff --git a/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c +index a7864a0..cb3adfe 100644 +--- a/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c +@@ -34,15 +34,15 @@ + G = G - t2 + kGCst; \
+ B = B + kBCst; \
+ __asm__ volatile ( \
+- "shll_s.w %["#R"], %["#R"], 9 \n\t" \
+- "shll_s.w %["#G"], %["#G"], 9 \n\t" \
+- "shll_s.w %["#B"], %["#B"], 9 \n\t" \
+- "precrqu_s.qb.ph %["#R"], %["#R"], $zero \n\t" \
+- "precrqu_s.qb.ph %["#G"], %["#G"], $zero \n\t" \
+- "precrqu_s.qb.ph %["#B"], %["#B"], $zero \n\t" \
+- "srl %["#R"], %["#R"], 24 \n\t" \
+- "srl %["#G"], %["#G"], 24 \n\t" \
+- "srl %["#B"], %["#B"], 24 \n\t" \
++ "shll_s.w %[" #R "], %[" #R "], 9 \n\t" \
++ "shll_s.w %[" #G "], %[" #G "], 9 \n\t" \
++ "shll_s.w %[" #B "], %[" #B "], 9 \n\t" \
++ "precrqu_s.qb.ph %[" #R "], %[" #R "], $zero \n\t" \
++ "precrqu_s.qb.ph %[" #G "], %[" #G "], $zero \n\t" \
++ "precrqu_s.qb.ph %[" #B "], %[" #B "], $zero \n\t" \
++ "srl %[" #R "], %[" #R "], 24 \n\t" \
++ "srl %[" #G "], %[" #G "], 24 \n\t" \
++ "srl %[" #B "], %[" #B "], 24 \n\t" \
+ : [R]"+r"(R), [G]"+r"(G), [B]"+r"(B) \
+ : \
+ ); \
+diff --git a/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c b/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c +index 66adde5..51cbe9e 100644 +--- a/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c ++++ b/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c +@@ -39,12 +39,12 @@ + "addu %[temp5], %[temp0], %[temp1] \n\t" \
+ "subu %[temp6], %[temp0], %[temp2] \n\t" \
+ "addu %[temp7], %[temp0], %[temp4] \n\t" \
+-".if "#K" \n\t" \
++".if " #K " \n\t" \
+ "lbu %[temp0], 1(%[y]) \n\t" \
+ ".endif \n\t" \
+ "shll_s.w %[temp5], %[temp5], 9 \n\t" \
+ "shll_s.w %[temp6], %[temp6], 9 \n\t" \
+-".if "#K" \n\t" \
++".if " #K " \n\t" \
+ "mul %[temp0], %[t_con_5], %[temp0] \n\t" \
+ ".endif \n\t" \
+ "shll_s.w %[temp7], %[temp7], 9 \n\t" \
+@@ -54,9 +54,9 @@ + "srl %[temp5], %[temp5], 24 \n\t" \
+ "srl %[temp6], %[temp6], 24 \n\t" \
+ "srl %[temp7], %[temp7], 24 \n\t" \
+- "sb %[temp5], "#R"(%[dst]) \n\t" \
+- "sb %[temp6], "#G"(%[dst]) \n\t" \
+- "sb %[temp7], "#B"(%[dst]) \n\t" \
++ "sb %[temp5], " #R "(%[dst]) \n\t" \
++ "sb %[temp6], " #G "(%[dst]) \n\t" \
++ "sb %[temp7], " #B "(%[dst]) \n\t" \
+
+ #define ASM_CLOBBER_LIST() \
+ : [temp0]"=&r"(temp0), [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), \
+-- +2.1.4 + diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk index c3c9cf8301..881c5cedf6 100644 --- a/package/libglib2/libglib2.mk +++ b/package/libglib2/libglib2.mk @@ -85,6 +85,11 @@ else LIBGLIB2_CONF_ENV += glib_cv_have_qsort_r=yes endif +# glib/valgrind.h contains inline asm not compatible with thumb1 +ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) +LIBGLIB2_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -marm" +endif + HOST_LIBGLIB2_CONF_OPTS = \ --disable-coverage \ --disable-dtrace \ diff --git a/package/libgsasl/libgsasl.mk b/package/libgsasl/libgsasl.mk index f2660ca4fa..00ce8e0375 100644 --- a/package/libgsasl/libgsasl.mk +++ b/package/libgsasl/libgsasl.mk @@ -9,6 +9,14 @@ LIBGSASL_SITE = $(BR2_GNU_MIRROR)/gsasl LIBGSASL_LICENSE = LGPLv2.1+ (library), GPLv3+ (programs) LIBGSASL_LICENSE_FILES = README COPYING.LIB COPYING LIBGSASL_INSTALL_STAGING = YES -LIBGSASL_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBIDN),libidn) +# It doesn't seem to build with our libgcrypt so better be safe +LIBGSASL_CONF_OPTS = --without-libgcrypt + +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)) diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in index cdc3b2db07..02c7aaf0c7 100644 --- a/package/libgtk3/Config.in +++ b/package/libgtk3/Config.in @@ -40,6 +40,8 @@ config BR2_PACKAGE_LIBGTK3_X11 config BR2_PACKAGE_LIBGTK3_WAYLAND bool "GDK Wayland backend" default y + # Needs a libgtk3 bump to match API level + depends on BROKEN depends on BR2_PACKAGE_WAYLAND select BR2_PACKAGE_LIBXKBCOMMON help diff --git a/package/libgudev/libgudev.hash b/package/libgudev/libgudev.hash new file mode 100644 index 0000000000..a6c1d6b535 --- /dev/null +++ b/package/libgudev/libgudev.hash @@ -0,0 +1,2 @@ +# From: http://ftp.gnome.org/pub/GNOME/sources/libgudev/230/libgudev-230.sha256sum +sha256 a2e77faced0c66d7498403adefcc0707105e03db71a2b2abd620025b86347c18 libgudev-230.tar.xz diff --git a/package/libpng/libpng.hash b/package/libpng/libpng.hash index 92ac24faa0..a26538dd56 100644 --- a/package/libpng/libpng.hash +++ b/package/libpng/libpng.hash @@ -1,3 +1,3 @@ -# From http://sourceforge.net/projects/libpng/files/libpng16/1.6.18/ -md5 6a57c8e0f5469b9c9949a4b43d57b3a1 libpng-1.6.18.tar.xz -sha1 c6e06510d30beba08c96c468ab269fafb2bb256f libpng-1.6.18.tar.xz +# From http://sourceforge.net/projects/libpng/files/libpng16/1.6.19/ +md5 1e6a458429e850fc93c1f3b6dc00a48f libpng-1.6.19.tar.xz +sha1 483d72ced11c9258f9d1119105273d9af9ff151c libpng-1.6.19.tar.xz diff --git a/package/libpng/libpng.mk b/package/libpng/libpng.mk index 5500a61192..649a3e0c49 100644 --- a/package/libpng/libpng.mk +++ b/package/libpng/libpng.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBPNG_VERSION = 1.6.18 +LIBPNG_VERSION = 1.6.19 LIBPNG_SERIES = 16 LIBPNG_SOURCE = libpng-$(LIBPNG_VERSION).tar.xz LIBPNG_SITE = http://downloads.sourceforge.net/project/libpng/libpng${LIBPNG_SERIES}/$(LIBPNG_VERSION) diff --git a/package/libserial/0002-Don-t-use-high-baudrates-when-not-available.patch b/package/libserial/0002-Don-t-use-high-baudrates-when-not-available.patch new file mode 100644 index 0000000000..f2ad61ae7d --- /dev/null +++ b/package/libserial/0002-Don-t-use-high-baudrates-when-not-available.patch @@ -0,0 +1,65 @@ +From 47ca0621ccd2100e4ba0d7f4e2a861d14f05f63c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Tue, 17 Nov 2015 23:50:14 +0100 +Subject: [PATCH] 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.h:88:24: error: 'B2500000' was not declared in this scope + BAUD_2500000 = B2500000, + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + src/SerialPort.h | 2 ++ + src/SerialStreamBuf.h | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/src/SerialPort.h b/src/SerialPort.h +index 6c0baaa..0b1af4c 100644 +--- a/src/SerialPort.h ++++ b/src/SerialPort.h +@@ -85,11 +85,13 @@ public: + BAUD_1152000 = B1152000, + BAUD_1500000 = B1500000, + BAUD_2000000 = B2000000, ++#if __MAX_BAUD > B2000000 + BAUD_2500000 = B2500000, + BAUD_3000000 = B3000000, + BAUD_3500000 = B3500000, + BAUD_4000000 = B4000000, + #endif ++#endif /* __linux__ */ + BAUD_DEFAULT = BAUD_57600 + } ; + +diff --git a/src/SerialStreamBuf.h b/src/SerialStreamBuf.h +index ccbb996..174f31c 100644 +--- a/src/SerialStreamBuf.h ++++ b/src/SerialStreamBuf.h +@@ -85,11 +85,13 @@ extern "C++" + BAUD_1152000 = SerialPort::BAUD_1152000, + BAUD_1500000 = SerialPort::BAUD_1500000, + BAUD_2000000 = SerialPort::BAUD_2000000, ++#if __MAX_BAUD > B2000000 + BAUD_2500000 = SerialPort::BAUD_2500000, + BAUD_3000000 = SerialPort::BAUD_3000000, + BAUD_3500000 = SerialPort::BAUD_3500000, + BAUD_4000000 = SerialPort::BAUD_4000000, + #endif ++#endif /* __linux__ */ + BAUD_DEFAULT = SerialPort::BAUD_DEFAULT, + BAUD_INVALID = -1 + } ; +-- +2.6.3 + diff --git a/package/libsigsegv/0005-fix-sparc64-stackpointer.patch b/package/libsigsegv/0005-fix-sparc64-stackpointer.patch new file mode 100644 index 0000000000..62de35f6e0 --- /dev/null +++ b/package/libsigsegv/0005-fix-sparc64-stackpointer.patch @@ -0,0 +1,16 @@ +Fix sparc64 build. + +Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> + +diff -Nur libsigsegv-2.10.orig/src/fault-linux-sparc.h libsigsegv-2.10/src/fault-linux-sparc.h +--- libsigsegv-2.10.orig/src/fault-linux-sparc.h 2009-08-01 17:06:49.000000000 +0200 ++++ libsigsegv-2.10/src/fault-linux-sparc.h 2015-11-29 11:55:29.000000000 +0100 +@@ -27,4 +27,8 @@ + (see also <asm/sigcontext.h>) + are quite different types. */ + ++#if __WORDSIZE == 64 ++#define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.mc_gregs[REG_O6] ++#else + #define SIGSEGV_FAULT_STACKPOINTER ((ucontext_t *) ucp)->uc_mcontext.gregs[REG_O6] ++#endif diff --git a/package/libsoc/0001-spi-fix-build-against-MUSL-C-library.patch b/package/libsoc/0001-spi-fix-build-against-MUSL-C-library.patch new file mode 100644 index 0000000000..7e8061bd68 --- /dev/null +++ b/package/libsoc/0001-spi-fix-build-against-MUSL-C-library.patch @@ -0,0 +1,28 @@ +From 647a3af126943b2251c82340ab7c81706b2eb805 Mon Sep 17 00:00:00 2001 +From: Yegor Yefremov <yegorslists@googlemail.com> +Date: Fri, 27 Nov 2015 10:24:12 +0100 +Subject: [PATCH] spi: fix build against MUSL C library + +Without <linux/ioctl.h> include compiler cannot find _IOC_SIZEBITS +macro, when using MUSL C library. + +Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> +--- + lib/spi.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/spi.c b/lib/spi.c +index 8465f75..6d1f78a 100644 +--- a/lib/spi.c ++++ b/lib/spi.c +@@ -6,6 +6,7 @@ + #include <fcntl.h> + #include <sys/ioctl.h> + #include <linux/types.h> ++#include <linux/ioctl.h> + #include <linux/spi/spidev.h> + + #include "libsoc_spi.h" +-- +2.1.4 + diff --git a/package/libssh2/Config.in b/package/libssh2/Config.in index 017fd4061a..341624069a 100644 --- a/package/libssh2/Config.in +++ b/package/libssh2/Config.in @@ -1,6 +1,9 @@ config BR2_PACKAGE_LIBSSH2 bool "libssh2" select BR2_PACKAGE_LIBGCRYPT if !BR2_PACKAGE_OPENSSL + # Triggers the _gp link issue + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 help libssh2 is a client-side C library implementing the SSH2 protocol as defined by Internet Drafts: SECSH-TRANS(22), diff --git a/package/libuecc/Config.in b/package/libuecc/Config.in index 34bbea2d46..b7cd0450fe 100644 --- a/package/libuecc/Config.in +++ b/package/libuecc/Config.in @@ -1,6 +1,10 @@ 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 diff --git a/package/libv4l/Config.in b/package/libv4l/Config.in index 16dc6bbd9e..8d7eca1a68 100644 --- a/package/libv4l/Config.in +++ b/package/libv4l/Config.in @@ -23,6 +23,7 @@ comment "libv4l JPEG support not enabled" config BR2_PACKAGE_LIBV4L_UTILS bool "v4l-utils tools" + depends on BR2_ENABLE_LOCALE select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE help v4l-utils is a collection of various video4linux and DVB utilities. @@ -38,6 +39,9 @@ config BR2_PACKAGE_LIBV4L_UTILS - rds-ctl - qv4l2 (if Qt is enabled) +comment "libv4l-utils tools need a toolchain w/ locale" + depends on !BR2_ENABLE_LOCALE + endif comment "libv4l needs an uClibc or (e)glibc toolchain w/ threads, dynamic library, C++ and headers >= 3.0" diff --git a/package/libxml2/0001-libxml2-config.cmake.in-update-include-directories.patch b/package/libxml2/0001-libxml2-config.cmake.in-update-include-directories.patch deleted file mode 100644 index 589c8d601e..0000000000 --- a/package/libxml2/0001-libxml2-config.cmake.in-update-include-directories.patch +++ /dev/null @@ -1,28 +0,0 @@ -From dd6125f4b58fe7bc270e51bc3fcf41cd228d22fc Mon Sep 17 00:00:00 2001 -From: Samuel Martin <s.martin49@gmail.com> -Date: Mon, 29 Dec 2014 20:40:18 +0100 -Subject: [PATCH] libxml2-config.cmake.in: update include directories - -Align the include directories on those from the pkg-config module. - -Signed-off-by: Samuel Martin <s.martin49@gmail.com> ---- - libxml2-config.cmake.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in -index ac29329..6b16fc2 100644 ---- a/libxml2-config.cmake.in -+++ b/libxml2-config.cmake.in -@@ -21,7 +21,7 @@ set(LIBXML2_VERSION_MINOR @LIBXML_MINOR_VERSION@) - set(LIBXML2_VERSION_MICRO @LIBXML_MICRO_VERSION@) - set(LIBXML2_VERSION_STRING "@VERSION@") - set(LIBXML2_INSTALL_PREFIX ${_libxml2_rootdir}) --set(LIBXML2_INCLUDE_DIRS ${_libxml2_rootdir}/include) -+set(LIBXML2_INCLUDE_DIRS ${_libxml2_rootdir}/include ${_libxml2_rootdir}/include/libxml2) - set(LIBXML2_LIBRARY_DIR ${_libxml2_rootdir}/lib) - set(LIBXML2_LIBRARIES -L${LIBXML2_LIBRARY_DIR} -lxml2) - --- -2.2.1 - diff --git a/package/libxml2/0002-threads-use-forward-declarations-only-for-glibc.patch b/package/libxml2/0002-threads-use-forward-declarations-only-for-glibc.patch deleted file mode 100644 index 4123306fb8..0000000000 --- a/package/libxml2/0002-threads-use-forward-declarations-only-for-glibc.patch +++ /dev/null @@ -1,52 +0,0 @@ -Fix musl compile - -Downloaded from upstream commit -https://git.gnome.org/browse/libxml2/commit/?id=fff8a6b87e05200a0ad0af6f86c2e859c7de9172 - -Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> ---- -From fff8a6b87e05200a0ad0af6f86c2e859c7de9172 Mon Sep 17 00:00:00 2001 -From: Michael Heimpold <mhei@heimpold.de> -Date: Mon, 22 Dec 2014 11:12:12 +0800 -Subject: threads: use forward declarations only for glibc - -Fixes bug #704908 - -The declarations of pthread functions, used to generate weak references -to them, fail to suppress macros. Thus, if any pthread function has -been provided as a macro, compiling threads.c will fail. -This breaks on musl libc, which defines pthread_equal as a macro (in -addition to providing the function, as required). - -Prevent the declarations for e.g. musl libc by refining the condition. - -The idea for this solution was borrowed from the alpine linux guys, see -http://git.alpinelinux.org/cgit/aports/tree/main/libxml2/libxml2-pthread.patch - -Signed-off-by: Michael Heimpold <mhei@heimpold.de> - -diff --git a/threads.c b/threads.c -index 8921204..78006a2 100644 ---- a/threads.c -+++ b/threads.c -@@ -47,7 +47,7 @@ - #ifdef HAVE_PTHREAD_H - - static int libxml_is_threaded = -1; --#ifdef __GNUC__ -+#if defined(__GNUC__) && defined(__GLIBC__) - #ifdef linux - #if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3) - extern int pthread_once (pthread_once_t *__once_control, -@@ -89,7 +89,7 @@ extern int pthread_cond_signal () - __attribute((weak)); - #endif - #endif /* linux */ --#endif /* __GNUC__ */ -+#endif /* defined(__GNUC__) && defined(__GLIBC__) */ - #endif /* HAVE_PTHREAD_H */ - - /* --- -cgit v0.10.2 - diff --git a/package/libxml2/libxml2.hash b/package/libxml2/libxml2.hash index 69f4fdc509..00fbf4372b 100644 --- a/package/libxml2/libxml2.hash +++ b/package/libxml2/libxml2.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 5178c30b151d044aefb1b08bf54c3003a0ac55c59c866763997529d60770d5bc libxml2-2.9.2.tar.gz +sha256 4de9e31f46b44d34871c22f54bfc54398ef124d6f7cafb1f4a5958fbcd3ba12d libxml2-2.9.3.tar.gz diff --git a/package/libxml2/libxml2.mk b/package/libxml2/libxml2.mk index e5832b2fc7..acfe59f4b8 100644 --- a/package/libxml2/libxml2.mk +++ b/package/libxml2/libxml2.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBXML2_VERSION = 2.9.2 +LIBXML2_VERSION = 2.9.3 LIBXML2_SITE = ftp://xmlsoft.org/libxml2 LIBXML2_INSTALL_STAGING = YES LIBXML2_AUTORECONF = YES diff --git a/package/linux-headers/Config.in.host b/package/linux-headers/Config.in.host index d2686b6e3e..560cad71da 100644 --- a/package/linux-headers/Config.in.host +++ b/package/linux-headers/Config.in.host @@ -199,17 +199,17 @@ endchoice config BR2_DEFAULT_KERNEL_HEADERS string - default "3.2.72" if BR2_KERNEL_HEADERS_3_2 + default "3.2.73" if BR2_KERNEL_HEADERS_3_2 default "3.4.110" if BR2_KERNEL_HEADERS_3_4 - default "3.10.92" if BR2_KERNEL_HEADERS_3_10 + default "3.10.93" if BR2_KERNEL_HEADERS_3_10 default "3.12.50" if BR2_KERNEL_HEADERS_3_12 - default "3.14.56" if BR2_KERNEL_HEADERS_3_14 + default "3.14.57" if BR2_KERNEL_HEADERS_3_14 default "3.16.7" if BR2_KERNEL_HEADERS_3_16 default "3.17.8" if BR2_KERNEL_HEADERS_3_17 default "3.18.24" if BR2_KERNEL_HEADERS_3_18 default "3.19.8" if BR2_KERNEL_HEADERS_3_19 default "4.0.9" if BR2_KERNEL_HEADERS_4_0 - default "4.1.12" if BR2_KERNEL_HEADERS_4_1 - default "4.2.5" if BR2_KERNEL_HEADERS_4_2 + default "4.1.13" if BR2_KERNEL_HEADERS_4_1 + default "4.2.6" if BR2_KERNEL_HEADERS_4_2 default "4.3" if BR2_KERNEL_HEADERS_4_3 default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION diff --git a/package/linux-headers/linux-headers.mk b/package/linux-headers/linux-headers.mk index ca68a5ba6a..1b8b81b20e 100644 --- a/package/linux-headers/linux-headers.mk +++ b/package/linux-headers/linux-headers.mk @@ -16,6 +16,8 @@ else ifeq ($(findstring x4.,x$(LINUX_HEADERS_VERSION)),x4.) LINUX_HEADERS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v4.x endif LINUX_HEADERS_SOURCE = linux-$(LINUX_HEADERS_VERSION).tar.xz +LINUX_HEADERS_LICENSE = GPLv2 +LINUX_HEADERS_LICENSE_FILES = COPYING LINUX_HEADERS_INSTALL_STAGING = YES diff --git a/package/liquid-dsp/Config.in b/package/liquid-dsp/Config.in index 834496c80c..39cd3429b9 100644 --- a/package/liquid-dsp/Config.in +++ b/package/liquid-dsp/Config.in @@ -1,10 +1,15 @@ comment "liquid-dsp requires a (e)glibc/musl toolchain w/ dynamic library" + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009 depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || BR2_STATIC_LIBS config BR2_PACKAGE_LIQUID_DSP bool "liquid-dsp" depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL depends on !BR2_STATIC_LIBS + # These result in internal compiler error + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009 help Liquid-DSP is a free and open-source signal processing library for software-defined radios written in C. Its @@ -18,6 +23,9 @@ if BR2_PACKAGE_LIQUID_DSP config BR2_PACKAGE_LIQUID_DSP_FAST bool "optimize for speed over accuracy" + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201209 && \ + !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201203 && \ + !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103 help Optimize for speed over accuracy. diff --git a/package/liquid-dsp/liquid-dsp.mk b/package/liquid-dsp/liquid-dsp.mk index 8bb8d54f4c..e7bb686327 100644 --- a/package/liquid-dsp/liquid-dsp.mk +++ b/package/liquid-dsp/liquid-dsp.mk @@ -34,6 +34,11 @@ ifeq ($(BR2_PACKAGE_FFTW_PRECISION_SINGLE),y) LIQUID_DSP_LDFLAGS += -lfftw3f endif +# disable altivec, it has build issues +ifeq ($(BR2_powerpc)$(BR2_powerpc64),y) +LIQUID_DSP_CONF_OPTS += --enable-simdoverride +endif + ifeq ($(BR2_PACKAGE_FFTW_PRECISION_DOUBLE),y) LIQUID_DSP_LDFLAGS += -lfftw3 endif diff --git a/package/localedef/localedef.hash b/package/localedef/localedef.hash new file mode 100644 index 0000000000..ee14fb16b8 --- /dev/null +++ b/package/localedef/localedef.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 9a60f7cdab6fb39adf23a12102f2d950d5f07f0cd7e51e85ec327e07440a79c6 localedef-eglibc-2.14.1-r17443-ptx1.tar.bz2 diff --git a/package/ltris/0001-fix-gcc5-build.patch b/package/ltris/0001-fix-gcc5-build.patch new file mode 100644 index 0000000000..66d0fa3df7 --- /dev/null +++ b/package/ltris/0001-fix-gcc5-build.patch @@ -0,0 +1,308 @@ +Upstream patch to fix build with GCC 5 + +Obtained from the LGames Subversion repository with the following command: +svn diff -c164 svn://svn.code.sf.net/p/lgames/code/trunk/ltris + +Signed-off-by: Rodrigo Rebello <rprebello@gmail.com> + +Revision log message: +------------------------------------------------------------------------ +r164 | kulkanie | 2015-05-16 05:48:02 -0300 (Sat, 16 May 2015) | 1 line + +removed all inline keywords +------------------------------------------------------------------------ + +Line added to LTris ChangeLog concerning the change: +- removed all inline keywords to work with GCC 5 (2015/05/16 MS) + +Author: Michael Speck + +Index: src/sdl.c +=================================================================== +--- a/src/sdl.c (revision 163) ++++ b/src/sdl.c (revision 164) +@@ -244,7 +244,7 @@ + #endif + + /* return full path of bitmap */ +-inline void get_full_bmp_path( char *full_path, char *file_name ) ++void get_full_bmp_path( char *full_path, char *file_name ) + { + sprintf(full_path, "%s/gfx/%s", SRC_DIR, file_name ); + } +@@ -330,7 +330,7 @@ + /* + lock surface + */ +-inline void lock_surf(SDL_Surface *sur) ++void lock_surf(SDL_Surface *sur) + { + if (SDL_MUSTLOCK(sur)) + SDL_LockSurface(sur); +@@ -339,7 +339,7 @@ + /* + unlock surface + */ +-inline void unlock_surf(SDL_Surface *sur) ++void unlock_surf(SDL_Surface *sur) + { + if (SDL_MUSTLOCK(sur)) + SDL_UnlockSurface(sur); +@@ -666,7 +666,7 @@ + /* + lock font surface + */ +-inline void lock_font(Font *fnt) ++void lock_font(Font *fnt) + { + if (SDL_MUSTLOCK(fnt->pic)) + SDL_LockSurface(fnt->pic); +@@ -675,7 +675,7 @@ + /* + unlock font surface + */ +-inline void unlock_font(Font *fnt) ++void unlock_font(Font *fnt) + { + if (SDL_MUSTLOCK(fnt->pic)) + SDL_UnlockSurface(fnt->pic); +@@ -905,7 +905,7 @@ + /* + update rectangle (0,0,0,0)->fullscreen + */ +-inline void refresh_screen(int x, int y, int w, int h) ++void refresh_screen(int x, int y, int w, int h) + { + SDL_UpdateRect(sdl.screen, x, y, w, h); + } +@@ -1055,7 +1055,7 @@ + /* + lock surface + */ +-inline void lock_screen() ++void lock_screen() + { + if (SDL_MUSTLOCK(sdl.screen)) + SDL_LockSurface(sdl.screen); +@@ -1064,7 +1064,7 @@ + /* + unlock surface + */ +-inline void unlock_screen() ++void unlock_screen() + { + if (SDL_MUSTLOCK(sdl.screen)) + SDL_UnlockSurface(sdl.screen); +@@ -1073,7 +1073,7 @@ + /* + flip hardware screens (double buffer) + */ +-inline void flip_screen() ++void flip_screen() + { + SDL_Flip(sdl.screen); + } +@@ -1132,7 +1132,7 @@ + /* + get milliseconds since last call + */ +-inline int get_time() ++int get_time() + { + int ms; + cur_time = SDL_GetTicks(); +@@ -1148,7 +1148,7 @@ + /* + reset timer + */ +-inline void reset_timer() ++void reset_timer() + { + last_time = SDL_GetTicks(); + } +Index: src/sdl.h +=================================================================== +--- a/src/sdl.h (revision 163) ++++ b/src/sdl.h (revision 164) +@@ -41,8 +41,8 @@ + SDL_Surface* load_surf(char *fname, int f); + SDL_Surface* create_surf(int w, int h, int f); + void free_surf( SDL_Surface **surf ); +-inline void lock_surf(SDL_Surface *sur); +-inline void unlock_surf(SDL_Surface *sur); ++void lock_surf(SDL_Surface *sur); ++void unlock_surf(SDL_Surface *sur); + void blit_surf(void); + void alpha_blit_surf(int alpha); + void fill_surf(int c); +@@ -86,8 +86,8 @@ + Font* load_fixed_font(char *fname, int off, int len, int w); + void free_font(Font **sfnt); + int write_text(Font *sfnt, SDL_Surface *dest, int x, int y, char *str, int alpha); +-inline void lock_font(Font *sfnt); +-inline void unlock_font(Font *sfnt); ++void lock_font(Font *sfnt); ++void unlock_font(Font *sfnt); + SDL_Rect last_write_rect(Font *fnt); + int text_width(Font *fnt, char *str); + +@@ -132,14 +132,14 @@ + char** get_mode_names( int *count ); + int set_video_mode( Video_Mode mode ); + void hardware_cap(); +-inline void refresh_screen( int x, int y, int w, int h ); ++void refresh_screen( int x, int y, int w, int h ); + void refresh_rects(); + void add_refresh_rect(int x, int y, int w, int h); + int wait_for_key(); + void wait_for_click(); +-inline void lock_screen(); +-inline void unlock_screen(); +-inline void flip_screen(); ++void lock_screen(); ++void unlock_screen(); ++void flip_screen(); + void fade_screen( int type, int ms ); + void take_screenshot( int i ); + +@@ -148,8 +148,8 @@ + SDL_Cursor* create_cursor( int width, int height, int hot_x, int hot_y, char *source ); + + /* timer */ +-inline int get_time(); +-inline void reset_timer(); ++int get_time(); ++void reset_timer(); + + #ifdef __cplusplus + }; +Index: src/tools.c +=================================================================== +--- a/src/tools.c (revision 163) ++++ b/src/tools.c (revision 164) +@@ -23,7 +23,7 @@ + #include "ltris.h" + + /* compares to strings and returns true if their first strlen(str1) chars are equal */ +-inline int strequal( char *str1, char *str2 ) ++int strequal( char *str1, char *str2 ) + { + if ( strlen( str1 ) != strlen( str2 ) ) return 0; + return ( !strncmp( str1, str2, strlen( str1 ) ) ); +@@ -30,7 +30,7 @@ + } + + /* set delay to ms milliseconds */ +-inline void delay_set( Delay *delay, int ms ) ++void delay_set( Delay *delay, int ms ) + { + delay->limit = ms; + delay->cur = 0; +@@ -37,13 +37,13 @@ + } + + /* reset delay ( cur = 0 )*/ +-inline void delay_reset( Delay *delay ) ++void delay_reset( Delay *delay ) + { + delay->cur = 0; + } + + /* check if times out and reset */ +-inline int delay_timed_out( Delay *delay, int ms ) ++int delay_timed_out( Delay *delay, int ms ) + { + delay->cur += ms; + if ( delay->cur >= delay->limit ) { +@@ -56,12 +56,12 @@ + } + + /* set timer so that we have a time out next call of delay_timed_out() */ +-inline void delay_force_time_out( Delay *delay ) ++void delay_force_time_out( Delay *delay ) + { + delay->cur = delay->limit; + } + +-inline void goto_tile( int *x, int *y, int d ) ++void goto_tile( int *x, int *y, int d ) + { + /* 0 -up, clockwise, 5 - left up */ + switch ( d ) { +@@ -326,24 +326,24 @@ + the target value until reached when counter_update() is called. + ==================================================================== + */ +-inline void counter_set( Counter *counter, double value ) ++void counter_set( Counter *counter, double value ) + { + counter->value = value; + counter->approach = value; + } +-inline void counter_add( Counter *counter, double add ) ++void counter_add( Counter *counter, double add ) + { + counter->value += add; + } +-inline double counter_get_approach( Counter counter ) ++double counter_get_approach( Counter counter ) + { + return counter.approach; + } +-inline double counter_get( Counter counter ) ++double counter_get( Counter counter ) + { + return counter.value; + } +-inline void counter_update( Counter *counter, int ms ) ++void counter_update( Counter *counter, int ms ) + { + double change; + if ( counter->approach == counter->value ) return; +Index: src/bowl.c +=================================================================== +--- a/src/bowl.c (revision 163) ++++ b/src/bowl.c (revision 164) +@@ -333,7 +333,7 @@ + Set a tile contents and pixel contents. + ==================================================================== + */ +-inline void bowl_set_tile( Bowl *bowl, int x, int y, int tile_id ) ++void bowl_set_tile( Bowl *bowl, int x, int y, int tile_id ) + { + int i, j = y * bowl->block_size; + bowl->contents[x][y] = tile_id; +Index: src/tools.h +=================================================================== +--- a/src/tools.h (revision 163) ++++ b/src/tools.h (revision 164) +@@ -33,7 +33,7 @@ + #define VEC_DIST( vec1, vec2 ) ( sqrt( ( vec1.x - vec2.x ) * ( vec1.x - vec2.x ) + ( vec1.y - vec2.y ) * ( vec1.y - vec2.y ) ) ) + + /* compares to strings and returns true if their first strlen(str1) chars are equal */ +-inline int strequal( char *str1, char *str2 ); ++int strequal( char *str1, char *str2 ); + + /* delete lines */ + void delete_lines( char **lines, int line_number ); +@@ -45,16 +45,16 @@ + } Delay; + + /* set delay to ms milliseconds */ +-inline void delay_set( Delay *delay, int ms ); ++void delay_set( Delay *delay, int ms ); + + /* reset delay ( cur = 0 )*/ +-inline void delay_reset( Delay *delay ); ++void delay_reset( Delay *delay ); + + /* check if time's out ( add ms milliseconds )and reset */ +-inline int delay_timed_out( Delay *delay, int ms ); ++int delay_timed_out( Delay *delay, int ms ); + + /* set timer so that we have a time out next call of delay_timed_out() */ +-inline void delay_force_time_out( Delay *delay ); ++void delay_force_time_out( Delay *delay ); + + /* return distance betwteen to map positions */ + int get_dist( int x1, int y1, int x2, int y2 ); diff --git a/package/lttng-tools/0001-Fix-Mark-MI-and-Config-string-declarations-as-extern.patch b/package/lttng-tools/0001-Fix-Mark-MI-and-Config-string-declarations-as-extern.patch new file mode 100644 index 0000000000..3de69c2657 --- /dev/null +++ b/package/lttng-tools/0001-Fix-Mark-MI-and-Config-string-declarations-as-extern.patch @@ -0,0 +1,443 @@ +From b369e4bfd0490739a66c65a56a30be8e1405e540 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Galarneau?= + <jeremie.galarneau@efficios.com> +Date: Fri, 22 May 2015 12:53:30 -0400 +Subject: [PATCH] Fix: Mark MI and Config string declarations as extern +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes a build issue with GCC 5.1 which would complain about +these symbols being defined multiple times. + +Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com> +[Thomas: backported on 2.6.0.] +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + src/common/config/config-session-abi.h | 166 +++++++++++++-------------- + src/common/mi-lttng.h | 198 ++++++++++++++++----------------- + 2 files changed, 182 insertions(+), 182 deletions(-) + +diff --git a/src/common/config/config-session-abi.h b/src/common/config/config-session-abi.h +index 1a1feec..e414a20 100644 +--- a/src/common/config/config-session-abi.h ++++ b/src/common/config/config-session-abi.h +@@ -18,95 +18,95 @@ + #ifndef CONFIG_SESSION_INTERNAL_H + #define CONFIG_SESSION_INTERNAL_H + +-const char * const config_element_channel; +-const char * const config_element_channels; +-const char * const config_element_domain; +-const char * const config_element_domains; +-const char * const config_element_event; +-const char * const config_element_events; +-const char * const config_element_context; +-const char * const config_element_contexts; +-const char * const config_element_attributes; +-const char * const config_element_exclusion; +-const char * const config_element_exclusions; +-const char * const config_element_function_attributes; +-const char * const config_element_probe_attributes; +-const char * const config_element_symbol_name; +-const char * const config_element_address; +-const char * const config_element_offset; +-const char * const config_element_name; +-const char * const config_element_enabled; +-const char * const config_element_overwrite_mode; +-const char * const config_element_subbuf_size; +-const char * const config_element_num_subbuf; +-const char * const config_element_switch_timer_interval; +-const char * const config_element_read_timer_interval; +-const char * const config_element_output; +-const char * const config_element_output_type; +-const char * const config_element_tracefile_size; +-const char * const config_element_tracefile_count; +-const char * const config_element_live_timer_interval; +-const char * const config_element_type; +-const char * const config_element_buffer_type; +-const char * const config_element_session; +-const char * const config_element_sessions; +-const char * const config_element_perf; +-const char * const config_element_config; +-const char * const config_element_started; +-const char * const config_element_snapshot_mode; +-const char * const config_element_loglevel; +-const char * const config_element_loglevel_type; +-const char * const config_element_filter; +-const char * const config_element_snapshot_outputs; +-const char * const config_element_consumer_output; +-const char * const config_element_destination; +-const char * const config_element_path; +-const char * const config_element_net_output; +-const char * const config_element_control_uri; +-const char * const config_element_data_uri; +-const char * const config_element_max_size; ++extern const char * const config_element_channel; ++extern const char * const config_element_channels; ++extern const char * const config_element_domain; ++extern const char * const config_element_domains; ++extern const char * const config_element_event; ++extern const char * const config_element_events; ++extern const char * const config_element_context; ++extern const char * const config_element_contexts; ++extern const char * const config_element_attributes; ++extern const char * const config_element_exclusion; ++extern const char * const config_element_exclusions; ++extern const char * const config_element_function_attributes; ++extern const char * const config_element_probe_attributes; ++extern const char * const config_element_symbol_name; ++extern const char * const config_element_address; ++extern const char * const config_element_offset; ++extern const char * const config_element_name; ++extern const char * const config_element_enabled; ++extern const char * const config_element_overwrite_mode; ++extern const char * const config_element_subbuf_size; ++extern const char * const config_element_num_subbuf; ++extern const char * const config_element_switch_timer_interval; ++extern const char * const config_element_read_timer_interval; ++extern const char * const config_element_output; ++extern const char * const config_element_output_type; ++extern const char * const config_element_tracefile_size; ++extern const char * const config_element_tracefile_count; ++extern const char * const config_element_live_timer_interval; ++extern const char * const config_element_type; ++extern const char * const config_element_buffer_type; ++extern const char * const config_element_session; ++extern const char * const config_element_sessions; ++extern const char * const config_element_perf; ++extern const char * const config_element_config; ++extern const char * const config_element_started; ++extern const char * const config_element_snapshot_mode; ++extern const char * const config_element_loglevel; ++extern const char * const config_element_loglevel_type; ++extern const char * const config_element_filter; ++extern const char * const config_element_snapshot_outputs; ++extern const char * const config_element_consumer_output; ++extern const char * const config_element_destination; ++extern const char * const config_element_path; ++extern const char * const config_element_net_output; ++extern const char * const config_element_control_uri; ++extern const char * const config_element_data_uri; ++extern const char * const config_element_max_size; + +-const char * const config_domain_type_kernel; +-const char * const config_domain_type_ust; +-const char * const config_domain_type_jul; +-const char * const config_domain_type_log4j; ++extern const char * const config_domain_type_kernel; ++extern const char * const config_domain_type_ust; ++extern const char * const config_domain_type_jul; ++extern const char * const config_domain_type_log4j; + +-const char * const config_buffer_type_per_pid; +-const char * const config_buffer_type_per_uid; +-const char * const config_buffer_type_global; ++extern const char * const config_buffer_type_per_pid; ++extern const char * const config_buffer_type_per_uid; ++extern const char * const config_buffer_type_global; + +-const char * const config_overwrite_mode_discard; +-const char * const config_overwrite_mode_overwrite; ++extern const char * const config_overwrite_mode_discard; ++extern const char * const config_overwrite_mode_overwrite; + +-const char * const config_output_type_splice; +-const char * const config_output_type_mmap; ++extern const char * const config_output_type_splice; ++extern const char * const config_output_type_mmap; + +-const char * const config_loglevel_type_all; +-const char * const config_loglevel_type_range; +-const char * const config_loglevel_type_single; ++extern const char * const config_loglevel_type_all; ++extern const char * const config_loglevel_type_range; ++extern const char * const config_loglevel_type_single; + +-const char * const config_event_type_all; +-const char * const config_event_type_tracepoint; +-const char * const config_event_type_probe; +-const char * const config_event_type_function; +-const char * const config_event_type_function_entry; +-const char * const config_event_type_noop; +-const char * const config_event_type_syscall; +-const char * const config_event_type_kprobe; +-const char * const config_event_type_kretprobe; ++extern const char * const config_event_type_all; ++extern const char * const config_event_type_tracepoint; ++extern const char * const config_event_type_probe; ++extern const char * const config_event_type_function; ++extern const char * const config_event_type_function_entry; ++extern const char * const config_event_type_noop; ++extern const char * const config_event_type_syscall; ++extern const char * const config_event_type_kprobe; ++extern const char * const config_event_type_kretprobe; + +-const char * const config_event_context_pid; +-const char * const config_event_context_procname; +-const char * const config_event_context_prio; +-const char * const config_event_context_nice; +-const char * const config_event_context_vpid; +-const char * const config_event_context_tid; +-const char * const config_event_context_vtid; +-const char * const config_event_context_ppid; +-const char * const config_event_context_vppid; +-const char * const config_event_context_pthread_id; +-const char * const config_event_context_hostname; +-const char * const config_event_context_ip; +-const char * const config_event_context_perf_thread_counter; ++extern const char * const config_event_context_pid; ++extern const char * const config_event_context_procname; ++extern const char * const config_event_context_prio; ++extern const char * const config_event_context_nice; ++extern const char * const config_event_context_vpid; ++extern const char * const config_event_context_tid; ++extern const char * const config_event_context_vtid; ++extern const char * const config_event_context_ppid; ++extern const char * const config_event_context_vppid; ++extern const char * const config_event_context_pthread_id; ++extern const char * const config_event_context_hostname; ++extern const char * const config_event_context_ip; ++extern const char * const config_event_context_perf_thread_counter; + + #endif /* CONFIG_SESSION_INTERNAL_H */ +diff --git a/src/common/mi-lttng.h b/src/common/mi-lttng.h +index a181e0b..06b0812 100644 +--- a/src/common/mi-lttng.h ++++ b/src/common/mi-lttng.h +@@ -49,133 +49,133 @@ struct mi_lttng_version { + }; + + /* Strings related to command */ +-const char * const mi_lttng_element_command; +-const char * const mi_lttng_element_command_action; +-const char * const mi_lttng_element_command_add_context; +-const char * const mi_lttng_element_command_calibrate; +-const char * const mi_lttng_element_command_create; +-const char * const mi_lttng_element_command_destroy; +-const char * const mi_lttng_element_command_disable_channel; +-const char * const mi_lttng_element_command_disable_event; +-const char * const mi_lttng_element_command_enable_channels; +-const char * const mi_lttng_element_command_enable_event; +-const char * const mi_lttng_element_command_list; +-const char * const mi_lttng_element_command_load; +-const char * const mi_lttng_element_command_name; +-const char * const mi_lttng_element_command_output; +-const char * const mi_lttng_element_command_save; +-const char * const mi_lttng_element_command_set_session; +-const char * const mi_lttng_element_command_snapshot; +-const char * const mi_lttng_element_command_snapshot_add; +-const char * const mi_lttng_element_command_snapshot_del; +-const char * const mi_lttng_element_command_snapshot_list; +-const char * const mi_lttng_element_command_snapshot_record; +-const char * const mi_lttng_element_command_start; +-const char * const mi_lttng_element_command_stop; +-const char * const mi_lttng_element_command_success; +-const char * const mi_lttng_element_command_version; ++extern const char * const mi_lttng_element_command; ++extern const char * const mi_lttng_element_command_action; ++extern const char * const mi_lttng_element_command_add_context; ++extern const char * const mi_lttng_element_command_calibrate; ++extern const char * const mi_lttng_element_command_create; ++extern const char * const mi_lttng_element_command_destroy; ++extern const char * const mi_lttng_element_command_disable_channel; ++extern const char * const mi_lttng_element_command_disable_event; ++extern const char * const mi_lttng_element_command_enable_channels; ++extern const char * const mi_lttng_element_command_enable_event; ++extern const char * const mi_lttng_element_command_list; ++extern const char * const mi_lttng_element_command_load; ++extern const char * const mi_lttng_element_command_name; ++extern const char * const mi_lttng_element_command_output; ++extern const char * const mi_lttng_element_command_save; ++extern const char * const mi_lttng_element_command_set_session; ++extern const char * const mi_lttng_element_command_snapshot; ++extern const char * const mi_lttng_element_command_snapshot_add; ++extern const char * const mi_lttng_element_command_snapshot_del; ++extern const char * const mi_lttng_element_command_snapshot_list; ++extern const char * const mi_lttng_element_command_snapshot_record; ++extern const char * const mi_lttng_element_command_start; ++extern const char * const mi_lttng_element_command_stop; ++extern const char * const mi_lttng_element_command_success; ++extern const char * const mi_lttng_element_command_version; + + /* Strings related to version command */ +-const char * const mi_lttng_element_version; +-const char * const mi_lttng_element_version_commit; +-const char * const mi_lttng_element_version_description; +-const char * const mi_lttng_element_version_license; +-const char * const mi_lttng_element_version_major; +-const char * const mi_lttng_element_version_minor; +-const char * const mi_lttng_element_version_patch_level; +-const char * const mi_lttng_element_version_str; +-const char * const mi_lttng_element_version_web; ++extern const char * const mi_lttng_element_version; ++extern const char * const mi_lttng_element_version_commit; ++extern const char * const mi_lttng_element_version_description; ++extern const char * const mi_lttng_element_version_license; ++extern const char * const mi_lttng_element_version_major; ++extern const char * const mi_lttng_element_version_minor; ++extern const char * const mi_lttng_element_version_patch_level; ++extern const char * const mi_lttng_element_version_str; ++extern const char * const mi_lttng_element_version_web; + + /* String related to a lttng_event_field */ +-const char * const mi_lttng_element_event_field; +-const char * const mi_lttng_element_event_fields; ++extern const char * const mi_lttng_element_event_field; ++extern const char * const mi_lttng_element_event_fields; + + /* String related to lttng_event_context */ +-const char * const mi_lttng_context_type_perf_counter; +-const char * const mi_lttng_context_type_perf_cpu_counter; +-const char * const mi_lttng_context_type_perf_thread_counter; ++extern const char * const mi_lttng_context_type_perf_counter; ++extern const char * const mi_lttng_context_type_perf_cpu_counter; ++extern const char * const mi_lttng_context_type_perf_thread_counter; + + /* String related to lttng_event_perf_counter_ctx */ +-const char * const mi_lttng_element_perf_counter_context; ++extern const char * const mi_lttng_element_perf_counter_context; + + /* Strings related to pid */ +-const char * const mi_lttng_element_pids; +-const char * const mi_lttng_element_pid; +-const char * const mi_lttng_element_pid_id; ++extern const char * const mi_lttng_element_pids; ++extern const char * const mi_lttng_element_pid; ++extern const char * const mi_lttng_element_pid_id; + + /* Strings related to save command */ +-const char * const mi_lttng_element_save; ++extern const char * const mi_lttng_element_save; + + /* Strings related to load command */ +-const char * const mi_lttng_element_load; ++extern const char * const mi_lttng_element_load; + + /* General element of mi_lttng */ +-const char * const mi_lttng_element_empty; +-const char * const mi_lttng_element_id; +-const char * const mi_lttng_element_nowrite; +-const char * const mi_lttng_element_success; +-const char * const mi_lttng_element_type_enum; +-const char * const mi_lttng_element_type_float; +-const char * const mi_lttng_element_type_integer; +-const char * const mi_lttng_element_type_other; +-const char * const mi_lttng_element_type_string; ++extern const char * const mi_lttng_element_empty; ++extern const char * const mi_lttng_element_id; ++extern const char * const mi_lttng_element_nowrite; ++extern const char * const mi_lttng_element_success; ++extern const char * const mi_lttng_element_type_enum; ++extern const char * const mi_lttng_element_type_float; ++extern const char * const mi_lttng_element_type_integer; ++extern const char * const mi_lttng_element_type_other; ++extern const char * const mi_lttng_element_type_string; + + /* String related to loglevel */ +-const char * const mi_lttng_loglevel_str_alert; +-const char * const mi_lttng_loglevel_str_crit; +-const char * const mi_lttng_loglevel_str_debug; +-const char * const mi_lttng_loglevel_str_debug_function; +-const char * const mi_lttng_loglevel_str_debug_line; +-const char * const mi_lttng_loglevel_str_debug_module; +-const char * const mi_lttng_loglevel_str_debug_process; +-const char * const mi_lttng_loglevel_str_debug_program; +-const char * const mi_lttng_loglevel_str_debug_system; +-const char * const mi_lttng_loglevel_str_debug_unit; +-const char * const mi_lttng_loglevel_str_emerg; +-const char * const mi_lttng_loglevel_str_err; +-const char * const mi_lttng_loglevel_str_info; +-const char * const mi_lttng_loglevel_str_notice; +-const char * const mi_lttng_loglevel_str_unknown; +-const char * const mi_lttng_loglevel_str_warning; ++extern const char * const mi_lttng_loglevel_str_alert; ++extern const char * const mi_lttng_loglevel_str_crit; ++extern const char * const mi_lttng_loglevel_str_debug; ++extern const char * const mi_lttng_loglevel_str_debug_function; ++extern const char * const mi_lttng_loglevel_str_debug_line; ++extern const char * const mi_lttng_loglevel_str_debug_module; ++extern const char * const mi_lttng_loglevel_str_debug_process; ++extern const char * const mi_lttng_loglevel_str_debug_program; ++extern const char * const mi_lttng_loglevel_str_debug_system; ++extern const char * const mi_lttng_loglevel_str_debug_unit; ++extern const char * const mi_lttng_loglevel_str_emerg; ++extern const char * const mi_lttng_loglevel_str_err; ++extern const char * const mi_lttng_loglevel_str_info; ++extern const char * const mi_lttng_loglevel_str_notice; ++extern const char * const mi_lttng_loglevel_str_unknown; ++extern const char * const mi_lttng_loglevel_str_warning; + + /* String related to loglevel JUL */ +-const char * const mi_lttng_loglevel_str_jul_all; +-const char * const mi_lttng_loglevel_str_jul_config; +-const char * const mi_lttng_loglevel_str_jul_fine; +-const char * const mi_lttng_loglevel_str_jul_finer; +-const char * const mi_lttng_loglevel_str_jul_finest; +-const char * const mi_lttng_loglevel_str_jul_info; +-const char * const mi_lttng_loglevel_str_jul_off; +-const char * const mi_lttng_loglevel_str_jul_severe; +-const char * const mi_lttng_loglevel_str_jul_warning; ++extern const char * const mi_lttng_loglevel_str_jul_all; ++extern const char * const mi_lttng_loglevel_str_jul_config; ++extern const char * const mi_lttng_loglevel_str_jul_fine; ++extern const char * const mi_lttng_loglevel_str_jul_finer; ++extern const char * const mi_lttng_loglevel_str_jul_finest; ++extern const char * const mi_lttng_loglevel_str_jul_info; ++extern const char * const mi_lttng_loglevel_str_jul_off; ++extern const char * const mi_lttng_loglevel_str_jul_severe; ++extern const char * const mi_lttng_loglevel_str_jul_warning; + + /* String related to loglevel Log4j */ +-const char * const mi_lttng_loglevel_str_log4j_off; +-const char * const mi_lttng_loglevel_str_log4j_fatal; +-const char * const mi_lttng_loglevel_str_log4j_error; +-const char * const mi_lttng_loglevel_str_log4j_warn; +-const char * const mi_lttng_loglevel_str_log4j_info; +-const char * const mi_lttng_loglevel_str_log4j_debug; +-const char * const mi_lttng_loglevel_str_log4j_trace; +-const char * const mi_lttng_loglevel_str_log4j_all; ++extern const char * const mi_lttng_loglevel_str_log4j_off; ++extern const char * const mi_lttng_loglevel_str_log4j_fatal; ++extern const char * const mi_lttng_loglevel_str_log4j_error; ++extern const char * const mi_lttng_loglevel_str_log4j_warn; ++extern const char * const mi_lttng_loglevel_str_log4j_info; ++extern const char * const mi_lttng_loglevel_str_log4j_debug; ++extern const char * const mi_lttng_loglevel_str_log4j_trace; ++extern const char * const mi_lttng_loglevel_str_log4j_all; + + /* String related to loglevel type */ +-const char * const mi_lttng_loglevel_type_all; +-const char * const mi_lttng_loglevel_type_range; +-const char * const mi_lttng_loglevel_type_single; +-const char * const mi_lttng_loglevel_type_unknown; ++extern const char * const mi_lttng_loglevel_type_all; ++extern const char * const mi_lttng_loglevel_type_range; ++extern const char * const mi_lttng_loglevel_type_single; ++extern const char * const mi_lttng_loglevel_type_unknown; + + /* Sting related to lttng_calibrate */ +-const char * const mi_lttng_element_calibrate; +-const char * const mi_lttng_element_calibrate_function; ++extern const char * const mi_lttng_element_calibrate; ++extern const char * const mi_lttng_element_calibrate_function; + + /* String related to a lttng_snapshot */ +-const char * const mi_lttng_element_snapshot_ctrl_url; +-const char * const mi_lttng_element_snapshot_data_url; +-const char * const mi_lttng_element_snapshot_max_size; +-const char * const mi_lttng_element_snapshot_n_ptr; +-const char * const mi_lttng_element_snapshot_session_name; +-const char * const mi_lttng_element_snapshots; ++extern const char * const mi_lttng_element_snapshot_ctrl_url; ++extern const char * const mi_lttng_element_snapshot_data_url; ++extern const char * const mi_lttng_element_snapshot_max_size; ++extern const char * const mi_lttng_element_snapshot_n_ptr; ++extern const char * const mi_lttng_element_snapshot_session_name; ++extern const char * const mi_lttng_element_snapshots; + + /* Utility string function */ + const char *mi_lttng_loglevel_string(int value, enum lttng_domain_type domain); +-- +2.6.3 + diff --git a/package/lua-periphery/0002-Fix-build-on-SPARC.patch b/package/lua-periphery/0002-Fix-build-on-SPARC.patch new file mode 100644 index 0000000000..ce461ddca2 --- /dev/null +++ b/package/lua-periphery/0002-Fix-build-on-SPARC.patch @@ -0,0 +1,60 @@ +[PATCH] Fix build on SPARC + +On SPARC, the definitions of B2500000, B3000000, B3500000 and B4000000 +are not necessarily available, so use those values only if defined in +the kernel headers. + +It fixes SPARC build failures such as: + +src/serial.c: In function '_serial_baudrate_to_bits': +src/serial.c:73:30: error: 'B2500000' undeclared (first use in this function) + case 2500000: return B2500000; + ^ +src/serial.c:73:30: note: each undeclared identifier is reported only once for each function it appears in +src/serial.c:74:30: error: 'B3000000' undeclared (first use in this function) + case 3000000: return B3000000; + ^ +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +Index: b/lua-periphery/c-periphery/src/serial.c +=================================================================== +--- a/lua-periphery/c-periphery/src/serial.c ++++ b/lua-periphery/c-periphery/src/serial.c +@@ -70,10 +70,18 @@ + case 1152000: return B1152000; + case 1500000: return B1500000; + case 2000000: return B2000000; ++#ifdef B2500000 + case 2500000: return B2500000; ++#endif ++#ifdef B3000000 + case 3000000: return B3000000; ++#endif ++#ifdef B3500000 + case 3500000: return B3500000; ++#endif ++#ifdef B4000000 + case 4000000: return B4000000; ++#endif + default: return -1; + } + } +@@ -107,10 +115,18 @@ + case B1152000: return 1152000; + case B1500000: return 1500000; + case B2000000: return 2000000; ++#ifdef B2500000 + case B2500000: return 2500000; ++#endif ++#ifdef B3000000 + case B3000000: return 3000000; ++#endif ++#ifdef B3500000 + case B3500000: return 3500000; ++#endif ++#ifdef B4000000 + case B4000000: return 4000000; ++#endif + default: return -1; + } + } diff --git a/package/macchanger/macchanger.mk b/package/macchanger/macchanger.mk index 5ded0b8097..a7ea943ab1 100644 --- a/package/macchanger/macchanger.mk +++ b/package/macchanger/macchanger.mk @@ -7,5 +7,6 @@ MACCHANGER_VERSION = 1.6.0 MACCHANGER_SITE = $(BR2_GNU_MIRROR)/macchanger MACCHANGER_LICENSE = GPLv2+ +MACCHANGER_LICENSE_FILES = src/main.c $(eval $(autotools-package)) diff --git a/package/minidlna/Config.in b/package/minidlna/Config.in index 0eef7512a1..0a475f7ec8 100644 --- a/package/minidlna/Config.in +++ b/package/minidlna/Config.in @@ -12,9 +12,7 @@ config BR2_PACKAGE_MINIDLNA select BR2_PACKAGE_LIBJPEG select BR2_PACKAGE_SQLITE select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE - # Triggers the _gp link issue in nios2 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_nios2 # ffmpeg help MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully compliant with DLNA/UPnP-AV clients. @@ -23,4 +21,5 @@ config BR2_PACKAGE_MINIDLNA comment "minidlna needs a toolchain w/ threads, wchar" depends on BR2_USE_MMU + depends on !BR2_nios2 depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) diff --git a/package/minidlna/S60minidlnad b/package/minidlna/S60minidlnad index 92b4c953e6..9b158afd98 100644 --- a/package/minidlna/S60minidlnad +++ b/package/minidlna/S60minidlnad @@ -7,7 +7,7 @@ start() { printf "Starting minidlna: " umask 077 start-stop-daemon -S -q -p /var/run/minidlna/minidlna.pid \ - --exec /usr/sbin/minidlnad + --exec /usr/sbin/minidlnad -- "$@" [ $? = 0 ] && echo "OK" || echo "FAIL" } stop() { @@ -19,7 +19,7 @@ restart() { stop # Sleep needed for minidlna to restart properly sleep 1 - start + start "$@" } case "$1" in @@ -32,8 +32,11 @@ case "$1" in restart|reload) restart ;; + force-reload) + restart -R + ;; *) - echo "Usage: $0 {start|stop|restart}" + echo "Usage: $0 {start|stop|restart|force-reload}" exit 1 esac diff --git a/package/minidlna/minidlna.mk b/package/minidlna/minidlna.mk index e9df92b20e..e00fa09fb7 100644 --- a/package/minidlna/minidlna.mk +++ b/package/minidlna/minidlna.mk @@ -17,7 +17,8 @@ MINIDLNA_DEPENDENCIES = \ ifeq ($(BR2_STATIC_LIBS),y) # the configure script / Makefile forgets to link with some of the dependent # libraries breaking static linking, so help it along -MINIDLNA_STATIC_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libavcodec libexif libvorbis` +MINIDLNA_PKGCONFIG_DEPS = libavcodec libexif vorbis sqlite3 +MINIDLNA_STATIC_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs $(MINIDLNA_PKGCONFIG_DEPS)` MINIDLNA_STATIC_LIBS += $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),-lintl) MINIDLNA_CONF_ENV += LIBS="$(MINIDLNA_STATIC_LIBS)" else diff --git a/package/mongrel2/0004-Rename-symbol-to-prevent-conflict.patch b/package/mongrel2/0004-Rename-symbol-to-prevent-conflict.patch new file mode 100644 index 0000000000..83698164fd --- /dev/null +++ b/package/mongrel2/0004-Rename-symbol-to-prevent-conflict.patch @@ -0,0 +1,45 @@ +From 8d0bc79f38913b1a55e7d151b32bbc9462c24b47 Mon Sep 17 00:00:00 2001 +From: Jason Miller <jason@jasom.org> +Date: Fri, 14 Aug 2015 19:03:09 -0700 +Subject: [PATCH] Rename symbol to prevent conflict + +One of the standard headers defines max_align_t on some versions of linux. + +[Backported from upstream commit +https://github.com/mongrel2/mongrel2/commit/563bac8c59b9b32205164d237cf1ec0cb48d189f.] + +Signed-off-by: Rodrigo Rebello <rprebello@gmail.com> +--- + src/mem/align.h | 2 +- + src/mem/halloc.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/mem/align.h b/src/mem/align.h +index 4c6e183..03a4999 100644 +--- a/src/mem/align.h ++++ b/src/mem/align.h +@@ -30,7 +30,7 @@ union max_align + void (*q)(void); + }; + +-typedef union max_align max_align_t; ++typedef union max_align h_max_align_t; + + #endif + +diff --git a/src/mem/halloc.c b/src/mem/halloc.c +index b097d1f..40d0c09 100644 +--- a/src/mem/halloc.c ++++ b/src/mem/halloc.c +@@ -34,7 +34,7 @@ typedef struct hblock + #endif + hlist_item_t siblings; /* 2 pointers */ + hlist_head_t children; /* 1 pointer */ +- max_align_t data[1]; /* not allocated, see below */ ++ h_max_align_t data[1]; /* not allocated, see below */ + + } hblock_t; + +-- +2.1.4 + diff --git a/package/mongrel2/Config.in b/package/mongrel2/Config.in index 1afba77151..1c7b4950b7 100644 --- a/package/mongrel2/Config.in +++ b/package/mongrel2/Config.in @@ -1,9 +1,10 @@ -comment "mongrel2 needs a toolchain w/ C++, threads, wchar" +comment "mongrel2 needs a toolchain w/ C++, threads, wchar, dynamic library" depends on BR2_UCLIBC_VERSION_SNAPSHOT || \ BR2_TOOLCHAIN_USES_GLIBC || \ BR2_arm depends on !BR2_INSTALL_LIBSTDCPP || \ - !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR + !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ + BR2_STATIC_LIBS config BR2_PACKAGE_MONGREL2 bool "mongrel2" @@ -12,6 +13,7 @@ config BR2_PACKAGE_MONGREL2 depends on BR2_INSTALL_LIBSTDCPP # zeromq depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq depends on BR2_USE_WCHAR # zeromq -> util-linux + depends on !BR2_STATIC_LIBS # uses dlopen() # {get,make,swap}context functions present in # {e,}glibc and in uClibc's master branch. Source has arm workaround depends on BR2_UCLIBC_VERSION_SNAPSHOT || \ diff --git a/package/mongrel2/mongrel2.mk b/package/mongrel2/mongrel2.mk index 0be48327ac..d0640c9680 100644 --- a/package/mongrel2/mongrel2.mk +++ b/package/mongrel2/mongrel2.mk @@ -13,6 +13,21 @@ MONGREL2_LICENSE = BSD-3c MONGREL2_LICENSE_FILES = LICENSE MONGREL2_DEPENDENCIES = sqlite zeromq +define MONGREL2_POLARSSL_DISABLE_ASM + $(SED) '/^#define POLARSSL_HAVE_ASM/d' $(@D)/src/polarssl/include/polarssl/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) +MONGREL2_POST_CONFIGURE_HOOKS += MONGREL2_POLARSSL_DISABLE_ASM +else ifeq ($(BR2_microblaze),y) +MONGREL2_POST_CONFIGURE_HOOKS += MONGREL2_POLARSSL_DISABLE_ASM +else ifeq ($(BR2_mips_32r6)$(BR2_mips_64r6),y) +MONGREL2_POST_CONFIGURE_HOOKS += MONGREL2_POLARSSL_DISABLE_ASM +endif + define MONGREL2_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE1) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ PREFIX=/usr all diff --git a/package/mpd/0003-fix-static-build-with-alsa.patch b/package/mpd/0003-fix-static-build-with-alsa.patch new file mode 100644 index 0000000000..4ba04495f6 --- /dev/null +++ b/package/mpd/0003-fix-static-build-with-alsa.patch @@ -0,0 +1,32 @@ +From bba7b8e5fed79a7fecacf5468ade35a3ae0a0f8e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks> +Date: Sat, 21 Nov 2015 23:51:43 +0100 +Subject: [PATCH 1/1] Makefile.am: fix static build with alsa +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add ALSA_LIBS to MIXER_LIBS, otherwise building mpd in a static context fails +with lot of undefined references to alsa-lib (libasound) required by +src/mixer/plugins/AlsaMixerPlugin.cxx. + +Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> +--- + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.am b/Makefile.am +index 89819de..307fcba 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1219,6 +1219,7 @@ liboutput_plugins_a_SOURCES = \ + + MIXER_LIBS = \ + libmixer_plugins.a \ ++ $(ALSA_LIBS) \ + $(PULSE_LIBS) + + MIXER_API_SRC = \ +-- +2.6.2 + diff --git a/package/mpd/Config.in b/package/mpd/Config.in index 3bfeb3e9f5..0b3bb72494 100644 --- a/package/mpd/Config.in +++ b/package/mpd/Config.in @@ -77,6 +77,7 @@ config BR2_PACKAGE_MPD_FAAD2 config BR2_PACKAGE_MPD_FFMPEG bool "ffmpeg" select BR2_PACKAGE_FFMPEG + depends on !BR2_nios2 # ffmpeg help Enable ffmpeg input support. Select this if you want to play back files supported by diff --git a/package/mpg123/mpg123.mk b/package/mpg123/mpg123.mk index efd510df0c..f6bb29717c 100644 --- a/package/mpg123/mpg123.mk +++ b/package/mpg123/mpg123.mk @@ -67,6 +67,9 @@ 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)) diff --git a/package/mplayer/mplayer.mk b/package/mplayer/mplayer.mk index 2f588643d5..ad2d9dd613 100644 --- a/package/mplayer/mplayer.mk +++ b/package/mplayer/mplayer.mk @@ -117,9 +117,10 @@ endif # https://github.com/pld-linux/mplayer/blob/master/mplayer-libcdio.patch MPLAYER_CONF_OPTS += --disable-libcdio +# We intentionally don't pass --enable-dvdread, to let the +# autodetection find which library to link with. ifeq ($(BR2_PACKAGE_LIBDVDREAD),y) MPLAYER_CONF_OPTS += \ - --enable-dvdread \ --with-dvdread-config=$(STAGING_DIR)/usr/bin/dvdread-config MPLAYER_DEPENDENCIES += libdvdread endif @@ -175,9 +176,10 @@ MPLAYER_DEPENDENCIES += tremor MPLAYER_CONF_OPTS += --enable-tremor endif +# We intentionally don't pass --enable-libvorbis, to let the +# autodetection find which library to link with. ifeq ($(BR2_PACKAGE_LIBVORBIS),y) MPLAYER_DEPENDENCIES += libvorbis -MPLAYER_CONF_OPTS += --enable-libvorbis endif ifeq ($(BR2_PACKAGE_LIBMAD),y) @@ -259,6 +261,13 @@ ifeq ($(BR2_i386),y) MPLAYER_CFLAGS += -fomit-frame-pointer endif +ifeq ($(BR2_X86_CPU_HAS_MMX),y) +MPLAYER_CONF_OPTS += --yasm=$(HOST_DIR)/usr/bin/yasm +MPLAYER_DEPENDENCIES += host-yasm +else +MPLAYER_CONF_OPTS += --yasm='' +endif + define MPLAYER_CONFIGURE_CMDS (cd $(@D); rm -rf config.cache; \ $(TARGET_CONFIGURE_OPTS) \ @@ -273,7 +282,6 @@ define MPLAYER_CONFIGURE_CMDS --charset=UTF-8 \ --extra-cflags="$(MPLAYER_CFLAGS)" \ --extra-ldflags="$(MPLAYER_LDFLAGS)" \ - --yasm='' \ --enable-fbdev \ $(MPLAYER_CONF_OPTS) \ --enable-cross-compile \ diff --git a/package/mysql/mysql.mk b/package/mysql/mysql.mk index c6d9f3a356..1aad831566 100644 --- a/package/mysql/mysql.mk +++ b/package/mysql/mysql.mk @@ -33,6 +33,29 @@ MYSQL_CONF_OPTS = \ --enable-thread-safe-client \ --disable-mysql-maintainer-mode +# host-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_MYSQL_DEPENDENCIES = host-zlib host-ncurses + +HOST_MYSQL_CONF_OPTS = \ + --with-embedded-server \ + --disable-mysql-maintainer-mode + +define HOST_MYSQL_BUILD_CMDS + $(MAKE) -C $(@D)/include my_config.h + $(MAKE) -C $(@D)/mysys libmysys.a + $(MAKE) -C $(@D)/strings libmystrings.a + $(MAKE) -C $(@D)/vio libvio.a + $(MAKE) -C $(@D)/dbug libdbug.a + $(MAKE) -C $(@D)/regex libregex.a + $(MAKE) -C $(@D)/sql gen_lex_hash +endef + +define HOST_MYSQL_INSTALL_CMDS + $(INSTALL) -m 0755 $(@D)/sql/gen_lex_hash $(HOST_DIR)/usr/bin/ +endef + ifeq ($(BR2_PACKAGE_OPENSSL),y) MYSQL_DEPENDENCIES += openssl endif @@ -43,11 +66,6 @@ endif ifeq ($(BR2_PACKAGE_MYSQL_SERVER),y) MYSQL_DEPENDENCIES += host-mysql host-bison -HOST_MYSQL_DEPENDENCIES = host-zlib host-ncurses - -HOST_MYSQL_CONF_OPTS = \ - --with-embedded-server \ - --disable-mysql-maintainer-mode MYSQL_CONF_OPTS += \ --localstatedir=/var/mysql \ @@ -74,20 +92,6 @@ else MYSQL_CONF_OPTS += --without-debug endif -define HOST_MYSQL_BUILD_CMDS - $(MAKE) -C $(@D)/include my_config.h - $(MAKE) -C $(@D)/mysys libmysys.a - $(MAKE) -C $(@D)/strings libmystrings.a - $(MAKE) -C $(@D)/vio libvio.a - $(MAKE) -C $(@D)/dbug libdbug.a - $(MAKE) -C $(@D)/regex libregex.a - $(MAKE) -C $(@D)/sql gen_lex_hash -endef - -define HOST_MYSQL_INSTALL_CMDS - $(INSTALL) -m 0755 $(@D)/sql/gen_lex_hash $(HOST_DIR)/usr/bin/ -endef - define MYSQL_USERS mysql -1 nogroup -1 * /var/mysql - - MySQL daemon endef diff --git a/package/opencv/Config.in b/package/opencv/Config.in index aca5174079..679ce6fb95 100644 --- a/package/opencv/Config.in +++ b/package/opencv/Config.in @@ -132,11 +132,20 @@ config BR2_PACKAGE_OPENCV_WITH_FFMPEG select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_SWSCALE + depends on !BR2_nios2 # ffmpeg help Use ffmpeg from the target system. +choice + prompt "gstreamer support" + help + OpenCV prefers gstreamer-1 over gstreamer-0.10. + +config BR2_PACKAGE_OPENCV_WITHOUT_GSTREAMER + bool "none" + config BR2_PACKAGE_OPENCV_WITH_GSTREAMER - bool "gstreamer support" + bool "gstreamer-0.10" depends on BR2_USE_MMU # gstreamer -> libglib2 depends on BR2_USE_WCHAR # gstreamer -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer -> libglib2 @@ -144,10 +153,25 @@ config BR2_PACKAGE_OPENCV_WITH_GSTREAMER select BR2_PACKAGE_GST_PLUGINS_BASE select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP -comment "gstreamer support needs a toolchain w/ wchar, threads" +comment "gstreamer-0.10 support needs a toolchain w/ wchar, threads" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_OPENCV_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 + +comment "gstreamer-1.x support needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS +endchoice + config BR2_PACKAGE_OPENCV_WITH_GTK bool "gtk support" depends on BR2_PACKAGE_XORG7 diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk index ee1122064f..21c0268a00 100644 --- a/package/opencv/opencv.mk +++ b/package/opencv/opencv.mk @@ -171,9 +171,16 @@ OPENCV_CONF_OPTS += -DWITH_FFMPEG=OFF endif ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER),y) -OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON +OPENCV_CONF_OPTS += -DWITH_GSTREAMER_0_10=ON OPENCV_DEPENDENCIES += gstreamer gst-plugins-base else +OPENCV_CONF_OPTS += -DWITH_GSTREAMER_0_10=OFF +endif + +ifeq ($(BR2_PACKAGE_OPENCV_WITH_GSTREAMER1),y) +OPENCV_CONF_OPTS += -DWITH_GSTREAMER=ON +OPENCV_DEPENDENCIES += gstreamer1 gst1-plugins-base +else OPENCV_CONF_OPTS += -DWITH_GSTREAMER=OFF endif diff --git a/package/opencv3/Config.in b/package/opencv3/Config.in index 2f51580e16..873680515b 100644 --- a/package/opencv3/Config.in +++ b/package/opencv3/Config.in @@ -244,6 +244,7 @@ config BR2_PACKAGE_OPENCV3_WITH_FFMPEG select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_SWSCALE + depends on !BR2_nios2 # ffmpeg help Use ffmpeg from the target system. diff --git a/package/openntpd/openntpd.mk b/package/openntpd/openntpd.mk index d51f902f03..40bb1bf7e0 100644 --- a/package/openntpd/openntpd.mk +++ b/package/openntpd/openntpd.mk @@ -9,6 +9,10 @@ OPENNTPD_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenNTPD OPENNTPD_LICENSE = MIT-like, BSD-2c, BSD-3c OPENNTPD_LICENSE_FILES = COPYING +# 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 diff --git a/package/openssl/openssl.hash b/package/openssl/openssl.hash index 9eaa363581..355be79067 100644 --- a/package/openssl/openssl.hash +++ b/package/openssl/openssl.hash @@ -1,4 +1,2 @@ # From https://www.openssl.org/source/openssl-1.0.2d.tar.gz.sha256 sha256 671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8 openssl-1.0.2d.tar.gz -# Locally computed -sha256 deaf6f3af41874ecc6d63841ea14b8e6c71cea81d4a511a754bc90c9a993147f openssl-1.0.2d-parallel-build.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d diff --git a/package/openssl/openssl.mk b/package/openssl/openssl.mk index cad8d0c3ef..da492ffd09 100644 --- a/package/openssl/openssl.mk +++ b/package/openssl/openssl.mk @@ -13,8 +13,6 @@ OPENSSL_DEPENDENCIES = zlib HOST_OPENSSL_DEPENDENCIES = host-zlib OPENSSL_TARGET_ARCH = generic32 OPENSSL_CFLAGS = $(TARGET_CFLAGS) -OPENSSL_PATCH = \ - https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2d-parallel-build.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d ifeq ($(BR2_USE_MMU),) OPENSSL_CFLAGS += -DHAVE_FORK=0 @@ -101,23 +99,23 @@ OPENSSL_POST_CONFIGURE_HOOKS += OPENSSL_FIXUP_STATIC_MAKEFILE endif define HOST_OPENSSL_BUILD_CMDS - $(MAKE) -C $(@D) + $(MAKE1) -C $(@D) endef define OPENSSL_BUILD_CMDS - $(MAKE) -C $(@D) + $(MAKE1) -C $(@D) endef define OPENSSL_INSTALL_STAGING_CMDS - $(MAKE) -C $(@D) INSTALL_PREFIX=$(STAGING_DIR) install + $(MAKE1) -C $(@D) INSTALL_PREFIX=$(STAGING_DIR) install endef define HOST_OPENSSL_INSTALL_CMDS - $(MAKE) -C $(@D) install + $(MAKE1) -C $(@D) install endef define OPENSSL_INSTALL_TARGET_CMDS - $(MAKE) -C $(@D) INSTALL_PREFIX=$(TARGET_DIR) install + $(MAKE1) -C $(@D) INSTALL_PREFIX=$(TARGET_DIR) install rm -rf $(TARGET_DIR)/usr/lib/ssl rm -f $(TARGET_DIR)/usr/bin/c_rehash endef diff --git a/package/oprofile/oprofile.mk b/package/oprofile/oprofile.mk index ba366403d2..c73086e0c7 100644 --- a/package/oprofile/oprofile.mk +++ b/package/oprofile/oprofile.mk @@ -47,6 +47,12 @@ endif # a static build. We have to do the call to pkgconfig manually... OPROFILE_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs popt`" +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 @@ -57,7 +63,7 @@ define OPROFILE_INSTALL_TARGET_CMDS fi $(INSTALL) -m 644 $(@D)/libregex/stl.pat $(TARGET_DIR)/usr/share/oprofile $(INSTALL) -m 755 $(addprefix $(@D)/, $(OPROFILE_BINARIES)) $(TARGET_DIR)/usr/bin - $(INSTALL) -m 755 $(@D)/libopagent/.libs/*.so* $(TARGET_DIR)/usr/lib/oprofile + $(OPROFILE_INSTALL_SHARED_LIBRARY) endef $(eval $(autotools-package)) diff --git a/package/pcre/pcre.hash b/package/pcre/pcre.hash index 0b2b1c448d..5b580a74c9 100644 --- a/package/pcre/pcre.hash +++ b/package/pcre/pcre.hash @@ -1,3 +1,2 @@ -# From http://sourceforge.net/projects/pcre/files/pcre/8.37/ -md5 ed91be292cb01d21bc7e526816c26981 pcre-8.37.tar.bz2 -sha1 4c629b3f582366fae4e8912f0d9fa3140347d6e7 pcre-8.37.tar.bz2 +# Locally calculated after checking pgp signature +sha256 b9e02d36e23024d6c02a2e5b25204b3a4fa6ade43e0a5f869f254f49535079df pcre-8.38.tar.bz2 diff --git a/package/pcre/pcre.mk b/package/pcre/pcre.mk index fd339edeec..06652c70e4 100644 --- a/package/pcre/pcre.mk +++ b/package/pcre/pcre.mk @@ -4,7 +4,7 @@ # ################################################################################ -PCRE_VERSION = 8.37 +PCRE_VERSION = 8.38 PCRE_SITE = ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre PCRE_SOURCE = pcre-$(PCRE_VERSION).tar.bz2 PCRE_LICENSE = BSD-3c diff --git a/package/perl-file-util/perl-file-util.mk b/package/perl-file-util/perl-file-util.mk index 2712aa4f72..7026515e66 100644 --- a/package/perl-file-util/perl-file-util.mk +++ b/package/perl-file-util/perl-file-util.mk @@ -10,6 +10,7 @@ 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 GPLv1+ PERL_FILE_UTIL_LICENSE_FILES = COPYING LICENSE +HOST_PERL_FILE_UTIL_DEPENDENCIES = host-perl-module-build $(eval $(perl-package)) $(eval $(host-perl-package)) diff --git a/package/php-ssh2/Config.in b/package/php-ssh2/Config.in index b457900740..bc31e1ddbd 100644 --- a/package/php-ssh2/Config.in +++ b/package/php-ssh2/Config.in @@ -2,6 +2,9 @@ config BR2_PACKAGE_PHP_SSH2 bool "php-ssh2" depends on BR2_PACKAGE_PHP select BR2_PACKAGE_LIBSSH2 + # Triggers the _gp link issue (libssh2) + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 help PHP bindings for the libssh2 library. diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk index a5d0e57130..357a5c7b9e 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -87,6 +87,14 @@ define step_pkg_size endef GLOBAL_INSTRUMENTATION_HOOKS += step_pkg_size +# 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))) +endef +GLOBAL_INSTRUMENTATION_HOOKS += check_host_rpath + # User-supplied script ifneq ($(BR2_INSTRUMENTATION_SCRIPTS),) define step_user @@ -795,7 +803,7 @@ else ifeq ($$($(2)_REDISTRIBUTE),YES) ifneq ($$($(2)_ACTUAL_SOURCE_TARBALL),$$($(2)_SOURCE)) - $(call DOWNLOAD,$$($(2)_ACTUAL_SOURCE_SITE)/$$($(2)_ACTUAL_SOURCE_TARBALL)) + $$(call DOWNLOAD,$$($(2)_ACTUAL_SOURCE_SITE)/$$($(2)_ACTUAL_SOURCE_TARBALL)) endif # Copy the source tarball (just hardlink if possible) @cp -l $$(DL_DIR)/$$($(2)_ACTUAL_SOURCE_TARBALL) $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4))) 2>/dev/null || \ diff --git a/package/polarssl/polarssl.hash b/package/polarssl/polarssl.hash index c203392bf5..71f7c290c4 100644 --- a/package/polarssl/polarssl.hash +++ b/package/polarssl/polarssl.hash @@ -1,2 +1,2 @@ -# From https://tls.mbed.org/tech-updates/releases/mbedtls-2.1.2-and-1.3.14-and-polarssl-1.2.17-released -sha256 9301d4ebec3eb45bc9f28f2d79bfdb0c3dd351c386aa6cc66643e1b2be274d52 polarssl-1.2.17-gpl.tgz +# From https://tls.mbed.org/tech-updates/releases/mbedtls-2.2.0-2.1.3-1.3.15-and-polarssl.1.2.18-released +sha256 63c4ed4d9f6a241088e2287958f265403f874248d6a98b98f27cd3aa2f90f030 polarssl-1.2.18-gpl.tgz diff --git a/package/polarssl/polarssl.mk b/package/polarssl/polarssl.mk index aaa6759652..d988bf10c2 100644 --- a/package/polarssl/polarssl.mk +++ b/package/polarssl/polarssl.mk @@ -5,7 +5,7 @@ ################################################################################ POLARSSL_SITE = https://tls.mbed.org/code/releases -POLARSSL_VERSION = 1.2.17 +POLARSSL_VERSION = 1.2.18 POLARSSL_SOURCE = polarssl-$(POLARSSL_VERSION)-gpl.tgz POLARSSL_CONF_OPTS = \ -DENABLE_PROGRAMS=$(if $(BR2_PACKAGE_POLARSSL_PROGRAMS),ON,OFF) @@ -20,10 +20,13 @@ 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) POLARSSL_POST_CONFIGURE_HOOKS += POLARSSL_DISABLE_ASM else ifeq ($(BR2_microblaze),y) POLARSSL_POST_CONFIGURE_HOOKS += POLARSSL_DISABLE_ASM +else ifeq ($(BR2_mips_32r6)$(BR2_mips_64r6),y) +POLARSSL_POST_CONFIGURE_HOOKS += POLARSSL_DISABLE_ASM endif $(eval $(cmake-package)) diff --git a/package/pulseaudio/0001-pulsecore-packet-avoid-redefinition-of-pa_packet-str.patch b/package/pulseaudio/0001-pulsecore-packet-avoid-redefinition-of-pa_packet-str.patch new file mode 100644 index 0000000000..10741a1cf8 --- /dev/null +++ b/package/pulseaudio/0001-pulsecore-packet-avoid-redefinition-of-pa_packet-str.patch @@ -0,0 +1,64 @@ +From 0c9b79cd8f6b8a88d7e60741607173af5d320203 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Tue, 17 Nov 2015 12:00:53 +0100 +Subject: [PATCH] pulsecore/packet: avoid redefinition of pa_packet structure + +packet.h defines: + + typedef struct pa_packet pa_packet; + +and packet.c defines: + + typedef struct pa_packet { + ... + } pa_packet; + +With old versions of gcc (such as gcc 4.5) this causes a redefinition +error at compile time: + +pulsecore/packet.c:43:3: error: redefinition of typedef 'pa_packet' +pulsecore/packet.h:26:26: note: previous declaration of 'pa_packet' was here + +In order to fix this, this commit changes the definition in packet.c +to just: + + struct pa_packet { + ... + }; + +This way, the contents of the structure remain opaque to users of +pa_packet outside packet.c, and the 'pa_packet' type remains usable. + +Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91334 + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Submitted-upstream-at: http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-November/024785.html +--- + src/pulsecore/packet.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/pulsecore/packet.c b/src/pulsecore/packet.c +index e275d23..2a61d58 100644 +--- a/src/pulsecore/packet.c ++++ b/src/pulsecore/packet.c +@@ -32,7 +32,7 @@ + + #define MAX_APPENDED_SIZE 128 + +-typedef struct pa_packet { ++struct pa_packet { + PA_REFCNT_DECLARE; + enum { PA_PACKET_APPENDED, PA_PACKET_DYNAMIC } type; + size_t length; +@@ -40,7 +40,7 @@ typedef struct pa_packet { + union { + uint8_t appended[MAX_APPENDED_SIZE]; + } per_type; +-} pa_packet; ++}; + + PA_STATIC_FLIST_DECLARE(packets, 0, pa_xfree); + +-- +2.6.3 + diff --git a/package/python-protobuf/0001-disable-unneeded-build-dependencies.patch b/package/python-protobuf/0001-disable-unneeded-build-dependencies.patch new file mode 100644 index 0000000000..3f0eabd23a --- /dev/null +++ b/package/python-protobuf/0001-disable-unneeded-build-dependencies.patch @@ -0,0 +1,37 @@ +From 7e7db7225e227905acabfa2149152ece21c93e70 Mon Sep 17 00:00:00 2001 +From: Steven Noonan <steven@uplinklabs.net> +Date: Sun, 8 Nov 2015 09:03:00 -0800 +Subject: [PATCH] python-protobuf: don't require google-apputils + +This dependency is totally superfluous for successfully building/running +python-protobuf. It's only "required" at build time and is not staged into the +install directory, but it isn't even really required for a successful build. + +Signed-off-by: Steven Noonan <steven@uplinklabs.net> +--- + python/setup.py | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/python/setup.py b/python/setup.py +index 2450a77..db6f497 100755 +--- a/python/setup.py ++++ b/python/setup.py +@@ -160,7 +160,6 @@ if __name__ == '__main__': + packages = [ 'google' ], + namespace_packages = [ 'google' ], + test_suite = 'setup.MakeTestSuite', +- google_test_dir = "google/protobuf/internal", + # Must list modules explicitly so that we don't install tests. + py_modules = [ + 'google.protobuf.internal.api_implementation', +@@ -189,7 +188,6 @@ if __name__ == '__main__': + 'google.protobuf.text_format'], + cmdclass = { 'clean': clean, 'build_py': build_py }, + install_requires = ['setuptools'], +- setup_requires = ['google-apputils'], + ext_modules = ext_module_list, + url = 'https://developers.google.com/protocol-buffers/', + maintainer = maintainer_email, +-- +2.6.2 + diff --git a/package/qemu/0001-configure-use-appropriate-code-fragment-for-fstack-p.patch b/package/qemu/0001-configure-use-appropriate-code-fragment-for-fstack-p.patch new file mode 100644 index 0000000000..9ebe334ffe --- /dev/null +++ b/package/qemu/0001-configure-use-appropriate-code-fragment-for-fstack-p.patch @@ -0,0 +1,58 @@ +From 7b93e98143c376ed09bfd30658b8641d4a36e77e Mon Sep 17 00:00:00 2001 +From: Rodrigo Rebello <rprebello@gmail.com> +Date: Thu, 12 Nov 2015 12:04:28 -0200 +Subject: [PATCH] configure: use appropriate code fragment for + -fstack-protector checks +Cc: qemu-trivial@nongnu.org + +The check for stack-protector support consisted in compiling and linking +the test program below (output by function write_c_skeleton()) with the +compiler flag -fstack-protector-strong first and then with +-fstack-protector-all if the first one failed to work: + + int main(void) { return 0; } + +This caused false positives when using certain toolchains in which the +compiler accepts -fstack-protector-strong but no support is provided by +the C library, since in this stack-protector variant the compiler emits +canary code only for functions that meet specific conditions (local +arrays, memory references to local variables, etc.) and the code +fragment under test included none of them (hence no stack protection +code generated, no link failure). + +This fix modifies the test program used for -fstack-protector checks to +meet conditions which cause the compiler to generate canary code in all +variants. + +Upstream status: sent +https://patchwork.ozlabs.org/patch/543357/ + +Signed-off-by: Rodrigo Rebello <rprebello@gmail.com> +--- + configure | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/configure b/configure +index cd219d8..27d7b3c 100755 +--- a/configure ++++ b/configure +@@ -1471,6 +1471,16 @@ for flag in $gcc_flags; do + done + + if test "$stack_protector" != "no"; then ++ cat > $TMPC << EOF ++int main(int argc, char *argv[]) ++{ ++ char arr[64], *p = arr, *c = argv[0]; ++ while (*c) { ++ *p++ = *c++; ++ } ++ return 0; ++} ++EOF + gcc_flags="-fstack-protector-strong -fstack-protector-all" + sp_on=0 + for flag in $gcc_flags; do +-- +2.1.4 + diff --git a/package/qt5/qt5base/0002-mkspecs-files.patch b/package/qt5/qt5base/0002-mkspecs-files.patch deleted file mode 100644 index adeabdfbd8..0000000000 --- a/package/qt5/qt5base/0002-mkspecs-files.patch +++ /dev/null @@ -1,41 +0,0 @@ -Add a Buildroot 'device' to ease cross-compilation - -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. - -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -[Arnout: remove ccache support] -Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> - -Index: b/mkspecs/devices/linux-buildroot-g++/qmake.conf -=================================================================== ---- /dev/null -+++ b/mkspecs/devices/linux-buildroot-g++/qmake.conf -@@ -0,0 +1,16 @@ -+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} -+QMAKE_CXXFLAGS_RELEASE += -O3 -+CONFIG += nostrip -+ -+QMAKE_LIBS += -lrt -lpthread -ldl -+ -+include(../common/linux_device_post.conf) -+load(qt_config) -Index: b/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h -=================================================================== ---- /dev/null -+++ b/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h -@@ -0,0 +1 @@ -+#include "../../linux-g++/qplatformdefs.h" diff --git a/package/qt5/qt5base/0009-fix-eglfs-for-sunxi-mali.patch b/package/qt5/qt5base/0009-fix-eglfs-for-sunxi-mali.patch new file mode 100644 index 0000000000..a578af3921 --- /dev/null +++ b/package/qt5/qt5base/0009-fix-eglfs-for-sunxi-mali.patch @@ -0,0 +1,109 @@ +Fix Qt5 configure script not autodetecting sunxi-mali drivers rendering +in eglfs_mali not being built. The patch also fix compatibility issues +regarding header files only included in the proprietary version. + +This will be fixed in Qt 5.6. + +ref: https://codereview.qt-project.org/#/c/125837/ + +Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se> + +diff --git a/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp b/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp +new file mode 100644 +index 0000000..1914d64 +--- /dev/null ++++ b/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp +@@ -0,0 +1,44 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Contact: http://www.qt.io/licensing/ ++** ++** This file is part of the config.tests of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL21$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and The Qt Company. For licensing terms ++** and conditions see http://www.qt.io/terms-conditions. For further ++** information use the contact form at http://www.qt.io/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 or version 3 as published by the Free ++** Software Foundation and appearing in the file LICENSE.LGPLv21 and ++** LICENSE.LGPLv3 included in the packaging of this file. Please review the ++** following information to ensure the GNU Lesser General Public License ++** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** As a special exception, The Qt Company gives you certain additional ++** rights. These rights are described in The Qt Company LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include <EGL/egl.h> ++#include <GLES2/gl2.h> ++ ++int main(int, char **) ++{ ++ EGLDisplay dpy = 0; ++ EGLContext ctx = 0; ++ mali_native_window *w = 0; ++ eglDestroyContext(dpy, ctx); ++ return 0; ++} +diff --git a/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.pro b/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.pro +new file mode 100644 +index 0000000..85bcf64 +--- /dev/null ++++ b/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.pro +@@ -0,0 +1,5 @@ ++SOURCES = eglfs-mali-2.cpp ++ ++CONFIG -= qt ++ ++LIBS += -lEGL -lGLESv2 +diff --git a/configure b/configure +index cea62fb..09781bc 100755 +--- a/configure ++++ b/configure +@@ -5624,7 +5624,8 @@ if [ "$CFG_EGLFS" != "no" ]; then + else + CFG_EGLFS_BRCM=no + fi +- if compileTest qpa/eglfs-mali "eglfs-mali"; then ++ if compileTest qpa/eglfs-mali "eglfs-mali" \ ++ || compileTest qpa/eglfs-mali-2 "eglfs-mali-2"; then + CFG_EGLFS_MALI=yes + else + CFG_EGLFS_MALI=no +diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp +index 455d780..43decdf 100644 +--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp ++++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp +@@ -32,7 +32,6 @@ + ****************************************************************************/ + + #include "qeglfsmaliintegration.h" +-#include <EGL/fbdev_window.h> + + #include <unistd.h> + #include <fcntl.h> +@@ -43,6 +42,11 @@ + + QT_BEGIN_NAMESPACE + ++struct fbdev_window { ++ unsigned short width; ++ unsigned short height; ++}; ++ + void QEglFSMaliIntegration::platformInit() + { + // Keep the non-overridden base class functions based on fb0 working. diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in index 603df45766..7cadcb2b89 100644 --- a/package/qt5/qt5base/Config.in +++ b/package/qt5/qt5base/Config.in @@ -178,11 +178,10 @@ config BR2_PACKAGE_QT5BASE_LINUXFB config BR2_PACKAGE_QT5BASE_DIRECTFB bool "directfb support" - select BR2_PACKAGE_DIRECTFB - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 # directfb + depends on BR2_PACKAGE_DIRECTFB -comment "directfb needs a toolchain w/ gcc >= 4.5" - depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 +comment "directfb backend if directb is enabled" + depends on !BR2_PACKAGE_DIRECTFB config BR2_PACKAGE_QT5BASE_XCB bool "X.org XCB support" diff --git a/package/qt5/qt5base/qmake.conf b/package/qt5/qt5base/qmake.conf new file mode 100644 index 0000000000..2152d3c7a4 --- /dev/null +++ b/package/qt5/qt5base/qmake.conf @@ -0,0 +1,24 @@ +# 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} +QMAKE_CXXFLAGS_RELEASE += -O3 +CONFIG += nostrip + +QMAKE_LIBS += -lrt -lpthread -ldl + +include(../common/linux_device_post.conf) +load(qt_config) diff --git a/package/qt5/qt5base/qplatformdefs.h b/package/qt5/qt5base/qplatformdefs.h new file mode 100644 index 0000000000..99e9a27923 --- /dev/null +++ b/package/qt5/qt5base/qplatformdefs.h @@ -0,0 +1 @@ +#include "../../linux-g++/qplatformdefs.h" diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk index 827a85e982..6eeb61973a 100644 --- a/package/qt5/qt5base/qt5base.mk +++ b/package/qt5/qt5base/qt5base.mk @@ -179,6 +179,10 @@ endef endif define QT5BASE_CONFIGURE_CMDS + $(INSTALL) -m 0644 -D $(QT5BASE_PKGDIR)/qmake.conf \ + $(@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) (cd $(@D); \ $(TARGET_MAKE_ENV) \ diff --git a/package/quagga/0002-configure-fix-static-linking-with-readline.patch b/package/quagga/0002-configure-fix-static-linking-with-readline.patch new file mode 100644 index 0000000000..243dfaf75d --- /dev/null +++ b/package/quagga/0002-configure-fix-static-linking-with-readline.patch @@ -0,0 +1,41 @@ +From 62ede7482da15d276b880f6d8540dce400dc50a7 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Thu, 26 Nov 2015 15:59:07 +0100 +Subject: [PATCH] configure: fix static linking with readline + +When static linking is used, the order of the libraries is important, +and the libraries using a symbol from another library should be listed +*before* the library providing that symbol (see +http://eli.thegreenplace.net/2013/07/09/library-order-in-static-linking) +for details. + +When vtysh is linked statically, the command line contains "-lcurses +-lreadline", which causes a build failure due to unresolved +symbols. This is because readline is using symbols from the curses +library: the order should be the opposite. + +This patch fixes that problem by putting the -lreadline at the +beginning of the LIBREADLINE variable calcualted by the configure +script. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 3003e62..290953d 100755 +--- a/configure.ac ++++ b/configure.ac +@@ -652,7 +652,7 @@ dnl [TODO] on Linux, and in [TODO] on Solaris. + )] + )] + ) +- AC_CHECK_LIB(readline, main, LIBREADLINE="$LIBREADLINE -lreadline",, ++ AC_CHECK_LIB(readline, main, LIBREADLINE="-lreadline $LIBREADLINE",, + "$LIBREADLINE") + if test $ac_cv_lib_readline_main = no; then + AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.]) +-- +2.6.3 + diff --git a/package/quagga/quagga.mk b/package/quagga/quagga.mk index ce1d34b264..c5dd2ba4e2 100644 --- a/package/quagga/quagga.mk +++ b/package/quagga/quagga.mk @@ -11,6 +11,8 @@ QUAGGA_DEPENDENCIES = host-gawk QUAGGA_LICENSE = GPLv2+ QUAGGA_LICENSE_FILES = COPYING QUAGGA_CONF_OPTS = --program-transform-name='' +# 0002-configure-fix-static-linking-with-readline.patch +QUAGGA_AUTORECONF = YES QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ZEBRA),--enable-zebra,--disable-zebra) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BABELD),--enable-babeld,--disable-babeld) diff --git a/package/ranger/Config.in b/package/ranger/Config.in index 3d77107652..ee0ffecd13 100644 --- a/package/ranger/Config.in +++ b/package/ranger/Config.in @@ -1,6 +1,7 @@ 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 @@ -14,3 +15,7 @@ config BR2_PACKAGE_RANGER 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 diff --git a/package/rpi-userland/0006-Fix-conflicting-type-qualifiers-errors-when-building.patch b/package/rpi-userland/0006-Fix-conflicting-type-qualifiers-errors-when-building.patch new file mode 100644 index 0000000000..4db60142c6 --- /dev/null +++ b/package/rpi-userland/0006-Fix-conflicting-type-qualifiers-errors-when-building.patch @@ -0,0 +1,23 @@ +Fix conflicting type qualifiers errors when building with musl. + +Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com> +--- + host_applications/linux/apps/raspicam/RaspiVidYUV.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/host_applications/linux/apps/raspicam/RaspiVidYUV.c b/host_applications/linux/apps/raspicam/RaspiVidYUV.c +index b340d63c913f..13e6a6ccf5bf 100644 +--- a/host_applications/linux/apps/raspicam/RaspiVidYUV.c ++++ b/host_applications/linux/apps/raspicam/RaspiVidYUV.c +@@ -106,8 +106,6 @@ const int ABORT_INTERVAL = 100; // ms + /// Run/record forever + #define WAIT_METHOD_FOREVER 4 + +-extern FILE *stderr, *stdout; +- + int mmal_status_to_int(MMAL_STATUS_T status); + static void signal_handler(int signal_number); + +-- +1.9.1 + diff --git a/package/rpi-userland/rpi-userland.mk b/package/rpi-userland/rpi-userland.mk index f1914a2a59..0a25b2db26 100644 --- a/package/rpi-userland/rpi-userland.mk +++ b/package/rpi-userland/rpi-userland.mk @@ -4,7 +4,7 @@ # ################################################################################ -RPI_USERLAND_VERSION = b864a841e5a459a66a890c22b3a34127cd226238 +RPI_USERLAND_VERSION = 8306b7c757f4b8e8d9148789eeb64c666d9244a5 RPI_USERLAND_SITE = $(call github,raspberrypi,userland,$(RPI_USERLAND_VERSION)) RPI_USERLAND_LICENSE = BSD-3c RPI_USERLAND_LICENSE_FILES = LICENCE diff --git a/package/rubix/rubix.hash b/package/rubix/rubix.hash new file mode 100644 index 0000000000..90fc9cd11e --- /dev/null +++ b/package/rubix/rubix.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 d3c6bf8bfa891e72baac0250a79d26045ddb4412b72d90de7c46091c07516b43 rubix-1.0.5.tar.bz2 diff --git a/package/ruby/ruby.mk b/package/ruby/ruby.mk index 243cd0b66c..17104b6d85 100644 --- a/package/ruby/ruby.mk +++ b/package/ruby/ruby.mk @@ -30,12 +30,16 @@ endif RUBY_CONF_ENV = CFLAGS="$(RUBY_CFLAGS)" ifeq ($(BR2_bfin),y) -RUBY_CONF_ENV = ac_cv_func_dl_iterate_phdr=no +RUBY_CONF_ENV += ac_cv_func_dl_iterate_phdr=no # Blackfin doesn't have FFI closure support, needed by the fiddle # extension. RUBY_CONF_OPTS += --with-out-ext=fiddle 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 diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in index f16e683bf5..4083aa7dce 100644 --- a/package/sconeserver/Config.in +++ b/package/sconeserver/Config.in @@ -63,7 +63,6 @@ config BR2_PACKAGE_SCONESERVER_LOCATION bool "location" depends on BR2_USE_MMU # gpsd depends on BR2_TOOLCHAIN_HAS_THREADS # gpsd - depends on !BR2_microblaze # gpsd depends on !BR2_STATIC_LIBS # gpsd select BR2_PACKAGE_GPSD help @@ -72,7 +71,6 @@ config BR2_PACKAGE_SCONESERVER_LOCATION comment "location support needs a toolchain w/ theads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBRARY - depends on !BR2_microblaze config BR2_PACKAGE_SCONESERVER_LETTUCE bool "lettuce" diff --git a/package/sdl/sdl.mk b/package/sdl/sdl.mk index 78eb4ddd8d..cc1ad06731 100644 --- a/package/sdl/sdl.mk +++ b/package/sdl/sdl.mk @@ -58,6 +58,15 @@ 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 diff --git a/package/skeleton/skeleton.mk b/package/skeleton/skeleton.mk index 0cab8a13f1..790afaf146 100644 --- a/package/skeleton/skeleton.mk +++ b/package/skeleton/skeleton.mk @@ -13,23 +13,67 @@ SKELETON_SOURCE = # on skeleton. SKELETON_ADD_TOOLCHAIN_DEPENDENCY = NO +# The skeleton also handles the merged /usr case in the sysroot +SKELETON_INSTALL_STAGING = YES + ifeq ($(BR2_ROOTFS_SKELETON_CUSTOM),y) -SKELETON_PATH = $(BR2_ROOTFS_SKELETON_CUSTOM_PATH) -else -SKELETON_PATH = system/skeleton + +SKELETON_PATH = $(call qstrip,$(BR2_ROOTFS_SKELETON_CUSTOM_PATH)) + +ifeq ($(BR2_ROOTFS_MERGED_USR),y) + +# Ensure the user has prepared a merged /usr. +# +# 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. +# +SKELETON_LIB_INODE = $(shell stat -c '%i' $(SKELETON_PATH)/lib/.) +SKELETON_BIN_INODE = $(shell stat -c '%i' $(SKELETON_PATH)/bin/.) +SKELETON_SBIN_INODE = $(shell stat -c '%i' $(SKELETON_PATH)/sbin/.) +SKELETON_USR_LIB_INODE = $(shell stat -c '%i' $(SKELETON_PATH)/usr/lib/.) +SKELETON_USR_BIN_INODE = $(shell stat -c '%i' $(SKELETON_PATH)/usr/bin/.) +SKELETON_USR_SBIN_INODE = $(shell stat -c '%i' $(SKELETON_PATH)/usr/sbin/.) + +ifneq ($(SKELETON_LIB_INODE),$(SKELETON_USR_LIB_INODE)) +SKELETON_CUSTOM_NOT_MERGED_USR += /lib +endif +ifneq ($(SKELETON_BIN_INODE),$(SKELETON_USR_BIN_INODE)) +SKELETON_CUSTOM_NOT_MERGED_USR += /bin endif +ifneq ($(SKELETON_SBIN_INODE),$(SKELETON_USR_SBIN_INODE)) +SKELETON_CUSTOM_NOT_MERGED_USR += /sbin +endif + +ifneq ($(SKELETON_CUSTOM_NOT_MERGED_USR),) +$(error Use of systemd as an init system requires a merged /usr. \ + However, the custom skeleton in $(SKELETON_PATH) is not \ + using a merged /usr for the following directories: \ + $(SKELETON_CUSTOM_NOT_MERGED_USR)) +endif + +endif # merged /usr + +else # ! custom skeleton +SKELETON_PATH = system/skeleton + +endif # ! custom skeleton + +# This function handles the merged or non-merged /usr cases ifeq ($(BR2_ROOTFS_MERGED_USR),y) define SKELETON_USR_SYMLINKS_OR_DIRS - ln -snf usr/bin $(TARGET_DIR)/bin - ln -snf usr/sbin $(TARGET_DIR)/sbin - ln -snf usr/lib $(TARGET_DIR)/lib + ln -snf usr/bin $(1)/bin + ln -snf usr/sbin $(1)/sbin + ln -snf usr/lib $(1)/lib endef else define SKELETON_USR_SYMLINKS_OR_DIRS - $(INSTALL) -d -m 0755 $(TARGET_DIR)/bin - $(INSTALL) -d -m 0755 $(TARGET_DIR)/sbin - $(INSTALL) -d -m 0755 $(TARGET_DIR)/lib + $(INSTALL) -d -m 0755 $(1)/bin + $(INSTALL) -d -m 0755 $(1)/sbin + $(INSTALL) -d -m 0755 $(1)/lib endef endif @@ -37,13 +81,28 @@ define SKELETON_INSTALL_TARGET_CMDS rsync -a --ignore-times $(SYNC_VCS_EXCLUSIONS) \ --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \ $(SKELETON_PATH)/ $(TARGET_DIR)/ - $(SKELETON_USR_SYMLINKS_OR_DIRS) + $(call SKELETON_USR_SYMLINKS_OR_DIRS,$(TARGET_DIR)) ln -snf lib $(TARGET_DIR)/$(LIB_SYMLINK) ln -snf lib $(TARGET_DIR)/usr/$(LIB_SYMLINK) $(INSTALL) -m 0644 support/misc/target-dir-warning.txt \ $(TARGET_DIR_WARNING_FILE) endef +# For the staging dir, we don't really care about /bin and /sbin. +# But for consistency with the target dir, and to simplify the code, +# we still handle them for the merged or non-merged /usr cases. +# Since the toolchain is not yet available, the staging is not yet +# populated, so we need to create the directories in /usr +define SKELETON_INSTALL_STAGING_CMDS + $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/lib + $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/bin + $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/sbin + $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include + $(call SKELETON_USR_SYMLINKS_OR_DIRS,$(STAGING_DIR)) + ln -snf lib $(STAGING_DIR)/$(LIB_SYMLINK) + ln -snf lib $(STAGING_DIR)/usr/$(LIB_SYMLINK) +endef + SKELETON_TARGET_GENERIC_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) SKELETON_TARGET_GENERIC_ISSUE = $(call qstrip,$(BR2_TARGET_GENERIC_ISSUE)) SKELETON_TARGET_GENERIC_ROOT_PASSWD = $(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD)) diff --git a/package/slang/0004-Rename-posix_close-function-to-posix_close_slfile.patch b/package/slang/0004-Rename-posix_close-function-to-posix_close_slfile.patch new file mode 100644 index 0000000000..4b3c869a60 --- /dev/null +++ b/package/slang/0004-Rename-posix_close-function-to-posix_close_slfile.patch @@ -0,0 +1,47 @@ +From 055b02cf98ab9b7301988c3be2d277f262f0957e Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Wed, 18 Nov 2015 23:12:15 +0100 +Subject: [PATCH] Rename posix_close() function to posix_close_slfile() + +posix_close() is a function that will be implemented as part of an +upcoming of the POSIX standard. For this reason, the musl C library +has already started implementing this function call. Unfortunately, +since slang already defines a function with the same name, it cannot +build properly with the musl C library. + +This commit fixes that by renaming the slang function to +posix_close_slfile(). + +This patch has been taken from the Alpine Linux repository, at +http://git.alpinelinux.org/cgit/aports/plain/main/slang/musl-fix-posix_close-clash.patch. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + src/slposio.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/slposio.c b/src/slposio.c +index 94f20dd..475e2c9 100644 +--- a/src/slposio.c ++++ b/src/slposio.c +@@ -372,7 +372,7 @@ static int posix_close_fd (int *fd) + return 0; + } + +-static int posix_close (SLFile_FD_Type *f) ++static int posix_close_slfile (SLFile_FD_Type *f) + { + int status = do_close (f); + +@@ -1011,7 +1011,7 @@ static SLang_Intrin_Fun_Type Fd_Name_Table [] = + MAKE_INTRINSIC_2("write", posix_write, V, F, B), + MAKE_INTRINSIC_1("dup_fd", posix_dup, V, F), + MAKE_INTRINSIC_2("dup2_fd", posix_dup2, I, F, I), +- MAKE_INTRINSIC_1("close", posix_close, I, F), ++ MAKE_INTRINSIC_1("close", posix_close_slfile, I, F), + MAKE_INTRINSIC_1("_close", posix_close_fd, I, I), + #if defined(TTYNAME_R) + MAKE_INTRINSIC_0("ttyname", posix_ttyname, V), +-- +2.6.3 + diff --git a/package/spidev_test/spidev_test.hash b/package/spidev_test/spidev_test.hash new file mode 100644 index 0000000000..6871288ccc --- /dev/null +++ b/package/spidev_test/spidev_test.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 80471c330d8c0bf5ba6479c434a54a54bdd2dc59a703b9c76c2541ec04cfb8c3 spidev_test.c?id=v3.0 +sha256 57fa6c534e0b7b4d234075e18bc89e2f3c9fc4ecc27e80f349a8057708e0de46 spidev_test.c?id=v3.15 diff --git a/package/sqlite/sqlite.mk b/package/sqlite/sqlite.mk index d08e933a97..0758fe959f 100644 --- a/package/sqlite/sqlite.mk +++ b/package/sqlite/sqlite.mk @@ -8,6 +8,7 @@ SQLITE_VERSION = 3090200 SQLITE_SOURCE = sqlite-autoconf-$(SQLITE_VERSION).tar.gz SQLITE_SITE = http://www.sqlite.org/2015 SQLITE_LICENSE = Public domain +SQLITE_LICENSE_FILES = tea/license.terms SQLITE_INSTALL_STAGING = YES # Patching Makefile.am: diff --git a/package/squeezelite/Config.in b/package/squeezelite/Config.in index be8f11a387..6befee17ad 100644 --- a/package/squeezelite/Config.in +++ b/package/squeezelite/Config.in @@ -21,8 +21,7 @@ config BR2_PACKAGE_SQUEEZELITE_FFMPEG bool "Enable WMA and ALAC decoding" default y select BR2_PACKAGE_FFMPEG - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 # ffmpeg - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # ffmpeg + depends on !BR2_nios2 # ffmpeg config BR2_PACKAGE_SQUEEZELITE_DSD bool "Enable DSD decoding" diff --git a/package/strongswan/strongswan.hash b/package/strongswan/strongswan.hash index 5e1cf4d1d9..5a353f1522 100644 --- a/package/strongswan/strongswan.hash +++ b/package/strongswan/strongswan.hash @@ -1,4 +1,4 @@ -# From http://download.strongswan.org/strongswan-5.3.3.tar.bz2.md5 -md5 5a25f3d1c31a77ef44d14a2e7b3eaad0 strongswan-5.3.3.tar.bz2 +# From http://download.strongswan.org/strongswan-5.3.5.tar.bz2.md5 +md5 a2f9ea185f27e7f8413d4cd2ee61efe4 strongswan-5.3.5.tar.bz2 # Calculated based on the hash above -sha256 39d2e8f572a57a77dda8dd8bdaf2ee47ad3cefeb86bbb840d594aa75f00f33e2 strongswan-5.3.3.tar.bz2 +sha256 2c84b663da652b1ff180a1a73c24a3d7b9fc4b9b8ba6bd07f94a1e33092e6350 strongswan-5.3.5.tar.bz2 diff --git a/package/strongswan/strongswan.mk b/package/strongswan/strongswan.mk index ff4c0723f6..e435c3ad7d 100644 --- a/package/strongswan/strongswan.mk +++ b/package/strongswan/strongswan.mk @@ -4,7 +4,7 @@ # ################################################################################ -STRONGSWAN_VERSION = 5.3.3 +STRONGSWAN_VERSION = 5.3.5 STRONGSWAN_SOURCE = strongswan-$(STRONGSWAN_VERSION).tar.bz2 STRONGSWAN_SITE = http://download.strongswan.org STRONGSWAN_LICENSE = GPLv2+ diff --git a/package/tovid/Config.in b/package/tovid/Config.in index ccf031e8a6..093bfdf2a2 100644 --- a/package/tovid/Config.in +++ b/package/tovid/Config.in @@ -5,8 +5,7 @@ config BR2_PACKAGE_TOVID depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 # ffmpeg - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # ffmpeg + depends on !BR2_nios2 # ffmpeg depends on BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS # The below dependencies are runtime dependencies only select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps_ng diff --git a/package/uclibc/1.0.8/0001-unistd-fix-if-condition.patch b/package/uclibc/1.0.8/0001-unistd-fix-if-condition.patch deleted file mode 100644 index c321f4e58e..0000000000 --- a/package/uclibc/1.0.8/0001-unistd-fix-if-condition.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 1e85892911bf016e9bb2a647b6584cdd806706f8 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Tue, 3 Nov 2015 15:32:23 +0100 -Subject: [PATCH] unistd: fix #if condition - -Commit dfa593d4d881116723a4401b466ea964fb12327b ("syncfs: add system -call support") modified the #if condition around the definition of the -syncfs() prototype in a way that doesn't build, causing build failures -of any file including <unistd.h>: - -output/host/usr/powerpc-buildroot-linux-uclibc/sysroot/usr/include/unistd.h:988:14: error: #if with no expression - #if __USE_GNU - -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> ---- - include/unistd.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/unistd.h b/include/unistd.h -index 4701dab..40d6abd 100644 ---- a/include/unistd.h -+++ b/include/unistd.h -@@ -1073,7 +1073,7 @@ extern char *getpass (const char *__prompt) __nonnull ((1)); - extern int fsync (int __fd); - #endif /* Use BSD || X/Open || Unix98. */ - --#if __USE_GNU -+#if defined __USE_GNU - /* Make all changes done to all files on the file system associated - * with FD actually appear on disk. */ - extern int syncfs (int __fd) __THROW; --- -2.6.2 - diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in index 21d8ddcfbf..bd95041d1e 100644 --- a/package/uclibc/Config.in +++ b/package/uclibc/Config.in @@ -18,7 +18,7 @@ config BR2_UCLIBC_VERSION_SUPPORTS_NPTL choice prompt "uClibc C library Version" - default BR2_UCLIBC_VERSION_NG if !BR2_arc + default BR2_UCLIBC_VERSION_NG help Select the version of uClibc you wish to use. @@ -57,7 +57,7 @@ config BR2_USE_UCLIBC_SNAPSHOT config BR2_UCLIBC_VERSION_STRING string default "0.9.33.2" if BR2_UCLIBC_VERSION_0_9_33 - default "1.0.8" if BR2_UCLIBC_VERSION_NG + default "1.0.9" if BR2_UCLIBC_VERSION_NG default BR2_USE_UCLIBC_SNAPSHOT if BR2_UCLIBC_VERSION_SNAPSHOT config BR2_UCLIBC_CONFIG diff --git a/package/uclibc/uclibc.hash b/package/uclibc/uclibc.hash index d9931a9a43..00e33898d3 100644 --- a/package/uclibc/uclibc.hash +++ b/package/uclibc/uclibc.hash @@ -2,10 +2,7 @@ sha256 62333167b79afb0b25a843513288c67b59547acf653e8fbe62ee64e71ebd1587 uClibc-0.9.33.2.tar.xz # From http://www.uclibc-ng.org/ -sha256 11575cda78681713f5a36cf35deaae93acdc7dce463d38a12902991fb7f5312a uClibc-ng-1.0.8.tar.xz - -# No hash for the ARC variant, comes from the github-helper -none xxx uClibc-arc-2015.06.tar.gz +sha256 08be8dd22ac0c3806add88b813129fb3014437eddc9d78fc73eba7f33c4b4a9d uClibc-ng-1.0.9.tar.xz # No hash for this git snapshot none xxx uClibc-7bf35c8b7d4a1f97174eb49f47f33946b282114c.tar.gz diff --git a/package/uemacs/02-skip-xcase-termios-flag.patch b/package/uemacs/02-skip-xcase-termios-flag.patch new file mode 100644 index 0000000000..2cc53579c7 --- /dev/null +++ b/package/uemacs/02-skip-xcase-termios-flag.patch @@ -0,0 +1,16 @@ +From termios(3): "XCASE (not in POSIX; not supported under Linux)". +musl does not define it, and even if defined it's a no-op. + +Signed-off-by: Alex Suykov <alex.suykov@gmail.com> + +--- a/posix.c ++++ b/posix.c +@@ -65,7 +65,7 @@ + ~(OPOST | ONLCR | OLCUC | OCRNL | ONOCR | ONLRET); + + /* No signal handling, no echo etc */ +- ntermios.c_lflag &= ~(ISIG | ICANON | XCASE | ECHO | ECHOE | ECHOK ++ ntermios.c_lflag &= ~(ISIG | ICANON | ECHO | ECHOE | ECHOK + | ECHONL | NOFLSH | TOSTOP | ECHOCTL | + ECHOPRT | ECHOKE | FLUSHO | PENDIN | IEXTEN); + diff --git a/package/ushare/0002-ushare-fix-building-with-gcc-5.x.patch b/package/ushare/0002-ushare-fix-building-with-gcc-5.x.patch new file mode 100644 index 0000000000..abef81fe4d --- /dev/null +++ b/package/ushare/0002-ushare-fix-building-with-gcc-5.x.patch @@ -0,0 +1,49 @@ +From 6abc52190accc8d8b17455420e234a1d7dc7ba55 Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard <peter@korsgaard.com> +Date: Mon, 16 Nov 2015 23:15:27 +0100 +Subject: [PATCH] ushare: fix building with gcc 5.x + +GCC5 defaults to -std=gnu11, which has different semantics for inline than +previous versions: + +https://gcc.gnu.org/gcc-5/porting_to.html + +Which causes linker issues when display_headers() and start_log() are +referenced from other files. There's no real reason why these needs to be +inline, so just drop the keyword. + +Signed-off-by: Peter Korsgaard <peter@korsgaard.com> +--- + src/trace.c | 2 +- + src/ushare.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/trace.c b/src/trace.c +index 50729ef..4e314ef 100644 +--- a/src/trace.c ++++ b/src/trace.c +@@ -57,7 +57,7 @@ print_log (log_level level, const char *format, ...) + va_end (va); + } + +-inline void ++void + start_log (void) + { + openlog (PACKAGE_NAME, LOG_PID, LOG_DAEMON); +diff --git a/src/ushare.c b/src/ushare.c +index b64451e..af46e78 100644 +--- a/src/ushare.c ++++ b/src/ushare.c +@@ -496,7 +496,7 @@ reload_config (int s __attribute__ ((unused))) + } + } + +-inline void ++void + display_headers (void) + { + printf (_("%s (version %s), a lightweight UPnP A/V and DLNA Media Server.\n"), +-- +2.1.4 + diff --git a/package/ustr/ustr.mk b/package/ustr/ustr.mk index 3144c0b47c..817f0b0c5e 100644 --- a/package/ustr/ustr.mk +++ b/package/ustr/ustr.mk @@ -12,6 +12,8 @@ USTR_LICENSE_FILES = LICENSE LICENSE_BSD LICENSE_LGPL LICENSE_MIT USTR_INSTALL_STAGING = YES +USTR_CFLAGS = $(TARGET_CFLAGS) -std=gnu89 + ifeq ($(BR2_STATIC_LIBS),y) USTR_BUILD_TARGETS = all USTR_INSTALL_TARGETS = install @@ -24,7 +26,8 @@ USTR_INSTALL_TARGETS = all install-shared endif define USTR_BUILD_CMDS - $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) $(USTR_BUILD_TARGETS) + $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(USTR_CFLAGS)" \ + $(USTR_BUILD_TARGETS) endef define USTR_INSTALL_STAGING_CMDS diff --git a/package/valgrind/0003-mips-replace-addi-with-addiu.patch b/package/valgrind/0003-mips-replace-addi-with-addiu.patch new file mode 100644 index 0000000000..9168dce195 --- /dev/null +++ b/package/valgrind/0003-mips-replace-addi-with-addiu.patch @@ -0,0 +1,51 @@ +mips: replace addi with addiu + +ADDI instruction has been removed in R6 so let's use ADDIU instead. + +This patch has been sent upstream: + + https://bugs.kde.org/show_bug.cgi?id=356112 + +Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> + +Index: valgrind/coregrind/m_dispatch/dispatch-mips32-linux.S +=================================================================== +--- valgrind/coregrind/m_dispatch/dispatch-mips32-linux.S (revision 15740) ++++ valgrind/coregrind/m_dispatch/dispatch-mips32-linux.S (working copy) +@@ -196,7 +196,7 @@ + addu $13, $13, $14 + + lw $12, 0($13) /* t3 = VG_(tt_fast)[hash] :: ULong* */ +- addi $13, $13, 4 ++ addiu $13, $13, 4 + lw $25, 0($13) /* little-endian, so comparing 1st 32bit word */ + nop + +Index: valgrind/coregrind/m_libcsetjmp.c +=================================================================== +--- valgrind/coregrind/m_libcsetjmp.c (revision 15740) ++++ valgrind/coregrind/m_libcsetjmp.c (working copy) +@@ -594,7 +594,7 @@ + /* Checking whether second argument is zero. */ + " bnez $a1, 1f \n\t" + " nop \n\t" +-" addi $a1, $a1, 1 \n\t" /* We must return 1 if val=0. */ ++" addiu $a1, $a1, 1 \n\t" /* We must return 1 if val=0. */ + "1: \n\t" + " move $v0, $a1 \n\t" /* Return value of second argument. */ + " j $ra \n\t" +Index: valgrind/coregrind/m_trampoline.S +=================================================================== +--- valgrind/coregrind/m_trampoline.S (revision 15740) ++++ valgrind/coregrind/m_trampoline.S (working copy) +@@ -1254,8 +1254,8 @@ + //la $a0, string + j strlen_cond + strlen_loop: +- addi $v0, $v0, 1 +- addi $a0, $a0, 1 ++ addiu $v0, $v0, 1 ++ addiu $a0, $a0, 1 + strlen_cond: + lbu $t0, ($a0) + bne $t0, $zero, strlen_loop diff --git a/package/wine/wine.hash b/package/wine/wine.hash index 71d633c103..d1e3494fb6 100644 --- a/package/wine/wine.hash +++ b/package/wine/wine.hash @@ -1,3 +1,2 @@ -# From http://sourceforge.net/projects/wine/files/Source/ -md5 0f6c56f86befe38e219090915f81f48a wine-1.6.2.tar.bz2 -sha1 574b9ccedbf213622b7ee55f715764673fc27692 wine-1.6.2.tar.bz2 +# Locally calculated after checking pgp signature +sha256 f0ab9eede5a0ccacbf6e50682649f9377b9199e49cf55641f1787cf72405acbe wine-1.6.2.tar.bz2 diff --git a/package/wine/wine.mk b/package/wine/wine.mk index d6fb9c6d01..38576dbeb2 100644 --- a/package/wine/wine.mk +++ b/package/wine/wine.mk @@ -6,7 +6,7 @@ WINE_VERSION = 1.6.2 WINE_SOURCE = wine-$(WINE_VERSION).tar.bz2 -WINE_SITE = http://downloads.sourceforge.net/project/wine/Source +WINE_SITE = https://dl.winehq.org/wine/source/1.6 WINE_LICENSE = LGPLv2.1+ WINE_LICENSE_FILES = COPYING.LIB LICENSE WINE_DEPENDENCIES = host-bison host-flex host-wine diff --git a/package/wpa_supplicant/0002-WNM-Ignore-Key-Data-in-WNM-Sleep-Mode-Response-frame.patch b/package/wpa_supplicant/0002-WNM-Ignore-Key-Data-in-WNM-Sleep-Mode-Response-frame.patch new file mode 100644 index 0000000000..00e5b7c771 --- /dev/null +++ b/package/wpa_supplicant/0002-WNM-Ignore-Key-Data-in-WNM-Sleep-Mode-Response-frame.patch @@ -0,0 +1,32 @@ +From 6b12d93d2c7428a34bfd4b3813ba339ed57b698a Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 25 Oct 2015 15:45:50 +0200 +Subject: [PATCH] WNM: Ignore Key Data in WNM Sleep Mode Response frame if no + PMF in use + +WNM Sleep Mode Response frame is used to update GTK/IGTK only if PMF is +enabled. Verify that PMF is in use before using this field on station +side to avoid accepting unauthenticated key updates. (CVE-2015-5310) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + wpa_supplicant/wnm_sta.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c +index 954de67..7d79499 100644 +--- a/wpa_supplicant/wnm_sta.c ++++ b/wpa_supplicant/wnm_sta.c +@@ -187,6 +187,12 @@ static void wnm_sleep_mode_exit_success(struct wpa_supplicant *wpa_s, + end = ptr + key_len_total; + wpa_hexdump_key(MSG_DEBUG, "WNM: Key Data", ptr, key_len_total); + ++ if (key_len_total && !wpa_sm_pmf_enabled(wpa_s->wpa)) { ++ wpa_msg(wpa_s, MSG_INFO, ++ "WNM: Ignore Key Data in WNM-Sleep Mode Response - PMF not enabled"); ++ return; ++ } ++ + while (ptr + 1 < end) { + if (ptr + 2 + ptr[1] > end) { + wpa_printf(MSG_DEBUG, "WNM: Invalid Key Data element " diff --git a/package/wpa_supplicant/0003-EAP-pwd-peer-Fix-last-fragment-length-validation.patch b/package/wpa_supplicant/0003-EAP-pwd-peer-Fix-last-fragment-length-validation.patch new file mode 100644 index 0000000000..82c26398b6 --- /dev/null +++ b/package/wpa_supplicant/0003-EAP-pwd-peer-Fix-last-fragment-length-validation.patch @@ -0,0 +1,54 @@ +From 8057821706784608b828e769ccefbced95591e50 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 1 Nov 2015 18:18:17 +0200 +Subject: [PATCH] EAP-pwd peer: Fix last fragment length validation + +All but the last fragment had their length checked against the remaining +room in the reassembly buffer. This allowed a suitably constructed last +fragment frame to try to add extra data that would go beyond the buffer. +The length validation code in wpabuf_put_data() prevents an actual +buffer write overflow from occurring, but this results in process +termination. (CVE-2015-5315) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + src/eap_peer/eap_pwd.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c +index 1f78544..75ceef1 100644 +--- a/src/eap_peer/eap_pwd.c ++++ b/src/eap_peer/eap_pwd.c +@@ -903,7 +903,7 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + /* + * buffer and ACK the fragment + */ +- if (EAP_PWD_GET_MORE_BIT(lm_exch)) { ++ if (EAP_PWD_GET_MORE_BIT(lm_exch) || data->in_frag_pos) { + data->in_frag_pos += len; + if (data->in_frag_pos > wpabuf_size(data->inbuf)) { + wpa_printf(MSG_INFO, "EAP-pwd: Buffer overflow attack " +@@ -916,7 +916,8 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + return NULL; + } + wpabuf_put_data(data->inbuf, pos, len); +- ++ } ++ if (EAP_PWD_GET_MORE_BIT(lm_exch)) { + resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_PWD, + EAP_PWD_HDR_SIZE, + EAP_CODE_RESPONSE, eap_get_id(reqData)); +@@ -930,10 +931,8 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + * we're buffering and this is the last fragment + */ + if (data->in_frag_pos) { +- wpabuf_put_data(data->inbuf, pos, len); + wpa_printf(MSG_DEBUG, "EAP-pwd: Last fragment, %d bytes", + (int) len); +- data->in_frag_pos += len; + pos = wpabuf_head_u8(data->inbuf); + len = data->in_frag_pos; + } +-- +1.9.1 + diff --git a/package/wpa_supplicant/0004-EAP-pwd-server-Fix-last-fragment-length-validation.patch b/package/wpa_supplicant/0004-EAP-pwd-server-Fix-last-fragment-length-validation.patch new file mode 100644 index 0000000000..bfc4c74e95 --- /dev/null +++ b/package/wpa_supplicant/0004-EAP-pwd-server-Fix-last-fragment-length-validation.patch @@ -0,0 +1,51 @@ +From bef802ece03f9ae9d52a21f0cf4f1bc2c5a1f8aa Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 1 Nov 2015 18:24:16 +0200 +Subject: [PATCH] EAP-pwd server: Fix last fragment length validation + +All but the last fragment had their length checked against the remaining +room in the reassembly buffer. This allowed a suitably constructed last +fragment frame to try to add extra data that would go beyond the buffer. +The length validation code in wpabuf_put_data() prevents an actual +buffer write overflow from occurring, but this results in process +termination. (CVE-2015-5314) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + src/eap_server/eap_server_pwd.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/eap_server/eap_server_pwd.c b/src/eap_server/eap_server_pwd.c +index cb83ff7..9f787ab 100644 +--- a/src/eap_server/eap_server_pwd.c ++++ b/src/eap_server/eap_server_pwd.c +@@ -970,7 +970,7 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + /* + * the first and all intermediate fragments have the M bit set + */ +- if (EAP_PWD_GET_MORE_BIT(lm_exch)) { ++ if (EAP_PWD_GET_MORE_BIT(lm_exch) || data->in_frag_pos) { + if ((data->in_frag_pos + len) > wpabuf_size(data->inbuf)) { + wpa_printf(MSG_DEBUG, "EAP-pwd: Buffer overflow " + "attack detected! (%d+%d > %d)", +@@ -981,6 +981,8 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + } + wpabuf_put_data(data->inbuf, pos, len); + data->in_frag_pos += len; ++ } ++ if (EAP_PWD_GET_MORE_BIT(lm_exch)) { + wpa_printf(MSG_DEBUG, "EAP-pwd: Got a %d byte fragment", + (int) len); + return; +@@ -990,8 +992,6 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + * buffering fragments so that's how we know it's the last) + */ + if (data->in_frag_pos) { +- wpabuf_put_data(data->inbuf, pos, len); +- data->in_frag_pos += len; + pos = wpabuf_head_u8(data->inbuf); + len = data->in_frag_pos; + wpa_printf(MSG_DEBUG, "EAP-pwd: Last fragment, %d bytes", +-- +1.9.1 + diff --git a/package/wpa_supplicant/0005-EAP-pwd-peer-Fix-error-path-for-unexpected-Confirm-m.patch b/package/wpa_supplicant/0005-EAP-pwd-peer-Fix-error-path-for-unexpected-Confirm-m.patch new file mode 100644 index 0000000000..3088f6a6dc --- /dev/null +++ b/package/wpa_supplicant/0005-EAP-pwd-peer-Fix-error-path-for-unexpected-Confirm-m.patch @@ -0,0 +1,34 @@ +From 95577884ca4fa76be91344ff7a8d5d1e6dc3da61 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 1 Nov 2015 19:35:44 +0200 +Subject: [PATCH] EAP-pwd peer: Fix error path for unexpected Confirm message + +If the Confirm message is received from the server before the Identity +exchange has been completed, the group has not yet been determined and +data->grp is NULL. The error path in eap_pwd_perform_confirm_exchange() +did not take this corner case into account and could end up +dereferencing a NULL pointer and terminating the process if invalid +message sequence is received. (CVE-2015-5316) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + src/eap_peer/eap_pwd.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c +index 75ceef1..892b590 100644 +--- a/src/eap_peer/eap_pwd.c ++++ b/src/eap_peer/eap_pwd.c +@@ -774,7 +774,8 @@ eap_pwd_perform_confirm_exchange(struct eap_sm *sm, struct eap_pwd_data *data, + wpabuf_put_data(data->outbuf, conf, SHA256_MAC_LEN); + + fin: +- bin_clear_free(cruft, BN_num_bytes(data->grp->prime)); ++ if (data->grp) ++ bin_clear_free(cruft, BN_num_bytes(data->grp->prime)); + BN_clear_free(x); + BN_clear_free(y); + if (data->outbuf == NULL) { +-- +1.9.1 + diff --git a/package/x11r7/xapp_sessreg/0001-Pass-P-to-the-preprocessor-when-generating-filenames.patch b/package/x11r7/xapp_sessreg/0001-Pass-P-to-the-preprocessor-when-generating-filenames.patch new file mode 100644 index 0000000000..5c3e91a491 --- /dev/null +++ b/package/x11r7/xapp_sessreg/0001-Pass-P-to-the-preprocessor-when-generating-filenames.patch @@ -0,0 +1,32 @@ +From 93f5d5abf6b214a4b36e00cd09174d24b2ed0a6d Mon Sep 17 00:00:00 2001 +From: Stefan Dirsch <sndirsch@suse.de> +Date: Wed, 9 Sep 2015 23:44:06 +0200 +Subject: [PATCH] Pass -P to the preprocessor when generating filenames for the + manpage. + +Fixes build with GCC 5. Patch by Richard Biener <rguenther@suse.com> + +Tested-by: Matt Turner <mattst88@gmail.com> +Signed-off-by: Matt Turner <mattst88@gmail.com> +[Thomas: backport from upstream commit 93f5d5abf6b214a4b36e00cd09174d24b2ed0a6d] +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + man/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/Makefile.am b/man/Makefile.am +index 665ace5..2e5f146 100644 +--- a/man/Makefile.am ++++ b/man/Makefile.am +@@ -9,7 +9,7 @@ SUFFIXES = .$(APP_MAN_SUFFIX) .man + + AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) + filenames.sed: filenames.sed.c +- $(AM_V_GEN)$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_V_GEN)$(CPP) -P $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(srcdir)/filenames.sed.c | \ + $(SED) -n -e '/s|__/ p' -e '/^\/__/ p' > $@ + +-- +2.6.3 + diff --git a/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk b/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk index 2aa22ae6c0..f8ea403c8c 100644 --- a/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk +++ b/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk @@ -11,4 +11,6 @@ XDRIVER_XF86_VIDEO_SILICONMOTION_LICENSE = MIT XDRIVER_XF86_VIDEO_SILICONMOTION_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_SILICONMOTION_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xextproto xproto_xproto +XDRIVER_XF86_VIDEO_SILICONMOTION_CONF_OPTS = --disable-selective-werror + $(eval $(autotools-package)) diff --git a/package/x265/Config.in b/package/x265/Config.in index 15ae9339fb..f268e65841 100644 --- a/package/x265/Config.in +++ b/package/x265/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_X265 bool "x265" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_STATIC_LIBS # dlfcn 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 @@ -20,5 +21,6 @@ config BR2_PACKAGE_X265_CLI endif -comment "x265 needs a toolchain w/ C++, threads" - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS +comment "x265 needs a toolchain w/ C++, threads, dynamic library" + depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ + !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/yad/yad.mk b/package/yad/yad.mk index 9d7ab370c8..fc25267d6d 100644 --- a/package/yad/yad.mk +++ b/package/yad/yad.mk @@ -13,7 +13,7 @@ YAD_DEPENDENCIES = host-intltool host-pkgconf YAD_CONF_OPTS = --enable-html=no -ifeq ($(BR2_PACKAGE_LIBGTK3),y) +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) YAD_DEPENDENCIES += libgtk3 YAD_CONF_OPTS += --with-gtk=gtk3 else diff --git a/package/yajl/yajl.hash b/package/yajl/yajl.hash new file mode 100644 index 0000000000..315d847db2 --- /dev/null +++ b/package/yajl/yajl.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 0e78f516dc53ecce7dc073f9a9bb0343186b58ef29dcd1dad74e5e853b216dd5 yajl-2.0.4.tar.gz +sha256 0f075b5f9a38bc02077370d4d57d12e615cfaaf7f634e3f2fc746b6582854e53 6d09f11b8fd358cab0e31b965327e64a599f9ce9.patch diff --git a/package/yajl/yajl.mk b/package/yajl/yajl.mk index ff641239bc..81f29e7265 100644 --- a/package/yajl/yajl.mk +++ b/package/yajl/yajl.mk @@ -9,5 +9,6 @@ YAJL_SITE = $(call github,lloyd,yajl,$(YAJL_VERSION)) YAJL_INSTALL_STAGING = YES YAJL_LICENSE = ISC YAJL_LICENSE_FILES = COPYING +YAJL_PATCH = https://github.com/vriera/yajl/commit/6d09f11b8fd358cab0e31b965327e64a599f9ce9.patch $(eval $(cmake-package)) diff --git a/package/zmqpp/0002-Allow-building-shared-or-static-library-only.patch b/package/zmqpp/0002-Allow-building-shared-or-static-library-only.patch new file mode 100644 index 0000000000..4eabf234b8 --- /dev/null +++ b/package/zmqpp/0002-Allow-building-shared-or-static-library-only.patch @@ -0,0 +1,81 @@ +From 4c83dd96d1f92627ecdb6b6ed80b8c278aea82f7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks> +Date: Fri, 20 Nov 2015 19:51:50 +0100 +Subject: [PATCH] Allow building shared or static library only +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> +--- + Makefile | 19 ++++++++++++++++--- + 1 file changed, 16 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index 7d63077..90c7059 100644 +--- a/Makefile ++++ b/Makefile +@@ -57,6 +57,9 @@ LIBRARY_ARCHIVE = lib$(LIBRARY_NAME).a + CLIENT_TARGET = $(LIBRARY_NAME) + TESTS_TARGET = $(LIBRARY_NAME)-tests + ++BUILD_SHARED ?= yes ++BUILD_SHARED ?= yes ++ + CONFIG_FLAGS = + ifeq ($(CONFIG),debug) + CONFIG_FLAGS = -g -fno-inline -ftemplate-depth-1000 +@@ -71,7 +74,7 @@ ifneq (,$(findstring $(CONFIG),release loadtest)) + CONFIG_FLAGS = -O3 -funroll-loops -ffast-math -finline-functions -fomit-frame-pointer -DNO_DEBUG_LOG -DNO_TRACE_LOG -DNDEBUG + endif + +-COMMON_FLAGS = -MMD -std=c++0x -pipe -Wall -fPIC \ ++COMMON_FLAGS = -MMD -std=c++0x -pipe -Wall \ + -DBUILD_ENV=$(CONFIG) \ + -DBUILD_VERSION='"$(APP_VERSION)"' \ + -DBUILD_VERSION_MAJOR=$(VERSION_MAJOR) \ +@@ -82,6 +85,15 @@ COMMON_FLAGS = -MMD -std=c++0x -pipe -Wall -fPIC \ + -DBUILD_CLIENT_NAME='"$(CLIENT_TARGET)"' \ + -I$(SRC_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 = +@@ -125,9 +137,11 @@ check: $(LIBRARY_SHARED) $(LIBRARY_ARCHIVE) test + + install: + install -m 644 $(ALL_LIBRARY_INCLUDES) $(INCLUDEDIR)/$(LIBRARY_DIR) ++ifeq ($(BUILD_SHARED),yes) + install -m 755 $(BUILD_PATH)/$(LIBRARY_SHARED).$(VERSION_MAJOR) $(LIBDIR)/$(LIBRARY_SHARED).$(APP_VERSION) + ln -sf $(LIBRARY_SHARED).$(APP_VERSION) $(LIBDIR)/$(LIBRARY_SHARED).$(VERSION_MAJOR) + ln -sf $(LIBRARY_SHARED).$(APP_VERSION) $(LIBDIR)/$(LIBRARY_SHARED) ++endif + if [ -f $(BUILD_PATH)/$(CLIENT_TARGET) ]; then install -m 755 $(BUILD_PATH)/$(CLIENT_TARGET) $(BINDIR); fi + $(LDCONFIG) + @echo "use make installcheck to test the install" +@@ -148,7 +162,7 @@ clean: + + client: $(CLIENT_TARGET) + +-library: $(LIBRARY_SHARED) $(LIBRARY_ARCHIVE) ++library: $(LIBRARY_TARGETS) + + # + # BUILD Targets +@@ -187,4 +201,3 @@ test: $(TESTS_TARGET) + $(OBJECT_PATH)/%.o: $(SRC_PATH)/%.cpp + -mkdir -p $(dir $@) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(COMMON_FLAGS) $(CONFIG_FLAGS) -c -o $@ $< +- +-- +2.6.2 + diff --git a/package/zmqpp/0003-Install-static-library-for-static-builds.patch b/package/zmqpp/0003-Install-static-library-for-static-builds.patch new file mode 100644 index 0000000000..c4ce2d219f --- /dev/null +++ b/package/zmqpp/0003-Install-static-library-for-static-builds.patch @@ -0,0 +1,30 @@ +From 1637443262cc861a161fd7c734bc0610a340335b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks> +Date: Mon, 23 Nov 2015 22:53:09 +0100 +Subject: [PATCH] Install static library for static builds +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> +--- + Makefile | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/Makefile b/Makefile +index 90c7059..abed6fa 100644 +--- a/Makefile ++++ b/Makefile +@@ -142,6 +142,9 @@ ifeq ($(BUILD_SHARED),yes) + ln -sf $(LIBRARY_SHARED).$(APP_VERSION) $(LIBDIR)/$(LIBRARY_SHARED).$(VERSION_MAJOR) + ln -sf $(LIBRARY_SHARED).$(APP_VERSION) $(LIBDIR)/$(LIBRARY_SHARED) + 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" +-- +2.6.2 + diff --git a/package/zmqpp/Config.in b/package/zmqpp/Config.in index a10602f283..03792240d7 100644 --- a/package/zmqpp/Config.in +++ b/package/zmqpp/Config.in @@ -22,6 +22,7 @@ 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_PACKAGE_BOOST_ARCH_SUPPORTS select BR2_PACKAGE_BOOST @@ -30,8 +31,8 @@ config BR2_PACKAGE_ZMQPP_CLIENT 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/ threads" +comment "zmqpp client needs a toolchain w/ dynamic library, threads" depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS - depends on !BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS endif diff --git a/package/zmqpp/zmqpp.hash b/package/zmqpp/zmqpp.hash new file mode 100644 index 0000000000..7bca39fa41 --- /dev/null +++ b/package/zmqpp/zmqpp.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 92cb5bf7e1df8b99792fe1eb530bf91fced9c2d14159007bec011bb1b8248269 zmqpp-3.2.0.tar.gz +sha256 0b76169a48a0ba9dd581b63787b4852f3922de0c22b7a325cab688c1bafb3dd7 260a9304f6c74272bd3c396f6cca685657b4aff1.patch diff --git a/package/zmqpp/zmqpp.mk b/package/zmqpp/zmqpp.mk index 03c64758a6..0bb6bbedca 100644 --- a/package/zmqpp/zmqpp.mk +++ b/package/zmqpp/zmqpp.mk @@ -10,6 +10,7 @@ ZMQPP_INSTALL_STAGING = YES ZMQPP_DEPENDENCIES = zeromq ZMQPP_LICENSE = MIT ZMQPP_LICENSE_FILES = LICENSE +ZMQPP_PATCH = https://github.com/zeromq/zmqpp/commit/260a9304f6c74272bd3c396f6cca685657b4aff1.patch ZMQPP_MAKE_OPTS = LD="$(TARGET_CXX)" BUILD_PATH=./build PREFIX=/usr ZMQPP_LDFLAGS = $(TARGET_LDFLAGS) -lpthread @@ -18,10 +19,18 @@ 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) \ LDFLAGS="$(ZMQPP_LDFLAGS)" \ - $(ZMQPP_MAKE_OPTS) $(if $(BR2_PACKAGE_ZMQPP_CLIENT),all) -C $(@D) + $(ZMQPP_MAKE_OPTS) $(if $(BR2_PACKAGE_ZMQPP_CLIENT),client,library) -C $(@D) endef define ZMQPP_INSTALL_TARGET_CMDS diff --git a/package/zxing-cpp/Config.in b/package/zxing-cpp/Config.in index 1695d2783b..c1109219a0 100644 --- a/package/zxing-cpp/Config.in +++ b/package/zxing-cpp/Config.in @@ -1,8 +1,9 @@ -comment "zxing-cpp needs a toolchain w/ C++" - depends on !BR2_INSTALL_LIBSTDCPP +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, diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh index af6df9ec72..2edf05466f 100755 --- a/support/scripts/apply-patches.sh +++ b/support/scripts/apply-patches.sh @@ -16,8 +16,9 @@ # '*'. Pattern(s) describing the patch names you want to apply. # # The script will look recursively for patches from the patch directory. If a -# file is named 'series' then only patches mentionned into it will be applied. -# If not, the script will look for file names matching pattern(s). If the name +# 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 @@ -64,28 +65,32 @@ find ${builddir}/ '(' -name '*.rej' -o -name '.*.rej' ')' -print0 | \ function apply_patch { path=$1 patch=$2 - 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 + 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}: " @@ -111,7 +116,7 @@ function scan_patchdir { # to apply patches. Skip line starting with a dash. if [ -e "${path}/series" ] ; then for i in `grep -Ev "^#" ${path}/series 2> /dev/null` ; do - apply_patch "$path" "$i" + apply_patch "$path" "$i" series done else for i in `cd $path; ls -d $patches 2> /dev/null` ; do diff --git a/support/scripts/check-host-rpath b/support/scripts/check-host-rpath new file mode 100755 index 0000000000..dc9e17fe57 --- /dev/null +++ b/support/scripts/check-host-rpath @@ -0,0 +1,71 @@ +#!/usr/bin/env bash + +# This script scans $(HOST_DIR)/{bin,sbin} for all ELF files, and checks +# they have an RPATH to $(HOST_DIR)/usr/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 file ret + + # Remove duplicate and trailing '/' for proper match + hostdir="$( sed -r -e 's:/+:/:g;' <<<"${hostdir}" )" + + ret=0 + while read file; do + elf_needs_rpath "${file}" "${hostdir}" || continue + check_elf_has_rpath "${file}" "${hostdir}" && 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}"/usr/{bin,sbin} -type f -exec file {} + 2>/dev/null \ + |sed -r -e '/^([^:]+):.*\<ELF\>.*\<executable\>.*/!d' \ + -e 's//\1/' \ + ) + + return ${ret} +} + +elf_needs_rpath() { + local file="${1}" + local hostdir="${2}" + local lib + + while read lib; do + [ -e "${hostdir}/usr/lib/${lib}" ] && return 0 + done < <( readelf -d "${file}" \ + |sed -r -e '/^.* \(NEEDED\) .*Shared library: \[(.+)\]$/!d;' \ + -e 's//\1/;' \ + ) + + return 1 +} + +check_elf_has_rpath() { + local file="${1}" + local hostdir="${2}" + 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}/usr/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 "${@}" diff --git a/system/Config.in b/system/Config.in index 4d070103fd..2e14971ba7 100644 --- a/system/Config.in +++ b/system/Config.in @@ -179,6 +179,11 @@ config BR2_ROOTFS_SKELETON_CUSTOM_PATH default "system/skeleton" help Path to custom target skeleton. + +# dummy config so merged /usr workarounds can also be activated for +# custom rootfs skeleton +config BR2_ROOTFS_MERGED_USR + endif if BR2_ROOTFS_SKELETON_DEFAULT |

