DESCRIPTION = "Libcap is a library for getting and setting POSIX.1e (formerly POSIX 6) draft 15 capabilities."
PRIORITY = "optional"
SECTION = "libs"
LICENSE = "GPL"
DEPENDS = "bison-native flex-native"
PR = "r1"

CFLAGS_append = " -I${S}/libcap/include"

SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/security/linux-privs/kernel-2.4/${PN}-${PV}.tar.bz2 \
	   file://makenames.patch;patch=1 \
	   file://make.patch;patch=1 \
	   file://syscall.patch;patch=1"

FILES_${PN} = "${libdir}"
FILES_${PN}-dev = "${includedir}"

do_install() {
	install -d ${D}${includedir}/sys
	install -m 0644 libcap/include/sys/capability.h ${D}${includedir}/sys/
	install -d ${D}${libdir}
	oe_libinstall -s -C libcap libcap ${D}${libdir}
}

do_stage() {
	install -d ${STAGING_INCDIR}/sys
	install -m 0644 libcap/include/sys/capability.h ${STAGING_INCDIR}/sys/
	oe_libinstall -s -C libcap libcap ${STAGING_LIBDIR}
}

Append `-fPIC` to `CFLAGS` to fix compilation on newer binutils/ld.

DESCRIPTION = "Libcap is a library for getting and setting POSIX.1e (formerly POSIX 6) draft 15 capabilities."
PRIORITY = "optional"
SECTION = "libs"
LICENSE = "GPL"
DEPENDS = "bison-native flex-native"
PR = "r2"

CFLAGS_append = " -I${S}/libcap/include -fPIC"

SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/security/linux-privs/kernel-2.4/${PN}-${PV}.tar.bz2 \
	   file://makenames.patch;patch=1 \
	   file://make.patch;patch=1 \
	   file://syscall.patch;patch=1"

FILES_${PN} = "${libdir}"
FILES_${PN}-dev = "${includedir}"

do_install() {
	install -d ${D}${includedir}/sys
	install -m 0644 libcap/include/sys/capability.h ${D}${includedir}/sys/
	install -d ${D}${libdir}
	oe_libinstall -s -C libcap libcap ${D}${libdir}
}

do_stage() {
	install -d ${STAGING_INCDIR}/sys
	install -m 0644 libcap/include/sys/capability.h ${STAGING_INCDIR}/sys/
	oe_libinstall -s -C libcap libcap ${STAGING_LIBDIR}
}


SUMMARY = "OPTEE AES Decryptor for Linaro OpenCDM"
DESCRIPTION = "OPTEE AES Decryptor for Linaro OpenCDM"

LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=f0fb2f357d31d6a98213b19f57abf927"
PR="r0"
PV="1.0+git"

DEPENDS = "optee-os optee-client"

PACKAGE_ARCH = "${MACHINE_ARCH}"

SRC_URI = "git://github.com/kuscsik/optee-clearkey-cdmi;protocol=https"
SRCREV = "${AUTOREV}"

S = "${WORKDIR}/git"
B = "${S}"

#stub
do_configure[noexec] = "1"

EXTRA_OEMAKE = ""
do_compile() {
    export TA_DEV_KIT_DIR=${STAGING_INCDIR}/optee/export-user_ta
    export TEEC_EXPORT=${STAGING_DIR_HOST}/usr

    oe_runmake -C ${S}/host LDFLAGS=""

    oe_runmake -C ${S}/ta LDFLAGS="" CROSS_COMPILE=${HOST_PREFIX}
}

do_install() {
    mkdir -p ${D}/usr/bin
    mkdir -p ${D}/lib/teetz
    install -d ${D}/${libdir}
    install -m 0644 ${S}/host/*.a ${D}/${libdir}/

    install -d ${D}${includedir}
    install -m 0644 ${S}/host/*.h ${D}${includedir}/

    #ta part
    install -m 444 ${B}/ta/*.ta ${D}/lib/teetz/
}

FILES_${PN} = "${libdir}/*.a  /usr/bin /lib/teetz/"
FILES_${PN}-staticdev = "${libdir}/*.a"

INHIBIT_PACKAGE_STRIP = "1"


require linux.inc

DESCRIPTION = "Linux kernel for the RaspberryPi board"
COMPATIBLE_MACHINE = "raspberrypi"

PR = "r6"
PV_append = "+git${SRCREV}"

SRCREV = "31a951046155b27361127d9cf85a1f58719fe9b3"
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.6.y \
          "
S = "${WORKDIR}/git"

# NOTE: For now we pull in the default config from the RPi kernel GIT tree.
KERNEL_DEFCONFIG = "bcmrpi_defconfig"

# CMDLINE for raspberrypi
CMDLINE_raspberrypi = "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"

UDEV_GE_141 ?= "1"

do_configure_prepend() {
	install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available."
}

do_install_prepend() {
	install -d ${D}/lib/firmware
}

do_deploy_append() {
	# Deploy cmdline.txt
	install -d ${DEPLOYDIR}/bcm2835-bootfiles
	echo "${CMDLINE}" > ${DEPLOYDIR}/bcm2835-bootfiles/cmdline.txt
}


require xorg-lib-common.inc

DESCRIPTION = "X11 Distributed Multihead extension library"
DEPENDS += "libxext dmxproto fso-specs"
PR = "r2"
PE = "1"

SRC_URI[archive.md5sum] = "a2fcf0382837888d3781b714489a8999"
SRC_URI[archive.sha256sum] = "1904a8f848cc5d76105cb07707890aca095540a37fb0a63d359f71da51d3e2d5"

Revert "libdmx: Add fso-specs to DEPENDS"

require xorg-lib-common.inc

DESCRIPTION = "X11 Distributed Multihead extension library"
DEPENDS += "libxext dmxproto"
PR = "r3"
PE = "1"

SRC_URI[archive.md5sum] = "a2fcf0382837888d3781b714489a8999"
SRC_URI[archive.sha256sum] = "1904a8f848cc5d76105cb07707890aca095540a37fb0a63d359f71da51d3e2d5"


SUMMARY = "GNU Privacy Guard - encryption and signing tools"
DESCRIPTION = "\
 GnuPG is GNU's tool for secure communication and data storage.\
 It can be used to encrypt data and to create digital signatures. \
 It includes an advanced key management facility and is compliant \
 with the proposed OpenPGP Internet standard as described in RFC 4880. \
"
HOMEPAGE = "http://www.gnupg.org/"

PR = "r0"
inherit debian-package

LICENSE = "GPLv3+ & bzip2"
LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
                    file://bzlib/LICENSE;md5=98ec24b7285bf09b448bc0df6c8a29ae"

inherit autotools gettext

DEPENDS = "zlib bzip2 readline"

EXTRA_OECONF = "--libexecdir=${libdir} \
                --enable-mailto \
                --with-mailprog=${sbindir}sendmail \
                --enable-large-secmem \
                --with-zlib=${STAGING_LIBDIR}/.. \
                --with-bzip2=${STAGING_LIBDIR}/.. \
                --disable-selinux-support \
                --with-readline=${STAGING_LIBDIR}/.. \
                ac_cv_sys_symbol_underscore=no"

# Force gcc's traditional handling of inline to avoid issues with gcc 5
CFLAGS += "-fgnu89-inline"

do_install_append () {
	install -d ${D}${docdir}/${PN}
	install -d ${D}${base_libdir}/udev/rules.d

	mv ${D}${datadir}/${PN}/* ${D}/${docdir}/${PN}/ || :
	mv ${D}${prefix}/doc/* ${D}/${docdir}/${PN}/ || :
	install -m 0755 ${S}/tools/lspgpot ${D}${bindir}
	install -m 0644 ${S}/debian/gnupg.udev \
		${D}/${base_libdir}/udev/rules.d/60-gnupg.rules
}

# split out gpgv from main package
RDEPENDS_${PN} = "gpgv"
PACKAGES =+ "gpgv"
FILES_gpgv = "${bindir}/gpgv"

PACKAGECONFIG ??= ""
PACKAGECONFIG[curl] = "--with-libcurl=${STAGING_LIBDIR},--without-libcurl,curl"
PACKAGECONFIG[libusb] = "--with-libusb=${STAGING_LIBDIR},--without-libusb,libusb"


DESCRIPTION = "Opencv : The Open Computer Vision Library"
HOMEPAGE = "http://sourceforge.net/projects/opencvlibrary"
SECTION = "libs"
PRIORITY = "optional"
LICENSE = "GPLv2"

ARM_INSTRUCTION_SET = "arm"

PR = "r1"

DEPENDS = "libtool jpeg zlib libpng tiff glib-2.0 gtk+ libv4l"

SRCREV = "fb7cc87ed6a7425f3edc58e2d1eb44599496ac09"
SRC_URI = "git://github.com/nzjrs/opencv.git;protocol=git;branch=libv4l"
PV = "1.1.0+git${SRCREV}"

S = "${WORKDIR}/git"

inherit distutils-base autotools pkgconfig

EXTRA_OECONF = " \
		--disable-debug \
		--with-gtk \
		--disable-apps \
		--with-swig=no \
		--with-python=no \
		"

export BUILD_SYS
export HOST_SYS

python populate_packages_prepend () {
	cv_libdir = bb.data.expand('${libdir}', d)
	cv_libdir_dbg = bb.data.expand('${libdir}/.debug', d)
	do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
	do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
	do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
	do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
}

FILES_${PN} = ""
FILES_${PN}-doc += "${datadir}/opencv/"
FILES_${PN}-dbg += "${libdir}/.debug"
FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"

do_stage() {
	autotools_stage_all
}


DESCRIPTION = "Test Utilities for Firefly MV Cameras"
HOMEPAGE = "http://github.com/nzjrs/firefly-mv/tree/master"
SECTION = "console/utils"
PRIORITY = "optional"
LICENSE = "GPL"
PR = "r1"

DEPENDS = "libdc1394"

SRCREV = "a72f8669a43533c66aa7efc3a44cdfc5a4b75118"
SRC_URI = "git://github.com/nzjrs/firefly-mv.git;protocol=git;branch=master"

inherit pkgconfig

S = "${WORKDIR}/git"

do_compile() {
	oe_runmake camls
}

do_install () {
	install -d ${D}${bindir}
	install -m 0755 camls ${D}${bindir}/
}


SUMMARY = "Internet Protocol bandwidth measuring tool"
DESCRIPTION = "\
	Iperf is a modern alternative for measuring TCP and UDP bandwidth performance, \
	allowing the tuning of various parameters and characteristics. \
"
HOMEPAGE = "http://iperf.sourceforge.net/"
PR = "r0"
inherit debian-package

LICENSE = "NCSA"
LIC_FILES_CHKSUM = "\
	file://COPYING;md5=e8478eae9f479e39bc34975193360298"

#fix the dupplicate install dist-man-Mans (iperf.1)
SRC_URI += "file://dist-man-install_debian.patch"
inherit autotools


DESCRIPTION = "OPKG Package Manager Utilities"
SECTION = "base"
PRIORITY = "optional"
LICENSE = "GPL"
RDEPENDS_${PN} = "python"
RDEPENDS_virtclass_native = ""
SRCREV = "4595"
PV = "0.0+svnr${SRCPV}"
PR = "r4"

BBCLASSEXTEND = "native"

SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=opkg-utils;proto=http"

TARGET_CC_ARCH += "${LDFLAGS}"
S = "${WORKDIR}/opkg-utils"

inherit autotools

S = "${WORKDIR}/opkg-utils"

Fix typo and drop duplicate S entry

DESCRIPTION = "OPKG Package Manager Utilities"
SECTION = "base"
PRIORITY = "optional"
LICENSE = "GPL"
RDEPENDS_${PN} = "python"
RDEPENDS_virtclass-native = ""
SRCREV = "4595"
PV = "0.0+svnr${SRCPV}"
PR = "r5"

BBCLASSEXTEND = "native"

SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=opkg-utils;proto=http"

TARGET_CC_ARCH += "${LDFLAGS}"
S = "${WORKDIR}/opkg-utils"

inherit autotools


SUMMARY = "wayland compositor infrastructure"
DESCRIPTION = "\
Wayland is a protocol for a compositor to talk to its clients as well \
as a C library implementation of that protocol. The compositor can be \
a standalone display server running on Linux kernel modesetting and   \
evdev input devices, an X application, or a wayland client \
itself. The clients can be traditional applications, X servers \
(rootless or fullscreen) or other display servers. \
"
HOMEPAGE = "http://wayland.freedesktop.org/"
PR = "r0"
inherit debian-package

LICENSE = "MIT"
LIC_FILES_CHKSUM = "\
	file://COPYING;md5=1d4476a7d98dd5691c53d4d43a510c72"
inherit autotools pkgconfig

DEPENDS_class-target += "${PN}-native libffi expat"
#building documentation depend on doxygen which is not yet in meta-debian
EXTRA_OECONF += "--disable-documentation"
EXTRA_OEMAKE_class-target += "wayland_scanner=${STAGING_BINDIR_NATIVE}/wayland-scanner"
# Debian's source code isn't contains patch file
DEBIAN_PATCH_TYPE = "nopatch"

# Avoid a parallel build problem
PARALLEL_MAKE = ""
do_install_append() {
	#remove the unwanted files
	rm ${D}${libdir}/*.la
}
PACKAGES =+ "lib${PN}-client lib${PN}-cursor lib${PN}-server"

FILES_lib${PN}-cursor += "${libdir}/libwayland-cursor.so.*"
FILES_lib${PN}-server += "${libdir}/libwayland-server.so.*"
FILES_lib${PN}-client += "${libdir}/libwayland-client.so.*"
FILES_${PN}-dev += "${datadir}/${PN} ${bindir}"
PKG_${PN}-dev = "lib${PN}-dev"

BBCLASSEXTEND = "native"


Add recipe for new version 6-2017-q1-update

DESCRIPTION = "Baremetal GCC for ARM"
LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"

LIC_FILES_CHKSUM = "file://share/doc/gcc-arm-none-eabi/license.txt;md5=c224e429f53a1a6ce70bf8986ea2990b"

inherit native
require recipes-ti/includes/ti-paths.inc

SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/6_1-2017q1/gcc-arm-none-eabi-6-2017-q1-update-linux.tar.bz2;name=gcc-arm-none"

SRC_URI[gcc-arm-none.md5sum] = "30004c24f4632bc594952462bb0cd1c9"
SRC_URI[gcc-arm-none.sha256sum] = "e7aad2579f02e3b095c6d7899ca5e6a70cfa9b8a8cbd6abd868da849d416c2eb"

S = "${WORKDIR}/gcc-arm-none-eabi-6-2017-q1-update"

do_install() {
    install -d ${D}${GCC_ARM_NONE_TOOLCHAIN_RECIPE}
    cp -r ${S}/. ${D}${GCC_ARM_NONE_TOOLCHAIN_RECIPE}
}

FILES_${PN} = "${GCC_ARM_NONE_TOOLCHAIN_RECIPE}/*"

INSANE_SKIP_${PN} = "already-stripped"


DESCRIPTION = "The dbench (disk) and tbench (TCP) benchmarks"
DESCRIPTION_dbench = "Filesystem load benchmark"
DESCRIPTION_tbench = "TCP load benchmark"
HOMEPAGE = "http://samba.org/ftp/tridge/dbench/"
LICENSE = "GPL"
PR = "r0"

SRC_URI = "\
  http://samba.org/ftp/tridge/dbench/dbench-${PV}.tar.gz \
  file://destdir.patch \
  file://makefile.patch"

inherit autotools

PACKAGES =+ "tbench tbench-dbg"

FILES_tbench = "${bindir}/tbench*"
FILES_tbench-dbg += "${bindir}/.debug/tbench*"

SRC_URI[md5sum] = "1fe56ff71b9a416f8889d7150ac54da4"
SRC_URI[sha256sum] = "6001893f34e68a3cfeb5d424e1f2bfef005df96a22d86f35dc770c5bccf3aa8a"

Add popt to DEPENDS, fix GNU_HASH, add clients.txt to tbench

DESCRIPTION = "The dbench (disk) and tbench (TCP) benchmarks"
DESCRIPTION_dbench = "Filesystem load benchmark"
DESCRIPTION_tbench = "TCP load benchmark"
HOMEPAGE = "http://samba.org/ftp/tridge/dbench/"
LICENSE = "GPL"
DEPENDS = "popt"
PR = "r1"

SRC_URI = "\
  http://samba.org/ftp/tridge/dbench/dbench-${PV}.tar.gz \
  file://destdir.patch \
  file://makefile.patch"

inherit autotools

PACKAGES =+ "tbench tbench-dbg"

TARGET_CC_ARCH += "${LDFLAGS}"

FILES_tbench = "${bindir}/tbench* ${prefix}/share/client.txt"
FILES_tbench-dbg += "${bindir}/.debug/tbench*"

SRC_URI[md5sum] = "1fe56ff71b9a416f8889d7150ac54da4"
SRC_URI[sha256sum] = "6001893f34e68a3cfeb5d424e1f2bfef005df96a22d86f35dc770c5bccf3aa8a"


SUMMARY = "A new modern implementation of traceroute(8) utility for Linux systems"
DESCRIPTION = "The traceroute utility displays the route used by IP packets on \
their way to a specified network (or Internet) host.  Traceroute displays \
the IP number and host name (if possible) of the machines along the \
route taken by the packets.  Traceroute is used as a network debugging \
tool.  If you're having network connectivity problems, traceroute will \
show you where the trouble is coming from along the route."
SECTION = "console/network"
HOMEPAGE = "http://traceroute.sourceforge.net/"
LICENSE = "GPL-2.0 LGPL-2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
                    file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff"

inherit update-alternatives

SRC_URI = "${SOURCEFORGE_MIRROR}/traceroute/traceroute/traceroute-2.0.18/traceroute-2.0.18.tar.gz \
          "

SRC_URI[md5sum] = "b7254149b7f081cce07f4b9e065ba5ef"
SRC_URI[sha256sum] = "5994a88520927fefe3c9754aaf1e02b4d0f3f8fb1f521a68fa86215c3fcab9ef"

do_compile() {
    export LDFLAGS="${TARGET_LDFLAGS} -L${S}/libsupp"
    oe_runmake "env=yes"
}

do_install() {
    install -d ${D}${bindir}
    install -m755 ${PN}/${PN} ${D}${bindir}

    install -m755 wrappers/tcptraceroute ${D}${bindir}

    install -d ${D}${mandir}
    install -p -m644 ${PN}/${PN}.8 ${D}${mandir}
    pushd ${D}${mandir}
    ln -s ${PN}.8 ${PN}6.8
    ln -s ${PN}.8 tcptraceroute.8
    popd

}

ALTERNATIVE_${PN} = "traceroute6"
ALTERNATIVE_LINK_NAME[traceroute6] = "${bindir}/traceroute"


DESCRIPTION = "Music Player Daemon (mpd)"
HOMEPAGE = "http://www.musicpd.org"
LICENSE = "GPLv2"
MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
SECTION = "console/multimedia"
DEPENDS = "libvorbis libogg libid3tag libao zlib libmikmod libmad flac audiofile"
PR = "r2"

SRC_URI = "${SOURCEFORGE_MIRROR}/musicpd/mpd-${PV}.tar.gz"

inherit autotools

# Setting --enable-mpd-{mad,id3tag} causes local caches of the libraries to
# be built, instead we use the OE built versions which should be installed
# in staging - remove the --with and replace with --enable to use the local
# versions.

EXTRA_OECONF = "--enable-ogg \
		--with-id3tag-libraries=${STAGING_LIBDIR} \
		--with-id3tag-includes=${STAGING_INCDIR} \
		--with-mad-libraries=${STAGING_LIBDIR} \
		--with-mad-includes=${STAGING_INCDIR} \
		--without-faad"


require pkgconfig.inc

PR = "${INC_PR}.1"

DEPENDS += "glib-2.0"
EXTRA_OECONF = "--with-installed-glib"

Bump PR to keep incremental versioning.

require pkgconfig.inc

PR = "${INC_PR}.3"

DEPENDS += "glib-2.0"
EXTRA_OECONF = "--with-installed-glib"


DESCRIPTION = "Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs."
DEPENDS = "pkgconfig gtk+"
RDEPENDS = "libxfce4util libxfcegui4"

SECTION = "x11"
LICENSE = "GPL-2"
PR = "r1"

inherit xfce46

XFCE_VERSION = "4.6.1"

SRC_URI = "http://files.uvena.de/${PN}/${PN}-${PV}.tar.bz2"

do_compile() {
   oe_runmake
}

Add build and runtime depends on gvfs (without it, the app is not a lot of use).

DESCRIPTION = "Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs."
DEPENDS = "pkgconfig gtk+ gvfs"
RDEPENDS = "libxfce4util libxfcegui4 gvfs"

SECTION = "x11"
LICENSE = "GPL-2"
PR = "r2"

inherit xfce46

XFCE_VERSION = "4.6.1"

SRC_URI = "http://files.uvena.de/${PN}/${PN}-${PV}.tar.bz2"

do_compile() {
   oe_runmake
}


SUMMARY = "Stand-alone system tray"
DESCRIPTION = "Stalonetray is a stand-alone freedesktop.org and KDE system tray"
SECTION = "x11/graphics"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"

DEPENDS = "virtual/libx11"

SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2"

SRC_URI[md5sum] = "ae95dbbacc2620e032acea8abab8c9ef"
SRC_URI[sha256sum] = "36548a588b2d466913423245dda6ffb6313132cd0cec635a117d37b3dab5fd4c"

inherit autotools


LICENSE = "GPL"
DESCRIPTION = "Python gstreamer Bindings"
SECTION = "devel/python"
HOMEPAGE = "http://gstreamer.freedesktop.org"
PRIORITY = "optional"
#DEPENDS = "gstreamer"
#RDEPENDS = "gstreamer"

SRC_URI = "http://gstreamer.freedesktop.org/src/gst-python/gst-python-${PV}.tar.gz"
S = "${WORKDIR}/gst-python-${PV}"

inherit autotools pkgconfig

do_configure() {
	oe_runconf
}


SUMMARY = "Validating XML parser library for C++"
DESCRIPTION = "\
	Xerces-C++ is a validating XML parser written in a portable subset of C++.\
	Xerces-C++ makes it easy to give your application the ability to read and \
	write XML data. A shared library is provided for parsing, generating,\
	manipulating, and validating XML documents. Xerces-C++ is faithful to \
	the XML 1.0 recommendation and associated standards (DOM 1.0, DOM 2.0,\
	SAX 1.0, SAX 2.0, Namespaces, XML Schema Part 1 and Part 2). \
	It also provides experimental implementations of XML 1.1 and DOM Level 3.0. \
	The parser provides high performance, modularity,and scalability.\ "

LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"

PR = "r0"

inherit debian-package
inherit autotools
PV = "3.1.1"

INSANE_SKIP_${PN} = "dev-deps"
INSANE_SKIP_libxerces-c-samples = "dev-deps"

PACKAGECONFIG ??= "curl icu"
PACKAGECONFIG[curl] = "--with-curl=${STAGING_DIR},--with-curl=no,curl"
PACKAGECONFIG[icu] = "--with-icu=${STAGING_DIR},--with-icu=no,icu"

PACKAGES =+ "libxerces-c-samples"

FILES_libxerces-c-samples =+ " \
	${bindir}/*"
FILES_${PN} += " \
	${libdir}/libxerces-c-3.1.so"
FILES_${PN}-dev = " \
	${libdir}/*.la \
	${libdir}/pkgconfig \
	${libdir}/libxerces-c.so \
	${includedir}"

PKG_${PN}-dev = "libxerces-c-dev"
PKG_${PN} = "libxerces-c3.1"
RPROVIDES_${PN}-dev += "libxerces-c-dev"
RPROVIDES_${PN} += "libxerces-c3.1"
RDEPENDS_${PN}-dev += "libicu-dev libc-dev"


Add recipe for libcrypt-openssl-bignum-perl package

#
# base recipe: https://github.com/openembedded/openembedded/blob/master/\
# recipes/perl/libcrypt-openssl-bignum-perl_0.04.bb
#

SUMMARY = "\
    Perl module to access OpenSSL multiprecision integer arithmetic libraries"
DESCRIPTION = "\
    Presently, many though not all of the arithmetic operations that OpenSSL	\
    provides are exposed to Perl via Crypt::OpenSSL::Bignum. In addition, this	\
    module can be used to provide access to bignum values produced by other	\
    OpenSSL modules, such as key parameters from Crypt::OpenSSL::RSA. 		\
    "
HOMEPAGE = " http://perl-openssl.sourceforge.net/"

PR = "r0"
inherit debian-package

LICENSE = "Artistic-1.0 | GPL-1.0+"

LIC_FILES_CHKSUM = "file://LICENSE;md5=385c55653886acac3821999a3ccd17b3"

#cpan is perl modules that use Makefile.PL to build system
inherit cpan

DEPENDS += "openssl"

#install follow debian jessie
do_install_append () {
	mv ${D}${libdir}/perl/vendor_perl/* ${D}${libdir}/perl/
	rm -r ${D}${libdir}/perl/vendor_perl
	mv ${D}${libdir}/perl/5.20.2 ${D}${libdir}/perl/5.20
	mv ${D}${libdir}/perl ${D}${libdir}/perl5
	chmod 0644 ${D}${libdir}/perl5/5.20/auto/Crypt/OpenSSL/Bignum/Bignum.so
}
FILES_${PN} = "${libdir}/*"
FILES_${PN}-dbg += "${libdir}/perl5/5.20/auto/Crypt/OpenSSL/Bignum/.debug"


Add recipe for OpenGL Mathematics library

SUMMARY = "OpenGL Mathematics Library"
DESCRIPTION = "OpenGL Mathematics (GLM) is a header only C++ \
mathematics library for graphics software based on the OpenGL \
Shading Language (GLSL) specifications."
HOMEPAGE = "https://glm.g-truc.net"
BUGTRACKER = "https://github.com/g-truc/glm/issues"

SECTION = "libs"

LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://copying.txt;md5=4431606d144252143c9c3df384a74cad"

SRC_URI = "git://github.com/g-truc/glm;protocol=https"

SRCREV = "5dcc56489e1b66dfd5bca751fa9b8dc68059e008"

S = "${WORKDIR}/git"

inherit cmake

FILES_${PN}-dev += "${libdir}/cmake"


Add (hack) recipe to enable autologin (timed) for gdm

DESCRIPTION = "Append Autologin to GDM config (custom.conf)"

PACKAGE_ARCH = "all"
ALLOW_EMPTY_${PN} = "1"

pkg_postinst_${PN}() {
#!/bin/sh
grep "TimedLogin" $D/etc/gdm/custom.conf
if [ $? -eq 0 ]; then
   echo "NOTE:: custom.conf already has 'TimedLogin' configured - not patching
else
    cat >> $D/etc/gdm/custom.conf <<EOF

[daemon]
TimedLoginEnable=true
TimedLogin=root
TimedLoginDelay=10

EOF
fi
}

RDEPENDS_${PN} = "gdm"


DESCRIPTION = "Common Opie Sounds"
SECTION = "opie/base"
PRIORITY = "optional"
MAINTAINER = "Team Opie <opie@handhelds.org>"
LICENSE = "GPL"

SRC_URI = "${HANDHELDS_CVS};module=opie/sounds;tag=${TAG}"
S = "${WORKDIR}/sounds"

SOUNDS = "alarm touchsound keysound"

do_install() {
	install -d ${D}${palmtopdir}/sounds/
	for i in ${SOUNDS}
	do
		install $i.wav ${D}${palmtopdir}/sounds/$i.wav
	done
}

FILES_${PN} = "${palmtopdir}"

Fix TAG for opie-sounds the same as opie-pics

DESCRIPTION = "Common Opie Sounds"
SECTION = "opie/base"
PRIORITY = "optional"
MAINTAINER = "Team Opie <opie@handhelds.org>"
LICENSE = "GPL"

TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '_')}"
SRC_URI = "${HANDHELDS_CVS};module=opie/sounds;tag=${TAG}"
S = "${WORKDIR}/sounds"

SOUNDS = "alarm touchsound keysound"

do_install() {
	install -d ${D}${palmtopdir}/sounds/
	for i in ${SOUNDS}
	do
		install $i.wav ${D}${palmtopdir}/sounds/$i.wav
	done
}

FILES_${PN} = "${palmtopdir}"


SUMMARY = "Sub Band CODEC library"
DESCRIPTION = "This provides the library and tool which operate SBC \
(sub band codec) in A2DP (the Advanced Audio Distribution Profile)."
HOMEPAGE = "http://www.bluez.org/"

inherit debian-package
PV = "1.2"

LICENSE = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
                    file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09"

inherit autotools pkgconfig

# Base on debian/rules
EXTRA_OECONF += "--disable-tester --disable-silent-rules"

#Empty DEBIAN_QUILT_PATCHES to avoid error :debian/patches not found
DEBIAN_QUILT_PATCHES = ""

PACKAGES =+ "${PN}-tools"

FILES_${PN}-tools = "${bindir}/*"
DEBIAN_NOAUTONAME_${PN}-tools = "1"
RPROVIDES_${PN} += "libsbc1"
RPROVIDES_${PN}-dev += "libsbc-dev"


DESCRIPTION = "USB Webcam driver for spca5xx chipset family supporting \
over 100 models of camera"
PRIORITY = "optional"
SECTION = "kernel/modules"
LICENSE = "GPL"

PR = "r1"

SRC_URI = "http://mxhaard.free.fr/spca50x/Download/oldrelease/${PN}-${PV}.tar.gz \
           file://Makefile.patch;patch=1 \
	   file://MS.patch;patch=1"

S = "${WORKDIR}/${PN}-${PV}"

inherit module

do_compile () {
        unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
        oe_runmake 'KERNELDIR=${STAGING_KERNEL_DIR}' \
                   'CC=${KERNEL_CC}' \
                   'LD=${KERNEL_LD}'
}

do_install() {
        install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media
        install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media
}


Add support for next generation AWS IoT SDK for Python

DESCRIPTION = "AWS IoT SDK based on the AWS Common Runtime"
HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python-v2"
AUTHOR = "Amazon Web Services"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"

inherit pypi setuptools3

RDEPENDS_${PN} += "\
    ${PYTHON_PN}-asyncio \
    ${PYTHON_PN}-datetime \
    ${PYTHON_PN}-json \
    ${PYTHON_PN}-typing \
"

RDEPENDS_${PN} += "\
    ${PYTHON_PN}-awscrt \
"

PR = "r0"

SRC_URI[sha256sum] = "4ea6386fe5870ecbb0af46dccff30e30f22abe5bca255305bf35d00820a175d1"


SUMMARY = "Small set of multi-purpose passive network monitoring tools"
HOMEPAGE = "http://www.pmacct.net/"
SECTION = "network"
LICENSE = "GPL-2"
LIC_FILES_CHKSUM = "file://COPYING;md5=56015ca09d32459cf5a3c0e574f86f16"

SRC_URI = "http://www.pmacct.net/${PN}-${PV}.tar.gz"
SRC_URI[md5sum] = "5dc1dab96fbd3937b49152d1bdc2913f"
SRC_URI[sha256sum] = "eb332a6812d1e02134900a1d115a24f315de7c861a9b63093c1226753486cbe7"

PR = "r1"

DEPENDS = "libpcap zlib"

PACKAGE_ARCH = "${MACHINE_ARCH}"

inherit autotools pkgconfig

EXTRA_OECONF = "--with-pcap-includes=${STAGING_INCDIR}"


DESCRIPTION = "PyXDG is a python library to access freedesktop.org standards"
SECTION = "devel/python"
LICENSE = "GPL"

SRC_URI = "http://www.freedesktop.org/~lanius/pyxdg-${PV}.tar.gz"
S = "${WORKDIR}/pyxdg-${PV}"

inherit distutils


Add GNU FreeFont (Free UCS Outline Fonts) package.

require ttf.inc

DESCRIPTION="TrueType Unicode fonts from the Free UCS Outline Fonts Project"
HOMEPAGE="http://savannah.nongnu.org/projects/freefont/"

PR = "r1"

SRC_URI = "http://ftp.gnu.org/gnu/freefont/freefont-ttf-${PV}.tar.gz"

S = "${WORKDIR}/freefont-${PV}"

FILES_${PN}-doc = "${datadir}/doc/ttf-freefont/README \
                   ${datadir}/doc/ttf-freefont/AUTHORS \
"

FILES_${PN} = "${datadir}"

do_install_append() {
	install -d ${D}${datadir}/doc/
	install -d ${D}${datadir}/doc/ttf-freefont
	install -m 0644 ${S}/README ${D}${datadir}/doc/ttf-freefont
	install -m 0644 ${S}/AUTHORS ${D}${datadir}/doc/ttf-freefont
}


inherit ti-pdk

require traceframework.inc

PR = "${INC_PR}.1"

DEPENDS_append = " uia \
"

XDCPATH_append = ";${UIA_INSTALL_DIR}/packages"


SUMMARY = "A console development image with some C/C++ dev tools"
HOMEPAGE = "http://www.jumpnowtek.com"

IMAGE_FEATURES += "package-management"
IMAGE_LINGUAS = "en-us"

inherit image

CORE_OS = " \
    openssh openssh-keygen openssh-sftp-server \
    packagegroup-core-boot \
    psplash \
    term-prompt \
    tzdata \
 "

KERNEL_EXTRA_INSTALL = " \
    kernel-modules \
    load-modules \
 "

WIFI_SUPPORT = " \
    bbgw-wireless \
    crda \
    iw \
    linux-firmware-ath9k \
    linux-firmware-ralink \
    linux-firmware-rtl8192ce \
    linux-firmware-rtl8192cu \
    linux-firmware-rtl8192su \
    linux-firmware-wl18xx \
    wireless-tools \
    wpa-supplicant \
 "

DEV_SDK_INSTALL = " \
    binutils \
    binutils-symlinks \
    cmake \
    coreutils \
    cpp \
    cpp-symlinks \
    diffutils \
    file \
    g++ \
    g++-symlinks \
    gcc \
    gcc-symlinks \
    gettext \
    git \
    ldd \
    libstdc++ \
    libstdc++-dev \
    libtool \
    make \
    pkgconfig \
    python3-modules \
 "

DEV_EXTRAS = " \
    ntp \
    ntp-tickadj \
    serialecho \
    spiloop \
 "

EXTRA_TOOLS_INSTALL = " \
    bzip2 \
    cursor-blink \
    devmem2 \
    dosfstools \
    ethtool \
    findutils \
    i2c-tools \
    iperf3 \
    iptables \
    less \
    nano \
    netcat \
    procps \
    rsync \
    sysfsutils \
    tcpdump \
    tree \
    unzip \
    usbutils usbutils-dev usbutils-python \
    util-linux \
    util-linux-blkid \
    wget \
    xz \
    zip \
 "

USB_TOOLS = " \
    libpcap libpcap-dev \
    libusb1 \
    python3-pyusb \
    usbutils usbutils-dev usbutils-python \
    usbproxy \
"

IMAGE_INSTALL += " \
    ${CORE_OS} \
    ${DEV_SDK_INSTALL} \
    ${DEV_EXTRAS} \
    ${EXTRA_TOOLS_INSTALL} \
    ${KERNEL_EXTRA_INSTALL} \
    ${USB_TOOLS} \
    ${WIFI_SUPPORT} \
 "

set_local_timezone() {
    ln -sf /usr/share/zoneinfo/EST5EDT ${IMAGE_ROOTFS}/etc/localtime
}

disable_bootlogd() {
    echo BOOTLOGD_ENABLE=no > ${IMAGE_ROOTFS}/etc/default/bootlogd
}

ROOTFS_POSTPROCESS_COMMAND += " \
    set_local_timezone ; \
    disable_bootlogd ; \
 "

export IMAGE_BASENAME = "console-image"


DESCRIPTION = "A golang library of common cryptographic constants"
HOMEPAGE = "https://github.com/golang/crypto/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"

PKG_NAME = "github.com/golang/crypto"
SRC_URI = "git://${PKG_NAME}.git"

SRCREV = "1e856cbfdf9bc25eefca75f83f25d55e35ae72e0"

S = "${WORKDIR}/git"

#Note: As we are using a git mirror of the repo we setup the directory
#with the original Mercurial repo name
do_install() {
        install -d ${D}${prefix}/local/go/src/golang.org/x/crypto
        cp -a ${S}/* ${D}${prefix}/local/go/src/golang.org/x/crypto/
}

SYSROOT_PREPROCESS_FUNCS += "go_net_sysroot_preprocess"

go_net_sysroot_preprocess () {
    install -d ${SYSROOT_DESTDIR}${prefix}/local/go/src/golang.org/x/crypto
    cp -a ${D}${prefix}/local/go/src/golang.org/x/crypto ${SYSROOT_DESTDIR}${prefix}/local/go/src/golang.org/x/
}

FILES_${PN} += "${prefix}/local/go/src/golang.org/x/crypto/*"


SUMMARY = "Internet Protocol bandwidth measuring tool"
DESCRIPTION = "Iperf3 is a tool for performing network throughput measurements. It can \
 test either TCP or UDP throughput. \
 This is a new implementation that shares no code with the original \
 iperf from NLANR/DAST and also is not backwards compatible."
HOMEPAGE = "http://software.es.net/iperf/"

PR = "r0"
inherit debian-package

LICENSE = "BSD-3-Clause & MIT & NCSA"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9ceb58c78d73a576a15ad224f23a6cdc \
                    file://src/cjson.c;endline=20;md5=d3f527358d19c4f3be174cb561159e40 \
                    file://src/locale.c;endline=46;md5=c7ff631c2856f8afce226fac3888be9f"

# Avoid a parallel build problem
PARALLEL_MAKE = ""
inherit autotools-brokensep

PACKAGES =+ "libiperf"
FILES_libiperf = "${libdir}/libiperf${SOLIBS}"

DEBIANNAME_${PN}-dev = "libiperf-dev"


SUMMARY = "Go package for representing a list of errors as a single error"
HOMEPAGE = "https://github.com/hashicorp/go-multierror"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d44fdeb607e2d2614db9464dbedd4094"

PKG_NAME = "github.com/hashicorp/go-multierror"
SRC_URI = "git://${PKG_NAME}.git"
SRCREV = "56912fb08d85084aa318edcf2bba735b97cf35c5"

S = "${WORKDIR}/git"

do_install() {
    install -d ${D}${prefix}/local/go/src/${PKG_NAME}
    cp -a ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
}

SYSROOT_PREPROCESS_FUNCS += "go_multierror_sysroot_preprocess"

go_multierror_sysroot_preprocess () {
    install -d ${SYSROOT_DESTDIR}${prefix}/local/go/src/${PKG_NAME}
    cp -a ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}

FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"


require recipes-sato/images/core-image-sato.bb

IMAGE_INSTALL += " \
	gst-plugins-good \
	gst-plugins-good-isomp4 \
	gst-plugins-good-video4linux2 \
	gst-plugins-bad \
	gst-plugins-bad-asfmux \
	gst-plugins-bad-fbdevsink \
	gst-plugins-bad-h264parse \
	gst-plugins-bad-faad \
	gst-plugins-bad-videoparsersbad \
	gst-plugins-ugly \
	gst-plugins-ugly-asf \
	gst-openmax \
"


require matrix-tui.inc

SRCREV = "35"
PR = "${INC_PR}.3"

Update SRCREV - makefile update

require matrix-tui.inc

SRCREV = "37"
PR = "${INC_PR}.4"


SUMMARY = "A development image with bluetooth tools"
HOMEPAGE = "http://www.jumpnowtek.com"
LICENSE = "MIT"

require console-image.bb

BLUETOOTH_TOOLS = " \
    bluez4 \
    bluez-hcidump \
 "

IMAGE_INSTALL += " \
    ${BLUETOOTH_TOOLS} \
 "

export IMAGE_BASENAME = "bluetooth-image"


SUMMARY = "library to load .glade files at runtime"
DESCRIPTION = "\
This library allows one to load externally stored user interfaces into \
programs. This allows alteration of the interface without recompilation \
of the program. \
The interfaces can also be edited with GLADE. \
"

PR = "r0"
inherit debian-package

LICENSE = "LGPLv2+"
LIC_FILES_CHKSUM = "\
	file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"

inherit autotools-brokensep pkgconfig
DEPENDS += "gtk+ atk libxml2 glib-2.0"

FILES_${PN} += "${datadir}/xml"
RDEPENDS_${PN}-dev += "gtk+-dev libxml2-dev python"
DEBIANNAME_${PN} = "${PN}-0"


LICENSE = "GPLv2"
DEPENDS = "libxml-simple-perl-native"

SRC_URI = "http://tango.freedesktop.org/releases/icon-naming-utils-${PV}.tar.gz"

S = "${WORKDIR}/icon-naming-utils-${PV}"

inherit autotools native

SRC_URI[md5sum] = "4abe604721ce2ccb67f451aa7ceb44d6"
SRC_URI[sha256sum] = "1cb49ce6a04626939893a447da696f20003903d61bd80c6d74d29dd79ca340d2"

Fix long path to perl in icon-name-mapping

LICENSE = "GPLv2"
DEPENDS = "libxml-simple-perl-native"
PR = "r1"
SRC_URI = "http://tango.freedesktop.org/releases/icon-naming-utils-${PV}.tar.gz"

S = "${WORKDIR}/icon-naming-utils-${PV}"

inherit autotools native

do_configure_append() {
	# replace paths to STAGING_BINDIR_NATIVE/perl with ${bindir}/perl
	sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${S}/icon-name-mapping.pl.in
}

SRC_URI[md5sum] = "4abe604721ce2ccb67f451aa7ceb44d6"
SRC_URI[sha256sum] = "1cb49ce6a04626939893a447da696f20003903d61bd80c6d74d29dd79ca340d2"


Use this to compile full image and produce extra-packages

# Creates the "feed", packages not required for the image
# but that should be built for the feed so that other
# components may use them and install on demand.

require blackpole-image.bb

DEPENDS += "${OPTIONAL_PACKAGES}"


Add debug image with no modules for kernel dev work

DESCRIPTION = "A console kernel development image, no modules"
LICENSE = "MIT"

IMAGE_FEATURES += "package-management"
IMAGE_LINGUAS = "en-us"

inherit core-image

CORE_OS = " \
    busybox-hwclock \
    task-core-ssh-openssh openssh-keygen \
    term-prompt \
    tzdata \
 "

DEV_SDK_INSTALL = " \
    binutils \
    binutils-symlinks \
    coreutils \
    cpp \
    cpp-symlinks \
    diffutils \
    file \
    gcc \
    gcc-symlinks \
    g++ \
    g++-symlinks \
    gettext \
    git \
    ldd \
    libstdc++ \
    libstdc++-dev \
    libtool \
    make \
    pkgconfig \
 "

EXTRA_TOOLS_INSTALL = " \
    bzip2 \
    ethtool \
    findutils \
    i2c-tools \
    iftop \
    iperf \
    htop \
    less \
    procps \
    sysfsutils \
    tcpdump \
    unzip \
    wget \
    zip \
 "

IMAGE_INSTALL += " \
    ${CORE_OS} \
    ${DEV_SDK_INSTALL} \
    ${EXTRA_TOOLS_INSTALL} \
 "

set_local_timezone() {
    ln -sf /usr/share/zoneinfo/EST5EDT ${IMAGE_ROOTFS}/etc/localtime
}

disable_bootlogd() {
    echo BOOTLOGD_ENABLE=no > ${IMAGE_ROOTFS}/etc/default/bootlogd
}

ROOTFS_POSTPROCESS_COMMAND += " \
    set_local_timezone ; \
    disable_bootlogd ; \
 "

export IMAGE_BASENAME = "duovero-debug-image"


LICENSE = "GPL"
DESCRIPTION = "A cross platform audio library"
HOMEPAGE = "http://www.xiph.org/ao/"
SECTION = "libs"
PRIORITY = "optional"
PR = "r0"

SRC_URI = "http://www.xiph.org/ao/src/libao-${PV}.tar.gz"

inherit autotools pkgconfig

EXTRA_OECONF = "--disable-esd --disable-esdtest \
		--disable-alsa --disable-alsa09 \
		--disable-arts --disable-nas"

do_stage() {
	install -d ${STAGING_INCDIR}/ao
	install -m 0644 ${S}/include/ao/ao.h ${S}/include/ao/os_types.h \
			${S}/include/ao/plugin.h ${STAGING_INCDIR}/ao/

	oe_libinstall -so -C src libao ${STAGING_LIBDIR}
	install -d ${STAGING_DATADIR}/aclocal
	install -m 0644 ao.m4 ${STAGING_DATADIR}/aclocal/
}

FILES_${PN} += "${libdir}/ao/plugins-2/*.so"


SUMMARY = "This package contains the core Xapian runtime library"
DESCRIPTION = "\
	The Xapian search engine library is a highly adaptable toolkit which allows \
	developers to easily add advanced indexing and search facilities to their own \
	applications.  It implements the probabilistic model of information retrieval, \
	and provides facilities for performing ranked free-text searches, relevance \
	eedback, phrase searching, boolean searching, stemming, and simultaneous \
	pdate and searching.  It is highly scalable, and is capable of working with \
	collections containing hundreds of millions of documents. \
"
HOMEPAGE = "http://xapian.org/"
PR = "r0"
inherit debian-package

LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "\
	file://COPYING;md5=4325afd396febcb659c36b49533135d4"
inherit autotools

#install follow Debian jessie
do_install_append() {
	install -d ${D}${libdir}/xapian-examples/examples
	mv ${D}${bindir}/simple* ${D}${libdir}/xapian-examples/examples/
}
PACKAGES =+ "libxapian22 xapian-examples"

DEBIANNAME_${PN} = "xapian-tools"
DEBIANNAME_${PN}-dev = "libxapian-dev"
DEBIANNAME_${PN}-doc = "xapian-doc"
DEBIANNAME_${PN}-dbg = "libxapian22-dbg"

FILES_libxapian22 = "${libdir}/libxapian.so.*"
FILES_xapian-examples = "${libdir}/xapian-examples/examples/simple*"
FILES_${PN}-dev += "${libdir}/cmake/xapian/* ${bindir}/xapian-config"
FILES_${PN}-dbg += "${libdir}/xapian-examples/examples/.debug/*"

#follow debian/control
RDEPENDS_libxapian-dev += "libxapian22 libc6-dev"
RDEPENDS_xapian-tools += "libxapian22"


MAINTAINER = "Koen Kooi <Koen@dominion.kabel.utwente.nl>"
HOMEPAGE = "http://tapioca-voip.sourceforge.net/wiki/index.php/Tapioca"
LICENSE = "LGPL"
DEPENDS = "gtk+ glib-2.0 dbus gconf tapioca-xmpp tapioca farsight gst-plugins-farsight"

inherit autotools pkgconfig

SRC_URI = "${SOURCEFORGE_MIRROR}/tapioca-voip/${P}.tar.gz"

FILES_${PN} += "${datadir}/dbus*"

Add missing RDEPENDS to tapioca-xmpp.

MAINTAINER = "Koen Kooi <Koen@dominion.kabel.utwente.nl>"
HOMEPAGE = "http://tapioca-voip.sourceforge.net/wiki/index.php/Tapioca"
LICENSE = "LGPL"
DEPENDS = "gtk+ glib-2.0 dbus gconf tapioca-xmpp tapioca farsight gst-plugins-farsight"
RDEPENDS = "tapioca-xmpp"
PR = "r1"

inherit autotools pkgconfig

SRC_URI = "${SOURCEFORGE_MIRROR}/tapioca-voip/${P}.tar.gz"

FILES_${PN} += "${datadir}/dbus*"


#
# base recipe: http://cgit.openembedded.org/cgit.cgi/openembedded-core/tree/meta/\
#	       recipes-devtools/insserv/insserv_1.14.0.bb?h=fido
# base branch: fido
# base commit: f0873b83d693af4a103999160d67fcf25c7eedc1
#

SUMMARY = "Boot sequence organizer using LSB init.d dependencies"
DESCRIPTION = "This utility reorders the init.d boot scripts based on \
dependencies agiven in scripts'LSB comment headers, or in override files \
included in this package or added in /etc/insserv."
# There is no known home page for insserv

LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"

PR = "r0"
inherit debian-package

#Add option -D-GNU_SOURCE: The O_NOATIME variable in insserv.c \
#is depends on __USE_GNU and __USE_GNU depends on _GNU_SOURCE
CFLAGS += " -D_GNU_SOURCE"

do_install () {
	oe_runmake 'DESTDIR=${D}' install
	install -m0644 ${S}/insserv.conf ${D}${sysconfdir}/insserv.conf

	#Create /etc/bash_completion.d folder
	install -d ${D}${sysconfdir}/bash_completion.d
	chmod 0755 ${D}${sysconfdir}/bash_completion.d

	#Install /etc/bash_completion.d/insserv
	install -m 0644 ${S}/debian/insserv.bash-completion \
			${D}${sysconfdir}/bash_completion.d/insserv
}


SUMMARY = "Fast YAML 1.1 parser and emitter library"
DESCRIPTION = "LibYAML is a C library for parsing and emitting data in YAML 1.1, a \
 human-readable data serialization format."
HOMEPAGE = "http://pyyaml.org/wiki/LibYAML"

PR = "r0"
inherit debian-package

LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17"

inherit autotools
DEBIAN_NOAUTONAME_${PN}-dev = "1"


SUMMARY = "dancer's shell, or distributed shell"
DESCRIPTION = "\
	Executes specified command on a group of computers using remote shell \
	methods such as rsh or ssh. \
	dsh can parallelise job submission using several algorithms, such as using \
	fan-out method or opening as much connections as possible, or using a window \
	of connections at one time.It also supports 'interactive mode' for interactive\
	maintenance of remote hosts."
PR = "r0"
inherit debian-package

LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
inherit autotools-brokensep gettext pkgconfig
DEBIAN_PATCH_TYPE = "nopatch"

DEPENDS += "libdshconfig"
EXTRA_OECONF += "--sysconfdir=/etc/dsh --mandir=/usr/share/man"

#install follow Debian jessie
do_install_append() {
	install -d ${D}${libdir}/update-cluster
	install -d ${D}${sysconfdir}/${PN}/group
	install -d ${D}${datadir}/locale/ja/LC_MESSAGES/

	install -m 0644 ${S}/debian/machines.list ${D}${sysconfdir}/${PN}/
	ln -s ../machines.list ${D}${sysconfdir}/${PN}/group/all
	install -m 0755 ${S}/debian/dsh.updatelist ${D}${libdir}/update-cluster/
	install -m 0644 ${S}/po/ja.gmo ${D}${datadir}/locale/ja/LC_MESSAGES/dsh.mo
}
FILES_${PN} += "${libdir}/* ${datadir}/locale/*"


DESCRIPTION = "Evince is simply a document viewer"
LICENSE = "GPL"
DEPENDS = "tiff espgs poppler gtk+ libgnomeui libgnomeprint libgnomeprintui"
RDEPENDS = "espgs gconf"
RRECOMMENDS = "gnome-vfs-plugin-file"
PR = "r0"

inherit gnome pkgconfig

SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/evince/0.5/${PN}-${PV}.tar.bz2 \
          file://more-no-doc.patch;patch=1"

EXTRA_OECONF = "--disable-tiff"

Add SECTION. Make DESCRIPTION more useful.

DESCRIPTION = "Evince is a document viewer for document formats like pdf, ps, djvu."
LICENSE = "GPL"
SECTION = "x11/office"
DEPENDS = "tiff espgs poppler gtk+ libgnomeui libgnomeprint libgnomeprintui"
RDEPENDS = "espgs gconf"
RRECOMMENDS = "gnome-vfs-plugin-file"
PR = "r1"

inherit gnome pkgconfig

SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/evince/0.5/${PN}-${PV}.tar.bz2 \
          file://more-no-doc.patch;patch=1"

EXTRA_OECONF = "--disable-tiff"


Add python library pamela which supports PAM

DESCRIPTION = "Pamela: yet another Python wrapper for PAM"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=bfb663f37eb99232bc8ccfa4ea8f1202"

SRC_URI[md5sum] = "de6516118d51eb5fc97017f3b6d5c68b"
SRC_URI[sha256sum] = "1e198446a6cdd87704aa0def7621d62e7c20b0e6068e2788b9a866a8355e5d6b"

PYPI_PACKAGE = "pamela"

inherit pypi setuptools

RDEPENDS_${PN} = "libpam"

inherit distro_features_check
REQUIRED_DISTRO_FEATURES = "pam"


inherit features_check

REQUIRED_DISTRO_FEATURES = "clk-wiz"

inherit esw python3native

DEPENDS += "xilstandalone"

ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/clk_wiz/src/"
ESW_COMPONENT_NAME = "libclk_wiz.a"

addtask do_generate_driver_data before do_configure after do_prepare_recipe_sysroot
do_prepare_recipe_sysroot[rdeptask] = "do_unpack"


#
# base recipe: /meta/recipes-extended/psmisc/psmisc_22.21.bb
# base branch: master
# base commit: e335d9519c883165e70cda5c1fde348391686e31
#

SUMMARY = "Utilities for managing processes on your system"
DESCRIPTION = "The psmisc package contains utilities for managing processes \
on your system: pstree, killall and fuser.  The pstree command displays a \
tree structure of all of the running processes on your system.  The killall \
command sends a specified signal (SIGTERM if nothing is specified) to \
processes identified by name.  The fuser command identifies the PIDs \
of processes that are using specified files or filesystems."
HOMEPAGE = "http://psmisc.sf.net/"

PR = "r0"
inherit debian-package

LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"

inherit autotools gettext

#Move /usr/bin/fuser file to /bin/ folder
do_install_append () {
	install -d ${D}${base_bindir}
	mv ${D}${bindir}/fuser ${D}${base_bindir}/fuser
}
FILES_${PN} += "${base_bindir}/fuser"


#
# base recipe: http://cgit.openembedded.org/cgit.cgi/meta-openembedded/tree/\
#		meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb?
# base branch: master
# base commit: 98842e4e9f53f5f8614dd583dde9f5e898aadbb2
#

SUMMARY        = "Client for the Trivial File Transfer Protocol"
DESCRIPTION    = \
"The Trivial File Transfer Protocol (TFTP) is normally used only for 	\
booting diskless workstations.  The tftp package provides the user   	\
interface for TFTP, which allows users to transfer files to and from a 	\
remote machine.  This program and TFTP provide very little security, 	\
and should not be enabled unless it is expressly needed."
HOMEPAGE = "http://git.kernel.org/cgit/network/tftp/tftp-hpa.git"

PR = "r0"
inherit debian-package

LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "\
	file://MCONFIG.in;beginline=1;endline=9;md5=c28ba5adb43041fae4629db05c83cbdd \
	file://tftp/tftp.c;beginline=1;endline=32;md5=988c1cba99d70858a26cd877209857f4"

DEBIAN_PATCH_TYPE = "nopatch"

#Add tftpd-hpa package
PACKAGES =+ "tftpd-hpa"

do_install_append() {
	#Create new folders
	install -d ${D}${sysconfdir}
	install -d ${D}${sysconfdir}/init.d
	install -d ${D}${sysconfdir}/init
	install -d ${D}${bindir}
	install -d ${D}${sbindir}

	install -m 0755 ${S}/tftp/tftp 				\
			${D}${bindir}

	install -m 0755 ${S}/tftpd/tftpd 			\
                        ${D}${sbindir}/in.tftpd

	install -m 0644 ${S}/debian/tftpd-hpa.upstart 		\
			${D}${sysconfdir}/init/tftpd-hpa.conf

	install -m 0755 ${S}/debian/tftpd-hpa.init 		\
			${D}${sysconfdir}/init.d/tftpd-hpa
}

FILES_tftpd-hpa = "${sbindir}/in.tftpd 				\
		   ${sysconfdir}/* 				\
"


DESCRIPTION = "password strength checking and policy enforcement toolset"

PR="r0"

inherit debian-package autotools-brokensep

LICENSE = "BSD & PD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d"

DEPENDS += "libpam"

do_compile_prepend_class-target() {
	sed -i -e "s/^CC = gcc/CC = ${TARGET_SYS}-gcc/" ${S}/Makefile
}

# Add more package follow deian
PACKAGES =+ "libpam-${PN} libpasswdqc0"

# Install files follow debian
FILES_libpasswdqc0 += "${base_libdir}/*.so.*"
FILES_libpam-${PN} += "${base_libdir}/security/*"
FILES_${PN}-dbg += "${base_libdir}/security/.debug"

# Rename package name follow debian
PKG_${PN}-dev = "lib${PN}-dev"


Upgrade to latest version with HEVC content.

DESCRIPTION = "AMSDK multimedia support files"
HOMEPAGE = "https://gforge.ti.com/gf/project/am_multimedia/"
LICENSE = "CC-BY-NC-ND-3.0 & CC-BY-3.0"
SECTION = "multimedia"
LIC_FILES_CHKSUM = "file://Multimedia_Data_Files_Manifest.doc;md5=9254447a504d2179d83a6bc9e2c28142"
PR = "r0"

COMPATIBLE_MACHINE = "(omap3|ti33x|ti43x|omap-a15)"
PACKAGE_ARCH = "${MACHINE_ARCH}"

VIDEO_FILES = "video_480p "

VIDEO_FILES_append_am37x-evm   = "video_vga_r"
VIDEO_FILES_append_beagleboard = "video_vga"
VIDEO_FILES_append_am3517-evm  = "video_wqvga"
VIDEO_FILES_append_ti33x       = "video_wvga \
                                  video_wqvga"
VIDEO_FILES_append_dra7xx      = "video_wvga \
                                  video_1080p \
                                  video_720p \
                                  video_yuv"

SRC_URI = "https://gforge.ti.com/gf/download/frsrelease/1251/7520/amsdk-av-files_${PV}.tar.gz;name=avfilestarball"

S = "${WORKDIR}/amsdk-av-files"

do_compile() {
    :
}

do_install() {
    install -d ${D}${datadir}/ti \
       ${D}${datadir}/ti/audio \
       ${D}${datadir}/ti/video
    install -m 0644 ${S}/audio/* ${D}${datadir}/ti/audio/
    for file in ${VIDEO_FILES}; do
	install -m 0644 ${S}/${file}/* ${D}${datadir}/ti/video/
    done
}

FILES_${PN} += "${datadir}/ti/*"

SRC_URI[avfilestarball.md5sum] = "c4c849cf6c16e4898869264bbd05fd5d"
SRC_URI[avfilestarball.sha256sum] = "287cc95a68befa594b8b9a8514c57240620d535b2b99c6d3e1f91bc278ef37ef"


SUMMARY = "Go package that augments the standard library "log" package"
HOMEPAGE = "https://github.com/hashicorp/logutils"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b278a92d2c1509760384428817710378"

PKG_NAME = "github.com/hashicorp/logutils"
SRC_URI = "git://${PKG_NAME}.git"
SRCREV = "0dc08b1671f34c4250ce212759ebd880f743d883"

S = "${WORKDIR}/git"

do_install() {
    install -d ${D}${prefix}/local/go/src/${PKG_NAME}
    cp -a ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
}

SYSROOT_PREPROCESS_FUNCS += "logutils_sysroot_preprocess"

logutils_sysroot_preprocess () {
    install -d ${SYSROOT_DESTDIR}${prefix}/local/go/src/${PKG_NAME}
    cp -a ${D}${prefix}/local/go/src/${PKG_NAME} ${SYSROOT_DESTDIR}${prefix}/local/go/src/$(dirname ${PKG_NAME})
}

FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/*"


Add recipe for python-setuptools package.

# base recipe: meta/recipes-devtools/python/python-setuptools_40.8.0.bb
# base branch: warrior

DESCRITPION = "Python Distutils Enhancements"
SUMMARY = "Extensions to the python-distutils for large or complex distributions."

require recipes-devtools/python/python-setuptools.inc

inherit debian-package
require recipes-debian/sources/python-setuptools.inc

LICENSE = "Apache-2.0 "
LIC_FILES_CHKSUM = "file://LICENSE;md5=9a33897f1bca1160d7aad3835152e158"

FILESPATH_append = ":${COREBASE}/meta/recipes-devtools/python/files"
PROVIDES = "python-distribute"

inherit setuptools

RREPLACES_${PN} = "python-distribute"
RPROVIDES_${PN} = "python-distribute"
RCONFLICTS_${PN} = "python-distribute"


LICENSE = "GPL"
PR = "r0"

inherit gpe pkgconfig

DESCRIPTION = "GPE audio mixer"
DEPENDS = "gtk+ libgpewidget"
SECTION = "gpe"
PRIORITY = "optional"


DESCRIPTION = "OpenTyrian is a port of the DOS shoot-em-up Tyrian."
HOMEPAGE = "https://code.google.com/p/opentyrian/"
SECTION = "games"
LICENSE = "GPLv2"

DEPENDS = "virtual/libsdl libsdl-net"

REV = "3f3819c0b2"
PV = "2.1+hg${REV}"
PR = "r0"

SRC_URI = "hg://opentyrian.googlecode.com/hg;module=opentyrian;rev=${REV} \
	   http://camanis.net/tyrian/tyrian21.zip;name=data"

S = "${WORKDIR}/opentyrian"

FILES_${PN} += " ${datadir}/applications ${datadir}/pixmaps ${datadir}/opentyrian"
FILES_${PN}-doc = "${mandir}/man6"

do_compile() {
	oe_runmake release
}

do_install() {
	install -d ${D}${bindir}
	install -d ${D}${mandir}/man6
	install -d ${D}${datadir}/pixmaps
	install -d ${D}${datadir}/applications
	install -d ${D}${datadir}/opentyrian/data

	install -m 0755 opentyrian ${D}${bindir}
	install -m 0644 linux/man/opentyrian.6 ${D}${mandir}/man6
	install -m 0644 -T linux/icons/tyrian-48.png ${D}${datadir}/pixmaps/opentyrian.png
	install -m 0644 linux/opentyrian.desktop ${D}${datadir}/applications
	install -m 0644 ${WORKDIR}/tyrian21/* ${D}${datadir}/opentyrian/data
}

SRC_URI[data.md5sum] = "2a3b206a6de25ed4b771af073f8ca904"
SRC_URI[data.sha256sum] = "7790d09a2a3addcd33c66ef063d5900eb81cc9c342f4807eb8356364dd1d9277"


Add recipe for Azure IoT device python SDK

SUMMARY = "Microsoft Azure IoT Device Library"
AUTHOR = "Microsoft Corporation"
HOMEPAGE = "https://github.com/Azure/azure-iot-sdk-python/tree/master/azure-iot-device"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

inherit pypi setuptools3

RDEPENDS_${PN} += "\
    ${PYTHON_PN}-janus \
    ${PYTHON_PN}-paho-mqtt \
    ${PYTHON_PN}-pysocks \
    ${PYTHON_PN}-requests \
    ${PYTHON_PN}-requests-unixsocket \
    ${PYTHON_PN}-six \
    ${PYTHON_PN}-transitions \
    ${PYTHON_PN}-urllib3 \
"

RDEPENDS_${PN} += "\
    ${PYTHON_PN}-asyncio \
    ${PYTHON_PN}-crypt \
    ${PYTHON_PN}-datetime \
    ${PYTHON_PN}-io \
    ${PYTHON_PN}-json \
    ${PYTHON_PN}-logging \
    ${PYTHON_PN}-multiprocessing \
    ${PYTHON_PN}-netclient \
"

PR = "r0"

SRC_URI[sha256sum] = "6186c9be8c25917a29ac9f432b484d5c28e428ec83a919926c77b0472d36abc7"


DESCRIPTION = "TI Cryptography Example Applications"
HOMEPAGE = "http://arago-project.org/git/projects/?p=crypto-example-apps.git;a=summary"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://AES/aes_256.c;beginline=9;endline=35;md5=8edbb4dee965d2f2eb5ca2822addcae5"
SECTION = "console"

PR = "r0"

BRANCH ?= "master"
SRCREV = "d3cc223206367a02097c7ad4e997cf2bef975277"

SRC_URI = "git://arago-project.org/git/projects/crypto-example-apps.git;protocol=git;branch=${BRANCH}"

S = "${WORKDIR}/git"

do_compile() {
    # build the release version
    oe_runmake release
}

do_install() {
    oe_runmake DESTDIR=${D} install
}


DESCRIPTION = "A tool for discovering and configuring services in your infrastructure"
HOMEPAGE = "https://www.consul.io/"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b278a92d2c1509760384428817710378"

DEPENDS += "golang-cross \
    circbuf \
    consul-migrate \
    go-checkpoint \
    go-msgpack \
    go-syslog \
    hcl \
    logutils \
    memberlist \
    raft \
    raft-boltdb \
    scada-client \
    serf \
    yamux \
    muxado \
    dns \
    cli \
    mapstructure \
    columnize \
    go-radix \
    golang-lru \
    "

PKG_NAME = "github.com/hashicorp/consul"
SRC_URI = "git://${PKG_NAME}.git"
SRCREV = "5aa90455ce78d4d41578bafc86305e6e6b28d7d2"

S = "${WORKDIR}/git"
CCACHE = ""

#Stops go from installing and testing the package
do_configure(){
}

do_compile() {
    #Setting up GOPATH to find deps (including those already in consul)
    cd ${S}
    rm -rf .gopath
    mkdir -p .gopath/src/$(dirname ${PKG_NAME})
    ln -sf ../../../.. .gopath/src/${PKG_NAME}
    export GOPATH=${S}:${STAGING_DIR_TARGET}/${prefix}/local/go:${S}/.gopath
    export GOARCH="${TARGET_ARCH}"
    # supported amd64, 386, arm
    if [ "${TARGET_ARCH}" = "x86_64" ]; then
            export GOARCH="amd64"
    fi
    go install github.com/hashicorp/consul
}

do_install() {
    install -d ${D}${prefix}/local/go/src/${PKG_NAME}
    install -d ${D}${prefix}/bin
    cp -a ${S}/* ${D}${prefix}/local/go/src/${PKG_NAME}/
    cp -a ${S}/.gopath/bin/* ${D}${prefix}/bin/
}

FILES_${PN} += "${prefix}/local/go/src/${PKG_NAME}/* ${prefix}/bin/*"


DESCRIPTION = "Action GUI for Installer"
HOMEPAGE = "http://assassin.projects.openmoko.org/"
LICENSE = "GPL"
DEPENDS = "dbus (>= 1.1.1) glib-2.0 e-wm packagekit etk edbus eet"
RDEPENDS = "etk-theme-ninja"
PV = "0.2+svnr${SRCREV}"
PR = "r6.03"

SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=assassin;proto=https"

S = "${WORKDIR}/assassin"

inherit autotools pkgconfig

EXTRA_OECONF = ""

FILES_${PN} += "${prefix}/share/*"

Revert "[assassin] Remove curl in DEPENDS of assassin"

DESCRIPTION = "Action GUI for Installer"
HOMEPAGE = "http://assassin.projects.openmoko.org/"
LICENSE = "GPL"
DEPENDS = "dbus (>= 1.1.1) glib-2.0 e-wm packagekit etk edbus eet curl"
RDEPENDS = "etk-theme-ninja"
PV = "0.2+svnr${SRCREV}"
PR = "r6.02"

SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=assassin;proto=https"

S = "${WORKDIR}/assassin"

inherit autotools pkgconfig

EXTRA_OECONF = ""

FILES_${PN} += "${prefix}/share/*"


DESCRIPTION = "Action GUI for Installer"
HOMEPAGE = "http://assassin.projects.openmoko.org/"
LICENSE = "GPL"
DEPENDS = "dbus (>= 1.1.1) glib-2.0 e-wm packagekit etk edbus eet curl"
RDEPENDS = "etk-theme-ninja"
PV = "0.2+svnr${SRCREV}"
PR = "r6.02"

SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=assassin;proto=https"

S = "${WORKDIR}/assassin"

inherit autotools pkgconfig

EXTRA_OECONF = ""

FILES_${PN} += "${prefix}/share/*"

Remove curl in DEPENDS of assassin

DESCRIPTION = "Action GUI for Installer"
HOMEPAGE = "http://assassin.projects.openmoko.org/"
LICENSE = "GPL"
DEPENDS = "dbus (>= 1.1.1) glib-2.0 e-wm packagekit etk edbus eet"
RDEPENDS = "etk-theme-ninja"
PV = "0.2+svnr${SRCREV}"
PR = "r6.03"

SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=assassin;proto=https"

S = "${WORKDIR}/assassin"

inherit autotools pkgconfig

EXTRA_OECONF = ""

FILES_${PN} += "${prefix}/share/*"


DESCRIPTION = "\
	Runtime library for configuration file parser,required for running \
	programs with dsh config file support. \
	dsh uses this library to parse configuration files."

PR = "r0"
inherit debian-package

LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"

inherit autotools-brokensep
DEBIAN_PATCH_TYPE = "nopatch"

#configure follow debian/rules
EXTRA_OECONF = "--with-versioned-symbol"

DEBIANNAME_${PN}-dev = "${PN}1-dev"


DESCRIPTION = "XBMC network manager addon"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7226e01ff2d738e2246d467214c409b9"
DEPENDS += "xbmc"

PR = "r0"
SRC_URI = "http://mirrors.xbmc.org/addons/frodo/script.linux.nm/script.linux.nm-0.1.4.zip"
SRC_URI[md5sum] = "918ffb412b571d3e0e00f1d8a7e9e4fb"
S = "${WORKDIR}/script.linux.nm/"
do_install() {
        install -d ${D}/home/root/.xbmc/addons/
        cp -axr ${S} ${D}/home/root/.xbmc/addons/
}

FILES_${PN} += "/home/root/.xbmc/addons/script.linux.nm"


SUMMARY = "module for manipulating dates, times and timestamps"
DESCRIPTION = "\
DateTime is a Perl module which aims to provide a complete, correct, and easy \
to use date/time object implementation. It provides an easy way to manipulate \
dates and times, including date calculations (even addition and subtraction) \
and provides convenient methods for extracting or modifying portions of any \
date or time. \
. \
This module supports the Olson time zone database, meaning that historical \
time zone information, and more importantly, daylight saving time rules, can \
be handled transparently, simply by setting the correct time zone. This is \
done by using the DateTime::TimeZone module. \
"
HOMEPAGE = "http://datetime.perl.org/"
PR = "r0"
inherit debian-package

LICENSE = "Artistic-2.0"
LIC_FILES_CHKSUM = "\
	file://LICENSE;md5=1d2e1c522435425bc51123e3d4782081"
inherit cpan_build

RDEPENDS_${PN} += "\
	libparams-validate-perl libdatetime-locale-perl \
	libdatetime-timezone-perl libtry-tiny-perl"

# source format is 3.0 (quilt) but there is no debian patch
DEBIAN_QUILT_PATCHES = ""

do_install_append() {
	perl_version=${PERLVERSION}
	short_perl_version=`echo ${perl_version%.*}`
	install -d ${D}${libdir}/perl5/$short_perl_version
	mv ${D}${libdir}/perl/vendor_perl/${PERLVERSION}/* \
		${D}${libdir}/perl5/$short_perl_version
}
FILES_${PN} += "${libdir}/*"
FILES_${PN}-dbg += "${libdir}/perl5/*/auto/DateTime/.debug"


SUMMARY = "module for manipulating JSON-formatted data"
PR = "r0"

inherit debian-package

LICENSE = "GPL-1+"
LIC_FILES_CHKSUM = "file://README;md5=309aa8b91686700797df6e79ceb678f0"

inherit cpan

FILES_${PN} += "${datadir}"

BBCLASSEXTEND = "native nativesdk"


require u-boot-omap3.inc

COMPATIBLE_MACHINE = "ti816x"

BRANCH = "master"

# Use literal tags in SRCREV, when available, instead of commit IDs
SRCREV = "v2010.06_TI816XPSP_04.00.00.10"

UVER = "2010.06"
PSPREL = "04.00.00.10"

PR = "r1"


Add recipe for target, native and nativesdk use

SUMMARY = "UpdateHub utilities for update package management and server"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d7d0c756730e640e1731676efa6782e9"

SRC_URI = "git://github.com/UpdateHub/uhu.git;protocol=https"
SRCREV = "fed71af14f79fdc8db8da90f63b8b3d59ea93174"

PV = "1.0.0+${SRCPV}"

S = "${WORKDIR}/git"

inherit setuptools3

CLEANBROKEN = "1"

do_install_append_class-native() {
     sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${D}${bindir}/uhu
     create_wrapper ${D}${bindir}/uhu LC_ALL=C.UTF-8 LANG=C.UTF-8 LOCPATH=/usr/lib/locale
}

# FIXME: The native package is not adding the runtime dependencies for
# the sysroot populate. The issue is reported on YOCTO: #10113
do_populate_sysroot[rdeptask] = "do_populate_sysroot"

# FIXME: Runtime dependency of python3-prompt-toolkit which is not handled
# for native case.  The issue is also related to YOCTO: #10113
RDEPENDS_${PN} += " \
    python3-wcwidth \
    python3-six \
"

RDEPENDS_${PN} += " \
    updatehub-package-schema \
    python3-click \
    python3-progress \
    python3-requests \
    python3-rfc3987 \
    python3-jsonschema \
    python3-prompt-toolkit \
    python3-humanize \
"

BBCLASSEXTEND = "native nativesdk"


LICENSE = "BSD-X"
SECTION = "x11/libs"
PRIORITY = "optional"
DEPENDS = "virtual/libx11 xcalibrateext libxext"
DESCRIPTION = "XCalibrate client-side library"

PV = "0.0+git4be232e30cd33a44a1ce6d3ec429ee6101540c62"

SRC_URI = "git://anongit.freedesktop.org/git/xorg/lib/libXCalibrate;protocol=git;tag=4be232e30cd33a44a1ce6d3ec429ee6101540c62"
S = "${WORKDIR}/git"

inherit autotools pkgconfig

do_stage() {
	autotools_stage_all
}

Use increment-able PV format as other git version recipes do.

LICENSE = "BSD-X"
SECTION = "x11/libs"
PRIORITY = "optional"
DEPENDS = "virtual/libx11 xcalibrateext libxext"
DESCRIPTION = "XCalibrate client-side library"
PR = "r0"

PV = "0.0+${PR}+gitr4be232e30cd33a44a1ce6d3ec429ee6101540c62"

SRC_URI = "git://anongit.freedesktop.org/git/xorg/lib/libXCalibrate;protocol=git;tag=4be232e30cd33a44a1ce6d3ec429ee6101540c62"
S = "${WORKDIR}/git"

inherit autotools pkgconfig

do_stage() {
	autotools_stage_all
}


DESCRIPTION = "Test applications for OMAP DRM interface"

LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://viddec3test.c;beginline=1;endline=16;md5=c391f44e40a29096285e3121923041df"
DEPENDS += "libdrm libdce libav"

inherit autotools pkgconfig

PR = "r3"
SRCREV = "64e4e389dd8be4947c107a057f34556a4280281a"

SRC_URI = "git://git.ti.com/glsdk/omapdrmtest.git;protocol=git"

S = "${WORKDIR}/git"

INSANE_SKIP_omapdrmtest = "dev-deps"


inherit gpe

PR          = "r0"
LICENSE     = "GPL"
DESCRIPTION = "GPE file manager"
DEPENDS     = "libgpewidget gnome-vfs dbus"
SECTION     = "gpe"
RDEPENDS    = "gpe-icons"
RRECOMMENDS = "gnome-vfs-plugin-file"

FILES_${PN} += " ${datadir}/gpe"


{% extends "master.twig" %}

{% block main_content %}

Next event

                        No Library Talk - Summer Social

                        Mon August 4th 2014 6:00pm

                        The Libertine,

                        1 Alumhurst Road,

                        Bournemouth

                        BH4 8EL

{% endblock %}

Add September talk and social

{% extends "master.twig" %}

{% block main_content %}

Next event

                        Mon September 1st 2014 6:05pm

                        Westbourne Library,

                        Alum Chine Road,

                        BH4 8DX

                    And then 7:00pm

                    The Libertine,

                    1 Alumhurst Road,

                    Bournemouth

                    BH4 8EL

{% endblock %}


<link rel="canonical" href="{{ (href is defined) ? href : palmtree_canonical_url() }}">

Check for href being not empty instead of null

<link rel="canonical" href="{{ (href is not empty) ? href : palmtree_canonical_url() }}">


{% extends 'partials/base.html.twig' %}

{% block content %}

Error {{ page.header.http_response_code }}

				{{ page.content }}

{% endblock %}

Make the theme available for t9n

{% extends 'partials/base.html.twig' %}

{% block content %}

{{ 'ERROR'|t }} {{ page.header.http_response_code }}

				{{ page.content }}

{% endblock %}


{% extends "bootstrap_3_horizontal_layout.html.twig" %}

{% block _other_checkbox_row -%}
{%- spaceless %}

            {{ form_errors(form) }}

                    {% set label = false %}
                    {{ form_widget(form, {
                        label: false,
                        parent_label_class: ["checkbox-inline", "radio-inline"]
                       })
                    }}

{% endspaceless -%}
{%- endblock %}

{% block form_label_class -%}
    {{ compound ? 'col-sm-4 col-md-3' : 'col-sm-1' }}
{%- endblock form_label_class %}

{% block form_group_class -%}
    {{ compound ? 'col-sm-8 col-md-9' : 'col-sm-11' }}
{%- endblock form_group_class %}

{% block _other_text_row -%}
{%- spaceless %}
                {{ block('form_widget_simple') }}

{% endspaceless -%}
{%- endblock %}

{% block _other_label %}
    {{- widget|raw -}}
{% endblock  %}

Improve grid for long questions

{% extends "bootstrap_3_horizontal_layout.html.twig" %}

{% block _other_checkbox_row -%}
{%- spaceless %}

            {{ form_errors(form) }}

                    {% set label = false %}
                    {{ form_widget(form, {
                        label: false,
                        parent_label_class: ["checkbox-inline", "radio-inline"]
                       })
                    }}

{% endspaceless -%}
{%- endblock %}

{% block form_label_class -%}
    {{ compound ? 'col-sm-5 col-md-4' : 'col-lg-1' }}
{%- endblock form_label_class %}

{% block form_group_class -%}
    {{ compound ? 'col-sm-7 col-md-8' : 'col-lg-11' }}
{%- endblock form_group_class %}

{% block _other_text_row -%}
{%- spaceless %}
                {{ block('form_widget_simple') }}

{% endspaceless -%}
{%- endblock %}

{% block _other_label %}
    {{- widget|raw -}}
{% endblock  %}


<!DOCTYPE html>
<html lang="{{ app.request.locale }}">
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}{{ platform.name }}{% endblock %}</title>
        <meta name="description" content="{{ platform.description }}" />
        <meta name="keywords" content="{{ platform.keywords }}" />
        <!-- Twitter Bootstrap Stylesheet -->
        <link href="{{ asset('css/bootstrap.min.css') }}" rel="stylesheet" media="screen">
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {% block body %}{% endblock %}
        <!-- jQuery Framework -->
        <script src="{{ asset('js/jquery-1.10.2.min.js') }}"></script>
        <!-- jQuery Ajax Form -->
        <script src="{{ asset('js/jquery.form.min.js') }}"></script>
        <!-- jQuery Form Validate -->
        <script src="{{ asset('js/jquery.validate.min.js') }}"></script>
        <!-- Twitter Bootstrap -->
        <script src="{{ asset('js/bootstrap.min.js') }}"></script>
        <!-- Twitter Bootstrap Fileupload -->
        <script src="{{ asset('js/bootstrap-filestyle.min.js') }}"></script>
        {% block javascripts %}{% endblock %}
    </body>
</html>

Fix missing view port meta tag for responsive behavior

<!DOCTYPE html>
<html lang="{{ app.request.locale }}">
    <head>
        <title>{% block title %}{{ platform.name }}{% endblock %}</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta name="description" content="{{ platform.description }}" />
        <meta name="keywords" content="{{ platform.keywords }}" />
        <!-- Twitter Bootstrap Stylesheet -->
        <link href="{{ asset('css/bootstrap.min.css') }}" rel="stylesheet" media="screen">
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {% block body %}{% endblock %}
        <!-- jQuery Framework -->
        <script src="{{ asset('js/jquery-1.10.2.min.js') }}"></script>
        <!-- jQuery Ajax Form -->
        <script src="{{ asset('js/jquery.form.min.js') }}"></script>
        <!-- jQuery Form Validate -->
        <script src="{{ asset('js/jquery.validate.min.js') }}"></script>
        <!-- Twitter Bootstrap -->
        <script src="{{ asset('js/bootstrap.min.js') }}"></script>
        <!-- Twitter Bootstrap Fileupload -->
        <script src="{{ asset('js/bootstrap-filestyle.min.js') }}"></script>
        {% block javascripts %}{% endblock %}
    </body>
</html>


{{ 'sylius.ui.taxonomy'|trans }}

    {{ form_row(form.mainTaxon, {'remote_url': path('sylius_admin_ajax_taxon_by_name_phrase'), 'remote_criteria_type': 'contains', 'remote_criteria_name': 'phrase', 'load_edit_url': path('sylius_admin_ajax_taxon_by_code')}) }}

{{ 'sylius.ui.product_taxon'|trans }}

        {{ form_widget(form.productTaxons) }}

Remove unnecessary parameters from product.mainTaxon type

{{ 'sylius.ui.taxonomy'|trans }}

    {{ form_row(form.mainTaxon) }}

{{ 'sylius.ui.product_taxon'|trans }}

        {{ form_widget(form.productTaxons) }}


{% if channels|length > 1 %}

{% set selected = channels|first %}
{% set code = app.request.query.get('channel') %}

{% for channel in channels %}
    {% if channel.code is sameas(code) %}
        {% set selected = channel %}
    {% endif %}
{% endfor %}

        {% include '@SyliusAdmin/Common/_channel.html.twig' with {'channel': selected} %}

            <input type="text" placeholder="{{ 'sylius.ui.search'|trans }}...">

            {% for channel in channels %}

                    {% include '@SyliusAdmin/Common/_channel.html.twig' %}

            {% endfor %}

{% endif %}

Use "same as" instead of deprecated "sameas" in Twig

{% if channels|length > 1 %}

{% set selected = channels|first %}
{% set code = app.request.query.get('channel') %}

{% for channel in channels %}
    {% if channel.code is same as(code) %}
        {% set selected = channel %}
    {% endif %}
{% endfor %}

        {% include '@SyliusAdmin/Common/_channel.html.twig' with {'channel': selected} %}

            <input type="text" placeholder="{{ 'sylius.ui.search'|trans }}...">

            {% for channel in channels %}

                    {% include '@SyliusAdmin/Common/_channel.html.twig' %}

            {% endfor %}

{% endif %}


{% extends "forms/field.html.twig" %}
{% set defaults = config.plugins.form %}
{% set files = defaults.files|merge(field|default([])) %}

{% block input %}

    {% if not plugin and not theme %}
        The "file" input field cannot be used in Pages Blueprints. It's intended to be used for Plugins and Themes blueprints.
        Use the "pagemediaselect" type instead.
    {% else %}
        {% if value %}

        {% endif %}

            <input
                {# required attribute structures #}
                name="{{ (scope ~ field.name)|fieldName ~ '[]' }}"
                {% block input_attributes %}
                    type="file"
                    {% if files.accept %}accept="{{ files.accept|join(',') }}"{% endif %}
                    {{ parent() }}
                {% endblock %}
             />

    {% endif %}
{% endblock %}

Fix for the image preview in the file filed on multilang sites


{#

This file is part of the Sonata package.

(c) Thomas Rabaix <thomas.rabaix@sonata-project.org>

For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.

#}
{% extends sonata_block.templates.block_base %}

{% block block %}
    {% if settings.title %}

{{ settings.title }}

    {% endif %}

        {% if media %}
            {% media media, settings.format %}
        {% else %}
            {# no media selected ... #}
        {% endif %}

{% endblock %}

Fix error if no format is defined

{#

This file is part of the Sonata package.

(c) Thomas Rabaix <thomas.rabaix@sonata-project.org>

For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.

#}
{% extends sonata_block.templates.block_base %}

{% block block %}
    {% if settings.title %}

{{ settings.title }}

    {% endif %}

        {% if media and settings.format%}
            {% media media, settings.format %}
        {% else %}
            {# no media selected or format defined... #}
        {% endif %}

{% endblock %}


                {{ __('contenttypes.generic.show-more', {'%contenttypes%': contenttype}) }} »

{{ __('contenttypes.generic.recently-edited', {'%contenttypes%': contenttype}) }}

{{ include('@bolt/_sub/_record_list_data.twig') }}

        {% for content in multiplecontent %}
            {% set listing_vars = {
                'compact':       true,
                'content':       content,
                'excerptlength': 280,
                'permissions':   context.permissions[contenttype],
                'thumbsize':     54,
            } %}
            {{ include(['@bolt/custom/listing/' ~ content.contenttype.slug ~ '.twig', '@bolt/_sub/_listing.twig'],  listing_vars) }}
        {% endfor %}

Set a CSRF token for dashboard recently edited


{% extends '::base.html.twig' %}

{% block page_title %}{{ 'Error - ' ~ title }}{% endblock %}

{% block content %}

{{ title }}

{{ description }}

            {{ 'stepup.error.timestamp'|trans }}
            {{ timestamp }}

            {{ 'stepup.error.hostname'|trans }}
            {{ hostname }}

            {{ 'stepup.error.request_id'|trans }}
            {{ request_id }}

            {{ 'stepup.error.error_code'|trans }}
            {{ error_code }}

            {{ 'stepup.error.user_agent'|trans }}
            {{ user_agent }}

            {{ 'stepup.error.ip_address'|trans }}
            {{ ip_address }}

{{ 'stepup.error.support_page.text'|trans({'%support_url%': global_view_parameters.supportUrl })|raw }}

    {% block back_button %}
        {{ 'Back' }}
    {% endblock %}

{% endblock %}

Prepend Error to the error page title

{% extends '::base.html.twig' %}

{% block page_title %}{{ 'Error - ' ~ title }}{% endblock %}

{% block content %}

{{ 'Error - ' ~ title }}

{{ description }}

            {{ 'stepup.error.timestamp'|trans }}
            {{ timestamp }}

            {{ 'stepup.error.hostname'|trans }}
            {{ hostname }}

            {{ 'stepup.error.request_id'|trans }}
            {{ request_id }}

            {{ 'stepup.error.error_code'|trans }}
            {{ error_code }}

            {{ 'stepup.error.user_agent'|trans }}
            {{ user_agent }}

            {{ 'stepup.error.ip_address'|trans }}
            {{ ip_address }}

{{ 'stepup.error.support_page.text'|trans({'%support_url%': global_view_parameters.supportUrl })|raw }}

    {% block back_button %}
        {{ 'Back' }}
    {% endblock %}

{% endblock %}


Move blog item for lists to own template

{% set header_image = article.media.images|first %}

{{ article.title }}

{{ article.date|date('d, F Y') }}

    {% if header_image %}

    {% endif %}


{% extends page.theme_layout.value ?: "theme::layouts/default" %}

{% block content %}
    {{ content|raw }}
{% endblock %}

Fix presenter issue - this is a required field so don't overstep

{% extends page.theme_layout.key %}

{% block content %}
    {{ content|raw }}
{% endblock %}


{{ include('@Twig/exception.css.twig') }}

.container {
    max-width: auto;
    margin: 0;
    padding: 0;
}
.container .container {
    padding: 0;
}

.exception-summary {
    background: #FFF;
    border: 1px solid #E0E0E0;
    box-shadow: 0 0 1px rgba(128, 128, 128, .2);
    margin: 1em 0;
    padding: 10px;
}

.exception-message {
    color: #B0413E;
}

.exception-metadata,
.exception-illustration {
    display: none;
}

.exception-message-wrapper {
    min-height: auto;
}

Fix the design of the profiler exceptions when there is no message

{{ include('@Twig/exception.css.twig') }}

.container {
    max-width: auto;
    margin: 0;
    padding: 0;
}
.container .container {
    padding: 0;
}

.exception-summary {
    background: #FFF;
    border: 1px solid #E0E0E0;
    box-shadow: 0 0 1px rgba(128, 128, 128, .2);
    margin: 1em 0;
    padding: 10px;
}
.exception-summary.exception-without-message {
    display: none;
}

.exception-message {
    color: #B0413E;
}

.exception-metadata,
.exception-illustration {
    display: none;
}

.exception-message-wrapper .container {
    min-height: auto;
}


{% extends "EkynaAdminBundle:Entity:sided.html.twig" %}

{% block title %}
<h1>{{ 'ekyna_cms.menu.header.new_child'|trans({'%name%': menu})|raw }}</h1>
{% endblock %}

{% block actions %}
{{ admin_resource_btn(menu, 'list') }}
{% endblock %}

{% block main %}
<form action="{{ path('ekyna_cms_menu_admin_new_child', identifiers|merge({'menuId': menu.id})) }}" {{ form_enctype(form) }} method="post" class="form-horizontal form-with-tabs">
    {% include "EkynaCmsBundle:Admin/Menu:_form.html.twig" %}
    {{ ui_form_footer(form) }}
</form>
{% endblock %}

Fix menu new child template

{% extends "EkynaAdminBundle:Entity/Default:new.html.twig" %}

{% block title %}
<h1>{{ 'ekyna_cms.menu.header.new_child'|trans({'%name%': menu})|raw }}</h1>
{% endblock %}


###
### PageTS for {{ package.title }}
###
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:{{ package.extensionKey }}/Configuration/PageTS/RTE.txt">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:{{ package.extensionKey }}/Configuration/PageTS/TCEFORM.txt">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:{{ package.extensionKey }}/Configuration/PageTS/TCEMAIN.txt">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:{{ package.extensionKey }}/Configuration/PageTS/mod/WebLayout/RTE/BackendLayouts.txt">

Correct inclusion of backend layouts

###
### PageTS for {{ package.title }}
###
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:{{ package.extensionKey }}/Configuration/PageTS/RTE.txt">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:{{ package.extensionKey }}/Configuration/PageTS/TCEFORM.txt">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:{{ package.extensionKey }}/Configuration/PageTS/TCEMAIN.txt">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:{{ package.extensionKey }}/Configuration/PageTS/mod/WebLayout/BackendLayouts.txt">


{% spaceless %}
{% set extraParameters = extraParameters|default({}) %}
{% set display = display|default(2) %}
{% set page = datagrid.currentPage %}
{% set pages = datagrid.nbPages %}

{% if pages > 1 %}
{% set available = ['1'] %}
{% set i = page - display %}
{% set min = page - display %}
{% set max = page + display %}
{% for min in i..max %}
    {% if(min > 1 and min < pages) %}
        {% set available = available|merge([min]) %}
    {% endif %}
    {% set min = min + 1 %}
{% endfor %}

{% set available = available|merge([pages]) %}

    {% set next = available[0] %}
    {% set i = 0 %}
    {% for currentPage in available %}
        {% if(next != currentPage) %}

                ...

            {% if(available[i+1] is defined) %}{% set next = available[i+1] %}{% endif %}
        {% else %}
            {% set next = next + 1 %}
        {% endif %}

                {{ currentPage }}

        {% set i = i + 1 %}
    {% endfor %}

{% endif %}
{% endspaceless %}

Add Bootstrap classes on pagination.


{% macro buttonIcon(url, icon, label, buttonType, extra) %}

    {{ _self.icon(icon) }}
    {{ label }}

{% endmacro %}

{% macro required() %}
  *
{% endmacro %}

{% macro icon(icon) %}

{% endmacro %}

{% macro infoTooltip(title) %}
  {{ _self.icon('info-circle') }}
{% endmacro %}

{% macro dataGrid(dataGrid, noItemsMessage) %}

      {% if dataGrid %}

          {{ dataGrid|raw }}

      {% else %}

          {% if noItemsMessage %}
            {{ noItemsMessage|raw }}
          {% else %}
            {{ 'msg.NoItems'|trans|raw }}
          {% endif %}

      {% endif %}

{% endmacro %}

Fix import macro icon in macro buttonIcon

{% macro buttonIcon(url, icon, label, buttonType, extra) %}

    {% import _self as macro %}
    {{ macro.icon(icon) }}
    {{ label }}

{% endmacro %}

{% macro required() %}
  *
{% endmacro %}

{% macro icon(icon) %}

{% endmacro %}

{% macro infoTooltip(title) %}
  {{ _self.icon('info-circle') }}
{% endmacro %}

{% macro dataGrid(dataGrid, noItemsMessage) %}

      {% if dataGrid %}

          {{ dataGrid|raw }}

      {% else %}

          {% if noItemsMessage %}
            {{ noItemsMessage|raw }}
          {% else %}
            {{ 'msg.NoItems'|trans|raw }}
          {% endif %}

      {% endif %}

{% endmacro %}


{% if is_easyadmin_granted(entity_config, 'edit', item) %}
    {% include '@!EasyAdmin/default/field_toggle.html.twig' %}
{% else %}
    {% include '@EasyAdmin/default/field_boolean.html.twig' %}
{% endif %}

Disable autocomplete on toggles => prevent from wrong display after toggle+refresh

{% if is_easyadmin_granted(entity_config, 'edit', item) %}
  {# Copied from original field_toggle.html.twig #}
  {% trans_default_domain 'EasyAdminBundle' %}

  {% if view == 'show' or ('edit' in backend_config.disabled_actions) %}
    {% include '@EasyAdmin/default/field_boolean.html.twig' %}
  {% else %}

        <input type="checkbox" autocomplete="off" {{ value == true ? 'checked' }}>
        {# the empty  is needed for styling. Don't remove it! #}

  {% endif %}

{% else %}
  {% include '@EasyAdmin/default/field_boolean.html.twig' %}
{% endif %}


{
    "$schema": "http://json-schema.org/draft-04/hyper-schema#",
    "title": "{{ title }}",
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "readOnly": true,
            "links": [
                {
                    "rel": "self",
                    "href": "/{{ type }}/{$}"
                }
            ]
        }
    },
    "required": [],
    "links": [
        {
            "rel": "delete",
            "method": "DELETE",
            "href": "/{{ type }}/{id}"
        },
        {
            "rel": "put",
            "method": "PUT",
            "href": "/{{ type }}/{id}"
        }
    ]
}

Update generic template id definition

{{ title }}


<!DOCTYPE html>

	<meta charset="utf-8" />
        <title>{{ meta_title }}</title>
	{# <meta name="description" content="{{ meta_description }}" /> #}
	{# <meta name="keywords" content="{{ meta_keywords }}" /> #}
	<link rel="stylesheet" href="{{ asset('css/common.css') }}" />
	<link rel="stylesheet" href="{{ asset('css/web.css') }}" />
        <link rel="alternate" type="application/rss+xml" title="Articles" href="{{ url('flux_rss') }}" />

        {% block header_menu %}
            {% include 'AppWebBundle:Partials:header-menu.html.twig' %}
        {% endblock%}

                {% block navigation %}
                    {% include 'AppWebBundle:Partials:navigation.html.twig' %}
                {% endblock%}

                {% if app.session.hasFlash('message') %}

{{ app.session.flash('message') }}

                {% endif %}

                {% block sidebar %}
                    {% include 'AppWebBundle:Partials:sidebar.html.twig' %}
                {% endblock%}

                {% block body %}
                    {% include 'AppWebBundle:Partials:post.html.twig' %}
                {% endblock %}

        {% block footer %}
            {% include 'AppWebBundle:Partials:footer.html.twig' %}
        {% endblock %}

Add meta description and keywords

<!DOCTYPE html>

	<meta charset="utf-8" />
        <title>{{ meta_title }}</title>
        {% if meta_description is not empty %}
        <meta name="description" content="{{ meta_description }}" />
        <meta name="keywords" content="{{ meta_keywords }}" />
        {% endif %}
	<link rel="stylesheet" href="{{ asset('css/common.css') }}" />
	<link rel="stylesheet" href="{{ asset('css/web.css') }}" />
        <link rel="alternate" type="application/rss+xml" title="Articles" href="{{ url('flux_rss') }}" />

        {% block header_menu %}
            {% include 'AppWebBundle:Partials:header-menu.html.twig' %}
        {% endblock%}

                {% block navigation %}
                    {% include 'AppWebBundle:Partials:navigation.html.twig' %}
                {% endblock%}

                {% if app.session.hasFlash('message') %}

{{ app.session.flash('message') }}

                {% endif %}

                {% block sidebar %}
                    {% include 'AppWebBundle:Partials:sidebar.html.twig' %}
                {% endblock%}

                {% block body %}
                    {% include 'AppWebBundle:Partials:post.html.twig' %}
                {% endblock %}

        {% block footer %}
            {% include 'AppWebBundle:Partials:footer.html.twig' %}
        {% endblock %}


<script src="{{ prefix }}/jquery/jquery.js"></script>
<script src="{{ prefix }}/jquery-ui/jquery-ui.min.js"></script>
<script src="{{ prefix }}/elfinder/js/elfinder.min.js"></script>
<script src="{{ prefix }}/elfinder/js/i18n/elfinder.{{locale}}.js"></script>

Fix js path for elfinder-component 2.0

<script src="{{ prefix }}/jquery/jquery.js"></script>
<script src="{{ prefix }}/jquery-ui/jquery-ui.min.js"></script>
<script src="{{ prefix }}/elfinder/dist/js/elfinder.min.js"></script>
<script src="{{ prefix }}/elfinder/dist/js/i18n/elfinder.{{locale}}.js"></script>


<nav>
  {% for item in menu.get_items %}
    {% if post.slug in item.link %}
      {% for subitem in item.get_children %}
        {% include "components/title.twig" with { "content": subitem.title, "link": subitem.link } %}
      {% endfor %}
    {% endif %}
  {% endfor %}
</nav>

Decrease font size of submenu lists

<nav>
  {% for item in menu.get_items %}
    {% if post.slug in item.link %}
      {% for subitem in item.get_children %}
        {% include "components/subtitle.twig" with { "content": subitem.title, "link": subitem.link } %}
      {% endfor %}
    {% endif %}
  {% endfor %}
</nav>


{% extends 'AppBundle:Components/Page:page.html.twig' %}
{% trans_default_domain "login" %}
{% block pageTitle %} {% trans %}pageTitle{% endtrans %} {% endblock %}

{% block content %}

  <form action="{{ path('login_check') }}" method="post">

      {% trans %}email.label{% endtrans %}

{% trans %}email.description{% endtrans %}

      <input type="text" id="email" name="email" value="{{ last_email }}" class="form-control" size="50" />

      {% trans %}password.label{% endtrans %}
      <input type="password" id="password" name="password" class="form-control" size="50" />

      {#
          If you want to control the URL the user
          is redirected to on success (more details below)
          <input type="hidden" name="_target_path" value="/account" />
      #}

    <button type="submit" class="button behat-link-login">{% trans %}submit.label{% endtrans %}</button>

  </form>

{% endblock %}

Correct block on login template

{% extends 'AppBundle:Components/Page:page-admin.html.twig' %}

{% trans_default_domain "login" %}

{% block pageTitle %} {% trans %}pageTitle{% endtrans %} {% endblock %}

{% block pageBody %}

  <form action="{{ path('login_check') }}" method="post">

      {% trans %}email.label{% endtrans %}

{% trans %}email.description{% endtrans %}

      <input type="text" id="email" name="email" value="{{ last_email }}" class="form-control" size="50" />

      {% trans %}password.label{% endtrans %}
      <input type="password" id="password" name="password" class="form-control" size="50" />

      {#
          If you want to control the URL the user
          is redirected to on success (more details below)
          <input type="hidden" name="_target_path" value="/account" />
      #}

    <button type="submit" class="button behat-link-login">{% trans %}submit.label{% endtrans %}</button>

  </form>

{% endblock %}


Hola {{ name }},

Puedes proporcionar este enlace público de votacion a los votantes para que procedan
rellenando el formulario que les aparecerá:

http://municipales2015.listabierta.org/{{ address_slug }}/vota


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>{% block title %}Welcome!{% endblock %}</title>
    {% block stylesheets %}
        {% stylesheets '@bootstrap_css' %}
        <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}"/>
        {% endstylesheets %}
    {% endblock %}
</head>
<body>
<div class="container">
    {% block body %}{% endblock %}
</div>
{% block javascripts %}
    {% javascripts '@jquery' '@bootstrap_js' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}
</body>
</html>


<script type="text/javascript">
    (function() {
      var delay;

      delay = function(ms, func) {
        return setTimeout(func, ms);
    };

    var notification = new NotificationFx({
        message : '<div>{{ body|raw|trans({}, translationDomain|default('messages')) }}</div>',
        layout  : '{{ layout|default('growl') }}',
        effect  : '{{ effect|default('jelly') }}',
        ttl     : {{ ttl|default(10000) }},
        type    : '{{ type|default('success') }}'
    });

    // show the notification
    {% if timeout is defined and timeout != null %}
        delay({{ timeout }} , function() {
    {% endif %}
            return notification.show();
    {% if timeout is defined and timeout != null %}
        });
    {% endif %}

    }).call(this);
</script>

Remove delay function from codrops-notification template

<script type="text/javascript">
    (function() {
        var notification = new NotificationFx({
            message : '<div>{{ body|raw|trans({}, translationDomain|default('messages')) }}</div>',
            layout  : '{{ layout|default('growl') }}',
            effect  : '{{ effect|default('jelly') }}',
            ttl     : {{ timeout|default(10000) }},
            type    : '{{ type|default('success') }}'
        });

        // show the notification
        return notification.show();

        }).call(this);
</script>


    {% for message in app.session.flashBag.get('success') %}
        {# Bootstrap alert, see http://getbootstrap.com/components/#alerts #}

            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                ×
            </button>

            {{ message|trans }}

    {% endfor %}

Check if the session exists before reading flash messages

{% if app.session.started %}

        {% for message in app.session.flashBag.get('success') %}
            {# Bootstrap alert, see http://getbootstrap.com/components/#alerts #}

                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                    ×
                </button>

                {{ message|trans }}

        {% endfor %}

{% endif %}


{% block html_head_container %}
    {% include 'html-header.twig' %}
    {% block head %}
    {% endblock %}

{% endblock %}

            {% block header %}

                    {{site.name}}

                    {% for item in menu.items %}

                            {{item.title}}

                    {% endfor %}

            {% endblock %}

            {% if title %}
{{title}}
{% endif %}

                {% block content %}
                    Sorry, no content
                {% endblock %}

            {% if sidebar %}

                    {{sidebar}}

            {% endif %}

        {% block footer %}

                {% include 'footer.twig' %}

            {{ function('wp_footer') }}
        {% endblock }

Fix a typo in the starter theme.

{% block html_head_container %}
    {% include 'html-header.twig' %}
    {% block head %}
    {% endblock %}

{% endblock %}

            {% block header %}

                    {{site.name}}

                    {% for item in menu.items %}

                            {{item.title}}

                    {% endfor %}

            {% endblock %}

            {% if title %}
{{title}}
{% endif %}

                {% block content %}
                    Sorry, no content
                {% endblock %}

            {% if sidebar %}

                    {{sidebar}}

            {% endif %}

        {% block footer %}

                {% include 'footer.twig' %}

            {{ function('wp_footer') }}
        {% endblock %}


{% from 'editcontent/_macros.twig' import infopop %}

{#=== INIT ===========================================================================================================#}

{% set attributes_fieldset = {
    class:            'form-group',
    data_bolt_field:  block('fieldset_type'),
    data_bolt_fconf:  fieldset_conf|default() is iterable ? fieldset_conf : null
} %}

{% set attributes_label = {
    class:  'main ' ~ block('fieldset_label_class') ~ (block('fieldset_label_class') == 'col-xs-12' ? '' : ' control-label'),
    for:    block('fieldset_label_for'),
} %}

{% if block('fieldset_label_info') %}
    {% set field_label = infopop(block('fieldset_label_text'), block('fieldset_label_info')) %}
{% else %}
    {% set field_label = block('fieldset_label_text') %}
{% endif %}

{#=== OUTPUT =========================================================================================================#}

<fieldset{{ macro.attr(attributes_fieldset) }}>
    <legend class="sr-only">{% block fieldset_label_text %}{% endblock fieldset_label_text %}</legend>
    <label{{ macro.attr(attributes_label) }}>{{ field_label }}</label>
    {% block fieldset_controls %}{% endblock fieldset_controls %}
</fieldset>

Fix fieldset configuration to be written again

{% from 'editcontent/_macros.twig' import infopop %}

{#=== INIT ===========================================================================================================#}

{% set attributes_fieldset = {
    class:            'form-group',
    data_bolt_field:  block('fieldset_type'),
    data_bolt_fconf:  fieldset_conf|default() is iterable ? fieldset_conf|json_encode : null
} %}

{% set attributes_label = {
    class:  'main ' ~ block('fieldset_label_class') ~ (block('fieldset_label_class') == 'col-xs-12' ? '' : ' control-label'),
    for:    block('fieldset_label_for'),
} %}

{% if block('fieldset_label_info') %}
    {% set field_label = infopop(block('fieldset_label_text'), block('fieldset_label_info')) %}
{% else %}
    {% set field_label = block('fieldset_label_text') %}
{% endif %}

{#=== OUTPUT =========================================================================================================#}

<fieldset{{ macro.attr(attributes_fieldset) }}>
    <legend class="sr-only">{% block fieldset_label_text %}{% endblock fieldset_label_text %}</legend>
    <label{{ macro.attr(attributes_label) }}>{{ field_label }}</label>
    {% block fieldset_controls %}{% endblock fieldset_controls %}
</fieldset>


{% extends 'OroUserBundle::layout.html.twig' %}

{% block bodyClass %}login-page{% endblock %}

{% block content %}
<form action="{{ path('oro_user_reset_send_email') }}" method="post" class="form-signin">

{{ oro_config_value('oro_ui.application_title') }}

{{ 'Forgot Password'|trans }}

    {% if invalid_username is defined %}

            {{ 'The username or email address "%username%" does not exist.'|trans({ '%username%': invalid_username }) }}

    {% endif %}

    <fieldset class="oro-forgot-password">
        <input type="text" id="prependedInput" name="username" required="required" placeholder="{{ 'Username or Email'|trans }}" autofocus/>

            « {{ 'Return to Login'|trans }}
            <button type="submit" class="btn extra-submit btn-large btn-primary">{{ 'Request'|trans }}</button>

    </fieldset>
</form>
{% endblock %}

Use blue style for loader and add dynamic

{% extends 'OroUserBundle::layout.html.twig' %}

{% block bodyClass %}login-page{% endblock %}

{% block content %}
<form action="{{ path('oro_user_reset_send_email') }}" method="post" class="form-signin">

{{ oro_config_value('oro_ui.application_title') }}

{{ 'Forgot Password'|trans }}

    <fieldset class="oro-forgot-password">
        {% if invalid_username is defined %}

                    {{ 'The username or email address "%username%" does not exist.'|trans({ '%username%': invalid_username }) }}

        {% endif %}
        <input type="text" id="prependedInput" name="username" required="required" placeholder="{{ 'Username or Email'|trans }}" autofocus/>

            « {{ 'Return to Login'|trans }}
            <button type="submit" class="btn extra-submit btn-large btn-primary">{{ 'Request'|trans }}</button>

    </fieldset>
</form>
{% endblock %}


{% extends "_base.twig" %}
{% block title %}Index{% endblock %}
{% block extraresources %}
<link rel="canonical" href="{{ canonicalUrl }}">
{% endblock %}
{% block content %}

Find out if a Twitch user is a chat bot

Since Twitch accounts can't be marked as a bot there is many times no way to tell. But many accounts are used just as a chat bot. This service provides an API to find out who's a chat bot. All bots listed are service or moderator bots.

{{ bots }}

Known bots

        Check out bots

{{ types }}

Twitch bot types

        Browse bot types

3

Nubmers to catch you

        Check bot

{% endblock %}

Add a useful third cta

{% extends "_base.twig" %}
{% block title %}Index{% endblock %}
{% block extraresources %}
<link rel="canonical" href="{{ canonicalUrl }}">
{% endblock %}
{% block content %}

Find out if a Twitch user is a chat bot

Since Twitch accounts can't be marked as a bot there is many times no way to tell. But many accounts are used just as a chat bot. This service provides an API to find out who's a chat bot. All bots listed are service or moderator bots.

{{ bots }}

Known bots

        Check out bots

{{ types }}

Twitch bot types

        Browse bot types

1M+

Unknown bots

        Add your bot

{% endblock %}


{#=== INIT ===========================================================================================================#}

{# Build the select options array #}
{% set options = [] %}
{% for slug, cat in taxonomy.options %}
    {% set options = options|merge([{
        value:     slug,
        text:      cat,
        selected:  context.content.taxonomy.containsKeyValue(taxonomy.slug, slug),
    }]) %}
{% endfor %}

{# BUIC options #}
{% set buic_opt_select = {
    'all':       true,
    'clear':     true,
    'id':        'taxonomy-' ~ taxonomy.slug,
    'multiple':  taxonomy.multiple is defined and taxonomy.multiple == 1,
    'name':      'taxonomy[' ~ taxonomy.slug ~ '][]',
    'options':   options,
} %}

{#=== FIELDSET =======================================================================================================#}

{% extends '@bolt/_base/_fieldset.twig' %}

{% block fieldset_type 'categories' %}
{% block fieldset_widget 'fieldCategories' %}

{% block fieldset_label_text  taxonomy.name %}
{% block fieldset_label_class 'col-sm-3' %}
{% block fieldset_label_for   'taxonomy-' ~ taxonomy.slug %}

{% block fieldset_controls %}
    {% from '@bolt/_buic/_select.twig' import buic_select %}

    <div class="col-sm-9">
        {{ buic_select(buic_opt_select) }}
    </div>
{% endblock fieldset_controls %}

Add "select all" button only on when multiple selection ois allowed

{#=== INIT ===========================================================================================================#}

{# Build the select options array #}
{% set options = [] %}
{% for slug, cat in taxonomy.options %}
    {% set options = options|merge([{
        value:     slug,
        text:      cat,
        selected:  context.content.taxonomy.containsKeyValue(taxonomy.slug, slug),
    }]) %}
{% endfor %}

{# BUIC options #}
{% set buic_opt_select = {
    'all':       taxonomy.multiple|default(false),
    'clear':     true,
    'id':        'taxonomy-' ~ taxonomy.slug,
    'multiple':  taxonomy.multiple is defined and taxonomy.multiple == 1,
    'name':      'taxonomy[' ~ taxonomy.slug ~ '][]',
    'options':   options,
} %}

{#=== FIELDSET =======================================================================================================#}

{% extends '@bolt/_base/_fieldset.twig' %}

{% block fieldset_type 'categories' %}
{% block fieldset_widget 'fieldCategories' %}

{% block fieldset_label_text  taxonomy.name %}
{% block fieldset_label_class 'col-sm-3' %}
{% block fieldset_label_for   'taxonomy-' ~ taxonomy.slug %}

{% block fieldset_controls %}
    {% from '@bolt/_buic/_select.twig' import buic_select %}

    <div class="col-sm-9">
        {{ buic_select(buic_opt_select) }}
    </div>
{% endblock fieldset_controls %}


	{{ 'lbl.YouAreHere'|trans|capitalize }}:
	{% for breadcrumb in breadcrumb %}
		{% if breadcrumb.url %}{% endif %}{{ breadcrumb.title }}{% if breadcrumb.url %}{% endif %}
		{% if not breadcrumb.last %} › {% endif %}
	{% endfor %}

Make sure our breadcrumb does not end with an arrow.

	{{ 'lbl.YouAreHere'|trans|capitalize }}:
	{% for breadcrumb in breadcrumb %}
		{% if breadcrumb.url %}{% endif %}{{ breadcrumb.title }}{% if breadcrumb.url %}{% endif %}
		{% if not loop.last %} › {% endif %}
	{% endfor %}