diff --git a/contrib/oe-stylize.py b/contrib/oe-stylize.py index 712557d4f98..ba4b87a74cb 100755 --- a/contrib/oe-stylize.py +++ b/contrib/oe-stylize.py @@ -19,6 +19,7 @@ - count rule breaks and displays them in the order frequence """ +from __future__ import print_function import fileinput import string import re @@ -101,6 +102,7 @@ 'AR', 'ARCH', 'ARM_INSTRUCTION_SET', + 'MIPS_INSTRUCTION_SET', 'ARM_MUTEX', 'ART_CONFIG', 'B', @@ -120,6 +122,7 @@ 'CONFFILES', 'CONFLICTS', 'CORE_EXTRA_D', + 'CORE_IMAGE_EXTRA_INSTALL', 'CORE_PACKAGES_D', 'CORE_PACKAGES_RD', 'CPPFLAGS', @@ -140,6 +143,7 @@ 'INITSCRIPT_PACKAGES', 'INITSCRIPT_NAME', 'INITSCRIPT_PARAMS', + 'INSANE_SKIP', 'PACKAGE_INSTALL', 'KERNEL_IMAGETYPE', 'KERNEL_IMAGEDEST', @@ -198,6 +202,8 @@ 'UBOOT_MACHINE', 'UCLIBC_BASE', 'UCLIBC_PATCHES', + 'USERADD_PACKAGES', + 'USERADD_PARAM', 'VIRTUAL_NAME', 'XORG_PN', 'XSERVER', @@ -306,10 +312,10 @@ def follow_rule(i, line): # if the line still does not respect the rule if not rules[i][0](line): # this is a rule disgression - print ("## Disgression: ", rules[i][2], " in:", oldline) + print ("## Disgression: ", rules[i][2], " in: '", oldline, "'") else: # just remind user about his/her errors - print ("## Reminder: ", rules[i][2], " in :", oldline) + print ("## Reminder: ", rules[i][2], " in : '", oldline, "'") return line diff --git a/contrib/tesseract-langs.sh b/contrib/tesseract-langs.sh deleted file mode 100755 index 50873c139bb..00000000000 --- a/contrib/tesseract-langs.sh +++ /dev/null @@ -1,92 +0,0 @@ -#! /bin/sh - -# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved -# Released under the MIT license (see meta-openembedded layer's COPYING.MIT) - -PV='3.02' - -# Sometimes the software package has a minor version, but language -# packages have not. Example: -# software package: tesseract-ocr-3.02.02.tar.gz -# language package: tesseract-ocr-3.02.por.tar.gz -MINOR_PV=02 - -recipes_dir=$1 - -usage() { - echo "Usage: `basename $0` [ ]" -} - -if [ -z "$recipes_dir" ]; then - usage - exit 1 -fi -mkdir -p "$recipes_dir" - -file_list_uri='https://code.google.com/p/tesseract-ocr/downloads/list' -file_list=`mktemp` - -remove_dl_dir= -if [ -z "$2" ]; then - remove_dl_dir=1 - dl_dir=`mktemp -d` -else - dl_dir="$2" -fi - -mkdir -p $dl_dir - -tesseract_langs() { - wget -q -O "$file_list" "$file_list_uri" - - grep -E 'a href="detail\?name=tesseract-ocr-'${PV}'\.[^\.]+.tar.gz&can=2&q=">' "$file_list" | \ - sed -r -e 's/.*tesseract-ocr-'${PV}'\.*([^\.]+)\.tar\.gz.*/\1/' | \ - grep -Ev '('${MINOR_PV}'|'${MINOR_PV}'-doc-html)' | \ - sort -u -} - -download_lang_files() { - local langs="$1" - local uri - for lang in $langs; do - if [ ! -e "$dl_dir/tesseract-ocr-${PV}.${lang}.tar.gz" ]; then - uri="https://tesseract-ocr.googlecode.com/files/tesseract-ocr-${PV}.${lang}.tar.gz" - echo "Downloading $uri" - wget -q -P "$dl_dir" "$uri" - fi - done -} - -create_recipe() { - local lang=$1 - local tarball - - tarball="$dl_dir/tesseract-ocr-${PV}.${lang}.tar.gz" - - md5sum=`md5sum $tarball | awk '{print $1}'` - sha256sum=`sha256sum $tarball | awk '{print $1}'` - - cat > $recipes_dir/tesseract-lang-`echo ${lang} | sed s/_/-/g`_${PV}.bb < - Martin Jansa diff --git a/meta-efl/classes/e-base.bbclass b/meta-efl/classes/e-base.bbclass deleted file mode 100644 index e0ae2285d82..00000000000 --- a/meta-efl/classes/e-base.bbclass +++ /dev/null @@ -1,14 +0,0 @@ -HOMEPAGE = "http://www.enlightenment.org" -SRCNAME ?= "${BPN}" -SRCVER ?= "${PV}" - -EFL_SRCREV ?= "82070" - -ARM_INSTRUCTION_SET = "arm" - -S = "${WORKDIR}/${SRCNAME}-${SRCVER}" - -# each efl or e17 module is installing module.so in different directory, disable shlibs providers for them -# evas-engine-gl-x11-1.7.7 evas-engine-software-16-1.7.7 evas-engine-software-16-x11-1.7.7 evas-engine-software-x11-1.7.7 evas-engine-wayland-shm-1.7.7 evas-cserve2-bmp-1.7.7 evas-cserve2-eet-1.7.7 evas-cserve2-ico-1.7.7 evas-cserve2-jpeg-1.7.7 evas-cserve2-pmaps-1.7.7 evas-cserve2-png-1.7.7 evas-cserve2-psd-1.7.7 evas-cserve2-tga-1.7.7 evas-cserve2-tiff-1.7.7 evas-cserve2-wbmp-1.7.7 evas-cserve2-xpm-1.7.7 evas-loader-bmp-1.7.7 evas-loader-generic-1.7.7 evas-loader-gif-1.7.7 evas-loader-ico-1.7.7 evas-loader-jpeg-1.7.7 evas-loader-pmaps-1.7.7 evas-loader-png-1.7.7 evas-loader-psd-1.7.7 evas-loader-tga-1.7.7 evas-loader-tiff-1.7.7 evas-loader-wbmp-1.7.7 evas-loader-xpm-1.7.7 evas-saver-jpeg-1.7.7 evas-saver-png-1.7.7 evas-saver-tiff-1.7.7 evas-engine-fb-1.7.7 -# emotion-1.7.7 elementary-1.7.7 elementary-tests-1.7.7 elementary-accessibility-1.7.7 e-wm-0.17.3 elfe-0.0.1+svnr82070 shr-e-gadgets-0.0.0+gitr1+27b6c17d73 cpu-0.0.1+svnr82070 places-0.1.0+svnr82070 forecasts-0.2.0+svnr82070 uptime-0.0.2+svnr82070 screenshot-0.3.0+svnr82070 exalt-client-0.0.1+svnr82070 diskio-0.0.1+svnr82070 rain-0.0.3+svnr82070 news-0.1.0+svnr82070 flame-0.0.3+svnr82070 -PRIVATE_LIBS = "module.so" diff --git a/meta-efl/classes/e.bbclass b/meta-efl/classes/e.bbclass deleted file mode 100644 index 4ee80bf5746..00000000000 --- a/meta-efl/classes/e.bbclass +++ /dev/null @@ -1,22 +0,0 @@ -SECTION = "e/apps" - -inherit e-base autotools pkgconfig binconfig - -do_prepsources () { - make clean distclean || true -} -addtask prepsources after do_patch before do_configure - -do_configure_append() { - find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g -} - -export CURL_CONFIG = "${STAGING_BINDIR_CROSS}/curl-config" -export FREETYPE_CONFIG = "${STAGING_BINDIR_CROSS}/freetype-config" - -PACKAGES =+ "${PN}-themes" -PACKAGES += "${PN}-lib" - -FILES_${PN}-lib = "${libdir}/lib*.so.*" -FILES_${PN}-themes = "${datadir}/${PN}/themes ${datadir}/${PN}/data ${datadir}/${PN}/fonts ${datadir}/${PN}/pointers ${datadir}/${PN}/images ${datadir}/${PN}/users ${datadir}/${PN}/images ${datadir}/${PN}/styles" -FILES_${PN}-dev += "${includedir} ${libdir}/lib*.so" diff --git a/meta-efl/classes/efl.bbclass b/meta-efl/classes/efl.bbclass deleted file mode 100644 index eb40e4bc3e2..00000000000 --- a/meta-efl/classes/efl.bbclass +++ /dev/null @@ -1,66 +0,0 @@ -SECTION = "e/libs" -LICENSE = "MIT & BSD" -DEPENDS += "pkgconfig-native" - -# revision 0d93ec84b30bc1bee2caaee72d667f87bc468a70 made SRCDATE and hence PV go backwards, so we need to up PE to unbreak builds and feeds :( -PE = "2" - -inherit e-base autotools - -# evas-native looks at this var, so keep it - -do_configure_prepend() { - autopoint || touch config.rpath -} - -do_install_prepend () { - for i in `find ${B}/ -name "*.pc" -type f` ; do \ - sed -i -e 's:-L${STAGING_LIBDIR}:-L\$\{libdir\}:g' -e 's:-I${STAGING_LIBDIR}:-I\$\{libdir\}:g' -e 's:-I${STAGING_INCDIR}:-I\$\{includedir\}:g' $i - done -} - -PACKAGES =+ "${PN}-themes" -PACKAGES += "${PN}-tests" -PACKAGES += "${PN}-eolian" - -FILES_${PN} = "${libdir}/*.so.* \ - ${libdir}/edje/modules/${PN}/*/module.so \ - ${libdir}/${PN}/plugins/*.so \ - ${datadir}/dbus-1/services/* \ -" - - -FILES_${PN}-themes = "${datadir}/${PN}/themes \ - ${datadir}/${PN}/data \ - ${libdir}/${PN}/plugins/data/*.edj \ - ${datadir}/${PN}/fonts \ - ${datadir}/${PN}/pointers \ - ${datadir}/${PN}/images \ - ${datadir}/${PN}/users \ - ${datadir}/${PN}/images \ - ${datadir}/${PN}/styles" - -FILES_${PN}-dev += "${bindir}/${PN}-config \ - ${libdir}/pkgconfig/* \ - ${libdir}/lib*.la \ - ${libdir}/*.so \ - ${libdir}/${PN}/*.la \ - ${libdir}/${PN}/*/*.la \ - ${datadir}/${PN}/edje_externals \ - ${libdir}/edje/modules/${PN}/*/module.la \ -" - -FILES_${PN}-eolian = " \ - ${datadir}/eolian/include \ -" - -FILES_${PN}-staticdev += "${libdir}/${BPN}/*/*.a" - -FILES_${PN}-dbg += "${libdir}/${PN}/.debug \ - ${libdir}/${PN}/*/.debug \ - ${libdir}/edje/modules/${PN}/*/.debug/module.so \ -" - -FILES_${PN}-tests = "${bindir}/${PN} \ - ${bindir}/*_* \ - ${datadir}/${PN}" diff --git a/meta-efl/conf/distro/include/efl-from-svn-recipes.inc b/meta-efl/conf/distro/include/efl-from-svn-recipes.inc deleted file mode 100644 index 23a8eaeca20..00000000000 --- a/meta-efl/conf/distro/include/efl-from-svn-recipes.inc +++ /dev/null @@ -1,43 +0,0 @@ -EFL_PREFERRED_VERSION ?= "1.7.4+svn%" -EFL_PREFERRED_PYTHON_VERSION ?= "1.7.0+svn%" - -PREFERRED_VERSION_e-wm ?= "0.17.0+svnr%" - -PREFERRED_VERSION_ecore ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_ecore-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_edbus ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_edbus-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_edje ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_edje-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_edje-nativesdk ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_eeze ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_eeze-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_efreet ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_efreet-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_eina ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_eina-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_embryo ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_embryo-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_evas ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_evas-generic-loaders ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_evas-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_expedite ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_expedite-native ?= "${EFL_PREFERRED_VERSION}" - -PREFERRED_VERSION_eet ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_eet-native ?= "${EFL_PREFERRED_VERSION}" - -PREFERRED_VERSION_eio ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_eio-native ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_emotion ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_ethumb ?= "${EFL_PREFERRED_VERSION}" -PREFERRED_VERSION_elementary ?= "${EFL_PREFERRED_VERSION}" - -PREFERRED_VERSION_python-elementary ?= "${EFL_PREFERRED_PYTHON_VERSION}" -PREFERRED_VERSION_python-ecore ?= "${EFL_PREFERRED_PYTHON_VERSION}" -PREFERRED_VERSION_python-edbus ?= "${EFL_PREFERRED_PYTHON_VERSION}" -PREFERRED_VERSION_python-edje ?= "${EFL_PREFERRED_PYTHON_VERSION}" -PREFERRED_VERSION_python-emotion ?= "${EFL_PREFERRED_PYTHON_VERSION}" -PREFERRED_VERSION_python-evas ?= "${EFL_PREFERRED_PYTHON_VERSION}" - -PREFERRED_VERSION_terminology ?= "0.2.0+svn%" diff --git a/meta-efl/conf/layer.conf b/meta-efl/conf/layer.conf deleted file mode 100644 index ed132aabba6..00000000000 --- a/meta-efl/conf/layer.conf +++ /dev/null @@ -1,31 +0,0 @@ -# We have a conf and classes directory, append to BBPATH -BBPATH .= ":${LAYERDIR}" - -# We have a recipes directory, add to BBFILES -BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" - -BBFILE_COLLECTIONS += "efl-layer" -BBFILE_PATTERN_efl-layer := "^${LAYERDIR}/" -BBFILE_PRIORITY_efl-layer = "7" - -# This should only be incremented on significant changes that will -# cause compatibility issues with other layers -LAYERVERSION_efl-layer = "1" - -LAYERDEPENDS_efl-layer = "core openembedded-layer" - -E_MIRROR = "http://download.enlightenment.org/releases" -E_RELEASES = "http://download.enlightenment.org/rel" -E_SVN = "svn://svn.enlightenment.org/svn/e" - -# RDEPENDS on update-alternatives provider opkg-utils -SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\ - exquisite-theme-illume->opkg-utils \ -" - -# RDEPENDS on e-wm -SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\ - e-wm-theme-illume-efenniht->e-wm \ - e-wm-theme-illume-neo->e-wm \ - e-wm-theme-b-and-w->e-wm \ -" diff --git a/meta-efl/recipes-core/meta/meta-toolchain-efl.bb b/meta-efl/recipes-core/meta/meta-toolchain-efl.bb deleted file mode 100644 index b7b7fca8956..00000000000 --- a/meta-efl/recipes-core/meta/meta-toolchain-efl.bb +++ /dev/null @@ -1,6 +0,0 @@ -TOOLCHAIN_TARGET_EFLTASK ?= "packagegroup-efl-standalone-sdk-target packagegroup-efl-standalone-sdk-target-dbg" -TOOLCHAIN_TARGET_TASK = "${TOOLCHAIN_TARGET_EFLTASK}" -TOOLCHAIN_OUTPUTNAME = "${SDK_NAME}-toolchain-efl-${DISTRO_VERSION}" -require recipes-core/meta/meta-toolchain.bb - -TOOLCHAIN_NEED_CONFIGSITE_CACHE += "zlib" diff --git a/meta-efl/recipes-devtools/python/python-edbus.inc b/meta-efl/recipes-devtools/python/python-edbus.inc deleted file mode 100644 index 1d8098f60df..00000000000 --- a/meta-efl/recipes-devtools/python/python-edbus.inc +++ /dev/null @@ -1,50 +0,0 @@ -DESCRIPTION = "${PN} bindings" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" -AUTHOR = "Gustavo Sverzut Barbieri " -# NOTE: Due to a bug in distutils, even if we don't use pyrex but cython, -# we need to build pyrex otherwise cython doesn't get called to build -# the extension modules. -DEPENDS = "python-cython-native python-pyrex-native python-numeric eina edbus python-dbus" -RDEPENDS_${PN} += "python-lang python-dbus" - -# necessary to let the call for python-config succeed -export BUILD_SYS -export HOST_SYS - -inherit e-base autotools pkgconfig distutils-base - -SRCNAME = "python-e_dbus" -SRCVER = "${PV}" - -SRC_URI = "\ - ${E_MIRROR}/BINDINGS/python/${SRCNAME}-${SRCVER}.tar.bz2 \ -" -S = "${WORKDIR}/${SRCNAME}-${SRCVER}" - - -do_configure_prepend() { - # prefix CYTHON_.*_INCLUDEDIR with path to STAGING_DIR_HOST also use $PKG_CONFIG instead of pkg-config directly - sed -i "s#=\`\$PKG_CONFIG --variable=includedir \"python-evas#=${STAGING_DIR_HOST}\`\$PKG_CONFIG --variable=includedir \"python-evas#g" ${S}/configure.ac -} - -do_install_append() { - if [ -e examples ]; then - for i in `find examples -name "*.edc"`; do - cd ${S}/`dirname $i` - echo "Generating .edj file for $i..." - edje_cc `basename $i` - echo "Removing sources in this directory..." - rm -f *.edc *.png *.ttf *.jpeg - done - cd ${S} - install -d ${D}${datadir}/${PN}/ - cp -a examples ${D}${datadir}/${PN}/ - find ${D}${datadir}/${PN}/examples -name ".svn" | xargs rm -rf - fi -} - -FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*.egg/*/*/.debug" - -PACKAGES += "${PN}-examples" -FILES_${PN}-examples = "${datadir}/${PN}/examples" diff --git a/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb b/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb deleted file mode 100644 index 9e5ff0a02fe..00000000000 --- a/meta-efl/recipes-devtools/python/python-edbus_1.7.0.bb +++ /dev/null @@ -1,6 +0,0 @@ -require ${BPN}.inc - -PR = "r1" - -SRC_URI[md5sum] = "40b479444bb06147429a276127981890" -SRC_URI[sha256sum] = "78e5ca334ee25185748660b4e612f984f4d3bced018f062278701429868f117b" diff --git a/meta-efl/recipes-devtools/python/python-efl.inc b/meta-efl/recipes-devtools/python/python-efl.inc deleted file mode 100644 index 92a26eddbad..00000000000 --- a/meta-efl/recipes-devtools/python/python-efl.inc +++ /dev/null @@ -1,75 +0,0 @@ -DESCRIPTION = "${PN} bindings" - -LICENSE = "LGPL-3.0" -LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02" -# there is also GPLv3.0 in COPYING;md5=d32239bcb673463ab874e80d47fae504 but no file seems to use that - -AUTHOR = "Gustavo Sverzut Barbieri " -# NOTE: Due to a bug in distutils, even if we don't use pyrex but cython, -# we need to build pyrex otherwise cython doesn't get called to build -# the extension modules. -DEPENDS = "python-cython-native python-pyrex-native python-numeric python-dbus lua efl elementary" -RDEPENDS_${PN} += "python-lang" - -PROVIDES = "python-ecore python-eldbus python-edje python-elementary python-emotion python-evas" - -# necessary to let the call for python-config succeed -export BUILD_SYS -export HOST_SYS - -inherit e-base distutils pkgconfig - -SRCVER = "${PV}" - -SRC_URI = "\ - ${E_RELEASES}/bindings/python/${SRCNAME}-${SRCVER}.tar.gz \ -" -S = "${WORKDIR}/${SRCNAME}-${SRCVER}" - -do_install_append() { - # drop all .pyo, pyc files - find ${D}${libdir}/${PYTHON_DIR}/site-packages -name \*.pyo -o -name \*.pyc | xargs rm -f -} - -PACKAGES += "python-ecore python-eldbus python-edje python-elementary python-emotion python-evas python-ethumb ${PN}-examples" - -FILES_${PN} = " \ - ${libdir}/${PYTHON_DIR}/site-packages/python_efl*egg-info \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/eo.so \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/utils \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/__init__.py \ -" -FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/*.egg/*/*/.debug" -FILES_${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/*/*.la" - -FILES_${PN}-examples = "${datadir}/${PN}/examples" - -FILES_python-ecore = " \ - ${libdir}/${PYTHON_DIR}/site-packages/ecore/ \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/ecore*.so \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/ecore \ -" -FILES_python-eldbus = " \ - ${libdir}/${PYTHON_DIR}/site-packages/e_dbus/ \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/dbus_mainloop.so \ -" -FILES_python-edje = " \ - ${libdir}/${PYTHON_DIR}/site-packages/edje/ \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/edje*.so \ -" -FILES_python-elementary = " \ - ${libdir}/${PYTHON_DIR}/site-packages/elementary/ \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/elementary/ \ -" -FILES_python-emotion = " \ - ${libdir}/${PYTHON_DIR}/site-packages/emotion/ \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/emotion.so \ -" -FILES_python-evas = " \ - ${libdir}/${PYTHON_DIR}/site-packages/evas/ \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/evas.so \ -" -FILES_python-ethumb = " \ - ${libdir}/${PYTHON_DIR}/site-packages/ethumb/ \ - ${libdir}/${PYTHON_DIR}/site-packages/efl/ethumb*so \ -" diff --git a/meta-efl/recipes-devtools/python/python-efl_1.13.0.bb b/meta-efl/recipes-devtools/python/python-efl_1.13.0.bb deleted file mode 100644 index ef9f80bcd9c..00000000000 --- a/meta-efl/recipes-devtools/python/python-efl_1.13.0.bb +++ /dev/null @@ -1,4 +0,0 @@ -require ${BPN}.inc - -SRC_URI[md5sum] = "98b1ca3e0feeecf8b993f9c415ff22e5" -SRC_URI[sha256sum] = "16b8234ee763fab27071e7d708accbdb0cd43eecdfdb08775853bf380e558f8d" diff --git a/meta-efl/recipes-devtools/python/python-efl_git.bb b/meta-efl/recipes-devtools/python/python-efl_git.bb deleted file mode 100644 index 83a01ac6965..00000000000 --- a/meta-efl/recipes-devtools/python/python-efl_git.bb +++ /dev/null @@ -1,9 +0,0 @@ -require ${BPN}.inc - -SRCREV = "71ed20ebf662a7b72e60913df94ce6933236bf09" -PV = "1.12.0+git${SRCPV}" -DEFAULT_PREFERENCE = "-1" - -SRC_URI = "git://git.enlightenment.org/bindings/python/${BPN}.git;branch=python-efl-1.12" - -S = "${WORKDIR}/git" diff --git a/meta-efl/recipes-efl/e17/cpu/configure.patch b/meta-efl/recipes-efl/e17/cpu/configure.patch deleted file mode 100644 index 87c85de9f88..00000000000 --- a/meta-efl/recipes-efl/e17/cpu/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: cpu/configure.ac -=================================================================== ---- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 -+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 -@@ -10,7 +10,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.6) -+AM_INIT_AUTOMAKE([foreign]) - AM_CONFIG_HEADER(config.h) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - diff --git a/meta-efl/recipes-efl/e17/cpu_svn.bb b/meta-efl/recipes-efl/e17/cpu_svn.bb deleted file mode 100644 index 14eb08f7180..00000000000 --- a/meta-efl/recipes-efl/e17/cpu_svn.bb +++ /dev/null @@ -1,10 +0,0 @@ -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ - file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" - -PV = "0.0.1+svnr${SRCREV}" -PR = "${INC_PR}.0" - -require e-module.inc - -SRC_URI += "file://configure.patch" diff --git a/meta-efl/recipes-efl/e17/diskio_svn.bb b/meta-efl/recipes-efl/e17/diskio_svn.bb deleted file mode 100644 index a26186e44c9..00000000000 --- a/meta-efl/recipes-efl/e17/diskio_svn.bb +++ /dev/null @@ -1,10 +0,0 @@ -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ - file://COPYING-PLAIN;md5=68be76d8126face2fbbecdf1bcbe2b10" - -PV = "0.0.1+svnr${SRCPV}" -PR = "${INC_PR}.0" - -PNBLACKLIST[diskio] ?= "broken: switch to https://git.enlightenment.org/enlightenment/modules/diskio.git/ and fix 0.0.1+svnr82070-r0.0/E-MODULES-EXTRA/diskio/e-module-diskio.edc:58. invalid state name: 'off'. "default" state must always be first." - -require e-module.inc diff --git a/meta-efl/recipes-efl/e17/e-module.inc b/meta-efl/recipes-efl/e17/e-module.inc deleted file mode 100644 index 09235757254..00000000000 --- a/meta-efl/recipes-efl/e17/e-module.inc +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "E17 ${PN} module" -SECTION = "x11/multimedia" -DEPENDS = "e-wm" - -SRCREV = "${EFL_SRCREV}" -INC_PR = "r0" - -SRCNAME = "E-MODULES-EXTRA/${PN}" - -inherit e gettext -SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" - -FILES_${PN} += "${libdir}/enlightenment/modules/${PN}" -FILES_${PN}-dbg += "${libdir}/enlightenment/modules/${PN}/*/.debug" -FILES_${PN}-staticdev += "${libdir}/enlightenment/modules/${PN}/*/*.a" - diff --git a/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch b/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch deleted file mode 100644 index f92a772fe1f..00000000000 --- a/meta-efl/recipes-efl/e17/e-tasks/0001-dbus-stuff-Convert-to-eldbus.patch +++ /dev/null @@ -1,204 +0,0 @@ -From 37223289b3d85ea8876e7ba7c9ff97ec428073ba Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sat, 22 Feb 2014 14:36:38 +0100 -Subject: [PATCH] dbus-stuff: Convert to eldbus - -Signed-off-by: Martin Jansa ---- - configure.ac | 2 +- - src/Makefile.am | 2 +- - src/dbus-stuff.c | 95 ++++++++++++++++++++++++++++++++------------------------ - src/dbus-stuff.h | 13 ++------ - src/main.c | 2 +- - 5 files changed, 61 insertions(+), 53 deletions(-) - -diff --git a/configure.ac b/configure.ac -index b3e4d12..4ace32a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -15,7 +15,7 @@ AC_HEADER_STDC - - AM_PROG_LIBTOOL - --PKG_CHECK_MODULES(TASKS, [elementary eina dbus-1 edbus sqlite3]) -+PKG_CHECK_MODULES(TASKS, [elementary eina dbus-1 eldbus sqlite3]) - - AC_OUTPUT([ - Makefile -diff --git a/src/Makefile.am b/src/Makefile.am -index 2143dc9..31d5253 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -8,7 +8,7 @@ AM_CPPFLAGS = \ - $(TASKS_CFLAGS) - - AM_CFLAGS =\ -- $(EDBUS_CFLAGS) \ -+ $(ELDBUS_CFLAGS) \ - -Wall\ - -g - -diff --git a/src/dbus-stuff.c b/src/dbus-stuff.c -index 50809bc..9f02ef3 100644 ---- a/src/dbus-stuff.c -+++ b/src/dbus-stuff.c -@@ -1,8 +1,7 @@ - /*************************************************************************** - * dbus-stuff.c - * -- * Copyright 2009 cchandel -- * -+ * Copyright 2009 cchandel - ****************************************************************************/ - - /* -@@ -21,51 +20,67 @@ - * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA - */ - #include "dbus-stuff.h" --#include --#include --#include -+#include "Eldbus.h" - --void occupy_cpu(void) -+void on_usage_cb(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) -+{ -+ const char *errname, *errmsg; -+ if (eldbus_message_error_get(msg, &errname, &errmsg)) -+ fprintf(stderr, "Error: %s %s\n", errname, errmsg); -+} -+ -+int ousaged_resource(const char *resource, int used) - { -- e_dbus_init(); -- conn = e_dbus_bus_get(DBUS_BUS_SYSTEM); -- -- DBusMessage *msg; -- msg = dbus_message_new_method_call( -- "org.freesmartphone.ousaged", -- "/org/freesmartphone/Usage", -- "org.freesmartphone.Usage", -- "RequestResource" -- ); -- -- const char *resource = "CPU"; -- dbus_message_append_args (msg, DBUS_TYPE_STRING, &resource, DBUS_TYPE_INVALID); -+ eldbus_init(); -+ const char *REQUEST = "RequestResource"; -+ const char *RELEASE = "ReleaseResource"; -+ const int PREQUEST = 1; - -- e_dbus_message_send(conn, msg, dbus_reply_cb, -1, NULL); -- dbus_message_unref(msg); --} -+ Eldbus_Connection *conn; -+ Eldbus_Object *obj; -+ Eldbus_Proxy *usage; -+ Eldbus_Pending *pending; -+ conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SYSTEM); -+ if (!conn) -+ { -+ fprintf(stderr, "Error: could not get system bus\n"); -+ return EXIT_FAILURE; -+ } - --void release_cpu(void) --{ -- DBusMessage *msg; -- msg = dbus_message_new_method_call( -- "org.freesmartphone.ousaged", -- "/org/freesmartphone/Usage", -- "org.freesmartphone.Usage", -- "ReleaseResource" -- ); -- -- const char *resource = "CPU"; -- dbus_message_append_args (msg, DBUS_TYPE_STRING, &resource, DBUS_TYPE_INVALID); -+ obj = eldbus_object_get(conn, "org.freesmartphone.ousaged", "/org/freesmartphone/Usage"); -+ if (!obj) -+ { -+ fprintf(stderr, "Error: could not get object\n"); -+ return EXIT_FAILURE; -+ } - -- e_dbus_message_send(conn, msg, dbus_reply_cb, -1, NULL); -- dbus_message_unref(msg); -+ usage = eldbus_proxy_get(obj, "org.freesmartphone.Usage"); -+ if (!usage) -+ { -+ fprintf(stderr, "Error: could not get proxy\n"); -+ return EXIT_FAILURE; -+ } -+ -+ pending = eldbus_proxy_call(usage, used == PREQUEST ? REQUEST : RELEASE, on_usage_cb, NULL, -1, "ss", resource); -+ if (!pending) -+ { -+ fprintf(stderr, "Error: could not call\n"); -+ return EXIT_FAILURE; -+ } -+ eldbus_proxy_unref(usage); -+ eldbus_object_unref(obj); -+ eldbus_connection_unref(conn); -+ -+ eldbus_shutdown(); -+ return EXIT_SUCCESS; - } - --void dbus_reply_cb(void *data, DBusMessage *replymsg, DBusError *error) -+int request_cpu(void) - { -- if (dbus_error_is_set(error)) { -- printf("Error: %s - %s\n", error->name, error->message); -- } -+ return ousaged_resource("CPU", 1); - } - -+int release_cpu(void) -+{ -+ return ousaged_resource("CPU" , 0); -+} -diff --git a/src/dbus-stuff.h b/src/dbus-stuff.h -index 83d4778..a3c72cb 100644 ---- a/src/dbus-stuff.h -+++ b/src/dbus-stuff.h -@@ -2,8 +2,7 @@ - * dbus.h - * - * Fri Mar 6 12:32:57 2009 -- * Copyright 2009 nidhin -- * -+ * Copyright 2009 nidhin - ****************************************************************************/ - - /* -@@ -22,11 +21,5 @@ - * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA - */ - --#include --#include -- --void occupy_cpu(void); --void release_cpu(void); --void dbus_reply_cb(void *data, DBusMessage *replymsg, DBusError *error); -- --E_DBus_Connection *conn; -+int request_cpu(void); -+int release_cpu(void); -diff --git a/src/main.c b/src/main.c -index 92d21de..4e4bbe2 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -76,7 +76,7 @@ elm_main(int argc, char **argv) - //restore state - restore_state(); - -- occupy_cpu(); -+ request_cpu(); - - elm_run(); - //clean up stuff --- -1.8.5.3 - diff --git a/meta-efl/recipes-efl/e17/e-tasks_git.bb b/meta-efl/recipes-efl/e17/e-tasks_git.bb deleted file mode 100644 index 60651578396..00000000000 --- a/meta-efl/recipes-efl/e17/e-tasks_git.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "e-tasks is a todo program for Openmoko phones" -HOMEPAGE = "http://code.google.com/p/e-tasks/" -AUTHOR = "cchandel" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" -SECTION = "e/apps" -DEPENDS = "elementary eina eldbus sqlite3" - -inherit autotools - -SRCREV = "890f5ee37d1a5fd1ceb2495950d15151d4cf756b" -PV = "0.0.2+gitr${SRCPV}" - -SRC_URI = "git://github.com/shr-project/e-tasks.git" -SRC_URI += "file://0001-dbus-stuff-Convert-to-eldbus.patch" - -S = "${WORKDIR}/git" - -do_install_append() { - install -d "${D}/${datadir}/pixmaps" - install -m 0644 "${S}/resources/e-tasks.png" "${D}/${datadir}/pixmaps" - install -d "${D}/${datadir}/applications" - install -m 0644 "${S}/resources/e-tasks.desktop" "${D}/${datadir}/applications" - install -d "${D}/${datadir}/e-tasks" - for ico in "${S}/resources/"*.png; do - if [ "$(basename $ico)" != "e-tasks.png" ]; then - install -m 0644 $ico "${D}/${datadir}/e-tasks" - fi - done -} - -FILES_${PN} += "/usr/share/e-tasks/* /usr/share/applications/* /usr/share/pixmaps/*" diff --git a/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb b/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb deleted file mode 100644 index ae1b8a6c698..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm-theme-b-and-w_svn.bb +++ /dev/null @@ -1,31 +0,0 @@ -DESCRIPTION = "b-and-w theme was default E17 theme before alpha3 and some people still prefers it." -SECTION = "e/utils" -DEPENDS = "edje-native" -RDEPENDS_${PN} = "e-wm" -LICENSE = "MIT & BSD" -# upstream was asked to include license infor in THEME dir -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" - -inherit allarch - -SRCREV = "${EFL_SRCREV}" -PV = "0.0+svnr${SRCPV}" - -inherit e-base - -SRCNAME = "b_and_w" -SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http" -S = "${WORKDIR}/${SRCNAME}/e" - -do_compile() { - # unfortunately hardcoded edje_cc in Makefile - sed -i "s#\tedje_cc#\t${STAGING_BINDIR_NATIVE}/edje_cc#g" Makefile - make -} - -do_install() { - install -d ${D}${datadir}/enlightenment/data/themes/ - install -m 0644 ${S}/b_and_w.edj ${D}${datadir}/enlightenment/data/themes/ -} - -FILES_${PN} = "${datadir}/enlightenment/data/themes/" diff --git a/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE b/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE deleted file mode 100644 index 61bb2f603da..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright notice for Enlightenment: - -Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS) - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb b/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb deleted file mode 100644 index 965e4e995a4..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm-theme-illume-efenniht_svn.bb +++ /dev/null @@ -1,35 +0,0 @@ -DESCRIPTION = "efenniht illume theme - Efenniht was devised to be clean \ -and neutral. Its name (which means equinox) comes from the chromatic duality \ -that was decided at the very beginning, with a dark theme (black and orange) \ -and a bright one (white and blue) to be developed so that more people feel \ -comfortable using it. Efenniht uses few animations, discrete contrasts between \ -shades of gray and fine lines (colored) that outline the selected elements." -SECTION = "e/utils" -HOMEPAGE = "http://trac.enlightenment.org/e/wiki/Themes#Efenniht" -DEPENDS = "edje-native" -RDEPENDS_${PN} = "e-wm" -RSUGGESTS_${PN} = "elementary-theme-efenniht" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" - -SRCREV = "${EFL_SRCREV}" -PV = "0.0+svnr${SRCPV}" - -inherit e-base allarch - -SRCNAME = "efenniht" -SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http \ - file://LICENSE \ -" -S = "${WORKDIR}/${SRCNAME}" - -do_compile() { - ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/images ${S}/efenniht.edc -o ${S}/efenniht.edj -} - -do_install() { - install -d ${D}${datadir}/enlightenment/data/themes/ - install -m 0644 ${S}/efenniht.edj ${D}${datadir}/enlightenment/data/themes/ -} - -FILES_${PN} = "${datadir}/enlightenment/data/themes/" diff --git a/meta-efl/recipes-efl/e17/e-wm.inc b/meta-efl/recipes-efl/e17/e-wm.inc deleted file mode 100644 index 45637f366ee..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm.inc +++ /dev/null @@ -1,202 +0,0 @@ -DESCRIPTION = "The Enlightenment Window Manager Version 17" -DEPENDS = "eet evas eina ecore edje efreet edbus eeze eio elementary libxcb xcb-util-keysyms" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=76de290eb3fdda12121830191c152a7d" -SRCNAME = "e" - -inherit e update-alternatives gettext pkgconfig -S = "${WORKDIR}/${SRCNAME}" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ - ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" -PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam" -PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" - - -EXTRA_OECONF = "\ - --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ - --with-eet-eet=${STAGING_BINDIR_NATIVE}/eet \ - --x-includes=${STAGING_INCDIR}/X11 \ - --x-libraries=${STAGING_LIBDIR} \ - --enable-simple-x11 \ -" - -do_configure_prepend() { - autopoint || true - sed '/^ *EFL_PKG_CHECK_VAR/ s/systemduserunitdir/systemdsystemunitdir/g' -i ${S}/configure.ac -} - -do_install_append() { - # customising - should rather make this simple upstream - install -m 755 ${WORKDIR}/enlightenment_start.oe ${D}/${bindir} - - # security reasons, e-wm checks that in runtime - # xinit[418]: ERROR: CONFIGURATION FILE HAS BAD PERMISSIONS - chmod 600 ${D}/${sysconfdir}/enlightenment/sysactions.conf - - install -d ${D}/${sysconfdir}/xdg/menus - install -m 644 ${WORKDIR}/applications.menu ${D}/${sysconfdir}/xdg/menus/ - for I in `find ${D}/${libdir}/enlightenment -name "*.a" -print`; do rm -f $I; done - for I in `find ${D}/${libdir}/enlightenment -name "*.la" -print`; do rm -f $I; done - - # work around for issue caused in r78978, more infor in: - # http://sourceforge.net/mailarchive/forum.php?thread_name=20121118194904.GA3438%40jama.jama.net&forum_name=enlightenment-devel - mv ${D}/${libdir}/enlightenment/modules/policies ${D}/${libdir}/enlightenment/modules/illume2/ \ - || echo "illume2 policies are in correct place now" - mv ${D}/${libdir}/enlightenment/modules/keyboards ${D}/${libdir}/enlightenment/modules/illume2/ \ - || echo "illume2 keyboards are in correct place now" -} - -RDEPENDS_${PN} += "\ - shared-mime-info \ - mime-support \ - setxkbmap \ - edje-utils \ - ${PN}-utils \ - dbus-x11 \ -" - -# Uclibc build don't have 'glibc-utils' -RDEPENDS_${PN}_append_libc-glibc = " glibc-utils " - -# The systray module used to be external, but is part of e-wm now -RREPLACES_${PN} = "systray" - -RREPLACES_${PN}-config-mobile = "${PN}-config-illume2" -RCONFLICTS_${PN}-config-mobile = "${PN}-config-illume2" -RPROVIDES_${PN}-config-mobile = "${PN}-config-illume2" - -PACKAGES =+ "\ - ${PN}-config-default \ - ${PN}-config-mobile \ - ${PN}-config-minimalist \ - ${PN}-config-netbook \ - ${PN}-config-scaleable \ - ${PN}-config-standard \ - ${PN}-config-tiling \ - ${PN}-theme-default \ - ${PN}-background-dark-gradient \ - ${PN}-background-light-gradient \ - ${PN}-backgrounds \ - ${PN}-images \ - ${PN}-icons \ - ${PN}-other \ - ${PN}-input-methods \ - ${PN}-sysactions \ - ${PN}-utils \ - ${PN}-menu \ - efm-desktop-icon \ - illume-keyboard-default-alpha \ - illume-keyboard-default-numeric \ - illume-keyboard-default-terminal \ -" - -ESYSACTIONS ?= "${PN}-sysactions" - -RRECOMMENDS_${PN} = "\ - ${PN}-config-default \ - ${PN}-images \ - ${PN}-icons \ - ${PN}-other \ - ${PN}-input-methods \ - ${ESYSACTIONS} \ - efreet \ - evas-generic-loader-svg \ -" - -FILES_${PN} = "\ - ${bindir}/* \ - ${libdir}/enlightenment/utils/* \ - ${libdir}/enlightenment/modules/*/*.* \ - ${libdir}/enlightenment/modules/*/*/* \ - ${libdir}/enlightenment/modules/*/*/.order \ - ${libdir}/enlightenment/modules/keyboards/ignore_built_in_keyboards \ - ${libdir}/enlightenment/*plugins/*/*/* \ - ${libdir}/enlightenment/preload/e_precache.so \ - ${datadir}/enlightenment/data/icons \ - ${datadir}/enlightenment/data/favorites \ - ${datadir}/enlightenment/data/input_methods \ - ${datadir}/enlightenment/data/config/profile.cfg \ - ${datadir}/enlightenment/AUTHORS \ - ${datadir}/enlightenment/COPYING \ - ${datadir}/xsessions/enlightenment.desktop \ - ${sysconfdir}/xdg \ - ${systemd_unitdir} \ -" - -FILES_${PN}-config-default = "${datadir}/enlightenment/data/config/default" -FILES_${PN}-config-mobile = "${datadir}/enlightenment/data/config/mobile" -FILES_${PN}-config-minimalist = "${datadir}/enlightenment/data/config/minimalist" -FILES_${PN}-config-netbook = "${datadir}/enlightenment/data/config/netbook" -FILES_${PN}-config-scaleable = "${datadir}/enlightenment/data/config/scaleable" -FILES_${PN}-config-standard = "${datadir}/enlightenment/data/config/standard" -FILES_${PN}-config-tiling = "${datadir}/enlightenment/data/config/tiling" -FILES_${PN}-theme-default = "${datadir}/enlightenment/data/themes/default.edj" -FILES_${PN}-theme-default = "${datadir}/enlightenment/data/themes/default.edj" -FILES_${PN}-background-dark-gradient = "${datadir}/enlightenment/data/backgrounds/Dark_Gradient.edj" -FILES_${PN}-background-light-gradient = "${datadir}/enlightenment/data/backgrounds/Light_Gradient.edj" -FILES_${PN}-backgrounds = "${datadir}/enlightenment/data/backgrounds/*.edj" -FILES_${PN}-images = "${datadir}/enlightenment/data/images ${datadir}/enlightenment/data/flags" -FILES_${PN}-icons = "${datadir}/enlightenment/data/icons" -FILES_${PN}-other = "${datadir}/enlightenment/data/other" -FILES_${PN}-input-methods = "${datadir}/enlightenment/data/input_methods" -FILES_${PN}-sysactions = "${sysconfdir}/enlightenment/sysactions.conf" -FILES_${PN}-utils = "${libdir}/enlightenment/utils/*" -FILES_${PN}-menu = "${sysconfdir}/xdg/menus/applications.menu" - -FILES_efm-desktop-icon = "\ - ${datadir}/applications/efm.desktop \ - ${datadir}/applications/enlightenment_filemanager.desktop \ - ${datadir}/icons/e-module-fileman.png \ -" - -KEYBOARDS_DIR="${libdir}/enlightenment/modules/illume-keyboard/keyboards" -FILES_illume-keyboard-default-alpha = "\ - ${KEYBOARDS_DIR}/Default.kbd \ - ${KEYBOARDS_DIR}/alpha.png \ -" -FILES_illume-keyboard-default-numeric = "\ - ${KEYBOARDS_DIR}/Numbers.kbd \ - ${KEYBOARDS_DIR}/numeric.png \ -" -FILES_illume-keyboard-default-terminal = "\ - ${KEYBOARDS_DIR}/Terminal.kbd \ - ${KEYBOARDS_DIR}/qwerty.png \ -" - -RRECOMMENDS_${PN}-config-default = "${PN}-theme-default" -RRECOMMENDS_${PN}-config-mobile = "\ - illume-keyboard-default-alpha \ - illume-keyboard-default-numeric \ - illume-keyboard-default-terminal \ -" - -RRECOMMENDS_${PN}-config-minimalist = "\ - ${PN}-background-light-gradient \ - ${PN}-theme-default \ -" -RRECOMMENDS_${PN}-config-netbook = "\ - ${PN}-background-dark-gradient \ - ${PN}-theme-default \ -" -RRECOMMENDS_${PN}-config-scaleable = "${PN}-theme-default" -RRECOMMENDS_${PN}-config-standard = "${PN}-theme-default" - -FILES_${PN}-dbg += "\ - ${libdir}/enlightenment/modules/*/*/.debug/ \ - ${libdir}/enlightenment/modules/policies/.debug/ \ - ${libdir}/enlightenment/preload/.debug/ \ - ${libdir}/enlightenment/utils/.debug/ \ - ${libdir}/enlightenment/*plugins/*/*/.debug \ -" - -FILES_${PN}-doc += "\ - ${datadir}/enlightenment/doc \ -" - -CONFFILES_${PN}-menu = "${sysconfdir}/xdg/menus/applications.menu" -CONFFILES_${PN}-sysactions = "/etc/enlightenment/sysactions.conf" - -ALTERNATIVE_${PN} = "x-window-manager" -ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/enlightenment_start.oe" -ALTERNATIVE_PRIORITY[x-window-manager] = "16" diff --git a/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch b/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch deleted file mode 100644 index e718ef3db39..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm/0001-Fix-incorrect-message-type.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0aef43c9cd1656413cf2eb3dc7c19b355ee7ed52 Mon Sep 17 00:00:00 2001 -From: Carlos Rafael Giani -Date: Sun, 1 Jun 2014 14:45:49 +0200 -Subject: [PATCH] Fix incorrect message type - -Upstream-Status: Pending - -Signed-off-by: Carlos Rafael Giani ---- - src/bin/e_desk.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c -index b156e19..77d7520 100644 ---- a/src/bin/e_desk.c -+++ b/src/bin/e_desk.c -@@ -221,7 +221,7 @@ e_desk_show(E_Desk *desk) - E_Event_Desk_Show *ev; - E_Event_Desk_Before_Show *eev; - E_Event_Desk_After_Show *eeev; -- Edje_Message_Float_Set *msg; -+ Edje_Message_Int_Set *msg; - Eina_List *l; - E_Shelf *es; - int was_zone = 0, x, y, dx = 0, dy = 0; --- -1.8.3.2 - diff --git a/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch b/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch deleted file mode 100644 index c7a574c908d..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm/0001-configure.ac-add-foreign.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 19e59b6e8148388e7a17f10d4390176a50e2917f Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Mon, 25 Aug 2014 16:06:03 +0200 -Subject: [PATCH] configure.ac: add foreign - -* fixes: - | configure.ac:312: error: required file './ABOUT-NLS' not found - -Signed-off-by: Martin Jansa ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 51ad0ba..cd77739 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -34,7 +34,7 @@ AH_BOTTOM([ - #endif /* EFL_CONFIG_H__ */ - ]) - --AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wno-portability]) -+AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wno-portability foreign]) - AM_SILENT_RULES([yes]) - - AC_USE_SYSTEM_EXTENSIONS --- -2.3.0 - diff --git a/meta-efl/recipes-efl/e17/e-wm/applications.menu b/meta-efl/recipes-efl/e17/e-wm/applications.menu deleted file mode 100644 index ed9b906621e..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm/applications.menu +++ /dev/null @@ -1,105 +0,0 @@ - - - - Applications - - - - /usr/share/applications - - - - Office - Office.directory - - - Office - - - - - - Multimedia - Multimedia.directory - - - AudioVideo - - - - - - Graphics - Graphics.directory - - - Graphics - - - - - - Games - Games.directory - - - - Game - Games - - - - - - - Internet - Internet.directory - - - - Internet - Network - - - - - - - Settings - Settings.directory - - - - SystemSettings - Settings - - - System - - - - - - - Accessories - Accessories.directory - - - - Applications - Utility - - - System - Office - Internet - AudioVideo - Graphics - Games - - - - - - - diff --git a/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe b/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe deleted file mode 100644 index ff861727520..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm/enlightenment_start.oe +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -E_PROFILE="" -if [ -r /etc/enlightenment/default_profile ]; then - . /etc/enlightenment/default_profile -fi - -renice -2 -p $$ -exec enlightenment_start $E_PROFILE diff --git a/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb b/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb deleted file mode 100644 index 6b4c9fc542e..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm_0.18.8.bb +++ /dev/null @@ -1,15 +0,0 @@ -require ${BPN}.inc - -SRCNAME = "enlightenment" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -SRC_URI = "\ - ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ - file://enlightenment_start.oe \ - file://applications.menu \ - file://0001-Fix-incorrect-message-type.patch \ -" - -SRC_URI[md5sum] = "79c9f524e1d0510061c62c4b038a8ece" -SRC_URI[sha256sum] = "14c9bde4334d2f8b0776c6113d02b923ab159eea1cbf7013489e4f3bf37a51bb" diff --git a/meta-efl/recipes-efl/e17/e-wm_0.19.4.bb b/meta-efl/recipes-efl/e17/e-wm_0.19.4.bb deleted file mode 100644 index 7082519610e..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm_0.19.4.bb +++ /dev/null @@ -1,19 +0,0 @@ -require ${BPN}.inc - -SRCNAME = "enlightenment" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -# couple of modules needed for illume2 (mobile) profile were removed in -# http://git.enlightenment.org/core/enlightenment.git/commit/src/modules/Makefile.mk?id=1be76d599ca27f820b58b8186c5f73d9844c67ca -# and replacements aren't included yet, if you want to use e-wm on device with small screen, better stay with 0.18 release -DEFAULT_PREFERENCE = "-1" - -SRC_URI = "\ - ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ - file://enlightenment_start.oe \ - file://applications.menu \ -" - -SRC_URI[md5sum] = "f442ae743d7f698aeb78d245dbc57357" -SRC_URI[sha256sum] = "1bada8285d9125820a71bc8f5ad9d64b1c07776d5ad31dffe7758f4a9e1def06" diff --git a/meta-efl/recipes-efl/e17/e-wm_git.bb b/meta-efl/recipes-efl/e17/e-wm_git.bb deleted file mode 100644 index 9eb839bea87..00000000000 --- a/meta-efl/recipes-efl/e17/e-wm_git.bb +++ /dev/null @@ -1,14 +0,0 @@ -require ${BPN}.inc - -PV = "0.19.4+git${SRCPV}" -DEFAULT_PREFERENCE = "-2" - -SRC_URI = " \ - git://git.enlightenment.org/core/enlightenment.git;branch=enlightenment-0.19 \ - file://0001-configure.ac-add-foreign.patch \ - file://enlightenment_start.oe \ - file://applications.menu \ -" -S = "${WORKDIR}/git" - -SRCREV = "4545d4a70031e0b2565b8d83d5f756bff1a584d0" diff --git a/meta-efl/recipes-efl/e17/edje-viewer_svn.bb b/meta-efl/recipes-efl/e17/edje-viewer_svn.bb deleted file mode 100644 index 2b927a0dda7..00000000000 --- a/meta-efl/recipes-efl/e17/edje-viewer_svn.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Edje_Viewer is just that" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ - file://COPYING-PLAIN;md5=e01359041001e8bf24c09acca556e792" - -DEPENDS = "elementary" -PV = "0.0.0+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit e - -SRCNAME = "edje_viewer" -SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" - -FILES_${PN} += "${datadir}" diff --git a/meta-efl/recipes-efl/e17/elbow_git.bb b/meta-efl/recipes-efl/e17/elbow_git.bb deleted file mode 100644 index 16664f97a25..00000000000 --- a/meta-efl/recipes-efl/e17/elbow_git.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "EFL based browser" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6" -DEPENDS = "evas ecore edje eina elementary webkit-efl sqlite3" - -PV = "0.0.1+gitr${SRCPV}" -SRCREV = "b41fd0bc9514ff61bb2a50d957efe4155fa3e6a8" - -# webkit-efl isn't available for < armv7a -COMPATIBLE_MACHINE = "(-)" -COMPATIBLE_MACHINE_i586 = "(.*)" -COMPATIBLE_MACHINE_x86-64 = "(.*)" -COMPATIBLE_MACHINE_armv7a = "(.*)" - -inherit e gettext cmake - -EXTRA_OECMAKE = "-DDATA_INSTALL_DIR=${datadir}" - -SRC_URI = " \ - git://github.com/bunhere/elbow.git;protocol=https \ -" -S = "${WORKDIR}/git" - -FILES_${PN} += "${datadir}/themes" diff --git a/meta-efl/recipes-efl/e17/elfe_git.bb b/meta-efl/recipes-efl/e17/elfe_git.bb deleted file mode 100644 index fcb97a972d4..00000000000 --- a/meta-efl/recipes-efl/e17/elfe_git.bb +++ /dev/null @@ -1,15 +0,0 @@ -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" -PV = "0.0.1+gitr${SRCPV}" -PE = "1" - -require e-module.inc - -SRC_URI = " \ - git://git.enlightenment.org/enlightenment/modules/${BPN}.git \ -" -S = "${WORKDIR}/git" - -SRCREV = "1ec0e7713c3ca901014811ff78277d9e2aaac981" - -DEPENDS += "elementary" diff --git a/meta-efl/recipes-efl/e17/elmdentica/configure.patch b/meta-efl/recipes-efl/e17/elmdentica/configure.patch deleted file mode 100644 index 79a981b4719..00000000000 --- a/meta-efl/recipes-efl/e17/elmdentica/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: elmdentica/configure.ac -=================================================================== ---- elmdentica.orig/configure.ac 2014-07-17 21:46:14.712566207 +0000 -+++ elmdentica/configure.ac 2014-07-17 21:51:34.960574935 +0000 -@@ -3,7 +3,7 @@ - AM_CONFIG_HEADER(config.h) - AC_CONFIG_MACRO_DIR([m4]) - --AM_INIT_AUTOMAKE -+AM_INIT_AUTOMAKE([foreign]) - - AC_PROG_CC - AC_GNU_SOURCE diff --git a/meta-efl/recipes-efl/e17/elmdentica_svn.bb b/meta-efl/recipes-efl/e17/elmdentica_svn.bb deleted file mode 100644 index 20a4849ba50..00000000000 --- a/meta-efl/recipes-efl/e17/elmdentica_svn.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "A indenti.ca client for E" -DEPENDS = "glib-2.0 gconf curl elementary sqlite3-native azy" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -SECTION = "e/apps" -HOMEPAGE = "http://elmdentica.googlecode.com" -AUTHOR = "seabra" - -inherit e gettext -SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" - -PV = "0.9.9+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -RDEPENDS_${PN} = "${PN}-themes" - -SRC_URI += "file://configure.patch" diff --git a/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch b/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch deleted file mode 100644 index 09624503b3f..00000000000 --- a/meta-efl/recipes-efl/e17/enjoy/0001-always-use-position-as-percent-and-define-a-1-second.patch +++ /dev/null @@ -1,133 +0,0 @@ -From 751505501e0db31cf766ec0ae95a6968b4d1eb93 Mon Sep 17 00:00:00 2001 -From: Alban Browaeys -Date: Wed, 5 Sep 2012 02:58:26 +0000 -Subject: [PATCH] always use position as percent and define a 1 seconds - tolerance. - -Fix "reverb" effect: ie loop between setting the slider to match -the position and handling slider to position (seek). ---- - data/themes/default.edc | 8 +++----- - src/bin/win.c | 28 ++++++++++++++++++++++------ - 2 files changed, 25 insertions(+), 11 deletions(-) - -diff --git a/data/themes/default.edc b/data/themes/default.edc -index ebf8ba4..7a906b1 100644 ---- a/data/themes/default.edc -+++ b/data/themes/default.edc -@@ -186,7 +186,6 @@ collections { - group { - name: "nowplaying"; - script { -- public cur_length; - public mute; - - public get_time_str(Float:time, time_str[6]) -@@ -201,16 +200,15 @@ collections { - new Float:position = getfarg(2); - new Float:length = getfarg(3); - if (length > 0) -- external_param_set_float(PART:"progress.slider", "value", position / length * 100); -+ external_param_set_float(PART:"progress.slider", "value", position * 100); - else - external_param_set_float(PART:"progress.slider", "value", 0); - - new time_str[6]; -- get_time_str(position, time_str); -+ get_time_str(position * length, time_str); - set_text(PART:"ejy.text.current_time", time_str); - get_time_str(length, time_str); - set_text(PART:"ejy.text.total_time", time_str); -- set_float(cur_length, length); - } else if (type == MSG_INT && id == MSG_SHUFFLE) { - external_param_set_bool(PART:"buttons.shuffle", "state", getarg(2)); - } else if (type == MSG_INT && id == MSG_LOOP) { -@@ -689,7 +687,7 @@ collections { - source: "progress.slider"; - signal: "changed"; - script { -- send_message(MSG_FLOAT, MSG_POSITION, (external_param_get_float(PART:"progress.slider", "value") * get_float(cur_length) / 100)); -+ send_message(MSG_FLOAT, MSG_POSITION, (external_param_get_float(PART:"progress.slider", "value") / 100)); - } - } - program { -diff --git a/src/bin/win.c b/src/bin/win.c -index 2f65953..428e268 100644 ---- a/src/bin/win.c -+++ b/src/bin/win.c -@@ -194,8 +194,8 @@ _win_play_eval(Win *w) - { - Edje_Message_Float_Set *mf; - -- w->play.position = emotion_object_position_get(w->emotion); - w->play.length = emotion_object_play_length_get(w->emotion); -+ w->play.position = emotion_object_position_get(w->emotion) / w->play.length; - - if ((w->song) && (w->song->length != (int)w->play.length)) - db_song_length_set(w->db, w->song, w->play.length); -@@ -542,8 +542,14 @@ _win_edje_msg(void *data, Evas_Object *o __UNUSED__, Edje_Message_Type type, int - else - { - Edje_Message_Float *m = msg; -+ -+ if ((((m->val - w->play.position) * w->play.length) < 1.0) -+ && (((w->play.position - m->val) * w->play.length) < 1.0)) -+ return; -+ - w->play.position = m->val; -- emotion_object_position_set(w->emotion, w->play.position); -+ emotion_object_position_set(w->emotion, w->play.position -+ * w->play.length); - ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL); - } - break; -@@ -617,16 +623,21 @@ enjoy_control_seek(uint64_t position) - { - Win *w = &_win; - double seek_to; -+ double new_pos = w->play.length / ((double)position / 1e6); - - if (!w->db) return; -- seek_to = w->play.position + w->play.length / ((double)position / 1e6); -+ -+ if ((((new_pos - w->play.position) * w->play.length) < 1.0) -+ && (((w->play.position - new_pos) * w->play.length) < 1.0)) return; -+ -+ seek_to = w->play.position + new_pos; - if (seek_to <= 0.0) - seek_to = 0.0; - else if (seek_to >= 1.0) - seek_to = 1.0; - - w->play.position = seek_to; -- emotion_object_position_set(w->emotion, w->play.position); -+ emotion_object_position_set(w->emotion, w->play.position * w->play.length); - ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL); - } - -@@ -692,15 +703,20 @@ EAPI void - enjoy_position_set(int32_t position) - { - Win *w = &_win; -+ double new_pos = w->play.length / ((double)position / 1e6); - - if (!w->db) return; -- w->play.position = w->play.length / ((double)position / 1e6); -+ -+ if ((((new_pos - w->play.position) * w->play.length) < 1.0) -+ && (((w->play.position - new_pos) * w->play.length) < 1.0)) return; -+ -+ w->play.position = new_pos; - if (w->play.position < 0.0) - w->play.position = 0.0; - else if (w->play.position > 1.0) - w->play.position = 1.0; - -- emotion_object_position_set(w->emotion, w->play.position); -+ emotion_object_position_set(w->emotion, w->play.position * w->play.length); - ecore_event_add(ENJOY_EVENT_POSITION_CHANGE, NULL, NULL, NULL); - } - --- -1.8.5.2 - diff --git a/meta-efl/recipes-efl/e17/enjoy/configure.patch b/meta-efl/recipes-efl/e17/enjoy/configure.patch deleted file mode 100644 index 6e0ed746106..00000000000 --- a/meta-efl/recipes-efl/e17/enjoy/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: git/configure.ac -=================================================================== ---- git.orig/configure.ac 2014-07-17 21:48:51.284570474 +0000 -+++ git/configure.ac 2014-07-17 21:53:39.104578318 +0000 -@@ -26,7 +26,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.6 dist-bzip2) -+AM_INIT_AUTOMAKE([dist-bzip2 foreign]) - AC_CONFIG_HEADERS(config.h) - _XTERM_COLORS - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) diff --git a/meta-efl/recipes-efl/e17/enjoy_git.bb b/meta-efl/recipes-efl/e17/enjoy_git.bb deleted file mode 100644 index 297cbd52369..00000000000 --- a/meta-efl/recipes-efl/e17/enjoy_git.bb +++ /dev/null @@ -1,48 +0,0 @@ -SUMMARY = "Enjoy music player" -LICENSE = "LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6" -DEPENDS = "evas ecore edje elementary emotion lightmediascanner eldbus gst-plugins-good" - -SRCREV = "aa8fec69e885eec048a849c2b34059ec58404e02" -PV = "0.1.0+gitr${SRCPV}" - -#1st needed for all formats -#2nd needed for mp3 playback -#3d needed for ogg playback -#4th needed for flac playback -#5th needed binary to create db -RDEPENDS_${PN} += "\ - gst-plugins-base-typefindfunctions gst-plugins-base-playbin gst-plugins-base-volume gst-plugins-base-decodebin2 gst-plugins-good-autodetect \ - gst-plugins-base-ogg gst-plugins-base-ivorbisdec \ - gst-plugins-good-flac \ - lightmediascanner-test \ -" - -inherit e gettext -SRC_URI = " \ - git://git.enlightenment.org/apps/enjoy.git \ - file://0001-always-use-position-as-percent-and-define-a-1-second.patch \ - file://configure.patch \ -" -S = "${WORKDIR}/git" - -FILES_${PN} += "${datadir}/icons/" - -EXTRA_OECONF = "\ - --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ -" - -PACKAGECONFIG[mad] = ",,gst-plugins-ugly,gst-plugins-ugly-mad" -PACKAGECONFIG[id3demux] = ",,,gst-plugins-good-id3demux" - -do_configure_prepend() { - autopoint || touch config.rpath -} - -pkg_postinst_${PN} () { - echo "enjoy: SCAN and LIBRARY MANAGER are not implemeted yet!" - echo "enjoy: Meanwhile please run:" - echo "enjoy: test-lms -m mono -p id3 -i 5000 -s /path/to/your/music/dir /home/root/.config/enjoy/media.db" - echo "enjoy:" - echo "enjoy: Use test-lms -P to see available formats that can be scanned" -} diff --git a/meta-efl/recipes-efl/e17/ephoto/configure.patch b/meta-efl/recipes-efl/e17/ephoto/configure.patch deleted file mode 100644 index 59466f8af89..00000000000 --- a/meta-efl/recipes-efl/e17/ephoto/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: ephoto/configure.ac -=================================================================== ---- ephoto.orig/configure.ac 2014-07-17 21:48:51.028570467 +0000 -+++ ephoto/configure.ac 2014-07-17 21:52:56.120577146 +0000 -@@ -27,7 +27,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.6 dist-bzip2) -+AM_INIT_AUTOMAKE([dist-bzip2 foreign]) - AM_CONFIG_HEADER(src/bin/config.h) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - diff --git a/meta-efl/recipes-efl/e17/ephoto_svn.bb b/meta-efl/recipes-efl/e17/ephoto_svn.bb deleted file mode 100644 index 5cecda58898..00000000000 --- a/meta-efl/recipes-efl/e17/ephoto_svn.bb +++ /dev/null @@ -1,19 +0,0 @@ -LICENSE = "MIT & GPL-3.0" -PV = "0.1.0+svnr${SRCREV}" -PR = "${INC_PR}.0" - -LIC_FILES_CHKSUM = "file://COPYING;md5=fdffcddb366d0cc78e0e46c4ea70c8d9 \ - file://COPYING.icons;md5=8f0e2cd40e05189ec81232da84bd6e1a" - -require e-module.inc - -inherit gettext - -DEPENDS += "elementary ethumb ecore eio" - -SRCNAME = "${PN}" - -# autotools-brokensep -B = "${S}" - -SRC_URI += "file://configure.patch" diff --git a/meta-efl/recipes-efl/e17/exalt-client/configure.patch b/meta-efl/recipes-efl/e17/exalt-client/configure.patch deleted file mode 100644 index d4ff801ce24..00000000000 --- a/meta-efl/recipes-efl/e17/exalt-client/configure.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: exalt-client/configure.ac -=================================================================== ---- exalt-client.orig/configure.ac 2014-07-17 21:46:14.712566207 +0000 -+++ exalt-client/configure.ac 2014-07-17 21:47:56.880568991 +0000 -@@ -10,7 +10,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.8) -+AM_INIT_AUTOMAKE([foreign]) - AM_CONFIG_HEADER(config.h) - - AC_PROG_CC -@@ -29,7 +29,6 @@ - - m4_ifdef([AM_GNU_GETTEXT], [ - AM_GNU_GETTEXT([external]) --po_makefile_in=po/Makefile.in - AM_CONDITIONAL([HAVE_PO], [true]) - ],[ - AM_CONDITIONAL([HAVE_PO], [false]) -@@ -101,6 +100,5 @@ - src/Makefile - module.desktop - e_modules-exalt-client.spec --$po_makefile_in - ], [ - ]) diff --git a/meta-efl/recipes-efl/e17/exalt-client_svn.bb b/meta-efl/recipes-efl/e17/exalt-client_svn.bb deleted file mode 100644 index f70860154fa..00000000000 --- a/meta-efl/recipes-efl/e17/exalt-client_svn.bb +++ /dev/null @@ -1,25 +0,0 @@ -LICENSE = "LGPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" - -PV = "0.0.1+svnr${SRCPV}" - -require e-module.inc - -DEPENDS += "elementary exalt edje-native" - -CFLAGS += " -I${STAGING_INCDIR}/exalt -I${STAGING_INCDIR}/exalt_dbus" - -do_configure_prepend() { - sed -i -e /po/d ${S}/configure.ac - sed -i -e s:\ po::g ${S}/Makefile.am -} - -FILES_${PN} += "${libdir}/enlightenment/modules/*/*.desktop \ - ${libdir}/enlightenment/modules/*/*.edj \ - ${libdir}/enlightenment/modules/*/*/*.so" - -FILES_${PN}-staticdev += "${libdir}/enlightenment/modules/*/*/*.a" -FILES_${PN}-dev += "${libdir}/enlightenment/modules/*/*/*.la" -FILES_${PN}-dbg += "${libdir}/enlightenment/modules/*/*/.debug" - -SRC_URI += "file://configure.patch" \ No newline at end of file diff --git a/meta-efl/recipes-efl/e17/exalt_svn.bb b/meta-efl/recipes-efl/e17/exalt_svn.bb deleted file mode 100644 index 1f1c8505df4..00000000000 --- a/meta-efl/recipes-efl/e17/exalt_svn.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Exalt is a network manager for the windows manager Enlightenment DR17" -HOMEPAGE = "http://watchwolf.fr/wiki/doku.php?id=exalt" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" - -DEPENDS = "elementary vpnc wpa-supplicant ecore eet edbus" -RDEPENDS_${PN} = "vpnc wpa-supplicant" - -PV = "0.9+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit e -SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" - -EXTRA_OECONF = " \ ---with-wpa_supplicant=${sbindir}/wpa_supplicant \ ---with-vpnc=${sbindir}/vpnc \ ---with-vpnc-disconnect=${sbindir}/vpnc-disconnect \ -" - -do_install_append() { - # install dbus config file - install -d ${D}${sysconfdir}/dbus-1/system.d/ - install -m 0644 ${S}/data/daemon/dbus/exalt.conf ${D}${sysconfdir}/dbus-1/system.d/exalt.conf - - # install dbus service file - install -d ${D}${datadir}/dbus-1/system-services/ - install -m 0644 ${B}/org.e.Exalt.service ${D}${datadir}/dbus-1/system-services/ -} - -FILES_${PN} += "${datadir}/dbus-1" - diff --git a/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb b/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb deleted file mode 100644 index aad06464776..00000000000 --- a/meta-efl/recipes-efl/e17/exquisite-theme-illume.bb +++ /dev/null @@ -1,35 +0,0 @@ -DDESCRIPTION = "A theme for exquisite" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" -SECTION = "x11" -DEPENDS = "edje-native" -PV = "1.0+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit e-base update-alternatives allarch - -ALTERNATIVE_NAME = "exquisite-config" -ALTERNATIVE_LINK = "${sysconfdir}/exquisite/config" -ALTERNATIVE_PATH = "${sysconfdir}/exquisite/config-illume" -ALTERNATIVE_PRIORITY = "10" - -SRCNAME = "b_and_w" - -SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http \ - file://LICENSE \ -" -S = "${WORKDIR}/${SRCNAME}" - -do_compile() { - ${STAGING_BINDIR_NATIVE}/edje_cc exquisite.edc illume.edj -} - -do_install() { - install -d ${D}${sysconfdir}/exquisite - install -d ${D}${datadir}/exquisite/data/themes - install -m 0644 ${S}/illume.edj ${D}${datadir}/exquisite/data/themes/ - echo 'THEME="-t illume"' > ${D}${sysconfdir}/exquisite/config-illume -} - -CONFFILES_${PN} = "${sysconfdir}/exquisite/config-illume" -FILES_${PN} = "${sysconfdir}/exquisite ${datadir}/exquisite/data/themes" diff --git a/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE b/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE deleted file mode 100644 index 61bb2f603da..00000000000 --- a/meta-efl/recipes-efl/e17/exquisite-theme-illume/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright notice for Enlightenment: - -Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS) - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/meta-efl/recipes-efl/e17/exquisite/exquisite-init b/meta-efl/recipes-efl/e17/exquisite/exquisite-init deleted file mode 100644 index 2de6774ffb2..00000000000 --- a/meta-efl/recipes-efl/e17/exquisite/exquisite-init +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -for x in $(cat /proc/cmdline); do - case $x in - splash=false) - echo "Splash Disabled" - exit 0; - ;; - esac -done - -. /etc/init.d/functions - -### Default config here - gets overriden later -THEME="-t default" -FPS="-fps 30" -### Override config - if there is a config file - load it. -if test -f /etc/exquisite/config; then - . /etc/exquisite/config -fi - -args='' -case `machine_id` in - "hp_ipaq_h3100"|"hp_ipaq_h3800") - args='-rot 90' ;; - "hp_ipaq_3600"|"hp_ipaq_3700"|"hp_ipaq_h3900"|"htc_universal"|*collie|*poodle|*akita|*spitz|*borzoi) - args='-rot 270' ;; -esac -args=$args" $FPS $THEME" - -export EXDIR=/mnt/.splash -export EXQUISITE_IPC=$EXDIR/exquisite -mount tmpfs -t tmpfs $EXDIR -o,size=40k -exquisite -fb -fs $args & - -exquisite-write -wait 120 -exquisite-write "PULSATE" -setterm -blank 0 -setterm -powersave off -setterm -powerdown 0 diff --git a/meta-efl/recipes-efl/e17/exquisite/splashfuncs b/meta-efl/recipes-efl/e17/exquisite/splashfuncs deleted file mode 100644 index ada2a96dd41..00000000000 --- a/meta-efl/recipes-efl/e17/exquisite/splashfuncs +++ /dev/null @@ -1,29 +0,0 @@ -status() { - if type splash-write >/dev/null 2>&1; then - (TMPDIR="/mnt/.splash" EXQUISITE_IPC="$TMPDIR/exquisite" splash-write "$1" || true) & - fi -} - -status_position() { - status "PROGRESS $1" -} - -status_title() { - status "TITLE $1" -} - -status_text() { - if test -n "$1"; then - status "MSG $1" - else - status "CLEAR" - fi -} - -status_pulse() { - status "PULSATE" -} - -status_tick() { - status "TICK" -} diff --git a/meta-efl/recipes-efl/e17/exquisite_svn.bb b/meta-efl/recipes-efl/e17/exquisite_svn.bb deleted file mode 100644 index 8f2d25d7d62..00000000000 --- a/meta-efl/recipes-efl/e17/exquisite_svn.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "A psplash replacement for display" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=14defa372a91118e755133bc8e6aff83" -DEPENDS = "eet evas ecore embryo edje" -PV = "0.0.1+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" -RRECOMMENDS_${PN} = "exquisite-themes" -RCONFLICTS_${PN} = "psplash virtual-psplash" - -SRCNAME = "exquisite" - -inherit e -SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" - -SRC_URI += "file://exquisite-init" -SRC_URI += "file://splashfuncs" - -inherit update-rc.d - -do_install_prepend() { - install -d ${D}/mnt/.splash/ - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/exquisite-init ${D}${sysconfdir}/init.d/exquisite - install -d ${D}${sysconfdir}/default - install -m 0755 ${WORKDIR}/splashfuncs ${D}${sysconfdir}/default/splashfuncs - install -d ${D}${bindir} - ln -s exquisite-write ${D}${bindir}/splash-write -} - - -do_install_append() { - rm -rf ${D}${datadir}/exquisite/data/fonts/* -} - -INITSCRIPT_NAME = "exquisite" -INITSCRIPT_PARAMS = "start 01 S . stop 20 0 1 6 ." - -FILES_${PN} += "/mnt/.splash/" diff --git a/meta-efl/recipes-efl/e17/flame/configure.patch b/meta-efl/recipes-efl/e17/flame/configure.patch deleted file mode 100644 index 87c85de9f88..00000000000 --- a/meta-efl/recipes-efl/e17/flame/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: cpu/configure.ac -=================================================================== ---- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 -+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 -@@ -10,7 +10,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.6) -+AM_INIT_AUTOMAKE([foreign]) - AM_CONFIG_HEADER(config.h) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - diff --git a/meta-efl/recipes-efl/e17/flame_svn.bb b/meta-efl/recipes-efl/e17/flame_svn.bb deleted file mode 100644 index 58c79a84094..00000000000 --- a/meta-efl/recipes-efl/e17/flame_svn.bb +++ /dev/null @@ -1,15 +0,0 @@ -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ - file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" - -PV = "0.0.3+svnr${SRCPV}" -PR = "${INC_PR}.0" - -require e-module.inc - -do_configure_prepend() { - sed -i -e /po/d ${S}/configure.ac - sed -i -e s:\ po::g ${S}/Makefile.am -} - -SRC_URI += "file://configure.patch" diff --git a/meta-efl/recipes-efl/e17/forecasts/configure.patch b/meta-efl/recipes-efl/e17/forecasts/configure.patch deleted file mode 100644 index 87c85de9f88..00000000000 --- a/meta-efl/recipes-efl/e17/forecasts/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: cpu/configure.ac -=================================================================== ---- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 -+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 -@@ -10,7 +10,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.6) -+AM_INIT_AUTOMAKE([foreign]) - AM_CONFIG_HEADER(config.h) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - diff --git a/meta-efl/recipes-efl/e17/forecasts_svn.bb b/meta-efl/recipes-efl/e17/forecasts_svn.bb deleted file mode 100644 index 473bdb9d48d..00000000000 --- a/meta-efl/recipes-efl/e17/forecasts_svn.bb +++ /dev/null @@ -1,10 +0,0 @@ -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ - file://COPYING-PLAIN;md5=51328cfb73bfec3eed7cfd3dbed73988" - -PV = "0.2.0+svnr${SRCREV}" -PR = "${INC_PR}.0" - -require e-module.inc - -SRC_URI += "file://configure.patch" diff --git a/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch b/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch deleted file mode 100644 index b18a69b0baf..00000000000 --- a/meta-efl/recipes-efl/e17/illume-keyboards-shr/0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 9316e3973c44b981e73b953b2861060c6902de47 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Mon, 23 Aug 2010 12:54:05 +0200 -Subject: [PATCH] Makefile: update KEYBOARDS_DIR for new illume2 - ---- - Makefile | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/Makefile b/Makefile -index 46e9420..3d8757c 100644 ---- a/Makefile -+++ b/Makefile -@@ -1,5 +1,5 @@ - --INSTBASE = /usr/lib/enlightenment/modules/illume/keyboards -+INSTBASE = /usr/lib/enlightenment/modules/illume-keyboard/keyboards - - FILES-arabic = Arabic.kbd Arabic.png - FILES-persian = Persian.kbd Persian.png --- -1.7.2 - diff --git a/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE b/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE deleted file mode 100644 index 61bb2f603da..00000000000 --- a/meta-efl/recipes-efl/e17/illume-keyboards-shr/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright notice for Enlightenment: - -Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS) - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/meta-efl/recipes-efl/e17/illume-keyboards-shr_git.bb b/meta-efl/recipes-efl/e17/illume-keyboards-shr_git.bb deleted file mode 100644 index 6f81b6b07a8..00000000000 --- a/meta-efl/recipes-efl/e17/illume-keyboards-shr_git.bb +++ /dev/null @@ -1,98 +0,0 @@ -SECTION = "x11/data" - -SRC_URI = "git://git.shr-project.org/repo/illume-keyboards.git;protocol=http;branch=master \ - file://0001-Makefile-update-KEYBOARDS_DIR-for-new-illume2.patch \ - file://LICENSE" -S = "${WORKDIR}/git" - -SRCREV = "4064489f359a1addf572089b582f317dff5f50e1" -PV = "0.0+gitr${SRCPV}" -PE = "1" -PR = "r5" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" - -PACKAGES = "\ -illume-keyboard-alpha \ -illume-keyboard-arabic \ -illume-keyboard-browse \ -illume-keyboard-danish \ -illume-keyboard-default-alt \ -illume-keyboard-dutch \ -illume-keyboard-dvorak \ -illume-keyboard-finnish \ -illume-keyboard-french \ -illume-keyboard-german \ -illume-keyboard-hebrew \ -illume-keyboard-numeric-alt \ -illume-keyboard-russian \ -illume-keyboard-russian-terminal \ -illume-keyboard-persian \ -" - -inherit allarch -KEYBOARDS_DIR="${libdir}/enlightenment/modules/illume-keyboard/keyboards" - -AUTHOR_illume-keyboard-alpha = "Jesus McCloud" -DESCRIPTION_illume-keyboard-alpha = "Illume keyboard with phone-like layout" -FILES_illume-keyboard-alpha = "${KEYBOARDS_DIR}/Alpha.kbd" - -AUTHOR_illume-keyboard-arabic = "Mohammad Fahmi / Tom Hacohen" -DESCRIPTION_illume-keyboard-arabic = "Illume keyboard with arabic layout" -FILES_illume-keyboard-arabic = "${KEYBOARDS_DIR}/Arabic.kbd ${KEYBOARDS_DIR}/Arabic.png" - -AUTHOR_illume-keyboard-browse = "Pander" -DESCRIPTION_illume-keyboard-browse = "Illume keyboard with a layout optimized for browsing" -FILES_illume-keyboard-browse = "${KEYBOARDS_DIR}/Browse.kbd ${KEYBOARDS_DIR}/end-browse.png ${KEYBOARDS_DIR}/pagedown-browse.png ${KEYBOARDS_DIR}/browse.png ${KEYBOARDS_DIR}/home-browse.png ${KEYBOARDS_DIR}/pageup-browse.png ${KEYBOARDS_DIR}/space-browse.png" - -AUTHOR_illume-keyboard-danish = "Esben Damgaard" -DESCRIPTION_illume-keyboard-danish = "Illume keyboard with danish layout" -FILES_illume-keyboard-danish = "${KEYBOARDS_DIR}/Danish.kbd ${KEYBOARDS_DIR}/danish.png" - -AUTHOR_illume-keyboard-default-alt = "Pander" -DESCRIPTION_illume-keyboard-default-alt = "Illume keyboard with an alternative default layout" -FILES_illume-keyboard-default-alt = "${KEYBOARDS_DIR}/Default-alt.kbd" - -AUTHOR_illume-keyboard-dutch = "Pander" -DESCRIPTION_illume-keyboard-dutch = "Illume keyboard with dutch layout" -FILES_illume-keyboard-dutch = "${KEYBOARDS_DIR}/capslock-negative.png ${KEYBOARDS_DIR}/end.png ${KEYBOARDS_DIR}/pagedown.png ${KEYBOARDS_DIR}/qwerty-dutch-nl.png ${KEYBOARDS_DIR}/Terminal-dutch-nl.kbd ${KEYBOARDS_DIR}/capslock.png ${KEYBOARDS_DIR}/home.png ${KEYBOARDS_DIR}/pageup.png ${KEYBOARDS_DIR}/space.png" - -AUTHOR_illume-keyboard-dvorak = "Gabor Adam TOTH" -DESCRIPTION_illume-keyboard-dvorak = "Illume keyboard with dvorak layout" -FILES_illume-keyboard-dvorak = "${KEYBOARDS_DIR}/Dvorak.kbd ${KEYBOARDS_DIR}/dvorak.png" - -AUTHOR_illume-keyboard-finnish = "Olof Sjöbergh / Jussi Timperi" -DESCRIPTION_illume-keyboard-finnish = "Illume keyboard with finnish layout" -FILES_illume-keyboard-finnish = "${KEYBOARDS_DIR}/Finnish.kbd ${KEYBOARDS_DIR}/Finnish.png" - -DESCRIPTION_illume-keyboard-french = "Illume keyboard with french layout" -FILES_illume-keyboard-french = "${KEYBOARDS_DIR}/Azerty.kbd ${KEYBOARDS_DIR}/Azerty.png" - -AUTHOR_illume-keyboard-german = "Florian Hackenberger" -DESCRIPTION_illume-keyboard-german = "Illume keyboard with german layout" -FILES_illume-keyboard-german = "${KEYBOARDS_DIR}/German.kbd ${KEYBOARDS_DIR}/German.png" - -AUTHOR_illume-keyboard-hebrew = "Tom Hacohen" -DESCRIPTION_illume-keyboard-hebrew = "Illume keyboard with hebrew layout" -FILES_illume-keyboard-hebrew = "${KEYBOARDS_DIR}/Hebrew.kbd ${KEYBOARDS_DIR}/Alpha-hebrew-il.png" - -AUTHOR_illume-keyboard-numeric-alt = "Pander" -DESCRIPTION_illume-keyboard-numeric-alt = "Illume keyboard with an alternative numeric layout" -FILES_illume-keyboard-numeric-alt = "${KEYBOARDS_DIR}/Numbers-alt.kbd ${KEYBOARDS_DIR}/numeric-alt.png" - -AUTHOR_illume-keyboard-russian = "lucky" -DESCRIPTION_illume-keyboard-russian = "Illume keyboard with russian layout" -FILES_illume-keyboard-russian = "${KEYBOARDS_DIR}/X8_Russian.kbd ${KEYBOARDS_DIR}/X8-russian-ru.png" - -AUTHOR_illume-keyboard-russian-terminal = "lucky" -DESCRIPTION_illume-keyboard-russian-terminal = "Illume keyboard with russian layout for the Terminal" -FILES_illume-keyboard-russian-terminal = "${KEYBOARDS_DIR}/Terminal_Russian.kbd ${KEYBOARDS_DIR}/Terminal-russian-ru.png" - -AUTHOR_illume-keyboard-persian = "slave" -DESCRIPTION_illume-keyboard-persian = "Illume keyboard with persian layout" -FILES_illume-keyboard-persian = "${KEYBOARDS_DIR}/Persian.kbd ${KEYBOARDS_DIR}/Persian.png" - -do_install() { - make DESTDIR=${D} install -} - diff --git a/meta-efl/recipes-efl/e17/nonworking/emprint_svn.bb b/meta-efl/recipes-efl/e17/nonworking/emprint_svn.bb deleted file mode 100644 index 6c2abdc5baf..00000000000 --- a/meta-efl/recipes-efl/e17/nonworking/emprint_svn.bb +++ /dev/null @@ -1,12 +0,0 @@ -DESCRIPTION = "Emprint is a utility for taking screenshots of the entire screen, a specific window, or a specific region." -LICENSE = "MIT & BSD" -DEPENDS = "imlib2 virtual/libx11 ecore evas edje eina" -PV = "0.0.1+svnr${SRCPV}" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" -SRCREV = "${EFL_SRCREV}" - -inherit e -SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" - -FILES_${PN}-dbg += "${libdir}/${PN}/modules/.debug" diff --git a/meta-efl/recipes-efl/e17/nonworking/news_svn.bb b/meta-efl/recipes-efl/e17/nonworking/news_svn.bb deleted file mode 100644 index 9b89d80315a..00000000000 --- a/meta-efl/recipes-efl/e17/nonworking/news_svn.bb +++ /dev/null @@ -1,12 +0,0 @@ -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -PV = "0.1.0+svnr${SRCPV}" -PR = "${INC_PR}.0" - -require e-module.inc - -do_configure_prepend() { - sed -i -e /po/d configure.ac - sed -i -e s:\ po::g Makefile.am -} diff --git a/meta-efl/recipes-efl/e17/nonworking/rage_svn.bb b/meta-efl/recipes-efl/e17/nonworking/rage_svn.bb deleted file mode 100644 index da51ae6c431..00000000000 --- a/meta-efl/recipes-efl/e17/nonworking/rage_svn.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Rage is a media center application based on EFL" -AUTHOR = "Carsten 'The Rasterman' Haitzler" -HOMEPAGE = "http://www.rasterman.com" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" -DEPENDS = "emotion evas ecore edje" -SECTION = "x11/multimedia" -PV = "0.3.0.042+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit e -SRC_URI = "${E_SVN}/trunk;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" diff --git a/meta-efl/recipes-efl/e17/nonworking/screenshot/screenshot-fix-mkinstalldirs.patch b/meta-efl/recipes-efl/e17/nonworking/screenshot/screenshot-fix-mkinstalldirs.patch deleted file mode 100644 index 14f1141f1b3..00000000000 --- a/meta-efl/recipes-efl/e17/nonworking/screenshot/screenshot-fix-mkinstalldirs.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: Dmitry Eremin-Solenikov -Subject: fix screenshot po/ building -Upstream-Status: Pending - -Somehow configure doesn't substitute @MKINSTALLDIRS@ by default anymore, -however this substitution is required for po/Makefile - -Fix that by calling AM_MKINSTALLDIRS from configure.ac - -Signed-off-by: Dmitry Eremin-Solenikov - -Index: E-MODULES-EXTRA/screenshot/configure.ac -=================================================================== ---- E-MODULES-EXTRA.orig/screenshot/configure.ac 2011-08-17 15:49:22.000000000 +0400 -+++ E-MODULES-EXTRA/screenshot/configure.ac 2011-08-17 15:49:34.000000000 +0400 -@@ -24,6 +24,7 @@ - define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl - AC_PROG_LIBTOOL - -+AM_MKINSTALLDIRS - m4_ifdef([AM_GNU_GETTEXT_VERSION], [ - AM_GNU_GETTEXT_VERSION([0.14]) - ]) diff --git a/meta-efl/recipes-efl/e17/nonworking/screenshot_svn.bb b/meta-efl/recipes-efl/e17/nonworking/screenshot_svn.bb deleted file mode 100644 index 9689f4679aa..00000000000 --- a/meta-efl/recipes-efl/e17/nonworking/screenshot_svn.bb +++ /dev/null @@ -1,16 +0,0 @@ -LICENSE = "MIT" -PV = "0.3.0+svnr${SRCREV}" -PR = "${INC_PR}.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" -SRC_URI += "file://screenshot-fix-mkinstalldirs.patch" - -require e-module.inc - -DEPENDS += "emprint" -RDEPENDS_${PN} += "emprint" - -do_configure_prepend() { - sed -i -e 's:AC_MSG_ERROR(emprint not found):echo foo:g' ${S}/configure.ac -} - - diff --git a/meta-efl/recipes-efl/e17/places/configure.patch b/meta-efl/recipes-efl/e17/places/configure.patch deleted file mode 100644 index f8f48345c92..00000000000 --- a/meta-efl/recipes-efl/e17/places/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: places/configure.ac -=================================================================== ---- places.orig/configure.ac 2014-07-17 21:51:01.276574017 +0000 -+++ places/configure.ac 2014-07-17 21:52:07.096575810 +0000 -@@ -10,7 +10,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.8) -+AM_INIT_AUTOMAKE([foreign]) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - AM_CONFIG_HEADER(config.h) - diff --git a/meta-efl/recipes-efl/e17/places_svn.bb b/meta-efl/recipes-efl/e17/places_svn.bb deleted file mode 100644 index 54f0e0154e8..00000000000 --- a/meta-efl/recipes-efl/e17/places_svn.bb +++ /dev/null @@ -1,16 +0,0 @@ -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" - -PV = "0.1.0+svnr${SRCPV}" -PR = "${INC_PR}.0" - -require e-module.inc - -do_configure_prepend() { - autopoint || touch config.rpath -} - -# Calls /usr/bin/eject for media -RRECOMMENDS_${PN} += "eject" - -SRC_URI += "file://configure.patch" diff --git a/meta-efl/recipes-efl/e17/rain/configure.patch b/meta-efl/recipes-efl/e17/rain/configure.patch deleted file mode 100644 index 87c85de9f88..00000000000 --- a/meta-efl/recipes-efl/e17/rain/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: cpu/configure.ac -=================================================================== ---- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 -+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 -@@ -10,7 +10,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.6) -+AM_INIT_AUTOMAKE([foreign]) - AM_CONFIG_HEADER(config.h) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - diff --git a/meta-efl/recipes-efl/e17/rain_svn.bb b/meta-efl/recipes-efl/e17/rain_svn.bb deleted file mode 100644 index cf67a4cd5d8..00000000000 --- a/meta-efl/recipes-efl/e17/rain_svn.bb +++ /dev/null @@ -1,16 +0,0 @@ -LICENSE = "MIT" - -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ - file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" - -PV = "0.0.3+svnr${SRCPV}" -PR = "${INC_PR}.0" - -require e-module.inc - -do_configure_prepend() { - sed -i -e /po/d ${S}/configure.ac - sed -i -e s:\ po::g ${S}/Makefile.am -} - -SRC_URI += "file://configure.patch" diff --git a/meta-efl/recipes-efl/e17/terminology.inc b/meta-efl/recipes-efl/e17/terminology.inc deleted file mode 100644 index 24f789f59fe..00000000000 --- a/meta-efl/recipes-efl/e17/terminology.inc +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "Enlightenment Terminal Emulator" -LICENSE = "MIT & BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=4efac6b05b3256ba7da66301ac1ee6c6" -DEPENDS = "evas ecore edje elementary eina eet emotion" - -inherit e gettext - -# Because latest release we have is 0.1.0 which sorts lower then 0.1.0+svnr${SRCPV} already in feeds -PE = "2" - -EXTRA_OECONF = "\ - --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ -" - -FILES_${PN} += "\ - ${datadir}/icons/terminology.png \ -" - -# doesn't start without own theme -# ERR<770>:terminology utils.c:26 theme_apply() Could not load any theme for group=terminology/background: No Error -# CRI<770>:terminology main.c:448 elm_main() Couldn't find terminology theme! Forgot 'make install'? -RDEPENDS_${PN} += "${PN}-themes" diff --git a/meta-efl/recipes-efl/e17/terminology_0.8.0.bb b/meta-efl/recipes-efl/e17/terminology_0.8.0.bb deleted file mode 100644 index 6e520ab68fb..00000000000 --- a/meta-efl/recipes-efl/e17/terminology_0.8.0.bb +++ /dev/null @@ -1,8 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "\ - ${E_RELEASES}/apps/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ -" - -SRC_URI[md5sum] = "9f664d3205deaad956c253081cebf9fb" -SRC_URI[sha256sum] = "7a10d44b023cf6134c2483304e4ad33bea6df0f11266aec482f54fa67a3ce628" diff --git a/meta-efl/recipes-efl/e17/uptime/configure.patch b/meta-efl/recipes-efl/e17/uptime/configure.patch deleted file mode 100644 index 87c85de9f88..00000000000 --- a/meta-efl/recipes-efl/e17/uptime/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: cpu/configure.ac -=================================================================== ---- cpu.orig/configure.ac 2014-07-17 20:39:48.000000000 +0000 -+++ cpu/configure.ac 2014-07-17 21:39:55.320555868 +0000 -@@ -10,7 +10,7 @@ - AC_CANONICAL_HOST - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(1.6) -+AM_INIT_AUTOMAKE([foreign]) - AM_CONFIG_HEADER(config.h) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - diff --git a/meta-efl/recipes-efl/e17/uptime_svn.bb b/meta-efl/recipes-efl/e17/uptime_svn.bb deleted file mode 100644 index 5c9bfa9eabc..00000000000 --- a/meta-efl/recipes-efl/e17/uptime_svn.bb +++ /dev/null @@ -1,10 +0,0 @@ -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ - file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" - -PV = "0.0.2+svnr${SRCREV}" -PR = "${INC_PR}.0" - -require e-module.inc - -SRC_URI += "file://configure.patch" diff --git a/meta-efl/recipes-efl/e17/waker/0001-waker-remove-old-ecore_string_init-and-ecore_string_.patch b/meta-efl/recipes-efl/e17/waker/0001-waker-remove-old-ecore_string_init-and-ecore_string_.patch deleted file mode 100644 index 2e9d1046dd8..00000000000 --- a/meta-efl/recipes-efl/e17/waker/0001-waker-remove-old-ecore_string_init-and-ecore_string_.patch +++ /dev/null @@ -1,54 +0,0 @@ -From b6296958d5516a735053ee4140e85e2b3a896182 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 30 Jan 2011 00:27:57 +0100 -Subject: [PATCH] waker: remove old ecore_string_init and ecore_string_shutdown - -Signed-off-by: Martin Jansa ---- - src/bin/waker_main.c | 2 -- - src/bin/waker_tool.c | 2 -- - 2 files changed, 0 insertions(+), 4 deletions(-) - -diff --git a/src/bin/waker_main.c b/src/bin/waker_main.c -index b229cf0..dd54b31 100644 ---- a/src/bin/waker_main.c -+++ b/src/bin/waker_main.c -@@ -568,7 +568,6 @@ main(int argc, char **argv) - E_DBus_Connection *c; - - ecore_init(); -- ecore_string_init(); - ecore_app_args_set(argc, (const char **)argv); - e_dbus_init(); - -@@ -586,7 +585,6 @@ main(int argc, char **argv) - - e_dbus_connection_close(c); - e_dbus_shutdown(); -- ecore_string_shutdown(); - ecore_shutdown(); - - return 0; -diff --git a/src/bin/waker_tool.c b/src/bin/waker_tool.c -index 3344fd2..52515c9 100644 ---- a/src/bin/waker_tool.c -+++ b/src/bin/waker_tool.c -@@ -93,7 +93,6 @@ main(int argc, char **argv) - } - - ecore_init(); -- ecore_string_init(); - ecore_app_args_set(argc, (const char **)argv); - e_dbus_init(); - -@@ -301,7 +300,6 @@ main(int argc, char **argv) - - e_dbus_connection_close(c); - e_dbus_shutdown(); -- ecore_string_shutdown(); - ecore_shutdown(); - - return 0; --- -1.7.4.rc3 - diff --git a/meta-efl/recipes-efl/efl/azy_svn.bb b/meta-efl/recipes-efl/efl/azy_svn.bb deleted file mode 100644 index cb180fb633f..00000000000 --- a/meta-efl/recipes-efl/efl/azy_svn.bb +++ /dev/null @@ -1,32 +0,0 @@ -DESCRIPTION = "Azy is a library meant for implementing rpc clients and servers in a simple manner." -DEPENDS = "pkgconfig zlib openssl eina gnutls ecore libxml2 re2c-native mysql5 azy-native glib-2.0" -DEPENDS_virtclass-native = "pkgconfig-native zlib-native openssl-native eina-native gnutls-native ecore-native libxml2-native re2c-native mysql5-native glib-2.0-native" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -PV = "1.0.0+svnr${SRCPV}" -PR = "r2" - -SRCREV = "${EFL_SRCREV}" - -# to provide native lemon binary -BBCLASSEXTEND = "native" - -EXTRA_OECONF += " --disable-mysql-tests" - -do_configure_prepend_class-target() { - sed -i "s#\./lemon#${STAGING_BINDIR_NATIVE}/azy_lemon#g" ${S}/src/bin/Makefile.am - sed -i "s#\$(top_builddir)/src/bin/azy_parser -H -p -o#${STAGING_BINDIR_NATIVE}/azy_parser -H -p -o#g" ${S}/src/tests/Makefile.am - sed -i "s#\$(top_builddir)/src/bin/azy_parser -eHn -m#${STAGING_BINDIR_NATIVE}/azy_parser -eHn -m#g" ${S}/src/tests/identi.ca/Makefile.am -} - -do_install_append_class-native() { - install -d ${D}/${bindir} - install -m 0755 ${B}/src/bin/lemon ${D}/${bindir}/azy_lemon -} - -inherit efl - -SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" - diff --git a/meta-efl/recipes-efl/efl/e-wm-illume-dict-pl_git.bb b/meta-efl/recipes-efl/efl/e-wm-illume-dict-pl_git.bb deleted file mode 100644 index 657adcd92c0..00000000000 --- a/meta-efl/recipes-efl/efl/e-wm-illume-dict-pl_git.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Polish dictionary for Illume keyboard" -SECTION = "x11/data" -SRCREV = "38fdd9bb0d8296e984bb6443466801eea6f62f00" -PV = "1.0+gitr${SRCPV}" -PE = "1" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" - -SRC_URI = "git://git.shr-project.org/repo/shr-themes.git;protocol=http;branch=master" - -S = "${WORKDIR}/git/e-wm/${PN}" - -FILES_${PN} = "${libdir}/enlightenment/modules/illume/dicts/Polish.dic" - -do_install() { - install -d ${D}${libdir}/enlightenment/modules/illume/dicts - install -m 0644 ${S}/Polish.dic ${D}${libdir}/enlightenment/modules/illume/dicts/Polish.dic -} diff --git a/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch b/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch deleted file mode 100644 index 55773a3b989..00000000000 --- a/meta-efl/recipes-efl/efl/ecore/fix-ecore-fb-initialization.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 657571197c9d369e12ae31b6777a1929fe3680ef Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sat, 29 Oct 2011 00:16:55 +0200 -Subject: [PATCH] ecore-fb: fix ts init - -Upstream-Status: Pending - -The whole ecore-fb init logic is somewhat flawed; with this patch we -get at least a working touchscreen w/ tslib again. - -Signed-off-by: Michael 'Mickey' Lauer -Signed-off-by: Martin Jansa ---- - ecore/src/lib/ecore_fb/ecore_fb.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/src/lib/ecore_fb/ecore_fb.c b/src/lib/ecore_fb/ecore_fb.c -index 5b2b84b..a1904b3 100644 ---- a/src/lib/ecore_fb/ecore_fb.c -+++ b/src/lib/ecore_fb/ecore_fb.c -@@ -46,6 +46,9 @@ ecore_fb_init(const char *name __UNUSED__) - if (!ecore_fb_vt_init()) - return --_ecore_fb_init_count; - -+ if (!ecore_fb_ts_init()) -+ return --_ecore_fb_init_count; -+ - if (!oldhand) - { - oldhand = signal(SIGINT, nosigint); -@@ -77,6 +80,7 @@ ecore_fb_shutdown(void) - oldhand = NULL; - } - -+ ecore_fb_ts_shutdown(); - ecore_fb_vt_shutdown(); - - return _ecore_fb_init_count; --- -1.7.8.6 - diff --git a/meta-efl/recipes-efl/efl/edb_svn.bb b/meta-efl/recipes-efl/efl/edb_svn.bb deleted file mode 100644 index 7c6abdaf048..00000000000 --- a/meta-efl/recipes-efl/efl/edb_svn.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Edb is the Enlightenment database library" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=d8a7c08df3bc3280208b959be7215c25 \ - file://COPYING-PLAIN;md5=f59cacc08235a546b0c34a5422133035" - -DEPENDS = "zlib" -PV = "1.0.5.050+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit efl - -PACKAGECONFIG ??= "" -PACKAGECONFIG[ncurses] = "--enable-ncurses,--disable-ncurses,ncurses" - -SRC_URI = "${E_SVN}/OLD;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" diff --git a/meta-efl/recipes-efl/efl/edbus.inc b/meta-efl/recipes-efl/efl/edbus.inc deleted file mode 100644 index 03d0ee58d91..00000000000 --- a/meta-efl/recipes-efl/efl/edbus.inc +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION = "DBus and HAL convenience wrappers for EFL" -DEPENDS = "dbus ecore eina" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=550b8cea13dacc4bf00508a8cce1074c" - -inherit efl - -# -dev and -dbg packages wants ${PN} which is empty here -ALLOW_EMPTY_${PN} = "1" - -BBCLASSEXTEND = "native" -INC_PR = "r0" - -SRCNAME = "e_dbus" - -# it needs to be disabled, because creates circular dependency on elementary -EXTRA_OECONF += "--disable-edbus-performance-test" - -PACKAGES =+ "${PN}-enotify ${PN}-edbus ${PN}-enm ${PN}-ehal ${PN}-econnman ${PN}-eofono ${PN}-eukit ${PN}-ebluez" -FILES_${PN}-enotify = "${libdir}/libenotify.so.* ${bindir}/e-notify-send" -FILES_${PN}-edbus = "${libdir}/libedbus.so.*" -FILES_${PN}-enm = "${libdir}/libenm.so.*" -FILES_${PN}-ehal = "${libdir}/libehal.so.*" -FILES_${PN}-econnman = "${libdir}/libeconnman.so.* ${libdir}/libeconnman0_7x.so.*" -FILES_${PN}-eofono = "${libdir}/libeofono.so.*" -FILES_${PN}-eukit = "${libdir}/libeukit.so.*" -FILES_${PN}-ebluez = "${libdir}/libebluez.so.*" -FILES_${PN} += "${datadir}/e_dbus/logo.png" - diff --git a/meta-efl/recipes-efl/efl/edbus_1.7.9.bb b/meta-efl/recipes-efl/efl/edbus_1.7.9.bb deleted file mode 100644 index 64e77e61a02..00000000000 --- a/meta-efl/recipes-efl/efl/edbus_1.7.9.bb +++ /dev/null @@ -1,8 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "\ - ${E_MIRROR}/${SRCNAME}-${SRCVER}.tar.gz \ -" - -SRC_URI[md5sum] = "8f72da14e5664aad8c45eeeca0e3ff5f" -SRC_URI[sha256sum] = "c328c4cf1424629cb67c83689ccc1f95967abcb4c03dffd437e93b799ff151c1" diff --git a/meta-efl/recipes-efl/efl/edje-fpu.inc b/meta-efl/recipes-efl/efl/edje-fpu.inc deleted file mode 100644 index 3f2aacffbf9..00000000000 --- a/meta-efl/recipes-efl/efl/edje-fpu.inc +++ /dev/null @@ -1,6 +0,0 @@ - -def get_edje_fpu_setting(bb, d): - if d.getVar('TARGET_FPU', 1) in [ 'soft' ]: - return "--enable-fixed-point" - return "" - diff --git a/meta-efl/recipes-efl/efl/efl.inc b/meta-efl/recipes-efl/efl/efl.inc deleted file mode 100644 index ba993af35c4..00000000000 --- a/meta-efl/recipes-efl/efl/efl.inc +++ /dev/null @@ -1,288 +0,0 @@ -SUMMARY = "EFL" -LICENSE = "MIT & BSD & LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=a1809a807e39dd48ddcf7be98477d130" - -DEPENDS_class-native = "freetype-native libxext-native libpng-native jpeg-native tiff-native libfribidi-native glib-2.0-native dbus-native" -DEPENDS = "virtual/libiconv tslib curl glib-2.0 gnutls pkgconfig zlib jpeg openssl libsndfile1 dbus libexif librsvg freetype libpng tiff libxext virtual/libx11 libxdamage libxrender fontconfig libfribidi giflib udev libxcursor libxcomposite libxinerama libxrandr libxtst libxscrnsaver efl-native util-linux" - -inherit efl gettext pkgconfig - -BBCLASSEXTEND = "native" - -PROVIDES += "ecore edje eet eeze efreet eina eio embryo emotion ethumb evas eldbus" - -# we don't have bullet for physics -# You have chosen to disable physics support. This disables lots of -# core functionality and is effectively never tested. You are going -# to find features that suddenly don't work and as a result cause -# a series of breakages. This is simply not tested so you are on -# your own in terms of ensuring everything works if you do this -EXTRA_OECONF = " \ - --disable-physics \ - --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-aba \ -" -EXTRA_OECONF_append_class-target = " \ - --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ - --with-eolian-gen=${STAGING_BINDIR_NATIVE}/eolian_gen \ - --with-eolian-cxx=${STAGING_BINDIR_NATIVE}/eolian_cxx \ - --with-elua=${STAGING_BINDIR_NATIVE}/elua \ -" -EXTRA_OECONF_append_class-native = " \ - --disable-fontconfig \ - --disable-audio \ - --disable-physics \ - --disable-multisense \ - --disable-cserve \ - --with-x11=none \ - --disable-image-loader-bmp \ - --disable-image-loader-eet \ - --disable-image-loader-generic \ - --disable-image-loader-gif \ - --disable-image-loader-ico \ - --disable-image-loader-jp2k \ - --disable-image-loader-pmaps \ - --disable-image-loader-psd \ - --disable-image-loader-tga \ - --disable-image-loader-wbmp \ - --disable-image-loader-webp \ - --disable-image-loader-xpm \ - --disable-image-loader-tgv \ - --disable-image-loader-dds \ -" - -PACKAGECONFIG ?= "opengl-es gstreamer1 pulseaudio luajit" -PACKAGECONFIG_class-native = "luajit" - -# sort of tri-state -PACKAGECONFIG[opengl-full] = "--with-opengl=full,,virtual/libgl" -PACKAGECONFIG[opengl-es] = "--with-opengl=es,,virtual/libgles2" -PACKAGECONFIG[opengl-none] = "--with-opengl=none,," -# be aware when enabling this for efl-native, we don't provide gcc-native so you need to make -# sure that all your builders have g++ which supports -std=gnu++11 -PACKAGECONFIG[c++11] = "--enable-cxx-bindings,--disable-cxx-bindings" -PACKAGECONFIG[gstreamer] = "--enable-gstreamer,--disable-gstreamer,gstreamer" -PACKAGECONFIG[gstreamer1] = "--enable-gstreamer1,--disable-gstreamer1,gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" -PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" -PACKAGECONFIG[luajit] = "--disable-lua-old,--enable-lua-old,luajit" -PACKAGECONFIG[lua-old] = "--enable-lua-old,--disable-lua-old,lua" -PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi" -# currently we don't provide doxygen-native -PACKAGECONFIG[doc] = "--enable-doc,--disable-doc,doxygen-native" - -# new efl doesn't have option to disable eeze build and we don't want to provide udev-native just to build eeze-native we don't need -do_configure_prepend_class-native() { - sed -i 's/EFL_LIB_START_OPTIONAL(\[Eeze\], \[test "${have_linux}" = "yes"\])/EFL_LIB_START_OPTIONAL([Eeze], [test "${no-we-really-dont-want-native-eeze}" = "yes"])/g' ${S}/configure.ac -} - -do_install_append() { - # don't ship precompiled lua files - rm -f ${datadir}/elua/*/*.luac -} - -PACKAGES =+ "edje-utils embryo-utils embryo-tests efreet-trash efreet-mime libeet libefreet ecore-audio ecore-input-evas ecore-input ecore-imf-evas ecore-imf ecore-file ecore-con ecore-ipc ecore-x ecore-evas libemotion eo ecore edje eet eeze efreet eina eio embryo emotion ethumb evas eldbus elua" - -# upgrade path from 1.7 -DEBIAN_NOAUTONAME_ecore-audio = "1" -DEBIAN_NOAUTONAME_ecore-input-evas = "1" -DEBIAN_NOAUTONAME_ecore-input = "1" -DEBIAN_NOAUTONAME_ecore-imf-evas = "1" -DEBIAN_NOAUTONAME_ecore-imf = "1" -DEBIAN_NOAUTONAME_ecore-file = "1" -DEBIAN_NOAUTONAME_ecore-con = "1" -DEBIAN_NOAUTONAME_ecore-ipc = "1" -DEBIAN_NOAUTONAME_ecore-x = "1" -DEBIAN_NOAUTONAME_ecore-evas = "1" -DEBIAN_NOAUTONAME_embryo = "1" - -ALLOW_EMPTY_ecore = "1" -RDEPENDS_ecore = "ecore-audio ecore-input-evas ecore-input ecore-imf-evas ecore-imf ecore-file ecore-con ecore-ipc ecore-x ecore-evas" - -python populate_packages_prepend () { - for plugin_type in "engines loaders savers".split(): - bb.note( "splitting packages for evas %s..." % plugin_type ) - basedir = d.expand( '${libdir}/evas/modules/%s' % plugin_type) - - do_split_packages(d, basedir, '^(.*)', - output_pattern = 'evas-' + plugin_type[:-1] + "-%s", - description = 'Evas module %s', - allow_dirs=True, recursive=False, extra_depends="" ) - - plugin_type = "cserve2" - bb.note( "splitting packages for evas %s..." % plugin_type ) - basedir = d.expand( '${libdir}/evas/%s/loaders' % plugin_type) - - do_split_packages(d, basedir, '^(.*)', - output_pattern = 'evas-' + plugin_type + "-%s", - description = 'Evas csever2 loader module %s', - allow_dirs=True, recursive=False, extra_depends="" ) -} - -PACKAGES += "evas-loader-png evas-engine-software-generic evas-engine-fb" -PACKAGES_DYNAMIC += "^evas-engine-.* ^evas-loader-.* ^evas-saver-.* ^evas-cserve2-.*" - -# PACKAGES_DYNAMIC + do_split_packages isn't used for all libe libs, -# because PACKAGES_DYNAMIC would be catching too many patterns -# (or need to list all possible prefixes) and not all original packages -# were splitted like that, so it would need RCONFLICTS/RPROVIDES/RREPLACES -# combos at least in few places for upgrade path. - -FILES_efreet-trash = " \ - ${libdir}/libefreet_trash${SOLIBS} \ -" -FILES_efreet-mime = " \ - ${libdir}/libefreet_mime${SOLIBS} \ -" -FILES_libeet = " \ - ${libdir}/libeet${SOLIBS} \ -" -FILES_libefreet = " \ - ${libdir}/libefreet${SOLIBS} \ -" -FILES_ecore-audio = "\ - ${libdir}/libecore_audio${SOLIBS} \ -" -FILES_ecore-input-evas = "\ - ${libdir}/libecore_input_evas${SOLIBS} \ -" -FILES_ecore-input = "\ - ${libdir}/libecore_input${SOLIBS} \ -" -FILES_ecore-imf-evas = "\ - ${libdir}/libecore_imf_evas${SOLIBS} \ - ${libdir}/ecore-imf/modules/*/*/module.so \ -" -FILES_ecore-imf = "\ - ${libdir}/libecore_imf${SOLIBS} \ -" - -FILES_ecore-file = "\ - ${libdir}/libecore_file${SOLIBS} \ -" -FILES_ecore-con = "\ - ${libdir}/libecore_con${SOLIBS} \ -" -FILES_ecore-ipc = "\ - ${libdir}/libecore_ipc${SOLIBS} \ -" -FILES_ecore-x = "\ - ${libdir}/libecore_x${SOLIBS} \ - ${libdir}/ecore_x/bin/v-*/ecore_x_vsync \ -" -FILES_ecore-evas = "\ - ${libdir}/libecore_evas${SOLIBS} \ - ${libdir}/ecore-evas/engines/*/*/module.so \ -" -FILES_eio = "\ - ${libdir}/libeio${SOLIBS} \ -" -FILES_eina = "\ - ${libdir}/libeina${SOLIBS} \ - ${bindir}/eina-bench-cmp \ -" -FILES_edje-utils = "\ - ${bindir}/edje_* \ - ${datadir}/edje/include/edje.inc \ -" -FILES_eldbus = "\ - ${libdir}/libeldbus${SOLIBS} \ -" -FILES_eo = "\ - ${libdir}/libeo${SOLIBS} \ -" -FILES_libemotion = "\ - ${libdir}/libemotion${SOLIBS} \ -" -FILES_efreet = " \ - ${datadir}/dbus-1/services/*Efreet* \ - ${libdir}/efreet/*/efreet*create \ - ${bindir}/efreetd \ - ${datadir}/efreet \ -" -FILES_eet = " \ - ${bindir}/eet \ - ${bindir}/vieet \ - ${bindir}/diffeet \ - ${libdir}/libeet${SOLIBS} \ -" -FILES_emotion = " \ - ${datadir}/emotion \ - ${libdir}/emotion/modules/gstreamer1/*/module.so \ -" -FILES_embryo-tests = " \ - ${datadir}/embryo/ \ -" -FILES_embryo-utils = " \ - ${binddir}/embryo_* \ -" -FILES_embryo = " \ - ${libdir}/libembryo${SOLIBS} \ -" -FILES_ethumb = " \ - ${datadir}/dbus-1/services/*Ethumb* \ - ${libdir}/libethumb${SOLIBS} \ - ${libdir}/libethumb_client${SOLIBS} \ - ${bindir}/ethumbd \ - ${bindir}/ethumbd_client \ - ${bindir}/ethumb \ - ${libdir}/ethumb/*/*/*/module.so \ - ${libdir}/ethumb/*/*/*/*.edj \ - ${libdir}/ethumb_client/utils/*/ethumbd_slave \ - ${datadir}/ethumb* \ -" -FILES_ecore = " \ - ${libdir}/libecore${SOLIBS} \ - ${libdir}/ecore*/*/*/*/module.so \ - ${datadir}/ecore* \ -" -FILES_evas = " \ - ${libdir}/libevas${SOLIBS} \ - ${libdir}/evas*/*/*/*/*/module.so \ - ${libdir}/evas*/*/*/*/*/*.edj \ - ${libdir}/evas/cserve2/bin/*/evas_cserve2* \ - ${datadir}/evas* \ - ${bindir}/evas_cserve2_* \ -" - -FILES_eeze = " \ - ${libdir}/libeeze${SOLIBS} \ - ${libdir}/eeze*/*/*/*/*/module.so \ - ${datadir}/eeze \ - ${bindir}/eeze_* \ -" -FILES_edje = " \ - ${libdir}/libedje${SOLIBS} \ - ${libdir}/edje*/*/*/*/module.so \ - ${libdir}/edje/utils/*/epp \ - ${datadir}/edje \ - ${datadir}/mime \ -" -FILES_elua = " \ - ${bindir}/elua \ - ${datadir}/elua \ -" -FILES_${PN}-dbg += " \ - ${libdir}/efreet/*/.debug \ - ${libdir}/ecore*/*/*/*/.debug \ - ${libdir}/ecore*/*/*/.debug \ - ${libdir}/evas*/*/*/*/*/.debug \ - ${libdir}/evas/cserve2/bin/*/.debug \ - ${libdir}/eeze*/*/*/*/*/.debug \ - ${libdir}/edje*/*/*/*/.debug \ - ${libdir}/edje/utils/*/.debug \ - ${libdir}/ethumb/*/*/*/.debug \ - ${libdir}/ethumb_client/utils/*/.debug \ - ${libdir}/emotion/modules/gstreamer1/*/.debug \ -" -FILES_${PN}-dev += " \ - ${libdir}/cmake \ - ${libdir}/ecore*/*/*/*/module.la \ - ${libdir}/evas*/*/*/*/*/module.la \ - ${libdir}/ethumb*/*/*/*/module.la \ - ${libdir}/eeze*/*/*/*/*/module.la \ - ${libdir}/edje*/*/*/*/module.la \ - ${libdir}/emotion/modules/gstreamer1/*/module.la \ - ${datadir}/gdb/auto-load \ - ${datadir}/eo/gdb \ - ${bindir}/eldbus-codegen \ -" diff --git a/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch b/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch deleted file mode 100644 index fa85f817e2a..00000000000 --- a/meta-efl/recipes-efl/efl/efl/0001-configure.ac-Don-t-check-for-Xprint-extension.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 27aedcdcdafbf079dc022bab72ec309cf7db3172 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Fri, 10 Jan 2014 17:07:13 +0100 -Subject: [PATCH 1/3] configure.ac: Don't check for Xprint extension - -* it's long gone - -Signed-off-by: Martin Jansa ---- - configure.ac | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index c108b1b..f019bfc 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3474,7 +3474,6 @@ if test "x${want_x11_xlib}" = "xyes" ; then - ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xext], [DPMSQueryExtension]) - ECORE_CHECK_X_EXTENSION([Xfixes], [Xfixes.h], [Xfixes], [XFixesExpandRegion]) - ECORE_CHECK_X_EXTENSION([Xinerama], [Xinerama.h], [Xinerama], [XineramaQueryScreens]) -- ECORE_CHECK_X_EXTENSION([Xprint], [Print.h], [Xp], [XpQueryScreens]) - ECORE_CHECK_X_EXTENSION([Xrandr], [Xrandr.h], [Xrandr], [XRRGetScreenResourcesCurrent]) - ECORE_CHECK_X_EXTENSION([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat]) - ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent]) --- -2.3.0 - diff --git a/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch b/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch deleted file mode 100644 index aa7fd4bf515..00000000000 --- a/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch +++ /dev/null @@ -1,51 +0,0 @@ -From b3cbe31c38a088af7b0dade82545475fc9b72492 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Tue, 2 Dec 2014 12:21:10 +0100 -Subject: [PATCH 2/3] evas_3d: Add Eet.h includes - -* with some very restrictive options like we use in efl-native, the build is complaining - about missing symbols from Eet.h, add include where needed - -Signed-off-by: Martin Jansa ---- - src/lib/evas/canvas/evas_3d_eet.c | 1 + - src/modules/evas/model_loaders/eet/evas_model_load_eet.c | 1 + - src/modules/evas/model_savers/eet/evas_model_save_eet.c | 1 + - 3 files changed, 3 insertions(+) - -diff --git a/src/lib/evas/canvas/evas_3d_eet.c b/src/lib/evas/canvas/evas_3d_eet.c -index 1515f5a..a438217 100644 ---- a/src/lib/evas/canvas/evas_3d_eet.c -+++ b/src/lib/evas/canvas/evas_3d_eet.c -@@ -1,3 +1,4 @@ -+#include - #include - #include "evas_common_private.h" - #include "evas_private.h" -diff --git a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c -index 815b9f1..bff2cea 100644 ---- a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c -+++ b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c -@@ -3,6 +3,7 @@ - #endif - - #include -+#include - #include - #include "evas_common_private.h" - #include "evas_private.h" -diff --git a/src/modules/evas/model_savers/eet/evas_model_save_eet.c b/src/modules/evas/model_savers/eet/evas_model_save_eet.c -index e445dca..2e1cf4e 100644 ---- a/src/modules/evas/model_savers/eet/evas_model_save_eet.c -+++ b/src/modules/evas/model_savers/eet/evas_model_save_eet.c -@@ -2,6 +2,7 @@ - #include "config.h" - #endif - -+#include - #include - #include "evas_common_private.h" - #include "evas_private.h" --- -2.3.0 - diff --git a/meta-efl/recipes-efl/efl/efl_1.13.2.bb b/meta-efl/recipes-efl/efl/efl_1.13.2.bb deleted file mode 100644 index 176f58aeb24..00000000000 --- a/meta-efl/recipes-efl/efl/efl_1.13.2.bb +++ /dev/null @@ -1,25 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "\ - ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ - file://0001-configure.ac-Don-t-check-for-Xprint-extension.patch \ - file://0002-evas_3d-Add-Eet.h-includes.patch \ -" - -SRC_URI[md5sum] = "dd779050ccc4ad8d7ae71f2dc8c85855" -SRC_URI[sha256sum] = "98404d8de63eea318f748c25708ec989628f025adf12cd54697e5de2fe48c2a4" - -# Temporary disable until error like the one following are fixed -# efl-native/2_1.8.4-r0/efl-1.8.4/src/lib/eet/.libs/libeet.so: file not recognized: File truncated -# collect2: error: ld returned 1 exit status -# x86_64-linux-libtool: install: error: relink `modules/evas/savers/tiff/module.la' with the above command before installing it -# Makefile:11031: recipe for target 'install-savertiffpkgLTLIBRARIES' failed -PARALLEL_MAKE_class-native = "" - -#EFL_RUN_IN_TREE=1 ../src/bin/eolian/eolian_gen --eo --legacy -I/OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/eo -I/OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/evas/canvas -I/OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/edje -I/OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/ecore_audio --gc -o lib/evas/canvas/evas_line.eo.c /OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/lib/evas/canvas/evas_line.eo -#ERR<32439>:eolian_gen /OE/build/shr-core/tmp-eglibc/work/x86_64-linux/efl-native/2_1.10.0-r0/efl-1.10.0/src/bin/eolian/main.c:103 _generate_c_file() Couldnt open file lib/evas/canvas/evas_line.eo.c for writing -#Makefile:30738: recipe for target 'lib/evas/canvas/evas_line.eo.c' failed -#make[2]: *** [lib/evas/canvas/evas_line.eo.c] Error 1 -#Makefile:2163: recipe for target 'all-recursive' failed -# autotools-brokensep -B = "${S}" diff --git a/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE b/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE deleted file mode 100644 index 61bb2f603da..00000000000 --- a/meta-efl/recipes-efl/efl/elementary-theme-efenniht/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright notice for Enlightenment: - -Copyright (C) 2000-2010 Carsten Haitzler and various contributors (see AUTHORS) - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb b/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb deleted file mode 100644 index 494e743f58c..00000000000 --- a/meta-efl/recipes-efl/efl/elementary-theme-efenniht_svn.bb +++ /dev/null @@ -1,38 +0,0 @@ -DESCRIPTION = "efenniht elementary theme - Efenniht was devised to be clean \ -and neutral. Its name (which means equinox) comes from the chromatic duality \ -that was decided at the very beginning, with a dark theme (black and orange) \ -and a bright one (white and blue) to be developed so that more people feel \ -comfortable using it. Efenniht uses few animations, discrete contrasts between \ -shades of gray and fine lines (colored) that outline the selected elements." -SECTION = "e/utils" -HOMEPAGE = "http://trac.enlightenment.org/e/wiki/Themes#Efenniht" -DEPENDS = "edje-native" -RSUGGESTS_${PN} = "e-wm-theme-illume-efenniht" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=f523ab5986cc79b52a90d2ac3d5454a2" - -SRCREV_THM_REV ?= "${EFL_SRCREV}" -SRCREV_ELM_REV ?= "${EFL_SRCREV}" - -SRCREV_FORMAT = "THM_REV" -PV = "0.0+svnr${SRCPV}" -PR = "r1" - -inherit e-base allarch - -SRCNAME = "efenniht" -SRC_URI = "${E_SVN}/trunk/THEMES;module=${SRCNAME};protocol=http;name=THM_REV" -SRC_URI += "${E_SVN}/trunk/elementary/data;module=themes;protocol=http;name=ELM_REV" -SRC_URI += "file://LICENSE" -S = "${WORKDIR}/${SRCNAME}" - -do_compile() { - ${STAGING_BINDIR_NATIVE}/edje_cc -id ${S}/images -id ${WORKDIR}/themes/images ${S}/elm-efenniht.edc -o ${S}/elm-efenniht.edj -} - -do_install() { - install -d ${D}${datadir}/elementary/themes/ - install -m 0644 ${S}/elm-efenniht.edj ${D}${datadir}/elementary/themes/ -} - -FILES_${PN} = "${datadir}/elementary/themes/" diff --git a/meta-efl/recipes-efl/efl/elementary.inc b/meta-efl/recipes-efl/efl/elementary.inc deleted file mode 100644 index f0a92dfe9a0..00000000000 --- a/meta-efl/recipes-efl/efl/elementary.inc +++ /dev/null @@ -1,89 +0,0 @@ -DESCRIPTION = "EFL based widget set for mobile devices" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=a173054a93896e933df53e3382d472c2" -DEPENDS = "eet-native edje-native elementary-native efreet evas ecore edje eet eldbus ethumb poppler eio" -DEPENDS_class-native = "efl-native" - -inherit efl gettext - -EXTRA_OECONF_append_class-target = "\ - --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ - --with-eet-eet=${STAGING_BINDIR_NATIVE}/eet \ - --with-elementary-codegen=${STAGING_BINDIR_NATIVE}/elementary_codegen \ - --with-elm-prefs-cc=${STAGING_BINDIR_NATIVE}/elm_prefs_cc \ - --with-eolian-gen=${STAGING_BINDIR_NATIVE}/eolian_gen \ - --with-eolian-cxx=${STAGING_BINDIR_NATIVE}/eolian_cxx \ -" - -BBCLASSEXTEND = "native" - -PACKAGECONFIG[eweather] = "--enable-eweather,--disable-eweather,libeweather" -PACKAGECONFIG[ewebkit] = "--with-elementary-web-backend=ewebkit,--with-elementary-web-backend=none,webkit-efl" -# be aware when enabling this for efl-native, we don't provide gcc-native so you need to make -# sure that all your builders have g++ which supports -std=gnu++11 -PACKAGECONFIG[c++11] = "--enable-cxx-bindings,--disable-cxx-bindings" - -do_configure_prepend() { - # prefix returned eolian paths with STAGING_DIR_HOST - sed -i 's%^\(DEPS_EOLIAN_FLAGS=`.*\)`$%\1 | sed "s#-I\\${prefix}#-I\\${STAGING_DIR_HOST}\\${prefix}#g"`%g' ${S}/configure.ac -} - -do_compile_append_class-target() { - sed -i -e s:${STAGING_DIR_TARGET}::g \ - -e s:/${TARGET_SYS}::g \ - elementary.pc -} - -PACKAGES += "${PN}-configs ${PN}-accessibility" - -RDEPENDS_${PN}_class-native = "" - -RDEPENDS_${PN} = "\ - ${PN}-themes \ - ${PN}-configs \ -" -RSUGGESTS_${PN} = "${PN}-tests ${PN}-accessibility" - -FILES_${PN} += "\ - ${libdir}/edje/modules/elm \ - ${libdir}/elementary/modules/datetime_input_ctxpopup/*/module.so \ - ${libdir}/elementary/modules/prefs/*/module.so \ - ${libdir}/elementary/modules/prefs/*/*.edj \ -" - -FILES_${PN}-dev += "\ - ${bindir}/elm_prefs_cc \ - ${libdir}/elementary/modules/*/*/module.la \ - ${libdir}/cmake \ -" - -FILES_${PN}-themes = "\ - ${datadir}/elementary/themes \ -" - -FILES_${PN}-configs = "\ - ${datadir}/elementary/config \ -" - -FILES_${PN}-dbg += "\ - ${libdir}/elementary/modules/*/*/.debug \ - ${libdir}/edje/modules/elm/*/.debug \ -" - -FILES_${PN}-tests = "\ - ${bindir}/elementary* \ - ${datadir}/elementary/images \ - ${datadir}/elementary/objects \ - ${datadir}/elementary/examples \ - ${datadir}/applications/* \ - ${datadir}/icons/* \ - ${libdir}/elementary/modules/test_entry/* \ - ${libdir}/elementary/modules/test_map/* \ -" - -FILES_${PN}-accessibility = "\ - ${libdir}/elementary/modules/access_output/* \ -" - -# Some upgrade path tweaking, as in evas -AUTO_LIBNAME_PKGS = "" diff --git a/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch b/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch deleted file mode 100644 index 9524c70d7d0..00000000000 --- a/meta-efl/recipes-efl/efl/elementary/0001-Makefile-Use-elementary_codegen-defined-in-configure.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 75d104d105aa03dd9d446fa7d84fa95e0f566cf9 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sat, 11 Jan 2014 12:55:59 +0100 -Subject: [PATCH] Makefile: Use elementary_codegen defined in configure - -* using binaries from top_buildir doesn't work when cross-compiling elementary - where we need to pass native binaries in configure params - -Signed-off-by: Martin Jansa ---- - src/examples/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/examples/Makefile.am b/src/examples/Makefile.am -index fc35c75..1e10b0b 100644 ---- a/src/examples/Makefile.am -+++ b/src/examples/Makefile.am -@@ -29,7 +29,7 @@ LDADD = \ - @ELEMENTARY_X_LIBS@ \ - $(top_builddir)/src/lib/libelementary.la - --ELEMENTARY_CODEGEN = $(top_builddir)/src/bin/@ELEMENTARY_CODEGEN_PRG@ -+ELEMENTARY_CODEGEN = @elementary_codegen@ - ELEMENTARY_CODEGEN_FLAGS = --prefix=codegen_example - - SRCS = \ --- -1.9.0 - diff --git a/meta-efl/recipes-efl/efl/elementary_1.13.2.bb b/meta-efl/recipes-efl/efl/elementary_1.13.2.bb deleted file mode 100644 index db6afdef248..00000000000 --- a/meta-efl/recipes-efl/efl/elementary_1.13.2.bb +++ /dev/null @@ -1,16 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "\ - ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ -" - -# only for target, because configure doesn't default to sane default when -# these paths aren't passed in -native build -SRC_URI_append_class-target = " file://0001-Makefile-Use-elementary_codegen-defined-in-configure.patch" - -SRC_URI[md5sum] = "0d32d241af1c96c06da6d130020275f0" -SRC_URI[sha256sum] = "312dd63f3c82c9076f0cfe5125990e650d7767a776186631455911a980f91039" - -# autotools-brokensep - configure updates Elementary.h correctly in ${B}, but then build is using Elementary.h from ${S} -# which includes #define ELM_EMAP (instead of #undef ELM_EMAP) and building fails -B = "${S}" diff --git a/meta-efl/recipes-efl/efl/emotion-generic-players.inc b/meta-efl/recipes-efl/efl/emotion-generic-players.inc deleted file mode 100644 index 4ab89ae32f2..00000000000 --- a/meta-efl/recipes-efl/efl/emotion-generic-players.inc +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION = "Emotion generic players" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=a0f11eedf8706bf6d4d6639fb67eb8ae" - -DEPENDS = "emotion" - -inherit efl - -SRCNAME = "emotion_generic_players" - -# creates empty packages until you get vlc-2 and enable it here -PACKAGECONFIG ?= "" -# needs eina and ecore from efl and vlc-2 (currently we have 1.11) -PACKAGECONFIG[vlc] = "--with-vlc,--without-vlc,vlc efl" diff --git a/meta-efl/recipes-efl/efl/emotion-generic-players_1.13.0.bb b/meta-efl/recipes-efl/efl/emotion-generic-players_1.13.0.bb deleted file mode 100644 index e42c5163b75..00000000000 --- a/meta-efl/recipes-efl/efl/emotion-generic-players_1.13.0.bb +++ /dev/null @@ -1,8 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "\ - ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ -" - -SRC_URI[md5sum] = "36e5fc6a2bc83b1ab90c5c72b344f00e" -SRC_URI[sha256sum] = "23a3966d38cafece2c39d1e9904f26da11b9b282676f2d1fd8e54807251b363e" diff --git a/meta-efl/recipes-efl/efl/engrave_svn.bb b/meta-efl/recipes-efl/efl/engrave_svn.bb deleted file mode 100644 index 20da9077148..00000000000 --- a/meta-efl/recipes-efl/efl/engrave_svn.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Engrave is an Edje Editing Library" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=edf2d968b9eb026bfa82cccbd0e6f9f5" -# also requires yacc and lex on host -DEPENDS = "evas ecore flex" -PV = "0.0.0+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit efl autotools-brokensep -SRC_URI = "${E_SVN}/OLD;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" diff --git a/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch b/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch deleted file mode 100644 index a82d1ed3c86..00000000000 --- a/meta-efl/recipes-efl/efl/entrance/0001-pam-use-common-auth-instead-of-system-auth.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 14396c52a2556b1ab778a310a318ec19c2829735 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Thu, 24 Nov 2011 13:25:33 +0100 -Subject: [PATCH] pam: use common-auth instead of system-auth - -Signed-off-by: Martin Jansa ---- - PROTO/entrance/data/entrance | 8 ++++---- - 1 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/data/entrance b/data/entrance -index 872c83d..2b98c3a 100644 ---- a/data/entrance -+++ b/data/entrance -@@ -1,4 +1,4 @@ --auth include system-auth --account include system-auth --password include system-auth --session include system-auth -+auth include common-auth -+account include common-account -+password include common-password -+session include common-session --- -1.7.8.6 - diff --git a/meta-efl/recipes-efl/efl/entrance/entrance.service b/meta-efl/recipes-efl/efl/entrance/entrance.service deleted file mode 100644 index 48286869529..00000000000 --- a/meta-efl/recipes-efl/efl/entrance/entrance.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Login manager for Enlightenment - -[Service] -ExecStart=/usr/sbin/entrance - -[Install] -Alias=display-manager.service diff --git a/meta-efl/recipes-efl/efl/entrance_svn.bb b/meta-efl/recipes-efl/efl/entrance_svn.bb deleted file mode 100644 index 337473705dd..00000000000 --- a/meta-efl/recipes-efl/efl/entrance_svn.bb +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "Login manager for Enlightenment" -DEPENDS = "efreet eina eet ecore elementary" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SECTION = "e/apps" - -inherit e gettext systemd -SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep \ - file://0001-pam-use-common-auth-instead-of-system-auth.patch \ - file://entrance.service \ -" -S = "${WORKDIR}/${SRCNAME}" - -PNBLACKLIST[entrance] ?= "broken: switch to https://git.enlightenment.org/misc/entrance.git and fix 0.0.4+svnr82070-r7/entrance/data/themes/old/default.edc:678. invalid state name: 'defaault'. "default" state must always be first." - -PACKAGECONFIG ??= "" -PACKAGECONFIG[consolekit] = "--enable-consolekit,--disable-consolekit,consolekit" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc ${@base_contains('DISTRO_FEATURES', 'pam', '', '--disable-pam', d)}" - -PR = "r7" -PV = "0.0.4+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -RDEPENDS_${PN} += "${PN}-themes sessreg xauth" -CONFFILES_${PN} += "${sysconfdir}/entrance.conf" - -RCONFLICTS_${PN} += "xserver-nodm-init" -RREPLACES_${PN} += "xserver-nodm-init" - -RCONFLICTS_${PN} += "xserver-nodm-init-systemd" -RREPLACES_${PN} += "xserver-nodm-init-systemd" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" - -SYSTEMD_SERVICE_${PN} = "entrance.service" - -do_install_append() { - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/entrance.service ${D}${systemd_unitdir}/system -} diff --git a/meta-efl/recipes-efl/efl/epdf_svn.bb b/meta-efl/recipes-efl/efl/epdf_svn.bb deleted file mode 100644 index e91eec5338d..00000000000 --- a/meta-efl/recipes-efl/efl/epdf_svn.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Epdf is the glue between EFL and libpoppler" - -DEPENDS = "poppler evas ecore" -PV = "0.1.0+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit efl - -LICENSE = "GPLv2 & LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ - file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6 \ -" - -SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep \ -" -S = "${WORKDIR}/${SRCNAME}" - -EXTRA_OECONF = "\ - --enable-poppler \ - --disable-mupdf \ -" - -# Some upgrade path tweaking, as in evas -AUTO_LIBNAME_PKGS = "" - diff --git a/meta-efl/recipes-efl/efl/epeg_svn.bb b/meta-efl/recipes-efl/efl/epeg_svn.bb deleted file mode 100644 index 1b24d91957c..00000000000 --- a/meta-efl/recipes-efl/efl/epeg_svn.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Epeg is a small library for handling thumbnails" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35 \ - file://COPYING-PLAIN;md5=f59cacc08235a546b0c34a5422133035" - -DEPENDS = "jpeg" -PV = "0.9.0+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit efl -SRC_URI = "${E_SVN}/OLD;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" diff --git a/meta-efl/recipes-efl/efl/evas-generic-loaders.inc b/meta-efl/recipes-efl/efl/evas-generic-loaders.inc deleted file mode 100644 index 5cd9ec18826..00000000000 --- a/meta-efl/recipes-efl/efl/evas-generic-loaders.inc +++ /dev/null @@ -1,71 +0,0 @@ -DESCRIPTION = "Evas generic loaders" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=a87563ed30add2b0e3460272d3138a00" -DEPENDS = "eina poppler librsvg cairo" - -inherit efl - -SRCNAME = "evas_generic_loaders" - -EXTRA_OECONF = " \ - --enable-poppler \ - --enable-svg \ - --disable-gstreamer \ - --disable-libraw \ - --disable-spectre \ -" - -PACKAGESPLITFUNCS_prepend = "split_evas_loader_packages " - -python split_evas_loader_packages () { - bb.note( "splitting packages for evas generic loaders" ) - basedir = d.expand( '${libdir}/evas/utils') - - do_split_packages(d, basedir, 'evas_image_loader\.(.*)$', - output_pattern = "evas-generic-loader-%s", - description = 'Evas generic loaders - module %s', - allow_dirs=True, recursive=False, extra_depends="" ) - - do_split_packages(d, basedir, 'evas_generic_pdf_loader\.(.*)$', - output_pattern = "evas-generic-pdf-loader-%s", - description = 'Evas generic pdf loaders - module %s', - allow_dirs=True, recursive=False, extra_depends="" ) -} - -# add symlinks for different format (it doesn't make much sense to package them in separate packages) -FILES_evas-generic-loader-xcf += " \ - ${libdir}/evas/utils/evas_image_loader.xcf.gz \ -" -FILES_evas-generic-loader-svg += " \ - ${libdir}/evas/utils/evas_image_loader.svg.gz \ - ${libdir}/evas/utils/evas_image_loader.svgz \ -" -FILES_evas-generic-loader-pdf += " \ - ${libdir}/evas/utils/evas_image_loader.doc \ - ${libdir}/evas/utils/evas_image_loader.docx \ - ${libdir}/evas/utils/evas_image_loader.odp \ - ${libdir}/evas/utils/evas_image_loader.ods \ - ${libdir}/evas/utils/evas_image_loader.odt \ - ${libdir}/evas/utils/evas_image_loader.ppt \ - ${libdir}/evas/utils/evas_image_loader.pptx \ - ${libdir}/evas/utils/evas_image_loader.rtf \ - ${libdir}/evas/utils/evas_image_loader.xls \ - ${libdir}/evas/utils/evas_image_loader.xlsx \ -" -FILES_evas-generic-pdf-loader-libreoffice += " \ - ${libdir}/evas/utils/evas_generic_pdf_loader.doc \ - ${libdir}/evas/utils/evas_generic_pdf_loader.docx \ - ${libdir}/evas/utils/evas_generic_pdf_loader.odp \ - ${libdir}/evas/utils/evas_generic_pdf_loader.ods \ - ${libdir}/evas/utils/evas_generic_pdf_loader.odt \ - ${libdir}/evas/utils/evas_generic_pdf_loader.ppt \ - ${libdir}/evas/utils/evas_generic_pdf_loader.pptx \ - ${libdir}/evas/utils/evas_generic_pdf_loader.rtf \ - ${libdir}/evas/utils/evas_generic_pdf_loader.xls \ - ${libdir}/evas/utils/evas_generic_pdf_loader.xlsx \ -" - -FILES_${PN}-dbg += "${libdir}/evas/utils/.debug" - -PACKAGES += "evas-generic-loader-svg" -PACKAGES_DYNAMIC += "^evas-generic-loader-.* ^evas-generic-pdf-loader-.*" diff --git a/meta-efl/recipes-efl/efl/evas-generic-loaders_1.13.2.bb b/meta-efl/recipes-efl/efl/evas-generic-loaders_1.13.2.bb deleted file mode 100644 index 162a85b0e0b..00000000000 --- a/meta-efl/recipes-efl/efl/evas-generic-loaders_1.13.2.bb +++ /dev/null @@ -1,8 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "\ - ${E_RELEASES}/libs/${SRCNAME}/${SRCNAME}-${SRCVER}.tar.gz \ -" - -SRC_URI[md5sum] = "b1e3401429b7dadbf70e9472d25c9986" -SRC_URI[sha256sum] = "8455f10b8dd418eaa4d64d3eb6446814d893d96ff083646afbdbdf8626baa81a" diff --git a/meta-efl/recipes-efl/efl/expedite.inc b/meta-efl/recipes-efl/efl/expedite.inc deleted file mode 100644 index 60e85974cb7..00000000000 --- a/meta-efl/recipes-efl/efl/expedite.inc +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION = "Expedite is a comprehensive benchmarking suite for Evas" -DEPENDS = "eet evas libsdl" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=d70bc65d46237e4ef386beebe7d0fe5b" - -INC_PR = "r0" - -inherit e - -EXTRA_OECONF = "\ - --x-includes=${STAGING_INCDIR}/X11 \ - --x-libraries=${STAGING_LIBDIR} \ - --enable-simple-x11 \ -\ - --enable-software-x11 \ - --enable-xrender-x11 \ - --enable-software-16-x11 \ - --enable-opengl-x11 \ - --enable-fb \ - --disable-software-ddraw \ - --disable-direct3d \ -" - -FILES_${PN} += "${datadir}" -RDEPENDS_${PN} = "expedite-themes evas-engine-fb evas-engine-software-generic evas-engine-software-x11 evas-engine-gl-x11 evas-loader-png" diff --git a/meta-efl/recipes-efl/efl/expedite_1.7.9.bb b/meta-efl/recipes-efl/efl/expedite_1.7.9.bb deleted file mode 100644 index cee2d607bd1..00000000000 --- a/meta-efl/recipes-efl/efl/expedite_1.7.9.bb +++ /dev/null @@ -1,8 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "\ - ${E_MIRROR}/${SRCNAME}-${SRCVER}.tar.gz \ -" - -SRC_URI[md5sum] = "954fe8e40fec6a561190ff0fb75b6bdd" -SRC_URI[sha256sum] = "a05be096c911e0d66d4bdc497ebb935a04ad23696de9084aed9959b5172a593e" diff --git a/meta-efl/recipes-efl/efl/expedite_git.bb b/meta-efl/recipes-efl/efl/expedite_git.bb deleted file mode 100644 index 5b44cf0392d..00000000000 --- a/meta-efl/recipes-efl/efl/expedite_git.bb +++ /dev/null @@ -1,11 +0,0 @@ -require ${BPN}.inc - -SRCREV = "a5e6af917af52877b378090811cf836c16d0bfbb" -PV = "1.7.99+gitr${SRCPV}" - -DEFAULT_PREFERENCE = "-1" - -SRC_URI = "\ - git://git.enlightenment.org/tools/${BPN}.git \ -" -S = "${WORKDIR}/${SRCNAME}" diff --git a/meta-efl/recipes-efl/efl/imlib2_git.bb b/meta-efl/recipes-efl/efl/imlib2_git.bb deleted file mode 100644 index 355b3341f60..00000000000 --- a/meta-efl/recipes-efl/efl/imlib2_git.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "A graphic library for file loading, saving, rendering, and manipulation" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35" - -DEPENDS = "freetype libpng jpeg virtual/libx11 libxext" -PROVIDES = "virtual/imlib2" -PV = "1.4.6+gitr${SRCPV}" -SRCREV = "560a58e61778d84953944f744a025af6ce986334" - -inherit efl binconfig -SRC_URI = "git://git.enlightenment.org/legacy/${BPN}.git" -S = "${WORKDIR}/git" - -# autotools-brokensep -B = "${S}" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib" -PACKAGECONFIG[tiff] = "--with-tiff,--without-tiff,tiff" -PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" -PACKAGECONFIG[id3] = "--with-id3,--without-id3,libid3tag" - -EXTRA_OECONF = "--with-x \ - --x-includes=${STAGING_INCDIR} \ - --x-libraries=${STAGING_LIBDIR} " - -# TODO: Use more fine granular version -#OE_LT_RPATH_ALLOW=":${libdir}/imlib2/loaders:${libdir}/imlib2/filters:" -OE_LT_RPATH_ALLOW = "any" -OE_LT_RPATH_ALLOW[export]="1" - -PACKAGES =+ "imlib2-loaders-dbg imlib2-filters-dbg imlib2-loaders imlib2-filters" -FILES_${PN} = "${libdir}/lib*.so.* ${libdir}/imlib2/*/*.so" -FILES_${PN}-dbg = "${libdir}/.debug/ ${bindir}/.debug/ ${prefix}/src/debug/" -FILES_${PN}-dev += "${bindir}/imlib2-config ${libdir}/*.so ${includedir}" -FILES_${PN}-bin = "${bindir}" -FILES_imlib2-loaders = "${libdir}/imlib2/loaders/*.so" -FILES_imlib2-filters = "${libdir}/imlib2/filters/*.so" -FILES_imlib2-loaders-dbg += "${libdir}/imlib2/loaders/.debug" -FILES_imlib2-filters-dbg += "${libdir}/imlib2/filters/.debug" - -# png.so jpeg.so id3.so are also provided by lightmediascanner -PRIVATE_LIBS_imlib2-loaders = "pnm.so lbm.so argb.so tiff.so zlib.so bmp.so tga.so gif.so xpm.so bz2.so" - -PRIVATE_LIBS_imlib2-filters = "bumpmap.so colormod.so testfilter.so" diff --git a/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch b/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch deleted file mode 100644 index 84be133f6ae..00000000000 --- a/meta-efl/recipes-efl/efl/libeflvala/disable.eina.test.patch +++ /dev/null @@ -1,44 +0,0 @@ -It causes testeina.c build to fail linking to internal eina_.*_{init,shutdown} symbols -as reported in: -http://lists.alioth.debian.org/pipermail/pkg-fso-maint/2010-May/003056.html - -Upstream-Status: Pending - -Signed-off-by: Martin Jansa - -diff -uNr vala/tests/testeina.vala ../../../arm920tt-oe-linux-gnueabi/libeflvala/1_2011.01.13.1+svnr82070-r2/vala/tests/testeina.vala ---- vala/tests/testeina.vala 2014-01-13 16:16:53.984999035 +0100 -+++ ../../../arm920tt-oe-linux-gnueabi/libeflvala/1_2011.01.13.1+svnr82070-r2/vala/tests/testeina.vala 2010-02-26 09:02:06.000000000 +0100 -@@ -153,22 +153,22 @@ - - void test_eina_benchmark() - { -- assert( Eina.Module.init() ); -- assert( Eina.List.init() ); -- assert( Eina.Array.init() ); -- assert( Eina.Benchmark.init() ); -- assert( Eina.Mempool.init() ); -+// assert( Eina.Module.init() ); -+// assert( Eina.List.init() ); -+// assert( Eina.Array.init() ); -+// assert( Eina.Benchmark.init() ); -+// assert( Eina.Mempool.init() ); - var b = new Eina.Benchmark( "test", "test"); - assert( b.register( "bogus", spec_one, 0, 100, 5 ) ); - unowned Eina.Array result = b.run(); - assert( result.count_get() == 2 ); - result = null; - b = null; -- assert( Eina.Mempool.shutdown() ); -- assert( Eina.Benchmark.shutdown() ); -- assert( Eina.Array.shutdown() ); -- assert( Eina.List.shutdown() ); -- assert( Eina.Module.shutdown() ); -+// assert( Eina.Mempool.shutdown() ); -+// assert( Eina.Benchmark.shutdown() ); -+// assert( Eina.Array.shutdown() ); -+// assert( Eina.List.shutdown() ); -+// assert( Eina.Module.shutdown() ); - } - - //=========================================================================== diff --git a/meta-efl/recipes-efl/efl/libeflvala_svn.bb b/meta-efl/recipes-efl/efl/libeflvala_svn.bb deleted file mode 100644 index 4922b1b37c7..00000000000 --- a/meta-efl/recipes-efl/efl/libeflvala_svn.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Vala meets the Enlightenment Foundation Libraries" -AUTHOR = "Michael 'Mickey' Lauer " -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -SECTION = "devel" -DEPENDS = "vala-native glib-2.0 dbus dbus-glib eina eet evas ecore edje elementary tiff" -PV = "2011.01.13.1+svnr${SRCPV}" -PE = "1" -PR = "r2" -SRCREV = "${EFL_SRCREV}" -SRCNAME = "vala" - -inherit e-base autotools-brokensep pkgconfig vala - -SRC_URI = "${E_SVN}/trunk/BINDINGS;module=${SRCNAME};protocol=http \ - file://disable.eina.test.patch \ -" -S = "${WORKDIR}/${SRCNAME}" - -PACKAGES =+ "${PN}-examples" -FILES_${PN}-examples = "${datadir}/libeflvala ${bindir}/*" diff --git a/meta-efl/recipes-efl/efl/libeweather_svn.bb b/meta-efl/recipes-efl/efl/libeweather_svn.bb deleted file mode 100644 index eff8586173e..00000000000 --- a/meta-efl/recipes-efl/efl/libeweather_svn.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "EFL-based weather widget library" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ - file://COPYING-PLAIN;md5=c910b645eda0005ccec46f75203dc96e" - -DEPENDS = "ecore edje" -PV = "0.0.0+svnr${SRCPV}" -SRCREV = "${EFL_SRCREV}" - -inherit efl -SRC_URI = "${E_SVN}/trunk/PROTO;module=${SRCNAME};protocol=http;scmdata=keep" -S = "${WORKDIR}/${SRCNAME}" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" - -RSUGGESTS_${PN} = "elementary-tests" - -do_compile_append() { - sed -i -e s:${STAGING_DIR_TARGET}::g \ - -e s:/${TARGET_SYS}::g \ - eweather.pc -} - -PACKAGES += "${PN}-plugins" - -FILES_${PN}-themes = "\ - ${datadir} \ -" - -FILES_${PN}-plugins = "\ - ${libdir}/eweather/plugins/*.so \ -" - -FILES_${PN}-dbg += "\ - ${libdir}/eweather/plugins/.debug \ -" - -FILES_${PN}-dev += "\ - ${libdir}/eweather/plugins/*.a \ - ${libdir}/eweather/plugins/*.la \ -" - -RRECOMMENDS_${PN} = "\ - ${PN}-themes \ - ${PN}-plugins \ -" diff --git a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb b/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb deleted file mode 100644 index 5ead412ef7c..00000000000 --- a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Efl Software Development Kit" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ - file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -ALLOW_EMPTY_${PN} = "1" - -PR = "r1" - -require packagegroup-efl-sdk.inc - -PACKAGES = "${PN}" - -RDEPENDS_${PN} = "\ - packagegroup-core-sdk \ - ${SDK-EFL} \ - ${SDK-EXTRAS}" diff --git a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc b/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc deleted file mode 100644 index f2b0456d443..00000000000 --- a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-sdk.inc +++ /dev/null @@ -1,12 +0,0 @@ -SDK-EFL = " \ - efl-dev \ - elementary-dev \ - edbus-dev \ - luajit-dev \ -" - -SDK-EXTRAS ?= "" -SDK-EXTRAS_qemux86 ?= " valgrind lttng-ust-dev" -SDK-EXTRAS_qemux86-64 ?= " lttng-ust-dev" -SDK-EXTRAS_qemuppc ?= " lttng-ust-dev" -SDK-EXTRAS_qemuarm ?= " lttng-ust-dev" diff --git a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb b/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb deleted file mode 100644 index 6a3f33dc687..00000000000 --- a/meta-efl/recipes-efl/packagegroups/packagegroup-efl-standalone-sdk-target.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Efl Software Development Kit" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ - file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -ALLOW_EMPTY_${PN} = "1" - -PR = "r1" - -require packagegroup-efl-sdk.inc - -PACKAGES = "${PN} ${PN}-dbg" - -RDEPENDS_${PN} = "\ - packagegroup-core-standalone-sdk-target \ - ${SDK-EFL} \ - ${SDK-EXTRAS}" diff --git a/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb b/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb deleted file mode 100644 index 63ef0f6759e..00000000000 --- a/meta-efl/recipes-efl/packagegroups/packagegroup-x11-illume.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "The Illume Windowing Environment -- install this task to get the Enlightenment Window Manager + the Illume environment." -SECTION = "x11/wm" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${TOPDIR}/meta-openembedded/meta-efl/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -PV = "1.0" -PR = "r5" - -inherit packagegroup allarch - -# Default theme and config -ETHEME ?= "e-wm-theme-default" -ECONFIG ?= "e-wm-config-mobile" - -RDEPENDS_${PN} = "\ - packagegroup-core-x11-xserver \ - packagegroup-core-x11-utils \ - \ - e-wm \ - ${ECONFIG} \ - ${ETHEME} \ -" diff --git a/meta-efl/recipes-efl/webkit/webkit-efl.inc b/meta-efl/recipes-efl/webkit/webkit-efl.inc deleted file mode 100644 index cf919ece93d..00000000000 --- a/meta-efl/recipes-efl/webkit/webkit-efl.inc +++ /dev/null @@ -1,66 +0,0 @@ -DESCRIPTION = "Webkit browser engine, EFL edition" -LICENSE = "GPLv2+ & LGPL-2.1" -LIC_FILES_CHKSUM = " \ - file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ - file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ - file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ - file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ -" - -# you need harfbuzz with icu enabled, you can add this to your config: -# PACKAGECONFIG_append_pn-harfbuzz = " icu" -DEPENDS = "icu libxslt sqlite3 gperf-native bison-native flex-native jpeg \ - libpng libxt fontconfig cairo freetype glib-2.0 libsoup-2.4 \ - libxml2 pango eina ecore evas edje eldbus harfbuzz enchant \ - ruby-native elementary" - -PE = "1" - -SRCVER ?= "${PV}" -SRC_URI = "\ - ${E_RELEASES}/libs/webkit-efl/ewebkit-${SRCVER}.tar.xz \ -" -S = "${WORKDIR}/ewebkit" - -inherit cmake lib_package pkgconfig perlnative pythonnative - -ARM_INSTRUCTION_SET = "arm" - -EXTRA_OECMAKE = " \ - -DPORT=Efl \ - -DSHARED_CORE=On \ - -DENABLE_DRAG_SUPPORT=On \ - -DENABLE_WEB_AUDIO=Off \ - -DENABLE_VIDEO=Off \ - -DENABLE_VIDEO_TRACK=Off \ - -DENABLE_ACCESSIBILITY=Off \ - -DENABLE_BATTERY_STATUS=Off \ -" -# generated ASM code isn't compatible with armv[45] -# it was removed from macro assembler in upstream commit 121885 -# https://bugs.webkit.org/show_bug.cgi?id=90198 -EXTRA_OECMAKE_append_armv4 = " -DENABLE_LLINT=Off -DENABLE_JIT=Off -DENABLE_DFG_JIT=Off -DENABLE_FTL_JIT=Off" -EXTRA_OECMAKE_append_armv5 = " -DENABLE_LLINT=Off -DENABLE_JIT=Off -DENABLE_DFG_JIT=Off -DENABLE_FTL_JIT=Off" - -# hack it in OptionsEfl.cmake because that overrules -DENABLE_LLINT=Off -do_configure_prepend_armv4() { - sed -i 's/WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)/WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT OFF)/g' ${S}/Source/cmake/OptionsEfl.cmake -} -do_configure_prepend_armv5() { - sed -i 's/WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)/WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT OFF)/g' ${S}/Source/cmake/OptionsEfl.cmake -} - -# and disabled LLINT currently isn't supported, so restrict to armv7a and x86* -COMPATIBLE_MACHINE = "(-)" -COMPATIBLE_MACHINE_i586 = "(.*)" -COMPATIBLE_MACHINE_x86-64 = "(.*)" -COMPATIBLE_MACHINE_armv7a = "(.*)" - -LEAD_SONAME = "libewebkit.so" -PACKAGES =+ "${PN}launcher-dbg ${PN}launcher ${PN}-inspector" - -FILES_${PN} += "${datadir}/ewebkit2-1/themes/default.edj" -FILES_${PN}-dev += "${libdir}/cmake" -FILES_${PN}launcher = "${bindir}/EWebLauncher" -FILES_${PN}launcher-dbg = "${bindir}/.debug/EWebLauncher" -FILES_${PN}-inspector += "${datadir}/ewebkit2-1/inspector" diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch deleted file mode 100644 index 19b7bb88dce..00000000000 --- a/meta-efl/recipes-efl/webkit/webkit-efl/0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch +++ /dev/null @@ -1,46 +0,0 @@ -From e6caaf6e80b9c80dc2b860b471a8f05e825f6dfa Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Thu, 14 Aug 2014 01:00:21 +0200 -Subject: [PATCH 1/3] OptionsCommon.cmake: don't mix CXX_FLAGS into C_FLAGS - -* it was added in https://bugs.webkit.org/show_bug.cgi?id=130261 -* causes build failures in udis86 which explicitly asks for gcc but then - gets g++ flags from CMAKE_CXX_FLAGS. - -cc1: error: command line option '-fvisibility-inlines-hidden' is valid -for C++/ObjC++ but not for C [-Werror] -cc1: error: command line option '-fpermissive' is valid for C++/ObjC++ -but not for C [-Werror] -cc1: all warnings being treated as errors -Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:11182: -recipe for target -'Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/udis86/udis86.c.o' -failed -make[2]: *** -[Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/udis86/udis86.c.o] -Error 1 -make[2]: *** Waiting for unfinished jobs.... -make[2]: Leaving directory -'/OE/build/oe-core/tmp-eglibc/work/core2-64-oe-linux/webkit-efl/1_1.10.0+1.11.0-beta1-r0/build' - -Signed-off-by: Martin Jansa ---- - Source/cmake/OptionsCommon.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake -index e304a99..045c614 100644 ---- a/Source/cmake/OptionsCommon.cmake -+++ b/Source/cmake/OptionsCommon.cmake -@@ -25,7 +25,7 @@ endif () - set_property(GLOBAL PROPERTY USE_FOLDERS ON) - - if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") -- set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing") -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-exceptions -fno-strict-aliasing -fno-rtti") - endif () - --- -2.1.3 - diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch deleted file mode 100644 index 9386e703de2..00000000000 --- a/meta-efl/recipes-efl/webkit/webkit-efl/0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch +++ /dev/null @@ -1,36 +0,0 @@ -From de93951f89e851b6689718022eebb4b8b1d14c06 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Mon, 13 Jan 2014 17:21:25 +0100 -Subject: [PATCH 2/3] WebKitHelpers.cmake: Add - -Wno-error=deprecated-declarations -Wno-error=cast-align - -Wno-error=type-limits - -Signed-off-by: Martin Jansa ---- - Source/cmake/WebKitHelpers.cmake | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/Source/cmake/WebKitHelpers.cmake b/Source/cmake/WebKitHelpers.cmake -index 227b9ee..ae52ef6 100644 ---- a/Source/cmake/WebKitHelpers.cmake -+++ b/Source/cmake/WebKitHelpers.cmake -@@ -40,6 +40,16 @@ macro(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target) - # FIXME: When we use -fno-tree-dce to support the jsCStack branch merge, build error occurs due to the uninitialization. Temporarily we set - # uninitialized as build warning in order to support the jsCStack merge. https://bugs.webkit.org/show_bug.cgi?id=127777. - set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter -Wno-error=uninitialized -Wno-error=literal-suffix ${OLD_COMPILE_FLAGS}") -+ # libsoup-2.4/libsoup/soup-proxy-uri-resolver.h:13:84: error: 'GType soup_proxy_uri_resolver_get_type()' is deprecated (declared at /OE/build/oe-core/tmp-eglibc/sysroots/qemux86-64/usr/include/libsoup-2.4/libsoup/soup-proxy-uri-resolver.h:48) [-Werror=deprecated-declarations] -+ set(OLD_COMPILE_FLAGS "-Wno-error=deprecated-declarations ${OLD_COMPILE_FLAGS}") -+ # webkit-efl/1_1.10.0+1.11.0-beta1-r0/ewebkit/Source/WTF/wtf/text/StringImpl.h:742:87: error: cast from 'uint8_t* {aka unsigned char*}' to 'WTF::StringImpl**' increases required alignment of target type [-Werror=cast-align] -+ set(OLD_COMPILE_FLAGS "-Wno-error=cast-align ${OLD_COMPILE_FLAGS}") -+ # webkit-efl/1_1.10.0+1.11.0-beta1-r0/ewebkit/Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp:70:16: error: comparison is always false due to limited range of data type [-Werror=type-limits] -+ set(OLD_COMPILE_FLAGS "-Wno-error=type-limits ${OLD_COMPILE_FLAGS}") -+ # webkit-efl/1_1.11.0-r0/ewebkit/Source/WebKit2/UIProcess/API/efl/EwkView.cpp:832:5: error: missing initializer for member '_Evas_GL_Config::gles_version' [-Werror=missing-field-initializers] -+ # this one is new with efl-1.12 -+ set(OLD_COMPILE_FLAGS "-Wno-error=missing-field-initializers ${OLD_COMPILE_FLAGS}") -+ - endif () - - set_target_properties(${_target} PROPERTIES --- -2.1.3 - diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch deleted file mode 100644 index e718ee1c12c..00000000000 --- a/meta-efl/recipes-efl/webkit/webkit-efl/0003-FEBlendNEON.h-fix-missing-semicolon.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a076d76b8e8862bd641cd991190e82cfd478cc66 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Wed, 20 Aug 2014 00:52:03 +0200 -Subject: [PATCH 3/3] FEBlendNEON.h: fix missing semicolon - -* Otherwise fails with: -In file included from ewebkit/Source/WebCore/platform/graphics/filters/FEBlend.cpp:29:0: -ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h: In member function 'virtual void WebCore::FEBlend::platformApplySoftware()': -ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: expected primary-expression before '}' token - } - ^ -ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: return-statement with a value, in function returning 'void' [-fpermissive] -ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: expected ';' before '}' token - -Signed-off-by: Martin Jansa ---- - Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h -index 1c50765..f4b6f46 100644 ---- a/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h -+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h -@@ -126,7 +126,7 @@ void FEBlend::platformApplySoftware() - - if (pixelArrayLength >= 8) { - platformApplyNEON(srcPixelArrayA->data(), srcPixelArrayB->data(), dstPixelArray->data(), pixelArrayLength); -- return -+ return; - } - // If there is just one pixel we expand it to two. - ASSERT(pixelArrayLength > 0); --- -2.1.3 - diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch deleted file mode 100644 index bfa3052b1aa..00000000000 --- a/meta-efl/recipes-efl/webkit/webkit-efl/0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch +++ /dev/null @@ -1,146 +0,0 @@ -From baebc004111289ef658c78a42f8332f3dceef41e Mon Sep 17 00:00:00 2001 -From: "ryuan.choi@navercorp.com" -Date: Thu, 13 Nov 2014 07:07:16 +0000 -Subject: [PATCH 4/4] Fix the build with EFL 1.12 - https://bugs.webkit.org/show_bug.cgi?id=138245 - -Reviewed by Gyuyoung Kim. - -Source/WebKit2: - -* UIProcess/API/efl/EwkView.cpp: -First, modified to use Evas_GL raw pointer instead of UniquePtrEfl because -Evas_GL.h can't be included in UniquePtrEfl.h -It should be moved into EvasGLContext because WebKit/EFL use only one Evas_GL. -Second, provided the version of GLES in Evas_GL_Config not to break build with -EFL 1.12 -(EwkView::EwkView): -(EwkView::~EwkView): -(EwkView::displayTimerFired): -(EwkView::createGLSurface): -* UIProcess/API/efl/EwkView.h: - -Source/WTF: - -* wtf/efl/UniquePtrEfl.h: -Removed Evas_GL.h from UniquePtrEfl.h, which is commonly included, because -it should not be included with official GL headers. - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176066 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WTF/wtf/efl/UniquePtrEfl.h | 2 -- - Source/WebKit2/UIProcess/API/efl/EwkView.cpp | 24 ++++++++++++++++-------- - Source/WebKit2/UIProcess/API/efl/EwkView.h | 3 ++- - 3 files changed, 18 insertions(+), 11 deletions(-) - -diff --git a/Source/WTF/wtf/efl/UniquePtrEfl.h b/Source/WTF/wtf/efl/UniquePtrEfl.h -index ba0110a..038d3fb 100644 ---- a/Source/WTF/wtf/efl/UniquePtrEfl.h -+++ b/Source/WTF/wtf/efl/UniquePtrEfl.h -@@ -33,7 +33,6 @@ - #include - #include - #include --#include - - namespace WTF { - -@@ -51,7 +50,6 @@ using EflUniquePtr = std::unique_ptr>; - macro(Eina_Hash, eina_hash_free) \ - macro(Eina_Module, eina_module_free) \ - macro(Evas_Object, evas_object_del) \ -- macro(Evas_GL, evas_gl_free) - - #define WTF_DEFINE_EFLPTR_DELETER(typeName, deleterFunc) \ - template<> struct EflPtrDeleter \ -diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp -index 50d34ed..6ff3394 100755 ---- a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp -+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp -@@ -299,9 +299,11 @@ EwkView::EwkView(WKViewRef view, Evas_Object* evasObject) - - // FIXME: Remove when possible. - static_cast(webView())->setEwkView(this); -- m_evasGL = EflUniquePtr(evas_gl_new(evas_object_evas_get(m_evasObject))); -+ -+ // FIXME: Consider it to move into EvasGLContext. -+ m_evasGL = evas_gl_new(evas_object_evas_get(m_evasObject)); - if (m_evasGL) -- m_evasGLContext = EvasGLContext::create(m_evasGL.get()); -+ m_evasGLContext = EvasGLContext::create(m_evasGL); - - if (!m_evasGLContext) { - WARN("Failed to create Evas_GL, falling back to software mode."); -@@ -333,6 +335,9 @@ EwkView::~EwkView() - { - ASSERT(wkPageToEvasObjectMap().get(wkPage()) == m_evasObject); - wkPageToEvasObjectMap().remove(wkPage()); -+ -+ if (m_evasGL) -+ evas_gl_free(m_evasGL); - } - - EwkView* EwkView::create(WKViewRef webView, Evas* canvas, Evas_Smart* smart) -@@ -587,7 +592,7 @@ void EwkView::displayTimerFired(Timer*) - return; - } - -- evas_gl_make_current(m_evasGL.get(), m_evasGLSurface->surface(), m_evasGLContext->context()); -+ evas_gl_make_current(m_evasGL, m_evasGLSurface->surface(), m_evasGLContext->context()); - - WKViewPaintToCurrentGLContext(wkView()); - -@@ -828,21 +833,24 @@ bool EwkView::createGLSurface() - EVAS_GL_DEPTH_BIT_8, - EVAS_GL_STENCIL_NONE, - EVAS_GL_OPTIONS_NONE, -- EVAS_GL_MULTISAMPLE_NONE -+ EVAS_GL_MULTISAMPLE_NONE, -+#if defined(EVAS_GL_API_VERSION) && EVAS_GL_API_VERSION >= 2 -+ EVAS_GL_GLES_2_X -+#endif - }; - - // Recreate to current size: Replaces if non-null, and frees existing surface after (OwnPtr). -- m_evasGLSurface = EvasGLSurface::create(m_evasGL.get(), &evasGLConfig, deviceSize()); -+ m_evasGLSurface = EvasGLSurface::create(m_evasGL, &evasGLConfig, deviceSize()); - if (!m_evasGLSurface) - return false; - - Evas_Native_Surface nativeSurface; -- evas_gl_native_surface_get(m_evasGL.get(), m_evasGLSurface->surface(), &nativeSurface); -+ evas_gl_native_surface_get(m_evasGL, m_evasGLSurface->surface(), &nativeSurface); - evas_object_image_native_surface_set(smartData()->image, &nativeSurface); - -- evas_gl_make_current(m_evasGL.get(), m_evasGLSurface->surface(), m_evasGLContext->context()); -+ evas_gl_make_current(m_evasGL, m_evasGLSurface->surface(), m_evasGLContext->context()); - -- Evas_GL_API* gl = evas_gl_api_get(m_evasGL.get()); -+ Evas_GL_API* gl = evas_gl_api_get(m_evasGL); - - WKPoint boundsEnd = WKViewUserViewportToScene(wkView(), WKPointMake(deviceSize().width(), deviceSize().height())); - gl->glViewport(0, 0, boundsEnd.x, boundsEnd.y); -diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.h b/Source/WebKit2/UIProcess/API/efl/EwkView.h -index 1c482cf..68dab87 100644 ---- a/Source/WebKit2/UIProcess/API/efl/EwkView.h -+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.h -@@ -39,6 +39,7 @@ - #endif - - typedef struct _cairo_surface cairo_surface_t; -+typedef struct _Evas_GL Evas_GL; - - namespace WebKit { - class ContextMenuClientEfl; -@@ -241,7 +242,7 @@ private: - Evas_Object* m_evasObject; - RefPtr m_context; - RefPtr m_pageGroup; -- EflUniquePtr m_evasGL; -+ Evas_GL* m_evasGL; - std::unique_ptr m_evasGLContext; - std::unique_ptr m_evasGLSurface; - bool m_pendingSurfaceResize; --- -2.1.3 - diff --git a/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb b/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb deleted file mode 100644 index 068c0d97785..00000000000 --- a/meta-efl/recipes-efl/webkit/webkit-efl_1.11.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -require ${BPN}.inc - -SRC_URI += "\ - file://0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch \ - file://0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch \ - file://0003-FEBlendNEON.h-fix-missing-semicolon.patch \ - file://0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch \ -" -SRC_URI[md5sum] = "90fa970ebf8646319d292c2bb5bff5db" -SRC_URI[sha256sum] = "d8d21e27f4a21cd77c41914548c184ddb98693ba23851aa66c8e51c0be4b90b7" diff --git a/meta-efl/recipes-multimedia/lightmediascanner/lightmediascanner_0.4.4.bb b/meta-efl/recipes-multimedia/lightmediascanner/lightmediascanner_0.4.4.bb deleted file mode 100644 index 4ed3664c03c..00000000000 --- a/meta-efl/recipes-multimedia/lightmediascanner/lightmediascanner_0.4.4.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Lightweight media scanner meant to be used in not-so-powerful devices" -AUTHOR = "ProFUSION" -HOMEPAGE = "http://lms.garage.maemo.org/" -SECTION = "libs/multimedia" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" -DEPENDS = "sqlite3 flac virtual/libiconv" - -PR = "r2" - -SRC_URI = "https://github.com/profusion/lightmediascanner/archive/release_${PV}.tar.gz \ -" -SRC_URI[md5sum] = "0c758d40eb70288a2c714dfb44c35171" -SRC_URI[sha256sum] = "1bbc28fbe5efbc24aa4eac9e43bbb178a1669de1418afee47b0c6898aff53433" - -S = "${WORKDIR}/lightmediascanner-release_${PV}" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis" - -inherit autotools pkgconfig - -do_install_append() { - install -d ${D}/${bindir}/ - install -m 755 ${B}/src/bin/.libs/test ${D}/${bindir}/test-lms -} - -PACKAGES =+ "${PN}-test" - -FILES_${PN}-test = "${bindir}/test-lms" - -FILES_${PN}-dbg += "${libdir}/${PN}/plugins/.debug" -FILES_${PN}-staticdev += "${libdir}/${PN}/plugins/*.a" - -# otherwise fails with ERROR: could not add conversion charset 'UTF-16BE': Invalid argument -RDEPENDS_${PN}-test_append_libc-glibc = " glibc-gconv-utf-16" - -# png.so jpeg.so id3.so are provided also by imlib2-loaders -PRIVATE_LIBS_${PN} = "video-dummy.so png.so jpeg.so id3.so pls.so audio-dummy.so rm.so ogg.so dummy.so m3u.so flac.so asf.so" diff --git a/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb b/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb deleted file mode 100644 index 2b5722b471d..00000000000 --- a/meta-efl/recipes-navigation/mcnavi/mcnavi_0.3.4.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Free GPS navigation for car and outdoor with OpenStreetMap maps" -HOMEPAGE = "http://www.gps-routes.info/index.php?name=Content&pa=showpage&pid=1" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" -DEPENDS = "ecore evas imlib2 gpsd edje edje-native mysql5 intltool-native" - -SRC_URI = "http://www.gps-routes.info/debian/pool/main/m/mcnavi/mcnavi_${PV}.tar.gz" -SRC_URI[md5sum] = "6860cde5c02a9f93c829da4b10e5a226" -SRC_URI[sha256sum] = "ee7f65155e91386175875fc4f72f4bc94e4e9cdb8258112632da94520ef2c349" - -S = "${WORKDIR}/${PN}" - -inherit autotools - -PNBLACKLIST[mcnavi] ?= "BROKEN: latest version 0.3.4 is 3 years old and now broken with more strict ejde_cc from efl-1.13" -# | edje_cc: Error. parse error 0.3.4-r0/mcnavi/data/themes/Default/main.edc:126. invalid state name: 'none'. "default" state must always be first. -# | edje_cc: Error. parse error 0.3.4-r0/mcnavi/data/themes/Default/itinerary.edc:84. invalid state name: 'none'. "default" state must always be first. -# | edje_cc: Error. parse error 0.3.4-r0/mcnavi/data/themes/Default/text.edc:1129. invalid state name: 'none'. "default" state must always be first. -# | edje_cc: Error. parse error 0.3.4-r0/mcnavi/data/themes/Default/fileopen.edc:78. invalid state name: 'off'. "default" state must always be first. diff --git a/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.1.0.bb b/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.1.0.bb deleted file mode 100644 index 6a83ab25bb3..00000000000 --- a/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.1.0.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "read and write exFAT driver for FUSE" -DESCRIPTION = "fuse-exfat is a read and write driver implementing the \ -extended file allocation table as a filesystem in userspace. A mounthelper \ -is provided under the name mount.exfat-fuse. \ -" -HOMEPAGE = "http://code.google.com/p/exfat/" -SECTION = "universe/otherosfs" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRC_URI = "${DEBIAN_MIRROR}/main/f/fuse-exfat/fuse-exfat_${PV}.orig.tar.gz \ -" -DEPENDS = "fuse virtual/libc" -RRECOMMENDS_${PN} = "util-linux-mount" - -inherit scons - -SRC_URI[md5sum] = "b2a23c032661cb1c1da4514e7af33916" -SRC_URI[sha256sum] = "198c520e417e955dc5c08687c278e63eefa56719da4452aa4a605be0327f953e" - -EXTRA_OESCONS = " \ - CCFLAGS='${CCFLAGS} -std=c99' DESTDIR=${D}/${base_sbindir} \ -" - -do_install_prepend() { - install -d ${D}/${base_sbindir} -} diff --git a/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb b/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb new file mode 100644 index 00000000000..99bf2bed411 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb @@ -0,0 +1,21 @@ +SUMMARY = "read and write exFAT driver for FUSE" +DESCRIPTION = "fuse-exfat is a read and write driver implementing the \ +extended file allocation table as a filesystem in userspace. A mounthelper \ +is provided under the name mount.exfat-fuse. \ +" +HOMEPAGE = "http://code.google.com/p/exfat/" +SECTION = "universe/otherosfs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +SRC_URI = "${DEBIAN_MIRROR}/main/f/fuse-exfat/fuse-exfat_${PV}.orig.tar.gz \ +" +DEPENDS = "fuse virtual/libc" +RRECOMMENDS_${PN} = "util-linux-mount" + +inherit autotools pkgconfig + +SRC_URI[md5sum] = "fca71e6598f79d037a3c7c969cb5710c" +SRC_URI[sha256sum] = "f2e06eba5a21c621aac1d6da21b12a5a324fdd1e20f9c8acd357dd463c2355d9" + +S = "${WORKDIR}/${PN}-${PV}" +EXTRA_OECONF += "sbindir=${base_sbindir}" diff --git a/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb b/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb index 42f4c872bdb..f0b58b9673d 100644 --- a/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb +++ b/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb @@ -3,7 +3,6 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7" HOMEPAGE ="http://www.libimobiledevice.org/" -PNBLACKLIST[ifuse] ?= "depends on blacklisted libimobiledevice" DEPENDS = "fuse libimobiledevice" SRC_URI = " \ diff --git a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch new file mode 100644 index 00000000000..30ad1b8ad64 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch @@ -0,0 +1,46 @@ +From a322794f80f2718ae4463669c4b6ab2fbb15ffec Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 5 Apr 2017 17:36:45 +0000 +Subject: [PATCH] Add $(LDFLAGS) to linker cmdline + +Signed-off-by: Khem Raj +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -14,7 +14,7 @@ ZLIB_O := crc32.o deflate.o adler32.o co + CC := gcc + CHECK := cgcc + CHECKFLAGS := -D__CHECK_ENDIAN__ +-CFLAGS := -std=gnu99 ++CFLAGS += -std=gnu99 + CFLAGS += -Wall + CFLAGS += -Os + CFLAGS += -D_FILE_OFFSET_BITS=64 +@@ -28,18 +28,18 @@ $(ZLIB_O): /usr/lib/libz.a + + ifdef S + EXTRA_OBJ := $(ZLIB_O) +-CFLAGS += -static ++LDFLAGS += -static + else +-CFLAGS += -lz ++LDFLAGS += -lz + endif + + mklogfs: $(EXTRA_OBJ) + mklogfs: mkfs.o lib.o btree.o segment.o readwrite.o +- $(CC) $(CFLAGS) -o $@ $^ ++ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) + + logfsck: $(ZLIB_O) + logfsck: fsck.o lib.o journal.o super.o +- $(CC) $(CFLAGS) -o $@ $^ ++ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) + + $(OBJ): kerncompat.h logfs.h logfs_abi.h btree.h + diff --git a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch new file mode 100644 index 00000000000..dbf7ae01630 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch @@ -0,0 +1,135 @@ +From 5a8e26157d9642f022587cc1ca7525213c7a5379 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 18:41:53 -0700 +Subject: [PATCH] btree: Avoid conflicts with libc namespace about setkey() + +This issue is highlighted with musl mainly because the +function signature from stdlib.h does not match the local +static function + +Signed-off-by: Khem Raj +--- + btree.c | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +diff --git a/btree.c b/btree.c +index eddc33b..dd3fef9 100644 +--- a/btree.c ++++ b/btree.c +@@ -123,7 +123,7 @@ static unsigned long bval(struct btree_geo *geo, unsigned long *node, int n) + return node[geo->no_pairs * geo->keylen + n]; + } + +-static void setkey(struct btree_geo *geo, unsigned long *node, ++static void _setkey(struct btree_geo *geo, unsigned long *node, + unsigned long *key, int n) + { + longcpy(bkey(geo, node, n), key, geo->keylen); +@@ -292,7 +292,7 @@ static unsigned long *find_level(struct btree_head *head, struct btree_geo *geo, + /* FIXME: If the right-most key on higher levels is + * always zero, this wouldn't be necessary. */ + i--; +- setkey(geo, node, key, i); ++ _setkey(geo, node, key, i); + } + BUG_ON(i < 0); + node = (unsigned long *)bval(geo, node, i); +@@ -311,7 +311,7 @@ static int btree_grow(struct btree_head *head, struct btree_geo *geo) + return -ENOMEM; + if (head->node) { + fill = getfill(geo, head->node, 0); +- setkey(geo, node, bkey(geo, head->node, fill - 1), 0); ++ _setkey(geo, node, bkey(geo, head->node, fill - 1), 0); + setval(geo, node, (unsigned long)head->node, 0); + } + head->node = node; +@@ -342,16 +342,16 @@ static void steal_l(struct btree_head *head, struct btree_geo *geo, int level, + + for (i = rfill - 1; i >= 0; i--) { + /* Shift entries on the right */ +- setkey(geo, right, bkey(geo, right, i), i + no_entries); ++ _setkey(geo, right, bkey(geo, right, i), i + no_entries); + setval(geo, right, bval(geo, right, i), i + no_entries); + } + for (i = 0; i < no_entries; i++) { + /* Move some entries to the right */ +- setkey(geo, right, bkey(geo, left, lfill - no_entries + i), i); ++ _setkey(geo, right, bkey(geo, left, lfill - no_entries + i), i); + setval(geo, right, bval(geo, left, lfill - no_entries + i), i); + } + /* Set parent key */ +- setkey(geo, parent, bkey(geo, left, lfill - no_entries - 1), lpos); ++ _setkey(geo, parent, bkey(geo, left, lfill - no_entries - 1), lpos); + for (i = lfill - no_entries; i < lfill; i++) + clearpair(geo, left, i); + } +@@ -366,14 +366,14 @@ static void steal_r(struct btree_head *head, struct btree_geo *geo, int level, + + for (i = 0; i < no_entries; i++) { + /* Move some entries to the left */ +- setkey(geo, left, bkey(geo, right, i), lfill + i); ++ _setkey(geo, left, bkey(geo, right, i), lfill + i); + setval(geo, left, bval(geo, right, i), lfill + i); + } + /* Set parent key */ +- setkey(geo, parent, bkey(geo, right, no_entries - 1), lpos); ++ _setkey(geo, parent, bkey(geo, right, no_entries - 1), lpos); + /* Shift entries on the right */ + for ( ; i < rfill; i++) { +- setkey(geo, right, bkey(geo, right, i), i - no_entries); ++ _setkey(geo, right, bkey(geo, right, i), i - no_entries); + setval(geo, right, bval(geo, right, i), i - no_entries); + } + for (i = rfill - no_entries; i < rfill; i++) +@@ -399,14 +399,14 @@ static int split(struct btree_head *head, struct btree_geo *geo, + return err; + } + for (i = 0; i < fill / 2; i++) { +- setkey(geo, new, bkey(geo, node, i), i); ++ _setkey(geo, new, bkey(geo, node, i), i); + setval(geo, new, bval(geo, node, i), i); +- setkey(geo, node, bkey(geo, node, i + fill / 2), i); ++ _setkey(geo, node, bkey(geo, node, i + fill / 2), i); + setval(geo, node, bval(geo, node, i + fill / 2), i); + clearpair(geo, node, i + fill / 2); + } + if (fill & 1) { +- setkey(geo, node, bkey(geo, node, fill - 1), i); ++ _setkey(geo, node, bkey(geo, node, fill - 1), i); + setval(geo, node, bval(geo, node, fill - 1), i); + clearpair(geo, node, fill - 1); + } +@@ -487,10 +487,10 @@ retry: + + /* shift and insert */ + for (i = fill; i > pos; i--) { +- setkey(geo, node, bkey(geo, node, i - 1), i); ++ _setkey(geo, node, bkey(geo, node, i - 1), i); + setval(geo, node, bval(geo, node, i - 1), i); + } +- setkey(geo, node, key, pos); ++ _setkey(geo, node, key, pos); + setval(geo, node, val, pos); + + return 0; +@@ -513,7 +513,7 @@ static void merge(struct btree_head *head, struct btree_geo *geo, int level, + + for (i = 0; i < rfill; i++) { + /* Move all entries to the left */ +- setkey(geo, left, bkey(geo, right, i), lfill + i); ++ _setkey(geo, left, bkey(geo, right, i), lfill + i); + setval(geo, left, bval(geo, right, i), lfill + i); + } + /* Exchange left and right child in parent */ +@@ -615,7 +615,7 @@ static void *btree_remove_level(struct btree_head *head, struct btree_geo *geo, + + /* remove and shift */ + for (i = pos; i < fill - 1; i++) { +- setkey(geo, node, bkey(geo, node, i + 1), i); ++ _setkey(geo, node, bkey(geo, node, i + 1), i); + setval(geo, node, bval(geo, node, i + 1), i); + } + clearpair(geo, node, fill - 1); +-- +2.13.2 + diff --git a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb index 32ebec83d62..1b4d97d7624 100644 --- a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb +++ b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb @@ -11,7 +11,10 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://fsck.c;md5=3859dc73da97909ff1d0125e88a27e02" DEPENDS = "zlib" -SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git" +SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git \ + file://0001-Add-LDFLAGS-to-linker-cmdline.patch \ + file://0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch \ + " SRCREV = "45b72c81ce3c6fa17ca19bafc207ea93e76312f4" S = "${WORKDIR}/git" diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch new file mode 100644 index 00000000000..7b8eec7cba8 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/files/0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch @@ -0,0 +1,52 @@ +From 575591caf1e8972f765885679b76787ef92de77b Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 24 Apr 2017 04:24:10 -0400 +Subject: [PATCH] libntfs-3g/Makefile.am: fix install failed while host dir not exist + +While cross compiling, if the dir of "$(rootlibdir)" and "$(libdir)" +(such as "/usr/lib64") do not exist on host system, the do_instal failed. +----------------------- +make[3]: Entering directory `tmp/work/core2-64-wrs-linux/ntfs-3g-ntfsprogs/2017.3.23-r0/build/libntfs-3g' +if [ ! "/usr/lib64" -ef "/usr/lib64" ]; then \ + mv -f "tmp/work/core2-64-wrs-linux/ntfs-3g-ntfsprogs/2017.3.23-r0/image//usr/lib64"/libntfs-3g.so* \ + "tmp/work/core2-64-wrs-linux/ntfs-3g-ntfsprogs/2017.3.23-r0/image//usr/lib64"; \ +fi +mv:...are the same file +----------------------- + +Use `=' rather than `-ef' to compare them, the cross compile does not +care about host dir. + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + libntfs-3g/Makefile.am | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libntfs-3g/Makefile.am b/libntfs-3g/Makefile.am +index d6b150e..806109d 100644 +--- a/libntfs-3g/Makefile.am ++++ b/libntfs-3g/Makefile.am +@@ -59,15 +59,15 @@ endif + # And create ldscript or symbolic link from /usr + install-exec-hook: install-rootlibLTLIBRARIES + if INSTALL_LIBRARY +- if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \ ++ if [ "$(rootlibdir)" != "$(libdir)" ]; then \ + $(MV) -f "$(DESTDIR)/$(libdir)"/libntfs-3g.so* "$(DESTDIR)/$(rootlibdir)"; \ + fi + if GENERATE_LDSCRIPT +- if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \ ++ if [ "$(rootlibdir)" != "$(libdir)" ]; then \ + $(install_sh_PROGRAM) "libntfs-3g.script.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \ + fi + else +- if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \ ++ if [ "$(rootlibdir)" != "$(libdir)" ]; then \ + $(LN_S) "$(rootlibdir)/libntfs-3g.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \ + fi + endif +-- +2.8.1 + diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2013.1.13.bb b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2013.1.13.bb deleted file mode 100644 index 6957ea92bda..00000000000 --- a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2013.1.13.bb +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION = "The NTFS-3G driver is an open source, freely available NTFS driver for Linux with read and write support." -HOMEPAGE = "http://www.ntfs-3g.org/" -DEPENDS = "fuse libgcrypt" -PROVIDES = "ntfsprogs ntfs-3g" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" - -SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz" -S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}" - -SRC_URI[md5sum] = "2d6fb47ddf62b51733227126fe9227fe" -SRC_URI[sha256sum] = "4b383f0074a3ab7683339d1f18222b107aaeb4983db119292c43c2b275cefb27" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= "" -PACKAGECONFIG[uuid] = "--with-uuid,--without-uuid,util-linux" - -# required or it calls ldconfig at install step -EXTRA_OEMAKE = "LDCONFIG=echo" - -PACKAGES =+ "ntfs-3g ntfsprogs libntfs-3g" - -FILES_ntfs-3g = "${base_sbindir}/*.ntfs-3g ${bindir}/ntfs-3g* ${base_sbindir}/mount.ntfs" -RDEPENDS_ntfs-3g += "fuse" -RRECOMMENDS_ntfs-3g = "util-linux-mount" - -FILES_ntfsprogs = "${base_sbindir}/* ${bindir}/* ${sbindir}/*" -FILES_libntfs-3g = "${libdir}/*${SOLIBS}" - -do_install_append() { - # Standard mount will execute the program /sbin/mount.TYPE - # when called. Add the symbolic to let mount could find ntfs. - ln -sf mount.ntfs-3g ${D}/${base_sbindir}/mount.ntfs -} - -# Satisfy the -dev runtime dependency -ALLOW_EMPTY_${PN} = "1" diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb new file mode 100644 index 00000000000..9e77766e620 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "The NTFS-3G driver is an open source, freely available NTFS driver for Linux with read and write support." +HOMEPAGE = "http://www.ntfs-3g.org/" +DEPENDS = "fuse libgcrypt" +PROVIDES = "ntfsprogs ntfs-3g" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" + +SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz \ + file://0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch \ +" +S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}" +SRC_URI[md5sum] = "d97474ae1954f772c6d2fa386a6f462c" +SRC_URI[sha256sum] = "3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[uuid] = "--with-uuid,--without-uuid,util-linux" + +# required or it calls ldconfig at install step +EXTRA_OEMAKE = "LDCONFIG=echo" + +PACKAGES =+ "ntfs-3g ntfsprogs libntfs-3g" + +FILES_ntfs-3g = "${base_sbindir}/*.ntfs-3g ${bindir}/ntfs-3g* ${base_sbindir}/mount.ntfs" +RDEPENDS_ntfs-3g += "fuse" +RRECOMMENDS_ntfs-3g = "util-linux-mount" + +FILES_ntfsprogs = "${base_sbindir}/* ${bindir}/* ${sbindir}/*" +FILES_libntfs-3g = "${libdir}/*${SOLIBS}" + +do_install_append() { + # Standard mount will execute the program /sbin/mount.TYPE + # when called. Add the symbolic to let mount could find ntfs. + ln -sf mount.ntfs-3g ${D}/${base_sbindir}/mount.ntfs + rmdir ${D}${libdir}/ntfs-3g +} + +# Satisfy the -dev runtime dependency +ALLOW_EMPTY_${PN} = "1" diff --git a/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb b/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb new file mode 100644 index 00000000000..f85977fd598 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "SIMPLE-MTPFS is a FUSE based filsystem for MTP devices connected via USB" +HOMEPAGE = "https://github.com/phatina/simple-mtpfs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +DEPENDS = "fuse libmtp" + +inherit autotools pkgconfig + +SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master" +SRCREV = "a7ab64c7e4d7aca155cbc7ce9412aaf68ef6e404" + +S = "${WORKDIR}/git" diff --git a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch new file mode 100644 index 00000000000..371ab898211 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch @@ -0,0 +1,42 @@ +From 7a524d49b3d4459280f18942df2980603400ec52 Mon Sep 17 00:00:00 2001 +From: Bian Naimeng +Date: Fri, 19 Jun 2015 11:54:44 +0900 +Subject: [PATCH] Using PKG_CHECK_MODULES to found headers and libraries of + smbclient + +Signed-off-by: Bian Naimeng +--- + configure.in | 5 +++++ + src/Makefile.am | 3 +++ + 2 files changed, 8 insertions(+) + +diff --git a/configure.ac b/configure.ac +index ce21aef..ecd7119 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -125,6 +125,11 @@ AC_CHECK_LIB(smbclient, smbc_setOptionUserData, + )] + ) + ++dnl ***************************************************************** ++dnl *** Check libsmbclient by pkgconfig to get cflags and ldflags *** ++dnl ***************************************************************** ++PKG_CHECK_MODULES(SMBCLIENT, smbclient) ++ + dnl ****************** + dnl *** Final step *** + dnl ****************** +diff --git a/src/Makefile.am b/src/Makefile.am +index 41519d8..9fc97e9 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -16,3 +16,6 @@ smbnetfs_SOURCES = \ + event.c event.h \ + reconfigure.c reconfigure.h \ + main.c ++ ++smbnetfs_CFLAGS=${SMBCLIENT_CFLAGS} ++smbnetfs_LDFLAGS=${SMBCLIENT_LDFLAGS} +-- +1.8.4.2 + diff --git a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch index c80fed1879e..152507cf316 100644 --- a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch +++ b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch @@ -1,9 +1,9 @@ Index: git/configure.in =================================================================== ---- git.orig/configure.in 2014-06-18 16:06:16.040721349 +0000 -+++ git/configure.in 2014-07-18 07:49:17.085552256 +0000 +--- git.orig/configure.ac 2014-06-18 16:06:16.040721349 +0000 ++++ git/configure.ac 2014-07-18 07:49:17.085552256 +0000 @@ -1,5 +1,5 @@ - AC_INIT([SMBNetFS],[0.5.3а]) + AC_INIT([SMBNetFS],[0.6.0]) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_HEADERS([src/config.h]) diff --git a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb index a0eddbc7900..0fcfd6ae75e 100644 --- a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb +++ b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb @@ -9,17 +9,21 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" HOMEPAGE ="http://sourceforge.net/projects/smbnetfs" DEPENDS = "fuse samba" +DEPENDS_append_libc-musl = " libexecinfo" inherit autotools gitpkgv pkgconfig PKGV = "${GITPKGVTAG}" -SRCREV = "ace1c519d45fe488b9b7e6cc77a2bcadb6c83464" +SRCREV = "21c63ed60202e5540613d4c822a57a0b81764499" SRC_URI = "git://smbnetfs.git.sourceforge.net/gitroot/smbnetfs/smbnetfs;branch=master \ - file://configure.patch" + file://configure.patch \ + file://Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch" PACKAGECONFIG ??= "" PACKAGECONFIG[gnome-keyring] = "--with-gnome-keyring=yes,--with-gnome-keyring=no,libgnome-keyring" S = "${WORKDIR}/git" + +LDFLAGS_append_libc-musl = " -lexecinfo" diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch b/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch new file mode 100644 index 00000000000..c434a03f0f3 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch @@ -0,0 +1,32 @@ +From e3cd445a4ee44a16faa646d7b642d02eea62b1f8 Mon Sep 17 00:00:00 2001 +From: Zoltan Kuscsik +Date: Fri, 1 Jul 2016 09:30:31 +0200 +Subject: [PATCH] Makefile: fix path for sshfs.1 + +Fix source path when build directory differs +from the source dir. + +Upstream-Status: Accepted + +https://github.com/libfuse/sshfs/pull/24 + +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index f003bae..3d8f9cb 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -24,7 +24,7 @@ sshfs.1: sshfs.1.in + $(AM_V_GEN)sed \ + -e 's,__IDMAP_DEFAULT__,$(IDMAP_DEFAULT),g' \ + -e 's,__UNMOUNT_COMMAND__,$(UNMOUNT_COMMAND),g' \ +- sshfs.1.tmp || exit 1; \ ++ <$(srcdir)/sshfs.1.in >sshfs.1.tmp || exit 1; \ + mv sshfs.1.tmp sshfs.1 + + if SSH_NODELAY_SO +-- +1.9.1 + diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.5.bb b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.5.bb deleted file mode 100644 index 459d1575e73..00000000000 --- a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.5.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE" -AUTHOR = "Miklos Szeredi " -HOMEPAGE = "http://fuse.sourceforge.net/sshfs.html" -SECTION = "console/network" -LICENSE = "GPLv2" -DEPENDS = "glib-2.0 fuse" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "${SOURCEFORGE_MIRROR}/fuse/${BP}.tar.gz" -S = "${WORKDIR}/${P}" - -inherit autotools pkgconfig - -FILES_${PN} += "${libdir}/sshnodelay.so" - -SRC_URI[md5sum] = "17494910db8383a366b1301e5f5148a9" -SRC_URI[sha256sum] = "e9171452e5d0150b9c6a2158fd2e2dcefb5d5d03ba4d208949e00a3a46c6e63e" diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb new file mode 100644 index 00000000000..64ccdace181 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb @@ -0,0 +1,16 @@ +SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE" +AUTHOR = "Miklos Szeredi " +HOMEPAGE = "http://fuse.sourceforge.net/sshfs.html" +SECTION = "console/network" +LICENSE = "GPLv2" +DEPENDS = "glib-2.0 fuse" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/libfuse/sshfs;tag=b2fa7593586b141298e6159f40f521d2b0f4f894 \ + file://0001-Makefile-fix-path-for-sshfs.1.patch" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +FILES_${PN} += "${libdir}/sshnodelay.so" diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch b/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch new file mode 100644 index 00000000000..bf363ca1b7e --- /dev/null +++ b/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch @@ -0,0 +1,32 @@ +From 449cec34c123b86b792627553c6ec7471d2ee7ed Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 30 Jun 2017 14:46:51 +0800 +Subject: [PATCH] support cross compiling + +Do not override OE CMAKE variables + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -10,9 +10,9 @@ IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + + # Select flags. +-SET(CMAKE_C_FLAGS "-pipe -W -Wall -DFORTIFY_SOURCE=2") ++SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -W -Wall -DFORTIFY_SOURCE=2") + SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") +-SET(CMAKE_C_FLAGS_RELEASE "-O2") ++SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2") + SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -DDEBUG") + + if (UNIX AND APPLE) +-- +2.8.1 + diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch b/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch new file mode 100644 index 00000000000..8f991cd3f7b --- /dev/null +++ b/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch @@ -0,0 +1,62 @@ +From 10411fa8658621822ae394160daffaced4a4cd7f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 23:07:29 -0700 +Subject: [PATCH] unionfs: Define IOCPARM_LEN if undefined + +musl does not have sysctl.h which defines this +for glibc + +Signed-off-by: Khem Raj +--- + src/unionfs.c | 8 -------- + src/unionfs.h | 15 +++++++++++++++ + 2 files changed, 15 insertions(+), 8 deletions(-) + +diff --git a/src/unionfs.c b/src/unionfs.c +index a34d34e..51684a7 100644 +--- a/src/unionfs.c ++++ b/src/unionfs.c +@@ -21,14 +21,6 @@ + #include "opts.h" + #include "usyslog.h" + +-#ifndef _IOC_SIZE +-#ifdef IOCPARM_LEN +-#define _IOC_SIZE(x) IOCPARM_LEN(x) +-#else +-#error "No mechanism for determining ioctl length found." +-#endif +-#endif +- + static struct fuse_opt unionfs_opts[] = { + FUSE_OPT_KEY("chroot=%s,", KEY_CHROOT), + FUSE_OPT_KEY("cow", KEY_COW), +diff --git a/src/unionfs.h b/src/unionfs.h +index 8f5e0bf..b02de5a 100644 +--- a/src/unionfs.h ++++ b/src/unionfs.h +@@ -17,6 +17,21 @@ + #define FUSE_META_FILE ".fuse_hidden" + #define FUSE_META_LENGTH 12 + ++#ifndef IOCPARM_MASK ++#define IOCPARM_MASK 0x1FFF ++#endif ++#ifndef IOCPARM_LEN ++#define IOCPARM_LEN(a) (((a) >> 16) & IOCPARM_MASK) ++#endif ++ ++#ifndef _IOC_SIZE ++#ifdef IOCPARM_LEN ++#define _IOC_SIZE(x) IOCPARM_LEN(x) ++#else ++#error "No mechanism for determining ioctl length found." ++#endif ++#endif ++ + // file access protection mask + #define S_PROT_MASK (S_ISUID| S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) + +-- +2.13.2 + diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_0.26.bb b/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_0.26.bb deleted file mode 100644 index 38ded9f68a8..00000000000 --- a/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_0.26.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "A FUSE based implemention of unionfs" -HOMEPAGE = "http://podgorny.cz/moin/UnionFsFuse" -SECTION = "console/network" -LICENSE = "BSD-3-Clause" -DEPENDS = "fuse" -LIC_FILES_CHKSUM = "file://src/unionfs.c;beginline=3;endline=8;md5=30fa8de70fd8abab00b483a1b7943a32" - -SRC_URI = "http://podgorny.cz/unionfs-fuse/releases/${BP}.tar.xz" - -SRC_URI[md5sum] = "689c636484756f6f7a728ef354cbeac2" -SRC_URI[sha256sum] = "8d5c9dcb51ecb9a9b03890e16d17e37d602b0c1f23ed6a9ddec2b0f719c9f662" - -do_install() { - oe_runmake install DESTDIR=${D} PREFIX=${exec_prefix} -} diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb b/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb new file mode 100644 index 00000000000..6bedf16b090 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "A FUSE based implemention of unionfs" +HOMEPAGE = "https://github.com/rpodgorny/unionfs-fuse" +SECTION = "console/network" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://src/unionfs.c;beginline=3;endline=8;md5=30fa8de70fd8abab00b483a1b7943a32 \ + file://LICENSE;md5=7e5a37fce17307066eec6b23546da3b3 \ +" + +SRC_URI = "git://github.com/rpodgorny/${BPN}.git;branch=master \ + file://0001-support-cross-compiling.patch \ + file://0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch \ + " +SRCREV = "c8d23a9a75f1a62988593671839e8a168a79f3e5" + +DEPENDS = "fuse" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig diff --git a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch new file mode 100644 index 00000000000..df202c8555b --- /dev/null +++ b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch @@ -0,0 +1,30 @@ +From 848717da4a28d33f8aa8f889377e61e6b1b8ae67 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 18:29:52 -0700 +Subject: [PATCH] define loff_t if not already defined + +Helps to build with musl + +Signed-off-by: Khem Raj +--- + yaffs_guts.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/yaffs_guts.h b/yaffs_guts.h +index 6bcf12d..4af17ce 100644 +--- a/yaffs_guts.h ++++ b/yaffs_guts.h +@@ -18,6 +18,10 @@ + + #include "yportenv.h" + ++#ifndef loff_t ++#define loff_t off_t ++#endif ++ + #define YAFFS_OK 1 + #define YAFFS_FAIL 0 + +-- +2.13.2 + diff --git a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/makefile-add-ldflags.patch b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/makefile-add-ldflags.patch new file mode 100644 index 00000000000..bb21899eb33 --- /dev/null +++ b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/makefile-add-ldflags.patch @@ -0,0 +1,21 @@ +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/utils/Makefile b/utils/Makefile +index 710ebbf..6259893 100644 +--- a/utils/Makefile ++++ b/utils/Makefile +@@ -57,10 +57,10 @@ $(COMMONOBJS) $(MKYAFFSIMAGEOBJS) $(MKYAFFS2IMAGEOBJS) : %.o: %.c + $(CC) -c $(CFLAGS) $< -o $@ + + mkyaffsimage: $(MKYAFFSIMAGEOBJS) $(COMMONOBJS) +- $(CC) -o $@ $^ ++ $(CC) $(LDFLAGS) -o $@ $^ + + mkyaffs2image: $(MKYAFFS2IMAGEOBJS) $(COMMONOBJS) +- $(CC) -o $@ $^ ++ $(CC) $(LDFLAGS) -o $@ $^ + + + clean: diff --git a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb index 0e1e460b645..67c926b2c99 100644 --- a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb +++ b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb @@ -12,11 +12,16 @@ PV = "0.0+git${SRCPV}" DEPENDS = "mtd-utils" # Source is the HEAD of master branch at the time of writing this recipe -SRC_URI = "git://www.aleph1.co.uk/yaffs2;protocol=git;branch=master" +SRC_URI = "git://www.aleph1.co.uk/yaffs2;protocol=git;branch=master \ + file://makefile-add-ldflags.patch \ + file://0001-define-loff_t-if-not-already-defined.patch \ + " + SRCREV = "bc76682d93955cfb33051beb503ad9f8a5450578" S = "${WORKDIR}/git" CFLAGS_append = " -I.. -DCONFIG_YAFFS_UTIL -DCONFIG_YAFFS_DEFINES_TYPES" +EXTRA_OEMAKE = "-e MAKEFLAGS=" do_compile() { cd utils && oe_runmake diff --git a/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch b/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch new file mode 100644 index 00000000000..577dbb5b295 --- /dev/null +++ b/meta-filesystems/recipes-support/fuse/files/0001-fuse-fix-the-return-value-of-help-option.patch @@ -0,0 +1,28 @@ +From 2182c423c6cd235c052e6c420203f24ec9bcd6ab Mon Sep 17 00:00:00 2001 +From: Lu Chong +Date: Wed, 30 Oct 2013 15:27:00 +0800 +Subject: [PATCH] fuse: fix the return value of "--help" option + +Upstream-Status: Pending + +Signed-off-by: Lu Chong +--- + util/fusermount.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util/fusermount.c b/util/fusermount.c +index b2e87d9..70d7c75 100644 +--- a/util/fusermount.c ++++ b/util/fusermount.c +@@ -1168,7 +1168,7 @@ static void usage(void) + " -q quiet\n" + " -z lazy unmount\n", + progname); +- exit(1); ++ exit(0); + } + + static void show_version(void) +-- +1.7.9.5 + diff --git a/meta-filesystems/recipes-support/fuse/files/fuse.conf b/meta-filesystems/recipes-support/fuse/files/fuse.conf new file mode 100644 index 00000000000..a517c488f34 --- /dev/null +++ b/meta-filesystems/recipes-support/fuse/files/fuse.conf @@ -0,0 +1 @@ +fuse diff --git a/meta-filesystems/recipes-support/fuse/fuse_2.9.3.bb b/meta-filesystems/recipes-support/fuse/fuse_2.9.3.bb deleted file mode 100644 index 60fea873b5f..00000000000 --- a/meta-filesystems/recipes-support/fuse/fuse_2.9.3.bb +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "Implementation of a fully functional filesystem in a userspace program" -DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \ - programs to export a virtual filesystem to the Linux kernel. FUSE \ - also aims to provide a secure method for non privileged users to \ - create and mount their own filesystem implementations. \ - " -HOMEPAGE = "http://fuse.sf.net" -SECTION = "libs" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "${SOURCEFORGE_MIRROR}/fuse/fuse-${PV}.tar.gz \ - file://gold-unversioned-symbol.patch \ - file://aarch64.patch \ -" -SRC_URI[md5sum] = "33cae22ca50311446400daf8a6255c6a" -SRC_URI[sha256sum] = "0beb83eaf2c5e50730fc553406ef124d77bc02c64854631bdfc86bfd6437391c" - -inherit autotools pkgconfig - -DEPENDS = "gettext-native" - -PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg" - -RRECOMMENDS_${PN} = "kernel-module-fuse" - -FILES_${PN} += "${libdir}/libfuse.so.*" -FILES_${PN}-dev += "${libdir}/libfuse*.la" - -FILES_libulockmgr = "${libdir}/libulockmgr.so.*" -FILES_libulockmgr-dev += "${libdir}/libulock*.la" -FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*" - -# Forbid auto-renaming to libfuse-utils -FILES_fuse-utils = "${bindir} ${base_sbindir}" -FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug" -DEBIAN_NOAUTONAME_fuse-utils = "1" -DEBIAN_NOAUTONAME_fuse-utils-dbg = "1" - -do_install_append() { - rm -rf ${D}${base_prefix}/dev -} diff --git a/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb b/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb new file mode 100644 index 00000000000..202d4c3eb8b --- /dev/null +++ b/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb @@ -0,0 +1,69 @@ +SUMMARY = "Implementation of a fully functional filesystem in a userspace program" +DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \ + programs to export a virtual filesystem to the Linux kernel. FUSE \ + also aims to provide a secure method for non privileged users to \ + create and mount their own filesystem implementations. \ + " +HOMEPAGE = "https://github.com/libfuse/libfuse" +SECTION = "libs" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "https://github.com/libfuse/libfuse/releases/download/${BP}/${BP}.tar.gz \ + file://gold-unversioned-symbol.patch \ + file://aarch64.patch \ + file://0001-fuse-fix-the-return-value-of-help-option.patch \ + file://fuse.conf \ +" +SRC_URI[md5sum] = "9bd4ce8184745fd3d000ca2692adacdb" +SRC_URI[sha256sum] = "832432d1ad4f833c20e13b57cf40ce5277a9d33e483205fc63c78111b3358874" + +inherit autotools pkgconfig update-rc.d systemd + +INITSCRIPT_NAME = "fuse" +INITSCRIPT_PARAMS = "start 3 S . stop 20 0 6 ." + +SYSTEMD_SERVICE_${PN} = "" + +DEPENDS = "gettext-native" + +PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg" + +RRECOMMENDS_${PN}_class-target = "kernel-module-fuse libulockmgr fuse-utils" + +FILES_${PN} += "${libdir}/libfuse.so.*" +FILES_${PN}-dev += "${libdir}/libfuse*.la" + +FILES_libulockmgr = "${libdir}/libulockmgr.so.*" +FILES_libulockmgr-dev += "${libdir}/libulock*.la" +FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*" + +# Forbid auto-renaming to libfuse-utils +FILES_fuse-utils = "${bindir} ${base_sbindir}" +FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug" +DEBIAN_NOAUTONAME_fuse-utils = "1" +DEBIAN_NOAUTONAME_fuse-utils-dbg = "1" + +do_configure_prepend() { + # Make this explicit so overriding base_sbindir propagates properly. + export MOUNT_FUSE_PATH="${base_sbindir}" +} + +do_install_append() { + rm -rf ${D}${base_prefix}/dev + + # systemd class remove the sysv_initddir only if systemd_system_unitdir + # contains anything, but it's not needed if sysvinit is not in DISTRO_FEATURES + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then + rm -rf ${D}${sysconfdir}/init.d/ + fi + + # Install systemd related configuration file + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/modules-load.d + install -m 0644 ${WORKDIR}/fuse.conf ${D}${sysconfdir}/modules-load.d + fi +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb b/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb index 5618f28a68b..dc2c1064970 100644 --- a/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb +++ b/meta-filesystems/recipes-support/physfs/physfs_2.0.3.bb @@ -6,6 +6,8 @@ DEPENDS = "readline zlib" inherit cmake +PE = "1" + SRC_URI = "http://icculus.org/${BPN}/downloads/${BP}.tar.bz2" SRC_URI[md5sum] = "c2c727a8a8deb623b521b52d0080f613" SRC_URI[sha256sum] = "ca862097c0fb451f2cacd286194d071289342c107b6fe69079c079883ff66b69" diff --git a/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch b/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch new file mode 100644 index 00000000000..9efea804b68 --- /dev/null +++ b/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch @@ -0,0 +1,39 @@ +From bb8801fb21ac8d73e3b1a11a8555aaf822182a51 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 5 Sep 2017 10:36:52 -0700 +Subject: [PATCH] libau: Define STRIP weakly + +STRIP can be set on environment to use cross version of strip utility +hardcoding to strip is not working in cross environment + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + libau/Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libau/Makefile b/libau/Makefile +index 81520ac..c25eef2 100644 +--- a/libau/Makefile ++++ b/libau/Makefile +@@ -25,6 +25,7 @@ LibSoHdr = libau.h rdu.h + LibSoExport = $(addsuffix .exp, $(basename ${LibSoObj})) + LibSoExportErr = $(addsuffix .err, ${LibSoExport}) + LibSoVerScript = verscript ++STRIP ?= strip + + all: ${LibSo} + +@@ -77,7 +78,7 @@ ${LibSo}.${LibSoMajor}.${LibSoMinor}: ${LibSoObj} + ${CC} --shared -Wl,-soname,${LibSo}.${LibSoMajor} \ + -Wl,--version-script,${LibSoVerScript} \ + ${LDFLAGS} -o $@ $^ ${LDLIBS} +- strip -R EXP $@ ++ ${STRIP} -R EXP $@ + # readelf --syms --use-dynamic libau.so + + install_ulib: File = ${LibSo}.${LibSoMajor}.${LibSoMinor} +-- +2.14.1 + diff --git a/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch b/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch index 48727e6e228..fe2a6a576a0 100644 --- a/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch +++ b/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs-util-don-t-strip-executables.patch @@ -27,8 +27,8 @@ index 2f905ad..e0c6dcd 100644 ver_test: ver ./ver --${Bin}: LDFLAGS += -static -s -+${Bin}: LDFLAGS += -static +-${Bin}: override LDFLAGS += -static -s ++${Bin}: override LDFLAGS += -static ${Bin}: LDLIBS = -L. -lautil ${BinObj}: %.o: %.c ${LibUtilHdr} ${LibUtil} diff --git a/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs_type.h b/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs_type.h deleted file mode 100644 index cb439baa4cf..00000000000 --- a/meta-filesystems/recipes-utils/aufs-util/aufs-util/aufs_type.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (C) 2005-2013 Junjiro R. Okajima - * - * This program, aufs is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __AUFS_TYPE_H__ -#define __AUFS_TYPE_H__ - -#define AUFS_NAME "aufs" - -#include -#include - -#include - -#define AUFS_VERSION "3.8-20130325" - -/* todo? move this to linux-2.6.19/include/magic.h */ -#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's') - -/* ---------------------------------------------------------------------- */ - -#ifdef CONFIG_AUFS_BRANCH_MAX_127 -typedef int8_t aufs_bindex_t; -#define AUFS_BRANCH_MAX 127 -#else -typedef int16_t aufs_bindex_t; -#ifdef CONFIG_AUFS_BRANCH_MAX_511 -#define AUFS_BRANCH_MAX 511 -#elif defined(CONFIG_AUFS_BRANCH_MAX_1023) -#define AUFS_BRANCH_MAX 1023 -#elif defined(CONFIG_AUFS_BRANCH_MAX_32767) -#define AUFS_BRANCH_MAX 32767 -#endif -#endif - - -/* ---------------------------------------------------------------------- */ - -#define AUFS_FSTYPE AUFS_NAME - -#define AUFS_ROOT_INO 2 -#define AUFS_FIRST_INO 11 - -#define AUFS_WH_PFX ".wh." -#define AUFS_WH_PFX_LEN ((int)sizeof(AUFS_WH_PFX) - 1) -#define AUFS_WH_TMP_LEN 4 -/* a limit for rmdir/rename a dir */ -#define AUFS_MAX_NAMELEN (NAME_MAX \ - - AUFS_WH_PFX_LEN * 2 /* doubly whiteouted */\ - - 1 /* dot */\ - - AUFS_WH_TMP_LEN) /* hex */ -#define AUFS_XINO_FNAME "." AUFS_NAME ".xino" -#define AUFS_XINO_DEFPATH "/tmp/" AUFS_XINO_FNAME -#define AUFS_XINO_TRUNC_INIT 64 /* blocks */ -#define AUFS_XINO_TRUNC_STEP 4 /* blocks */ -#define AUFS_DIRWH_DEF 3 -#define AUFS_RDCACHE_DEF 10 /* seconds */ -#define AUFS_RDCACHE_MAX 3600 /* seconds */ -#define AUFS_RDBLK_DEF 512 /* bytes */ -#define AUFS_RDHASH_DEF 32 -#define AUFS_WKQ_NAME AUFS_NAME "d" -#define AUFS_MFS_DEF_SEC 30 /* seconds */ -#define AUFS_MFS_MAX_SEC 3600 /* seconds */ -#define AUFS_PLINK_WARN 100 /* number of plinks */ - -/* pseudo-link maintenace under /proc */ -#define AUFS_PLINK_MAINT_NAME "plink_maint" -#define AUFS_PLINK_MAINT_DIR "fs/" AUFS_NAME -#define AUFS_PLINK_MAINT_PATH AUFS_PLINK_MAINT_DIR "/" AUFS_PLINK_MAINT_NAME - -#define AUFS_DIROPQ_NAME AUFS_WH_PFX ".opq" /* whiteouted doubly */ -#define AUFS_WH_DIROPQ AUFS_WH_PFX AUFS_DIROPQ_NAME - -#define AUFS_BASE_NAME AUFS_WH_PFX AUFS_NAME -#define AUFS_PLINKDIR_NAME AUFS_WH_PFX "plnk" -#define AUFS_ORPHDIR_NAME AUFS_WH_PFX "orph" - -/* doubly whiteouted */ -#define AUFS_WH_BASE AUFS_WH_PFX AUFS_BASE_NAME -#define AUFS_WH_PLINKDIR AUFS_WH_PFX AUFS_PLINKDIR_NAME -#define AUFS_WH_ORPHDIR AUFS_WH_PFX AUFS_ORPHDIR_NAME - -/* branch permissions and attributes */ -#define AUFS_BRPERM_RW "rw" -#define AUFS_BRPERM_RO "ro" -#define AUFS_BRPERM_RR "rr" -#define AUFS_BRRATTR_WH "wh" -#define AUFS_BRWATTR_NLWH "nolwh" - -/* ---------------------------------------------------------------------- */ - -/* ioctl */ -enum { - /* readdir in userspace */ - AuCtl_RDU, - AuCtl_RDU_INO, - - /* pathconf wrapper */ - AuCtl_WBR_FD, - - /* busy inode */ - AuCtl_IBUSY -}; - -/* borrowed from linux/include/linux/kernel.h */ -#ifndef ALIGN -#define ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a)-1) -#define __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask)) -#endif - -/* borrowed from linux/include/linux/compiler-gcc3.h */ -#ifndef __aligned -#define __aligned(x) __attribute__((aligned(x))) -#endif - - -struct au_rdu_cookie { - uint64_t h_pos; - int16_t bindex; - uint8_t flags; - uint8_t pad; - uint32_t generation; -} __aligned(8); - -struct au_rdu_ent { - uint64_t ino; - int16_t bindex; - uint8_t type; - uint8_t nlen; - uint8_t wh; - char name[0]; -} __aligned(8); - -static __inline__ int au_rdu_len(int nlen) -{ - /* include the terminating NULL */ - return ALIGN(sizeof(struct au_rdu_ent) + nlen + 1, - sizeof(uint64_t)); -} - -union au_rdu_ent_ul { - struct au_rdu_ent *e; - uint64_t ul; -}; - -enum { - AufsCtlRduV_SZ, - AufsCtlRduV_End -}; - -struct aufs_rdu { - /* input */ - union { - uint64_t sz; /* AuCtl_RDU */ - uint64_t nent; /* AuCtl_RDU_INO */ - }; - union au_rdu_ent_ul ent; - uint16_t verify[AufsCtlRduV_End]; - - /* input/output */ - uint32_t blk; - - /* output */ - union au_rdu_ent_ul tail; - /* number of entries which were added in a single call */ - uint64_t rent; - uint8_t full; - uint8_t shwh; - - struct au_rdu_cookie cookie; -} __aligned(8); - -/* ---------------------------------------------------------------------- */ - -struct aufs_wbr_fd { - uint32_t oflags; - int16_t brid; -} __aligned(8); - -/* ---------------------------------------------------------------------- */ - -struct aufs_ibusy { - uint64_t ino, h_ino; - int16_t bindex; -} __aligned(8); - -/* ---------------------------------------------------------------------- */ - -#define AuCtlType 'A' -#define AUFS_CTL_RDU _IOWR(AuCtlType, AuCtl_RDU, struct aufs_rdu) -#define AUFS_CTL_RDU_INO _IOWR(AuCtlType, AuCtl_RDU_INO, struct aufs_rdu) -#define AUFS_CTL_WBR_FD _IOW(AuCtlType, AuCtl_WBR_FD, \ - struct aufs_wbr_fd) -#define AUFS_CTL_IBUSY _IOWR(AuCtlType, AuCtl_IBUSY, struct aufs_ibusy) - -#endif /* __AUFS_TYPE_H__ */ diff --git a/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb b/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb index db3cd5965da..2e855e3135d 100644 --- a/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb +++ b/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb @@ -4,28 +4,40 @@ HOMEPAGE = "http://aufs.sourceforge.net/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a" -DEPENDS = "aufs-util-native" +DEPENDS = "coreutils-native aufs-util-native" DEPENDS_class-native = "" -SRCREV = "f29056fe396d56fc2a06a96312feabaebbe14c59" -SRC_URI = "git://git.code.sf.net/p/aufs/aufs-util;protocol=git;branch=aufs3.0 \ +SRCREV = "89afb1806c3d2eed8db2666ae254b77518ae3ceb" +SRC_URI = "git://git.code.sf.net/p/aufs/aufs-util;protocol=git;branch=aufs4.4 \ + https://raw.githubusercontent.com/sfjro/aufs4-linux/aufs4.4/include/uapi/linux/aufs_type.h;name=aufs_type \ file://aufs-util-don-t-strip-executables.patch \ file://aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch \ - file://aufs_type.h \ + file://0001-libau-Define-STRIP-weakly.patch \ " +SRC_URI[aufs_type.md5sum] = "f7b4a255dcb55fe7b0967f5f59b44f19" +SRC_URI[aufs_type.sha256sum] = "85bc8e4c1a94a7d526c382e4b047b4256cab8c4a65fc0396291707ad9a327a18" -PV = "3.0+git${SRCPV}" +PV = "4.4+git${SRCPV}" S = "${WORKDIR}/git" +export HOSTCC = "${BUILD_CC}" +do_configure_prepend() { + # Replace sbin,bin paths with bitbake environment + sed -i -e 's;install_sbin: Tgt = ${DESTDIR}/sbin;install_sbin: Tgt = ${DESTDIR}/${base_sbindir};' \ + -e 's;install_ubin: Tgt = ${DESTDIR}/usr/sbin;install_sbin: Tgt = ${DESTDIR}/${bindir};' \ + ${S}/Makefile +} + do_configure_append () { install -d ${S}/include/linux/ cp ${WORKDIR}/aufs_type.h ${S}/include/linux/ + sed -i -e 's;__user;;' ${S}/include/linux/aufs_type.h } do_configure_append_class-target () { for i in ver c2sh c2tmac; do - cp ${STAGING_BINDIR_NATIVE}/aufs-util-${PV}/$i ./ + cp ${STAGING_BINDIR_NATIVE}/aufs-util-${PV}/$i ${B} done } @@ -34,7 +46,7 @@ do_compile () { } do_compile_class-native () { - oe_runmake tools CPPFLAGS="-I${S}/include -I${S}/libau" + oe_runmake tools CPPFLAGS="-I${S}/include -I${S}/libau" CC="${BUILD_CC}" } do_install () { diff --git a/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.0.1.bb b/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.0.1.bb deleted file mode 100644 index a5a314fb602..00000000000 --- a/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.0.1.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "utilities to create, check, label and dump exFAT filesystem" -DESCRIPTION = "Utilities to manage extended file allocation table filesystem. \ -This package provides tools to create, check and label the filesystem. It \ -contains \ - - dumpexfat to dump properties of the filesystem \ - - exfatfsck / fsck.exfat to report errors found on a exFAT filesystem \ - - exfatlabel to label a exFAT filesystem \ - - mkexfatfs / mkfs.exfat to create a exFAT filesystem. \ -" -HOMEPAGE = "http://code.google.com/p/exfat/" -SECTION = "universe/otherosfs" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SRC_URI = "${DEBIAN_MIRROR}/main/e/exfat-utils/exfat-utils_${PV}.orig.tar.gz \ -" -DEPENDS = "virtual/libc" - -inherit scons - -SRC_URI[md5sum] = "e592130829d0bf61fa5e3cd1c759d329" -SRC_URI[sha256sum] = "eeacedca1878065dc3886674ae39cd51149c37bd7d6d7e9325c971a1d1acdab3" - -EXTRA_OESCONS = " \ - DESTDIR=${D}/${base_sbindir} \ -" - -do_install_prepend() { - install -d ${D}/${base_sbindir} -} diff --git a/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb b/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb new file mode 100644 index 00000000000..440f336184d --- /dev/null +++ b/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb @@ -0,0 +1,22 @@ +SUMMARY = "utilities to create, check, label and dump exFAT filesystem" +DESCRIPTION = "Utilities to manage extended file allocation table filesystem. \ +This package provides tools to create, check and label the filesystem. It \ +contains \ + - dumpexfat to dump properties of the filesystem \ + - exfatfsck / fsck.exfat to report errors found on a exFAT filesystem \ + - exfatlabel to label a exFAT filesystem \ + - mkexfatfs / mkfs.exfat to create a exFAT filesystem. \ +" +HOMEPAGE = "http://code.google.com/p/exfat/" +SECTION = "universe/otherosfs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz" + +DEPENDS = "virtual/libc" + +inherit pkgconfig autotools + +SRC_URI[md5sum] = "f4e564450aa8159e26dde2869563d242" +SRC_URI[sha256sum] = "80d3b3f21242d60d36a38a4ddb05cb7cc3a7d4eef5793e8314814937b938fcea" diff --git a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch new file mode 100644 index 00000000000..9e561cb111a --- /dev/null +++ b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch @@ -0,0 +1,37 @@ +From 0731eefd389e01419f78a115e1363ed0c28cfd3a Mon Sep 17 00:00:00 2001 +From: "Yong, Jonathan" +Date: Thu, 30 Mar 2017 08:03:37 +0000 +Subject: [PATCH] Fix mkfs out of tree builds + +Libraries are built in builddir, not srcdir, fix Makefile.am +accordingly. + +Signed-off-by: Yong, Jonathan +Signed-off-by: Jaegeuk Kim + +The patch was imported from the f2fs-tools repo +(git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git) +commit ID 0731eefd389e01419f78a115e1363ed0c28cfd3a. + +Upstream-Status: Accepted, expected to be included in 1.9.0. + +Signed-off-by: Yong, Jonathan + +--- + mkfs/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mkfs/Makefile.am b/mkfs/Makefile.am +index 162a0cf..0ea8b49 100644 +--- a/mkfs/Makefile.am ++++ b/mkfs/Makefile.am +@@ -10,5 +10,5 @@ lib_LTLIBRARIES = libf2fs_format.la + libf2fs_format_la_SOURCES = f2fs_format_main.c f2fs_format.c f2fs_format_utils.c + libf2fs_format_la_CFLAGS = -DWITH_BLKDISCARD + libf2fs_format_la_CPPFLAGS = -I$(top_srcdir)/include +-libf2fs_format_la_LDFLAGS = -luuid -L$(top_srcdir)/lib -lf2fs \ ++libf2fs_format_la_LDFLAGS = -luuid -L$(top_builddir)/lib -lf2fs \ + -version-info $(FMT_CURRENT):$(FMT_REVISION):$(FMT_AGE) +-- +2.10.2 + diff --git a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.4.0.bb b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.4.0.bb deleted file mode 100644 index 1a558e715b1..00000000000 --- a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.4.0.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Tools for Flash-Friendly File System (F2FS)" -HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3" - -# to provide libuuid -DEPENDS = "util-linux" - -SRCREV = "baac4b4e6f41ceb02511da49dd3707674f3fea21" -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \ - file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch" -S = "${WORKDIR}/git" - -inherit pkgconfig autotools - -BBCLASSEXTEND = "native" diff --git a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb new file mode 100644 index 00000000000..691cb6ea0eb --- /dev/null +++ b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Tools for Flash-Friendly File System (F2FS)" +HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3" + +# to provide libuuid +DEPENDS = "util-linux" + +SRCREV = "1e7aedf99b85d16f94d1d8ad2fcf846403bb2174" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \ + file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch \ + file://0002-Fix-mkfs-out-of-tree-builds.patch" +S = "${WORKDIR}/git" + +inherit pkgconfig autotools + +BBCLASSEXTEND = "native" diff --git a/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch b/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch new file mode 100644 index 00000000000..355e93a37b3 --- /dev/null +++ b/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch @@ -0,0 +1,12 @@ +Fix compilation with GCC6 + +--- a/src/device-info.c 2013-12-09 14:59:27.000000000 +0100 ++++ b/src/device-info.c 2017-03-13 07:06:25.506666680 +0100 +@@ -3,6 +3,7 @@ + * contains code excerpts from udisks v1.0.4 + ************************************************************************** */ + ++#include + #include "device-info.h" + + static char * diff --git a/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch b/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch new file mode 100644 index 00000000000..f014a0f5378 --- /dev/null +++ b/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch @@ -0,0 +1,32 @@ +From 80b087193698632e525b90d45b4a49e61e343e1c Mon Sep 17 00:00:00 2001 +From: Krzysztof Kozlowski +Date: Thu, 13 Jul 2017 21:30:35 +0200 +Subject: [PATCH] etc: Makefile.am: Use systemd_unitdir instead of libdir + +Proper directory for installing systemd services is systemd_unitdir, not +libdir. + +Signed-off-by: Krzysztof Kozlowski +--- + etc/Makefile.am | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/etc/Makefile.am b/etc/Makefile.am +index 9b6e7522c20f..6d663241a72f 100644 +--- a/etc/Makefile.am ++++ b/etc/Makefile.am +@@ -16,8 +16,8 @@ if ADD_SYSTEMD + test -f $(DESTDIR)/$(sysconfdir)/conf.d/devmon || $(INSTALL_DATA) \ + $(srcdir)/systemd/devmon \ + $(DESTDIR)/$(sysconfdir)/conf.d/devmon +- test -d $(DESTDIR)/$(libdir)/systemd/system || \ +- mkdir -p -- $(DESTDIR)/$(libdir)/systemd/system ++ test -d $(DESTDIR)/$(systemd_unitdir)/system || \ ++ mkdir -p -- $(DESTDIR)/$(systemd_unitdir)/system + $(INSTALL_DATA) $(srcdir)/systemd/devmon@.service \ +- $(DESTDIR)/$(libdir)/systemd/system/devmon@.service ++ $(DESTDIR)/$(systemd_unitdir)/system/devmon@.service + endif +-- +2.11.0 + diff --git a/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb b/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb new file mode 100644 index 00000000000..60f84f8f9c6 --- /dev/null +++ b/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb @@ -0,0 +1,28 @@ +SUMMARY = "A command line Linux program which mounts and unmounts removable devices" +HOMEPAGE = "http://ignorantguru.github.io/udevil/" + +DEPENDS = "glib-2.0 \ + glib-2.0-native \ + intltool-native \ + udev \ +" +RDEPENDS_${PN} = "udev bash" + +LICENSE = "GPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit autotools systemd + +SRC_URI = "https://github.com/IgnorantGuru/udevil/raw/pkg/${PV}/udevil-${PV}.tar.xz \ + file://0001-udevil-0.4.3-fix-compile-with-gcc6.patch \ + file://0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch \ +" + +SRC_URI[md5sum] = "dc1c489b603a0500a04dc7e1805ac1d9" +SRC_URI[sha256sum] = "ce8c51fd4d589cda7be56e75b42188deeb258c66fc911a9b3a70a3945c157739" + +PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" +PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" + +SYSTEMD_SERVICE_${PN} = "devmon@.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch b/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch new file mode 100644 index 00000000000..660468d7311 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch @@ -0,0 +1,28 @@ +From 8cf48da5f645dd7bbb1ccbeab5bb0964f40f17f7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 23:18:47 -0700 +Subject: [PATCH 1/5] Include fcntl.h for O_EXCL + +Fix +error: 'O_CREAT' undeclared (first use in this function) + +Signed-off-by: Khem Raj +--- + invutil/invidx.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/invutil/invidx.c b/invutil/invidx.c +index 67efdf7..325a9a1 100644 +--- a/invutil/invidx.c ++++ b/invutil/invidx.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #include "types.h" + #include "mlog.h" +-- +2.13.2 + diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch b/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch new file mode 100644 index 00000000000..1fe1bde8bdf --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch @@ -0,0 +1,28 @@ +From f1e822d546e08cc195eaeb38ca172bd0c3800aa9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 9 Sep 2017 07:48:48 -0700 +Subject: [PATCH] xfsdump: Use c99 defined int64_t instead of __int64_t + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + common/hsmapi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/common/hsmapi.c b/common/hsmapi.c +index 6054773..0709dbe 100644 +--- a/common/hsmapi.c ++++ b/common/hsmapi.c +@@ -585,7 +585,7 @@ HsmModifyExtentMap( + struct getbmapx *bmap) + { + dmf_f_ctxt_t *dmf_f_ctxtp = (dmf_f_ctxt_t *)contextp; +- __int64_t length; ++ int64_t length; + + if (bmap[0].bmv_entries <= 0) { + return 1; /* caller must already be at EOF */ +-- +2.14.1 + diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch b/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch new file mode 100644 index 00000000000..ed3e0a9e982 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch @@ -0,0 +1,122 @@ +From f76d2142905f0e5bd830d5d576c235af1171c6ac Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 23:23:31 -0700 +Subject: [PATCH 2/5] Replace __uint32_t with uint32_t + +Signed-off-by: Khem Raj +--- + common/content_inode.h | 4 ++-- + doc/xfsdump.html | 8 ++++---- + inventory/inv_oref.h | 2 +- + inventory/inv_priv.h | 4 ++-- + inventory/inventory.h | 2 +- + 5 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/common/content_inode.h b/common/content_inode.h +index a69a9a0..6936e05 100644 +--- a/common/content_inode.h ++++ b/common/content_inode.h +@@ -191,10 +191,10 @@ typedef struct bstat bstat_t; + * and using two 16bit values to hold new 32bit projid was choosen + * to retain compatibility with "old" filesystems). + */ +-static inline __uint32_t ++static inline uint32_t + bstat_projid(struct bstat *bs) + { +- return (__uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo; ++ return (uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo; + } + + +diff --git a/doc/xfsdump.html b/doc/xfsdump.html +index 9c6722e..f85128f 100644 +--- a/doc/xfsdump.html ++++ b/doc/xfsdump.html +@@ -1935,7 +1935,7 @@ The files are constructed like so: +
+ typedef struct invt_counter {
+     INVT_COUNTER_FIELDS
+-        __uint32_t    ic_vernum;/* on disk version number for posterity */\
++        uint32_t    ic_vernum;/* on disk version number for posterity */\
+         u_int         ic_curnum;/* number of sessions/invindices recorded \
+                                    so far */                              \
+         u_int         ic_maxnum;/* maximum number of sessions/inv_indices \
+@@ -1975,7 +1975,7 @@ typedef struct invt_fstab {
+ 
+ typedef struct invt_counter {
+     INVT_COUNTER_FIELDS
+-        __uint32_t    ic_vernum;/* on disk version number for posterity */\
++        uint32_t    ic_vernum;/* on disk version number for posterity */\
+         u_int         ic_curnum;/* number of sessions/invindices recorded \
+                                    so far */                              \
+         u_int         ic_maxnum;/* maximum number of sessions/inv_indices \
+@@ -2012,7 +2012,7 @@ typedef struct invt_entry {
+ 
+ typedef struct invt_sescounter {
+     INVT_COUNTER_FIELDS
+-        __uint32_t    ic_vernum;/* on disk version number for posterity */\
++        uint32_t    ic_vernum;/* on disk version number for posterity */\
+         u_int         ic_curnum;/* number of sessions/invindices recorded \
+                                    so far */                              \
+         u_int         ic_maxnum;/* maximum number of sessions/inv_indices \
+@@ -2034,7 +2034,7 @@ typedef struct invt_seshdr {
+     off64_t    sh_streams_off; /* offset to start of the set of
+                                   stream hdrs */
+     time_t     sh_time;        /* time of the dump */
+-    __uint32_t sh_flag;        /* for misc flags */
++    uint32_t sh_flag;        /* for misc flags */
+     u_char     sh_level;       /* dump level */
+     u_char     sh_pruned;      /* pruned by invutil flag */
+     char       sh_padding[22];
+diff --git a/inventory/inv_oref.h b/inventory/inv_oref.h
+index e16684d..38303a4 100644
+--- a/inventory/inv_oref.h
++++ b/inventory/inv_oref.h
+@@ -46,7 +46,7 @@
+ 
+ 
+ 
+-typedef __uint32_t	invt_objtype_t;
++typedef uint32_t	invt_objtype_t;
+ 
+ #define INVT_LOCKED		0x0001
+ 
+diff --git a/inventory/inv_priv.h b/inventory/inv_priv.h
+index 1690271..364ffbc 100644
+--- a/inventory/inv_priv.h
++++ b/inventory/inv_priv.h
+@@ -120,7 +120,7 @@ typedef struct invt_seshdr {
+ 	off64_t		sh_streams_off; /* offset to start of the set of 
+ 					   stream hdrs */
+ 	time32_t	sh_time;        /* time of the dump */
+-	__uint32_t	sh_flag;        /* for misc flags */
++	uint32_t	sh_flag;        /* for misc flags */
+ 	u_char		sh_level;       /* dump level */
+ 	u_char		sh_pruned;      /* pruned by invutil flag */
+ 	char		sh_padding[22];
+@@ -184,7 +184,7 @@ typedef struct invt_entry {
+ 
+ /* Cheap Inheritance, and an attempt to avoid a nested type */
+ #define INVT_COUNTER_FIELDS  \
+-        __uint32_t    ic_vernum;/* on disk version number for posterity */\
++        uint32_t    ic_vernum;/* on disk version number for posterity */\
+ 	uint	      ic_curnum;/* number of sessions/invindices recorded \
+ 				   so far */				  \
+ 	uint	      ic_maxnum;/* maximum number of sessions/inv_indices \
+diff --git a/inventory/inventory.h b/inventory/inventory.h
+index 134b9ba..c1d7403 100644
+--- a/inventory/inventory.h
++++ b/inventory/inventory.h
+@@ -43,7 +43,7 @@
+ /* length of labels, mntpts, etc */
+ #define INV_STRLEN              GLOBAL_HDR_STRING_SZ
+ 
+-typedef __uint32_t		inv_version_t;
++typedef uint32_t		inv_version_t;
+ 
+ /* This is the general inventory version. 
+  */
+-- 
+2.13.2
+
diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch b/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch
new file mode 100644
index 00000000000..31303d8fa14
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch
@@ -0,0 +1,40 @@
+From fcc0cf15a309947103a0695b8a1f4865b820eb5c Mon Sep 17 00:00:00 2001
+From: Khem Raj 
+Date: Thu, 13 Jul 2017 23:26:03 -0700
+Subject: [PATCH 3/5] replace use of SIGCLD with SIGCHLD
+
+Signed-off-by: Khem Raj 
+---
+ common/main.c    | 2 +-
+ doc/xfsdump.html | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/common/main.c b/common/main.c
+index 3848499..faa66ee 100644
+--- a/common/main.c
++++ b/common/main.c
+@@ -2225,7 +2225,7 @@ static sig_printmap_t sig_printmap[ ] = {
+ 	{SIGTERM,	"SIGTERM"},
+ 	{SIGUSR1,	"SIGUSR1"},
+ 	{SIGUSR2,	"SIGUSR2"},
+-	{SIGCLD,	"SIGCLD"},
++	{SIGCHLD,	"SIGCHLD"},
+ 	{SIGPWR,	"SIGPWR"},
+ 	{SIGURG,	"SIGURG"},
+ 	{SIGPOLL,	"SIGPOLL"},
+diff --git a/doc/xfsdump.html b/doc/xfsdump.html
+index f85128f..d96f037 100644
+--- a/doc/xfsdump.html
++++ b/doc/xfsdump.html
+@@ -334,7 +334,7 @@ the ring buffer. It ignores signals and does not terminate until it
+ receives a RING_OP_DIE message. It then exits 0.
+ 

+ The main process sleeps waiting for any of its children to die +-(ie. waiting for a SIGCLD). All children that it cares about (stream ++(ie. waiting for a SIGCHLD). All children that it cares about (stream + managers and ring buffer slaves) are registered through the child + manager abstraction. When a child dies wait status and other info is + stored with its entry in the child manager. main() ignores the deaths +-- +2.13.2 + diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch b/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch new file mode 100644 index 00000000000..62ea15b8621 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch @@ -0,0 +1,29 @@ +From 98c7d96f0f2c6eddf60aa4a1a08d7d4467645930 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 23:28:10 -0700 +Subject: [PATCH 4/5] include limit.h for PATH_MAX + +fixed +var.c:42:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'RAND_MAX'? + char path[PATH_MAX];` + +Signed-off-by: Khem Raj +--- + dump/var.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dump/var.c b/dump/var.c +index 645caab..8156d37 100644 +--- a/dump/var.c ++++ b/dump/var.c +@@ -16,6 +16,7 @@ + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include + #include + #include + #include +-- +2.13.2 + diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch b/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch new file mode 100644 index 00000000000..fb6e467c934 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch @@ -0,0 +1,27 @@ +From d95f494de1aa8123c74170ffebaed8ea89649da2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 23:33:44 -0700 +Subject: [PATCH 5/5] include sys/types.h for u_int32_t in attr/attributes.h + +error: unknown type name 'u_int32_t' + +Signed-off-by: Khem Raj +--- + restore/content.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/restore/content.c b/restore/content.c +index 7c4a81f..1d5de1b 100644 +--- a/restore/content.c ++++ b/restore/content.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.13.2 + diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/remove-install-as-user.patch b/meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch similarity index 100% rename from meta-filesystems/recipes-utils/xfsprogs/files/remove-install-as-user.patch rename to meta-filesystems/recipes-utils/xfsdump/files/remove-install-as-user.patch diff --git a/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb new file mode 100644 index 00000000000..0ac991b2388 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb @@ -0,0 +1,44 @@ +SUMMARY = "XFS Filesystem Dump Utility" +DESCRIPTION = "The xfsdump package contains xfsdump, xfsrestore and a \ + number of other utilities for administering XFS filesystems.\ + xfsdump examines files in a filesystem, determines which \ + need to be backed up, and copies those files to a \ + specified disk, tape or other storage medium." +HOMEPAGE = "http://oss.sgi.com/projects/xfs" +SECTION = "base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc" +DEPENDS = "xfsprogs attr" + +SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \ + file://remove-install-as-user.patch \ + file://0001-Include-fcntl.h-for-O_EXCL.patch \ + file://0002-Replace-__uint32_t-with-uint32_t.patch \ + file://0003-replace-use-of-SIGCLD-with-SIGCHLD.patch \ + file://0004-include-limit.h-for-PATH_MAX.patch \ + file://0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch \ + file://0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch \ + " +SRC_URI[md5sum] = "c6e91f2ac8b76c796db2d236f5ca5947" +SRC_URI[sha256sum] = "99e6d4df257ebc6d29ca9e970ca20672c2ea03481ad949bc68f98de3e4d56dce" + +inherit autotools-brokensep + +PARALLEL_MAKE = "" +PACKAGECONFIG ??= "" +PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext" + +CFLAGS += "-D_FILE_OFFSET_BITS=64" + +EXTRA_OEMAKE += "'LIBTOOL=${HOST_SYS}-libtool' V=1" + +do_configure () { + export DEBUG="-DNDEBUG" + oe_runconf +} + +do_install () { + export DIST_ROOT=${D} + oe_runmake install + oe_runmake install-dev +} diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/0001-xfs-remove-double-underscore-integer-types.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0001-xfs-remove-double-underscore-integer-types.patch new file mode 100644 index 00000000000..a47c4870743 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/0001-xfs-remove-double-underscore-integer-types.patch @@ -0,0 +1,2082 @@ +From 4a492e72515509ee702286a42afe7d8f89d37636 Mon Sep 17 00:00:00 2001 +From: "Darrick J. Wong" +Date: Mon, 31 Jul 2017 15:08:10 -0500 +Subject: [PATCH] xfs: remove double-underscore integer types + +Source kernel commit: c8ce540db5f67d254aafb14b5d76422c62a906df + +This is a purely mechanical patch that removes the private +__{u,}int{8,16,32,64}_t typedefs in favor of using the system +{u,}int{8,16,32,64}_t typedefs. This is the sed script used to perform +the transformation and fix the resulting whitespace and indentation +errors: + +s/typedef\t__uint8_t/typedef __uint8_t\t/g +s/typedef\t__uint/typedef __uint/g +s/typedef\t__int\([0-9]*\)_t/typedef int\1_t\t/g +s/__uint8_t\t/__uint8_t\t\t/g +s/__uint/uint/g +s/__int\([0-9]*\)_t\t/__int\1_t\t\t/g +s/__int/int/g +/^typedef.*int[0-9]*_t;$/d + +Signed-off-by: Darrick J. Wong +Reviewed-by: Christoph Hellwig +Signed-off-by: Eric Sandeen +--- + libxfs/libxfs_priv.h | 1 + + libxfs/xfs_alloc_btree.c | 20 ++-- + libxfs/xfs_attr_remote.c | 8 +- + libxfs/xfs_attr_sf.h | 10 +- + libxfs/xfs_bit.h | 24 ++--- + libxfs/xfs_bmap_btree.c | 8 +- + libxfs/xfs_btree.c | 22 ++-- + libxfs/xfs_btree.h | 18 ++-- + libxfs/xfs_cksum.h | 16 +-- + libxfs/xfs_da_btree.c | 2 +- + libxfs/xfs_da_btree.h | 8 +- + libxfs/xfs_da_format.c | 28 ++--- + libxfs/xfs_da_format.h | 64 +++++------ + libxfs/xfs_dir2.h | 8 +- + libxfs/xfs_dir2_leaf.c | 12 +-- + libxfs/xfs_dir2_priv.h | 2 +- + libxfs/xfs_dir2_sf.c | 4 +- + libxfs/xfs_format.h | 112 +++++++++---------- + libxfs/xfs_fs.h | 12 +-- + libxfs/xfs_ialloc.c | 6 +- + libxfs/xfs_ialloc_btree.c | 4 +- + libxfs/xfs_inode_buf.c | 2 +- + libxfs/xfs_inode_buf.h | 28 ++--- + libxfs/xfs_log_format.h | 256 ++++++++++++++++++++++---------------------- + libxfs/xfs_quota_defs.h | 4 +- + libxfs/xfs_refcount_btree.c | 8 +- + libxfs/xfs_rmap.c | 8 +- + libxfs/xfs_rmap.h | 8 +- + libxfs/xfs_rmap_btree.c | 30 +++--- + libxfs/xfs_rtbitmap.c | 2 +- + libxfs/xfs_sb.c | 4 +- + libxfs/xfs_types.h | 46 ++++---- + 32 files changed, 393 insertions(+), 392 deletions(-) + +diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h +index 0b4c4890..b3cc7e53 100644 +--- a/libxfs/libxfs_priv.h ++++ b/libxfs/libxfs_priv.h +@@ -504,5 +504,6 @@ bool xfs_log_check_lsn(struct xfs_mount *, xfs_lsn_t); + #define XFS_STATS_INC_OFF(mp, off) + #define XFS_STATS_ADD_OFF(mp, off, val) + ++typedef unsigned char u8; + + #endif /* __LIBXFS_INTERNAL_XFS_H__ */ +diff --git a/libxfs/xfs_alloc_btree.c b/libxfs/xfs_alloc_btree.c +index e11d89a3..8e77e6e3 100644 +--- a/libxfs/xfs_alloc_btree.c ++++ b/libxfs/xfs_alloc_btree.c +@@ -251,7 +251,7 @@ xfs_allocbt_init_ptr_from_cur( + ptr->s = agf->agf_roots[cur->bc_btnum]; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_bnobt_key_diff( + struct xfs_btree_cur *cur, + union xfs_btree_key *key) +@@ -259,42 +259,42 @@ xfs_bnobt_key_diff( + xfs_alloc_rec_incore_t *rec = &cur->bc_rec.a; + xfs_alloc_key_t *kp = &key->alloc; + +- return (__int64_t)be32_to_cpu(kp->ar_startblock) - rec->ar_startblock; ++ return (int64_t)be32_to_cpu(kp->ar_startblock) - rec->ar_startblock; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_cntbt_key_diff( + struct xfs_btree_cur *cur, + union xfs_btree_key *key) + { + xfs_alloc_rec_incore_t *rec = &cur->bc_rec.a; + xfs_alloc_key_t *kp = &key->alloc; +- __int64_t diff; ++ int64_t diff; + +- diff = (__int64_t)be32_to_cpu(kp->ar_blockcount) - rec->ar_blockcount; ++ diff = (int64_t)be32_to_cpu(kp->ar_blockcount) - rec->ar_blockcount; + if (diff) + return diff; + +- return (__int64_t)be32_to_cpu(kp->ar_startblock) - rec->ar_startblock; ++ return (int64_t)be32_to_cpu(kp->ar_startblock) - rec->ar_startblock; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_bnobt_diff_two_keys( + struct xfs_btree_cur *cur, + union xfs_btree_key *k1, + union xfs_btree_key *k2) + { +- return (__int64_t)be32_to_cpu(k1->alloc.ar_startblock) - ++ return (int64_t)be32_to_cpu(k1->alloc.ar_startblock) - + be32_to_cpu(k2->alloc.ar_startblock); + } + +-STATIC __int64_t ++STATIC int64_t + xfs_cntbt_diff_two_keys( + struct xfs_btree_cur *cur, + union xfs_btree_key *k1, + union xfs_btree_key *k2) + { +- __int64_t diff; ++ int64_t diff; + + diff = be32_to_cpu(k1->alloc.ar_blockcount) - + be32_to_cpu(k2->alloc.ar_blockcount); +diff --git a/libxfs/xfs_attr_remote.c b/libxfs/xfs_attr_remote.c +index abe17052..1f25e363 100644 +--- a/libxfs/xfs_attr_remote.c ++++ b/libxfs/xfs_attr_remote.c +@@ -248,7 +248,7 @@ xfs_attr_rmtval_copyout( + xfs_ino_t ino, + int *offset, + int *valuelen, +- __uint8_t **dst) ++ uint8_t **dst) + { + char *src = bp->b_addr; + xfs_daddr_t bno = bp->b_bn; +@@ -296,7 +296,7 @@ xfs_attr_rmtval_copyin( + xfs_ino_t ino, + int *offset, + int *valuelen, +- __uint8_t **src) ++ uint8_t **src) + { + char *dst = bp->b_addr; + xfs_daddr_t bno = bp->b_bn; +@@ -350,7 +350,7 @@ xfs_attr_rmtval_get( + struct xfs_mount *mp = args->dp->i_mount; + struct xfs_buf *bp; + xfs_dablk_t lblkno = args->rmtblkno; +- __uint8_t *dst = args->value; ++ uint8_t *dst = args->value; + int valuelen; + int nmap; + int error; +@@ -416,7 +416,7 @@ xfs_attr_rmtval_set( + struct xfs_bmbt_irec map; + xfs_dablk_t lblkno; + xfs_fileoff_t lfileoff = 0; +- __uint8_t *src = args->value; ++ uint8_t *src = args->value; + int blkcnt; + int valuelen; + int nmap; +diff --git a/libxfs/xfs_attr_sf.h b/libxfs/xfs_attr_sf.h +index 90928bbe..afd684ae 100644 +--- a/libxfs/xfs_attr_sf.h ++++ b/libxfs/xfs_attr_sf.h +@@ -31,10 +31,10 @@ typedef struct xfs_attr_sf_entry xfs_attr_sf_entry_t; + * We generate this then sort it, attr_list() must return things in hash-order. + */ + typedef struct xfs_attr_sf_sort { +- __uint8_t entno; /* entry number in original list */ +- __uint8_t namelen; /* length of name value (no null) */ +- __uint8_t valuelen; /* length of value */ +- __uint8_t flags; /* flags bits (see xfs_attr_leaf.h) */ ++ uint8_t entno; /* entry number in original list */ ++ uint8_t namelen; /* length of name value (no null) */ ++ uint8_t valuelen; /* length of value */ ++ uint8_t flags; /* flags bits (see xfs_attr_leaf.h) */ + xfs_dahash_t hash; /* this entry's hash value */ + unsigned char *name; /* name value, pointer into buffer */ + } xfs_attr_sf_sort_t; +@@ -42,7 +42,7 @@ typedef struct xfs_attr_sf_sort { + #define XFS_ATTR_SF_ENTSIZE_BYNAME(nlen,vlen) /* space name/value uses */ \ + (((int)sizeof(xfs_attr_sf_entry_t)-1 + (nlen)+(vlen))) + #define XFS_ATTR_SF_ENTSIZE_MAX /* max space for name&value */ \ +- ((1 << (NBBY*(int)sizeof(__uint8_t))) - 1) ++ ((1 << (NBBY*(int)sizeof(uint8_t))) - 1) + #define XFS_ATTR_SF_ENTSIZE(sfep) /* space an entry uses */ \ + ((int)sizeof(xfs_attr_sf_entry_t)-1 + (sfep)->namelen+(sfep)->valuelen) + #define XFS_ATTR_SF_NEXTENTRY(sfep) /* next entry in struct */ \ +diff --git a/libxfs/xfs_bit.h b/libxfs/xfs_bit.h +index e1649c0d..61c6b202 100644 +--- a/libxfs/xfs_bit.h ++++ b/libxfs/xfs_bit.h +@@ -25,47 +25,47 @@ + /* + * masks with n high/low bits set, 64-bit values + */ +-static inline __uint64_t xfs_mask64hi(int n) ++static inline uint64_t xfs_mask64hi(int n) + { +- return (__uint64_t)-1 << (64 - (n)); ++ return (uint64_t)-1 << (64 - (n)); + } +-static inline __uint32_t xfs_mask32lo(int n) ++static inline uint32_t xfs_mask32lo(int n) + { +- return ((__uint32_t)1 << (n)) - 1; ++ return ((uint32_t)1 << (n)) - 1; + } +-static inline __uint64_t xfs_mask64lo(int n) ++static inline uint64_t xfs_mask64lo(int n) + { +- return ((__uint64_t)1 << (n)) - 1; ++ return ((uint64_t)1 << (n)) - 1; + } + + /* Get high bit set out of 32-bit argument, -1 if none set */ +-static inline int xfs_highbit32(__uint32_t v) ++static inline int xfs_highbit32(uint32_t v) + { + return fls(v) - 1; + } + + /* Get high bit set out of 64-bit argument, -1 if none set */ +-static inline int xfs_highbit64(__uint64_t v) ++static inline int xfs_highbit64(uint64_t v) + { + return fls64(v) - 1; + } + + /* Get low bit set out of 32-bit argument, -1 if none set */ +-static inline int xfs_lowbit32(__uint32_t v) ++static inline int xfs_lowbit32(uint32_t v) + { + return ffs(v) - 1; + } + + /* Get low bit set out of 64-bit argument, -1 if none set */ +-static inline int xfs_lowbit64(__uint64_t v) ++static inline int xfs_lowbit64(uint64_t v) + { +- __uint32_t w = (__uint32_t)v; ++ uint32_t w = (uint32_t)v; + int n = 0; + + if (w) { /* lower bits */ + n = ffs(w); + } else { /* upper bits */ +- w = (__uint32_t)(v >> 32); ++ w = (uint32_t)(v >> 32); + if (w) { + n = ffs(w); + if (n) +diff --git a/libxfs/xfs_bmap_btree.c b/libxfs/xfs_bmap_btree.c +index c48cbec1..9ee40d8b 100644 +--- a/libxfs/xfs_bmap_btree.c ++++ b/libxfs/xfs_bmap_btree.c +@@ -91,8 +91,8 @@ xfs_bmdr_to_bmbt( + */ + STATIC void + __xfs_bmbt_get_all( +- __uint64_t l0, +- __uint64_t l1, ++ uint64_t l0, ++ uint64_t l1, + xfs_bmbt_irec_t *s) + { + int ext_flag; +@@ -585,12 +585,12 @@ xfs_bmbt_init_ptr_from_cur( + ptr->l = 0; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_bmbt_key_diff( + struct xfs_btree_cur *cur, + union xfs_btree_key *key) + { +- return (__int64_t)be64_to_cpu(key->bmbt.br_startoff) - ++ return (int64_t)be64_to_cpu(key->bmbt.br_startoff) - + cur->bc_rec.b.br_startoff; + } + +diff --git a/libxfs/xfs_btree.c b/libxfs/xfs_btree.c +index 3d293520..56b50a5b 100644 +--- a/libxfs/xfs_btree.c ++++ b/libxfs/xfs_btree.c +@@ -39,7 +39,7 @@ kmem_zone_t *xfs_btree_cur_zone; + /* + * Btree magic numbers. + */ +-static const __uint32_t xfs_magics[2][XFS_BTNUM_MAX] = { ++static const uint32_t xfs_magics[2][XFS_BTNUM_MAX] = { + { XFS_ABTB_MAGIC, XFS_ABTC_MAGIC, 0, XFS_BMAP_MAGIC, XFS_IBT_MAGIC, + XFS_FIBT_MAGIC, 0 }, + { XFS_ABTB_CRC_MAGIC, XFS_ABTC_CRC_MAGIC, XFS_RMAP_CRC_MAGIC, +@@ -47,12 +47,12 @@ static const __uint32_t xfs_magics[2][XFS_BTNUM_MAX] = { + XFS_REFC_CRC_MAGIC } + }; + +-__uint32_t ++uint32_t + xfs_btree_magic( + int crc, + xfs_btnum_t btnum) + { +- __uint32_t magic = xfs_magics[crc][btnum]; ++ uint32_t magic = xfs_magics[crc][btnum]; + + /* Ensure we asked for crc for crc-only magics. */ + ASSERT(magic != 0); +@@ -774,14 +774,14 @@ xfs_btree_lastrec( + */ + void + xfs_btree_offsets( +- __int64_t fields, /* bitmask of fields */ ++ int64_t fields, /* bitmask of fields */ + const short *offsets, /* table of field offsets */ + int nbits, /* number of bits to inspect */ + int *first, /* output: first byte offset */ + int *last) /* output: last byte offset */ + { + int i; /* current bit number */ +- __int64_t imask; /* mask for current bit number */ ++ int64_t imask; /* mask for current bit number */ + + ASSERT(fields != 0); + /* +@@ -1842,7 +1842,7 @@ xfs_btree_lookup( + int *stat) /* success/failure */ + { + struct xfs_btree_block *block; /* current btree block */ +- __int64_t diff; /* difference for the current key */ ++ int64_t diff; /* difference for the current key */ + int error; /* error return value */ + int keyno; /* current key number */ + int level; /* level in the btree */ +@@ -4435,7 +4435,7 @@ xfs_btree_visit_blocks( + * recovery completion writes the changes to disk. + */ + struct xfs_btree_block_change_owner_info { +- __uint64_t new_owner; ++ uint64_t new_owner; + struct list_head *buffer_list; + }; + +@@ -4481,7 +4481,7 @@ xfs_btree_block_change_owner( + int + xfs_btree_change_owner( + struct xfs_btree_cur *cur, +- __uint64_t new_owner, ++ uint64_t new_owner, + struct list_head *buffer_list) + { + struct xfs_btree_block_change_owner_info bbcoi; +@@ -4585,7 +4585,7 @@ xfs_btree_simple_query_range( + { + union xfs_btree_rec *recp; + union xfs_btree_key rec_key; +- __int64_t diff; ++ int64_t diff; + int stat; + bool firstrec = true; + int error; +@@ -4682,8 +4682,8 @@ xfs_btree_overlapped_query_range( + union xfs_btree_key *hkp; + union xfs_btree_rec *recp; + struct xfs_btree_block *block; +- __int64_t ldiff; +- __int64_t hdiff; ++ int64_t ldiff; ++ int64_t hdiff; + int level; + struct xfs_buf *bp; + int i; +diff --git a/libxfs/xfs_btree.h b/libxfs/xfs_btree.h +index 05cf35b5..3c1fed23 100644 +--- a/libxfs/xfs_btree.h ++++ b/libxfs/xfs_btree.h +@@ -76,7 +76,7 @@ union xfs_btree_rec { + #define XFS_BTNUM_RMAP ((xfs_btnum_t)XFS_BTNUM_RMAPi) + #define XFS_BTNUM_REFC ((xfs_btnum_t)XFS_BTNUM_REFCi) + +-__uint32_t xfs_btree_magic(int crc, xfs_btnum_t btnum); ++uint32_t xfs_btree_magic(int crc, xfs_btnum_t btnum); + + /* + * For logging record fields. +@@ -150,14 +150,14 @@ struct xfs_btree_ops { + union xfs_btree_rec *rec); + + /* difference between key value and cursor value */ +- __int64_t (*key_diff)(struct xfs_btree_cur *cur, ++ int64_t (*key_diff)(struct xfs_btree_cur *cur, + union xfs_btree_key *key); + + /* + * Difference between key2 and key1 -- positive if key1 > key2, + * negative if key1 < key2, and zero if equal. + */ +- __int64_t (*diff_two_keys)(struct xfs_btree_cur *cur, ++ int64_t (*diff_two_keys)(struct xfs_btree_cur *cur, + union xfs_btree_key *key1, + union xfs_btree_key *key2); + +@@ -213,11 +213,11 @@ typedef struct xfs_btree_cur + union xfs_btree_irec bc_rec; /* current insert/search record value */ + struct xfs_buf *bc_bufs[XFS_BTREE_MAXLEVELS]; /* buf ptr per level */ + int bc_ptrs[XFS_BTREE_MAXLEVELS]; /* key/record # */ +- __uint8_t bc_ra[XFS_BTREE_MAXLEVELS]; /* readahead bits */ ++ uint8_t bc_ra[XFS_BTREE_MAXLEVELS]; /* readahead bits */ + #define XFS_BTCUR_LEFTRA 1 /* left sibling has been read-ahead */ + #define XFS_BTCUR_RIGHTRA 2 /* right sibling has been read-ahead */ +- __uint8_t bc_nlevels; /* number of levels in the tree */ +- __uint8_t bc_blocklog; /* log2(blocksize) of btree blocks */ ++ uint8_t bc_nlevels; /* number of levels in the tree */ ++ uint8_t bc_blocklog; /* log2(blocksize) of btree blocks */ + xfs_btnum_t bc_btnum; /* identifies which btree type */ + int bc_statoff; /* offset of btre stats array */ + union { +@@ -330,7 +330,7 @@ xfs_btree_islastblock( + */ + void + xfs_btree_offsets( +- __int64_t fields, /* bitmask of fields */ ++ int64_t fields, /* bitmask of fields */ + const short *offsets,/* table of field offsets */ + int nbits, /* number of bits to inspect */ + int *first, /* output: first byte offset */ +@@ -408,7 +408,7 @@ int xfs_btree_new_iroot(struct xfs_btree_cur *, int *, int *); + int xfs_btree_insert(struct xfs_btree_cur *, int *); + int xfs_btree_delete(struct xfs_btree_cur *, int *); + int xfs_btree_get_rec(struct xfs_btree_cur *, union xfs_btree_rec **, int *); +-int xfs_btree_change_owner(struct xfs_btree_cur *cur, __uint64_t new_owner, ++int xfs_btree_change_owner(struct xfs_btree_cur *cur, uint64_t new_owner, + struct list_head *buffer_list); + + /* +@@ -434,7 +434,7 @@ static inline int xfs_btree_get_numrecs(struct xfs_btree_block *block) + } + + static inline void xfs_btree_set_numrecs(struct xfs_btree_block *block, +- __uint16_t numrecs) ++ uint16_t numrecs) + { + block->bb_numrecs = cpu_to_be16(numrecs); + } +diff --git a/libxfs/xfs_cksum.h b/libxfs/xfs_cksum.h +index a416c7cb..8211f48b 100644 +--- a/libxfs/xfs_cksum.h ++++ b/libxfs/xfs_cksum.h +@@ -1,7 +1,7 @@ + #ifndef _XFS_CKSUM_H + #define _XFS_CKSUM_H 1 + +-#define XFS_CRC_SEED (~(__uint32_t)0) ++#define XFS_CRC_SEED (~(uint32_t)0) + + /* + * Calculate the intermediate checksum for a buffer that has the CRC field +@@ -9,11 +9,11 @@ + * cksum_offset parameter. We do not modify the buffer during verification, + * hence we have to split the CRC calculation across the cksum_offset. + */ +-static inline __uint32_t ++static inline uint32_t + xfs_start_cksum_safe(char *buffer, size_t length, unsigned long cksum_offset) + { +- __uint32_t zero = 0; +- __uint32_t crc; ++ uint32_t zero = 0; ++ uint32_t crc; + + /* Calculate CRC up to the checksum. */ + crc = crc32c(XFS_CRC_SEED, buffer, cksum_offset); +@@ -30,7 +30,7 @@ xfs_start_cksum_safe(char *buffer, size_t length, unsigned long cksum_offset) + * Fast CRC method where the buffer is modified. Callers must have exclusive + * access to the buffer while the calculation takes place. + */ +-static inline __uint32_t ++static inline uint32_t + xfs_start_cksum_update(char *buffer, size_t length, unsigned long cksum_offset) + { + /* zero the CRC field */ +@@ -48,7 +48,7 @@ xfs_start_cksum_update(char *buffer, size_t length, unsigned long cksum_offset) + * so that it is consistent on disk. + */ + static inline __le32 +-xfs_end_cksum(__uint32_t crc) ++xfs_end_cksum(uint32_t crc) + { + return ~cpu_to_le32(crc); + } +@@ -62,7 +62,7 @@ xfs_end_cksum(__uint32_t crc) + static inline void + xfs_update_cksum(char *buffer, size_t length, unsigned long cksum_offset) + { +- __uint32_t crc = xfs_start_cksum_update(buffer, length, cksum_offset); ++ uint32_t crc = xfs_start_cksum_update(buffer, length, cksum_offset); + + *(__le32 *)(buffer + cksum_offset) = xfs_end_cksum(crc); + } +@@ -73,7 +73,7 @@ xfs_update_cksum(char *buffer, size_t length, unsigned long cksum_offset) + static inline int + xfs_verify_cksum(char *buffer, size_t length, unsigned long cksum_offset) + { +- __uint32_t crc = xfs_start_cksum_safe(buffer, length, cksum_offset); ++ uint32_t crc = xfs_start_cksum_safe(buffer, length, cksum_offset); + + return *(__le32 *)(buffer + cksum_offset) == xfs_end_cksum(crc); + } +diff --git a/libxfs/xfs_da_btree.c b/libxfs/xfs_da_btree.c +index bc12f58f..08447be8 100644 +--- a/libxfs/xfs_da_btree.c ++++ b/libxfs/xfs_da_btree.c +@@ -1947,7 +1947,7 @@ xfs_da3_path_shift( + * This is implemented with some source-level loop unrolling. + */ + xfs_dahash_t +-xfs_da_hashname(const __uint8_t *name, int namelen) ++xfs_da_hashname(const uint8_t *name, int namelen) + { + xfs_dahash_t hash; + +diff --git a/libxfs/xfs_da_btree.h b/libxfs/xfs_da_btree.h +index 4e29cb6a..ae6de174 100644 +--- a/libxfs/xfs_da_btree.h ++++ b/libxfs/xfs_da_btree.h +@@ -60,10 +60,10 @@ enum xfs_dacmp { + */ + typedef struct xfs_da_args { + struct xfs_da_geometry *geo; /* da block geometry */ +- const __uint8_t *name; /* string (maybe not NULL terminated) */ ++ const uint8_t *name; /* string (maybe not NULL terminated) */ + int namelen; /* length of string (maybe no NULL) */ +- __uint8_t filetype; /* filetype of inode for directories */ +- __uint8_t *value; /* set of bytes (maybe contain NULLs) */ ++ uint8_t filetype; /* filetype of inode for directories */ ++ uint8_t *value; /* set of bytes (maybe contain NULLs) */ + int valuelen; /* length of value */ + int flags; /* argument flags (eg: ATTR_NOCREATE) */ + xfs_dahash_t hashval; /* hash value of name */ +@@ -207,7 +207,7 @@ int xfs_da_reada_buf(struct xfs_inode *dp, xfs_dablk_t bno, + int xfs_da_shrink_inode(xfs_da_args_t *args, xfs_dablk_t dead_blkno, + struct xfs_buf *dead_buf); + +-uint xfs_da_hashname(const __uint8_t *name_string, int name_length); ++uint xfs_da_hashname(const uint8_t *name_string, int name_length); + enum xfs_dacmp xfs_da_compname(struct xfs_da_args *args, + const unsigned char *name, int len); + +diff --git a/libxfs/xfs_da_format.c b/libxfs/xfs_da_format.c +index 2b732b3c..f30004f6 100644 +--- a/libxfs/xfs_da_format.c ++++ b/libxfs/xfs_da_format.c +@@ -49,7 +49,7 @@ xfs_dir3_sf_entsize( + struct xfs_dir2_sf_hdr *hdr, + int len) + { +- return xfs_dir2_sf_entsize(hdr, len) + sizeof(__uint8_t); ++ return xfs_dir2_sf_entsize(hdr, len) + sizeof(uint8_t); + } + + static struct xfs_dir2_sf_entry * +@@ -77,7 +77,7 @@ xfs_dir3_sf_nextentry( + * not necessary. For non-filetype enable directories, the type is always + * unknown and we never store the value. + */ +-static __uint8_t ++static uint8_t + xfs_dir2_sfe_get_ftype( + struct xfs_dir2_sf_entry *sfep) + { +@@ -87,16 +87,16 @@ xfs_dir2_sfe_get_ftype( + static void + xfs_dir2_sfe_put_ftype( + struct xfs_dir2_sf_entry *sfep, +- __uint8_t ftype) ++ uint8_t ftype) + { + ASSERT(ftype < XFS_DIR3_FT_MAX); + } + +-static __uint8_t ++static uint8_t + xfs_dir3_sfe_get_ftype( + struct xfs_dir2_sf_entry *sfep) + { +- __uint8_t ftype; ++ uint8_t ftype; + + ftype = sfep->name[sfep->namelen]; + if (ftype >= XFS_DIR3_FT_MAX) +@@ -107,7 +107,7 @@ xfs_dir3_sfe_get_ftype( + static void + xfs_dir3_sfe_put_ftype( + struct xfs_dir2_sf_entry *sfep, +- __uint8_t ftype) ++ uint8_t ftype) + { + ASSERT(ftype < XFS_DIR3_FT_MAX); + +@@ -124,7 +124,7 @@ xfs_dir3_sfe_put_ftype( + static xfs_ino_t + xfs_dir2_sf_get_ino( + struct xfs_dir2_sf_hdr *hdr, +- __uint8_t *from) ++ uint8_t *from) + { + if (hdr->i8count) + return get_unaligned_be64(from) & 0x00ffffffffffffffULL; +@@ -135,7 +135,7 @@ xfs_dir2_sf_get_ino( + static void + xfs_dir2_sf_put_ino( + struct xfs_dir2_sf_hdr *hdr, +- __uint8_t *to, ++ uint8_t *to, + xfs_ino_t ino) + { + ASSERT((ino & 0xff00000000000000ULL) == 0); +@@ -225,7 +225,7 @@ xfs_dir3_sfe_put_ino( + + #define XFS_DIR3_DATA_ENTSIZE(n) \ + round_up((offsetof(struct xfs_dir2_data_entry, name[0]) + (n) + \ +- sizeof(xfs_dir2_data_off_t) + sizeof(__uint8_t)), \ ++ sizeof(xfs_dir2_data_off_t) + sizeof(uint8_t)), \ + XFS_DIR2_DATA_ALIGN) + + static int +@@ -242,7 +242,7 @@ xfs_dir3_data_entsize( + return XFS_DIR3_DATA_ENTSIZE(n); + } + +-static __uint8_t ++static uint8_t + xfs_dir2_data_get_ftype( + struct xfs_dir2_data_entry *dep) + { +@@ -252,16 +252,16 @@ xfs_dir2_data_get_ftype( + static void + xfs_dir2_data_put_ftype( + struct xfs_dir2_data_entry *dep, +- __uint8_t ftype) ++ uint8_t ftype) + { + ASSERT(ftype < XFS_DIR3_FT_MAX); + } + +-static __uint8_t ++static uint8_t + xfs_dir3_data_get_ftype( + struct xfs_dir2_data_entry *dep) + { +- __uint8_t ftype = dep->name[dep->namelen]; ++ uint8_t ftype = dep->name[dep->namelen]; + + if (ftype >= XFS_DIR3_FT_MAX) + return XFS_DIR3_FT_UNKNOWN; +@@ -271,7 +271,7 @@ xfs_dir3_data_get_ftype( + static void + xfs_dir3_data_put_ftype( + struct xfs_dir2_data_entry *dep, +- __uint8_t type) ++ uint8_t type) + { + ASSERT(type < XFS_DIR3_FT_MAX); + ASSERT(dep->namelen != 0); +diff --git a/libxfs/xfs_da_format.h b/libxfs/xfs_da_format.h +index 9a492a9e..3771edcb 100644 +--- a/libxfs/xfs_da_format.h ++++ b/libxfs/xfs_da_format.h +@@ -111,11 +111,11 @@ struct xfs_da3_intnode { + * appropriate. + */ + struct xfs_da3_icnode_hdr { +- __uint32_t forw; +- __uint32_t back; +- __uint16_t magic; +- __uint16_t count; +- __uint16_t level; ++ uint32_t forw; ++ uint32_t back; ++ uint16_t magic; ++ uint16_t count; ++ uint16_t level; + }; + + /* +@@ -187,14 +187,14 @@ struct xfs_da3_icnode_hdr { + /* + * Byte offset in data block and shortform entry. + */ +-typedef __uint16_t xfs_dir2_data_off_t; ++typedef uint16_t xfs_dir2_data_off_t; + #define NULLDATAOFF 0xffffU + typedef uint xfs_dir2_data_aoff_t; /* argument form */ + + /* + * Offset in data space of a data entry. + */ +-typedef __uint32_t xfs_dir2_dataptr_t; ++typedef uint32_t xfs_dir2_dataptr_t; + #define XFS_DIR2_MAX_DATAPTR ((xfs_dir2_dataptr_t)0xffffffff) + #define XFS_DIR2_NULL_DATAPTR ((xfs_dir2_dataptr_t)0) + +@@ -206,7 +206,7 @@ typedef xfs_off_t xfs_dir2_off_t; + /* + * Directory block number (logical dirblk in file) + */ +-typedef __uint32_t xfs_dir2_db_t; ++typedef uint32_t xfs_dir2_db_t; + + #define XFS_INO32_SIZE 4 + #define XFS_INO64_SIZE 8 +@@ -226,9 +226,9 @@ typedef __uint32_t xfs_dir2_db_t; + * over them. + */ + typedef struct xfs_dir2_sf_hdr { +- __uint8_t count; /* count of entries */ +- __uint8_t i8count; /* count of 8-byte inode #s */ +- __uint8_t parent[8]; /* parent dir inode number */ ++ uint8_t count; /* count of entries */ ++ uint8_t i8count; /* count of 8-byte inode #s */ ++ uint8_t parent[8]; /* parent dir inode number */ + } __packed xfs_dir2_sf_hdr_t; + + typedef struct xfs_dir2_sf_entry { +@@ -447,11 +447,11 @@ struct xfs_dir3_leaf_hdr { + }; + + struct xfs_dir3_icleaf_hdr { +- __uint32_t forw; +- __uint32_t back; +- __uint16_t magic; +- __uint16_t count; +- __uint16_t stale; ++ uint32_t forw; ++ uint32_t back; ++ uint16_t magic; ++ uint16_t count; ++ uint16_t stale; + }; + + /* +@@ -538,10 +538,10 @@ struct xfs_dir3_free { + * xfs_dir3_free_hdr_from_disk/xfs_dir3_free_hdr_to_disk. + */ + struct xfs_dir3_icfree_hdr { +- __uint32_t magic; +- __uint32_t firstdb; +- __uint32_t nvalid; +- __uint32_t nused; ++ uint32_t magic; ++ uint32_t firstdb; ++ uint32_t nvalid; ++ uint32_t nused; + + }; + +@@ -632,10 +632,10 @@ typedef struct xfs_attr_shortform { + __u8 padding; + } hdr; + struct xfs_attr_sf_entry { +- __uint8_t namelen; /* actual length of name (no NULL) */ +- __uint8_t valuelen; /* actual length of value (no NULL) */ +- __uint8_t flags; /* flags bits (see xfs_attr_leaf.h) */ +- __uint8_t nameval[1]; /* name & value bytes concatenated */ ++ uint8_t namelen; /* actual length of name (no NULL) */ ++ uint8_t valuelen; /* actual length of value (no NULL) */ ++ uint8_t flags; /* flags bits (see xfs_attr_leaf.h) */ ++ uint8_t nameval[1]; /* name & value bytes concatenated */ + } list[1]; /* variable sized array */ + } xfs_attr_shortform_t; + +@@ -725,22 +725,22 @@ struct xfs_attr3_leafblock { + * incore, neutral version of the attribute leaf header + */ + struct xfs_attr3_icleaf_hdr { +- __uint32_t forw; +- __uint32_t back; +- __uint16_t magic; +- __uint16_t count; +- __uint16_t usedbytes; ++ uint32_t forw; ++ uint32_t back; ++ uint16_t magic; ++ uint16_t count; ++ uint16_t usedbytes; + /* + * firstused is 32-bit here instead of 16-bit like the on-disk variant + * to support maximum fsb size of 64k without overflow issues throughout + * the attr code. Instead, the overflow condition is handled on + * conversion to/from disk. + */ +- __uint32_t firstused; ++ uint32_t firstused; + __u8 holes; + struct { +- __uint16_t base; +- __uint16_t size; ++ uint16_t base; ++ uint16_t size; + } freemap[XFS_ATTR_LEAF_MAPSIZE]; + }; + +diff --git a/libxfs/xfs_dir2.h b/libxfs/xfs_dir2.h +index d6e6d9d1..21c8f8bf 100644 +--- a/libxfs/xfs_dir2.h ++++ b/libxfs/xfs_dir2.h +@@ -47,9 +47,9 @@ struct xfs_dir_ops { + struct xfs_dir2_sf_entry * + (*sf_nextentry)(struct xfs_dir2_sf_hdr *hdr, + struct xfs_dir2_sf_entry *sfep); +- __uint8_t (*sf_get_ftype)(struct xfs_dir2_sf_entry *sfep); ++ uint8_t (*sf_get_ftype)(struct xfs_dir2_sf_entry *sfep); + void (*sf_put_ftype)(struct xfs_dir2_sf_entry *sfep, +- __uint8_t ftype); ++ uint8_t ftype); + xfs_ino_t (*sf_get_ino)(struct xfs_dir2_sf_hdr *hdr, + struct xfs_dir2_sf_entry *sfep); + void (*sf_put_ino)(struct xfs_dir2_sf_hdr *hdr, +@@ -60,9 +60,9 @@ struct xfs_dir_ops { + xfs_ino_t ino); + + int (*data_entsize)(int len); +- __uint8_t (*data_get_ftype)(struct xfs_dir2_data_entry *dep); ++ uint8_t (*data_get_ftype)(struct xfs_dir2_data_entry *dep); + void (*data_put_ftype)(struct xfs_dir2_data_entry *dep, +- __uint8_t ftype); ++ uint8_t ftype); + __be16 * (*data_entry_tag_p)(struct xfs_dir2_data_entry *dep); + struct xfs_dir2_data_free * + (*data_bestfree_p)(struct xfs_dir2_data_hdr *hdr); +diff --git a/libxfs/xfs_dir2_leaf.c b/libxfs/xfs_dir2_leaf.c +index f80d91fc..40a35b84 100644 +--- a/libxfs/xfs_dir2_leaf.c ++++ b/libxfs/xfs_dir2_leaf.c +@@ -142,7 +142,7 @@ xfs_dir3_leaf_check_int( + static bool + xfs_dir3_leaf_verify( + struct xfs_buf *bp, +- __uint16_t magic) ++ uint16_t magic) + { + struct xfs_mount *mp = bp->b_target->bt_mount; + struct xfs_dir2_leaf *leaf = bp->b_addr; +@@ -151,7 +151,7 @@ xfs_dir3_leaf_verify( + + if (xfs_sb_version_hascrc(&mp->m_sb)) { + struct xfs_dir3_leaf_hdr *leaf3 = bp->b_addr; +- __uint16_t magic3; ++ uint16_t magic3; + + magic3 = (magic == XFS_DIR2_LEAF1_MAGIC) ? XFS_DIR3_LEAF1_MAGIC + : XFS_DIR3_LEAFN_MAGIC; +@@ -175,7 +175,7 @@ xfs_dir3_leaf_verify( + static void + __read_verify( + struct xfs_buf *bp, +- __uint16_t magic) ++ uint16_t magic) + { + struct xfs_mount *mp = bp->b_target->bt_mount; + +@@ -192,7 +192,7 @@ __read_verify( + static void + __write_verify( + struct xfs_buf *bp, +- __uint16_t magic) ++ uint16_t magic) + { + struct xfs_mount *mp = bp->b_target->bt_mount; + struct xfs_buf_log_item *bip = bp->b_fspriv; +@@ -296,7 +296,7 @@ xfs_dir3_leaf_init( + struct xfs_trans *tp, + struct xfs_buf *bp, + xfs_ino_t owner, +- __uint16_t type) ++ uint16_t type) + { + struct xfs_dir2_leaf *leaf = bp->b_addr; + +@@ -340,7 +340,7 @@ xfs_dir3_leaf_get_buf( + xfs_da_args_t *args, + xfs_dir2_db_t bno, + struct xfs_buf **bpp, +- __uint16_t magic) ++ uint16_t magic) + { + struct xfs_inode *dp = args->dp; + struct xfs_trans *tp = args->trans; +diff --git a/libxfs/xfs_dir2_priv.h b/libxfs/xfs_dir2_priv.h +index 39f8604f..011df4da 100644 +--- a/libxfs/xfs_dir2_priv.h ++++ b/libxfs/xfs_dir2_priv.h +@@ -69,7 +69,7 @@ extern void xfs_dir3_leaf_compact_x1(struct xfs_dir3_icleaf_hdr *leafhdr, + struct xfs_dir2_leaf_entry *ents, int *indexp, + int *lowstalep, int *highstalep, int *lowlogp, int *highlogp); + extern int xfs_dir3_leaf_get_buf(struct xfs_da_args *args, xfs_dir2_db_t bno, +- struct xfs_buf **bpp, __uint16_t magic); ++ struct xfs_buf **bpp, uint16_t magic); + extern void xfs_dir3_leaf_log_ents(struct xfs_da_args *args, + struct xfs_buf *bp, int first, int last); + extern void xfs_dir3_leaf_log_header(struct xfs_da_args *args, +diff --git a/libxfs/xfs_dir2_sf.c b/libxfs/xfs_dir2_sf.c +index 195f816d..0c453988 100644 +--- a/libxfs/xfs_dir2_sf.c ++++ b/libxfs/xfs_dir2_sf.c +@@ -125,7 +125,7 @@ xfs_dir2_block_sfsize( + * Calculate the new size, see if we should give up yet. + */ + size = xfs_dir2_sf_hdr_size(i8count) + /* header */ +- count * 3 * sizeof(__u8) + /* namelen + offset */ ++ count * 3 * sizeof(u8) + /* namelen + offset */ + namelen + /* name */ + (i8count ? /* inumber */ + count * XFS_INO64_SIZE : +@@ -645,7 +645,7 @@ xfs_dir2_sf_verify( + int offset; + int size; + int error; +- __uint8_t filetype; ++ uint8_t filetype; + + ASSERT(ip->i_d.di_format == XFS_DINODE_FMT_LOCAL); + /* +diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h +index 4c3ed1fd..a53f035f 100644 +--- a/libxfs/xfs_format.h ++++ b/libxfs/xfs_format.h +@@ -103,8 +103,8 @@ struct xfs_ifork; + * Must be padded to 64 bit alignment. + */ + typedef struct xfs_sb { +- __uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */ +- __uint32_t sb_blocksize; /* logical block size, bytes */ ++ uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */ ++ uint32_t sb_blocksize; /* logical block size, bytes */ + xfs_rfsblock_t sb_dblocks; /* number of data blocks */ + xfs_rfsblock_t sb_rblocks; /* number of realtime blocks */ + xfs_rtblock_t sb_rextents; /* number of realtime extents */ +@@ -118,45 +118,45 @@ typedef struct xfs_sb { + xfs_agnumber_t sb_agcount; /* number of allocation groups */ + xfs_extlen_t sb_rbmblocks; /* number of rt bitmap blocks */ + xfs_extlen_t sb_logblocks; /* number of log blocks */ +- __uint16_t sb_versionnum; /* header version == XFS_SB_VERSION */ +- __uint16_t sb_sectsize; /* volume sector size, bytes */ +- __uint16_t sb_inodesize; /* inode size, bytes */ +- __uint16_t sb_inopblock; /* inodes per block */ ++ uint16_t sb_versionnum; /* header version == XFS_SB_VERSION */ ++ uint16_t sb_sectsize; /* volume sector size, bytes */ ++ uint16_t sb_inodesize; /* inode size, bytes */ ++ uint16_t sb_inopblock; /* inodes per block */ + char sb_fname[12]; /* file system name */ +- __uint8_t sb_blocklog; /* log2 of sb_blocksize */ +- __uint8_t sb_sectlog; /* log2 of sb_sectsize */ +- __uint8_t sb_inodelog; /* log2 of sb_inodesize */ +- __uint8_t sb_inopblog; /* log2 of sb_inopblock */ +- __uint8_t sb_agblklog; /* log2 of sb_agblocks (rounded up) */ +- __uint8_t sb_rextslog; /* log2 of sb_rextents */ +- __uint8_t sb_inprogress; /* mkfs is in progress, don't mount */ +- __uint8_t sb_imax_pct; /* max % of fs for inode space */ ++ uint8_t sb_blocklog; /* log2 of sb_blocksize */ ++ uint8_t sb_sectlog; /* log2 of sb_sectsize */ ++ uint8_t sb_inodelog; /* log2 of sb_inodesize */ ++ uint8_t sb_inopblog; /* log2 of sb_inopblock */ ++ uint8_t sb_agblklog; /* log2 of sb_agblocks (rounded up) */ ++ uint8_t sb_rextslog; /* log2 of sb_rextents */ ++ uint8_t sb_inprogress; /* mkfs is in progress, don't mount */ ++ uint8_t sb_imax_pct; /* max % of fs for inode space */ + /* statistics */ + /* + * These fields must remain contiguous. If you really + * want to change their layout, make sure you fix the + * code in xfs_trans_apply_sb_deltas(). + */ +- __uint64_t sb_icount; /* allocated inodes */ +- __uint64_t sb_ifree; /* free inodes */ +- __uint64_t sb_fdblocks; /* free data blocks */ +- __uint64_t sb_frextents; /* free realtime extents */ ++ uint64_t sb_icount; /* allocated inodes */ ++ uint64_t sb_ifree; /* free inodes */ ++ uint64_t sb_fdblocks; /* free data blocks */ ++ uint64_t sb_frextents; /* free realtime extents */ + /* + * End contiguous fields. + */ + xfs_ino_t sb_uquotino; /* user quota inode */ + xfs_ino_t sb_gquotino; /* group quota inode */ +- __uint16_t sb_qflags; /* quota flags */ +- __uint8_t sb_flags; /* misc. flags */ +- __uint8_t sb_shared_vn; /* shared version number */ ++ uint16_t sb_qflags; /* quota flags */ ++ uint8_t sb_flags; /* misc. flags */ ++ uint8_t sb_shared_vn; /* shared version number */ + xfs_extlen_t sb_inoalignmt; /* inode chunk alignment, fsblocks */ +- __uint32_t sb_unit; /* stripe or raid unit */ +- __uint32_t sb_width; /* stripe or raid width */ +- __uint8_t sb_dirblklog; /* log2 of dir block size (fsbs) */ +- __uint8_t sb_logsectlog; /* log2 of the log sector size */ +- __uint16_t sb_logsectsize; /* sector size for the log, bytes */ +- __uint32_t sb_logsunit; /* stripe unit size for the log */ +- __uint32_t sb_features2; /* additional feature bits */ ++ uint32_t sb_unit; /* stripe or raid unit */ ++ uint32_t sb_width; /* stripe or raid width */ ++ uint8_t sb_dirblklog; /* log2 of dir block size (fsbs) */ ++ uint8_t sb_logsectlog; /* log2 of the log sector size */ ++ uint16_t sb_logsectsize; /* sector size for the log, bytes */ ++ uint32_t sb_logsunit; /* stripe unit size for the log */ ++ uint32_t sb_features2; /* additional feature bits */ + + /* + * bad features2 field as a result of failing to pad the sb structure to +@@ -167,17 +167,17 @@ typedef struct xfs_sb { + * the value in sb_features2 when formatting the incore superblock to + * the disk buffer. + */ +- __uint32_t sb_bad_features2; ++ uint32_t sb_bad_features2; + + /* version 5 superblock fields start here */ + + /* feature masks */ +- __uint32_t sb_features_compat; +- __uint32_t sb_features_ro_compat; +- __uint32_t sb_features_incompat; +- __uint32_t sb_features_log_incompat; ++ uint32_t sb_features_compat; ++ uint32_t sb_features_ro_compat; ++ uint32_t sb_features_incompat; ++ uint32_t sb_features_log_incompat; + +- __uint32_t sb_crc; /* superblock crc */ ++ uint32_t sb_crc; /* superblock crc */ + xfs_extlen_t sb_spino_align; /* sparse inode chunk alignment */ + + xfs_ino_t sb_pquotino; /* project quota inode */ +@@ -449,7 +449,7 @@ static inline void xfs_sb_version_addprojid32bit(struct xfs_sb *sbp) + static inline bool + xfs_sb_has_compat_feature( + struct xfs_sb *sbp, +- __uint32_t feature) ++ uint32_t feature) + { + return (sbp->sb_features_compat & feature) != 0; + } +@@ -465,7 +465,7 @@ xfs_sb_has_compat_feature( + static inline bool + xfs_sb_has_ro_compat_feature( + struct xfs_sb *sbp, +- __uint32_t feature) ++ uint32_t feature) + { + return (sbp->sb_features_ro_compat & feature) != 0; + } +@@ -482,7 +482,7 @@ xfs_sb_has_ro_compat_feature( + static inline bool + xfs_sb_has_incompat_feature( + struct xfs_sb *sbp, +- __uint32_t feature) ++ uint32_t feature) + { + return (sbp->sb_features_incompat & feature) != 0; + } +@@ -492,7 +492,7 @@ xfs_sb_has_incompat_feature( + static inline bool + xfs_sb_has_incompat_log_feature( + struct xfs_sb *sbp, +- __uint32_t feature) ++ uint32_t feature) + { + return (sbp->sb_features_log_incompat & feature) != 0; + } +@@ -594,8 +594,8 @@ xfs_is_quota_inode(struct xfs_sb *sbp, xfs_ino_t ino) + */ + #define XFS_FSB_TO_B(mp,fsbno) ((xfs_fsize_t)(fsbno) << (mp)->m_sb.sb_blocklog) + #define XFS_B_TO_FSB(mp,b) \ +- ((((__uint64_t)(b)) + (mp)->m_blockmask) >> (mp)->m_sb.sb_blocklog) +-#define XFS_B_TO_FSBT(mp,b) (((__uint64_t)(b)) >> (mp)->m_sb.sb_blocklog) ++ ((((uint64_t)(b)) + (mp)->m_blockmask) >> (mp)->m_sb.sb_blocklog) ++#define XFS_B_TO_FSBT(mp,b) (((uint64_t)(b)) >> (mp)->m_sb.sb_blocklog) + #define XFS_B_FSB_OFFSET(mp,b) ((b) & (mp)->m_blockmask) + + /* +@@ -1072,7 +1072,7 @@ static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev) + * next agno_log bits - ag number + * high agno_log-agblklog-inopblog bits - 0 + */ +-#define XFS_INO_MASK(k) (__uint32_t)((1ULL << (k)) - 1) ++#define XFS_INO_MASK(k) (uint32_t)((1ULL << (k)) - 1) + #define XFS_INO_OFFSET_BITS(mp) (mp)->m_sb.sb_inopblog + #define XFS_INO_AGBNO_BITS(mp) (mp)->m_sb.sb_agblklog + #define XFS_INO_AGINO_BITS(mp) (mp)->m_agino_log +@@ -1269,16 +1269,16 @@ typedef __be32 xfs_alloc_ptr_t; + #define XFS_FIBT_MAGIC 0x46494254 /* 'FIBT' */ + #define XFS_FIBT_CRC_MAGIC 0x46494233 /* 'FIB3' */ + +-typedef __uint64_t xfs_inofree_t; ++typedef uint64_t xfs_inofree_t; + #define XFS_INODES_PER_CHUNK (NBBY * sizeof(xfs_inofree_t)) + #define XFS_INODES_PER_CHUNK_LOG (XFS_NBBYLOG + 3) + #define XFS_INOBT_ALL_FREE ((xfs_inofree_t)-1) + #define XFS_INOBT_MASK(i) ((xfs_inofree_t)1 << (i)) + + #define XFS_INOBT_HOLEMASK_FULL 0 /* holemask for full chunk */ +-#define XFS_INOBT_HOLEMASK_BITS (NBBY * sizeof(__uint16_t)) ++#define XFS_INOBT_HOLEMASK_BITS (NBBY * sizeof(uint16_t)) + #define XFS_INODES_PER_HOLEMASK_BIT \ +- (XFS_INODES_PER_CHUNK / (NBBY * sizeof(__uint16_t))) ++ (XFS_INODES_PER_CHUNK / (NBBY * sizeof(uint16_t))) + + static inline xfs_inofree_t xfs_inobt_maskn(int i, int n) + { +@@ -1312,9 +1312,9 @@ typedef struct xfs_inobt_rec { + + typedef struct xfs_inobt_rec_incore { + xfs_agino_t ir_startino; /* starting inode number */ +- __uint16_t ir_holemask; /* hole mask for sparse chunks */ +- __uint8_t ir_count; /* total inode count */ +- __uint8_t ir_freecount; /* count of free inodes (set bits) */ ++ uint16_t ir_holemask; /* hole mask for sparse chunks */ ++ uint8_t ir_count; /* total inode count */ ++ uint8_t ir_freecount; /* count of free inodes (set bits) */ + xfs_inofree_t ir_free; /* free inode mask */ + } xfs_inobt_rec_incore_t; + +@@ -1397,15 +1397,15 @@ struct xfs_rmap_rec { + * rm_offset:54-60 aren't used and should be zero + * rm_offset:0-53 is the block offset within the inode + */ +-#define XFS_RMAP_OFF_ATTR_FORK ((__uint64_t)1ULL << 63) +-#define XFS_RMAP_OFF_BMBT_BLOCK ((__uint64_t)1ULL << 62) +-#define XFS_RMAP_OFF_UNWRITTEN ((__uint64_t)1ULL << 61) ++#define XFS_RMAP_OFF_ATTR_FORK ((uint64_t)1ULL << 63) ++#define XFS_RMAP_OFF_BMBT_BLOCK ((uint64_t)1ULL << 62) ++#define XFS_RMAP_OFF_UNWRITTEN ((uint64_t)1ULL << 61) + +-#define XFS_RMAP_LEN_MAX ((__uint32_t)~0U) ++#define XFS_RMAP_LEN_MAX ((uint32_t)~0U) + #define XFS_RMAP_OFF_FLAGS (XFS_RMAP_OFF_ATTR_FORK | \ + XFS_RMAP_OFF_BMBT_BLOCK | \ + XFS_RMAP_OFF_UNWRITTEN) +-#define XFS_RMAP_OFF_MASK ((__uint64_t)0x3FFFFFFFFFFFFFULL) ++#define XFS_RMAP_OFF_MASK ((uint64_t)0x3FFFFFFFFFFFFFULL) + + #define XFS_RMAP_OFF(off) ((off) & XFS_RMAP_OFF_MASK) + +@@ -1431,8 +1431,8 @@ struct xfs_rmap_rec { + struct xfs_rmap_irec { + xfs_agblock_t rm_startblock; /* extent start block */ + xfs_extlen_t rm_blockcount; /* extent length */ +- __uint64_t rm_owner; /* extent owner */ +- __uint64_t rm_offset; /* offset within the owner */ ++ uint64_t rm_owner; /* extent owner */ ++ uint64_t rm_offset; /* offset within the owner */ + unsigned int rm_flags; /* state flags */ + }; + +@@ -1544,11 +1544,11 @@ typedef struct xfs_bmbt_rec { + __be64 l0, l1; + } xfs_bmbt_rec_t; + +-typedef __uint64_t xfs_bmbt_rec_base_t; /* use this for casts */ ++typedef uint64_t xfs_bmbt_rec_base_t; /* use this for casts */ + typedef xfs_bmbt_rec_t xfs_bmdr_rec_t; + + typedef struct xfs_bmbt_rec_host { +- __uint64_t l0, l1; ++ uint64_t l0, l1; + } xfs_bmbt_rec_host_t; + + /* +diff --git a/libxfs/xfs_fs.h b/libxfs/xfs_fs.h +index 99f7f881..8a0c0eec 100644 +--- a/libxfs/xfs_fs.h ++++ b/libxfs/xfs_fs.h +@@ -323,10 +323,10 @@ typedef struct xfs_bstat { + * and using two 16bit values to hold new 32bit projid was choosen + * to retain compatibility with "old" filesystems). + */ +-static inline __uint32_t ++static inline uint32_t + bstat_get_projid(struct xfs_bstat *bs) + { +- return (__uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo; ++ return (uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo; + } + + /* +@@ -472,10 +472,10 @@ typedef struct xfs_handle { + */ + typedef struct xfs_swapext + { +- __int64_t sx_version; /* version */ ++ int64_t sx_version; /* version */ + #define XFS_SX_VERSION 0 +- __int64_t sx_fdtarget; /* fd of target file */ +- __int64_t sx_fdtmp; /* fd of tmp file */ ++ int64_t sx_fdtarget; /* fd of target file */ ++ int64_t sx_fdtmp; /* fd of tmp file */ + xfs_off_t sx_offset; /* offset into file */ + xfs_off_t sx_length; /* leng from offset */ + char sx_pad[16]; /* pad space, unused */ +@@ -562,7 +562,7 @@ typedef struct xfs_swapext + #define XFS_IOC_ATTRLIST_BY_HANDLE _IOW ('X', 122, struct xfs_fsop_attrlist_handlereq) + #define XFS_IOC_ATTRMULTI_BY_HANDLE _IOW ('X', 123, struct xfs_fsop_attrmulti_handlereq) + #define XFS_IOC_FSGEOMETRY _IOR ('X', 124, struct xfs_fsop_geom) +-#define XFS_IOC_GOINGDOWN _IOR ('X', 125, __uint32_t) ++#define XFS_IOC_GOINGDOWN _IOR ('X', 125, uint32_t) + /* XFS_IOC_GETFSUUID ---------- deprecated 140 */ + + /* reflink ioctls; these MUST match the btrfs ioctl definitions */ +diff --git a/libxfs/xfs_ialloc.c b/libxfs/xfs_ialloc.c +index 55cc4507..8d245184 100644 +--- a/libxfs/xfs_ialloc.c ++++ b/libxfs/xfs_ialloc.c +@@ -134,9 +134,9 @@ xfs_inobt_get_rec( + STATIC int + xfs_inobt_insert_rec( + struct xfs_btree_cur *cur, +- __uint16_t holemask, +- __uint8_t count, +- __int32_t freecount, ++ uint16_t holemask, ++ uint8_t count, ++ int32_t freecount, + xfs_inofree_t free, + int *stat) + { +diff --git a/libxfs/xfs_ialloc_btree.c b/libxfs/xfs_ialloc_btree.c +index 7b4be766..5b281054 100644 +--- a/libxfs/xfs_ialloc_btree.c ++++ b/libxfs/xfs_ialloc_btree.c +@@ -218,12 +218,12 @@ xfs_finobt_init_ptr_from_cur( + ptr->s = agi->agi_free_root; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_inobt_key_diff( + struct xfs_btree_cur *cur, + union xfs_btree_key *key) + { +- return (__int64_t)be32_to_cpu(key->inobt.ir_startino) - ++ return (int64_t)be32_to_cpu(key->inobt.ir_startino) - + cur->bc_rec.i.ir_startino; + } + +diff --git a/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c +index 2972701d..fcc6fb8e 100644 +--- a/libxfs/xfs_inode_buf.c ++++ b/libxfs/xfs_inode_buf.c +@@ -442,7 +442,7 @@ xfs_dinode_calc_crc( + struct xfs_mount *mp, + struct xfs_dinode *dip) + { +- __uint32_t crc; ++ uint32_t crc; + + if (dip->di_version < 3) + return; +diff --git a/libxfs/xfs_inode_buf.h b/libxfs/xfs_inode_buf.h +index 6848a0af..0827d7de 100644 +--- a/libxfs/xfs_inode_buf.h ++++ b/libxfs/xfs_inode_buf.h +@@ -28,26 +28,26 @@ struct xfs_dinode; + * format specific structures at the appropriate time. + */ + struct xfs_icdinode { +- __int8_t di_version; /* inode version */ +- __int8_t di_format; /* format of di_c data */ +- __uint16_t di_flushiter; /* incremented on flush */ +- __uint32_t di_uid; /* owner's user id */ +- __uint32_t di_gid; /* owner's group id */ +- __uint16_t di_projid_lo; /* lower part of owner's project id */ +- __uint16_t di_projid_hi; /* higher part of owner's project id */ ++ int8_t di_version; /* inode version */ ++ int8_t di_format; /* format of di_c data */ ++ uint16_t di_flushiter; /* incremented on flush */ ++ uint32_t di_uid; /* owner's user id */ ++ uint32_t di_gid; /* owner's group id */ ++ uint16_t di_projid_lo; /* lower part of owner's project id */ ++ uint16_t di_projid_hi; /* higher part of owner's project id */ + xfs_fsize_t di_size; /* number of bytes in file */ + xfs_rfsblock_t di_nblocks; /* # of direct & btree blocks used */ + xfs_extlen_t di_extsize; /* basic/minimum extent size for file */ + xfs_extnum_t di_nextents; /* number of extents in data fork */ + xfs_aextnum_t di_anextents; /* number of extents in attribute fork*/ +- __uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */ +- __int8_t di_aformat; /* format of attr fork's data */ +- __uint32_t di_dmevmask; /* DMIG event mask */ +- __uint16_t di_dmstate; /* DMIG state info */ +- __uint16_t di_flags; /* random flags, XFS_DIFLAG_... */ ++ uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */ ++ int8_t di_aformat; /* format of attr fork's data */ ++ uint32_t di_dmevmask; /* DMIG event mask */ ++ uint16_t di_dmstate; /* DMIG state info */ ++ uint16_t di_flags; /* random flags, XFS_DIFLAG_... */ + +- __uint64_t di_flags2; /* more random flags */ +- __uint32_t di_cowextsize; /* basic cow extent size for file */ ++ uint64_t di_flags2; /* more random flags */ ++ uint32_t di_cowextsize; /* basic cow extent size for file */ + + xfs_ictimestamp_t di_crtime; /* time created */ + }; +diff --git a/libxfs/xfs_log_format.h b/libxfs/xfs_log_format.h +index 7ae571f8..8372e9bc 100644 +--- a/libxfs/xfs_log_format.h ++++ b/libxfs/xfs_log_format.h +@@ -31,7 +31,7 @@ struct xfs_trans_res; + * through all the log items definitions and everything they encode into the + * log. + */ +-typedef __uint32_t xlog_tid_t; ++typedef uint32_t xlog_tid_t; + + #define XLOG_MIN_ICLOGS 2 + #define XLOG_MAX_ICLOGS 8 +@@ -211,7 +211,7 @@ typedef struct xfs_log_iovec { + typedef struct xfs_trans_header { + uint th_magic; /* magic number */ + uint th_type; /* transaction type */ +- __int32_t th_tid; /* transaction id (unused) */ ++ int32_t th_tid; /* transaction id (unused) */ + uint th_num_items; /* num items logged by trans */ + } xfs_trans_header_t; + +@@ -265,52 +265,52 @@ typedef struct xfs_trans_header { + * must be added on to the end. + */ + typedef struct xfs_inode_log_format { +- __uint16_t ilf_type; /* inode log item type */ +- __uint16_t ilf_size; /* size of this item */ +- __uint32_t ilf_fields; /* flags for fields logged */ +- __uint16_t ilf_asize; /* size of attr d/ext/root */ +- __uint16_t ilf_dsize; /* size of data/ext/root */ +- __uint64_t ilf_ino; /* inode number */ ++ uint16_t ilf_type; /* inode log item type */ ++ uint16_t ilf_size; /* size of this item */ ++ uint32_t ilf_fields; /* flags for fields logged */ ++ uint16_t ilf_asize; /* size of attr d/ext/root */ ++ uint16_t ilf_dsize; /* size of data/ext/root */ ++ uint64_t ilf_ino; /* inode number */ + union { +- __uint32_t ilfu_rdev; /* rdev value for dev inode*/ ++ uint32_t ilfu_rdev; /* rdev value for dev inode*/ + uuid_t ilfu_uuid; /* mount point value */ + } ilf_u; +- __int64_t ilf_blkno; /* blkno of inode buffer */ +- __int32_t ilf_len; /* len of inode buffer */ +- __int32_t ilf_boffset; /* off of inode in buffer */ ++ int64_t ilf_blkno; /* blkno of inode buffer */ ++ int32_t ilf_len; /* len of inode buffer */ ++ int32_t ilf_boffset; /* off of inode in buffer */ + } xfs_inode_log_format_t; + + typedef struct xfs_inode_log_format_32 { +- __uint16_t ilf_type; /* inode log item type */ +- __uint16_t ilf_size; /* size of this item */ +- __uint32_t ilf_fields; /* flags for fields logged */ +- __uint16_t ilf_asize; /* size of attr d/ext/root */ +- __uint16_t ilf_dsize; /* size of data/ext/root */ +- __uint64_t ilf_ino; /* inode number */ ++ uint16_t ilf_type; /* inode log item type */ ++ uint16_t ilf_size; /* size of this item */ ++ uint32_t ilf_fields; /* flags for fields logged */ ++ uint16_t ilf_asize; /* size of attr d/ext/root */ ++ uint16_t ilf_dsize; /* size of data/ext/root */ ++ uint64_t ilf_ino; /* inode number */ + union { +- __uint32_t ilfu_rdev; /* rdev value for dev inode*/ ++ uint32_t ilfu_rdev; /* rdev value for dev inode*/ + uuid_t ilfu_uuid; /* mount point value */ + } ilf_u; +- __int64_t ilf_blkno; /* blkno of inode buffer */ +- __int32_t ilf_len; /* len of inode buffer */ +- __int32_t ilf_boffset; /* off of inode in buffer */ ++ int64_t ilf_blkno; /* blkno of inode buffer */ ++ int32_t ilf_len; /* len of inode buffer */ ++ int32_t ilf_boffset; /* off of inode in buffer */ + } __attribute__((packed)) xfs_inode_log_format_32_t; + + typedef struct xfs_inode_log_format_64 { +- __uint16_t ilf_type; /* inode log item type */ +- __uint16_t ilf_size; /* size of this item */ +- __uint32_t ilf_fields; /* flags for fields logged */ +- __uint16_t ilf_asize; /* size of attr d/ext/root */ +- __uint16_t ilf_dsize; /* size of data/ext/root */ +- __uint32_t ilf_pad; /* pad for 64 bit boundary */ +- __uint64_t ilf_ino; /* inode number */ ++ uint16_t ilf_type; /* inode log item type */ ++ uint16_t ilf_size; /* size of this item */ ++ uint32_t ilf_fields; /* flags for fields logged */ ++ uint16_t ilf_asize; /* size of attr d/ext/root */ ++ uint16_t ilf_dsize; /* size of data/ext/root */ ++ uint32_t ilf_pad; /* pad for 64 bit boundary */ ++ uint64_t ilf_ino; /* inode number */ + union { +- __uint32_t ilfu_rdev; /* rdev value for dev inode*/ ++ uint32_t ilfu_rdev; /* rdev value for dev inode*/ + uuid_t ilfu_uuid; /* mount point value */ + } ilf_u; +- __int64_t ilf_blkno; /* blkno of inode buffer */ +- __int32_t ilf_len; /* len of inode buffer */ +- __int32_t ilf_boffset; /* off of inode in buffer */ ++ int64_t ilf_blkno; /* blkno of inode buffer */ ++ int32_t ilf_len; /* len of inode buffer */ ++ int32_t ilf_boffset; /* off of inode in buffer */ + } xfs_inode_log_format_64_t; + + +@@ -379,8 +379,8 @@ static inline int xfs_ilog_fdata(int w) + * information. + */ + typedef struct xfs_ictimestamp { +- __int32_t t_sec; /* timestamp seconds */ +- __int32_t t_nsec; /* timestamp nanoseconds */ ++ int32_t t_sec; /* timestamp seconds */ ++ int32_t t_nsec; /* timestamp nanoseconds */ + } xfs_ictimestamp_t; + + /* +@@ -388,18 +388,18 @@ typedef struct xfs_ictimestamp { + * kept identical to struct xfs_dinode except for the endianness annotations. + */ + struct xfs_log_dinode { +- __uint16_t di_magic; /* inode magic # = XFS_DINODE_MAGIC */ +- __uint16_t di_mode; /* mode and type of file */ +- __int8_t di_version; /* inode version */ +- __int8_t di_format; /* format of di_c data */ +- __uint8_t di_pad3[2]; /* unused in v2/3 inodes */ +- __uint32_t di_uid; /* owner's user id */ +- __uint32_t di_gid; /* owner's group id */ +- __uint32_t di_nlink; /* number of links to file */ +- __uint16_t di_projid_lo; /* lower part of owner's project id */ +- __uint16_t di_projid_hi; /* higher part of owner's project id */ +- __uint8_t di_pad[6]; /* unused, zeroed space */ +- __uint16_t di_flushiter; /* incremented on flush */ ++ uint16_t di_magic; /* inode magic # = XFS_DINODE_MAGIC */ ++ uint16_t di_mode; /* mode and type of file */ ++ int8_t di_version; /* inode version */ ++ int8_t di_format; /* format of di_c data */ ++ uint8_t di_pad3[2]; /* unused in v2/3 inodes */ ++ uint32_t di_uid; /* owner's user id */ ++ uint32_t di_gid; /* owner's group id */ ++ uint32_t di_nlink; /* number of links to file */ ++ uint16_t di_projid_lo; /* lower part of owner's project id */ ++ uint16_t di_projid_hi; /* higher part of owner's project id */ ++ uint8_t di_pad[6]; /* unused, zeroed space */ ++ uint16_t di_flushiter; /* incremented on flush */ + xfs_ictimestamp_t di_atime; /* time last accessed */ + xfs_ictimestamp_t di_mtime; /* time last modified */ + xfs_ictimestamp_t di_ctime; /* time created/inode modified */ +@@ -408,23 +408,23 @@ struct xfs_log_dinode { + xfs_extlen_t di_extsize; /* basic/minimum extent size for file */ + xfs_extnum_t di_nextents; /* number of extents in data fork */ + xfs_aextnum_t di_anextents; /* number of extents in attribute fork*/ +- __uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */ +- __int8_t di_aformat; /* format of attr fork's data */ +- __uint32_t di_dmevmask; /* DMIG event mask */ +- __uint16_t di_dmstate; /* DMIG state info */ +- __uint16_t di_flags; /* random flags, XFS_DIFLAG_... */ +- __uint32_t di_gen; /* generation number */ ++ uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */ ++ int8_t di_aformat; /* format of attr fork's data */ ++ uint32_t di_dmevmask; /* DMIG event mask */ ++ uint16_t di_dmstate; /* DMIG state info */ ++ uint16_t di_flags; /* random flags, XFS_DIFLAG_... */ ++ uint32_t di_gen; /* generation number */ + + /* di_next_unlinked is the only non-core field in the old dinode */ + xfs_agino_t di_next_unlinked;/* agi unlinked list ptr */ + + /* start of the extended dinode, writable fields */ +- __uint32_t di_crc; /* CRC of the inode */ +- __uint64_t di_changecount; /* number of attribute changes */ ++ uint32_t di_crc; /* CRC of the inode */ ++ uint64_t di_changecount; /* number of attribute changes */ + xfs_lsn_t di_lsn; /* flush sequence */ +- __uint64_t di_flags2; /* more random flags */ +- __uint32_t di_cowextsize; /* basic cow extent size for file */ +- __uint8_t di_pad2[12]; /* more padding for future expansion */ ++ uint64_t di_flags2; /* more random flags */ ++ uint32_t di_cowextsize; /* basic cow extent size for file */ ++ uint8_t di_pad2[12]; /* more padding for future expansion */ + + /* fields only written to during inode creation */ + xfs_ictimestamp_t di_crtime; /* time created */ +@@ -483,7 +483,7 @@ typedef struct xfs_buf_log_format { + unsigned short blf_size; /* size of this item */ + unsigned short blf_flags; /* misc state */ + unsigned short blf_len; /* number of blocks in this buf */ +- __int64_t blf_blkno; /* starting blkno of this buf */ ++ int64_t blf_blkno; /* starting blkno of this buf */ + unsigned int blf_map_size; /* used size of data bitmap in words */ + unsigned int blf_data_map[XFS_BLF_DATAMAP_SIZE]; /* dirty bitmap */ + } xfs_buf_log_format_t; +@@ -533,7 +533,7 @@ xfs_blft_to_flags(struct xfs_buf_log_format *blf, enum xfs_blft type) + blf->blf_flags |= ((type << XFS_BLFT_SHIFT) & XFS_BLFT_MASK); + } + +-static inline __uint16_t ++static inline uint16_t + xfs_blft_from_flags(struct xfs_buf_log_format *blf) + { + return (blf->blf_flags & XFS_BLFT_MASK) >> XFS_BLFT_SHIFT; +@@ -554,14 +554,14 @@ typedef struct xfs_extent { + * conversion routine. + */ + typedef struct xfs_extent_32 { +- __uint64_t ext_start; +- __uint32_t ext_len; ++ uint64_t ext_start; ++ uint32_t ext_len; + } __attribute__((packed)) xfs_extent_32_t; + + typedef struct xfs_extent_64 { +- __uint64_t ext_start; +- __uint32_t ext_len; +- __uint32_t ext_pad; ++ uint64_t ext_start; ++ uint32_t ext_len; ++ uint32_t ext_pad; + } xfs_extent_64_t; + + /* +@@ -570,26 +570,26 @@ typedef struct xfs_extent_64 { + * size is given by efi_nextents. + */ + typedef struct xfs_efi_log_format { +- __uint16_t efi_type; /* efi log item type */ +- __uint16_t efi_size; /* size of this item */ +- __uint32_t efi_nextents; /* # extents to free */ +- __uint64_t efi_id; /* efi identifier */ ++ uint16_t efi_type; /* efi log item type */ ++ uint16_t efi_size; /* size of this item */ ++ uint32_t efi_nextents; /* # extents to free */ ++ uint64_t efi_id; /* efi identifier */ + xfs_extent_t efi_extents[1]; /* array of extents to free */ + } xfs_efi_log_format_t; + + typedef struct xfs_efi_log_format_32 { +- __uint16_t efi_type; /* efi log item type */ +- __uint16_t efi_size; /* size of this item */ +- __uint32_t efi_nextents; /* # extents to free */ +- __uint64_t efi_id; /* efi identifier */ ++ uint16_t efi_type; /* efi log item type */ ++ uint16_t efi_size; /* size of this item */ ++ uint32_t efi_nextents; /* # extents to free */ ++ uint64_t efi_id; /* efi identifier */ + xfs_extent_32_t efi_extents[1]; /* array of extents to free */ + } __attribute__((packed)) xfs_efi_log_format_32_t; + + typedef struct xfs_efi_log_format_64 { +- __uint16_t efi_type; /* efi log item type */ +- __uint16_t efi_size; /* size of this item */ +- __uint32_t efi_nextents; /* # extents to free */ +- __uint64_t efi_id; /* efi identifier */ ++ uint16_t efi_type; /* efi log item type */ ++ uint16_t efi_size; /* size of this item */ ++ uint32_t efi_nextents; /* # extents to free */ ++ uint64_t efi_id; /* efi identifier */ + xfs_extent_64_t efi_extents[1]; /* array of extents to free */ + } xfs_efi_log_format_64_t; + +@@ -599,26 +599,26 @@ typedef struct xfs_efi_log_format_64 { + * size is given by efd_nextents; + */ + typedef struct xfs_efd_log_format { +- __uint16_t efd_type; /* efd log item type */ +- __uint16_t efd_size; /* size of this item */ +- __uint32_t efd_nextents; /* # of extents freed */ +- __uint64_t efd_efi_id; /* id of corresponding efi */ ++ uint16_t efd_type; /* efd log item type */ ++ uint16_t efd_size; /* size of this item */ ++ uint32_t efd_nextents; /* # of extents freed */ ++ uint64_t efd_efi_id; /* id of corresponding efi */ + xfs_extent_t efd_extents[1]; /* array of extents freed */ + } xfs_efd_log_format_t; + + typedef struct xfs_efd_log_format_32 { +- __uint16_t efd_type; /* efd log item type */ +- __uint16_t efd_size; /* size of this item */ +- __uint32_t efd_nextents; /* # of extents freed */ +- __uint64_t efd_efi_id; /* id of corresponding efi */ ++ uint16_t efd_type; /* efd log item type */ ++ uint16_t efd_size; /* size of this item */ ++ uint32_t efd_nextents; /* # of extents freed */ ++ uint64_t efd_efi_id; /* id of corresponding efi */ + xfs_extent_32_t efd_extents[1]; /* array of extents freed */ + } __attribute__((packed)) xfs_efd_log_format_32_t; + + typedef struct xfs_efd_log_format_64 { +- __uint16_t efd_type; /* efd log item type */ +- __uint16_t efd_size; /* size of this item */ +- __uint32_t efd_nextents; /* # of extents freed */ +- __uint64_t efd_efi_id; /* id of corresponding efi */ ++ uint16_t efd_type; /* efd log item type */ ++ uint16_t efd_size; /* size of this item */ ++ uint32_t efd_nextents; /* # of extents freed */ ++ uint64_t efd_efi_id; /* id of corresponding efi */ + xfs_extent_64_t efd_extents[1]; /* array of extents freed */ + } xfs_efd_log_format_64_t; + +@@ -626,11 +626,11 @@ typedef struct xfs_efd_log_format_64 { + * RUI/RUD (reverse mapping) log format definitions + */ + struct xfs_map_extent { +- __uint64_t me_owner; +- __uint64_t me_startblock; +- __uint64_t me_startoff; +- __uint32_t me_len; +- __uint32_t me_flags; ++ uint64_t me_owner; ++ uint64_t me_startblock; ++ uint64_t me_startoff; ++ uint32_t me_len; ++ uint32_t me_flags; + }; + + /* rmap me_flags: upper bits are flags, lower byte is type code */ +@@ -659,10 +659,10 @@ struct xfs_map_extent { + * size is given by rui_nextents. + */ + struct xfs_rui_log_format { +- __uint16_t rui_type; /* rui log item type */ +- __uint16_t rui_size; /* size of this item */ +- __uint32_t rui_nextents; /* # extents to free */ +- __uint64_t rui_id; /* rui identifier */ ++ uint16_t rui_type; /* rui log item type */ ++ uint16_t rui_size; /* size of this item */ ++ uint32_t rui_nextents; /* # extents to free */ ++ uint64_t rui_id; /* rui identifier */ + struct xfs_map_extent rui_extents[]; /* array of extents to rmap */ + }; + +@@ -680,19 +680,19 @@ xfs_rui_log_format_sizeof( + * size is given by rud_nextents; + */ + struct xfs_rud_log_format { +- __uint16_t rud_type; /* rud log item type */ +- __uint16_t rud_size; /* size of this item */ +- __uint32_t __pad; +- __uint64_t rud_rui_id; /* id of corresponding rui */ ++ uint16_t rud_type; /* rud log item type */ ++ uint16_t rud_size; /* size of this item */ ++ uint32_t __pad; ++ uint64_t rud_rui_id; /* id of corresponding rui */ + }; + + /* + * CUI/CUD (refcount update) log format definitions + */ + struct xfs_phys_extent { +- __uint64_t pe_startblock; +- __uint32_t pe_len; +- __uint32_t pe_flags; ++ uint64_t pe_startblock; ++ uint32_t pe_len; ++ uint32_t pe_flags; + }; + + /* refcount pe_flags: upper bits are flags, lower byte is type code */ +@@ -707,10 +707,10 @@ struct xfs_phys_extent { + * size is given by cui_nextents. + */ + struct xfs_cui_log_format { +- __uint16_t cui_type; /* cui log item type */ +- __uint16_t cui_size; /* size of this item */ +- __uint32_t cui_nextents; /* # extents to free */ +- __uint64_t cui_id; /* cui identifier */ ++ uint16_t cui_type; /* cui log item type */ ++ uint16_t cui_size; /* size of this item */ ++ uint32_t cui_nextents; /* # extents to free */ ++ uint64_t cui_id; /* cui identifier */ + struct xfs_phys_extent cui_extents[]; /* array of extents */ + }; + +@@ -728,10 +728,10 @@ xfs_cui_log_format_sizeof( + * size is given by cud_nextents; + */ + struct xfs_cud_log_format { +- __uint16_t cud_type; /* cud log item type */ +- __uint16_t cud_size; /* size of this item */ +- __uint32_t __pad; +- __uint64_t cud_cui_id; /* id of corresponding cui */ ++ uint16_t cud_type; /* cud log item type */ ++ uint16_t cud_size; /* size of this item */ ++ uint32_t __pad; ++ uint64_t cud_cui_id; /* id of corresponding cui */ + }; + + /* +@@ -755,10 +755,10 @@ struct xfs_cud_log_format { + * size is given by bui_nextents. + */ + struct xfs_bui_log_format { +- __uint16_t bui_type; /* bui log item type */ +- __uint16_t bui_size; /* size of this item */ +- __uint32_t bui_nextents; /* # extents to free */ +- __uint64_t bui_id; /* bui identifier */ ++ uint16_t bui_type; /* bui log item type */ ++ uint16_t bui_size; /* size of this item */ ++ uint32_t bui_nextents; /* # extents to free */ ++ uint64_t bui_id; /* bui identifier */ + struct xfs_map_extent bui_extents[]; /* array of extents to bmap */ + }; + +@@ -776,10 +776,10 @@ xfs_bui_log_format_sizeof( + * size is given by bud_nextents; + */ + struct xfs_bud_log_format { +- __uint16_t bud_type; /* bud log item type */ +- __uint16_t bud_size; /* size of this item */ +- __uint32_t __pad; +- __uint64_t bud_bui_id; /* id of corresponding bui */ ++ uint16_t bud_type; /* bud log item type */ ++ uint16_t bud_size; /* size of this item */ ++ uint32_t __pad; ++ uint64_t bud_bui_id; /* id of corresponding bui */ + }; + + /* +@@ -789,12 +789,12 @@ struct xfs_bud_log_format { + * 32 bits : log_recovery code assumes that. + */ + typedef struct xfs_dq_logformat { +- __uint16_t qlf_type; /* dquot log item type */ +- __uint16_t qlf_size; /* size of this item */ ++ uint16_t qlf_type; /* dquot log item type */ ++ uint16_t qlf_size; /* size of this item */ + xfs_dqid_t qlf_id; /* usr/grp/proj id : 32 bits */ +- __int64_t qlf_blkno; /* blkno of dquot buffer */ +- __int32_t qlf_len; /* len of dquot buffer */ +- __uint32_t qlf_boffset; /* off of dquot in buffer */ ++ int64_t qlf_blkno; /* blkno of dquot buffer */ ++ int32_t qlf_len; /* len of dquot buffer */ ++ uint32_t qlf_boffset; /* off of dquot in buffer */ + } xfs_dq_logformat_t; + + /* +@@ -853,8 +853,8 @@ typedef struct xfs_qoff_logformat { + * decoding can be done correctly. + */ + struct xfs_icreate_log { +- __uint16_t icl_type; /* type of log format structure */ +- __uint16_t icl_size; /* size of log format structure */ ++ uint16_t icl_type; /* type of log format structure */ ++ uint16_t icl_size; /* size of log format structure */ + __be32 icl_ag; /* ag being allocated in */ + __be32 icl_agbno; /* start block of inode range */ + __be32 icl_count; /* number of inodes to initialise */ +diff --git a/libxfs/xfs_quota_defs.h b/libxfs/xfs_quota_defs.h +index 8eed5127..d69c7722 100644 +--- a/libxfs/xfs_quota_defs.h ++++ b/libxfs/xfs_quota_defs.h +@@ -27,8 +27,8 @@ + * they may need 64-bit accounting. Hence, 64-bit quota-counters, + * and quota-limits. This is a waste in the common case, but hey ... + */ +-typedef __uint64_t xfs_qcnt_t; +-typedef __uint16_t xfs_qwarncnt_t; ++typedef uint64_t xfs_qcnt_t; ++typedef uint16_t xfs_qwarncnt_t; + + /* + * flags for q_flags field in the dquot. +diff --git a/libxfs/xfs_refcount_btree.c b/libxfs/xfs_refcount_btree.c +index 2814f94f..bd1a8f2d 100644 +--- a/libxfs/xfs_refcount_btree.c ++++ b/libxfs/xfs_refcount_btree.c +@@ -201,7 +201,7 @@ xfs_refcountbt_init_ptr_from_cur( + ptr->s = agf->agf_refcount_root; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_refcountbt_key_diff( + struct xfs_btree_cur *cur, + union xfs_btree_key *key) +@@ -209,16 +209,16 @@ xfs_refcountbt_key_diff( + struct xfs_refcount_irec *rec = &cur->bc_rec.rc; + struct xfs_refcount_key *kp = &key->refc; + +- return (__int64_t)be32_to_cpu(kp->rc_startblock) - rec->rc_startblock; ++ return (int64_t)be32_to_cpu(kp->rc_startblock) - rec->rc_startblock; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_refcountbt_diff_two_keys( + struct xfs_btree_cur *cur, + union xfs_btree_key *k1, + union xfs_btree_key *k2) + { +- return (__int64_t)be32_to_cpu(k1->refc.rc_startblock) - ++ return (int64_t)be32_to_cpu(k1->refc.rc_startblock) - + be32_to_cpu(k2->refc.rc_startblock); + } + +diff --git a/libxfs/xfs_rmap.c b/libxfs/xfs_rmap.c +index f78771d1..0d6b5d41 100644 +--- a/libxfs/xfs_rmap.c ++++ b/libxfs/xfs_rmap.c +@@ -2059,7 +2059,7 @@ int + xfs_rmap_finish_one( + struct xfs_trans *tp, + enum xfs_rmap_intent_type type, +- __uint64_t owner, ++ uint64_t owner, + int whichfork, + xfs_fileoff_t startoff, + xfs_fsblock_t startblock, +@@ -2180,7 +2180,7 @@ __xfs_rmap_add( + struct xfs_mount *mp, + struct xfs_defer_ops *dfops, + enum xfs_rmap_intent_type type, +- __uint64_t owner, ++ uint64_t owner, + int whichfork, + struct xfs_bmbt_irec *bmap) + { +@@ -2264,7 +2264,7 @@ xfs_rmap_alloc_extent( + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len, +- __uint64_t owner) ++ uint64_t owner) + { + struct xfs_bmbt_irec bmap; + +@@ -2288,7 +2288,7 @@ xfs_rmap_free_extent( + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len, +- __uint64_t owner) ++ uint64_t owner) + { + struct xfs_bmbt_irec bmap; + +diff --git a/libxfs/xfs_rmap.h b/libxfs/xfs_rmap.h +index 98f908fe..265116d0 100644 +--- a/libxfs/xfs_rmap.h ++++ b/libxfs/xfs_rmap.h +@@ -179,7 +179,7 @@ enum xfs_rmap_intent_type { + struct xfs_rmap_intent { + struct list_head ri_list; + enum xfs_rmap_intent_type ri_type; +- __uint64_t ri_owner; ++ uint64_t ri_owner; + int ri_whichfork; + struct xfs_bmbt_irec ri_bmap; + }; +@@ -196,15 +196,15 @@ int xfs_rmap_convert_extent(struct xfs_mount *mp, struct xfs_defer_ops *dfops, + struct xfs_bmbt_irec *imap); + int xfs_rmap_alloc_extent(struct xfs_mount *mp, struct xfs_defer_ops *dfops, + xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len, +- __uint64_t owner); ++ uint64_t owner); + int xfs_rmap_free_extent(struct xfs_mount *mp, struct xfs_defer_ops *dfops, + xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len, +- __uint64_t owner); ++ uint64_t owner); + + void xfs_rmap_finish_one_cleanup(struct xfs_trans *tp, + struct xfs_btree_cur *rcur, int error); + int xfs_rmap_finish_one(struct xfs_trans *tp, enum xfs_rmap_intent_type type, +- __uint64_t owner, int whichfork, xfs_fileoff_t startoff, ++ uint64_t owner, int whichfork, xfs_fileoff_t startoff, + xfs_fsblock_t startblock, xfs_filblks_t blockcount, + xfs_exntst_t state, struct xfs_btree_cur **pcur); + +diff --git a/libxfs/xfs_rmap_btree.c b/libxfs/xfs_rmap_btree.c +index a186c872..45ac436f 100644 +--- a/libxfs/xfs_rmap_btree.c ++++ b/libxfs/xfs_rmap_btree.c +@@ -197,7 +197,7 @@ xfs_rmapbt_init_high_key_from_rec( + union xfs_btree_key *key, + union xfs_btree_rec *rec) + { +- __uint64_t off; ++ uint64_t off; + int adj; + + adj = be32_to_cpu(rec->rmap.rm_blockcount) - 1; +@@ -239,7 +239,7 @@ xfs_rmapbt_init_ptr_from_cur( + ptr->s = agf->agf_roots[cur->bc_btnum]; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_rmapbt_key_diff( + struct xfs_btree_cur *cur, + union xfs_btree_key *key) +@@ -247,9 +247,9 @@ xfs_rmapbt_key_diff( + struct xfs_rmap_irec *rec = &cur->bc_rec.r; + struct xfs_rmap_key *kp = &key->rmap; + __u64 x, y; +- __int64_t d; ++ int64_t d; + +- d = (__int64_t)be32_to_cpu(kp->rm_startblock) - rec->rm_startblock; ++ d = (int64_t)be32_to_cpu(kp->rm_startblock) - rec->rm_startblock; + if (d) + return d; + +@@ -269,7 +269,7 @@ xfs_rmapbt_key_diff( + return 0; + } + +-STATIC __int64_t ++STATIC int64_t + xfs_rmapbt_diff_two_keys( + struct xfs_btree_cur *cur, + union xfs_btree_key *k1, +@@ -277,10 +277,10 @@ xfs_rmapbt_diff_two_keys( + { + struct xfs_rmap_key *kp1 = &k1->rmap; + struct xfs_rmap_key *kp2 = &k2->rmap; +- __int64_t d; ++ int64_t d; + __u64 x, y; + +- d = (__int64_t)be32_to_cpu(kp1->rm_startblock) - ++ d = (int64_t)be32_to_cpu(kp1->rm_startblock) - + be32_to_cpu(kp2->rm_startblock); + if (d) + return d; +@@ -382,10 +382,10 @@ xfs_rmapbt_keys_inorder( + union xfs_btree_key *k1, + union xfs_btree_key *k2) + { +- __uint32_t x; +- __uint32_t y; +- __uint64_t a; +- __uint64_t b; ++ uint32_t x; ++ uint32_t y; ++ uint64_t a; ++ uint64_t b; + + x = be32_to_cpu(k1->rmap.rm_startblock); + y = be32_to_cpu(k2->rmap.rm_startblock); +@@ -412,10 +412,10 @@ xfs_rmapbt_recs_inorder( + union xfs_btree_rec *r1, + union xfs_btree_rec *r2) + { +- __uint32_t x; +- __uint32_t y; +- __uint64_t a; +- __uint64_t b; ++ uint32_t x; ++ uint32_t y; ++ uint64_t a; ++ uint64_t b; + + x = be32_to_cpu(r1->rmap.rm_startblock); + y = be32_to_cpu(r2->rmap.rm_startblock); +diff --git a/libxfs/xfs_rtbitmap.c b/libxfs/xfs_rtbitmap.c +index dbd2f881..8f8a99d6 100644 +--- a/libxfs/xfs_rtbitmap.c ++++ b/libxfs/xfs_rtbitmap.c +@@ -1006,7 +1006,7 @@ xfs_rtfree_extent( + mp->m_sb.sb_rextents) { + if (!(mp->m_rbmip->i_d.di_flags & XFS_DIFLAG_NEWRTBM)) + mp->m_rbmip->i_d.di_flags |= XFS_DIFLAG_NEWRTBM; +- *(__uint64_t *)&VFS_I(mp->m_rbmip)->i_atime = 0; ++ *(uint64_t *)&VFS_I(mp->m_rbmip)->i_atime = 0; + xfs_trans_log_inode(tp, mp->m_rbmip, XFS_ILOG_CORE); + } + return 0; +diff --git a/libxfs/xfs_sb.c b/libxfs/xfs_sb.c +index 93a18190..51f69704 100644 +--- a/libxfs/xfs_sb.c ++++ b/libxfs/xfs_sb.c +@@ -430,7 +430,7 @@ xfs_sb_quota_to_disk( + struct xfs_dsb *to, + struct xfs_sb *from) + { +- __uint16_t qflags = from->sb_qflags; ++ uint16_t qflags = from->sb_qflags; + + to->sb_uquotino = cpu_to_be64(from->sb_uquotino); + if (xfs_sb_version_has_pquotino(from)) { +@@ -738,7 +738,7 @@ xfs_sb_mount_common( + mp->m_refc_mnr[1] = mp->m_refc_mxr[1] / 2; + + mp->m_bsize = XFS_FSB_TO_BB(mp, 1); +- mp->m_ialloc_inos = (int)MAX((__uint16_t)XFS_INODES_PER_CHUNK, ++ mp->m_ialloc_inos = (int)MAX((uint16_t)XFS_INODES_PER_CHUNK, + sbp->sb_inopblock); + mp->m_ialloc_blks = mp->m_ialloc_inos >> sbp->sb_inopblog; + +diff --git a/libxfs/xfs_types.h b/libxfs/xfs_types.h +index 717909f2..0220159b 100644 +--- a/libxfs/xfs_types.h ++++ b/libxfs/xfs_types.h +@@ -18,34 +18,34 @@ + #ifndef __XFS_TYPES_H__ + #define __XFS_TYPES_H__ + +-typedef __uint32_t prid_t; /* project ID */ ++typedef uint32_t prid_t; /* project ID */ + +-typedef __uint32_t xfs_agblock_t; /* blockno in alloc. group */ +-typedef __uint32_t xfs_agino_t; /* inode # within allocation grp */ +-typedef __uint32_t xfs_extlen_t; /* extent length in blocks */ +-typedef __uint32_t xfs_agnumber_t; /* allocation group number */ +-typedef __int32_t xfs_extnum_t; /* # of extents in a file */ +-typedef __int16_t xfs_aextnum_t; /* # extents in an attribute fork */ +-typedef __int64_t xfs_fsize_t; /* bytes in a file */ +-typedef __uint64_t xfs_ufsize_t; /* unsigned bytes in a file */ ++typedef uint32_t xfs_agblock_t; /* blockno in alloc. group */ ++typedef uint32_t xfs_agino_t; /* inode # within allocation grp */ ++typedef uint32_t xfs_extlen_t; /* extent length in blocks */ ++typedef uint32_t xfs_agnumber_t; /* allocation group number */ ++typedef int32_t xfs_extnum_t; /* # of extents in a file */ ++typedef int16_t xfs_aextnum_t; /* # extents in an attribute fork */ ++typedef int64_t xfs_fsize_t; /* bytes in a file */ ++typedef uint64_t xfs_ufsize_t; /* unsigned bytes in a file */ + +-typedef __int32_t xfs_suminfo_t; /* type of bitmap summary info */ +-typedef __int32_t xfs_rtword_t; /* word type for bitmap manipulations */ ++typedef int32_t xfs_suminfo_t; /* type of bitmap summary info */ ++typedef int32_t xfs_rtword_t; /* word type for bitmap manipulations */ + +-typedef __int64_t xfs_lsn_t; /* log sequence number */ +-typedef __int32_t xfs_tid_t; /* transaction identifier */ ++typedef int64_t xfs_lsn_t; /* log sequence number */ ++typedef int32_t xfs_tid_t; /* transaction identifier */ + +-typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ +-typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */ ++typedef uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ ++typedef uint32_t xfs_dahash_t; /* dir/attr hash value */ + +-typedef __uint64_t xfs_fsblock_t; /* blockno in filesystem (agno|agbno) */ +-typedef __uint64_t xfs_rfsblock_t; /* blockno in filesystem (raw) */ +-typedef __uint64_t xfs_rtblock_t; /* extent (block) in realtime area */ +-typedef __uint64_t xfs_fileoff_t; /* block number in a file */ +-typedef __uint64_t xfs_filblks_t; /* number of blocks in a file */ ++typedef uint64_t xfs_fsblock_t; /* blockno in filesystem (agno|agbno) */ ++typedef uint64_t xfs_rfsblock_t; /* blockno in filesystem (raw) */ ++typedef uint64_t xfs_rtblock_t; /* extent (block) in realtime area */ ++typedef uint64_t xfs_fileoff_t; /* block number in a file */ ++typedef uint64_t xfs_filblks_t; /* number of blocks in a file */ + +-typedef __int64_t xfs_srtblock_t; /* signed version of xfs_rtblock_t */ +-typedef __int64_t xfs_sfiloff_t; /* signed block number in a file */ ++typedef int64_t xfs_srtblock_t; /* signed version of xfs_rtblock_t */ ++typedef int64_t xfs_sfiloff_t; /* signed block number in a file */ + + /* + * Null values for the types. +@@ -125,7 +125,7 @@ struct xfs_name { + * uid_t and gid_t are hard-coded to 32 bits in the inode. + * Hence, an 'id' in a dquot is 32 bits.. + */ +-typedef __uint32_t xfs_dqid_t; ++typedef uint32_t xfs_dqid_t; + + /* + * Constants for bit manipulations. +-- +2.14.1 + diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/0001-xfsprogs-remove-double-underscore-integer-types.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0001-xfsprogs-remove-double-underscore-integer-types.patch new file mode 100644 index 00000000000..5e08f0d840f --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/0001-xfsprogs-remove-double-underscore-integer-types.patch @@ -0,0 +1,3800 @@ +From 14f8b6810bd240cc58131483790a099fcf56c073 Mon Sep 17 00:00:00 2001 +From: "Darrick J. Wong" +Date: Fri, 4 Aug 2017 16:33:51 -0500 +Subject: [PATCH] xfsprogs: remove double-underscore integer types + +This is a purely mechanical patch that removes the private +__{u,}int{8,16,32,64}_t typedefs in favor of using the system +{u,}int{8,16,32,64}_t typedefs. This is the sed script used to perform +the transformation and fix the resulting whitespace and indentation +errors: + +s/typedef\t__uint8_t/typedef __uint8_t\t/g +s/typedef\t__uint/typedef __uint/g +s/typedef\t__int\([0-9]*\)_t/typedef int\1_t\t/g +s/__uint8_t\t/__uint8_t\t\t/g +s/__uint/uint/g +s/__int\([0-9]*\)_t\t/__int\1_t\t\t/g +s/__int/int/g +/^typedef.*int[0-9]*_t;$/d + +Signed-off-by: Darrick J. Wong +Reviewed-by: Carlos Maiolino +[sandeen: fix whitespace incidentals] +Reviewed-by: Darrick J. Wong +Signed-off-by: Eric Sandeen +--- + copy/xfs_copy.c | 14 ++++----- + copy/xfs_copy.h | 2 +- + db/attr.c | 8 ++--- + db/attrshort.c | 4 +-- + db/bit.c | 4 +-- + db/bit.h | 2 +- + db/block.c | 8 ++--- + db/check.c | 18 +++++------ + db/convert.c | 28 ++++++++--------- + db/faddr.c | 14 ++++----- + db/field.c | 44 +++++++++++++-------------- + db/fprint.c | 8 ++--- + db/frag.c | 8 ++--- + db/inode.c | 34 ++++++++++----------- + db/io.c | 2 +- + db/io.h | 6 ++-- + db/metadump.c | 12 ++++---- + db/sb.c | 6 ++-- + fsr/xfs_fsr.c | 2 +- + include/darwin.h | 18 +++++------ + include/freebsd.h | 6 ++-- + include/gnukfreebsd.h | 6 ++-- + include/libxcmd.h | 6 ++-- + include/linux.h | 8 ++--- + include/xfs_arch.h | 22 +++++++------- + include/xfs_inode.h | 4 +-- + include/xfs_log_recover.h | 2 +- + include/xfs_metadump.h | 4 +-- + include/xfs_mount.h | 22 +++++++------- + libhandle/handle.c | 2 +- + libhandle/jdm.c | 2 +- + libxcmd/topology.c | 14 ++++----- + libxfs/darwin.c | 2 +- + libxfs/freebsd.c | 2 +- + libxfs/init.c | 2 +- + libxfs/irix.c | 2 +- + libxfs/libxfs_priv.h | 4 +-- + libxfs/linux.c | 2 +- + libxfs/logitem.c | 2 +- + libxfs/radix-tree.c | 8 ++--- + libxfs/rdwr.c | 6 ++-- + libxfs/util.c | 8 ++--- + logprint/log_misc.c | 6 ++-- + mdrestore/xfs_mdrestore.c | 2 +- + mkfs/proto.c | 2 +- + mkfs/xfs_mkfs.c | 76 +++++++++++++++++++++++------------------------ + quota/edit.c | 64 +++++++++++++++++++-------------------- + quota/free.c | 44 +++++++++++++-------------- + quota/quot.c | 24 +++++++-------- + quota/quota.c | 4 +-- + quota/quota.h | 12 ++++---- + quota/report.c | 4 +-- + quota/state.c | 2 +- + quota/util.c | 66 ++++++++++++++++++++-------------------- + repair/README | 2 +- + repair/agheader.h | 14 ++++----- + repair/attr_repair.h | 26 ++++++++-------- + repair/avl64.c | 38 ++++++++++++------------ + repair/avl64.h | 18 +++++------ + repair/dinode.c | 38 ++++++++++++------------ + repair/dinode.h | 4 +-- + repair/dir2.c | 2 +- + repair/globals.h | 18 +++++------ + repair/incore.c | 10 +++---- + repair/incore.h | 46 ++++++++++++++-------------- + repair/incore_ext.c | 6 ++-- + repair/incore_ino.c | 72 ++++++++++++++++++++++---------------------- + repair/phase2.c | 2 +- + repair/phase3.c | 6 ++-- + repair/phase4.c | 4 +-- + repair/phase5.c | 28 ++++++++--------- + repair/phase6.c | 16 +++++----- + repair/phase7.c | 6 ++-- + repair/progress.c | 30 +++++++++---------- + repair/progress.h | 4 +-- + repair/rmap.c | 18 +++++------ + repair/rmap.h | 2 +- + repair/sb.c | 24 +++++++-------- + repair/scan.c | 50 +++++++++++++++---------------- + repair/scan.h | 12 ++++---- + 80 files changed, 590 insertions(+), 590 deletions(-) + +diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c +index a7da824f..33e05dfd 100644 +--- a/copy/xfs_copy.c ++++ b/copy/xfs_copy.c +@@ -43,7 +43,7 @@ unsigned int source_sectorsize; /* source disk sectorsize */ + + xfs_agblock_t first_agbno; + +-__uint64_t barcount[11]; ++uint64_t barcount[11]; + + unsigned int num_targets; + target_control *target; +@@ -313,7 +313,7 @@ usage(void) + } + + void +-init_bar(__uint64_t source_blocks) ++init_bar(uint64_t source_blocks) + { + int i; + +@@ -322,7 +322,7 @@ init_bar(__uint64_t source_blocks) + } + + int +-bump_bar(int tenths, __uint64_t numblocks) ++bump_bar(int tenths, uint64_t numblocks) + { + static char *bar[11] = { + " 0% ", +@@ -534,8 +534,8 @@ main(int argc, char **argv) + xfs_off_t pos; + size_t length; + int c; +- __uint64_t size, sizeb; +- __uint64_t numblocks = 0; ++ uint64_t size, sizeb; ++ uint64_t numblocks = 0; + int wblocks = 0; + int num_threads = 0; + struct dioattr d; +@@ -951,8 +951,8 @@ main(int argc, char **argv) + num_ags = mp->m_sb.sb_agcount; + + init_bar(mp->m_sb.sb_blocksize / BBSIZE +- * ((__uint64_t)mp->m_sb.sb_dblocks +- - (__uint64_t)mp->m_sb.sb_fdblocks + 10 * num_ags)); ++ * ((uint64_t)mp->m_sb.sb_dblocks ++ - (uint64_t)mp->m_sb.sb_fdblocks + 10 * num_ags)); + + kids = num_targets; + +diff --git a/copy/xfs_copy.h b/copy/xfs_copy.h +index 27370688..53c6e42c 100644 +--- a/copy/xfs_copy.h ++++ b/copy/xfs_copy.h +@@ -76,7 +76,7 @@ typedef struct { + + typedef int thread_id; + typedef int tm_index; /* index into thread mask array */ +-typedef __uint32_t thread_mask; /* a thread mask */ ++typedef uint32_t thread_mask; /* a thread mask */ + + typedef struct { + char *name; +diff --git a/db/attr.c b/db/attr.c +index 31536a8b..23ffcd5f 100644 +--- a/db/attr.c ++++ b/db/attr.c +@@ -77,16 +77,16 @@ const field_t attr_leaf_entry_flds[] = { + { "nameidx", FLDT_UINT16D, OI(LEOFF(nameidx)), C1, 0, TYP_NONE }, + { "flags", FLDT_UINT8X, OI(LEOFF(flags)), C1, FLD_SKIPALL, TYP_NONE }, + { "incomplete", FLDT_UINT1, +- OI(LEOFF(flags) + bitsz(__uint8_t) - XFS_ATTR_INCOMPLETE_BIT - 1), C1, ++ OI(LEOFF(flags) + bitsz(uint8_t) - XFS_ATTR_INCOMPLETE_BIT - 1), C1, + 0, TYP_NONE }, + { "root", FLDT_UINT1, +- OI(LEOFF(flags) + bitsz(__uint8_t) - XFS_ATTR_ROOT_BIT - 1), C1, 0, ++ OI(LEOFF(flags) + bitsz(uint8_t) - XFS_ATTR_ROOT_BIT - 1), C1, 0, + TYP_NONE }, + { "secure", FLDT_UINT1, +- OI(LEOFF(flags) + bitsz(__uint8_t) - XFS_ATTR_SECURE_BIT - 1), C1, 0, ++ OI(LEOFF(flags) + bitsz(uint8_t) - XFS_ATTR_SECURE_BIT - 1), C1, 0, + TYP_NONE }, + { "local", FLDT_UINT1, +- OI(LEOFF(flags) + bitsz(__uint8_t) - XFS_ATTR_LOCAL_BIT - 1), C1, 0, ++ OI(LEOFF(flags) + bitsz(uint8_t) - XFS_ATTR_LOCAL_BIT - 1), C1, 0, + TYP_NONE }, + { "pad2", FLDT_UINT8X, OI(LEOFF(pad2)), C1, FLD_SKIPALL, TYP_NONE }, + { NULL } +diff --git a/db/attrshort.c b/db/attrshort.c +index d82559cc..2ef358f5 100644 +--- a/db/attrshort.c ++++ b/db/attrshort.c +@@ -51,10 +51,10 @@ const field_t attr_sf_entry_flds[] = { + { "valuelen", FLDT_UINT8D, OI(EOFF(valuelen)), C1, 0, TYP_NONE }, + { "flags", FLDT_UINT8X, OI(EOFF(flags)), C1, FLD_SKIPALL, TYP_NONE }, + { "root", FLDT_UINT1, +- OI(EOFF(flags) + bitsz(__uint8_t) - XFS_ATTR_ROOT_BIT - 1), C1, 0, ++ OI(EOFF(flags) + bitsz(uint8_t) - XFS_ATTR_ROOT_BIT - 1), C1, 0, + TYP_NONE }, + { "secure", FLDT_UINT1, +- OI(EOFF(flags) + bitsz(__uint8_t) - XFS_ATTR_SECURE_BIT - 1), C1, 0, ++ OI(EOFF(flags) + bitsz(uint8_t) - XFS_ATTR_SECURE_BIT - 1), C1, 0, + TYP_NONE }, + { "name", FLDT_CHARNS, OI(EOFF(nameval)), attr_sf_entry_name_count, + FLD_COUNT, TYP_NONE }, +diff --git a/db/bit.c b/db/bit.c +index 24872bf7..f5ebf681 100644 +--- a/db/bit.c ++++ b/db/bit.c +@@ -60,7 +60,7 @@ setbit( + } + } + +-__int64_t ++int64_t + getbitval( + void *obj, + int bitoff, +@@ -70,7 +70,7 @@ getbitval( + int bit; + int i; + char *p; +- __int64_t rval; ++ int64_t rval; + int signext; + int z1, z2, z3, z4; + +diff --git a/db/bit.h b/db/bit.h +index 80ba24c4..9fd71f4b 100644 +--- a/db/bit.h ++++ b/db/bit.h +@@ -25,5 +25,5 @@ + #define BVUNSIGNED 0 + #define BVSIGNED 1 + +-extern __int64_t getbitval(void *obj, int bitoff, int nbits, int flags); ++extern int64_t getbitval(void *obj, int bitoff, int nbits, int flags); + extern void setbitval(void *obuf, int bitoff, int nbits, void *ibuf); +diff --git a/db/block.c b/db/block.c +index 4a357ced..5ecd687a 100644 +--- a/db/block.c ++++ b/db/block.c +@@ -98,7 +98,7 @@ ablock_f( + } + dfsbno = bm.startblock + (bno - bm.startoff); + ASSERT(typtab[TYP_ATTR].typnm == TYP_ATTR); +- set_cur(&typtab[TYP_ATTR], (__int64_t)XFS_FSB_TO_DADDR(mp, dfsbno), ++ set_cur(&typtab[TYP_ATTR], (int64_t)XFS_FSB_TO_DADDR(mp, dfsbno), + blkbb, DB_RING_ADD, NULL); + return 0; + } +@@ -128,14 +128,14 @@ daddr_f( + int argc, + char **argv) + { +- __int64_t d; ++ int64_t d; + char *p; + + if (argc == 1) { + dbprintf(_("current daddr is %lld\n"), iocur_top->off >> BBSHIFT); + return 0; + } +- d = (__int64_t)strtoull(argv[1], &p, 0); ++ d = (int64_t)strtoull(argv[1], &p, 0); + if (*p != '\0' || + d >= mp->m_sb.sb_dblocks << (mp->m_sb.sb_blocklog - BBSHIFT)) { + dbprintf(_("bad daddr %s\n"), argv[1]); +@@ -197,7 +197,7 @@ dblock_f( + ASSERT(typtab[type].typnm == type); + if (nex > 1) + make_bbmap(&bbmap, nex, bmp); +- set_cur(&typtab[type], (__int64_t)XFS_FSB_TO_DADDR(mp, dfsbno), ++ set_cur(&typtab[type], (int64_t)XFS_FSB_TO_DADDR(mp, dfsbno), + nb * blkbb, DB_RING_ADD, nex > 1 ? &bbmap : NULL); + free(bmp); + return 0; +diff --git a/db/check.c b/db/check.c +index 8e618a23..81ba63a6 100644 +--- a/db/check.c ++++ b/db/check.c +@@ -114,8 +114,8 @@ typedef struct dirhash { + + static xfs_extlen_t agffreeblks; + static xfs_extlen_t agflongest; +-static __uint64_t agf_aggr_freeblks; /* aggregate count over all */ +-static __uint32_t agfbtreeblks; ++static uint64_t agf_aggr_freeblks; /* aggregate count over all */ ++static uint32_t agfbtreeblks; + static int lazycount; + static xfs_agino_t agicount; + static xfs_agino_t agifreecount; +@@ -124,10 +124,10 @@ static int blist_size; + static char **dbmap; /* really dbm_t:8 */ + static dirhash_t **dirhash; + static int error; +-static __uint64_t fdblocks; +-static __uint64_t frextents; +-static __uint64_t icount; +-static __uint64_t ifree; ++static uint64_t fdblocks; ++static uint64_t frextents; ++static uint64_t icount; ++static uint64_t ifree; + static inodata_t ***inodata; + static int inodata_hash_size; + static inodata_t ***inomap; +@@ -1187,7 +1187,7 @@ blocktrash_f( + goto out; + } + for (i = 0; i < count; i++) { +- randb = (xfs_rfsblock_t)((((__int64_t)random() << 32) | ++ randb = (xfs_rfsblock_t)((((int64_t)random() << 32) | + random()) % blocks); + for (bi = 0, agno = 0, done = 0; + !done && agno < mp->m_sb.sb_agcount; +@@ -3032,7 +3032,7 @@ process_leaf_node_dir_v2( + } + if (v) + dbprintf(_("dir inode %lld block %u=%llu\n"), id->ino, +- (__uint32_t)dbno, ++ (uint32_t)dbno, + (xfs_fsblock_t)bmp->startblock); + push_cur(); + if (nex > 1) +@@ -3045,7 +3045,7 @@ process_leaf_node_dir_v2( + if (!sflag || v) + dbprintf(_("can't read block %u for directory " + "inode %lld\n"), +- (__uint32_t)dbno, id->ino); ++ (uint32_t)dbno, id->ino); + error++; + pop_cur(); + dbno += mp->m_dir_geo->fsbcount - 1; +diff --git a/db/convert.c b/db/convert.c +index a337abea..fa4f9623 100644 +--- a/db/convert.c ++++ b/db/convert.c +@@ -24,13 +24,13 @@ + + #define M(A) (1 << CT_ ## A) + #define agblock_to_bytes(x) \ +- ((__uint64_t)(x) << mp->m_sb.sb_blocklog) ++ ((uint64_t)(x) << mp->m_sb.sb_blocklog) + #define agino_to_bytes(x) \ +- ((__uint64_t)(x) << mp->m_sb.sb_inodelog) ++ ((uint64_t)(x) << mp->m_sb.sb_inodelog) + #define agnumber_to_bytes(x) \ +- agblock_to_bytes((__uint64_t)(x) * mp->m_sb.sb_agblocks) ++ agblock_to_bytes((uint64_t)(x) * mp->m_sb.sb_agblocks) + #define daddr_to_bytes(x) \ +- ((__uint64_t)(x) << BBSHIFT) ++ ((uint64_t)(x) << BBSHIFT) + #define fsblock_to_bytes(x) \ + (agnumber_to_bytes(XFS_FSB_TO_AGNO(mp, (x))) + \ + agblock_to_bytes(XFS_FSB_TO_AGBNO(mp, (x)))) +@@ -38,7 +38,7 @@ + (agnumber_to_bytes(XFS_INO_TO_AGNO(mp, (x))) + \ + agino_to_bytes(XFS_INO_TO_AGINO(mp, (x)))) + #define inoidx_to_bytes(x) \ +- ((__uint64_t)(x) << mp->m_sb.sb_inodelog) ++ ((uint64_t)(x) << mp->m_sb.sb_inodelog) + + typedef enum { + CT_NONE = -1, +@@ -68,7 +68,7 @@ typedef union { + xfs_agnumber_t agnumber; + int bboff; + int blkoff; +- __uint64_t byte; ++ uint64_t byte; + xfs_daddr_t daddr; + xfs_fsblock_t fsblock; + xfs_ino_t ino; +@@ -76,7 +76,7 @@ typedef union { + int inooff; + } cval_t; + +-static __uint64_t bytevalue(ctype_t ctype, cval_t *val); ++static uint64_t bytevalue(ctype_t ctype, cval_t *val); + static int convert_f(int argc, char **argv); + static int getvalue(char *s, ctype_t ctype, cval_t *val); + static ctype_t lookupcty(char *ctyname); +@@ -118,7 +118,7 @@ static const cmdinfo_t convert_cmd = + { "convert", NULL, convert_f, 3, 9, 0, "type num [type num]... type", + "convert from one address form to another", NULL }; + +-static __uint64_t ++static uint64_t + bytevalue(ctype_t ctype, cval_t *val) + { + switch (ctype) { +@@ -129,9 +129,9 @@ bytevalue(ctype_t ctype, cval_t *val) + case CT_AGNUMBER: + return agnumber_to_bytes(val->agnumber); + case CT_BBOFF: +- return (__uint64_t)val->bboff; ++ return (uint64_t)val->bboff; + case CT_BLKOFF: +- return (__uint64_t)val->blkoff; ++ return (uint64_t)val->blkoff; + case CT_BYTE: + return val->byte; + case CT_DADDR: +@@ -143,7 +143,7 @@ bytevalue(ctype_t ctype, cval_t *val) + case CT_INOIDX: + return inoidx_to_bytes(val->inoidx); + case CT_INOOFF: +- return (__uint64_t)val->inooff; ++ return (uint64_t)val->inooff; + case CT_NONE: + case NCTS: + break; +@@ -160,7 +160,7 @@ convert_f(int argc, char **argv) + cval_t cvals[NCTS] = {}; + int i; + int mask; +- __uint64_t v; ++ uint64_t v; + ctype_t wtype; + + /* move past the "convert" command */ +@@ -262,7 +262,7 @@ static int + getvalue(char *s, ctype_t ctype, cval_t *val) + { + char *p; +- __uint64_t v; ++ uint64_t v; + + v = strtoull(s, &p, 0); + if (*p != '\0') { +@@ -286,7 +286,7 @@ getvalue(char *s, ctype_t ctype, cval_t *val) + val->blkoff = (int)v; + break; + case CT_BYTE: +- val->byte = (__uint64_t)v; ++ val->byte = (uint64_t)v; + break; + case CT_DADDR: + val->daddr = (xfs_daddr_t)v; +diff --git a/db/faddr.c b/db/faddr.c +index 877200bf..56207648 100644 +--- a/db/faddr.c ++++ b/db/faddr.c +@@ -79,11 +79,11 @@ fa_attrblock( + typnm_t next) + { + bmap_ext_t bm; +- __uint32_t bno; ++ uint32_t bno; + xfs_fsblock_t dfsbno; + int nex; + +- bno = (__uint32_t)getbitval(obj, bit, bitsz(bno), BVUNSIGNED); ++ bno = (uint32_t)getbitval(obj, bit, bitsz(bno), BVUNSIGNED); + if (bno == 0) { + dbprintf(_("null attribute block number, cannot set new addr\n")); + return; +@@ -96,7 +96,7 @@ fa_attrblock( + } + dfsbno = bm.startblock + (bno - bm.startoff); + ASSERT(typtab[next].typnm == next); +- set_cur(&typtab[next], (__int64_t)XFS_FSB_TO_DADDR(mp, dfsbno), blkbb, ++ set_cur(&typtab[next], (int64_t)XFS_FSB_TO_DADDR(mp, dfsbno), blkbb, + DB_RING_ADD, NULL); + } + +@@ -276,11 +276,11 @@ fa_dirblock( + { + bbmap_t bbmap; + bmap_ext_t *bmp; +- __uint32_t bno; ++ uint32_t bno; + xfs_fsblock_t dfsbno; + int nex; + +- bno = (__uint32_t)getbitval(obj, bit, bitsz(bno), BVUNSIGNED); ++ bno = (uint32_t)getbitval(obj, bit, bitsz(bno), BVUNSIGNED); + if (bno == 0) { + dbprintf(_("null directory block number, cannot set new addr\n")); + return; +@@ -297,7 +297,7 @@ fa_dirblock( + ASSERT(typtab[next].typnm == next); + if (nex > 1) + make_bbmap(&bbmap, nex, bmp); +- set_cur(&typtab[next], (__int64_t)XFS_FSB_TO_DADDR(mp, dfsbno), ++ set_cur(&typtab[next], (int64_t)XFS_FSB_TO_DADDR(mp, dfsbno), + XFS_FSB_TO_BB(mp, mp->m_dir_geo->fsbcount), DB_RING_ADD, + nex > 1 ? &bbmap : NULL); + free(bmp); +@@ -317,7 +317,7 @@ fa_drfsbno( + return; + } + ASSERT(typtab[next].typnm == next); +- set_cur(&typtab[next], (__int64_t)XFS_FSB_TO_BB(mp, bno), blkbb, ++ set_cur(&typtab[next], (int64_t)XFS_FSB_TO_BB(mp, bno), blkbb, + DB_RING_ADD, NULL); + } + +diff --git a/db/field.c b/db/field.c +index 865b0b71..f1e5f35e 100644 +--- a/db/field.c ++++ b/db/field.c +@@ -83,7 +83,7 @@ const ftattr_t ftattrtab[] = { + attr_sf_entry_size, FTARG_SIZE, NULL, attr_sf_entry_flds }, + { FLDT_ATTR_SF_HDR, "attr_sf_hdr", NULL, (char *)attr_sf_hdr_flds, + SI(bitsz(struct xfs_attr_sf_hdr)), 0, NULL, attr_sf_hdr_flds }, +- { FLDT_ATTRBLOCK, "attrblock", fp_num, "%u", SI(bitsz(__uint32_t)), 0, ++ { FLDT_ATTRBLOCK, "attrblock", fp_num, "%u", SI(bitsz(uint32_t)), 0, + fa_attrblock, NULL }, + { FLDT_ATTRSHORT, "attrshort", NULL, (char *)attr_shortform_flds, + attrshort_size, FTARG_SIZE, NULL, attr_shortform_flds }, +@@ -199,7 +199,7 @@ const ftattr_t ftattrtab[] = { + SI(bitsz(struct xfs_refcount_rec)), 0, NULL, refcbt_rec_flds }, + + /* CRC field */ +- { FLDT_CRC, "crc", fp_crc, "%#x (%s)", SI(bitsz(__uint32_t)), ++ { FLDT_CRC, "crc", fp_crc, "%#x (%s)", SI(bitsz(uint32_t)), + 0, NULL, NULL }, + + { FLDT_DEV, "dev", fp_num, "%#x", SI(bitsz(xfs_dev_t)), 0, NULL, NULL }, +@@ -214,7 +214,7 @@ const ftattr_t ftattrtab[] = { + { FLDT_DINODE_CORE, "dinode_core", NULL, (char *)inode_core_flds, + SI(bitsz(xfs_dinode_t)), 0, NULL, inode_core_flds }, + { FLDT_DINODE_FMT, "dinode_fmt", fp_dinode_fmt, NULL, +- SI(bitsz(__int8_t)), 0, NULL, NULL }, ++ SI(bitsz(int8_t)), 0, NULL, NULL }, + { FLDT_DINODE_U, "dinode_u", NULL, (char *)inode_u_flds, inode_u_size, + FTARG_SIZE|FTARG_OKEMPTY, NULL, inode_u_flds }, + { FLDT_DINODE_V3, "dinode_v3", NULL, (char *)inode_v3_flds, +@@ -295,7 +295,7 @@ const ftattr_t ftattrtab[] = { + { FLDT_DA3_NODE_HDR, "dir_node_hdr", NULL, (char *)da3_node_hdr_flds, + SI(bitsz(struct xfs_da3_node_hdr)), 0, NULL, da3_node_hdr_flds }, + +- { FLDT_DIRBLOCK, "dirblock", fp_num, "%u", SI(bitsz(__uint32_t)), 0, ++ { FLDT_DIRBLOCK, "dirblock", fp_num, "%u", SI(bitsz(uint32_t)), 0, + fa_dirblock, NULL }, + { FLDT_DISK_DQUOT, "disk_dquot", NULL, (char *)disk_dquot_flds, + SI(bitsz(xfs_disk_dquot_t)), 0, NULL, disk_dquot_flds }, +@@ -335,15 +335,15 @@ const ftattr_t ftattrtab[] = { + FTARG_SIZE, NULL, inode_crc_flds }, + { FLDT_INOFREE, "inofree", fp_num, "%#llx", SI(bitsz(xfs_inofree_t)), 0, + NULL, NULL }, +- { FLDT_INT16D, "int16d", fp_num, "%d", SI(bitsz(__int16_t)), ++ { FLDT_INT16D, "int16d", fp_num, "%d", SI(bitsz(int16_t)), + FTARG_SIGNED, NULL, NULL }, +- { FLDT_INT32D, "int32d", fp_num, "%d", SI(bitsz(__int32_t)), ++ { FLDT_INT32D, "int32d", fp_num, "%d", SI(bitsz(int32_t)), + FTARG_SIGNED, NULL, NULL }, +- { FLDT_INT64D, "int64d", fp_num, "%lld", SI(bitsz(__int64_t)), ++ { FLDT_INT64D, "int64d", fp_num, "%lld", SI(bitsz(int64_t)), + FTARG_SIGNED, NULL, NULL }, +- { FLDT_INT8D, "int8d", fp_num, "%d", SI(bitsz(__int8_t)), FTARG_SIGNED, ++ { FLDT_INT8D, "int8d", fp_num, "%d", SI(bitsz(int8_t)), FTARG_SIGNED, + NULL, NULL }, +- { FLDT_NSEC, "nsec", fp_num, "%09d", SI(bitsz(__int32_t)), FTARG_SIGNED, ++ { FLDT_NSEC, "nsec", fp_num, "%09d", SI(bitsz(int32_t)), FTARG_SIGNED, + NULL, NULL }, + { FLDT_QCNT, "qcnt", fp_num, "%llu", SI(bitsz(xfs_qcnt_t)), 0, NULL, + NULL }, +@@ -356,34 +356,34 @@ const ftattr_t ftattrtab[] = { + { FLDT_SYMLINK_CRC, "symlink", NULL, (char *)symlink_crc_flds, + symlink_size, FTARG_SIZE, NULL, symlink_crc_flds }, + +- { FLDT_TIME, "time", fp_time, NULL, SI(bitsz(__int32_t)), FTARG_SIGNED, ++ { FLDT_TIME, "time", fp_time, NULL, SI(bitsz(int32_t)), FTARG_SIGNED, + NULL, NULL }, + { FLDT_TIMESTAMP, "timestamp", NULL, (char *)timestamp_flds, + SI(bitsz(xfs_timestamp_t)), 0, NULL, timestamp_flds }, + { FLDT_UINT1, "uint1", fp_num, "%u", SI(1), 0, NULL, NULL }, +- { FLDT_UINT16D, "uint16d", fp_num, "%u", SI(bitsz(__uint16_t)), 0, NULL, ++ { FLDT_UINT16D, "uint16d", fp_num, "%u", SI(bitsz(uint16_t)), 0, NULL, + NULL }, +- { FLDT_UINT16O, "uint16o", fp_num, "%#o", SI(bitsz(__uint16_t)), 0, ++ { FLDT_UINT16O, "uint16o", fp_num, "%#o", SI(bitsz(uint16_t)), 0, + NULL, NULL }, +- { FLDT_UINT16X, "uint16x", fp_num, "%#x", SI(bitsz(__uint16_t)), 0, ++ { FLDT_UINT16X, "uint16x", fp_num, "%#x", SI(bitsz(uint16_t)), 0, + NULL, NULL }, +- { FLDT_UINT32D, "uint32d", fp_num, "%u", SI(bitsz(__uint32_t)), 0, NULL, ++ { FLDT_UINT32D, "uint32d", fp_num, "%u", SI(bitsz(uint32_t)), 0, NULL, + NULL }, +- { FLDT_UINT32O, "uint32o", fp_num, "%#o", SI(bitsz(__uint32_t)), 0, ++ { FLDT_UINT32O, "uint32o", fp_num, "%#o", SI(bitsz(uint32_t)), 0, + NULL, NULL }, +- { FLDT_UINT32X, "uint32x", fp_num, "%#x", SI(bitsz(__uint32_t)), 0, ++ { FLDT_UINT32X, "uint32x", fp_num, "%#x", SI(bitsz(uint32_t)), 0, + NULL, NULL }, +- { FLDT_UINT64D, "uint64d", fp_num, "%llu", SI(bitsz(__uint64_t)), 0, ++ { FLDT_UINT64D, "uint64d", fp_num, "%llu", SI(bitsz(uint64_t)), 0, + NULL, NULL }, +- { FLDT_UINT64O, "uint64o", fp_num, "%#llo", SI(bitsz(__uint64_t)), 0, ++ { FLDT_UINT64O, "uint64o", fp_num, "%#llo", SI(bitsz(uint64_t)), 0, + NULL, NULL }, +- { FLDT_UINT64X, "uint64x", fp_num, "%#llx", SI(bitsz(__uint64_t)), 0, ++ { FLDT_UINT64X, "uint64x", fp_num, "%#llx", SI(bitsz(uint64_t)), 0, + NULL, NULL }, +- { FLDT_UINT8D, "uint8d", fp_num, "%u", SI(bitsz(__uint8_t)), 0, NULL, ++ { FLDT_UINT8D, "uint8d", fp_num, "%u", SI(bitsz(uint8_t)), 0, NULL, + NULL }, +- { FLDT_UINT8O, "uint8o", fp_num, "%#o", SI(bitsz(__uint8_t)), 0, NULL, ++ { FLDT_UINT8O, "uint8o", fp_num, "%#o", SI(bitsz(uint8_t)), 0, NULL, + NULL }, +- { FLDT_UINT8X, "uint8x", fp_num, "%#x", SI(bitsz(__uint8_t)), 0, NULL, ++ { FLDT_UINT8X, "uint8x", fp_num, "%#x", SI(bitsz(uint8_t)), 0, NULL, + NULL }, + { FLDT_UUID, "uuid", fp_uuid, NULL, SI(bitsz(uuid_t)), 0, NULL, NULL }, + { FLDT_ZZZ, NULL } +diff --git a/db/fprint.c b/db/fprint.c +index fd7e7f45..261a31ef 100644 +--- a/db/fprint.c ++++ b/db/fprint.c +@@ -80,7 +80,7 @@ fp_num( + int bitpos; + int i; + int isnull; +- __int64_t val; ++ int64_t val; + + for (i = 0, bitpos = bit; + i < count && !seenint(); +@@ -100,7 +100,7 @@ fp_num( + else if (size > 32) + dbprintf(fmtstr, val); + else +- dbprintf(fmtstr, (__int32_t)val); ++ dbprintf(fmtstr, (int32_t)val); + if (i < count - 1) + dbprintf(" "); + } +@@ -203,7 +203,7 @@ fp_crc( + { + int bitpos; + int i; +- __int64_t val; ++ int64_t val; + char *ok; + + switch (iocur_crc_valid()) { +@@ -230,7 +230,7 @@ fp_crc( + if (size > 32) + dbprintf(fmtstr, val, ok); + else +- dbprintf(fmtstr, (__int32_t)val, ok); ++ dbprintf(fmtstr, (int32_t)val, ok); + if (i < count - 1) + dbprintf(" "); + } +diff --git a/db/frag.c b/db/frag.c +index 8005e45d..d224f0c2 100644 +--- a/db/frag.c ++++ b/db/frag.c +@@ -42,8 +42,8 @@ typedef struct extmap { + + static int aflag; + static int dflag; +-static __uint64_t extcount_actual; +-static __uint64_t extcount_ideal; ++static uint64_t extcount_actual; ++static uint64_t extcount_ideal; + static int fflag; + static int lflag; + static int qflag; +@@ -310,8 +310,8 @@ process_inode( + xfs_agino_t agino, + xfs_dinode_t *dip) + { +- __uint64_t actual; +- __uint64_t ideal; ++ uint64_t actual; ++ uint64_t ideal; + xfs_ino_t ino; + int skipa; + int skipd; +diff --git a/db/inode.c b/db/inode.c +index 8b7a41e4..6cc47d6a 100644 +--- a/db/inode.c ++++ b/db/inode.c +@@ -119,49 +119,49 @@ const field_t inode_core_flds[] = { + { "dmstate", FLDT_UINT16D, OI(COFF(dmstate)), C1, 0, TYP_NONE }, + { "flags", FLDT_UINT16X, OI(COFF(flags)), C1, FLD_SKIPALL, TYP_NONE }, + { "newrtbm", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_NEWRTBM_BIT - 1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_NEWRTBM_BIT - 1), C1, + 0, TYP_NONE }, + { "prealloc", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_PREALLOC_BIT - 1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_PREALLOC_BIT - 1), C1, + 0, TYP_NONE }, + { "realtime", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_REALTIME_BIT - 1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_REALTIME_BIT - 1), C1, + 0, TYP_NONE }, + { "immutable", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_IMMUTABLE_BIT-1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_IMMUTABLE_BIT-1), C1, + 0, TYP_NONE }, + { "append", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_APPEND_BIT - 1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_APPEND_BIT - 1), C1, + 0, TYP_NONE }, + { "sync", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_SYNC_BIT - 1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_SYNC_BIT - 1), C1, + 0, TYP_NONE }, + { "noatime", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_NOATIME_BIT - 1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_NOATIME_BIT - 1), C1, + 0, TYP_NONE }, + { "nodump", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_NODUMP_BIT - 1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_NODUMP_BIT - 1), C1, + 0, TYP_NONE }, + { "rtinherit", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_RTINHERIT_BIT-1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_RTINHERIT_BIT-1), C1, + 0, TYP_NONE }, + { "projinherit", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_PROJINHERIT_BIT-1),C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_PROJINHERIT_BIT-1), C1, + 0, TYP_NONE }, + { "nosymlinks", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_NOSYMLINKS_BIT-1), C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_NOSYMLINKS_BIT-1), C1, + 0, TYP_NONE }, + { "extsz", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_EXTSIZE_BIT-1),C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_EXTSIZE_BIT-1), C1, + 0, TYP_NONE }, + { "extszinherit", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_EXTSZINHERIT_BIT-1),C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_EXTSZINHERIT_BIT-1), C1, + 0, TYP_NONE }, + { "nodefrag", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_NODEFRAG_BIT-1),C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_NODEFRAG_BIT-1), C1, + 0, TYP_NONE }, + { "filestream", FLDT_UINT1, +- OI(COFF(flags) + bitsz(__uint16_t) - XFS_DIFLAG_FILESTREAM_BIT-1),C1, ++ OI(COFF(flags) + bitsz(uint16_t) - XFS_DIFLAG_FILESTREAM_BIT-1), C1, + 0, TYP_NONE }, + { "gen", FLDT_UINT32D, OI(COFF(gen)), C1, 0, TYP_NONE }, + { NULL } +@@ -177,10 +177,10 @@ const field_t inode_v3_flds[] = { + { "inumber", FLDT_INO, OI(COFF(ino)), C1, 0, TYP_NONE }, + { "uuid", FLDT_UUID, OI(COFF(uuid)), C1, 0, TYP_NONE }, + { "reflink", FLDT_UINT1, +- OI(COFF(flags2) + bitsz(__uint64_t) - XFS_DIFLAG2_REFLINK_BIT-1), C1, ++ OI(COFF(flags2) + bitsz(uint64_t) - XFS_DIFLAG2_REFLINK_BIT-1), C1, + 0, TYP_NONE }, + { "cowextsz", FLDT_UINT1, +- OI(COFF(flags2) + bitsz(__uint64_t) - XFS_DIFLAG2_COWEXTSIZE_BIT-1), C1, ++ OI(COFF(flags2) + bitsz(uint64_t) - XFS_DIFLAG2_COWEXTSIZE_BIT-1), C1, + 0, TYP_NONE }, + { NULL } + }; +diff --git a/db/io.c b/db/io.c +index 1f27f6b3..fd9b9f4b 100644 +--- a/db/io.c ++++ b/db/io.c +@@ -545,7 +545,7 @@ set_cur( + struct xfs_buf *bp; + xfs_ino_t dirino; + xfs_ino_t ino; +- __uint16_t mode; ++ uint16_t mode; + const struct xfs_buf_ops *ops = type ? type->bops : NULL; + + if (iocur_sp < 0) { +diff --git a/db/io.h b/db/io.h +index 99730048..df0fdd75 100644 +--- a/db/io.h ++++ b/db/io.h +@@ -25,7 +25,7 @@ typedef struct bbmap { + } bbmap_t; + + typedef struct iocur { +- __int64_t bb; /* BB number in filesystem of buf */ ++ int64_t bb; /* BB number in filesystem of buf */ + int blen; /* length of "buf", bb's */ + int boff; /* data - buf */ + void *buf; /* base address of buffer */ +@@ -33,7 +33,7 @@ typedef struct iocur { + xfs_ino_t dirino; /* current directory inode number */ + xfs_ino_t ino; /* current inode number */ + int len; /* length of "data", bytes */ +- __uint16_t mode; /* current inode's mode */ ++ uint16_t mode; /* current inode's mode */ + xfs_off_t off; /* fs offset of "data" in bytes */ + const struct typ *typ; /* type of "data" */ + bbmap_t *bbmap; /* map daddr if fragmented */ +@@ -57,7 +57,7 @@ extern void off_cur(int off, int len); + extern void pop_cur(void); + extern void print_iocur(char *tag, iocur_t *ioc); + extern void push_cur(void); +-extern int read_buf(__int64_t daddr, int count, void *bufp); ++extern int read_buf(int64_t daddr, int count, void *bufp); + extern void write_cur(void); + extern void set_cur(const struct typ *type, xfs_daddr_t blknum, + int len, int ring_add, bbmap_t *bbmap); +diff --git a/db/metadump.c b/db/metadump.c +index 31bb5959..67bdf14e 100644 +--- a/db/metadump.c ++++ b/db/metadump.c +@@ -175,7 +175,7 @@ write_index(void) + static int + write_buf_segment( + char *data, +- __int64_t off, ++ int64_t off, + int len) + { + int i; +@@ -1256,7 +1256,7 @@ process_sf_dir( + { + struct xfs_dir2_sf_hdr *sfp; + xfs_dir2_sf_entry_t *sfep; +- __uint64_t ino_dir_size; ++ uint64_t ino_dir_size; + int i; + + sfp = (struct xfs_dir2_sf_hdr *)XFS_DFORK_DPTR(dip); +@@ -1322,7 +1322,7 @@ process_sf_dir( + static void + obfuscate_path_components( + char *buf, +- __uint64_t len) ++ uint64_t len) + { + unsigned char *comp = (unsigned char *)buf; + unsigned char *end = comp + len; +@@ -1359,7 +1359,7 @@ static void + process_sf_symlink( + xfs_dinode_t *dip) + { +- __uint64_t len; ++ uint64_t len; + char *buf; + + len = be64_to_cpu(dip->di_size); +@@ -1631,7 +1631,7 @@ process_attr_block( + xfs_attr_leaf_entry_t *entry; + xfs_attr_leaf_name_local_t *local; + xfs_attr_leaf_name_remote_t *remote; +- __uint32_t bs = mp->m_sb.sb_blocksize; ++ uint32_t bs = mp->m_sb.sb_blocksize; + char *first_name; + + +@@ -2270,7 +2270,7 @@ done: + return success; + } + +-static __uint32_t inodes_copied = 0; ++static uint32_t inodes_copied; + + static int + copy_inode_chunk( +diff --git a/db/sb.c b/db/sb.c +index 8e7722cd..f19248d7 100644 +--- a/db/sb.c ++++ b/db/sb.c +@@ -606,7 +606,7 @@ version_help(void) + } + + static int +-do_version(xfs_agnumber_t agno, __uint16_t version, __uint32_t features) ++do_version(xfs_agnumber_t agno, uint16_t version, uint32_t features) + { + xfs_sb_t tsb; + +@@ -710,8 +710,8 @@ version_f( + int argc, + char **argv) + { +- __uint16_t version = 0; +- __uint32_t features = 0; ++ uint16_t version = 0; ++ uint32_t features = 0; + xfs_agnumber_t ag; + + if (argc == 2) { /* WRITE VERSION */ +diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c +index 517b75f0..d4846a32 100644 +--- a/fsr/xfs_fsr.c ++++ b/fsr/xfs_fsr.c +@@ -54,7 +54,7 @@ struct getbmap *outmap = NULL; + int outmap_size = 0; + int RealUid; + int tmp_agi; +-static __int64_t minimumfree = 2048; ++static int64_t minimumfree = 2048; + + #define MNTTYPE_XFS "xfs" + +diff --git a/include/darwin.h b/include/darwin.h +index 7bbd5764..51031c42 100644 +--- a/include/darwin.h ++++ b/include/darwin.h +@@ -125,15 +125,15 @@ typedef signed int __s32; + typedef unsigned long long int __u64; + typedef signed long long int __s64; + +-#define __int8_t int8_t +-#define __int16_t int16_t +-#define __int32_t int32_t +-#define __int32_t int32_t +-#define __int64_t int64_t +-#define __uint8_t u_int8_t +-#define __uint16_t u_int16_t +-#define __uint32_t u_int32_t +-#define __uint64_t u_int64_t ++#define int8_t int8_t ++#define int16_t int16_t ++#define int32_t int32_t ++#define int32_t int32_t ++#define int64_t int64_t ++#define uint8_t u_int8_t ++#define uint16_t u_int16_t ++#define uint32_t u_int32_t ++#define uint64_t u_int64_t + + typedef off_t xfs_off_t; + typedef u_int64_t xfs_ino_t; +diff --git a/include/freebsd.h b/include/freebsd.h +index fb318b89..f52ed0a9 100644 +--- a/include/freebsd.h ++++ b/include/freebsd.h +@@ -50,9 +50,9 @@ typedef unsigned long long int __u64; + typedef signed long long int __s64; + + typedef off_t xfs_off_t; +-typedef __uint64_t xfs_ino_t; +-typedef __uint32_t xfs_dev_t; +-typedef __int64_t xfs_daddr_t; ++typedef uint64_t xfs_ino_t; ++typedef uint32_t xfs_dev_t; ++typedef int64_t xfs_daddr_t; + typedef __u32 xfs_nlink_t; + + #define O_LARGEFILE 0 +diff --git a/include/gnukfreebsd.h b/include/gnukfreebsd.h +index 6916e65a..1db3f4f0 100644 +--- a/include/gnukfreebsd.h ++++ b/include/gnukfreebsd.h +@@ -46,9 +46,9 @@ typedef unsigned long long int __u64; + typedef signed long long int __s64; + + typedef off_t xfs_off_t; +-typedef __uint64_t xfs_ino_t; +-typedef __uint32_t xfs_dev_t; +-typedef __int64_t xfs_daddr_t; ++typedef uint64_t xfs_ino_t; ++typedef uint32_t xfs_dev_t; ++typedef int64_t xfs_daddr_t; + typedef __u32 xfs_nlink_t; + + #define HAVE_FID 1 +diff --git a/include/libxcmd.h b/include/libxcmd.h +index e8d2ffc8..6806380c 100644 +--- a/include/libxcmd.h ++++ b/include/libxcmd.h +@@ -42,10 +42,10 @@ get_topology( + extern void + calc_default_ag_geometry( + int blocklog, +- __uint64_t dblocks, ++ uint64_t dblocks, + int multidisk, +- __uint64_t *agsize, +- __uint64_t *agcount); ++ uint64_t *agsize, ++ uint64_t *agcount); + + extern int + check_overwrite( +diff --git a/include/linux.h b/include/linux.h +index 9611a37f..6ce344c5 100644 +--- a/include/linux.h ++++ b/include/linux.h +@@ -132,7 +132,7 @@ static __inline__ void platform_uuid_copy(uuid_t *dst, uuid_t *src) + static __inline__ int + platform_discard_blocks(int fd, uint64_t start, uint64_t len) + { +- __uint64_t range[2] = { start, len }; ++ uint64_t range[2] = { start, len }; + + if (ioctl(fd, BLKDISCARD, &range) < 0) + return errno; +@@ -144,9 +144,9 @@ platform_discard_blocks(int fd, uint64_t start, uint64_t len) + #define EFSBADCRC EBADMSG /* Bad CRC detected */ + + typedef off_t xfs_off_t; +-typedef __uint64_t xfs_ino_t; +-typedef __uint32_t xfs_dev_t; +-typedef __int64_t xfs_daddr_t; ++typedef uint64_t xfs_ino_t; ++typedef uint32_t xfs_dev_t; ++typedef int64_t xfs_daddr_t; + typedef __u32 xfs_nlink_t; + + /** +diff --git a/include/xfs_arch.h b/include/xfs_arch.h +index 12cd43e6..186cadba 100644 +--- a/include/xfs_arch.h ++++ b/include/xfs_arch.h +@@ -244,39 +244,39 @@ static inline void be64_add_cpu(__be64 *a, __s64 b) + *a = cpu_to_be64(be64_to_cpu(*a) + b); + } + +-static inline __uint16_t get_unaligned_be16(void *p) ++static inline uint16_t get_unaligned_be16(void *p) + { +- __uint8_t *__p = p; ++ uint8_t *__p = p; + return __p[0] << 8 | __p[1]; + } + +-static inline __uint32_t get_unaligned_be32(void *p) ++static inline uint32_t get_unaligned_be32(void *p) + { +- __uint8_t *__p = p; ++ uint8_t *__p = p; + return __p[0] << 24 | __p[1] << 16 | __p[2] << 8 | __p[3]; + } + +-static inline __uint64_t get_unaligned_be64(void *p) ++static inline uint64_t get_unaligned_be64(void *p) + { +- return (__uint64_t)get_unaligned_be32(p) << 32 | ++ return (uint64_t)get_unaligned_be32(p) << 32 | + get_unaligned_be32(p + 4); + } + +-static inline void put_unaligned_be16(__uint16_t val, void *p) ++static inline void put_unaligned_be16(uint16_t val, void *p) + { +- __uint8_t *__p = p; ++ uint8_t *__p = p; + *__p++ = val >> 8; + *__p++ = val; + } + +-static inline void put_unaligned_be32(__uint32_t val, void *p) ++static inline void put_unaligned_be32(uint32_t val, void *p) + { +- __uint8_t *__p = p; ++ uint8_t *__p = p; + put_unaligned_be16(val >> 16, __p); + put_unaligned_be16(val, __p + 2); + } + +-static inline void put_unaligned_be64(__uint64_t val, void *p) ++static inline void put_unaligned_be64(uint64_t val, void *p) + { + put_unaligned_be32(val >> 32, p); + put_unaligned_be32(val, p + 4); +diff --git a/include/xfs_inode.h b/include/xfs_inode.h +index fb6b5429..8766024e 100644 +--- a/include/xfs_inode.h ++++ b/include/xfs_inode.h +@@ -123,8 +123,8 @@ xfs_get_projid(struct xfs_icdinode *id) + static inline void + xfs_set_projid(struct xfs_icdinode *id, prid_t projid) + { +- id->di_projid_hi = (__uint16_t) (projid >> 16); +- id->di_projid_lo = (__uint16_t) (projid & 0xffff); ++ id->di_projid_hi = (uint16_t) (projid >> 16); ++ id->di_projid_lo = (uint16_t) (projid & 0xffff); + } + + static inline bool xfs_is_reflink_inode(struct xfs_inode *ip) +diff --git a/include/xfs_log_recover.h b/include/xfs_log_recover.h +index 7582676b..0d098628 100644 +--- a/include/xfs_log_recover.h ++++ b/include/xfs_log_recover.h +@@ -26,7 +26,7 @@ + #define XLOG_RHASH_SIZE 16 + #define XLOG_RHASH_SHIFT 2 + #define XLOG_RHASH(tid) \ +- ((((__uint32_t)tid)>>XLOG_RHASH_SHIFT) & (XLOG_RHASH_SIZE-1)) ++ ((((uint32_t)tid)>>XLOG_RHASH_SHIFT) & (XLOG_RHASH_SIZE-1)) + + #define XLOG_MAX_REGIONS_IN_ITEM (XFS_MAX_BLOCKSIZE / XFS_BLF_CHUNK / 2 + 1) + +diff --git a/include/xfs_metadump.h b/include/xfs_metadump.h +index 7f3039eb..13afb8dd 100644 +--- a/include/xfs_metadump.h ++++ b/include/xfs_metadump.h +@@ -24,8 +24,8 @@ + typedef struct xfs_metablock { + __be32 mb_magic; + __be16 mb_count; +- __uint8_t mb_blocklog; +- __uint8_t mb_info; ++ uint8_t mb_blocklog; ++ uint8_t mb_info; + /* followed by an array of xfs_daddr_t */ + } xfs_metablock_t; + +diff --git a/include/xfs_mount.h b/include/xfs_mount.h +index 5ff24ebf..5b323bb1 100644 +--- a/include/xfs_mount.h ++++ b/include/xfs_mount.h +@@ -48,12 +48,12 @@ typedef struct xfs_mount { + #define m_dev m_ddev_targp + #define m_logdev m_logdev_targp + #define m_rtdev m_rtdev_targp +- __uint8_t m_dircook_elog; /* log d-cookie entry bits */ +- __uint8_t m_blkbit_log; /* blocklog + NBBY */ +- __uint8_t m_blkbb_log; /* blocklog - BBSHIFT */ +- __uint8_t m_sectbb_log; /* sectorlog - BBSHIFT */ +- __uint8_t m_agno_log; /* log #ag's */ +- __uint8_t m_agino_log; /* #bits for agino in inum */ ++ uint8_t m_dircook_elog; /* log d-cookie entry bits */ ++ uint8_t m_blkbit_log; /* blocklog + NBBY */ ++ uint8_t m_blkbb_log; /* blocklog - BBSHIFT */ ++ uint8_t m_sectbb_log; /* sectorlog - BBSHIFT */ ++ uint8_t m_agno_log; /* log #ag's */ ++ uint8_t m_agino_log; /* #bits for agino in inum */ + uint m_inode_cluster_size;/* min inode buf size */ + uint m_blockmask; /* sb_blocksize-1 */ + uint m_blockwsize; /* sb_blocksize in words */ +@@ -88,7 +88,7 @@ typedef struct xfs_mount { + int m_litino; /* size of inode union area */ + int m_inoalign_mask;/* mask sb_inoalignmt if used */ + struct xfs_trans_resv m_resv; /* precomputed res values */ +- __uint64_t m_maxicount; /* maximum inode count */ ++ uint64_t m_maxicount; /* maximum inode count */ + int m_dalign; /* stripe unit */ + int m_swidth; /* stripe width */ + int m_sinoalign; /* stripe unit inode alignmnt */ +@@ -144,12 +144,12 @@ typedef struct xfs_perag { + char pagi_init; /* this agi's entry is initialized */ + char pagf_metadata; /* the agf is preferred to be metadata */ + char pagi_inodeok; /* The agi is ok for inodes */ +- __uint8_t pagf_levels[XFS_BTNUM_AGF]; ++ uint8_t pagf_levels[XFS_BTNUM_AGF]; + /* # of levels in bno & cnt btree */ +- __uint32_t pagf_flcount; /* count of blocks in freelist */ ++ uint32_t pagf_flcount; /* count of blocks in freelist */ + xfs_extlen_t pagf_freeblks; /* total free blocks */ + xfs_extlen_t pagf_longest; /* longest free space */ +- __uint32_t pagf_btreeblks; /* # of blocks held in AGF btrees */ ++ uint32_t pagf_btreeblks; /* # of blocks held in AGF btrees */ + xfs_agino_t pagi_freecount; /* number of free inodes */ + xfs_agino_t pagi_count; /* number of allocated inodes */ + +@@ -169,7 +169,7 @@ typedef struct xfs_perag { + struct xfs_ag_resv pag_agfl_resv; + + /* reference count */ +- __uint8_t pagf_refcount_level; ++ uint8_t pagf_refcount_level; + } xfs_perag_t; + + static inline struct xfs_ag_resv * +diff --git a/libhandle/handle.c b/libhandle/handle.c +index 236ed22a..00127b3c 100644 +--- a/libhandle/handle.c ++++ b/libhandle/handle.c +@@ -232,7 +232,7 @@ obj_to_handle( + { + char hbuf [MAXHANSIZ]; + int ret; +- __uint32_t handlen; ++ uint32_t handlen; + xfs_fsop_handlereq_t hreq; + + if (opcode == XFS_IOC_FD_TO_HANDLE) { +diff --git a/libhandle/jdm.c b/libhandle/jdm.c +index e52f5d83..821061b4 100644 +--- a/libhandle/jdm.c ++++ b/libhandle/jdm.c +@@ -36,7 +36,7 @@ typedef struct filehandle { + fshandle_t fh_fshandle; /* handle of fs containing this inode */ + int16_t fh_sz_following; /* bytes in handle after this member */ + char fh_pad[FILEHANDLE_SZ_PAD]; /* padding, must be zeroed */ +- __uint32_t fh_gen; /* generation count */ ++ uint32_t fh_gen; /* generation count */ + xfs_ino_t fh_ino; /* 64 bit ino */ + } filehandle_t; + +diff --git a/libxcmd/topology.c b/libxcmd/topology.c +index 8b0276a7..f66dd1bc 100644 +--- a/libxcmd/topology.c ++++ b/libxcmd/topology.c +@@ -23,19 +23,19 @@ + #endif /* ENABLE_BLKID */ + #include "xfs_multidisk.h" + +-#define TERABYTES(count, blog) ((__uint64_t)(count) << (40 - (blog))) +-#define GIGABYTES(count, blog) ((__uint64_t)(count) << (30 - (blog))) +-#define MEGABYTES(count, blog) ((__uint64_t)(count) << (20 - (blog))) ++#define TERABYTES(count, blog) ((uint64_t)(count) << (40 - (blog))) ++#define GIGABYTES(count, blog) ((uint64_t)(count) << (30 - (blog))) ++#define MEGABYTES(count, blog) ((uint64_t)(count) << (20 - (blog))) + + void + calc_default_ag_geometry( + int blocklog, +- __uint64_t dblocks, ++ uint64_t dblocks, + int multidisk, +- __uint64_t *agsize, +- __uint64_t *agcount) ++ uint64_t *agsize, ++ uint64_t *agcount) + { +- __uint64_t blocks = 0; ++ uint64_t blocks = 0; + int shift = 0; + + /* +diff --git a/libxfs/darwin.c b/libxfs/darwin.c +index 74507e81..16d2c35c 100644 +--- a/libxfs/darwin.c ++++ b/libxfs/darwin.c +@@ -68,7 +68,7 @@ platform_flush_device(int fd, dev_t device) + void + platform_findsizes(char *path, int fd, long long *sz, int *bsz) + { +- __uint64_t size; ++ uint64_t size; + struct stat st; + + if (fstat(fd, &st) < 0) { +diff --git a/libxfs/freebsd.c b/libxfs/freebsd.c +index 4667d1f5..d7bca142 100644 +--- a/libxfs/freebsd.c ++++ b/libxfs/freebsd.c +@@ -109,7 +109,7 @@ void + platform_findsizes(char *path, int fd, long long *sz, int *bsz) + { + struct stat st; +- __int64_t size; ++ int64_t size; + u_int ssize; + + if (fstat(fd, &st) < 0) { +diff --git a/libxfs/init.c b/libxfs/init.c +index fc14c5e4..0f41a853 100644 +--- a/libxfs/init.c ++++ b/libxfs/init.c +@@ -546,7 +546,7 @@ libxfs_initialize_perag( + * the max inode percentage. + */ + if (mp->m_maxicount) { +- __uint64_t icount; ++ uint64_t icount; + + icount = sbp->sb_dblocks * sbp->sb_imax_pct; + do_div(icount, 100); +diff --git a/libxfs/irix.c b/libxfs/irix.c +index 32fcb3e5..0f14aec7 100644 +--- a/libxfs/irix.c ++++ b/libxfs/irix.c +@@ -22,7 +22,7 @@ + + int platform_has_uuid = 0; + extern char *progname; +-extern __int64_t findsize(char *); ++extern int64_t findsize(char *); + + int + platform_check_ismounted(char *name, char *block, struct stat *s, int verbose) +diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h +index b4f766db..d525b667 100644 +--- a/libxfs/libxfs_priv.h ++++ b/libxfs/libxfs_priv.h +@@ -296,8 +296,8 @@ roundup_pow_of_two(uint v) + return 0; + } + +-static inline __uint64_t +-roundup_64(__uint64_t x, __uint32_t y) ++static inline uint64_t ++roundup_64(uint64_t x, uint32_t y) + { + x += y - 1; + do_div(x, y); +diff --git a/libxfs/linux.c b/libxfs/linux.c +index 69f04ad9..0bace3eb 100644 +--- a/libxfs/linux.c ++++ b/libxfs/linux.c +@@ -163,7 +163,7 @@ void + platform_findsizes(char *path, int fd, long long *sz, int *bsz) + { + struct stat st; +- __uint64_t size; ++ uint64_t size; + int error; + + if (fstat(fd, &st) < 0) { +diff --git a/libxfs/logitem.c b/libxfs/logitem.c +index 7e93f609..466b4421 100644 +--- a/libxfs/logitem.c ++++ b/libxfs/logitem.c +@@ -121,7 +121,7 @@ xfs_buf_item_init( + bip->bli_item.li_mountp = mp; + bip->bli_buf = bp; + bip->bli_format.blf_type = XFS_LI_BUF; +- bip->bli_format.blf_blkno = (__int64_t)XFS_BUF_ADDR(bp); ++ bip->bli_format.blf_blkno = (int64_t)XFS_BUF_ADDR(bp); + bip->bli_format.blf_len = (unsigned short)BTOBB(XFS_BUF_COUNT(bp)); + XFS_BUF_SET_FSPRIVATE(bp, bip); + } +diff --git a/libxfs/radix-tree.c b/libxfs/radix-tree.c +index eef9c36d..3f0257fe 100644 +--- a/libxfs/radix-tree.c ++++ b/libxfs/radix-tree.c +@@ -66,21 +66,21 @@ static unsigned long height_to_maxindex[RADIX_TREE_MAX_PATH]; + static inline void tag_set(struct radix_tree_node *node, unsigned int tag, + int offset) + { +- *((__uint32_t *)node->tags[tag] + (offset >> 5)) |= (1 << (offset & 31)); ++ *((uint32_t *)node->tags[tag] + (offset >> 5)) |= (1 << (offset & 31)); + } + + static inline void tag_clear(struct radix_tree_node *node, unsigned int tag, + int offset) + { +- __uint32_t *p = (__uint32_t*)node->tags[tag] + (offset >> 5); +- __uint32_t m = 1 << (offset & 31); ++ uint32_t *p = (uint32_t*)node->tags[tag] + (offset >> 5); ++ uint32_t m = 1 << (offset & 31); + *p &= ~m; + } + + static inline int tag_get(struct radix_tree_node *node, unsigned int tag, + int offset) + { +- return 1 & (((const __uint32_t *)node->tags[tag])[offset >> 5] >> (offset & 31)); ++ return 1 & (((const uint32_t *)node->tags[tag])[offset >> 5] >> (offset & 31)); + } + + /* +diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c +index 21c42f14..474e5ebc 100644 +--- a/libxfs/rdwr.c ++++ b/libxfs/rdwr.c +@@ -118,9 +118,9 @@ static void unmount_record(void *p) + xlog_op_header_t *op = (xlog_op_header_t *)p; + /* the data section must be 32 bit size aligned */ + struct { +- __uint16_t magic; +- __uint16_t pad1; +- __uint32_t pad2; /* may as well make it 64 bits */ ++ uint16_t magic; ++ uint16_t pad1; ++ uint32_t pad2; /* may as well make it 64 bits */ + } magic = { XLOG_UNMOUNT_TYPE, 0, 0 }; + + memset(p, 0, BBSIZE); +diff --git a/libxfs/util.c b/libxfs/util.c +index dcfca397..7938e317 100644 +--- a/libxfs/util.c ++++ b/libxfs/util.c +@@ -170,8 +170,8 @@ libxfs_trans_ichgtime( + if (flags & XFS_ICHGTIME_CHG) + VFS_I(ip)->i_ctime = tv; + if (flags & XFS_ICHGTIME_CREATE) { +- ip->i_d.di_crtime.t_sec = (__int32_t)tv.tv_sec; +- ip->i_d.di_crtime.t_nsec = (__int32_t)tv.tv_nsec; ++ ip->i_d.di_crtime.t_sec = (int32_t)tv.tv_sec; ++ ip->i_d.di_crtime.t_nsec = (int32_t)tv.tv_nsec; + } + } + +@@ -261,8 +261,8 @@ libxfs_ialloc( + ASSERT(uuid_equal(&ip->i_d.di_uuid, &mp->m_sb.sb_meta_uuid)); + VFS_I(ip)->i_version = 1; + ip->i_d.di_flags2 = 0; +- ip->i_d.di_crtime.t_sec = (__int32_t)VFS_I(ip)->i_mtime.tv_sec; +- ip->i_d.di_crtime.t_nsec = (__int32_t)VFS_I(ip)->i_mtime.tv_nsec; ++ ip->i_d.di_crtime.t_sec = (int32_t)VFS_I(ip)->i_mtime.tv_sec; ++ ip->i_d.di_crtime.t_nsec = (int32_t)VFS_I(ip)->i_mtime.tv_nsec; + } + + flags = XFS_ILOG_CORE; +diff --git a/logprint/log_misc.c b/logprint/log_misc.c +index 0dfcfd19..2fd01ceb 100644 +--- a/logprint/log_misc.c ++++ b/logprint/log_misc.c +@@ -166,12 +166,12 @@ xlog_print_trans_header(char **ptr, int len) + { + xfs_trans_header_t *h; + char *cptr = *ptr; +- __uint32_t magic; ++ uint32_t magic; + char *magic_c = (char *)&magic; + + *ptr += len; + +- magic=*(__uint32_t*)cptr; /* XXX be32_to_cpu soon */ ++ magic = *(uint32_t *)cptr; /* XXX be32_to_cpu soon */ + + if (len >= 4) { + #if __BYTE_ORDER == __LITTLE_ENDIAN +@@ -201,7 +201,7 @@ xlog_print_trans_buffer(char **ptr, int len, int *i, int num_ops) + int num, skip; + int super_block = 0; + int bucket, col, buckets; +- __int64_t blkno; ++ int64_t blkno; + xfs_buf_log_format_t lbuf; + int size, blen, map_size, struct_size; + __be64 x, y; +diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c +index 9d1b4e80..c49c13aa 100644 +--- a/mdrestore/xfs_mdrestore.c ++++ b/mdrestore/xfs_mdrestore.c +@@ -66,7 +66,7 @@ perform_restore( + int mb_count; + xfs_metablock_t tmb; + xfs_sb_t sb; +- __int64_t bytes_read; ++ int64_t bytes_read; + + /* + * read in first blocks (superblock 0), set "inprogress" flag for it, +diff --git a/mkfs/proto.c b/mkfs/proto.c +index 89cd2379..cf8cc391 100644 +--- a/mkfs/proto.c ++++ b/mkfs/proto.c +@@ -667,7 +667,7 @@ rtinit( + mp->m_sb.sb_rbmino = rbmip->i_ino; + rbmip->i_d.di_size = mp->m_sb.sb_rbmblocks * mp->m_sb.sb_blocksize; + rbmip->i_d.di_flags = XFS_DIFLAG_NEWRTBM; +- *(__uint64_t *)&VFS_I(rbmip)->i_atime = 0; ++ *(uint64_t *)&VFS_I(rbmip)->i_atime = 0; + libxfs_trans_log_inode(tp, rbmip, XFS_ILOG_CORE); + libxfs_log_sb(tp); + mp->m_rbmip = rbmip; +diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c +index b5c3a57e..7bb6408f 100644 +--- a/mkfs/xfs_mkfs.c ++++ b/mkfs/xfs_mkfs.c +@@ -705,9 +705,9 @@ struct opt_params mopts = { + }, + }; + +-#define TERABYTES(count, blog) ((__uint64_t)(count) << (40 - (blog))) +-#define GIGABYTES(count, blog) ((__uint64_t)(count) << (30 - (blog))) +-#define MEGABYTES(count, blog) ((__uint64_t)(count) << (20 - (blog))) ++#define TERABYTES(count, blog) ((uint64_t)(count) << (40 - (blog))) ++#define GIGABYTES(count, blog) ((uint64_t)(count) << (30 - (blog))) ++#define MEGABYTES(count, blog) ((uint64_t)(count) << (20 - (blog))) + + /* + * Use this macro before we have superblock and mount structure +@@ -878,7 +878,7 @@ fixup_log_stripe_unit( + xfs_rfsblock_t *logblocks, + int blocklog) + { +- __uint64_t tmp_logblocks; ++ uint64_t tmp_logblocks; + + /* + * Make sure that the log size is a multiple of the stripe unit +@@ -910,7 +910,7 @@ fixup_internal_log_stripe( + xfs_mount_t *mp, + int lsflag, + xfs_fsblock_t logstart, +- __uint64_t agsize, ++ uint64_t agsize, + int sunit, + xfs_rfsblock_t *logblocks, + int blocklog, +@@ -934,7 +934,7 @@ fixup_internal_log_stripe( + } + + void +-validate_log_size(__uint64_t logblocks, int blocklog, int min_logblocks) ++validate_log_size(uint64_t logblocks, int blocklog, int min_logblocks) + { + if (logblocks < min_logblocks) { + fprintf(stderr, +@@ -959,7 +959,7 @@ validate_log_size(__uint64_t logblocks, int blocklog, int min_logblocks) + static int + calc_default_imaxpct( + int blocklog, +- __uint64_t dblocks) ++ uint64_t dblocks) + { + /* + * This returns the % of the disk space that is used for +@@ -981,9 +981,9 @@ calc_default_imaxpct( + static void + validate_ag_geometry( + int blocklog, +- __uint64_t dblocks, +- __uint64_t agsize, +- __uint64_t agcount) ++ uint64_t dblocks, ++ uint64_t agsize, ++ uint64_t agcount) + { + if (agsize < XFS_AG_MIN_BLOCKS(blocklog)) { + fprintf(stderr, +@@ -1059,7 +1059,7 @@ zero_old_xfs_structures( + { + void *buf; + xfs_sb_t sb; +- __uint32_t bsize; ++ uint32_t bsize; + int i; + xfs_off_t off; + +@@ -1112,8 +1112,8 @@ zero_old_xfs_structures( + i != sb.sb_blocklog) + goto done; + +- if (sb.sb_dblocks > ((__uint64_t)sb.sb_agcount * sb.sb_agblocks) || +- sb.sb_dblocks < ((__uint64_t)(sb.sb_agcount - 1) * ++ if (sb.sb_dblocks > ((uint64_t)sb.sb_agcount * sb.sb_agblocks) || ++ sb.sb_dblocks < ((uint64_t)(sb.sb_agcount - 1) * + sb.sb_agblocks + XFS_MIN_AG_BLOCKS)) + goto done; + +@@ -1133,7 +1133,7 @@ done: + } + + static void +-discard_blocks(dev_t dev, __uint64_t nsectors) ++discard_blocks(dev_t dev, uint64_t nsectors) + { + int fd; + +@@ -1395,11 +1395,11 @@ main( + int argc, + char **argv) + { +- __uint64_t agcount; ++ uint64_t agcount; + xfs_agf_t *agf; + xfs_agi_t *agi; + xfs_agnumber_t agno; +- __uint64_t agsize; ++ uint64_t agsize; + xfs_alloc_rec_t *arec; + struct xfs_btree_block *block; + int blflag; +@@ -1475,10 +1475,10 @@ main( + char *rtsize; + xfs_sb_t *sbp; + int sectorlog; +- __uint64_t sector_mask; ++ uint64_t sector_mask; + int slflag; + int ssflag; +- __uint64_t tmp_agsize; ++ uint64_t tmp_agsize; + uuid_t uuid; + int worst_freelist; + libxfs_init_t xi; +@@ -2167,7 +2167,7 @@ _("rmapbt not supported with realtime devices\n")); + + + if (dsize) { +- __uint64_t dbytes; ++ uint64_t dbytes; + + dbytes = getnum(dsize, &dopts, D_SIZE); + if (dbytes % XFS_MIN_BLOCKSIZE) { +@@ -2199,7 +2199,7 @@ _("rmapbt not supported with realtime devices\n")); + } + + if (logsize) { +- __uint64_t logbytes; ++ uint64_t logbytes; + + logbytes = getnum(logsize, &lopts, L_SIZE); + if (logbytes % XFS_MIN_BLOCKSIZE) { +@@ -2216,7 +2216,7 @@ _("rmapbt not supported with realtime devices\n")); + (long long)(logblocks << blocklog)); + } + if (rtsize) { +- __uint64_t rtbytes; ++ uint64_t rtbytes; + + rtbytes = getnum(rtsize, &ropts, R_SIZE); + if (rtbytes % XFS_MIN_BLOCKSIZE) { +@@ -2236,7 +2236,7 @@ _("rmapbt not supported with realtime devices\n")); + * If specified, check rt extent size against its constraints. + */ + if (rtextsize) { +- __uint64_t rtextbytes; ++ uint64_t rtextbytes; + + rtextbytes = getnum(rtextsize, &ropts, R_EXTSIZE); + if (rtextbytes % blocksize) { +@@ -2252,8 +2252,8 @@ _("rmapbt not supported with realtime devices\n")); + * and the underlying volume is striped, then set rtextblocks + * to the stripe width. + */ +- __uint64_t rswidth; +- __uint64_t rtextbytes; ++ uint64_t rswidth; ++ uint64_t rtextbytes; + + if (!norsflag && !xi.risfile && !(!rtsize && xi.disfile)) + rswidth = ft.rtswidth; +@@ -2335,10 +2335,10 @@ _("rmapbt not supported with realtime devices\n")); + * multiple of the sector size, or 1024, whichever is larger. + */ + +- sector_mask = (__uint64_t)-1 << (MAX(sectorlog, 10) - BBSHIFT); ++ sector_mask = (uint64_t)-1 << (MAX(sectorlog, 10) - BBSHIFT); + xi.dsize &= sector_mask; + xi.rtsize &= sector_mask; +- xi.logBBsize &= (__uint64_t)-1 << (MAX(lsectorlog, 10) - BBSHIFT); ++ xi.logBBsize &= (uint64_t)-1 << (MAX(lsectorlog, 10) - BBSHIFT); + + + /* don't do discards on print-only runs or on files */ +@@ -2696,9 +2696,9 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + mp = &mbuf; + sbp = &mp->m_sb; + memset(mp, 0, sizeof(xfs_mount_t)); +- sbp->sb_blocklog = (__uint8_t)blocklog; +- sbp->sb_sectlog = (__uint8_t)sectorlog; +- sbp->sb_agblklog = (__uint8_t)libxfs_log2_roundup((unsigned int)agsize); ++ sbp->sb_blocklog = (uint8_t)blocklog; ++ sbp->sb_sectlog = (uint8_t)sectorlog; ++ sbp->sb_agblklog = (uint8_t)libxfs_log2_roundup((unsigned int)agsize); + sbp->sb_agblocks = (xfs_agblock_t)agsize; + mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT; + mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; +@@ -2805,14 +2805,14 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + sbp->sb_agcount = (xfs_agnumber_t)agcount; + sbp->sb_rbmblocks = nbmblocks; + sbp->sb_logblocks = (xfs_extlen_t)logblocks; +- sbp->sb_sectsize = (__uint16_t)sectorsize; +- sbp->sb_inodesize = (__uint16_t)isize; +- sbp->sb_inopblock = (__uint16_t)(blocksize / isize); +- sbp->sb_sectlog = (__uint8_t)sectorlog; +- sbp->sb_inodelog = (__uint8_t)inodelog; +- sbp->sb_inopblog = (__uint8_t)(blocklog - inodelog); ++ sbp->sb_sectsize = (uint16_t)sectorsize; ++ sbp->sb_inodesize = (uint16_t)isize; ++ sbp->sb_inopblock = (uint16_t)(blocksize / isize); ++ sbp->sb_sectlog = (uint8_t)sectorlog; ++ sbp->sb_inodelog = (uint8_t)inodelog; ++ sbp->sb_inopblog = (uint8_t)(blocklog - inodelog); + sbp->sb_rextslog = +- (__uint8_t)(rtextents ? ++ (uint8_t)(rtextents ? + libxfs_highbit32((unsigned int)rtextents) : 0); + sbp->sb_inprogress = 1; /* mkfs is in progress */ + sbp->sb_imax_pct = imaxpct; +@@ -2840,8 +2840,8 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + } else + sbp->sb_inoalignmt = 0; + if (lsectorsize != BBSIZE || sectorsize != BBSIZE) { +- sbp->sb_logsectlog = (__uint8_t)lsectorlog; +- sbp->sb_logsectsize = (__uint16_t)lsectorsize; ++ sbp->sb_logsectlog = (uint8_t)lsectorlog; ++ sbp->sb_logsectsize = (uint16_t)lsectorsize; + } else { + sbp->sb_logsectlog = 0; + sbp->sb_logsectsize = 0; +diff --git a/quota/edit.c b/quota/edit.c +index 36b327a5..8418e858 100644 +--- a/quota/edit.c ++++ b/quota/edit.c +@@ -115,16 +115,16 @@ warn_help(void) + + static void + set_limits( +- __uint32_t id, ++ uint32_t id, + uint type, + uint mask, + char *dev, +- __uint64_t *bsoft, +- __uint64_t *bhard, +- __uint64_t *isoft, +- __uint64_t *ihard, +- __uint64_t *rtbsoft, +- __uint64_t *rtbhard) ++ uint64_t *bsoft, ++ uint64_t *bhard, ++ uint64_t *isoft, ++ uint64_t *ihard, ++ uint64_t *rtbsoft, ++ uint64_t *rtbhard) + { + fs_disk_quota_t d; + +@@ -152,12 +152,12 @@ set_user_limits( + char *name, + uint type, + uint mask, +- __uint64_t *bsoft, +- __uint64_t *bhard, +- __uint64_t *isoft, +- __uint64_t *ihard, +- __uint64_t *rtbsoft, +- __uint64_t *rtbhard) ++ uint64_t *bsoft, ++ uint64_t *bhard, ++ uint64_t *isoft, ++ uint64_t *ihard, ++ uint64_t *rtbsoft, ++ uint64_t *rtbhard) + { + uid_t uid = uid_from_string(name); + +@@ -175,12 +175,12 @@ set_group_limits( + char *name, + uint type, + uint mask, +- __uint64_t *bsoft, +- __uint64_t *bhard, +- __uint64_t *isoft, +- __uint64_t *ihard, +- __uint64_t *rtbsoft, +- __uint64_t *rtbhard) ++ uint64_t *bsoft, ++ uint64_t *bhard, ++ uint64_t *isoft, ++ uint64_t *ihard, ++ uint64_t *rtbsoft, ++ uint64_t *rtbhard) + { + gid_t gid = gid_from_string(name); + +@@ -198,12 +198,12 @@ set_project_limits( + char *name, + uint type, + uint mask, +- __uint64_t *bsoft, +- __uint64_t *bhard, +- __uint64_t *isoft, +- __uint64_t *ihard, +- __uint64_t *rtbsoft, +- __uint64_t *rtbhard) ++ uint64_t *bsoft, ++ uint64_t *bhard, ++ uint64_t *isoft, ++ uint64_t *ihard, ++ uint64_t *rtbsoft, ++ uint64_t *rtbhard) + { + prid_t prid = prid_from_string(name); + +@@ -224,7 +224,7 @@ extractb( + int length, + uint blocksize, + uint sectorsize, +- __uint64_t *value) ++ uint64_t *value) + { + long long v; + char *s = string; +@@ -238,7 +238,7 @@ extractb( + progname, s); + return 0; + } +- *value = (__uint64_t)v >> 9; /* syscalls use basic blocks */ ++ *value = (uint64_t)v >> 9; /* syscalls use basic blocks */ + if (v > 0 && *value == 0) + fprintf(stderr, _("%s: Warning: `%s' in quota blocks is 0 (unlimited).\n"), progname, s); + return 1; +@@ -252,7 +252,7 @@ extracti( + char *string, + const char *prefix, + int length, +- __uint64_t *value) ++ uint64_t *value) + { + char *sp, *s = string; + +@@ -270,7 +270,7 @@ limit_f( + char **argv) + { + char *name; +- __uint64_t bsoft, bhard, isoft, ihard, rtbsoft, rtbhard; ++ uint64_t bsoft, bhard, isoft, ihard, rtbsoft, rtbhard; + int c, type = 0, mask = 0, flags = 0; + uint bsize, ssize, endoptions; + +@@ -384,8 +384,8 @@ restore_file( + char *dev = NULL; + uint mask; + int cnt; +- __uint32_t id; +- __uint64_t bsoft, bhard, isoft, ihard, rtbsoft, rtbhard; ++ uint32_t id; ++ uint64_t bsoft, bhard, isoft, ihard, rtbsoft, rtbhard; + + while (fgets(buffer, sizeof(buffer), fp) != NULL) { + if (strncmp("fs = ", buffer, 5) == 0) { +@@ -546,7 +546,7 @@ timer_f( + + static void + set_warnings( +- __uint32_t id, ++ uint32_t id, + uint type, + uint mask, + char *dev, +diff --git a/quota/free.c b/quota/free.c +index cee15ee9..1f8378d2 100644 +--- a/quota/free.c ++++ b/quota/free.c +@@ -49,20 +49,20 @@ free_help(void) + static int + mount_free_space_data( + struct fs_path *mount, +- __uint64_t *bcount, +- __uint64_t *bused, +- __uint64_t *bfree, +- __uint64_t *icount, +- __uint64_t *iused, +- __uint64_t *ifree, +- __uint64_t *rcount, +- __uint64_t *rused, +- __uint64_t *rfree) ++ uint64_t *bcount, ++ uint64_t *bused, ++ uint64_t *bfree, ++ uint64_t *icount, ++ uint64_t *iused, ++ uint64_t *ifree, ++ uint64_t *rcount, ++ uint64_t *rused, ++ uint64_t *rfree) + { + struct xfs_fsop_counts fscounts; + struct xfs_fsop_geom fsgeo; + struct statfs st; +- __uint64_t logsize, count, free; ++ uint64_t logsize, count, free; + int fd; + + if ((fd = open(mount->fs_dir, O_RDONLY)) < 0) { +@@ -132,15 +132,15 @@ mount_free_space_data( + static int + projects_free_space_data( + struct fs_path *path, +- __uint64_t *bcount, +- __uint64_t *bused, +- __uint64_t *bfree, +- __uint64_t *icount, +- __uint64_t *iused, +- __uint64_t *ifree, +- __uint64_t *rcount, +- __uint64_t *rused, +- __uint64_t *rfree) ++ uint64_t *bcount, ++ uint64_t *bused, ++ uint64_t *bfree, ++ uint64_t *icount, ++ uint64_t *iused, ++ uint64_t *ifree, ++ uint64_t *rcount, ++ uint64_t *rused, ++ uint64_t *rfree) + { + fs_quota_stat_t qfs; + fs_disk_quota_t d; +@@ -226,9 +226,9 @@ free_space( + fs_path_t *path, + uint flags) + { +- __uint64_t bcount, bused, bfree; +- __uint64_t icount, iused, ifree; +- __uint64_t rcount, rused, rfree; ++ uint64_t bcount, bused, bfree; ++ uint64_t icount, iused, ifree; ++ uint64_t rcount, rused, rfree; + char a[8], s[8], u[8], p[8]; + int count; + +diff --git a/quota/quot.c b/quota/quot.c +index ccc154f5..6378fbb7 100644 +--- a/quota/quot.c ++++ b/quota/quot.c +@@ -26,17 +26,17 @@ + + typedef struct du { + struct du *next; +- __uint64_t blocks; +- __uint64_t blocks30; +- __uint64_t blocks60; +- __uint64_t blocks90; +- __uint64_t nfiles; +- __uint32_t id; ++ uint64_t blocks; ++ uint64_t blocks30; ++ uint64_t blocks60; ++ uint64_t blocks90; ++ uint64_t nfiles; ++ uint32_t id; + } du_t; + + #define TSIZE 500 +-static __uint64_t sizes[TSIZE]; +-static __uint64_t overflow; ++static uint64_t sizes[TSIZE]; ++static uint64_t overflow; + + #define NDU 60000 + #define DUHASH 8209 +@@ -84,8 +84,8 @@ quot_bulkstat_add( + { + du_t *dp; + du_t **hp; +- __uint64_t size; +- __uint32_t i, id; ++ uint64_t size; ++ uint32_t i, id; + + if ((p->bs_mode & S_IFMT) == 0) + return; +@@ -203,7 +203,7 @@ qcompare( + return 0; + } + +-typedef char *(*idtoname_t)(__uint32_t); ++typedef char *(*idtoname_t)(uint32_t); + + static void + quot_report_mount_any_type( +@@ -291,7 +291,7 @@ quot_histogram_mount( + fs_path_t *mount, + uint flags) + { +- __uint64_t t = 0; ++ uint64_t t = 0; + int i; + + fprintf(fp, _("%s (%s):\n"), mount->fs_name, mount->fs_dir); +diff --git a/quota/quota.c b/quota/quota.c +index d09e239b..479b970e 100644 +--- a/quota/quota.c ++++ b/quota/quota.c +@@ -52,7 +52,7 @@ quota_help(void) + static int + quota_mount( + FILE *fp, +- __uint32_t id, ++ uint32_t id, + char *name, + uint form, + uint type, +@@ -181,7 +181,7 @@ quota_mount( + static void + quota( + FILE *fp, +- __uint32_t id, ++ uint32_t id, + char *name, + uint form, + uint type, +diff --git a/quota/quota.h b/quota/quota.h +index 4bde3513..9ed28bee 100644 +--- a/quota/quota.h ++++ b/quota/quota.h +@@ -53,9 +53,9 @@ enum { + extern char *type_to_string(uint __type); + extern char *form_to_string(uint __form); + extern char *time_to_string(time_t __time, uint __flags); +-extern char *bbs_to_string(__uint64_t __v, char *__c, uint __size); +-extern char *num_to_string(__uint64_t __v, char *__c, uint __size); +-extern char *pct_to_string(__uint64_t __v, __uint64_t __t, char *__c, uint __s); ++extern char *bbs_to_string(uint64_t __v, char *__c, uint __size); ++extern char *num_to_string(uint64_t __v, char *__c, uint __size); ++extern char *pct_to_string(uint64_t __v, uint64_t __t, char *__c, uint __s); + + extern FILE *fopen_write_secure(char *__filename); + +@@ -81,7 +81,7 @@ enum { + * Identifier (uid/gid/prid) cache routines + */ + #define NMAX 32 +-extern char *uid_to_name(__uint32_t __uid); +-extern char *gid_to_name(__uint32_t __gid); +-extern char *prid_to_name(__uint32_t __prid); ++extern char *uid_to_name(uint32_t __uid); ++extern char *gid_to_name(uint32_t __gid); ++extern char *prid_to_name(uint32_t __prid); + extern bool isdigits_only(const char *); +diff --git a/quota/report.c b/quota/report.c +index d0509c25..b2ea3bbe 100644 +--- a/quota/report.c ++++ b/quota/report.c +@@ -333,9 +333,9 @@ report_header( + static int + report_mount( + FILE *fp, +- __uint32_t id, ++ uint32_t id, + char *name, +- __uint32_t *oid, ++ uint32_t *oid, + uint form, + uint type, + fs_path_t *mount, +diff --git a/quota/state.c b/quota/state.c +index 09dfa705..b08bf50b 100644 +--- a/quota/state.c ++++ b/quota/state.c +@@ -135,7 +135,7 @@ static void + state_timelimit( + FILE *fp, + uint form, +- __uint32_t timelimit) ++ uint32_t timelimit) + { + fprintf(fp, _("%s grace time: %s\n"), + form_to_string(form), +diff --git a/quota/util.c b/quota/util.c +index cafd45f5..37840a86 100644 +--- a/quota/util.c ++++ b/quota/util.c +@@ -94,8 +94,8 @@ round_snprintf( + size_t size, + const char *fmt_round, + const char *fmt_not_round, +- __uint64_t value, +- __uint64_t divisor) ++ uint64_t value, ++ uint64_t divisor) + { + double v = (double)value / divisor; + +@@ -107,23 +107,23 @@ round_snprintf( + } + + /* Basic blocks (512) bytes are returned from quotactl */ +-#define BBS_TO_EXABYTES(bbs) ((__uint64_t)(bbs)>>51) +-#define BBS_TO_PETABYTES(bbs) ((__uint64_t)(bbs)>>41) +-#define BBS_TO_TERABYTES(bbs) ((__uint64_t)(bbs)>>31) +-#define BBS_TO_GIGABYTES(bbs) ((__uint64_t)(bbs)>>21) +-#define BBS_TO_MEGABYTES(bbs) ((__uint64_t)(bbs)>>11) +-#define BBS_TO_KILOBYTES(bbs) ((__uint64_t)(bbs)>>1) +- +-#define BBEXABYTE ((__uint64_t)1<<51) +-#define BBPETABYTE ((__uint64_t)1<<41) +-#define BBTERABYTE ((__uint64_t)1<<31) +-#define BBGIGABYTE ((__uint64_t)1<<21) +-#define BBMEGABYTE ((__uint64_t)1<<11) +-#define BBKILOBYTE ((__uint64_t)1<< 1) ++#define BBS_TO_EXABYTES(bbs) ((uint64_t)(bbs)>>51) ++#define BBS_TO_PETABYTES(bbs) ((uint64_t)(bbs)>>41) ++#define BBS_TO_TERABYTES(bbs) ((uint64_t)(bbs)>>31) ++#define BBS_TO_GIGABYTES(bbs) ((uint64_t)(bbs)>>21) ++#define BBS_TO_MEGABYTES(bbs) ((uint64_t)(bbs)>>11) ++#define BBS_TO_KILOBYTES(bbs) ((uint64_t)(bbs)>>1) ++ ++#define BBEXABYTE ((uint64_t)1<<51) ++#define BBPETABYTE ((uint64_t)1<<41) ++#define BBTERABYTE ((uint64_t)1<<31) ++#define BBGIGABYTE ((uint64_t)1<<21) ++#define BBMEGABYTE ((uint64_t)1<<11) ++#define BBKILOBYTE ((uint64_t)1<< 1) + + char * + bbs_to_string( +- __uint64_t v, ++ uint64_t v, + char *sp, + uint size) + { +@@ -146,17 +146,17 @@ bbs_to_string( + return sp; + } + +-#define THOUSAND ((__uint64_t)1000) +-#define MILLION ((__uint64_t)1000*1000) +-#define BILLION ((__uint64_t)1000*1000*1000) +-#define TRILLION ((__uint64_t)1000*1000*1000*1000) +-#define GAZILLION ((__uint64_t)1000*1000*1000*1000*1000) +-#define RIDICULOUS ((__uint64_t)1000*1000*1000*1000*1000*1000) +-#define STOPALREADY ((__uint64_t)1000*1000*1000*1000*1000*1000*1000) ++#define THOUSAND ((uint64_t)1000) ++#define MILLION ((uint64_t)1000*1000) ++#define BILLION ((uint64_t)1000*1000*1000) ++#define TRILLION ((uint64_t)1000*1000*1000*1000) ++#define GAZILLION ((uint64_t)1000*1000*1000*1000*1000) ++#define RIDICULOUS ((uint64_t)1000*1000*1000*1000*1000*1000) ++#define STOPALREADY ((uint64_t)1000*1000*1000*1000*1000*1000*1000) + + char * + num_to_string( +- __uint64_t v, ++ uint64_t v, + char *sp, + uint size) + { +@@ -183,8 +183,8 @@ num_to_string( + + char * + pct_to_string( +- __uint64_t portion, +- __uint64_t whole, ++ uint64_t portion, ++ uint64_t whole, + char *buf, + uint size) + { +@@ -237,7 +237,7 @@ type_to_string( + #define IDMASK (NID-1) + + typedef struct { +- __uint32_t id; ++ uint32_t id; + char name[NMAX+1]; + } idcache_t; + +@@ -250,7 +250,7 @@ static int pentriesleft = NID; + + static idcache_t * + getnextpwent( +- __uint32_t id, ++ uint32_t id, + int byid) + { + struct passwd *pw; +@@ -266,7 +266,7 @@ getnextpwent( + + static idcache_t * + getnextgrent( +- __uint32_t id, ++ uint32_t id, + int byid) + { + struct group *gr; +@@ -281,7 +281,7 @@ getnextgrent( + + static idcache_t * + getnextprent( +- __uint32_t id, ++ uint32_t id, + int byid) + { + fs_project_t *pr; +@@ -296,7 +296,7 @@ getnextprent( + + char * + uid_to_name( +- __uint32_t id) ++ uint32_t id) + { + idcache_t *ncp, *idp; + +@@ -333,7 +333,7 @@ uid_to_name( + + char * + gid_to_name( +- __uint32_t id) ++ uint32_t id) + { + idcache_t *ncp, *idp; + +@@ -370,7 +370,7 @@ gid_to_name( + + char * + prid_to_name( +- __uint32_t id) ++ uint32_t id) + { + idcache_t *ncp, *idp; + +diff --git a/repair/README b/repair/README +index 7f168e69..4692463d 100644 +--- a/repair/README ++++ b/repair/README +@@ -189,7 +189,7 @@ D - 0) look at usage of XFS_MAKE_IPTR(). It does the right + + + D - 0) look at references to XFS_INODES_PER_CHUNK. change the +- ones that really mean sizeof(__uint64_t)*NBBY to ++ ones that really mean sizeof(uint64_t)*NBBY to + something else (like that only defined as a constant + INOS_PER_IREC. this isn't as important since + XFS_INODES_PER_CHUNK will never chang +diff --git a/repair/agheader.h b/repair/agheader.h +index 6b2974ca..2f7246d2 100644 +--- a/repair/agheader.h ++++ b/repair/agheader.h +@@ -20,7 +20,7 @@ typedef struct fs_geometry { + /* + * these types should match the superblock types + */ +- __uint32_t sb_blocksize; /* blocksize (bytes) */ ++ uint32_t sb_blocksize; /* blocksize (bytes) */ + xfs_rfsblock_t sb_dblocks; /* # data blocks */ + xfs_rfsblock_t sb_rblocks; /* # realtime blocks */ + xfs_rtblock_t sb_rextents; /* # realtime extents */ +@@ -30,9 +30,9 @@ typedef struct fs_geometry { + xfs_agnumber_t sb_agcount; /* # of ags */ + xfs_extlen_t sb_rbmblocks; /* # of rt bitmap blocks */ + xfs_extlen_t sb_logblocks; /* # of log blocks */ +- __uint16_t sb_sectsize; /* volume sector size (bytes) */ +- __uint16_t sb_inodesize; /* inode size (bytes) */ +- __uint8_t sb_imax_pct; /* max % of fs for inode space */ ++ uint16_t sb_sectsize; /* volume sector size (bytes) */ ++ uint16_t sb_inodesize; /* inode size (bytes) */ ++ uint8_t sb_imax_pct; /* max % of fs for inode space */ + + /* + * these don't have to match the superblock types but are placed +@@ -49,10 +49,10 @@ typedef struct fs_geometry { + /* + * fields after this point have to be checked manually in compare_sb() + */ +- __uint8_t sb_shared_vn; /* shared version number */ ++ uint8_t sb_shared_vn; /* shared version number */ + xfs_extlen_t sb_inoalignmt; /* inode chunk alignment, fsblocks */ +- __uint32_t sb_unit; /* stripe or raid unit */ +- __uint32_t sb_width; /* stripe or width unit */ ++ uint32_t sb_unit; /* stripe or raid unit */ ++ uint32_t sb_width; /* stripe or width unit */ + + /* + * these don't have to match, they track superblock properties +diff --git a/repair/attr_repair.h b/repair/attr_repair.h +index 7010e4ff..294fad44 100644 +--- a/repair/attr_repair.h ++++ b/repair/attr_repair.h +@@ -32,10 +32,10 @@ + #define ACL_WRITE 02 + #define ACL_EXECUTE 01 + +-typedef __uint16_t xfs_acl_perm_t; +-typedef __int32_t xfs_acl_type_t; +-typedef __int32_t xfs_acl_tag_t; +-typedef __int32_t xfs_acl_id_t; ++typedef uint16_t xfs_acl_perm_t; ++typedef int32_t xfs_acl_type_t; ++typedef int32_t xfs_acl_tag_t; ++typedef int32_t xfs_acl_id_t; + + /* + * "icacl" = in-core ACL. There is no equivalent in the XFS kernel code, +@@ -50,7 +50,7 @@ struct xfs_icacl_entry { + }; + + struct xfs_icacl { +- __int32_t acl_cnt; ++ int32_t acl_cnt; + struct xfs_icacl_entry acl_entry[0]; + }; + +@@ -59,14 +59,14 @@ struct xfs_icacl { + */ + #define XFS_MAC_MAX_SETS 250 + typedef struct xfs_mac_label { +- __uint8_t ml_msen_type; /* MSEN label type */ +- __uint8_t ml_mint_type; /* MINT label type */ +- __uint8_t ml_level; /* Hierarchical level */ +- __uint8_t ml_grade; /* Hierarchical grade */ +- __uint16_t ml_catcount; /* Category count */ +- __uint16_t ml_divcount; /* Division count */ ++ uint8_t ml_msen_type; /* MSEN label type */ ++ uint8_t ml_mint_type; /* MINT label type */ ++ uint8_t ml_level; /* Hierarchical level */ ++ uint8_t ml_grade; /* Hierarchical grade */ ++ uint16_t ml_catcount; /* Category count */ ++ uint16_t ml_divcount; /* Division count */ + /* Category set, then Division set */ +- __uint16_t ml_list[XFS_MAC_MAX_SETS]; ++ uint16_t ml_list[XFS_MAC_MAX_SETS]; + } xfs_mac_label_t; + + /* MSEN label type names. Choose an upper case ASCII character. */ +@@ -93,7 +93,7 @@ typedef struct xfs_mac_label { + /* + * Capabilities (IRIX) + */ +-typedef __uint64_t xfs_cap_value_t; ++typedef uint64_t xfs_cap_value_t; + + typedef struct xfs_cap_set { + xfs_cap_value_t cap_effective; /* use in capability checks */ +diff --git a/repair/avl64.c b/repair/avl64.c +index 51cd624c..8f4a1211 100644 +--- a/repair/avl64.c ++++ b/repair/avl64.c +@@ -70,8 +70,8 @@ avl64_checktree( + avl64node_t *root) + { + avl64node_t *nlast, *nnext, *np; +- __uint64_t offset = 0; +- __uint64_t end; ++ uint64_t offset = 0; ++ uint64_t end; + + nlast = nnext = root; + +@@ -583,8 +583,8 @@ attach: + avl64node_t * + avl64_findanyrange( + avl64tree_desc_t *tree, +- __uint64_t start, +- __uint64_t end, ++ uint64_t start, ++ uint64_t end, + int checklen) + { + avl64node_t *np = tree->avl_root; +@@ -655,7 +655,7 @@ avl64_findanyrange( + avl64node_t * + avl64_findrange( + avl64tree_desc_t *tree, +- __uint64_t value) ++ uint64_t value) + { + avl64node_t *np = tree->avl_root; + +@@ -682,10 +682,10 @@ avl64_findrange( + avl64node_t * + avl64_find( + avl64tree_desc_t *tree, +- __uint64_t value) ++ uint64_t value) + { + avl64node_t *np = tree->avl_root; +- __uint64_t nvalue; ++ uint64_t nvalue; + + while (np) { + nvalue = AVL_START(tree, np); +@@ -909,8 +909,8 @@ static + avl64node_t * + avl64_insert_find_growth( + avl64tree_desc_t *tree, +- __uint64_t start, /* range start at start, */ +- __uint64_t end, /* exclusive */ ++ uint64_t start, /* range start at start, */ ++ uint64_t end, /* exclusive */ + int *growthp) /* OUT */ + { + avl64node_t *root = tree->avl_root; +@@ -963,7 +963,7 @@ avl64_insert_grow( + int growth) + { + avl64node_t *nnext; +- __uint64_t start = AVL_START(tree, newnode); ++ uint64_t start = AVL_START(tree, newnode); + + if (growth == AVL_BACK) { + +@@ -1005,8 +1005,8 @@ avl64_insert( + avl64node_t *newnode) + { + avl64node_t *np; +- __uint64_t start = AVL_START(tree, newnode); +- __uint64_t end = AVL_END(tree, newnode); ++ uint64_t start = AVL_START(tree, newnode); ++ uint64_t end = AVL_END(tree, newnode); + int growth; + + ASSERT(newnode); +@@ -1159,16 +1159,16 @@ avl64ops_t avl_debug_ops = { + avl_debug_end, + } + +-static __uint64_t ++static uint64_t + avl64_debug_start(avl64node_t *node) + { +- return (__uint64_t)(struct avl_debug_node *)node->avl_start; ++ return (uint64_t)(struct avl_debug_node *)node->avl_start; + } + +-static __uint64_t ++static uint64_t + avl64_debug_end(avl64node_t *node) + { +- return (__uint64_t) ++ return (uint64_t) + ((struct avl_debug_node *)node->avl_start + + (struct avl_debug_node *)node->avl_size); + } +@@ -1304,7 +1304,7 @@ main() + avl64node_t * + avl64_findadjacent( + avl64tree_desc_t *tree, +- __uint64_t value, ++ uint64_t value, + int dir) + { + avl64node_t *np = tree->avl_root; +@@ -1378,8 +1378,8 @@ avl64_findadjacent( + void + avl64_findranges( + avl64tree_desc_t *tree, +- __uint64_t start, +- __uint64_t end, ++ uint64_t start, ++ uint64_t end, + avl64node_t **startp, + avl64node_t **endp) + { +diff --git a/repair/avl64.h b/repair/avl64.h +index fd193218..cd079a00 100644 +--- a/repair/avl64.h ++++ b/repair/avl64.h +@@ -32,8 +32,8 @@ typedef struct avl64node { + * avl-tree operations + */ + typedef struct avl64ops { +- __uint64_t (*avl_start)(avl64node_t *); +- __uint64_t (*avl_end)(avl64node_t *); ++ uint64_t (*avl_start)(avl64node_t *); ++ uint64_t (*avl_end)(avl64node_t *); + } avl64ops_t; + + /* +@@ -89,32 +89,32 @@ avl64_init_tree( + avl64node_t * + avl64_findrange( + avl64tree_desc_t *tree, +- __uint64_t value); ++ uint64_t value); + + avl64node_t * + avl64_find( + avl64tree_desc_t *tree, +- __uint64_t value); ++ uint64_t value); + + avl64node_t * + avl64_findanyrange( + avl64tree_desc_t *tree, +- __uint64_t start, +- __uint64_t end, ++ uint64_t start, ++ uint64_t end, + int checklen); + + + avl64node_t * + avl64_findadjacent( + avl64tree_desc_t *tree, +- __uint64_t value, ++ uint64_t value, + int dir); + + void + avl64_findranges( + avl64tree_desc_t *tree, +- __uint64_t start, +- __uint64_t end, ++ uint64_t start, ++ uint64_t end, + avl64node_t **startp, + avl64node_t **endp); + +diff --git a/repair/dinode.c b/repair/dinode.c +index d664f87a..da872178 100644 +--- a/repair/dinode.c ++++ b/repair/dinode.c +@@ -746,7 +746,7 @@ _("%s fork in ino %" PRIu64 " claims dup extent, " + case XR_E_FREE1: + do_warn( + _("%s fork in ino %" PRIu64 " claims free block %" PRIu64 "\n"), +- forkname, ino, (__uint64_t) b); ++ forkname, ino, (uint64_t) b); + /* fall through ... */ + case XR_E_INUSE1: /* seen by rmap */ + case XR_E_UNKNOWN: +@@ -923,7 +923,7 @@ process_btinode( + int type, + int *dirty, + xfs_rfsblock_t *tot, +- __uint64_t *nex, ++ uint64_t *nex, + blkmap_t **blkmapp, + int whichfork, + int check_dups) +@@ -939,7 +939,7 @@ process_btinode( + int level; + int numrecs; + bmap_cursor_t cursor; +- __uint64_t magic; ++ uint64_t magic; + + dib = (xfs_bmdr_block_t *)XFS_DFORK_PTR(dip, whichfork); + lino = XFS_AGINO_TO_INO(mp, agno, ino); +@@ -1098,7 +1098,7 @@ process_exinode( + int type, + int *dirty, + xfs_rfsblock_t *tot, +- __uint64_t *nex, ++ uint64_t *nex, + blkmap_t **blkmapp, + int whichfork, + int check_dups) +@@ -1200,14 +1200,14 @@ process_symlink_extlist(xfs_mount_t *mp, xfs_ino_t lino, xfs_dinode_t *dino) + do_warn( + _("mismatch between format (%d) and size (%" PRId64 ") in symlink ino %" PRIu64 "\n"), + dino->di_format, +- (__int64_t)be64_to_cpu(dino->di_size), lino); ++ (int64_t)be64_to_cpu(dino->di_size), lino); + return 1; + } + if (dino->di_format == XFS_DINODE_FMT_LOCAL) { + do_warn( + _("mismatch between format (%d) and size (%" PRId64 ") in symlink inode %" PRIu64 "\n"), + dino->di_format, +- (__int64_t)be64_to_cpu(dino->di_size), lino); ++ (int64_t)be64_to_cpu(dino->di_size), lino); + return 1; + } + +@@ -1454,22 +1454,22 @@ _("inode %" PRIu64 " has bad inode type (IFMNT)\n"), lino); + case XR_INO_CHRDEV: + do_warn( + _("size of character device inode %" PRIu64 " != 0 (%" PRId64 " bytes)\n"), lino, +- (__int64_t)be64_to_cpu(dino->di_size)); ++ (int64_t)be64_to_cpu(dino->di_size)); + break; + case XR_INO_BLKDEV: + do_warn( + _("size of block device inode %" PRIu64 " != 0 (%" PRId64 " bytes)\n"), lino, +- (__int64_t)be64_to_cpu(dino->di_size)); ++ (int64_t)be64_to_cpu(dino->di_size)); + break; + case XR_INO_SOCK: + do_warn( + _("size of socket inode %" PRIu64 " != 0 (%" PRId64 " bytes)\n"), lino, +- (__int64_t)be64_to_cpu(dino->di_size)); ++ (int64_t)be64_to_cpu(dino->di_size)); + break; + case XR_INO_FIFO: + do_warn( + _("size of fifo inode %" PRIu64 " != 0 (%" PRId64 " bytes)\n"), lino, +- (__int64_t)be64_to_cpu(dino->di_size)); ++ (int64_t)be64_to_cpu(dino->di_size)); + break; + default: + do_warn(_("Internal error - process_misc_ino_types, " +@@ -1743,12 +1743,12 @@ _("found inode %" PRIu64 " claiming to be a real-time file\n"), lino); + break; + + case XR_INO_RTBITMAP: +- if (size != (__int64_t)mp->m_sb.sb_rbmblocks * ++ if (size != (int64_t)mp->m_sb.sb_rbmblocks * + mp->m_sb.sb_blocksize) { + do_warn( + _("realtime bitmap inode %" PRIu64 " has bad size %" PRId64 " (should be %" PRIu64 ")\n"), + lino, size, +- (__int64_t) mp->m_sb.sb_rbmblocks * ++ (int64_t) mp->m_sb.sb_rbmblocks * + mp->m_sb.sb_blocksize); + return 1; + } +@@ -1817,8 +1817,8 @@ static int + process_inode_blocks_and_extents( + xfs_dinode_t *dino, + xfs_rfsblock_t nblocks, +- __uint64_t nextents, +- __uint64_t anextents, ++ uint64_t nextents, ++ uint64_t anextents, + xfs_ino_t lino, + int *dirty) + { +@@ -1908,7 +1908,7 @@ process_inode_data_fork( + int type, + int *dirty, + xfs_rfsblock_t *totblocks, +- __uint64_t *nextents, ++ uint64_t *nextents, + blkmap_t **dblkmap, + int check_dups) + { +@@ -2017,7 +2017,7 @@ process_inode_attr_fork( + int type, + int *dirty, + xfs_rfsblock_t *atotblocks, +- __uint64_t *anextents, ++ uint64_t *anextents, + int check_dups, + int extra_attr_check, + int *retval) +@@ -2228,8 +2228,8 @@ process_dinode_int(xfs_mount_t *mp, + int di_mode; + int type; + int retval = 0; +- __uint64_t nextents; +- __uint64_t anextents; ++ uint64_t nextents; ++ uint64_t anextents; + xfs_ino_t lino; + const int is_free = 0; + const int is_used = 1; +@@ -2346,7 +2346,7 @@ _("inode identifier %llu mismatch on inode %" PRIu64 "\n"), + if (!uncertain) + do_warn( + _("bad (negative) size %" PRId64 " on inode %" PRIu64 "\n"), +- (__int64_t)be64_to_cpu(dino->di_size), ++ (int64_t)be64_to_cpu(dino->di_size), + lino); + if (verify_mode) + return 1; +diff --git a/repair/dinode.h b/repair/dinode.h +index 61d07363..39d6a72f 100644 +--- a/repair/dinode.h ++++ b/repair/dinode.h +@@ -46,8 +46,8 @@ process_bmbt_reclist(xfs_mount_t *mp, + xfs_ino_t ino, + xfs_rfsblock_t *tot, + struct blkmap **blkmapp, +- __uint64_t *first_key, +- __uint64_t *last_key, ++ uint64_t *first_key, ++ uint64_t *last_key, + int whichfork); + + int +diff --git a/repair/dir2.c b/repair/dir2.c +index e6415e49..73dff902 100644 +--- a/repair/dir2.c ++++ b/repair/dir2.c +@@ -160,7 +160,7 @@ process_sf_dir2( + int bad_sfnamelen; + int i; + int i8; +- __int64_t ino_dir_size; ++ int64_t ino_dir_size; + int ino_off; + ino_tree_node_t *irec_p; + int junkit; +diff --git a/repair/globals.h b/repair/globals.h +index 4085ccc4..c7bbe6f1 100644 +--- a/repair/globals.h ++++ b/repair/globals.h +@@ -141,7 +141,7 @@ EXTERN int inodes_per_cluster; + EXTERN unsigned int glob_agcount; + EXTERN int chunks_pblock; /* # of 64-ino chunks per allocation */ + EXTERN int max_symlink_blocks; +-EXTERN __int64_t fs_max_file_offset; ++EXTERN int64_t fs_max_file_offset; + + /* realtime info */ + +@@ -161,24 +161,24 @@ EXTERN int full_ino_ex_data;/* + + /* superblock counters */ + +-EXTERN __uint64_t sb_icount; /* allocated (made) inodes */ +-EXTERN __uint64_t sb_ifree; /* free inodes */ +-EXTERN __uint64_t sb_fdblocks; /* free data blocks */ +-EXTERN __uint64_t sb_frextents; /* free realtime extents */ ++EXTERN uint64_t sb_icount; /* allocated (made) inodes */ ++EXTERN uint64_t sb_ifree; /* free inodes */ ++EXTERN uint64_t sb_fdblocks; /* free data blocks */ ++EXTERN uint64_t sb_frextents; /* free realtime extents */ + + /* superblock geometry info */ + + EXTERN xfs_extlen_t sb_inoalignmt; +-EXTERN __uint32_t sb_unit; +-EXTERN __uint32_t sb_width; ++EXTERN uint32_t sb_unit; ++EXTERN uint32_t sb_width; + + struct aglock { + pthread_mutex_t lock __attribute__((__aligned__(64))); + }; + EXTERN struct aglock *ag_locks; + +-EXTERN int report_interval; +-EXTERN __uint64_t *prog_rpt_done; ++EXTERN int report_interval; ++EXTERN uint64_t *prog_rpt_done; + + EXTERN int ag_stride; + EXTERN int thread_count; +diff --git a/repair/incore.c b/repair/incore.c +index cb573165..a9191ae2 100644 +--- a/repair/incore.c ++++ b/repair/incore.c +@@ -179,7 +179,7 @@ get_bmap_ext( + static uint64_t *rt_bmap; + static size_t rt_bmap_size; + +-/* block records fit into __uint64_t's units */ ++/* block records fit into uint64_t's units */ + #define XR_BB_UNIT 64 /* number of bits/unit */ + #define XR_BB 4 /* bits per block record */ + #define XR_BB_NUM (XR_BB_UNIT/XR_BB) /* number of records per unit */ +@@ -203,8 +203,8 @@ set_rtbmap( + { + *(rt_bmap + bno / XR_BB_NUM) = + ((*(rt_bmap + bno / XR_BB_NUM) & +- (~((__uint64_t) XR_BB_MASK << ((bno % XR_BB_NUM) * XR_BB)))) | +- (((__uint64_t) state) << ((bno % XR_BB_NUM) * XR_BB))); ++ (~((uint64_t) XR_BB_MASK << ((bno % XR_BB_NUM) * XR_BB)))) | ++ (((uint64_t) state) << ((bno % XR_BB_NUM) * XR_BB))); + } + + static void +@@ -222,9 +222,9 @@ init_rt_bmap( + return; + + rt_bmap_size = roundup(mp->m_sb.sb_rextents / (NBBY / XR_BB), +- sizeof(__uint64_t)); ++ sizeof(uint64_t)); + +- rt_bmap = memalign(sizeof(__uint64_t), rt_bmap_size); ++ rt_bmap = memalign(sizeof(uint64_t), rt_bmap_size); + if (!rt_bmap) { + do_error( + _("couldn't allocate realtime block map, size = %" PRIu64 "\n"), +diff --git a/repair/incore.h b/repair/incore.h +index c23a3a3c..fd66084f 100644 +--- a/repair/incore.h ++++ b/repair/incore.h +@@ -257,7 +257,7 @@ typedef xfs_ino_t parent_entry_t; + struct nlink_ops; + + typedef struct parent_list { +- __uint64_t pmask; ++ uint64_t pmask; + parent_entry_t *pentries; + #ifdef DEBUG + short cnt; +@@ -265,14 +265,14 @@ typedef struct parent_list { + } parent_list_t; + + union ino_nlink { +- __uint8_t *un8; +- __uint16_t *un16; +- __uint32_t *un32; ++ uint8_t *un8; ++ uint16_t *un16; ++ uint32_t *un32; + }; + + typedef struct ino_ex_data { +- __uint64_t ino_reached; /* bit == 1 if reached */ +- __uint64_t ino_processed; /* reference checked bit mask */ ++ uint64_t ino_reached; /* bit == 1 if reached */ ++ uint64_t ino_processed; /* reference checked bit mask */ + parent_list_t *parents; + union ino_nlink counted_nlinks;/* counted nlinks in P6 */ + } ino_ex_data_t; +@@ -281,22 +281,22 @@ typedef struct ino_tree_node { + avlnode_t avl_node; + xfs_agino_t ino_startnum; /* starting inode # */ + xfs_inofree_t ir_free; /* inode free bit mask */ +- __uint64_t ir_sparse; /* sparse inode bitmask */ +- __uint64_t ino_confirmed; /* confirmed bitmask */ +- __uint64_t ino_isa_dir; /* bit == 1 if a directory */ +- __uint64_t ino_was_rl; /* bit == 1 if reflink flag set */ +- __uint64_t ino_is_rl; /* bit == 1 if reflink flag should be set */ +- __uint8_t nlink_size; ++ uint64_t ir_sparse; /* sparse inode bitmask */ ++ uint64_t ino_confirmed; /* confirmed bitmask */ ++ uint64_t ino_isa_dir; /* bit == 1 if a directory */ ++ uint64_t ino_was_rl; /* bit == 1 if reflink flag set */ ++ uint64_t ino_is_rl; /* bit == 1 if reflink flag should be set */ ++ uint8_t nlink_size; + union ino_nlink disk_nlinks; /* on-disk nlinks, set in P3 */ + union { + ino_ex_data_t *ex_data; /* phases 6,7 */ + parent_list_t *plist; /* phases 2-5 */ + } ino_un; +- __uint8_t *ftypes; /* phases 3,6 */ ++ uint8_t *ftypes; /* phases 3,6 */ + } ino_tree_node_t; + +-#define INOS_PER_IREC (sizeof(__uint64_t) * NBBY) +-#define IREC_MASK(i) ((__uint64_t)1 << (i)) ++#define INOS_PER_IREC (sizeof(uint64_t) * NBBY) ++#define IREC_MASK(i) ((uint64_t)1 << (i)) + + void add_ino_ex_data(xfs_mount_t *mp); + +@@ -543,10 +543,10 @@ static inline int inode_is_rl(struct ino_tree_node *irec, int offset) + */ + void add_inode_ref(struct ino_tree_node *irec, int offset); + void drop_inode_ref(struct ino_tree_node *irec, int offset); +-__uint32_t num_inode_references(struct ino_tree_node *irec, int offset); ++uint32_t num_inode_references(struct ino_tree_node *irec, int offset); + +-void set_inode_disk_nlinks(struct ino_tree_node *irec, int offset, __uint32_t nlinks); +-__uint32_t get_inode_disk_nlinks(struct ino_tree_node *irec, int offset); ++void set_inode_disk_nlinks(struct ino_tree_node *irec, int offset, uint32_t nlinks); ++uint32_t get_inode_disk_nlinks(struct ino_tree_node *irec, int offset); + + static inline int is_inode_reached(struct ino_tree_node *irec, int offset) + { +@@ -567,13 +567,13 @@ static inline void add_inode_reached(struct ino_tree_node *irec, int offset) + static inline void + set_inode_ftype(struct ino_tree_node *irec, + int ino_offset, +- __uint8_t ftype) ++ uint8_t ftype) + { + if (irec->ftypes) + irec->ftypes[ino_offset] = ftype; + } + +-static inline __uint8_t ++static inline uint8_t + get_inode_ftype( + struct ino_tree_node *irec, + int ino_offset) +@@ -606,11 +606,11 @@ typedef struct bm_level_state { + xfs_fsblock_t fsbno; + xfs_fsblock_t left_fsbno; + xfs_fsblock_t right_fsbno; +- __uint64_t first_key; +- __uint64_t last_key; ++ uint64_t first_key; ++ uint64_t last_key; + /* + int level; +- __uint64_t prev_last_key; ++ uint64_t prev_last_key; + xfs_buf_t *bp; + xfs_bmbt_block_t *block; + */ +diff --git a/repair/incore_ext.c b/repair/incore_ext.c +index 7e6786c5..0a8138a9 100644 +--- a/repair/incore_ext.c ++++ b/repair/incore_ext.c +@@ -721,13 +721,13 @@ search_rt_dup_extent(xfs_mount_t *mp, xfs_rtblock_t bno) + return(ret); + } + +-static __uint64_t ++static uint64_t + avl64_rt_ext_start(avl64node_t *node) + { + return(((rt_extent_tree_node_t *) node)->rt_startblock); + } + +-static __uint64_t ++static uint64_t + avl64_ext_end(avl64node_t *node) + { + return(((rt_extent_tree_node_t *) node)->rt_startblock + +@@ -834,7 +834,7 @@ count_extents(xfs_agnumber_t agno, avltree_desc_t *tree, int whichtree) + int + count_bno_extents_blocks(xfs_agnumber_t agno, uint *numblocks) + { +- __uint64_t nblocks; ++ uint64_t nblocks; + extent_tree_node_t *node; + int i = 0; + +diff --git a/repair/incore_ino.c b/repair/incore_ino.c +index 2ec17657..3b6b44d4 100644 +--- a/repair/incore_ino.c ++++ b/repair/incore_ino.c +@@ -38,7 +38,7 @@ static avltree_desc_t **inode_uncertain_tree_ptrs; + /* memory optimised nlink counting for all inodes */ + + static void * +-alloc_nlink_array(__uint8_t nlink_size) ++alloc_nlink_array(uint8_t nlink_size) + { + void *ptr; + +@@ -51,10 +51,10 @@ alloc_nlink_array(__uint8_t nlink_size) + static void + nlink_grow_8_to_16(ino_tree_node_t *irec) + { +- __uint16_t *new_nlinks; ++ uint16_t *new_nlinks; + int i; + +- irec->nlink_size = sizeof(__uint16_t); ++ irec->nlink_size = sizeof(uint16_t); + + new_nlinks = alloc_nlink_array(irec->nlink_size); + for (i = 0; i < XFS_INODES_PER_CHUNK; i++) +@@ -76,10 +76,10 @@ nlink_grow_8_to_16(ino_tree_node_t *irec) + static void + nlink_grow_16_to_32(ino_tree_node_t *irec) + { +- __uint32_t *new_nlinks; ++ uint32_t *new_nlinks; + int i; + +- irec->nlink_size = sizeof(__uint32_t); ++ irec->nlink_size = sizeof(uint32_t); + + new_nlinks = alloc_nlink_array(irec->nlink_size); + for (i = 0; i < XFS_INODES_PER_CHUNK; i++) +@@ -104,21 +104,21 @@ void add_inode_ref(struct ino_tree_node *irec, int ino_offset) + ASSERT(irec->ino_un.ex_data != NULL); + + switch (irec->nlink_size) { +- case sizeof(__uint8_t): ++ case sizeof(uint8_t): + if (irec->ino_un.ex_data->counted_nlinks.un8[ino_offset] < 0xff) { + irec->ino_un.ex_data->counted_nlinks.un8[ino_offset]++; + break; + } + nlink_grow_8_to_16(irec); + /*FALLTHRU*/ +- case sizeof(__uint16_t): ++ case sizeof(uint16_t): + if (irec->ino_un.ex_data->counted_nlinks.un16[ino_offset] < 0xffff) { + irec->ino_un.ex_data->counted_nlinks.un16[ino_offset]++; + break; + } + nlink_grow_16_to_32(irec); + /*FALLTHRU*/ +- case sizeof(__uint32_t): ++ case sizeof(uint32_t): + irec->ino_un.ex_data->counted_nlinks.un32[ino_offset]++; + break; + default: +@@ -128,20 +128,20 @@ void add_inode_ref(struct ino_tree_node *irec, int ino_offset) + + void drop_inode_ref(struct ino_tree_node *irec, int ino_offset) + { +- __uint32_t refs = 0; ++ uint32_t refs = 0; + + ASSERT(irec->ino_un.ex_data != NULL); + + switch (irec->nlink_size) { +- case sizeof(__uint8_t): ++ case sizeof(uint8_t): + ASSERT(irec->ino_un.ex_data->counted_nlinks.un8[ino_offset] > 0); + refs = --irec->ino_un.ex_data->counted_nlinks.un8[ino_offset]; + break; +- case sizeof(__uint16_t): ++ case sizeof(uint16_t): + ASSERT(irec->ino_un.ex_data->counted_nlinks.un16[ino_offset] > 0); + refs = --irec->ino_un.ex_data->counted_nlinks.un16[ino_offset]; + break; +- case sizeof(__uint32_t): ++ case sizeof(uint32_t): + ASSERT(irec->ino_un.ex_data->counted_nlinks.un32[ino_offset] > 0); + refs = --irec->ino_un.ex_data->counted_nlinks.un32[ino_offset]; + break; +@@ -153,16 +153,16 @@ void drop_inode_ref(struct ino_tree_node *irec, int ino_offset) + irec->ino_un.ex_data->ino_reached &= ~IREC_MASK(ino_offset); + } + +-__uint32_t num_inode_references(struct ino_tree_node *irec, int ino_offset) ++uint32_t num_inode_references(struct ino_tree_node *irec, int ino_offset) + { + ASSERT(irec->ino_un.ex_data != NULL); + + switch (irec->nlink_size) { +- case sizeof(__uint8_t): ++ case sizeof(uint8_t): + return irec->ino_un.ex_data->counted_nlinks.un8[ino_offset]; +- case sizeof(__uint16_t): ++ case sizeof(uint16_t): + return irec->ino_un.ex_data->counted_nlinks.un16[ino_offset]; +- case sizeof(__uint32_t): ++ case sizeof(uint32_t): + return irec->ino_un.ex_data->counted_nlinks.un32[ino_offset]; + default: + ASSERT(0); +@@ -171,24 +171,24 @@ __uint32_t num_inode_references(struct ino_tree_node *irec, int ino_offset) + } + + void set_inode_disk_nlinks(struct ino_tree_node *irec, int ino_offset, +- __uint32_t nlinks) ++ uint32_t nlinks) + { + switch (irec->nlink_size) { +- case sizeof(__uint8_t): ++ case sizeof(uint8_t): + if (nlinks < 0xff) { + irec->disk_nlinks.un8[ino_offset] = nlinks; + break; + } + nlink_grow_8_to_16(irec); + /*FALLTHRU*/ +- case sizeof(__uint16_t): ++ case sizeof(uint16_t): + if (nlinks < 0xffff) { + irec->disk_nlinks.un16[ino_offset] = nlinks; + break; + } + nlink_grow_16_to_32(irec); + /*FALLTHRU*/ +- case sizeof(__uint32_t): ++ case sizeof(uint32_t): + irec->disk_nlinks.un32[ino_offset] = nlinks; + break; + default: +@@ -196,14 +196,14 @@ void set_inode_disk_nlinks(struct ino_tree_node *irec, int ino_offset, + } + } + +-__uint32_t get_inode_disk_nlinks(struct ino_tree_node *irec, int ino_offset) ++uint32_t get_inode_disk_nlinks(struct ino_tree_node *irec, int ino_offset) + { + switch (irec->nlink_size) { +- case sizeof(__uint8_t): ++ case sizeof(uint8_t): + return irec->disk_nlinks.un8[ino_offset]; +- case sizeof(__uint16_t): ++ case sizeof(uint16_t): + return irec->disk_nlinks.un16[ino_offset]; +- case sizeof(__uint32_t): ++ case sizeof(uint32_t): + return irec->disk_nlinks.un32[ino_offset]; + default: + ASSERT(0); +@@ -211,11 +211,11 @@ __uint32_t get_inode_disk_nlinks(struct ino_tree_node *irec, int ino_offset) + return 0; + } + +-static __uint8_t * ++static uint8_t * + alloc_ftypes_array( + struct xfs_mount *mp) + { +- __uint8_t *ptr; ++ uint8_t *ptr; + + if (!xfs_sb_version_hasftype(&mp->m_sb)) + return NULL; +@@ -262,23 +262,23 @@ alloc_ino_node( + irec->ir_free = (xfs_inofree_t) - 1; + irec->ir_sparse = 0; + irec->ino_un.ex_data = NULL; +- irec->nlink_size = sizeof(__uint8_t); ++ irec->nlink_size = sizeof(uint8_t); + irec->disk_nlinks.un8 = alloc_nlink_array(irec->nlink_size); + irec->ftypes = alloc_ftypes_array(mp); + return irec; + } + + static void +-free_nlink_array(union ino_nlink nlinks, __uint8_t nlink_size) ++free_nlink_array(union ino_nlink nlinks, uint8_t nlink_size) + { + switch (nlink_size) { +- case sizeof(__uint8_t): ++ case sizeof(uint8_t): + free(nlinks.un8); + break; +- case sizeof(__uint16_t): ++ case sizeof(uint16_t): + free(nlinks.un16); + break; +- case sizeof(__uint32_t): ++ case sizeof(uint32_t): + free(nlinks.un32); + break; + default: +@@ -609,7 +609,7 @@ set_inode_parent( + int i; + int cnt; + int target; +- __uint64_t bitmask; ++ uint64_t bitmask; + parent_entry_t *tmp; + + if (full_ino_ex_data) +@@ -699,7 +699,7 @@ set_inode_parent( + xfs_ino_t + get_inode_parent(ino_tree_node_t *irec, int offset) + { +- __uint64_t bitmask; ++ uint64_t bitmask; + parent_list_t *ptbl; + int i; + int target; +@@ -740,15 +740,15 @@ alloc_ex_data(ino_tree_node_t *irec) + irec->ino_un.ex_data->parents = ptbl; + + switch (irec->nlink_size) { +- case sizeof(__uint8_t): ++ case sizeof(uint8_t): + irec->ino_un.ex_data->counted_nlinks.un8 = + alloc_nlink_array(irec->nlink_size); + break; +- case sizeof(__uint16_t): ++ case sizeof(uint16_t): + irec->ino_un.ex_data->counted_nlinks.un16 = + alloc_nlink_array(irec->nlink_size); + break; +- case sizeof(__uint32_t): ++ case sizeof(uint32_t): + irec->ino_un.ex_data->counted_nlinks.un32 = + alloc_nlink_array(irec->nlink_size); + break; +diff --git a/repair/phase2.c b/repair/phase2.c +index c21778b8..0085732b 100644 +--- a/repair/phase2.c ++++ b/repair/phase2.c +@@ -179,7 +179,7 @@ phase2( + + bad_ino_btree = 0; + +- set_progress_msg(PROG_FMT_SCAN_AG, (__uint64_t) glob_agcount); ++ set_progress_msg(PROG_FMT_SCAN_AG, (uint64_t) glob_agcount); + + scan_ags(mp, scan_threads); + +diff --git a/repair/phase3.c b/repair/phase3.c +index 0890a27d..17b1c28d 100644 +--- a/repair/phase3.c ++++ b/repair/phase3.c +@@ -122,7 +122,7 @@ phase3( + else + do_log(_(" - scan (but don't clear) agi unlinked lists...\n")); + +- set_progress_msg(PROG_FMT_AGI_UNLINKED, (__uint64_t) glob_agcount); ++ set_progress_msg(PROG_FMT_AGI_UNLINKED, (uint64_t) glob_agcount); + + /* first clear the agi unlinked AGI list */ + if (!no_modify) { +@@ -142,7 +142,7 @@ phase3( + do_log(_( + " - process known inodes and perform inode discovery...\n")); + +- set_progress_msg(PROG_FMT_PROCESS_INO, (__uint64_t) mp->m_sb.sb_icount); ++ set_progress_msg(PROG_FMT_PROCESS_INO, (uint64_t) mp->m_sb.sb_icount); + + process_ags(mp); + +@@ -152,7 +152,7 @@ phase3( + * process newly discovered inode chunks + */ + do_log(_(" - process newly discovered inodes...\n")); +- set_progress_msg(PROG_FMT_NEW_INODES, (__uint64_t) glob_agcount); ++ set_progress_msg(PROG_FMT_NEW_INODES, (uint64_t) glob_agcount); + + counts = calloc(sizeof(*counts), mp->m_sb.sb_agcount); + if (!counts) { +diff --git a/repair/phase4.c b/repair/phase4.c +index e59464b1..cc17ec03 100644 +--- a/repair/phase4.c ++++ b/repair/phase4.c +@@ -290,7 +290,7 @@ phase4(xfs_mount_t *mp) + do_log(_("Phase 4 - check for duplicate blocks...\n")); + do_log(_(" - setting up duplicate extent list...\n")); + +- set_progress_msg(PROG_FMT_DUP_EXTENT, (__uint64_t) glob_agcount); ++ set_progress_msg(PROG_FMT_DUP_EXTENT, (uint64_t) glob_agcount); + + irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp, mp->m_sb.sb_rootino), + XFS_INO_TO_AGINO(mp, mp->m_sb.sb_rootino)); +@@ -404,7 +404,7 @@ phase4(xfs_mount_t *mp) + reset_bmaps(mp); + + do_log(_(" - check for inodes claiming duplicate blocks...\n")); +- set_progress_msg(PROG_FMT_DUP_BLOCKS, (__uint64_t) mp->m_sb.sb_icount); ++ set_progress_msg(PROG_FMT_DUP_BLOCKS, (uint64_t) mp->m_sb.sb_icount); + + /* + * ok, now process the inodes -- signal 2-pass check per inode. +diff --git a/repair/phase5.c b/repair/phase5.c +index 0b833f13..21dce67a 100644 +--- a/repair/phase5.c ++++ b/repair/phase5.c +@@ -86,9 +86,9 @@ struct agi_stat { + xfs_agino_t freecount; + }; + +-static __uint64_t *sb_icount_ag; /* allocated inodes per ag */ +-static __uint64_t *sb_ifree_ag; /* free inodes per ag */ +-static __uint64_t *sb_fdblocks_ag; /* free data blocks per ag */ ++static uint64_t *sb_icount_ag; /* allocated inodes per ag */ ++static uint64_t *sb_ifree_ag; /* free inodes per ag */ ++static uint64_t *sb_fdblocks_ag; /* free data blocks per ag */ + + static int + mk_incore_fstree(xfs_mount_t *mp, xfs_agnumber_t agno) +@@ -886,10 +886,10 @@ build_freespace_tree(xfs_mount_t *mp, xfs_agnumber_t agno, + */ + static void + init_ino_cursor(xfs_mount_t *mp, xfs_agnumber_t agno, bt_status_t *btree_curs, +- __uint64_t *num_inos, __uint64_t *num_free_inos, int finobt) ++ uint64_t *num_inos, uint64_t *num_free_inos, int finobt) + { +- __uint64_t ninos; +- __uint64_t nfinos; ++ uint64_t ninos; ++ uint64_t nfinos; + int rec_nfinos; + int rec_ninos; + ino_tree_node_t *ino_rec; +@@ -2193,10 +2193,10 @@ phase5_func( + xfs_agnumber_t agno, + struct xfs_slab *lost_fsb) + { +- __uint64_t num_inos; +- __uint64_t num_free_inos; +- __uint64_t finobt_num_inos; +- __uint64_t finobt_num_free_inos; ++ uint64_t num_inos; ++ uint64_t num_free_inos; ++ uint64_t finobt_num_inos; ++ uint64_t finobt_num_free_inos; + bt_status_t bno_btree_curs; + bt_status_t bcnt_btree_curs; + bt_status_t ino_btree_curs; +@@ -2471,7 +2471,7 @@ phase5(xfs_mount_t *mp) + int error; + + do_log(_("Phase 5 - rebuild AG headers and trees...\n")); +- set_progress_msg(PROG_FMT_REBUILD_AG, (__uint64_t )glob_agcount); ++ set_progress_msg(PROG_FMT_REBUILD_AG, (uint64_t)glob_agcount); + + #ifdef XR_BLD_FREE_TRACE + fprintf(stderr, "inobt level 1, maxrec = %d, minrec = %d\n", +@@ -2497,15 +2497,15 @@ phase5(xfs_mount_t *mp) + keep_fsinos(mp); + + /* allocate per ag counters */ +- sb_icount_ag = calloc(mp->m_sb.sb_agcount, sizeof(__uint64_t)); ++ sb_icount_ag = calloc(mp->m_sb.sb_agcount, sizeof(uint64_t)); + if (sb_icount_ag == NULL) + do_error(_("cannot alloc sb_icount_ag buffers\n")); + +- sb_ifree_ag = calloc(mp->m_sb.sb_agcount, sizeof(__uint64_t)); ++ sb_ifree_ag = calloc(mp->m_sb.sb_agcount, sizeof(uint64_t)); + if (sb_ifree_ag == NULL) + do_error(_("cannot alloc sb_ifree_ag buffers\n")); + +- sb_fdblocks_ag = calloc(mp->m_sb.sb_agcount, sizeof(__uint64_t)); ++ sb_fdblocks_ag = calloc(mp->m_sb.sb_agcount, sizeof(uint64_t)); + if (sb_fdblocks_ag == NULL) + do_error(_("cannot alloc sb_fdblocks_ag buffers\n")); + +diff --git a/repair/phase6.c b/repair/phase6.c +index 08636dcf..373b1a5b 100644 +--- a/repair/phase6.c ++++ b/repair/phase6.c +@@ -82,7 +82,7 @@ typedef struct dir_hash_ent { + struct dir_hash_ent *nextbyhash; /* next in name bucket */ + struct dir_hash_ent *nextbyorder; /* next in order added */ + xfs_dahash_t hashval; /* hash value of name */ +- __uint32_t address; /* offset of data entry */ ++ uint32_t address; /* offset of data entry */ + xfs_ino_t inum; /* inode num of entry */ + short junkit; /* name starts with / */ + short seen; /* have seen leaf entry */ +@@ -170,11 +170,11 @@ static int + dir_hash_add( + xfs_mount_t *mp, + dir_hash_tab_t *hashtab, +- __uint32_t addr, ++ uint32_t addr, + xfs_ino_t inum, + int namelen, + unsigned char *name, +- __uint8_t ftype) ++ uint8_t ftype) + { + xfs_dahash_t hash = 0; + int byaddr; +@@ -357,7 +357,7 @@ static void + dir_hash_update_ftype( + dir_hash_tab_t *hashtab, + xfs_dir2_dataptr_t addr, +- __uint8_t ftype) ++ uint8_t ftype) + { + int i; + dir_hash_ent_t *p; +@@ -1791,8 +1791,8 @@ longform_dir2_entry_check_data( + + /* validate ftype field if supported */ + if (xfs_sb_version_hasftype(&mp->m_sb)) { +- __uint8_t dir_ftype; +- __uint8_t ino_ftype; ++ uint8_t dir_ftype; ++ uint8_t ino_ftype; + + dir_ftype = M_DIROPS(mp)->data_get_ftype(dep); + ino_ftype = get_inode_ftype(irec, ino_offset); +@@ -2703,8 +2703,8 @@ _("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name"), + + /* validate ftype field if supported */ + if (xfs_sb_version_hasftype(&mp->m_sb)) { +- __uint8_t dir_ftype; +- __uint8_t ino_ftype; ++ uint8_t dir_ftype; ++ uint8_t ino_ftype; + + dir_ftype = M_DIROPS(mp)->sf_get_ftype(sfep); + ino_ftype = get_inode_ftype(irec, ino_offset); +diff --git a/repair/phase7.c b/repair/phase7.c +index 8bce117d..4ffb81a8 100644 +--- a/repair/phase7.c ++++ b/repair/phase7.c +@@ -32,7 +32,7 @@ static void + update_inode_nlinks( + xfs_mount_t *mp, + xfs_ino_t ino, +- __uint32_t nlinks) ++ uint32_t nlinks) + { + xfs_trans_t *tp; + xfs_inode_t *ip; +@@ -104,7 +104,7 @@ do_link_updates( + { + ino_tree_node_t *irec; + int j; +- __uint32_t nrefs; ++ uint32_t nrefs; + + for (irec = findfirst_inode_rec(agno); irec; + irec = next_ino_rec(irec)) { +@@ -143,7 +143,7 @@ phase7( + else + do_log(_("Phase 7 - verify link counts...\n")); + +- set_progress_msg(PROGRESS_FMT_CORR_LINK, (__uint64_t) glob_agcount); ++ set_progress_msg(PROGRESS_FMT_CORR_LINK, (uint64_t) glob_agcount); + + create_work_queue(&wq, mp, scan_threads); + +diff --git a/repair/progress.c b/repair/progress.c +index 2a09b239..99d2658c 100644 +--- a/repair/progress.c ++++ b/repair/progress.c +@@ -85,8 +85,8 @@ pthread_t report_thread; + typedef struct msg_block_s { + pthread_mutex_t mutex; + progress_rpt_t *format; +- __uint64_t *done; +- __uint64_t *total; ++ uint64_t *done; ++ uint64_t *total; + int count; + int interval; + } msg_block_t; +@@ -96,14 +96,14 @@ typedef struct phase_times_s { + time_t start; + time_t end; + time_t duration; +- __uint64_t item_counts[4]; ++ uint64_t item_counts[4]; + } phase_times_t; + static phase_times_t phase_times[8]; + + static void *progress_rpt_thread(void *); + static int current_phase; + static int running; +-static __uint64_t prog_rpt_total; ++static uint64_t prog_rpt_total; + + void + init_progress_rpt (void) +@@ -113,11 +113,11 @@ init_progress_rpt (void) + * allocate the done vector + */ + +- if ((prog_rpt_done = (__uint64_t *) +- malloc(sizeof(__uint64_t)*glob_agcount)) == NULL ) { ++ if ((prog_rpt_done = (uint64_t *) ++ malloc(sizeof(uint64_t)*glob_agcount)) == NULL) { + do_error(_("cannot malloc pointer to done vector\n")); + } +- bzero(prog_rpt_done, sizeof(__uint64_t)*glob_agcount); ++ bzero(prog_rpt_done, sizeof(uint64_t)*glob_agcount); + + /* + * Setup comm block, start the thread +@@ -165,10 +165,10 @@ progress_rpt_thread (void *p) + timer_t timerid; + struct itimerspec timespec; + char *msgbuf; +- __uint64_t *donep; +- __uint64_t sum; ++ uint64_t *donep; ++ uint64_t sum; + msg_block_t *msgp = (msg_block_t *)p; +- __uint64_t percent; ++ uint64_t percent; + + /* It's possible to get here very early w/ no progress msg set */ + if (!msgp->format) +@@ -286,7 +286,7 @@ progress_rpt_thread (void *p) + } + + int +-set_progress_msg (int report, __uint64_t total) ++set_progress_msg(int report, uint64_t total) + { + + if (!ag_stride) +@@ -300,7 +300,7 @@ set_progress_msg (int report, __uint64_t total) + + /* reset all the accumulative totals */ + if (prog_rpt_done) +- bzero(prog_rpt_done, sizeof(__uint64_t)*glob_agcount); ++ bzero(prog_rpt_done, sizeof(uint64_t)*glob_agcount); + + if (pthread_mutex_unlock(&global_msgs.mutex)) + do_error(_("set_progress_msg: cannot unlock progress mutex\n")); +@@ -308,14 +308,14 @@ set_progress_msg (int report, __uint64_t total) + return (0); + } + +-__uint64_t ++uint64_t + print_final_rpt(void) + { + int i; + struct tm *tmp; + time_t now; +- __uint64_t *donep; +- __uint64_t sum; ++ uint64_t *donep; ++ uint64_t sum; + msg_block_t *msgp = &global_msgs; + char msgbuf[DURATION_BUF_SIZE]; + +diff --git a/repair/progress.h b/repair/progress.h +index 33db8344..51526483 100644 +--- a/repair/progress.h ++++ b/repair/progress.h +@@ -32,8 +32,8 @@ + extern void init_progress_rpt(void); + extern void stop_progress_rpt(void); + extern void summary_report(void); +-extern int set_progress_msg(int report, __uint64_t total); +-extern __uint64_t print_final_rpt(void); ++extern int set_progress_msg(int report, uint64_t total); ++extern uint64_t print_final_rpt(void); + extern char *timestamp(int end, int phase, char *buf); + extern char *duration(int val, char *buf); + extern int do_parallel; +diff --git a/repair/rmap.c b/repair/rmap.c +index ab6e5839..01d6f0fc 100644 +--- a/repair/rmap.c ++++ b/repair/rmap.c +@@ -343,7 +343,7 @@ err: + + static int + find_first_zero_bit( +- __uint64_t mask) ++ uint64_t mask) + { + int n; + int b = 0; +@@ -356,7 +356,7 @@ find_first_zero_bit( + + static int + popcnt( +- __uint64_t mask) ++ uint64_t mask) + { + int n; + int b = 0; +@@ -1064,14 +1064,14 @@ err: + * Compare the key fields of two rmap records -- positive if key1 > key2, + * negative if key1 < key2, and zero if equal. + */ +-__int64_t ++int64_t + rmap_diffkeys( + struct xfs_rmap_irec *kp1, + struct xfs_rmap_irec *kp2) + { + __u64 oa; + __u64 ob; +- __int64_t d; ++ int64_t d; + struct xfs_rmap_irec tmp; + + tmp = *kp1; +@@ -1081,7 +1081,7 @@ rmap_diffkeys( + tmp.rm_flags &= ~XFS_RMAP_REC_FLAGS; + ob = libxfs_rmap_irec_offset_pack(&tmp); + +- d = (__int64_t)kp1->rm_startblock - kp2->rm_startblock; ++ d = (int64_t)kp1->rm_startblock - kp2->rm_startblock; + if (d) + return d; + +@@ -1192,10 +1192,10 @@ fix_inode_reflink_flags( + { + struct ino_tree_node *irec; + int bit; +- __uint64_t was; +- __uint64_t is; +- __uint64_t diff; +- __uint64_t mask; ++ uint64_t was; ++ uint64_t is; ++ uint64_t diff; ++ uint64_t mask; + int error = 0; + xfs_agino_t agino; + +diff --git a/repair/rmap.h b/repair/rmap.h +index 752ece82..1616ab7d 100644 +--- a/repair/rmap.h ++++ b/repair/rmap.h +@@ -44,7 +44,7 @@ extern int rmap_init_cursor(xfs_agnumber_t, struct xfs_slab_cursor **); + extern void rmap_avoid_check(void); + extern int rmaps_verify_btree(struct xfs_mount *, xfs_agnumber_t); + +-extern __int64_t rmap_diffkeys(struct xfs_rmap_irec *kp1, ++extern int64_t rmap_diffkeys(struct xfs_rmap_irec *kp1, + struct xfs_rmap_irec *kp2); + extern void rmap_high_key_from_rec(struct xfs_rmap_irec *rec, + struct xfs_rmap_irec *key); +diff --git a/repair/sb.c b/repair/sb.c +index 77e51546..acc92839 100644 +--- a/repair/sb.c ++++ b/repair/sb.c +@@ -40,7 +40,7 @@ copy_sb(xfs_sb_t *source, xfs_sb_t *dest) + xfs_ino_t uquotino; + xfs_ino_t gquotino; + xfs_ino_t pquotino; +- __uint16_t versionnum; ++ uint16_t versionnum; + + rootino = dest->sb_rootino; + rbmino = dest->sb_rbmino; +@@ -106,8 +106,8 @@ verify_sb_blocksize(xfs_sb_t *sb) + static int + __find_secondary_sb( + xfs_sb_t *rsb, +- __uint64_t start, +- __uint64_t skip) ++ uint64_t start, ++ uint64_t skip) + { + xfs_off_t off; + xfs_sb_t *sb; +@@ -187,13 +187,13 @@ __find_secondary_sb( + + static int + guess_default_geometry( +- __uint64_t *agsize, +- __uint64_t *agcount, ++ uint64_t *agsize, ++ uint64_t *agcount, + libxfs_init_t *x) + { + struct fs_topology ft; + int blocklog; +- __uint64_t dblocks; ++ uint64_t dblocks; + int multidisk; + + memset(&ft, 0, sizeof(ft)); +@@ -216,9 +216,9 @@ int + find_secondary_sb(xfs_sb_t *rsb) + { + int retval = 0; +- __uint64_t agcount; +- __uint64_t agsize; +- __uint64_t skip; ++ uint64_t agcount; ++ uint64_t agsize; ++ uint64_t skip; + int blocklog; + + /* +@@ -229,7 +229,7 @@ find_secondary_sb(xfs_sb_t *rsb) + do_warn(_("\nattempting to find secondary superblock...\n")); + + if (verify_sb_blocksize(rsb) == 0) { +- skip = (__uint64_t)rsb->sb_agblocks * rsb->sb_blocksize; ++ skip = (uint64_t)rsb->sb_agblocks * rsb->sb_blocksize; + if (skip >= XFS_AG_MIN_BYTES && skip <= XFS_AG_MAX_BYTES) + retval = __find_secondary_sb(rsb, skip, skip); + } +@@ -343,7 +343,7 @@ sb_validate_ino_align(struct xfs_sb *sb) + int + verify_sb(char *sb_buf, xfs_sb_t *sb, int is_primary_sb) + { +- __uint32_t bsize; ++ uint32_t bsize; + int i; + int ret; + +@@ -399,7 +399,7 @@ verify_sb(char *sb_buf, xfs_sb_t *sb, int is_primary_sb) + sb->sb_dblocks < XFS_MIN_DBLOCKS(sb)) + return(XR_BAD_FS_SIZE_DATA); + +- if (sb->sb_agblklog != (__uint8_t)libxfs_log2_roundup(sb->sb_agblocks)) ++ if (sb->sb_agblklog != (uint8_t)libxfs_log2_roundup(sb->sb_agblocks)) + return(XR_BAD_FS_SIZE_DATA); + + if (sb->sb_inodesize < XFS_DINODE_MIN_SIZE || +diff --git a/repair/scan.c b/repair/scan.c +index b9ef4dc3..447611ac 100644 +--- a/repair/scan.c ++++ b/repair/scan.c +@@ -42,13 +42,13 @@ struct aghdr_cnts { + xfs_agnumber_t agno; + xfs_extlen_t agffreeblks; + xfs_extlen_t agflongest; +- __uint64_t agfbtreeblks; +- __uint32_t agicount; +- __uint32_t agifreecount; +- __uint64_t fdblocks; +- __uint64_t usedblocks; +- __uint64_t ifreecount; +- __uint32_t fibtfreecount; ++ uint64_t agfbtreeblks; ++ uint32_t agicount; ++ uint32_t agifreecount; ++ uint64_t fdblocks; ++ uint64_t usedblocks; ++ uint64_t ifreecount; ++ uint32_t fibtfreecount; + }; + + void +@@ -70,10 +70,10 @@ scan_sbtree( + xfs_agnumber_t agno, + int suspect, + int isroot, +- __uint32_t magic, ++ uint32_t magic, + void *priv), + int isroot, +- __uint32_t magic, ++ uint32_t magic, + void *priv, + const struct xfs_buf_ops *ops) + { +@@ -110,23 +110,23 @@ scan_lbtree( + xfs_fsblock_t bno, + xfs_ino_t ino, + xfs_rfsblock_t *tot, +- __uint64_t *nex, ++ uint64_t *nex, + blkmap_t **blkmapp, + bmap_cursor_t *bm_cursor, + int isroot, + int check_dups, + int *dirty, +- __uint64_t magic), ++ uint64_t magic), + int type, + int whichfork, + xfs_ino_t ino, + xfs_rfsblock_t *tot, +- __uint64_t *nex, ++ uint64_t *nex, + blkmap_t **blkmapp, + bmap_cursor_t *bm_cursor, + int isroot, + int check_dups, +- __uint64_t magic, ++ uint64_t magic, + const struct xfs_buf_ops *ops) + { + xfs_buf_t *bp; +@@ -179,13 +179,13 @@ scan_bmapbt( + xfs_fsblock_t bno, + xfs_ino_t ino, + xfs_rfsblock_t *tot, +- __uint64_t *nex, ++ uint64_t *nex, + blkmap_t **blkmapp, + bmap_cursor_t *bm_cursor, + int isroot, + int check_dups, + int *dirty, +- __uint64_t magic) ++ uint64_t magic) + { + int i; + int err; +@@ -548,7 +548,7 @@ scan_allocbt( + xfs_agnumber_t agno, + int suspect, + int isroot, +- __uint32_t magic, ++ uint32_t magic, + void *priv) + { + struct aghdr_cnts *agcnts = priv; +@@ -930,7 +930,7 @@ scan_rmapbt( + xfs_agnumber_t agno, + int suspect, + int isroot, +- __uint32_t magic, ++ uint32_t magic, + void *priv) + { + const char *name = "rmap"; +@@ -1233,7 +1233,7 @@ scan_refcbt( + xfs_agnumber_t agno, + int suspect, + int isroot, +- __uint32_t magic, ++ uint32_t magic, + void *priv) + { + const char *name = "refcount"; +@@ -1939,7 +1939,7 @@ scan_inobt( + xfs_agnumber_t agno, + int suspect, + int isroot, +- __uint32_t magic, ++ uint32_t magic, + void *priv) + { + struct aghdr_cnts *agcnts = priv; +@@ -2176,7 +2176,7 @@ validate_agf( + struct aghdr_cnts *agcnts) + { + xfs_agblock_t bno; +- __uint32_t magic; ++ uint32_t magic; + + bno = be32_to_cpu(agf->agf_roots[XFS_BTNUM_BNO]); + if (bno != 0 && verify_agbno(mp, agno, bno)) { +@@ -2274,7 +2274,7 @@ validate_agi( + { + xfs_agblock_t bno; + int i; +- __uint32_t magic; ++ uint32_t magic; + + bno = be32_to_cpu(agi->agi_root); + if (bno != 0 && verify_agbno(mp, agno, bno)) { +@@ -2499,10 +2499,10 @@ scan_ags( + int scan_threads) + { + struct aghdr_cnts *agcnts; +- __uint64_t fdblocks = 0; +- __uint64_t icount = 0; +- __uint64_t ifreecount = 0; +- __uint64_t usedblocks = 0; ++ uint64_t fdblocks = 0; ++ uint64_t icount = 0; ++ uint64_t ifreecount = 0; ++ uint64_t usedblocks = 0; + xfs_agnumber_t i; + work_queue_t wq; + +diff --git a/repair/scan.h b/repair/scan.h +index ea8c0bf2..9bbe1e69 100644 +--- a/repair/scan.h ++++ b/repair/scan.h +@@ -30,23 +30,23 @@ int scan_lbtree( + xfs_fsblock_t bno, + xfs_ino_t ino, + xfs_rfsblock_t *tot, +- __uint64_t *nex, ++ uint64_t *nex, + struct blkmap **blkmapp, + bmap_cursor_t *bm_cursor, + int isroot, + int check_dups, + int *dirty, +- __uint64_t magic), ++ uint64_t magic), + int type, + int whichfork, + xfs_ino_t ino, + xfs_rfsblock_t *tot, +- __uint64_t *nex, ++ uint64_t *nex, + struct blkmap **blkmapp, + bmap_cursor_t *bm_cursor, + int isroot, + int check_dups, +- __uint64_t magic, ++ uint64_t magic, + const struct xfs_buf_ops *ops); + + int scan_bmapbt( +@@ -57,13 +57,13 @@ int scan_bmapbt( + xfs_fsblock_t bno, + xfs_ino_t ino, + xfs_rfsblock_t *tot, +- __uint64_t *nex, ++ uint64_t *nex, + struct blkmap **blkmapp, + bmap_cursor_t *bm_cursor, + int isroot, + int check_dups, + int *dirty, +- __uint64_t magic); ++ uint64_t magic); + + void + scan_ags( +-- +2.14.1 + diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/drop-configure-check-for-aio.patch b/meta-filesystems/recipes-utils/xfsprogs/files/drop-configure-check-for-aio.patch deleted file mode 100644 index 760109506ca..00000000000 --- a/meta-filesystems/recipes-utils/xfsprogs/files/drop-configure-check-for-aio.patch +++ /dev/null @@ -1,93 +0,0 @@ -xfsprogs: drop configure check for aio - -It's unused and breaks compilation with uclibc. - -Upstream-Status: Pending -Signed-off-by: Hongxu Jia ---- - configure.ac | 6 +++--- - m4/Makefile | 1 - - m4/package_aiodev.m4 | 36 ------------------------------------ - 3 files changed, 3 insertions(+), 40 deletions(-) - -diff --git a/configure.ac b/configure.ac -index b968977..4e2a263 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -47,6 +47,9 @@ AC_ARG_ENABLE(lib64, - enable_lib64=yes) - AC_SUBST(enable_lib64) - -+librt="-lrt" -+AC_SUBST(librt) -+ - # - # If the user specified a libdir ending in lib64 do not append another - # 64 to the library names. -@@ -92,9 +95,6 @@ AC_PACKAGE_GLOBALS(xfsprogs) - AC_PACKAGE_UTILITIES(xfsprogs) - AC_MULTILIB($enable_lib64) - --AC_PACKAGE_NEED_AIO_H --AC_PACKAGE_NEED_LIO_LISTIO -- - AC_PACKAGE_NEED_UUID_H - AC_PACKAGE_NEED_UUIDCOMPARE - -diff --git a/m4/Makefile b/m4/Makefile -index 654a4fb..d282f0a 100644 ---- a/m4/Makefile -+++ b/m4/Makefile -@@ -14,7 +14,6 @@ CONFIGURE = \ - - LSRCFILES = \ - manual_format.m4 \ -- package_aiodev.m4 \ - package_blkid.m4 \ - package_globals.m4 \ - package_libcdev.m4 \ -diff --git a/m4/package_aiodev.m4 b/m4/package_aiodev.m4 -index 490d9c8..8b13789 100644 ---- a/m4/package_aiodev.m4 -+++ b/m4/package_aiodev.m4 -@@ -1,37 +1 @@ --# --# Check if we have a libaio.h installed --# --AC_DEFUN([AC_PACKAGE_WANT_AIO], -- [ AC_CHECK_HEADERS(libaio.h, [ have_aio=true ], [ have_aio=false ]) -- AC_SUBST(have_aio) -- ]) -- --# --# Check if we have an aio.h installed --# --AC_DEFUN([AC_PACKAGE_NEED_AIO_H], -- [ AC_CHECK_HEADERS(aio.h) -- if test $ac_cv_header_aio_h = no; then -- echo -- echo 'FATAL ERROR: could not find a valid header.' -- exit 1 -- fi -- ]) -- --# --# Check if we have the lio_listio routine in either libc/librt --# --AC_DEFUN([AC_PACKAGE_NEED_LIO_LISTIO], -- [ AC_CHECK_FUNCS(lio_listio) -- if test $ac_cv_func_lio_listio = yes; then -- librt="" -- else -- AC_CHECK_LIB(rt, lio_listio,, [ -- echo -- echo 'FATAL ERROR: could not find a library with lio_listio.' -- exit 1],[-lpthread]) -- librt="-lrt" -- fi -- AC_SUBST(librt) -- ]) - --- -1.8.1.2 - diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch b/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch new file mode 100644 index 00000000000..bba9a25c241 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch @@ -0,0 +1,13 @@ +Index: xfsprogs-4.12.0/include/builddefs.in +=================================================================== +--- xfsprogs-4.12.0.orig/include/builddefs.in ++++ xfsprogs-4.12.0/include/builddefs.in +@@ -164,7 +164,7 @@ ifeq ($(ENABLE_GETTEXT),yes) + GCFLAGS += -DENABLE_GETTEXT + endif + +-BUILD_CFLAGS += $(GCFLAGS) $(PCFLAGS) ++BUILD_CFLAGS += $(GCFLAGS) + # First, Global, Platform, Local CFLAGS + CFLAGS += $(FCFLAGS) $(OPTIMIZER) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) + diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch b/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch new file mode 100644 index 00000000000..efc57e4f693 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch @@ -0,0 +1,117 @@ +From 21253610f9ef87db8e2a75b863b7fcfbd0cdb421 Mon Sep 17 00:00:00 2001 +From: "Darrick J. Wong" +Date: Tue, 25 Jul 2017 13:45:01 -0500 +Subject: [PATCH] In patch 4944defad4 ("xfs_db: redirect printfs when + metadumping to stdout"), we solved the problem of xfs_db printfs ending up in + the metadump stream by reassigning stdout for the duration of a stdout + metadump. Unfortunately, musl doesn't allow stdout to be reassigned (in + their view "extern FILE *stdout" means "extern FILE * const stdout"), so we + abandon the old approach in favor of playing games with dup() to switch the + raw file descriptors. + +While we're at it, fix a regression where an unconverted outf test +allows progress info to end up in the metadump stream. + +Signed-off-by: Darrick J. Wong +--- + db/metadump.c | 47 ++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 36 insertions(+), 11 deletions(-) + +diff --git a/db/metadump.c b/db/metadump.c +index 96641e0..4e2f648 100644 +--- a/db/metadump.c ++++ b/db/metadump.c +@@ -78,6 +78,7 @@ static int obfuscate = 1; + static int zero_stale_data = 1; + static int show_warnings = 0; + static int progress_since_warning = 0; ++static bool stdout_metadump; + + void + metadump_init(void) +@@ -137,7 +138,7 @@ print_progress(const char *fmt, ...) + va_end(ap); + buf[sizeof(buf)-1] = '\0'; + +- f = (outf == stdout) ? stderr : stdout; ++ f = stdout_metadump ? stderr : stdout; + fprintf(f, "\r%-59s", buf); + fflush(f); + progress_since_warning = 1; +@@ -2750,7 +2751,8 @@ metadump_f( + xfs_agnumber_t agno; + int c; + int start_iocur_sp; +- bool stdout_metadump = false; ++ int outfd = -1; ++ int ret; + char *p; + + exitcode = 1; +@@ -2870,16 +2872,35 @@ metadump_f( + * metadump operation so that dbprintf and other messages + * are sent to the console instead of polluting the + * metadump stream. ++ * ++ * We get to do this the hard way because musl doesn't ++ * allow reassignment of stdout. + */ +- outf = stdout; +- stdout = stderr; ++ fflush(stdout); ++ outfd = dup(STDOUT_FILENO); ++ if (outfd < 0) { ++ perror("opening dump stream"); ++ goto out; ++ } ++ ret = dup2(STDERR_FILENO, STDOUT_FILENO); ++ if (ret < 0) { ++ perror("redirecting stdout"); ++ close(outfd); ++ goto out; ++ } ++ outf = fdopen(outfd, "a"); ++ if (outf == NULL) { ++ fprintf(stderr, "cannot create dump stream\n"); ++ dup2(outfd, 1); ++ close(outfd); ++ goto out; ++ } + stdout_metadump = true; + } else { + outf = fopen(argv[optind], "wb"); + if (outf == NULL) { + print_warning("cannot create dump file"); +- free(metablock); +- return 0; ++ goto out; + } + } + +@@ -2907,15 +2928,19 @@ metadump_f( + if (progress_since_warning) + fputc('\n', stdout_metadump ? stderr : stdout); + +- if (stdout_metadump) +- stdout = outf; +- else +- fclose(outf); ++ if (stdout_metadump) { ++ fflush(outf); ++ fflush(stdout); ++ ret = dup2(outfd, STDOUT_FILENO); ++ if (ret < 0) ++ perror("un-redirecting stdout"); ++ } ++ fclose(outf); + + /* cleanup iocur stack */ + while (iocur_sp > start_iocur_sp) + pop_cur(); +- ++out: + free(metablock); + + return 0; +-- +2.13.3 diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_3.1.11.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_3.1.11.bb deleted file mode 100644 index fcf8f12bb2d..00000000000 --- a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_3.1.11.bb +++ /dev/null @@ -1,56 +0,0 @@ -SUMMARY = "XFS Filesystem Utilities" -HOMEPAGE = "http://oss.sgi.com/projects/xfs" -SECTION = "base" -LICENSE = "GPLv2" -LICENSE_libhandle = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://doc/COPYING;md5=dbdb5f4329b7e7145de650e9ecd4ac2a" -DEPENDS = "util-linux" - -SRC_URI = "ftp://oss.sgi.com/projects/xfs/cmd_tars/${BP}.tar.gz \ - file://remove-install-as-user.patch \ - file://drop-configure-check-for-aio.patch \ -" - -SRC_URI[md5sum] = "de9f1f45026c2f4e0776058d429ff4b6" -SRC_URI[sha256sum] = "adf4980177b5c890c1ca86b9c0e3e4d69a3f95bfc01746844280c2393cf4d6be" - -inherit autotools-brokensep - -PACKAGES =+ "${PN}-fsck ${PN}-mkfs libhandle" - -RDEPENDS_${PN} = "${PN}-fsck ${PN}-mkfs" - -FILES_${PN}-fsck = "${base_sbindir}/fsck.xfs" -FILES_${PN}-mkfs = "${base_sbindir}/mkfs.xfs" -FILES_libhandle = "${base_libdir}/libhandle${SOLIBS}" - -EXTRA_OECONF = "--enable-gettext=no" -do_configure () { - # Prevent Makefile from calling configure without arguments, - # when do_configure gets called for a second time. - rm -f include/builddefs include/platform_defs.h - # Recreate configure script. - rm -f configure - oe_runmake configure - # Configure. - export DEBUG="-DNDEBUG" - gnu-configize --force - oe_runconf -} - -LIBTOOL = "${HOST_SYS}-libtool" -EXTRA_OEMAKE = "'LIBTOOL=${LIBTOOL}'" -TARGET_CC_ARCH += "${LDFLAGS}" -PARALLEL_MAKE = "" - -do_install () { - export DIST_ROOT=${D} - oe_runmake install - # needed for xfsdump - oe_runmake install-dev - rm ${D}${base_libdir}/libhandle.a - rm ${D}${base_libdir}/libhandle.la - rm ${D}${base_libdir}/libhandle.so - rm ${D}${libdir}/libhandle.so - ln -s ../..${base_libdir}/libhandle.so.1 ${D}${libdir}/libhandle.so -} diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb new file mode 100644 index 00000000000..0788695ee66 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb @@ -0,0 +1,65 @@ +SUMMARY = "XFS Filesystem Utilities" +HOMEPAGE = "http://oss.sgi.com/projects/xfs" +SECTION = "base" +LICENSE = "GPLv2 & LGPLv2.1" +LICENSE_libhandle = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=102f7fec3d53c7c8f0b7baf9bf9d76a8" +DEPENDS = "util-linux util-linux-native" +SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ + file://0001-xfsprogs-remove-double-underscore-integer-types.patch \ + file://0001-xfs-remove-double-underscore-integer-types.patch \ + file://remove_flags_from_build_flags.patch \ + file://xfsprogs-4.12.0-fix_musl.patch \ + " +SRC_URI[md5sum] = "e348b0e1d7bd1cd82d64b91ff37e727e" +SRC_URI[sha256sum] = "b330ad8d737f4152ae511580102e2fc49212bb51dfb4b614084344abae46d0df" + +inherit autotools-brokensep + +PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle" + +DEPENDS += "util-linux" + +RDEPENDS_${PN} = "${PN}-fsck ${PN}-mkfs ${PN}-repair" + +FILES_${PN}-fsck = "${base_sbindir}/fsck.xfs" +FILES_${PN}-mkfs = "${base_sbindir}/mkfs.xfs" +FILES_${PN}-repair = "${base_sbindir}/xfs_repair" + +FILES_libhandle = "${base_libdir}/libhandle${SOLIBS}" + +EXTRA_OECONF = "--enable-gettext=no \ + INSTALL_USER=root \ + INSTALL_GROUP=root \ + ac_cv_header_aio_h=yes \ + ac_cv_lib_rt_lio_listio=yes \ +" + +DISABLE_STATIC = "" +EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader" + +PACKAGECONFIG ??= "readline blkid" + +PACKAGECONFIG[readline] = "--enable-readline=yes,--enable-readline=no,readline" +PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux" + +export DEBUG="-DNDEBUG" +export BUILD_VERBOSE="1" +export tagname="CC" + +EXTRA_OEMAKE = "DIST_ROOT='${D}'" + +do_configure_prepend () { + export BUILD_CC="${BUILD_CC} ${BUILD_CFLAGS}" + # Prevent Makefile from calling configure without arguments, + # when do_configure gets called for a second time. + rm -f ${B}/include/builddefs ${B}/include/platform_defs.h ${B}/configure + # Recreate configure script. + oe_runmake configure +} + +do_install_append() { + oe_runmake 'DESTDIR=${D}' install-dev + rm ${D}${libdir}/*.la + rmdir --ignore-fail-on-non-empty ${D}${libdir} +} diff --git a/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb b/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb new file mode 100644 index 00000000000..b26709e97ce --- /dev/null +++ b/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "xorriso copies file objects from POSIX compliant filesystems \ +into Rock Ridge enhanced ISO 9660 filesystems and allows session-wise \ +manipulation of such filesystems" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "http://www.gnu.org/software/${BPN}/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "ec79fd2736b8da76e7a870e27cadf6fa" +SRC_URI[sha256sum] = "0bd1e085015b28c24f57697d6def2fe84517967dc417554c0c3ccf1685ed0e56" + +PACKAGECONFIG ??= "acl attr zlib bzip2 readline" +PACKAGECONFIG[acl] = "--enable-libacl,--disable-libacl,acl," +PACKAGECONFIG[attr] = "--enable-xattr,--disable-xattr,attr," +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," +PACKAGECONFIG[bzip2] = "--enable-libbz2,--disable-libbz2,bzip2," +PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline," + +inherit autotools-brokensep pkgconfig distro_features_check + +do_configure_prepend () { + touch NEWS +} + +RDEPENDS_${PN} = "tk" +REQUIRED_DISTRO_FEATURES = "x11" + +BBCLASSEXTEND = "native" diff --git a/meta-gnome/conf/layer.conf b/meta-gnome/conf/layer.conf index 58e12a9cdae..a13881848d9 100644 --- a/meta-gnome/conf/layer.conf +++ b/meta-gnome/conf/layer.conf @@ -12,4 +12,6 @@ BBFILE_PRIORITY_gnome-layer = "7" # cause compatibility issues with other layers LAYERVERSION_gnome-layer = "1" -LAYERDEPENDS_gnome-layer = "core openembedded-layer" +LAYERDEPENDS_gnome-layer = "core openembedded-layer networking-layer" + +AVAHI_GTK_pn-avahi-ui = "gtk gtk3" diff --git a/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb b/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb deleted file mode 100644 index a54a3a220b7..00000000000 --- a/meta-gnome/recipes-apps/cheese/cheese_2.30.1.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Take photos and videos with your webcam, with fun graphical effects" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf" - -DEPENDS = "gtk+ gstreamer gst-plugins-base libcanberra udev librsvg gnome-desktop evolution-data-server intltool-native" - -PR = "r2" - -inherit gnome - -SRC_URI[archive.md5sum] = "1599fded8a1797ea51fb010af4e6c45b" -SRC_URI[archive.sha256sum] = "48f03470c6f527caa0e3b269d3afcff86ae0939a74f66ce030d4eed3bc3cbd9a" - -FILES_${PN} += "${datadir}/dbus-1" -RRECOMMENDS_${PN} = "gst-plugins-good-meta gst-plugins-base-meta" - -EXTRA_OECONF += "--disable-scrollkeeper" - -do_configure_prepend() { - sed -i -e "s: help : :g" ${S}/Makefile.am -} diff --git a/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb b/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb deleted file mode 100644 index d455f1447b0..00000000000 --- a/meta-gnome/recipes-apps/gnome-mplayer/gmtk_1.0.5.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "GTK+ widget and function libraries for gnome-mplayer" -HOMEPAGE = "http://code.google.com/p/gmtk" -SECTION = "libs" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -DEPENDS = "gtk+ alsa-lib glib-2.0 virtual/libx11 intltool-native pulseaudio gtk+3" - -SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz" -SRC_URI[md5sum] = "e06e9ca8d61d74910343bb3ef4348f7f" -SRC_URI[sha256sum] = "a07130d62719e8c1244f8405dd97445798df5204fc0f3f2f2b669b125114b468" - -EXTRA_OECONF = "--disable-gconf --with-gio --with-alsa --enable-keystore" - -inherit gettext pkgconfig autotools gconf diff --git a/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb b/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb deleted file mode 100644 index ef460f13df0..00000000000 --- a/meta-gnome/recipes-apps/gnome-mplayer/gnome-mplayer_1.0.5.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "A GTK+ interface to MPlayer" -HOMEPAGE = "http://code.google.com/p/gnome-mplayer" -SECTION = "multimedia" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -PNBLACKLIST[gnome-mplayer] ?= "rdepends on blacklisted mplayer" -PR = "r2" - -DEPENDS = "gmtk gtk+ alsa-lib libnotify glib-2.0 dbus-glib virtual/libx11 libxscrnsaver" - -SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz" -SRC_URI[md5sum] = "1d3ab24c5501b5528e357931ca4dc6da" -SRC_URI[sha256sum] = "ac3c179345baecb4ca5237782aa33e83253a87bf8b42ce6eb3a9207a340f61b2" - -EXTRA_OECONF = "--with-gio --with-alsa --with-dbus --with-libnotify" - -FILES_${PN} += "${datadir}/gnome-control-center/default-apps/${PN}.xml" -PACKAGES =+ "${PN}-nautilus-extension" -FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so \ - ${libdir}/nautilus/extensions-3.0/*.so" -FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \ - ${libdir}/nautilus/extensions-3.0/*.la" -FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \ - ${libdir}/nautilus/extensions-3.0/*.a" -FILES_${PN}-dbg += "${libdir}/nautilus/extensions-2.0/.debug \ - ${libdir}/nautilus/extensions-3.0/.debug" - -inherit gettext pkgconfig mime gtk-icon-cache autotools - -RDEPENDS_${PN} = "mplayer" diff --git a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/browser_command.patch b/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/browser_command.patch deleted file mode 100644 index 75e45e0ab69..00000000000 --- a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/browser_command.patch +++ /dev/null @@ -1,17 +0,0 @@ -Imported from Debian 0.1.8-3 - -Upstream-Status: Pending - -diff --git a/src/Config.cxx b/src/Config.cxx -index 28f37ab..bc58819 100644 ---- a/src/Config.cxx -+++ b/src/Config.cxx -@@ -22,7 +22,7 @@ - using namespace ePDFView; - - // Constants --static const gchar *DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE = "firefox %s"; -+static const gchar *DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE = "x-www-browser %s"; - static const gchar *DEFAULT_OPEN_FILE_FOLDER = NULL; - static const gchar *DEFAULT_SAVE_FILE_FOLDER = NULL; - static const gboolean DEFAULT_SHOW_STATUSBAR = TRUE; diff --git a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/fix-format.patch b/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/fix-format.patch deleted file mode 100644 index 8ad5b97ca95..00000000000 --- a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/fix-format.patch +++ /dev/null @@ -1,19 +0,0 @@ -Imported from Debian 0.1.8-3 - -Upstream-Status: Pending - -diff --git a/src/gtk/MainView.cxx b/src/gtk/MainView.cxx -index b983bff..f87de28 100644 ---- a/src/gtk/MainView.cxx -+++ b/src/gtk/MainView.cxx -@@ -634,8 +634,9 @@ MainView::showErrorMessage (const gchar *title, const gchar *body) - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, -+ "%s", - title); -- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog), -+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog), "%s", - body); - gtk_dialog_run (GTK_DIALOG (errorDialog)); - gtk_widget_destroy (errorDialog); diff --git a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/glib-single-include.patch b/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/glib-single-include.patch deleted file mode 100644 index 84a49138633..00000000000 --- a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/glib-single-include.patch +++ /dev/null @@ -1,17 +0,0 @@ -Imported from Debian 0.1.8-3 - -Upstream-Status: Pending - -diff --git a/src/gtk/StockIcons.h b/src/gtk/StockIcons.h -index c142a7a..58fcf2e 100644 ---- a/src/gtk/StockIcons.h -+++ b/src/gtk/StockIcons.h -@@ -18,7 +18,7 @@ - #if !defined (__STOCK_ICONS_H__) - #define __STOCK_ICONS_H__ - --#include -+#include - - G_BEGIN_DECLS - diff --git a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/swap-colors.patch b/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/swap-colors.patch deleted file mode 100644 index 282bfb184a8..00000000000 --- a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview/swap-colors.patch +++ /dev/null @@ -1,43 +0,0 @@ -Imported from Debian 0.1.8-3 - -Upstream-Status: Pending - -Index: trunk/src/PDFDocument.cxx -=================================================================== ---- trunk/src/PDFDocument.cxx (revision 361) -+++ trunk/src/PDFDocument.cxx (revision 367) -@@ -21,4 +21,5 @@ - #include - #include -+#include - #include "epdfview.h" - -@@ -33,4 +34,22 @@ - static PageMode convertPageMode (gint pageMode); - static gchar *getAbsoluteFileName (const gchar *fileName); -+ -+namespace -+{ -+ void -+ convert_bgra_to_rgba (guint8 *data, int width, int height) -+ { -+ using std::swap; -+ -+ for (int y = 0; y < height; y++) -+ { -+ for (int x = 0; x < width; x++) -+ { -+ swap(data[0], data[2]); -+ data += 4; -+ } -+ } -+ } -+} - - /// -@@ -651,4 +670,5 @@ - cairo_destroy(context); - cairo_surface_destroy (surface); -+ convert_bgra_to_rgba(renderedPage->getData (), width, height); - #else // !HAVE_POPPLER_0_17_0 - // Create the pixbuf from the data and render to it. diff --git a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview_0.1.8.bb b/meta-gnome/recipes-apps/nonworking/epdfview/epdfview_0.1.8.bb deleted file mode 100644 index 9167cd3d73d..00000000000 --- a/meta-gnome/recipes-apps/nonworking/epdfview/epdfview_0.1.8.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "A lightweight PDF viewer based on gtk and poppler" -HOMEPAGE = "http://www.emma-soft.com/projects/epdfview/" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -SECTION = "x11/applications" -DEPENDS = "gtk+ poppler" - -PR = "r3" - -EXTRA_OECONF += "--without-cups" - -inherit autotools gettext - -SRC_URI = "http://www.emma-soft.com/projects/${BPN}/chrome/site/releases/${BP}.tar.bz2 \ - file://browser_command.patch \ - file://fix-format.patch \ - file://glib-single-include.patch \ - file://swap-colors.patch \ -" -SRC_URI[md5sum] = "e50285b01612169b2594fea375f53ae4" -SRC_URI[sha256sum] = "948648ae7c9d7b3b408d738bd4f48d87375b1196cae1129d6b846a8de0f2f8f0" diff --git a/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb b/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb index 2b85ff43670..bf5178cf804 100644 --- a/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb +++ b/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb @@ -7,9 +7,12 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ file://pinpoint.c;beginline=6;endline=17;md5=201d438283607da393fae6aca085454c" -DEPENDS = "gnome-common glib-2.0 gdk-pixbuf cogl-1.0 clutter-1.0 clutter-gst-1.0" +DEPENDS = "glib-2.0 gdk-pixbuf cogl-1.0 clutter-1.0 clutter-gst-3.0 librsvg" -inherit autotools gettext pkgconfig +inherit autotools gettext pkgconfig distro_features_check + +# cogl requires opengl +REQUIRED_DISTRO_FEATURES = "opengl" SRC_URI = "git://git.gnome.org/pinpoint" diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/files/0001-remove-classes-and-properties-which-are-not-supporte.patch b/meta-gnome/recipes-connectivity/network-manager-applet/files/0001-remove-classes-and-properties-which-are-not-supporte.patch deleted file mode 100644 index 4bd0e4ffa3a..00000000000 --- a/meta-gnome/recipes-connectivity/network-manager-applet/files/0001-remove-classes-and-properties-which-are-not-supporte.patch +++ /dev/null @@ -1,41 +0,0 @@ -From c7d75ce38fa392c04c39a75e7b7e068666a7b1e7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 8 Apr 2014 15:22:54 +0200 -Subject: [PATCH] remove classes and properties which are not supported by gtk+ -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -unsupported classes caused nm-connection editor to crash - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - src/connection-editor/ce-page-general.ui | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/src/connection-editor/ce-page-general.ui b/src/connection-editor/ce-page-general.ui -index b05f0df..049432b 100644 ---- a/src/connection-editor/ce-page-general.ui -+++ b/src/connection-editor/ce-page-general.ui -@@ -37,8 +37,6 @@ - - True - False -- 26 -- 12 - dependent_vpn_model - - -@@ -59,7 +57,6 @@ - True - True - False -- 12 - True - 0 - True --- -1.8.3.1 - diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/files/0002-Add-support-for-AP-mode-setting-for-wifi-sharing.patch b/meta-gnome/recipes-connectivity/network-manager-applet/files/0002-Add-support-for-AP-mode-setting-for-wifi-sharing.patch deleted file mode 100644 index d0506b2e8e6..00000000000 --- a/meta-gnome/recipes-connectivity/network-manager-applet/files/0002-Add-support-for-AP-mode-setting-for-wifi-sharing.patch +++ /dev/null @@ -1,128 +0,0 @@ -From d789ef88a8806887bf1160bfa5d3d9eb47b6216c Mon Sep 17 00:00:00 2001 -From: "Marius B. Kotsbak" -Date: Mon, 11 Aug 2014 22:11:52 +0200 -Subject: [PATCH] Add support for AP mode setting for wifi sharing. - -Upstream-Status: Pending [1] - -[1] https://bugzilla.gnome.org/show_bug.cgi?id=734589 ---- - src/connection-editor/ce-page-wifi.ui | 3 +++ - src/connection-editor/page-wifi.c | 46 ++++++++++++++++++++--------------- - 2 files changed, 30 insertions(+), 19 deletions(-) - -diff --git a/src/connection-editor/ce-page-wifi.ui b/src/connection-editor/ce-page-wifi.ui -index e2e544b..b8b27c1 100644 ---- a/src/connection-editor/ce-page-wifi.ui -+++ b/src/connection-editor/ce-page-wifi.ui -@@ -50,6 +50,9 @@ - - Ad-hoc - -+ -+ Shared AP -+ - - - -diff --git a/src/connection-editor/page-wifi.c b/src/connection-editor/page-wifi.c -index d0a5617..17db2fa 100644 ---- a/src/connection-editor/page-wifi.c -+++ b/src/connection-editor/page-wifi.c -@@ -59,6 +59,12 @@ typedef struct { - gboolean disposed; - } CEPageWifiPrivate; - -+enum { -+ WIFI_MODE_INFRASTRUCTURE, -+ WIFI_MODE_ADHOC, -+ WIFI_MODE_AP -+}; -+ - static void - wifi_private_init (CEPageWifi *self) - { -@@ -244,22 +250,16 @@ mode_combo_changed_cb (GtkComboBox *combo, - CEPageWifiPrivate *priv = CE_PAGE_WIFI_GET_PRIVATE (self); - CEPage *parent = CE_PAGE (self); - GtkWidget *widget_band_label, *widget_chan_label, *widget_bssid_label; -- gboolean adhoc; -+ gint wifi_mode; -+ gboolean shared_wifi; - -- switch (gtk_combo_box_get_active (GTK_COMBO_BOX (combo))) { -- case 1: /* adhoc */ -- adhoc = TRUE; -- break; -- default: /* infrastructure */ -- adhoc = FALSE; -- break; -- } -+ wifi_mode = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); - - widget_band_label = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_band_label")); - widget_chan_label = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_channel_label")); - widget_bssid_label = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wifi_bssid_label")); - -- if (adhoc) { -+ if (WIFI_MODE_ADHOC == wifi_mode || WIFI_MODE_AP == wifi_mode) { - /* For Ad-Hoc show Band and Channel */ - gtk_widget_show (widget_band_label); - gtk_widget_show (GTK_WIDGET (priv->band)); -@@ -283,12 +283,13 @@ mode_combo_changed_cb (GtkComboBox *combo, - gtk_widget_show (GTK_WIDGET (priv->bssid)); - } - -- gtk_widget_set_sensitive (widget_band_label, adhoc); -- gtk_widget_set_sensitive (GTK_WIDGET (priv->band), adhoc); -- gtk_widget_set_sensitive (widget_chan_label, adhoc); -- gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), adhoc); -- gtk_widget_set_sensitive (widget_bssid_label, !adhoc); -- gtk_widget_set_sensitive (GTK_WIDGET (priv->bssid), !adhoc); -+ shared_wifi = wifi_mode != WIFI_MODE_INFRASTRUCTURE; -+ gtk_widget_set_sensitive (widget_band_label, shared_wifi); -+ gtk_widget_set_sensitive (GTK_WIDGET (priv->band), shared_wifi); -+ gtk_widget_set_sensitive (widget_chan_label, shared_wifi); -+ gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), shared_wifi); -+ gtk_widget_set_sensitive (widget_bssid_label, !shared_wifi); -+ gtk_widget_set_sensitive (GTK_WIDGET (priv->bssid), !shared_wifi); - - ce_page_changed (CE_PAGE (self)); - } -@@ -348,9 +349,12 @@ populate_ui (CEPageWifi *self) - g_byte_array_free (ssid, TRUE); - - /* Default to Infrastructure */ -- gtk_combo_box_set_active (priv->mode, 0); -+ gtk_combo_box_set_active (priv->mode, WIFI_MODE_INFRASTRUCTURE); - if (mode && !strcmp (mode, "adhoc")) -- gtk_combo_box_set_active (priv->mode, 1); -+ gtk_combo_box_set_active (priv->mode, WIFI_MODE_ADHOC); -+ else if (mode && !strcmp (mode, "ap")) -+ gtk_combo_box_set_active (priv->mode, WIFI_MODE_AP); -+ - mode_combo_changed_cb (priv->mode, self); - g_signal_connect (priv->mode, "changed", G_CALLBACK (mode_combo_changed_cb), self); - g_free (mode); -@@ -510,14 +514,18 @@ ui_to_setting (CEPageWifi *self) - GByteArray *bssid = NULL; - GByteArray *device_mac = NULL; - GByteArray *cloned_mac = NULL; -+ gint wifi_mode; - const char *mode; - const char *band; - GtkWidget *entry; - - ssid = ce_page_wifi_get_ssid (self); - -- if (gtk_combo_box_get_active (priv->mode) == 1) -+ wifi_mode = gtk_combo_box_get_active (priv->mode); -+ if (WIFI_MODE_ADHOC == wifi_mode) - mode = "adhoc"; -+ else if (WIFI_MODE_AP == wifi_mode) -+ mode = "ap"; - else - mode = "infrastructure"; - --- -1.9.1 diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/files/0003-Use-AP-mode-for-network-sharing-if-device-supports-it.patch b/meta-gnome/recipes-connectivity/network-manager-applet/files/0003-Use-AP-mode-for-network-sharing-if-device-supports-it.patch deleted file mode 100644 index e2156463dd6..00000000000 --- a/meta-gnome/recipes-connectivity/network-manager-applet/files/0003-Use-AP-mode-for-network-sharing-if-device-supports-it.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 7343b16113e378d04e40012abfe5bd96ca776968 Mon Sep 17 00:00:00 2001 -From: "Marius B. Kotsbak" -Date: Tue, 12 Aug 2014 11:15:20 +0200 -Subject: [PATCH 2/2] Use AP mode for network sharing if device supports it. - -Logic taken from similar functionality in gnome-control-center. - -Upstream-Status: Backport [1] - -[1] https://bug734589.bugzilla-attachments.gnome.org/attachment.cgi?id=283165 ---- - src/libnm-gtk/nm-wifi-dialog.c | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/src/libnm-gtk/nm-wifi-dialog.c b/src/libnm-gtk/nm-wifi-dialog.c -index 3532caa..ca72c96 100644 ---- a/src/libnm-gtk/nm-wifi-dialog.c -+++ b/src/libnm-gtk/nm-wifi-dialog.c -@@ -1226,10 +1226,26 @@ nma_wifi_dialog_get_connection (NMAWifiDialog *self, - s_wireless = (NMSettingWireless *) nm_setting_wireless_new (); - g_object_set (s_wireless, NM_SETTING_WIRELESS_SSID, validate_dialog_ssid (self), NULL); - -+ /* Fill device */ -+ if (device) { -+ combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo")); -+ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter); -+ gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, device, -1); -+ g_object_unref (*device); -+ } -+ - if (priv->adhoc_create) { - NMSettingIP4Config *s_ip4; - -- g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, "adhoc", NULL); -+ const char *mode; -+ -+ /* Use real AP mode if the device supports it */ -+ if (device && nm_device_wifi_get_capabilities (NM_DEVICE_WIFI (*device)) & NM_WIFI_DEVICE_CAP_AP) -+ mode = NM_SETTING_WIRELESS_MODE_AP; -+ else -+ mode = NM_SETTING_WIRELESS_MODE_ADHOC; -+ -+ g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, mode, NULL); - - s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new (); - g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_SHARED, NULL); --- -1.8.3.1 diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_0.9.8.10.bb b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_0.9.8.10.bb deleted file mode 100644 index 00cea746c09..00000000000 --- a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_0.9.8.10.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "GTK+ applet for NetworkManager" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -DEPENDS = "libnotify libsecret networkmanager dbus-glib gconf gnome-keyring libgnome-keyring iso-codes" - -inherit gnomebase gtk-icon-cache - -GNOME_COMPRESS_TYPE = "xz" - -SRC_URI += " \ - file://0001-remove-classes-and-properties-which-are-not-supporte.patch \ - file://0002-Add-support-for-AP-mode-setting-for-wifi-sharing.patch \ - file://0003-Use-AP-mode-for-network-sharing-if-device-supports-it.patch \ -" -SRC_URI[archive.md5sum] = "5148348c139229c6a753f815f3f11e1c" -SRC_URI[archive.sha256sum] = "46fee9a1e667d1826e6a94bb6bd2e6bdbde535fc995e534542f5f7e8b8dae0cb" - -# GTK2.x mode -EXTRA_OECONF += " \ - --with-gtkver=2 \ -" - -PACKAGECONFIG[bluetooth] = "--with-bluetooth,--without-bluetooth,gnome-bluetooth,gnome-bluetooth" -PACKAGECONFIG[modemmanager] = "--with-modem-manager-1,--without-modem-manager-1,modemmanager" -PACKAGECONFIG ??= "" - -do_configure_append() { - # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror - for i in $(find ${B} -name "Makefile") ; do - sed -i -e s:-Werror::g $i - done -} - -RDEPENDS_${PN} =+ "networkmanager" -RRECOMMENDS_${PN} =+ "gnome-keyring" - -FILES_${PN} += " \ - ${datadir}/nm-applet/ \ - ${datadir}/libnm-gtk/wifi.ui \ -" - -FILES_${PN} += "${libdir}/gnome-bluetooth/plugins/*.so" -FILES_${PN}-dev += "${libdir}/gnome-bluetooth/plugins/libnma.la" -FILES_${PN}-staticdev += "${libdir}/gnome-bluetooth/plugins/libnma.a" -FILES_${PN}-dbg += "${libdir}/gnome-bluetooth/plugins/.debug/" diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.4.4.bb b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.4.4.bb new file mode 100644 index 00000000000..14b336a1e49 --- /dev/null +++ b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.4.4.bb @@ -0,0 +1,36 @@ +SUMMARY = "GTK+ applet for NetworkManager" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +DEPENDS = "gtk+3 libnotify libsecret networkmanager dbus-glib \ + gconf libgnome-keyring iso-codes nss \ + intltool-native \ +" + +inherit gnomebase gsettings gtk-icon-cache gobject-introspection + +GNOME_COMPRESS_TYPE = "xz" + +SRC_URI[archive.md5sum] = "3f82cedc4703df0277c76d9feb5bf2c8" +SRC_URI[archive.sha256sum] = "693846eeae0986e79eb1cedfbc499f132f27a9976ef189a0f16938ac59ec3226" + +PACKAGECONFIG[modemmanager] = "--with-wwan,--without-wwan,modemmanager" +PACKAGECONFIG ??= "" + +GI_DATA_ENABLED_libc-musl = "False" + +do_configure_append() { + # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror + for i in $(find ${B} -name "Makefile") ; do + sed -i -e s%-Werror[^[:space:]]*%%g $i + done +} + +RDEPENDS_${PN} =+ "networkmanager" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/nm-applet/ \ + ${datadir}/libnm-gtk/wifi.ui \ + ${datadir}/libnma/wifi.ui \ +" diff --git a/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb b/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb index f28f77b8cb7..6096bed7359 100644 --- a/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb +++ b/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb @@ -1,12 +1,11 @@ SUMMARY = "OBEX Server and Client" # obexd was integrated into bluez5 -DEPENDS = "glib-2.0 dbus bluez4 libical" -RCONFLICTS_${PN} = "bluez5" +DEPENDS = "glib-2.0 dbus libical" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" - SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/obexd-${PV}.tar.gz \ file://ssize_t_definition.patch \ " diff --git a/meta-gnome/recipes-extended/gparted/files/gparted_polkit b/meta-gnome/recipes-extended/gparted/files/gparted_polkit new file mode 100644 index 00000000000..feabd0eebb6 --- /dev/null +++ b/meta-gnome/recipes-extended/gparted/files/gparted_polkit @@ -0,0 +1,10 @@ +#!/bin/sh + +# polkit installed? +if [ $(which pkexec) ]; then + pkexec --disable-internal-agent "%sbindir%/gparted" "$@" +else + %sbindir%/gparted "$@" +fi + + diff --git a/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy b/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy new file mode 100644 index 00000000000..77a91923ebc --- /dev/null +++ b/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy @@ -0,0 +1,20 @@ + + + + + + Run the GParted program + Authentication is required to run the GParted Partition Editor + gparted + + auth_admin + auth_admin + auth_admin + + /usr/sbin/gparted + true + + + diff --git a/meta-gnome/recipes-extended/gparted/gparted/0001-configure.ac-use-pkg-config-to-check-for-version-of-.patch b/meta-gnome/recipes-extended/gparted/gparted/0001-configure.ac-use-pkg-config-to-check-for-version-of-.patch deleted file mode 100644 index 1c99ff5129c..00000000000 --- a/meta-gnome/recipes-extended/gparted/gparted/0001-configure.ac-use-pkg-config-to-check-for-version-of-.patch +++ /dev/null @@ -1,68 +0,0 @@ -From a39d205ec3c6db6fe98aa2c7f8352db767557f60 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Wed, 12 Nov 2014 11:26:19 +0100 -Subject: [PATCH] configure.ac: use pkg-config to check for version of gparted -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -running test programs causes headaches when cross-compiling - -Upstream-Status: submitted [1] - -[1] https://bugzilla.gnome.org/show_bug.cgi?id=740004 - -Signed-off-by: Andreas Müller ---- - configure.ac | 34 ++++++---------------------------- - 1 file changed, 6 insertions(+), 28 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 37025b0..17bb686 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -48,35 +48,13 @@ LIBPARTED_REQUIRED_VERSION='1.7.1' - AC_MSG_CHECKING([for libparted >= $LIBPARTED_REQUIRED_VERSION]) - LIBPARTED_REQUIRED_INT=`echo "$LIBPARTED_REQUIRED_VERSION" | - $AWK -F. '{print $1 * 10000 + $2 * 100 + $3}'` --AC_RUN_IFELSE( -- [AC_LANG_SOURCE( -- [[ --#include --#include --#include -- --int main() --{ -- const char *version = ped_get_version(); -- if (version == NULL) -- { -- fprintf(stderr, "ERROR: ped_get_version() returned NULL\n"); -- return EXIT_FAILURE; -- } -- printf("%s\n", version); -- return EXIT_SUCCESS; --} -- ]] -- )], -- dnl Run test program again to cache libparted version. -- [LIBPARTED_FOUND_VERSION=`./conftest$EXEEXT` -- LIBPARTED_FOUND_INT=`echo "$LIBPARTED_FOUND_VERSION" | -- $AWK -F. '{print $1 * 10000 + $2 * 100 + $3}'` -- test "$LIBPARTED_FOUND_INT" -ge "$LIBPARTED_REQUIRED_INT" || -+ -+LIBPARTED_FOUND_VERSION="`pkg-config libparted --modversion`" -+LIBPARTED_FOUND_INT=`echo "$LIBPARTED_FOUND_VERSION" | -+ $AWK -F. '{print $1 * 10000 + $2 * 100 + $3}'` -+ -+test "$LIBPARTED_FOUND_INT" -ge "$LIBPARTED_REQUIRED_INT" || - AC_MSG_ERROR([*** libparted too old. Require libparted >= $LIBPARTED_REQUIRED_VERSION but only found libparted $LIBPARTED_FOUND_VERSION.]) -- ], -- [AC_MSG_ERROR([*** Error querying libparted version. Check config.log for details.])] --) - - - dnl Check for libparted >= 2.2 for improved informing the kernel to --- -1.8.3.1 - diff --git a/meta-gnome/recipes-extended/gparted/gparted_0.20.0.bb b/meta-gnome/recipes-extended/gparted/gparted_0.20.0.bb deleted file mode 100644 index 30eac8e55aa..00000000000 --- a/meta-gnome/recipes-extended/gparted/gparted_0.20.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "A partition editor to graphically manage disk partitions " -HOMEPAGE = "http://gparted.org/index.php" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit autotools pkgconfig - -SRC_URI = " \ - ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \ - file://0001-configure.ac-use-pkg-config-to-check-for-version-of-.patch \ -" -SRC_URI[md5sum] = "d9df57f9d4b4dbd148644774f8bbccfb" -SRC_URI[sha256sum] = "9b34d73d4519352a7e7344c8403ef61253be1b4db3ff332c397b0b1eb5c1ddc2" - -DEPENDS = "glib-2.0 gtkmm parted" - -EXTRA_OECONF = "--disable-scrollkeeper --disable-doc" - -FILES_${PN} += "${datadir}/icons ${datadir}/appdata" - -RDEPENDS_${PN} = "dosfstools mtools e2fsprogs" diff --git a/meta-gnome/recipes-extended/gparted/gparted_0.30.0.bb b/meta-gnome/recipes-extended/gparted/gparted_0.30.0.bb new file mode 100644 index 00000000000..cea0e3aef94 --- /dev/null +++ b/meta-gnome/recipes-extended/gparted/gparted_0.30.0.bb @@ -0,0 +1,38 @@ +SUMMARY = "A partition editor to graphically manage disk partitions " +HOMEPAGE = "http://gparted.org/index.php" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit autotools pkgconfig gtk-icon-cache + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.gz \ + file://org.yoctoproject.pkexec.run-gparted.policy \ + file://gparted_polkit \ +" +SRC_URI[md5sum] = "09b12d3831e91b26ec8726b00eecd43d" +SRC_URI[sha256sum] = "d31193effe058bdaeb2a4cd4b514ec753191179a0bc3abefda68a2b7975ecf4a" + +DEPENDS = "glib-2.0 glib-2.0-native gtkmm parted gnome-doc-utils intltool-native" + +do_install_append() { + # Add a script which checks if polkit is installed. + # If yes: a policy is requested from polkit / otherwise start as usual + install ${WORKDIR}/gparted_polkit ${D}${sbindir} + sed -i 's:%sbindir%:${sbindir}:g' ${D}${sbindir}/gparted_polkit + # relink menu entry to use our script + sed -i 's:${sbindir}/gparted:${sbindir}/gparted_polkit:g' ${D}${datadir}/applications/gparted.desktop + + install -d ${D}${datadir}/polkit-1/actions + install ${WORKDIR}/org.yoctoproject.pkexec.run-gparted.policy ${D}${datadir}/polkit-1/actions/org.yoctoproject.pkexec.run-gparted.policy +} + +EXTRA_OECONF = "--disable-scrollkeeper --disable-doc" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/icons \ + ${datadir}/polkit-1 \ +" + +RDEPENDS_${PN} = "dosfstools mtools e2fsprogs" diff --git a/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch b/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch new file mode 100644 index 00000000000..0dff1411d44 --- /dev/null +++ b/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch @@ -0,0 +1,39 @@ +From c646159ce817506131b58fdab1cdc1cd6364df7a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 7 Feb 2016 21:45:20 +0100 +Subject: [PATCH] plugins/aiksaurus/Makefile.am: remove uncomplete options + WITH_BUILTIN_AIKSAURUS_GTK +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* with gtk2 we won't use it +* it is missing in configure.ac causing + +| plugins/aiksaurus/Makefile.am:5: error: WITH_BUILTIN_AIKSAURUS_GTK does not appear in AM_CONDITIONAL + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + plugins/aiksaurus/Makefile.am | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/plugins/aiksaurus/Makefile.am b/plugins/aiksaurus/Makefile.am +index d402c58..1034e2a 100644 +--- a/plugins/aiksaurus/Makefile.am ++++ b/plugins/aiksaurus/Makefile.am +@@ -2,10 +2,6 @@ SUBDIRS = + + if TOOLKIT_GTK + +-if WITH_BUILTIN_AIKSAURUS_GTK +-SUBDIRS += aiksaurusgtk3 +-platform_lib = aiksaurusgtk3/libAiksaurusGtk3.la +-endif + + endif + +-- +2.5.0 + diff --git a/meta-gnome/recipes-gnome/abiword/abiword/autogen-common.sh b/meta-gnome/recipes-gnome/abiword/abiword/autogen-common.sh deleted file mode 100755 index c1f10e1a4db..00000000000 --- a/meta-gnome/recipes-gnome/abiword/abiword/autogen-common.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# find plugins Makefile templates -find plugins -name Makefile.am | sed 's|.am$||g' > plugin-makefiles.m4 - -# create plugin list -(cd plugins && find . -maxdepth 1 -type d | grep -v '^\.$' | grep -v '\./\.' | sed 's|\./||g' | xargs echo) > plugin-list.m4 - -# create conditionals for builtin plugins -(for plugin in `cat plugin-list.m4`; do - u=`echo $plugin | tr '[:lower:]' '[:upper:]'` - echo 'AM_CONDITIONAL(['$u'_BUILTIN], test "$enable_'$plugin'_builtin" == "yes")' -done) > plugin-builtin.m4 - -# create plugin configuration -find plugins -name plugin.m4 | xargs cat > plugin-configure.m4 -#to debug if plugin configuration code misbehaves (instead of the above line): -#rm plugin-configure.m4 -#for f in $(find plugins -name plugin.m4); do -# echo "AC_MSG_RESULT([plugin: $f])" >> plugin-configure.m4 -# cat $f >> plugin-configure.m4 -#done - -# find extra m4 files provided by plugins and symlink them -for f in ` find ./plugins -name '*.m4' | grep -v 'plugin\.m4'`; do - ln -sf $f -done - diff --git a/meta-gnome/recipes-gnome/abiword/abiword/debian_patches_boost54.patch b/meta-gnome/recipes-gnome/abiword/abiword/debian_patches_boost54.patch deleted file mode 100644 index cf50cb2c906..00000000000 --- a/meta-gnome/recipes-gnome/abiword/abiword/debian_patches_boost54.patch +++ /dev/null @@ -1,32 +0,0 @@ -Last-Update: 2014-02-05 -Forwarded: yes -Author: Dmitry Smirnov -Bug-Debian: http://bugs.debian.org/737551 -Bug-Abiword: http://bugzilla.abisource.com/13602 -Description: fix FTBFS with libboost1.54-dev -Upstream-Status: Applied - ---- a/plugins/collab/core/sync/xp/SynchronizedQueue.h -+++ b/plugins/collab/core/sync/xp/SynchronizedQueue.h -@@ -21,8 +21,9 @@ - - #include - #include - #include -+#include - #include - #include - - class EmptyQueueException {}; ---- a/plugins/collab/backends/tcp/xp/Session.h -+++ b/plugins/collab/backends/tcp/xp/Session.h -@@ -21,8 +21,9 @@ - - #include - #include - #include -+#include - #include - #include - #include - diff --git a/meta-gnome/recipes-gnome/abiword/abiword_3.0.0.bb b/meta-gnome/recipes-gnome/abiword/abiword_3.0.0.bb deleted file mode 100644 index eb4bba21753..00000000000 --- a/meta-gnome/recipes-gnome/abiword/abiword_3.0.0.bb +++ /dev/null @@ -1,127 +0,0 @@ -SUMMARY = "AbiWord is free word processing program similar to Microsoft(r) Word" -HOMEPAGE = "http://www.abiword.org" -SECTION = "x11/office" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=ecd3ac329fca77e2d0e412bec38e1c20" -DEPENDS = "perl-native wv libglade libfribidi jpeg libpng \ - librsvg libwmf-native gtkmathview asio gtk+ evolution-data-server" -RDEPENDS_${PN} = "glibc-gconv-ibm850 glibc-gconv-cp1252 \ - glibc-gconv-iso8859-15 glibc-gconv-iso8859-1" -RCONFLICTS_${PN} = "${PN}-embedded" - -SRC_URI = "http://www.abisource.com/downloads/${BPN}/${PV}/source/${BP}.tar.gz \ - file://debian_patches_boost54.patch \ - file://autogen-common.sh \ -" - -LIC_FILES_CHKSUM = "file://COPYING;md5=c5edcc3ccd864b19004d14e9c1c9a26a" - -SRC_URI[md5sum] = "8d9c41cff3a8fbef8d0c835c65600e65" -SRC_URI[sha256sum] = "d17e318c00ff4eb353e0e7994b098b1d4f9ddd8712ac0261a0e38b89081fac01" - -#want 3.x from 3.x.y for the installation directory -SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" - -inherit autotools-brokensep pkgconfig - -PACKAGECONFIG ??= "collab-backend-xmpp collab-backend-tcp" -PACKAGECONFIG[spell] = "--enable-spell,--disable-spell,enchant" -PACKAGECONFIG[collab-backend-xmpp] = "--enable-collab-backend-xmpp,--disable-collab-backend-xmpp,libgsf libxml2 loudmouth" -PACKAGECONFIG[collab-backend-tcp] = "--enable-collab-backend-tcp,--disable-collab-backend-tcp,libgsf libxml2" -PACKAGECONFIG[collab-backend-service] = "--enable-collab-backend-service,--disable-collab-backend-service,libgsf libxml2 libsoup-2.4 gnutls" -PACKAGECONFIG[collab-backend-telepathy] = "--enable-collab-backend-telepathy,--disable-collab-backend-telepathy,libgsf libxml2 telepathy-glib telepathy-mission-control" -PACKAGECONFIG[collab-backend-sugar] = "--enable-collab-backend-sugar,--disable-collab-backend-sugar,libgsf libxml2 dbus-glib" - -EXTRA_OECONF = " --disable-static \ - --enable-plugins \ - --enable-clipart \ - --enable-templates \ - --without-gnomevfs \ - --with-gtk2 \ - --with-libwmf-config=${STAGING_DIR} \ -" - -# AbiWord configure.ac does not play nicely with autoreconf -# so use the autogen.sh script that comes with AbiWord -do_configure() { - install -m 0755 ${WORKDIR}/autogen-common.sh ${B}/autogen-common.sh - ./autogen-common.sh - autotools_do_configure -} - -do_compile() { - cd goffice-bits2 - make goffice-paths.h - make libgoffice.la - cd ${B} - oe_runmake -} - -PACKAGES += " ${PN}-clipart ${PN}-strings ${PN}-systemprofiles ${PN}-templates " - -FILES_${PN} += " \ - ${libdir}/lib${PN}-*.so \ - ${datadir}/mime-info \ - ${datadir}/icons/* \ - ${datadir}/${PN}-${SHRT_VER}/glade \ - ${datadir}/${PN}-${SHRT_VER}/scripts \ - ${datadir}/${PN}-${SHRT_VER}/system.profile-en \ - ${datadir}/${PN}-${SHRT_VER}/system.profile-en_GB \ - ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt-en_GB \ - ${datadir}/${PN}-${SHRT_VER}/templates/Employee-Directory.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Business-Report.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Fax-Coversheet.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Resume.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Two-Columns.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Memo.awt \ - ${datadir}/${PN}-${SHRT_VER}/templates/Press-Release.awt \ - ${datadir}/${PN}-${SHRT_VER}/certs \ - ${datadir}/${PN}-${SHRT_VER}/ui \ - ${datadir}/${PN}-${SHRT_VER}/xsl* \ - ${datadir}/${PN}-${SHRT_VER}/mime-info \ - ${datadir}/${PN}-${SHRT_VER}/Pr*.xml \ -" - -# don't steal /usr/lib/libabiword-3.0.so from ${PN} -# in this case it's needed in ${PN} -FILES_${PN}-dev = " \ - ${includedir} \ - ${libdir}/pkgconfig \ - ${libdir}/${PN}*.la \ - ${libdir}/lib${PN}*.la \ - ${libdir}/${PN}-${SHRT_VER}/plugins/*.la \ -" -FILES_${PN}-dbg += "${libdir}/${PN}-${SHRT_VER}/plugins/.debug" -FILES_${PN}-doc += "${datadir}/${PN}-*/readme*" - -FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/strings" -FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/system.profile*" -FILES_${PN}-clipart += "${datadir}/${PN}-${SHRT_VER}/clipart" -FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/AbiWord/strings" -FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/AbiWord/system.profile*" -FILES_${PN}-templates += "${datadir}/${PN}-${SHRT_VER}/templates" - -PACKAGES_DYNAMIC += "^${PN}-meta.* ^${PN}-plugin-.*" - -python populate_packages_prepend () { - abiword_libdir = d.expand('${libdir}/${PN}-${SHRT_VER}/plugins') - do_split_packages(d, abiword_libdir, '(.*)\.so$', 'abiword-plugin-%s', 'Abiword plugin for %s', extra_depends='') - - metapkg = "abiword-meta" - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - d.setVar('FILES_' + metapkg, "") - blacklist = [ 'abiword-plugins-dbg', 'abiword-plugins', 'abiword-plugins-doc', 'abiword-plugins-dev', 'abiword-plugins-locale' ] - metapkg_rdepends = [] - packages = d.getVar('PACKAGES', 1).split() - for pkg in packages[1:]: - if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale") and not pkg.count("abiword-doc"): - print "Modifying ", pkg - metapkg_rdepends.append(pkg) - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) - d.setVar('DESCRIPTION_' + metapkg, 'abiword-plugin meta package') - packages.append(metapkg) - d.setVar('PACKAGES', ' '.join(packages)) -} - -FILES_${PN}-plugin-openxml += "${datadir}/${PN}-${SHRT_VER}/omml_xslt" diff --git a/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb b/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb new file mode 100644 index 00000000000..2a13e483932 --- /dev/null +++ b/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb @@ -0,0 +1,141 @@ +SUMMARY = "AbiWord is free word processing program similar to Microsoft(r) Word" +HOMEPAGE = "http://www.abiword.org" +SECTION = "x11/office" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=ecd3ac329fca77e2d0e412bec38e1c20" +DEPENDS = " \ + perl-native \ + gtk+ \ + gtkmathview \ + wv \ + libglade \ + libfribidi \ + jpeg \ + libpng \ + librsvg \ + libwmf-native \ + asio \ + evolution-data-server \ + libxslt \ + ${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'redland rasqal', '', d)} \ +" +RDEPENDS_${PN}_append_libc-glibc = " \ + glibc-gconv-ibm850 glibc-gconv-cp1252 \ + glibc-gconv-iso8859-15 glibc-gconv-iso8859-1 \ +" +RCONFLICTS_${PN} = "${PN}-embedded" + +SRC_URI = " \ + http://www.abisource.com/downloads/${BPN}/${PV}/source/${BP}.tar.gz \ + file://0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c5edcc3ccd864b19004d14e9c1c9a26a" + +SRC_URI[md5sum] = "cda6dd58c747c133b421cc7eb18f5796" +SRC_URI[sha256sum] = "afbfd458fd02989d8b0c6362ba8a4c14686d89666f54cfdb5501bd2090cf3522" + +#want 3.x from 3.x.y for the installation directory +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" + +inherit autotools-brokensep pkgconfig + +PACKAGECONFIG ??= " \ + collab-backend-xmpp collab-backend-tcp \ + ${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'libical', '', d)} \ +" +PACKAGECONFIG[libical] = "--with-libical,--without-libical,libical raptor2" +PACKAGECONFIG[spell] = "--enable-spell,--disable-spell,enchant" +PACKAGECONFIG[collab-backend-xmpp] = "--enable-collab-backend-xmpp,--disable-collab-backend-xmpp,libgsf libxml2 loudmouth" +PACKAGECONFIG[collab-backend-tcp] = "--enable-collab-backend-tcp,--disable-collab-backend-tcp,libgsf libxml2" +PACKAGECONFIG[collab-backend-service] = "--enable-collab-backend-service,--disable-collab-backend-service,libgsf libxml2 libsoup-2.4 gnutls" +PACKAGECONFIG[collab-backend-telepathy] = "--enable-collab-backend-telepathy,--disable-collab-backend-telepathy,libgsf libxml2 telepathy-glib telepathy-mission-control" +PACKAGECONFIG[collab-backend-sugar] = "--enable-collab-backend-sugar,--disable-collab-backend-sugar,libgsf libxml2 dbus-glib" + +EXTRA_OECONF = " --disable-static \ + --enable-plugins \ + --enable-clipart \ + --enable-templates \ + --without-gnomevfs \ + --with-gtk2 \ + --with-libwmf-config=${STAGING_DIR} \ +" + +LDFLAGS += "-lgmodule-2.0" + +do_compile() { + cd goffice-bits2 + make goffice-paths.h + make libgoffice.la + cd ${B} + oe_runmake +} + +PACKAGES += " ${PN}-clipart ${PN}-strings ${PN}-systemprofiles ${PN}-templates " + +FILES_${PN} += " \ + ${libdir}/lib${PN}-*.so \ + ${datadir}/mime-info \ + ${datadir}/icons/* \ + ${datadir}/${PN}-${SHRT_VER}/glade \ + ${datadir}/${PN}-${SHRT_VER}/scripts \ + ${datadir}/${PN}-${SHRT_VER}/system.profile-en \ + ${datadir}/${PN}-${SHRT_VER}/system.profile-en_GB \ + ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt-en_GB \ + ${datadir}/${PN}-${SHRT_VER}/templates/Employee-Directory.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Business-Report.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Fax-Coversheet.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Resume.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Two-Columns.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Memo.awt \ + ${datadir}/${PN}-${SHRT_VER}/templates/Press-Release.awt \ + ${datadir}/${PN}-${SHRT_VER}/certs \ + ${datadir}/${PN}-${SHRT_VER}/ui \ + ${datadir}/${PN}-${SHRT_VER}/xsl* \ + ${datadir}/${PN}-${SHRT_VER}/mime-info \ + ${datadir}/${PN}-${SHRT_VER}/Pr*.xml \ +" + +# don't steal /usr/lib/libabiword-3.0.so from ${PN} +# in this case it's needed in ${PN} +FILES_${PN}-dev = " \ + ${includedir} \ + ${libdir}/pkgconfig \ + ${libdir}/${PN}*.la \ + ${libdir}/lib${PN}*.la \ + ${libdir}/${PN}-${SHRT_VER}/plugins/*.la \ +" +FILES_${PN}-dbg += "${libdir}/${PN}-${SHRT_VER}/plugins/.debug" +FILES_${PN}-doc += "${datadir}/${PN}-*/readme*" + +FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/strings" +FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/system.profile*" +FILES_${PN}-clipart += "${datadir}/${PN}-${SHRT_VER}/clipart" +FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/AbiWord/strings" +FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/AbiWord/system.profile*" +FILES_${PN}-templates += "${datadir}/${PN}-${SHRT_VER}/templates" + +PACKAGES_DYNAMIC += "^${PN}-meta.* ^${PN}-plugin-.*" + +python populate_packages_prepend () { + abiword_libdir = d.expand('${libdir}/${PN}-${SHRT_VER}/plugins') + do_split_packages(d, abiword_libdir, '(.*)\.so$', 'abiword-plugin-%s', 'Abiword plugin for %s', extra_depends='') + + metapkg = "abiword-meta" + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + d.setVar('FILES_' + metapkg, "") + blacklist = [ 'abiword-plugins-dbg', 'abiword-plugins', 'abiword-plugins-doc', 'abiword-plugins-dev', 'abiword-plugins-locale' ] + metapkg_rdepends = [] + packages = d.getVar('PACKAGES').split() + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale") and not pkg.count("abiword-doc"): + print("Modifying %s" % pkg) + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) + d.setVar('DESCRIPTION_' + metapkg, 'abiword-plugin meta package') + packages.append(metapkg) + d.setVar('PACKAGES', ' '.join(packages)) +} + +FILES_${PN}-plugin-openxml += "${datadir}/${PN}-${SHRT_VER}/omml_xslt" diff --git a/meta-gnome/recipes-gnome/bonobo/files/0001-bonobo-ui-node-qualify-functions-with-G_GNUC_PRINTF.patch b/meta-gnome/recipes-gnome/bonobo/files/0001-bonobo-ui-node-qualify-functions-with-G_GNUC_PRINTF.patch new file mode 100644 index 00000000000..e9aebb853e1 --- /dev/null +++ b/meta-gnome/recipes-gnome/bonobo/files/0001-bonobo-ui-node-qualify-functions-with-G_GNUC_PRINTF.patch @@ -0,0 +1,49 @@ +From b75879e8c3e24d338c0e5843d616bc9b02da4d04 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 09:52:17 -0700 +Subject: [PATCH] bonobo-ui-node: qualify functions with G_GNUC_PRINTF + +This helps compiler in doing format checking correctly +Fixes +bonobo-ui-node.c:864:38: error: format string is not a string literal [-Werror,-Wformat-nonliteral] +| g_logv ("XML", G_LOG_LEVEL_ERROR, msg, args); + +Signed-off-by: Khem Raj +--- + bonobo/bonobo-ui-node.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/bonobo/bonobo-ui-node.c b/bonobo/bonobo-ui-node.c +index 9bab5e5..6ec66e2 100644 +--- a/bonobo/bonobo-ui-node.c ++++ b/bonobo/bonobo-ui-node.c +@@ -835,7 +835,7 @@ uiCharacters (ParseState *ps, const xmlChar *chars, int len) + g_string_append_len (ps->content, chars, len); + } + +-static void ++static G_GNUC_PRINTF(2, 3) void + uiWarning (ParseState *ps, const char *msg, ...) + { + va_list args; +@@ -845,7 +845,7 @@ uiWarning (ParseState *ps, const char *msg, ...) + va_end (args); + } + +-static void ++static G_GNUC_PRINTF(2, 3) void + uiError (ParseState *ps, const char *msg, ...) + { + va_list args; +@@ -855,7 +855,7 @@ uiError (ParseState *ps, const char *msg, ...) + va_end (args); + } + +-static void ++static G_GNUC_PRINTF(2, 3) void + uiFatalError (ParseState *ps, const char *msg, ...) + { + va_list args; +-- +2.14.1 + diff --git a/meta-gnome/recipes-gnome/bonobo/files/gcc5.patch b/meta-gnome/recipes-gnome/bonobo/files/gcc5.patch new file mode 100644 index 00000000000..f7528adad44 --- /dev/null +++ b/meta-gnome/recipes-gnome/bonobo/files/gcc5.patch @@ -0,0 +1,12 @@ +Index: libbonoboui-2.24.5/tools/browser/Makefile.am +=================================================================== +--- libbonoboui-2.24.5.orig/tools/browser/Makefile.am ++++ libbonoboui-2.24.5/tools/browser/Makefile.am +@@ -2,7 +2,6 @@ INCLUDES = \ + -DBONOBO_BROWSER_DATADIR=\""$(datadir)"\" \ + -DBONOBO_SUPPORT_LOCALEDIR=\""$(datadir)/locale"\" \ + -I$(srcdir) -I$(top_srcdir) \ +- -I$(top_srcdir)/bonobo-browser \ + $(BONOBOUI_CFLAGS) \ + $(WARN_CFLAGS) + diff --git a/meta-gnome/recipes-gnome/bonobo/libbonobo.inc b/meta-gnome/recipes-gnome/bonobo/libbonobo.inc index 8b6007e86e6..e4759a87c09 100644 --- a/meta-gnome/recipes-gnome/bonobo/libbonobo.inc +++ b/meta-gnome/recipes-gnome/bonobo/libbonobo.inc @@ -3,12 +3,14 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34" SECTION = "x11/gnome/libs" -DEPENDS = "glib-2.0 orbit2 intltool-native libxml2 dbus dbus-glib" +DEPENDS = "gnome-common-native glib-2.0 orbit2-native orbit2 intltool-native libxml2 dbus dbus-glib" -inherit gnomebase gtk-doc +inherit gnomebase gtk-doc lib_package +EXTRA_OECONF += "'PERL_PATH=${USRBINPATH}/env perl'" ORBIT_IDL_SRC = "${STAGING_BINDIR_NATIVE}/orbit-idl-2" +RDEPENDS_${PN}-bin = "${PN} perl" FILES_${PN} += "${libdir}/orbit-2.0/*.so ${libdir}/bonobo/monikers/*.so" FILES_${PN}-dbg += "${libdir}/bonobo/monikers/.debug \ ${libdir}/bonobo-2.0/samples/.debug ${libdir}/orbit-2.0/.debug" diff --git a/meta-gnome/recipes-gnome/bonobo/libbonobo/fix-nonliteral-in-string.patch b/meta-gnome/recipes-gnome/bonobo/libbonobo/fix-nonliteral-in-string.patch new file mode 100644 index 00000000000..20db671e055 --- /dev/null +++ b/meta-gnome/recipes-gnome/bonobo/libbonobo/fix-nonliteral-in-string.patch @@ -0,0 +1,26 @@ +This checks whether the format string is a literal on the calling function. As bonobo_debug_print() +takes already a va_list, we specify the format on the functions that call it +The second number, which is 0 here, should then be the argument index of the variadic argument + +Fixed warning with clang + +| ../../libbonobo-2.32.1/bonobo/bonobo-debug.c:58:32: error: format string is not a string literal [-Werror,-Wformat-nonliteral] +| vfprintf (_bonobo_debug_file, fmt, args); +| ^~~ +| 1 error generated. + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +Index: libbonobo-2.32.1/bonobo/bonobo-debug.c +=================================================================== +--- libbonobo-2.32.1.orig/bonobo/bonobo-debug.c ++++ libbonobo-2.32.1/bonobo/bonobo-debug.c +@@ -47,6 +47,7 @@ bonobo_debug_init(void) + _bonobo_debug_file = stderr; + } + ++__attribute__((__format__ (printf, 2, 0))) + void + bonobo_debug_print (const char *name, char *fmt, ...) + { diff --git a/meta-gnome/recipes-gnome/bonobo/libbonobo_2.32.1.bb b/meta-gnome/recipes-gnome/bonobo/libbonobo_2.32.1.bb index a83a0f1f50e..8e00eb4d2dc 100644 --- a/meta-gnome/recipes-gnome/bonobo/libbonobo_2.32.1.bb +++ b/meta-gnome/recipes-gnome/bonobo/libbonobo_2.32.1.bb @@ -2,7 +2,8 @@ require libbonobo.inc SRC_URI += "file://0001-Remove-use-of-G_DISABLE_DEPRECATED.patch \ file://do-not-use-srcdir-variable.patch \ + file://fix-nonliteral-in-string.patch \ " SRC_URI[archive.md5sum] = "27fa902d4fdf6762ee010e7053aaf77b" SRC_URI[archive.sha256sum] = "9160d4f277646400d3bb6b4fa73636cc6d1a865a32b9d0760e1e9e6ee624976b" - +GNOME_COMPRESS_TYPE="bz2" diff --git a/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.5.bb b/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.5.bb index 6c2d67aa6a3..b3ca0a4657e 100644 --- a/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.5.bb +++ b/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.5.bb @@ -4,8 +4,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34" inherit gnomebase pkgconfig gtk-doc + +SRC_URI += "file://gcc5.patch \ + file://0001-bonobo-ui-node-qualify-functions-with-G_GNUC_PRINTF.patch \ + " + SRC_URI[archive.md5sum] = "853be8e28aaa4ce48ba60be7d9046bf4" SRC_URI[archive.sha256sum] = "fab5f2ac6c842d949861c07cb520afe5bee3dce55805151ce9cd01be0ec46fcd" +GNOME_COMPRESS_TYPE="bz2" DEPENDS = "libgnomecanvas libbonobo libgnome glib-2.0 gconf libxml2 libglade gnome-common intltool-native" diff --git a/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb b/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb index 2b6f15e82ff..e24bde4497b 100644 --- a/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb +++ b/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb @@ -9,21 +9,28 @@ SRC_URI[archive.md5sum] = "69a12ed68893f2e1e81ac4e531bc1515" SRC_URI[archive.sha256sum] = "109b1bc6078690af1ed88cb144ef5c5aee7304769d8bdc82ed48c3696f10c955" GNOME_COMPRESS_TYPE = "xz" -DEPENDS = "glib-2.0 gtk+3 libxml2" +DEPENDS = "dbus glib-2.0 libxml2 intltool-native" -inherit vala gtk-doc +inherit vala gtk-doc distro_features_check + +PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "editor", "", d)}" + +#note: editor will be removed in version 0.23.1 +PACKAGECONFIG[editor] = "--enable-editor,--disable-editor,gtk+3" + +REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains("PACKAGECONFIG", "editor", "x11", "", d)}" EXTRA_OECONF += "--disable-man" -PACKAGES =+ "dconf-editor" +PACKAGES =+ "${@bb.utils.contains("DISTRO_FEATURES", "x11", "dconf-editor", "", d)}" FILES_${PN} += " \ - ${datadir}/dbus-1 \ - ${libdir}/gio/modules/*.so \ + ${datadir}/dbus-1 \ + ${libdir}/gio/modules/*.so \ + ${datadir}/bash-completion \ " FILES_dconf-editor = " \ - ${bindir}/dconf-editor \ - ${datadir}/icons \ - ${datadir}/bash-completion \ + ${bindir}/dconf-editor \ + ${datadir}/icons \ " FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/libdconfsettings.so" diff --git a/meta-gnome/recipes-gnome/devilspie/devilspie2_0.33.bb b/meta-gnome/recipes-gnome/devilspie/devilspie2_0.33.bb deleted file mode 100644 index b00a449356f..00000000000 --- a/meta-gnome/recipes-gnome/devilspie/devilspie2_0.33.bb +++ /dev/null @@ -1,30 +0,0 @@ -DESCRIPTION = "Devilspie2 is a window matching utility, allowing the user to perform scripted actions on windows as they are created" -HOMEPAGE = "http://www.gusnan.se/devilspie2" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=00aefaa50aad75c21367df66102d542c \ - file://GPL3.txt;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "gtk+ glib-2.0 libwnck lua virtual/libx11" - -SRC_URI = " \ - http://www.gusnan.se/devilspie2/download/devilspie2_${PV}-src.tar.gz \ - file://default.lua \ - file://devilspie2.desktop \ -" -SRC_URI[md5sum] = "99c88f702e134d2b2f2f8caad4b1ef03" -SRC_URI[sha256sum] = "01a2ebcece14065c9a2e47decd81341e2a6f63e3bf43ff446103686718748356" - -inherit pkgconfig - -do_compile() { - export GTK2=1 - oe_runmake CC="${CC}" CPPFLAGS="${CPPFLAGS}" LDFLAGS=" -ldl -lm ${LDFLAGS}" -} - -do_install() { - oe_runmake DESTDIR="${D}" PREFIX="${prefix}" install - install -d ${D}/${sysconfdir}/devilspie2 - install -m 644 ${WORKDIR}/default.lua ${D}/${sysconfdir}/devilspie2 - install -d ${D}/${sysconfdir}/xdg/autostart - install -m 644 ${WORKDIR}/devilspie2.desktop ${D}/${sysconfdir}/xdg/autostart -} diff --git a/meta-gnome/recipes-gnome/devilspie/devilspie2_0.42.bb b/meta-gnome/recipes-gnome/devilspie/devilspie2_0.42.bb new file mode 100644 index 00000000000..ae2ec5a5961 --- /dev/null +++ b/meta-gnome/recipes-gnome/devilspie/devilspie2_0.42.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "Devilspie2 is a window matching utility, allowing the user to perform scripted actions on windows as they are created" +HOMEPAGE = "http://www.gusnan.se/devilspie2" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=00aefaa50aad75c21367df66102d542c \ + file://GPL3.txt;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "gtk+ glib-2.0 libwnck lua virtual/libx11" + +SRC_URI = " \ + http://download.savannah.gnu.org/releases/${BPN}/${BPN}_${PV}-src.tar.gz \ + file://default.lua \ + file://devilspie2.desktop \ +" +SRC_URI[md5sum] = "f205409e921aa2d86481f1b8d518da45" +SRC_URI[sha256sum] = "11f5bc310fba4df404c057461ffb3fadac8ef51d211008c665c48f587a5a3f85" + +inherit pkgconfig gettext + +do_compile() { + export GTK2=1 + oe_runmake CC="${CC}" CPPFLAGS="${CPPFLAGS}" LDFLAGS=" -ldl -lm ${LDFLAGS}" +} + +do_install() { + oe_runmake DESTDIR="${D}" PREFIX="${prefix}" install + install -d ${D}/${sysconfdir}/devilspie2 + install -m 644 ${WORKDIR}/default.lua ${D}/${sysconfdir}/devilspie2 + install -d ${D}/${sysconfdir}/xdg/autostart + install -m 644 ${WORKDIR}/devilspie2.desktop ${D}/${sysconfdir}/xdg/autostart +} diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-imapx-Fix-signature-for-imapx_tokenise_struct.patch b/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-imapx-Fix-signature-for-imapx_tokenise_struct.patch new file mode 100644 index 00000000000..f82a76df333 --- /dev/null +++ b/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-imapx-Fix-signature-for-imapx_tokenise_struct.patch @@ -0,0 +1,33 @@ +From 0e10e976025b21d12df099e82951f759024ad649 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 24 Aug 2017 22:04:56 -0700 +Subject: [PATCH] imapx: Fix signature for imapx_tokenise_struct() + +clang complains about different signature for this patch + +Fixes +camel/providers/imapx/camel-imapx-tokens.txt:56:1: error: conflicting types for 'imapx_tokenise_struct' +| imapx_tokenise_struct (register const char *str, register size_t len) +| ^ + +Signed-off-by: Khem Raj +--- + camel/providers/imapx/camel-imapx-tokens.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/camel/providers/imapx/camel-imapx-tokens.txt b/camel/providers/imapx/camel-imapx-tokens.txt +index d48501865..994c368c0 100644 +--- a/camel/providers/imapx/camel-imapx-tokens.txt ++++ b/camel/providers/imapx/camel-imapx-tokens.txt +@@ -1,7 +1,7 @@ + /* This contains all of the keywords we care about. These + can be converted to an id very efficiently */ + struct _imapx_keyword {const gchar *name; camel_imapx_id_t id; }; +-struct _imapx_keyword *imapx_tokenise_struct (register const char *str, register unsigned int len); ++struct _imapx_keyword *imapx_tokenise_struct (register const char *str, register size_t len); + %% + ALERT, IMAPX_ALERT + APPENDUID, IMAPX_APPENDUID +-- +2.14.1 + diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-configure.ac-do-not-overwrite-localedir.patch b/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-configure.ac-do-not-overwrite-localedir.patch new file mode 100644 index 00000000000..741e5e97d3a --- /dev/null +++ b/meta-gnome/recipes-gnome/eds/evolution-data-server/0006-configure.ac-do-not-overwrite-localedir.patch @@ -0,0 +1,34 @@ +From 3feaea8e84b3ad8dc2d551e42224f3b4a9413e7d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 3 Sep 2015 11:14:24 +0200 +Subject: [PATCH] configure.ac: do not overwrite localedir +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport [1] + +[1] https://git.gnome.org/browse/evolution-data-server/tree/configure.ac#n298 + +Signed-off-by: Andreas Müller +--- + configure.ac | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f1d4ce8..cee847f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -257,9 +257,6 @@ GETTEXT_PACKAGE=evolution-data-server-$BASE_VERSION + AC_SUBST(GETTEXT_PACKAGE) + AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext]) + +-localedir='$(prefix)/$(DATADIRNAME)/locale' +-AC_SUBST(localedir) +- + dnl ****************************** + dnl Initialize libtool + dnl ****************************** +-- +2.1.0 + diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server_git.bb b/meta-gnome/recipes-gnome/eds/evolution-data-server_git.bb index 7c935a3d59f..aadc4b5e39a 100644 --- a/meta-gnome/recipes-gnome/eds/evolution-data-server_git.bb +++ b/meta-gnome/recipes-gnome/eds/evolution-data-server_git.bb @@ -8,29 +8,30 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \ file://libedataserver/e-data-server-util.h;endline=20;md5=934502f03c84523aa059d4825887b380 \ file://calendar/libecal/e-cal.h;endline=24;md5=5d496b9b6fd2a4fdbbfc31ef9455c9d0" -DEPENDS = "intltool-native glib-2.0 gtk+3 gconf dbus db gnome-common virtual/libiconv zlib libsoup-2.4 libglade libical libgnome-keyring gperf-native libgdata nss" +DEPENDS = "intltool-native glib-2.0 gtk+3 gconf dbus db virtual/libiconv zlib libsoup-2.4 libglade libical libgnome-keyring gperf-native libgdata nss" SRCREV = "a9e4e74ec4473a4fd09e56b690bd4fa72f686687" # 3.4 series needs libgdata-0.10*, 3.8 series needs also libsecret instead of gnome-keyring PV = "3.2.3+git${SRCPV}" -SRC_URI = " \ - git://git.gnome.org/evolution-data-server;branch=gnome-3-2 \ - file://0001-contact-Replace-the-Novell-sample-contact-with-somet.patch \ - file://0002-Fix-for-automake-1.12.x.patch \ - file://0003-Disable-Werror-for-automake.patch \ - file://0004-configure-Fix-libical-pkg-config-trying-to-use-host-.patch \ - file://0005-soup-adapt-to-new-libxml2-API-from-2.9.0.patch \ - file://iconv-detect.h \ -" +SRC_URI = "git://git.gnome.org/evolution-data-server;branch=gnome-3-2 \ + file://0001-contact-Replace-the-Novell-sample-contact-with-somet.patch \ + file://0002-Fix-for-automake-1.12.x.patch \ + file://0003-Disable-Werror-for-automake.patch \ + file://0004-configure-Fix-libical-pkg-config-trying-to-use-host-.patch \ + file://0005-soup-adapt-to-new-libxml2-API-from-2.9.0.patch \ + file://0006-configure.ac-do-not-overwrite-localedir.patch \ + file://iconv-detect.h \ + file://0001-imapx-Fix-signature-for-imapx_tokenise_struct.patch \ + " S = "${WORKDIR}/git" -inherit autotools gtk-doc pkgconfig gettext +inherit autotools gtk-doc pkgconfig gettext gobject-introspection # -ldb needs this on some platforms -LDFLAGS += "-lpthread" +LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0" # Parallel make shows many issues with this source code. # Current problems seem to be duplicate execution of the calander/backends @@ -41,9 +42,13 @@ do_configure_append () { cp ${WORKDIR}/iconv-detect.h ${S} } +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs" +} + EXTRA_OECONF = "--without-openldap \ --with-libdb=${STAGING_DIR_HOST}${prefix} \ - --disable-nntp --disable-goa --disable-weather" + --disable-nntp --disable-goa --disable-weather --disable-gtk-doc" PACKAGES =+ "libcamel libcamel-dev libebook libebook-dev libecal libecal-dev \ libedata-book libedata-book-dev libedata-cal libedata-cal-dev \ @@ -109,4 +114,3 @@ FILES_libedataserverui = "${libdir}/libedataserverui-*.so.* ${datadir}/evolution FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \ ${libdir}/pkgconfig/libedataserverui-*.pc \ ${includedir}/evolution-data-server-*/libedataserverui/*.h" - diff --git a/meta-gnome/recipes-gnome/epiphany/epiphany_2.30.6.bb b/meta-gnome/recipes-gnome/epiphany/epiphany_2.30.6.bb deleted file mode 100644 index 9e1a0dc7dec..00000000000 --- a/meta-gnome/recipes-gnome/epiphany/epiphany_2.30.6.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "GNOME default webbrowser" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "gnome-doc-utils libsoup-2.4 webkit-gtk gtk+ gconf iso-codes startup-notification ca-certificates libgnome-keyring avahi libnotify" - -inherit gnome -SRC_URI[archive.md5sum] = "0c566b3ffd428d2135e3c8cb65352d64" -SRC_URI[archive.sha256sum] = "278a5c00ce07e6a3ea440d289de22dbec3ebec4ded4ff3b4c48b580f469c2dcc" - -EXTRA_OECONF += " --disable-nss --with-distributor-name=${DISTRO} --without-ca-file" - -do_configure_prepend() { - touch ${S}/gnome-doc-utils.make - sed -i -e s:help::g ${S}/Makefile.am -} - -FILES_${PN} += "${datadir}/icons ${datadir}/dbus-1" -RDEPENDS_${PN} = "iso-codes" -RRECOMMENDS_${PN} = "ca-certificates" - diff --git a/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch b/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch new file mode 100644 index 00000000000..de739c5b395 --- /dev/null +++ b/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch @@ -0,0 +1,27 @@ +From 3776fd0b42e473fe51d3678bf26cdaa37e1d8e0d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 8 Apr 2017 13:36:12 -0700 +Subject: [PATCH] Add format attribute to _synctex_malloc + +Helps in avoiding compile errors about formating with clang + +Signed-off-by: Khem Raj +--- + cut-n-paste/synctex/synctex_parser_utils.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cut-n-paste/synctex/synctex_parser_utils.c b/cut-n-paste/synctex/synctex_parser_utils.c +index f8a9f6f..9459b2d 100644 +--- a/cut-n-paste/synctex/synctex_parser_utils.c ++++ b/cut-n-paste/synctex/synctex_parser_utils.c +@@ -78,6 +78,7 @@ void *_synctex_malloc(size_t size) { + return (void *)ptr; + } + ++__attribute__((__format__ (__printf__, 1, 0))) + int _synctex_error(const char * reason,...) { + va_list arg; + int result; +-- +2.12.2 + diff --git a/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch b/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch new file mode 100644 index 00000000000..592f4660662 --- /dev/null +++ b/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch @@ -0,0 +1,24 @@ +From 40921037d8e7205a3889d529fb4e06f79e1e88b0 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 19 Feb 2016 16:52:18 +0200 +Subject: [PATCH] help: remove YELP macro + +Upstream-Status: Inappropriate [embedded-specific] +Signed-off-by: Alexander Kanavin +--- + help/Makefile.am | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/help/Makefile.am b/help/Makefile.am +index 7835810..37c88ce 100644 +--- a/help/Makefile.am ++++ b/help/Makefile.am +@@ -1,5 +1,3 @@ +-@YELP_HELP_RULES@ +- + SUBDIRS = reference + + HELP_ID = evince +-- +2.7.0 + diff --git a/meta-gnome/recipes-gnome/evince/evince/0001-tiff-fix-compile-warning.patch b/meta-gnome/recipes-gnome/evince/evince/0001-tiff-fix-compile-warning.patch deleted file mode 100644 index ebc8976b3dc..00000000000 --- a/meta-gnome/recipes-gnome/evince/evince/0001-tiff-fix-compile-warning.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 00b5e55c90477eeac02bec58f032cb6916a1eb5c Mon Sep 17 00:00:00 2001 -From: Hib Eris -Date: Mon, 20 Feb 2012 21:36:16 +0100 -Subject: [PATCH] tiff: fix compile warning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Backport - -Signed-off-by: Andreas Müller ---- - backend/tiff/tiff2ps.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/backend/tiff/tiff2ps.c b/backend/tiff/tiff2ps.c -index c0dc0bf..fc63c2e 100644 ---- a/backend/tiff/tiff2ps.c -+++ b/backend/tiff/tiff2ps.c -@@ -1127,8 +1127,8 @@ PS_Lvl2page(TIFF2PSContext* ctx, TIFF* tif, uint32 w, uint32 h) - } - buf_data = (unsigned char *)_TIFFmalloc(chunk_size); - if (!buf_data) { -- TIFFError(ctx->filename, "Can't alloc %u bytes for %s.", -- chunk_size, tiled_image ? "tiles" : "strips"); -+ TIFFError(ctx->filename, "Can't alloc %u bytes for %s.", -+ (uint) chunk_size, tiled_image ? "tiles" : "strips"); - return(FALSE); - } - --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/evince/evince/cross-compile-fix.patch b/meta-gnome/recipes-gnome/evince/evince/cross-compile-fix.patch deleted file mode 100644 index 6f5420a52a9..00000000000 --- a/meta-gnome/recipes-gnome/evince/evince/cross-compile-fix.patch +++ /dev/null @@ -1,25 +0,0 @@ -Index: evince-2.30.0/gnome-doc-utils.make -=================================================================== ---- evince-2.30.0.orig/gnome-doc-utils.make 2010-03-29 11:52:47.000000000 -0700 -+++ evince-2.30.0/gnome-doc-utils.make 2010-08-17 15:20:22.597646001 -0700 -@@ -132,13 +132,12 @@ _DOC_ABS_SRCDIR = @abs_srcdir@ - - _xml2po ?= `which xml2po` - _xml2po_mode = $(if $(DOC_ID),mallard,docbook) -- --_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` --_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` --_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` --_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl --_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl --_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl -+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` -+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` -+_malrng ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable malrng gnome-doc-utils` -+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl -+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl - - if ENABLE_SK - _ENABLE_SK = true - diff --git a/meta-gnome/recipes-gnome/evince/evince_2.32.0.bb b/meta-gnome/recipes-gnome/evince/evince_2.32.0.bb deleted file mode 100644 index 5aa485eabeb..00000000000 --- a/meta-gnome/recipes-gnome/evince/evince_2.32.0.bb +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b" -SECTION = "x11/office" -DEPENDS = "gnome-icon-theme gnome-doc-utils-native libgnome-keyring tiff libxt ghostscript poppler libxml2 gtk+ gconf libglade" - -PR = "r5" - -inherit gnome pkgconfig gtk-icon-cache gsettings - -SRC_URI += " \ - file://cross-compile-fix.patch \ - file://0001-tiff-fix-compile-warning.patch \ -" - -SRC_URI[archive.md5sum] = "ebc3ce6df8dcbf29cb9492f8dd031319" -SRC_URI[archive.sha256sum] = "2a4c91ae38f8b5028cebb91b9da9ddc50ea8ae3f3d429df89ba351da2d787ff7" - -EXTRA_OECONF = " --enable-thumbnailer \ - --disable-scrollkeeper \ - --enable-pixbuf \ - --disable-help \ -" - -do_install_append() { - install -d install -d ${D}${datadir}/pixmaps - install -m 0755 ${S}/data/icons/48x48/apps/evince.png ${D}${datadir}/pixmaps/ -} - -PACKAGECONFIG ??= "" -PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus" - -RDEPENDS_${PN} += "glib-2.0-utils" - -PACKAGES =+ "${PN}-nautilus-extension" -FILES_${PN} += "${datadir}/dbus-1" -FILES_${PN}-dbg += "${libdir}/*/*/.debug \ - ${libdir}/*/*/*/.debug" -FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \ - ${libdir}/evince/*/backends/*.la" -FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \ - ${libdir}/evince/*/backends/*.a" -FILES_${PN}-nautilus-extension = "${libdir}/nautilus/*/*so" diff --git a/meta-gnome/recipes-gnome/evince/evince_3.24.0.bb b/meta-gnome/recipes-gnome/evince/evince_3.24.0.bb new file mode 100644 index 00000000000..78a949526bc --- /dev/null +++ b/meta-gnome/recipes-gnome/evince/evince_3.24.0.bb @@ -0,0 +1,64 @@ +SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b" +SECTION = "x11/office" +DEPENDS = "gtk+3 libsecret ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop3','',d)} poppler gstreamer1.0-plugins-base orc adwaita-icon-theme intltool-native gnome-common-native" +PR = "r5" + +inherit gnome pkgconfig gtk-icon-cache gsettings gobject-introspection distro_features_check systemd + +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0001-help-remove-YELP-macro.patch \ + file://0001-Add-format-attribute-to-_synctex_malloc.patch \ + " +SRC_URI[archive.md5sum] = "3fb65ff46de191dc49c481f1fc66201c" +SRC_URI[archive.sha256sum] = "043895af7bbd6f1b57f9ab8778e78cf9c0af5dfcc347eaa94a17bf864c04dc8f" + +EXTRA_OECONF = " --enable-thumbnailer \ +" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs" +} + + +do_install_append() { + install -d ${D}${datadir}/pixmaps + install -m 0755 ${S}/data/icons/48x48/apps/evince.png ${D}${datadir}/pixmaps/ + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)} + then + install -d ${D}${systemd_unitdir}/system + mv ${D}${systemd_user_unitdir}/evince.service ${D}${systemd_system_unitdir}/evince.service + else + rm -rf ${D}${libdir}/systemd/user/evince.service + fi + rmdir --ignore-fail-on-non-empty ${D}${systemd_user_unitdir} + rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd + rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir} +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus" +PACKAGECONFIG[browser-plugin] = "--enable-browser-plugin,--disable-browser-plugin," + +SYSTEMD_SERVICE_${PN} = "evince.service" + +RDEPENDS_${PN} += "glib-2.0-utils" +RRECOMMMENDS_${PN} = "adwaita-icon-theme" + +PACKAGES =+ "${PN}-nautilus-extension" +PACKAGES =+ "${PN}-browser-plugin" + +FILES_${PN} += "${datadir}/dbus-1 \ + ${datadir}/appdata \ + ${datadir}/thumbnailers \ + ${systemd_unitdir}/systemd/user/evince.service \ + " +FILES_${PN}-dbg += "${libdir}/*/*/.debug \ + ${libdir}/*/*/*/.debug" +FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \ + ${libdir}/evince/*/backends/*.la" +FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \ + ${libdir}/evince/*/backends/*.a" +FILES_${PN}-nautilus-extension = "${libdir}/nautilus/*/*so" +FILES_${PN}-browser-plugin = "${libdir}/mozilla/*/*so" diff --git a/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb b/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb index dbaae649e84..a39b1a0ca31 100644 --- a/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb +++ b/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb @@ -20,6 +20,7 @@ do_install() { tar -xf emesene-faenza-theme.tar.gz -C ${D}${datadir} mv -f ${D}${datadir}/emesene/themes ${D}${datadir}/themes rm -rf ${D}${datadir}/emesene + chown -R root:root ${D}${datadir} } FILES_${PN} += "${datadir}/icons ${datadir}/themes" diff --git a/meta-gnome/recipes-gnome/gcr/gcr_3.8.2.bb b/meta-gnome/recipes-gnome/gcr/gcr_3.8.2.bb deleted file mode 100644 index e9a837bb956..00000000000 --- a/meta-gnome/recipes-gnome/gcr/gcr_3.8.2.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "A library for bits of crypto UI and parsing etc" -HOMEPAGE = "http://www.gnome.org/" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" - -DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt" - -PNBLACKLIST[gcr] ?= "CONFLICT: 4 files conflict with gnome-keyring" -# e.g. sysroots/qemux86-64/usr/share/glib-2.0/schemas/org.gnome.crypto.pgp.gschema.xml -# sysroots/qemux86-64/usr/share/GConf/gsettings/org.gnome.crypto.pgp.convert - -inherit autotools gnomebase gtk-icon-cache gtk-doc - -GNOME_COMPRESS_TYPE="xz" - -SRC_URI[archive.md5sum] = "f5e66afcab19897a0de0590735329fb1" -SRC_URI[archive.sha256sum] = "a1e615ce2cfd375f383bbdd289935a8e3e16901c3c6f032780847055e8bec2c1" - -FILES_${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/gcr-3 \ -" diff --git a/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch b/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch deleted file mode 100644 index 75aff5d7c47..00000000000 --- a/meta-gnome/recipes-gnome/gdm/gdm/0001-Remove-user-switch-applet.patch +++ /dev/null @@ -1,2281 +0,0 @@ -From 0a4fe802edbd2e8a016161f08283e4b467c6762e Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 21 Jun 2011 12:48:39 +0200 -Subject: [PATCH] Remove user switch applet - -This hasn't been updated to work with gnome-panel > 2.30.0, so just drop it - -Upstream-Status: unacceptable, backport - -Signed-off-by: Koen Kooi ---- - configure.ac | 8 - - gui/Makefile.am | 2 - - .../GNOME_FastUserSwitchApplet.server.in.in | 38 - - .../GNOME_FastUserSwitchApplet.xml | 20 - - gui/user-switch-applet/Makefile.am | 67 - - gui/user-switch-applet/applet.c | 1662 -------------------- - gui/user-switch-applet/gdm-entry-menu-item.c | 304 ---- - gui/user-switch-applet/gdm-entry-menu-item.h | 51 - - po/POTFILES.in | 4 - - po/POTFILES.skip | 1 - - 10 files changed, 0 insertions(+), 2157 deletions(-) - delete mode 100644 gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in - delete mode 100644 gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml - delete mode 100644 gui/user-switch-applet/Makefile.am - delete mode 100644 gui/user-switch-applet/applet.c - delete mode 100644 gui/user-switch-applet/gdm-entry-menu-item.c - delete mode 100644 gui/user-switch-applet/gdm-entry-menu-item.h - -diff --git a/configure.ac b/configure.ac -index 841efe0..a834110 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -149,13 +149,6 @@ PKG_CHECK_MODULES(SIMPLE_CHOOSER, - AC_SUBST(SIMPLE_CHOOSER_CFLAGS) - AC_SUBST(SIMPLE_CHOOSER_LIBS) - --PKG_CHECK_MODULES(APPLET, -- dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION -- gtk+-2.0 >= $GTK_REQUIRED_VERSION -- libpanelapplet-2.0 >= $GNOME_PANEL_REQUIRED_VERSION) --AC_SUBST(APPLET_CFLAGS) --AC_SUBST(APPLET_LIBS) -- - PLUGIN_LIBTOOL_FLAGS="-export_dynamic -module -avoid-version" - AC_SUBST(PLUGIN_LIBTOOL_FLAGS) - -@@ -1340,7 +1333,6 @@ gui/Makefile - gui/simple-greeter/Makefile - gui/simple-greeter/libnotificationarea/Makefile - gui/simple-chooser/Makefile --gui/user-switch-applet/Makefile - utils/Makefile - data/gdm.conf - data/Makefile -diff --git a/gui/Makefile.am b/gui/Makefile.am -index 326239f..bda3f7a 100644 ---- a/gui/Makefile.am -+++ b/gui/Makefile.am -@@ -2,7 +2,6 @@ NULL = - - SUBDIRS = \ - simple-greeter \ -- user-switch-applet \ - $(NULL) - - if XDMCP_SUPPORT -@@ -12,5 +11,4 @@ endif - DIST_SUBDIRS = \ - simple-chooser \ - simple-greeter \ -- user-switch-applet \ - $(NULL) -diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in -deleted file mode 100644 -index a9b775f..0000000 ---- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in -+++ /dev/null -@@ -1,38 +0,0 @@ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml -deleted file mode 100644 -index e1845c8..0000000 ---- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml -+++ /dev/null -@@ -1,20 +0,0 @@ -- -- -- -- -- -- -- -- -- -diff --git a/gui/user-switch-applet/Makefile.am b/gui/user-switch-applet/Makefile.am -deleted file mode 100644 -index 2d2cdc0..0000000 ---- a/gui/user-switch-applet/Makefile.am -+++ /dev/null -@@ -1,67 +0,0 @@ --NULL = -- --AM_CPPFLAGS = \ -- -I$(top_srcdir)/gui/simple-greeter \ -- -I$(top_srcdir)/common \ -- -DPREFIX=\""$(prefix)"\" \ -- -DLIBDIR=\""$(libdir)"\" \ -- -DDATADIR=\""$(datadir)"\" \ -- -DSYSCONFDIR=\""$(sysconfdir)"\" \ -- -DLIBLOCALEDIR=\""$(prefix)/lib/locale"\" \ -- -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ -- -DGLADEDIR=\""$(pkgdatadir)"\" \ -- -DLIBEXECDIR=\""$(libexecdir)"\" \ -- -DSBINDIR=\""$(sbindir)"\" \ -- -DGDMCONFDIR=\"$(gdmconfdir)\" \ -- $(GTK_CFLAGS) \ -- $(APPLET_CFLAGS) \ -- $(NULL) -- --libexec_PROGRAMS = \ -- gdm-user-switch-applet \ -- $(NULL) -- --gdm_user_switch_applet_SOURCES = \ -- applet.c \ -- gdm-entry-menu-item.h \ -- gdm-entry-menu-item.c \ -- $(NULL) -- --gdm_user_switch_applet_LDADD = \ -- $(top_builddir)/gui/simple-greeter/libgdmuser.la \ -- $(top_builddir)/common/libgdmcommon.la \ -- $(COMMON_LIBS) \ -- $(APPLET_LIBS) \ -- $(NULL) -- --# Bonobo UI --uidir = $(datadir)/gnome-2.0/ui --ui_DATA = \ -- GNOME_FastUserSwitchApplet.xml \ -- $(NULL) -- --# Bonobo .server --serverdir = $(libdir)/bonobo/servers --server_in_files = \ -- GNOME_FastUserSwitchApplet.server.in \ -- $(NULL) --server_DATA = $(server_in_files:.server.in=.server) -- --$(server_in_files): $(server_in_files:.server.in=.server.in.in) -- sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@ -- --@INTLTOOL_SERVER_RULE@ -- --EXTRA_DIST = \ -- $(ui_DATA) \ -- GNOME_FastUserSwitchApplet.server.in.in \ -- $(NULL) -- --DISTCLEANFILES = \ -- $(server_in_files) \ -- $(server_DATA) \ -- $(NULL) -- --MAINTAINERCLEANFILES = \ -- *~ \ -- Makefile.in -diff --git a/gui/user-switch-applet/applet.c b/gui/user-switch-applet/applet.c -deleted file mode 100644 -index b4f944c..0000000 ---- a/gui/user-switch-applet/applet.c -+++ /dev/null -@@ -1,1662 +0,0 @@ --/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- -- * -- * Copyright (C) 2004-2005 James M. Cape . -- * Copyright (C) 2008 Red Hat, Inc. -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- */ -- --#include "config.h" -- --#include --#include --#include --#include -- --#include --#include --#include -- --#include --#include -- --#include -- --#include --#include -- --#include --#include -- --#include "gdm-user-manager.h" --#include "gdm-entry-menu-item.h" --#include "gdm-settings-client.h" -- --#define LOCKDOWN_DIR "/desktop/gnome/lockdown" --#define LOCKDOWN_USER_SWITCHING_KEY LOCKDOWN_DIR "/disable_user_switching" --#define LOCKDOWN_LOCK_SCREEN_KEY LOCKDOWN_DIR "/disable_lock_screen" --#define LOCKDOWN_COMMAND_LINE_KEY LOCKDOWN_DIR "/disable_command_line" -- --typedef enum { -- GSM_PRESENCE_STATUS_AVAILABLE = 0, -- GSM_PRESENCE_STATUS_INVISIBLE, -- GSM_PRESENCE_STATUS_BUSY, -- GSM_PRESENCE_STATUS_IDLE, --} GsmPresenceStatus; -- --typedef struct _GdmAppletData --{ -- PanelApplet *applet; -- -- GConfClient *client; -- GdmUserManager *manager; -- GdmUser *user; -- -- GtkWidget *menubar; -- GtkWidget *menuitem; -- GtkWidget *menu; --#ifdef BUILD_PRESENSE_STUFF -- GtkWidget *user_item; --#endif -- GtkWidget *control_panel_item; -- GtkWidget *account_item; -- GtkWidget *lock_screen_item; -- GtkWidget *login_screen_item; -- GtkWidget *quit_session_item; -- -- guint client_notify_lockdown_id; -- -- guint current_status; -- guint user_loaded_notify_id; -- guint user_changed_notify_id; -- gint8 pixel_size; -- gint panel_size; -- GtkIconSize icon_size; --#ifdef BUILD_PRESENSE_STUFF -- DBusGProxy *presence_proxy; --#endif --} GdmAppletData; -- --typedef struct _SelectorResponseData --{ -- GdmAppletData *adata; -- GtkRadioButton *radio; --} SelectorResponseData; -- --static void reset_icon (GdmAppletData *adata); --static void update_label (GdmAppletData *adata); -- --static gboolean applet_factory (PanelApplet *applet, -- const char *iid, -- gpointer data); -- --PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_FastUserSwitchApplet_Factory", -- PANEL_TYPE_APPLET, -- "gdm-user-switch-applet", "0", -- (PanelAppletFactoryCallback)applet_factory, -- NULL) -- --static void --about_me_cb (BonoboUIComponent *ui_container, -- gpointer data, -- const char *cname) --{ -- GError *err; -- -- err = NULL; -- if (! g_spawn_command_line_async ("gnome-about-me", &err)) { -- g_critical ("Could not run `gnome-about-me': %s", -- err->message); -- g_error_free (err); -- bonobo_ui_component_set_prop (ui_container, -- "/commands/GdmAboutMe", -- "hidden", "1", -- NULL); -- } --} -- --/* -- * gnome-panel/applets/wncklet/window-menu.c:window_filter_button_press() -- * -- * Copyright (C) 2005 James M. Cape. -- * Copyright (C) 2003 Sun Microsystems, Inc. -- * Copyright (C) 2001 Free Software Foundation, Inc. -- * Copyright (C) 2000 Helix Code, Inc. -- */ --static gboolean --menubar_button_press_event_cb (GtkWidget *menubar, -- GdkEventButton *event, -- GdmAppletData *adata) --{ -- if (event->button != 1) { -- g_signal_stop_emission_by_name (menubar, "button-press-event"); -- /* Reset the login window item */ -- } -- -- return FALSE; --} -- --static void --about_cb (BonoboUIComponent *ui_container, -- gpointer data, -- const char *cname) --{ -- static const char *authors[] = { -- "James M. Cape ", -- "Thomas Thurman ", -- "William Jon McCann ", -- NULL -- }; -- static char *license[] = { -- N_("The User Switch Applet is free software; you can redistribute it and/or modify " -- "it under the terms of the GNU General Public License as published by " -- "the Free Software Foundation; either version 2 of the License, or " -- "(at your option) any later version."), -- N_("This program is distributed in the hope that it will be useful, " -- "but WITHOUT ANY WARRANTY; without even the implied warranty of " -- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " -- "GNU General Public License for more details."), -- N_("You should have received a copy of the GNU General Public License " -- "along with this program; if not, write to the Free Software " -- "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA "), -- NULL -- }; -- char *license_i18n; -- -- license_i18n = g_strconcat (_(license[0]), "\n\n", _(license[1]), "\n\n", _(license[2]), NULL); -- -- gtk_show_about_dialog (NULL, -- "version", VERSION, -- "copyright", "Copyright \xc2\xa9 2004-2005 James M. Cape.\n" -- "Copyright \xc2\xa9 2006 Thomas Thurman.\n" -- "Copyright \xc2\xa9 2008 Red Hat, Inc.", -- "comments", _("A menu to quickly switch between users."), -- "authors", authors, -- "license", license_i18n, -- "wrap-license", TRUE, -- "translator-credits", _("translator-credits"), -- "logo-icon-name", "stock_people", -- NULL); -- -- g_free (license_i18n); --} -- -- --static void --admin_cb (BonoboUIComponent *ui_container, -- gpointer data, -- const char *cname) --{ --#ifdef USERS_ADMIN -- char **args; -- gboolean res; -- GError *err; -- -- err = NULL; -- if (!g_shell_parse_argv (USERS_ADMIN, NULL, &args, &err)) { -- g_critical ("Could not parse users and groups management command line `%s': %s", -- USERS_ADMIN, err->message); -- return; -- } -- -- res = g_spawn_async (g_get_home_dir (), -- args, -- NULL, -- (G_SPAWN_STDOUT_TO_DEV_NULL | -- G_SPAWN_STDERR_TO_DEV_NULL | -- G_SPAWN_SEARCH_PATH), -- NULL, -- NULL, -- NULL, -- &err); -- if (! res) { -- g_critical ("Could not run `%s' to manage users and groups: %s", -- USERS_ADMIN, err->message); -- g_error_free (err); -- } -- g_strfreev (args); --#endif /* USERS_ADMIN */ --} -- --static void --set_menuitem_icon (BonoboUIComponent *component, -- const char *item_path, -- GtkIconTheme *theme, -- const char *icon_name, -- gint icon_size) --{ -- GdkPixbuf *pixbuf; -- int width; -- int height; -- -- pixbuf = gtk_icon_theme_load_icon (theme, icon_name, icon_size, 0, NULL); -- if (pixbuf == NULL) { -- return; -- } -- -- width = gdk_pixbuf_get_width (pixbuf); -- height = gdk_pixbuf_get_height (pixbuf); -- if (width > icon_size + 4 || height > icon_size + 4) { -- GdkPixbuf *tmp; -- if (height > width) { -- width *= (gdouble) icon_size / (gdouble) height; -- height = icon_size; -- } else { -- height *= (gdouble) icon_size / (gdouble) width; -- width = icon_size; -- } -- tmp = gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR); -- g_object_unref (pixbuf); -- pixbuf = tmp; -- } -- -- bonobo_ui_util_set_pixbuf (component, item_path, pixbuf, NULL); -- g_object_unref (pixbuf); --} -- --static void --applet_style_set_cb (GtkWidget *widget, -- GtkStyle *old_style, -- gpointer data) --{ -- BonoboUIComponent *component; -- GdkScreen *screen; -- GtkIconTheme *theme; -- int width; -- int height; -- int icon_size; -- -- if (gtk_widget_has_screen (widget)) { -- screen = gtk_widget_get_screen (widget); -- } else { -- screen = gdk_screen_get_default (); -- } -- -- if (gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen), -- GTK_ICON_SIZE_MENU, &width, &height)) { -- icon_size = MAX (width, height); -- } else { -- icon_size = 16; -- } -- -- theme = gtk_icon_theme_get_for_screen (screen); -- component = panel_applet_get_popup_component (PANEL_APPLET (widget)); -- -- set_menuitem_icon (component, -- "/commands/GdmAboutMe", -- theme, -- "user-info", -- icon_size); -- set_menuitem_icon (component, -- "/commands/GdmUsersGroupsAdmin", -- theme, -- "stock_people", -- icon_size); --} -- --static void --applet_change_background_cb (PanelApplet *applet, -- PanelAppletBackgroundType type, -- GdkColor *color, -- GdkPixmap *pixmap, -- GdmAppletData *adata) --{ -- GtkRcStyle *rc_style; -- GtkStyle *style; -- -- gtk_widget_set_style (adata->menubar, NULL); -- rc_style = gtk_rc_style_new (); -- gtk_widget_modify_style (GTK_WIDGET (adata->menubar), rc_style); -- g_object_unref (rc_style); -- -- switch (type) { -- case PANEL_NO_BACKGROUND: -- break; -- case PANEL_COLOR_BACKGROUND: -- gtk_widget_modify_bg (adata->menubar, GTK_STATE_NORMAL, color); -- break; -- case PANEL_PIXMAP_BACKGROUND: -- style = gtk_style_copy (gtk_widget_get_style (adata->menubar)); -- if (style->bg_pixmap[GTK_STATE_NORMAL]) { -- g_object_unref (style->bg_pixmap[GTK_STATE_NORMAL]); -- } -- -- style->bg_pixmap[GTK_STATE_NORMAL] = g_object_ref (pixmap); -- gtk_widget_set_style (adata->menubar, style); -- g_object_unref (style); -- break; -- } --} -- --/* -- * gnome-panel/applets/wncklet/window-menu.c:window_menu_key_press_event() -- * -- * Copyright (C) 2003 Sun Microsystems, Inc. -- * Copyright (C) 2001 Free Software Foundation, Inc. -- * Copyright (C) 2000 Helix Code, Inc. -- */ --static gboolean --applet_key_press_event_cb (GtkWidget *widget, -- GdkEventKey *event, -- GdmAppletData *adata) --{ -- GtkMenuShell *menu_shell; -- -- switch (event->keyval) { -- case GDK_KP_Enter: -- case GDK_ISO_Enter: -- case GDK_3270_Enter: -- case GDK_Return: -- case GDK_space: -- case GDK_KP_Space: -- menu_shell = GTK_MENU_SHELL (adata->menubar); -- /* -- * We need to call _gtk_menu_shell_activate() here as is done in -- * window_key_press_handler in gtkmenubar.c which pops up menu -- * when F10 is pressed. -- * -- * As that function is private its code is replicated here. -- */ -- if (!menu_shell->active) { -- gtk_grab_add (GTK_WIDGET (menu_shell)); -- menu_shell->have_grab = TRUE; -- menu_shell->active = TRUE; -- } -- -- gtk_menu_shell_select_first (menu_shell, FALSE); -- return TRUE; -- default: -- break; -- } -- -- return FALSE; --} -- --static void --set_item_text_angle_and_alignment (GtkWidget *item, -- double text_angle, -- float xalign, -- float yalign) --{ -- GtkWidget *label; -- -- label = gtk_bin_get_child (GTK_BIN (item)); -- -- gtk_label_set_angle (GTK_LABEL (label), text_angle); -- -- gtk_misc_set_alignment (GTK_MISC (label), xalign, yalign); --} -- --/* -- * gnome-panel/applets/wncklet/window-menu.c:window_menu_size_allocate() -- * -- * Copyright (C) 2003 Sun Microsystems, Inc. -- * Copyright (C) 2001 Free Software Foundation, Inc. -- * Copyright (C) 2000 Helix Code, Inc. -- */ --static void --applet_size_allocate_cb (GtkWidget *widget, -- GtkAllocation *allocation, -- GdmAppletData *adata) --{ -- GList *children; -- GtkWidget *top_item; -- PanelAppletOrient orient; -- gint pixel_size; -- gdouble text_angle; -- GtkPackDirection pack_direction; -- float text_xalign; -- float text_yalign; -- -- pack_direction = GTK_PACK_DIRECTION_LTR; -- text_angle = 0.0; -- text_xalign = 0.0; -- text_yalign = 0.5; -- -- children = gtk_container_get_children (GTK_CONTAINER (adata->menubar)); -- top_item = GTK_WIDGET (children->data); -- g_list_free (children); -- -- orient = panel_applet_get_orient (PANEL_APPLET (widget)); -- -- switch (orient) { -- case PANEL_APPLET_ORIENT_UP: -- case PANEL_APPLET_ORIENT_DOWN: -- gtk_widget_set_size_request (top_item, -1, allocation->height); -- pixel_size = allocation->height - gtk_widget_get_style (top_item)->ythickness * 2; -- break; -- case PANEL_APPLET_ORIENT_LEFT: -- gtk_widget_set_size_request (top_item, allocation->width, -1); -- pixel_size = allocation->width - gtk_widget_get_style (top_item)->xthickness * 2; -- pack_direction = GTK_PACK_DIRECTION_TTB; -- text_angle = 270.0; -- text_xalign = 0.5; -- text_yalign = 0.0; -- break; -- case PANEL_APPLET_ORIENT_RIGHT: -- gtk_widget_set_size_request (top_item, allocation->width, -1); -- pixel_size = allocation->width - gtk_widget_get_style (top_item)->xthickness * 2; -- pack_direction = GTK_PACK_DIRECTION_BTT; -- text_angle = 90.0; -- text_xalign = 0.5; -- text_yalign = 0.0; -- break; -- default: -- g_assert_not_reached (); -- break; -- } -- -- gtk_menu_bar_set_pack_direction (GTK_MENU_BAR (adata->menubar), -- pack_direction); -- gtk_menu_bar_set_child_pack_direction (GTK_MENU_BAR (adata->menubar), -- pack_direction); -- -- set_item_text_angle_and_alignment (adata->menuitem, -- text_angle, -- text_xalign, -- text_yalign); -- -- if (adata->panel_size != pixel_size) { -- adata->panel_size = pixel_size; -- reset_icon (adata); -- } --} -- -- --static void --gdm_applet_data_free (GdmAppletData *adata) --{ -- gconf_client_notify_remove (adata->client, adata->client_notify_lockdown_id); -- -- if (adata->user_loaded_notify_id != 0) { -- g_signal_handler_disconnect (adata->user, adata->user_loaded_notify_id); -- } -- -- if (adata->user_changed_notify_id != 0) { -- g_signal_handler_disconnect (adata->user, adata->user_changed_notify_id); -- } -- --#ifdef BUILD_PRESENSE_STUFF -- if (adata->presence_proxy != NULL) { -- g_object_unref (adata->presence_proxy); -- } --#endif -- -- if (adata->user != NULL) { -- g_object_unref (adata->user); -- } -- g_object_unref (adata->client); -- g_object_unref (adata->manager); -- -- g_free (adata); --} -- -- --/* -- * gnome-panel/applets/wncklet/window-menu.c:window_menu_on_expose() -- * -- * Copyright (C) 2003 Sun Microsystems, Inc. -- * Copyright (C) 2001 Free Software Foundation, Inc. -- * Copyright (C) 2000 Helix Code, Inc. -- */ --static gboolean --menubar_expose_event_cb (GtkWidget *widget, -- GdkEventExpose *event, -- GdmAppletData *adata) --{ -- if (gtk_widget_has_focus (GTK_WIDGET (adata->applet))) -- gtk_paint_focus (gtk_widget_get_style (widget), -- gtk_widget_get_window (widget), -- gtk_widget_get_state (widget), -- NULL, widget, "menu-applet", 0, 0, -1, -1); -- -- return FALSE; --} -- --static void --menu_style_set_cb (GtkWidget *menu, -- GtkStyle *old_style, -- GdmAppletData *adata) --{ -- GtkSettings *settings; -- int width; -- int height; -- -- adata->icon_size = gtk_icon_size_from_name ("panel-menu"); -- -- if (adata->icon_size == GTK_ICON_SIZE_INVALID) { -- adata->icon_size = gtk_icon_size_register ("panel-menu", 24, 24); -- } -- -- if (gtk_widget_has_screen (menu)) { -- settings = gtk_settings_get_for_screen (gtk_widget_get_screen (menu)); -- } else { -- settings = gtk_settings_get_default (); -- } -- -- if (!gtk_icon_size_lookup_for_settings (settings, adata->icon_size, -- &width, &height)) { -- adata->pixel_size = -1; -- } else { -- adata->pixel_size = MAX (width, height); -- } --} -- --static void --menuitem_style_set_cb (GtkWidget *menuitem, -- GtkStyle *old_style, -- GdmAppletData *adata) --{ -- GtkWidget *image; -- -- if (GDM_IS_ENTRY_MENU_ITEM (menuitem)) { -- } else { -- const char *icon_name; -- -- if (menuitem == adata->login_screen_item) { -- icon_name = "system-users"; -- } else if (menuitem == adata->lock_screen_item) { -- icon_name = "system-lock-screen"; -- } else if (menuitem == adata->quit_session_item) { -- icon_name = "system-log-out"; -- } else if (menuitem == adata->account_item) { -- icon_name = "user-info"; -- } else if (menuitem == adata->control_panel_item) { -- icon_name = "preferences-desktop"; -- } else { -- icon_name = GTK_STOCK_MISSING_IMAGE; -- } -- -- image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menuitem)); -- gtk_image_set_pixel_size (GTK_IMAGE (image), adata->pixel_size); -- gtk_image_set_from_icon_name (GTK_IMAGE (image), icon_name, -- adata->icon_size); -- } --} -- --static void --on_user_changed (GdmUser *user, -- GdmAppletData *adata) --{ -- g_debug ("user changed"); -- update_label (adata); -- reset_icon (adata); --} -- --/* Called every time the menu is displayed (and also for some reason -- * immediately it's created, which does no harm). All we have to do -- * here is kick off a request to GDM to let us know which users are -- * logged in, so we can display check marks next to their names. -- */ --static gboolean --menu_expose_cb (GtkWidget *menu, -- gpointer data) --{ -- char *program; -- GdmAppletData *adata = data; -- -- program = g_find_program_in_path ("gnome-control-center"); -- if (program != NULL) { -- gtk_widget_show (adata->control_panel_item); -- } else { -- gtk_widget_hide (adata->control_panel_item); -- } -- g_free (program); -- return FALSE; --} -- --static void --maybe_lock_screen (GdmAppletData *adata) --{ -- char *args[3]; -- GError *err; -- GdkScreen *screen; -- gboolean use_gscreensaver = TRUE; -- gboolean res; -- -- g_debug ("Attempting to lock screen"); -- -- args[0] = g_find_program_in_path ("gnome-screensaver-command"); -- if (args[0] == NULL) { -- args[0] = g_find_program_in_path ("xscreensaver-command"); -- use_gscreensaver = FALSE; -- } -- -- if (args[0] == NULL) { -- return; -- } -- -- if (use_gscreensaver) { -- args[1] = "--lock"; -- } else { -- args[1] = "-lock"; -- } -- args[2] = NULL; -- -- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) { -- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet)); -- } else { -- screen = gdk_screen_get_default (); -- } -- -- err = NULL; -- res = gdk_spawn_on_screen (screen, -- g_get_home_dir (), -- args, -- NULL, -- 0, -- NULL, -- NULL, -- NULL, -- &err); -- if (! res) { -- g_warning (_("Can't lock screen: %s"), err->message); -- g_error_free (err); -- } -- -- if (use_gscreensaver) { -- args[1] = "--throttle"; -- } else { -- args[1] = "-throttle"; -- } -- -- err = NULL; -- res = gdk_spawn_on_screen (screen, -- g_get_home_dir (), -- args, -- NULL, -- (G_SPAWN_STDERR_TO_DEV_NULL -- | G_SPAWN_STDOUT_TO_DEV_NULL), -- NULL, -- NULL, -- NULL, -- &err); -- if (! res) { -- g_warning (_("Can't temporarily set screensaver to blank screen: %s"), -- err->message); -- g_error_free (err); -- } -- -- g_free (args[0]); --} -- --static void --do_switch (GdmAppletData *adata, -- GdmUser *user) --{ -- guint num_sessions; -- -- g_debug ("Do user switch"); -- -- if (user == NULL) { -- gdm_user_manager_goto_login_session (adata->manager); -- goto out; -- } -- -- num_sessions = gdm_user_get_num_sessions (user); -- if (num_sessions > 0) { -- gdm_user_manager_activate_user_session (adata->manager, user); -- } else { -- gdm_user_manager_goto_login_session (adata->manager); -- } -- out: -- maybe_lock_screen (adata); --} -- --static void --update_switch_user (GdmAppletData *adata) --{ -- gboolean can_switch; -- gboolean has_other_users; -- -- can_switch = gdm_user_manager_can_switch (adata->manager); -- g_object_get (adata->manager, -- "has-multiple-users", &has_other_users, -- NULL); -- -- if (can_switch && has_other_users) { -- gtk_widget_show (adata->login_screen_item); -- } else { -- -- gtk_widget_hide (adata->login_screen_item); -- } --} -- --static void --on_manager_is_loaded_changed (GdmUserManager *manager, -- GParamSpec *pspec, -- GdmAppletData *adata) --{ -- update_switch_user (adata); --} -- --static void --on_manager_has_multiple_users_changed (GdmUserManager *manager, -- GParamSpec *pspec, -- GdmAppletData *adata) --{ -- update_switch_user (adata); --} -- --#ifdef BUILD_PRESENSE_STUFF --static void --on_user_item_activate (GtkMenuItem *item, -- GdmAppletData *adata) --{ -- g_signal_stop_emission_by_name (item, "activate"); --} --#endif -- --static void --on_control_panel_activate (GtkMenuItem *item, -- GdmAppletData *adata) --{ -- char *args[2]; -- GError *error; -- GdkScreen *screen; -- gboolean res; -- -- args[0] = g_find_program_in_path ("gnome-control-center"); -- if (args[0] == NULL) { -- return; -- } -- args[1] = NULL; -- -- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) { -- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet)); -- } else { -- screen = gdk_screen_get_default (); -- } -- -- error = NULL; -- res = gdk_spawn_on_screen (screen, -- g_get_home_dir (), -- args, -- NULL, -- 0, -- NULL, -- NULL, -- NULL, -- &error); -- if (! res) { -- g_warning (_("Can't lock screen: %s"), error->message); -- g_error_free (error); -- } -- -- g_free (args[0]); --} -- --static void --on_account_activate (GtkMenuItem *item, -- GdmAppletData *adata) --{ -- char *args[2]; -- GError *error; -- GdkScreen *screen; -- gboolean res; -- -- args[0] = g_find_program_in_path ("accounts-dialog"); -- if (args[0] == NULL) { -- args[0] = g_find_program_in_path ("gnome-about-me"); -- if (args[0] == NULL) { -- return; -- } -- } -- args[1] = NULL; -- -- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) { -- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet)); -- } else { -- screen = gdk_screen_get_default (); -- } -- -- error = NULL; -- res = gdk_spawn_on_screen (screen, -- g_get_home_dir (), -- args, -- NULL, -- 0, -- NULL, -- NULL, -- NULL, -- &error); -- if (! res) { -- g_warning (_("Can't lock screen: %s"), error->message); -- g_error_free (error); -- } -- -- g_free (args[0]); --} -- --static void --on_lock_screen_activate (GtkMenuItem *item, -- GdmAppletData *adata) --{ -- maybe_lock_screen (adata); --} -- --static void --on_login_screen_activate (GtkMenuItem *item, -- GdmAppletData *adata) --{ -- GdmUser *user; -- -- user = NULL; -- -- do_switch (adata, user); --} -- --static void --on_quit_session_activate (GtkMenuItem *item, -- GdmAppletData *adata) --{ -- char *args[3]; -- GError *error; -- GdkScreen *screen; -- gboolean res; -- -- args[0] = g_find_program_in_path ("gnome-session-save"); -- if (args[0] == NULL) { -- return; -- } -- -- args[1] = "--logout-dialog"; -- args[2] = NULL; -- -- if (gtk_widget_has_screen (GTK_WIDGET (adata->applet))) { -- screen = gtk_widget_get_screen (GTK_WIDGET (adata->applet)); -- } else { -- screen = gdk_screen_get_default (); -- } -- -- error = NULL; -- res = gdk_spawn_on_screen (screen, -- g_get_home_dir (), -- args, -- NULL, -- 0, -- NULL, -- NULL, -- NULL, -- &error); -- if (! res) { -- g_warning (_("Can't log out: %s"), error->message); -- g_error_free (error); -- } -- -- g_free (args[0]); --} -- --#ifdef BUILD_PRESENSE_STUFF --static gboolean --on_menu_key_press_event (GtkWidget *widget, -- GdkEventKey *event, -- GdmAppletData *adata) --{ -- GtkWidget *entry; -- -- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item)); -- -- if (GTK_WIDGET_HAS_FOCUS (entry)) { -- gtk_widget_event (entry, (GdkEvent *)event); -- return TRUE; -- } else { -- return FALSE; -- } --} -- --static void --save_status (GdmAppletData *adata, -- guint status) --{ -- if (adata->current_status != status) { -- GError *error; -- -- adata->current_status = status; -- -- g_debug ("Saving status: %u", status); -- error = NULL; -- dbus_g_proxy_call (adata->presence_proxy, -- "SetStatus", -- &error, -- G_TYPE_UINT, status, -- G_TYPE_INVALID, -- G_TYPE_INVALID); -- -- if (error != NULL) { -- g_warning ("Couldn't save presence status: %s", error->message); -- g_error_free (error); -- } -- } --} -- --static void --on_status_available_activate (GtkWidget *widget, -- GdmAppletData *adata) --{ -- -- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { -- save_status (adata, GSM_PRESENCE_STATUS_AVAILABLE); -- } --} -- --static void --on_status_busy_activate (GtkWidget *widget, -- GdmAppletData *adata) --{ -- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { -- save_status (adata, GSM_PRESENCE_STATUS_BUSY); -- } --} -- --static void --on_status_invisible_activate (GtkWidget *widget, -- GdmAppletData *adata) --{ -- if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) { -- save_status (adata, GSM_PRESENCE_STATUS_INVISIBLE); -- } --} -- --static struct { -- char *icon_name; -- char *display_name; -- void *menu_callback; -- GtkWidget *widget; --} statuses[] = { -- { "user-online", N_("Available"), on_status_available_activate, NULL }, -- { "user-invisible", N_("Invisible"), on_status_invisible_activate, NULL }, -- { "user-busy", N_("Busy"), on_status_busy_activate, NULL }, -- { "user-away", N_("Away"), NULL, NULL }, --}; --#endif -- --static void --update_label (GdmAppletData *adata) --{ -- GtkWidget *label; -- char *markup; -- -- label = gtk_bin_get_child (GTK_BIN (adata->menuitem)); -- --#ifdef BUILD_PRESENSE_STUFF -- markup = g_strdup_printf ("%s (%s)", -- gdm_user_get_real_name (GDM_USER (adata->user)), -- _(statuses[adata->current_status].display_name)); --#else -- markup = g_strdup_printf ("%s", -- gdm_user_get_real_name (GDM_USER (adata->user))); --#endif -- gtk_label_set_markup (GTK_LABEL (label), markup); -- g_free (markup); --} -- --#ifdef BUILD_PRESENSE_STUFF --static void --save_status_text (GdmAppletData *adata) --{ -- GtkWidget *entry; -- GtkTextBuffer *buffer; -- char *escaped_text; -- char *text; -- GtkTextIter start, end; -- -- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item)); -- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry)); -- gtk_text_buffer_get_bounds (buffer, &start, &end); -- text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); -- escaped_text = g_markup_escape_text (text, -1); -- -- if (escaped_text != NULL) { -- GError *error; -- -- error = NULL; -- dbus_g_proxy_call (adata->presence_proxy, -- "SetStatusText", -- &error, -- G_TYPE_STRING, escaped_text, -- G_TYPE_INVALID, -- G_TYPE_INVALID); -- -- if (error != NULL) { -- g_warning ("Couldn't set presence status text: %s", error->message); -- g_error_free (error); -- } -- } -- -- g_free (text); -- g_free (escaped_text); --} -- --static void --on_user_item_deselect (GtkWidget *item, -- GdmAppletData *adata) --{ -- save_status_text (adata); --} --#endif -- --static void --create_sub_menu (GdmAppletData *adata) --{ -- GtkWidget *item; --#ifdef BUILD_PRESENSE_STUFF -- int i; -- GSList *radio_group; --#endif -- -- adata->menu = gtk_menu_new (); --#ifdef BUILD_PRESENSE_STUFF -- g_signal_connect (adata->menu, -- "key-press-event", -- G_CALLBACK (on_menu_key_press_event), -- adata); --#endif -- gtk_menu_item_set_submenu (GTK_MENU_ITEM (adata->menuitem), adata->menu); -- g_signal_connect (adata->menu, "style-set", -- G_CALLBACK (menu_style_set_cb), adata); -- g_signal_connect (adata->menu, "show", -- G_CALLBACK (menu_expose_cb), adata); -- --#ifdef BUILD_PRESENSE_STUFF -- adata->user_item = gdm_entry_menu_item_new (); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), -- adata->user_item); -- gtk_widget_show (adata->user_item); -- g_signal_connect (adata->user_item, "activate", -- G_CALLBACK (on_user_item_activate), adata); -- g_signal_connect (adata->user_item, -- "deselect", -- G_CALLBACK (on_user_item_deselect), -- adata); -- -- item = gtk_separator_menu_item_new (); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item); -- gtk_widget_show (item); -- -- radio_group = NULL; -- for (i = 0; i < G_N_ELEMENTS (statuses); i++) { -- GtkWidget *hbox; -- GtkWidget *label; -- GtkWidget *image; -- GtkWidget *item; -- -- if (statuses[i].menu_callback == NULL) { -- continue; -- } -- -- item = gtk_radio_menu_item_new (radio_group); -- radio_group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (item)); -- hbox = gtk_hbox_new (FALSE, 3); -- label = gtk_label_new (_(statuses[i].display_name)); -- gtk_label_set_justify (GTK_LABEL(label), GTK_JUSTIFY_LEFT); -- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); -- gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); -- gtk_widget_show (label); -- image = gtk_image_new_from_icon_name (statuses[i].icon_name, GTK_ICON_SIZE_MENU); -- gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); -- gtk_widget_show (image); -- gtk_widget_show (hbox); -- gtk_container_add (GTK_CONTAINER (item), hbox); -- -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), -- item); -- g_signal_connect (item, "activate", -- G_CALLBACK (statuses[i].menu_callback), adata); -- gtk_widget_show (item); -- -- statuses[i].widget = item; -- } -- -- item = gtk_separator_menu_item_new (); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item); -- gtk_widget_show (item); --#endif -- -- adata->account_item = gtk_image_menu_item_new_with_label (_("Account Information")); -- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->account_item), -- gtk_image_new ()); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), -- adata->account_item); -- g_signal_connect (adata->account_item, "style-set", -- G_CALLBACK (menuitem_style_set_cb), adata); -- g_signal_connect (adata->account_item, "activate", -- G_CALLBACK (on_account_activate), adata); -- gtk_widget_show (adata->account_item); -- -- -- adata->control_panel_item = gtk_image_menu_item_new_with_label (_("System Preferences")); -- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->control_panel_item), -- gtk_image_new ()); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), -- adata->control_panel_item); -- g_signal_connect (adata->control_panel_item, "style-set", -- G_CALLBACK (menuitem_style_set_cb), adata); -- g_signal_connect (adata->control_panel_item, "activate", -- G_CALLBACK (on_control_panel_activate), adata); -- -- item = gtk_separator_menu_item_new (); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item); -- gtk_widget_show (item); -- -- adata->lock_screen_item = gtk_image_menu_item_new_with_label (_("Lock Screen")); -- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->lock_screen_item), -- gtk_image_new ()); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), -- adata->lock_screen_item); -- g_signal_connect (adata->lock_screen_item, "style-set", -- G_CALLBACK (menuitem_style_set_cb), adata); -- g_signal_connect (adata->lock_screen_item, "activate", -- G_CALLBACK (on_lock_screen_activate), adata); -- /* Only show if not locked down */ -- -- adata->login_screen_item = gtk_image_menu_item_new_with_label (_("Switch User")); -- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->login_screen_item), -- gtk_image_new ()); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), -- adata->login_screen_item); -- g_signal_connect (adata->login_screen_item, "style-set", -- G_CALLBACK (menuitem_style_set_cb), adata); -- g_signal_connect (adata->login_screen_item, "activate", -- G_CALLBACK (on_login_screen_activate), adata); -- /* Only show switch user if there are other users */ -- -- adata->quit_session_item = gtk_image_menu_item_new_with_label (_("Quit…")); -- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->quit_session_item), -- gtk_image_new ()); -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), -- adata->quit_session_item); -- g_signal_connect (adata->quit_session_item, "style-set", -- G_CALLBACK (menuitem_style_set_cb), adata); -- g_signal_connect (adata->quit_session_item, "activate", -- G_CALLBACK (on_quit_session_activate), adata); -- gtk_widget_show (adata->quit_session_item); -- gtk_widget_show (adata->menu); --} -- --static void --destroy_sub_menu (GdmAppletData *adata) --{ -- gtk_menu_item_set_submenu (GTK_MENU_ITEM (adata->menuitem), NULL); --} -- --static void --set_menu_visibility (GdmAppletData *adata, -- gboolean visible) --{ -- -- if (visible) { -- create_sub_menu (adata); -- } else { -- destroy_sub_menu (adata); -- } --} -- --static void --client_notify_lockdown_func (GConfClient *client, -- guint cnxn_id, -- GConfEntry *entry, -- GdmAppletData *adata) --{ -- GConfValue *value; -- const char *key; -- -- value = gconf_entry_get_value (entry); -- key = gconf_entry_get_key (entry); -- -- if (value == NULL || key == NULL) { -- return; -- } -- -- if (strcmp (key, LOCKDOWN_USER_SWITCHING_KEY) == 0) { -- if (gconf_value_get_bool (value)) { -- set_menu_visibility (adata, FALSE); -- } else { -- set_menu_visibility (adata, TRUE); -- } -- } else if (strcmp (key, LOCKDOWN_LOCK_SCREEN_KEY) == 0) { -- if (gconf_value_get_bool (value)) { -- gtk_widget_hide (adata->lock_screen_item); -- } else { -- gtk_widget_show (adata->lock_screen_item); -- } -- } --} -- --static void --reset_icon (GdmAppletData *adata) --{ -- GdkPixbuf *pixbuf; -- GtkWidget *image; -- -- if (adata->user == NULL || !gtk_widget_has_screen (GTK_WIDGET (adata->menuitem))) { -- return; -- } -- --#ifdef BUILD_PRESENSE_STUFF -- if (adata->user_item != NULL) { -- image = gdm_entry_menu_item_get_image (GDM_ENTRY_MENU_ITEM (adata->user_item)); -- pixbuf = gdm_user_render_icon (adata->user, adata->panel_size * 3); -- if (pixbuf == NULL) { -- return; -- } -- -- gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); -- g_object_unref (pixbuf); -- } --#else -- pixbuf = gdm_user_render_icon (adata->user, adata->panel_size); -- -- if (pixbuf == NULL) { -- return; -- } -- -- image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (adata->menuitem)); -- gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); -- g_object_unref (pixbuf); --#endif --} -- --static void --setup_current_user_now (GdmAppletData *adata) --{ -- g_assert (adata->user != NULL); -- -- if (adata->user_loaded_notify_id != 0) { -- g_signal_handler_disconnect (adata->user, adata->user_loaded_notify_id); -- } -- adata->user_loaded_notify_id = 0; -- -- update_label (adata); -- reset_icon (adata); -- adata->user_changed_notify_id = -- g_signal_connect (adata->user, -- "changed", -- G_CALLBACK (on_user_changed), -- adata); --} -- --static void --on_current_user_loaded (GdmUser *user, -- GParamSpec *pspec, -- GdmAppletData *adata) --{ -- if (!gdm_user_is_loaded (user)) { -- return; -- } -- -- setup_current_user_now (adata); --} -- --static void --setup_current_user (GdmAppletData *adata) --{ -- adata->user = gdm_user_manager_get_user_by_uid (adata->manager, getuid ()); -- -- if (adata->user == NULL) { -- g_warning ("Could not setup current user"); -- return; -- } -- -- g_object_ref (adata->user); -- -- adata->menuitem = gtk_image_menu_item_new_with_label (""); --#ifndef BUILD_PRESENSE_STUFF -- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (adata->menuitem), -- gtk_image_new ()); --#endif -- gtk_menu_shell_append (GTK_MENU_SHELL (adata->menubar), adata->menuitem); -- gtk_widget_show (adata->menuitem); -- -- if (gdm_user_is_loaded (adata->user)) { -- setup_current_user_now (adata); -- return; -- } -- -- adata->user_loaded_notify_id = g_signal_connect (adata->user, -- "notify::is-loaded", -- G_CALLBACK (on_current_user_loaded), -- adata); --} -- --#ifdef BUILD_PRESENSE_STUFF --static void --set_status (GdmAppletData *adata, -- guint status) --{ -- int i; -- -- g_debug ("Setting current status: %u", status); -- adata->current_status = status; -- for (i = 0; i < G_N_ELEMENTS (statuses); i++) { -- if (statuses[i].widget == NULL) { -- continue; -- } -- if (i == status) { -- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (statuses[i].widget), -- TRUE); -- } -- } -- -- update_label (adata); --} -- --static void --on_presence_status_changed (DBusGProxy *presence_proxy, -- guint status, -- GdmAppletData *adata) --{ -- g_debug ("Status changed: %u", status); -- -- set_status (adata, status); --} -- --static void --set_status_text (GdmAppletData *adata, -- const char *status_text) --{ -- GtkWidget *entry; -- GtkTextBuffer *buffer; -- -- g_debug ("Status text changed: %s", status_text); -- -- entry = gdm_entry_menu_item_get_entry (GDM_ENTRY_MENU_ITEM (adata->user_item)); -- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (entry)); -- gtk_text_buffer_set_text (buffer, status_text, -1); --} -- --static void --on_presence_status_text_changed (DBusGProxy *presence_proxy, -- const char *status_text, -- GdmAppletData *adata) --{ -- set_status_text (adata, status_text); --} --#endif -- --static gboolean --fill_applet (PanelApplet *applet) --{ -- static const BonoboUIVerb menu_verbs[] = { -- BONOBO_UI_VERB ("GdmAboutMe", about_me_cb), -- BONOBO_UI_VERB ("GdmUsersGroupsAdmin", admin_cb), -- BONOBO_UI_VERB ("GdmAbout", about_cb), -- BONOBO_UI_VERB_END -- }; -- static gboolean first_time = FALSE; -- char *tmp; -- BonoboUIComponent *popup_component; -- GdmAppletData *adata; -- GError *error; -- DBusGConnection *bus; -- -- if (!first_time) { -- first_time = TRUE; -- -- /* Do this here so it's only done once. */ -- gtk_rc_parse_string ("style \"gdm-user-switch-menubar-style\"\n" -- "{\n" -- "GtkMenuBar::shadow-type = none\n" -- "GtkMenuBar::internal-padding = 0\n" -- "}\n" -- "style \"gdm-user-switch-applet-style\"\n" -- "{\n" -- "GtkWidget::focus-line-width = 0\n" -- "GtkWidget::focus-padding = 0\n" -- "}\n" -- "widget \"*.gdm-user-switch-menubar\" style \"gdm-user-switch-menubar-style\"\n" -- "widget \"*.gdm-user-switch-applet\" style \"gdm-user-switch-applet-style\"\n"); -- gtk_window_set_default_icon_name ("stock_people"); -- g_set_application_name (_("User Switch Applet")); -- -- if (! gdm_settings_client_init (DATADIR "/gdm/gdm.schemas", "/")) { -- g_critical ("Unable to initialize settings client"); -- exit (1); -- } -- -- } -- -- adata = g_new0 (GdmAppletData, 1); -- adata->applet = applet; -- adata->panel_size = 24; -- -- adata->client = gconf_client_get_default (); -- -- gtk_widget_set_tooltip_text (GTK_WIDGET (applet), _("Change account settings and status")); -- gtk_container_set_border_width (GTK_CONTAINER (applet), 0); -- gtk_widget_set_name (GTK_WIDGET (applet), "gdm-user-switch-applet"); -- panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR); -- panel_applet_setup_menu_from_file (applet, NULL, -- DATADIR "/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml", -- NULL, menu_verbs, adata); -- -- popup_component = panel_applet_get_popup_component (applet); -- -- /* Hide the admin context menu items if locked down or no cmd-line */ -- if (gconf_client_get_bool (adata->client, -- LOCKDOWN_COMMAND_LINE_KEY, -- NULL) || -- panel_applet_get_locked_down (applet)) { -- bonobo_ui_component_set_prop (popup_component, -- "/popups/button3/GdmSeparator", -- "hidden", "1", NULL); -- bonobo_ui_component_set_prop (popup_component, -- "/commands/GdmUsersGroupsAdmin", -- "hidden", "1", NULL); -- } else { --#ifndef USERS_ADMIN --# ifdef GDM_SETUP -- bonobo_ui_component_set_prop (popup_component, -- "/popups/button3/GdmSeparator", -- "hidden", "1", -- NULL); --# endif /* !GDM_SETUP */ -- bonobo_ui_component_set_prop (popup_component, -- "/commands/GdmUsersGroupsAdmin", -- "hidden", "1", -- NULL); --#endif /* !USERS_ADMIN */ -- } -- -- /* Hide the gdmphotosetup item if it can't be found in the path. */ -- tmp = g_find_program_in_path ("gnome-about-me"); -- if (!tmp) { -- bonobo_ui_component_set_prop (popup_component, -- "/commands/GdmAboutMe", -- "hidden", "1", -- NULL); -- } else { -- g_free (tmp); -- } -- -- g_signal_connect (adata->applet, -- "style-set", -- G_CALLBACK (applet_style_set_cb), adata); -- g_signal_connect (applet, -- "change-background", -- G_CALLBACK (applet_change_background_cb), adata); -- g_signal_connect (applet, -- "size-allocate", -- G_CALLBACK (applet_size_allocate_cb), adata); -- g_signal_connect (applet, -- "key-press-event", -- G_CALLBACK (applet_key_press_event_cb), adata); -- g_signal_connect_after (applet, -- "focus-in-event", -- G_CALLBACK (gtk_widget_queue_draw), NULL); -- g_signal_connect_after (applet, -- "focus-out-event", -- G_CALLBACK (gtk_widget_queue_draw), NULL); -- g_object_set_data_full (G_OBJECT (applet), -- "gdm-applet-data", -- adata, -- (GDestroyNotify) gdm_applet_data_free); -- -- adata->menubar = gtk_menu_bar_new (); -- gtk_widget_set_name (adata->menubar, "gdm-user-switch-menubar"); -- gtk_widget_set_can_focus (adata->menubar, TRUE); -- g_signal_connect (adata->menubar, "button-press-event", -- G_CALLBACK (menubar_button_press_event_cb), adata); -- g_signal_connect_after (adata->menubar, "expose-event", -- G_CALLBACK (menubar_expose_event_cb), adata); -- gtk_container_add (GTK_CONTAINER (applet), adata->menubar); -- gtk_widget_show (adata->menubar); -- -- adata->manager = gdm_user_manager_ref_default (); -- g_object_set (adata->manager, "include-all", TRUE, NULL); -- g_signal_connect (adata->manager, -- "notify::is-loaded", -- G_CALLBACK (on_manager_is_loaded_changed), -- adata); -- g_signal_connect (adata->manager, -- "notify::has-multiple-users", -- G_CALLBACK (on_manager_has_multiple_users_changed), -- adata); -- -- gdm_user_manager_queue_load (adata->manager); -- setup_current_user (adata); -- -- gconf_client_add_dir (adata->client, -- LOCKDOWN_DIR, -- GCONF_CLIENT_PRELOAD_ONELEVEL, -- NULL); -- -- adata->client_notify_lockdown_id = gconf_client_notify_add (adata->client, -- LOCKDOWN_DIR, -- (GConfClientNotifyFunc)client_notify_lockdown_func, -- adata, -- NULL, -- NULL); -- -- if (gconf_client_get_bool (adata->client, LOCKDOWN_USER_SWITCHING_KEY, NULL)) { -- set_menu_visibility (adata, FALSE); -- } else { -- set_menu_visibility (adata, TRUE); -- } -- if (gconf_client_get_bool (adata->client, LOCKDOWN_LOCK_SCREEN_KEY, NULL)) { -- gtk_widget_hide (adata->lock_screen_item); -- } else { -- gtk_widget_show (adata->lock_screen_item); -- } -- -- error = NULL; -- bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error); -- if (bus == NULL) { -- g_warning ("Unable to get session bus: %s", error->message); -- g_error_free (error); -- goto done; -- } -- --#ifdef BUILD_PRESENSE_STUFF -- adata->presence_proxy = dbus_g_proxy_new_for_name (bus, -- "org.gnome.SessionManager", -- "/org/gnome/SessionManager/Presence", -- "org.gnome.SessionManager.Presence"); -- if (adata->presence_proxy != NULL) { -- DBusGProxy *proxy; -- -- dbus_g_proxy_add_signal (adata->presence_proxy, -- "StatusChanged", -- G_TYPE_UINT, -- G_TYPE_INVALID); -- dbus_g_proxy_connect_signal (adata->presence_proxy, -- "StatusChanged", -- G_CALLBACK (on_presence_status_changed), -- adata, -- NULL); -- dbus_g_proxy_add_signal (adata->presence_proxy, -- "StatusTextChanged", -- G_TYPE_STRING, -- G_TYPE_INVALID); -- dbus_g_proxy_connect_signal (adata->presence_proxy, -- "StatusTextChanged", -- G_CALLBACK (on_presence_status_text_changed), -- adata, -- NULL); -- -- -- proxy = dbus_g_proxy_new_from_proxy (adata->presence_proxy, -- "org.freedesktop.DBus.Properties", -- "/org/gnome/SessionManager/Presence"); -- if (proxy != NULL) { -- guint status; -- const char *status_text; -- GValue value = { 0, }; -- -- status = 0; -- status_text = NULL; -- -- error = NULL; -- dbus_g_proxy_call (proxy, -- "Get", -- &error, -- G_TYPE_STRING, "org.gnome.SessionManager.Presence", -- G_TYPE_STRING, "status", -- G_TYPE_INVALID, -- G_TYPE_VALUE, &value, -- G_TYPE_INVALID); -- -- if (error != NULL) { -- g_warning ("Couldn't get presence status: %s", error->message); -- g_error_free (error); -- } else { -- status = g_value_get_uint (&value); -- } -- -- g_value_unset (&value); -- -- error = NULL; -- dbus_g_proxy_call (proxy, -- "Get", -- &error, -- G_TYPE_STRING, "org.gnome.SessionManager.Presence", -- G_TYPE_STRING, "status-text", -- G_TYPE_INVALID, -- G_TYPE_VALUE, &value, -- G_TYPE_INVALID); -- -- if (error != NULL) { -- g_warning ("Couldn't get presence status text: %s", error->message); -- g_error_free (error); -- } else { -- status_text = g_value_get_string (&value); -- } -- -- set_status (adata, status); -- set_status_text (adata, status_text); -- } -- } else { -- g_warning ("Failed to get session presence proxy"); -- } --#endif -- -- done: -- gtk_widget_show (GTK_WIDGET (adata->applet)); -- -- return TRUE; --} -- --static gboolean --applet_factory (PanelApplet *applet, -- const char *iid, -- gpointer data) --{ -- gboolean ret; -- ret = FALSE; -- if (strcmp (iid, "OAFIID:GNOME_FastUserSwitchApplet") == 0) { -- ret = fill_applet (applet); -- } -- return ret; --} -diff --git a/gui/user-switch-applet/gdm-entry-menu-item.c b/gui/user-switch-applet/gdm-entry-menu-item.c -deleted file mode 100644 -index d657e7a..0000000 ---- a/gui/user-switch-applet/gdm-entry-menu-item.c -+++ /dev/null -@@ -1,304 +0,0 @@ --/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- -- * -- * Copyright (C) 2008 Red Hat, Inc. -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- */ -- --#include "config.h" -- --#include --#include -- --#include -- --#include --#include -- --#include "gdm-entry-menu-item.h" -- --/* same as twitter */ --#define TEXT_BUFFER_MAX_CHARS 64 -- --enum --{ -- PROP_0, --}; -- --struct _GdmEntryMenuItem --{ -- GtkMenuItem parent; -- -- GtkWidget *hbox; -- GtkWidget *image; -- GtkWidget *entry; --}; -- --struct _GdmEntryMenuItemClass --{ -- GtkMenuItemClass parent_class; --}; -- --G_DEFINE_TYPE (GdmEntryMenuItem, gdm_entry_menu_item, GTK_TYPE_MENU_ITEM) -- --static void --gdm_entry_menu_item_set_property (GObject *object, -- guint param_id, -- const GValue *value, -- GParamSpec *pspec) --{ -- GdmEntryMenuItem *item; -- -- item = GDM_ENTRY_MENU_ITEM (object); -- -- switch (param_id) { -- default: -- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); -- break; -- } --} -- --static void --gdm_entry_menu_item_get_property (GObject *object, -- guint param_id, -- GValue *value, -- GParamSpec *pspec) --{ -- GdmEntryMenuItem *item; -- -- item = GDM_ENTRY_MENU_ITEM (object); -- -- switch (param_id) { -- default: -- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); -- break; -- } --} -- --static void --gdm_entry_menu_item_dispose (GObject *object) --{ -- -- (*G_OBJECT_CLASS (gdm_entry_menu_item_parent_class)->dispose) (object); --} -- --static gboolean --gdm_entry_menu_item_button_release (GtkWidget *widget, -- GdkEventButton *event) --{ -- return TRUE; --} -- --/* Cut and paste from gtkwindow.c */ --static void --send_focus_change (GtkWidget *widget, -- gboolean in) --{ -- GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE); -- -- g_object_ref (widget); -- -- gtk_widget_set_can_focus (widget, in); -- -- fevent->focus_change.type = GDK_FOCUS_CHANGE; -- fevent->focus_change.window = g_object_ref (gtk_widget_get_window (widget)); -- fevent->focus_change.in = in; -- -- gtk_widget_event (widget, fevent); -- -- g_object_notify (G_OBJECT (widget), "has-focus"); -- -- g_object_unref (widget); -- gdk_event_free (fevent); --} -- --static gboolean --gdm_entry_menu_item_button_press (GtkWidget *widget, -- GdkEventButton *event) --{ -- GtkWidget *entry; -- -- entry = GDM_ENTRY_MENU_ITEM (widget)->entry; -- -- if (gtk_widget_get_window (entry) != NULL) { -- gdk_window_raise (gtk_widget_get_window (entry)); -- } -- -- if (!gtk_widget_has_focus (entry)) { -- gtk_widget_grab_focus (entry); -- } -- -- return FALSE; --} -- --static void --gdm_entry_menu_item_realize (GtkWidget *widget) --{ -- if (GTK_WIDGET_CLASS (gdm_entry_menu_item_parent_class)->realize) { -- GTK_WIDGET_CLASS (gdm_entry_menu_item_parent_class)->realize (widget); -- } --} -- --static void --gdm_entry_menu_item_select (GtkItem *item) --{ -- g_return_if_fail (GDM_IS_ENTRY_MENU_ITEM (item)); -- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), TRUE); --} -- --static void --gdm_entry_menu_item_deselect (GtkItem *item) --{ -- g_return_if_fail (GDM_IS_ENTRY_MENU_ITEM (item)); -- -- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), FALSE); --} -- --static void --gdm_entry_menu_item_class_init (GdmEntryMenuItemClass *klass) --{ -- GObjectClass *gobject_class; -- GtkWidgetClass *widget_class; -- GtkMenuItemClass *menu_item_class; -- GtkItemClass *item_class; -- -- gobject_class = G_OBJECT_CLASS (klass); -- widget_class = GTK_WIDGET_CLASS (klass); -- menu_item_class = GTK_MENU_ITEM_CLASS (klass); -- item_class = GTK_ITEM_CLASS (klass); -- -- gobject_class->set_property = gdm_entry_menu_item_set_property; -- gobject_class->get_property = gdm_entry_menu_item_get_property; -- gobject_class->dispose = gdm_entry_menu_item_dispose; -- -- widget_class->button_release_event = gdm_entry_menu_item_button_release; -- widget_class->button_press_event = gdm_entry_menu_item_button_press; -- widget_class->realize = gdm_entry_menu_item_realize; -- -- item_class->select = gdm_entry_menu_item_select; -- item_class->deselect = gdm_entry_menu_item_deselect; -- -- menu_item_class->hide_on_activate = FALSE; --} -- --static void --on_entry_show (GtkWidget *widget, -- GdmEntryMenuItem *item) --{ -- if (gtk_widget_get_window (widget) != NULL) { -- gdk_window_raise (gtk_widget_get_window (widget)); -- } -- send_focus_change (widget, TRUE); --} -- --static void --on_text_buffer_changed (GtkTextBuffer *buffer, -- GdmEntryMenuItem *item) --{ -- int len; -- -- len = gtk_text_buffer_get_char_count (buffer); -- if (len > TEXT_BUFFER_MAX_CHARS) { -- gdk_window_beep (gtk_widget_get_window (GTK_WIDGET (item))); -- } --} -- --static void --on_entry_move_focus (GtkWidget *widget, -- GtkDirectionType direction, -- GdmEntryMenuItem *item) --{ -- g_debug ("focus move"); -- send_focus_change (GTK_WIDGET (GDM_ENTRY_MENU_ITEM (item)->entry), FALSE); -- g_signal_emit_by_name (item, -- "move-focus", -- GTK_DIR_TAB_FORWARD); --} -- --static void --gdm_entry_menu_item_init (GdmEntryMenuItem *item) --{ -- PangoFontDescription *fontdesc; -- PangoFontMetrics *metrics; -- PangoContext *context; -- PangoLanguage *lang; -- int ascent; -- GtkTextBuffer *buffer; -- -- item->hbox = gtk_hbox_new (FALSE, 6); -- gtk_container_add (GTK_CONTAINER (item), item->hbox); -- -- item->image = gtk_image_new (); -- gtk_box_pack_start (GTK_BOX (item->hbox), item->image, FALSE, FALSE, 0); -- -- item->entry = gtk_text_view_new (); -- gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (item->entry), FALSE); -- gtk_text_view_set_editable (GTK_TEXT_VIEW (item->entry), TRUE); -- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (item->entry), -- GTK_WRAP_WORD); -- g_signal_connect (item->entry, -- "show", -- G_CALLBACK (on_entry_show), -- item); -- g_signal_connect (item->entry, -- "move-focus", -- G_CALLBACK (on_entry_move_focus), -- item); -- -- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (item->entry)); -- g_signal_connect (buffer, -- "changed", -- G_CALLBACK (on_text_buffer_changed), -- item); -- -- /* get the font ascent for the current font and language */ -- context = gtk_widget_get_pango_context (item->entry); -- fontdesc = pango_context_get_font_description (context); -- lang = pango_context_get_language (context); -- metrics = pango_context_get_metrics (context, fontdesc, lang); -- ascent = pango_font_metrics_get_ascent (metrics) * 1.5 / PANGO_SCALE; -- pango_font_metrics_unref (metrics); -- -- /* size our progress bar to be five ascents long */ -- gtk_widget_set_size_request (item->entry, ascent * 5, -1); -- -- gtk_box_pack_start (GTK_BOX (item->hbox), item->entry, TRUE, TRUE, 0); -- -- gtk_widget_show (item->hbox); -- gtk_widget_show (item->image); -- gtk_widget_show (item->entry); --} -- --GtkWidget * --gdm_entry_menu_item_new (void) --{ -- return g_object_new (GDM_TYPE_ENTRY_MENU_ITEM, NULL); --} -- --GtkWidget * --gdm_entry_menu_item_get_entry (GdmEntryMenuItem *item) --{ -- g_return_val_if_fail (GDM_IS_ENTRY_MENU_ITEM (item), NULL); -- -- return item->entry; --} -- --GtkWidget * --gdm_entry_menu_item_get_image (GdmEntryMenuItem *item) --{ -- g_return_val_if_fail (GDM_IS_ENTRY_MENU_ITEM (item), NULL); -- -- return item->image; --} -diff --git a/gui/user-switch-applet/gdm-entry-menu-item.h b/gui/user-switch-applet/gdm-entry-menu-item.h -deleted file mode 100644 -index 3031609..0000000 ---- a/gui/user-switch-applet/gdm-entry-menu-item.h -+++ /dev/null -@@ -1,51 +0,0 @@ --/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- -- * -- * Copyright (C) 2004-2005 James M. Cape . -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- */ -- --#ifndef __GDM_ENTRY_MENU_ITEM__ --#define __GDM_ENTRY_MENU_ITEM__ -- --#include -- --G_BEGIN_DECLS -- --#define GDM_TYPE_ENTRY_MENU_ITEM \ -- (gdm_entry_menu_item_get_type ()) --#define GDM_ENTRY_MENU_ITEM(object) \ -- (G_TYPE_CHECK_INSTANCE_CAST ((object), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItem)) --#define GDM_ENTRY_MENU_ITEM_CLASS(klass) \ -- (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItemClass)) --#define GDM_IS_ENTRY_MENU_ITEM(object) \ -- (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDM_TYPE_ENTRY_MENU_ITEM)) --#define GDM_IS_ENTRY_MENU_ITEM_CLASS(klass) \ -- (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_ENTRY_MENU_ITEM)) --#define GDM_ENTRY_MENU_ITEM_GET_CLASS(object) \ -- (G_TYPE_INSTANCE_GET_CLASS ((object), GDM_TYPE_ENTRY_MENU_ITEM, GdmEntryMenuItemClass)) -- --typedef struct _GdmEntryMenuItem GdmEntryMenuItem; --typedef struct _GdmEntryMenuItemClass GdmEntryMenuItemClass; -- --GType gdm_entry_menu_item_get_type (void) G_GNUC_CONST; -- --GtkWidget *gdm_entry_menu_item_new (void); --GtkWidget *gdm_entry_menu_item_get_entry (GdmEntryMenuItem *item); --GtkWidget *gdm_entry_menu_item_get_image (GdmEntryMenuItem *item); -- --G_END_DECLS -- --#endif /* __GDM_ENTRY_MENU_ITEM__ */ -diff --git a/po/POTFILES.in b/po/POTFILES.in -index 1fccb90..cc1a3fd 100644 ---- a/po/POTFILES.in -+++ b/po/POTFILES.in -@@ -84,10 +84,6 @@ gui/simple-greeter/gdm-timer.c - gui/simple-greeter/gdm-user.c - gui/simple-greeter/gdm-user-chooser-widget.c - gui/simple-greeter/greeter-main.c --gui/user-switch-applet/applet.c --gui/user-switch-applet/gdm-entry-menu-item.c --gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in --gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml - utils/gdmflexiserver.c - utils/gdm-screenshot.c - -diff --git a/po/POTFILES.skip b/po/POTFILES.skip -index 0269a0f..ee3d753 100644 ---- a/po/POTFILES.skip -+++ b/po/POTFILES.skip -@@ -7,7 +7,6 @@ - # remove these unless you fix "make distcheck" a different way. - # - data/gdm.schemas.in --gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in - data/greeter-autostart/at-spi-registryd-wrapper.desktop.in - data/greeter-autostart/gdm-simple-greeter.desktop.in - data/greeter-autostart/gnome-power-manager.desktop.in --- -1.6.6.1 - diff --git a/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch b/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch deleted file mode 100644 index ad21073a09e..00000000000 --- a/meta-gnome/recipes-gnome/gdm/gdm/0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 43e59f3deadb3914a1cc931ae18d4023874cdeca Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Fri, 26 Apr 2013 17:15:48 +0200 -Subject: [PATCH] gdm-user-manager.c: avoid displaying system users in - greeter's list -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -yocto environment system users have UID below 1000 - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - gui/simple-greeter/gdm-user-manager.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/gui/simple-greeter/gdm-user-manager.c b/gui/simple-greeter/gdm-user-manager.c -index c631989..f18e478 100644 ---- a/gui/simple-greeter/gdm-user-manager.c -+++ b/gui/simple-greeter/gdm-user-manager.c -@@ -63,7 +63,7 @@ - #ifdef __sun - #define FALLBACK_MINIMAL_UID 100 - #else --#define FALLBACK_MINIMAL_UID 500 -+#define FALLBACK_MINIMAL_UID 1000 - #endif - - #ifndef _PATH_SHELLS --- -1.7.4.4 - diff --git a/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch b/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch deleted file mode 100644 index 1f9fa2ac2f6..00000000000 --- a/meta-gnome/recipes-gnome/gdm/gdm/sysrooted-pkg-config.patch +++ /dev/null @@ -1,37 +0,0 @@ -In cross environment we have to prepend the sysroot to the path found by -pkgconfig since the path returned from pkgconfig does not have sysroot prefixed -it ends up using the files from host system. Now usually people have gnome installed -so the build succeeds but if you dont have gnome installed on build host then -it wont find the files on host system and packages using gnome-doc-utils wont -compile. - -This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR -will be empty - -Upstream-Status: Pending - -Signed-off-by: Khem Raj - -Index: gdm-2.32.2/gnome-doc-utils.make -=================================================================== ---- gdm-2.32.2.orig/gnome-doc-utils.make 2011-05-31 08:06:59.000000000 -0700 -+++ gdm-2.32.2/gnome-doc-utils.make 2011-09-25 15:32:39.540992521 -0700 -@@ -133,12 +133,12 @@ - _xml2po ?= `which xml2po` - _xml2po_mode = $(if $(DOC_ID),mallard,docbook) - --_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` --_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` --_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` --_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl --_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl --_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl -+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` -+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` -+_malrng ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable malrng gnome-doc-utils` -+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl -+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}$(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl - - if ENABLE_SK - _ENABLE_SK = true diff --git a/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb b/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb deleted file mode 100644 index fcd51ff3aa9..00000000000 --- a/meta-gnome/recipes-gnome/gdm/gdm_2.32.2.bb +++ /dev/null @@ -1,106 +0,0 @@ -SUMMARY = "Graphical login manager" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS = "xinput gnome-panel tcp-wrappers libcanberra libxklavier grep consolekit libpam gnome-doc-utils gtk+ xrdb" - -PR = "r18" - -PNBLACKLIST[gdm] ?= "Depends on broken polkit-gnome" - -inherit gnome update-rc.d systemd useradd - -SRC_URI += " \ - file://cross-xdetection.diff \ - file://0001-Remove-user-switch-applet.patch \ - file://0002-gdm-user-manager.c-avoid-displaying-system-users-in-.patch \ - file://sysrooted-pkg-config.patch \ - file://%gconf-tree.xml \ - file://gdm \ - file://gdm.conf \ - file://gdm-pam \ - file://Default \ - file://gdm.service.in \ -" - -SRC_URI[archive.md5sum] = "dbe5187a2e17881cc454e313e0ae8d1e" -SRC_URI[archive.sha256sum] = "034d23af0ea18d86e5543e707212d9297ec7d83f221808968af266dbebc0e703" - -EXTRA_OECONF = " \ - --enable-authentication-scheme=shadow \ - --enable-debug=yes \ - --with-console-kit \ - --disable-scrollkeeper \ -" - -do_configure_prepend() { - sed -i -e "s:\bdocs::g" ${S}/Makefile.am -} - -do_install_prepend() { - install -d ${D}/${localstatedir}/lib/gdm/.gconf.mandatory - install ${WORKDIR}/%gconf-tree.xml ${D}/${localstatedir}/lib/gdm/.gconf.mandatory/ -} - -do_install_append() { - install -d ${D}/${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/gdm ${D}/${sysconfdir}/init.d/ - - install -d ${D}/${sysconfdir}/gdm - install -m 0644 ${WORKDIR}/gdm.conf ${D}/${sysconfdir}/gdm/ - - install -d ${D}/${sysconfdir}/pam.d - install -m 0755 ${WORKDIR}/gdm-pam ${D}/${sysconfdir}/pam.d/gdm - rm -f ${D}/${sysconfdir}/pam.d/gdm-autologin - - install -d ${D}/${sysconfdir}/gdm/Init - install -m 0755 ${WORKDIR}/Default ${D}/${sysconfdir}/gdm/Init - - install -d ${D}${systemd_unitdir}/system - sed -e 's,%sbindir%,${sbindir},g' \ - < ${WORKDIR}/gdm.service.in \ - > ${D}${systemd_unitdir}/system/gdm.service - - chown -R gdm:gdm ${D}${localstatedir}/lib/gdm - chmod 0750 ${D}${localstatedir}/lib/gdm - - rm -rf "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" - - rm -f ${D}${datadir}/gdm/autostart/LoginWindow/at-spi-registryd-wrapper.desktop - rm -f ${D}${datadir}/gdm/autostart/LoginWindow/orca-screen-reader.desktop - rm -f ${D}${datadir}/gdm/autostart/LoginWindow/gnome-mag.desktop - rm -f ${D}${datadir}/gdm/autostart/LoginWindow/gok.desktop - rm -f ${D}${datadir}/gdm/autostart/LoginWindow/metacity.desktop -} - -FILES_${PN} += "${datadir}/icon* \ - ${datadir}/xsession* \ -" - -RDEPENDS_${PN} += "grep dbus-x11 shadow" -# "libpam-base-files" -CONFFILES_${PN} += "${sysconfdir}/gdm/gdm.conf ${sysconfdir}/init.d/gdm" -RRECOMMENDS_${PN} += "openssh-misc desktop-file-utils glib-2.0-utils metacity gnome-session polkit-gnome consolekit" - -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "gdm.service" - -INITSCRIPT_NAME = "gdm" -INITSCRIPT_PARAMS = "start 99 5 . stop 20 0 1 2 3 6 ." - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --no-create-home --home ${localstatedir}/lib/gdm --user-group gdm" - -pkg_postinst_${PN} () { -# Register up as default dm -mkdir -p $D${sysconfdir}/X11/ -echo "${bindir}/gdm" > $D${sysconfdir}/X11/default-display-manager -} - -pkg_postrm_${PN} () { - deluser gdm || true - delgroup gdm || true - sed -i /gdm/d ${sysconfdir}/X11/default-display-manager || true -} diff --git a/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch b/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch new file mode 100644 index 00000000000..4ad57effe94 --- /dev/null +++ b/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch @@ -0,0 +1,29 @@ +From 1d2e6165e3154e27ecde329a40c05f0880afb9e0 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 17 May 2016 14:14:03 +0300 +Subject: [PATCH] Remove help directory from build + +It hardcodes the use of xml2po utility, which is provided by obsolete gnome-doc-utils + +Signed-off-by: Alexander Kanavin +--- + Makefile.am | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index e57b203..a88152d 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -3,9 +3,6 @@ ACLOCAL_AMFLAGS = -I m4 + + SUBDIRS = gedit pixmaps po data plugin-loaders plugins docs tests win32 osx + +-if !OS_OSX +-SUBDIRS += help +-endif + + distuninstallcheck_listfiles = find . -type f -print | grep -v scrollkeeper + +-- +2.8.1 + diff --git a/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch b/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch new file mode 100644 index 00000000000..4885c45113d --- /dev/null +++ b/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch @@ -0,0 +1,31 @@ +From 623ffac1f6e7725041b386e0f2933fe36809b5a9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 09:04:30 -0700 +Subject: [PATCH] gedit-utils: qualify handle_builder_error() with format + string parameters + +gedit-utils.c:1063:32: error: format string is not a string literal [-Werror,-Wformat-nonliteral] + msg_plain = g_strdup_vprintf (message, args); + ^~~~~~~ + +Signed-off-by: Khem Raj +--- + gedit/gedit-utils.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gedit/gedit-utils.c b/gedit/gedit-utils.c +index 41a5afd..c800828 100644 +--- a/gedit/gedit-utils.c ++++ b/gedit/gedit-utils.c +@@ -1051,7 +1051,7 @@ gedit_utils_is_valid_uri (const gchar *uri) + return TRUE; + } + +-static GtkWidget * ++static G_GNUC_PRINTF(1, 2) GtkWidget * + handle_builder_error (const gchar *message, ...) + { + GtkWidget *label; +-- +2.14.1 + diff --git a/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch b/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch new file mode 100644 index 00000000000..11afe75ce1b --- /dev/null +++ b/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch @@ -0,0 +1,31 @@ +From ee43bcc3c8d69fe56a64c3487e2d3c780ea5d25e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 06:53:35 -0700 +Subject: [PATCH] tests/document-saver.c: Define ACCESSPERMS if not defined + already + +Helps compile with musl + +Signed-off-by: Khem Raj +--- + tests/document-saver.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tests/document-saver.c b/tests/document-saver.c +index 9f44d5a..811ade6 100644 +--- a/tests/document-saver.c ++++ b/tests/document-saver.c +@@ -41,6 +41,10 @@ + #define UNOWNED_GROUP_LOCAL_URI "/tmp/gedit-document-saver-unowned-group.txt" + #define UNOWNED_GROUP_REMOTE_URI "sftp://localhost/tmp/gedit-document-saver-unowned-group.txt" + ++#if !defined(ACCESSPERMS) ++#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ ++#endif ++ + static gboolean test_completed; + static gboolean mount_completed; + static gboolean mount_success; +-- +2.13.2 + diff --git a/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch b/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch new file mode 100644 index 00000000000..a5d23101238 --- /dev/null +++ b/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch @@ -0,0 +1,38 @@ +From 4ebdf8023f763f75a7e1b548894de2e8b784f4a8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 29 Jul 2016 23:19:40 +0200 +Subject: [PATCH] suppress string format literal warning to fix build with gcc6 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + plugins/time/gedit-time-plugin.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/plugins/time/gedit-time-plugin.c b/plugins/time/gedit-time-plugin.c +index d2ffdb9..441d9f9 100644 +--- a/plugins/time/gedit-time-plugin.c ++++ b/plugins/time/gedit-time-plugin.c +@@ -473,12 +473,15 @@ get_time (const gchar* format) + clock = time (NULL); + now = localtime (&clock); + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wformat-nonliteral" + do + { + out_length += 255; + out = g_realloc (out, out_length); + } + while (strftime (out, out_length, locale_format, now) == 0); ++#pragma GCC diagnostic pop + + g_free (locale_format); + +-- +2.5.5 + diff --git a/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb b/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb index 36bae08a70e..5d244de642a 100644 --- a/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb +++ b/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb @@ -3,25 +3,26 @@ SECTION = "x11/gnome" LICENSE = "GPLv2+" PR = "r2" -DEPENDS = "gvfs enchant gconf gnome-doc-utils gnome-doc-utils-native glib-2.0 gtk+ gtksourceview2 iso-codes" +DEPENDS = "gvfs enchant gconf gnome-doc-utils glib-2.0 gtk+ gtksourceview2 iso-codes intltool-native gnome-common-native libice" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" inherit gnome gettext pythonnative -SRC_URI+= "file://0001-workaround-void-pointer-arithmetic.patch" +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0001-workaround-void-pointer-arithmetic.patch \ + file://0001-Remove-help-directory-from-build.patch \ + file://0002-suppress-string-format-literal-warning-to-fix-build-.patch \ + file://0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch \ + file://0001-gedit-utils-qualify-handle_builder_error-with-format.patch \ + " SRC_URI[archive.md5sum] = "e1eecb0a92a1a363b3d375ec5ac0fb3b" SRC_URI[archive.sha256sum] = "a561fe3dd1d199baede1bd07c4ee65f06fc7c494dd4d3327117f04149a608e3c" +GNOME_COMPRESS_TYPE="bz2" EXTRA_OECONF = "--disable-scrollkeeper \ --enable-gvfs-metadata" -do_configure_prepend() { - cd ${S} - gnome-doc-common --copy || true - gnome-doc-prepare --force --copy || true - cd ${B} -} +LDFLAGS += "-lgmodule-2.0 -lICE" FILES_${PN} += "${libdir}/gedit-2/plugin* ${datadir}/gedit-2" FILES_${PN}-dbg += "${libdir}/gedit-2/plugin-loaders/.debug ${libdir}/gedit-2/plugins/.debug" - diff --git a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb deleted file mode 100644 index ca18341ec6c..00000000000 --- a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_2.32.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Gnome background images" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -SECTION = "x11/gnome" - -# glib-2.0 for glib-gettext.m4 which provides AM_GLIB_GNU_GETTEXT -# intltool-native for IT_PROG_INTLTOOL(0.35.0) -DEPENDS = "glib-2.0 intltool-native" - -inherit gnomebase - -SRC_URI[archive.md5sum] = "3df26626483b02e51adefc6ab5945a8d" -SRC_URI[archive.sha256sum] = "4d7b60b5ba768bf8834b5fa3a3471cd9a9e14b5884bc210dc2d3cdbf1faddcef" - -FILES_${PN} += "${datadir}/gnome-background-properties" - diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0001-bluetooth-input-Fix-compile-errors.patch b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0001-bluetooth-input-Fix-compile-errors.patch deleted file mode 100644 index 0b0cf8b6e2f..00000000000 --- a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0001-bluetooth-input-Fix-compile-errors.patch +++ /dev/null @@ -1,37 +0,0 @@ -From e3c789d6dca9a8a99b60b86e28d8119c55253c13 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 15 May 2013 08:37:03 -0700 -Subject: [PATCH] bluetooth-input: Fix compile errors - -XID is unsigned long type so %d will error out with -Wformat -where format warnings are being treated at errors - -Signed-off-by: Khem Raj - -Upstream-Status: Unknown ---- - wizard/bluetooth-input.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/wizard/bluetooth-input.c b/wizard/bluetooth-input.c -index b3fbdaf..d17e67c 100644 ---- a/wizard/bluetooth-input.c -+++ b/wizard/bluetooth-input.c -@@ -190,12 +190,12 @@ bluetooth_input_check_for_devices (BluetoothInput *input) - if (bluetooth_input_device_get_type (&device_info[i], &is_mouse, &is_keyboard) == FALSE) - continue; - if (is_mouse != FALSE) { -- g_message ("has mouse: %s (id = %d)", device_info[i].name, device_info[i].id); -+ g_message ("has mouse: %s (id = %lu)", device_info[i].name, device_info[i].id); - has_mouse = TRUE; - //break; - } - if (is_keyboard != FALSE) { -- g_message ("has keyboard: %s (id = %d)", device_info[i].name, device_info[i].id); -+ g_message ("has keyboard: %s (id = %lu)", device_info[i].name, device_info[i].id); - has_keyboard = TRUE; - //break; - } --- -1.7.9.5 - diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0002-bluetooth-client-use-valid-interface-names.patch b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0002-bluetooth-client-use-valid-interface-names.patch deleted file mode 100644 index 99049a0cab4..00000000000 --- a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth/0002-bluetooth-client-use-valid-interface-names.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 1555f85b222db0d536efe277d31b57b2a8b938f4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 12 Feb 2015 01:19:41 +0100 -Subject: [PATCH] bluetooth-client: use valid interface names -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Inappropriate[version unmaintained upstream] - -Signed-off-by: Andreas Müller ---- - lib/bluetooth-client.c | 12 ++++++------ - lib/bluetooth-client.xml | 6 +++--- - lib/test-agent.c | 2 +- - 3 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/lib/bluetooth-client.c b/lib/bluetooth-client.c -index d62d56d..02e194c 100644 ---- a/lib/bluetooth-client.c -+++ b/lib/bluetooth-client.c -@@ -721,7 +721,7 @@ static void add_device(DBusGProxy *adapter, GtkTreeIter *parent, - BLUEZ_DEVICE_INTERFACE, path); - - if (device != NULL) -- device_get_properties(device, &hash, NULL); -+ org_bluez_device_get_properties(device, &hash, NULL); - } else - device = NULL; - -@@ -945,7 +945,7 @@ static void adapter_added(DBusGProxy *manager, - adapter = dbus_g_proxy_new_from_proxy(manager, - BLUEZ_ADAPTER_INTERFACE, path); - -- adapter_get_properties(adapter, &hash, NULL); -+ org_bluez_adapter_get_properties(adapter, &hash, NULL); - if (hash != NULL) { - value = g_hash_table_lookup(hash, "Address"); - address = value ? g_value_get_string(value) : NULL; -@@ -1178,7 +1178,7 @@ static void bluetooth_client_init(BluetoothClient *client) - dbus_g_proxy_connect_signal(priv->manager, "DefaultAdapterChanged", - G_CALLBACK(default_adapter_changed), client, NULL); - -- manager_list_adapters(priv->manager, &array, NULL); -+ org_bluez_manager_list_adapters(priv->manager, &array, NULL); - if (array != NULL) { - int i; - -@@ -1189,7 +1189,7 @@ static void bluetooth_client_init(BluetoothClient *client) - } - } - -- manager_default_adapter(priv->manager, &default_path, NULL); -+ org_bluez_manager_default_adapter(priv->manager, &default_path, NULL); - if (default_path != NULL) { - default_adapter_changed(priv->manager, default_path, client); - g_free(default_path); -@@ -1541,7 +1541,7 @@ gboolean bluetooth_client_start_discovery(BluetoothClient *client) - if (adapter == NULL) - return FALSE; - -- adapter_start_discovery(adapter, NULL); -+ org_bluez_adapter_start_discovery(adapter, NULL); - - g_object_unref(adapter); - -@@ -1568,7 +1568,7 @@ gboolean bluetooth_client_stop_discovery(BluetoothClient *client) - if (adapter == NULL) - return FALSE; - -- adapter_stop_discovery(adapter, NULL); -+ org_bluez_adapter_stop_discovery(adapter, NULL); - - g_object_unref(adapter); - -diff --git a/lib/bluetooth-client.xml b/lib/bluetooth-client.xml -index 2326277..38c7fb0 100644 ---- a/lib/bluetooth-client.xml -+++ b/lib/bluetooth-client.xml -@@ -1,7 +1,7 @@ - - - -- -+ - - - -@@ -16,7 +16,7 @@ - - - -- -+ - - - -@@ -44,7 +44,7 @@ - - - -- -+ - - - -diff --git a/lib/test-agent.c b/lib/test-agent.c -index 8d60da6..83464eb 100644 ---- a/lib/test-agent.c -+++ b/lib/test-agent.c -@@ -40,7 +40,7 @@ static gboolean agent_pincode(DBusGMethodInvocation *context, - GValue *value; - const gchar *address, *name; - -- device_get_properties(device, &hash, NULL); -+ org_bluez_device_get_properties(device, &hash, NULL); - - if (hash != NULL) { - value = g_hash_table_lookup(hash, "Address"); --- -1.9.3 - diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_2.32.0.bb b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_2.32.0.bb deleted file mode 100644 index 8711b8af0bb..00000000000 --- a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_2.32.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "GNOME bluetooth manager" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ - file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ -" - -PR = "r1" - -SECTION = "x11/gnome" -DEPENDS = "obexd gnome-doc-utils-native gnome-doc-utils gconf gtk+ dbus-glib libunique libnotify bluez4 gnome-keyring virtual/libx11 libxi intltool-native" - -inherit gnomebase gtk-icon-cache - -SRC_URI += " \ - file://0001-bluetooth-input-Fix-compile-errors.patch \ - file://0002-bluetooth-client-use-valid-interface-names.patch \ -" -SRC_URI[archive.md5sum] = "f129686fe46c4c98eb70a0cc85d59cae" -SRC_URI[archive.sha256sum] = "57b1f06c96a1b85e1c19ff919d708cc38e95edae658881ed99968c325839a973" - -# No 'nautilus-sendto' recipe in meta-gnome yet -EXTRA_OECONF += "--enable-nautilus-sendto=no" - -# No native docbook XSL stylesheets recipe in OE yet -do_configure_prepend() { - sed -i s/help// ${S}/Makefile.am -} - -do_configure_append() { - sed -i 's,func_fatal_error "error: cannot install,echo "bogus message about,' ${HOST_SYS}-libtool -} - -RRECOMMENDS_${PN} += "obexd obex-data-server" - -FILES_${PN}-dbg += "${libdir}/gnome-bluetooth/plugins/.debug/" diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb new file mode 100644 index 00000000000..8cfd65af3bb --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "GNOME bluetooth manager" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ +" + +SECTION = "x11/gnome" + +DEPENDS = "udev gtk+3 libnotify libcanberra intltool-native gnome-common-native \ + ${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)} \ +" + +inherit gnomebase gtk-icon-cache gobject-introspection distro_features_check +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "75d09c924468ec0c687f9ab3acf7f113" +SRC_URI[archive.sha256sum] = "d8df073c331df0f97261869fb77ffcdbf4e3e4eaf460d3c3ed2b16e03d9c5398" + +FILES_${PN}-dbg += "${libdir}/gnome-bluetooth/plugins/.debug/" diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb deleted file mode 100644 index 5cc7ad15ac7..00000000000 --- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_2.32.1.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "GNOME control center" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS = "desktop-file-utils-native gnome-menus libunique dbus-glib gnome-desktop libxml2 metacity gconf gnome-settings-daemon librsvg pango libgnomekbd libxklavier libcanberra libgtop libxscrnsaver" - -PR = "r1" - -inherit gnome - -SRC_URI[archive.md5sum] = "b4e8ab5c7556ae07addbfcfb4fa2f761" -SRC_URI[archive.sha256sum] = "7c568b57358e5c08f4d8dd76dbac7df2539135ad081872b60514b7a8ac797e66" - -LDFLAGS += "-lgthread-2.0 -lxml2" - -do_configure_prepend() { - sed -i s:help::g ${S}/Makefile.am -} -do_install_append() { - rm -rf ${D}${datadir}/mime -} - -FILES_${PN} += "${datadir}/icon* \ - ${datadir}/xsession* \ - ${libdir}/window-manager-settings/*.so \ - ${datadir}/gnome \ - ${datadir}/desktop-directories \ -" -FILES_${PN}-dbg += "${libdir}/window-manager-settings/.debug" -FILES_${PN}-dev += "${libdir}/window-manager-settings/*.la" -FILES_${PN}-staticdev += "${libdir}/window-manager-settings/*.a" diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.4.2.bb b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.4.2.bb deleted file mode 100644 index a056e15011a..00000000000 --- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.4.2.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "GNOME library for reading .desktop files" -SECTION = "x11/gnome" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -BPN = "gnome-desktop" -GNOME_COMPRESS_TYPE ?= "xz" - -inherit gnome pkgconfig -SRC_URI[archive.md5sum] = "efd11d3841c34cc1709d0ea1d3f83cf1" -SRC_URI[archive.sha256sum] = "7565e0a822132ea7b699cb8c64d42b57081ddefd0b5d911f4f4209be0c755952" - -DEPENDS += "gsettings-desktop-schemas gconf libxrandr virtual/libx11 gtk+3 glib-2.0 gnome-doc-utils gnome-common startup-notification" - -EXTRA_OECONF = "--disable-scrollkeeper --disable-desktop-docs" - -do_configure_prepend () { - cp ${STAGING_DATADIR}/gnome-common/data/omf.make ${S} -} - -PACKAGES =+ "libgnome-desktop3" -FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml" - -RRECOMMENDS_libgnome-desktop3 += "gsettings-desktop-schemas" - diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb deleted file mode 100644 index f1675160c4f..00000000000 --- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "GNOME library for reading .desktop files" -SECTION = "x11/gnome" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -PR = "r6" - -inherit gnome pkgconfig - -SRC_URI[archive.md5sum] = "5c80d628a240eb9d9ff78913b31f2f67" -SRC_URI[archive.sha256sum] = "55cbecf67efe1fa1e57ac966520a7c46d799c8ba3c652a1219f60cafccb3739d" - -DEPENDS += "gconf libxrandr virtual/libx11 gtk+ glib-2.0 gnome-doc-utils startup-notification" - -EXTRA_OECONF = "--disable-scrollkeeper --disable-desktop-docs" - -do_configure_prepend () { - cp ${STAGING_DATADIR_NATIVE}/gnome-common/data/omf.make ${S} - sed -i -e s:^#!@PYTHON@:#!${bindir}/python: ${S}/gnome-about/gnome-about.in -} - -PACKAGES =+ "libgnome-desktop" -FILES_libgnome-desktop = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop/pnp.ids" -FILES_${PN} += "${datadir}/gnome-about" - -# for gnome-about -RRECOMMENDS_${PN} += "python-pygtk python-pycairo" - diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch deleted file mode 100644 index 805e9377638..00000000000 --- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-Add-support-for-DeviceAutomountHint.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 7dde5bc75a1d96be9510ce1e98d28f9d33520919 Mon Sep 17 00:00:00 2001 -From: David Zeuthen -Date: Fri, 8 Jul 2011 11:03:52 -0400 -Subject: [PATCH] Add support for DeviceAutomountHint - -Based on the patch in https://bugzilla.gnome.org/show_bug.cgi?id=653184 - -Upstream-Status: Applied [1] - -[1] https://mail.gnome.org/archives/commits-list/2011-July/msg03207.html - -Signed-off-by: David Zeuthen ---- - src/gdu/gdu-device.c | 10 ++++++++++ - src/gdu/gdu-device.h | 1 + - 2 files changed, 11 insertions(+), 0 deletions(-) - -diff --git a/src/gdu/gdu-device.c b/src/gdu/gdu-device.c -index 6a5afad..4be39cf 100644 ---- a/src/gdu/gdu-device.c -+++ b/src/gdu/gdu-device.c -@@ -82,6 +82,7 @@ typedef struct - gboolean device_presentation_nopolicy; - char *device_presentation_name; - char *device_presentation_icon_name; -+ char *device_automount_hint; - guint64 device_size; - guint64 device_block_size; - -@@ -279,6 +280,8 @@ collect_props (const char *key, - props->device_presentation_name = g_strdup (g_value_get_string (value)); - else if (strcmp (key, "DevicePresentationIconName") == 0) - props->device_presentation_icon_name = g_strdup (g_value_get_string (value)); -+ else if (strcmp (key, "DeviceAutomountHint") == 0) -+ props->device_automount_hint = g_strdup (g_value_get_string (value)); - else if (strcmp (key, "DeviceSize") == 0) - props->device_size = g_value_get_uint64 (value); - else if (strcmp (key, "DeviceBlockSize") == 0) -@@ -549,6 +552,7 @@ device_properties_free (DeviceProperties *props) - g_strfreev (props->device_mount_paths); - g_free (props->device_presentation_name); - g_free (props->device_presentation_icon_name); -+ g_free (props->device_automount_hint); - g_free (props->job_id); - g_free (props->id_usage); - g_free (props->id_type); -@@ -1294,6 +1298,12 @@ gdu_device_drive_get_media_compatibility (GduDevice *device) - } - - const char * -+gdu_device_get_automount_hint (GduDevice *device) -+{ -+ return device->priv->props->device_automount_hint; -+} -+ -+const char * - gdu_device_drive_get_media (GduDevice *device) - { - return device->priv->props->drive_media; -diff --git a/src/gdu/gdu-device.h b/src/gdu/gdu-device.h -index 4c1302b..8cfd7a9 100644 ---- a/src/gdu/gdu-device.h -+++ b/src/gdu/gdu-device.h -@@ -143,6 +143,7 @@ const char *gdu_device_drive_get_wwn (GduDevice *device); - const char *gdu_device_drive_get_connection_interface (GduDevice *device); - guint64 gdu_device_drive_get_connection_speed (GduDevice *device); - char **gdu_device_drive_get_media_compatibility (GduDevice *device); -+const gchar *gdu_device_get_automount_hint(GduDevice *device); - const char *gdu_device_drive_get_media (GduDevice *device); - gboolean gdu_device_drive_get_is_media_ejectable (GduDevice *device); - gboolean gdu_device_drive_get_requires_eject (GduDevice *device); --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch deleted file mode 100644 index f36942d194c..00000000000 --- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/disable-scrollkeeper.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Dmitry Eremin-Solenikov -Subject: Disable scrollkeeper-config not found message -Upstream-Status: Not-Applicable - -If scrollkeeper-config isn't found, configure fails with an error. -Fix that by commenting out the check. - -Signed-Off-By: Dmitry Eremin-Solenikov - - -Index: gnome-disk-utility-2.32.0/configure.ac -=================================================================== ---- gnome-disk-utility-2.32.0.orig/configure.ac 2010-09-15 19:07:25.000000000 +0400 -+++ gnome-disk-utility-2.32.0/configure.ac 2011-08-20 01:29:48.000000000 +0400 -@@ -188,9 +188,9 @@ - # ************* - - AC_PATH_PROG(SCROLLKEEPER_CONFIG, scrollkeeper-config,no) --if test x$SCROLLKEEPER_CONFIG = xno; then -- AC_MSG_ERROR(Couldn't find scrollkeeper-config, please install the scrollkeeper package) --fi -+dnl if test x$SCROLLKEEPER_CONFIG = xno; then -+dnl AC_MSG_ERROR([Couldn't find scrollkeeper-config, please install the scrollkeeper package]) -+dnl fi - - # ******************** - # Internationalization diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch deleted file mode 100644 index 6ba3979557c..00000000000 --- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/fix-dbus-interfaces.patch +++ /dev/null @@ -1,34 +0,0 @@ -Index: gnome-disk-utility-2.32.0/src/gdu/Makefile.am -=================================================================== ---- gnome-disk-utility-2.32.0.orig/src/gdu/Makefile.am 2011-08-20 01:59:16.000000000 +0400 -+++ gnome-disk-utility-2.32.0/src/gdu/Makefile.am 2011-08-20 02:08:18.000000000 +0400 -@@ -14,20 +14,20 @@ - gdu-marshal.c: gdu-marshal.list - echo "#include \"gdu-marshal.h\"" > $@ && glib-genmarshal $< --prefix=gdu_marshal --body >> $@ - --udisks-daemon-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml Makefile.am -- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-daemon-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml -+udisks-daemon-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml Makefile.am -+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-daemon-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.xml - --udisks-device-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml Makefile.am -- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-device-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml -+udisks-device-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml Makefile.am -+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-device-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml - --udisks-adapter-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml Makefile.am -- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-adapter-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml -+udisks-adapter-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml Makefile.am -+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-adapter-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Adapter.xml - --udisks-expander-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml Makefile.am -- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-expander-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml -+udisks-expander-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml Makefile.am -+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-expander-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Expander.xml - --udisks-port-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml Makefile.am -- dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-port-glue.h /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml -+udisks-port-glue.h: $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml Makefile.am -+ dbus-binding-tool --prefix=devkit_disks_daemon --mode=glib-client --output=udisks-port-glue.h $(PKG_CONFIG_SYSROOT_DIR)/usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Port.xml - - lib_LTLIBRARIES=libgdu.la diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch deleted file mode 100644 index 48e63b1ea77..00000000000 --- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/sysrooted-pkg-config.patch +++ /dev/null @@ -1,37 +0,0 @@ -In cross environment we have to prepend the sysroot to the path found by -pkgconfig since the path returned from pkgconfig does not have sysroot prefixed -it ends up using the files from host system. Now usually people have gnome installed -so the build succeeds but if you dont have gnome installed on build host then -it wont find the files on host system and packages using gnome-doc-utils wont -compile. - -This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR -will be empty - -Upstream-Status: Pending - -Signed-off-by: Khem Raj - -Index: gnome-disk-utility-2.32.0/gnome-doc-utils.make -=================================================================== ---- gnome-disk-utility-2.32.0.orig/gnome-doc-utils.make 2010-09-15 08:27:46.000000000 -0700 -+++ gnome-disk-utility-2.32.0/gnome-doc-utils.make 2011-09-25 16:04:30.693795591 -0700 -@@ -133,12 +133,12 @@ - _xml2po ?= `which xml2po` - _xml2po_mode = $(if $(DOC_ID),mallard,docbook) - --_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` --_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` --_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` --_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl --_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl --_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl -+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` -+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` -+_malrng ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable malrng gnome-doc-utils` -+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl -+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl - - if ENABLE_SK - _ENABLE_SK = true diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb deleted file mode 100644 index 2c526c8edef..00000000000 --- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_2.32.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "GNOME disk utility" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=e9115d11797a5e6b746b4e9b90194564" - -DEPENDS = "glib-2.0 gtk+ libnotify libunique udisks avahi-ui virtual/libx11 libatasmart gnome-doc-utils intltool-native libgnome-keyring" - -PR = "r4" - -inherit gnomebase gtk-icon-cache -SRC_URI[archive.md5sum] = "f0366c8baebca0404d190b2d78f3582d" -SRC_URI[archive.sha256sum] = "03e461b6bda7f773f8018d25fa3213d3073d4dc83a76e6b39d962652f4de6a98" - -SRC_URI += "\ - file://disable-scrollkeeper.patch \ - file://fix-dbus-interfaces.patch \ - file://sysrooted-pkg-config.patch \ - file://0001-Add-support-for-DeviceAutomountHint.patch \ -" - -EXTRA_OECONF += "--disable-scrollkeeper" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus" - -do_configure_prepend() { - sed -i -e "s: help : :g" ${S}/Makefile.am -} - -PACKAGES =+ "${PN}-nautilus-extension ${PN}-libs" -FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so" -FILES_${PN}-libs += "${libdir}/libgdu*.so.*" -FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la" -FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a" -FILES_${PN}-dbg += "${libdir}/nautilus/extensions-2.0/.debug" diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/musl.patch b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/musl.patch new file mode 100644 index 00000000000..050b87ab24c --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/musl.patch @@ -0,0 +1,17 @@ +include sys/select.h for FD_* macros + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +Index: gnome-keyring-2.32.1/pkcs11/rpc-layer/gkm-rpc-daemon-standalone.c +=================================================================== +--- gnome-keyring-2.32.1.orig/pkcs11/rpc-layer/gkm-rpc-daemon-standalone.c ++++ gnome-keyring-2.32.1/pkcs11/rpc-layer/gkm-rpc-daemon-standalone.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include + #include diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_2.32.1.bb index 860851d9837..fd6ca73a415 100644 --- a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_2.32.1.bb +++ b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_2.32.1.bb @@ -15,15 +15,20 @@ PR = "r12" inherit autotools gnome gtk-doc pkgconfig gsettings -SRC_URI += "file://egg-asn1x.patch" +SRC_URI += "file://egg-asn1x.patch \ + file://musl.patch \ +" -DEPENDS = "gtk+ libgcrypt libtasn1 libtasn1-native gconf ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} intltool-native" +DEPENDS = "gtk+ libgcrypt libtasn1 libtasn1-native gconf ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} intltool-native" RDEPENDS_${PN} = "libgnome-keyring glib-2.0-utils" -EXTRA_OECONF = "${@base_contains('DISTRO_FEATURES', 'pam', '--enable-pam --with-pam-dir=${base_libdir}/security', '--disable-pam', d)}" +LDFLAGS += "-lgmodule-2.0" + +EXTRA_OECONF = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam --with-pam-dir=${base_libdir}/security', '--disable-pam', d)}" SRC_URI[archive.md5sum] = "9a8aa74e03361676f29d6e73155786fc" SRC_URI[archive.sha256sum] = "31fecec1430a97f59a6159a5a2ea8d6a1b44287f1e9e595b3594df46bf7f18f9" +GNOME_COMPRESS_TYPE="bz2" FILES_${PN} += "${datadir}/dbus-1/services ${datadir}/gcr \ ${base_libdir}/security/*${SOLIBSDEV} \ @@ -35,6 +40,17 @@ FILES_${PN}-dev += "${libdir}/${BPN}/devel/*.la \ ${base_libdir}/security/*.la \ " +INSANE_SKIP_${PN}-dev += "dev-elf" + FILES_${PN}-dbg += "${libdir}/${BPN}/standalone/.debug/ \ ${libdir}/${BPN}/devel/.debug/ \ ${base_libdir}/security/.debug/" + +# Make compatible with gcr version 3 or newer by removing +# org.gnome.crypto.pgp.*, which is the provider for this optional +# functionality. + +do_install_append() { + rm ${D}${datadir}/GConf/gsettings/org.gnome.crypto.pgp.convert + rm ${D}${datadir}/glib-2.0/schemas/org.gnome.crypto.pgp.gschema.xml +} diff --git a/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb b/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb index 43379bdca2e..e2418823277 100644 --- a/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb +++ b/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_2.32.0.bb @@ -17,3 +17,4 @@ DEPENDS = "dbus libgcrypt glib-2.0 intltool-native" SRC_URI[archive.md5sum] = "c42b2ca66204835d901d3dbfc1fa5ae6" SRC_URI[archive.sha256sum] = "56388c0d81ddfdb57d30e4963c83ecc1c18498aab99395420e0fff69929a0f0c" +GNOME_COMPRESS_TYPE="bz2" diff --git a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb b/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb index 611499affc2..01da347bde8 100644 --- a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb +++ b/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb @@ -4,23 +4,16 @@ LICENSE = "GPLv2 & LGPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" -PNBLACKLIST[gnome-menus3] ?= "CONFLICT: 24 files are conflicting with gnome-menus" -# e.g. sysroots/qemux86-64/usr/share/desktop-directories/X-GNOME-Other.directory +DEPENDS = "python libxml2 gconf popt gtk+3 intltool-native gnome-common-native" -DEPENDS = "python libxml2 gconf popt gtk+3" - -inherit gnomebase pkgconfig python-dir pythonnative +inherit gnomebase pkgconfig python-dir pythonnative gobject-introspection BPN = "gnome-menus" -SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BPN}-${PV}.tar.xz" SRC_URI[md5sum] = "6db025e79e2b69f39fc7aa0753f43081" SRC_URI[sha256sum] = "46950aba274c1ad58234374fa9b235258650737307f3bc396af48eb983668a71" -PACKAGES += "${PN}-python" FILES_${PN} += "${datadir}/desktop-directories/" -FILES_${PN}-python = "${libdir}/python*" -FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug \ - ${PYTHON_SITEPACKAGES_DIR}/.debug" diff --git a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb b/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb deleted file mode 100644 index d9328b81b65..00000000000 --- a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "GNOME menus" -SECTION = "x11/gnome" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" -PR = "r1" - -DEPENDS = "python libxml2 gconf popt gtk+" - -inherit gnomebase pkgconfig python-dir pythonnative - -SRC_URI[archive.md5sum] = "caa6772e63ed5870cf43dc3d354e0624" -SRC_URI[archive.sha256sum] = "6dcc565006d6e8c2025ae83ab1f82edf6bd04d61c804c0dc9bf5ea50629c4caa" - -PACKAGES += "${PN}-python" -FILES_${PN} += "${datadir}/desktop-directories/" -FILES_${PN}-python = "${libdir}/python*" -FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug \ - ${PYTHON_SITEPACKAGES_DIR}/.debug" - - diff --git a/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data/pkgconfig.patch b/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data/pkgconfig.patch new file mode 100644 index 00000000000..09034255d8f --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data/pkgconfig.patch @@ -0,0 +1,14 @@ +Upstream-Status: Inappropriate [configuration] + +Index: gnome-mime-data-2.18.0/Makefile.am +=================================================================== +--- gnome-mime-data-2.18.0.orig/Makefile.am 2009-06-11 17:27:48.000000000 +0100 ++++ gnome-mime-data-2.18.0/Makefile.am 2009-06-11 17:27:59.000000000 +0100 +@@ -1,6 +1,6 @@ + SUBDIRS = man po + +-pkgconfigdir = $(datadir)/pkgconfig ++pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = gnome-mime-data-2.0.pc + + NULL= diff --git a/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data_2.18.0.bb b/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data_2.18.0.bb new file mode 100644 index 00000000000..eeac1bb4a29 --- /dev/null +++ b/meta-gnome/recipes-gnome/gnome-mime-data/gnome-mime-data_2.18.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Base MIME and Application database for GNOME" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2 & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://check-mime.pl;endline=26;md5=a95b63c92c33d4ca1af61a315888f450" + +inherit gnomebase mime +PR = "r4" + +SRC_URI += "file://pkgconfig.patch" + +SRC_URI[archive.md5sum] = "541858188f80090d12a33b5a7c34d42c" +SRC_URI[archive.sha256sum] = "37196b5b37085bbcd45c338c36e26898fe35dd5975295f69f48028b1e8436fd7" +GNOME_COMPRESS_TYPE="bz2" + +DEPENDS += "shared-mime-info intltool-native glib-2.0-native" +RDEPENDS_${PN} = "shared-mime-info" diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch deleted file mode 100644 index 378e3e405a9..00000000000 --- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/as-needed.patch +++ /dev/null @@ -1,36 +0,0 @@ -From c65f1ae3472cfd4cd96fd376b7bbd95fba5eef0a Mon Sep 17 00:00:00 2001 -From: Vincent Untz -Date: Fri, 27 May 2011 17:00:14 +0000 -Subject: build: Fix build with --as-needed - -upstream-status: backport - ---- -diff --git a/applets/notification_area/Makefile.am b/applets/notification_area/Makefile.am -index 0afc6c5..9734536 100644 ---- a/applets/notification_area/Makefile.am -+++ b/applets/notification_area/Makefile.am -@@ -29,17 +29,17 @@ libtray_la_SOURCES = \ - NOTIFICATION_AREA_SOURCES = main.c main.h - - NOTIFICATION_AREA_LDADD = \ -+ libtray.la \ - ../../libpanel-applet/libpanel-applet-4.la \ - $(X_LIBS) \ - $(NOTIFICATION_AREA_LIBS) \ -- $(LIBPANEL_APPLET_LIBS) \ -- libtray.la -+ $(LIBPANEL_APPLET_LIBS) - - testtray_SOURCES = testtray.c - testtray_LDADD = \ -+ libtray.la \ - $(X_LIBS) \ -- $(NOTIFICATION_AREA_LIBS) \ -- libtray.la -+ $(NOTIFICATION_AREA_LIBS) - - if NOTIFICATION_AREA_INPROCESS - APPLET_IN_PROCESS = true --- -cgit v0.9 diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch deleted file mode 100644 index de4cd8486c3..00000000000 --- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel/idl-sysroot.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- /tmp/Makefile.am 2009-10-26 16:53:20.000000000 +0100 -+++ gnome-panel-2.28.0/gnome-panel/Makefile.am 2009-10-26 16:53:51.000000000 +0100 -@@ -43,7 +43,7 @@ - $(NULL) - - $(CORBA_SRCLIST): $(top_srcdir)/idl/GNOME_Panel.idl $(ORBIT_IDL) -- $(AM_V_GEN)$(ORBIT_IDL) -I $(BONOBO_IDLDIR) -I $(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl -+ $(AM_V_GEN)$(ORBIT_IDL) -I $(SYSROOT)$(BONOBO_IDLDIR) -I $(SYSROOT)$(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl - - BUILT_SOURCES = \ - $(CORBA_SRCLIST) \ ---- /tmp/Makefile.am 2009-10-26 16:54:17.000000000 +0100 -+++ gnome-panel-2.28.0/libpanel-applet/Makefile.am 2009-10-26 16:54:34.000000000 +0100 -@@ -45,7 +45,7 @@ - GNOME_Panel.h - - $(CORBA_SRCLIST): $(top_srcdir)/idl/GNOME_Panel.idl $(ORBIT_IDL) -- $(AM_V_GEN)$(ORBIT_IDL) -I $(BONOBO_IDLDIR) -I $(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl -+ $(AM_V_GEN)$(ORBIT_IDL) -I $(SYSROOT)$(BONOBO_IDLDIR) -I $(SYSROOT)$(BONOBO_ACT_IDLDIR) $(top_srcdir)/idl/GNOME_Panel.idl - - noinst_PROGRAMS = test-bonobo-applet - diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb deleted file mode 100644 index 972a4d4db03..00000000000 --- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "GNOME panel" -LICENSE = "GPLv2 & LGPLv2 & GFDLv1.1" - -BPN = "gnome-panel" -PR = "r1" - -PNBLACKLIST[gnome-panel3] ?= "CONFLICT: depends on libgweather3 which conflicts with libgweather" - -# conflicts with gnome-panel, because they provide the same package -# http://patches.openembedded.org/patch/43105/ -EXCLUDE_FROM_WORLD = "1" -DEFAULT_PREFERENCE = "-1" - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING-DOCS;md5=c9211dab3ae61e580f48432020784324 \ - file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -SECTION = "x11/gnome" - -DEPENDS = "gnome-doc-utils-native gtk+3 dconf gconf glib-2.0 gnome-desktop3 gtk+ pango libwnck3 gnome-menus cairo libgweather3 dbus-glib librsvg libcanberra" - -inherit gtk-doc gnome gettext pkgconfig - -SRC_URI += "file://as-needed.patch " - -SRC_URI[archive.md5sum] = "0f2f644dc4081b72f6df7a65282af7c6" -SRC_URI[archive.sha256sum] = "25db8ec026c4bf47f0ef5cc7e2712f2aad175bd7fb8e4952ef5f8b200f17f196" - -EXTRA_OECONF = "--disable-scrollkeeper --disable-eds --enable-bonobo=no --with-in-process-applets=none" - -do_configure_prepend() { - gnome-doc-prepare --automake - sed -i -e s:help:: ${S}/Makefile.am -} - -pkg_postinst_${PN}_append () { - gconftool-2 --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults \ - --direct --load /etc/gconf/schemas/panel-default-setup.entries -} - -PACKAGES =+ "libpanel-applet" -FILES_libpanel-applet = "${libdir}/libpanel-applet-3.so.*" - -FILES_${PN} =+ "${datadir}/gnome* \ - ${datadir}/dbus-1 \ - ${datadir}/icons \ - ${datadir}/PolicyKit \ - ${libdir}/bonobo \ -" - - diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb deleted file mode 100644 index 4957a99aa45..00000000000 --- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "GNOME panel" -LICENSE = "GPLv2 & LGPLv2 & GFDLv1.1" - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING-DOCS;md5=c9211dab3ae61e580f48432020784324 \ - file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -SECTION = "x11/gnome" - -PR = "r7" - -DEPENDS = "gnome-doc-utils-native gconf glib-2.0 gnome-desktop gtk+ pango libwnck gnome-menus cairo libgweather dbus-glib librsvg libcanberra" - -inherit gtk-doc gnome autotools-brokensep gettext pkgconfig gconf - -SRCREV = "6a364b6a4a9beed3da9ca6f5b0dac81eb99dea2a" -SRC_URI = "git://git.gnome.org/gnome-panel;branch=gnome-2-32" - -S = "${WORKDIR}/git" - -EXTRA_OECONF = "--disable-scrollkeeper --disable-eds --enable-bonobo=no --with-in-process-applets=none" - -do_configure_prepend() { - gnome-doc-prepare --automake - sed -i -e s:help:: ${S}/Makefile.am - sed -i -e s:^#!@PYTHON@:#!/usr/bin/python: ${S}/gnome-panel/gnome-panel-add.in -} - -PACKAGES =+ "libpanel-applet" -FILES_libpanel-applet = "${libdir}/libpanel-applet-*.so.*" - -FILES_${PN} =+ "${datadir}/gnome* \ - ${datadir}/dbus-1 \ - ${datadir}/icons \ - ${datadir}/PolicyKit \ - ${libdir}/bonobo \ -" diff --git a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch b/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch deleted file mode 100644 index d6d49bbda6c..00000000000 --- a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/0001-Makefile.am-don-t-build-help-man.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 3ed15a3c6ae4ab94c7e3af306644bb5d7f3fd1fa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Mon, 29 Apr 2013 13:08:10 +0200 -Subject: [PATCH] Makefile.am: don't build help/man -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -help crashes with: - -| xsltproc -o gnome-power-manager-C.omf --stringparam db2omf.basename gnome-power-manager --stringparam db2omf.format 'docbook' --stringparam db2omf.dtd "-//OASIS//DTD DocBook XML V4.3//EN" --stringparam db2omf.lang C --stringparam db2omf.omf_dir "/usr/share/omf" --stringparam db2omf.help_dir "/usr/share/gnome/help" --stringparam db2omf.omf_in "/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/gnome-power-manager/2.32.0-r2/gnome-power-manager-2.32.0/help/gnome-power-manager.omf.in" /home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm`/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/pkg-config --variable db2omf gnome-doc-utils` C/gnome-power-manager.xml || { rm -f "gnome-power-manager-C.omf"; exit 1; } -| unable to parse fr/gnome-power-manager.xml - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - Makefile.am | 2 -- - 1 files changed, 0 insertions(+), 2 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 005b8a0..5b9e318 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -5,9 +5,7 @@ SUBDIRS = \ - src \ - po \ - docs \ -- man \ - data \ -- help \ - policy \ - tools - --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch b/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch deleted file mode 100644 index f3db7ab6e21..00000000000 --- a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager-2.32.0/sysrooted-pkg-config.patch +++ /dev/null @@ -1,35 +0,0 @@ -In cross environment we have to prepend the sysroot to the path found by -pkgconfig since the path returned from pkgconfig does not have sysroot prefixed -it ends up using the files from host system. Now usually people have gnome installed -so the build succeeds but if you dont have gnome installed on build host then -it wont find the files on host system and packages using gnome-doc-utils wont -compile. - -This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR -will be empty - -Upstream-Status: Pending - -Signed-off-by: Khem Raj - -Index: gnome-power-manager-2.32.0/gnome-doc-utils.make -=================================================================== ---- gnome-power-manager-2.32.0.orig/gnome-doc-utils.make 2010-01-27 08:28:31.000000000 -0800 -+++ gnome-power-manager-2.32.0/gnome-doc-utils.make 2011-09-25 16:16:04.914813800 -0700 -@@ -124,11 +124,11 @@ - - _xml2po ?= `which xml2po` - --_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` --_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` --_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl --_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl --_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl -+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` -+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` -+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl -+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl -+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl - - if ENABLE_SK - _ENABLE_SK = true diff --git a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb b/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb deleted file mode 100644 index 2c55cf1577c..00000000000 --- a/meta-gnome/recipes-gnome/gnome-power-manager/gnome-power-manager_2.32.0.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Power management daemon" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -PR = "r4" - -DEPENDS = "glib-2.0 gtk+ gconf libgnome-keyring dbus dbus-glib libnotify libwnck cairo libunique xrandr virtual/libx11 libxrender libcanberra upower gnome-doc-utils" -RRECOMMENDS_${PN} += "gnome-keyring" - -inherit gnome - -SRC_URI += " \ - file://sysrooted-pkg-config.patch \ - file://0001-Makefile.am-don-t-build-help-man.patch \ -" - -SRC_URI[archive.md5sum] = "9a08e85dce3ffb90775f15e3bda4adda" -SRC_URI[archive.sha256sum] = "17fa301bf7e133285c0e054ae3be2b0f690c48f59b09f67e04d6ed339b330476" - -EXTRA_OECONF = " --disable-scrollkeeper \ - --disable-applets \ - --x-includes=${STAGING_INCDIR} \ - --x-libraries=${STAGING_LIBDIR} \ - --enable-compile-warnings=no \ - ac_cv_header_X11_extensions_dpms_h=yes \ -" - -do_configure_append() { - # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror - for i in $(find ${B} -name "Makefile") ; do - sed -i -e s:-Werror::g $i - done - sed -e "s/libtool --/${TARGET_SYS}-libtool --/" -i ${B}/src/Makefile -} - -PACKAGES =+ "${PN}-applets" - -FILES_${PN}-applets = "${bindir}/*applet* \ - ${libdir}/bonobo/servers \ - ${datadir}/gnome-2.0/ui \ -" - -FILES_${PN} += "${datadir}/icons \ - ${datadir}/dbus-1 \ - ${datadir}/gnome/autostart \ -" - -FILES_${PN}-doc += "${datadir}/omf \ - ${datadir}/gnome/help \ -" - diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch b/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch deleted file mode 100644 index b09f8d200a9..00000000000 --- a/meta-gnome/recipes-gnome/gnome-session/gnome-session/use_G_GINT64_FORMAT.patch +++ /dev/null @@ -1,61 +0,0 @@ -This patch fixes the build errors when building gnome-session for 64bit target using gcc 4.8 - -| gs-idle-monitor.c: In function 'handle_alarm_notify_event': -| gs-idle-monitor.c:196:9: error: format '%lld' expects argument of type 'long long int', but argument 5 has type 'gint64' [-Werror=format=] -| g_debug ("Watch %d fired, idle time = %lld", -| ^ -| gs-idle-monitor.c: In function '_xsync_alarm_set': -| gs-idle-monitor.c:453:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=] -| g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%lld", -| ^ -| gs-idle-monitor.c:457:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=] -| g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%lld", -| ^ -| gs-idle-monitor.c:464:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=] -| g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%lld", -| ^ -| gs-idle-monitor.c:468:17: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'gint64' [-Werror=format=] - -Upstream-Status: Unknown - -Signed-off-by: Khem Raj -Index: gnome-session-2.32.1/gnome-session/gs-idle-monitor.c -=================================================================== ---- gnome-session-2.32.1.orig/gnome-session/gs-idle-monitor.c 2010-11-17 03:17:04.000000000 -0800 -+++ gnome-session-2.32.1/gnome-session/gs-idle-monitor.c 2013-06-11 23:33:12.239960082 -0700 -@@ -193,7 +193,7 @@ - return; - } - -- g_debug ("Watch %d fired, idle time = %lld", -+ g_debug ("Watch %d fired, idle time = %" G_GINT64_FORMAT "", - watch->id, - _xsyncvalue_to_int64 (alarm_event->counter_value)); - -@@ -450,22 +450,22 @@ - - attr.trigger.test_type = XSyncPositiveTransition; - if (watch->xalarm_positive != None) { -- g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%lld", -+ g_debug ("GSIdleMonitor: updating alarm for positive transition wait=%" G_GINT64_FORMAT "", - _xsyncvalue_to_int64 (attr.trigger.wait_value)); - XSyncChangeAlarm (GDK_DISPLAY (), watch->xalarm_positive, flags, &attr); - } else { -- g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%lld", -+ g_debug ("GSIdleMonitor: creating new alarm for positive transition wait=%" G_GINT64_FORMAT "", - _xsyncvalue_to_int64 (attr.trigger.wait_value)); - watch->xalarm_positive = XSyncCreateAlarm (GDK_DISPLAY (), flags, &attr); - } - - attr.trigger.test_type = XSyncNegativeTransition; - if (watch->xalarm_negative != None) { -- g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%lld", -+ g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%" G_GINT64_FORMAT "", - _xsyncvalue_to_int64 (attr.trigger.wait_value)); - XSyncChangeAlarm (GDK_DISPLAY (), watch->xalarm_negative, flags, &attr); - } else { -- g_debug ("GSIdleMonitor: creating new alarm for negative transition wait=%lld", -+ g_debug ("GSIdleMonitor: creating new alarm for negative transition wait=%" G_GINT64_FORMAT "", - _xsyncvalue_to_int64 (attr.trigger.wait_value)); - watch->xalarm_negative = XSyncCreateAlarm (GDK_DISPLAY (), flags, &attr); - } diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb deleted file mode 100644 index cd8f43df6ab..00000000000 --- a/meta-gnome/recipes-gnome/gnome-session/gnome-session_2.32.1.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "Gnome session manager" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -PR = "r3" - -SECTION = "x11/gnome" -DEPENDS = "libxtst gtk+ glib-2.0 upower dbus-glib gconf pango gdk-pixbuf-native startup-notification" - -inherit gnome - -SRC_URI += "file://use_G_GINT64_FORMAT.patch" - -SRC_URI[archive.md5sum] = "222bad6b446cb19a6b9028ea24538002" -SRC_URI[archive.sha256sum] = "22d93ce433fcf9c7ce6b5f36dd81f64e692ea0e41faaa0f61159ddac28c3686a" - -EXTRA_OECONF = " --with-gtk=2.0 ac_cv_path_GCONF_SANITY_CHECK=set --disable-docbook-docs" - -do_configure_append() { - for i in $(find ${S} -name "Makefile") ; do - sed -i -e s:"GCONFTOOL = .*/usr/bin/gconftool-2":"GCONFTOOL = /usr/bin/gconftool-2":g $i - sed -i -e s:"GCONF_SANITY_CHECK = set":"GCONF_SANITY_CHECK = /usr/libexec/gconf-sanity-check-2":g $i - done -} - -RRECOMMENDS_${PN} += "${@base_contains('DISTRO_FEATURES', 'pam', 'pam-plugin-ck-connector', '', d)}" -FILES_${PN} += "${datadir}/xsessions ${datadir}/icons ${datadir}/gnome ${libdir}/gnome-session/helpers" -FILES_${PN}-dbg += "${libexecdir}/gnome-session/helpers/.debug" diff --git a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb deleted file mode 100644 index f45acab17a7..00000000000 --- a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "GNOME settings daemon" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -PR = "r7" - -DEPENDS = "intltool libxxf86misc libsndfile1 libxtst glib-2.0 polkit gtk+ gconf dbus-glib libnotify libgnomekbd libxklavier gnome-doc-utils gnome-desktop" - -inherit gnome - -SRC_URI = "git://git.gnome.org/gnome-settings-daemon;branch=gnome-2-32" -SRCREV = "0160f6725cfb872e017f3958f108792c3b882872" - -S = "${WORKDIR}/git" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)" -PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio glib-2.0 libcanberra" -PACKAGECONFIG[smartcard] = "--enable-smartcard-support,--disable-smartcard-support,nss" - -EXTRA_OECONF = " \ - --x-includes=${STAGING_INCDIR} \ - --x-libraries=${STAGING_LIBDIR} \ - --enable-polkit \ -" - -do_configure_prepend() { - sed -i -e 's:-L$libdir::g' -e 's:-I$includedir::g' ${S}/configure.ac -} - -FILES_${PN} += "${libdir}/gnome-settings-daemon-2.0/*.so ${libdir}/gnome-settings-daemon-2.0/*plugin \ - ${datadir}/dbus-1/ \ - ${datadir}/icon* \ - ${datadir}/gnome-control-center \ - ${datadir}/xsession*" - -FILES_${PN}-dbg += "${libdir}/gnome-settings-daemon-2.0/.debug" -FILES_${PN}-dev += "${libdir}/gnome-settings-daemon-2.0/*.la" -FILES_${PN}-staticdev += "${libdir}/gnome-settings-daemon-2.0/*.a" - diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch b/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch deleted file mode 100644 index ace1b00761f..00000000000 --- a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-Fix-glib-includes.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 8587e35af52f7773f62361be2e72ddf286a59185 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 15 May 2012 13:02:02 +0200 -Subject: [PATCH] Fix glib includes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Upstream-Status: unknown - - -Signed-off-by: Andreas Müller ---- - src/interface.h | 2 +- - src/load-graph.h | 2 +- - src/lsof.h | 2 +- - src/openfiles.h | 2 +- - src/procman_gnomesu.h | 2 +- - src/util.cpp | 2 +- - 6 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/interface.h b/src/interface.h -index 4bda35a..b26b670 100644 ---- a/src/interface.h -+++ b/src/interface.h -@@ -20,7 +20,7 @@ - #ifndef _PROCMAN_INTERFACE_H_ - #define _PROCMAN_INTERFACE_H_ - --#include -+#include - #include - #include "procman.h" - -diff --git a/src/load-graph.h b/src/load-graph.h -index 6111c78..6e7a599 100644 ---- a/src/load-graph.h -+++ b/src/load-graph.h -@@ -1,7 +1,7 @@ - #ifndef _PROCMAN_LOAD_GRAPH_H_ - #define _PROCMAN_LOAD_GRAPH_H_ - --#include -+#include - #include - - enum -diff --git a/src/lsof.h b/src/lsof.h -index ad7f111..da420e2 100644 ---- a/src/lsof.h -+++ b/src/lsof.h -@@ -1,7 +1,7 @@ - #ifndef H_PROCMAN_LSOF_1161179202 - #define H_PROCMAN_LSOF_1161179202 - --#include -+#include - #include "procman.h" - - void procman_lsof(ProcData *data); -diff --git a/src/openfiles.h b/src/openfiles.h -index 38b1cc8..a8b7b05 100644 ---- a/src/openfiles.h -+++ b/src/openfiles.h -@@ -1,7 +1,7 @@ - #ifndef _OPENFILES_H_ - #define _OPENFILES_H_ - --#include -+#include - - #include "procman.h" - -diff --git a/src/procman_gnomesu.h b/src/procman_gnomesu.h -index fec2650..474ca9a 100644 ---- a/src/procman_gnomesu.h -+++ b/src/procman_gnomesu.h -@@ -1,7 +1,7 @@ - #ifndef H_GNOME_SYSTEM_MONITOR_GNOMESU_H_1132171917 - #define H_GNOME_SYSTEM_MONITOR_GNOMESU_H_1132171917 - --#include -+#include - - gboolean - procman_gnomesu_create_root_password_dialog(const char * message); -diff --git a/src/util.cpp b/src/util.cpp -index 9b1c9f5..90073fe 100644 ---- a/src/util.cpp -+++ b/src/util.cpp -@@ -1,7 +1,7 @@ - #include - - #include --#include -+#include - #include - - #include --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch b/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch deleted file mode 100644 index 7b6728102b0..00000000000 --- a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0002-src-procman.cpp-include-main-gtkmm.h.patch +++ /dev/null @@ -1,49 +0,0 @@ -From acff719983aa1294148dc4a367c48957f5510eff Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Fri, 17 May 2013 18:25:56 +0200 -Subject: [PATCH] src/procman.cpp: include main gtkmm.h -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -after update of gtkmm build failed with: - -In file included from /home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gtkmm-2.4/gtkmm/main.h:33:0, - from procman.cpp:26: -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:7: error: 'Value' is not a template -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected template-name before '<' token -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected '{' before '<' token -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:92:54: error: expected unqualified-id before '<' token -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:174:7: error: 'Value' is not a template -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:174:30: error: 'Glib::Value' is not a template type -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:174:58: error: expected template-name before '<' token -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:207:7: error: 'Value' is not a template -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:207:24: error: 'Glib::Value' is not a template type -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:207:51: error: expected template-name before '<' token -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:274:7: error: 'Value' is not a template -/home/Superandy/tmp/oe-core-eglibc/sysroots/overo/usr/include/gdkmm-2.4/gdkmm/types.h:274:32: error: 'Glib::Value' is not a template type -<...> - -Upstream-Status: Backport - -Signed-off-by: Andreas Müller ---- - src/procman.cpp | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/procman.cpp b/src/procman.cpp -index b5c0d0a..d9b4b3f 100644 ---- a/src/procman.cpp -+++ b/src/procman.cpp -@@ -23,7 +23,7 @@ - - #include - --#include -+#include - #include - #include - #include --- -1.7.4.4 - diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb deleted file mode 100644 index ce4b64e9770..00000000000 --- a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_2.28.2.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "Gnome system monitor" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SECTION = "x11/gnome" -PR = "r2" - -DEPENDS = "libgtop gtkmm glibmm gnome-doc-utils gnome-icon-theme libwnck gtk+ dbus-glib librsvg intltool-native" - -inherit gnome -SRC_URI[archive.md5sum] = "3f0bca9b0ebc7a365466851cd580d167" -SRC_URI[archive.sha256sum] = "b628edfd39e3a6b374ce133f367d3568475eb4e981a367f4f9d62a9784e5ae59" -SRC_URI += " \ - file://0001-Fix-glib-includes.patch \ - file://0002-src-procman.cpp-include-main-gtkmm.h.patch \ -" - -do_configure_prepend() { - sed -i -e s:help::g ${S}/Makefile.am -} - -FILES_${PN} += "${datadir}/icons \ - ${datadir}/dbus-1 \ - ${datadir}/gnome/autostart \ -" - -FILES_${PN}-doc += "${datadir}/omf \ - ${datadir}/gnome/help " - diff --git a/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb b/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb index 6988b3a5e5c..3ec646697f2 100644 --- a/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb +++ b/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ file://daemon/vfs-daemon.c;endline=21;md5=5f2c61553fb16abb07fc9498ca03fe1f \ file://modules/cdda-cddb.h;endline=22;md5=20ed324ca64907c366ecd7f22b8e0c54" -DEPENDS = "libxml2 gconf dbus bzip2 gnome-mime-data zlib intltool-native" +DEPENDS = "libxml2 gconf dbus bzip2 gnome-mime-data zlib intltool-native gnome-common-native" RRECOMMENDS_${PN} = "gnome-vfs-plugin-file shared-mime-info" # Some legacy packages will require gnome-mime-data to be installed, but use of # it is deprecated. @@ -29,8 +29,9 @@ SRC_URI += " \ SRC_URI[archive.md5sum] = "a05fab03eeef10a47dd156b758982f2e" SRC_URI[archive.sha256sum] = "62de64b5b804eb04104ff98fcd6a8b7276d510a49fbd9c0feb568f8996444faa" +GNOME_COMPRESS_TYPE="bz2" -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)}" PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi" PACKAGECONFIG[fam] = "--enable-fam,--disable-fam,gamin" @@ -52,8 +53,6 @@ FILES_${PN}-doc += "${datadir}/gtk-doc" PACKAGES_DYNAMIC += "^gnome-vfs-plugin-.*" python populate_packages_prepend () { - print d.getVar('FILES_gnome-vfs', 1) - plugindir = d.expand('${libdir}/gnome-vfs-2.0/modules/') do_split_packages(d, plugindir, '^lib(.*)\.so$', 'gnome-vfs-plugin-%s', 'GNOME VFS plugin for %s') } diff --git a/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch b/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch deleted file mode 100644 index d7874e492ee..00000000000 --- a/meta-gnome/recipes-gnome/gnome/gnome-terminal/0001-Makefile.am-do-not-build-help.patch +++ /dev/null @@ -1,28 +0,0 @@ -From d2549d3ef08536be6d141524e3382fef07fea8bf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 30 Apr 2013 19:48:27 +0200 -Subject: [PATCH] Makefile.am: do not build help -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - Makefile.am | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 89f7ee4..31e11ab 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,4 +1,4 @@ --SUBDIRS = src po help -+SUBDIRS = src po - - NULL = - --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb b/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb deleted file mode 100644 index 26fbeb2d99f..00000000000 --- a/meta-gnome/recipes-gnome/gnome/gnome-terminal_2.30.2.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "GNOME Terminal" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=5b51eba4ba4cafe64073227530c061ed" -DEPENDS = "gtk+ glib-2.0 startup-notification dbus-glib vte gnome-doc-utils intltool-native" -PR = "r1" - -inherit gnome - -SRC_URI += " \ - file://0001-Makefile.am-do-not-build-help.patch \ -" - -EXTRA_OECONF += "--disable-scrollkeeper" - -SRC_URI[archive.md5sum] = "74c4528f00067072c2bd867d1f8fe844" -SRC_URI[archive.sha256sum] = "2c7af2250698b9f9f53c6eaa93211c1118cf2c7e29cbbacfd1e8a6a10069e07a" - -RRECOMMENDS_${PN} += "gnome-common-schemas" diff --git a/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb b/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb deleted file mode 100644 index fe0d34e5e24..00000000000 --- a/meta-gnome/recipes-gnome/gnome/libgnomecups_0.2.3.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION="Gnome Cups Manager" -LICENSE="GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS="glib-2.0 gtk+ pango cups intltool libgnomeui" - -PR = "r2" - -inherit gnomebase pkgconfig - -do_compile_append () { - cp libgnomecups-1.0.pc libgnomecups-1.0.pc.old - sed 's:${STAGING_DIR_HOST}::' < libgnomecups-1.0.pc.old > libgnomecups-1.0.pc -} - -SRC_URI += "\ - file://libgnomecups-0.2.3-glib.h.patch \ - file://libgnomecups-0.2.3-cups-1.6.patch \ -" - -SRC_URI[archive.md5sum] = "dc4920c15c9f886f73ea74fbff0ae48b" -SRC_URI[archive.sha256sum] = "e130e80942b386de19a288a4c194ff3dbe9140315b31e982058c8bffbb6a1d29" diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch b/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch deleted file mode 100644 index 174985a7eb5..00000000000 --- a/meta-gnome/recipes-gnome/gnome/libgnomeprint/0001-configure-use-pkgconfig-for-freetype.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ed31fd89f4c77d89390774d29427898a85b25ab1 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 1 Aug 2014 13:58:36 +0200 -Subject: [PATCH] configure: use pkgconfig for freetype - -Upstream-status: Pending -Signed-off-by: Koen Kooi ---- - configure.in | 12 +++++------- - 1 file changed, 5 insertions(+), 7 deletions(-) - -diff --git a/configure.in b/configure.in -index 729278d..e569429 100644 ---- a/configure.in -+++ b/configure.in -@@ -164,13 +164,11 @@ dnl Checking for freetype2 - dnl ================================= - FREETYPE_LIBS= - FREETYPE_CFLAGS= --AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) --if test "x$FREETYPE_CONFIG" = "xno" ; then -- AC_MSG_ERROR(You need FreeType2 (freetype-devel v 2.x package) for this version of libgnomeprint) --else -- FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags` -- FREETYPE_LIBS=`$FREETYPE_CONFIG --libs` --fi -+PKG_CHECK_MODULES(FREETYPE2, freetype2, -+ FREETYPE_CFLAGS="$CFLAGS $FREETYPE2_CFLAGS" -+ FREETYPE_LIBS="$LIBS $FREETYPE2_LIBS", -+ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)]) -+) - - libgnomeprint_save_ldflags=$LDFLAGS - LDFLAGS="$LDFLAGS $FREETYPE_LIBS" --- -1.9.0 - diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch b/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch deleted file mode 100644 index 53235a12d37..00000000000 --- a/meta-gnome/recipes-gnome/gnome/libgnomeprint/fix.includes.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -uNr libgnomeprint-2.18.7.orig/libgnomeprint/modules/cups/gnome-print-cups-transport.c libgnomeprint-2.18.7/libgnomeprint/modules/cups/gnome-print-cups-transport.c ---- libgnomeprint-2.18.7.orig/libgnomeprint/modules/cups/gnome-print-cups-transport.c 2009-04-19 19:45:36.000000000 +0200 -+++ libgnomeprint-2.18.7/libgnomeprint/modules/cups/gnome-print-cups-transport.c 2012-12-23 12:34:52.058643537 +0100 -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - #include - - #include diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch b/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch deleted file mode 100644 index 7a27ecd239c..00000000000 --- a/meta-gnome/recipes-gnome/gnome/libgnomeprint/freetype.patch +++ /dev/null @@ -1,38 +0,0 @@ -Use proper method to include freetype headers - -FreeType wants to use these special macros to include its APIs -so be it. - -Signed-off-by: Khem Raj -Upstream-Status: Pending - -Index: libgnomeprint-2.18.7/libgnomeprint/gnome-font-face.c -=================================================================== ---- libgnomeprint-2.18.7.orig/libgnomeprint/gnome-font-face.c -+++ libgnomeprint-2.18.7/libgnomeprint/gnome-font-face.c -@@ -36,7 +36,9 @@ - #include - #include - --#include -+#include -+#include FT_FREETYPE_H -+ - - #include - #include -Index: libgnomeprint-2.18.7/libgnomeprint/gnome-rfont.c -=================================================================== ---- libgnomeprint-2.18.7.orig/libgnomeprint/gnome-rfont.c -+++ libgnomeprint-2.18.7/libgnomeprint/gnome-rfont.c -@@ -28,8 +28,8 @@ - - #include - #include FT_FREETYPE_H --#include --#include -+#include FT_GLYPH_H -+#include FT_BBOX_H - #include - #include - #include diff --git a/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb b/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb deleted file mode 100644 index 15e513a78d1..00000000000 --- a/meta-gnome/recipes-gnome/gnome/libgnomeprint_2.18.8.bb +++ /dev/null @@ -1,24 +0,0 @@ -LICENSE = "GPLv2" -SECTION = "x11/gnome/libs" - -DEPENDS = "libxml2 libgnomecups glib-2.0 pango libart-lgpl fontconfig popt gnome-common freetype" - -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit pkgconfig gnomebase - -SRC_URI += "file://fix.includes.patch \ - file://freetype.patch \ - file://0001-configure-use-pkgconfig-for-freetype.patch \ - " -SRC_URI[archive.md5sum] = "63b05ffb5386e131487c6af30f4c56ac" -SRC_URI[archive.sha256sum] = "1034ec8651051f84d2424e7a1da61c530422cc20ce5b2d9e107e1e46778d9691" - -FILES_${PN}-dbg += "\ - ${libdir}/${PN}/${PV}/modules/.debug \ - ${libdir}/${PN}/${PV}/modules/*/.debug \ -" -FILES_${PN}-staticdev += "\ - ${libdir}/${PN}/${PV}/modules/*.a \ - ${libdir}/${PN}/${PV}/modules/*/*.a \ -" diff --git a/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch b/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch deleted file mode 100644 index cc81b1fc04d..00000000000 --- a/meta-gnome/recipes-gnome/gnumeric/gnumeric/do-not-use-srcdir.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: gnumeric-1.12.0/test/Makefile.am -=================================================================== ---- gnumeric-1.12.0.orig/test/Makefile.am 2011-05-17 17:54:24.000000000 -0700 -+++ gnumeric-1.12.0/test/Makefile.am 2013-10-17 20:28:19.920618596 -0700 -@@ -25,7 +25,9 @@ - # - # 90xx: Misc stuff. - --TESTS = $(sort $(wildcard $(srcdir)/t[0-9][0-9][0-9][0-9]-*.pl)) -+TESTS_EXTENSIONS=.pl -+TESTS = @auto_find_tests@ -+ - SUPPS = common.supp commondots.supp gui.supp t8003-valgrind-pdf.supp - - import-db: diff --git a/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb b/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb deleted file mode 100644 index 71f99cafbd0..00000000000 --- a/meta-gnome/recipes-gnome/gnumeric/gnumeric_1.12.0.bb +++ /dev/null @@ -1,46 +0,0 @@ -LICENSE = "GPLv2 | GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=be0de417af78dd340558810d1ced52e6" -SECTION = "x11/utils" -S = "${WORKDIR}/gnumeric-${PV}" -DEPENDS = "gdk-pixbuf libgsf gtk+3 libxml2 libglade libart-lgpl intltool-native libgnomecanvas libgnomeprint libbonoboui orbit2-native goffice" -SUMMARY = "Gnumeric spreadsheet for GNOME" - -GNOME_COMPRESS_TYPE = "xz" - -inherit gnome - -SRC_URI += "file://do-not-use-srcdir.patch" - -SRC_URI[archive.md5sum] = "3fd87cca95334b5d8ac922989670fe27" -SRC_URI[archive.sha256sum] = "037b53d909e5d1454b2afda8c4fb1e7838e260343e36d4e36245f4a5d0e04111" - - -EXTRA_OECONF=" --without-perl " - -PACKAGES_DYNAMIC += "gnumeric-plugin-*" -PACKAGES += "libspreadsheet libspreadsheet-dev gnumeric-goffice gnumeric-goffice-dbg" - -FILES_${PN}-dbg += "${libdir}/gnumeric/${PV}/plugins/*/.debug" -FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig" -FILES_${PN}-staticdev = "${libdir}/libspreadsheet.la" -FILES_libspreadsheet = "${libdir}/libspreadsheet-${PV}.so" -FILES_libspreadsheet-dev = "${libdir}/libspreadsheet.so" -FILES_gnumeric-goffice-dbg += "${libdir}/goffice/*/plugins/gnumeric/.debug" -FILES_gnumeric-goffice = "${libdir}/goffice/*/plugins/gnumeric/*" - -# This hack works around the problem mentioned here: -# https://mail.gnome.org/archives/gnumeric-list/2010-February/msg00006.html -do_install_prepend() { - sed -i ${B}/doc/C/Makefile -e 's/\tfor file in $(omffile); do/\t-for file in $(omffile); do/' -} - -python populate_packages_prepend () { - gnumeric_libdir = bb.data.expand('${libdir}/gnumeric/${PV}/plugins', d) - - do_split_packages(d, gnumeric_libdir, '^(.*)/.*$', - output_pattern='gnumeric-plugin-%s', - description='Gnumeric plugin %s', - extra_depends='', - recursive=True, - prepend=True) -} diff --git a/meta-gnome/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.14.1.bb b/meta-gnome/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.14.1.bb deleted file mode 100644 index e6d1d1ac0f3..00000000000 --- a/meta-gnome/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.14.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "GNOME desktop-wide GSettings schemas" -HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS = "glib-2.0 intltool-native gobject-introspection-stub-native" - -inherit gnomebase gsettings gettext - -GNOME_COMPRESS_TYPE = "xz" - -SRC_URI[archive.md5sum] = "92d41934212fc7da48648afa3927f4b0" -SRC_URI[archive.sha256sum] = "217eba09f0fb263dcb8ce6efa21c9afaf0504ac1d937732d1af1c6724c05f065" diff --git a/meta-gnome/recipes-gnome/gthumb/files/parallel.patch b/meta-gnome/recipes-gnome/gthumb/files/parallel.patch deleted file mode 100644 index 20ce5c5aa26..00000000000 --- a/meta-gnome/recipes-gnome/gthumb/files/parallel.patch +++ /dev/null @@ -1,158 +0,0 @@ -From 34969cde1dcb7740b4a7c3b6e3d04d481e5980b5 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 31 Jul 2012 17:26:27 +0100 -Subject: [PATCH] build: Fix parallel build problems with enum generation - -This is a backport from a patch against master. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=680925] ---- - extensions/file_tools/Makefile.am | 10 ++++------ - extensions/importer/Makefile.am | 10 ++++------ - extensions/pixbuf_savers/Makefile.am | 10 ++++------ - gthumb/Makefile.am | 10 ++++------ - 4 files changed, 16 insertions(+), 24 deletions(-) - -diff --git a/extensions/file_tools/Makefile.am b/extensions/file_tools/Makefile.am -index 7785eff..d70a8a5 100644 ---- a/extensions/file_tools/Makefile.am -+++ b/extensions/file_tools/Makefile.am -@@ -24,17 +24,16 @@ HEADER_FILES = \ - gth-file-tool-undo.h \ - preferences.h - --enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS) -+enum-types.h: $(HEADER_FILES) - $(AM_V_GEN)( $(GLIB_MKENUMS) \ - --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include \n\nG_BEGIN_DECLS\n" \ - --fprod "/* enumerations from \"@filename@\" */\n" \ - --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ - --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \ - $^> xgen-$(@F) \ -- && (cmp -s xgen-$(@F) enum-types.h || cp xgen-$(@F) enum-types.h ) \ -- && rm -f xgen-$(@F) ) -+ && mv -f xgen-$(@F) enum-types.h ) - --enum-types.c: $(HEADER_FILES) enum-types.h -+enum-types.c: $(HEADER_FILES) - $(AM_V_GEN)( $(GLIB_MKENUMS) \ - --fhead "#include \n" \ - --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \ -@@ -42,8 +41,7 @@ enum-types.c: $(HEADER_FILES) enum-types.h - --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ - --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ - $^> xgen-$(@F) \ -- && (cmp -s xgen-$(@F) enum-types.c || cp xgen-$(@F) enum-types.c ) \ -- && rm -f xgen-$(@F) ) -+ && mv -f xgen-$(@F) enum-types.c ) - - libfile_tools_la_SOURCES = \ - $(ENUM_TYPES) \ -diff --git a/extensions/importer/Makefile.am b/extensions/importer/Makefile.am -index 29e7f2c..07c1eba 100644 ---- a/extensions/importer/Makefile.am -+++ b/extensions/importer/Makefile.am -@@ -14,17 +14,16 @@ HEADER_FILES = \ - preferences.h \ - utils.h - --gth-import-enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS) -+gth-import-enum-types.h: $(HEADER_FILES) - $(AM_V_GEN)( $(GLIB_MKENUMS) \ - --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include \n\nG_BEGIN_DECLS\n" \ - --fprod "/* enumerations from \"@filename@\" */\n" \ - --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ - --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \ - $^> xgen-$(@F) \ -- && (cmp -s xgen-$(@F) gth-import-enum-types.h || cp xgen-$(@F) gth-import-enum-types.h ) \ -- && rm -f xgen-$(@F) ) -+ && mv -f xgen-$(@F) gth-import-enum-types.h ) - --gth-import-enum-types.c: $(HEADER_FILES) gth-import-enum-types.h -+gth-import-enum-types.c: $(HEADER_FILES) - $(AM_V_GEN)( $(GLIB_MKENUMS) \ - --fhead "#include \n" \ - --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \ -@@ -32,8 +31,7 @@ gth-import-enum-types.c: $(HEADER_FILES) gth-import-enum-types.h - --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ - --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ - $^> xgen-$(@F) \ -- && (cmp -s xgen-$(@F) gth-import-enum-types.c || cp xgen-$(@F) gth-import-enum-types.c ) \ -- && rm -f xgen-$(@F) ) -+ && mv -f xgen-$(@F) gth-import-enum-types.c ) - - libimporter_la_SOURCES = \ - $(ENUM_TYPES) \ -diff --git a/extensions/pixbuf_savers/Makefile.am b/extensions/pixbuf_savers/Makefile.am -index bfe9f34..4764c32 100644 ---- a/extensions/pixbuf_savers/Makefile.am -+++ b/extensions/pixbuf_savers/Makefile.am -@@ -10,17 +10,16 @@ ENUM_TYPES = \ - HEADER_FILES = \ - preferences.h - --enum-types.h: $(HEADER_FILES) $(GLIB_MKENUMS) -+enum-types.h: $(HEADER_FILES) - $(AM_V_GEN)( $(GLIB_MKENUMS) \ - --fhead "#ifndef ENUM_TYPES_H\n#define ENUM_TYPES_H\n\n#include \n\nG_BEGIN_DECLS\n" \ - --fprod "/* enumerations from \"@filename@\" */\n" \ - --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ - --ftail "G_END_DECLS\n\n#endif /* ENUM_TYPES_H */" \ - $^> xgen-$(@F) \ -- && (cmp -s xgen-$(@F) enum-types.h || cp xgen-$(@F) enum-types.h ) \ -- && rm -f xgen-$(@F) ) -+ && mv -f xgen-$(@F) enum-types.h ) - --enum-types.c: $(HEADER_FILES) enum-types.h -+enum-types.c: $(HEADER_FILES) - $(AM_V_GEN)( $(GLIB_MKENUMS) \ - --fhead "#include \n" \ - --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \ -@@ -28,8 +27,7 @@ enum-types.c: $(HEADER_FILES) enum-types.h - --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ - --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ - $^> xgen-$(@F) \ -- && (cmp -s xgen-$(@F) enum-types.c || cp xgen-$(@F) enum-types.c ) \ -- && rm -f xgen-$(@F) ) -+ && mv -f xgen-$(@F) enum-types.c ) - - libpixbuf_savers_la_SOURCES = \ - $(ENUM_TYPES) \ -diff --git a/gthumb/Makefile.am b/gthumb/Makefile.am -index e9e385e..2f14e03 100644 ---- a/gthumb/Makefile.am -+++ b/gthumb/Makefile.am -@@ -296,17 +296,16 @@ gthumb_CFLAGS = \ - -DGTHUMB_EXTENSIONS_DIR=\"$(extensions_dir)\" \ - $(NULL) - --gth-enum-types.h: $(PUBLIC_HEADER_FILES) $(GLIB_MKENUMS) -+gth-enum-types.h: $(PUBLIC_HEADER_FILES) - $(AM_V_GEN)( $(GLIB_MKENUMS) \ - --fhead "#ifndef GTH_ENUM_TYPES_H\n#define GTH_ENUM_TYPES_H\n\n#include \n\nG_BEGIN_DECLS\n" \ - --fprod "/* enumerations from \"@filename@\" */\n" \ - --vhead "GType @enum_name@_get_type (void);\n#define GTH_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ - --ftail "G_END_DECLS\n\n#endif /* GTH_ENUM_TYPES_H */" \ - $^> xgen-$(@F) \ -- && (cmp -s xgen-$(@F) gth-enum-types.h || cp xgen-$(@F) gth-enum-types.h ) \ -- && rm -f xgen-$(@F) ) -+ && mv -f xgen-$(@F) gth-enum-types.h ) - --gth-enum-types.c: $(PUBLIC_HEADER_FILES) gth-enum-types.h -+gth-enum-types.c: $(PUBLIC_HEADER_FILES) - $(AM_V_GEN)( $(GLIB_MKENUMS) \ - --fhead "#include \n" \ - --fprod "\n/* enumerations from \"@filename@\" */\n#include \"@filename@\"" \ -@@ -314,8 +313,7 @@ gth-enum-types.c: $(PUBLIC_HEADER_FILES) gth-enum-types.h - --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ - --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ - $^> xgen-$(@F) \ -- && (cmp -s xgen-$(@F) gth-enum-types.c || cp xgen-$(@F) gth-enum-types.c ) \ -- && rm -f xgen-$(@F) ) -+ && mv -f xgen-$(@F) gth-enum-types.c ) - - gth-marshal.h: gth-marshal.list $(GLIB_GENMARSHAL) - $(AM_V_GEN)( $(GLIB_GENMARSHAL) $(srcdir)/gth-marshal.list --header --prefix=gth_marshal > $@ ) --- -1.7.10.4 - diff --git a/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb b/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb deleted file mode 100644 index 70ef19394bf..00000000000 --- a/meta-gnome/recipes-gnome/gthumb/gthumb_2.12.4.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "gThumb is an image viewer and browser for the GNOME Desktop" -SECTION = "x11/gnome" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -DEPENDS = "glib-2.0 gtk+ libxml2 gnome-doc-utils libunique gconf libpng gstreamer jpeg tiff gst-plugins-base" - -PR = "r4" - -EXTRA_OECONF = "--disable-gnome-keyring --disable-libsoup --disable-exiv2 --disable-clutter" - -inherit gnome pkgconfig - -SRC_URI[archive.md5sum] = "97fc13221b0c5d80c27a2e25a3a3ac6f" -SRC_URI[archive.sha256sum] = "cf809695230ab8892a078be454a42ade865754c72ec1da7c3d74d4310de54f1d" - -SRC_URI += "file://parallel.patch" - -do_install_append () { - rm ${D}${libdir}/${BPN}/extensions/*.a -} - -FILES_${PN} += "${datadir}/icons" -FILES_${PN} += "${libdir}/${BPN}/extensions/*.so \ - ${libdir}/${BPN}/extensions/*.extension" -FILES_${PN}-dev += "${libdir}/${BPN}/extensions/*.la" -FILES_${PN}-dbg += "${libdir}/${BPN}/extensions/.debug/" - diff --git a/meta-gnome/recipes-gnome/gtk-engines/files/glib-2.32.patch b/meta-gnome/recipes-gnome/gtk-engines/files/glib-2.32.patch new file mode 100644 index 00000000000..f0b878d3768 --- /dev/null +++ b/meta-gnome/recipes-gnome/gtk-engines/files/glib-2.32.patch @@ -0,0 +1,23 @@ +From 8d49a386f467cbf8e0842d2218126f643e50f834 Mon Sep 17 00:00:00 2001 +From: Dominique Leuenberger +Date: Sun, 27 Nov 2011 14:24:57 +0000 +Subject: Fix build with glib 2.31: Only glib.h can be #include'd. Fixes bug #664914 + +Upstream-Status: Backport + +--- +diff --git a/engines/clearlooks/src/animation.c b/engines/clearlooks/src/animation.c +index 1f7a41f..56a9286 100644 +--- a/engines/clearlooks/src/animation.c ++++ b/engines/clearlooks/src/animation.c +@@ -28,7 +28,7 @@ + #include "animation.h" + + #ifdef HAVE_WORKING_ANIMATION +-#include ++#include + + struct _AnimationInfo { + GTimer *timer; +-- +cgit v0.9.0.2 diff --git a/meta-gnome/recipes-gnome/gtk-engines/files/substitute-tests.patch b/meta-gnome/recipes-gnome/gtk-engines/files/substitute-tests.patch new file mode 100644 index 00000000000..5c557ba6898 --- /dev/null +++ b/meta-gnome/recipes-gnome/gtk-engines/files/substitute-tests.patch @@ -0,0 +1,37 @@ +Upstream-Status: Pending + +Signed-off-by: Marko Lindqvist +diff -Nurd gtk-engines-2.20.2/configure.ac gtk-engines-2.20.2/configure.ac +--- gtk-engines-2.20.2/configure.ac 2010-10-01 15:42:37.000000000 +0300 ++++ gtk-engines-2.20.2/configure.ac 2013-08-20 02:50:27.930510565 +0300 +@@ -166,6 +166,9 @@ + + AC_SUBST(DEVELOPMENT_CFLAGS) + ++AC_SUBST([exported_symbols_tests], [[$(EXPORTED_SYMBOLS_TESTS)]]) ++AC_SUBST([torture_test_tests], [[$(TORTURE_TEST_TESTS)]]) ++ + AM_CONFIG_HEADER([engines/support/config.h]) + + AC_CONFIG_FILES([ +diff -Nurd gtk-engines-2.20.2/test/Makefile.am gtk-engines-2.20.2/test/Makefile.am +--- gtk-engines-2.20.2/test/Makefile.am 2010-09-19 18:18:21.000000000 +0300 ++++ gtk-engines-2.20.2/test/Makefile.am 2013-08-20 02:50:36.842510865 +0300 +@@ -66,7 +66,7 @@ + # Prefix with exported_ + EXPORTED_SYMBOLS_TESTS = $(patsubst %,exported_%,$(BUILD_ENGINES)) + +-TESTS += $(EXPORTED_SYMBOLS_TESTS) ++TESTS += @exported_symbols_tests@ + + + ############################################################# +@@ -88,7 +88,7 @@ + TORTURE_TEST_TESTS = torture_buildin $(patsubst %,torture_%,$(TORTURE_TEST_ENGINES)) + + # Add TORTURE_TEST_ENGINES to list of tests +-TESTS += $(TORTURE_TEST_TESTS) ++TESTS += @torture_test_tests@ + + # Possible other tests: + # - An extensive theme switch tests that loads/unloads the engine diff --git a/meta-gnome/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb b/meta-gnome/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb new file mode 100644 index 00000000000..83aa7496852 --- /dev/null +++ b/meta-gnome/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb @@ -0,0 +1,55 @@ +SUMMARY = "GTK+ theme engines" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +SECTION = "x11/base" +DEPENDS = "intltool-native gtk+ gettext-native glib-2.0-native" + +PR = "r3" + +PACKAGES += "${PN}-schemas" +PACKAGES_DYNAMIC += "^gtk-engine-.* ^gtk-theme-.*" + +RDEPENDS_gtk-theme-redmond = "gtk-engine-redmond95" +RDEPENDS_gtk-theme-metal = "gtk-engine-metal" +RDEPENDS_gtk-theme-mist = "gtk-engine-mist" +RDEPENDS_gtk-theme-crux = "gtk-engine-crux-engine" +RDEPENDS_gtk-theme-lighthouseblue = "gtk-engine-lighthouseblue" +RDEPENDS_gtk-theme-thinice = "gtk-engine-thinice" +RDEPENDS_gtk-theme-industrial = "gtk-engine-industrial" +RDEPENDS_gtk-theme-clearlooks = "gtk-engine-clearlooks" + +FILES_${PN} = "" +FILES_${PN}-dev += "${libdir}/gtk-2.0/*/engines/*.la" +FILES_${PN}-schemas = "${datadir}/gtk-engines/*.xml" + +CFLAGS_prepend = "-DHAVE_ANIMATION " + +RDEPENDS_${PN}-dev = "" + +inherit gnomebase +GNOME_COMPRESS_TYPE="bz2" + +inherit distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + +# This picks stable releases in the 2.x series (but not 2.90 onwards, +# which were GNOME 3 betas). +UPSTREAM_CHECK_REGEX = "(?P2\.([0-8]*[02468])+(\.\d+)+)" + +python populate_packages_prepend() { + engines_root = os.path.join(d.getVar('libdir'), "gtk-2.0/2.10.0/engines") + themes_root = os.path.join(d.getVar('datadir'), "themes") + + do_split_packages(d, engines_root, '^lib(.*)\.so$', 'gtk-engine-%s', 'GTK %s theme engine', extra_depends='') + do_split_packages(d, themes_root, '(.*)', 'gtk-theme-%s', 'GTK theme %s', allow_dirs=True, extra_depends='') + # TODO: mark theme packages as arch all +} + +SRC_URI += "file://glib-2.32.patch \ + file://substitute-tests.patch" +SRC_URI[archive.md5sum] = "5deb287bc6075dc21812130604c7dc4f" +SRC_URI[archive.sha256sum] = "15b680abca6c773ecb85253521fa100dd3b8549befeecc7595b10209d62d66b5" diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/0001-test-widget.c-fix-non-literal-format-string-issues.patch b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/0001-test-widget.c-fix-non-literal-format-string-issues.patch new file mode 100644 index 00000000000..6118b679a5b --- /dev/null +++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/0001-test-widget.c-fix-non-literal-format-string-issues.patch @@ -0,0 +1,31 @@ +From 0781b218beb8ba160ea223ff3d74a4fa2abf86fa Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Apr 2017 16:21:14 -0700 +Subject: [PATCH] test-widget.c: fix non-literal format string issues + +clang errors out when using -Werror=format-nonliteral +since the definition of g_strdup_vprintf() from glib-2.0 +is using va_list and clang seems to still warn where as +gcc doesn't do that for va_list arguments + +Signed-off-by: Khem Raj +--- + tests/test-widget.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test-widget.c b/tests/test-widget.c +index 46f5f4e..3f2e60f 100644 +--- a/tests/test-widget.c ++++ b/tests/test-widget.c +@@ -260,7 +260,7 @@ static const gchar *buffer_ui_description = + + /* File loading code ----------------------------------------------------------------- */ + +-static void ++static void G_GNUC_PRINTF (2, 0) + error_dialog (GtkWindow *parent, const gchar *msg, ...) + { + va_list ap; +-- +2.12.2 + diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/suppress-string-format-literal-warning.patch b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/suppress-string-format-literal-warning.patch new file mode 100644 index 00000000000..f9ae077631c --- /dev/null +++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/suppress-string-format-literal-warning.patch @@ -0,0 +1,33 @@ +Fix build error with gcc6: +../../gtksourceview-2.10.5/gtksourceview/gtksourceprintcompositor.c: In function 'strdup_strftime': +../../gtksourceview-2.10.5/gtksourceview/gtksourceprintcompositor.c:1951:3: error: format not a string literal, format string not checked [-Werror=format-nonliteral] + tmplen = strftime (tmpbuf, tmpbufsize, locale_format, tm); + ^~~~~~ + +Patch Reference: +https://git.gnome.org/browse/glib/commit/?id=0817af40e8c74c721c30f6ef482b1f53d12044c7 +https://git.gnome.org/browse/glib/commit/?id=8cdbc7fb2c8c876902e457abe46ee18a0b134486 + +Upstream-Status: Pending +Signed-off-by: Yi Zhao + +diff -Nurp gtksourceview-2.10.5.orig/gtksourceview/gtksourceprintcompositor.c gtksourceview-2.10.5/gtksourceview/gtksourceprintcompositor.c +--- gtksourceview-2.10.5.orig/gtksourceview/gtksourceprintcompositor.c 2016-07-01 13:11:43.631173762 +0800 ++++ gtksourceview-2.10.5/gtksourceview/gtksourceprintcompositor.c 2016-07-04 13:54:18.223726343 +0800 +@@ -1913,6 +1913,8 @@ setup_pango_layouts (GtkSourcePrintCompo + * GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald */ + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wformat-nonliteral" + static gchar * + strdup_strftime (const gchar *format, const struct tm *tm) + { +@@ -1982,6 +1984,7 @@ strdup_strftime (const gchar *format, co + + return convbuf; + } ++#pragma GCC diagnostic pop + + static gchar * + evaluate_format_string (GtkSourcePrintCompositor *compositor, diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb index c745e345a83..012f8e3bc01 100644 --- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb +++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb @@ -4,18 +4,22 @@ HOMEPAGE = "http://projects.gnome.org/gtksourceview/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "gtk+ libxml2" +DEPENDS = "gtk+ libxml2 intltool-native gnome-common-native glib-2.0-native" PNAME = "gtksourceview" S = "${WORKDIR}/${PNAME}-${PV}" -inherit gnomebase lib_package gettext +inherit gnomebase lib_package gettext distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" # overrule SRC_URI from gnome.conf SRC_URI = "${GNOME_MIRROR}/${PNAME}/${@gnome_verdir("${PV}")}/${PNAME}-${PV}.tar.bz2;name=archive \ file://gtk-doc.make \ -" + file://suppress-string-format-literal-warning.patch \ + file://0001-test-widget.c-fix-non-literal-format-string-issues.patch \ + " SRC_URI[archive.md5sum] = "1219ad1694df136f126507466aeb41aa" SRC_URI[archive.sha256sum] = "c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e" diff --git a/meta-gnome/recipes-gnome/gvfs/files/0001-Revert-Respect-UDISKS_AUTOMOUNT_HINT-available-in-re.patch b/meta-gnome/recipes-gnome/gvfs/files/0001-Revert-Respect-UDISKS_AUTOMOUNT_HINT-available-in-re.patch deleted file mode 100644 index a5c65567110..00000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0001-Revert-Respect-UDISKS_AUTOMOUNT_HINT-available-in-re.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 1b9ceef87405296adccdadc9528d4cbb2bc51b76 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 2 May 2013 13:27:16 +0200 -Subject: [PATCH] Revert "Respect UDISKS_AUTOMOUNT_HINT available in recent - udisks and gnome-disk-utility" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit 493ee806eba214a748d064b43c10882d76ee1492. - -AFAICS was the requirement for gnome-disk-utility V3 for a minor functionality change. - -Upstream-Status: Inappropriate [related to missing gnome3 support] - -Signed-off-by: Andreas Müller ---- - configure.ac | 2 +- - monitor/gdu/ggduvolume.c | 9 --------- - 2 files changed, 1 insertions(+), 10 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 601e994..377770e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -205,7 +205,7 @@ AC_ARG_ENABLE(gdu, AS_HELP_STRING([--disable-gdu],[build without GDU volume moni - msg_gdu=no - GDU_LIBS= - GDU_CFLAGS= --GDU_REQUIRED=3.0.2 -+GDU_REQUIRED=2.29.0 - - if test "x$enable_gdu" != "xno"; then - PKG_CHECK_EXISTS([gdu >= $GDU_REQUIRED], msg_gdu=yes) -diff --git a/monitor/gdu/ggduvolume.c b/monitor/gdu/ggduvolume.c -index eb15d22..0665b7a 100644 ---- a/monitor/gdu/ggduvolume.c -+++ b/monitor/gdu/ggduvolume.c -@@ -429,15 +429,6 @@ update_volume (GGduVolume *volume) - g_free (activation_uri); - } - -- /* if there's an automount hint, use it */ -- if (device != NULL) -- { -- if (g_strcmp0 (gdu_device_get_automount_hint (device), "always") == 0) -- volume->should_automount = TRUE; -- else if (g_strcmp0 (gdu_device_get_automount_hint (device), "never") == 0) -- volume->should_automount = FALSE; -- } -- - if (pool != NULL) - g_object_unref (pool); - if (device != NULL) --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/0002-Adapt-to-GLib-2.31-deprecations-and-thread-API-chang.patch b/meta-gnome/recipes-gnome/gvfs/files/0002-Adapt-to-GLib-2.31-deprecations-and-thread-API-chang.patch deleted file mode 100644 index 0aa9271150d..00000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0002-Adapt-to-GLib-2.31-deprecations-and-thread-API-chang.patch +++ /dev/null @@ -1,599 +0,0 @@ -From bd014bd8a442cae12aace7deb6e6a4d21ac3dd0e Mon Sep 17 00:00:00 2001 -From: Matthias Clasen -Date: Fri, 21 Oct 2011 14:15:09 +0200 -Subject: [PATCH] Adapt to GLib 2.31 deprecations and thread API changes - -GStaticMutex and GStaticRWLock have been replaced by GMutex -and GRWLock, and g_thread_init() is no longer needed. - -https://bugzilla.gnome.org/show_bug.cgi?id=661148 - -Upstream-Status: Backport - -Signed-off-by: Andreas Müller ---- - client/gdaemonvfs.c | 5 +- - client/gvfsdaemondbus.c | 15 ++++--- - client/gvfsfusedaemon.c | 1 - - common/gmounttracker.c | 43 ++++++------------ - configure.ac | 2 +- - daemon/daemon-main.c | 1 - - daemon/gvfsdaemonutils.c | 8 ++-- - daemon/main.c | 2 - - metadata/metatree.c | 60 +++++++++++++------------- - monitor/proxy/gvfsproxyvolumemonitordaemon.c | 1 - - 10 files changed, 60 insertions(+), 78 deletions(-) - -diff --git a/client/gdaemonvfs.c b/client/gdaemonvfs.c -index 0f021b9..ae17c3c 100644 ---- a/client/gdaemonvfs.c -+++ b/client/gdaemonvfs.c -@@ -298,9 +298,8 @@ g_daemon_vfs_init (GDaemonVfs *vfs) - - bindtextdomain (GETTEXT_PACKAGE, GVFS_LOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); -- -- if (g_thread_supported ()) -- dbus_threads_init_default (); -+ -+ dbus_threads_init_default (); - - vfs->async_bus = dbus_bus_get_private (DBUS_BUS_SESSION, NULL); - -diff --git a/client/gvfsdaemondbus.c b/client/gvfsdaemondbus.c -index f32a6f8..2cfd2e6 100644 ---- a/client/gvfsdaemondbus.c -+++ b/client/gvfsdaemondbus.c -@@ -53,7 +53,10 @@ typedef struct { - static gint32 vfs_data_slot = -1; - static GOnce once_init_dbus = G_ONCE_INIT; - --static GStaticPrivate local_connections = G_STATIC_PRIVATE_INIT; -+typedef struct _ThreadLocalConnections ThreadLocalConnections; -+static void free_local_connections (ThreadLocalConnections *local); -+ -+static GPrivate local_connections = G_PRIVATE_INIT((GDestroyNotify)free_local_connections); - - /* dbus id -> async connection */ - static GHashTable *async_map = NULL; -@@ -862,10 +865,10 @@ _g_vfs_daemon_call_sync (DBusMessage *message, - * get per-thread synchronous dbus connections * - *************************************************************************/ - --typedef struct { -+struct _ThreadLocalConnections { - GHashTable *connections; - DBusConnection *session_bus; --} ThreadLocalConnections; -+}; - - static void - free_mount_connection (DBusConnection *conn) -@@ -891,7 +894,7 @@ invalidate_local_connection (const char *dbus_id, - - _g_daemon_vfs_invalidate_dbus_id (dbus_id); - -- local = g_static_private_get (&local_connections); -+ local = g_private_get (&local_connections); - if (local) - g_hash_table_remove (local->connections, dbus_id); - -@@ -916,13 +919,13 @@ _g_dbus_connection_get_sync (const char *dbus_id, - - g_once (&once_init_dbus, vfs_dbus_init, NULL); - -- local = g_static_private_get (&local_connections); -+ local = g_private_get (&local_connections); - if (local == NULL) - { - local = g_new0 (ThreadLocalConnections, 1); - local->connections = g_hash_table_new_full (g_str_hash, g_str_equal, - g_free, (GDestroyNotify)free_mount_connection); -- g_static_private_set (&local_connections, local, (GDestroyNotify)free_local_connections); -+ g_private_set (&local_connections, local); - } - - if (dbus_id == NULL) -diff --git a/client/gvfsfusedaemon.c b/client/gvfsfusedaemon.c -index a4ba32c..7cfa81c 100644 ---- a/client/gvfsfusedaemon.c -+++ b/client/gvfsfusedaemon.c -@@ -2425,7 +2425,6 @@ gint - main (gint argc, gchar *argv []) - { - g_type_init (); -- g_thread_init (NULL); - - return fuse_main (argc, argv, &vfs_oper, NULL /* user data */); - } -diff --git a/common/gmounttracker.c b/common/gmounttracker.c -index 519cd47..135a2b2 100644 ---- a/common/gmounttracker.c -+++ b/common/gmounttracker.c -@@ -49,7 +49,7 @@ struct _GMountTracker - { - GObject parent_instance; - -- GMutex *lock; -+ GMutex lock; - GList *mounts; - DBusConnection *connection; - }; -@@ -258,8 +258,7 @@ g_mount_tracker_finalize (GObject *object) - - tracker = G_MOUNT_TRACKER (object); - -- if (tracker->lock) -- g_mutex_free (tracker->lock); -+ g_mutex_clear (&tracker->lock); - - g_list_foreach (tracker->mounts, - (GFunc)g_mount_info_unref, NULL); -@@ -382,21 +381,18 @@ static void - g_mount_tracker_add_mount (GMountTracker *tracker, - GMountInfo *info) - { -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - /* Don't add multiple times */ - if (g_mount_tracker_find (tracker, info)) - { -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - return; - } - - tracker->mounts = g_list_prepend (tracker->mounts, g_mount_info_ref (info)); - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - g_signal_emit (tracker, signals[MOUNTED], 0, info); - } -@@ -408,16 +404,14 @@ g_mount_tracker_remove_mount (GMountTracker *tracker, - GList *l; - GMountInfo *old_info; - -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - l = g_mount_tracker_find (tracker, info); - - /* Don't remove multiple times */ - if (l == NULL) - { -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - return; - } - -@@ -425,8 +419,7 @@ g_mount_tracker_remove_mount (GMountTracker *tracker, - - tracker->mounts = g_list_delete_link (tracker->mounts, l); - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - g_signal_emit (tracker, signals[UNMOUNTED], 0, old_info); - g_mount_info_unref (old_info); -@@ -548,8 +541,6 @@ init_connection (GMountTracker *tracker) - static void - g_mount_tracker_init (GMountTracker *tracker) - { -- if (g_thread_supported ()) -- tracker->lock = g_mutex_new (); - } - - -@@ -588,8 +579,7 @@ g_mount_tracker_list_mounts (GMountTracker *tracker) - GList *res, *l; - GMountInfo *copy; - -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - res = NULL; - for (l = tracker->mounts; l != NULL; l = l->next) -@@ -598,8 +588,7 @@ g_mount_tracker_list_mounts (GMountTracker *tracker) - res = g_list_prepend (res, copy); - } - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - return g_list_reverse (res); - } -@@ -611,8 +600,7 @@ g_mount_tracker_find_by_mount_spec (GMountTracker *tracker, - GList *l; - GMountInfo *info, *found; - -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - found = NULL; - for (l = tracker->mounts; l != NULL; l = l->next) -@@ -626,8 +614,7 @@ g_mount_tracker_find_by_mount_spec (GMountTracker *tracker, - } - } - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - return found; - } -@@ -641,8 +628,7 @@ g_mount_tracker_has_mount_spec (GMountTracker *tracker, - GMountInfo *info; - gboolean found; - -- if (tracker->lock) -- g_mutex_lock (tracker->lock); -+ g_mutex_lock (&tracker->lock); - - found = FALSE; - for (l = tracker->mounts; l != NULL; l = l->next) -@@ -656,8 +642,7 @@ g_mount_tracker_has_mount_spec (GMountTracker *tracker, - } - } - -- if (tracker->lock) -- g_mutex_unlock (tracker->lock); -+ g_mutex_unlock (&tracker->lock); - - return found; - } -diff --git a/configure.ac b/configure.ac -index ee2f90f..be0c6a1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -46,7 +46,7 @@ GTK_DOC_CHECK - DISTCHECK_CONFIGURE_FLAGS="--enable-gtk-doc" - AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) - --PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.29.14 gthread-2.0 gobject-2.0 gmodule-no-export-2.0 gio-unix-2.0 gio-2.0 ) -+PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.31.0 gobject-2.0 gmodule-no-export-2.0 gio-unix-2.0 gio-2.0 ) - - PKG_CHECK_MODULES(DBUS, dbus-1) - -diff --git a/daemon/daemon-main.c b/daemon/daemon-main.c -index ef9025c..ff2bfde 100644 ---- a/daemon/daemon-main.c -+++ b/daemon/daemon-main.c -@@ -63,7 +63,6 @@ daemon_init (void) - textdomain (GETTEXT_PACKAGE); - - dbus_threads_init_default (); -- g_thread_init (NULL); - g_type_init (); - - g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, log_debug, NULL); -diff --git a/daemon/gvfsdaemonutils.c b/daemon/gvfsdaemonutils.c -index f03d4b2..1efcf87 100644 ---- a/daemon/gvfsdaemonutils.c -+++ b/daemon/gvfsdaemonutils.c -@@ -41,7 +41,7 @@ - #include "gvfsdaemonprotocol.h" - - static gint32 extra_fd_slot = -1; --static GStaticMutex extra_lock = G_STATIC_MUTEX_INIT; -+static GMutex extra_lock; - - typedef struct { - int extra_fd; -@@ -93,7 +93,7 @@ dbus_connection_send_fd (DBusConnection *connection, - return FALSE; - } - -- g_static_mutex_lock (&extra_lock); -+ g_mutex_lock (&extra_lock); - - if (_g_socket_send_fd (extra->extra_fd, fd) == -1) - { -@@ -103,13 +103,13 @@ dbus_connection_send_fd (DBusConnection *connection, - g_io_error_from_errno (errsv), - _("Error sending file descriptor: %s"), - g_strerror (errsv)); -- g_static_mutex_unlock (&extra_lock); -+ g_mutex_unlock (&extra_lock); - return FALSE; - } - - *fd_id = extra->fd_count++; - -- g_static_mutex_unlock (&extra_lock); -+ g_mutex_unlock (&extra_lock); - - return TRUE; - } -diff --git a/daemon/main.c b/daemon/main.c -index 4703562..2b2d549 100644 ---- a/daemon/main.c -+++ b/daemon/main.c -@@ -52,8 +52,6 @@ main (int argc, char *argv[]) - bindtextdomain (GETTEXT_PACKAGE, GVFS_LOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); -- -- g_thread_init (NULL); - - #ifdef SIGPIPE - signal (SIGPIPE, SIG_IGN); -diff --git a/metadata/metatree.c b/metadata/metatree.c -index 3420ad0..850866e 100644 ---- a/metadata/metatree.c -+++ b/metadata/metatree.c -@@ -68,7 +68,7 @@ - - #define KEY_IS_LIST_MASK (1<<31) - --static GStaticRWLock metatree_lock = G_STATIC_RW_LOCK_INIT; -+static GRWLock metatree_lock; - - typedef enum { - JOURNAL_OP_SET_KEY, -@@ -591,7 +591,7 @@ meta_tree_lookup_by_name (const char *name, - MetaTree * - meta_tree_ref (MetaTree *tree) - { -- g_atomic_int_exchange_and_add ((int *)&tree->ref_count, 1); -+ g_atomic_int_inc ((int *)&tree->ref_count); - return tree; - } - -@@ -672,17 +672,17 @@ meta_tree_refresh (MetaTree *tree) - { - gboolean needs_refresh; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - needs_refresh = - meta_tree_needs_rereading (tree) || - meta_tree_has_new_journal_entries (tree); -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - - if (needs_refresh) - { -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - meta_tree_refresh_locked (tree); -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - } - } - -@@ -1468,7 +1468,7 @@ meta_tree_lookup_key_type (MetaTree *tree, - MetaKeyType type; - gpointer value; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - new_path = meta_journal_reverse_map_path_and_key (tree->journal, - path, -@@ -1492,7 +1492,7 @@ meta_tree_lookup_key_type (MetaTree *tree, - type = META_KEY_TYPE_STRING; - - out: -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - return type; - } - -@@ -1506,7 +1506,7 @@ meta_tree_get_last_changed (MetaTree *tree, - gpointer value; - guint64 res, mtime; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - new_path = meta_journal_reverse_map_path_and_key (tree->journal, - path, -@@ -1526,7 +1526,7 @@ meta_tree_get_last_changed (MetaTree *tree, - g_free (new_path); - - out: -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - - return res; - } -@@ -1543,7 +1543,7 @@ meta_tree_lookup_string (MetaTree *tree, - char *new_path; - char *res; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - new_path = meta_journal_reverse_map_path_and_key (tree->journal, - path, -@@ -1572,7 +1572,7 @@ meta_tree_lookup_string (MetaTree *tree, - res = g_strdup (verify_string (tree, ent->value)); - - out: -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - - return res; - } -@@ -1621,7 +1621,7 @@ meta_tree_lookup_stringv (MetaTree *tree, - char **res; - guint32 num_strings, i; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - new_path = meta_journal_reverse_map_path_and_key (tree->journal, - path, -@@ -1658,7 +1658,7 @@ meta_tree_lookup_stringv (MetaTree *tree, - } - - out: -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - - return res; - } -@@ -1876,7 +1876,7 @@ meta_tree_enumerate_dir (MetaTree *tree, - MetaFileDir *dir; - char *res_path; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - data.children = children = - g_hash_table_new_full (g_str_hash, -@@ -1922,7 +1922,7 @@ meta_tree_enumerate_dir (MetaTree *tree, - out: - g_free (res_path); - g_hash_table_destroy (children); -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - } - - typedef struct { -@@ -2116,7 +2116,7 @@ meta_tree_enumerate_keys (MetaTree *tree, - GHashTableIter iter; - char *res_path; - -- g_static_rw_lock_reader_lock (&metatree_lock); -+ g_rw_lock_reader_lock (&metatree_lock); - - keydata.keys = keys = - g_hash_table_new_full (g_str_hash, -@@ -2170,7 +2170,7 @@ meta_tree_enumerate_keys (MetaTree *tree, - out: - g_free (res_path); - g_hash_table_destroy (keys); -- g_static_rw_lock_reader_unlock (&metatree_lock); -+ g_rw_lock_reader_unlock (&metatree_lock); - } - - -@@ -2371,9 +2371,9 @@ meta_tree_flush (MetaTree *tree) - { - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - res = meta_tree_flush_locked (tree); -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2386,7 +2386,7 @@ meta_tree_unset (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2412,7 +2412,7 @@ meta_tree_unset (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2426,7 +2426,7 @@ meta_tree_set_string (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2452,7 +2452,7 @@ meta_tree_set_string (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2466,7 +2466,7 @@ meta_tree_set_stringv (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2492,7 +2492,7 @@ meta_tree_set_stringv (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2504,7 +2504,7 @@ meta_tree_remove (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2530,7 +2530,7 @@ meta_tree_remove (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -@@ -2543,7 +2543,7 @@ meta_tree_copy (MetaTree *tree, - guint64 mtime; - gboolean res; - -- g_static_rw_lock_writer_lock (&metatree_lock); -+ g_rw_lock_writer_lock (&metatree_lock); - - if (tree->journal == NULL || - !tree->journal->journal_valid) -@@ -2569,7 +2569,7 @@ meta_tree_copy (MetaTree *tree, - g_string_free (entry, TRUE); - - out: -- g_static_rw_lock_writer_unlock (&metatree_lock); -+ g_rw_lock_writer_unlock (&metatree_lock); - return res; - } - -diff --git a/monitor/proxy/gvfsproxyvolumemonitordaemon.c b/monitor/proxy/gvfsproxyvolumemonitordaemon.c -index 4be64e0..fe2f1a7 100644 ---- a/monitor/proxy/gvfsproxyvolumemonitordaemon.c -+++ b/monitor/proxy/gvfsproxyvolumemonitordaemon.c -@@ -2050,7 +2050,6 @@ g_vfs_proxy_volume_monitor_daemon_init (void) - textdomain (GETTEXT_PACKAGE); - - dbus_threads_init_default (); -- g_thread_init (NULL); - g_type_init (); - } - --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/0003-Adapt-to-glib-mutex-API-changes.patch b/meta-gnome/recipes-gnome/gvfs/files/0003-Adapt-to-glib-mutex-API-changes.patch deleted file mode 100644 index bb5d9c23db9..00000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0003-Adapt-to-glib-mutex-API-changes.patch +++ /dev/null @@ -1,2454 +0,0 @@ -From 185c4ac9c83aac035d2b49ecd95130aa5167e7c2 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Tue, 25 Oct 2011 18:41:47 +0200 -Subject: [PATCH 1/2] Adapt to glib mutex API changes - -A continuation to https://bugzilla.gnome.org/show_bug.cgi?id=661148 - -Upstream-Status: Backport - -Signed-off-by: Andreas Müller ---- - client/gvfsfusedaemon.c | 80 ++++++++--------- - common/gmountsource.c | 60 ++++++------- - daemon/gvfsbackendafc.c | 22 ++--- - daemon/gvfsbackendftp.c | 12 +-- - daemon/gvfsbackendftp.h | 4 +- - daemon/gvfsbackendgphoto2.c | 112 +++++++++++------------- - daemon/gvfsbackendnetwork.c | 10 +-- - daemon/gvfsbackendobexftp.c | 187 ++++++++++++++++++++-------------------- - daemon/gvfsbackendsmbbrowse.c | 39 ++++----- - daemon/gvfsdaemon.c | 33 ++++---- - daemon/gvfsftpdircache.c | 21 ++--- - daemon/gvfsftptask.c | 33 ++++---- - daemon/trashlib/trashexpunge.c | 33 ++++---- - daemon/trashlib/trashitem.c | 36 ++++---- - 14 files changed, 325 insertions(+), 357 deletions(-) - -diff --git a/client/gvfsfusedaemon.c b/client/gvfsfusedaemon.c -index 7cfa81c..c986f69 100644 ---- a/client/gvfsfusedaemon.c -+++ b/client/gvfsfusedaemon.c -@@ -69,7 +69,7 @@ typedef enum { - typedef struct { - gint refcount; - -- GMutex *mutex; -+ GMutex mutex; - gchar *path; - FileOp op; - gpointer stream; -@@ -84,13 +84,13 @@ static GVolumeMonitor *volume_monitor = NULL; - - /* Contains pointers to MountRecord */ - static GList *mount_list = NULL; --static GMutex *mount_list_mutex; -+static GMutex mount_list_mutex = {NULL}; - - static time_t daemon_creation_time; - static uid_t daemon_uid; - static gid_t daemon_gid; - --static GStaticMutex global_mutex = G_STATIC_MUTEX_INIT; -+static GMutex global_mutex = {NULL}; - static GHashTable *global_path_to_fh_map = NULL; - static GHashTable *global_active_fh_map = NULL; - -@@ -212,7 +212,6 @@ file_handle_new (const gchar *path) - - file_handle = g_new0 (FileHandle, 1); - file_handle->refcount = 1; -- file_handle->mutex = g_mutex_new (); - file_handle->op = FILE_OP_NONE; - file_handle->path = g_strdup (path); - -@@ -235,7 +234,7 @@ file_handle_unref (FileHandle *file_handle) - { - gint refs; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - /* Test again, since e.g. get_file_handle_for_path() might have - * snatched the global mutex and revived the file handle between -@@ -246,7 +245,7 @@ file_handle_unref (FileHandle *file_handle) - if (refs == 0) - g_hash_table_remove (global_path_to_fh_map, file_handle->path); - -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - } - } - -@@ -283,7 +282,7 @@ file_handle_free (FileHandle *file_handle) - g_hash_table_remove (global_active_fh_map, file_handle); - - file_handle_close_stream (file_handle); -- g_mutex_free (file_handle->mutex); -+ g_mutex_clear (&file_handle->mutex); - g_free (file_handle->path); - g_free (file_handle); - } -@@ -293,14 +292,14 @@ get_file_handle_for_path (const gchar *path) - { - FileHandle *fh; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - fh = g_hash_table_lookup (global_path_to_fh_map, path); - - if (fh) - file_handle_ref (fh); - -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - return fh; - } - -@@ -309,7 +308,7 @@ get_or_create_file_handle_for_path (const gchar *path) - { - FileHandle *fh; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - fh = g_hash_table_lookup (global_path_to_fh_map, path); - -@@ -323,7 +322,7 @@ get_or_create_file_handle_for_path (const gchar *path) - g_hash_table_insert (global_path_to_fh_map, fh->path, fh); - } - -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - return fh; - } - -@@ -332,7 +331,7 @@ get_file_handle_from_info (struct fuse_file_info *fi) - { - FileHandle *fh; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - fh = GET_FILE_HANDLE (fi); - -@@ -343,7 +342,7 @@ get_file_handle_from_info (struct fuse_file_info *fi) - if (fh) - file_handle_ref (fh); - -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - return fh; - } - -@@ -353,7 +352,7 @@ reindex_file_handle_for_path (const gchar *old_path, const gchar *new_path) - gchar *old_path_internal; - FileHandle *fh; - -- g_static_mutex_lock (&global_mutex); -+ g_mutex_lock (&global_mutex); - - if (!g_hash_table_lookup_extended (global_path_to_fh_map, old_path, - (gpointer *) &old_path_internal, -@@ -368,7 +367,7 @@ reindex_file_handle_for_path (const gchar *old_path, const gchar *new_path) - g_hash_table_insert (global_path_to_fh_map, fh->path, fh); - - out: -- g_static_mutex_unlock (&global_mutex); -+ g_mutex_unlock (&global_mutex); - } - - static MountRecord * -@@ -405,13 +404,13 @@ mount_record_free (MountRecord *mount_record) - static void - mount_list_lock (void) - { -- g_mutex_lock (mount_list_mutex); -+ g_mutex_lock (&mount_list_mutex); - } - - static void - mount_list_unlock (void) - { -- g_mutex_unlock (mount_list_mutex); -+ g_mutex_unlock (&mount_list_mutex); - } - - static void -@@ -866,9 +865,9 @@ vfs_getattr (const gchar *path, struct stat *sbuf) - - if (fh != NULL) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - getattr_for_file_handle (fh, sbuf); -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - file_handle_unref (fh); - result = 0; -@@ -995,7 +994,7 @@ open_common (const gchar *path, struct fuse_file_info *fi, GFile *file, int outp - gint result; - FileHandle *fh = get_or_create_file_handle_for_path (path); - -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - SET_FILE_HANDLE (fi, fh); - -@@ -1009,7 +1008,7 @@ open_common (const gchar *path, struct fuse_file_info *fi, GFile *file, int outp - else - result = setup_input_stream (file, fh); - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - /* The added reference to the file handle is released in vfs_release() */ - return result; -@@ -1121,7 +1120,7 @@ vfs_create (const gchar *path, mode_t mode, struct fuse_file_info *fi) - - /* Success */ - -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - SET_FILE_HANDLE (fi, fh); - -@@ -1129,7 +1128,7 @@ vfs_create (const gchar *path, mode_t mode, struct fuse_file_info *fi) - fh->stream = file_output_stream; - fh->op = FILE_OP_WRITE; - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - /* The reference added to the file handle is released in vfs_release() */ - } -@@ -1285,7 +1284,7 @@ vfs_read (const gchar *path, gchar *buf, size_t size, - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - result = setup_input_stream (file, fh); - -@@ -1298,7 +1297,7 @@ vfs_read (const gchar *path, gchar *buf, size_t size, - debug_print ("vfs_read: failed to setup input_stream!\n"); - } - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - else -@@ -1413,7 +1412,7 @@ vfs_write (const gchar *path, const gchar *buf, size_t len, off_t offset, - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - result = setup_output_stream (file, fh, 0); - if (result == 0) -@@ -1421,7 +1420,7 @@ vfs_write (const gchar *path, const gchar *buf, size_t len, off_t offset, - result = write_stream (fh, buf, len, offset); - } - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - else -@@ -1453,9 +1452,9 @@ vfs_flush (const gchar *path, struct fuse_file_info *fi) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - file_handle_close_stream (fh); -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - /* get_file_handle_from_info () adds a "working ref", so release that. */ - file_handle_unref (fh); -@@ -1474,9 +1473,9 @@ vfs_fsync (const gchar *path, gint sync_data_only, struct fuse_file_info *fi) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - file_handle_close_stream (fh); -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - - /* get_file_handle_from_info () adds a "working ref", so release that. */ - file_handle_unref (fh); -@@ -1625,7 +1624,7 @@ vfs_rename (const gchar *old_path, const gchar *new_path) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - file_handle_close_stream (fh); - } - -@@ -1645,7 +1644,7 @@ vfs_rename (const gchar *old_path, const gchar *new_path) - - if (fh) - { -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - -@@ -1687,7 +1686,7 @@ vfs_unlink (const gchar *path) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - file_handle_close_stream (fh); - } - -@@ -1695,7 +1694,7 @@ vfs_unlink (const gchar *path) - - if (fh) - { -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - -@@ -1864,7 +1863,7 @@ vfs_ftruncate (const gchar *path, off_t size, struct fuse_file_info *fi) - - if (fh) - { -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - result = setup_output_stream (file, fh, 0); - -@@ -1909,7 +1908,7 @@ vfs_ftruncate (const gchar *path, off_t size, struct fuse_file_info *fi) - } - } - -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - else -@@ -1948,7 +1947,7 @@ vfs_truncate (const gchar *path, off_t size) - /* Get a file handle just to lock the path while we're working */ - fh = get_file_handle_for_path (path); - if (fh) -- g_mutex_lock (fh->mutex); -+ g_mutex_lock (&fh->mutex); - - if (size == 0) - { -@@ -1975,7 +1974,7 @@ vfs_truncate (const gchar *path, off_t size) - - if (fh) - { -- g_mutex_unlock (fh->mutex); -+ g_mutex_unlock (&fh->mutex); - file_handle_unref (fh); - } - -@@ -2315,7 +2314,6 @@ vfs_init (struct fuse_conn_info *conn) - daemon_uid = getuid (); - daemon_gid = getgid (); - -- mount_list_mutex = g_mutex_new (); - global_path_to_fh_map = g_hash_table_new_full (g_str_hash, g_str_equal, - NULL, (GDestroyNotify) file_handle_free); - global_active_fh_map = g_hash_table_new_full (g_direct_hash, g_direct_equal, -@@ -2374,7 +2372,7 @@ vfs_destroy (gpointer param) - mount_list_free (); - if (subthread_main_loop != NULL) - g_main_loop_quit (subthread_main_loop); -- g_mutex_free (mount_list_mutex); -+ g_mutex_clear (&mount_list_mutex); - g_object_unref (gvfs); - } - -diff --git a/common/gmountsource.c b/common/gmountsource.c -index d228726..af89ed2 100644 ---- a/common/gmountsource.c -+++ b/common/gmountsource.c -@@ -27,6 +27,8 @@ - #include - #include - -+#include -+ - struct _GMountSource - { - GObject parent_instance; -@@ -137,8 +139,8 @@ typedef struct AskSyncData AskSyncData; - struct AskSyncData { - - /* For sync calls */ -- GMutex *mutex; -- GCond *cond; -+ GMutex mutex; -+ GCond cond; - - /* results: */ - GAsyncResult *result; -@@ -356,9 +358,9 @@ ask_reply_sync (GObject *source_object, - data->result = g_object_ref (res); - - /* Wake up sync call thread */ -- g_mutex_lock (data->mutex); -- g_cond_signal (data->cond); -- g_mutex_unlock (data->mutex); -+ g_mutex_lock (&data->mutex); -+ g_cond_signal (&data->cond); -+ g_mutex_unlock (&data->mutex); - } - - gboolean -@@ -375,12 +377,10 @@ g_mount_source_ask_password (GMountSource *source, - GPasswordSave *password_save_out) - { - gboolean handled; -- AskSyncData data = {NULL}; -- -- data.mutex = g_mutex_new (); -- data.cond = g_cond_new (); -+ AskSyncData data; - -- g_mutex_lock (data.mutex); -+ memset (&data, 0, sizeof (data)); -+ g_mutex_lock (&data.mutex); - - - g_mount_source_ask_password_async (source, -@@ -391,11 +391,11 @@ g_mount_source_ask_password (GMountSource *source, - ask_reply_sync, - &data); - -- g_cond_wait(data.cond, data.mutex); -- g_mutex_unlock (data.mutex); -+ g_cond_wait (&data.cond, &data.mutex); -+ g_mutex_unlock (&data.mutex); - -- g_cond_free (data.cond); -- g_mutex_free (data.mutex); -+ g_cond_clear (&data.cond); -+ g_mutex_clear (&data.mutex); - - - handled = g_mount_source_ask_password_finish (source, -@@ -546,12 +546,10 @@ g_mount_source_ask_question (GMountSource *source, - { - gint choice; - gboolean handled, aborted; -- AskSyncData data = {NULL}; -+ AskSyncData data; - -- data.mutex = g_mutex_new (); -- data.cond = g_cond_new (); -- -- g_mutex_lock (data.mutex); -+ memset (&data, 0, sizeof (data)); -+ g_mutex_lock (&data.mutex); - - g_mount_source_ask_question_async (source, - message, -@@ -560,11 +558,11 @@ g_mount_source_ask_question (GMountSource *source, - ask_reply_sync, - &data); - -- g_cond_wait(data.cond, data.mutex); -- g_mutex_unlock (data.mutex); -+ g_cond_wait (&data.cond, &data.mutex); -+ g_mutex_unlock (&data.mutex); - -- g_cond_free (data.cond); -- g_mutex_free (data.mutex); -+ g_cond_clear (&data.cond); -+ g_mutex_clear (&data.mutex); - - handled = g_mount_source_ask_question_finish (source, - data.result, -@@ -841,12 +839,10 @@ g_mount_source_show_processes (GMountSource *source, - { - gint choice; - gboolean handled, aborted; -- AskSyncData data = {NULL}; -- -- data.mutex = g_mutex_new (); -- data.cond = g_cond_new (); -+ AskSyncData data; - -- g_mutex_lock (data.mutex); -+ memset (&data, 0, sizeof (data)); -+ g_mutex_lock (&data.mutex); - - g_mount_source_show_processes_async (source, - message, -@@ -856,11 +852,11 @@ g_mount_source_show_processes (GMountSource *source, - ask_reply_sync, - &data); - -- g_cond_wait (data.cond, data.mutex); -- g_mutex_unlock (data.mutex); -+ g_cond_wait (&data.cond, &data.mutex); -+ g_mutex_unlock (&data.mutex); - -- g_cond_free (data.cond); -- g_mutex_free (data.mutex); -+ g_cond_clear (&data.cond); -+ g_mutex_clear (&data.mutex); - - handled = g_mount_source_show_processes_finish (source, - data.result, -diff --git a/daemon/gvfsbackendafc.c b/daemon/gvfsbackendafc.c -index 16c8a23..84227ed 100644 ---- a/daemon/gvfsbackendafc.c -+++ b/daemon/gvfsbackendafc.c -@@ -87,7 +87,7 @@ struct _GVfsBackendAfc { - GHashTable *apps; /* hash table of AppInfo */ - instproxy_client_t inst; - sbservices_client_t sbs; -- GMutex *apps_lock; -+ GMutex apps_lock; - }; - - struct afc_error_mapping { -@@ -182,11 +182,7 @@ g_vfs_backend_afc_close_connection (GVfsBackendAfc *self) - sbservices_client_free (self->sbs); - self->sbs = NULL; - } -- if (self->apps_lock) -- { -- g_mutex_free (self->apps_lock); -- self->apps_lock = NULL; -- } -+ g_mutex_clear (&self->apps_lock); - } - g_free (self->model); - self->model = NULL; -@@ -1910,14 +1906,14 @@ g_vfs_backend_afc_enumerate (GVfsBackend *backend, - { - char *app; - -- g_mutex_lock (self->apps_lock); -+ g_mutex_lock (&self->apps_lock); - if (g_vfs_backend_load_apps (self) == FALSE) - { - g_vfs_backend_afc_check (AFC_E_INTERNAL_ERROR, G_VFS_JOB (job)); -- g_mutex_unlock (self->apps_lock); -+ g_mutex_unlock (&self->apps_lock); - return; - } -- g_mutex_unlock (self->apps_lock); -+ g_mutex_unlock (&self->apps_lock); - - app = g_vfs_backend_parse_house_arrest_path (self, TRUE, path, &new_path); - -@@ -2039,14 +2035,14 @@ g_vfs_backend_afc_query_info (GVfsBackend *backend, - { - char *app; - -- g_mutex_lock (self->apps_lock); -+ g_mutex_lock (&self->apps_lock); - if (g_vfs_backend_load_apps (self) == FALSE) - { - g_vfs_backend_afc_check (AFC_E_INTERNAL_ERROR, G_VFS_JOB (job)); -- g_mutex_unlock (self->apps_lock); -+ g_mutex_unlock (&self->apps_lock); - return; - } -- g_mutex_unlock (self->apps_lock); -+ g_mutex_unlock (&self->apps_lock); - - app = g_vfs_backend_parse_house_arrest_path (self, TRUE, path, &new_path); - -@@ -2604,8 +2600,6 @@ g_vfs_backend_afc_init (GVfsBackendAfc *self) - /* enable full debugging */ - idevice_set_debug_level (1); - } -- -- self->apps_lock = g_mutex_new (); - } - - static void -diff --git a/daemon/gvfsbackendftp.c b/daemon/gvfsbackendftp.c -index 35e0b71..3883ca3 100644 ---- a/daemon/gvfsbackendftp.c -+++ b/daemon/gvfsbackendftp.c -@@ -382,8 +382,8 @@ g_vfs_backend_ftp_finalize (GObject *object) - - /* has been cleared on unmount */ - g_assert (ftp->queue == NULL); -- g_cond_free (ftp->cond); -- g_mutex_free (ftp->mutex); -+ g_cond_clear (&ftp->cond); -+ g_mutex_clear (&ftp->mutex); - - g_free (ftp->user); - g_free (ftp->password); -@@ -395,8 +395,6 @@ g_vfs_backend_ftp_finalize (GObject *object) - static void - g_vfs_backend_ftp_init (GVfsBackendFtp *ftp) - { -- ftp->mutex = g_mutex_new (); -- ftp->cond = g_cond_new (); - } - - static void -@@ -698,7 +696,7 @@ do_unmount (GVfsBackend * backend, - GVfsBackendFtp *ftp = G_VFS_BACKEND_FTP (backend); - GVfsFtpConnection *conn; - -- g_mutex_lock (ftp->mutex); -+ g_mutex_lock (&ftp->mutex); - while ((conn = g_queue_pop_head (ftp->queue))) - { - /* FIXME: properly quit */ -@@ -706,8 +704,8 @@ do_unmount (GVfsBackend * backend, - } - g_queue_free (ftp->queue); - ftp->queue = NULL; -- g_cond_broadcast (ftp->cond); -- g_mutex_unlock (ftp->mutex); -+ g_cond_broadcast (&ftp->cond); -+ g_mutex_unlock (&ftp->mutex); - g_vfs_job_succeeded (G_VFS_JOB (job)); - } - -diff --git a/daemon/gvfsbackendftp.h b/daemon/gvfsbackendftp.h -index f5983b5..767ea35 100644 ---- a/daemon/gvfsbackendftp.h -+++ b/daemon/gvfsbackendftp.h -@@ -100,8 +100,8 @@ struct _GVfsBackendFtp - GVfsFtpDirCache * dir_cache; /* directory cache */ - - /* connection collection - accessed from gvfsftptask.c */ -- GMutex * mutex; /* mutex protecting the following variables */ -- GCond * cond; /* cond used to signal tasks waiting on the mutex */ -+ GMutex mutex; /* mutex protecting the following variables */ -+ GCond cond; /* cond used to signal tasks waiting on the mutex */ - GQueue * queue; /* queue containing the connections */ - guint connections; /* current number of connections */ - guint busy_connections; /* current number of connections being used for reads/writes */ -diff --git a/daemon/gvfsbackendgphoto2.c b/daemon/gvfsbackendgphoto2.c -index 541dafe..9a1b6d8 100644 ---- a/daemon/gvfsbackendgphoto2.c -+++ b/daemon/gvfsbackendgphoto2.c -@@ -207,7 +207,7 @@ struct _GVfsBackendGphoto2 - * - * Must only be held for very short amounts of time (e.g. no IO). - */ -- GMutex *lock; -+ GMutex lock; - - /* CACHES */ - -@@ -433,7 +433,7 @@ caches_invalidate_all (GVfsBackendGphoto2 *gphoto2_backend) - { - DEBUG ("caches_invalidate_all()"); - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - if (gphoto2_backend->dir_name_cache != NULL) - g_hash_table_remove_all (gphoto2_backend->dir_name_cache); - if (gphoto2_backend->file_name_cache != NULL) -@@ -442,7 +442,7 @@ caches_invalidate_all (GVfsBackendGphoto2 *gphoto2_backend) - g_hash_table_remove_all (gphoto2_backend->info_cache); - gphoto2_backend->capacity = -1; - gphoto2_backend->free_space = -1; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - /* ------------------------------------------------------------------------------------------------- */ -@@ -450,9 +450,9 @@ caches_invalidate_all (GVfsBackendGphoto2 *gphoto2_backend) - static void - caches_invalidate_free_space (GVfsBackendGphoto2 *gphoto2_backend) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->free_space = -1; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - /* ------------------------------------------------------------------------------------------------- */ -@@ -461,11 +461,11 @@ static void - caches_invalidate_dir (GVfsBackendGphoto2 *gphoto2_backend, const char *dir) - { - DEBUG ("caches_invalidate_dir() for '%s'", dir); -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - g_hash_table_remove (gphoto2_backend->dir_name_cache, dir); - g_hash_table_remove (gphoto2_backend->file_name_cache, dir); - g_hash_table_remove (gphoto2_backend->info_cache, dir); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - /* ------------------------------------------------------------------------------------------------- */ -@@ -477,14 +477,14 @@ caches_invalidate_file (GVfsBackendGphoto2 *gphoto2_backend, const char *dir, co - - full_name = g_build_filename (dir, name, NULL); - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - /* this is essentially: caches_invalidate_dir (gphoto2_backend, dir); */ - g_hash_table_remove (gphoto2_backend->dir_name_cache, dir); - g_hash_table_remove (gphoto2_backend->file_name_cache, dir); - g_hash_table_remove (gphoto2_backend->info_cache, dir); - - g_hash_table_remove (gphoto2_backend->info_cache, full_name); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - DEBUG ("caches_invalidate_file() for '%s'", full_name); - g_free (full_name); -@@ -618,11 +618,7 @@ release_device (GVfsBackendGphoto2 *gphoto2_backend) - g_list_free (gphoto2_backend->file_monitor_proxies); - gphoto2_backend->file_monitor_proxies = NULL; - -- if (gphoto2_backend->lock != NULL) -- { -- g_mutex_free (gphoto2_backend->lock); -- gphoto2_backend->lock = NULL; -- } -+ g_mutex_clear (&gphoto2_backend->lock); - gphoto2_backend->capacity = -1; - gphoto2_backend->free_space = -1; - } -@@ -1099,17 +1095,17 @@ file_get_info (GVfsBackendGphoto2 *gphoto2_backend, - - - /* first look up cache */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - cached_info = g_hash_table_lookup (gphoto2_backend->info_cache, full_path); - if (cached_info != NULL) - { - g_file_info_copy_into (cached_info, info); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - DEBUG (" Using cached info %p for '%s'", cached_info, full_path); - ret = TRUE; - goto out; - } -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - if (try_cache_only) - goto out; -@@ -1307,9 +1303,9 @@ file_get_info (GVfsBackendGphoto2 *gphoto2_backend, - #ifndef DEBUG_NO_CACHING - cached_info = g_file_info_dup (info); - DEBUG (" Storing cached info %p for '%s'", cached_info, full_path); -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - g_hash_table_insert (gphoto2_backend->info_cache, g_strdup (full_path), cached_info); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - #endif - } - -@@ -1716,8 +1712,6 @@ do_mount (GVfsBackend *backend, - - gphoto2_backend->free_space = -1; - -- gphoto2_backend->lock = g_mutex_new (); -- - gphoto2_mount_spec = g_mount_spec_new ("gphoto2"); - g_mount_spec_set (gphoto2_mount_spec, "host", host); - g_vfs_backend_set_mount_spec (backend, gphoto2_mount_spec); -@@ -1860,9 +1854,9 @@ do_open_for_read_real (GVfsBackend *backend, - DEBUG (" data=%p size=%ld handle=%p get_preview=%d", - read_handle->data, read_handle->size, read_handle, get_preview); - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->open_read_handles = g_list_prepend (gphoto2_backend->open_read_handles, read_handle); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - read_handle->cursor = 0; - -@@ -2008,9 +2002,9 @@ do_close_read (GVfsBackend *backend, - - DEBUG ("close_read() handle=%p", handle); - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->open_read_handles = g_list_remove (gphoto2_backend->open_read_handles, read_handle); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - free_read_handle (read_handle); - -@@ -2140,11 +2134,11 @@ do_enumerate (GVfsBackend *backend, - g_free (as_name); - - /* first, list the folders */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - list = g_hash_table_lookup (gphoto2_backend->dir_name_cache, filename); - if (list == NULL) - { -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - ensure_not_dirty (gphoto2_backend); - -@@ -2169,7 +2163,7 @@ do_enumerate (GVfsBackend *backend, - DEBUG (" Using cached dir list for dir '%s'", filename); - using_cached_dir_list = TRUE; - gp_list_ref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - for (n = 0; n < gp_list_count (list); n++) - { -@@ -2193,25 +2187,25 @@ do_enumerate (GVfsBackend *backend, - if (!using_cached_dir_list) - { - #ifndef DEBUG_NO_CACHING -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - g_hash_table_insert (gphoto2_backend->dir_name_cache, g_strdup (filename), list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - #endif - } - else - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - - /* then list the files in each folder */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - list = g_hash_table_lookup (gphoto2_backend->file_name_cache, filename); - if (list == NULL) - { -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - ensure_not_dirty (gphoto2_backend); - - DEBUG (" Generating file list for dir '%s'", filename); -@@ -2235,7 +2229,7 @@ do_enumerate (GVfsBackend *backend, - DEBUG (" Using cached file list for dir '%s'", filename); - using_cached_file_list = TRUE; - gp_list_ref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - for (n = 0; n < gp_list_count (list); n++) - { -@@ -2260,16 +2254,16 @@ do_enumerate (GVfsBackend *backend, - if (!using_cached_file_list) - { - #ifndef DEBUG_NO_CACHING -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - g_hash_table_insert (gphoto2_backend->file_name_cache, g_strdup (filename), list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - #endif - } - else - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - } - - /* and we're done */ -@@ -2307,15 +2301,15 @@ try_enumerate (GVfsBackend *backend, - DEBUG ("try_enumerate (%s)", given_filename); - - /* first, list the folders */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - list = g_hash_table_lookup (gphoto2_backend->dir_name_cache, filename); - if (list == NULL) - { -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - goto error_not_cached; - } - gp_list_ref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - for (n = 0; n < gp_list_count (list); n++) - { - gp_list_get_name (list, n, &name); -@@ -2323,27 +2317,27 @@ try_enumerate (GVfsBackend *backend, - info = g_file_info_new (); - if (!file_get_info (gphoto2_backend, filename, name, info, &error, TRUE)) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - goto error_not_cached; - } - l = g_list_append (l, info); - } -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - /* then list the files in each folder */ -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - list = g_hash_table_lookup (gphoto2_backend->file_name_cache, filename); - if (list == NULL) - { -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - goto error_not_cached; - } - gp_list_ref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - for (n = 0; n < gp_list_count (list); n++) - { - gp_list_get_name (list, n, &name); -@@ -2352,16 +2346,16 @@ try_enumerate (GVfsBackend *backend, - info = g_file_info_new (); - if (!file_get_info (gphoto2_backend, filename, name, info, &error, TRUE)) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - goto error_not_cached; - } - l = g_list_append (l, info); - } -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gp_list_unref (list); -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - /* and we're done */ - -@@ -2412,9 +2406,9 @@ do_query_fs_info (GVfsBackend *backend, - /* for now we only support a single storage head */ - if (storage_info[0].fields & GP_STORAGEINFO_MAXCAPACITY) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->capacity = storage_info[0].capacitykbytes * 1024; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - g_file_info_set_attribute_uint64 (info, - G_FILE_ATTRIBUTE_FILESYSTEM_SIZE, - (guint64) gphoto2_backend->capacity); -@@ -2422,9 +2416,9 @@ do_query_fs_info (GVfsBackend *backend, - - if (storage_info[0].fields & GP_STORAGEINFO_FREESPACEKBYTES) - { -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - gphoto2_backend->free_space = storage_info[0].freekbytes * 1024; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - g_file_info_set_attribute_uint64 (info, - G_FILE_ATTRIBUTE_FILESYSTEM_FREE, - (guint64) gphoto2_backend->free_space); -@@ -2454,10 +2448,10 @@ try_query_fs_info (GVfsBackend *backend, - - ret = FALSE; - -- g_mutex_lock (gphoto2_backend->lock); -+ g_mutex_lock (&gphoto2_backend->lock); - free_space = gphoto2_backend->free_space; - capacity = gphoto2_backend->capacity; -- g_mutex_unlock (gphoto2_backend->lock); -+ g_mutex_unlock (&gphoto2_backend->lock); - - if (free_space == -1 || capacity == -1) - { -diff --git a/daemon/gvfsbackendnetwork.c b/daemon/gvfsbackendnetwork.c -index 80273e5..3c38514 100644 ---- a/daemon/gvfsbackendnetwork.c -+++ b/daemon/gvfsbackendnetwork.c -@@ -65,7 +65,7 @@ struct _GVfsBackendNetwork - gboolean have_smb; - char *current_workgroup; - GFileMonitor *smb_monitor; -- GMutex *smb_mount_lock; -+ GMutex smb_mount_lock; - GVfsJobMount *mount_job; - - /* DNS-SD Stuff */ -@@ -433,7 +433,7 @@ mount_smb_done_cb (GObject *object, - g_vfs_job_succeeded (G_VFS_JOB (backend->mount_job)); - g_object_unref (backend->mount_job); - } -- g_mutex_unlock (backend->smb_mount_lock); -+ g_mutex_unlock (&backend->smb_mount_lock); - } - - static void -@@ -442,7 +442,7 @@ remount_smb (GVfsBackendNetwork *backend, GVfsJobMount *job) - GFile *file; - char *workgroup; - -- if (! g_mutex_trylock (backend->smb_mount_lock)) -+ if (! g_mutex_trylock (&backend->smb_mount_lock)) - /* Do nothing when the mount operation is already active */ - return; - -@@ -769,8 +769,6 @@ g_vfs_backend_network_init (GVfsBackendNetwork *network_backend) - const char * const* supported_vfs; - int i; - -- network_backend->smb_mount_lock = g_mutex_new (); -- - supported_vfs = g_vfs_get_supported_uri_schemes (g_vfs_get_default ()); - - network_backend->have_smb = FALSE; -@@ -836,7 +834,7 @@ g_vfs_backend_network_finalize (GObject *object) - GVfsBackendNetwork *backend; - backend = G_VFS_BACKEND_NETWORK (object); - -- g_mutex_free (backend->smb_mount_lock); -+ g_mutex_clear (&backend->smb_mount_lock); - g_mount_spec_unref (backend->mount_spec); - g_object_unref (backend->root_monitor); - g_object_unref (backend->workgroup_icon); -diff --git a/daemon/gvfsbackendobexftp.c b/daemon/gvfsbackendobexftp.c -index 9630df8..62fe32f 100644 ---- a/daemon/gvfsbackendobexftp.c -+++ b/daemon/gvfsbackendobexftp.c -@@ -85,8 +85,8 @@ struct _GVfsBackendObexftp - DBusGProxy *session_proxy; - - /* Use for the async notifications and errors */ -- GCond *cond; -- GMutex *mutex; -+ GCond cond; -+ GMutex mutex; - int status; - gboolean doing_io; - GError *error; -@@ -494,8 +494,8 @@ g_vfs_backend_obexftp_finalize (GObject *object) - - if (backend->session_proxy != NULL) - g_object_unref (backend->session_proxy); -- g_mutex_free (backend->mutex); -- g_cond_free (backend->cond); -+ g_mutex_clear (&backend->mutex); -+ g_cond_clear (&backend->cond); - - if (G_OBJECT_CLASS (g_vfs_backend_obexftp_parent_class)->finalize) - (*G_OBJECT_CLASS (g_vfs_backend_obexftp_parent_class)->finalize) (object); -@@ -530,8 +530,6 @@ g_vfs_backend_obexftp_init (GVfsBackendObexftp *backend) - return; - } - -- backend->mutex = g_mutex_new (); -- backend->cond = g_cond_new (); - backend->manager_proxy = dbus_g_proxy_new_for_name (backend->connection, - "org.openobex", - "/org/openobex", -@@ -759,18 +757,18 @@ error_occurred_cb (DBusGProxy *proxy, const gchar *error_name, const gchar *erro - } - - /* Something is waiting on us */ -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - if (op_backend->doing_io) - { - op_backend->status = ASYNC_ERROR; - op_backend->error = g_error_new_literal (DBUS_GERROR, - DBUS_GERROR_REMOTE_EXCEPTION, - error_message); -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - return; - } -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_message ("Unhandled error, file a bug"); - _exit (1); -@@ -785,13 +783,13 @@ session_connect_error_cb (DBusGProxy *proxy, - { - GVfsBackendObexftp *op_backend = G_VFS_BACKEND_OBEXFTP (user_data); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->status = ASYNC_ERROR; - op_backend->error = g_error_new_literal (DBUS_GERROR, - DBUS_GERROR_REMOTE_EXCEPTION, - error_message); -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -801,10 +799,10 @@ session_connected_cb (DBusGProxy *proxy, - { - GVfsBackendObexftp *op_backend = G_VFS_BACKEND_OBEXFTP (user_data); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->status = ASYNC_SUCCESS; -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -814,10 +812,10 @@ cancelled_cb (DBusGProxy *proxy, gpointer user_data) - - g_message ("transfer got cancelled"); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->status = ASYNC_ERROR; -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -979,17 +977,16 @@ do_mount (GVfsBackend *backend, - - /* Now wait until the device is connected */ - count = 0; -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - while (op_backend->status == ASYNC_PENDING && count < 100) { -- GTimeVal val; -- g_get_current_time (&val); -- g_time_val_add (&val, 100000); -+ gint64 end_time; -+ end_time = g_get_monotonic_time () + 100 * G_TIME_SPAN_MILLISECOND; - count++; -- if (g_cond_timed_wait (op_backend->cond, op_backend->mutex, &val) != FALSE) -+ if (g_cond_wait_until (&op_backend->cond, &op_backend->mutex, end_time) != FALSE) - break; - } -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - if (op_backend->status == ASYNC_ERROR || op_backend->status == ASYNC_PENDING) - { -@@ -1026,10 +1023,10 @@ transfer_started_cb (DBusGProxy *proxy, const gchar *filename, - - g_message ("transfer of %s to %s started", filename, local_path); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->status = ASYNC_SUCCESS; -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -1047,7 +1044,7 @@ do_open_for_read (GVfsBackend *backend, - - g_debug ("+ do_open_for_read, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->doing_io = TRUE; - - /* Change into the directory and cache the file size */ -@@ -1055,7 +1052,7 @@ do_open_for_read (GVfsBackend *backend, - if (_query_file_info_helper (backend, filename, info, &error) == FALSE) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - g_object_unref (info); -@@ -1065,7 +1062,7 @@ do_open_for_read (GVfsBackend *backend, - if (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_IS_DIRECTORY, - _("Can't open directory")); -@@ -1079,7 +1076,7 @@ do_open_for_read (GVfsBackend *backend, - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1091,7 +1088,7 @@ do_open_for_read (GVfsBackend *backend, - if (fd < 0) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1100,7 +1097,7 @@ do_open_for_read (GVfsBackend *backend, - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1134,13 +1131,13 @@ do_open_for_read (GVfsBackend *backend, - close (fd); - - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - return; - } - - /* Wait for TransferStarted or ErrorOccurred to have happened */ - while (op_backend->status == ASYNC_PENDING) -- g_cond_wait (op_backend->cond, op_backend->mutex); -+ g_cond_wait (&op_backend->cond, &op_backend->mutex); - success = op_backend->status; - dbus_g_proxy_disconnect_signal(op_backend->session_proxy, "TransferStarted", - G_CALLBACK(transfer_started_cb), op_backend); -@@ -1158,7 +1155,7 @@ do_open_for_read (GVfsBackend *backend, - if (success == ASYNC_ERROR) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - close (fd); - g_vfs_job_failed_from_error (G_VFS_JOB (job), - op_backend->error); -@@ -1179,7 +1176,7 @@ do_open_for_read (GVfsBackend *backend, - g_vfs_job_succeeded (G_VFS_JOB (job)); - - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - } - - static int -@@ -1266,7 +1263,7 @@ do_close_read (GVfsBackend *backend, - return; - } - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - if (busy > 0) - { -@@ -1276,11 +1273,11 @@ do_close_read (GVfsBackend *backend, - G_TYPE_INVALID, G_TYPE_INVALID) != FALSE) - { - while (op_backend->status == ASYNC_PENDING) -- g_cond_wait (op_backend->cond, op_backend->mutex); -+ g_cond_wait (&op_backend->cond, &op_backend->mutex); - } - } - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - close (backend_handle->fd); - g_free (backend_handle->source); -@@ -1304,17 +1301,17 @@ do_query_info (GVfsBackend *backend, - - g_debug ("+ do_query_info, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - if (_query_file_info_helper (backend, filename, info, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; - } - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_vfs_job_succeeded (G_VFS_JOB (job)); - -@@ -1341,14 +1338,14 @@ do_query_fs_info (GVfsBackend *backend, - - g_debug ("+ do_query_fs_info, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - /* Get the capabilities */ - if (dbus_g_proxy_call (op_backend->session_proxy, "GetCapability", &error, - G_TYPE_INVALID, - G_TYPE_STRING, &caps_str, G_TYPE_INVALID) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1356,7 +1353,7 @@ do_query_fs_info (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1368,7 +1365,7 @@ do_query_fs_info (GVfsBackend *backend, - if (caps_str == NULL) - { - /* Best effort, don't error out */ -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_succeeded (G_VFS_JOB (job)); - return; - } -@@ -1377,7 +1374,7 @@ do_query_fs_info (GVfsBackend *backend, - g_free (caps_str); - if (caps == NULL) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1395,7 +1392,7 @@ do_query_fs_info (GVfsBackend *backend, - } - if (has_free_memory == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - /* Best effort, don't error out */ - g_vfs_job_succeeded (G_VFS_JOB (job)); - return; -@@ -1411,7 +1408,7 @@ do_query_fs_info (GVfsBackend *backend, - - if (_query_file_info_helper (backend, filename, info, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - ovu_caps_free (caps); -@@ -1420,7 +1417,7 @@ do_query_fs_info (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1457,7 +1454,7 @@ set_info_from_memory: - - g_vfs_job_succeeded (G_VFS_JOB (job)); - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_query_fs_info\n"); - } -@@ -1476,11 +1473,11 @@ do_enumerate (GVfsBackend *backend, - - g_debug ("+ do_enumerate, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - if (_change_directory (op_backend, filename, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1489,7 +1486,7 @@ do_enumerate (GVfsBackend *backend, - files = NULL; - if (_retrieve_folder_listing (backend, filename, &files, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1497,7 +1494,7 @@ do_enumerate (GVfsBackend *backend, - - if (gvfsbackendobexftp_fl_parser_parse (files, strlen (files), &elements, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - /* See http://web.archive.org/web/20070826221251/http://docs.kde.org/development/en/extragear-pim/kdebluetooth/components.kio_obex.html#devices - * for the reasoning */ - if (strstr (files, "SYSTEM\"obex-folder-listing.dtd") != NULL && _is_nokia_3650 (op_backend->bdaddr)) -@@ -1525,7 +1522,7 @@ do_enumerate (GVfsBackend *backend, - g_list_free (elements); - g_vfs_job_enumerate_done (job); - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_enumerate\n"); - } -@@ -1549,7 +1546,7 @@ push_transfer_started_cb (DBusGProxy *proxy, - - g_message ("transfer of %s to %s started", filename, local_path); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - op_backend->status = ASYNC_RUNNING; - job_data->total_bytes = (goffset) total_bytes; -@@ -1557,8 +1554,8 @@ push_transfer_started_cb (DBusGProxy *proxy, - job_data->progress_callback (0, job_data->total_bytes, - job_data->progress_callback_data); - -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -1570,12 +1567,12 @@ push_transfer_completed_cb (DBusGProxy *proxy, - - g_message ("transfer completed"); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - op_backend->status = ASYNC_SUCCESS; - -- g_cond_signal (op_backend->cond); -- g_mutex_unlock (op_backend->mutex); -+ g_cond_signal (&op_backend->cond); -+ g_mutex_unlock (&op_backend->mutex); - } - - static void -@@ -1657,7 +1654,7 @@ _push_single_file_helper (GVfsBackendObexftp *op_backend, - - /* wait for the TransferStarted or ErrorOccurred signal */ - while (op_backend->status == ASYNC_PENDING) -- g_cond_wait (op_backend->cond, op_backend->mutex); -+ g_cond_wait (&op_backend->cond, &op_backend->mutex); - - dbus_g_proxy_disconnect_signal (op_backend->session_proxy, "TransferStarted", - G_CALLBACK (push_transfer_started_cb), job_data); -@@ -1678,7 +1675,7 @@ _push_single_file_helper (GVfsBackendObexftp *op_backend, - } - - while (op_backend->status == ASYNC_RUNNING) -- g_cond_wait (op_backend->cond, op_backend->mutex); -+ g_cond_wait (&op_backend->cond, &op_backend->mutex); - - dbus_g_proxy_disconnect_signal (op_backend->session_proxy, "TransferCompleted", - G_CALLBACK (push_transfer_completed_cb), job_data); -@@ -1717,7 +1714,7 @@ do_push (GVfsBackend *backend, - - g_debug ("+ do_push, destination: %s, local_path: %s\n", destination, local_path); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - op_backend->doing_io = TRUE; - - overwrite = (flags & G_FILE_COPY_OVERWRITE); -@@ -1728,7 +1725,7 @@ do_push (GVfsBackend *backend, - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, -@@ -1743,7 +1740,7 @@ do_push (GVfsBackend *backend, - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); -@@ -1766,7 +1763,7 @@ do_push (GVfsBackend *backend, - if (is_dir) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - if (target_type != 0) - { -@@ -1799,7 +1796,7 @@ do_push (GVfsBackend *backend, - if (target_type != 0) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - if (overwrite) - { -@@ -1831,7 +1828,7 @@ do_push (GVfsBackend *backend, - &error, job_data) == FALSE) - { - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - push_data_free (job_data); - - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); -@@ -1859,7 +1856,7 @@ do_push (GVfsBackend *backend, - g_vfs_job_succeeded (G_VFS_JOB (job)); - - op_backend->doing_io = FALSE; -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_push\n"); - } -@@ -1876,13 +1873,13 @@ do_delete (GVfsBackend *backend, - - g_debug ("+ do_delete, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - /* Check whether we have a directory */ - info = g_file_info_new (); - if (_query_file_info_helper (backend, filename, info, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - g_object_unref (info); -@@ -1891,7 +1888,7 @@ do_delete (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1910,7 +1907,7 @@ do_delete (GVfsBackend *backend, - - if (_change_directory (op_backend, filename, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1918,7 +1915,7 @@ do_delete (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1928,7 +1925,7 @@ do_delete (GVfsBackend *backend, - files = NULL; - if (_retrieve_folder_listing (backend, filename, &files, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -1936,7 +1933,7 @@ do_delete (GVfsBackend *backend, - - if (gvfsbackendobexftp_fl_parser_parse (files, strlen (files), &elements, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_message ("gvfsbackendobexftp_fl_parser_parse failed"); - g_free (files); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); -@@ -1951,7 +1948,7 @@ do_delete (GVfsBackend *backend, - - if (len != 0) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_set_error_literal (&error, G_IO_ERROR, - G_IO_ERROR_NOT_EMPTY, - g_strerror (ENOTEMPTY)); -@@ -1969,7 +1966,7 @@ do_delete (GVfsBackend *backend, - if (strcmp (basename, G_DIR_SEPARATOR_S) == 0 - || strcmp (basename, ".") == 0) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_free (basename); - g_vfs_job_failed_from_errno (G_VFS_JOB (job), EPERM); - return; -@@ -1977,7 +1974,7 @@ do_delete (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -1988,7 +1985,7 @@ do_delete (GVfsBackend *backend, - parent = g_path_get_dirname (filename); - if (_change_directory (op_backend, parent, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_free (basename); - g_free (parent); -@@ -1999,7 +1996,7 @@ do_delete (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -2011,7 +2008,7 @@ do_delete (GVfsBackend *backend, - G_TYPE_STRING, basename, G_TYPE_INVALID, - G_TYPE_INVALID) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -2020,7 +2017,7 @@ do_delete (GVfsBackend *backend, - - g_vfs_job_succeeded (G_VFS_JOB (job)); - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_delete\n"); - } -@@ -2037,13 +2034,13 @@ do_make_directory (GVfsBackend *backend, - - g_debug ("+ do_make_directory, filename: %s\n", filename); - -- g_mutex_lock (op_backend->mutex); -+ g_mutex_lock (&op_backend->mutex); - - /* Check if the folder already exists */ - info = g_file_info_new (); - if (_query_file_info_helper (backend, filename, info, &error) != FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_object_unref (info); - g_vfs_job_failed_from_errno (G_VFS_JOB (job), EEXIST); - return; -@@ -2051,7 +2048,7 @@ do_make_directory (GVfsBackend *backend, - g_object_unref (info); - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -2062,7 +2059,7 @@ do_make_directory (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -2072,7 +2069,7 @@ do_make_directory (GVfsBackend *backend, - parent = g_path_get_dirname (filename); - if (_change_directory (op_backend, parent, &error) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); - return; -@@ -2081,7 +2078,7 @@ do_make_directory (GVfsBackend *backend, - - if (g_vfs_job_is_cancelled (G_VFS_JOB (job))) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, - G_IO_ERROR_CANCELLED, - _("Operation was cancelled")); -@@ -2093,7 +2090,7 @@ do_make_directory (GVfsBackend *backend, - G_TYPE_STRING, basename, G_TYPE_INVALID, - G_TYPE_INVALID) == FALSE) - { -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - g_free (basename); - g_vfs_job_failed_from_error (G_VFS_JOB (job), error); - g_error_free (error); -@@ -2108,7 +2105,7 @@ do_make_directory (GVfsBackend *backend, - - g_vfs_job_succeeded (G_VFS_JOB (job)); - -- g_mutex_unlock (op_backend->mutex); -+ g_mutex_unlock (&op_backend->mutex); - - g_debug ("- do_make_directory\n"); - } -diff --git a/daemon/gvfsbackendsmbbrowse.c b/daemon/gvfsbackendsmbbrowse.c -index 01d7da6..f1055c5 100644 ---- a/daemon/gvfsbackendsmbbrowse.c -+++ b/daemon/gvfsbackendsmbbrowse.c -@@ -94,8 +94,8 @@ struct _GVfsBackendSmbBrowse - gboolean password_in_keyring; - GPasswordSave password_save; - -- GMutex *entries_lock; -- GMutex *update_cache_lock; -+ GMutex entries_lock; -+ GMutex update_cache_lock; - time_t last_entry_update; - GList *entries; - int entry_errno; -@@ -226,8 +226,8 @@ g_vfs_backend_smb_browse_finalize (GObject *object) - g_free (backend->server); - g_free (backend->default_workgroup); - -- g_mutex_free (backend->entries_lock); -- g_mutex_free (backend->update_cache_lock); -+ g_mutex_clear (&backend->entries_lock); -+ g_mutex_clear (&backend->update_cache_lock); - - smbc_free_context (backend->smb_context, TRUE); - -@@ -244,9 +244,6 @@ g_vfs_backend_smb_browse_init (GVfsBackendSmbBrowse *backend) - char *workgroup; - GSettings *settings; - -- backend->entries_lock = g_mutex_new (); -- backend->update_cache_lock = g_mutex_new (); -- - if (mount_tracker == NULL) - mount_tracker = g_mount_tracker_new (NULL); - -@@ -592,7 +589,7 @@ update_cache (GVfsBackendSmbBrowse *backend, SMBCFILE *supplied_dir) - entry_errno = 0; - res = -1; - -- g_mutex_lock (backend->update_cache_lock); -+ g_mutex_lock (&backend->update_cache_lock); - - DEBUG ("update_cache - updating...\n"); - -@@ -665,7 +662,7 @@ update_cache (GVfsBackendSmbBrowse *backend, SMBCFILE *supplied_dir) - - out: - -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - - /* Clear old cache */ - g_list_foreach (backend->entries, (GFunc)browse_entry_free, NULL); -@@ -676,8 +673,8 @@ update_cache (GVfsBackendSmbBrowse *backend, SMBCFILE *supplied_dir) - - DEBUG ("update_cache - done.\n"); - -- g_mutex_unlock (backend->entries_lock); -- g_mutex_unlock (backend->update_cache_lock); -+ g_mutex_unlock (&backend->entries_lock); -+ g_mutex_unlock (&backend->update_cache_lock); - - return (res >= 0); - } -@@ -780,9 +777,9 @@ has_name (GVfsBackendSmbBrowse *backend, - { - gboolean res; - -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - res = (find_entry_unlocked (backend, filename) != NULL); -- g_mutex_unlock (backend->entries_lock); -+ g_mutex_unlock (&backend->entries_lock); - return res; - } - -@@ -793,11 +790,11 @@ cache_needs_updating (GVfsBackendSmbBrowse *backend) - gboolean res; - - /* If there's already cache update in progress, lock and wait until update is finished, then recheck */ -- g_mutex_lock (backend->update_cache_lock); -+ g_mutex_lock (&backend->update_cache_lock); - now = time (NULL); - res = now < backend->last_entry_update || - (now - backend->last_entry_update) > DEFAULT_CACHE_EXPIRATION_TIME; -- g_mutex_unlock (backend->update_cache_lock); -+ g_mutex_unlock (&backend->update_cache_lock); - - return res; - } -@@ -1070,7 +1067,7 @@ run_mount_mountable (GVfsBackendSmbBrowse *backend, - GError *error = NULL; - GMountSpec *mount_spec; - -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - - entry = find_entry_unlocked (backend, filename); - -@@ -1093,7 +1090,7 @@ run_mount_mountable (GVfsBackendSmbBrowse *backend, - G_IO_ERROR, G_IO_ERROR_NOT_FOUND, - _("File doesn't exist")); - -- g_mutex_unlock (backend->entries_lock); -+ g_mutex_unlock (&backend->entries_lock); - - if (error) - { -@@ -1316,14 +1313,14 @@ run_query_info (GVfsBackendSmbBrowse *backend, - { - BrowseEntry *entry; - -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - - entry = find_entry_unlocked (backend, filename); - - if (entry) - get_file_info_from_entry (backend, entry, info); - -- g_mutex_unlock (backend->entries_lock); -+ g_mutex_unlock (&backend->entries_lock); - - if (entry) - g_vfs_job_succeeded (G_VFS_JOB (job)); -@@ -1408,7 +1405,7 @@ run_enumerate (GVfsBackendSmbBrowse *backend, - g_vfs_job_succeeded (G_VFS_JOB (job)); - - files = NULL; -- g_mutex_lock (backend->entries_lock); -+ g_mutex_lock (&backend->entries_lock); - for (l = backend->entries; l != NULL; l = l->next) - { - BrowseEntry *entry = l->data; -@@ -1418,7 +1415,7 @@ run_enumerate (GVfsBackendSmbBrowse *backend, - - files = g_list_prepend (files, info); - } -- g_mutex_unlock (backend->entries_lock); -+ g_mutex_unlock (&backend->entries_lock); - - files = g_list_reverse (files); - -diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c -index 9714b39..4f59b94 100644 ---- a/daemon/gvfsdaemon.c -+++ b/daemon/gvfsdaemon.c -@@ -58,7 +58,7 @@ struct _GVfsDaemon - { - GObject parent_instance; - -- GMutex *lock; -+ GMutex lock; - gboolean main_daemon; - - GThreadPool *thread_pool; -@@ -119,7 +119,7 @@ g_vfs_daemon_finalize (GObject *object) - g_assert (daemon->jobs == NULL); - - g_hash_table_destroy (daemon->registered_paths); -- g_mutex_free (daemon->lock); -+ g_mutex_clear (&daemon->lock); - - if (G_OBJECT_CLASS (g_vfs_daemon_parent_class)->finalize) - (*G_OBJECT_CLASS (g_vfs_daemon_parent_class)->finalize) (object); -@@ -150,7 +150,6 @@ g_vfs_daemon_init (GVfsDaemon *daemon) - gint max_threads = 1; /* TODO: handle max threads */ - DBusError error; - -- daemon->lock = g_mutex_new (); - daemon->session_bus = dbus_bus_get (DBUS_BUS_SESSION, NULL); - daemon->thread_pool = g_thread_pool_new (job_handler_callback, - daemon, -@@ -326,7 +325,7 @@ static void - job_source_closed_callback (GVfsJobSource *job_source, - GVfsDaemon *daemon) - { -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - - daemon->job_sources = g_list_remove (daemon->job_sources, - job_source); -@@ -343,7 +342,7 @@ job_source_closed_callback (GVfsJobSource *job_source, - if (daemon->job_sources == NULL) - daemon_schedule_exit (daemon); - -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - } - - static void -@@ -351,7 +350,7 @@ g_vfs_daemon_re_register_job_sources (GVfsDaemon *daemon) - { - GList *l; - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - - for (l = daemon->job_sources; l != NULL; l = l->next) - { -@@ -366,7 +365,7 @@ g_vfs_daemon_re_register_job_sources (GVfsDaemon *daemon) - } - } - -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - } - - void -@@ -375,7 +374,7 @@ g_vfs_daemon_add_job_source (GVfsDaemon *daemon, - { - g_debug ("Added new job source %p (%s)\n", job_source, g_type_name_from_instance ((gpointer)job_source)); - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - - daemon_unschedule_exit (daemon); - -@@ -387,7 +386,7 @@ g_vfs_daemon_add_job_source (GVfsDaemon *daemon, - g_signal_connect (job_source, "closed", - (GCallback)job_source_closed_callback, daemon); - -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - } - - /* This registers a dbus callback on *all* connections, client and session bus */ -@@ -437,9 +436,9 @@ job_finished_callback (GVfsJob *job, - (GCallback)job_finished_callback, - daemon); - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - daemon->jobs = g_list_remove (daemon->jobs, job); -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - - g_object_unref (job); - } -@@ -454,9 +453,9 @@ g_vfs_daemon_queue_job (GVfsDaemon *daemon, - g_signal_connect (job, "finished", (GCallback)job_finished_callback, daemon); - g_signal_connect (job, "new_source", (GCallback)job_new_source_callback, daemon); - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - daemon->jobs = g_list_prepend (daemon->jobs, job); -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - - /* Can we start the job immediately / async */ - if (!g_vfs_job_try (job)) -@@ -949,7 +948,7 @@ daemon_message_func (DBusConnection *conn, - DBUS_TYPE_UINT32, &serial, - DBUS_TYPE_INVALID)) - { -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - for (l = daemon->jobs; l != NULL; l = l->next) - { - GVfsJob *job = l->data; -@@ -962,7 +961,7 @@ daemon_message_func (DBusConnection *conn, - break; - } - } -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - - - if (job_to_cancel) -@@ -1007,7 +1006,7 @@ peer_to_peer_filter_func (DBusConnection *conn, - { - GList *l; - -- g_mutex_lock (daemon->lock); -+ g_mutex_lock (&daemon->lock); - for (l = daemon->jobs; l != NULL; l = l->next) - { - GVfsJob *job = l->data; -@@ -1016,7 +1015,7 @@ peer_to_peer_filter_func (DBusConnection *conn, - G_VFS_JOB_DBUS (job)->connection == conn) - g_vfs_job_cancel (job); - } -- g_mutex_unlock (daemon->lock); -+ g_mutex_unlock (&daemon->lock); - - /* The peer-to-peer connection was disconnected */ - dbus_connection_unref (conn); -diff --git a/daemon/gvfsftpdircache.c b/daemon/gvfsftpdircache.c -index cd19c17..49023b1 100644 ---- a/daemon/gvfsftpdircache.c -+++ b/daemon/gvfsftpdircache.c -@@ -98,7 +98,7 @@ struct _GVfsFtpDirCache - { - GHashTable * directories; /* GVfsFtpFile of directory => GVfsFtpDirCacheEntry mapping */ - guint stamp; /* used to identify validity of cache when flushing */ -- GMutex * lock; /* mutex for thread safety of stamp and hash table */ -+ GMutex lock; /* mutex for thread safety of stamp and hash table */ - const GVfsFtpDirFuncs *funcs; /* functions to call */ - }; - -@@ -114,7 +114,6 @@ g_vfs_ftp_dir_cache_new (const GVfsFtpDirFuncs *funcs) - g_vfs_ftp_file_equal, - (GDestroyNotify) g_vfs_ftp_file_free, - (GDestroyNotify) g_vfs_ftp_dir_cache_entry_unref); -- cache->lock = g_mutex_new(); - cache->funcs = funcs; - - return cache; -@@ -126,7 +125,7 @@ g_vfs_ftp_dir_cache_free (GVfsFtpDirCache *cache) - g_return_if_fail (cache != NULL); - - g_hash_table_destroy (cache->directories); -- g_mutex_free (cache->lock); -+ g_mutex_clear (&cache->lock); - g_slice_free (GVfsFtpDirCache, cache); - } - -@@ -138,11 +137,11 @@ g_vfs_ftp_dir_cache_lookup_entry (GVfsFtpDirCache * cache, - { - GVfsFtpDirCacheEntry *entry; - -- g_mutex_lock (cache->lock); -+ g_mutex_lock (&cache->lock); - entry = g_hash_table_lookup (cache->directories, dir); - if (entry) - g_vfs_ftp_dir_cache_entry_ref (entry); -- g_mutex_unlock (cache->lock); -+ g_mutex_unlock (&cache->lock); - if (entry && entry->stamp < stamp) - g_vfs_ftp_dir_cache_entry_unref (entry); - else if (entry) -@@ -178,11 +177,11 @@ g_vfs_ftp_dir_cache_lookup_entry (GVfsFtpDirCache * cache, - g_vfs_ftp_dir_cache_entry_unref (entry); - return NULL; - } -- g_mutex_lock (cache->lock); -+ g_mutex_lock (&cache->lock); - g_hash_table_insert (cache->directories, - g_vfs_ftp_file_copy (dir), - g_vfs_ftp_dir_cache_entry_ref (entry)); -- g_mutex_unlock (cache->lock); -+ g_mutex_unlock (&cache->lock); - return entry; - } - -@@ -357,10 +356,10 @@ g_vfs_ftp_dir_cache_lookup_dir (GVfsFtpDirCache * cache, - - if (flush) - { -- g_mutex_lock (cache->lock); -+ g_mutex_lock (&cache->lock); - g_assert (cache->stamp != G_MAXUINT); - stamp = ++cache->stamp; -- g_mutex_unlock (cache->lock); -+ g_mutex_unlock (&cache->lock); - } - else - stamp = 0; -@@ -390,9 +389,9 @@ g_vfs_ftp_dir_cache_purge_dir (GVfsFtpDirCache * cache, - g_return_if_fail (cache != NULL); - g_return_if_fail (dir != NULL); - -- g_mutex_lock (cache->lock); -+ g_mutex_lock (&cache->lock); - g_hash_table_remove (cache->directories, dir); -- g_mutex_unlock (cache->lock); -+ g_mutex_unlock (&cache->lock); - } - - void -diff --git a/daemon/gvfsftptask.c b/daemon/gvfsftptask.c -index 8c5f7fb..f83882a 100644 ---- a/daemon/gvfsftptask.c -+++ b/daemon/gvfsftptask.c -@@ -180,7 +180,7 @@ static gboolean - g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - { - GVfsBackendFtp *ftp; -- GTimeVal now; -+ gint64 end_time; - gulong id; - - g_return_val_if_fail (task != NULL, FALSE); -@@ -190,10 +190,10 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - return FALSE; - - ftp = task->backend; -- g_mutex_lock (ftp->mutex); -+ g_mutex_lock (&ftp->mutex); - id = g_cancellable_connect (task->cancellable, - G_CALLBACK (do_broadcast), -- ftp->cond, NULL); -+ &ftp->cond, NULL); - while (task->conn == NULL && ftp->queue != NULL) - { - if (g_cancellable_is_cancelled (task->cancellable)) -@@ -218,7 +218,7 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - - ftp->connections++; - last_thread = g_thread_self (); -- g_mutex_unlock (ftp->mutex); -+ g_mutex_unlock (&ftp->mutex); - task->conn = g_vfs_ftp_connection_new (ftp->addr, task->cancellable, &task->error); - if (G_LIKELY (task->conn != NULL)) - { -@@ -231,7 +231,7 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - - g_vfs_ftp_connection_free (task->conn); - task->conn = NULL; -- g_mutex_lock (ftp->mutex); -+ g_mutex_lock (&ftp->mutex); - ftp->connections--; - /* If this value is still equal to our thread it means there were no races - * trying to open connections and the maybe_max_connections value is -@@ -253,10 +253,9 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - continue; - } - -- g_get_current_time (&now); -- g_time_val_add (&now, G_VFS_FTP_TIMEOUT_IN_SECONDS * 1000 * 1000); -+ end_time = g_get_monotonic_time () + G_VFS_FTP_TIMEOUT_IN_SECONDS * G_TIME_SPAN_SECOND; - if (ftp->busy_connections >= ftp->connections || -- !g_cond_timed_wait (ftp->cond, ftp->mutex, &now)) -+ !g_cond_wait_until (&ftp->cond, &ftp->mutex, end_time)) - { - task->error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_BUSY, - _("The FTP server is busy. Try again later")); -@@ -264,7 +263,7 @@ g_vfs_ftp_task_acquire_connection (GVfsFtpTask *task) - } - } - g_cancellable_disconnect (task->cancellable, id); -- g_mutex_unlock (ftp->mutex); -+ g_mutex_unlock (&ftp->mutex); - - return task->conn != NULL; - } -@@ -287,18 +286,18 @@ g_vfs_ftp_task_release_connection (GVfsFtpTask *task) - if (task->conn == NULL) - return; - -- g_mutex_lock (task->backend->mutex); -+ g_mutex_lock (&task->backend->mutex); - if (task->backend->queue && g_vfs_ftp_connection_is_usable (task->conn)) - { - g_queue_push_tail (task->backend->queue, task->conn); -- g_cond_signal (task->backend->cond); -+ g_cond_signal (&task->backend->cond); - } - else - { - task->backend->connections--; - g_vfs_ftp_connection_free (task->conn); - } -- g_mutex_unlock (task->backend->mutex); -+ g_mutex_unlock (&task->backend->mutex); - task->conn = NULL; - } - -@@ -434,10 +433,10 @@ g_vfs_ftp_task_give_connection (GVfsFtpTask * task, - - task->conn = conn; - /* this connection is not busy anymore */ -- g_mutex_lock (task->backend->mutex); -+ g_mutex_lock (&task->backend->mutex); - g_assert (task->backend->busy_connections > 0); - task->backend->busy_connections--; -- g_mutex_unlock (task->backend->mutex); -+ g_mutex_unlock (&task->backend->mutex); - } - - /** -@@ -465,13 +464,13 @@ g_vfs_ftp_task_take_connection (GVfsFtpTask *task) - - ftp = task->backend; - /* mark this connection as busy */ -- g_mutex_lock (ftp->mutex); -+ g_mutex_lock (&ftp->mutex); - ftp->busy_connections++; - /* if all connections are busy, signal all waiting threads, - * so they stop waiting and return BUSY earlier */ - if (ftp->busy_connections >= ftp->connections) -- g_cond_broadcast (ftp->cond); -- g_mutex_unlock (ftp->mutex); -+ g_cond_broadcast (&ftp->cond); -+ g_mutex_unlock (&ftp->mutex); - - return conn; - } -diff --git a/daemon/trashlib/trashexpunge.c b/daemon/trashlib/trashexpunge.c -index 782be54..a5cf975 100644 ---- a/daemon/trashlib/trashexpunge.c -+++ b/daemon/trashlib/trashexpunge.c -@@ -11,8 +11,8 @@ - static gsize trash_expunge_initialised; - static GHashTable *trash_expunge_queue; - static gboolean trash_expunge_alive; --static GMutex *trash_expunge_lock; --static GCond *trash_expunge_wait; -+static GMutex trash_expunge_lock; -+static GCond trash_expunge_wait; - - static void - trash_expunge_delete_everything_under (GFile *directory) -@@ -66,9 +66,9 @@ just_return_true (gpointer a, - static gpointer - trash_expunge_thread (gpointer data) - { -- GTimeVal timeval; -+ gint64 end_time; - -- g_mutex_lock (trash_expunge_lock); -+ g_mutex_lock (&trash_expunge_lock); - - do - { -@@ -80,23 +80,22 @@ trash_expunge_thread (gpointer data) - just_return_true, NULL); - g_hash_table_remove (trash_expunge_queue, directory); - -- g_mutex_unlock (trash_expunge_lock); -+ g_mutex_unlock (&trash_expunge_lock); - trash_expunge_delete_everything_under (directory); -- g_mutex_lock (trash_expunge_lock); -+ g_mutex_lock (&trash_expunge_lock); - - g_object_unref (directory); - } - -- g_get_current_time (&timeval); -- g_time_val_add (&timeval, 60 * 1000000); /* 1min */ -+ end_time = g_get_monotonic_time () + 1 * G_TIME_SPAN_MINUTE; - } -- while (g_cond_timed_wait (trash_expunge_wait, -- trash_expunge_lock, -- &timeval)); -+ while (g_cond_wait_until (&trash_expunge_wait, -+ &trash_expunge_lock, -+ end_time)); - - trash_expunge_alive = FALSE; - -- g_mutex_unlock (trash_expunge_lock); -+ g_mutex_unlock (&trash_expunge_lock); - - return NULL; - } -@@ -108,13 +107,13 @@ trash_expunge (GFile *directory) - { - trash_expunge_queue = g_hash_table_new (g_file_hash, - (GEqualFunc) g_file_equal); -- trash_expunge_lock = g_mutex_new (); -- trash_expunge_wait = g_cond_new (); -+ g_mutex_init (&trash_expunge_lock); -+ g_cond_init (&trash_expunge_wait); - - g_once_init_leave (&trash_expunge_initialised, 1); - } - -- g_mutex_lock (trash_expunge_lock); -+ g_mutex_lock (&trash_expunge_lock); - - if (!g_hash_table_lookup (trash_expunge_queue, directory)) - g_hash_table_insert (trash_expunge_queue, -@@ -130,7 +129,7 @@ trash_expunge (GFile *directory) - trash_expunge_alive = TRUE; - } - else -- g_cond_signal (trash_expunge_wait); -+ g_cond_signal (&trash_expunge_wait); - -- g_mutex_unlock (trash_expunge_lock); -+ g_mutex_unlock (&trash_expunge_lock); - } -diff --git a/daemon/trashlib/trashitem.c b/daemon/trashlib/trashitem.c -index bcfc301..dbc9307 100644 ---- a/daemon/trashlib/trashitem.c -+++ b/daemon/trashlib/trashitem.c -@@ -20,7 +20,7 @@ typedef struct - - struct OPAQUE_TYPE__TrashRoot - { -- GStaticRWLock lock; -+ GRWLock lock; - GQueue *notifications; - - trash_item_notify create_notify; -@@ -297,12 +297,12 @@ trash_root_thaw (TrashRoot *root) - /* send notifications until we have none */ - while (TRUE) - { -- g_static_rw_lock_writer_lock (&root->lock); -+ g_rw_lock_writer_lock (&root->lock); - if (g_queue_is_empty (root->notifications)) - break; - - closure = g_queue_pop_head (root->notifications); -- g_static_rw_lock_writer_unlock (&root->lock); -+ g_rw_lock_writer_unlock (&root->lock); - - trash_item_invoke_closure (closure); - } -@@ -312,7 +312,7 @@ trash_root_thaw (TrashRoot *root) - size_changed = root->old_size != size; - root->old_size = size; - -- g_static_rw_lock_writer_unlock (&root->lock); -+ g_rw_lock_writer_unlock (&root->lock); - - if (size_changed) - root->size_change (root->user_data); -@@ -336,7 +336,7 @@ trash_root_new (trash_item_notify create, - TrashRoot *root; - - root = g_slice_new (TrashRoot); -- g_static_rw_lock_init (&root->lock); -+ g_rw_lock_init (&root->lock); - root->create_notify = create; - root->delete_notify = delete; - root->size_change = size_change; -@@ -376,11 +376,11 @@ trash_root_add_item (TrashRoot *list, - - item = trash_item_new (list, file, in_homedir); - -- g_static_rw_lock_writer_lock (&list->lock); -+ g_rw_lock_writer_lock (&list->lock); - - if (g_hash_table_lookup (list->item_table, item->escaped_name)) - { -- g_static_rw_lock_writer_unlock (&list->lock); -+ g_rw_lock_writer_unlock (&list->lock); - - /* already exists... */ - trash_item_unref (item); -@@ -390,7 +390,7 @@ trash_root_add_item (TrashRoot *list, - g_hash_table_insert (list->item_table, item->escaped_name, item); - trash_item_queue_notify (item, item->root->create_notify); - -- g_static_rw_lock_writer_unlock (&list->lock); -+ g_rw_lock_writer_unlock (&list->lock); - } - - void -@@ -402,9 +402,9 @@ trash_root_remove_item (TrashRoot *list, - - escaped = trash_item_escape_name (file, in_homedir); - -- g_static_rw_lock_writer_lock (&list->lock); -+ g_rw_lock_writer_lock (&list->lock); - g_hash_table_remove (list->item_table, escaped); -- g_static_rw_lock_writer_unlock (&list->lock); -+ g_rw_lock_writer_unlock (&list->lock); - - g_free (escaped); - } -@@ -414,13 +414,13 @@ trash_root_get_items (TrashRoot *root) - { - GList *items, *node; - -- g_static_rw_lock_reader_lock (&root->lock); -+ g_rw_lock_reader_lock (&root->lock); - - items = g_hash_table_get_values (root->item_table); - for (node = items; node; node = node->next) - trash_item_ref (node->data); - -- g_static_rw_lock_reader_unlock (&root->lock); -+ g_rw_lock_reader_unlock (&root->lock); - - return items; - } -@@ -441,12 +441,12 @@ trash_root_lookup_item (TrashRoot *root, - { - TrashItem *item; - -- g_static_rw_lock_reader_lock (&root->lock); -+ g_rw_lock_reader_lock (&root->lock); - - if ((item = g_hash_table_lookup (root->item_table, escaped))) - trash_item_ref (item); - -- g_static_rw_lock_reader_unlock (&root->lock); -+ g_rw_lock_reader_unlock (&root->lock); - - return item; - } -@@ -456,9 +456,9 @@ trash_root_get_n_items (TrashRoot *root) - { - int size; - -- g_static_rw_lock_reader_lock (&root->lock); -+ g_rw_lock_reader_lock (&root->lock); - size = g_hash_table_size (root->item_table); -- g_static_rw_lock_reader_unlock (&root->lock); -+ g_rw_lock_reader_unlock (&root->lock); - - return size; - } -@@ -517,9 +517,9 @@ trash_item_restore (TrashItem *item, - G_FILE_COPY_NO_FALLBACK_FOR_MOVE, - NULL, NULL, NULL, error)) - { -- g_static_rw_lock_writer_lock (&item->root->lock); -+ g_rw_lock_writer_lock (&item->root->lock); - g_hash_table_remove (item->root->item_table, item->escaped_name); -- g_static_rw_lock_writer_unlock (&item->root->lock); -+ g_rw_lock_writer_unlock (&item->root->lock); - - { - GFile *trashinfo; --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/0004-Adapt-to-glib-thread-API-changes.patch b/meta-gnome/recipes-gnome/gvfs/files/0004-Adapt-to-glib-thread-API-changes.patch deleted file mode 100644 index 0fac6015585..00000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0004-Adapt-to-glib-thread-API-changes.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 008031adbe2fd118a4e9a3c7219a9777cab1bb75 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Wed, 26 Oct 2011 14:12:13 +0200 -Subject: [PATCH 2/2] Adapt to glib thread API changes - -Last piece in order to fix https://bugzilla.gnome.org/show_bug.cgi?id=661148 - -Upstream-Status: Backport - -Signed-off-by: Andreas Müller ---- - client/gvfsfusedaemon.c | 2 +- - daemon/trashlib/trashexpunge.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/client/gvfsfusedaemon.c b/client/gvfsfusedaemon.c -index c986f69..5e79638 100644 ---- a/client/gvfsfusedaemon.c -+++ b/client/gvfsfusedaemon.c -@@ -2358,7 +2358,7 @@ vfs_init (struct fuse_conn_info *conn) - volume_monitor = g_object_new (g_type_from_name ("GDaemonVolumeMonitor"), NULL); - - subthread_main_loop = g_main_loop_new (NULL, FALSE); -- subthread = g_thread_create ((GThreadFunc) subthread_main, NULL, FALSE, NULL); -+ subthread = g_thread_new ("gvfs-fuse-sub", (GThreadFunc) subthread_main, NULL); - - /* Indicate O_TRUNC support for open() */ - conn->want |= FUSE_CAP_ATOMIC_O_TRUNC; -diff --git a/daemon/trashlib/trashexpunge.c b/daemon/trashlib/trashexpunge.c -index a5cf975..677fb81 100644 ---- a/daemon/trashlib/trashexpunge.c -+++ b/daemon/trashlib/trashexpunge.c -@@ -124,7 +124,7 @@ trash_expunge (GFile *directory) - { - GThread *thread; - -- thread = g_thread_create (trash_expunge_thread, NULL, FALSE, NULL); -+ thread = g_thread_new ("trash-expunge", trash_expunge_thread, NULL); - g_assert (thread != NULL); - trash_expunge_alive = TRUE; - } --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/gvfs/files/0005-client-gdaemonfile.c-replace-g_memmove-by-memmove.patch b/meta-gnome/recipes-gnome/gvfs/files/0005-client-gdaemonfile.c-replace-g_memmove-by-memmove.patch deleted file mode 100644 index c55a99db4ff..00000000000 --- a/meta-gnome/recipes-gnome/gvfs/files/0005-client-gdaemonfile.c-replace-g_memmove-by-memmove.patch +++ /dev/null @@ -1,36 +0,0 @@ -From de7b06dea740900fa63e2e011c9f862fe4b9405c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Mon, 27 Oct 2014 10:43:40 +0100 -Subject: [PATCH] client/gdaemonfile.c: replace g_memmove by memmove -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -g_memmove was deprecated in glib 2.40 [1] - -Upstream-Status: pending [2] - -[1] https://developer.gnome.org/glib/stable/glib-Memory-Allocation.html#g-memmove -[2] https://bugzilla.gnome.org/show_bug.cgi?id=739233 - -Signed-off-by: Andreas Müller ---- - client/gdaemonfile.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/client/gdaemonfile.c b/client/gdaemonfile.c -index 15c368c..593ce7a 100644 ---- a/client/gdaemonfile.c -+++ b/client/gdaemonfile.c -@@ -256,7 +256,7 @@ g_daemon_file_get_parent (GFile *file) - len = (guint) 1 + base - path; - - parent_path = g_new (gchar, len + 1); -- g_memmove (parent_path, path, len); -+ memmove (parent_path, path, len); - parent_path[len] = 0; - - parent = new_file_for_new_path (daemon_file, parent_path); --- -1.8.3.1 - diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs-gdu-volume-monitor_1.10.1.bb b/meta-gnome/recipes-gnome/gvfs/gvfs-gdu-volume-monitor_1.10.1.bb deleted file mode 100644 index 5c0e07c0cab..00000000000 --- a/meta-gnome/recipes-gnome/gvfs/gvfs-gdu-volume-monitor_1.10.1.bb +++ /dev/null @@ -1,28 +0,0 @@ -require gvfs.inc - -BPN = "gvfs" - -DEPENDS = "gvfs gnome-disk-utility libgnome-keyring intltool-native" -PR = "${INC_PR}.0" - -# we need gdu files only: reduce files to delete in libexecdir -EXTRA_OECONF += "--disable-gphoto2 \ - --disable-afc \ - --disable-samba" - -do_install_append() { - rm -rf ${D}${sysconfdir} - rm -rf ${D}${bindir} - rm -rf ${D}${includedir} - rm -rf ${D}${libdir}/gio - rm -rf ${D}${libdir}/lib* - rmdir --ignore-fail-on-non-empty ${D}${libdir} - rm -rf ${D}${datadir}/gvfs/mounts - rm -rf ${D}${datadir}/glib-2.0 - rm -rf ${D}${datadir}/GConf - rm -f ${D}${datadir}/dbus-1/services/gvfs-* - rm -rf ${D}${datadir}/locale - rm -f ${D}${libexecdir}/gvfsd* - rm -f ${D}${libexecdir}/gvfs-fuse-daemon - rm -f ${D}${libexecdir}/gvfs-gphoto2-volume-monitor -} diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs.inc b/meta-gnome/recipes-gnome/gvfs/gvfs.inc deleted file mode 100644 index c516a40f10e..00000000000 --- a/meta-gnome/recipes-gnome/gvfs/gvfs.inc +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION = "gvfs is a userspace virtual filesystem" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" - -inherit gnome - -INC_PR = "r0" - -GNOME_COMPRESS_TYPE = "xz" - -SRC_URI[archive.md5sum] = "0c968704be003d2f6eab29388c41664e" -SRC_URI[archive.sha256sum] = "cd30facee5ad6cd0fafc5337bbf7c06a0bff3936f9ff2ae31519b301efcc9288" -SRC_URI += " \ - file://0001-Revert-Respect-UDISKS_AUTOMOUNT_HINT-available-in-re.patch \ - file://0002-Adapt-to-GLib-2.31-deprecations-and-thread-API-chang.patch \ - file://0003-Adapt-to-glib-mutex-API-changes.patch \ - file://0004-Adapt-to-glib-thread-API-changes.patch \ - file://0005-client-gdaemonfile.c-replace-g_memmove-by-memmove.patch \ -" - -EXTRA_OECONF = "--with-archive-includes=${STAGING_INCDIR} \ - --with-archive-libs=${STAGING_LIBDIR} \ -" - -FILES_${PN} += "${datadir}/dbus-1/services/*" - diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.10.1.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.10.1.bb deleted file mode 100644 index 131c8494801..00000000000 --- a/meta-gnome/recipes-gnome/gvfs/gvfs_1.10.1.bb +++ /dev/null @@ -1,33 +0,0 @@ -require gvfs.inc - -DEPENDS = "libsoup-2.4 gnome-keyring glib-2.0 avahi gconf libgphoto2 intltool-native" -# optional: obexftp libcdio libimobiledevice - -PR = "${INC_PR}.0" - -# in case of gnome-disk-utility was alresdy built: avoid double files -# afc is enabled when it detects libimobiledevice -EXTRA_OECONF += "--disable-gdu --disable-afc" - -PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash" - -FILES_${PN} += "${datadir}/glib-2.0 ${datadir}/GConf ${libdir}/gio/modules/*.so" -FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*" -FILES_${PN}-dev += "${libdir}/gio/modules/*.la" - -FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount" -FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount" -FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount" - -RDEPENDS_${PN} = "gvfs-gdu-volume-monitor" -RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh" - -PACKAGECONFIG ?= "${@base_contains('INCOMPATIBLE_LICENSE', 'GPLv3', '', 'samba', d)}" - -PACKAGECONFIG[samba] = "--enable-samba --with-samba-includes=${STAGING_INCDIR} \ - --with-samba-libs=${STAGING_LIBDIR}, --disable-samba, samba" -# needs meta-filesystems -PACKAGECONFIG[fuse] = "--enable-fuse, --disable-fuse, fuse" -PACKAGECONFIG[archive] = "--enable-archive, --disable-archive, libarchive" -PACKAGECONFIG[obexftp] = "--enable-obexftp, --disable-obexftp, bluez4 expat" -PACKAGECONFIG[cdda] = "--enable-cdda, --disable-cdda, libcdio" diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.32.1.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.32.1.bb new file mode 100644 index 00000000000..d38068836cb --- /dev/null +++ b/meta-gnome/recipes-gnome/gvfs/gvfs_1.32.1.bb @@ -0,0 +1,66 @@ +DESCRIPTION = "gvfs is a userspace virtual filesystem" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e" + +inherit gnome bash-completion gettext + +DEPENDS += "libsecret glib-2.0 gconf intltool-native libgudev udisks2 polkit shadow-native" + +SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive" + +SRC_URI[archive.md5sum] = "cbe766b46f324e17d7abcfb4a89a1684" +SRC_URI[archive.sha256sum] = "d0b6c9edab09d52472355657a2f0a14831b2e6c58caba395f721ab683f836ade" + +EXTRA_OECONF = " \ + --disable-gdu \ + --enable-udisks2 \ + --disable-documentation \ + --with-archive-includes=${STAGING_INCDIR} \ + --with-archive-libs=${STAGING_LIBDIR} \ +" + +PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash" + +FILES_${PN} += " \ + ${datadir}/glib-2.0 \ + ${datadir}/GConf \ + ${datadir}/dbus-1/services \ + ${libdir}/gio/modules/*.so \ + ${libdir}/tmpfiles.d \ + ${systemd_user_unitdir} \ +" +RDEPENDS_${PN} = "udisks2" + +FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/*" +FILES_${PN}-dev += "${libdir}/gio/modules/*.la" + +FILES_gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount" +FILES_gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount" +FILES_gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount" + +RRECOMMENDS_gvfsd-ftp += "openssh-sftp openssh-ssh" + +PACKAGECONFIG ?= "libgphoto2 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" + +PACKAGECONFIG[afc] = "--enable-afc, --disable-afc, libimobiledevice libplist" +PACKAGECONFIG[archive] = "--enable-archive, --disable-archive, libarchive" +PACKAGECONFIG[avahi] = "--enable-avahi, --disable-avahi, avahi" +PACKAGECONFIG[gcr] = "--enable-gcr, --disable-gcr, gcr" +PACKAGECONFIG[gtk] = "--enable-gtk, --disable-gtk, gtk+3" +PACKAGECONFIG[http] = "--enable-http, --disable-http, libsoup-2.4" +PACKAGECONFIG[libmtp] = "--enable-libmtp, --disable-libmtp, libmtp" +PACKAGECONFIG[libgphoto2] = "--enable-gphoto2, --disable-gphoto2, libgphoto2" +PACKAGECONFIG[samba] = "--enable-samba, --disable-samba, samba" +PACKAGECONFIG[systemd] = "--with-systemduserunitdir=${systemd_user_unitdir},--without-systemduserunitdir,systemd" + +# needs meta-filesystems +PACKAGECONFIG[fuse] = "--enable-fuse, --disable-fuse, fuse" + +# libcdio-paranoia recipe doesn't exist yet +PACKAGECONFIG[cdda] = "--enable-cdda, --disable-cdda, libcdio-paranoia" + +# Fix up permissions on polkit rules.d to work with rpm4 constraints +do_install_append() { + chmod 700 ${D}/${datadir}/polkit-1/rules.d + chown polkitd:root ${D}/${datadir}/polkit-1/rules.d +} diff --git a/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb b/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb deleted file mode 100644 index 6e1997f7751..00000000000 --- a/meta-gnome/recipes-gnome/gweather/libgweather3_3.0.2.bb +++ /dev/null @@ -1,28 +0,0 @@ -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SECTION = "x11/gnome/libs" -DEPENDS = "libxml2 gconf libsoup-2.4 gtk+3" - -PNBLACKLIST[libgweather3] ?= "CONFLICT: 876 files are conflicting with libgweather" -# e.g. sysroots/qemux86-64/usr/share/libgweather/locations.dtd -# sysroots/qemux86-64/usr/share/libgweather/Locations.zh_TW.xml - -BPN = "libgweather" - -inherit gnome -SRC_URI[archive.md5sum] = "f1a96c6f19c9a0bc6b4e12acc9a8a85d" -SRC_URI[archive.sha256sum] = "9041526fa0466b99dae5cf06c2cc70376f25531eec5d58b1e1378acfb302410c" - -do_configure_prepend() { - sed -i -e 's: doc : :g' ${S}/Makefile.am -} - -FILES_${PN} += "${datadir}/gnome* \ - ${datadir}/icons" - -PACKAGES =+ "${PN}-locationdata" -FILES_${PN}-locationdata = "${datadir}/libgweather/*ocations*" - - - diff --git a/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb b/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb deleted file mode 100644 index 09388fb7f48..00000000000 --- a/meta-gnome/recipes-gnome/gweather/libgweather_2.30.3.bb +++ /dev/null @@ -1,22 +0,0 @@ -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -SECTION = "x11/gnome/libs" -DEPENDS = "libxml2 gconf libsoup-2.4 gtk+ libgnome-keyring" - -inherit gnome - -SRC_URI[archive.md5sum] = "bf6a0a05051341ecb250f332e3edfb88" -SRC_URI[archive.sha256sum] = "b835374661423f37c46aa8e37368ae24a68856f117b7c21e475a21efdba5264c" - -do_configure_prepend() { - sed -i -e 's: doc : :g' ${S}/Makefile.am -} - -FILES_${PN} += "${datadir}/gnome* \ - ${datadir}/icons" - -PACKAGES =+ "${PN}-locationdata" -FILES_${PN}-locationdata = "${datadir}/libgweather/Locations*" - - diff --git a/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb b/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb new file mode 100644 index 00000000000..c2157df0cb4 --- /dev/null +++ b/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "GLib-based library for accessing online service APIs using the GData protocol" +HOMEPAGE = "http://live.gnome.org/libgdata" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://gdata/gdata.h;endline=20;md5=079a554efcf65d46f96a515806e7e99a \ + file://gdata/gdata-types.h;endline=20;md5=7399b111aac8718da13888fc634be6ef" + +DEPENDS = "gnome-common-native libxml2 glib-2.0 libsoup-2.4 intltool-native liboauth gcr json-glib" + +inherit gnomebase pkgconfig autotools-brokensep gettext gtk-doc vala gobject-introspection + +do_configure_prepend_class-target () { + # introspection.m4 pre-packaged with upstream tarballs does not yet + # have our fixes + rm -f ${S}/introspection.m4 +} + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gdata/.libs" +} + +EXTRA_OECONF += "--disable-goa --disable-tests --disable-gtk-doc" + +SRC_URI[archive.md5sum] = "eb552a8a8482e4231a3d1baf7262e64d" +SRC_URI[archive.sha256sum] = "8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827" diff --git a/meta-gnome/recipes-gnome/libgdata/libgdata_0.7.1.bb b/meta-gnome/recipes-gnome/libgdata/libgdata_0.7.1.bb deleted file mode 100644 index 5b367de7b17..00000000000 --- a/meta-gnome/recipes-gnome/libgdata/libgdata_0.7.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "GLib-based library for accessing online service APIs using the GData protocol" -HOMEPAGE = "http://live.gnome.org/libgdata" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ - file://gdata/gdata.h;endline=20;md5=079a554efcf65d46f96a515806e7e99a \ - file://gdata/gdata-types.h;endline=20;md5=7399b111aac8718da13888fc634be6ef" - -DEPENDS = "libxml2 glib-2.0 libsoup-2.4 intltool-native" - -inherit gnomebase pkgconfig autotools-brokensep gettext gtk-doc - -SRC_URI[archive.md5sum] = "ec5262cbcb07b63b58d45aa3ac636096" -SRC_URI[archive.sha256sum] = "fb244138276a5ce98510b0e2408bbf6f9ce0fd8cdcf86f07cd4be38afbb7c2bc" diff --git a/meta-gnome/recipes-gnome/libgnome/libgnome_2.32.1.bb b/meta-gnome/recipes-gnome/libgnome/libgnome_2.32.1.bb index 0a2f41ceaf9..0055ba4a3a8 100644 --- a/meta-gnome/recipes-gnome/libgnome/libgnome_2.32.1.bb +++ b/meta-gnome/recipes-gnome/libgnome/libgnome_2.32.1.bb @@ -10,8 +10,9 @@ PR = "r2" SRC_URI[archive.md5sum] = "a4345e6087ae6195d65a4674ffdca559" SRC_URI[archive.sha256sum] = "b2c63916866485793b87398266dd7778548c1734923c272a94d84ee011b6f7a4" SRC_URI += "file://0001-libgnome-Makefile.am-allow-deprecated-symbols.patch" +GNOME_COMPRESS_TYPE="bz2" -DEPENDS += "libcanberra gconf-native gnome-vfs libbonobo esound" +DEPENDS += "libcanberra gconf-native gnome-vfs libbonobo esound intltool-native gnome-common-native" EXTRA_OECONF += "--disable-gtk-doc" diff --git a/meta-gnome/recipes-gnome/libgnome/libgnomecanvas_2.30.3.bb b/meta-gnome/recipes-gnome/libgnome/libgnomecanvas_2.30.3.bb index fd8f6898e3a..41a89cedee4 100644 --- a/meta-gnome/recipes-gnome/libgnome/libgnomecanvas_2.30.3.bb +++ b/meta-gnome/recipes-gnome/libgnome/libgnomecanvas_2.30.3.bb @@ -8,10 +8,11 @@ inherit gnomebase gtk-doc # intltool to provide IT_PROG_INTLTOOL # configure: line 12654: syntax error near unexpected token `0.35.0' # configure: line 12654: `IT_PROG_INTLTOOL(0.35.0)' -DEPENDS = "gtk+ libglade libart-lgpl xineramaproto intltool-native" +DEPENDS = "gtk+ libglade libart-lgpl xineramaproto intltool-native gnome-common-native" SRC_URI[archive.md5sum] = "ffcbb719c671ff5cd86e59aeba8d0b92" SRC_URI[archive.sha256sum] = "859b78e08489fce4d5c15c676fec1cd79782f115f516e8ad8bed6abcb8dedd40" +GNOME_COMPRESS_TYPE="bz2" FILES_${PN} += "${libdir}/libglade/*/libcanvas.so" FILES_${PN}-dbg += "${libdir}/libglade/*/.debug/" diff --git a/meta-gnome/recipes-gnome/libgnome/libgnomekbd_2.32.0.bb b/meta-gnome/recipes-gnome/libgnome/libgnomekbd_2.32.0.bb deleted file mode 100644 index d14806215c2..00000000000 --- a/meta-gnome/recipes-gnome/libgnome/libgnomekbd_2.32.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "GNOME keyboard library" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812" - -SECTION = "x11/gnome/libs" - -DEPENDS = "gconf gtk+ glib-2.0 libxklavier" - -inherit gnome - -SRC_URI[archive.md5sum] = "de32a6e3e3464b566eecdc4332bf34bd" -SRC_URI[archive.sha256sum] = "ddd52c4cc7d83ad7ef964a1bcb4db87407e65b00ffc3e70c088ca4ee7383d256" - -do_configure_append() { - find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g - find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g -} - diff --git a/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb b/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb new file mode 100644 index 00000000000..12ed81d4fd0 --- /dev/null +++ b/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "GNOME keyboard library" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812" + +SECTION = "x11/gnome/libs" + +DEPENDS = "gconf glib-2.0 libxklavier gtk+3 intltool-native" + +inherit gnome gobject-introspection gettext + +GNOME_COMPRESS_TYPE = "xz" + +SRC_URI[archive.md5sum] = "7b1ebf99f4254c99922163c262c7ff04" +SRC_URI[archive.sha256sum] = "340b30dabfebbd4e0e6c0fe34a378966dd5640b5d44595ab8a19b0be255d77df" + +EXTRA_OECONF_remove = "--disable-schemas-install" + diff --git a/meta-gnome/recipes-gnome/libgnome/libgnomeui.inc b/meta-gnome/recipes-gnome/libgnome/libgnomeui.inc deleted file mode 100644 index 26997b851d4..00000000000 --- a/meta-gnome/recipes-gnome/libgnome/libgnomeui.inc +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "GNOME User Interface Library" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" - -SECTION = "x11/gnome/libs" -DEPENDS = "libgnome libgnomecanvas libbonoboui libgnome-keyring intltool-native" - -inherit gnome - -FILES_${PN} += "${libdir}/gtk-2.0/*/filesystems/lib*.so \ - ${libdir}/libglade/*/lib*.so \ - ${datadir}/pixmaps/gnome-about-logo.png" -FILES_${PN}-dev += "${libdir}/gtk-2.0/*/filesystems/*.la ${libdir}/gtk-2.0/*/filesystems/*.a ${libdir}/libglade/*/*.la" -FILES_${PN}-staticdev += "${libdir}/libglade/*/*.a" -FILES_${PN}-dbg += "${libdir}/gtk-2.0/*/filesystems/.debug/ ${libdir}/libglade/*/.debug/" - -SRC_URI += "file://gnome-stock-pixbufs.h file://no-pixbuf-csource.patch" - -EXTRA_OECONF = "--disable-gtk-doc" - -do_configure_prepend() { - install -m 0644 ${WORKDIR}/gnome-stock-pixbufs.h ${S}/libgnomeui/pixmaps/gnome-stock-pixbufs.h -} - diff --git a/meta-gnome/recipes-gnome/libgnome/libgnomeui/0001-suppress-string-format-literal-warning-to-fix-build-.patch b/meta-gnome/recipes-gnome/libgnome/libgnomeui/0001-suppress-string-format-literal-warning-to-fix-build-.patch new file mode 100644 index 00000000000..abc9bdfbab7 --- /dev/null +++ b/meta-gnome/recipes-gnome/libgnome/libgnomeui/0001-suppress-string-format-literal-warning-to-fix-build-.patch @@ -0,0 +1,78 @@ +From 6697fcf9d7f53126b442bf19890640b5f88c8aa4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 29 Jul 2016 21:24:20 +0200 +Subject: [PATCH] suppress string format literal warning to fix build with gcc6 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +works around: +| ../../libgnomeui-2.24.5/libgnomeui/gnome-dateedit.c: In function 'day_selected': +| ../../libgnomeui-2.24.5/libgnomeui/gnome-dateedit.c:156:9: error: format not a string literal, format string not checked [-Werror=format-nonliteral] +| strftime_date_format, &mtm) == 0) +| ^~~~~~~~~~~~~~~~~~~~ +| ../../libgnomeui-2.24.5/libgnomeui/gnome-dateedit.c: In function 'gnome_date_edit_set_time': +| ../../libgnomeui-2.24.5/libgnomeui/gnome-dateedit.c:704:2: error: format not a string literal, format string not checked [-Werror=format-nonliteral] +| if (strftime (buffer, sizeof (buffer), strftime_date_format, mytm) == 0) +| ^~ + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + libgnomeui/gnome-dateedit.c | 6 ++++++ + libgnomeui/gnome-gconf-ui.c | 3 +++ + 2 files changed, 9 insertions(+) + +diff --git a/libgnomeui/gnome-dateedit.c b/libgnomeui/gnome-dateedit.c +index 69ab699..41541c3 100644 +--- a/libgnomeui/gnome-dateedit.c ++++ b/libgnomeui/gnome-dateedit.c +@@ -152,9 +152,12 @@ day_selected (GtkCalendar *calendar, GnomeDateEdit *gde) + else + mtm.tm_year = year; + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wformat-nonliteral" + if (strftime (buffer, sizeof (buffer), + strftime_date_format, &mtm) == 0) + strcpy (buffer, "???"); ++#pragma GCC diagnostic pop + buffer[sizeof(buffer)-1] = '\0'; + + /* FIXME: what about set time */ +@@ -701,8 +704,11 @@ gnome_date_edit_set_time (GnomeDateEdit *gde, time_t the_time) + mytm = localtime (&the_time); + + /* Set the date */ ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wformat-nonliteral" + if (strftime (buffer, sizeof (buffer), strftime_date_format, mytm) == 0) + strcpy (buffer, "???"); ++#pragma GCC diagnostic pop + buffer[sizeof(buffer)-1] = '\0'; + + str_utf8 = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL); +diff --git a/libgnomeui/gnome-gconf-ui.c b/libgnomeui/gnome-gconf-ui.c +index 43c0f44..a84b2c0 100644 +--- a/libgnomeui/gnome-gconf-ui.c ++++ b/libgnomeui/gnome-gconf-ui.c +@@ -180,12 +180,15 @@ error_idle_func (gpointer data) + "configuration settings may not work properly."); + } + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wformat-nonliteral" + dialog = gtk_message_dialog_new (NULL /* parent */, + 0 /* flags */, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + fmt, + gnome_program_get_human_readable_name(gnome_program_get())); ++#pragma GCC diagnostic pop + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); + g_signal_connect (dialog, "response", + G_CALLBACK (gtk_widget_destroy), +-- +2.5.5 + diff --git a/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.3.bb b/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.3.bb deleted file mode 100644 index 597c2ff9954..00000000000 --- a/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.3.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libgnomeui.inc - -PR = "r1" - -SRC_URI[archive.md5sum] = "ceab6f4370581d1a03c09f15cc103099" -SRC_URI[archive.sha256sum] = "04c81f3bb5a337cdf3ed1230916f82d29857ee95eb884f58dd2f5c6860efe803" diff --git a/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.5.bb b/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.5.bb new file mode 100644 index 00000000000..45219d4d77a --- /dev/null +++ b/meta-gnome/recipes-gnome/libgnome/libgnomeui_2.24.5.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "GNOME User Interface Library" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" + +SECTION = "x11/gnome/libs" +DEPENDS = "libgnome libgnomecanvas libbonoboui libgnome-keyring intltool-native gnome-common-native" + +inherit gnome + +FILES_${PN} += "${libdir}/gtk-2.0/*/filesystems/lib*.so \ + ${libdir}/libglade/*/lib*.so \ + ${datadir}/pixmaps/gnome-about-logo.png" +FILES_${PN}-dev += "${libdir}/gtk-2.0/*/filesystems/*.la ${libdir}/gtk-2.0/*/filesystems/*.a ${libdir}/libglade/*/*.la" +FILES_${PN}-staticdev += "${libdir}/libglade/*/*.a" + +SRC_URI += " \ + file://0001-suppress-string-format-literal-warning-to-fix-build-.patch \ + file://gnome-stock-pixbufs.h \ + file://no-pixbuf-csource.patch \ +" +SRC_URI[archive.md5sum] = "d4bb506b1916015323928faab5aa708b" +SRC_URI[archive.sha256sum] = "ae352f2495889e65524c979932c909f4629a58e64290fb0c95333373225d3c0f" +GNOME_COMPRESS_TYPE="bz2" + +EXTRA_OECONF = "--disable-gtk-doc" + +do_configure_prepend() { + install -m 0644 ${WORKDIR}/gnome-stock-pixbufs.h ${S}/libgnomeui/pixmaps/gnome-stock-pixbufs.h +} + +LDFLAGS += "-lm" diff --git a/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch b/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch new file mode 100644 index 00000000000..bc0090e17b4 --- /dev/null +++ b/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch @@ -0,0 +1,103 @@ +From 16d2c2e74350fda5505982fb150e72af7aee7454 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 19 Feb 2016 16:23:56 +0200 +Subject: [PATCH] configure.ac: drop a copy-paste of introspection.m4 macros + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + configure.ac | 78 +----------------------------------------------------------- + 1 file changed, 1 insertion(+), 77 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 54f7663..3038535 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -77,83 +77,7 @@ libgsf_reqs=" + " + + PKG_CHECK_MODULES(LIBGSF, $libgsf_reqs) +-# GObject Introspection +-GIR_REQ=1.0.0 +-AC_ARG_ENABLE(introspection, +- AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], +- [Enable introspection for this build]),, +- [enable_introspection=no]) +- +-AC_MSG_CHECKING([for gobject-introspection]) +- +-dnl presence/version checking +-AS_CASE([$enable_introspection], +-[no], [ +- found_introspection="no (disabled, use --enable-introspection to enable)" +-], +-[yes],[ +- PKG_CHECK_EXISTS([gobject-introspection-1.0],, +- AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) +- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ], +- found_introspection=yes, +- AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) +-], +-[auto],[ +- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ], found_introspection=yes, found_introspection=no) +-dnl Canonicalize enable_introspection +-enable_introspection=$found_introspection +-], +-[ +- AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) +-]) +- +-AC_MSG_RESULT([$found_introspection]) +- +-if test "x$found_introspection" = "xyes"; then +- dnl You can override INTROSPECTION_GIRDIR and INTROSPECTION_TYPELIBDIR +- dnl if you wish. If you override the latter, you might want to set +- dnl GI_TYPELIB_PATH to include the same directory. For example +- dnl +- dnl GI_TYPELIB_PATH=$PREFIX/lib64/girepository-1.0 +- dnl INTROSPECTION_TYPELIBDIR=$GI_TYPELIB_PATH +- dnl INTROSPECTION_GIRDIR=$PREFIX/share/gir-1.0 +- dnl +- dnl Note, that unlike binaries produced with libgsf, nothing tells +- dnl python where to find libgsf, so you might also need to set +- dnl LD_LIBRARY_PATH. +- +- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` +- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` +- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` +- if test "x$INTROSPECTION_GIRDIR" = x; then +- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` +- fi +- if test "x$INTROSPECTION_TYPELIBDIR" = x; then +- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" +- fi +- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` +- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` +- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection +-else +- INTROSPECTION_SCANNER= +- INTROSPECTION_COMPILER= +- INTROSPECTION_GENERATE= +- INTROSPECTION_GIRDIR= +- INTROSPECTION_TYPELIBDIR= +- INTROSPECTION_CFLAGS= +- INTROSPECTION_LIBS= +- INTROSPECTION_MAKEFILE= +-fi +-AC_SUBST(INTROSPECTION_SCANNER) +-AC_SUBST(INTROSPECTION_COMPILER) +-AC_SUBST(INTROSPECTION_GENERATE) +-AC_SUBST(INTROSPECTION_GIRDIR) +-AC_SUBST(INTROSPECTION_TYPELIBDIR) +-AC_SUBST(INTROSPECTION_CFLAGS) +-AC_SUBST(INTROSPECTION_LIBS) +-AC_SUBST(INTROSPECTION_MAKEFILE) +- +-AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") ++GOBJECT_INTROSPECTION_CHECK([1.46.0]) + dnl we need to change the install directories for distcheck + AC_ARG_WITH([gir-dir], + AS_HELP_STRING( +-- +2.7.0 + diff --git a/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb b/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb index d7bbd3bafd3..f5e2f1dd734 100644 --- a/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb +++ b/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb @@ -5,9 +5,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=dc7371b50816c96e145fa0f8ade8e24d \ SECTION = "libs" -DEPENDS= "libxml2 bzip2 glib-2.0 zlib" +DEPENDS= "libxml2 bzip2 glib-2.0 zlib intltool-native gnome-common-native" -inherit autotools pkgconfig gnome gconf +inherit autotools pkgconfig gnome gconf gobject-introspection + +SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch" SRC_URI[archive.md5sum] = "3056b94bb3281dbc8311371bfc23cf72" SRC_URI[archive.sha256sum] = "4d8bca33424eb711acdb6a060cb488b132063d699c4fa201db24c2c89c62529c" @@ -22,6 +24,6 @@ EXTRA_OECONF = "\ --with-bz2 \ " -RDEPENDS_${PN} = "gconf" +RDEPENDS_${PN} = "gconf" FILES_${PN} += "${datadir}/thumbnailers" diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-netload-Include-libc-net-headers-unconditionally.patch b/meta-gnome/recipes-gnome/libgtop/libgtop/0001-netload-Include-libc-net-headers-unconditionally.patch new file mode 100644 index 00000000000..c4f7da4bf66 --- /dev/null +++ b/meta-gnome/recipes-gnome/libgtop/libgtop/0001-netload-Include-libc-net-headers-unconditionally.patch @@ -0,0 +1,46 @@ +From 3c6f70e50cb586ac4add4dea627c316242691040 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 09:17:29 -0700 +Subject: [PATCH] netload: Include libc net headers unconditionally + +This fixes compile with musl, and this conditional +is not needed now a days if we are still using glibc < 1.0 +we have other bigger problems + +Signed-off-by: Khem Raj +--- + sysdeps/linux/netload.c | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/sysdeps/linux/netload.c b/sysdeps/linux/netload.c +index c275db2..446bddd 100644 +--- a/sysdeps/linux/netload.c ++++ b/sysdeps/linux/netload.c +@@ -34,8 +34,6 @@ + #include + #include + +-#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1 +-/* GNU LibC */ + #include + #include + #include +@@ -43,15 +41,6 @@ + #include + #include + #include +-#else /* Libc 5 */ +-#include +-#include +-#include +-#include +-#include +-#include +-#endif +- + + #ifdef HAVE_IFADDRS_H + /* needed for IPV6 support */ +-- +2.13.2 + diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop_2.28.2.bb b/meta-gnome/recipes-gnome/libgtop/libgtop_2.28.2.bb deleted file mode 100644 index 69a0f5c035a..00000000000 --- a/meta-gnome/recipes-gnome/libgtop/libgtop_2.28.2.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "LibGTop2" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://copyright.txt;md5=dbc839bf158d19a20e661db14db7a58c" - -inherit gnomebase lib_package gtk-doc -SRC_URI[archive.md5sum] = "ed44d736efd97d062b77621de6aff439" -SRC_URI[archive.sha256sum] = "49958d7da1f76b257bfd0d557d8ed2b218a5ab0d31b59fed1c32ddf2a1529f5d" - -DEPENDS = "glib-2.0 intltool-native libxau" diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop_2.30.0.bb b/meta-gnome/recipes-gnome/libgtop/libgtop_2.30.0.bb new file mode 100644 index 00000000000..946d11845cf --- /dev/null +++ b/meta-gnome/recipes-gnome/libgtop/libgtop_2.30.0.bb @@ -0,0 +1,15 @@ +SUMMARY = "LibGTop2" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://copyright.txt;md5=dbc839bf158d19a20e661db14db7a58c" + +inherit gnomebase lib_package gtk-doc distro_features_check gobject-introspection +# depends on libxau +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0001-netload-Include-libc-net-headers-unconditionally.patch \ + " +SRC_URI[archive.md5sum] = "ee29a9ef60659ebf4b075ac281f71cb2" +SRC_URI[archive.sha256sum] = "463bcbe5737b1b93f3345ee34abf601e8eb864f507c49ff1921c2737abafc1e5" + +DEPENDS = "glib-2.0 intltool-native libxau" diff --git a/meta-gnome/recipes-gnome/libidl/libidl-native_0.8.14.bb b/meta-gnome/recipes-gnome/libidl/libidl-native_0.8.14.bb index a27da5e8d4d..2252c44ee97 100644 --- a/meta-gnome/recipes-gnome/libidl/libidl-native_0.8.14.bb +++ b/meta-gnome/recipes-gnome/libidl/libidl-native_0.8.14.bb @@ -4,7 +4,7 @@ inherit native PR = "r1" -DEPENDS = "bison-native glib-2.0-native" +DEPENDS = "bison-native glib-2.0-native flex-native" SRC_URI[md5sum] = "bb8e10a218fac793a52d404d14adedcb" SRC_URI[sha256sum] = "c5d24d8c096546353fbc7cedf208392d5a02afe9d56ebcc1cccb258d7c4d2220" diff --git a/meta-gnome/recipes-gnome/libidl/libidl.inc b/meta-gnome/recipes-gnome/libidl/libidl.inc index a40203776be..1a5c8158208 100644 --- a/meta-gnome/recipes-gnome/libidl/libidl.inc +++ b/meta-gnome/recipes-gnome/libidl/libidl.inc @@ -1,4 +1,5 @@ DESCRIPTION = "Library for parsing CORBA IDL files" +HOMEPAGE = "http://andrewtv.org/libIDL/" SECTION = "x11/gnome/libs" LICENSE = "LGPLv2+" diff --git a/meta-gnome/recipes-gnome/libnotify/libnotify3_0.7.3.bb b/meta-gnome/recipes-gnome/libnotify/libnotify3_0.7.3.bb deleted file mode 100644 index b66fe973eb1..00000000000 --- a/meta-gnome/recipes-gnome/libnotify/libnotify3_0.7.3.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Send desktop notifications to a notification daemon" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -DEPENDS = "dbus gtk+3" - -# conflicts with libnotify, mixing them in build breaks couple of packages -EXCLUDE_FROM_WORLD = "1" - -BPN = "libnotify" - -inherit gnome lib_package - -SRC_URI[archive.md5sum] = "d20676bde7bd2d276508d019dc7276f1" -SRC_URI[archive.sha256sum] = "322541fdf276eb803686df81763a5186af041b2ee3e9cc5fa1dc86c550388c88" diff --git a/meta-gnome/recipes-gnome/libsecret/libsecret_0.18.bb b/meta-gnome/recipes-gnome/libsecret/libsecret_0.18.bb deleted file mode 100644 index dca33500337..00000000000 --- a/meta-gnome/recipes-gnome/libsecret/libsecret_0.18.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" - -inherit gnomebase gtk-doc - -DEPENDS = "glib-2.0 libgcrypt" - -GNOME_COMPRESS_TYPE = "xz" - -EXTRA_OECONF += "--disable-manpages" - -SRC_URI[archive.md5sum] = "279d723cd005e80d1d304f74a3488acc" -SRC_URI[archive.sha256sum] = "0c73aa762dbd1e38ba7b03de350e23ce818cb810b0784375e95ef61e004b02e3" diff --git a/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.5.bb b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.5.bb new file mode 100644 index 00000000000..d6aeed380fd --- /dev/null +++ b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.5.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Time zone map widget for Gtk+" +HOMEPAGE = "https://launchpad.net/timezonemap" +SECTION = "devel/lib" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/libt/${BPN}/${BPN}_${PV}.tar.gz \ +" +SRC_URI[md5sum] = "054306fa998fe580f17b68aa1e16551b" +SRC_URI[sha256sum] = "327e64a17c676c1bcda3b6ba3394d3d01250e5ac9a49222b9ff5737d90b15383" + + +DEPENDS = "gtk+3 gdk-pixbuf libsoup-2.4 json-glib gnome-common-native \ +" + +B = "${S}" + +inherit autotools pkgconfig gobject-introspection + +do_configure_prepend() { + (cd ${S}; NOCONFIGURE="yes" . ${S}/autogen.sh) +} diff --git a/meta-gnome/recipes-gnome/libwnck/libwnck3_3.0.2.bb b/meta-gnome/recipes-gnome/libwnck/libwnck3_3.0.2.bb deleted file mode 100644 index fd0ecd9b32f..00000000000 --- a/meta-gnome/recipes-gnome/libwnck/libwnck3_3.0.2.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Window navigation construction toolkit" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -BPN = "libwnck" - -SECTION = "x11/libs" -DEPENDS = "gobject-introspection-stub gtk+3 gdk-pixbuf-native libxres" - -PR = "r1" - -PACKAGECONFIG ??= "startup-notification" -PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" - -inherit gnomebase -SRC_URI[archive.md5sum] = "e4ea87320dd0600a81c50186e3804aae" -SRC_URI[archive.sha256sum] = "4946b612c22d53238810d431f1b05c21f073f201edfd247ff74e2fa228618083" diff --git a/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb b/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb new file mode 100644 index 00000000000..02149fbec25 --- /dev/null +++ b/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "Window navigation construction toolkit" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +BPN = "libwnck" + +SECTION = "x11/libs" +DEPENDS = "intltool-native gnome-common-native gtk+3 gdk-pixbuf-native libxres" + +PACKAGECONFIG ??= "startup-notification" +PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" + +inherit gnomebase gobject-introspection gtk-doc +SRC_URI[archive.md5sum] = "487938d65d4bfae1f2501052b1bd7492" +SRC_URI[archive.sha256sum] = "1cb03716bc477058dfdf3ebfa4f534de3b13b1aa067fcd064d0b7813291cba72" + +inherit distro_features_check +# libxres means x11 only +REQUIRED_DISTRO_FEATURES = "x11" diff --git a/meta-gnome/recipes-gnome/libwnck/libwnck_2.30.5.bb b/meta-gnome/recipes-gnome/libwnck/libwnck_2.30.5.bb deleted file mode 100644 index 61836d260c4..00000000000 --- a/meta-gnome/recipes-gnome/libwnck/libwnck_2.30.5.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Window navigation construction toolkit" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -PR = "r2" - -SECTION = "x11/libs" -DEPENDS = "gobject-introspection-stub gtk+ gdk-pixbuf-native libxres" - -PACKAGECONFIG ??= "startup-notification" -PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" - -inherit gnomebase -SRC_URI[archive.md5sum] = "4162d5b96151e6d24ec02ae3a822203c" -SRC_URI[archive.sha256sum] = "56b6681e89cd45491bb640165d62276d81369a08974042b26645dc1e0e954cc1" diff --git a/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb b/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb new file mode 100644 index 00000000000..ea4c8df533e --- /dev/null +++ b/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "Window navigation construction toolkit" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +SECTION = "x11/libs" +DEPENDS = "intltool-native gnome-common-native gtk+ gdk-pixbuf-native libxres" + +PACKAGECONFIG ??= "startup-notification" +PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" + +inherit gnomebase gobject-introspection distro_features_check +REQUIRED_DISTRO_FEATURES = "x11" + +GNOME_COMPRESS_TYPE = "xz" +SRC_URI[archive.md5sum] = "f03e1139296e2a3a92e3b65a3080cd32" +SRC_URI[archive.sha256sum] = "83f732d20781fc88b22cdc6aaf2d4f388db6d3d4ff28d1a8fd45be9fb7743a9e" + +do_install_append() { + # to avoid conflicts with libwnck3 remove cmdline tools + # if the tools are requrired add libwnck3 to your image + rm ${D}${bindir}/wnckprop + rm ${D}${bindir}/wnck-urgency-monitor + rmdir ${D}${bindir} +} diff --git a/meta-gnome/recipes-gnome/libxklavier/files/fix-do_installe-failure.patch b/meta-gnome/recipes-gnome/libxklavier/files/fix-do_installe-failure.patch new file mode 100644 index 00000000000..29eeef3d500 --- /dev/null +++ b/meta-gnome/recipes-gnome/libxklavier/files/fix-do_installe-failure.patch @@ -0,0 +1,36 @@ +From 2343283caf88d2390afee08fe034b4c970b20f2e Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Sat, 16 Apr 2016 06:40:04 -0400 +Subject: [PATCH] fix do_installe failure + +| 18 /usr/bin/install -c -m 644 ../../libxklavier-5.4/libxklavier/libxklavier.vapi +libxklavier.deps 'tmp/work/corei7-64-wrs-linux/libxklavier/5.4-r0/image/ +usr/share/vala/vapi' +| 19 /usr/bin/install: cannot stat '../../libxklavier-5.4/libxklavier/ +libxklavier.vapi': No such file or directory +| 20 Makefile:621: recipe for target 'install-vapiDATA' failed +| 21 make[3]: *** [install-vapiDATA] Error 1 +| 22 make[3]: *** Waiting for unfinished jobs.... + +Upstream-Stauts: Pending + +Signed-off-by: Hongxu Jia +--- + libxklavier/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libxklavier/Makefile.am b/libxklavier/Makefile.am +index c9c1bbe..f0efa32 100644 +--- a/libxklavier/Makefile.am ++++ b/libxklavier/Makefile.am +@@ -131,6 +131,6 @@ libxklavier.deps: + done + + vapidir = $(datadir)/vala/vapi +-vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps) ++vapi_DATA = $(VAPIGEN_VAPIS:.vapi=.deps) + endif + endif +-- +1.9.1 + diff --git a/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.3.bb b/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.3.bb deleted file mode 100644 index e93c378ab96..00000000000 --- a/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.3.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "Helper lib for keyboard management" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812" - -DEPENDS = "xkbcomp gtk+ iso-codes libxi libxml2" - -GNOME_COMPRESS_TYPE = "xz" - -inherit gnomebase gettext -SRC_URI[archive.md5sum] = "290ea2a8abc40f78a3a16bdae6f02808" -SRC_URI[archive.sha256sum] = "ebec3bc54b5652838502b96223152fb1cd8fcb14ace5cb02d718fc3276bbd404" - -EXTRA_OECONF = "--with-xkb-bin-base=${bindir}" - -do_configure_append() { - find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g - find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g -} - -do_compile_append() { - sed -i -e s:${STAGING_DIR_TARGET}::g \ - -e s:/${TARGET_SYS}::g \ - libxklavier.pc -} - - diff --git a/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb b/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb new file mode 100644 index 00000000000..2ef54f212f2 --- /dev/null +++ b/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb @@ -0,0 +1,35 @@ +SUMMARY = "Helper lib for keyboard management" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812" + +DEPENDS = "xkbcomp gtk+ iso-codes libxi libxml2" + +inherit autotools pkgconfig gettext gobject-introspection distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +RDEPENDS_${PN} += "iso-codes xkbcomp" + +SRC_URI = " \ + http://pkgs.fedoraproject.org/repo/pkgs/${BPN}/${BPN}-${PV}.tar.bz2/13af74dcb6011ecedf1e3ed122bd31fa/${BPN}-${PV}.tar.bz2 \ + file://fix-do_installe-failure.patch \ +" +SRC_URI[md5sum] = "13af74dcb6011ecedf1e3ed122bd31fa" +SRC_URI[sha256sum] = "17a34194df5cbcd3b7bfd0f561d95d1f723aa1c87fca56bc2c209514460a9320" + +FILES_${PN} += "${datadir}/*" + +EXTRA_OECONF = "--with-xkb-bin-base=${bindir}" + +do_configure_append() { + find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g + find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g +} + +do_compile_append() { + sed -i -e s:${STAGING_DIR_TARGET}::g \ + -e s:/${TARGET_SYS}::g \ + libxklavier.pc +} + + diff --git a/meta-gnome/recipes-gnome/metacity/metacity/0001-ui-Define-_GNU_SOURCE.patch b/meta-gnome/recipes-gnome/metacity/metacity/0001-ui-Define-_GNU_SOURCE.patch new file mode 100644 index 00000000000..539d756b3e8 --- /dev/null +++ b/meta-gnome/recipes-gnome/metacity/metacity/0001-ui-Define-_GNU_SOURCE.patch @@ -0,0 +1,27 @@ +From e7fd072f0df968f342878b77098e97ff07ed28d7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 10:26:31 -0700 +Subject: [PATCH] ui: Define _GNU_SOURCE + +it becomes portable across musl and glibc + +Signed-off-by: Khem Raj +--- + src/ui/theme.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/ui/theme.c b/src/ui/theme.c +index 84b57a0..c7eafc8 100644 +--- a/src/ui/theme.c ++++ b/src/ui/theme.c +@@ -60,6 +60,7 @@ + #include + #include + #include ++#define _GNU_SOURCE + #define __USE_XOPEN + #include + +-- +2.13.3 + diff --git a/meta-gnome/recipes-gnome/metacity/metacity_2.34.13.bb b/meta-gnome/recipes-gnome/metacity/metacity_2.34.13.bb index 9c48238ffb5..370de700087 100644 --- a/meta-gnome/recipes-gnome/metacity/metacity_2.34.13.bb +++ b/meta-gnome/recipes-gnome/metacity/metacity_2.34.13.bb @@ -7,11 +7,16 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ DEPENDS = "gsettings-desktop-schemas startup-notification gtk+ gconf gdk-pixbuf-native libcanberra gnome-doc-utils libgtop intltool-native" PR = "r1" -inherit gnomebase update-alternatives +inherit gnomebase update-alternatives distro_features_check +# depends on startup-notification which depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" GNOME_COMPRESS_TYPE = "xz" -SRC_URI += "file://remove-yelp-help-rules-var.patch" +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://remove-yelp-help-rules-var.patch \ + file://0001-ui-Define-_GNU_SOURCE.patch \ + " SRC_URI[archive.md5sum] = "6d89b71672d4fa49fc87f83d610d0ef6" SRC_URI[archive.sha256sum] = "8cf4dbf0da0a6f36357ce7db7f829ec685908a7792453c662fb8184572b91075" diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch b/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch deleted file mode 100644 index 0062cfb11a3..00000000000 --- a/meta-gnome/recipes-gnome/nautilus/nautilus/idl-sysroot.patch +++ /dev/null @@ -1,7 +0,0 @@ -Index: nautilus-2.24.2/add-include-prefix -=================================================================== ---- nautilus-2.24.2.orig/add-include-prefix 2008-10-06 17:22:21.000000000 +0000 -+++ nautilus-2.24.2/add-include-prefix 2009-04-09 16:00:05.000000000 +0000 -@@ -1 +1 @@ --sed -e 's/^/ /' -e 's/ */ /g' -e 's/ / -I /g' -e 's/ -I $//' -+sed -e 's:^: :' -e 's: *: :g' -e 's: : -I '"$SYSROOT"':g' -e 's: -I '"$SYSROOT"'$::' diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch b/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch deleted file mode 100644 index 43a6152d838..00000000000 --- a/meta-gnome/recipes-gnome/nautilus/nautilus/no-G_DISABLE_DEPRECATED.patch +++ /dev/null @@ -1,44 +0,0 @@ -From e7233d98c114b03c7c8b96d1f41770452da14aa7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Mon, 17 Oct 2011 00:59:01 +0200 -Subject: [PATCH] nautilus build fails for newer glib versions -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -build with glib-2.0 v2.30.0 run into errors for at least G_CONST_RETURN missing - -Signed-off-by: Andreas Müller ---- - configure.in | 2 +- - eel/Makefile.am | 1 - - 2 files changed, 1 insertions(+), 2 deletions(-) - -diff --git a/configure.in b/configure.in -index 97e171e..859a097 100644 ---- a/configure.in -+++ b/configure.in -@@ -342,7 +342,7 @@ AC_SUBST(CORE_CFLAGS) - CORE_LIBS="`$PKG_CONFIG --libs $CORE_MODULES` $x_libs" - AC_SUBST(CORE_LIBS) - --DISABLE_DEPRECATED_CFLAGS="-DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED" -+DISABLE_DEPRECATED_CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED" - AC_SUBST(DISABLE_DEPRECATED_CFLAGS) - - dnl Multimedia keys -diff --git a/eel/Makefile.am b/eel/Makefile.am -index b1fe356..c1d56cd 100644 ---- a/eel/Makefile.am -+++ b/eel/Makefile.am -@@ -10,7 +10,6 @@ INCLUDES = \ - -DDATADIR=\""$(datadir)"\" \ - -DSOURCE_DATADIR=\""$(top_srcdir)/data"\" \ - -DGNOMELOCALEDIR=\""$(prefix)/${DATADIRNAME}/locale"\" \ -- -DG_DISABLE_DEPRECATED \ - -DGDK_PIXBUF_DISABLE_DEPRECATED \ - -DGMENU_I_KNOW_THIS_IS_UNSTABLE \ - $(NULL) --- -1.7.4.4 - diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb b/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb deleted file mode 100644 index 1acf8d3e9c1..00000000000 --- a/meta-gnome/recipes-gnome/nautilus/nautilus3_3.2.1.bb +++ /dev/null @@ -1,53 +0,0 @@ -# nautilus OE build file -# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see packages/COPYING) - -LICENSE="GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426 \ - file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" - -PR = "r4" - -DEPENDS = "libnotify3 gtk+3 libunique gvfs librsvg libexif gnome-desktop3" -# optional: tracker - -# needs libnotify3 which conflicts with libnotify, mixing them in build breaks couple of packages -EXCLUDE_FROM_WORLD = "1" - -# to include nautilus3/no-try-run-strftime.diff before the rest -FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" -BPN = "nautilus" -inherit gnome - -SRC_URI += "file://no-try-run-strftime.diff" -SRC_URI[archive.md5sum] = "ecd100ed94431363fa68b217351649c0" -SRC_URI[archive.sha256sum] = "584e97d3eb093ee16a779809b679150a636bcd4a3767fb604993013b523d2df1" - -EXTRA_OECONF = " --disable-gtk-doc --disable-update-mimedb --enable-nst-extension" -export SYSROOT = "${STAGING_DIR_HOST}" - -do_configure() { - sed -i -e /docs/d Makefile.am - autotools_do_configure -} - -RDEPENDS_${PN} = "gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash glib-2.0-utils" -FILES_${PN} += "${datadir}/icons \ - /usr/libexec/ \ - ${datadir}/nautilus* \ - ${datadir}/dbus-1 \ - ${libdir}/nautilus/extensions*/*.so \ -" -FILES_${PN}-dbg += "/usr/libexec/.debug \ - ${libdir}/nautilus/extensions*/.debug" - -# Don't make nautils drag us in -PRIVATE_LIBS = "libnautilus-extension.so.1" - -pkg_postinst_${PN} () { -if [ -n "$D" ]; then - exit 1 -fi - -glib-compile-schemas ${datadir}/glib-2.0/schemas -} diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb b/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb deleted file mode 100644 index 4be3f084e50..00000000000 --- a/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb +++ /dev/null @@ -1,40 +0,0 @@ -# nautilus OE build file -# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see packages/COPYING) - -LICENSE="GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=7c0048536e43642a1f3a724c2909872b \ - file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" - -PR = "r6" - -DEPENDS = "gdk-pixbuf gtk+ libunique gvfs librsvg libexif esound gnome-desktop orbit2-native" -# optional: tracker - -inherit gnome - -SRC_URI[archive.md5sum] = "51565aa10d1625dff56e381228346911" -SRC_URI[archive.sha256sum] = "2d4ff28c7a7aa5d40eb2468149954a564c257a305183773057584d22d15347a2" - -SRC_URI += "file://idl-sysroot.patch \ - file://no-try-run-strftime.diff \ - file://no-G_DISABLE_DEPRECATED.patch \ -" - - -EXTRA_OECONF = " --disable-gtk-doc --disable-update-mimedb " -export SYSROOT = "${STAGING_DIR_HOST}" - -do_configure() { - sed -i -e /docs/d ${S}/Makefile.am - autotools_do_configure - # We need native orbit-idl with target idl files. No way to say it in a clean way: - find ${B} -name Makefile -exec sed -i '/\/usr\/bin\/orbit-idl-2/{s:/usr/bin:${STAGING_BINDIR_NATIVE}:;s:/usr/share:${STAGING_DATADIR}:g}' {} \; -} - -RDEPENDS_${PN} = "gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash glib-networking" -FILES_${PN} += "${datadir}/icons" - -# Don't make nautils3 drag us in -PRIVATE_LIBS = "libnautilus-extension.so.1" - diff --git a/meta-gnome/recipes-gnome/nonworking/gcalctool/gcalctool/fix-includedir.patch b/meta-gnome/recipes-gnome/nonworking/gcalctool/gcalctool/fix-includedir.patch deleted file mode 100644 index aeb02ab2c1f..00000000000 --- a/meta-gnome/recipes-gnome/nonworking/gcalctool/gcalctool/fix-includedir.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- - Makefile.am | 2 +- - gcalctool/Makefile.am | 2 -- - 2 files changed, 1 insertion(+), 3 deletions(-) - -Index: gcalctool-5.8.17/gcalctool/Makefile.am -=================================================================== ---- gcalctool-5.8.17.orig/gcalctool/Makefile.am 2005-12-19 15:46:57.000000000 +0000 -+++ gcalctool-5.8.17/gcalctool/Makefile.am 2007-05-16 16:03:26.000000000 +0100 -@@ -1,8 +1,6 @@ - ## Process this file with automake to produce Makefile.in - - INCLUDES = \ -- -I$(includedir) \ -- -DG_DISABLE_DEPRECATED \ - -DGDK_PIXBUF_DISABLE_DEPRECATED \ - -DGDK_DISABLE_DEPRECATED \ - -DGNOME_DISABLE_DEPRECATED \ -Index: gcalctool-5.8.17/Makefile.am -=================================================================== ---- gcalctool-5.8.17.orig/Makefile.am 2007-05-16 15:35:44.000000000 +0100 -+++ gcalctool-5.8.17/Makefile.am 2007-05-16 16:06:46.000000000 +0100 -@@ -29,7 +29,7 @@ DISTCLEANFILES = \ - gnome-doc-utils.make \ - gcalctool.desktop - --SUBDIRS = po gcalctool help -+SUBDIRS = po gcalctool - - SCHEMAS_FILE = gcalctool.schemas - diff --git a/meta-gnome/recipes-gnome/nonworking/gcalctool/gcalctool_5.32.0.bb b/meta-gnome/recipes-gnome/nonworking/gcalctool/gcalctool_5.32.0.bb deleted file mode 100644 index 4812fe3876b..00000000000 --- a/meta-gnome/recipes-gnome/nonworking/gcalctool/gcalctool_5.32.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "gcalctool is a powerful calculator" -SECTION = "x11" -DEPENDS = "gtk+ gnome-doc-utils" - -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" -SRC_URI = "http://download.gnome.org/sources/${BPN}/${SHRT_VER}/${BP}.tar.gz" - -SRC_URI[md5sum] = "48db927c6e7ee1d5395f953a8c184c98" -SRC_URI[sha256sum] = "346f645c0fdef900642f6e9a2c18e7ba9a7ca9bc62fe2b08eb418f065a425c89" - -inherit autotools pkgconfig gsettings - -do_configure_prepend() { - sed -i -e "s: help: :g" ${S}/Makefile.am -} diff --git a/meta-gnome/recipes-gnome/nonworking/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch b/meta-gnome/recipes-gnome/nonworking/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch deleted file mode 100644 index cb03fd86e55..00000000000 --- a/meta-gnome/recipes-gnome/nonworking/system-tools/system-tools-backends-2.10.2/add-angstrom-distro.patch +++ /dev/null @@ -1,41 +0,0 @@ -From b5084616a3bc2a0d485f43aeae69c6025f3f857e Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 10 Jun 2011 18:44:21 +0200 -Subject: [PATCH] add support for the angstrom distribtion - -Signed-off-by: Koen Kooi ---- - Utils/Platform.pm | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/Utils/Platform.pm b/Utils/Platform.pm -index fc76360..8b8c770 100644 ---- a/Utils/Platform.pm -+++ b/Utils/Platform.pm -@@ -92,6 +92,7 @@ my $PLATFORM_INFO = { - "nexenta-1.0" => [ "Nexenta GNU/Solaris", "1.0", "Ellate" ], - "yellowdog-4.1" => [ "Yellow Dog Linux", "4.1", "Sagitta" ], - "guadalinex-v4" => [ "Guadalinex", "v4", "Toro" ], -+ "angstrom" => [ "Angstrom", "", "" ], - }; - - sub get_platform_info -@@ -143,6 +144,7 @@ sub ensure_distro_map - "vine-3.1" => "vine-3.0", - "vlos-1.2" => "gentoo", - "nexenta-1.0" => "solaris-2.11", -+ "angstrom" => "debian", - ); - - return $metamap{$distro} if ($metamap{$distro}); -@@ -375,6 +377,7 @@ sub guess - [ \&check_ark ], - [ \&check_yoper ], - [ \&check_distro_file, "/etc/yellowdog-release", "yellowdog", "^Yellow Dog Linux release (\\S+)" ], -+ [ \&check_file_exists, "/etc/angstrom-version", "angstrom" ], - ], - "FreeBSD" => [[ \&check_freebsd ]], - "SunOS" => [[ \&check_solaris ]] --- -1.6.6.1 - diff --git a/meta-gnome/recipes-gnome/nonworking/system-tools/system-tools-backends_2.10.2.bb b/meta-gnome/recipes-gnome/nonworking/system-tools/system-tools-backends_2.10.2.bb deleted file mode 100644 index 584d796c0b7..00000000000 --- a/meta-gnome/recipes-gnome/nonworking/system-tools/system-tools-backends_2.10.2.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "gnome system tools backends" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "dbus dbus-glib glib-2.0 polkit" - -inherit gnome pkgconfig update-rc.d gettext - -SRC_URI[archive.md5sum] = "edae148b31342aecae035051adc70c74" -SRC_URI[archive.sha256sum] = "1dbe5177df46a9c7250735e05e77129fe7ec04840771accfa87690111ca2c670" - -SRC_URI += " \ - file://system-tools-backends \ -" - -# This needs to move to meta-angstrom -SRC_URI_append_angstrom = " \ - file://add-angstrom-distro.patch \ -" - -EXTRA_OECONF = " --with-net-dbus=${libdir}/perl5 " - -do_configure() { - rm missing || true - automake --add-missing - sed -i -e 's:CC=$(CC):CC="$(CC)":g' ${S}/Net-DBus/Makefile.am - sed -i -e 's:CC=$(CC):CC="$(CC)":g' ${S}/Net-DBus/Makefile.in - libtoolize --force --install - aclocal - gnu-configize - oe_runconf - cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S} -} - -do_install_append () { - install -d ${D}/${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/system-tools-backends ${D}/${sysconfdir}/init.d/ -} - -INITSCRIPT_NAME = "system-tools-backends" -INITSCRIPT_PARAMS = "start 50 2 3 4 5 . stop 70 1 ." - -# Shadow added so there is a full adduser/deluser -# (Gnome images tend to pull in shadow anyway) -RDEPENDS_${PN} = "shadow" - -FILES_${PN} += " ${sysconfdir}/dbus-1/system.d" -FILES_${PN} += " ${libdir}/pkgconfig" -FILES_${PN} += " ${datadir}/dbus-1/system-services" -FILES_${PN} += " ${datadir}/system-tools-backends-2.0/files" -FILES_${PN} += " ${datadir}/system-tools-backends-2.0/scripts" -FILES_${PN} += " ${datadir}/polkit*" diff --git a/meta-gnome/recipes-gnome/orbit2/orbit2_2.14.19.bb b/meta-gnome/recipes-gnome/orbit2/orbit2_2.14.19.bb index 88f164fc5f1..eb4397263b2 100644 --- a/meta-gnome/recipes-gnome/orbit2/orbit2_2.14.19.bb +++ b/meta-gnome/recipes-gnome/orbit2/orbit2_2.14.19.bb @@ -1,9 +1,10 @@ SUMMARY = "CORBA ORB" +HOMEPAGE = "http://www.gnome.org/projects/ORBit2" SECTION = "x11/gnome/libs" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" SRC_NAME = "ORBit2" -SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" SRC_URI = " \ ${GNOME_MIRROR}/${SRC_NAME}/${SHRT_VER}/${SRC_NAME}-${PV}.tar.bz2 \ file://configure-lossage.patch \ @@ -17,12 +18,12 @@ SRC_URI[sha256sum] = "55c900a905482992730f575f3eef34d50bda717c197c97c08fa5a6eafd BBCLASSEXTEND = "native" IDL_COMPILER_DEPENDS = "orbit2-native" -IDL_COMPILER_DEPENDS_virtclass-native = " " +IDL_COMPILER_DEPENDS_class-native = " " DEPENDS = "libidl popt ${IDL_COMPILER_DEPENDS}" -# IDL_COMPILER_DEPENDS_virtclass-native for some reason didn't work and orbit2-native +# IDL_COMPILER_DEPENDS_class-native for some reason didn't work and orbit2-native # was still in orbit2-native DEPENDS causing circular dependency -DEPENDS_virtclass-native = "libidl-native popt-native" +DEPENDS_class-native = "libidl-native popt-native" PARALLEL_MAKE = "" @@ -38,4 +39,4 @@ LEAD_SONAME = "libORBit-2.so" inherit autotools pkgconfig gtk-doc EXTRA_OEMAKE = "IDL_COMPILER='${STAGING_BINDIR_NATIVE}/orbit-idl-2'" -EXTRA_OEMAKE_virtclass-native = " " +EXTRA_OEMAKE_class-native = " " diff --git a/meta-gnome/recipes-gnome/pimlico/contacts.inc b/meta-gnome/recipes-gnome/pimlico/contacts.inc deleted file mode 100644 index 6535bbf548b..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/contacts.inc +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION = "Address-book application." -HOMEPAGE = "http://pimlico-project.org/contacts.html" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "GPLv2 & GPLv2+ & GPLv3+ " -SECTION = "x11" -DEPENDS = "glib-2.0 gtk+ evolution-data-server intltool-native" -RDEPENDS_${PN} = "libedata-book" - -inherit autotools pkgconfig - -EXTRA_OECONF += "--disable-gnome-vfs" -EXTRA_OEMAKE += "GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1" - -do_install_append () { - install -d ${D}/${datadir}/pixmaps - install -m 0644 ${WORKDIR}/stock_contact.png ${D}/${datadir}/pixmaps - install -m 0644 ${WORKDIR}/stock_person.png ${D}/${datadir}/pixmaps -} - -FILES_${PN} += "${datadir}/pixmaps/stock_contact.png \ - ${datadir}/pixmaps/stock_person.png \ - ${datadir}/icons/hicolor" - -SRC_URI = "file://stock_contact.png \ - file://stock_person.png \ - file://contacts-conditionally-install-schema.patch \ -" diff --git a/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch b/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch deleted file mode 100644 index 2ab7882c818..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/contacts/contacts-conditionally-install-schema.patch +++ /dev/null @@ -1,37 +0,0 @@ -Install schema should respect to GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL - -If GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL is set, the schema should not -be installed. - -Signed-off-by: Robert Yang - -Upstream-Status: Pending ---- - data/Makefile.am | 7 ++++--- - 1 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/data/Makefile.am b/data/Makefile.am -index f790823..b6fd643 100644 ---- a/data/Makefile.am -+++ b/data/Makefile.am -@@ -14,13 +14,14 @@ dist_man1_MANS = contacts.1 - - if HAVE_GCONF - install-data-local: -- GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \ -+ if [ "$(GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL)" != "1" ]; then \ -+ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \ - $(GCONFTOOL) --makefile-install-rule $(schema_DATA) || \ - (echo ;\ - echo "*****************************************************"; \ - echo "Installation of schemas failed, install them manually"; \ -- echo "*****************************************************";) -- @true -+ echo "*****************************************************";); \ -+ fi - endif - - CLEANFILES = $(desktop_DATA) --- -1.7.7.6 - diff --git a/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch b/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch deleted file mode 100644 index a7cfee3a00b..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/contacts/make-382.patch +++ /dev/null @@ -1,16 +0,0 @@ -Fix for stricter parser in make 3.82. This fix has been pushed to upstream git. - -JL - 15/12/10 - -Upstream-Status: Accepted - -Index: git/Makefile.am -=================================================================== ---- git.orig/Makefile.am -+++ git/Makefile.am -@@ -11,4 +11,4 @@ DISTCLEANFILES = $(INTLTOOL_BUILT) - MAINTAINERCLEANFILES = aclocal.m4 compile config.guess config.sub configure depcomp $(INTLTOOL_BUILT:=.in) install-sh ltmain.sh mkinstalldirs Makefile.in missing - - snapshot: -- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"` -+ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"` diff --git a/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb b/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb deleted file mode 100644 index bdc7f4886d9..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/contacts_0.9.bb +++ /dev/null @@ -1,18 +0,0 @@ -require contacts.inc - -PR = "r8" - -SRC_URI =+ "http://pimlico-project.org/sources/${BPN}/${BPN}-${PV}.tar.gz" - -SRC_URI[md5sum] = "aab5affbf93d6fa7b978b323a8d44de0" -SRC_URI[sha256sum] = "9cacec98f8123993033aaa255f3f4c04c86a1be65e487dd21f0aaa54384a6f6d" - -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://src/contacts-main.h;endline=18;md5=0371af46fbc72e33575e0072dca5fb19 \ - file://src/contacts-dbus.c;endline=18;md5=e4da9ac1a0539fafc7df431010904fd5 \ - file://src/contacts-gtk.c;endline=21;md5=1c2e3f55b215635eff4ba76f7696f8ee" - -do_configure_prepend () { - # It used 8 spaces to instead of a tab, but it doesn't work for us - sed -i 's/^ $(MAKE) dist distdir=/\t$(MAKE) dist distdir/' Makefile.am -} diff --git a/meta-gnome/recipes-gnome/pimlico/contacts_git.bb b/meta-gnome/recipes-gnome/pimlico/contacts_git.bb deleted file mode 100644 index 8a4a0716645..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/contacts_git.bb +++ /dev/null @@ -1,19 +0,0 @@ -require contacts.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://src/contacts-main.h;endline=20;md5=9dc3531c914fb6d6d4a8d1aee4519fef \ - file://src/contacts-dbus.c;endline=20;md5=95e02d77f155fbd07a14dba3348b9b03 \ - file://src/contacts-gtk.c;endline=23;md5=e1ee9b9e72045f2d3aa44cf17313b46e" - -SRCREV = "19853893fdb595de6aa59db0d9dc2f9451ed2933" -PV = "0.12+git${SRCPV}" -PR = "r4" - -S = "${WORKDIR}/git" - -SRC_URI =+ "git://git.gnome.org/${BPN} \ - file://make-382.patch" - -S = "${WORKDIR}/git" - - diff --git a/meta-gnome/recipes-gnome/pimlico/dates/0001-Fix-format-security-warnings.patch b/meta-gnome/recipes-gnome/pimlico/dates/0001-Fix-format-security-warnings.patch new file mode 100644 index 00000000000..4f551a7d8c3 --- /dev/null +++ b/meta-gnome/recipes-gnome/pimlico/dates/0001-Fix-format-security-warnings.patch @@ -0,0 +1,54 @@ +From 687881c5fa342686c8724adcdac0f9d555a351c3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 5 Apr 2017 18:10:57 -0700 +Subject: [PATCH] Fix format security warnings + +Signed-off-by: Khem Raj +--- + src/dates_callbacks.c | 2 +- + src/dates_gtk.c | 2 +- + src/gconf-bridge.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/dates_callbacks.c b/src/dates_callbacks.c +index d704c8f..46b8cb1 100644 +--- a/src/dates_callbacks.c ++++ b/src/dates_callbacks.c +@@ -365,7 +365,7 @@ dates_about_cb (GtkWidget *widget, DatesData *d) + + if (!pixb) { + g_assert (error); +- g_warning (error->message); ++ g_warning ("%s", error->message); + g_clear_error (&error); + } + +diff --git a/src/dates_gtk.c b/src/dates_gtk.c +index 403bc25..fd691d2 100644 +--- a/src/dates_gtk.c ++++ b/src/dates_gtk.c +@@ -1114,7 +1114,7 @@ calendar_do_edit_dialog_response_cb (GtkDialog *dialog, gint response_id, gpoint + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_NONE, +- prompt); ++ "%s", prompt); + + g_free (prompt); + +diff --git a/src/gconf-bridge.c b/src/gconf-bridge.c +index 49754cf..67d3757 100644 +--- a/src/gconf-bridge.c ++++ b/src/gconf-bridge.c +@@ -1220,7 +1220,7 @@ error_handler (GConfClient *client, + dlg = gtk_message_dialog_new (NULL, 0, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, +- message); ++ "%s", message); + g_free (message); + + gtk_message_dialog_format_secondary_text +-- +2.12.2 + diff --git a/meta-gnome/recipes-gnome/pimlico/dates/0001-Update-to-new-evolution-data-server-e_source_-color-.patch b/meta-gnome/recipes-gnome/pimlico/dates/0001-Update-to-new-evolution-data-server-e_source_-color-.patch deleted file mode 100644 index 4550d298d94..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/dates/0001-Update-to-new-evolution-data-server-e_source_-color-.patch +++ /dev/null @@ -1,72 +0,0 @@ -From a8ddfc4b91f2ab3d955fe528ddb98ce2c5545795 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 4 Aug 2013 13:44:50 +0200 -Subject: [PATCH] Update to new evolution-data-server e_source_*color APIs - -Signed-off-by: Martin Jansa ---- - src/dates_gtk.c | 6 +++--- - src/dates_main.c | 2 +- - src/dates_view.c | 6 +++++- - 3 files changed, 9 insertions(+), 5 deletions(-) - -diff --git a/src/dates_gtk.c b/src/dates_gtk.c -index 78e71bb..ac539d2 100644 ---- a/src/dates_gtk.c -+++ b/src/dates_gtk.c -@@ -1072,7 +1072,7 @@ calendar_do_new_dialog (GtkWindow *parent, DatesData *d) - #endif - - /* Set the colour */ -- e_source_set_color (source, new_colour); -+ e_source_set_color_spec (source, new_colour); - - /* Set the group for the source */ - e_source_set_group (source, group); -@@ -1335,7 +1335,7 @@ calendar_do_edit_dialog (GtkWindow *parent, ESource *source, DatesData *d) - gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); - - /* Get the colour from the the source */ -- e_source_get_color (source, &raw_colour); -+ raw_colour = e_source_peek_color_spec (source); - - /* Munge this into something usable */ - colour.red = (guint16)(((raw_colour & 0xff0000) >> 16) << 8); -@@ -1459,7 +1459,7 @@ calendar_do_edit_dialog (GtkWindow *parent, ESource *source, DatesData *d) - new_colour <<= 8; - #endif - /* Update the colour */ -- e_source_set_color (source, new_colour); -+ e_source_set_color_spec (source, new_colour); - - /* And the name */ - e_source_set_name (source, (gtk_entry_get_text (GTK_ENTRY (name_entry)))); -diff --git a/src/dates_main.c b/src/dates_main.c -index ce05fe8..7273c63 100644 ---- a/src/dates_main.c -+++ b/src/dates_main.c -@@ -112,7 +112,7 @@ dates_load_calendars (DatesData *d) - system_source = e_source_new (_("Personal"), "system"); - - /* Default Evolution colour */ -- e_source_set_color (system_source, 0xBECEDD); -+ e_source_set_color_spec (system_source, 0xBECEDD); - - /* Set the group for the source and put it in the group */ - e_source_set_group (system_source, local_group); -diff --git a/src/dates_view.c b/src/dates_view.c -index d65db2f..f8efb9c 100644 ---- a/src/dates_view.c -+++ b/src/dates_view.c -@@ -4876,7 +4880,7 @@ dates_view_add_calendar (DatesView *view, ECal *ecal) - cal->text_gc = gdk_gc_new ( - GDK_DRAWABLE (priv->main->window)); - -- if (e_source_get_color (source, &colour)) { -+ if (colour = e_source_peek_color_spec (source)) { - GdkColor gcolour, dgcolour, tgcolour; - gcolour.red = ((colour & 0xFF0000) >> 16) * 0x101; - gcolour.green = ((colour & 0xFF00) >> 8) * 0x101; --- -1.8.3.2 - diff --git a/meta-gnome/recipes-gnome/pimlico/dates/make-382.patch b/meta-gnome/recipes-gnome/pimlico/dates/make-382.patch deleted file mode 100644 index fad3c5826ed..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/dates/make-382.patch +++ /dev/null @@ -1,18 +0,0 @@ -Make 3.82 is offended by the use of spaces instead of tabs. This has been fixed -in upstream git. - -JL - 15/12/10 - -Upstream-Status: Accepted - -Index: git/Makefile.am -=================================================================== ---- git.orig/Makefile.am -+++ git/Makefile.am -@@ -7,5 +7,5 @@ DISTCLEANFILES = intltool-extract intlto - MAINTAINERCLEANFILES = $(DISTCLEANFILES) aclocal.m4 compile config.guess config.sub configure depcomp install-sh ltmain.sh Makefile.in missing - - snapshot: -- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"` -+ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"` - diff --git a/meta-gnome/recipes-gnome/pimlico/dates_git.bb b/meta-gnome/recipes-gnome/pimlico/dates_git.bb index a4a572f85f9..14965e94f7c 100644 --- a/meta-gnome/recipes-gnome/pimlico/dates_git.bb +++ b/meta-gnome/recipes-gnome/pimlico/dates_git.bb @@ -5,15 +5,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ file://src/dates_hildon.c;endline=19;md5=63938904198b25de429abb65fbdbdb8a \ file://src/gconf-bridge.c;endline=22;md5=ad7626c6daf4aec590474a243f4912fa" -SRCREV = "514185dc1f6588085fda41eb59898b93d0487dd4" +SRCREV = "c8e30fa3211dcdfcda48184f4c57746a552b9c7a" PV = "0.4.11+git${SRCPV}" PR = "r9" S = "${WORKDIR}/git" SRC_URI = "git://git.gnome.org/${BPN} \ - file://make-382.patch \ - file://dso_linking_change_build_fix.patch \ - file://uclibc-NL_TIME_FIRST_WEEKDAY-absent.patch \ - file://0001-Update-to-new-evolution-data-server-e_source_-color-.patch \ -" + file://dso_linking_change_build_fix.patch \ + file://uclibc-NL_TIME_FIRST_WEEKDAY-absent.patch \ + file://0001-Fix-format-security-warnings.patch \ + " diff --git a/meta-gnome/recipes-gnome/pimlico/tasks.inc b/meta-gnome/recipes-gnome/pimlico/tasks.inc deleted file mode 100644 index f8217dc3a11..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/tasks.inc +++ /dev/null @@ -1,10 +0,0 @@ -DESCRIPTION = "Task list application" -HOMEPAGE = "http://pimlico-project.org/tasks.html" -BUGTRACKER = "https://bugzilla.gnome.org/" - -LICENSE = "GPLv2 & GPLv2+" - -SECTION = "x11" -DEPENDS = "glib-2.0 gtk+ evolution-data-server intltool-native" - -inherit autotools pkgconfig gtk-icon-cache diff --git a/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb b/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb deleted file mode 100644 index 992596eaf31..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/tasks_0.19.bb +++ /dev/null @@ -1,13 +0,0 @@ -require tasks.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://src/gtk/main.c;endline=19;md5=8659d0b7fd68a2ad6ac30c6539ea5b82 \ - file://src/omoko/openmoko-tasks.c;endline=20;md5=04d56a46863c9f4247694f40257a836a \ - file://src/hildon/hildon-tasks.c;endline=21;md5=488ddf31dc14b2196dec7cc736211b52" - -SRC_URI = "http://pimlico-project.org/sources/${BPN}/${BPN}-${PV}.tar.gz" - -SRC_URI[md5sum] = "0afd969758561599fd782e1effb39c08" -SRC_URI[sha256sum] = "1a7fdc5f95a2193a1a25fdb13f071867fb7e42245ce19ccee4bcccb69e557f2e" - -PR = "r3" diff --git a/meta-gnome/recipes-gnome/pimlico/tasks_git.bb b/meta-gnome/recipes-gnome/pimlico/tasks_git.bb deleted file mode 100644 index 6a06da33639..00000000000 --- a/meta-gnome/recipes-gnome/pimlico/tasks_git.bb +++ /dev/null @@ -1,9 +0,0 @@ -require tasks.inc - -SRC_URI = "git://git.gnome.org/${BPN}" - -SRCREV = "ea52d46d691c5fce4473ea4e24a35411381f3a65" -PV = "0.13+git${SRCPV}" -PR = "r3" - -S = "${WORKDIR}/git" diff --git a/meta-gnome/recipes-gnome/nonworking/system-tools/system-tools-backends-2.10.2/system-tools-backends b/meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/system-tools-backends similarity index 100% rename from meta-gnome/recipes-gnome/nonworking/system-tools/system-tools-backends-2.10.2/system-tools-backends rename to meta-gnome/recipes-gnome/system-tools/system-tools-backends-2.10.2/system-tools-backends diff --git a/meta-gnome/recipes-gnome/themes/gnome-themes/drop-localedir-override.patch b/meta-gnome/recipes-gnome/themes/gnome-themes/drop-localedir-override.patch new file mode 100644 index 00000000000..e37482b97be --- /dev/null +++ b/meta-gnome/recipes-gnome/themes/gnome-themes/drop-localedir-override.patch @@ -0,0 +1,22 @@ +Causes locale file to be installed in /usr/locale instead of /usr/share/locale + +Apply the same fix as in evolution-data-server: +https://git.gnome.org/browse/evolution-data-server/commit/configure.ac?id=ec46c763e9342f604b7228c660623d271dfeb101 + +Upstream-Status: Pending + +diff -uNr gnome-themes-2.32.1.orig/configure.in gnome-themes-2.32.1/configure.in +--- gnome-themes-2.32.1.orig/configure.in 2015-09-18 15:01:25.152055729 +0200 ++++ gnome-themes-2.32.1/configure.in 2015-09-18 15:09:03.312072156 +0200 +@@ -19,11 +19,6 @@ + + AM_GLIB_GNU_GETTEXT + +-# AM_GLIB_GNU_GETTEXT above subst. $DATADIRNAME +-# this is the directory where the *.{mo,gmo} files are installed +-localedir='${prefix}/${DATADIRNAME}/locale' +-AC_SUBST(localedir) +- + # Workaround to make aclocal get the right flags + AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}") + diff --git a/meta-gnome/recipes-gnome/themes/gnome-themes_2.32.1.bb b/meta-gnome/recipes-gnome/themes/gnome-themes_2.32.1.bb index a2b7e0c6a40..1a89f48dd96 100644 --- a/meta-gnome/recipes-gnome/themes/gnome-themes_2.32.1.bb +++ b/meta-gnome/recipes-gnome/themes/gnome-themes_2.32.1.bb @@ -5,11 +5,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2b543dc97eb7594d026af39d9b54204b" PR = "r3" SECTION = "x11/gnome" -DEPENDS = "gtk-engines icon-naming-utils icon-naming-utils-native glib-2.0 intltool-native libxml-simple-perl-native" -RDEPENDS_${PN} = "gnome-icon-theme" +DEPENDS = "gtk-engines icon-naming-utils icon-naming-utils-native \ + glib-2.0 intltool-native libxml-simple-perl-native \ + glib-2.0-native \ +" +RDEPENDS_${PN} = "adwaita-icon-theme" EXTRA_OECONF += "--enable-all-themes \ - --with-iconmap=${STAGING_LIBDIR_NATIVE}/icon-naming-utils/icon-name-mapping \ + --with-iconmap=${STAGING_LIBEXECDIR_NATIVE}/icon-name-mapping \ " inherit gnomebase perlnative @@ -25,6 +28,10 @@ FILES_gnome-theme-mist = "${datadir}/themes/Mist ${datadir}/icons/Mist" FILES_${PN} += "${datadir}/themes ${datadir}/icons" -SRC_URI += "file://iconpath-option.patch" +SRC_URI += "file://iconpath-option.patch \ + file://drop-localedir-override.patch \ +" SRC_URI[archive.md5sum] = "41db9e3cb25d35af2675c599e67944d1" SRC_URI[archive.sha256sum] = "8601ee24c2e096593221cbd6ebdb6686042225a03c02a01c0d67c163f9febd1a" +GNOME_COMPRESS_TYPE="bz2" + diff --git a/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch b/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch new file mode 100644 index 00000000000..2fc3f367faa --- /dev/null +++ b/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch @@ -0,0 +1,26 @@ +From 079529b8d5e339e2211fa2f8c15543a738a627bc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 14:50:51 -0700 +Subject: [PATCH] wvRTF.c: Specify print format in rtf_output() + +Signed-off-by: Khem Raj +--- + wvRTF.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wvRTF.c b/wvRTF.c +index 361d258..4f24b30 100644 +--- a/wvRTF.c ++++ b/wvRTF.c +@@ -192,7 +192,7 @@ output_rtfUserData (rtfUserData * ud) + rtf_output_char ('{'); + + /* font color */ +- rtf_output (rtfColors[ud->cCol]); ++ rtf_output ("%s", rtfColors[ud->cCol]); + + /* font face */ + rtf_output ("\\f%d", ud->cFont); +-- +2.13.2 + diff --git a/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb b/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb index 6489c6f19fe..8ed1fcd15ca 100644 --- a/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb +++ b/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb @@ -8,7 +8,8 @@ DEPENDS = "libgsf glib-2.0 libpng" SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/wv-${PV}.tar.gz \ file://pkgconfig.patch \ file://0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch \ - " + file://0001-wvRTF.c-Specify-print-format-in-rtf_output.patch \ + " SRC_URI[md5sum] = "c1861c560491f121e12917fa76970ac5" SRC_URI[sha256sum] = "673109910e22d4cf94cc8be4dcb9a0c41b5fbdb1736d4b7bdc7778894d57c2d6" diff --git a/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch b/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch deleted file mode 100644 index 50c9cb99f69..00000000000 --- a/meta-gnome/recipes-gnome/zenity/files/0001-Makefile.am-don-t-build-help.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 17e5606f8c4c8ff26ba18489aad4c484cf8e2949 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Mon, 29 Apr 2013 11:34:27 +0200 -Subject: [PATCH] Makefile.am: don't build help -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -it crashes with: - -| warning: failed to load external entity "/usr/share/xml/gnome/xslt/docbook/omf/db2omf.xsl" -| cannot parse /usr/share/xml/gnome/xslt/docbook/omf/db2omf.xsl -| make[2]: *** [zenity-bg.omf] Error 1 -| make[2]: Leaving directory `/home/andreas/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/zenity/2.32.1-r2/zenity-2.32.1/help' - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - Makefile.am | 3 +-- - 1 files changed, 1 insertions(+), 2 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 03accc1..caec7f0 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,8 +1,7 @@ - SUBDIRS = \ - src \ - po \ -- data \ -- help -+ data - - EXTRA_DIST = \ - autogen.sh \ --- -1.7.6.5 - diff --git a/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb b/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb deleted file mode 100644 index 4e01c5c9387..00000000000 --- a/meta-gnome/recipes-gnome/zenity/zenity_2.32.1.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Display dialog boxes from the commandline and shell scripts" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" - -PR = "r2" - -PNBLACKLIST[zenity] ?= "BROKEN: doesn't build with B!=S" - -DEPENDS = "gtk+ glib-2.0 libnotify gnome-doc-utils" - -inherit gnomebase -SRC_URI += "file://0001-Makefile.am-don-t-build-help.patch" -SRC_URI[archive.md5sum] = "aa66ec35451b16e424519b4973082170" -SRC_URI[archive.sha256sum] = "8838be041a07364b62a4281c971392e4a09bb01bb3237a836ec0457ec0ea18ac" - -EXTRA_OECONF += "--disable-scrollkeeper" -# remove -I/usr/include from zenity_CPPFLAGS -do_configure_prepend() { - sed -i -e '/-I$(includedir)/d' src/Makefile.am -} - diff --git a/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch b/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch deleted file mode 100644 index 83e598e6a66..00000000000 --- a/meta-gnome/recipes-support/florence/files/0001-Fix-glib-includes.patch +++ /dev/null @@ -1,33 +0,0 @@ -From c8419ef05ff92ffa3de2e626eb6acd5d2df3baa1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 15 May 2012 13:40:05 +0200 -Subject: [PATCH] Fix glib includes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Upstream-Status: unknown - -Signed-off-by: Andreas Müller ---- - src/trace.c | 5 +---- - 1 files changed, 1 insertions(+), 4 deletions(-) - -diff --git a/src/trace.c b/src/trace.c -index 5ea5c13..774c56d 100644 ---- a/src/trace.c -+++ b/src/trace.c -@@ -21,10 +21,7 @@ - - #include "trace.h" - #include "system.h" --#include --#include --#include --#include -+#include - #include - #include - --- -1.7.6.5 - diff --git a/meta-gnome/recipes-support/florence/florence_0.5.1.bb b/meta-gnome/recipes-support/florence/florence_0.5.1.bb deleted file mode 100644 index 9eab38575a8..00000000000 --- a/meta-gnome/recipes-support/florence/florence_0.5.1.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Florence is a virtual keyboard (also called on-screen-keyboard), which allows the user to input text through a touchscreen." -HOMEPAGE = "http://florence.sourceforge.net/english.html" - -#NOTICE: If florence can't find its gconf settings, you need to start florence with --config for one time and save the configuration once. - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -PR = "r1" - -DEPENDS = "gtk+ libxml2 libglade librsvg libxtst gconf cairo intltool-native gnome-doc-utils libnotify" - -SRC_URI = "http://switch.dl.sourceforge.net/project/florence/florence/0.5.1/florence-0.5.1.tar.bz2 \ - file://0001-Fix-glib-includes.patch" -SRC_URI[md5sum] = "56d12e5b47c100d9df172aa5ddc0f609" -SRC_URI[sha256sum] = "7b06ed84ef2b7b22d8d2cf0c7d013a05409bd82028240ac8719a68b192d5bc62" - -inherit gettext autotools gconf pkgconfig - -EXTRA_OECONF = "--disable-scrollkeeper --without-docs --without-at-spi --without-panelapplet" diff --git a/meta-gnome/recipes-support/florence/florence_0.6.3.bb b/meta-gnome/recipes-support/florence/florence_0.6.3.bb new file mode 100644 index 00000000000..b9b7d0cb177 --- /dev/null +++ b/meta-gnome/recipes-support/florence/florence_0.6.3.bb @@ -0,0 +1,19 @@ +SUMMARY = "Florence is a virtual keyboard for touch screens" +HOMEPAGE = "http://florence.sourceforge.net/english.html" + +#NOTICE: If florence can't find its gconf settings, you need to start florence with --config for one time and save the configuration once. + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +DEPENDS = "gtk+3 libxml2 libglade librsvg libxtst gconf gconf-native cairo intltool-native gnome-doc-utils libnotify gstreamer1.0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${PN}/${PN}/${PV}/${PN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "8775051d7352f75dec5a86dc9964e8e0" +SRC_URI[sha256sum] = "422992fd07d285be73cce721a203e22cee21320d69b0fda1579ce62944c5091e" + +inherit gettext autotools gconf pkgconfig + +EXTRA_OECONF = "--disable-scrollkeeper --without-docs --without-at-spi --without-panelapplet --without-xrecord" + +FILES_${PN} += "${datadir}/glib-2.0/schemas" diff --git a/meta-gnome/recipes-support/goffice/goffice/c99math.patch b/meta-gnome/recipes-support/goffice/goffice/c99math.patch deleted file mode 100644 index 24e6c31a729..00000000000 --- a/meta-gnome/recipes-support/goffice/goffice/c99math.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: goffice-0.7.14/configure.in -=================================================================== ---- goffice-0.7.14.orig/configure.in 2009-11-14 19:14:37.106109501 +0100 -+++ goffice-0.7.14/configure.in 2009-11-14 19:19:40.907333188 +0100 -@@ -66,6 +66,7 @@ - - AC_ISC_POSIX - AC_PROG_CC -+AC_PROG_CC_C99 - AC_PROG_YACC - AM_PROG_LEX - AC_PROG_LN_S diff --git a/meta-gnome/recipes-support/goffice/goffice/nodolt.patch b/meta-gnome/recipes-support/goffice/goffice/nodolt.patch deleted file mode 100644 index ea1777a9966..00000000000 --- a/meta-gnome/recipes-support/goffice/goffice/nodolt.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: goffice-0.7.14/configure.in -=================================================================== ---- goffice-0.7.14.orig/configure.in -+++ goffice-0.7.14/configure.in -@@ -71,7 +71,6 @@ AC_PROG_YACC - AM_PROG_LEX - AC_PROG_LN_S - AM_PROG_LIBTOOL --DOLT - AC_STDC_HEADERS - AC_SYS_LARGEFILE - diff --git a/meta-gnome/recipes-support/goffice/goffice/pcre-8.30.patch b/meta-gnome/recipes-support/goffice/goffice/pcre-8.30.patch deleted file mode 100644 index ae9370cfcf6..00000000000 --- a/meta-gnome/recipes-support/goffice/goffice/pcre-8.30.patch +++ /dev/null @@ -1,19 +0,0 @@ -Taken from http://trac.macports.org/ticket/34812 - -Fixes abiword build failing with: -/usr/lib/libgoffice-0.8.so: undefined reference to `pcre_info' - -Upstream-Status: pending - -http://www.linuxfromscratch.org/blfs/view/cvs/x/goffice.html ---- a/goffice/utils/regutf8.c.orig 2009-09-05 18:52:09.000000000 -0500 -+++ b/goffice/utils/regutf8.c 2012-06-09 18:04:29.000000000 -0500 -@@ -155,7 +155,7 @@ - default: return GO_REG_BADPAT; - } - } else { -- gor->re_nsub = pcre_info (r, NULL, NULL); -+ gor->re_nsub = pcre_fullinfo (r, NULL, 0, NULL); - gor->nosub = (cflags & GO_REG_NOSUB) != 0; - return 0; - } diff --git a/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb b/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb deleted file mode 100644 index 1e9ec4cfd7d..00000000000 --- a/meta-gnome/recipes-support/goffice/goffice_0.10.1.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION="Gnome Office Library" - -LICENSE="GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=6dc33ff21e1ba1ac1a2a1069d361e29e" - -DEPENDS = "libxml-parser-perl-native glib-2.0 gtk+3 pango cairo libgsf libpcre libxml2 libart-lgpl librsvg intltool" - -inherit gnomebase pkgconfig perlnative - -GNOME_COMPRESS_TYPE = "xz" - -SRC_URI[archive.md5sum] = "90fd17c6fe205b779571e00d9b0b4727" -SRC_URI[archive.sha256sum] = "5c38f4e81e874cc8e89481b080f77c47c72bfd6fe2526f4fc2ef87c17f96cad0" - -FILES_${PN}-dbg += "${libdir}/goffice/${PV}/plugins/*/.debug" - -RRECOMMENDS_${PN} = " \ - goffice-plugin-plot-barcol \ - goffice-plugin-plot-distrib \ - goffice-plugin-plot-pie \ - goffice-plugin-plot-radar \ - goffice-plugin-plot-surface \ - goffice-plugin-plot-xy \ - goffice-plugin-reg-linear \ - goffice-plugin-reg-logfit \ - goffice-plugin-smoothing \ -" - -FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \ - ${sysconfdir} ${sharedstatedir} ${localstatedir} \ - ${base_bindir}/* ${base_sbindir}/* \ - ${base_libdir}/*${SOLIBS} \ - ${datadir}/${PN} \ - ${datadir}/pixmaps ${datadir}/applications \ - ${datadir}/idl ${datadir}/omf ${datadir}/sounds \ - ${libdir}/bonobo/servers" - -FILES_${PN}-locale = "${libdir}/locale" - -PACKAGES_DYNAMIC += "^goffice-plugin-.*" - -python populate_packages_prepend () { - goffice_libdir = d.expand('${libdir}/goffice/${PV}/plugins/') - - do_split_packages(d, goffice_libdir, '(.*)', 'goffice-plugin-%s', 'Goffice plugin for %s', allow_dirs=True) -} - diff --git a/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb b/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb new file mode 100644 index 00000000000..d6744a30656 --- /dev/null +++ b/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "keybinder is a library for registering global key bindings, for gtk-based applications." +HOMEPAGE = "https://github.com/engla/keybinder" +LICENSE = "X11" +SECTION = "devel/lib" +DEPENDS = "gtk+3 gobject-introspection-native \ + gtk+ \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=1f18f9c6d8b4cfcc7d7804a243a4c0b4" + +S = "${WORKDIR}/git" +B = "${S}" + +SRCREV = "736ccef40d39603b8111c8a3a0bca0319bbafdc0" +PV = "3.0+git${SRCPV}" +SRC_URI = "git://github.com/engla/keybinder.git;branch=keybinder-3.0 \ +" + +RDEPENDS_${PN} = "gtk+" + +inherit autotools gtk-doc gobject-introspection +do_configure_prepend() { + touch ${S}/ChangeLog +} + +SRC_DISTRIBUTE_LICENSES += "X11" diff --git a/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch b/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch new file mode 100644 index 00000000000..fda37895c96 --- /dev/null +++ b/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch @@ -0,0 +1,67 @@ +From 1c95f64aa342147387ce4b1b7269a5c8b34bd898 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 09:01:04 -0700 +Subject: [PATCH] pypredict/lm: Define error API if platform does not have it + +error() API is not implemented across all libcs on linux +e.g. musl does not provide it. + +Signed-off-by: Khem Raj +--- + Onboard/pypredict/lm/lm.cpp | 1 - + Onboard/pypredict/lm/lm.h | 13 +++++++++++++ + Onboard/pypredict/lm/lm_dynamic.cpp | 2 -- + 3 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/Onboard/pypredict/lm/lm.cpp b/Onboard/pypredict/lm/lm.cpp +index 2e64296..37ae241 100644 +--- a/Onboard/pypredict/lm/lm.cpp ++++ b/Onboard/pypredict/lm/lm.cpp +@@ -19,7 +19,6 @@ + + #include + #include +-#include + #include + #include + #include +diff --git a/Onboard/pypredict/lm/lm.h b/Onboard/pypredict/lm/lm.h +index ed4164a..b8b63ee 100644 +--- a/Onboard/pypredict/lm/lm.h ++++ b/Onboard/pypredict/lm/lm.h +@@ -32,6 +32,19 @@ + #include + #include + ++#if defined(HAVE_ERROR_H) ++#include ++#else ++#include ++#define _onboard_error(S, E, F, ...) do { \ ++ if (E) \ ++ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \ ++ else \ ++ err(S, F, ##__VA_ARGS__); \ ++} while(0) ++ ++#define error _onboard_error ++#endif + + // break into debugger + // step twice to come back out of the raise() call into known code +diff --git a/Onboard/pypredict/lm/lm_dynamic.cpp b/Onboard/pypredict/lm/lm_dynamic.cpp +index 7c62824..e7c7f40 100644 +--- a/Onboard/pypredict/lm/lm_dynamic.cpp ++++ b/Onboard/pypredict/lm/lm_dynamic.cpp +@@ -17,8 +17,6 @@ + * along with this program. If not, see . + */ + +-#include +- + #include "lm_dynamic.h" + + using namespace std; +-- +2.13.2 + diff --git a/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb b/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb new file mode 100644 index 00000000000..10765ee0c12 --- /dev/null +++ b/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "An onscreen keyboard" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING.GPL3;md5=8521fa4dd51909b407c5150498d34f4e" + +DEPENDS += "gtk+3 hunspell libcanberra libxkbfile dconf python3-distutils-extra-native intltool-native" + +SRC_URI = "https://launchpad.net/onboard/1.4/${PV}/+download/${BPN}-${PV}.tar.gz \ + file://0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch \ + " +SRC_URI[md5sum] = "1a2fbe82e934f5b37841d17ff51e80e8" +SRC_URI[sha256sum] = "01cae1ac5b1ef1ab985bd2d2d79ded6fc99ee04b1535cc1bb191e43a231a3865" + +inherit setuptools3 pkgconfig gtk-icon-cache gsettings + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/icons \ + ${datadir}/gnome-shell \ + ${datadir}/help \ +" + +RDEPENDS_${PN} += " \ + ncurses \ + python3-dbus \ + python3-pycairo \ + python3-pygobject \ +" diff --git a/meta-gnome/recipes-support/tracker/tracker-0.14.2/0005-Fix-missing-gobject-introspection-checks.patch b/meta-gnome/recipes-support/tracker/tracker-0.14.2/0005-Fix-missing-gobject-introspection-checks.patch deleted file mode 100644 index 8701f585476..00000000000 --- a/meta-gnome/recipes-support/tracker/tracker-0.14.2/0005-Fix-missing-gobject-introspection-checks.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -Naur ../tracker-0.10.8/configure.ac tracker-0.10.8//configure.ac ---- ../tracker-0.10.8/configure.ac 2011-04-08 15:03:30.000000000 +0300 -+++ tracker-0.10.8//configure.ac 2011-04-11 13:47:16.625914002 +0300 -@@ -218,7 +218,12 @@ - - # Needed to generate .gir files, - # see http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport --GOBJECT_INTROSPECTION_CHECK([0.9.5]) -+#GOBJECT_INTROSPECTION_CHECK([0.9.5]) -+# Satisfy missing introspection foo -+AM_CONDITIONAL(HAVE_INTROSPECTION, test "0" == "1") -+ -+INTROSPECTION_CFLAGS="" -+AC_SUBST(INTROSPECTION_CFLAGS) - - # NOTE: dbus and dbus-glib-1 are only used now for libtracker-client - # which is deprecated and tracker-writeback which will be refactored diff --git a/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch b/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch deleted file mode 100644 index 5dadda2a29f..00000000000 --- a/meta-gnome/recipes-support/tracker/tracker-0.14.2/enable-sqlite-crosscompile.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: tracker-0.10.17/m4/sqlite-threadsafe.m4 -=================================================================== ---- tracker-0.10.17.orig/m4/sqlite-threadsafe.m4 -+++ tracker-0.10.17/m4/sqlite-threadsafe.m4 -@@ -45,7 +45,7 @@ int main () - ]])], - [ax_cv_sqlite_threadsafe=yes], - [ax_cv_sqlite_threadsafe=no], -- [ax_cv_sqlite_threadsafe=no])]) -+ [ax_cv_sqlite_threadsafe=yes])]) - - LIBS="$save_LIBS" - ]) diff --git a/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch b/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch deleted file mode 100644 index 6c3d9de107d..00000000000 --- a/meta-gnome/recipes-support/tracker/tracker-0.14.2/fix-removable-media-detection.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: tracker-0.14.2/src/libtracker-miner/tracker-storage.c -=================================================================== ---- tracker-0.14.2.orig/src/libtracker-miner/tracker-storage.c 2011-08-03 13:53:16.000000000 +0100 -+++ tracker-0.14.2/src/libtracker-miner/tracker-storage.c 2012-09-10 08:25:18.322215126 +0100 -@@ -20,6 +20,7 @@ - #include "config.h" - - #include -+#include - - #include - #include -@@ -646,6 +647,17 @@ - gchar *content_type; - gboolean is_multimedia; - gboolean is_blank; -+ struct stat st; -+ -+ /* -+ * Consider all files under /media to be -+ * removable unless the file .this-is-root is -+ * present. -+ */ -+ if (!strncmp (mount_path, "/media/", -+ strlen ("/media/")) && -+ stat ("/media/.this-is-root", &st)) -+ is_removable = TRUE; - - content_type = mount_guess_content_type (mount, &is_optical, &is_multimedia, &is_blank); - diff --git a/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb b/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb deleted file mode 100644 index 104e490a3ad..00000000000 --- a/meta-gnome/recipes-support/tracker/tracker_0.14.2.bb +++ /dev/null @@ -1,79 +0,0 @@ -DESCRIPTION = "Tracker is a tool designed to extract information and metadata about your personal data so that it can be searched easily and quickly." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=ee31012bf90e7b8c108c69f197f3e3a4" -DEPENDS = "file gstreamer gamin dbus libexif gettext sqlite3 icu gst-plugins-base libgnome-keyring poppler tiff enca libgsf libunistring giflib taglib bzip2 upower gtk+3 libgee networkmanager" - -RDEPENDS_${PN} += " gvfs gsettings-desktop-schemas" -HOMEPAGE = "http://projects.gnome.org/tracker/" - -PR = "r7" - -inherit autotools pkgconfig gnomebase gettext gsettings systemd - -VER_DIR = "${@gnome_verdir("${PV}")}" -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/tracker/${VER_DIR}/tracker-${PV}.tar.xz \ - file://0005-Fix-missing-gobject-introspection-checks.patch \ - file://enable-sqlite-crosscompile.patch \ - file://fix-removable-media-detection.patch \ - file://90tracker \ - file://tracker-store.service \ - file://tracker-miner-fs.service \ - file://tracker-dbus.service \ - " - -SYSTEMD_SERVICE_${PN} = " tracker-store.service tracker-miner-fs.service tracker-dbus.service " -SYSTEMD_AUTO_ENABLE = "disable" - -EXTRA_OECONF += " tracker_cv_have_ioprio=yes" - -PACKAGECONFIG ?= "nautilus" -PACKAGECONFIG[nautilus] = "--enable-nautilus-extension,--disable-nautilus-extension,nautilus" - -# Disable the desktop-centric miners -EXTRA_OECONF += "--disable-miner-thunderbird --disable-miner-firefox \ - --disable-miner-evolution --disable-miner-flickr" - -LEAD_SONAME = "libtrackerclient.so.0" - -do_install_append() { - cp -PpR ${D}${STAGING_DATADIR}/* ${D}${datadir}/ || true -# install -d ${D}/${sysconfdir}/X11/Xsession.d/ -# install -m 0755 ${WORKDIR}/90tracker ${D}/${sysconfdir}/X11/Xsession.d/ - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/tracker-store.service ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/tracker-miner-fs.service ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/tracker-dbus.service ${D}${systemd_unitdir}/system - sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' \ - -e 's,@BASE_BINDIR@,${base_bindir},g' \ - ${D}${systemd_unitdir}/system/*.service -} - -PACKAGES =+ "${PN}-tests ${PN}-vala ${PN}-nautilus-extension" - -FILES_${PN} += "${datadir}/dbus-1/ \ - ${libdir}/tracker-${VER_DIR}/*.so.* \ - ${libdir}/tracker-${VER_DIR}/extract-modules/*.so \ - ${datadir}/icons/hicolor/*/apps/tracker.* \ - ${libdir}/nautilus/extensions-2.0/*.la \ - ${datadir}/glib-2.0/schemas/* \ - ${systemd_unitdir}/system/tracker-store.service \ - ${systemd_unitdir}/system/tracker-miner-fs.service \ - ${systemd_unitdir}/system/tracker-dbus.service \ -" - -FILES_${PN}-dev += "${libdir}/tracker-${VER_DIR}/*.la \ - ${libdir}/tracker-${VER_DIR}/*.so \ - ${libdir}/tracker-${VER_DIR}/*/*.so \ - ${libdir}/tracker-${VER_DIR}/*/*.la \ - ${libdir}/tracker-${VER_DIR}/extract-modules/*.la" - -FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a" -FILES_${PN}-dbg += "${libdir}/*/*/.debug \ - ${libdir}/*/.debug" -FILES_${PN}-tests = "${datadir}/tracker-tests/" -FILES_${PN}-vala = "${datadir}/vala/" -FILES_${PN}-nautilus-extension += "${libdir}/nautilus/extensions-2.0/*.so" - -SRC_URI[md5sum] = "f3a871beeebf86fd752863ebd22af9ac" -SRC_URI[sha256sum] = "9b59330aa2e9e09feee587ded895e9247f71fc25f46b023d616d9969314bc7f1" diff --git a/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch b/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch new file mode 100644 index 00000000000..76640b0a1e9 --- /dev/null +++ b/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch @@ -0,0 +1,26 @@ +From fda0ff49968aebc7b27f9711cf6eb7f6c560adc1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Jul 2017 18:28:15 -0700 +Subject: [PATCH] Makefile.am: Link with libm for powl() API + +Signed-off-by: Khem Raj +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 4219f28..2a5ceac 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -69,7 +69,7 @@ dist_pkgdata_DATA = usermode.ui + userhelper_SOURCES = userhelper.c userhelper.h shvar.c shvar.h + userhelper_CPPFLAGS = $(AM_CPPFLAGS) -DSYSCONFDIR='"$(sysconfdir)"' + userhelper_LDADD = liblib.a $(LIBUSER_LIBS) $(GLIB_LIBS) $(PAM_LIBS) \ +- $(SELINUX_LIBS) $(EFENCE_LIBS) ++ $(SELINUX_LIBS) $(EFENCE_LIBS) -lm + + userinfo_SOURCES = userinfo.c + userinfo_CPPFLAGS = $(AM_CPPFLAGS) $(PIXMAPDIR_CPPFLAGS) $(SBINDIR_CPPFLAGS) \ +-- +2.13.3 + diff --git a/meta-gnome/recipes-support/usermode/usermode/0001-fix-compile-failure-against-musl-C-library.patch b/meta-gnome/recipes-support/usermode/usermode/0001-fix-compile-failure-against-musl-C-library.patch new file mode 100644 index 00000000000..bf19f284cec --- /dev/null +++ b/meta-gnome/recipes-support/usermode/usermode/0001-fix-compile-failure-against-musl-C-library.patch @@ -0,0 +1,27 @@ +From c77e3f0d4560797f7dc56549ae5ebcc035714a4d Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 20 Jul 2017 23:20:53 -0400 +Subject: [PATCH] fix compile failure against musl C library + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + usermount.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/usermount.c b/usermount.c +index 3aafadd..4107027 100644 +--- a/usermount.c ++++ b/usermount.c +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.8.1 + diff --git a/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch b/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch new file mode 100644 index 00000000000..9d512d43923 --- /dev/null +++ b/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch @@ -0,0 +1,34 @@ +From 7a316dad0697af2ef4e8079a5af51565a8195aa6 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 24 Jul 2017 01:42:30 -0400 +Subject: [PATCH] userhelper.c: fix formatting issues + +Fixed when compile with "-Wformat -Wformat-security -Werror=format-security": +|../usermode-1.111/userhelper.c:585:4: error: format not a string +literal and no format arguments [-Werror=format-security] +| text = g_strdup_printf(dgettext(data->domain, data->banner)); +| ^~~~ + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + userhelper.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/userhelper.c b/userhelper.c +index 76ad492..ee0da49 100644 +--- a/userhelper.c ++++ b/userhelper.c +@@ -582,7 +582,7 @@ converse_console(int num_msg, const struct pam_message **msg, + + if (banner == 0) { + if ((data->banner != NULL) && (data->domain != NULL)) { +- text = g_strdup_printf(dgettext(data->domain, data->banner)); ++ text = g_strdup_printf("%s", dgettext(data->domain, data->banner)); + } else { + if ((service != NULL) && (strlen(service) > 0)) { + if (data->fallback_allowed) { +-- +2.8.1 + diff --git a/meta-gnome/recipes-support/usermode/usermode_1.111.bb b/meta-gnome/recipes-support/usermode/usermode_1.111.bb new file mode 100644 index 00000000000..c2d73289ee4 --- /dev/null +++ b/meta-gnome/recipes-support/usermode/usermode_1.111.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "The usermode contains the userhelper program, which can be used to allow configured \ +programs to be run with superuser privileges by ordinary users, and several \ +graphical tools for users: \ +* userinfo allows users to change their finger information. \ +* usermount lets users mount, unmount, and format filesystems. \ +* userpasswd allows users to change their passwords. \ +" +HOMEPAGE = "https://pagure.io/usermode" +LICENSE = "GPLv2+" +DEPENDS = "libuser ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \ + gtk+ desktop-file-utils-native \ + startup-notification intltool-native \ + util-linux \ +" + +SRC_URI = "https://releases.pagure.org/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-formatting-issues.patch \ + file://0001-fix-compile-failure-against-musl-C-library.patch \ + file://0001-Makefile.am-Link-with-libm-for-powl-API.patch \ + " +SRC_URI[md5sum] = "28ba510fbd8da9f4e86e57d6c31cff29" +SRC_URI[sha256sum] = "3dd0b9639b5bd396b7ea5fada6aaa694dbfdaa3ad06eb95a6eabcdfd02f875c6" + +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit autotools gettext pkgconfig + +EXTRA_OEMAKE += "INSTALL='install -p'" + diff --git a/meta-gnome/site/arm-64 b/meta-gnome/site/arm-64 new file mode 100644 index 00000000000..f474d2cc405 --- /dev/null +++ b/meta-gnome/site/arm-64 @@ -0,0 +1,13 @@ +# ORBit2 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_double=8 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_double=8 +ac_cv_alignof_CORBA_long_long=8 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_pointer=4 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_struct=1 +ac_cv_alignof_CORBA_wchar=2 diff --git a/meta-gnome/site/x86_64-linux b/meta-gnome/site/x86_64-linux new file mode 100644 index 00000000000..eba1fee2bb1 --- /dev/null +++ b/meta-gnome/site/x86_64-linux @@ -0,0 +1,17 @@ +# ORBit2 +ac_cv_alignof_CORBA_boolean=1 +ac_cv_alignof_CORBA_char=1 +ac_cv_alignof_CORBA_double=8 +ac_cv_alignof_CORBA_float=4 +ac_cv_alignof_CORBA_long=4 +ac_cv_alignof_CORBA_long_double=8 +ac_cv_alignof_CORBA_long_long=8 +ac_cv_alignof_CORBA_octet=1 +ac_cv_alignof_CORBA_pointer=8 +ac_cv_alignof_CORBA_short=2 +ac_cv_alignof_CORBA_struct=1 +ac_cv_alignof_CORBA_wchar=2 + +lf_cv_sane_realloc=yes +as_cv_unaligned_access=${as_cv_unaligned_access=yes} + diff --git a/meta-gpe/README b/meta-gpe/README deleted file mode 100644 index 7d019f63a00..00000000000 --- a/meta-gpe/README +++ /dev/null @@ -1,17 +0,0 @@ -This layer depends on: - -URI: git://github.com/openembedded/oe-core.git -branch: master -revision: HEAD - -URI: git://github.com/openembedded/meta-oe.git -branch: master -revision: HEAD - -Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gpe]' in the subject' - -When sending single patches, please using something like: -'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-gpe][PATCH' - -Interim layer maintainers: Koen Kooi - Martin Jansa diff --git a/meta-gpe/conf/layer.conf b/meta-gpe/conf/layer.conf deleted file mode 100644 index 00f3929f8f3..00000000000 --- a/meta-gpe/conf/layer.conf +++ /dev/null @@ -1,15 +0,0 @@ -# We have a conf and classes directory, append to BBPATH -BBPATH .= ":${LAYERDIR}" - -# We have a recipes directory, add to BBFILES -BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" - -BBFILE_COLLECTIONS += "gpe-layer" -BBFILE_PATTERN_gpe-layer := "^${LAYERDIR}/" -BBFILE_PRIORITY_gpe-layer = "7" - -# This should only be incremented on significant changes that will -# cause compatibility issues with other layers -LAYERVERSION_gpe-layer = "1" - -LAYERDEPENDS_gpe-layer = "core openembedded-layer" diff --git a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch b/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch deleted file mode 100644 index c976ff4705f..00000000000 --- a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch +++ /dev/null @@ -1,28 +0,0 @@ -From c551dece6768f67b74b508e9c0133320205ef2df Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Mon, 23 May 2011 15:03:29 +0200 -Subject: [PATCH] Fix the ordering of LDADD options to fix a compilation failure. - -"invalid DSO for symbol `XUngrabServer' definition " - -Signed-off-by: Koen Kooi ---- - src/Makefile.am | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 2fddc98..45bd850 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -6,7 +6,7 @@ INCLUDES = -DPKGDATADIR=\"$(pkgdatadir)\" \ - $(GLADE_CFLAGS) \ - -D_GNU_SOURCE - --LIBS = $(GTK_LIBS) $(GLADE_LIBS) $(XSHAPE_LIBS) -+LIBS = -lX11 $(XSHAPE_LIBS) $(GLADE_LIBS) $(GTK_LIBS) - - bin_PROGRAMS = gpe-scap - gpe_scap_SOURCES = scr-i18n.h \ --- -1.6.6.1 - diff --git a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch b/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch deleted file mode 100644 index 3cfe5d7240a..00000000000 --- a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap/use.libsoup-2.4.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -uNr gpe-scap-1.4.orig/configure.ac gpe-scap-1.4/configure.ac ---- gpe-scap-1.4.orig/configure.ac 2009-03-05 18:53:53.000000000 +0100 -+++ gpe-scap-1.4/configure.ac 2012-05-06 10:18:29.348308322 +0200 -@@ -24,7 +24,7 @@ - AC_SUBST(LDFLAGS) - - dnl libraries --GTK_MODULES="gtk+-2.0 >= 2.6.0 gthread-2.0 libsoup-2.2" -+GTK_MODULES="gtk+-2.0 >= 2.6.0 gthread-2.0 libsoup-2.4" - PKG_CHECK_MODULES(GTK, $GTK_MODULES) - AC_SUBST(GTK_CFLAGS) - AC_SUBST(GTK_LIBS) -diff -uNr gpe-scap-1.4.orig/src/scr-shot-common.c gpe-scap-1.4/src/scr-shot-common.c ---- gpe-scap-1.4.orig/src/scr-shot-common.c 2009-03-05 12:13:20.000000000 +0100 -+++ gpe-scap-1.4/src/scr-shot-common.c 2012-05-06 10:30:52.299371576 +0200 -@@ -182,12 +182,12 @@ - /* create session and message */ - session = soup_session_sync_new (); - message = soup_message_new ("POST", url); -- soup_message_add_header (message->request_headers, "User-Agent", "gpe-scap/" VERSION); -- soup_message_add_header (message->request_headers, "Accept", -+ soup_message_headers_append (message->request_headers, "User-Agent", "gpe-scap/" VERSION); -+ soup_message_headers_append (message->request_headers, "Accept", - "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); --/* soup_message_add_header (message->request_headers, "Accept-Charset", "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7"); -- soup_message_add_header (message->request_headers, "Keep-Alive", "100"); -- soup_message_add_header (message->request_headers, "Connection", "keep-alive"); -+/* soup_message_headers_append (message->request_headers, "Accept-Charset", "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7"); -+ soup_message_headers_append (message->request_headers, "Keep-Alive", "100"); -+ soup_message_headers_append (message->request_headers, "Connection", "keep-alive"); - soup_message_wire add_header (message->request_headers, "Accept-Encoding", "gzip,deflate"); - */ - /* build message body */ -@@ -207,7 +207,7 @@ - memcpy (body + strlen (cmd) + len, tail, strlen (tail)); - - soup_message_set_request (message, "multipart/form-data; boundary="SEP, -- SOUP_BUFFER_SYSTEM_OWNED, body, content_len); -+ SOUP_MEMORY_TAKE, body, content_len); - - soup_session_send_message (session, message); - diff --git a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb b/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb deleted file mode 100644 index 3f1e27e8720..00000000000 --- a/meta-gpe/recipes-graphics/gpe-scap/gpe-scap_1.4.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "A GPE application that allows you to take screenshots" -SECTION = "gpe" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" - -DEPENDS = "glib-2.0 gtk+ libgpewidget libglade libsoup-2.4" - -PR = "r3" - -SRC_URI[md5sum] = "eaf545561b0ad981c9d01833f30fcf95" -SRC_URI[sha256sum] = "762778421fae7c62d5ec6a9d27986166c0dbbe2ff51fc10bb9b8baff5c367534" - -GPE_TARBALL_SUFFIX = "bz2" - -inherit gpe autotools pkgconfig - -SRC_URI += "file://0001-Fix-the-ordering-of-LDADD-options-to-fix-a-compilati.patch \ - file://use.libsoup-2.4.patch \ -" - -RREPLACES_${PN} = "gpe-screenshot" - diff --git a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch b/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch deleted file mode 100644 index f590caa46da..00000000000 --- a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/glib-2.32.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -uNr libgpewidget-0.117.orig/gpehelp.c libgpewidget-0.117/gpehelp.c ---- libgpewidget-0.117.orig/gpehelp.c 2006-10-12 12:20:33.000000000 +0200 -+++ libgpewidget-0.117/gpehelp.c 2012-04-30 07:45:57.813293792 +0200 -@@ -33,7 +33,6 @@ - #include - #include - #include --#include - - - /* helper function definitions*/ diff --git a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch b/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch deleted file mode 100644 index 317e01a9b4d..00000000000 --- a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget/pkgconfig.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.ac.orig 2006-02-04 17:37:55.000000000 +0100 -+++ configure.ac 2006-02-06 00:56:28.000000000 +0100 -@@ -36,7 +36,7 @@ - ENABLE_CAIRO=$enableval - ], - [ -- PKG_CHECK_EXISTS(cairo, [ENABLE_CAIRO=yes], [ENABLE_CAIRO=no]) -+ PKG_CHECK_MODULES(cairo, [ENABLE_CAIRO=yes], [ENABLE_CAIRO=no]) - ]) - - ENABLE_HILDON=false diff --git a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb b/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb deleted file mode 100644 index df774eed068..00000000000 --- a/meta-gpe/recipes-graphics/libgpewidget/libgpewidget_0.117.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications." -SECTION = "gpe/libs" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499" - -DEPENDS = "gtk+ cairo libxinerama libxcomposite libxrender" -PR = "r5" - -inherit gpe pkgconfig autotools gtk-doc - -SRC_URI += "file://pkgconfig.patch;striplevel=0 \ - file://glib-2.32.patch \ -" -SRC_URI[md5sum] = "b85a839264a35d0faf9a1a38c486e189" -SRC_URI[sha256sum] = "f96d30c09b0395ea4e146730fd52d9ea303b619bb139051d9f12d3f868a9e18c" - -GPE_TARBALL_SUFFIX = "bz2" - -EXTRA_OECONF = "--enable-cairo" -LDFLAGS += " -L${STAGING_LIBDIR}" - -PACKAGES =+ "${PN}-bin" diff --git a/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch b/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch deleted file mode 100644 index 1be6ceaa8bb..00000000000 --- a/meta-gpe/recipes-graphics/minilite/minilite/makefile-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- /tmp/Makefile.old 2006-01-16 22:51:34.000000000 +0100 -+++ minilite-050/Makefile 2009-05-01 16:36:32.000000000 +0200 -@@ -45,7 +45,7 @@ - - install-program: all - mkdir -p $(DESTDIR)$(PREFIX)/bin -- $(INSTALL) -s $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE) -+ $(INSTALL) $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE) - mkdir -p $(DESTDIR)$(PREFIX)/share/applications - $(INSTALL) -m 644 $(PACKAGE).desktop $(DESTDIR)$(PREFIX)/share/applications/$(PACKAGE).desktop - mkdir -p $(DESTDIR)$(PREFIX)/share/pixmaps/ diff --git a/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb b/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb deleted file mode 100644 index 90960a2b050..00000000000 --- a/meta-gpe/recipes-graphics/minilite/minilite_0.50.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "GPE Screen light control dockapp" -SECTION = "gpe" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://minilite.c;beginline=8;endline=11;md5=fe9332aaecbce9f74ce2bfeb91680ed1" - -DEPENDS = "libgpewidget" - -inherit gpe - -SRC_URI = "${GPE_MIRROR}/${BP}.tar.gz \ - file://makefile-fix.patch" -SRC_URI[md5sum] = "d81cecf269ad7bab0da960e6e7228332" -SRC_URI[sha256sum] = "2b299425203246090a4949e034f1d0efb3ff99cd1591d0e16c57370a530b361e" - -export CVSBUILD="no" diff --git a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch b/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch deleted file mode 100644 index 0e498c7125a..00000000000 --- a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/Makefile.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -uri fbreader-0.12.1.orig/fbreader/Makefile fbreader-0.12.1/fbreader/Makefile ---- fbreader-0.12.1.orig/fbreader/Makefile 2009-12-13 09:03:11.000000000 +0100 -+++ fbreader-0.12.1/fbreader/Makefile 2009-12-14 17:18:47.548638783 +0100 -@@ -37,7 +37,6 @@ - @install $(TARGET) $(DESTDIR)$(BINDIR)/FBReader - @install -d $(FBSHAREDIR) - @install -d $(FBSHAREDIR)/help -- @./scripts/install_help.sh $(VARIANT) $(FBSHAREDIR)/help - @install -d $(FBSHAREDIR)/network - @install -m 0644 $(wildcard data/network/*.xml) $(FBSHAREDIR)/network - @install -d $(FBSHAREDIR)/network/certificates -@@ -58,8 +57,8 @@ - @install -d $(FBSHAREDIR)/resources - @install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources - @install -d $(DESTDIR)$(APPIMAGEDIR_REAL) -- @install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) -- @install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) -+ @install -m 0644 $(wildcard data/icons/toolbar/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) -+ @install -m 0644 $(wildcard data/icons/filetree/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) - @install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) - @make -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install - diff --git a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch b/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch deleted file mode 100644 index 00cba1023fa..00000000000 --- a/meta-gpe/recipes-support/fbreader/fbreader-0.12.10/gcc45.patch +++ /dev/null @@ -1,20 +0,0 @@ - Fix compilation with gcc 4.5 - - [FBreader Ticket #340] -- http://old.fbreader.org/mantis/view.php?id=340 - - Without that patch we have: - Compiling Library.o ...Library.cpp:42:1: error: 'Library::Library' names the constructor, not the type - - Upstream-Status: Accepted [Fixed in Version 0.14.0] - ---- fbreader-0.12.10-orig/fbreader/src/library/Library.cpp 2010-04-01 15:14:24.000000000 +0200 -+++ fbreader-0.12.10/fbreader/src/library/Library.cpp 2010-04-13 13:34:06.000000000 +0200 -@@ -39,7 +39,7 @@ - shared_ptr Library::ourInstance; - const size_t Library::MaxRecentListSize = 10; - --Library::Library &Library::Instance() { -+Library &Library::Instance() { - if (ourInstance.isNull()) { - ourInstance = new Library(); - } diff --git a/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb b/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb deleted file mode 100644 index e9ead0f248e..00000000000 --- a/meta-gpe/recipes-support/fbreader/fbreader_0.12.10.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "FBreader is an ebook reader" -HOMEPAGE = "http://www.fbreader.org" -SECTION = "x11/utils" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://fbreader/LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "gtk+ enca expat bzip2 libgpewidget virtual/libiconv liblinebreak libfribidi curl sqlite3" - -PR = "r1" - -SRC_URI = "http://www.fbreader.org/fbreader-sources-${PV}.tgz \ -file://Makefile.patch \ -file://gcc45.patch" - -# Set the defaults -READER_RESOLUTION ?= "1024x600" -READER_ARCH ?= "desktop" -READER_UI ?= "gtk" -READER_STATUS ?= "release" - -FILES_${PN} += "${datadir}/FBReader ${datadir}/zlibrary ${libdir}/zlibrary" -FILES_${PN}-dbg += "${libdir}/zlibrary/ui/.debug/" - -CFLAGS_append = " RESOLUTION=${READER_RESOLUTION} INSTALLDIR=${prefix}" -EXTRA_OEMAKE = "CC='${CXX}' LD='${CXX}' LDFLAGS='${LDFLAGS}' INCPATH='${STAGING_INCDIR}' LIBPATH='${STAGING_LIBDIR}'" - -inherit pkgconfig - -do_configure() { - cd ${WORKDIR}/${PN}-${PV} - mv makefiles/target.mk makefiles/target.mk.orig - - echo "TARGET_ARCH = ${READER_ARCH}" > makefiles/target.mk - echo "UI_TYPE = ${READER_UI}" >> makefiles/target.mk - echo "TARGET_STATUS = ${READER_STATUS}" >> makefiles/target.mk -} - -do_install() { - oe_runmake install DESTDIR=${D} RESOLUTION=${READER_RESOLUTION} -} - -SRC_URI[md5sum] = "da9ec4721efdb0ec0aaa182bff16ad82" -SRC_URI[sha256sum] = "328aec454db80e225aa0b5c31adef74bf62a14357482947e87e9731686b3c624" diff --git a/meta-gpe/recipes-support/fbreader/fbreader_git.bb b/meta-gpe/recipes-support/fbreader/fbreader_git.bb deleted file mode 100644 index 763889a5611..00000000000 --- a/meta-gpe/recipes-support/fbreader/fbreader_git.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "FBreader is an ebook reader" -HOMEPAGE = "http://www.fbreader.org" -SECTION = "x11/utils" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://fbreader/LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "gtk+ enca expat bzip2 libgpewidget virtual/libiconv liblinebreak libfribidi curl sqlite3" -SRCREV = "2cf1ec0e306e1122dbed850bfa005cd59a6168ee" -PV = "0.99.5+gitr${SRCPV}" - -PR = "r1" - -DEFAULT_PREFERENCE = "-1" - -SRC_URI = "git://github.com/geometer/FBReader.git;protocol=http;branch=master \ - file://0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch" - -# Set the defaults -READER_RESOLUTION ?= "1024x600" -READER_ARCH ?= "desktop" -READER_UI ?= "gtk" -READER_STATUS ?= "release" - -FILES_${PN} += "${datadir}/FBReader ${datadir}/zlibrary ${libdir}/zlibrary" -FILES_${PN}-dbg += "${libdir}/zlibrary/ui/.debug/" - -CFLAGS_append = " RESOLUTION=${READER_RESOLUTION} INSTALLDIR=${prefix}" -EXTRA_OEMAKE = "CC='${CXX}' LD='${CXX}' INCPATH='${STAGING_INCDIR}' LIBPATH='${STAGING_LIBDIR}'" -inherit pkgconfig - -S = "${WORKDIR}/git" - -do_configure() { - cd "${S}" - - echo "TARGET_ARCH = ${READER_ARCH}" > makefiles/target.mk - echo "UI_TYPE = ${READER_UI}" >> makefiles/target.mk - echo "TARGET_STATUS = ${READER_STATUS}" >> makefiles/target.mk -} - -do_install() { - oe_runmake install DESTDIR=${D} RESOLUTION=${READER_RESOLUTION} -} diff --git a/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch b/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch deleted file mode 100644 index f6e12023b17..00000000000 --- a/meta-gpe/recipes-support/fbreader/files/0001-Fix-installation-of-the-icons-when-RESOLUTION-is-set.patch +++ /dev/null @@ -1,40 +0,0 @@ -From da4170b61bb41eff0af170d1d77bfd90f9ebe5dd Mon Sep 17 00:00:00 2001 -From: Denis 'GNUtoo' Carikli -Date: Fri, 20 Jan 2012 11:34:42 +0100 -Subject: [PATCH] Fix installation of the icons when RESOLUTION is set - -When resolution is set, the following code(in fbreader/Makefile) is executed: - VARIANT = $(TARGET_ARCH) - ifneq "$(RESOLUTION)" "" - VARIANT = $(TARGET_ARCH)_$(RESOLUTION) - endif - -This fix is based on a patch from the openembedded project, - which can be found here: - http://cgit.openembedded.org/openembedded/tree/recipes/fbreader/fbreader-0.12.1/Makefile.patch - -Signed-off-by: Denis 'GNUtoo' Carikli ---- - Submitted trough github to git://github.com/geometer/FBReader.git as a pull request - - fbreader/Makefile | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/fbreader/Makefile b/fbreader/Makefile -index bfa9242..03e6cc3 100644 ---- a/fbreader/Makefile -+++ b/fbreader/Makefile -@@ -60,8 +60,8 @@ do_install: - @install -d $(FBSHAREDIR)/resources - @install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources - @install -d $(DESTDIR)$(APPIMAGEDIR_REAL) -- @install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) -- @install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) -+ @install -m 0644 $(wildcard data/icons/toolbar/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) -+ @install -m 0644 $(wildcard data/icons/filetree/$(TARGET_ARCH)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) - @install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL) - @make -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install - --- -1.7.4.1 - diff --git a/meta-initramfs/classes/klibc.bbclass b/meta-initramfs/classes/klibc.bbclass index f864104cfbd..b7b72b728b0 100644 --- a/meta-initramfs/classes/klibc.bbclass +++ b/meta-initramfs/classes/klibc.bbclass @@ -3,13 +3,14 @@ DEPENDS =+ "klcc-cross" # Default for klcc is to build static binaries. # Set CC = "${TARGET_PREFIX}klcc -shared" to build the dynamic version. +CC_forcevariable = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS}" +CC_forcevariable_armv4_linux-gnueabi = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS} -march=armv4 -mthumb-interwork" +CC_append_armv7ve = " ${@' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}" +CC_append_armv7a = " ${@' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}" -export CC = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS}" -export CC_armv4_linux-gnueabi = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS} -march=armv4 -mthumb-interwork" - -export CPP = "${CC} -E" +CPP_forcevariable = "${CC} -E" # klcc uses own optimizations by default. See klcc(1) man file. -export CFLAGS="" -export CPPFLAGS="" -export LDFLAGS="" +export CFLAGS="${TUNE_CCARGS}" +export CPPFLAGS="${TUNE_CCARGS}" +export LDFLAGS="${TUNE_CCARGS}" diff --git a/meta-initramfs/conf/layer.conf b/meta-initramfs/conf/layer.conf index 0026e04447c..d9b7c4cfb3c 100644 --- a/meta-initramfs/conf/layer.conf +++ b/meta-initramfs/conf/layer.conf @@ -15,3 +15,7 @@ BBFILE_PATTERN_meta-initramfs := "^${LAYERDIR}/" BBFILE_PRIORITY_meta-initramfs = "8" LAYERDEPENDS_meta-initramfs = "core" + +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ + dracut->virtual/kernel \ +" diff --git a/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb b/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb index 8e87c19a26d..be7350ade2e 100644 --- a/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb +++ b/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb @@ -17,5 +17,6 @@ IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" inherit core-image IMAGE_ROOTFS_SIZE = "8192" +IMAGE_ROOTFS_EXTRA_SPACE = "0" BAD_RECOMMENDATIONS += "busybox-syslog" diff --git a/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb b/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb index 35eb245cead..2573eb48183 100644 --- a/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb +++ b/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb @@ -1,12 +1,15 @@ SUMMARY = "Initramfs image for kexecboot kernel" DESCRIPTION = "This image provides kexecboot (linux as bootloader) and helpers." LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +inherit image IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" # avoid circular dependencies EXTRA_IMAGEDEPENDS = "" +KERNELDEPMODDEPEND = "" # We really need just kexecboot, kexec and ubiattach IMAGE_INSTALL = "kexecboot kexec mtd-utils-ubifs" @@ -18,5 +21,8 @@ IMAGE_LINGUAS = "" FEED_DEPLOYDIR_BASE_URI = "" LDCONFIGDEPEND = "" +IMAGE_ROOTFS_EXTRA_SPACE = "0" + +# disable runtime dependency on run-postinsts -> update-rc.d +ROOTFS_BOOTSTRAP_INSTALL = "" -inherit image diff --git a/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb b/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb index df97511892a..6b845bd9d39 100644 --- a/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb +++ b/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb @@ -5,3 +5,8 @@ SUMMARY = "Initramfs image for kexecboot kernel (klibc-static binaries)" # We really need just kexecboot, kexec and ubiattach # statically compiled against klibc IMAGE_INSTALL = "kexecboot-klibc kexec-klibc ubiattach-klibc" + +python () { + if d.getVar('TARGET_ARCH') == "nios2": + raise bb.parse.SkipPackage("'nios2' not supported arch") +} diff --git a/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb b/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb index b7defff6fad..667690f8886 100644 --- a/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb +++ b/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb @@ -1,6 +1,6 @@ SUMMARY = "Extremely basic live image init script" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" SRC_URI = "file://init-debug.sh" S = "${WORKDIR}" diff --git a/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-fix-build-when-S-B.patch b/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-fix-build-when-S-B.patch deleted file mode 100644 index 6d3270f8914..00000000000 --- a/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-fix-build-when-S-B.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 8519d61a7097498b0ee93fb8dc8262286825f3e5 Mon Sep 17 00:00:00 2001 -From: Andrea Adami -Date: Thu, 1 May 2014 23:58:51 +0200 -Subject: [PATCH 1/4] kexecboot: fix build when S != B - -* fatal error: ../config.h: No such file or directory - -Signed-off-by: Andrea Adami ---- - machine/zaurus.c | 2 +- - res/theme-gui.h | 2 +- - res/theme-tui.h | 4 ++-- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/machine/zaurus.c b/machine/zaurus.c -index ea21047..83be13b 100644 ---- a/machine/zaurus.c -+++ b/machine/zaurus.c -@@ -25,7 +25,7 @@ - * - */ - --#include "../config.h" -+#include "config.h" - - #ifdef USE_ZAURUS - -diff --git a/res/theme-gui.h b/res/theme-gui.h -index f8fef7f..79bed39 100644 ---- a/res/theme-gui.h -+++ b/res/theme-gui.h -@@ -15,7 +15,7 @@ - * - */ - --#include "../config.h" -+#include "config.h" - - #ifdef USE_ICONS - /** Icons **/ -diff --git a/res/theme-tui.h b/res/theme-tui.h -index 94e7693..909be56 100644 ---- a/res/theme-tui.h -+++ b/res/theme-tui.h -@@ -15,11 +15,11 @@ - * - */ - --#include "../config.h" -+#include "config.h" - - #ifdef USE_TEXTUI - /** TEXT UI colors **/ --#include "../termseq.h" -+#include "termseq.h" - - /* Background color pair */ - #define TUI_CLR_BG TERM_CSI TERM_BG_BLACK ";" TERM_FG_WHITE TERM_SGR --- -1.9.1 - diff --git a/meta-initramfs/recipes-bsp/kexecboot/files/0002-kexecboot-fix-configure-warnings.patch b/meta-initramfs/recipes-bsp/kexecboot/files/0002-kexecboot-fix-configure-warnings.patch deleted file mode 100644 index ecf422b72d6..00000000000 --- a/meta-initramfs/recipes-bsp/kexecboot/files/0002-kexecboot-fix-configure-warnings.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b8938acc3f1ab35273fa9a2fa7728050ef72ff65 Mon Sep 17 00:00:00 2001 -From: Andrea Adami -Date: Fri, 2 May 2014 00:19:24 +0200 -Subject: [PATCH 2/4] kexecboot: fix configure warnings - -Makefile.am:5: warning: source file 'fstype/fstype.c' is in a subdirectory, -Makefile.am:5: but option 'subdir-objects' is disabled -automake: warning: possible forward-incompatibility. -... -Makefile.am:5: warning: source file 'machine/zaurus.c' is in a subdirectory, -... - -Signed-off-by: Andrea Adami ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 0ca4b81..66ec54e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1,7 +1,7 @@ - AC_PREREQ(2.53) - AC_INIT([kexecboot], [0.6], [kexecboot-devel@linuxtogo.org]) - AC_CANONICAL_HOST --AM_INIT_AUTOMAKE([-Wall foreign]) -+AM_INIT_AUTOMAKE([-Wall foreign] [subdir-objects]) - AC_CONFIG_SRCDIR(kexecboot.c) - AC_CONFIG_HEADERS(config.h) - AM_MAINTAINER_MODE --- -1.9.1 - diff --git a/meta-initramfs/recipes-bsp/kexecboot/files/0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch b/meta-initramfs/recipes-bsp/kexecboot/files/0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch deleted file mode 100644 index 4caa0d5f024..00000000000 --- a/meta-initramfs/recipes-bsp/kexecboot/files/0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 800dae0d34f8629a34c638a612166b76dda03e27 Mon Sep 17 00:00:00 2001 -From: Andrea Adami -Date: Sat, 2 Aug 2014 01:13:08 +0200 -Subject: [PATCH 3/4] kexecboot: do not hardcode MOUNTPOINT - -Avoid to hardcode it: could be requested as a new configure option. - -Signed-off-by: Andrea Adami ---- - cfgparser.c | 6 +++--- - kexecboot.c | 18 ++++++++++-------- - 2 files changed, 13 insertions(+), 11 deletions(-) - -diff --git a/cfgparser.c b/cfgparser.c -index 8f6688c..dec27b1 100644 ---- a/cfgparser.c -+++ b/cfgparser.c -@@ -141,7 +141,7 @@ static int set_kernel(struct cfgdata_t *cfgdata, char *value) - return -1; - } - -- strcpy(sc->kernelpath, "/mnt"); -+ strcpy(sc->kernelpath, MOUNTPOINT); - strcat(sc->kernelpath, value); - return 0; - } -@@ -155,7 +155,7 @@ static int set_icon(struct cfgdata_t *cfgdata, char *value) - - dispose(sc->iconpath); - /* Add our mountpoint, since the enduser won't know it */ -- sc->iconpath = malloc(sizeof(MOUNTPOINT)+strlen(value)); -+ sc->iconpath = malloc(strlen(MOUNTPOINT)+strlen(value)+1); - if (NULL == sc->iconpath) { - DPRINTF("Can't allocate memory to store iconpath '%s'", value); - return -1; -@@ -194,7 +194,7 @@ static int set_initrd(struct cfgdata_t *cfgdata, char *value) - return -1; - } - -- strcpy(sc->initrd, "/mnt"); -+ strcpy(sc->initrd, MOUNTPOINT); - strcat(sc->initrd, value); - return 0; - } -diff --git a/kexecboot.c b/kexecboot.c -index d6657a0..7268d6b 100644 ---- a/kexecboot.c -+++ b/kexecboot.c -@@ -57,20 +57,22 @@ - #endif - - #ifdef USE_MACHINE_KERNEL --/* Machine-dependent kernel patch */ -+/* Machine-dependent kernel path */ - char *machine_kernel = NULL; - #endif - -+#define PREPEND_MOUNTPATH(string) MOUNTPOINT""string -+ - /* NULL-terminated array of kernel search paths - * First item should be filled with machine-dependent path */ - char *default_kernels[] = { - #ifdef USE_ZIMAGE -- "/mnt/boot/zImage", -- "/mnt/zImage", -+ PREPEND_MOUNTPATH("/boot/zImage"), -+ PREPEND_MOUNTPATH("/zImage"), - #endif - #ifdef USE_UIMAGE -- "/mnt/boot/uImage", -- "/mnt/uImage", -+ PREPEND_MOUNTPATH("/boot/uImage"), -+ PREPEND_MOUNTPATH("/uImage"), - #endif - NULL - }; -@@ -149,14 +151,14 @@ char *get_machine_kernelpath() { - ++tmp; - } - -- /* Prepend "/mnt/boot/zImage-" to hw */ -- tmp = malloc(strlen(hw) + 17 + 1); /* strlen("/mnt/boot/zImage-") */ -+ /* Prepend MOUNTPOINT"/boot/zImage-" to hw */ -+ tmp = malloc(strlen(PREPEND_MOUNTPATH("/boot/zImage-")) + strlen(hw) + 1); - if (NULL == tmp) { - DPRINTF("Can't allocate memory for machine-specific kernel path"); - return NULL; - } - -- strcpy(tmp, "/mnt/boot/zImage-"); -+ strcpy(tmp, PREPEND_MOUNTPATH("/boot/zImage-")); - strcat(tmp, hw); - - return tmp; --- -1.9.1 - diff --git a/meta-initramfs/recipes-bsp/kexecboot/files/0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch b/meta-initramfs/recipes-bsp/kexecboot/files/0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch deleted file mode 100644 index 6d81d83578a..00000000000 --- a/meta-initramfs/recipes-bsp/kexecboot/files/0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch +++ /dev/null @@ -1,135 +0,0 @@ -From de9a6284df8add6ec03e1d9981d0b6d0595bbc69 Mon Sep 17 00:00:00 2001 -From: Andrea Adami -Date: Mon, 10 Nov 2014 23:37:23 +0100 -Subject: [PATCH 4/4] kexecboot.c: workaround for absolute kernel and initrd - symlinks - -Add MOUNTPOINT prefix if the kernel/initrd symlinks start with '/'. -Do nothing if the path is a relative symbolic link or not a symlink. - -Fix following situation: - -root@mizar:/var/tmp# ls -al boot/ -total 2076 -drwxr-xr-x 2 root root 4096 lug 5 01:38 . -drwxrwxrwt 4 root root 4096 lug 5 12:26 .. --rw-r--r-- 1 root root 831 lug 5 01:24 boot.cfg --rw-r--r-- 1 root root 1322 lug 5 01:24 icon.xpm -lrwxrwxrwx 1 root root 34 lug 5 12:26 zImage -> -/boot/zImage-3.14.5-yocto-standard --rw-r--r-- 1 root root 2106832 lug 5 01:20 zImage-3.14.5-yocto-standard - -Cannot open `/mnt/boot/zImage': No such file or directory -Nothing has been loaded! - -Signed-off-by: Andrea Adami ---- - kexecboot.c | 53 ++++++++++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 44 insertions(+), 9 deletions(-) - -diff --git a/kexecboot.c b/kexecboot.c -index 7268d6b..8a7a7d2 100644 ---- a/kexecboot.c -+++ b/kexecboot.c -@@ -208,11 +208,16 @@ void start_kernel(struct params_t *params, int choice) - const char *load_argv[] = { NULL, "-l", NULL, NULL, NULL, NULL }; - const char *exec_argv[] = { NULL, "-e", NULL, NULL}; - -- char *cmdline_arg = NULL, *initrd_arg = NULL; -+ char *cmdline_arg = NULL, *initrd_arg = NULL, *kernel_arg = NULL; - int n, idx, u; - struct stat sinfo; - struct boot_item_t *item; - -+ /* buffer for readlink (could be truncated) */ -+ char buf[512]; -+ int len; -+ -+ - item = params->bootcfg->list[choice]; - - exec_argv[0] = kexec_path; -@@ -306,10 +311,17 @@ void start_kernel(struct params_t *params, int choice) - } - } - -+ /* Mount boot device */ -+ if ( -1 == mount(mount_dev, mount_point, mount_fstype, -+ MS_RDONLY, NULL) ) { -+ perror("Can't mount boot device"); -+ exit(-1); -+ } -+ - /* fill '--initrd' option */ - if (item->initrd) { - /* allocate space */ -- n = sizeof(str_initrd_start) + strlen(item->initrd); -+ n = sizeof(str_initrd_start) + strlen(item->initrd) + 1 + sizeof(mount_point) + sizeof(buf); - - initrd_arg = (char *)malloc(n); - if (NULL == initrd_arg) { -@@ -317,24 +329,46 @@ void start_kernel(struct params_t *params, int choice) - } else { - strcpy(initrd_arg, str_initrd_start); /* --initrd= */ - strcat(initrd_arg, item->initrd); -+ -+ if ((len = readlink(item->initrd, buf, sizeof(buf)-1)) != -1) { -+ buf[len] = '\0'; -+ /* Fix absolute symlinks: prepend MOUNTPOINT */ -+ if (buf[0] == '/') { -+ strcpy(initrd_arg, str_initrd_start); /* --initrd= */ -+ strcat(initrd_arg, mount_point); -+ strcat(initrd_arg, buf); -+ } -+ } - load_argv[idx] = initrd_arg; - ++idx; - } - } - - /* Append kernelpath as last arg of kexec */ -- load_argv[idx] = item->kernelpath; -+ /* allocate space */ -+ n = strlen(item->kernelpath) + 1 + sizeof(mount_point) + sizeof(buf); -+ -+ kernel_arg = (char *)malloc(n); -+ if (NULL == kernel_arg) { -+ perror("Can't allocate memory for kernel_arg"); -+ } else { -+ strcpy(kernel_arg, item->kernelpath); -+ -+ if ((len = readlink(item->kernelpath, buf, sizeof(buf)-1)) != -1) { -+ buf[len] = '\0'; -+ /* Fix absolute symlinks: prepend MOUNTPOINT */ -+ if (buf[0] == '/') { -+ strcpy(kernel_arg, mount_point); -+ strcat(kernel_arg, buf); -+ } -+ } -+ load_argv[idx] = kernel_arg; -+ } - - DPRINTF("load_argv: %s, %s, %s, %s, %s", load_argv[0], - load_argv[1], load_argv[2], - load_argv[3], load_argv[4]); - -- /* Mount boot device */ -- if ( -1 == mount(mount_dev, mount_point, mount_fstype, -- MS_RDONLY, NULL) ) { -- perror("Can't mount boot device"); -- exit(-1); -- } - - /* Load kernel */ - n = fexecw(kexec_path, (char *const *)load_argv, envp); -@@ -347,6 +381,7 @@ void start_kernel(struct params_t *params, int choice) - - dispose(cmdline_arg); - dispose(initrd_arg); -+ dispose(kernel_arg); - - /* Check /proc/sys/net presence */ - if ( -1 == stat("/proc/sys/net", &sinfo) ) { --- -1.9.1 - diff --git a/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.1.bb b/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.1.bb deleted file mode 100644 index ec476f82958..00000000000 --- a/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.1.bb +++ /dev/null @@ -1,62 +0,0 @@ -SUMMARY = "Configuration files for kexecboot" -DESCRIPTION = "Default icon and boot.cfg for kexecboot linux-as-bootloader." -SECTION = "base" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" -PR = "r14" - -SRC_URI = "file://icon.xpm" - -do_configure_prepend () { - install -m 0644 ${WORKDIR}/icon.xpm ${S} -} -do_install_prepend () { -echo '# /boot/boot.cfg - KEXECBOOT configuration file. -# -# First kernel stanza. -# Show this label in kexecboot menu. -# -LABEL=${KEXECBOOT_LABEL} -# -# Specify full kernel path on target. -KERNEL=/boot/${KERNEL_IMAGETYPE} -# -# Append this tags to the kernel cmdline. -APPEND=${CMDLINE} ${CMDLINE_DEBUG} -# -# Specify optional initrd/initramfs. -# INITRD=/boot/initramfs.cpio.gz -# -# Specify full path for a custom icon for the menu-item. -# If not set, use device-icons as default (NAND, SD, CF, ...). -# ICON=/boot/icon.xpm -# -# Priority of item in kexecboot menu. -# Items with highest priority will be shown at top of menu. -# Default: 0 (lowest, ordered by device ordering) -# PRIORITY=10 -# -# -# Second kernel stanza. -# LABEL=${KEXECBOOT_LABEL}-test -# KERNEL=/boot/${KERNEL_IMAGETYPE}-test -# APPEND=${CMDLINE} -#' > ${S}/boot.cfg -} -do_install () { - install -d ${D}/boot - install -m 0644 boot.cfg ${D}/boot/boot.cfg - install -m 0644 icon.xpm ${D}/boot/icon.xpm -} - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -FILES_${PN} += "/boot/*" - -CMDLINE ?= "" -CMDLINE_DEBUG ?= "quiet" - -INHIBIT_DEFAULT_DEPS = "1" - -# Note: for qvga the label is currently limited to about 24 chars -KEXECBOOT_LABEL ?= "${@d.getVar('DISTRO', True) or d.getVar('DISTRO_VERSION', True)}-${MACHINE}" diff --git a/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb b/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb new file mode 100644 index 00000000000..804ec32350c --- /dev/null +++ b/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb @@ -0,0 +1,60 @@ +SUMMARY = "Configuration files for kexecboot" +DESCRIPTION = "Default icon and boot.cfg for kexecboot linux-as-bootloader." +SECTION = "base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = "file://icon.xpm" + +S = "${WORKDIR}" + +do_install_prepend () { +echo '# /boot/boot.cfg - KEXECBOOT configuration file. +# +# First kernel stanza. +# Show this label in kexecboot menu. +# +LABEL=${KEXECBOOT_LABEL} +# +# Specify full kernel path on target. +KERNEL=/boot/${KERNEL_IMAGETYPE} +# +# Append this tags to the kernel cmdline. +APPEND=${CMDLINE} ${CMDLINE_DEBUG} +# +# Specify optional initrd/initramfs. +# INITRD=/boot/initramfs.cpio.gz +# +# Specify full path for a custom icon for the menu-item. +# If not set, use device-icons as default (NAND, SD, CF, ...). +# ICON=/boot/icon.xpm +# +# Priority of item in kexecboot menu. +# Items with highest priority will be shown at top of menu. +# Default: 0 (lowest, ordered by device ordering) +# PRIORITY=10 +# +# +# Second kernel stanza. +# LABEL=${KEXECBOOT_LABEL}-test +# KERNEL=/boot/${KERNEL_IMAGETYPE}-test +# APPEND=${CMDLINE} +#' > ${S}/boot.cfg +} +do_install () { + install -d ${D}/boot + install -m 0644 boot.cfg ${D}/boot/boot.cfg + install -m 0644 icon.xpm ${D}/boot/icon.xpm +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES_${PN} += "/boot/*" + +CMDLINE ?= "" +CMDLINE_DEBUG ?= "quiet" + +INHIBIT_DEFAULT_DEPS = "1" + +# Note: for qvga the label is currently limited to about 24 chars +KEXECBOOT_LABEL ?= "${@d.getVar('DISTRO') or d.getVar('DISTRO_VERSION')}-${MACHINE}" diff --git a/meta-initramfs/recipes-bsp/kexecboot/kexecboot_0.6.bb b/meta-initramfs/recipes-bsp/kexecboot/kexecboot_0.6.bb deleted file mode 100644 index 9061c272fc5..00000000000 --- a/meta-initramfs/recipes-bsp/kexecboot/kexecboot_0.6.bb +++ /dev/null @@ -1,73 +0,0 @@ -########################### -# Configure options: -# -# --enable-static-linking compile kexecboot as static executable [default=no] -# --enable-fbui support framebuffer menu [default=yes] -# --enable-fbui-width limit FB UI width to specified value [default=no] -# --enable-fbui-height limit FB UI height to specified value [default=no] -# --enable-textui support console text user interface [default=no] -# --enable-cfgfiles support config files [default=yes] -# --enable-icons support custom icons (depends on fbui) [default=yes] -# --enable-zaurus compile Sharp Zaurus specific code [default=no] -# --enable-zimage compile with zImage support [default=yes] -# --enable-uimage compile with uImage support [default=no] -# --enable-machine-kernel look for machine-specific zImage kernel [default=no] -# --enable-devices-recreating -# enable devices re-creating [default=yes] -# --enable-debug enable debug output [default=no] -# --enable-host-debug allow for non-destructive executing of kexecboot on -# host system [default=no] -# --enable-numkeys enable menu item selection by keys [0-9] [default=yes] -# --enable-bg-buffer enable buffer for pre-drawed FB GUI background -# -# --enable-timeout allow to boot 1st kernel after timeout in seconds -# [default=no] -# --enable-delay specify delay before device scanning, allowing -# initialization of old CF/SD cards [default=1] -# --enable-bpp enable support of specified bpp modes -# (all,32,24,18,16,4,2,1) [default=all] -# --enable-evdev-rate change evdev (keyboard/mouse) repeat rate -# in milliseconds e.g. "1000,250" [default=no] -# --with-kexec-binary look for kexec binary at path -# [default="/usr/sbin/kexec"] -########################## -SUMMARY = "kexecboot linux-as-bootloader" -DESCRIPTION = "kexecboot is a graphical linux-as-bootloader implementation based on kexec." -HOMEPAGE = "http://kexecboot.org" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -S = "${WORKDIR}/kexecboot-${PV}" -SRC_URI = "https://github.com/kexecboot/kexecboot/archive/v${PV}.tar.gz" -SRC_URI[md5sum] = "46b7c1a6f20531be56445ebb8669a2b8" -SRC_URI[sha256sum] = "6b360b8aa59bc5d68a96705349a0dd416f8ed704e931fa0ac7849298258f0f15" - -SRC_URI += "\ - file://0001-kexecboot-fix-build-when-S-B.patch \ - file://0002-kexecboot-fix-configure-warnings.patch \ - file://0003-kexecboot-do-not-hardcode-MOUNTPOINT.patch \ - file://0004-kexecboot.c-workaround-for-absolute-kernel-and-initr.patch \ - " - -inherit autotools - -EXTRA_OECONF = "--enable-delay=2 --enable-evdev-rate=1000,250" - -do_install () { - install -d ${D}${bindir} - install -m 0755 kexecboot ${D}${bindir} - install -d ${D}/proc - install -d ${D}/mnt - install -d ${D}/dev - install -d ${D}/sys -} - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -FILES_${PN} += " ${bindir}/kexecboot /init /proc /mnt /dev /sys" - -pkg_postinst_${PN} () { - ln -sf ${bindir}/kexecboot $D/init -} - -BBCLASSEXTEND = "klibc" diff --git a/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb b/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb new file mode 100644 index 00000000000..9f5dad7c647 --- /dev/null +++ b/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb @@ -0,0 +1,64 @@ +########################### +# Configure options: +# +# --enable-static-linking compile kexecboot as static executable [default=no] +# --enable-fbui support framebuffer menu [default=yes] +# --enable-fbui-width limit FB UI width to specified value [default=no] +# --enable-fbui-height limit FB UI height to specified value [default=no] +# --enable-textui support console text user interface [default=no] +# --enable-cfgfiles support config files [default=yes] +# --enable-icons support custom icons (depends on fbui) [default=yes] +# --enable-zaurus compile Sharp Zaurus specific code [default=no] +# --enable-zimage compile with zImage support [default=yes] +# --enable-uimage compile with uImage support [default=no] +# --enable-machine-kernel look for machine-specific zImage kernel [default=no] +# --enable-devices-recreating +# enable devices re-creating [default=yes] +# --enable-debug enable debug output [default=no] +# --enable-host-debug allow for non-destructive executing of kexecboot on +# host system [default=no] +# --enable-numkeys enable menu item selection by keys [0-9] [default=yes] +# --enable-bg-buffer enable buffer for pre-drawed FB GUI background +# +# --enable-timeout allow to boot 1st kernel after timeout in seconds +# [default=no] +# --enable-delay specify delay before device scanning, allowing +# initialization of old CF/SD cards [default=1] +# --enable-bpp enable support of specified bpp modes +# (all,32,24,18,16,4,2,1) [default=all] +# --enable-evdev-rate change evdev (keyboard/mouse) repeat rate +# in milliseconds e.g. "1000,250" [default=no] +# --with-kexec-binary look for kexec binary at path +# [default="/usr/sbin/kexec"] +########################## +SUMMARY = "kexecboot linux-as-bootloader" +DESCRIPTION = "kexecboot is a graphical linux-as-bootloader implementation based on kexec." +HOMEPAGE = "http://kexecboot.org" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +PV = "0.6+git${SRCPV}" +S = "${WORKDIR}/git" +SRC_URI = "git://github.com/kexecboot/kexecboot.git" +SRCREV = "4c4f127e79ac5b8d6b6e2fbb938ccbf12b04c531" +inherit autotools + +EXTRA_OECONF = "--enable-textui --enable-delay=2 --enable-evdev-rate=1000,250" + +do_install () { + install -d ${D}${bindir} + install -m 0755 kexecboot ${D}${bindir} + install -d ${D}/proc + install -d ${D}/mnt + install -d ${D}/dev + install -d ${D}/sys +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES_${PN} += " ${bindir}/kexecboot /init /proc /mnt /dev /sys" + +pkg_postinst_${PN} () { + ln -sf ${bindir}/kexecboot $D/init +} + +BBCLASSEXTEND = "klibc" diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch new file mode 100644 index 00000000000..32714038b9d --- /dev/null +++ b/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch @@ -0,0 +1,33 @@ +From 06011ce55b1e892e863568a73d64eebc6389544f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 17:14:05 -0700 +Subject: [PATCH] util.h: include when libc != glibc + +For musl libc it is required to include to +have __WORDSIZE defined to e.g. 32 for arm*-musl. + +Taken from void-linux +https://github.com/voidlinux/void-packages/blob/master/srcpkgs/dracut/patches/musl-__wordsize.patch + +Signed-off-by: Khem Raj +--- + install/util.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/install/util.h b/install/util.h +index 2ad3254d..062626ec 100644 +--- a/install/util.h ++++ b/install/util.h +@@ -36,6 +36,9 @@ + #include + #include + #include ++#if !defined(__GLIBC__) ++#include ++#endif + + #include "macro.h" + +-- +2.13.2 + diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_git.bb b/meta-initramfs/recipes-devtools/dracut/dracut_git.bb index 77c137c463d..e18409d11a9 100644 --- a/meta-initramfs/recipes-devtools/dracut/dracut_git.bb +++ b/meta-initramfs/recipes-devtools/dracut/dracut_git.bb @@ -1,23 +1,28 @@ SUMMARY = "Initramfs generator using udev" +HOMEPAGE = "https://dracut.wiki.kernel.org/index.php/Main_Page" DESCRIPTION = "Dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d." LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" PE = "1" -PV = "038" +PV = "045+git${SRCREV}" -# v038 tag -SRCREV = "267a109a81715c8957f14659593deb7b6255d40e" -SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git" +# v045 tag +SRCREV = "39c9b67f86145953aa30def9d77c68597a4ccfe8" +SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http \ + file://0001-util.h-include-sys-reg.h-when-libc-glibc.patch \ + " -S = "${WORKDIR}/git" +DEPENDS += "kmod" +DEPENDS_append_libc-musl = " fts" + +inherit bash-completion pkgconfig -inherit distro_features_check -REQUIRED_DISTRO_FEATURES = "systemd" +S = "${WORKDIR}/git" EXTRA_OECONF = "--prefix=${prefix} \ - --libdir=${libdir} \ + --libdir=${prefix}/lib \ --datadir=${datadir} \ --sysconfdir=${sysconfdir} \ --sbindir=${sbindir} \ @@ -25,7 +30,15 @@ EXTRA_OECONF = "--prefix=${prefix} \ --bindir=${bindir} \ --includedir=${includedir} \ --localstatedir=${localstatedir} \ - --systemdsystemunitdir=${systemd_unitdir}/system" + " + +# RDEPEND on systemd optionally +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd" + +EXTRA_OEMAKE += 'libdir=${prefix}/lib LDLIBS="${LDLIBS}"' + +LDLIBS_append_libc-musl = " -lfts" do_configure() { ./configure ${EXTRA_OECONF} @@ -33,23 +46,24 @@ do_configure() { do_install() { oe_runmake install DESTDIR=${D} + # Its Makefile uses cp -arx to install modules.d, so fix the owner + # to root:root + chown -R root:root ${D}/${prefix}/lib/dracut/modules.d } -PACKAGES =+ "${PN}-bash-completion" - -FILES_${PN}-bash-completion = "${datadir}/bash-completion" - -FILES_${PN} += " ${libdir}/kernel \ +FILES_${PN} += "${prefix}/lib/kernel \ + ${prefix}/lib/dracut \ ${systemd_unitdir} \ " +FILES_${PN}-dbg += "${prefix}/lib/dracut/.debug" + CONFFILES_${PN} += "${sysconfdir}/dracut.conf" -RDEPENDS_${PN} = "systemd findutils cpio util-linux-blkid util-linux-getopt bash ldd" -RDEPENDS_${PN}-bash-completion = "bash-completion" +RDEPENDS_${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux bash ldd" # This could be optimized a bit, but let's avoid non-booting systems :) RRECOMMENDS_${PN} = " \ kernel-modules \ busybox \ - coreutils \ + coreutils \ " diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch b/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch new file mode 100644 index 00000000000..1b1a993a03e --- /dev/null +++ b/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch @@ -0,0 +1,26 @@ +From 22afaa21b4b258082be591e54c99e1ba6fbd7748 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Jul 2017 10:19:22 -0700 +Subject: [PATCH 1/2] Add another variable LIBS to provides libraries from env + +Signed-off-by: Khem Raj +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index ac14404..92a8e73 100644 +--- a/Makefile ++++ b/Makefile +@@ -27,7 +27,7 @@ RPM_OPT_FLAGS ?= -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector + CFLAGS += $(RPM_OPT_FLAGS) -std=gnu99 -Wall -Werror -Wno-error=unused-function -Wno-unused-function -ggdb + LDFLAGS := + +-grubby_LIBS = -lblkid -lpopt ++grubby_LIBS = -lblkid -lpopt ${LIBS} + + all: grubby + +-- +2.13.3 + diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/0002-include-paths.h-for-_PATH_MOUNTED.patch b/meta-initramfs/recipes-devtools/grubby/grubby/0002-include-paths.h-for-_PATH_MOUNTED.patch new file mode 100644 index 00000000000..de8133a3a47 --- /dev/null +++ b/meta-initramfs/recipes-devtools/grubby/grubby/0002-include-paths.h-for-_PATH_MOUNTED.patch @@ -0,0 +1,25 @@ +From 8f844ac7f44b8dc428d06cd6958c5f32d383d01c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Jul 2017 10:19:50 -0700 +Subject: [PATCH 2/2] include paths.h for _PATH_MOUNTED + +Signed-off-by: Khem Raj +--- + grubby.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/grubby.c b/grubby.c +index 47a1a15..59f74a9 100644 +--- a/grubby.c ++++ b/grubby.c +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #include + + #include "log.h" +-- +2.13.3 + diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch b/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch new file mode 100644 index 00000000000..d936249be81 --- /dev/null +++ b/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch @@ -0,0 +1,69 @@ +From 0841706a5b5280e501c8e392c70c466c5fbcf0aa Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Tue, 4 Aug 2015 23:54:41 -0700 +Subject: [PATCH] rename grub2-editenv to grub-editenv + +We don't use the name grub2-editenv for grub2. + +Upstream-Status: Inappropriate + +Signed-off-by: Jackie Huang +--- + grubby.c | 4 ++-- + test.sh | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/grubby.c b/grubby.c +index d4ebb86..47a1a15 100644 +--- a/grubby.c ++++ b/grubby.c +@@ -290,7 +290,7 @@ static char *grub2GetEnv(struct configFileInfo *info, char *name) + char *s = NULL; + char *ret = NULL; + char *envFile = info->envFile ? info->envFile : "/boot/grub2/grubenv"; +- int rc = asprintf(&s, "grub2-editenv %s list | grep '^%s='", envFile, name); ++ int rc = asprintf(&s, "grub-editenv %s list | grep '^%s='", envFile, name); + + if (rc < 0) + return NULL; +@@ -361,7 +361,7 @@ static int grub2SetEnv(struct configFileInfo *info, char *name, char *value) + if (!value) + return -1; + +- rc = asprintf(&s, "grub2-editenv %s set '%s=%s'", envFile, name, value); ++ rc = asprintf(&s, "grub-editenv %s set '%s=%s'", envFile, name, value); + free(value); + if (rc <0) + return -1; +diff --git a/test.sh b/test.sh +index 6379698..f738388 100755 +--- a/test.sh ++++ b/test.sh +@@ -574,7 +574,7 @@ if [ "$testgrub2" == "y" ]; then + --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ + --copy-default + commandTest "saved_default output" \ +- "grub2-editenv test/grub2-support_files/env_temp list" \ ++ "grub-editenv test/grub2-support_files/env_temp list" \ + "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64" + + testing="GRUB2 add kernel with default=saved_entry and a terrible title" +@@ -587,13 +587,13 @@ if [ "$testgrub2" == "y" ]; then + testing="GRUB2 set default with default=saved_entry and a terrible name" + grub2Test grub2.9 add/g2-1.9 --env grubenv.1 --set-default-index=0 + commandTest "saved_default output" \ +- "grub2-editenv test/grub2-support_files/env_temp list" \ ++ "grub-editenv test/grub2-support_files/env_temp list" \ + 'saved_entry=Fedora (3.10.3-300.fc19.x86_64) 19 (Schrödinger’s Cat)' + + testing="GRUB2 set default with default=saved_entry" + grub2Test grub2.8 add/g2-1.8 --env grubenv.1 --set-default-index=0 + commandTest "saved_default output" \ +- "grub2-editenv test/grub2-support_files/env_temp list" \ ++ "grub-editenv test/grub2-support_files/env_temp list" \ + "saved_entry=title" + + testing="GRUB2 --default-index with default=saved_entry" +-- +2.3.5 + diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/run-ptest b/meta-initramfs/recipes-devtools/grubby/grubby/run-ptest new file mode 100644 index 00000000000..b06ac59460f --- /dev/null +++ b/meta-initramfs/recipes-devtools/grubby/grubby/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +./test.sh -v diff --git a/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb b/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb new file mode 100644 index 00000000000..5a998248c8d --- /dev/null +++ b/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb @@ -0,0 +1,42 @@ +SUMMARY = "A command line tool for updating and displaying info about boot loaders" +DESCRIPTION = "grubby is a command line tool for updating and displaying information \ +about the configuration files for the grub, lilo, elilo (ia64), yaboot (powerpc) and \ +zipl (s390) boot loaders. It is primarily designed to be used from scripts which install \ +new kernels and need to find information about the current boot environment. \ +" +LICENSE = "GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a" + +DEPENDS = "popt util-linux" +DEPENDS_append_libc-musl = " libexecinfo" + +SRC_URI = "https://github.com/rhinstaller/${BPN}/archive/${PV}-1.tar.gz;downloadfilename=${BPN}-${PV}-1.tar.gz \ + file://grubby-rename-grub2-editenv-to-grub-editenv.patch \ + file://run-ptest \ + file://0001-Add-another-variable-LIBS-to-provides-libraries-from.patch \ + file://0002-include-paths.h-for-_PATH_MOUNTED.patch \ + " + +SRC_URI[md5sum] = "1005907b275d6d93368d045274537d86" +SRC_URI[sha256sum] = "85f1c678484f74c8978e8643451594967defce463a86c35cb1ee56d12767a9df" + +S = "${WORKDIR}/${BPN}-${PV}-1" + +RDEPENDS_${PN} += "dracut" + +inherit autotools-brokensep ptest + +EXTRA_OEMAKE = "-e 'CC=${CC}' 'LDFLAGS=${LDFLAGS}' LIBS='${LIBS}'" + +LIBS_libc-musl = "-lexecinfo" +LIBS ?= "" +do_install_ptest() { + install -d ${D}${PTEST_PATH} + cp -r ${S}/test ${S}/test.sh ${D}${PTEST_PATH} + sed -i 's|./grubby|grubby|' ${D}${PTEST_PATH}/test.sh +} + +RDEPENDS_${PN}-ptest = "util-linux-getopt bash" + +COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)' diff --git a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb index 2f4afce063b..b285b2e8bef 100644 --- a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb +++ b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb @@ -3,6 +3,10 @@ SUMMARY = "The klcc crosscompiler for klibc" require klibc.inc DEPENDS = "klibc" +# no packaging for this crossscript +PACKAGES = "" +inherit nopackages + FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:" SRC_URI += "file://use-env-for-perl.patch" @@ -17,24 +21,14 @@ do_compile() { do_install() { install -d ${D}${bindir_crossscripts}/ install -m 0755 klcc/klcc ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc - # Insert an unencoded path as a comment to trigger the sstate renaming functions - sed -i '2i #${STAGING_DIR_TARGET}' ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc -} - -SYSROOT_PREPROCESS_FUNCS += "klcc_sysroot_preprocess" - -klcc_sysroot_preprocess () { - sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts} + # Turn the horribly encoded paths into something which sstate can transform using its ususal + # magic by removing all the crazy escaping. + sed -i -e "2i \$TARGETSYSROOT = '${STAGING_DIR_TARGET}';" \ + -e "2i \$NATIVESYSROOT = '${STAGING_DIR_NATIVE}';" \ + -e 's#${@d.getVar("STAGING_DIR_NATIVE", True).replace("/", "\\\\/").replace("-", "\\\\-").replace(".", "\\\\.")}#${NATIVESYSROOT}#g;' \ + -e 's#${@d.getVar("STAGING_DIR_TARGET", True).replace("/", "\\\\/").replace("-", "\\\\-").replace(".", "\\\\.")}#${TARGETSYSROOT}#g' \ + ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc } -deltask do_package -deltask do_packagedata -deltask do_package_write_ipk -deltask do_package_write_rpm -deltask do_package_write_deb -deltask do_package_write_tar - -SSTATE_SCAN_FILES = "*" -EXTRA_STAGING_FIXMES = "MANGLEDSTAGINGDIRTARGET MANGLEDSTAGINGDIR" -MANGLEDSTAGINGDIR = "${@d.getVar("STAGING_DIR", True).replace("/", "\\\\/").replace("-", "\\\\-")}" -MANGLEDSTAGINGDIRTARGET = "${@d.getVar("STAGING_DIR_TARGET", True).replace("/", "\\\\/").replace("-", "\\\\-")}" +SYSROOT_DIRS += "${bindir_crossscripts}" +SSTATE_SCAN_FILES += "*-klcc" diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Define-in_-structs-for-non-glibc-system-libs.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Define-in_-structs-for-non-glibc-system-libs.patch new file mode 100644 index 00000000000..8d1ec69ae91 --- /dev/null +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Define-in_-structs-for-non-glibc-system-libs.patch @@ -0,0 +1,85 @@ +From f414dea1316a48aba3e8e293201ebd51652d3ef4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 9 Jul 2017 15:17:29 -0700 +Subject: [PATCH] Define in_* structs for non-glibc system libs + +These defines and structs are required to be coming from +userspace netinet/in.h, which is being overridden in klibc +however, libc-compat.h from kernel is only written keeping +glibc in mind, and does not provide adequate guards for musl +to infer that these structs should be defined in linux/in.h + +Signed-off-by: Khem Raj +--- + usr/include/netinet/in.h | 33 +++++++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +Index: git/usr/include/netinet/in.h +=================================================================== +--- git.orig/usr/include/netinet/in.h ++++ git/usr/include/netinet/in.h +@@ -5,6 +5,42 @@ + #ifndef _NETINET_IN_H + #define _NETINET_IN_H + ++#ifndef __GLIBC__ ++#include ++ ++#undef __UAPI_DEF_IN_ADDR ++#undef __UAPI_DEF_IN_IPPROTO ++#undef __UAPI_DEF_IN_PKTINFO ++#undef __UAPI_DEF_IP_MREQ ++#undef __UAPI_DEF_SOCKADDR_IN ++#undef __UAPI_DEF_IN_CLASS ++#undef __UAPI_DEF_IN6_ADDR ++#undef __UAPI_DEF_IN6_ADDR_ALT ++#undef __UAPI_DEF_SOCKADDR_IN6 ++#undef __UAPI_DEF_IPV6_MREQ ++#undef __UAPI_DEF_IPPROTO_V6 ++#undef __UAPI_DEF_IPV6_OPTIONS ++#undef __UAPI_DEF_IN6_PKTINFO ++#undef __UAPI_DEF_IP6_MTUINFO ++#undef __UAPI_DEF_IF_IFREQ ++ ++#define __UAPI_DEF_IN_ADDR 1 ++#define __UAPI_DEF_IN_IPPROTO 1 ++#define __UAPI_DEF_IN_PKTINFO 1 ++#define __UAPI_DEF_IP_MREQ 1 ++#define __UAPI_DEF_SOCKADDR_IN 1 ++#define __UAPI_DEF_IN_CLASS 1 ++#define __UAPI_DEF_IN6_ADDR 1 ++#define __UAPI_DEF_IN6_ADDR_ALT 1 ++#define __UAPI_DEF_SOCKADDR_IN6 1 ++#define __UAPI_DEF_IPV6_MREQ 1 ++#define __UAPI_DEF_IPPROTO_V6 1 ++#define __UAPI_DEF_IPV6_OPTIONS 1 ++#define __UAPI_DEF_IN6_PKTINFO 1 ++#define __UAPI_DEF_IP6_MTUINFO 1 ++#define __UAPI_DEF_IF_IFREQ 1 ++#endif ++ + #include + #include + #include /* Must be included *before* */ +Index: git/usr/include/net/if.h +=================================================================== +--- git.orig/usr/include/net/if.h ++++ git/usr/include/net/if.h +@@ -1,6 +1,17 @@ + #ifndef _NET_IF_H + #define _NET_IF_H + ++#ifndef __GLIBC__ ++#include ++#undef __UAPI_DEF_IF_IFREQ ++#define __UAPI_DEF_IF_IFREQ 1 ++#undef __UAPI_DEF_IF_IFNAMSIZ ++#define __UAPI_DEF_IF_IFNAMSIZ 1 ++#undef __UAPI_DEF_IF_IFMAP ++#define __UAPI_DEF_IF_IFMAP 1 ++#undef __UAPI_DEF_IF_NET_DEVICE_FLAGS ++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1 ++#endif + #include + #include + #include diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch new file mode 100644 index 00000000000..7cd4c0e49c4 --- /dev/null +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch @@ -0,0 +1,30 @@ +From 10fb440795a7796140bd657ee028847ec7c34447 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 8 Sep 2017 23:10:54 -0700 +Subject: [PATCH] Kbuild.klibc: Add path to compiler headers via -isystem + +We need to include this path so it can find compiler headers e.g. +stdarg.h which is called from wrapper stdarg.h using include_next + +Signed-off-by: Khem Raj +--- + scripts/Kbuild.klibc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/scripts/Kbuild.klibc b/scripts/Kbuild.klibc +index f500d535..1d5cdc43 100644 +--- a/scripts/Kbuild.klibc ++++ b/scripts/Kbuild.klibc +@@ -105,7 +105,8 @@ KLIBCOBJCOPY := $(OBJCOPY) + KLIBCOBJDUMP := $(OBJDUMP) + + # klibc include paths +-KLIBCCPPFLAGS := -nostdinc -iwithprefix include \ ++KLIBCCPPFLAGS := -nostdinc -iwithprefix include \ ++ -isystem $(shell $(CC) -print-file-name=include) \ + -I$(KLIBCINC)/arch/$(KLIBCARCHDIR) \ + -I$(KLIBCINC)/bits$(KLIBCBITSIZE) \ + -I$(KLIBCOBJ)/../include \ +-- +2.14.1 + diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch new file mode 100644 index 00000000000..41cc14275ec --- /dev/null +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch @@ -0,0 +1,30 @@ +From f66edde8a704131d98e8783ea8d4c848e8119b20 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 26 Jul 2017 16:13:16 -0700 +Subject: [PATCH 1/3] Kbuild.klibc: Use -print-libgcc-file-name instead of + --print-libgcc + +-print-libgcc-file-name works with clang and gcc unlike --print-libgcc +which is gcc specific + +Signed-off-by: Khem Raj +--- + scripts/Kbuild.klibc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/Kbuild.klibc b/scripts/Kbuild.klibc +index f500d535..101f86f5 100644 +--- a/scripts/Kbuild.klibc ++++ b/scripts/Kbuild.klibc +@@ -128,7 +128,7 @@ KLIBCCFLAGS += $(KLIBCCPPFLAGS) $(KLIBCREQFLAGS) $(KLIBCARCHREQFLAGS) \ + KLIBCAFLAGS += -D__ASSEMBLY__ $(KLIBCCFLAGS) + KLIBCSTRIPFLAGS += --strip-all -R .comment -R .note + +-KLIBCLIBGCC_DEF := $(shell $(KLIBCCC) $(KLIBCCFLAGS) --print-libgcc) ++KLIBCLIBGCC_DEF := $(shell $(KLIBCCC) $(KLIBCCFLAGS) -print-libgcc-file-name) + KLIBCLIBGCC ?= $(KLIBCLIBGCC_DEF) + KLIBCCRT0 := $(KLIBCOBJ)/arch/$(KLIBCARCHDIR)/crt0.o + KLIBCLIBC := $(KLIBCOBJ)/libc.a +-- +2.13.3 + diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-always-use-bfd-linker.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-always-use-bfd-linker.patch new file mode 100644 index 00000000000..41a6b9e1302 --- /dev/null +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-always-use-bfd-linker.patch @@ -0,0 +1,30 @@ +From 9ea19bd9636806a73bcf29cfcee40a268f91eb4c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 11 Jul 2017 08:09:52 -0700 +Subject: [PATCH] always use bfd linker + +its possible that distros choose to default to gold linker +therefore explicitly asking for bfd linker would fix the +linking issues on such distros + +Signed-off-by: Khem Raj +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index dc10fc5d..40647be4 100644 +--- a/Makefile ++++ b/Makefile +@@ -20,7 +20,7 @@ include $(srctree)/scripts/Kbuild.include + KLIBCROSS ?= $(CROSS_COMPILE) + export KLIBCROSS + export CC := $(KLIBCROSS)gcc +-export LD := $(KLIBCROSS)ld ++export LD := $(KLIBCROSS)ld.bfd + export AR := $(KLIBCROSS)ar + export RANLIB := $(KLIBCROSS)ranlib + export STRIP := $(KLIBCROSS)strip +-- +2.13.2 + diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch new file mode 100644 index 00000000000..9c0ea63974f --- /dev/null +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch @@ -0,0 +1,33 @@ +From a46a144ac883898d9cedf7a0b13aec6d10116125 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Sep 2017 23:11:53 -0700 +Subject: [PATCH] arm: Do not set a fallback march and mtune + +In OE we pass the options explicitly, there is +no need to set it inside the makefiles, we will +need to compute values for CPU_ARCH and CPU_TUNE +which is a bit harder in OE + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + usr/klibc/arch/arm/MCONFIG | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/usr/klibc/arch/arm/MCONFIG b/usr/klibc/arch/arm/MCONFIG +index 53bc1dc3..857e2f2d 100644 +--- a/usr/klibc/arch/arm/MCONFIG ++++ b/usr/klibc/arch/arm/MCONFIG +@@ -10,7 +10,7 @@ + CPU_ARCH ?= armv4 + CPU_TUNE ?= strongarm + +-KLIBCOPTFLAGS += -Os -march=$(CPU_ARCH) -mtune=$(CPU_TUNE) ++KLIBCOPTFLAGS += -Os + KLIBCBITSIZE = 32 + KLIBCREQFLAGS += -fno-exceptions + KLIBCSTRIPFLAGS += -R .ARM.exidx +-- +2.14.2 + diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-dash-Specify-format-string-in-fmtstr.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-dash-Specify-format-string-in-fmtstr.patch new file mode 100644 index 00000000000..ae8c1f11a03 --- /dev/null +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-dash-Specify-format-string-in-fmtstr.patch @@ -0,0 +1,31 @@ +From 2fff607fd0b5550e5072a6fffcbb01c29d5207d2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 9 Jul 2017 13:51:25 -0700 +Subject: [PATCH] dash: Specify format string in fmtstr() + +Fixes build with hardening flags + +usr/dash/jobs.c:429:3: error: format not a string literal and no format arguments [-Werror=format-security] + col = fmtstr(s, 32, strsignal(st)); + +Signed-off-by: Khem Raj +--- + usr/dash/jobs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/usr/dash/jobs.c b/usr/dash/jobs.c +index 009bbfee..299bcacc 100644 +--- a/usr/dash/jobs.c ++++ b/usr/dash/jobs.c +@@ -426,7 +426,7 @@ sprint_status(char *s, int status, int sigonly) + goto out; + #endif + } +- col = fmtstr(s, 32, strsignal(st)); ++ col = fmtstr(s, 32, "%s", strsignal(st)); + #ifdef WCOREDUMP + if (WCOREDUMP(status)) { + col += fmtstr(s + col, 16, " (core dumped)"); +-- +2.13.2 + diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-include-linux-sysinfo.h-directly.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-include-linux-sysinfo.h-directly.patch new file mode 100644 index 00000000000..1b033acc42e --- /dev/null +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-include-linux-sysinfo.h-directly.patch @@ -0,0 +1,32 @@ +From ab060a57b41f989665ade20e813bbcb67f91f1f2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 9 Jul 2017 15:56:28 -0700 +Subject: [PATCH] include linux/sysinfo.h directly + +This is done to avoid the kernel header linux/kernel.h to use +__GLIBC__ define to decide on if libc implements sysinfo() API +or not. Kernel headers should be independent of such assumptions +but until its done in right place, change the local header +override to avoid this assumption + +Signed-off-by: Khem Raj +--- + usr/include/sys/sysinfo.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/usr/include/sys/sysinfo.h b/usr/include/sys/sysinfo.h +index dba68dc6..d145c0b1 100644 +--- a/usr/include/sys/sysinfo.h ++++ b/usr/include/sys/sysinfo.h +@@ -5,7 +5,7 @@ + #ifndef _SYS_SYSINFO_H + #define _SYS_SYSINFO_H + +-#include ++#include + + extern int sysinfo(struct sysinfo *info); + +-- +2.13.2 + diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-mkfifo-Implement-mkfifo.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-mkfifo-Implement-mkfifo.patch new file mode 100644 index 00000000000..9791412e486 --- /dev/null +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-mkfifo-Implement-mkfifo.patch @@ -0,0 +1,29 @@ +From b4e120f5edf06e6df138b1804a8b5180584cea6b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 10 Jul 2017 20:42:50 -0700 +Subject: [PATCH] mkfifo: Implement mkfifo + +Signed-off-by: Khem Raj +--- + usr/utils/mkfifo.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/usr/utils/mkfifo.c b/usr/utils/mkfifo.c +index 5a758b2a..f1f577e6 100644 +--- a/usr/utils/mkfifo.c ++++ b/usr/utils/mkfifo.c +@@ -26,6 +26,11 @@ static int make_fifo(char *dir) + return 0; + } + ++int mkfifo (const char *__p, mode_t __m) ++{ ++ return mknod(__p, (__m & ~S_IFMT) | S_IFIFO, (dev_t) 0); ++} ++ + int main(int argc, char *argv[]) + { + int c, ret = 0; +-- +2.13.2 + diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch index 400864bb2fb..c01c712a126 100644 --- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch +++ b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch @@ -27,7 +27,7 @@ Index: klibc-1.5.24/scripts/Kbuild.install @@ -103,7 +100,6 @@ done $(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. - $(Q)chmod -R a+rX $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + $(Q)chmod -R a+rX,go-w $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include - $(Q)$(install-data) $(srctree)/klcc/klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1 $(Q)$(install-bin) $(objtree)/klcc/$(KCROSS)klcc $(INSTALLROOT)$(bindir) diff --git a/meta-initramfs/recipes-devtools/klibc/klibc.inc b/meta-initramfs/recipes-devtools/klibc/klibc.inc index 9f445e1cb2b..30294b19a82 100644 --- a/meta-initramfs/recipes-devtools/klibc/klibc.inc +++ b/meta-initramfs/recipes-devtools/klibc/klibc.inc @@ -5,49 +5,70 @@ SECTION = "libs" LICENSE = "BSD-3-Clause & GPL-2.0 & MIT & Zlib" LIC_FILES_CHKSUM = "file://usr/klibc/LICENSE;md5=d75181f10e998c21eb147f6d2e43ce8b" DEPENDS = "linux-libc-headers perl-native" -SRCREV = "7763dd33e5b8eed4b9e3c583c02c10176fd550d3" - -SRC_URI = "git://git.kernel.org/pub/scm/libs/klibc/klibc.git" -SRC_URI_append_linux-gnueabi = " file://klibc-config-eabi.patch \ - file://armv4-fix-v4bx.patch \ - " -SRC_URI_append_linux-uclibceabi = " file://klibc-config-eabi.patch \ - file://armv4-fix-v4bx.patch \ - " -SRC_URI += "file://klibc-linux-libc-dev.patch \ - file://staging.patch \ - file://klcc-consider-sysroot.patch \ - " +SRCREV = "4d19974d7020488f63651244e1f9f51727c3f66c" + +SRC_URI = "git://git.kernel.org/pub/scm/libs/klibc/klibc.git \ + ${ARMPATCHES} \ + file://klibc-linux-libc-dev.patch \ + file://staging.patch \ + file://klcc-consider-sysroot.patch \ + file://0001-dash-Specify-format-string-in-fmtstr.patch \ + file://0001-Define-in_-structs-for-non-glibc-system-libs.patch \ + file://0001-include-linux-sysinfo.h-directly.patch \ + file://0001-mkfifo-Implement-mkfifo.patch \ + file://0001-always-use-bfd-linker.patch \ + file://0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch \ + file://0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch \ + file://0001-arm-Do-not-set-a-fallback-march-and-mtune.patch \ +" + +ARMPATCHES ?= "" + +ARMPATCHES_arm = "file://klibc-config-eabi.patch \ + file://armv4-fix-v4bx.patch \ + " + S = "${WORKDIR}/git" +PARALLEL_MAKE = "" EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \ 'CROSS_COMPILE=${TARGET_PREFIX}' \ 'KLIBCKERNELSRC=${STAGING_DIR_TARGET}${exec_prefix}' \ 'KLIBCLIBGCC=${STAGING_DIR_TARGET}${libdir}/${TARGET_SYS}/*/libgcc.a' \ 'prefix=${exec_prefix}' \ 'INSTALLROOT=${D}' \ + 'INSTALLDIR=${libdir}/klibc' \ 'SHLIBDIR=${libdir}' \ + '${KLIBCTHUMB}' \ + 'KLIBCOPTFLAGS=${TUNE_CCARGS} -Os' \ + V=1 \ " export FIX_ARMV4_EABI_BX = "${FIX_V4BX}" +KLIBCTHUMB = "${@['CONFIG_KLIBC_THUMB=n', 'CONFIG_KLIBC_THUMB=y'][(d.getVar('ARM_INSTRUCTION_SET') == 'thumb')]}" do_configure () { ln -sf "${STAGING_DIR_TARGET}${exec_prefix}" linux } +do_compile_prepend_toolchain-clang() { + sed -i -e 's#$(KLIBCROSS)gcc#$(KLIBCROSS)clang#g' ${S}/Makefile +} + INHIBIT_PACKAGE_STRIP = "1" INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +INSANE_SKIP_${PN} = "already-stripped" +INSANE_SKIP_libklibc-dev = "dev-elf" KLIBC_ARCH = "${TARGET_ARCH}" KLIBC_ARCH_aarch64 = "arm64" KLIBC_ARCH_armeb = "arm" KLIBC_ARCH_mipsel = "mips" KLIBC_ARCH_x86 = "i386" KLIBC_ARCH_x86-64 = "x86_64" -KLIBC_ARCH_i486 = "i386" -KLIBC_ARCH_i586 = "i386" -KLIBC_ARCH_i686 = "i386" -KLIBC_ARCH_pentium = "i386" KLIBC_ARCH_powerpc = "ppc" KLIBC_ARCH_powerpc64 = "ppc64" -THIS_LIBKLIBC = "libklibc (= ${PV})" +THIS_LIBKLIBC = "libklibc (= ${PV}-${PR})" + +SECURITY_CFLAGS = "-fno-PIE -no-pie" +SECURITY_LDFLAGS = "-no-pie" diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch index 9d5e4ebf079..6e1b9ff1003 100644 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0001-Makefile-only-build-ubi-utils.patch @@ -25,11 +25,11 @@ Signed-off-by: Andrea Adami Makefile | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) -diff --git a/Makefile b/Makefile -index eade234..2275865 100644 ---- a/Makefile -+++ b/Makefile -@@ -16,28 +16,13 @@ endif +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -16,28 +16,11 @@ endif TESTS = tests @@ -37,7 +37,7 @@ index eade234..2275865 100644 - ftl_format flash_erase nanddump doc_loadbios \ - ftl_check mkfs.jffs2 flash_lock flash_unlock \ - flash_otp_info flash_otp_dump flash_otp_lock flash_otp_write \ -- mtd_debug flashcp nandwrite nandtest \ +- mtd_debug flashcp nandwrite nandtest mtdpart \ - jffs2dump \ - nftldump nftl_format docfdisk \ - rfddump rfdformat \ @@ -51,15 +51,15 @@ index eade234..2275865 100644 -BINS += mkfs.ubifs/mkfs.ubifs -BINS += $(addprefix ubi-utils/,$(UBI_BINS)) -SCRIPTS = flash_eraseall -+BINS = $(addprefix ubi-utils/,$(UBI_BINS)) - - TARGETS = $(BINS) +- +-TARGETS = $(BINS) -TARGETS += lib/libmtd.a -TARGETS += ubi-utils/libubi.a ++BINS = $(addprefix ubi-utils/,$(UBI_BINS)) OBJDEPS = $(BUILDDIR)/include/version.h -@@ -61,12 +46,9 @@ endif +@@ -61,12 +44,9 @@ endif rm -f $(BUILDDIR)/include/version.h $(MAKE) -C $(TESTS) clean @@ -73,7 +73,7 @@ index eade234..2275865 100644 tests:: $(MAKE) -C $(TESTS) -@@ -91,8 +73,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS) +@@ -91,8 +71,6 @@ LDLIBS_mkfs.jffs2 = -lz $(LZOLDLIBS) LDFLAGS_jffs2reader = $(ZLIBLDFLAGS) $(LZOLDFLAGS) LDLIBS_jffs2reader = -lz $(LZOLDLIBS) @@ -82,6 +82,3 @@ index eade234..2275865 100644 # # Common libmtd # --- -1.9.1 - diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch index 2e43d5d9742..6b09c14d6c8 100644 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc/0005-common.h-klibc-fixes-2.patch @@ -22,20 +22,11 @@ Signed-off-by: Andrea Adami include/common.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) -diff --git a/include/common.h b/include/common.h -index 77f3f7d..2cbee0f 100644 ---- a/include/common.h -+++ b/include/common.h -@@ -126,7 +126,7 @@ static char __PRIxoff_t_static_assert[sizeof(off_t) == 8 ? 1 : -1]; - fprintf(stderr, "%s: warning!: " fmt "\n", PROGRAM_NAME, ##__VA_ARGS__); \ - } while(0) - --#if defined(__UCLIBC__) -+#if defined(__UCLIBC__) || defined(__KLIBC__) - /* uClibc versions before 0.9.34 don't have rpmatch() */ - #if __UCLIBC_MAJOR__ == 0 && \ - (__UCLIBC_MINOR__ < 9 || \ -@@ -146,15 +146,17 @@ static inline int __rpmatch(const char *resp) +Index: git/include/common.h +=================================================================== +--- git.orig/include/common.h ++++ git/include/common.h +@@ -161,15 +161,17 @@ static inline int __rpmatch(const char * */ static inline bool prompt(const char *msg, bool def) { @@ -56,6 +47,3 @@ index 77f3f7d..2cbee0f 100644 printf("failed to read prompt; assuming '%s'\n", def ? "yes" : "no"); break; --- -1.9.1 - diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.1.bb b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.1.bb deleted file mode 100644 index 8ca1ca727d9..00000000000 --- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.1.bb +++ /dev/null @@ -1,50 +0,0 @@ -SUMMARY = "UBI utils statically compiled against klibc" -DESCRIPTION = "Small sized tools from mtd-utils for use with initramfs." -SECTION = "base" -DEPENDS = "zlib lzo e2fsprogs util-linux" -HOMEPAGE = "http://www.linux-mtd.infradead.org/" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ - file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c" - -inherit klibc - -SRC_URI = "git://git.infradead.org/mtd-utils.git;tag=b7455d847ab4f9eeeb6a729efc306bfda7bddc99 \ - file://0001-Makefile-only-build-ubi-utils.patch \ - file://0002-common.mk-for-klibc-CC-is-klcc.patch \ - file://0003-libubi.c-add-klibc-specific-fixes.patch \ - file://0004-common.h-klibc-fixes-1.patch \ - file://0005-common.h-klibc-fixes-2.patch \ - file://0006-libiniparser-remove-unused-function-needing-float.patch \ - " - -S = "${WORKDIR}/git/" - -EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}include -DWITHOUT_XATTR' 'BUILDDIR=${S}'" - -do_install () { - - install -d ${D}${sbindir} - oe_runmake DESTDIR="${D}" install - -} - -PACKAGES = "ubi-utils-klibc-dbg" - -PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \ - ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \ - ubirmvol-klibc ubirsvol-klibc ubiupdatevol-klibc" - -FILES_mtdinfo-klibc = "${sbindir}/mtdinfo" -FILES_ubiattach-klibc = "${sbindir}/ubiattach" -FILES_ubiblock-klibc = "${sbindir}/ubiblock" -FILES_ubicrc32-klibc = "${sbindir}/ubicrc32" -FILES_ubidetach-klibc = "${sbindir}/ubidetach" -FILES_ubiformat-klibc = "${sbindir}/ubiformat" -FILES_ubimkvol-klibc = "${sbindir}/ubimkvol" -FILES_ubinfo-klibc = "${sbindir}/ubinfo" -FILES_ubinize-klibc = "${sbindir}/ubinize" -FILES_ubirename-klibc = "${sbindir}/ubirename" -FILES_ubirmvol-klibc = "${sbindir}/ubirmvol" -FILES_ubirsvol-klibc = "${sbindir}/ubirsvol" -FILES_ubiupdatevol-klibc = "${sbindir}/ubiupdatevol" diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb new file mode 100644 index 00000000000..518c02fc007 --- /dev/null +++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_1.5.2.bb @@ -0,0 +1,48 @@ +SUMMARY = "UBI utils statically compiled against klibc" +DESCRIPTION = "Small sized tools from mtd-utils for use with initramfs." +SECTION = "base" +DEPENDS = "zlib lzo e2fsprogs util-linux" +HOMEPAGE = "http://www.linux-mtd.infradead.org/" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c" + +inherit klibc + +SRCREV = "aea36417067dade75192bafa03af70b6eb2677b1" +SRC_URI = "git://git.infradead.org/mtd-utils.git \ + file://0001-Makefile-only-build-ubi-utils.patch \ + file://0002-common.mk-for-klibc-CC-is-klcc.patch \ + file://0003-libubi.c-add-klibc-specific-fixes.patch \ + file://0004-common.h-klibc-fixes-1.patch \ + file://0005-common.h-klibc-fixes-2.patch \ + file://0006-libiniparser-remove-unused-function-needing-float.patch \ + " + +S = "${WORKDIR}/git/" + +EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}include -DWITHOUT_XATTR' 'BUILDDIR=${S}'" + +do_install () { + oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir} +} + +PACKAGES = "ubi-utils-klibc-dbg" + +PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubidetach-klibc \ + ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \ + ubirmvol-klibc ubirsvol-klibc ubiupdatevol-klibc" + +FILES_mtdinfo-klibc = "${sbindir}/mtdinfo" +FILES_ubiattach-klibc = "${sbindir}/ubiattach" +FILES_ubiblock-klibc = "${sbindir}/ubiblock" +FILES_ubicrc32-klibc = "${sbindir}/ubicrc32" +FILES_ubidetach-klibc = "${sbindir}/ubidetach" +FILES_ubiformat-klibc = "${sbindir}/ubiformat" +FILES_ubimkvol-klibc = "${sbindir}/ubimkvol" +FILES_ubinfo-klibc = "${sbindir}/ubinfo" +FILES_ubinize-klibc = "${sbindir}/ubinize" +FILES_ubirename-klibc = "${sbindir}/ubirename" +FILES_ubirmvol-klibc = "${sbindir}/ubirmvol" +FILES_ubirsvol-klibc = "${sbindir}/ubirsvol" +FILES_ubiupdatevol-klibc = "${sbindir}/ubiupdatevol" diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/0001-Adjust-the-order-of-headers-to-fix-build-for-musl.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/0001-Adjust-the-order-of-headers-to-fix-build-for-musl.patch new file mode 100644 index 00000000000..a7600b30105 --- /dev/null +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/0001-Adjust-the-order-of-headers-to-fix-build-for-musl.patch @@ -0,0 +1,30 @@ +From 86b962e7c0de43b20b6210d059e4855ce87078bc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 16:20:08 -0700 +Subject: [PATCH] Adjust the order of headers to fix build for musl + +Fixes +kexec/ifdown.c:33:16: error: storage size of 'ifc' isn't known + +Signed-off-by: Khem Raj +--- + kexec/ifdown.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kexec/ifdown.c b/kexec/ifdown.c +index 2215798..e13f777 100644 +--- a/kexec/ifdown.c ++++ b/kexec/ifdown.c +@@ -16,8 +16,8 @@ char *v_ifdown = "@(#)ifdown.c 1.11 02-Jun-1998 miquels@cistron.nl"; + #include + #include + +-#include + #include ++#include + + #define MAX_IFS 64 + +-- +2.13.2 + diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb index d5b7bbe9c73..49c53a3ea48 100644 --- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb @@ -8,6 +8,8 @@ inherit klibc FILESPATH =. "${FILE_DIRNAME}/kexec-tools-${PV}:" +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz" + SRC_URI += " \ file://kexec-elf-rel.patch \ file://kexec-syscall.patch \ @@ -18,6 +20,7 @@ SRC_URI += " \ file://sha256.patch \ file://sysconf_nrprocessors.patch \ file://fix-out-of-tree-build.patch \ + file://0001-Adjust-the-order-of-headers-to-fix-build-for-musl.patch \ " SRC_URI_append_arm = " file://arm_crashdump.patch" diff --git a/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot_3.19.bb b/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot_3.19.bb deleted file mode 100644 index f6d2fa02a4b..00000000000 --- a/meta-initramfs/recipes-kernel/linux/linux-yocto-tiny-kexecboot_3.19.bb +++ /dev/null @@ -1,26 +0,0 @@ -require recipes-kernel/linux/linux-yocto-tiny_${PV}.bb -SUMMARY = "Yocto tiny kernel embedding a minimalistic kexecboot initramfs" - -PACKAGES = "" -PROVIDES = "" - -KERNEL_IMAGE_BASE_NAME = "${KERNEL_IMAGETYPE}-yocto-tiny-kexecboot-${PV}-${MACHINE}" -KERNEL_IMAGE_SYMLINK_NAME = "${KERNEL_IMAGETYPE}-yocto-tiny-kexecboot-${MACHINE}" - -INITRAMFS_IMAGE = "initramfs-kexecboot-klibc-image" -INITRAMFS_TASK = "${INITRAMFS_IMAGE}:do_rootfs" - -# disable unneeded tasks -do_install[noexec] = "1" -do_package[noexec] = "1" -do_package_qa[noexec] = "1" -do_packagedata[noexec] = "1" -do_package_deb[noexec] = "1" -do_package_ipk[noexec] = "1" -do_package_rpm[noexec] = "1" -do_package_tar[noexec] = "1" -do_package_write_deb[noexec] = "1" -do_package_write_ipk[noexec] = "1" -do_package_write_rpm[noexec] = "1" -do_package_write_tar[noexec] = "1" -do_populate_sysroot[noexec] = "1" diff --git a/meta-multimedia/classes/juce.bbclass b/meta-multimedia/classes/juce.bbclass new file mode 100644 index 00000000000..3927235ef13 --- /dev/null +++ b/meta-multimedia/classes/juce.bbclass @@ -0,0 +1,47 @@ +inherit pkgconfig + +# List of JUCE modules that requires external dependencies +JUCE_MODULES ??= " \ + juce_core \ + ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'juce_audio_devices', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'juce_graphics juce_gui_basics', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'juce_opengl', '', d)} \ +" +JUCE_X11_DEPS = "libx11 libxext libxinerama libxrandr libxcursor" + +PACKAGECONFIG_prepend= "${JUCE_MODULES} " +PACKAGECONFIG[juce_core] = ",,curl," +PACKAGECONFIG[juce_audio_devices] = ",,alsa-lib," +PACKAGECONFIG[juce_graphics] = ",,${JUCE_X11_DEPS} freetype," +PACKAGECONFIG[juce_gui_basics] = ",,${JUCE_X11_DEPS}," +PACKAGECONFIG[juce_opengl] = ",,virtual/libgl," + +DEPENDS_prepend = "projucer-native " + +export OE_JUCE_PROJUCER = "${STAGING_BINDIR_NATIVE}/Projucer" + +juce_do_configure() { + if [ -z "${JUCE_JUCERS}" ]; then + JUCERS=`find . -type f -iname "*.jucer"` && IFS=$'\n' + else + JUCERS="${JUCE_JUCERS}" + fi + + if [ -z "$JUCERS" ]; then + die "JUCE_JUCERS not set and no profiles found in $PWD" + fi + + # XXX: Hack for Projucer, since it requires a X Display even when running in + # console mode. This will be fixed in future. Most cases DISPLAY=:0 will just work, + # the only case why we have JUCE_DISPLAY variable, is in case of a build system, + # such as jenkins, that can have multiple virtual X server running for each build. + test -z "${JUCE_DISPLAY}" && export DISPLAY=:0 || export DISPLAY=${JUCE_DISPLAY} + + for i in $JUCERS; do + ${OE_JUCE_PROJUCER} --resave $i + done +} + +EXPORT_FUNCTIONS do_configure + +addtask configure after do_unpack do_patch before do_compile diff --git a/meta-multimedia/conf/layer.conf b/meta-multimedia/conf/layer.conf index 64a0a443c2b..d68b13f7fe9 100644 --- a/meta-multimedia/conf/layer.conf +++ b/meta-multimedia/conf/layer.conf @@ -23,3 +23,9 @@ BBFILE_PATTERN_multimedia-layer := "^${LAYERDIR}/" BBFILE_PRIORITY_multimedia-layer = "6" +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_multimedia-layer = "1" + +LAYERDEPENDS_multimedia-layer = "core" + diff --git a/meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch b/meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch new file mode 100644 index 00000000000..9bfc31b8eb0 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch @@ -0,0 +1,102 @@ +OE-Core's vala class known one type of vapigen.m4 and deletes it since its +not cross compile friendly, but this is a different case here where its not +same vapigen.m4 just name is same and it tends to inherit vala bbclass so +save it + +Signed-off-by: Khem Raj +Index: gupnp-dlna-0.10.5/m4/vapigen-custom.m4 +=================================================================== +--- /dev/null ++++ gupnp-dlna-0.10.5/m4/vapigen-custom.m4 +@@ -0,0 +1,43 @@ ++ ++dnl vala.m4 ++dnl ++dnl Copyright 2010 Marc-Andre Lureau ++dnl Copyright 2011 Rodney Dawes ++dnl ++dnl This library is free software; you can redistribute it and/or ++dnl modify it under the terms of the GNU Lesser General Public ++dnl License as published by the Free Software Foundation; either ++dnl version 2.1 of the License, or (at your option) any later version. ++dnl ++dnl This library is distributed in the hope that it will be useful, ++dnl but WITHOUT ANY WARRANTY; without even the implied warranty of ++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++dnl Lesser General Public License for more details. ++dnl ++dnl You should have received a copy of the GNU Lesser General Public ++dnl License along with this library; if not, write to the Free Software ++dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ ++dnl dropped everything but VALA_PROG_VAPIGEN - Jens Georg ++ ++# Check whether the Vala API Generator exists in `PATH'. If it is found, ++# the variable VAPIGEN is set. Optionally a minimum release number of the ++# generator can be requested. ++# ++# VALA_PROG_VAPIGEN([MINIMUM-VERSION]) ++# ------------------------------------ ++AC_DEFUN([GUPNP_PROG_VAPIGEN], ++[AC_PATH_PROG([VAPIGEN], [vapigen], []) ++ AS_IF([test -z "$VAPIGEN"], ++ [AC_MSG_WARN([No Vala API Generator found. You will not be able to generate .vapi files.])], ++ [AS_IF([test -n "$1"], ++ [AC_MSG_CHECKING([$VAPIGEN is at least version $1]) ++ am__vapigen_version=`$VAPIGEN --version | sed 's/Vala API Generator *//'` ++ AS_VERSION_COMPARE([$1], ["$am__vapigen_version"], ++ [AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no]) ++ AC_MSG_WARN([Vala API Generator $1 not found.]) ++ VAPIGEN="" ++ ])])]) ++]) +Index: gupnp-dlna-0.10.5/m4/vapigen.m4 +=================================================================== +--- gupnp-dlna-0.10.5.orig/m4/vapigen.m4 ++++ /dev/null +@@ -1,43 +0,0 @@ +- +-dnl vala.m4 +-dnl +-dnl Copyright 2010 Marc-Andre Lureau +-dnl Copyright 2011 Rodney Dawes +-dnl +-dnl This library is free software; you can redistribute it and/or +-dnl modify it under the terms of the GNU Lesser General Public +-dnl License as published by the Free Software Foundation; either +-dnl version 2.1 of the License, or (at your option) any later version. +-dnl +-dnl This library is distributed in the hope that it will be useful, +-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-dnl Lesser General Public License for more details. +-dnl +-dnl You should have received a copy of the GNU Lesser General Public +-dnl License along with this library; if not, write to the Free Software +-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +- +-dnl dropped everything but VALA_PROG_VAPIGEN - Jens Georg +- +-# Check whether the Vala API Generator exists in `PATH'. If it is found, +-# the variable VAPIGEN is set. Optionally a minimum release number of the +-# generator can be requested. +-# +-# VALA_PROG_VAPIGEN([MINIMUM-VERSION]) +-# ------------------------------------ +-AC_DEFUN([GUPNP_PROG_VAPIGEN], +-[AC_PATH_PROG([VAPIGEN], [vapigen], []) +- AS_IF([test -z "$VAPIGEN"], +- [AC_MSG_WARN([No Vala API Generator found. You will not be able to generate .vapi files.])], +- [AS_IF([test -n "$1"], +- [AC_MSG_CHECKING([$VAPIGEN is at least version $1]) +- am__vapigen_version=`$VAPIGEN --version | sed 's/Vala API Generator *//'` +- AS_VERSION_COMPARE([$1], ["$am__vapigen_version"], +- [AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no]) +- AC_MSG_WARN([Vala API Generator $1 not found.]) +- VAPIGEN="" +- ])])]) +-]) diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc b/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc index ae965b996c5..23f17eddf6e 100644 --- a/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc +++ b/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc @@ -2,15 +2,17 @@ SUMMARY = "Resource discovery and announcement over SSDP" DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP (Simpe Service Discovery Protocol)." LICENSE = "LGPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" -DEPENDS = "glib-2.0 libsoup-2.4 gobject-introspection-stub" +DEPENDS = "glib-2.0 libsoup-2.4" -inherit autotools pkgconfig +inherit autotools pkgconfig gobject-introspection vala -require no-vala.inc +# Copy vapigen.m4 so that it doesn't get removed by vala class +# (normally this would be the right thing to do, but in gssdp the vapigen.m4 has only a custom macro) +do_configure_prepend() { + cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true +} -EXTRA_OECONF = "--disable-introspection" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}" PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+" PACKAGES =+ "gssdp-tools" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp_0.14.8.bb b/meta-multimedia/recipes-connectivity/gupnp/gssdp_0.14.8.bb deleted file mode 100644 index 9457abc5c2f..00000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gssdp_0.14.8.bb +++ /dev/null @@ -1,9 +0,0 @@ -require gssdp.inc - -inherit gtk-doc - -PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+3" - -SRC_URI = "${GNOME_MIRROR}/${BPN}/0.14/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "b8658e480d047caf2d92baa4a51b9ae7" -SRC_URI[sha256sum] = "4c3ffa01435e84dc31c954e669e1ca0749b962f76a333e74f5c2cb0de5803a13" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb new file mode 100644 index 00000000000..b60d1ea4473 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb @@ -0,0 +1,9 @@ +require gssdp.inc + +inherit gtk-doc + +PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+3" + +SRC_URI = "${GNOME_MIRROR}/${BPN}/1.0/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "b30c9a406853c6a3a012d151d6e7ad2c" +SRC_URI[sha256sum] = "a1e17c09c7e1a185b0bd84fd6ff3794045a3cd729b707c23e422ff66471535dc" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc index b0761558580..0544501569d 100644 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc @@ -3,6 +3,11 @@ DESCRIPTION = "GUPnP-AV is a collection of helpers for building AV (audio/video) LICENSE = "LGPLv2" DEPENDS = "gupnp" -inherit autotools pkgconfig +inherit autotools pkgconfig gobject-introspection vala + +# Copy vapigen.m4 so that it doesn't get removed by vala class +# (normally this would be the right thing to do, but in gupnp-av the vapigen.m4 has only a custom macro) +do_configure_prepend() { + cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true +} -require no-vala.inc diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.10.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.10.bb new file mode 100644 index 00000000000..cfd0227e475 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.10.bb @@ -0,0 +1,7 @@ +require gupnp-av.inc + +SRC_URI = "${GNOME_MIRROR}/${BPN}/0.12/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "215f626508d76b767f5da7c9b92e87d8" +SRC_URI[sha256sum] = "8038ef84dddbe7ad91c205bf91dddf684f072df8623f39b6555a6bb72837b85a" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libgupnp-av/gupnp-av.h;beginline=1;endline=22;md5=2b47b7b5f799d2ebabe62b895e848820" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.6.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.6.bb deleted file mode 100644 index b8cfa27d4a9..00000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.6.bb +++ /dev/null @@ -1,8 +0,0 @@ -require gupnp-av.inc - -SRC_URI = "${GNOME_MIRROR}/${BPN}/0.12/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "f56cdb269376a9e6cb062eb9960ccf57" -SRC_URI[sha256sum] = "e0553d60dd7c7277c65c02a68a270c4dcb9036a4c7075c902fc8111c6a5e6a44" - -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ - file://libgupnp-av/gupnp-av.h;beginline=1;endline=22;md5=2b47b7b5f799d2ebabe62b895e848820" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb new file mode 100644 index 00000000000..3cafd69764f --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb @@ -0,0 +1,19 @@ +SUMMARY = "Helpers for AV applications using DLNA" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libgupnp-dlna/gupnp-dlna-profile.h;beginline=1;endline=22;md5=1b85459f65cb1e73a885ca137aab6274" + +DEPENDS = "libxml2 glib-2.0" + +SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz \ + file://move_vapigen.patch \ +" +SRC_URI[md5sum] = "2d0dc1e4189d0243ac3838ece1e8fea0" +SRC_URI[sha256sum] = "123e368227c11d5c17fc1aa76cbdaffa345355eb51d172cd39fc74a5b468ff6a" + +inherit autotools pkgconfig gobject-introspection vala + +PACKAGECONFIG ?= "gstreamer" +PACKAGECONFIG[gstreamer] = "--enable-gstreamer-metadata-backend,--disable-gstreamer-metadata-backend,gstreamer1.0 gstreamer1.0-plugins-base" + +FILES_${PN} += "${datadir}/gupnp-dlna-2.0/dlna-profiles" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.9.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.9.2.bb deleted file mode 100644 index b7e71cf0da8..00000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.9.2.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Helpers for AV applications using DLNA" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://libgupnp-dlna/gupnp-dlna-profile.h;beginline=1;endline=22;md5=1b85459f65cb1e73a885ca137aab6274" - -DEPENDS = "libxml2 glib-2.0" - -SRC_URI = "http://download.gnome.org/sources/${BPN}/0.9/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "d972f9b03f0f3793cb895eb034ea314f" -SRC_URI[sha256sum] = "c28d5650604c7da4f193e6b85049a4885f3a01f1996df768d55b5cb898a9fc53" - -inherit autotools pkgconfig - -require no-vala.inc - -# The GStreamer metadata backend requires GStreamer 1.0, so skip this until we -# have that packaged. -EXTRA_OECONF = "--disable-gstreamer-metadata-backend" - -FILES_${PN} += "${datadir}/gupnp-dlna-2.0/dlna-profiles" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.2.bb deleted file mode 100644 index 112bc4bd321..00000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.2.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Helpers for interacting with Internet Gateway Devices over UPnP" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80" - -DEPENDS = "glib-2.0 gupnp" - -SRC_URI = "http://download.gnome.org/sources/${BPN}/0.2/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "f881323304185c02634034e3bda714ba" -SRC_URI[sha256sum] = "73b6a98a0f13b29b34c3bfc07f99f78b1319211cb95a8585752873af2b9067d3" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-introspection --disable-python" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb new file mode 100644 index 00000000000..0aa594dc788 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb @@ -0,0 +1,14 @@ +SUMMARY = "Helpers for interacting with Internet Gateway Devices over UPnP" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80" + +DEPENDS = "glib-2.0 gupnp sqlite3" + +SRC_URI = "http://download.gnome.org/sources/${BPN}/0.2/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "124371136b5a7b1056a3681780a62772" +SRC_URI[sha256sum] = "38c4a6d7718d17eac17df95a3a8c337677eda77e58978129ad3182d769c38e44" + +inherit autotools pkgconfig gtk-doc gobject-introspection + +EXTRA_OECONF = "--disable-python" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.1.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.1.bb deleted file mode 100644 index 178cea39aae..00000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Tools for GUPnP" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ - file://src/network-light/main.c;beginline=1;endline=21;md5=033bf37c030780c5a72165846b3003f6" -DEPENDS = "gupnp gupnp-av gtk+ gnome-icon-theme" - -SRC_URI = "http://download.gnome.org/sources/${BPN}/0.8/${BPN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "cafc2a4f2d1a91a8c1228799073d1d7d" -SRC_URI[sha256sum] = "57d5ca899f8da7e4ae69e5f98d75d1603aa7f388022f9ccb357f90abb22b75b6" - -inherit autotools pkgconfig diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb new file mode 100644 index 00000000000..9360d65b5e3 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb @@ -0,0 +1,11 @@ +SUMMARY = "Tools for GUPnP" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://src/network-light/main.c;beginline=1;endline=21;md5=2c39b3a000495dabd4932f231c7efed8" +DEPENDS = "gupnp gupnp-av gtk+3 intltool-native" +RRECOMMENDS_${PN} = "adwaita-icon-theme" + +SRC_URI = "http://download.gnome.org/sources/${BPN}/0.8/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "212d85ebce89b32468b59e1164050d40" +SRC_URI[sha256sum] = "aa3decb9d532c0e2e505adc592f431fd81c0231ded2981129e87da13712479ed" +inherit autotools pkgconfig gettext diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc b/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc index e23ba684a5a..6ce96316165 100644 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc @@ -2,18 +2,20 @@ SUMMARY = "UPnP framework" DESCRIPTION = "GUPnP is an elegant, object-oriented open source framework for creating UPnP devices and control points, written in C using GObject and libsoup. The GUPnP API is intended to be easy to use, efficient and flexible. It provides the same set of features as libupnp, but shields the developer from most of UPnP's internals." LICENSE = "LGPLv2+" -DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2 gobject-introspection-stub" +DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2" -require no-vala.inc +inherit autotools pkgconfig vala gobject-introspection -EXTRA_OECONF = "--disable-introspection" - -inherit autotools pkgconfig +# Copy vapigen.m4 so that it doesn't get removed by vala class +# (normally this would be the right thing to do, but in gupnp the vapigen.m4 has only a custom macro) +do_configure_prepend() { + cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true +} FILES_${PN} = "${libdir}/*.so.*" FILES_${PN}-dev += "${bindir}/gupnp-binding-tool" -RRECOMMENDS_${PN}-dev = "python" +RDEPENDS_${PN}-dev = "python-textutils python-xml" SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp_0.20.12.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp_0.20.12.bb deleted file mode 100644 index c8c6164c3b4..00000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/gupnp_0.20.12.bb +++ /dev/null @@ -1,8 +0,0 @@ -require gupnp.inc - -SRC_URI = "${GNOME_MIRROR}/${BPN}/0.20/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "c01aa6d3a78792b3a24591f036dd91f4" -SRC_URI[sha256sum] = "205d47b950a1b7190df1115f454cb38a44d71aacfec75d4287299e400e139b69" - -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ - file://libgupnp/gupnp.h;beginline=1;endline=20;md5=d78a69d9b6e63ee2dc72e7b674d97520" diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb new file mode 100644 index 00000000000..1bdf7d79bcd --- /dev/null +++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb @@ -0,0 +1,8 @@ +require gupnp.inc + +SRC_URI = "${GNOME_MIRROR}/${BPN}/1.0/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "afd96fe73856b38aaf1baf7526e08edd" +SRC_URI[sha256sum] = "5173fda779111c6b01cd4a5e41b594322be9d04f8c74d3361f0a0c2069c77610" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libgupnp/gupnp.h;beginline=1;endline=20;md5=d78a69d9b6e63ee2dc72e7b674d97520" diff --git a/meta-multimedia/recipes-connectivity/gupnp/no-vala.inc b/meta-multimedia/recipes-connectivity/gupnp/no-vala.inc deleted file mode 100644 index 5a45cd1250e..00000000000 --- a/meta-multimedia/recipes-connectivity/gupnp/no-vala.inc +++ /dev/null @@ -1,5 +0,0 @@ -do_configure_prepend () { - # Vala needs gobject-introspection so won't work. Instead of depending - # on vala-native just to run configure, comment out the Vala macro. - sed -i -e 's/\(^[ \t]*VALA_PROG_VAPIGEN\)/dnl \1/g' ${S}/configure.ac -} diff --git a/meta-multimedia/recipes-connectivity/libupnp/libupnp1.6/sepbuildfix.patch b/meta-multimedia/recipes-connectivity/libupnp/libupnp1.6/sepbuildfix.patch new file mode 100644 index 00000000000..0493cea0e09 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/libupnp/libupnp1.6/sepbuildfix.patch @@ -0,0 +1,34 @@ +From e198f0a87660a048164ca0e16d18517d0aee846e Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Tue, 9 Jun 2015 12:20:45 -0700 +Subject: [PATCH] Fix builds when using separate source and build directories. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +--- + configure.ac | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index a8731b5..54a3c3d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -744,9 +744,9 @@ AC_OUTPUT + # + # Files copied for windows compilation. + # +-echo "configure: copying \"autoconfig.h\" to \"build/inc/autoconfig.h\"" +-test -d build/inc || mkdir -p build/inc +-cp autoconfig.h build/inc/autoconfig.h +-echo "configure: copying \"upnp/inc/upnpconfig.h\" to \"build/inc/upnpconfig.h\"" +-cp upnp/inc/upnpconfig.h build/inc/upnpconfig.h ++echo "configure: copying \"autoconfig.h\" to \"\$srcdir/build/inc/autoconfig.h\"" ++test -d $srcdir/build/inc || mkdir -p $srcdir/build/inc ++cp autoconfig.h $srcdir/build/inc/autoconfig.h ++echo "configure: copying \"upnp/inc/upnpconfig.h\" to \"\$srcdir/build/inc/upnpconfig.h\"" ++cp upnp/inc/upnpconfig.h $srcdir/build/inc/upnpconfig.h + +-- +1.9.1 + diff --git a/meta-multimedia/recipes-connectivity/libupnp/libupnp1.6_1.6.21.bb b/meta-multimedia/recipes-connectivity/libupnp/libupnp1.6_1.6.21.bb new file mode 100644 index 00000000000..c1b0429bdf6 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/libupnp/libupnp1.6_1.6.21.bb @@ -0,0 +1,20 @@ +SUMMARY = "Portable SDK for UPnP* Devices" +DESCRIPTION = "The Portable SDK for UPnP Devices is an SDK for development of \ +UPnP device and control point applications. It consists of the core UPnP \ +protocols along with a UPnP-specific eXtensible Markup Language (XML) parser \ +supporting the Document Object Model (DOM) Level 2 API and an optional, \ +integrated mini web server for serving UPnP related documents." +HOMEPAGE = "http://pupnp.sourceforge.net/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b3190d5244e08e78e4c8ee78544f4863" + +SRC_URI = "${SOURCEFORGE_MIRROR}/pupnp/libupnp-${PV}.tar.bz2 \ + file://sepbuildfix.patch \ +" + +SRC_URI[md5sum] = "513adadb07fa039a8aeb0ceb7b7b0f6e" +SRC_URI[sha256sum] = "af3f3c0846a1d75baeadae4aa5a2bda427567e2a1fb4559bf73ccff0a4f9a39b" + +S = "${WORKDIR}/libupnp-${PV}" + +inherit autotools diff --git a/meta-multimedia/recipes-connectivity/libupnp/libupnp_git.bb b/meta-multimedia/recipes-connectivity/libupnp/libupnp_git.bb new file mode 100644 index 00000000000..7a524f2d508 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/libupnp/libupnp_git.bb @@ -0,0 +1,20 @@ +SUMMARY = "Portable SDK for UPnP* Devices" +DESCRIPTION = "The Portable SDK for UPnP Devices is an SDK for development of \ +UPnP device and control point applications. It consists of the core UPnP \ +protocols along with a UPnP-specific eXtensible Markup Language (XML) parser \ +supporting the Document Object Model (DOM) Level 2 API and an optional, \ +integrated mini web server for serving UPnP related documents." +HOMEPAGE = "http://pupnp.sourceforge.net/" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=b3190d5244e08e78e4c8ee78544f4863" + +PV = "1.8.2+git${SRCPV}" +SRCREV = "56d6042abae861e8838a4e6b6b5b575b99e38f34" +SRC_URI = "git://github.com/mrjimenez/pupnp.git;protocol=https" + +S="${WORKDIR}/git" + +inherit autotools + +EXTRA_OECONF += "--enable-reuseaddr" \ No newline at end of file diff --git a/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb b/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb new file mode 100644 index 00000000000..d2eda6bf958 --- /dev/null +++ b/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb @@ -0,0 +1,67 @@ +SUMMARY = "A UPnP AV media server and renderer" +DESCRIPTION = "Rygel is a home media solution (UPnP AV MediaServer) that \ +allow you to easily share audio, video and pictures to other devices. \ +Additionally, media player software may use Rygel to become a MediaRenderer \ +that may be controlled remotely by a UPnP or DLNA Controller." +HOMEPAGE = "http://live.gnome.org/Rygel" + +LICENSE = "LGPL1.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 gstreamer1.0-plugins-base ossp-uuid libgee libsoup-2.4 libmediaart-2.0 libunistring sqlite3 intltool-native" +RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info" +RRECOMMENDS_${PN} = "rygel-plugin-media-export" + +GNOME_COMPRESS_TYPE = "xz" +SRC_URI[archive.md5sum] = "7d8923324b280cd5452803d61176a34a" +SRC_URI[archive.sha256sum] = "fbb2d46cbe4e750df6610b4c66b2278f06d1f71a257c7903e676ccb394dad418" + +inherit gnomebase vala gobject-introspection gettext systemd + +EXTRA_OECONF = "--disable-tracker-plugin --with-media-engine=gstreamer" + +PACKAGECONFIG ?= "external mpris ruih media-export gst-launch" + +PACKAGECONFIG_append = "${@bb.utils.contains("DISTRO_FEATURES", "x11", " gtk+3", "", d)}" + +PACKAGECONFIG[external] = "--enable-external-plugin,--disable-external-plugin" +PACKAGECONFIG[mpris] = "--enable-mpris-plugin,--disable-mpris-plugin" +PACKAGECONFIG[ruih] = "--enable-ruih-plugin,--disable-ruih-plugin" +PACKAGECONFIG[media-export] = "--enable-media-export-plugin,--disable-media-export-plugin" +PACKAGECONFIG[gst-launch] = "--enable-gst-launch-plugin,--disable-gst-launch-plugin" +PACKAGECONFIG[gtk+3] = ",--without-ui,gtk+3" + +LIBV = "2.6" + +do_install_append() { + # Remove .la files for loadable modules + rm -f ${D}/${libdir}/rygel-${LIBV}/engines/*.la + rm -f ${D}/${libdir}/rygel-${LIBV}/plugins/*.la + if [ -e ${D}${libdir}/systemd/user/rygel.service ]; then + mkdir -p ${D}${systemd_unitdir}/system + mv ${D}${libdir}/systemd/user/rygel.service ${D}${systemd_unitdir}/system + rmdir ${D}${libdir}/systemd/user ${D}${libdir}/systemd + fi +} + +FILES_${PN} += "${libdir}/rygel-${LIBV}/engines ${datadir}/dbus-1 ${datadir}/icons" +FILES_${PN}-dbg += "${libdir}/rygel-${LIBV}/engines/.debug ${libdir}/rygel-${LIBV}/plugins/.debug" + +PACKAGES += "${PN}-meta" +ALLOW_EMPTY_${PN}-meta = "1" + +PACKAGES_DYNAMIC = "${PN}-plugin-*" + +SYSTEMD_SERVICE_${PN} = "rygel.service" + +python populate_packages_prepend () { + rygel_libdir = d.expand('${libdir}/rygel-${LIBV}') + postinst = d.getVar('plugin_postinst') + pkgs = [] + + pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), 'librygel-(.*)\.so$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) + pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), '(.*)\.plugin$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) + + metapkg = d.getVar('PN') + '-meta' + d.setVar('RDEPENDS_' + metapkg, ' '.join(pkgs)) +} diff --git a/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb b/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb deleted file mode 100644 index 1c0d6867dc3..00000000000 --- a/meta-multimedia/recipes-dvb/dvb-apps/dvb-apps_1.1.1.bb +++ /dev/null @@ -1,106 +0,0 @@ -HOMEPAGE = "http://www.linuxtv.org" -SUMMARY = "Linux DVB API applications and utilities" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SRC_URI = "hg://linuxtv.org/hg;module=dvb-apps;protocol=http" -SRCREV = "3fc7dfa68484" - -S = "${WORKDIR}/${BPN}" - -do_configure() { - sed -i -e s:/usr/include:${STAGING_INCDIR}:g util/av7110_loadkeys/generate-keynames.sh -} - -do_install() { - make DESTDIR=${D} install - install -d ${D}/${bindir} - install -d ${D}/${docdir}/dvb-apps - install -d ${D}/${docdir}/dvb-apps/scan - install -d ${D}/${docdir}/dvb-apps/szap - chmod a+rx ${D}/${libdir}/*.so* - - # Install tests - install -m 0755 ${S}/test/setvoltage ${D}${bindir}/test_setvoltage - install -m 0755 ${S}/test/set22k ${D}${bindir}/test_set22k - install -m 0755 ${S}/test/sendburst ${D}${bindir}/test_sendburst - install -m 0755 ${S}/test/diseqc ${D}${bindir}/test_diseqc - install -m 0755 ${S}/test/test_sections ${D}${bindir}/ - install -m 0755 ${S}/test/test_av_play ${D}${bindir}/ - install -m 0755 ${S}/test/test_stillimage ${D}${bindir}/ - install -m 0755 ${S}/test/test_dvr_play ${D}${bindir}/ - install -m 0755 ${S}/test/test_tt ${D}${bindir}/ - install -m 0755 ${S}/test/test_sec_ne ${D}${bindir}/ - install -m 0755 ${S}/test/test_stc ${D}${bindir}/ - install -m 0755 ${S}/test/test_av ${D}${bindir}/ - install -m 0755 ${S}/test/test_vevent ${D}${bindir}/ - install -m 0755 ${S}/test/test_pes ${D}${bindir}/ - install -m 0755 ${S}/test/test_dvr ${D}${bindir}/ - - cp -pPR ${S}/util/szap/channels-conf* ${D}/${docdir}/dvb-apps/szap/ - cp -pPR ${S}/util/szap/README ${D}/${docdir}/dvb-apps/szap/ -} - -python populate_packages_prepend () { - dvb_libdir = bb.data.expand('${libdir}', d) - do_split_packages(d, dvb_libdir, '^lib(.*)\.so$', 'lib%s', 'DVB %s package', extra_depends='', allow_links=True) - do_split_packages(d, dvb_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev') - do_split_packages(d, dvb_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev') - do_split_packages(d, dvb_libdir, '^lib(.*)\.so\.*', 'lib%s', 'DVB %s library', extra_depends='', allow_links=True) -} - -PACKAGES =+ "dvb-evtest dvb-evtest-dbg \ - dvbapp-tests dvbapp-tests-dbg \ - dvbdate dvbdate-dbg \ - dvbtraffic dvbtraffic-dbg \ - dvbnet dvbnet-dbg \ - dvb-scan dvb-scan-dbg dvb-scan-data \ - dvb-azap dvb-azap-dbg \ - dvb-czap dvb-czap-dbg \ - dvb-szap dvb-szap-dbg \ - dvb-tzap dvb-tzap-dbg \ - dvb-femon dvb-femon-dbg \ - dvb-zap-data" - - -FILES_${PN} = "${bindir} ${datadir}/dvb" -FILES_${PN}-doc = "" -FILES_${PN}-dev = "${includedir}" - -FILES_dvb-evtest = "${bindir}/evtest" -FILES_dvb-evtest-dbg = "${bindir}/.debug/evtest" -RCONFLICTS_dvb-evtest = "evtest" - -FILES_dvbapp-tests = "${bindir}/*test* " -FILES_dvbapp-tests-dbg = "${bindir}/.debug/*test*" - -FILES_dvbdate = "${bindir}/dvbdate" -FILES_dvbdate-dbg = "${bindir}/.debug/dvbdate" - -FILES_dvbtraffic = "${bindir}/dvbtraffic" -FILES_dvbtraffic-dbg = "${bindir}/.debug/dvbtraffic" - -FILES_dvbnet = "${bindir}/dvbnet" -FILES_dvbnet-dbg = "${bindir}/.debug/dvbnet" - -FILES_dvb-scan = "${bindir}/*scan " -FILES_dvb-scan-dbg = "${bindir}/.debug/*scan" -FILES_dvb-scan-data = "${docdir}/dvb-apps/scan" - -FILES_dvb-azap = "${bindir}/azap" -FILES_dvb-azap-dbg = "${bindir}/.debug/azap" - -FILES_dvb-czap = "${bindir}/czap" -FILES_dvb-czap-dbg = "${bindir}/.debug/czap" - -FILES_dvb-szap = "${bindir}/szap" -FILES_dvb-szap-dbg = "${bindir}/.debug/szap" - -FILES_dvb-tzap = "${bindir}/tzap" -FILES_dvb-tzap-dbg = "${bindir}/.debug/tzap" - -FILES_dvb-femon = "${bindir}/femon" -FILES_dvb-femon-dbg = "${bindir}/.debug/femon" - -FILES_dvb-zap-data = "${docdir}/dvb-apps/szap" diff --git a/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch b/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch new file mode 100644 index 00000000000..179d04a5596 --- /dev/null +++ b/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch @@ -0,0 +1,38 @@ +Upstream-Status: Backport +http://www.streamboard.tv/oscam/changeset/10068 +http://www.streamboard.tv/oscam/changeset/10070 + +Index: /CMakeLists.txt +=================================================================== +--- a/CMakeLists.txt (revision 10067) ++++ b/CMakeLists.txt (revision 10068) +@@ -625,8 +625,8 @@ + list(GET GCC_VERSION_COMPONENTS 0 GCC_MINOR) + add_definitions ("-W -Wall ") +- set (CMAKE_C_FLAGS "-Wall -O2") +- set (CMAKE_CXX_FLAGS "-Wall -O2") +- set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb") +- set (CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") ++ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2") ++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2") ++ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb") ++ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb") + endif (CMAKE_COMPILER_IS_GNUCC) + # some optimisations +Index: /csctapi/CMakeLists.txt +=================================================================== +--- a/csctapi/CMakeLists.txt (revision 10069) ++++ b/csctapi/CMakeLists.txt (revision 10070) +@@ -6,8 +6,8 @@ + list(GET GCC_VERSION_COMPONENTS 0 GCC_MINOR) + add_definitions ("-W -Wall ") +- set (CMAKE_C_FLAGS "-Wall -O2") +- set (CMAKE_CXX_FLAGS "-Wall -O2") +- set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb") +- set (CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") ++ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2") ++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2") ++ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb") ++ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb") + endif (CMAKE_COMPILER_IS_GNUCC) + # Mac extra removes to avoid ranlib warnings in some situations diff --git a/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb b/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb index c4a4d99a461..cac517ff5df 100644 --- a/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb +++ b/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb @@ -6,7 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" DEPENDS = "libusb1 openssl pcsc-lite" -SRC_URI = "svn://www.streamboard.tv/svn/oscam;module=trunk;protocol=http" +SRC_URI = "svn://www.streamboard.tv/svn/oscam;module=trunk;protocol=http \ + file://respect-cflags.patch \ +" SRCREV = "9164" PV = "1.10+${SRCPV}" diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Move-tvheadend-specific-LD-CFLAGS-into-a-helper-vari.patch b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Move-tvheadend-specific-LD-CFLAGS-into-a-helper-vari.patch deleted file mode 100644 index 9dfcce04246..00000000000 --- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-Move-tvheadend-specific-LD-CFLAGS-into-a-helper-vari.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 2ee64b359464b48f751683faa5ded3ee8200fe90 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 21 Dec 2012 10:15:42 +0100 -Subject: [PATCH] Move tvheadend specific LD/CFLAGS into a helper variable to - avoid being overwritten - -Signed-off-by: Koen Kooi - -Upstream-Status: Inappropriate [OE specific] ---- - Makefile | 20 ++++++++++---------- - support/configure.inc | 8 ++++---- - 2 files changed, 14 insertions(+), 14 deletions(-) - -diff --git a/Makefile b/Makefile -index 8c6b293..daf5f14 100644 ---- a/Makefile -+++ b/Makefile -@@ -27,12 +27,12 @@ PROG = ${BUILDDIR}/tvheadend - # Common compiler flags - # - --CFLAGS += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations --CFLAGS += -Wmissing-prototypes -fms-extensions --CFLAGS += -g -funsigned-char -O2 --CFLAGS += -D_FILE_OFFSET_BITS=64 --CFLAGS += -I${BUILDDIR} -I${CURDIR}/src -I${CURDIR} --LDFLAGS += -lrt -ldl -lpthread -lm -+TVH_CFLAGS += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations -+TVH_CFLAGS += -Wmissing-prototypes -fms-extensions -+TVH_CFLAGS += -g -funsigned-char -O2 -+TVH_CFLAGS += -D_FILE_OFFSET_BITS=64 -+TVH_CFLAGS += -I${BUILDDIR} -I${CURDIR}/src -I${CURDIR} -+TVH_LDFLAGS += -lrt -ldl -lpthread -lm - - # - # Other config -@@ -179,8 +179,8 @@ SRCS-${CONFIG_CWC} += src/ffdecsa/ffdecsa_interface.c \ - src/ffdecsa/ffdecsa_int.c - SRCS-${CONFIG_MMX} += src/ffdecsa/ffdecsa_mmx.c - SRCS-${CONFIG_SSE2} += src/ffdecsa/ffdecsa_sse2.c --${BUILDDIR}/src/ffdecsa/ffdecsa_mmx.o : CFLAGS += -mmmx --${BUILDDIR}/src/ffdecsa/ffdecsa_sse2.o : CFLAGS += -msse2 -+${BUILDDIR}/src/ffdecsa/ffdecsa_mmx.o : TVH_CFLAGS += -mmmx -+${BUILDDIR}/src/ffdecsa/ffdecsa_sse2.o : TVH_CFLAGS += -msse2 - endif - - # File bundles -@@ -217,12 +217,12 @@ all: ${PROG} - - # Binary - ${PROG}: $(OBJS) $(ALLDEPS) -- $(CC) -o $@ $(OBJS) $(CFLAGS) $(LDFLAGS) -+ $(CC) -o $@ $(OBJS) $(TVH_CFLAGS) $(TVH_LDFLAGS) $(CFLAGS) $(LDFLAGS) - - # Object - ${BUILDDIR}/%.o: %.c - @mkdir -p $(dir $@) -- $(CC) -MD -MP $(CFLAGS) -c -o $@ $(CURDIR)/$< -+ $(CC) -MD -MP $(TVH_CFLAGS) $(CFLAGS) -c -o $@ $(CURDIR)/$< - - # Add-on - ${BUILDDIR}/%.so: ${SRCS_EXTRA} -diff --git a/support/configure.inc b/support/configure.inc -index 0130880..332511e 100644 ---- a/support/configure.inc -+++ b/support/configure.inc -@@ -464,8 +464,8 @@ ifeq (\$(origin CC),default) - CC = ${CC} - endif - PYTHON ?= ${PYTHON} --CFLAGS += ${CFLAGS} --LDFLAGS += ${LDFLAGS} -+TVH_CFLAGS += ${CFLAGS} -+TVH_LDFLAGS += ${LDFLAGS} - prefix = ${prefix} - bindir = ${bindir} - mandir = ${mandir} -@@ -482,8 +482,8 @@ EOF - # Add package config - for pkg in ${PACKAGES[*]}; do - cat >>${CONFIG_MK} < +Date: Sun, 6 Nov 2016 23:08:27 -0800 +Subject: [PATCH 01/10] Fix file_Emu on musl + +Signed-off-by: Khem Raj +--- + xbmc/cores/DllLoader/exports/emu_msvcrt.cpp | 28 ++-- + xbmc/cores/DllLoader/exports/emu_msvcrt.h | 2 +- + .../DllLoader/exports/util/EmuFileWrapper.cpp | 172 +++++++++------------ + xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h | 27 ++-- + xbmc/cores/DllLoader/exports/wrapper.c | 4 +- + 5 files changed, 99 insertions(+), 134 deletions(-) + +diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp +index ab14942..a39014a 100644 +--- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp ++++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp +@@ -51,6 +51,7 @@ + #include + #include + #include ++#include + #ifdef TARGET_POSIX + #include "PlatformDefs.h" // for __stat64 + #include "XFileUtils.h" +@@ -476,13 +477,10 @@ extern "C" + EmuFileObject* o = g_emuFileWrapper.GetFileObjectByDescriptor(fd); + if (o) + { +- if(!o->used) +- return NULL; +- + int nmode = convert_fmode(mode); + if( (o->mode & nmode) != nmode) + CLog::Log(LOGWARNING, "dll_fdopen - mode 0x%x differs from fd mode 0x%x", nmode, o->mode); +- return &o->file_emu; ++ return g_emuFileWrapper.GetStreamByFileObject(o); + } + else if (!IS_STD_DESCRIPTOR(fd)) + { +@@ -545,7 +543,7 @@ extern "C" + return -1; + } + object->mode = iMode; +- return g_emuFileWrapper.GetDescriptorByStream(&object->file_emu); ++ return g_emuFileWrapper.GetDescriptorByFileObject(object); + } + delete pFile; + return -1; +@@ -1214,8 +1212,8 @@ extern "C" + { + FILE* file = NULL; + #if defined(TARGET_LINUX) && !defined(TARGET_ANDROID) +- if (strcmp(filename, MOUNTED) == 0 +- || strcmp(filename, MNTTAB) == 0) ++ if (strcmp(filename, _PATH_MOUNTED) == 0 ++ || strcmp(filename, _PATH_MNTTAB) == 0) + { + CLog::Log(LOGINFO, "%s - something opened the mount file, let's hope it knows what it's doing", __FUNCTION__); + return fopen(filename, mode); +@@ -1622,7 +1620,7 @@ extern "C" + int ret; + + ret = dll_fgetpos64(stream, &tmpPos); +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) + *pos = (fpos_t)tmpPos; + #else + pos->__pos = (off_t)tmpPos.__pos; +@@ -1635,8 +1633,9 @@ extern "C" + CFile* pFile = g_emuFileWrapper.GetFileXbmcByStream(stream); + if (pFile != NULL) + { +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) +- *pos = pFile->GetPosition(); ++#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++ uint64_t *ppos = (uint64_t *) pos; ++ *ppos = pFile->GetPosition(); + #else + pos->__pos = pFile->GetPosition(); + #endif +@@ -1657,8 +1656,9 @@ extern "C" + int fd = g_emuFileWrapper.GetDescriptorByStream(stream); + if (fd >= 0) + { +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) +- if (dll_lseeki64(fd, *pos, SEEK_SET) >= 0) ++#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++ const uint64_t *ppos = (const uint64_t *) pos; ++ if (dll_lseeki64(fd, *ppos, SEEK_SET) >= 0) + #else + if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0) + #endif +@@ -1674,7 +1674,7 @@ extern "C" + { + // it might be something else than a file, or the file is not emulated + // let the operating system handle it +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) + return fsetpos(stream, pos); + #else + return fsetpos64(stream, pos); +@@ -1690,7 +1690,7 @@ extern "C" + if (fd >= 0) + { + fpos64_t tmpPos; +-#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) + tmpPos= *pos; + #else + tmpPos.__pos = (off64_t)(pos->__pos); +diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.h b/xbmc/cores/DllLoader/exports/emu_msvcrt.h +index 3294d9a..c7c483f 100644 +--- a/xbmc/cores/DllLoader/exports/emu_msvcrt.h ++++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.h +@@ -24,7 +24,7 @@ + #define _onexit_t void* + #endif + +-#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__) + typedef off_t __off_t; + typedef int64_t off64_t; + typedef off64_t __off64_t; +diff --git a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp +index 8927d41..e9a2ab0 100644 +--- a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp ++++ b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp +@@ -52,16 +52,7 @@ constexpr bool isValidFilePtr(FILE* f) + } + CEmuFileWrapper::CEmuFileWrapper() + { +- // since we always use dlls we might just initialize it directly +- for (int i = 0; i < MAX_EMULATED_FILES; i++) +- { +- memset(&m_files[i], 0, sizeof(EmuFileObject)); +- m_files[i].used = false; +-#if defined(TARGET_WINDOWS) && (_MSC_VER >= 1900) +- m_files[i].file_emu._Placeholder = new kodi_iobuf(); +-#endif +- FileDescriptor(m_files[i].file_emu)->_file = -1; +- } ++ memset(m_files, 0, sizeof(m_files)); + } + + CEmuFileWrapper::~CEmuFileWrapper() +@@ -73,29 +64,7 @@ void CEmuFileWrapper::CleanUp() + { + CSingleLock lock(m_criticalSection); + for (int i = 0; i < MAX_EMULATED_FILES; i++) +- { +- if (m_files[i].used) +- { +- m_files[i].file_xbmc->Close(); +- delete m_files[i].file_xbmc; +- +- if (m_files[i].file_lock) +- { +- delete m_files[i].file_lock; +- m_files[i].file_lock = nullptr; +- } +-#if !defined(TARGET_WINDOWS) +- //Don't memset on Windows as it overwrites our pointer +- memset(&m_files[i], 0, sizeof(EmuFileObject)); +-#endif +- m_files[i].used = false; +- FileDescriptor(m_files[i].file_emu)->_file = -1; +- } +-#if defined(TARGET_WINDOWS) && (_MSC_VER >= 1900) +- delete static_cast(m_files[i].file_emu._Placeholder); +- m_files[i].file_emu._Placeholder = nullptr; +-#endif +- } ++ UnRegisterFileObject(&m_files[i], true); + } + + EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile) +@@ -106,13 +75,11 @@ EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile) + + for (int i = 0; i < MAX_EMULATED_FILES; i++) + { +- if (!m_files[i].used) ++ if (!m_files[i].file_xbmc) + { + // found a free location + object = &m_files[i]; +- object->used = true; + object->file_xbmc = pFile; +- FileDescriptor(object->file_emu)->_file = (i + FILE_WRAPPER_OFFSET); + object->file_lock = new CCriticalSection(); + break; + } +@@ -121,82 +88,74 @@ EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile) + return object; + } + +-void CEmuFileWrapper::UnRegisterFileObjectByDescriptor(int fd) ++void CEmuFileWrapper::UnRegisterFileObject(EmuFileObject *object, bool free_file) ++ + { +- int i = fd - FILE_WRAPPER_OFFSET; +- if (! (i >= 0 && i < MAX_EMULATED_FILES)) +- return; ++ if (object && object->file_xbmc) ++ { ++ if (object->file_xbmc && free_file) ++ { ++ object->file_xbmc->Close(); ++ delete object->file_xbmc; ++ } ++ if (object->file_lock) ++ { ++ delete object->file_lock; ++ } + +- if (!m_files[i].used) +- return; ++ memset(object, 0, sizeof(*object)); ++ } ++} + ++void CEmuFileWrapper::UnRegisterFileObjectByDescriptor(int fd) ++{ + CSingleLock lock(m_criticalSection); +- +- // we assume the emulated function alreay deleted the CFile object +- if (m_files[i].file_lock) +- { +- delete m_files[i].file_lock; +- m_files[i].file_lock = nullptr; +- } +-#if !defined(TARGET_WINDOWS) +- //Don't memset on Windows as it overwrites our pointer +- memset(&m_files[i], 0, sizeof(EmuFileObject)); +-#endif +- m_files[i].used = false; +- FileDescriptor(m_files[i].file_emu)->_file = -1; ++ UnRegisterFileObject(GetFileObjectByDescriptor(fd), false); + } + + void CEmuFileWrapper::UnRegisterFileObjectByStream(FILE* stream) + { + if (isValidFilePtr(stream)) + { +- return UnRegisterFileObjectByDescriptor(FileDescriptor(*stream)->_file); ++ CSingleLock lock(m_criticalSection); ++ UnRegisterFileObject(GetFileObjectByStream(stream), false); + } + } + + void CEmuFileWrapper::LockFileObjectByDescriptor(int fd) + { +- int i = fd - FILE_WRAPPER_OFFSET; +- if (i >= 0 && i < MAX_EMULATED_FILES) ++ EmuFileObject* object = GetFileObjectByDescriptor(fd); ++ if (object && object->file_xbmc) + { +- if (m_files[i].used) +- { +- m_files[i].file_lock->lock(); +- } ++ object->file_lock->lock(); + } + } + + bool CEmuFileWrapper::TryLockFileObjectByDescriptor(int fd) + { +- int i = fd - FILE_WRAPPER_OFFSET; +- if (i >= 0 && i < MAX_EMULATED_FILES) ++ EmuFileObject* object = GetFileObjectByDescriptor(fd); ++ if (object && object->file_xbmc) + { +- if (m_files[i].used) +- { +- return m_files[i].file_lock->try_lock(); +- } ++ return object->file_lock->try_lock(); + } + return false; + } + + void CEmuFileWrapper::UnlockFileObjectByDescriptor(int fd) + { +- int i = fd - FILE_WRAPPER_OFFSET; +- if (i >= 0 && i < MAX_EMULATED_FILES) ++ EmuFileObject* object = GetFileObjectByDescriptor(fd); ++ if (object && object->file_xbmc) + { +- if (m_files[i].used) +- { +- m_files[i].file_lock->unlock(); +- } ++ object->file_lock->unlock(); + } + } + + EmuFileObject* CEmuFileWrapper::GetFileObjectByDescriptor(int fd) + { +- int i = fd - FILE_WRAPPER_OFFSET; ++ int i = fd - 0x7000000; + if (i >= 0 && i < MAX_EMULATED_FILES) + { +- if (m_files[i].used) ++ if (m_files[i].file_xbmc) + { + return &m_files[i]; + } +@@ -204,20 +163,39 @@ EmuFileObject* CEmuFileWrapper::GetFileObjectByDescriptor(int fd) + return nullptr; + } + ++int CEmuFileWrapper::GetDescriptorByFileObject(EmuFileObject *object) ++{ ++ int i = object - m_files; ++ if (i >= 0 && i < MAX_EMULATED_FILES) ++ { ++ return 0x7000000 + i; ++ } ++ ++ return -1; ++} ++ + EmuFileObject* CEmuFileWrapper::GetFileObjectByStream(FILE* stream) + { +- if (isValidFilePtr(stream)) ++ EmuFileObject *object = (EmuFileObject*) stream; ++ if (object >= &m_files[0] || object < &m_files[MAX_EMULATED_FILES]) + { +- return GetFileObjectByDescriptor(FileDescriptor(*stream)->_file); ++ if (object->file_xbmc) ++ { ++ return object; ++ } + } ++ return NULL; ++} + +- return nullptr; ++FILE* CEmuFileWrapper::GetStreamByFileObject(EmuFileObject *object) ++{ ++ return (FILE*) object; + } + + XFILE::CFile* CEmuFileWrapper::GetFileXbmcByDescriptor(int fd) + { + auto object = GetFileObjectByDescriptor(fd); +- if (object != nullptr && object->used) ++ if (object != nullptr) + { + return object->file_xbmc; + } +@@ -228,8 +206,9 @@ XFILE::CFile* CEmuFileWrapper::GetFileXbmcByStream(FILE* stream) + { + if (isValidFilePtr(stream)) + { +- auto object = GetFileObjectByDescriptor(FileDescriptor(*stream)->_file); +- if (object != nullptr && object->used) ++ EmuFileObject* object = GetFileObjectByStream(stream); ++ if (object != NULL) ++ + { + return object->file_xbmc; + } +@@ -239,32 +218,21 @@ XFILE::CFile* CEmuFileWrapper::GetFileXbmcByStream(FILE* stream) + + int CEmuFileWrapper::GetDescriptorByStream(FILE* stream) + { +- if (isValidFilePtr(stream)) +- { +- int i = FileDescriptor(*stream)->_file - FILE_WRAPPER_OFFSET; +- if (i >= 0 && i < MAX_EMULATED_FILES) +- { +- return i + FILE_WRAPPER_OFFSET; +- } +- } +- return -1; ++ return GetDescriptorByFileObject(GetFileObjectByStream(stream)); + } + + FILE* CEmuFileWrapper::GetStreamByDescriptor(int fd) + { +- auto object = GetFileObjectByDescriptor(fd); +- if (object != nullptr && object->used) +- { +- return &object->file_emu; +- } +- return nullptr; ++ return GetStreamByFileObject(GetFileObjectByDescriptor(fd)); ++} ++ ++bool CEmuFileWrapper::DescriptorIsEmulatedFile(int fd) ++{ ++ return GetFileObjectByDescriptor(fd) != NULL; + } + + bool CEmuFileWrapper::StreamIsEmulatedFile(FILE* stream) + { +- if (isValidFilePtr(stream)) +- { +- return DescriptorIsEmulatedFile(FileDescriptor(*stream)->_file); +- } +- return false; ++ return GetFileObjectByStream(stream) != NULL; + } ++ +diff --git a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h +index 786fa85..311a5cf 100644 +--- a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h ++++ b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h +@@ -25,14 +25,14 @@ + #include "system.h" + #include "threads/CriticalSection.h" + +-#if defined(TARGET_POSIX) && !defined(TARGET_DARWIN) && !defined(TARGET_FREEBSD) && !defined(TARGET_ANDROID) && !defined(__UCLIBC__) +-#define _file _fileno +-#elif defined(__UCLIBC__) +-#define _file __filedes +-#endif ++//#if defined(TARGET_POSIX) && !defined(TARGET_DARWIN) && !defined(TARGET_FREEBSD) && !defined(TARGET_ANDROID) && !defined(__UCLIBC__) ++//#define _file _fileno ++//#elif defined(__UCLIBC__) ++//#define _file __filedes ++//#endif + + #define MAX_EMULATED_FILES 50 +-#define FILE_WRAPPER_OFFSET 0x00000200 ++//#define FILE_WRAPPER_OFFSET 0x00000200 + + namespace XFILE + { +@@ -47,12 +47,9 @@ struct kodi_iobuf { + + typedef struct stEmuFileObject + { +- FILE file_emu; + XFILE::CFile* file_xbmc; + CCriticalSection *file_lock; + int mode; +- //Stick this last to avoid 3-7 bytes of padding +- bool used; + } EmuFileObject; + + class CEmuFileWrapper +@@ -67,22 +64,22 @@ public: + void CleanUp(); + + EmuFileObject* RegisterFileObject(XFILE::CFile* pFile); ++ void UnRegisterFileObject(EmuFileObject*, bool free_file); + void UnRegisterFileObjectByDescriptor(int fd); + void UnRegisterFileObjectByStream(FILE* stream); + void LockFileObjectByDescriptor(int fd); + bool TryLockFileObjectByDescriptor(int fd); + void UnlockFileObjectByDescriptor(int fd); + EmuFileObject* GetFileObjectByDescriptor(int fd); ++ int GetDescriptorByFileObject(EmuFileObject*); + EmuFileObject* GetFileObjectByStream(FILE* stream); ++ FILE* GetStreamByFileObject(EmuFileObject*); + XFILE::CFile* GetFileXbmcByDescriptor(int fd); + XFILE::CFile* GetFileXbmcByStream(FILE* stream); +- static int GetDescriptorByStream(FILE* stream); ++ int GetDescriptorByStream(FILE* stream); + FILE* GetStreamByDescriptor(int fd); +- static constexpr bool DescriptorIsEmulatedFile(int fd) +- { +- return fd >= FILE_WRAPPER_OFFSET && fd < FILE_WRAPPER_OFFSET + MAX_EMULATED_FILES; +- } +- static bool StreamIsEmulatedFile(FILE* stream); ++ bool DescriptorIsEmulatedFile(int fd); ++ bool StreamIsEmulatedFile(FILE* stream); + private: + EmuFileObject m_files[MAX_EMULATED_FILES]; + CCriticalSection m_criticalSection; +diff --git a/xbmc/cores/DllLoader/exports/wrapper.c b/xbmc/cores/DllLoader/exports/wrapper.c +index e363662..07825f3 100644 +--- a/xbmc/cores/DllLoader/exports/wrapper.c ++++ b/xbmc/cores/DllLoader/exports/wrapper.c +@@ -39,13 +39,13 @@ + #endif + #include + +-#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) ++#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__) + typedef off_t __off_t; + typedef int64_t off64_t; + typedef off64_t __off64_t; + typedef fpos_t fpos64_t; + #define stat64 stat +-#if defined(TARGET_DARWIN) || defined(TARGET_ANDROID) ++#if defined(TARGET_DARWIN) || defined(TARGET_ANDROID) || !defined(__GLIBC__) + #define _G_va_list va_list + #endif + #endif +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch new file mode 100644 index 00000000000..12a6c06e82d --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch @@ -0,0 +1,32 @@ +From 21524598110e7a55113205dda4bc1a6d5987111c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 9 May 2017 06:41:33 +0000 +Subject: [PATCH] change order of detecting libegl and libgles2 + +This actually helps building it on rpi/userland +where libEGL depends on few functions from libGLESv2 +see +https://www.raspberrypi.org/forums/viewtopic.php?t=7090 + +Signed-off-by: Khem Raj +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index b9e4240..1ca0297 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -951,8 +951,8 @@ if test "$use_gles" = "yes"; then + AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.) + LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm -lmmal -lmmal_core -lmmal_util -lvcsm" + else +- AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library)) ++ AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library)) + fi + fi + else +-- +1.9.1 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch new file mode 100644 index 00000000000..463a5c4f81b --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch @@ -0,0 +1,46 @@ +From ad1977a358319093b305df6d84be6db676ef1e4a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 6 Nov 2016 22:35:16 -0800 +Subject: [PATCH 02/10] Remove FILEWRAP + +Signed-off-by: Khem Raj +--- + xbmc/utils/posix/PosixInterfaceForCLog.cpp | 6 +----- + xbmc/utils/posix/PosixInterfaceForCLog.h | 4 +--- + 2 files changed, 2 insertions(+), 8 deletions(-) + +Index: git/xbmc/utils/posix/PosixInterfaceForCLog.cpp +=================================================================== +--- git.orig/xbmc/utils/posix/PosixInterfaceForCLog.cpp ++++ git/xbmc/utils/posix/PosixInterfaceForCLog.cpp +@@ -29,10 +29,6 @@ + #include "platform/android/activity/XBMCApp.h" + #endif // TARGET_ANDROID + +-struct FILEWRAP : public FILE +-{}; +- +- + CPosixInterfaceForCLog::CPosixInterfaceForCLog() : + m_file(NULL) + { } +@@ -52,7 +48,7 @@ bool CPosixInterfaceForCLog::OpenLogFile + (void)remove(backupOldLogToFilename.c_str()); // if it's failed, try to continue + (void)rename(logFilename.c_str(), backupOldLogToFilename.c_str()); // if it's failed, try to continue + +- m_file = (FILEWRAP*)fopen(logFilename.c_str(), "wb"); ++ m_file = fopen(logFilename.c_str(), "wb"); + if (!m_file) + return false; // error, can't open log file + +Index: git/xbmc/utils/posix/PosixInterfaceForCLog.h +=================================================================== +--- git.orig/xbmc/utils/posix/PosixInterfaceForCLog.h ++++ git/xbmc/utils/posix/PosixInterfaceForCLog.h +@@ -34,5 +34,5 @@ public: + void PrintDebugString(const std::string& debugString); + static void GetCurrentLocalTime(int& hour, int& minute, int& second, double& millisecond); + private: +- FILEWRAP* m_file; ++ FILE* m_file; + }; diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch new file mode 100644 index 00000000000..49217a4f7bc --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch @@ -0,0 +1,25 @@ +From a91a3ba229dc5903935f7dd98dd03bbb4fe5ac1f Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Sat, 6 Feb 2016 15:43:01 +0100 +Subject: [PATCH 03/10] configure: don't try to run stuff to find tinyxml + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 34fe643..3132dc1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1043,7 +1043,7 @@ fi + AC_LANG_PUSH([C++]) + PKG_CHECK_MODULES([TINYXML], [tinyxml >= 2.6.2], + [INCLUDES="$INCLUDES $TINYXML_CFLAGS"; LIBS="$LIBS $TINYXML_LIBS"], +- [AC_RUN_IFELSE( ++ [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([[ + #include + #include +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch new file mode 100644 index 00000000000..dc37439353b --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch @@ -0,0 +1,163 @@ +From 49046c1685465a5486fe9e1c04b99c585aab6862 Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Wed, 2 Nov 2016 11:28:34 -0700 +Subject: [PATCH 04/10] handle SIGTERM + +0. CApplication::Stop cant be trusted. (deadlocks crashes and boo) + +so, when shutdown/reboot is requested: + +1. save an exit code (for CEC...) +2. call CPowerManager::{Reboot,PowerDown} +3. ... then systemd sends TERM and waits xx seconds before sending KILL +4. CApplication::Stop has xx seconds to save guisettings.xml and boo +5. CEC thread has xx seconds to switch off after it received OnQuit +6. addons / pvrmanager / cec / everything else.. are free to deadlock / crash now, we dont care +7. KILL + +Signed-off-by: Stefan Saraev +Signed-off-by: Khem Raj +--- + xbmc/Application.cpp | 17 ++++++++++++----- + xbmc/Application.h | 1 + + xbmc/XBApplicationEx.cpp | 1 + + xbmc/XBApplicationEx.h | 1 + + xbmc/platform/posix/main.cpp | 15 +++++++++++++++ + 5 files changed, 30 insertions(+), 5 deletions(-) + +diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp +index 100a2f2..fda892d 100644 +--- a/xbmc/Application.cpp ++++ b/xbmc/Application.cpp +@@ -2426,12 +2426,12 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg) + switch (pMsg->dwMessage) + { + case TMSG_POWERDOWN: +- Stop(EXITCODE_POWERDOWN); ++ SetExitCode(EXITCODE_POWERDOWN); + g_powerManager.Powerdown(); + break; + + case TMSG_QUIT: +- Stop(EXITCODE_QUIT); ++ SetExitCode(EXITCODE_QUIT); + break; + + case TMSG_SHUTDOWN: +@@ -2452,12 +2452,13 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg) + + case TMSG_RESTART: + case TMSG_RESET: +- Stop(EXITCODE_REBOOT); ++ SetExitCode(EXITCODE_REBOOT); + g_powerManager.Reboot(); + break; + + case TMSG_RESTARTAPP: + #if defined(TARGET_WINDOWS) || defined(TARGET_LINUX) ++ SetExitCode(EXITCODE_RESTARTAPP); + Stop(EXITCODE_RESTARTAPP); + #endif + break; +@@ -2881,6 +2882,13 @@ bool CApplication::Cleanup() + } + } + ++void CApplication::SetExitCode(int exitCode) ++{ ++ // save it for CEC ++ m_ExitCode = exitCode; ++ m_ExitCodeSet = true; ++} ++ + void CApplication::Stop(int exitCode) + { + try +@@ -2888,7 +2896,7 @@ void CApplication::Stop(int exitCode) + m_frameMoveGuard.unlock(); + + CVariant vExitCode(CVariant::VariantTypeObject); +- vExitCode["exitcode"] = exitCode; ++ vExitCode["exitcode"] = m_ExitCode; + CAnnouncementManager::GetInstance().Announce(System, "xbmc", "OnQuit", vExitCode); + + // Abort any active screensaver +@@ -2922,7 +2930,6 @@ void CApplication::Stop(int exitCode) + + m_bStop = true; + m_AppFocused = false; +- m_ExitCode = exitCode; + CLog::Log(LOGNOTICE, "stop all"); + + // cancel any jobs from the jobmanager +diff --git a/xbmc/Application.h b/xbmc/Application.h +index a9d9bf5..e536deb 100644 +--- a/xbmc/Application.h ++++ b/xbmc/Application.h +@@ -159,6 +159,7 @@ public: + void StopPVRManager(); + void ReinitPVRManager(); + bool IsCurrentThread() const; ++ void SetExitCode(int exitCode); + void Stop(int exitCode); + void RestartApp(); + void UnloadSkin(bool forReload = false); +diff --git a/xbmc/XBApplicationEx.cpp b/xbmc/XBApplicationEx.cpp +index 035aed2..34102f5 100644 +--- a/xbmc/XBApplicationEx.cpp ++++ b/xbmc/XBApplicationEx.cpp +@@ -46,6 +46,7 @@ CXBApplicationEx::CXBApplicationEx() + m_bStop = false; + m_AppFocused = true; + m_ExitCode = EXITCODE_QUIT; ++ m_ExitCodeSet = false; + m_renderGUI = false; + } + +diff --git a/xbmc/XBApplicationEx.h b/xbmc/XBApplicationEx.h +index 9bc14fa..f696b89 100644 +--- a/xbmc/XBApplicationEx.h ++++ b/xbmc/XBApplicationEx.h +@@ -42,6 +42,7 @@ public: + // Variables for timing + bool m_bStop; + int m_ExitCode; ++ bool m_ExitCodeSet; + bool m_AppFocused; + bool m_renderGUI; + +diff --git a/xbmc/platform/posix/main.cpp b/xbmc/platform/posix/main.cpp +index a8b64e5..3d80032 100644 +--- a/xbmc/platform/posix/main.cpp ++++ b/xbmc/platform/posix/main.cpp +@@ -41,12 +41,27 @@ + #include "input/linux/LIRC.h" + #endif + #include "platform/XbmcContext.h" ++#include "Application.h" ++ ++void xbmc_term_handler(int signum) ++{ ++ CLog::Log(LOGINFO, "Received SIGTERM..."); ++ if (!g_application.m_ExitCodeSet) ++ g_application.SetExitCode(EXITCODE_RESTARTAPP); ++ g_application.Stop(EXITCODE_RESTARTAPP); ++} + + #ifdef __cplusplus + extern "C" + #endif + int main(int argc, char* argv[]) + { ++ // SIGTERM handler ++ struct sigaction action; ++ memset(&action, 0, sizeof(struct sigaction)); ++ action.sa_handler = xbmc_term_handler; ++ sigaction(SIGTERM, &action, NULL); ++ + // set up some xbmc specific relationships + XBMC::Context context; + +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch new file mode 100644 index 00000000000..ee10c40ac14 --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch @@ -0,0 +1,26 @@ +From 4d1368d20f04216aec9551d9845b305f96a21015 Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Mon, 1 Sep 2014 03:16:37 +0200 +Subject: [PATCH 05/10] add support to read frequency output if using intel's + pstate driver + +--- + xbmc/utils/CPUInfo.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/xbmc/utils/CPUInfo.cpp b/xbmc/utils/CPUInfo.cpp +index 5e2ebbd..fd04d5a 100644 +--- a/xbmc/utils/CPUInfo.cpp ++++ b/xbmc/utils/CPUInfo.cpp +@@ -274,6 +274,8 @@ CCPUInfo::CCPUInfo(void) + m_fProcTemperature = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); // On Raspberry PIs + + m_fCPUFreq = fopen ("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r"); ++ if (m_fCPUFreq == NULL) ++ m_fCPUFreq = fopen ("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq", "r"); + if (!m_fCPUFreq) + { + m_cpuInfoForFreq = true; +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch new file mode 100644 index 00000000000..08dfac32409 --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch @@ -0,0 +1,35 @@ +From 3d3ec391038c6ee73897a7fab753b11b589de1ed Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 2 Nov 2016 12:39:20 -0700 +Subject: [PATCH 06/10] Disable DVD support + +Signed-off-by: Khem Raj +--- + Makefile.in | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 0d70e9b..050c7ca 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -10,8 +10,7 @@ EC_DIRS= \ + tools/EventClients + + DVDPCODECS_DIRS= \ +- lib \ +- lib/libdvd ++ lib + + VideoPlayer_ARCHIVES=xbmc/cores/VideoPlayer/VideoPlayer.a \ + xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecs.a \ +@@ -347,7 +346,6 @@ libaddon: exports + $(MAKE) -C lib/addons/library.xbmc.pvr + $(MAKE) -C lib/addons/library.kodi.inputstream + dvdpcodecs: dllloader +- $(MAKE) -C lib/libdvd + + dvdpextcodecs: + +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch new file mode 100644 index 00000000000..8fd7ece0549 --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch @@ -0,0 +1,30 @@ +From d989cbdb7686c3b95dc749967f89b93e47f955a6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 3 Nov 2016 13:10:00 -0700 +Subject: [PATCH 07/10] Always compile libcpluff as PIC + +Fixes errors e.g. + +ld: lib/cpluff/libcpluff/.libs/libcpluff.a(pcontrol.o): relocation R_X86_64_PC32 against symbol `cp_stop_plugins' can not be used when making a shared object; recompile with -fPIC + +Signed-off-by: Khem Raj +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 3132dc1..ab4eea3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2385,7 +2385,7 @@ XB_CONFIG_MODULE([lib/cpluff], [ + --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \ + --host=$host_alias \ + --build=$build_alias \ +- --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS="" ++ --target=$target_alias --with-pic=yes CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS="" + #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress" + ], [0]) + +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch new file mode 100644 index 00000000000..9390144cebd --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch @@ -0,0 +1,43 @@ +From 51cd8d5f084013360b29fe497193288ebde2f4f9 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 29 Jul 2015 23:13:33 +0200 +Subject: [PATCH 08/10] kodi-config.cmake: use CMAKE_FIND_ROOT_PATH to fix + cross-compilation + +When cross-compiling, the location at build time of the libraries is +not the same as the one at run-time. The CMAKE_FIND_ROOT_PATH variable +is here to handle this difference, so use it in kodi-config.cmake. + +Signed-off-by: Thomas Petazzoni +--- + project/cmake/KodiConfig.cmake.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/project/cmake/KodiConfig.cmake.in b/project/cmake/KodiConfig.cmake.in +index c02a680..9d6a566 100644 +--- a/project/cmake/KodiConfig.cmake.in ++++ b/project/cmake/KodiConfig.cmake.in +@@ -7,10 +7,10 @@ if(NOT @APP_NAME_UC@_PREFIX) + set(@APP_NAME_UC@_PREFIX @APP_PREFIX@) + endif() + if(NOT @APP_NAME_UC@_INCLUDE_DIR) +- set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@) ++ set(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@) + endif() + if(NOT @APP_NAME_UC@_LIB_DIR) +- set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@) ++ set(@APP_NAME_UC@_LIB_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@) + endif() + if(NOT @APP_NAME_UC@_DATA_DIR) + set(@APP_NAME_UC@_DATA_DIR @APP_DATA_DIR@) +@@ -19,6 +19,7 @@ if(NOT WIN32) + set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@") + endif() + list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake) ++list(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@ ${CMAKE_FIND_ROOT_PATH}/@APP_DATA_DIR@/cmake) + + string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@") + add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON) +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch new file mode 100644 index 00000000000..f3e739aedbb --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch @@ -0,0 +1,180 @@ +From 8b2bad58585af0f829fb06e19c9bd2b6caf30808 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 6 Nov 2016 11:54:41 -0800 +Subject: [PATCH 09/10] build: Add support for musl triplets + +Signed-off-by: Khem Raj +--- + configure.ac | 12 ++++++------ + m4/xbmc_arch.m4 | 22 +++++++++++----------- + tools/depends/configure.ac | 12 ++++++------ + 3 files changed, 23 insertions(+), 23 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ab4eea3..925466a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -526,7 +526,7 @@ case $host in + use_x11=no + build_shared_lib=yes + ;; +- i*86*-linux-gnu*|i*86*-*-linux-uclibc*) ++ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*) + target_platform=target_linux + CORE_SYSTEM_NAME=linux + ARCH="i486-linux" +@@ -549,7 +549,7 @@ case $host in + fi + fi + ;; +- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*) ++ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*) + target_platform=target_linux + CORE_SYSTEM_NAME=linux + ARCH="x86_64-linux" +@@ -601,17 +601,17 @@ case $host in + DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*}) + AC_SUBST([DEPENDS_ROOT_FOR_XCODE]) + ;; +- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*) ++ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*) + target_platform=target_linux + CORE_SYSTEM_NAME=linux + ARCH="powerpc-linux" + ;; +- powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*) ++ powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*|powerpc64*-*-linux-musl*) + target_platform=target_linux + CORE_SYSTEM_NAME=linux + ARCH="powerpc64-linux" + ;; +- arm*-*-linux-gnu*|arm*-*-linux-uclibc*) ++ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*) + target_platform=target_linux + CORE_SYSTEM_NAME=linux + ARCH="arm" +@@ -621,7 +621,7 @@ case $host in + use_gl=no + USE_STATIC_FFMPEG=1 + ;; +- aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*) ++ aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*|aarch64*-*-linux-musl*) + target_platform=target_linux + ARCH="aarch64" + use_arch="aarch64" +diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4 +index d28f263..ff5dc20 100644 +--- a/m4/xbmc_arch.m4 ++++ b/m4/xbmc_arch.m4 +@@ -2,10 +2,10 @@ AC_DEFUN([XBMC_SETUP_ARCH_DEFINES],[ + + # build detection and setup - this is the native arch + case $build in +- i*86*-linux-gnu*|i*86*-*-linux-uclibc*) ++ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*) + AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; +- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*) ++ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*) + AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; + i386-*-freebsd*) +@@ -17,13 +17,13 @@ case $build in + *86*-apple-darwin*) + AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX") + ;; +- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*) ++ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*) + AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC") + ;; +- powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*) ++ powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*|powerpc64-*-linux-musl*) + AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64") + ;; +- arm*-*-linux-gnu*|arm*-*-linux-uclibc*) ++ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*) + AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; + *) +@@ -33,10 +33,10 @@ esac + + # host detection and setup - this is the target arch + case $host in +- i*86*-linux-gnu*|i*86*-*-linux-uclibc*) ++ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*) + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; +- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*) ++ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*) + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; + i386-*-freebsd*) +@@ -54,16 +54,16 @@ case $host in + powerpc-apple-darwin*) + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX") + ;; +- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*) ++ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*) + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC") + ;; +- powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*) ++ powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*|powerpc64*-*-linux-musl*) + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64") + ;; +- arm*-*-linux-gnu*|arm*-*-linux-uclibc*|aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*) ++ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*|aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*|aarch64*-*-linux-musl*) + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; +- mips*-*-linux-gnu*|mips*-*-linux-uclibc*) ++ mips*-*-linux-gnu*|mips*-*-linux-uclibc*|mips*-*-linux-musl*) + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; + *-*linux-android*) +diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac +index f438e5d..409f4d7 100644 +--- a/tools/depends/configure.ac ++++ b/tools/depends/configure.ac +@@ -120,13 +120,13 @@ platform_cc=gcc + platform_cxx=g++ + + case $build in +- arm*-*-linux-gnu*|arm*-*-linux-uclibc*) ++ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*) + build_os="linux" + ;; +- *i686*-linux-gnu*|i*86*-*-linux-uclibc*) ++ *i686*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*) + build_os="linux" + ;; +- x86_64*-linux-gnu*|x86_64-*-linux-uclibc*) ++ x86_64*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*) + build_os="linux" + ;; + *darwin*) +@@ -186,7 +186,7 @@ case $host in + #android builds are always cross + cross_compiling="yes" + ;; +- arm*-*-linux-gnu*|arm*-*-linux-uclibc*) ++ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*) + if test "$use_platform" = "auto"; then + if test "x$use_cpu" = "xauto"; then + use_cpu=$host_cpu +@@ -210,12 +210,12 @@ case $host in + platform_os="linux" + fi + ;; +- *i686*-linux-gnu*|i*86*-*-linux-uclibc*) ++ *i686*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*) + use_cpu=$host_cpu + use_toolchain="${use_toolchain:-/usr}" + platform_os="linux" + ;; +- x86_64*-linux-gnu*|x86_64-*-linux-uclibc*) ++ x86_64*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*) + use_cpu=$host_cpu + use_toolchain="${use_toolchain:-/usr}" + platform_cflags="-fPIC -DPIC" +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch new file mode 100644 index 00000000000..e34a5b71e44 --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch @@ -0,0 +1,40 @@ +From 55233024648b5673dbf223586968e71cc4c70711 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 16 Nov 2016 18:49:36 -0800 +Subject: [PATCH 10/10] RssReader: Fix compiler warning comparing pointer to + zero + +Clang finds this warning +RssReader.cpp:272:19: error: ordered comparison between pointer and zero ('TiXmlElement *' and 'int') + while (itemNode > 0) + ~~~~~~~~ ^ ~ +RssReader.cpp:276:22: error: ordered comparison between pointer and zero ('TiXmlNode *' and 'int') + while (childNode > 0) + ~~~~~~~~~ ^ ~ + +Signed-off-by: Khem Raj +--- + xbmc/utils/RssReader.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/utils/RssReader.cpp b/xbmc/utils/RssReader.cpp +index 9186f56..2494dc8 100644 +--- a/xbmc/utils/RssReader.cpp ++++ b/xbmc/utils/RssReader.cpp +@@ -269,11 +269,11 @@ void CRssReader::GetNewsItems(TiXmlElement* channelXmlNode, int iFeed) + if (m_tagSet.empty()) + AddTag("title"); + +- while (itemNode > 0) ++ while (itemNode != NULL) + { + TiXmlNode* childNode = itemNode->FirstChild(); + mTagElements.clear(); +- while (childNode > 0) ++ while (childNode != NULL) + { + std::string strName = childNode->ValueStr(); + +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch new file mode 100644 index 00000000000..7ee44f1c4e2 --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch @@ -0,0 +1,54 @@ +From 19a1ffc1450bd3ecfb7419d74c733b2e16bf47f3 Mon Sep 17 00:00:00 2001 +From: Balint Reczey +Date: Wed, 26 Aug 2015 08:14:41 +0200 +Subject: [PATCH 11/12] Let configure pass on unknown architectures setting + sane defaults + +This helps porting Kodi to new architectures while emitting warnings about +entering uncharted territory. +--- + configure.ac | 3 ++- + m4/xbmc_arch.m4 | 6 ++++-- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 925466a..8369615 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -658,7 +658,8 @@ case $host in + USE_STATIC_FFMPEG=1 + ;; + *) +- AC_MSG_ERROR(unsupported host ($host)) ++ ARCH=$host_cpu"-"$host_os ++ AC_MSG_WARN([unsupported host ($host), guessing ARCH as $ARCH.]) + esac + AC_SUBST([ARCH]) + +diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4 +index ff5dc20..dfb45fd 100644 +--- a/m4/xbmc_arch.m4 ++++ b/m4/xbmc_arch.m4 +@@ -27,7 +27,8 @@ case $build in + AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + ;; + *) +- AC_MSG_ERROR(unsupported native build platform: $build) ++ AC_MSG_WARN([unsupported native build platform: $build]) ++ AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + esac + + +@@ -70,7 +71,8 @@ case $host in + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID") + ;; + *) +- AC_MSG_ERROR(unsupported build target: $host) ++ AC_MSG_WARN([unsupported native build platform: $build]) ++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") + esac + + if test "$target_platform" = "target_android" ; then +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch new file mode 100644 index 00000000000..8d70b3f8f3d --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch @@ -0,0 +1,87 @@ +From 9e88aa086083b80c05b2bf057b92682186c4e6dc Mon Sep 17 00:00:00 2001 +From: Balint Reczey +Date: Thu, 6 Oct 2016 18:12:18 +0200 +Subject: [PATCH 12/12] Revert "[droid] fix builds with AML disabled" + +This reverts commit 4733383b8f1c1dd0b95e9e5358425d8a0b7ba8fc. +--- + xbmc/utils/SystemInfo.cpp | 4 ---- + xbmc/windowing/egl/EGLWrapper.cpp | 16 ++++++---------- + 2 files changed, 6 insertions(+), 14 deletions(-) + +diff --git a/xbmc/utils/SystemInfo.cpp b/xbmc/utils/SystemInfo.cpp +index fcc6733..52e7fa3 100644 +--- a/xbmc/utils/SystemInfo.cpp ++++ b/xbmc/utils/SystemInfo.cpp +@@ -57,10 +57,8 @@ + #include "utils/XMLUtils.h" + #if defined(TARGET_ANDROID) + #include "platform/android/jni/Build.h" +-#if defined(HAS_LIBAMCODEC) + #include "utils/AMLUtils.h" + #endif +-#endif + + /* Platform identification */ + #if defined(TARGET_DARWIN) +@@ -873,11 +871,9 @@ bool CSysInfo::IsAeroDisabled() + bool CSysInfo::HasHW3DInterlaced() + { + #if defined(TARGET_ANDROID) +-#if defined(HAS_LIBAMCODEC) + if (aml_hw3d_present()) + return true; + #endif +-#endif + return false; + } + +diff --git a/xbmc/windowing/egl/EGLWrapper.cpp b/xbmc/windowing/egl/EGLWrapper.cpp +index 30f5757..583d43a 100644 +--- a/xbmc/windowing/egl/EGLWrapper.cpp ++++ b/xbmc/windowing/egl/EGLWrapper.cpp +@@ -24,19 +24,15 @@ + #include + #if defined(TARGET_ANDROID) + #include "EGLNativeTypeAndroid.h" +-#if defined(HAS_LIBAMCODEC) + #include "EGLNativeTypeAmlAndroid.h" + #endif +-#endif + #if defined(TARGET_RASPBERRY_PI) + #include "EGLNativeTypeRaspberryPI.h" + #endif + #if defined(HAS_IMXVPU) + #include "EGLNativeTypeIMX.h" + #endif +-#if defined(TARGET_LINUX) && defined(HAS_LIBAMCODEC) + #include "EGLNativeTypeAmlogic.h" +-#endif + #include "EGLWrapper.h" + + #define CheckError() m_result = eglGetError(); if(m_result != EGL_SUCCESS) CLog::Log(LOGERROR, "EGL error in %s: %x",__FUNCTION__, m_result); +@@ -91,15 +87,15 @@ bool CEGLWrapper::Initialize(const std::string &implementation) + // Try to create each backend in sequence and go with the first one + // that we know will work + if ( +-#if defined(TARGET_ANDROID) && defined(HAS_LIBAMCODEC) +- (nativeGuess = CreateEGLNativeType(implementation)) +-#elif defined(TARGET_ANDROID) +- (nativeGuess = CreateEGLNativeType(implementation)) +-#elif defined(TARGET_RASPBERRY_PI) ++#if defined(TARGET_ANDROID) ++ (nativeGuess = CreateEGLNativeType(implementation)) || ++ (nativeGuess = CreateEGLNativeType(implementation)) || ++#endif ++#if defined(TARGET_RASPBERRY_PI) + (nativeGuess = CreateEGLNativeType(implementation)) + #elif defined(HAS_IMXVPU) + (nativeGuess = CreateEGLNativeType(implementation)) +-#elif defined(TARGET_LINUX) && defined(HAS_LIBAMCODEC) ++#else + (nativeGuess = CreateEGLNativeType(implementation)) + #endif + ) +-- +2.10.2 + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch new file mode 100644 index 00000000000..c9c9066449d --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch @@ -0,0 +1,96 @@ +From 5fa10ff6b1b60abee172296d9c1dec8dfc10615c Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Sun, 7 May 2017 17:30:47 +0300 +Subject: [PATCH] FTPParse.cpp: use std::string + +Fixes build with newer gcc versions. + +Taken from [1] + +Upstream-Status: Backport [2] + +[1] https://git.busybox.net/buildroot/plain/package/kodi/0003-FTPParse.cpp-use-std-string.patch?id=e2f03a6bde19766a1ac047c5ccfb049b5c4f61ca +[2] https://github.com/xbmc/xbmc/commit/5fa10ff6b1b60abee172296d9c1dec8dfc10615c + +Signed-off-by: Bernd Kuhls +--- + xbmc/filesystem/FTPParse.cpp | 44 ++++++++++++++++++++++---------------------- + 1 file changed, 22 insertions(+), 22 deletions(-) + +diff --git a/xbmc/filesystem/FTPParse.cpp b/xbmc/filesystem/FTPParse.cpp +index cfcc7c64ed..b0f676ae1a 100644 +--- a/xbmc/filesystem/FTPParse.cpp ++++ b/xbmc/filesystem/FTPParse.cpp +@@ -34,7 +34,7 @@ CFTPParse::CFTPParse() + m_time = 0; + } + +-string CFTPParse::getName() ++std::string CFTPParse::getName() + { + return m_name; + } +@@ -59,16 +59,16 @@ time_t CFTPParse::getTime() + return m_time; + } + +-void CFTPParse::setTime(string str) ++void CFTPParse::setTime(std::string str) + { + /* Variables used to capture patterns via the regexes */ +- string month; +- string day; +- string year; +- string hour; +- string minute; +- string second; +- string am_or_pm; ++ std::string month; ++ std::string day; ++ std::string year; ++ std::string hour; ++ std::string minute; ++ std::string second; ++ std::string am_or_pm; + + /* time struct used to set the time_t variable */ + struct tm time_struct = {}; +@@ -338,21 +338,21 @@ int CFTPParse::getDayOfWeek(int month, int date, int year) + return day_of_week; + } + +-int CFTPParse::FTPParse(string str) ++int CFTPParse::FTPParse(std::string str) + { + /* Various variable to capture patterns via the regexes */ +- string permissions; +- string link_count; +- string owner; +- string group; +- string size; +- string date; +- string name; +- string type; +- string stuff; +- string facts; +- string version; +- string file_id; ++ std::string permissions; ++ std::string link_count; ++ std::string owner; ++ std::string group; ++ std::string size; ++ std::string date; ++ std::string name; ++ std::string type; ++ std::string stuff; ++ std::string facts; ++ std::string version; ++ std::string file_id; + + /* Regex for standard Unix listing formats */ + pcrecpp::RE unix_re("^([-bcdlps])" // type +-- +2.11.0 + + diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service b/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service new file mode 100644 index 00000000000..29d0394e42a --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service @@ -0,0 +1,14 @@ +[Unit] +Description=Kodi media thing + +[Service] +User=root +Type=simple +SuccessExitStatus=0 1 +IOSchedulingClass=realtime +IOSchedulingPriority=0 + +ExecStart=/usr/bin/xinit /usr/bin/kodi-standalone -- /usr/bin/X :0 + +[Install] +WantedBy=basic.target diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb b/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb new file mode 100644 index 00000000000..5158f05b66d --- /dev/null +++ b/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb @@ -0,0 +1,212 @@ +SUMMARY = "Kodi Media Center" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=930e2a5f63425d8dd72dbd7391c43c46" + +FILESPATH =. "${FILE_DIRNAME}/kodi-17:" + +DEPENDS = " \ + cmake-native \ + curl-native \ + gperf-native \ + jsonschemabuilder-native \ + nasm-native \ + swig-native \ + unzip-native \ + yasm-native \ + zip-native \ + avahi \ + boost \ + bzip2 \ + crossguid \ + curl \ + dcadec \ + enca \ + expat \ + faad2 \ + ffmpeg \ + fontconfig \ + fribidi \ + giflib \ + jasper \ + libass \ + libcdio \ + libcec \ + libmad \ + libmicrohttpd \ + libmms \ + libmms \ + libmodplug \ + libpcre \ + libplist \ + libsamplerate0 \ + libsdl-image \ + libsdl-mixer \ + libsquish \ + libssh \ + libtinyxml \ + libusb1 \ + libxslt \ + lzo \ + mpeg2dec \ + python \ + samba \ + sqlite3 \ + taglib \ + virtual/egl \ + virtual/libsdl \ + wavpack \ + yajl \ + zlib \ + ${@enable_glew(bb, d)} \ + " + +PROVIDES = "xbmc" + +SRCREV = "6abeebd5ba371547c8f04272296433f5e4e28e86" +PV = "17.3+gitr${SRCPV}" +ADDONSPV = "17.1" +SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Krypton \ + https://repo.voidlinux.eu/distfiles/${BPN}-${ADDONSPV}-generated-addons.tar.xz;name=addons;unpack=0 \ + file://0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch \ + file://0004-handle-SIGTERM.patch \ + file://0005-add-support-to-read-frequency-output-if-using-intel-.patch \ + file://0006-Disable-DVD-support.patch \ + file://0007-Always-compile-libcpluff-as-PIC.patch \ + file://0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch \ + file://0009-build-Add-support-for-musl-triplets.patch \ + file://0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch \ + file://0011-Let-configure-pass-on-unknown-architectures-setting-.patch \ + file://0012-Revert-droid-fix-builds-with-AML-disabled.patch \ + file://0001-change-order-of-detecting-libegl-and-libgles2.patch \ + file://0013-FTPParse.cpp-use-std-string.patch \ +" + +SRC_URI_append_libc-musl = " \ + file://0001-Fix-file_Emu-on-musl.patch \ + file://0002-Remove-FILEWRAP.patch \ +" +SRC_URI[addons.md5sum] = "719614fa764011a18665d08af5c8c92f" +SRC_URI[addons.sha256sum] = "350da57408c27473eaf40e7f544bc94841bf101dc4346085260c5c4af0adac97" + +inherit autotools-brokensep gettext pythonnative distro_features_check + +REQUIRED_DISTRO_FEATURES += "opengl" + +S = "${WORKDIR}/git" + +# breaks compilation +ASNEEDED = "" + +ACCEL ?= "" +ACCEL_x86 = "vaapi vdpau" +ACCEL_x86-64 = "vaapi vdpau" + +PACKAGECONFIG ??= "${ACCEL} opengl" +PACKAGECONFIG_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', ' openglesv2', d)}" + +PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles," +PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl,virtual/egl" +PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" +PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" +PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5" +PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxinerama libxmu libxrandr libxtst" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +PACKAGECONFIG[lcms] = "--enable-lcms2,--disable-lcms2,lcms" + +EXTRA_OECONF = " \ + --disable-debug \ + --disable-libcap \ + --disable-ccache \ + --disable-mid \ + --enable-libusb \ + --enable-alsa \ + --enable-airplay \ + --disable-optical-drive \ + --with-ffmpeg=shared \ + --enable-texturepacker=no \ + ac_cv_path_JAVA_EXE=/bin/true \ +" + +FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O3 -ffast-math" +FULL_OPTIMIZATION_armv7ve = "-fexpensive-optimizations -fomit-frame-pointer -O3 -ffast-math" +BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" + +LDFLAGS_append_mips = " -latomic" +LDFLAGS_append_mipsel = " -latomic" +LDFLAGS_append_powerpc = " -latomic" +LDFLAGS_append_arm = " -latomic" + +EXTRA_OECONF_append = " LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool" + +# for python modules +export HOST_SYS +export BUILD_SYS +export STAGING_LIBDIR +export STAGING_INCDIR +export PYTHON_DIR + +def enable_glew(bb, d): + if bb.utils.contains('PACKAGECONFIG', 'x11', True, False, d) and bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d): + return "glew" + return "" + +do_configure() { + tar xf ${WORKDIR}/${BPN}-${ADDONSPV}-generated-addons.tar.xz -C ${S}/ + + ( for i in $(find ${S} -name configure.ac -or -name configure.in|grep -v ".pc") ; do + cd $(dirname $i) && gnu-configize --force || true + done ) + ( for f in ${S}/xbmc/interfaces/python/generated/*.cpp; do + touch `echo $f|sed -e 's/.cpp$/.xml/g'` + done ) + + BOOTSTRAP_STANDALONE=1 make -f bootstrap.mk JSON_BUILDER="${STAGING_BINDIR_NATIVE}/JsonSchemaBuilder" + BOOTSTRAP_STANDALONE=1 make JAVA=/bin/true -f codegenerator.mk JSON_BUILDER="${STAGING_BINDIR_NATIVE}/JsonSchemaBuilder" + oe_runconf +} + +do_compile_prepend() { + for i in $(find . -name "Makefile") ; do + sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i + done + + for i in $(find . -name "*.mak*" -o -name "Makefile") ; do + sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i + done +} + +INSANE_SKIP_${PN} = "rpaths" + +FILES_${PN} += "${datadir}/xsessions ${datadir}/icons ${libdir}/xbmc ${datadir}/xbmc" +FILES_${PN}-dbg += "${libdir}/kodi/.debug ${libdir}/kodi/*/.debug ${libdir}/kodi/*/*/.debug ${libdir}/kodi/*/*/*/.debug" + +# kodi uses some kind of dlopen() method for libcec so we need to add it manually +# OpenGL builds need glxinfo, that's in mesa-demos +RRECOMMENDS_${PN}_append = " libcec \ + python \ + python-ctypes \ + python-lang \ + python-re \ + python-netclient \ + python-html \ + python-difflib \ + python-json \ + python-zlib \ + python-shell \ + python-sqlite3 \ + python-compression \ + libcurl \ + ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'xrandr xdpyinfo', '', d)} \ +" +RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 \ + glibc-gconv-ibm850 \ + glibc-gconv-unicode \ + glibc-gconv-utf-32 \ + glibc-charmap-utf-8 \ + glibc-localedata-en-us \ + " + +RPROVIDES_${PN} += "xbmc" + +TOOLCHAIN = "gcc" diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch deleted file mode 100644 index dfc3959a1f4..00000000000 --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0dce5a2abd9f42876616c35772a4d71c5399543c Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Sat, 17 Dec 2011 11:38:15 +0100 -Subject: [PATCH 1/4] configure: don't run python distutils to find STAGING_INCDIR/python, it is not safe for per-machine sysroots - -Signed-off-by: Koen Kooi ---- - m4/ax_python_devel.m4 | 7 +------ - 1 files changed, 1 insertions(+), 6 deletions(-) - -diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 -index adbd207..dee70f6 100644 ---- a/m4/ax_python_devel.m4 -+++ b/m4/ax_python_devel.m4 -@@ -151,12 +151,7 @@ $ac_distutils_result]) - # - AC_MSG_CHECKING([for Python include path]) - if test -z "$PYTHON_CPPFLAGS"; then -- python_path=`$PYTHON -c "import distutils.sysconfig; \ -- print (distutils.sysconfig.get_python_inc ());"` -- if test -n "${python_path}"; then -- python_path="-I$python_path" -- fi -- PYTHON_CPPFLAGS=$python_path -+ PYTHON_CPPFLAGS="-I${STAGING_INCDIR}/${PYTHON_DIR}" - fi - AC_MSG_RESULT([$PYTHON_CPPFLAGS]) - AC_SUBST([PYTHON_CPPFLAGS]) --- -1.7.2.5 - diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch deleted file mode 100644 index e0a4037bc5f..00000000000 --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 7b2a8a7869d257cba35f53f6d877877c29cdac27 Mon Sep 17 00:00:00 2001 -From: Paul Menzel -Date: Sun, 14 Aug 2011 21:53:47 +0200 -Subject: [PATCH 2/4] Revert "fixed:[ios] Add memory barriers to atomic Add/Subtract and Increment/Decrement functions to ensure synchronized accesses." - -This reverts commit 9a10c48710df79118e39e9b3bb0a15bf1fe694d1. - -The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error. - - make -C xbmc/threads - make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads' - CPP Atomics.o - /tmp/ccIzTm3L.s: Assembler messages: - /tmp/ccIzTm3L.s:40: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:48: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:76: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:83: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:111: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:118: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:145: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:152: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:180: Error: garbage following instruction -- `dmb ish' - /tmp/ccIzTm3L.s:187: Error: garbage following instruction -- `dmb ish' - make[1]: *** [Atomics.o] Error 1 - make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads' - make: *** [xbmc/threads/threads.a] Error 2 ---- - xbmc/threads/Atomics.cpp | 8 -------- - 1 files changed, 0 insertions(+), 8 deletions(-) - -diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp -index 5b09f18..0a98a7e 100644 ---- a/xbmc/threads/Atomics.cpp -+++ b/xbmc/threads/Atomics.cpp -@@ -194,14 +194,12 @@ long AtomicIncrement(volatile long* pAddr) - { - register long val; - asm volatile ( -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after - "1: \n" - "ldrex %0, [%1] \n" // (val = *pAddr) - "add %0, #1 \n" // (val += 1) - "strex r1, %0, [%1] \n" - "cmp r1, #0 \n" - "bne 1b \n" -- "dmb ish \n" // Memory barrier. - : "=&r" (val) - : "r"(pAddr) - : "r1" -@@ -273,14 +271,12 @@ long AtomicAdd(volatile long* pAddr, long amount) - { - register long val; - asm volatile ( -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after - "1: \n" - "ldrex %0, [%1] \n" // (val = *pAddr) - "add %0, %2 \n" // (val += amount) - "strex r1, %0, [%1] \n" - "cmp r1, #0 \n" - "bne 1b \n" -- "dmb ish \n" // Memory barrier. - : "=&r" (val) - : "r"(pAddr), "r"(amount) - : "r1" -@@ -351,14 +347,12 @@ long AtomicDecrement(volatile long* pAddr) - { - register long val; - asm volatile ( -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after - "1: \n" - "ldrex %0, [%1] \n" // (val = *pAddr) - "sub %0, #1 \n" // (val -= 1) - "strex r1, %0, [%1] \n" - "cmp r1, #0 \n" - "bne 1b \n" -- "dmb ish \n" // Memory barrier. - : "=&r" (val) - : "r"(pAddr) - : "r1" -@@ -431,14 +425,12 @@ long AtomicSubtract(volatile long* pAddr, long amount) - { - register long val; - asm volatile ( -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after - "1: \n" - "ldrex %0, [%1] \n" // (val = *pAddr) - "sub %0, %2 \n" // (val -= amount) - "strex r1, %0, [%1] \n" - "cmp r1, #0 \n" - "bne 1b \n" -- "dmb ish \n" // Memory barrier. - : "=&r" (val) - : "r"(pAddr), "r"(amount) - : "r1" --- -1.7.2.5 - diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch deleted file mode 100644 index 629017b7b49..00000000000 --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch +++ /dev/null @@ -1,69 +0,0 @@ -From aaae1616a09d359b52e929f944ca0ceb4bb7f831 Mon Sep 17 00:00:00 2001 -From: Paul Menzel -Date: Sun, 14 Aug 2011 21:55:09 +0200 -Subject: [PATCH 3/4] Revert "fixed:[ios] Add memory barriers to cas() assembly to ensure alignment of memory accesses." - -This reverts commit 92bab651e2253d172879995b50985645b77fecd2. - -The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error. - - CPP Atomics.o - make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/windows' - CPP GUIMediaWindow.o - /tmp/ccrsywuV.s: Assembler messages: - /tmp/ccrsywuV.s:40: Error: garbage following instruction -- `dmb ish' - /tmp/ccrsywuV.s:48: Error: garbage following instruction -- `dmb ish' - make[1]: *** [Atomics.o] Error 1 - make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/threads' - make: *** [xbmc/threads/threads.a] Error 2 ---- - xbmc/threads/Atomics.cpp | 33 ++++++++++++++++----------------- - 1 files changed, 16 insertions(+), 17 deletions(-) - -diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp -index 0a98a7e..0967eb2 100644 ---- a/xbmc/threads/Atomics.cpp -+++ b/xbmc/threads/Atomics.cpp -@@ -49,23 +49,22 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal) - #elif defined(__arm__) - long cas(volatile long* pAddr, long expectedVal, long swapVal) - { -- register long prev; -- asm volatile ( -- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after -- "1: \n" -- "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, -- "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2) -- "bne 2f \n" // Bail if the two values are not equal [not as expected] -- "strex r1, %3, [%1] \n" -- "cmp r1, #0 \n" -- "bne 1b \n" -- "dmb ish \n" // Memory barrier. -- "2: \n" -- : "=&r" (prev) -- : "r"(pAddr), "r"(expectedVal),"r"(swapVal) -- : "r1" -- ); -- return prev; -+ return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal)); -+// register long prev; -+// asm volatile ( -+// "1: \n" -+// "ldrex %0, [%1] \n" /* Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, */ -+// "cmp %0, %2 \n" /* Verify that the current value (%0) == old value (%2) */ -+// "bne 2f \n" /* Bail if the two values are not equal [not as expected] */ -+// "strex r1, %3, [%1] \n" -+// "cmp r1, #0 \n" -+// "bne 1b \n" -+// "2: " -+// : "=&r" (prev) -+// : "r"(pAddr), "r"(expectedVal),"r"(swapVal) -+// : "r1" -+// ); -+// return prev; - } - - #elif defined(__mips__) --- -1.7.2.5 - diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch deleted file mode 100644 index 345e20ee196..00000000000 --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch +++ /dev/null @@ -1,43 +0,0 @@ -From fd8f73826240aae543a41a2bfeea0056e2fe594d Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Mon, 11 Mar 2013 11:04:29 +0100 -Subject: [PATCH] configure: cope with ld-is-gold DISTRO_FEATURE - -Signed-off-by: Koen Kooi ---- - -Upstream-Stature: backport - - configure.in | 12 +++++++----- - 1 files changed, 7 insertions(+), 5 deletions(-) - -diff --git a/configure.in b/configure.in -index ef94683..c8b459b 100755 ---- a/configure.in -+++ b/configure.in -@@ -18,9 +18,14 @@ tolower(){ - # check for library basenames - AC_DEFUN([XB_FIND_SONAME], - [ -+ #set -x - if [[ "$host_vendor" != "apple" ]]; then - AC_MSG_CHECKING([for lib$2 soname]) - $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}') -+ if [[ -z $$1_FILENAME ]]; then -+ #try gold linker syntax -+ $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "$2") -+ fi - if [[ ! -z $$1_FILENAME ]]; then - $1_SONAME=$(objdump -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}') - fi -@@ -55,6 +60,7 @@ AC_DEFUN([XB_FIND_SONAME], - AC_MSG_RESULT([$$1_SONAME]) - AC_SUBST($1_SONAME) - fi -+ #set +x - ]) - - # Function to push and pop libs and includes for a command --- -1.7.7.6 - diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch deleted file mode 100644 index 5c1405982e5..00000000000 --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch +++ /dev/null @@ -1,32 +0,0 @@ -From cfd851660a594801a591e80dc820c65cb7bd7836 Mon Sep 17 00:00:00 2001 -From: Otavio Salvador -Date: Sat, 6 Oct 2012 06:40:03 -0300 -Subject: [PATCH] configure.in: Avoid running code or we break cross-compile - -Upstream-Status: Backport [similar change done for 12.0] - -Signed-off-by: Otavio Salvador ---- - configure.in | 6 +----- - 1 files changed, 1 insertions(+), 5 deletions(-) - -diff --git a/configure.in b/configure.in -index ef94683..d7efcb0 100755 ---- a/configure.in -+++ b/configure.in -@@ -1246,11 +1246,7 @@ if test "$use_external_ffmpeg" = "yes"; then - AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.]) - - # Disable vdpau support if external libavcodec doesn't have it -- AC_RUN_IFELSE( -- AC_LANG_PROGRAM([[#include ]], -- [[avcodec_register_all(); -- AVCodec *codec = avcodec_find_decoder_by_name("vc1_vdpau"); -- return (codec) ? 0 : 1;]]),, -+ AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],, - [if test "x$use_vdpau" = "xyes"; then - AC_MSG_ERROR($ffmpeg_vdpau_not_supported) - else --- -1.7.2.5 - diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb deleted file mode 100644 index 17db7b51e85..00000000000 --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb +++ /dev/null @@ -1,99 +0,0 @@ -SUMMARY = "XBMC Media Center" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff" - -DEPENDS = "libusb1 libcec libplist expat yajl gperf-native libxmu fribidi mpeg2dec ffmpeg samba fontconfig curl python libass libmodplug libmicrohttpd wavpack libmms cmake-native libsdl-image libsdl-mixer virtual/egl mysql5 sqlite3 libmms faad2 libcdio libpcre boost lzo enca avahi libsamplerate0 libxinerama libxrandr libxtst bzip2 virtual/libsdl jasper zip-native zlib libtinyxml libmad" -#require recipes/egl/egl.inc - - -SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa" - -# multiple issues -PNBLACKLIST[xbmc] ?= "/usr/include/c++/ctime:70:11: error: '::gmtime' has not been declared" - -PV = "11.0+gitr${SRCPV}" -PR = "r14" -SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Eden \ - file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \ - file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \ - file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \ - file://0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch \ - file://configure.in-Avoid-running-code.patch \ -" - -inherit autotools gettext python-dir - -S = "${WORKDIR}/git" - -# breaks compilation -CCACHE = "" - -CACHED_CONFIGUREVARS += " \ - ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \ -" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'opengl', 'opengl', 'openglesv2', d)}" -PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,glew" -PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl," - -EXTRA_OECONF = " \ - --disable-rpath \ - --enable-libusb \ - --enable-airplay \ - --disable-optical-drive \ - --enable-external-libraries \ - ${@base_contains('DISTRO_FEATURES', 'opengl', '--enable-gl', '--enable-gles', d)} \ -" - -FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math" -BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" - -EXTRA_OECONF_append_armv7a = "--cpu=cortex-a8" - -# for python modules -export HOST_SYS -export BUILD_SYS -export STAGING_LIBDIR -export STAGING_INCDIR -export PYTHON_DIR - -do_configure() { - sh bootstrap - oe_runconf -} - -PARALLEL_MAKE = "" - -do_compile_prepend() { - for i in $(find . -name "Makefile") ; do - sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i - done - - for i in $(find . -name "*.mak*" -o -name "Makefile") ; do - sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i - done -} - -INSANE_SKIP_${PN} = "rpaths" - -# on ARM architectures xbmc will use GLES which will make the regular wrapper fail, so start it directly -do_install_append_arm() { - sed -i -e 's:Exec=xbmc:Exec=${libdir}/xbmc/xbmc.bin:g' ${D}${datadir}/applications/xbmc.desktop -} - -FILES_${PN} += "${datadir}/xsessions ${datadir}/icons" -FILES_${PN}-dbg += "${libdir}/xbmc/.debug ${libdir}/xbmc/*/.debug ${libdir}/xbmc/*/*/.debug ${libdir}/xbmc/*/*/*/.debug" - -# xbmc uses some kind of dlopen() method for libcec so we need to add it manually -# OpenGL builds need glxinfo, that's in mesa-demos -RRECOMMENDS_${PN}_append = " libcec \ - python \ - python-lang \ - python-re \ - python-netclient \ - libcurl \ - xdpyinfo \ - ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-demos', '', d)} \ -" -RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 glibc-gconv-ibm850" diff --git a/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch b/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch new file mode 100644 index 00000000000..a01c7544b63 --- /dev/null +++ b/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch @@ -0,0 +1,57 @@ +Use LD and obey LDFLAGS + +Signed-off-by: Christopher Larson +Upstream-Status: Pending + +diff --git a/make/linux/Makefile b/make/linux/Makefile +index 391b6e3..a2ac13e 100644 +--- a/make/linux/Makefile ++++ b/make/linux/Makefile +@@ -64,6 +64,7 @@ objects_so:=$(patsubst %$(EXTENSION),%.lo,$(sources)) + WARNINGFLAGS=-Wall -Wextra -Wno-unknown-pragmas -ansi -fno-gnu-keywords -Wshadow + COMPILEFLAGS=$(WARNINGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(DEBUGFLAGS) $(INCLUDE) + DEPENDFLAGS = $(CXXFLAGS) $(INCLUDE) ++LINKFLAGS=$(LDFLAGS) + + ifeq (Darwin,$(shell uname -s)) + all: staticlib +@@ -91,7 +92,7 @@ $(LIBRARY): $(objects) + $(RANLIB) $@ + + $(LIBRARY_SO): $(objects_so) +- $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) ++ $(LD) $(LINKFLAGS) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) + rm -f $(LIBRARY_SO) + ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO) + +diff --git a/make/mingw32/Makefile b/make/mingw32/Makefile +index e5986ef..6ca16aa 100644 +--- a/make/mingw32/Makefile ++++ b/make/mingw32/Makefile +@@ -18,6 +18,7 @@ DEBUGFLAGS=-g -DDEBUG + endif + CROSS = + CXX = $(CROSS)g++ ++LD = $(CXX) + CC = $(CROSS)gcc + WINDRES = $(CROSS)windres + RANLIB = $(CROSS)ranlib +@@ -33,6 +34,7 @@ LIBS = libebml.a + endif + INCS = -I"$(shell pwd)/../.." + COMPILEFLAGS = $(DEBUGFLAGS) $(INCS) $(DLLFLAGS) $(CXXFLAGS) ++LINKFLAGS = $(LDFLAGS) + + .PHONY: all all-before all-after clean clean-custom + +@@ -54,7 +56,7 @@ libebml.a: $(OBJ) + $(RANLIB) $@ + + libebml.dll: $(OBJ) +- $(CXX) -shared -Wl,--export-all -Wl,--out-implib=$@.a -o $@ $(OBJ) ++ $(LD) $(LINKFLAGS) -shared -Wl,--export-all -Wl,--out-implib=$@.a -o $@ $(OBJ) + + depend: + @echo Calculating dependecies: +-- +2.8.0 diff --git a/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch b/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch new file mode 100644 index 00000000000..57eb3450d67 --- /dev/null +++ b/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch @@ -0,0 +1,42 @@ +Allow override of the 'uname -s' for cross-compilation + +Signed-off-by: Christopher Larson +Upstream-Status: Pending + +diff --git a/make/linux/Makefile b/make/linux/Makefile +index a2ac13e..4188bee 100644 +--- a/make/linux/Makefile ++++ b/make/linux/Makefile +@@ -9,9 +9,11 @@ + # 'make DEBUG=yes'. + # + ++TARGET_OS ?= $(shell uname -s) ++ + # Paths + # BeOS wants the libs and headers in /boot/home/config +-ifeq (BeOS,$(shell uname -s)) ++ifeq (BeOS,$(TARGET_OS)) + prefix=/boot/home/config + else + prefix=/usr/local +@@ -66,7 +68,7 @@ COMPILEFLAGS=$(WARNINGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(DEBUGFLAGS) $(INCLUDE) + DEPENDFLAGS = $(CXXFLAGS) $(INCLUDE) + LINKFLAGS=$(LDFLAGS) + +-ifeq (Darwin,$(shell uname -s)) ++ifeq (Darwin,$(TARGET_OS)) + all: staticlib + else + all: staticlib sharedlib +@@ -116,7 +118,7 @@ depend: + $(CXX) $(DEPENDFLAGS) -MM -MT $$o $$i >> .depend ; \ + done + +-ifeq (Darwin,$(shell uname -s)) ++ifeq (Darwin,$(TARGET_OS)) + install: install_staticlib install_headers + else + install: install_staticlib install_sharedlib install_headers +-- +2.8.0 diff --git a/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb b/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb index 877e176b861..16e17e9abe4 100644 --- a/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb +++ b/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb @@ -1,14 +1,42 @@ SUMMARY = "libebml is a C++ libary to parse EBML files" LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=f14599a2f089f6ff8c97e2baa4e3d575" +LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=7fbc338309ac38fefcd64b04bb903e34" -SRC_URI = "http://dl.matroska.org/downloads/libebml/libebml-${PV}.tar.bz2" +SRC_URI = "\ + http://dl.matroska.org/downloads/libebml/libebml-${PV}.tar.bz2 \ + file://ldflags.patch \ + file://override-uname.patch \ +" SRC_URI[md5sum] = "efec729bf5a51e649e1d9d1f61c0ae7a" SRC_URI[sha256sum] = "83b074d6b62715aa0080406ea84d33df2e44b5d874096640233a4db49b8096de" -do_compile() { - cd ${S}/make/linux - oe_runmake CROSS="${TARGET_PREFIX}" +inherit dos2unix + +LIBEBML_OS = "Unknown" +LIBEBML_OS_linux = "Linux" +LIBEBML_OS_darwin = "Darwin" +LIBEBML_OS_mingw32 = "Windows" + +EXTRA_OEMAKE = "\ + 'TARGET_OS=${LIBEBML_OS}' \ + \ + 'CXX=${CXX}' \ + 'LD=${CXX}' \ + 'AR=${AR}' \ + 'RANLIB=${RANLIB}' \ + \ + 'DEBUGFLAGS=' \ + 'CPPFLAGS=${CPPFLAGS}' \ + 'CXXFLAGS=${CXXFLAGS}' \ + 'LDFLAGS=${LDFLAGS}' \ + \ + 'prefix=${prefix}' \ + 'libdir=${libdir}' \ + 'includedir=${includedir}/ebml' \ +" + +do_compile () { + oe_runmake -C make/linux } do_install() { @@ -17,7 +45,7 @@ do_install() { install -d ${D}${libdir} install -m 0644 libebml.a ${D}${libdir} install -m 0755 libebml.so.* ${D}${libdir} - cp -a libebml.so ${D}${libdir} + cp -R --no-dereference --preserve=mode,links -v libebml.so ${D}${libdir} install -d ${D}${includedir}/ebml for i in ../../ebml/*.h; do diff --git a/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch b/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch new file mode 100644 index 00000000000..90e997561ad --- /dev/null +++ b/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch @@ -0,0 +1,28 @@ +From f0c879097c331d1dabe6ee92b583a8badb62ea6d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 18 Mar 2017 08:26:35 -0700 +Subject: [PATCH] Makefile: Use LINKFLAGS during link step + +Adds much needed GNU_HASH section into the .so + +Signed-off-by: Khem Raj +--- + make/linux/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/make/linux/Makefile b/make/linux/Makefile +index 3ca7b0f..b5c9645 100644 +--- a/make/linux/Makefile ++++ b/make/linux/Makefile +@@ -104,7 +104,7 @@ $(LIBRARY): $(objects) + $(RANLIB) $@ + + $(LIBRARY_SO): $(objects_so) +- $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -lebml ++ $(CXX) $(LINKFLAGS) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -lebml + rm -f $(LIBRARY_SO) + ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO) + +-- +2.12.0 + diff --git a/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb b/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb index 95ea93dbe63..fdffa41ec50 100644 --- a/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb +++ b/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb @@ -4,10 +4,14 @@ LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4fbd65380cdd255951079008b364516c" DEPENDS = "libebml" -SRC_URI = "http://dl.matroska.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2" +SRC_URI = "http://dl.matroska.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-Makefile-Use-LINKFLAGS-during-link-step.patch \ + " SRC_URI[md5sum] = "f61b2e5086f4bb9d24a43cc8af43a719" SRC_URI[sha256sum] = "086f21873e925679babdabf793c3bb85c353d0cd79423543a3355e08e8a4efb7" +EXTRA_OEMAKE = "-e MAKEFLAGS=" + do_compile() { cd ${S}/make/linux oe_runmake CROSS="${TARGET_PREFIX}" @@ -19,7 +23,7 @@ do_install() { install -d ${D}${libdir} install -m 0644 libmatroska.a ${D}${libdir} install -m 0755 libmatroska.so.* ${D}${libdir} - cp -a libmatroska.so ${D}${libdir} + cp -R --no-dereference --preserve=mode,links -v libmatroska.so ${D}${libdir} install -d ${D}${includedir}/matroska for i in ../../matroska/*.h; do diff --git a/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb b/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb deleted file mode 100644 index dd613b31f01..00000000000 --- a/meta-multimedia/recipes-mkv/mkvtoolnix/mkvtoolnix_git.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "MKVToolNix -- Cross-platform tools for Matroska" -HOMEPAGE = "http://www.bunkus.org/videotools/mkvtoolnix/source.html" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -DEPENDS = "curl boost expat zlib libebml libmatroska libogg libvorbis bzip2 lzo file ruby-native" - -PV = "7.1.0+git${SRCPV}" -SRCREV = "0c89ff941bfdd9f3378312f293a84f13cf3e2a96" -SRC_URI = "git://github.com/mbunkus/mkvtoolnix.git" - -S = "${WORKDIR}/git" - -inherit autotools-brokensep gettext - -# make sure rb files are used from sysroot, not from host -# ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/` -# we need to replace it too (a bit longer version without importing re) -RUBY_SYS = "${@ '${BUILD_SYS}'.replace('i486', 'i386').replace('i586', 'i386').replace('i686', 'i386') }" -export RUBYLIB="${STAGING_DATADIR_NATIVE}/rubygems:${STAGING_LIBDIR_NATIVE}/ruby:${STAGING_LIBDIR_NATIVE}/ruby/${RUBY_SYS}" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[flac] = "--with-flac,--without-flac,flac" - -EXTRA_OECONF = " --with-boost-libdir=${STAGING_LIBDIR} \ -" - -# remove some hardcoded searchpaths -do_configure_prepend() { - sed -i -e s:/usr/local/lib:${STAGING_LIBDIR}:g -e s:/usr/local/include:${STAGING_INCDIR}:g ${S}/ac/ebml.m4 -} - -# Yeah, no makefile -do_compile() { - ${S}/drake ${PARALLEL_MAKE} -} - -do_install() { - ${S}/drake install DESTDIR=${D} -} diff --git a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0001-Fix-asneeded.patch b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0001-Fix-asneeded.patch new file mode 100644 index 00000000000..64130d900cd --- /dev/null +++ b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0001-Fix-asneeded.patch @@ -0,0 +1,37 @@ +From c17129561e784bb9efebee2380349f121db0a9db Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Wed, 5 Oct 2016 10:56:33 -0300 +Subject: [PATCH 1/3] Fix asneeded +Organization: O.S. Systems Software LTDA. + +Patch from: +https://git.backbone.ws/portage/overlay/commit/7a069112054fbb5dc94a857e9c020a38cb1c6fde + +Upstream-Status: Pending + +Signed-off-by: Fabio Berton +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 3b2aa7d..0489fc1 100644 +--- a/Makefile ++++ b/Makefile +@@ -29,11 +29,11 @@ dep: + + $(SND_PCM_BIN): $(SND_PCM_OBJECTS) + @echo LD $@ +- $(Q)$(LD) $(LDFLAGS) $(SND_PCM_LIBS) $(SND_PCM_OBJECTS) -o $(SND_PCM_BIN) ++ $(Q)$(LD) $(LDFLAGS) $(SND_PCM_OBJECTS) -o $(SND_PCM_BIN) $(SND_PCM_LIBS) + + $(SND_CTL_BIN): $(SND_CTL_OBJECTS) + @echo LD $@ +- $(Q)$(LD) $(LDFLAGS) $(SND_CTL_LIBS) $(SND_CTL_OBJECTS) -o $(SND_CTL_BIN) ++ $(Q)$(LD) $(LDFLAGS) $(SND_CTL_OBJECTS) -o $(SND_CTL_BIN) $(SND_CTL_LIBS) + + %.o: %.c + @echo GCC $< +-- +2.1.4 + diff --git a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0002-Fix-Eq-CAPS-plugin-name.patch b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0002-Fix-Eq-CAPS-plugin-name.patch new file mode 100644 index 00000000000..efce38070be --- /dev/null +++ b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0002-Fix-Eq-CAPS-plugin-name.patch @@ -0,0 +1,83 @@ +From d5c6c92045f9b6ad32365f39b8cc77f2fcd7d0f5 Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Wed, 5 Oct 2016 10:57:29 -0300 +Subject: [PATCH 2/3] Fix Eq CAPS plugin name +Organization: O.S. Systems Software LTDA. + +Patch from: +https://git.backbone.ws/portage/overlay/commit/7a069112054fbb5dc94a857e9c020a38cb1c6fde + +Upstream-Status: Pending + +Signed-off-by: Fabio Berton +--- + README | 8 ++++---- + ctl_equal.c | 2 +- + pcm_equal.c | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/README b/README +index b77fd2d..2df3dc5 100644 +--- a/README ++++ b/README +@@ -1,11 +1,11 @@ + Alsaequal is a real-time adjustable equalizer plugin for ALSA. It can + be adjusted using any ALSA compatible mixer, e.g. alsamixergui. + +-Alsaequal uses the Eq CAPS LADSPA Plugin for audio processing, actually ++Alsaequal uses the Eq10 CAPS LADSPA Plugin for audio processing, actually + alsaequal is a generic LADSPA plugin interface with real-time access to + the LADSPA controls (the LADSPA plugin included with alsa doesn't allow + for real-time controls) but it was developed for and only tested with +-Eq CAPS LADSPA plugin. You are welcome to try it with other plugins, it ++Eq10 CAPS LADSPA plugin. You are welcome to try it with other plugins, it + may work. Let me know how it goes, you can reach me at + . + +@@ -66,7 +66,7 @@ ctl. { + library -- location of the LADSPA library, the default is + "/usr/lib/ladspa/caps.so" + module -- module name within the LADSPA library, the deafault +- is "Eq" ++ is "Eq10" + channels -- number of channels, the default is 2 + } + +@@ -81,7 +81,7 @@ pcm. { + library -- location of the LADSPA library, the default is + "/usr/lib/ladspa/caps.so" + module -- module name within the LADSPA library, the deafault +- is "Eq" ++ is "Eq10" + channels -- number of channels, the default is 2 + } + +diff --git a/ctl_equal.c b/ctl_equal.c +index 40747d4..afba793 100644 +--- a/ctl_equal.c ++++ b/ctl_equal.c +@@ -167,7 +167,7 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal) + snd_ctl_equal_t *equal; + const char *controls = ".alsaequal.bin"; + const char *library = "/usr/lib/ladspa/caps.so"; +- const char *module = "Eq"; ++ const char *module = "Eq10"; + long channels = 2; + const char *sufix = " Playback Volume"; + int err, i, index; +diff --git a/pcm_equal.c b/pcm_equal.c +index 2bc87fb..b0b4265 100644 +--- a/pcm_equal.c ++++ b/pcm_equal.c +@@ -151,7 +151,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(equal) + snd_config_t *sconf = NULL; + const char *controls = ".alsaequal.bin"; + const char *library = "/usr/lib/ladspa/caps.so"; +- const char *module = "Eq"; ++ const char *module = "Eq10"; + long channels = 2; + int err; + +-- +2.1.4 + diff --git a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0003-Fix-mixer.patch b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0003-Fix-mixer.patch new file mode 100644 index 00000000000..1c2503ed965 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0003-Fix-mixer.patch @@ -0,0 +1,92 @@ +From 665f68a863b4ac2e21b0a994dce7e2720c03aa9d Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Wed, 5 Oct 2016 11:02:18 -0300 +Subject: [PATCH 3/3] Fix mixer +Organization: O.S. Systems Software LTDA. + +Patch from: +https://git.backbone.ws/portage/overlay/commit/7a069112054fbb5dc94a857e9c020a38cb1c6fde + +Upstream-Status: Pending + +Signed-off-by: Fabio Berton +--- + ctl_equal.c | 9 ++++++--- + ladspa_utils.c | 6 ++++-- + pcm_equal.c | 6 ++++-- + 3 files changed, 14 insertions(+), 7 deletions(-) + +diff --git a/ctl_equal.c b/ctl_equal.c +index afba793..dd90e88 100644 +--- a/ctl_equal.c ++++ b/ctl_equal.c +@@ -263,7 +263,8 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal) + for(i = 0; i < equal->num_input_controls; i++) { + if(equal->control_data->control[i].type == LADSPA_CNTRL_INPUT) { + index = equal->control_data->control[i].index; +- if(equal->klass->PortDescriptors[index] != ++ if((equal->klass->PortDescriptors[index] & ++ (LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) != + (LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) { + SNDERR("Problem with control file %s, %d.", controls, index); + return -1; +@@ -284,12 +285,14 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal) + } + + /* Make sure that the control file makes sense */ +- if(equal->klass->PortDescriptors[equal->control_data->input_index] != ++ if((equal->klass->PortDescriptors[equal->control_data->input_index] & ++ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO))!= + (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) { + SNDERR("Problem with control file %s.", controls); + return -1; + } +- if(equal->klass->PortDescriptors[equal->control_data->output_index] != ++ if((equal->klass->PortDescriptors[equal->control_data->output_index] & ++ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO))!= + (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) { + SNDERR("Problem with control file %s.", controls); + return -1; +diff --git a/ladspa_utils.c b/ladspa_utils.c +index 7b596da..0c00800 100644 +--- a/ladspa_utils.c ++++ b/ladspa_utils.c +@@ -354,10 +354,12 @@ LADSPA_Control * LADSPAcontrolMMAP(const LADSPA_Descriptor *psDescriptor, + default_controls->control[index].type = LADSPA_CNTRL_OUTPUT; + } + index++; +- } else if(psDescriptor->PortDescriptors[i] == ++ } else if((psDescriptor->PortDescriptors[i] & ++ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) == + (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) { + default_controls->input_index = i; +- } else if(psDescriptor->PortDescriptors[i] == ++ } else if((psDescriptor->PortDescriptors[i] & ++ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) == + (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) { + default_controls->output_index = i; + } +diff --git a/pcm_equal.c b/pcm_equal.c +index b0b4265..8d98371 100644 +--- a/pcm_equal.c ++++ b/pcm_equal.c +@@ -231,12 +231,14 @@ SND_PCM_PLUGIN_DEFINE_FUNC(equal) + } + + /* Make sure that the control file makes sense */ +- if(equal->klass->PortDescriptors[equal->control_data->input_index] != ++ if((equal->klass->PortDescriptors[equal->control_data->input_index] & ++ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) != + (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) { + SNDERR("Problem with control file %s.", controls); + return -1; + } +- if(equal->klass->PortDescriptors[equal->control_data->output_index] != ++ if((equal->klass->PortDescriptors[equal->control_data->output_index] & ++ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) != + (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) { + SNDERR("Problem with control file %s.", controls); + return -1; +-- +2.1.4 + diff --git a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb new file mode 100644 index 00000000000..3bed70e1a1c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "A real-time adjustable equalizer plugin for ALSA" +HOMEPAGE = "https://web.archive.org/web/20161105202833/http://thedigitalmachine.net/alsaequal.html" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad" + +DEPENDS = "alsa-lib" + +SRC_URI = " \ + https://launchpad.net/ubuntu/+archive/primary/+files/alsaequal_${PV}.orig.tar.bz2 \ + file://0001-Fix-asneeded.patch \ + file://0002-Fix-Eq-CAPS-plugin-name.patch \ + file://0003-Fix-mixer.patch \ +" + +SRC_URI[md5sum] = "d2edc7710c72cbf3ab297c414e35ebda" +SRC_URI[sha256sum] = "916e7d152added24617efc350142438a46099efe062bd8781d36dbf10b4e6ff0" + +S = "${WORKDIR}/alsaequal" + +EXTRA_OEMAKE = " \ + Q='' \ + CC='${CC}' \ + LD='${CC}' \ + LDFLAGS='${LDFLAGS} -shared -lasound' \ + CFLAGS='${CFLAGS} -I. -funroll-loops -ffast-math -fPIC -DPIC' \ + SND_PCM_LIBS='-lasound' \ + SND_CTL_LIBS='-lasound' \ +" + +do_compile() { + oe_runmake all +} + +do_install() { + install -Dm 0644 libasound_module_ctl_equal.so ${D}${libdir}/alsa-lib/libasound_module_ctl_equal.so + install -Dm 0644 libasound_module_pcm_equal.so ${D}${libdir}/alsa-lib/libasound_module_pcm_equal.so +} + +RDEPENDS_${PN} += " \ + alsa-utils \ + caps \ +" + +FILES_${PN} = "${libdir}/alsa-lib/" diff --git a/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch b/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch new file mode 100644 index 00000000000..1087b0e79c8 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch @@ -0,0 +1,46 @@ +From a5cea22294a9acb6eed955bd415f562a6cc36482 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 22 Mar 2017 11:54:23 -0700 +Subject: [PATCH] basic.h: Use c99 supported stdint types + +include stdint.h for getting the definitions for int types + +Signed-off-by: Khem Raj +--- + basics.h | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/basics.h b/basics.h +index 643d96e..1dc2fa7 100644 +--- a/basics.h ++++ b/basics.h +@@ -46,17 +46,18 @@ + + #include + #include ++#include + + #include "ladspa.h" + +-typedef __int8_t int8; +-typedef __uint8_t uint8; +-typedef __int16_t int16; +-typedef __uint16_t uint16; +-typedef __int32_t int32; +-typedef __uint32_t uint32; +-typedef __int64_t int64; +-typedef __uint64_t uint64; ++typedef int8_t int8; ++typedef uint8_t uint8; ++typedef int16_t int16; ++typedef uint16_t uint16; ++typedef int32_t int32; ++typedef uint32_t uint32; ++typedef int64_t int64; ++typedef uint64_t uint64; + + #define MIN_GAIN 1e-6 /* -120 dB */ + /* smallest non-denormal 32 bit IEEE float is 1.18e-38 */ +-- +2.12.0 + diff --git a/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch b/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch new file mode 100644 index 00000000000..1a050af917c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch @@ -0,0 +1,32 @@ +From 1ea09653692efdd6443fb6770e8523bf6c9e49b9 Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Thu, 6 Oct 2016 11:54:07 -0300 +Subject: Avoid ambiguity in div invocation +Organization: O.S. Systems Software LTDA. + +Patch from: +https://anonscm.debian.org/cgit/pkg-multimedia/caps.git/commit/?id=9a99c225fb813ae69f146e3d90f7b47bdbd97708 + +Upstream-Status: Pending + +Signed-off-by: Fabio Berton +--- + AutoFilter.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/AutoFilter.cc b/AutoFilter.cc +index fc087d0..bd6b12f 100644 +--- a/AutoFilter.cc ++++ b/AutoFilter.cc +@@ -69,7 +69,7 @@ AutoFilter::activate() + void + AutoFilter::cycle (uint frames) + { +- div_t qr = div (frames, blocksize); ++ div_t qr = div ((int)frames, (int)blocksize); + int blocks = qr.quot; + if (qr.rem) ++blocks; + double over_blocks = 1./blocks; +-- +2.1.4 + diff --git a/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch b/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch new file mode 100644 index 00000000000..3abd381891f --- /dev/null +++ b/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch @@ -0,0 +1,18 @@ +Change the order of linker flags such that -shared is appearig after -pie/-fpie +this helps in building the package when secuiry flags are enabled + +-Khem + +Index: caps-0.9.24/Makefile +=================================================================== +--- caps-0.9.24.orig/Makefile ++++ caps-0.9.24/Makefile +@@ -14,7 +14,7 @@ STRIP = strip + -include defines.make + + CFLAGS += $(OPTS) $(_CFLAGS) +-LDFLAGS += $(_LDFLAGS) $(CFLAGS) ++LDFLAGS += $(CFLAGS) $(_LDFLAGS) + + PLUG = caps + diff --git a/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb b/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb new file mode 100644 index 00000000000..29167d1aac2 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "The CAPS Audio Plugin Suite - LADSPA plugin suite" +HOMEPAGE = "http://quitte.de/dsp/caps.html" +LICENSE = "GPL-3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "http://quitte.de/dsp/${PN}_${PV}.tar.bz2 \ + file://Avoid-ambiguity-in-div-invocation.patch \ + file://0001-basic.h-Use-c99-supported-stdint-types.patch \ + file://append_ldflags.patch \ + " + +SRC_URI[md5sum] = "c1d634038dcb54702306c0e30cb1c626" +SRC_URI[sha256sum] = "f746feba57af316b159f0169de5d78b4fd1064c2c0c8017cb5856b2f22e83f20" + +S = "${WORKDIR}/${PN}-${PV}" + +EXTRA_OEMAKE = " \ + CC='${CXX}' \ + CFLAGS='${CFLAGS} -ffast-math -funroll-loops -fPIC -DPIC' \ + ARCH='' \ +" +do_compile() { + oe_runmake all +} + +do_install() { + install -Dm 0644 caps.so ${D}${libdir}/ladspa/caps.so +} + +FILES_${PN} = "${libdir}/ladspa/" diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb b/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb new file mode 100644 index 00000000000..27fa0e58559 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb @@ -0,0 +1,34 @@ +SUMMARY = "cdparanoia library" +DESCRIPTION = "library used to read audio CDs, which is able to perform \ +error corrections, hence the name paranoia." +HOMEPAGE = "https://www.xiph.org/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=d370feaa1c9edcdbd29ca27ea3d2304d" + +SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-${PV}.src.tgz \ + file://0001-Use-DESTDIR-in-install-Makefile-rule.patch \ + file://0002-interface-remove-C-reserved-keyword.patch \ + file://0003-Fix-missing-shared-object-LDFLAGS.patch \ + file://dont-use-internal-configs.patch \ + file://out-of-tree-build.patch \ + file://0001-check-for-null-buffer-before-trying-a-byteswap.patch \ + file://0002-Fix-printf-format-errors.patch \ + file://0001-utils-Use-c99-compiler-independent-types.patch \ + " +SRC_URI[md5sum] = "b304bbe8ab63373924a744eac9ebc652" +SRC_URI[sha256sum] = "005db45ef4ee017f5c32ec124f913a0546e77014266c6a1c50df902a55fe64df" + +# Uppercase letters are not allowed in the recipe name, thus the recipe can not be named cdparanoia-III and +# we need to add the path to the extracted sources explicitely: +S = "${WORKDIR}/cdparanoia-III-${PV}" + +# cdparanoia Makefile can not be used with several threads (because the static library target and the shared +# library target use object files which are compiled in the same directory, the object files are just removed +# between the compilation of those two targets) +PARALLEL_MAKE = "" + +EXTRA_OECONF = "CC='${CC}' CFLAGS='${CFLAGS}'" + +inherit autotools diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch new file mode 100644 index 00000000000..7b0830034cd --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch @@ -0,0 +1,70 @@ +From 97c06ae955b270851f4fd2396c715f9c76591f37 Mon Sep 17 00:00:00 2001 +From: Etienne Cordonnier +Date: Thu, 2 Apr 2015 10:15:08 +0200 +Subject: [PATCH] Use DESTDIR in "install" Makefile rule + +This change allows to perform installations in a sysroot folder, which is required e.g. by +the recipes inheriting yocto autotool class, and is an autotool standard: +make install DESTDIR=~/mysysroot + +Upstream-Status: Inappropriate (the upstream project is dead) + +Signed-off-by: Etienne Cordonnier +--- + Makefile.in | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 3d235ad..df544c7 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -63,28 +63,28 @@ slib: + cd paranoia && $(MAKE) slib + + install: +- $(INSTALL) -d -m 0755 $(BINDIR) +- $(INSTALL) -m 755 $(srcdir)/cdparanoia $(BINDIR) +- $(INSTALL) -d -m 0755 $(MANDIR) +- $(INSTALL) -d -m 0755 $(MANDIR)/man1 +- $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(MANDIR)/man1 +- $(INSTALL) -d -m 0755 $(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/cdda_paranoia.h $(INCLUDEDIR) +- $(INSTALL) -d -m 0755 $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.a $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/cdda_interface.h $(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.so.0.$(VERSION) $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/utils.h $(INCLUDEDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR) ++ $(INSTALL) -m 755 $(srcdir)/cdparanoia $(DESTDIR)$(BINDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR)/man1 ++ $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(DESTDIR)$(MANDIR)/man1 ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/cdda_paranoia.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/cdda_interface.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/utils.h $(DESTDIR)$(INCLUDEDIR) + ln -fs libcdda_interface.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_interface.so.0 ++ $(DESTDIR)$(LIBDIR)/libcdda_interface.so.0 + ln -fs libcdda_interface.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_interface.so ++ $(DESTDIR)$(LIBDIR)/libcdda_interface.so + ln -fs libcdda_paranoia.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_paranoia.so.0 ++ $(DESTDIR)$(LIBDIR)/libcdda_paranoia.so.0 + ln -fs libcdda_paranoia.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_paranoia.so ++ $(DESTDIR)$(LIBDIR)/libcdda_paranoia.so + + cdparanoia: $(OFILES) $(LIBDEP) + $(LD) $(CFLAGS) $(LDFLAGS) $(OFILES) \ +-- +1.9.1 + diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch new file mode 100644 index 00000000000..682cf6e0335 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch @@ -0,0 +1,31 @@ +From c760c5d31f2412a5be5ac6896e6069d1cea08527 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 26 Jun 2017 22:31:45 -0700 +Subject: [PATCH 1/2] check for null buffer before trying a byteswap + +Author: Monty + +Patch from debian +http://sources.debian.net/src/cdparanoia/3.10.2%2Bdebian-11/debian/patches/04-endian.patch + +Signed-off-by: Khem Raj +--- + interface/interface.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/interface/interface.c b/interface/interface.c +index 526c2a9..763a0ea 100644 +--- a/interface/interface.c ++++ b/interface/interface.c +@@ -118,7 +118,7 @@ long cdda_read_timed(cdrom_drive *d, void *buffer, long beginsector, long sector + if(d->bigendianp==-1) /* not determined yet */ + d->bigendianp=data_bigendianp(d); + +- if(d->bigendianp!=bigendianp()){ ++ if(buffer && d->bigendianp!=bigendianp()){ + int i; + u_int16_t *p=(u_int16_t *)buffer; + long els=sectors*CD_FRAMESIZE_RAW/2; +-- +2.13.2 + diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch new file mode 100644 index 00000000000..7699017f778 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch @@ -0,0 +1,49 @@ +From 89071cbc8d3ab9a15503f397580b7590338e5e91 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 17:23:45 -0700 +Subject: [PATCH] utils: Use c99 compiler independent types + +Make it portable across different platforms + +Signed-off-by: Khem Raj +--- + utils.h | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/utils.h b/utils.h +index 10dce58..73bba92 100644 +--- a/utils.h ++++ b/utils.h +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + + extern long buffering_write(int outf, char *buffer, long num); + extern int buffering_close(int fd); +@@ -18,15 +19,15 @@ static inline int bigendianp(void){ + } + + static inline int32_t swap32(int32_t x){ +- return((((u_int32_t)x & 0x000000ffU) << 24) | +- (((u_int32_t)x & 0x0000ff00U) << 8) | +- (((u_int32_t)x & 0x00ff0000U) >> 8) | +- (((u_int32_t)x & 0xff000000U) >> 24)); ++ return((((uint32_t)x & 0x000000ffU) << 24) | ++ (((uint32_t)x & 0x0000ff00U) << 8) | ++ (((uint32_t)x & 0x00ff0000U) >> 8) | ++ (((uint32_t)x & 0xff000000U) >> 24)); + } + + static inline int16_t swap16(int16_t x){ +- return((((u_int16_t)x & 0x00ffU) << 8) | +- (((u_int16_t)x & 0xff00U) >> 8)); ++ return((((uint16_t)x & 0x00ffU) << 8) | ++ (((uint16_t)x & 0xff00U) >> 8)); + } + + #if BYTE_ORDER == LITTLE_ENDIAN +-- +2.13.2 + diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch new file mode 100644 index 00000000000..024479ca7d2 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch @@ -0,0 +1,32 @@ +From f4f81bdadb9515938b3b5d13707bd4b9322fd967 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 26 Jun 2017 22:37:13 -0700 +Subject: [PATCH 2/2] Fix printf format errors + +error: format not a string literal and no format arguments + +Signed-off-by: Khem Raj +--- + main.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/main.c b/main.c +index 664acac..d568fb1 100644 +--- a/main.c ++++ b/main.c +@@ -588,10 +588,10 @@ static void callback(long inpos, int function){ + buffer[aheadposition+19]='>'; + } + +- fprintf(stderr,buffer); ++ fprintf(stderr, "%s", buffer); + + if (logfile != NULL && function==-1) { +- fprintf(logfile,buffer+1); ++ fprintf(logfile, "%s", buffer+1); + fprintf(logfile,"\n\n"); + fflush(logfile); + } +-- +2.13.2 + diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch new file mode 100644 index 00000000000..a5600a1c3a3 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch @@ -0,0 +1,605 @@ +From 12ea28398f8e5d4a4a23c62d511fc4f53584e51d Mon Sep 17 00:00:00 2001 +From: Etienne Cordonnier +Date: Tue, 7 Apr 2015 11:07:56 +0200 +Subject: [PATCH] interface: remove C++ reserved keyword + +Because "private" was used in cdda_interface.h, this header file could not be +compiled in C++. + +Upstream-Status: Inappropriate (the upstream project is dead) + +Signed-off-by: Etienne Cordonnier +--- + interface/cdda_interface.h | 2 +- + interface/cooked_interface.c | 8 +-- + interface/interface.c | 8 +-- + interface/scan_devices.c | 22 ++++---- + interface/scsi_interface.c | 128 +++++++++++++++++++++---------------------- + interface/test_interface.c | 4 +- + 6 files changed, 86 insertions(+), 86 deletions(-) + +diff --git a/interface/cdda_interface.h b/interface/cdda_interface.h +index 8487cb7..b738825 100644 +--- a/interface/cdda_interface.h ++++ b/interface/cdda_interface.h +@@ -84,7 +84,7 @@ typedef struct cdrom_drive{ + int is_atapi; + int is_mmc; + +- cdda_private_data_t *private; ++ cdda_private_data_t *priv; /* private is a C++ reserved keyword */ + void *reserved; + unsigned char inqbytes[4]; + +diff --git a/interface/cooked_interface.c b/interface/cooked_interface.c +index de29055..ea9d0fc 100644 +--- a/interface/cooked_interface.c ++++ b/interface/cooked_interface.c +@@ -13,13 +13,13 @@ + static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){ + struct timespec tv1; + struct timespec tv2; +- int ret1=clock_gettime(d->private->clock,&tv1); ++ int ret1=clock_gettime(d->priv->clock,&tv1); + int ret2=ioctl(fd, command,arg); +- int ret3=clock_gettime(d->private->clock,&tv2); ++ int ret3=clock_gettime(d->priv->clock,&tv2); + if(ret1<0 || ret3<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; + } + return ret2; + } +diff --git a/interface/interface.c b/interface/interface.c +index e8a90cd..526c2a9 100644 +--- a/interface/interface.c ++++ b/interface/interface.c +@@ -39,9 +39,9 @@ int cdda_close(cdrom_drive *d){ + if(d->drive_model)free(d->drive_model); + if(d->cdda_fd!=-1)close(d->cdda_fd); + if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd); +- if(d->private){ +- if(d->private->sg_hd)free(d->private->sg_hd); +- free(d->private); ++ if(d->priv){ ++ if(d->priv->sg_hd)free(d->priv->sg_hd); ++ free(d->priv); + } + + free(d); +@@ -127,7 +127,7 @@ long cdda_read_timed(cdrom_drive *d, void *buffer, long beginsector, long sector + } + } + } +- if(ms)*ms=d->private->last_milliseconds; ++ if(ms)*ms=d->priv->last_milliseconds; + return(sectors); + } + +diff --git a/interface/scan_devices.c b/interface/scan_devices.c +index fc58110..5f6c4e3 100644 +--- a/interface/scan_devices.c ++++ b/interface/scan_devices.c +@@ -264,11 +264,11 @@ cdrom_drive *cdda_identify_cooked(const char *dev, int messagedest, + d->interface=COOKED_IOCTL; + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + { + /* goddamnit */ + struct timespec tv; +- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); ++ d->priv->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); + } + idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description); + return(d); +@@ -674,15 +674,15 @@ cdrom_drive *cdda_identify_scsi(const char *generic_device, + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; + d->messagedest = messagedest; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + { + /* goddamnit */ + struct timespec tv; +- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); ++ d->priv->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); + } + if(use_sgio){ + d->interface=SGIO_SCSI; +- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); ++ d->priv->sg_buffer=(unsigned char *)(d->priv->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); + g_fd=d->cdda_fd=dup(d->ioctl_fd); + }else{ + version=verify_SG_version(d,messagedest,messages); +@@ -696,8 +696,8 @@ cdrom_drive *cdda_identify_scsi(const char *generic_device, + } + + /* malloc our big buffer for scsi commands */ +- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE); +- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; ++ d->priv->sg_hd=malloc(MAX_BIG_BUFF_SIZE); ++ d->priv->sg_buffer=((unsigned char *)d->priv->sg_hd)+SG_OFF; + } + + { +@@ -772,9 +772,9 @@ cdda_identify_scsi_fail: + if(i_fd!=-1)close(i_fd); + if(g_fd!=-1)close(g_fd); + if(d){ +- if(d->private){ +- if(d->private->sg_hd)free(d->private->sg_hd); +- free(d->private); ++ if(d->priv){ ++ if(d->priv->sg_hd)free(d->priv->sg_hd); ++ free(d->priv); + } + free(d); + } +@@ -821,7 +821,7 @@ cdrom_drive *cdda_identify_test(const char *filename, int messagedest, + d->interface=TEST_INTERFACE; + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + d->drive_model=copystring("File based test interface"); + idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model); + +diff --git a/interface/scsi_interface.c b/interface/scsi_interface.c +index adbb9bf..75d90d4 100644 +--- a/interface/scsi_interface.c ++++ b/interface/scsi_interface.c +@@ -15,13 +15,13 @@ + static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){ + struct timespec tv1; + struct timespec tv2; +- int ret1=clock_gettime(d->private->clock,&tv1); ++ int ret1=clock_gettime(d->priv->clock,&tv1); + int ret2=ioctl(fd, command,arg); +- int ret3=clock_gettime(d->private->clock,&tv2); ++ int ret3=clock_gettime(d->priv->clock,&tv2); + if(ret1<0 || ret3<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; + } + return ret2; + } +@@ -96,7 +96,7 @@ static void tweak_SG_buffer(cdrom_drive *d) { + static void clear_garbage(cdrom_drive *d){ + fd_set fdset; + struct timeval tv; +- struct sg_header *sg_hd=d->private->sg_hd; ++ struct sg_header *sg_hd=d->priv->sg_hd; + int flag=0; + + /* clear out any possibly preexisting garbage */ +@@ -185,7 +185,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + struct timespec tv2; + int tret1,tret2; + int status = 0; +- struct sg_header *sg_hd=d->private->sg_hd; ++ struct sg_header *sg_hd=d->priv->sg_hd; + long writebytes=SG_OFF+cmd_len+in_size; + + /* generic scsi device services */ +@@ -195,7 +195,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + + memset(sg_hd,0,sizeof(sg_hd)); + memset(sense_buffer,0,SG_MAX_SENSE); +- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size); ++ memcpy(d->priv->sg_buffer,cmd,cmd_len+in_size); + sg_hd->twelve_byte = cmd_len == 12; + sg_hd->result = 0; + sg_hd->reply_len = SG_OFF + out_size; +@@ -209,7 +209,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + tell if the command failed. Scared yet? */ + + if(bytecheck && out_size>in_size){ +- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); ++ memset(d->priv->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); + /* the size does not remove cmd_len due to the way the kernel + driver copies buffers */ + writebytes+=(out_size-in_size); +@@ -243,7 +243,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + } + + sigprocmask (SIG_BLOCK, &(d->sigset), NULL ); +- tret1=clock_gettime(d->private->clock,&tv1); ++ tret1=clock_gettime(d->priv->clock,&tv1); + errno=0; + status = write(d->cdda_fd, sg_hd, writebytes ); + +@@ -289,7 +289,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + } + } + +- tret2=clock_gettime(d->private->clock,&tv2); ++ tret2=clock_gettime(d->priv->clock,&tv2); + errno=0; + status = read(d->cdda_fd, sg_hd, SG_OFF + out_size); + sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL ); +@@ -313,7 +313,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + if(bytecheck && in_size+cmd_lenprivate->sg_buffer[i]!=bytefill){ ++ if(d->priv->sg_buffer[i]!=bytefill){ + flag=1; + break; + } +@@ -326,9 +326,9 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + + errno=0; + if(tret1<0 || tret2<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; + } + return(0); + } +@@ -347,7 +347,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + + memset(&hdr,0,sizeof(hdr)); + memset(sense,0,sizeof(sense)); +- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size); ++ memcpy(d->priv->sg_buffer,cmd+cmd_len,in_size); + + hdr.cmdp = cmd; + hdr.cmd_len = cmd_len; +@@ -355,7 +355,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + hdr.mx_sb_len = SG_MAX_SENSE; + hdr.timeout = 50000; + hdr.interface_id = 'S'; +- hdr.dxferp = d->private->sg_buffer; ++ hdr.dxferp = d->priv->sg_buffer; + hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */ + + /* scary buffer fill hack */ +@@ -400,7 +400,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + if(bytecheck && in_sizeprivate->sg_buffer[i]!=bytefill){ ++ if(d->priv->sg_buffer[i]!=bytefill){ + flag=1; + break; + } +@@ -412,7 +412,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + } + + /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */ +- /* d->private->last_milliseconds = hdr.duration; */ ++ /* d->priv->last_milliseconds = hdr.duration; */ + + errno = 0; + return 0; +@@ -445,9 +445,9 @@ static int test_unit_ready(cdrom_drive *d){ + + handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense); + +- key = d->private->sg_buffer[2] & 0xf; +- ASC = d->private->sg_buffer[12]; +- ASCQ = d->private->sg_buffer[13]; ++ key = d->priv->sg_buffer[2] & 0xf; ++ ASC = d->priv->sg_buffer[12]; ++ ASCQ = d->priv->sg_buffer[13]; + + if(key == 2 && ASC == 4 && ASCQ == 1) return 0; + return 1; +@@ -492,7 +492,7 @@ static int mode_sense_atapi(cdrom_drive *d,int size,int page){ + if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1); + + { +- unsigned char *b=d->private->sg_buffer; ++ unsigned char *b=d->priv->sg_buffer; + if(b[0])return(1); /* Handles only up to 256 bytes */ + if(b[6])return(1); /* Handles only up to 256 bytes */ + +@@ -604,8 +604,8 @@ static int mode_select(cdrom_drive *d,int density,int secsize){ + static unsigned int get_orig_sectorsize(cdrom_drive *d){ + if(mode_sense(d,12,0x01))return(-1); + +- d->orgdens = d->private->sg_buffer[4]; +- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]); ++ d->orgdens = d->priv->sg_buffer[4]; ++ return(d->orgsize = ((int)(d->priv->sg_buffer[10])<<8)+d->priv->sg_buffer[11]); + } + + /* switch CDROM scsi drives to given sector size */ +@@ -664,8 +664,8 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-4); + } + +- first=d->private->sg_buffer[2]; +- last=d->private->sg_buffer[3]; ++ first=d->priv->sg_buffer[2]; ++ last=d->priv->sg_buffer[3]; + tracks=last-first+1; + + if (last > MAXTRK || first > MAXTRK || last<0 || first<0) { +@@ -683,7 +683,7 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-5); + } + { +- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); ++ scsi_TOC *toc=(scsi_TOC *)(d->priv->sg_buffer+4); + + d->disc_toc[i-first].bFlags=toc->bFlags; + d->disc_toc[i-first].bTrack=i; +@@ -704,7 +704,7 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-2); + } + { +- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); ++ scsi_TOC *toc=(scsi_TOC *)(d->priv->sg_buffer+4); + + d->disc_toc[i-first].bFlags=toc->bFlags; + d->disc_toc[i-first].bTrack=0xAA; +@@ -738,7 +738,7 @@ static int scsi_read_toc2 (cdrom_drive *d){ + } + + /* copy to our structure and convert start sector */ +- tracks = d->private->sg_buffer[1]; ++ tracks = d->priv->sg_buffer[1]; + if (tracks > MAXTRK) { + cderror(d,"003: CDROM reporting illegal number of tracks\n"); + return(-3); +@@ -754,33 +754,33 @@ static int scsi_read_toc2 (cdrom_drive *d){ + return(-5); + } + +- d->disc_toc[i].bFlags = d->private->sg_buffer[10]; ++ d->disc_toc[i].bFlags = d->priv->sg_buffer[10]; + d->disc_toc[i].bTrack = i + 1; + + d->disc_toc[i].dwStartSector= d->adjust_ssize * +- (((signed char)(d->private->sg_buffer[2])<<24) | +- (d->private->sg_buffer[3]<<16)| +- (d->private->sg_buffer[4]<<8)| +- (d->private->sg_buffer[5])); ++ (((signed char)(d->priv->sg_buffer[2])<<24) | ++ (d->priv->sg_buffer[3]<<16)| ++ (d->priv->sg_buffer[4]<<8)| ++ (d->priv->sg_buffer[5])); + } + + d->disc_toc[i].bFlags = 0; + d->disc_toc[i].bTrack = i + 1; +- memcpy (&foo, d->private->sg_buffer+2, 4); +- memcpy (&bar, d->private->sg_buffer+6, 4); ++ memcpy (&foo, d->priv->sg_buffer+2, 4); ++ memcpy (&bar, d->priv->sg_buffer+6, 4); + d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) + + be32_to_cpu(bar)); + + d->disc_toc[i].dwStartSector= d->adjust_ssize * +- ((((signed char)(d->private->sg_buffer[2])<<24) | +- (d->private->sg_buffer[3]<<16)| +- (d->private->sg_buffer[4]<<8)| +- (d->private->sg_buffer[5]))+ ++ ((((signed char)(d->priv->sg_buffer[2])<<24) | ++ (d->priv->sg_buffer[3]<<16)| ++ (d->priv->sg_buffer[4]<<8)| ++ (d->priv->sg_buffer[5]))+ + +- ((((signed char)(d->private->sg_buffer[6])<<24) | +- (d->private->sg_buffer[7]<<16)| +- (d->private->sg_buffer[8]<<8)| +- (d->private->sg_buffer[9])))); ++ ((((signed char)(d->priv->sg_buffer[6])<<24) | ++ (d->priv->sg_buffer[7]<<16)| ++ (d->priv->sg_buffer[8]<<8)| ++ (d->priv->sg_buffer[9])))); + + + d->cd_extra = FixupTOC(d,tracks+1); +@@ -817,7 +817,7 @@ static int i_read_28 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -836,7 +836,7 @@ static int i_read_A8 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -854,7 +854,7 @@ static int i_read_D4_10 (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -872,7 +872,7 @@ static int i_read_D4_12 (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -890,7 +890,7 @@ static int i_read_D5 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -908,7 +908,7 @@ static int i_read_D8 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -922,7 +922,7 @@ static int i_read_mmc (cdrom_drive *d, void *p, long begin, long sectors, unsign + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -936,7 +936,7 @@ static int i_read_mmcB (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -950,7 +950,7 @@ static int i_read_mmc2 (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -964,7 +964,7 @@ static int i_read_mmc2B (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -978,7 +978,7 @@ static int i_read_mmc3 (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -992,7 +992,7 @@ static int i_read_mmc3B (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1026,7 +1026,7 @@ static int i_read_msf (cdrom_drive *d, void *p, long begin, long sectors, unsign + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1039,7 +1039,7 @@ static int i_read_msf2 (cdrom_drive *d, void *p, long begin, long sectors, unsig + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1052,7 +1052,7 @@ static int i_read_msf3 (cdrom_drive *d, void *p, long begin, long sectors, unsig + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1275,7 +1275,7 @@ long scsi_read_msf3 (cdrom_drive *d, void *p, long begin, + static int count_2352_bytes(cdrom_drive *d){ + long i; + for(i=2351;i>=0;i--) +- if(d->private->sg_buffer[i]!=(unsigned char)'\177') ++ if(d->priv->sg_buffer[i]!=(unsigned char)'\177') + return(((i+3)>>2)<<2); + + return(0); +@@ -1284,7 +1284,7 @@ static int count_2352_bytes(cdrom_drive *d){ + static int verify_nonzero(cdrom_drive *d){ + long i,flag=0; + for(i=0;i<2352;i++) +- if(d->private->sg_buffer[i]!=0){ ++ if(d->priv->sg_buffer[i]!=0){ + flag=1; + break; + } +@@ -1625,7 +1625,7 @@ static int check_mmc(cdrom_drive *d){ + d->is_mmc=0; + if(mode_sense(d,22,0x2A)==0){ + +- b=d->private->sg_buffer; ++ b=d->priv->sg_buffer; + b+=b[3]+4; + + if((b[0]&0x3F)==0x2A){ +@@ -1673,7 +1673,7 @@ unsigned char *scsi_inquiry(cdrom_drive *d){ + cderror(d,"008: Unable to identify CDROM model\n"); + return(NULL); + } +- return (d->private->sg_buffer); ++ return (d->priv->sg_buffer); + } + + int scsi_init_drive(cdrom_drive *d){ +@@ -1742,8 +1742,8 @@ int scsi_init_drive(cdrom_drive *d){ + check_cache(d); + + d->error_retry=1; +- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); +- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; ++ d->priv->sg_hd=realloc(d->priv->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); ++ d->priv->sg_buffer=((unsigned char *)d->priv->sg_hd)+SG_OFF; + d->report_all=1; + return(0); + } +diff --git a/interface/test_interface.c b/interface/test_interface.c +index 11bec25..e1cefaa 100644 +--- a/interface/test_interface.c ++++ b/interface/test_interface.c +@@ -66,9 +66,9 @@ static long test_read(cdrom_drive *d, void *p, long begin, long sectors){ + if(!fd)fd=fdopen(d->cdda_fd,"r"); + + if(beginprivate->last_milliseconds=20; ++ d->priv->last_milliseconds=20; + else +- d->private->last_milliseconds=sectors; ++ d->priv->last_milliseconds=sectors; + + #ifdef CDDA_TEST_UNDERRUN + sectors-=1; +-- +1.9.1 + diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0003-Fix-missing-shared-object-LDFLAGS.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0003-Fix-missing-shared-object-LDFLAGS.patch new file mode 100644 index 00000000000..5298a3dcf2d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0003-Fix-missing-shared-object-LDFLAGS.patch @@ -0,0 +1,42 @@ +From c0b77aeb2127da821ae1c03c2f98aaf4db65277d Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Sat, 10 Sep 2016 21:15:18 +0200 +Subject: [PATCH] Fix missing shared object LDFLAGS + +Upstream-Status: Inappropriate (the upstream project is dead) + +Signed-off-by: Carlos Rafael Giani +--- + interface/Makefile.in | 2 +- + paranoia/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/interface/Makefile.in b/interface/Makefile.in +index 40c6098..020bf2a 100644 +--- a/interface/Makefile.in ++++ b/interface/Makefile.in +@@ -46,7 +46,7 @@ libcdda_interface.a: $(OFILES) + $(RANLIB) libcdda_interface.a + + libcdda_interface.so: $(OFILES) +- $(CC) -fpic -shared -o libcdda_interface.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_interface.so.0 $(OFILES) $(LIBS) ++ $(CC) -fpic -shared -o libcdda_interface.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_interface.so.0 $(LDFLAGS) $(OFILES) $(LIBS) + [ -e libcdda_interface.so.0 ] || ln -s libcdda_interface.so.0.$(VERSION) libcdda_interface.so.0 + [ -e libcdda_interface.so ] || ln -s libcdda_interface.so.0.$(VERSION) libcdda_interface.so + +diff --git a/paranoia/Makefile.in b/paranoia/Makefile.in +index 89d0328..ffb4e70 100644 +--- a/paranoia/Makefile.in ++++ b/paranoia/Makefile.in +@@ -44,7 +44,7 @@ libcdda_paranoia.a: $(OFILES) + $(RANLIB) libcdda_paranoia.a + + libcdda_paranoia.so: $(OFILES) +- $(CC) -fpic -shared -o libcdda_paranoia.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_paranoia.so.0 $(OFILES) -L ../interface -lcdda_interface ++ $(CC) -fpic -shared -o libcdda_paranoia.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_paranoia.so.0 $(LDFLAGS) $(OFILES) -L ../interface -lcdda_interface + [ -e libcdda_paranoia.so.0 ] || ln -s libcdda_paranoia.so.0.$(VERSION) libcdda_paranoia.so.0 + [ -e libcdda_paranoia.so ] || ln -s libcdda_paranoia.so.0.$(VERSION) libcdda_paranoia.so + +-- +2.7.4 + diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch new file mode 100644 index 00000000000..9b268b7ed61 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch @@ -0,0 +1,30 @@ +Index: cdparanoia-III-10.2/configure.in +=================================================================== +--- cdparanoia-III-10.2.orig/configure.in ++++ cdparanoia-III-10.2/configure.in +@@ -1,13 +1,8 @@ + AC_INIT(interface/interface.c) + +-cp $srcdir/configure.guess $srcdir/config.guess +-cp $srcdir/configure.sub $srcdir/config.sub +- + AC_CANONICAL_HOST + +-if test -z "$CC"; then +- AC_PROG_CC +-fi ++AC_PROG_CC + AC_PROG_RANLIB + AC_CHECK_PROG(AR,ar,ar) + AC_CHECK_PROG(INSTALL,install,install) +@@ -44,8 +39,8 @@ case 4 in + $ac_cv_sizeof_long) SIZE32="long";; + esac + +-AC_CHECK_TYPE(int16_t,SIZE16="int16_t",,) +-AC_CHECK_TYPE(int32_t,SIZE32="size32_t",,) ++AC_CHECK_TYPES([int16_t], [SIZE16="int16_t"], [], [[#include ]]) ++AC_CHECK_TYPES([int32_t], [SIZE32="int32_t"], [], [[#include ]]) + + if test -z "$SIZE16"; then + AC_MSG_ERROR(No 16 bit type found on this platform!) diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch new file mode 100644 index 00000000000..06ee82099db --- /dev/null +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch @@ -0,0 +1,42 @@ +Index: cdparanoia-III-10.2/Makefile.in +=================================================================== +--- cdparanoia-III-10.2.orig/Makefile.in ++++ cdparanoia-III-10.2/Makefile.in +@@ -6,6 +6,8 @@ + VERSION=10.2 + VPATH=@srcdir@ + srcdir=@srcdir@ ++top_srcdir=@top_srcdir@ ++top_builddir=@top_builddir@ + + @SET_MAKE@ + FLAGS=@TYPESIZES@ @CFLAGS@ +@@ -64,19 +66,19 @@ slib: + + install: + $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR) +- $(INSTALL) -m 755 $(srcdir)/cdparanoia $(DESTDIR)$(BINDIR) ++ $(INSTALL) -m 755 $(top_builddir)/cdparanoia $(DESTDIR)$(BINDIR) + $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR) + $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR)/man1 +- $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(DESTDIR)$(MANDIR)/man1 ++ $(INSTALL) -m 0644 $(top_srcdir)/cdparanoia.1 $(DESTDIR)$(MANDIR)/man1 + $(INSTALL) -d -m 0755 $(DESTDIR)$(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/cdda_paranoia.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(top_srcdir)/paranoia/cdda_paranoia.h $(DESTDIR)$(INCLUDEDIR) + $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.a $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/cdda_interface.h $(DESTDIR)$(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/utils.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(top_builddir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(top_builddir)/paranoia/libcdda_paranoia.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(top_srcdir)/interface/cdda_interface.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(top_builddir)/interface/libcdda_interface.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(top_builddir)/interface/libcdda_interface.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(top_srcdir)/utils.h $(DESTDIR)$(INCLUDEDIR) + ln -fs libcdda_interface.so.0.$(VERSION) \ + $(DESTDIR)$(LIBDIR)/libcdda_interface.so.0 + ln -fs libcdda_interface.so.0.$(VERSION) \ diff --git a/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch b/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch deleted file mode 100644 index 49350fe1884..00000000000 --- a/meta-multimedia/recipes-multimedia/coriander/coriander/cross-compile.patch +++ /dev/null @@ -1,17 +0,0 @@ -In a cross compile environment adding paths like /usr are not correct. -With this patch we make it so that its relative to sysroot if the compiler -defines one. - -Upstream-Status: Pending -Signed-off-by: Khem Raj -Index: a/src/Makefile.am -=================================================================== ---- a/src/Makefile.am 2013-02-08 22:35:08.000000000 -0800 -+++ b/src/Makefile.am 2013-10-13 01:31:38.812869080 -0700 -@@ -33,5 +33,5 @@ - video_encode.c video_encode.h \ - subtitles.c subtitles.h - --coriander_LDADD = -L/usr/X11R6/lib/ @PACKAGE_LIBS@ $(INTLLIBS) $(LIBTIFF_LIBS) $(FTPLIB_LIBS) $(SDLLIB_LIBS) $(LIBDC_LIBS) $(LIBRAW_LIBS) $(XV_LIBS) $(COR_LFS_LDFLAGS) -lgthread-2.0 $(FFMPEG_LIBS) $(X11_LIBS) -+coriander_LDADD = -L=/usr/X11R6/lib/ @PACKAGE_LIBS@ $(INTLLIBS) $(LIBTIFF_LIBS) $(FTPLIB_LIBS) $(SDLLIB_LIBS) $(LIBDC_LIBS) $(LIBRAW_LIBS) $(XV_LIBS) $(COR_LFS_LDFLAGS) -lgthread-2.0 $(FFMPEG_LIBS) $(X11_LIBS) - diff --git a/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb b/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb deleted file mode 100755 index a9f52cadb69..00000000000 --- a/meta-multimedia/recipes-multimedia/coriander/coriander_2.0.2.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Control and capture GUI for IIDC compliant cameras" -HOMEPAGE = "http://damien.douxchamps.net/ieee1394/coriander/" -SECTION = "applications" -LICENSE = "GPL-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -DEPENDS = "gtk+ libgnomeui libraw1394 libdc1394 libxv tiff" - -PNBLACKLIST[coriander] ?= "BROKEN: fails to use SDL probably because libsdl-config was removed, error: unknown type name 'SDL_Overlay'" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/coriander-2/${PV}/${BP}.tar.gz \ - file://cross-compile.patch \ - " - -SRC_URI[md5sum] = "431d98fb013217681f97ade168201fb8" -SRC_URI[sha256sum] = "5c7fd31cb58d398e2742352bf1ffbd2ca22e06686c6668ecfd437735c2b79123" - -inherit autotools gettext diff --git a/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb new file mode 100644 index 00000000000..45b53c11911 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "DTS Coherent Acoustics decoder with support for HD extensions" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c" + +SRCREV = "b93deed1a231dd6dd7e39b9fe7d2abe05aa00158" +SRC_URI = "git://github.com/foo86/dcadec.git;protocol=http" + +S = "${WORKDIR}/git" + +inherit lib_package + +EXTRA_OEMAKE = "CONFIG_SHARED=1" + +do_install() { + oe_runmake install DESTDIR="${D}" PREFIX="${prefix}" +} diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb new file mode 100644 index 00000000000..f23bc6ca811 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "D-Bus connector for dLeyna libraries" +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://src/connector-dbus.c;endline=21;md5=0a1695cef53beefc36651de439f643b5" + +DEPENDS = "glib-2.0 dbus dleyna-core" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "de913c35e5c936e2d40ddbd276ee902cd802bd3a" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +FILES_${PN} += "${libdir}/dleyna-1.0/connectors/*.so" +FILES_${PN}-dev += "${libdir}/dleyna-1.0/connectors/*.la" +FILES_${PN}-dbg += "${libdir}/dleyna-1.0/connectors/.debug/*.so" diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb new file mode 100644 index 00000000000..a3b27937217 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Utility functions for dLeyna libraries" +DESCRIPTION = "dleyna-core is a library of utility functions that are used \ +by the higher level dLeyna libraries that communicate with DLNA devices, \ +e.g., dleyna-server. In brief, it provides APIs for logging, error, settings \ +and task management and an IPC asbstraction API." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/core/core.c;endline=21;md5=139cba0c634344abc9456694fbb5083b" + +DEPENDS = "glib-2.0 gupnp" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "27a3786ec013f64fd58243410a60798f824acec3" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb new file mode 100644 index 00000000000..b30aee9fbe6 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "DLNA renderer libraries" +DESCRIPTION = "dleyna-renderer is a library for implementing services \ +that allow clients to discover and manipulate Digital Media Renderers. \ +An implementation of such a service for linux is also included." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/renderer/server.c;endline=21;md5=f51acd4757fb6a779a87122c43cf1346" + +DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 dleyna-core" +RDEPENDS_${PN} = "dleyna-connector-dbus" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "50fd1ec9d51328e7dea98874129dc8d6fe3ea1dd" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +CFLAGS += " -I${S}" + +FILES_${PN} += "${datadir}/dbus-1" +FILES_${PN}-dev += "${libdir}/${PN}/*.so" diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb new file mode 100644 index 00000000000..a8e5406d0ac --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "DLNA server libraries" +DESCRIPTION = "dleyna-server is a library for implementing services that \ +allow clients to discover, browse and manipulate Digital Media Servers. \ +An implementation of such a service for linux is also included." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/server/server.c;endline=22;md5=437455d8aeff69ebd0996a76c67397bb" + +DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 libxml2 dleyna-core" +RDEPENDS_${PN} = "dleyna-connector-dbus" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "776950d5d96ac9dbf5c5c47bde8ac06f50a3cf46" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +FILES_${PN} += "${datadir}/dbus-1" +FILES_${PN}-dev += "${libdir}/${PN}/*.so" diff --git a/meta-multimedia/recipes-multimedia/dleyna/media-service-demo_git.bb b/meta-multimedia/recipes-multimedia/dleyna/media-service-demo_git.bb deleted file mode 100644 index f7457fd5f4c..00000000000 --- a/meta-multimedia/recipes-multimedia/dleyna/media-service-demo_git.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "demonstration UI for dleyna" -HOMEPAGE = "https://01.org/dleyna/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://src/media-service-demo.py;beginline=3;endline=21;md5=2faa3862e32422b3c38a1501539aa8b4" - -SRCREV = "f4440e104f0d13e454234184c2c6eba982725baf" -PV = "0.0+git${SRCPV}" - -SRC_URI = "git://github.com/01org/media-service-demo.git" - -S = "${WORKDIR}/git" - -inherit distutils - -RDEPENDS_${PN} = "media-service-upnp python-dbus python-gst python-pygtk \ - python-crypt python-netclient python-dateutil" diff --git a/meta-multimedia/recipes-multimedia/dleyna/media-service-upnp_0.4.0.bb b/meta-multimedia/recipes-multimedia/dleyna/media-service-upnp_0.4.0.bb deleted file mode 100644 index 871eb6a9abe..00000000000 --- a/meta-multimedia/recipes-multimedia/dleyna/media-service-upnp_0.4.0.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "discover, browse and search UPNP/DLNA media servers" -HOMEPAGE = "https://01.org/dleyna/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://src/media-service-upnp.c;beginline=1;endline=21;md5=584eb103b4f6f3432c43d169b6a123a1" - -DEPENDS = "dbus glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4" - -SRC_URI = "git://github.com/01org/${BPN}.git" -SRCREV = "1996ecbe4a06c95d22f7d958e32e3d28f7a4a2e9" -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -do_install_append() { - install -d ${D}${bindir} - install -m 0755 dms-info ${D}${bindir} -} - -PACKAGES =+ "${PN}-tests" - -FILES_${PN} += "${datadir}/dbus-1/services/*.service" -FILES_${PN}-tests = "${bindir}/dms-info" diff --git a/meta-multimedia/recipes-multimedia/dleyna/renderer-service-upnp_0.3.0.bb b/meta-multimedia/recipes-multimedia/dleyna/renderer-service-upnp_0.3.0.bb deleted file mode 100644 index 68d59faca90..00000000000 --- a/meta-multimedia/recipes-multimedia/dleyna/renderer-service-upnp_0.3.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "discover and manipulate UPNP/DLNA media renderers" -HOMEPAGE = "https://01.org/dleyna/" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://src/renderer-service-upnp.c;beginline=1;endline=21;md5=c25c3082684eb4ca87474b7528c6dc15" - -PNBLACKLIST[renderer-service-upnp] ?= "BROKEN: doesn't build with B!=S (trying to install rendererconsole.py from ${B} instead of ${S})" - -DEPENDS = "dbus glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4" - -SRC_URI = "git://github.com/01org/${BPN}.git" -SRCREV = "4a0b1d7cd8e22d3cb0e09c77c344ceccbcbbd34f" -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -do_install_append() { - install -d ${D}${bindir} - install -m 0755 test/rendererconsole.py ${D}${bindir} -} - -PACKAGES =+ "${PN}-tests" - -RDEPENDS_${PN}-tests = "python-dbus python-json python-misc python-pkgutil python-xml" - -FILES_${PN} += "${datadir}/dbus-1/services/*.service" -# When we have GI, package cap -FILES_${PN}-tests = "${bindir}/rendererconsole.py" diff --git a/meta-multimedia/recipes-multimedia/faac/faac_1.28.bb b/meta-multimedia/recipes-multimedia/faac/faac_1.28.bb deleted file mode 100644 index d96c1a40155..00000000000 --- a/meta-multimedia/recipes-multimedia/faac/faac_1.28.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)" -SECTION = "libs" -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ - file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0" - -inherit autotools-brokensep - -SRC_URI = "${SOURCEFORGE_MIRROR}/faac/${BP}.tar.gz \ - file://build-fix.patch" - -SRC_URI[md5sum] = "80763728d392c7d789cde25614c878f6" -SRC_URI[sha256sum] = "c5141199f4cfb17d749c36ba8cfe4b25f838da67c22f0fec40228b6b9c3d19df" - -PACKAGES =+ "lib${BPN} lib${BPN}-dev" - -FILES_${PN} = " ${bindir}/faac " -FILES_lib${PN} = " ${libdir}/libfaac.so.*" -FILES_lib${PN}-dev = "${includedir}/faac.h ${includedir}/faaccfg.h ${libdir}/libfaac.so ${libdir}/libfaac.la" -FILES_lib${PN}-staticdev = "${libdir}/libfaac.a" - diff --git a/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb b/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb new file mode 100644 index 00000000000..4765c6c9caa --- /dev/null +++ b/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb @@ -0,0 +1,27 @@ +SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)" +SECTION = "libs" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0" + +inherit autotools + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/faac/${BP}.tar.gz \ + file://0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch \ +" + +SRC_URI[md5sum] = "78603720f655180059d6970c582a3005" +SRC_URI[sha256sum] = "8cc7b03ceb2722223a6457e95d4c994731d80214a03ba33d1af76ba53f4b3197" + +EXTRA_OECONF += "--without-mp4v2" + +PACKAGES =+ "lib${BPN} lib${BPN}-dev" + +FILES_${PN} = " ${bindir}/faac " +FILES_lib${PN} = " ${libdir}/*.so.*" +FILES_lib${PN}-dev = " \ + ${includedir} \ + ${libdir}/*.so \ + ${libdir}/*.la \ +" diff --git a/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch b/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch new file mode 100644 index 00000000000..d845ddf595d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch @@ -0,0 +1,28 @@ +From 46cc9298c38b9dd735fec3f39aa2d6e56a362410 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 21:33:36 -0700 +Subject: [PATCH 2/2] mp4v2: Define __STRING if cdefs.h does not exist + +Signed-off-by: Khem Raj +--- + common/mp4v2/mp4util.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/common/mp4v2/mp4util.h b/common/mp4v2/mp4util.h +index 1f9cb64..1e7aced 100644 +--- a/common/mp4v2/mp4util.h ++++ b/common/mp4v2/mp4util.h +@@ -23,6 +23,10 @@ + #define __MP4_UTIL_INCLUDED__ + #include + ++#ifndef __STRING ++#define __STRING(x) #x ++#endif ++ + #ifndef ASSERT + #define ASSERT(expr) \ + if (!(expr)) { \ +-- +2.12.1 + diff --git a/meta-multimedia/recipes-multimedia/faac/files/build-fix.patch b/meta-multimedia/recipes-multimedia/faac/files/build-fix.patch deleted file mode 100644 index 83cff8f89e1..00000000000 --- a/meta-multimedia/recipes-multimedia/faac/files/build-fix.patch +++ /dev/null @@ -1,332 +0,0 @@ -Patch fixing build error and warnings. Error consisted of redefining -strcasestr function from string.h. Warnings consisted of deprecated conversions -of string constants to char*, using '%llu' for type uint64_t (which on 64 bit -systems, is defined as unsigned long int by stdint.h), and using '==' for -equality of two strings. - -Patch originally from Debian. - -Upstream-Status: Pending - -========================================================================== ---- a/common/mp4v2/mpeg4ip.h -+++ b/common/mp4v2/mpeg4ip.h -@@ -120,14 +120,6 @@ - #endif - #include - --#ifdef __cplusplus --extern "C" { --#endif --char *strcasestr(const char *haystack, const char *needle); --#ifdef __cplusplus --} --#endif -- - #define OPEN_RDWR O_RDWR - #define OPEN_CREAT O_CREAT - #define OPEN_RDONLY O_RDONLY -@@ -135,7 +127,6 @@ - #define closesocket close - #define IOSBINARY ios::bin - --#if SIZEOF_LONG == 8 - #define MAX_UINT64 -1LU - #define D64F "ld" - #define U64F "lu" -@@ -143,15 +134,6 @@ - - #define TO_D64(a) (a##L) - #define TO_U64(a) (a##LU) --#else --#define MAX_UINT64 -1LLU --#define D64F "lld" --#define U64F "llu" --#define X64F "llx" -- --#define TO_D64(a) (a##LL) --#define TO_U64(a) (a##LLU) --#endif - - #ifdef HAVE_FPOS_T___POS - #define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)((fpos).__pos) ---- a/configure.in -+++ b/configure.in -@@ -4,6 +4,9 @@ - AM_INIT_AUTOMAKE - - AM_CONFIG_HEADER(config.h) -+AH_TOP([#ifndef CONFIG_H -+#define CONFIG_H]) -+AH_BOTTOM([#endif /* CONFIG_H */]) - - AC_ARG_WITH( mp4v2, [ --with-mp4v2 compile libmp4v2],WITHMP4V2=$withval, WITHMP4V2=yes) - AC_ARG_ENABLE( drm, [ --enable-drm Digital Radio Mondiale support], enable_drm=$enableval, enable_drm=no) ---- a/common/mp4v2/atom_avcC.cpp -+++ b/common/mp4v2/atom_avcC.cpp -@@ -29,7 +29,7 @@ - class SizeTableProperty : public MP4TableProperty - { - public: -- SizeTableProperty(char *name, MP4IntegerProperty *pCountProperty) : -+ SizeTableProperty(const char *name, MP4IntegerProperty *pCountProperty) : - MP4TableProperty(name, pCountProperty) {}; - protected: - void ReadEntry(MP4File *pFile, u_int32_t index) { ---- a/common/mp4v2/atom_ohdr.cpp -+++ b/common/mp4v2/atom_ohdr.cpp -@@ -21,7 +21,7 @@ - \param useCountedFormat counted format flag. - \param useUnicode unicode flag. - */ -- OhdrMP4StringProperty(char* name, bool useCountedFormat = false, -+ OhdrMP4StringProperty(const char* name, bool useCountedFormat = false, - bool useUnicode = false): MP4StringProperty(name, useCountedFormat, - useUnicode) { - } ---- a/common/mp4v2/atom_stz2.cpp -+++ b/common/mp4v2/atom_stz2.cpp -@@ -30,7 +30,7 @@ - class MP4HalfSizeTableProperty : public MP4TableProperty - { - public: -- MP4HalfSizeTableProperty(char *name, MP4IntegerProperty *pCountProperty) : -+ MP4HalfSizeTableProperty(const char *name, MP4IntegerProperty *pCountProperty) : - MP4TableProperty(name, pCountProperty) {}; - - // The count is half the actual size ---- a/common/mp4v2/mp4atom.cpp -+++ b/common/mp4v2/mp4atom.cpp -@@ -806,7 +806,7 @@ - AddProperty(new MP4Integer24Property("flags")); - } - --void MP4Atom::AddReserved(char* name, u_int32_t size) -+void MP4Atom::AddReserved(const char* name, u_int32_t size) - { - MP4BytesProperty* pReserved = new MP4BytesProperty(name, size); - pReserved->SetReadOnly(); ---- a/common/mp4v2/mp4atom.h -+++ b/common/mp4v2/mp4atom.h -@@ -204,7 +204,7 @@ - - void AddVersionAndFlags(); - -- void AddReserved(char* name, u_int32_t size); -+ void AddReserved(const char* name, u_int32_t size); - - void ExpectChildAtom(const char* name, - bool mandatory, bool onlyOne = true); ---- a/common/mp4v2/mp4file.cpp -+++ b/common/mp4v2/mp4file.cpp -@@ -718,7 +718,7 @@ - } - } - --void MP4File::ProtectWriteOperation(char* where) -+void MP4File::ProtectWriteOperation(const char* where) - { - if (m_mode == 'r') { - throw new MP4Error("operation not permitted in read mode", where); -@@ -1274,7 +1274,7 @@ - } - - // NULL terminated list of brands which require the IODS atom --char *brandsWithIods[] = { "mp42", -+const char *brandsWithIods[] = { "mp42", - "isom", - NULL}; - -@@ -2211,11 +2211,11 @@ - for (u_int32_t i = 0; i < m_pTracks.Size(); i++) { - if (!strcmp(normType, m_pTracks[i]->GetType())) { - if (subType) { -- if (normType == MP4_AUDIO_TRACK_TYPE) { -+ if (!strcmp(normType,MP4_AUDIO_TRACK_TYPE)) { - if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { - continue; - } -- } else if (normType == MP4_VIDEO_TRACK_TYPE) { -+ } else if (!strcmp(normType,MP4_VIDEO_TRACK_TYPE)) { - if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { - continue; - } -@@ -2278,11 +2278,11 @@ - for (u_int32_t i = 0; i < m_pTracks.Size(); i++) { - if (!strcmp(normType, m_pTracks[i]->GetType())) { - if (subType) { -- if (normType == MP4_AUDIO_TRACK_TYPE) { -+ if (!strcmp(normType,MP4_AUDIO_TRACK_TYPE)) { - if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { - continue; - } -- } else if (normType == MP4_VIDEO_TRACK_TYPE) { -+ } else if (!strcmp(normType,MP4_VIDEO_TRACK_TYPE)) { - if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { - continue; - } ---- a/common/mp4v2/mp4file.h -+++ b/common/mp4v2/mp4file.h -@@ -700,7 +700,7 @@ - const char* TempFileName(); - void Rename(const char* existingFileName, const char* newFileName); - -- void ProtectWriteOperation(char* where); -+ void ProtectWriteOperation(const char* where); - - void FindIntegerProperty(const char* name, - MP4Property** ppProperty, u_int32_t* pIndex = NULL); ---- a/common/mp4v2/mp4property.cpp -+++ b/common/mp4v2/mp4property.cpp -@@ -313,7 +313,7 @@ - - // MP4StringProperty - --MP4StringProperty::MP4StringProperty(char* name, -+MP4StringProperty::MP4StringProperty(const char* name, - bool useCountedFormat, bool useUnicode) - : MP4Property(name) - { -@@ -420,7 +420,7 @@ - - // MP4BytesProperty - --MP4BytesProperty::MP4BytesProperty(char* name, u_int32_t valueSize, -+MP4BytesProperty::MP4BytesProperty(const char* name, u_int32_t valueSize, - u_int32_t defaultValueSize) - : MP4Property(name) - { -@@ -549,7 +549,7 @@ - - // MP4TableProperty - --MP4TableProperty::MP4TableProperty(char* name, MP4IntegerProperty* pCountProperty) -+MP4TableProperty::MP4TableProperty(const char* name, MP4IntegerProperty* pCountProperty) - : MP4Property(name) - { - m_pCountProperty = pCountProperty; -@@ -725,7 +725,7 @@ - - // MP4DescriptorProperty - --MP4DescriptorProperty::MP4DescriptorProperty(char* name, -+MP4DescriptorProperty::MP4DescriptorProperty(const char* name, - u_int8_t tagsStart, u_int8_t tagsEnd, bool mandatory, bool onlyOne) - : MP4Property(name) - { ---- a/common/mp4v2/mp4property.h -+++ b/common/mp4v2/mp4property.h -@@ -100,7 +100,7 @@ - - class MP4IntegerProperty : public MP4Property { - protected: -- MP4IntegerProperty(char* name) -+ MP4IntegerProperty(const char* name) - : MP4Property(name) { }; - - public: -@@ -118,7 +118,7 @@ - #define MP4INTEGER_PROPERTY_DECL2(isize, xsize) \ - class MP4Integer##xsize##Property : public MP4IntegerProperty { \ - public: \ -- MP4Integer##xsize##Property(char* name) \ -+ MP4Integer##xsize##Property(const char* name) \ - : MP4IntegerProperty(name) { \ - SetCount(1); \ - m_values[0] = 0; \ -@@ -188,7 +188,7 @@ - - class MP4BitfieldProperty : public MP4Integer64Property { - public: -- MP4BitfieldProperty(char* name, u_int8_t numBits) -+ MP4BitfieldProperty(const char* name, u_int8_t numBits) - : MP4Integer64Property(name) { - ASSERT(numBits != 0); - ASSERT(numBits <= 64); -@@ -213,7 +213,7 @@ - - class MP4Float32Property : public MP4Property { - public: -- MP4Float32Property(char* name) -+ MP4Float32Property(const char* name) - : MP4Property(name) { - m_useFixed16Format = false; - m_useFixed32Format = false; -@@ -280,7 +280,7 @@ - - class MP4StringProperty : public MP4Property { - public: -- MP4StringProperty(char* name, -+ MP4StringProperty(const char* name, - bool useCountedFormat = false, bool useUnicode = false); - - ~MP4StringProperty(); -@@ -355,7 +355,7 @@ - - class MP4BytesProperty : public MP4Property { - public: -- MP4BytesProperty(char* name, u_int32_t valueSize = 0, -+ MP4BytesProperty(const char* name, u_int32_t valueSize = 0, - u_int32_t defaultValueSize = 0); - - ~MP4BytesProperty(); -@@ -419,7 +419,7 @@ - - class MP4TableProperty : public MP4Property { - public: -- MP4TableProperty(char* name, MP4IntegerProperty* pCountProperty); -+ MP4TableProperty(const char* name, MP4IntegerProperty* pCountProperty); - - ~MP4TableProperty(); - -@@ -469,7 +469,7 @@ - - class MP4DescriptorProperty : public MP4Property { - public: -- MP4DescriptorProperty(char* name = NULL, -+ MP4DescriptorProperty(const char* name = NULL, - u_int8_t tagsStart = 0, u_int8_t tagsEnd = 0, - bool mandatory = false, bool onlyOne = false); - -@@ -531,7 +531,7 @@ - - class MP4QosQualifierProperty : public MP4DescriptorProperty { - public: -- MP4QosQualifierProperty(char* name = NULL, -+ MP4QosQualifierProperty(const char* name = NULL, - u_int8_t tagsStart = 0, u_int8_t tagsEnd = 0, - bool mandatory = false, bool onlyOne = false) : - MP4DescriptorProperty(name, tagsStart, tagsEnd, mandatory, onlyOne) { } ---- a/common/mp4v2/mp4track.cpp -+++ b/common/mp4v2/mp4track.cpp -@@ -1360,7 +1360,7 @@ - } - } - --MP4Atom* MP4Track::AddAtom(char* parentName, char* childName) -+MP4Atom* MP4Track::AddAtom(const char* parentName, const char* childName) - { - MP4Atom* pChildAtom = MP4Atom::CreateAtom(childName); - ---- a/common/mp4v2/mp4track.h -+++ b/common/mp4v2/mp4track.h -@@ -168,7 +168,7 @@ - void UpdateSyncSamples(MP4SampleId sampleId, - bool isSyncSample); - -- MP4Atom* AddAtom(char* parentName, char* childName); -+ MP4Atom* AddAtom(const char* parentName, const char* childName); - - void UpdateDurations(MP4Duration duration); - MP4Duration ToMovieDuration(MP4Duration trackDuration); ---- a/common/mp4v2/ocidescriptors.cpp -+++ b/common/mp4v2/ocidescriptors.cpp -@@ -171,7 +171,7 @@ - - class MP4CreatorTableProperty : public MP4TableProperty { - public: -- MP4CreatorTableProperty(char* name, MP4Integer8Property* pCountProperty) : -+ MP4CreatorTableProperty(const char* name, MP4Integer8Property* pCountProperty) : - MP4TableProperty(name, pCountProperty) { - }; - protected: diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.6.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.6.bb deleted file mode 100644 index b0bc824c5ef..00000000000 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.6.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Fluidsynth is a software synthesizer" -HOMEPAGE = "http://www.fluidsynth.org/" -SECTION = "libs/multimedia" -LICENSE = "LGPL-2.0+" -LIC_FILES_CHKSUM = "file://COPYING;md5=e198e9aac94943d0ec29a7dae8c29416" - -DEPENDS = "alsa-lib ncurses glib-2.0" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}/${BP}.tar.gz" -SRC_URI[md5sum] = "ae5aca6de824b4173667cbd3a310b263" -SRC_URI[sha256sum] = "50853391d9ebeda9b4db787efb23f98b1e26b7296dd2bb5d0d96b5bccee2171c" - -inherit autotools-brokensep pkgconfig lib_package - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}" -PACKAGECONFIG[sndfile] = "--enable-libsndfile-support,--disable-libsndfile-support,libsndfile1" -PACKAGECONFIG[jack] = "--enable-jack-support,--disable-jack-support,jack" -PACKAGECONFIG[pulseaudio] = "--enable-pulse-support,--disable-pulse-support,pulseaudio" -PACKAGECONFIG[portaudio] = "--enable-portaudio-support,--disable-portaudio-support,portaudio" - -do_configure_prepend () { - rm -f ${S}/m4/* -} diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.8.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.8.bb new file mode 100644 index 00000000000..ef4c6065f6d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.8.bb @@ -0,0 +1,21 @@ +SUMMARY = "Fluidsynth is a software synthesizer" +HOMEPAGE = "http://www.fluidsynth.org/" +SECTION = "libs/multimedia" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594" + +DEPENDS = "alsa-lib ncurses glib-2.0" + +SRC_URI = "git://github.com/FluidSynth/fluidsynth.git;branch=1.1.x" +SRCREV = "12e7afe3a806a6b397f28e0ca4bc6bab9ebe7047" +S = "${WORKDIR}/git" + +inherit cmake pkgconfig lib_package + +EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}" +PACKAGECONFIG[sndfile] = "-Denable-libsndfile-support=ON,-Denable-libsndfile-support=OFF,libsndfile1" +PACKAGECONFIG[jack] = "-Denable-jack-support=ON,-Denable-jack-support=OFF,jack" +PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,--Denable-pulseaudio=OFF,pulseaudio" +PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19" diff --git a/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service b/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service new file mode 100644 index 00000000000..1b5a3ad3e9b --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service @@ -0,0 +1,13 @@ +[Unit] +Description=Start Gerbera, an UPnP media server +After=multi-user.target network-online.target +Wants=network-online.target + +[Service] +ExecStart=/usr/bin/gerbera +Environment='HOME=/root' +Type=simple +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb new file mode 100644 index 00000000000..f763cf1e42d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb @@ -0,0 +1,32 @@ +Description = "Gerbera - An UPnP media server" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8" + +SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https \ + file://gerbera.service \ +" + +PV = "1.0+git${SRCPV}" +SRCREV = "4435b165d121195aefd67d0287f7f9349e181d45" + +S = "${WORKDIR}/git" + +DEPENDS = "expat zlib curl libupnp e2fsprogs sqlite3 " + +SYSTEMD_SERVICE_${PN} = "gerbera.service" + +inherit cmake systemd + +PACKAGECONFIG = "" +PACKAGECONFIG[taglib] = "-DWITH_TAGLIB=TRUE,-DWITH_TAGLIB=FALSE,taglib" + +EXTRA_OECMAKE = "-DWITH_JS=FALSE -DWITH_MAGIC=FALSE -DWITH_EXIF=FALSE -DLIBUUID_INCLUDE_DIRS=${STAGING_INCDIR} -DLIBUUID_LIBRARIES=-luuid" + +do_install_append() { + install -d ${D}/root/.config/ + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/gerbera.service ${D}${systemd_system_unitdir}/ +} + +FILES_${PN} += "/root/.config/" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/lower-rank.diff b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/lower-rank.diff new file mode 100644 index 00000000000..5f08afe59af --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-ffmpeg-0.10.13/lower-rank.diff @@ -0,0 +1,16 @@ +Lower the rank of ffmpeg plugin so codecs that hook into accelerated pieces (e.g. dsp or hw engines) can get picked over this +Derived from OE by Dongxiao Xu + +Upstream-Status: Inappropriate [embedded specific] + +--- /tmp/gstffmpegdec.c 2009-03-05 09:31:15.000000000 +0100 ++++ gst-ffmpeg-0.10.6/ext/ffmpeg/gstffmpegdec.c 2009-03-05 09:33:09.000000000 +0100 +@@ -2588,7 +2588,7 @@ + case CODEC_ID_MSMPEG4V3: + case CODEC_ID_H264: + case CODEC_ID_COOK: +- rank = GST_RANK_PRIMARY; ++ rank = GST_RANK_SECONDARY; + break; + case CODEC_ID_DVVIDEO: + /* we have a good dv decoder, fast on both ppc as well as x86. they say diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb new file mode 100644 index 00000000000..1e2cd2a4ab7 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb @@ -0,0 +1,14 @@ +require gst-fluendo.inc + +SUMMARY = "Fluendo closed-format mp3 GStreamer plug-in" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2" +LICENSE_FLAGS = "commercial" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF += "${GSTREAMER_DEBUG} --with-gstreamer-api=0.10" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI[md5sum] = "adf0390f3416bb72f91c358528be0c38" +SRC_URI[sha256sum] = "dae0d0559a4e159c0dd92b7e18de059a5783f8d038904c7de4ca6393f7d55c7d" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb new file mode 100644 index 00000000000..7bba41a3416 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb @@ -0,0 +1,12 @@ +require gst-fluendo.inc + +SUMMARY = "Fluendo MPEG Transport Stream and Program Stream demuxer for GStreamer" +LICENSE = "MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=be282f1c3cc9a98cc0dc5c2b25dfc510 \ + file://src/gstmpegdemux.h;beginline=1;endline=19;md5=a9e90033f59897b91664d9f2a2ff01dd" +LICENSE_FLAGS = "commercial" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI[md5sum] = "7c4fb993f80b9ae631b11897733f0970" +SRC_URI[sha256sum] = "df04c91cc8e5d9a892c2492ed989974b4547beaa2a3647649e85113317897424" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc new file mode 100644 index 00000000000..7a77d624f28 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc @@ -0,0 +1,14 @@ +SUMMARY = "Fluendo closed-format GStreamer plug-in" +SECTION = "multimedia" +HOMEPAGE = "https://core.fluendo.com/gstreamer/trac/wiki" +DEPENDS = "gstreamer gst-plugins-base zlib" + +inherit autotools pkgconfig + +SRC_URI = "http://core.fluendo.com/gstreamer/src/${BPN}/${BPN}-${PV}.tar.bz2" + +FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" + +EXTRA_OECONF = "--disable-valgrind" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb new file mode 100644 index 00000000000..88f1abf68a2 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb @@ -0,0 +1,73 @@ +SUMMARY = "GStreamer package groups" +LICENSE = "MIT" + +COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}" +DEPENDS_UGLY="${@'gst-plugins-ugly' if 'ugly' in COMMERCIAL_PLUGINS.split('-') else ''}" +DEPENDS_BAD="${@'gst-plugins-bad' if 'bad' in COMMERCIAL_PLUGINS.split('-') else ''}" +DEPENDS = "gstreamer gst-plugins-base gst-plugins-good ${DEPENDS_UGLY} ${DEPENDS_BAD}" + +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + + +PR = "r13" + +PACKAGES = "\ + gst-meta-base \ + gst-meta-x11-base \ + gst-meta-audio \ + gst-meta-debug \ + gst-meta-video" + +ALLOW_EMPTY_gst-meta-base = "1" +ALLOW_EMPTY_gst-meta-x11-base = "1" +ALLOW_EMPTY_gst-meta-audio = "1" +ALLOW_EMPTY_gst-meta-debug = "1" +ALLOW_EMPTY_gst-meta-video = "1" + +RDEPENDS_gst-meta-base = "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \ + gstreamer \ + gst-plugins-base-playbin \ + gst-plugins-base-decodebin \ + gst-plugins-base-decodebin2 \ + gst-plugins-base-gio \ + gst-plugins-base-alsa \ + gst-plugins-base-volume \ + gst-plugins-base-audioconvert \ + gst-plugins-base-audioresample \ + gst-plugins-base-typefindfunctions \ + gst-plugins-base-videoscale \ + gst-plugins-base-ffmpegcolorspace \ + gst-plugins-good-autodetect \ + gst-plugins-good-souphttpsrc" + +RRECOMMENDS_gst-meta-x11-base = "\ + gst-plugins-base-ximagesink \ + gst-plugins-base-xvimagesink" + +RDEPENDS_gst-meta-audio = "\ + gst-meta-base \ + gst-plugins-base-vorbis \ + gst-plugins-base-ogg \ + gst-plugins-good-wavparse \ + gst-plugins-good-flac \ + ${COMMERCIAL_AUDIO_PLUGINS}" + + +RDEPENDS_gst-meta-debug = "\ + gst-meta-base \ + gst-plugins-good-debug \ + gst-plugins-base-audiotestsrc \ + gst-plugins-base-videotestsrc" + + +RDEPENDS_gst-meta-video = "\ + gst-meta-base \ + gst-plugins-good-avi \ + gst-plugins-good-matroska \ + gst-plugins-base-theora \ + ${COMMERCIAL_VIDEO_PLUGINS}" + +RRECOMMENDS_gst-meta-video = "\ + gst-meta-audio" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch new file mode 100644 index 00000000000..57a63b5a0f0 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch @@ -0,0 +1,18 @@ +Upstream-Status: Pending + +Signed-off-by: Saul Wold + +Index: gst-openmax-0.10.1/omx/gstomx.c +=================================================================== +--- gst-openmax-0.10.1.orig/omx/gstomx.c 2010-09-30 18:00:24.000000000 -0700 ++++ gst-openmax-0.10.1/omx/gstomx.c 2011-05-17 23:08:08.794535872 -0700 +@@ -238,7 +238,8 @@ + const gchar *element_name = gst_structure_nth_field_name (element_table, i); + GstStructure *element = get_element_entry (element_name); + const gchar *type_name, *parent_type_name; +- const gchar *component_name, *component_role, *library_name; ++ const gchar *component_name, *library_name; ++ const gchar __attribute__((__unused__)) *component_role; + GType type; + gint rank; + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch new file mode 100644 index 00000000000..5965bbafbbc --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch @@ -0,0 +1,46 @@ +Rename static functions that use GLib naming conventions as one of them +(g_ptr_array_insert) has now been added to GLib. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/omx/gstomx_util.c b/omx/gstomx_util.c +index 423e441..579dbf5 100644 +--- a/omx/gstomx_util.c ++++ b/omx/gstomx_util.c +@@ -85,7 +85,7 @@ static gboolean initialized; + */ + + static void +-g_ptr_array_clear (GPtrArray * array) ++omx_g_ptr_array_clear (GPtrArray * array) + { + guint index; + for (index = 0; index < array->len; index++) +@@ -93,7 +93,7 @@ g_ptr_array_clear (GPtrArray * array) + } + + static void +-g_ptr_array_insert (GPtrArray * array, guint index, gpointer data) ++omx_g_ptr_array_insert (GPtrArray * array, guint index, gpointer data) + { + if (index + 1 > array->len) { + g_ptr_array_set_size (array, index + 1); +@@ -394,7 +394,7 @@ g_omx_core_unload (GOmxCore * core) + } + + core_for_each_port (core, g_omx_port_free); +- g_ptr_array_clear (core->ports); ++ omx_g_ptr_array_clear (core->ports); + } + + static inline GOmxPort * +@@ -418,7 +418,7 @@ g_omx_core_new_port (GOmxCore * core, guint index) + } + + port = g_omx_port_new (core, index); +- g_ptr_array_insert (core->ports, index, port); ++ omx_g_ptr_array_insert (core->ports, index, port); + + return port; + } diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb new file mode 100644 index 00000000000..2e015795695 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb @@ -0,0 +1,35 @@ +SUMMARY = "GStreamer plug-in for communication with OpenMAX IL components" +DESCRIPTION = "GstOpenMAX is a GStreamer plug-in that allows \ +communication with OpenMAX Integration Layer (IL) components. OpenMAX \ +IL is an industry standard that provides an abstraction layer for \ +computer graphics, video, and sound routines." +HOMEPAGE = "http://freedesktop.org/wiki/GstOpenMAX" +DEPENDS = "gstreamer" +RDEPENDS_${PN} = "libomxil" +LICENSE = "LGPLv2.1" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://util/sem.h;beginline=1;endline=20;md5=accce5550d5583b839b441a0623f09fc" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gst-openmax/gst-openmax-${PV}.tar.bz2 \ + file://gcc_4.6.patch \ + file://ptr-array.patch \ + " + +inherit autotools pkgconfig + +# Tell configure that this isn't a development snapshot so we don't want +# -Werror (hopefully fixed in 0.10.2) +export GST_CVS="no" + +EXTRA_OECONF += "--disable-valgrind" + +PR = "r4" + +FILES_${PN} += "${libdir}/gstreamer-0.10/libgstomx.so" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/libgstomx.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/libgstomx.a" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug/" + +SRC_URI[md5sum] = "4d0370bfe99dea20918c84347abadb4e" +SRC_URI[sha256sum] = "9074d5a0591995133d19cfb15144f19664f902c1623f996595695cf2c2070e1f" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch new file mode 100644 index 00000000000..235acda8bfd --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch @@ -0,0 +1,36 @@ +Description: Fix buffer overflow in mp4 parsing +Author: Ralph Giles +--- +Backport patch from debian to fix CVE-2015-0797. +https://sources.debian.net/data/main/g/gst-plugins-bad0.10/0.10.23-7.1+deb7u2/debian/patches/buffer-overflow-mp4.patch + +Upstream-Status: Backport + +Signed-off-by: Kai Kang +--- +--- gst-plugins-bad0.10-0.10.23.orig/gst/videoparsers/gsth264parse.c ++++ gst-plugins-bad0.10-0.10.23/gst/videoparsers/gsth264parse.c +@@ -384,6 +384,11 @@ gst_h264_parse_wrap_nal (GstH264Parse * + + GST_DEBUG_OBJECT (h264parse, "nal length %d", size); + ++ if (size > G_MAXUINT32 - nl) { ++ GST_ELEMENT_ERROR (h264parse, STREAM, FAILED, (NULL), ++ ("overflow in nal size")); ++ return NULL; ++ } + buf = gst_buffer_new_and_alloc (size + nl + 4); + if (format == GST_H264_PARSE_FORMAT_AVC) { + GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf), size << (32 - 8 * nl)); +@@ -452,6 +457,11 @@ gst_h264_parse_process_nal (GstH264Parse + GST_DEBUG_OBJECT (h264parse, "not processing nal size %u", nalu->size); + return; + } ++ if (G_UNLIKELY (nalu->size > 20 * 1024 * 1024)) { ++ GST_DEBUG_OBJECT (h264parse, "not processing nal size %u (too big)", ++ nalu->size); ++ return; ++ } + + /* we have a peek as well */ + nal_type = nalu->type; diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb new file mode 100644 index 00000000000..38fccc8d01b --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb @@ -0,0 +1,61 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=629b0c7a665d155a6677778f4460ec06 \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c" + +DEPENDS += "gst-plugins-base" + +PR = "r4" + +SRC_URI += "file://buffer-overflow-mp4.patch" + +inherit gettext gsettings + +EXTRA_OECONF += "--disable-experimental \ + --disable-sdl --disable-cdaudio --disable-directfb \ + --disable-vdpau --disable-apexsink" + +PACKAGECONFIG ??= "bzip curl \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'rsvg', '', d)}" + +PACKAGECONFIG[bzip] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg," +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" +PACKAGECONFIG[mms] = "--enable-libmms,--disable-libmms,libmms" +PACKAGECONFIG[cog] = "--enable-cog,--disable-cog,libpng" +PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" +PACKAGECONFIG[jp2k] = "--enable-jp2k,--disable-jp2k,jasper" +PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" +PACKAGECONFIG[vp8] = "--enable-vp8,--disable-vp8,libvpx" +PACKAGECONFIG[ass] = "--enable-assrender,--disable-assrender,libass" +PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" +PACKAGECONFIG[schro] = "--enable-schro,--disable-schro,schroedinger" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" +PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" +PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdnav libdvdread" +PACKAGECONFIG[zbar] = "--enable-zbar,--disable-zbar,zbar jpeg" + +ARM_INSTRUCTION_SET = "arm" + +PACKAGES =+ "${PN}-resindvd" +FILES_${PN}-resindvd = "${libdir}/gstreamer-${LIBV}/libresindvd.so" +FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/libresindvd.la" +FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "fcb09798114461955260e4d940db5987" +SRC_URI[sha256sum] = "0eae7d1a1357ae8377fded6a1b42e663887beabe0e6cc336e2ef9ada42e11491" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch new file mode 100644 index 00000000000..29fbec5f807 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch @@ -0,0 +1,32 @@ +From 5478eafecf618cd8e742cc1b96d688a2c7ce5a79 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 2 Oct 2016 21:49:33 +0200 +Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +we are definitely not one of those poor souls mentioned + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + common/m4/gst-glib2.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 +index b01f02f..4569ae5 100644 +--- a/common/m4/gst-glib2.m4 ++++ b/common/m4/gst-glib2.m4 +@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], + fi + + dnl for the poor souls who for example have glib in /usr/local +- AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) + ]) +-- +2.5.5 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch new file mode 100644 index 00000000000..52142562ab6 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch @@ -0,0 +1,37 @@ +audioresample: Fix build on x86 if emmintrin.h is available but can't be used + +On x86, EMMINTRIN is defined but not usable without SSE so check for +__SSE__ and __SSE2__ as well. + +https://bugzilla.gnome.org/show_bug.cgi?id=670690 + +Upstream-Status: Backport + +Signed-off-by: Jackie Huang +--- + gst/audioresample/resample.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c +index 98d006c..481fa01 100644 +--- a/gst/audioresample/resample.c ++++ b/gst/audioresample/resample.c +@@ -77,13 +77,13 @@ + #define EXPORT G_GNUC_INTERNAL + + #ifdef _USE_SSE +-#ifndef HAVE_XMMINTRIN_H ++#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE + #endif + #endif + + #ifdef _USE_SSE2 +-#ifndef HAVE_EMMINTRIN_H ++#if !defined(__SSE2__) || !defined(HAVE_EMMINTRIN_H) + #undef _USE_SSE2 + #endif + #endif +-- +1.7.1 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch new file mode 100644 index 00000000000..b8602c80d7f --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch @@ -0,0 +1,27 @@ +Upstream-Status: Submitted [similar patch by other author, bugzilla] +Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600 + +Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't +search for gstconfig.h in /usr/include. + +Signed-off-by: Andreas Oberritter +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1901bcf..460fb0a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume) + dnl check for gstreamer core features (subsystems) + dnl FIXME: this assumes srcdir == builddir for uninstalled setups + GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h" +-AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH) ++AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH) + AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1") + + dnl disable plug-ins that require libxml2's HTML support if it is not available +-- +1.7.5.4 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch new file mode 100644 index 00000000000..99dbc9d52ef --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch @@ -0,0 +1,20 @@ +Remove -DTREMOR option since Tremor has dropped its internal +libogg2, and gst-plugins-base has dependency on that. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Dongxiao Xu +Signed-off-by: Shane Wang + +diff -r 70065fb4e085 ext/vorbis/Makefile.am +--- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800 ++++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800 +@@ -30,7 +30,7 @@ + gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c + libgstivorbisdec_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \ +- -DTREMOR $(IVORBIS_CFLAGS) ++ $(IVORBIS_CFLAGS) + libgstivorbisdec_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \ diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb new file mode 100644 index 00000000000..a3bfa5fe8ac --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb @@ -0,0 +1,44 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0" + +DEPENDS += "alsa-lib libogg libvorbis libtheora util-linux tremor glib-2.0-native" + +SRC_URI += "file://gst-plugins-base-tremor.patch \ + file://configure.ac-fix-subparse-plugin.patch \ + file://audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch \ + file://0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \ +" + +SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a" +SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976" + +PR = "r8" + +inherit gettext + +EXTRA_OECONF += "--disable-freetypetest" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[gnomevfs] = "--enable-gnome_vfs,--disable-gnome_vfs,gnome-vfs" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm -f ${S}/m4/lib-link.m4 +} + +FILES_${PN} += "${datadir}/${BPN}" + +CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" + +# /usr/bin/gst-visualise-0.10 is a perl script. +RDEPENDS_${PN}-apps += "perl" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch new file mode 100644 index 00000000000..bc2f88b2419 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch @@ -0,0 +1,35 @@ +From 14d51cbefef19737e7ab2b6818ee1d3bdb248d12 Mon Sep 17 00:00:00 2001 +From: Jeremy Stashluk +Date: Wed, 6 Feb 2013 09:59:48 -0500 +Subject: [PATCH] conditional gl framebuffer undefined use + +The OpenGL extension GL_ARB_framebuffer_object defines the macro +GL_FRAMEBUFFER_UNDEFINED. The macro will only need to map to an error +string if the extension provides functions that might return the macro. + +Upstream-Status: Pending + +Signed-off-by: Jeremy Stashluk +--- + gst-libs/gst/gl/gstgldisplay.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c +index 3ed0b71..64c6c2c 100644 +--- a/gst-libs/gst/gl/gstgldisplay.c ++++ b/gst-libs/gst/gl/gstgldisplay.c +@@ -2177,9 +2177,11 @@ gst_gl_display_check_framebuffer_status (void) + GST_ERROR ("GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"); + break; + ++#if defined(GL_ARB_framebuffer_object) + case GL_FRAMEBUFFER_UNDEFINED: + GST_ERROR ("GL_FRAMEBUFFER_UNDEFINED"); + break; ++#endif + + default: + GST_ERROR ("General FBO error"); +-- +1.7.9.5 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch new file mode 100644 index 00000000000..7db1c5afcc0 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch @@ -0,0 +1,22 @@ +Check for header and library separately and check for GLESv2 before egl +this is to overcome an annoying issue with rpi/userland where egl depends +on sysmbols from libGLESv2 + +-Khem +Index: gst-plugins-gl-0.10.3/configure.ac +=================================================================== +--- gst-plugins-gl-0.10.3.orig/configure.ac ++++ gst-plugins-gl-0.10.3/configure.ac +@@ -183,8 +183,10 @@ case $host in + else + AC_CHECK_HEADERS([EGL/egl.h], [HAVE_EGL=yes], [HAVE_EGL=no]) + if test "x$HAVE_EGL" = "xyes"; then +- AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h,, AC_MSG_ERROR([EGL is required])) +- AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h,, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_HEADERS([GLES2/gl2.h],, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_LIB(GLESv2,[glTexImage2D],, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_HEADERS([EGL/egl.h],, AC_MSG_ERROR([EGL is required])) ++ AC_CHECK_LIB(EGL,[eglGetError],, AC_MSG_ERROR([EGL is required])) + GL_LIBS="$LIBS $X_LIBS -lEGL -lGLESv2" + GL_BACKEND=x11ES2 + GL_TYPE=gles diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb new file mode 100644 index 00000000000..f3eaf30940c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb @@ -0,0 +1,29 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +SRC_URI[md5sum] = "ac70ede13f79978d56eaed8abaa3c938" +SRC_URI[sha256sum] = "48340b6a4b8abce16344a7bc33e74a94fdcce4f57ef6342cdf2f941c429bf210" + +SRC_URI += " file://0001-conditional-gl-framebuffer-undefined-use.patch \ + file://rpi-egl-gles2-dep.patch \ +" + +DEPENDS += "gst-plugins-base virtual/libgles2 virtual/egl jpeg libpng glew" + +PR = "r4" + +inherit gettext distro_features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +# This package doesn't have a configure switch for EGL or GL, so forcibly tell +# configure that it can't find gl.h so it always uses EGL. If/when we have some +# way for machines to specify their preferred GL flavour this can be +# automatically adapted. +EXTRA_OECONF += "ac_cv_header_GL_gl_h=no" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-apps = "1" +ALLOW_EMPTY_${PN}-glib = "1" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch new file mode 100644 index 00000000000..6456d3c6c21 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch @@ -0,0 +1,33 @@ +From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 5 Sep 2012 18:54:42 +0200 +Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input + field was removed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport + +[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012 + +Signed-off-by: Andreas Müller +--- + sys/v4l2/gstv4l2bufferpool.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c +index b81c6a4..51cc0ce 100644 +--- a/sys/v4l2/gstv4l2bufferpool.c ++++ b/sys/v4l2/gstv4l2bufferpool.c +@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps) + GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u", + ret->vbuffer.m.offset); + GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length); +- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input); + + data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length, + PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, +-- +1.7.6.5 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch new file mode 100644 index 00000000000..bd0de583a54 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch @@ -0,0 +1,45 @@ +From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Thu, 22 Aug 2013 12:15:54 -0400 +Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER + +kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls] +removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three +years of depreciation. + +The ioctl values are still free, and the case statement which processess them +in v4l2 userspace falls through to the proper replacement. So in the short +term, we can explicitly define them using the old absolute values, and everything +will work. + +Signed-off-by: Bruce Ashfield +--- + sys/v4l2/v4l2_calls.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c +index 309bfb6..3c64544 100644 +--- a/sys/v4l2/v4l2_calls.c ++++ b/sys/v4l2/v4l2_calls.c +@@ -54,11 +54,16 @@ + #include "gst/gst-i18n-plugin.h" + + /* Those are ioctl calls */ ++ ++/* V4L2_CID_HCENTER has been removed from the mainline kernel, but ++ the ioctl space is still present. Since these values fall through ++ to their replacement, it is safe (in the short term) to re-use the ++ old values explictily */ + #ifndef V4L2_CID_HCENTER +-#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED ++#define V4L2_CID_HCENTER V4L2_CID_BASE+22 + #endif + #ifndef V4L2_CID_VCENTER +-#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED ++#define V4L2_CID_VCENTER V4L2_CID_BASE+23 + #endif + + GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); +-- +1.7.10.4 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch new file mode 100644 index 00000000000..48b8e98b817 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch @@ -0,0 +1,47 @@ +From ce94b2c2b91b6db190c121860e12a6afafce7ae1 Mon Sep 17 00:00:00 2001 +From: Roland Krikava +Date: Fri, 2 Nov 2012 12:38:44 -0400 +Subject: [PATCH 407/440] mulawdec: fix integer overrun + +There might be more than 65535 samples in a chunk of data. + +https://bugzilla.gnome.org/show_bug.cgi?id=687469 + +Commit - 3be45f70220310ec1c60d819f90b5f2ae03b5d83 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Roland Krikava +--- + gst/law/mulaw-conversion.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/gst/law/mulaw-conversion.c b/gst/law/mulaw-conversion.c +index 8afae80..190a9f5 100644 +--- a/gst/law/mulaw-conversion.c ++++ b/gst/law/mulaw-conversion.c +@@ -51,9 +51,10 @@ mulaw_encode (gint16 * in, guint8 * out, gint numsamples) + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 + }; +- gint16 sign, exponent, mantissa, i; ++ gint16 sign, exponent, mantissa; + gint16 sample; + guint8 ulawbyte; ++ gint i; + + for (i = 0; i < numsamples; i++) { + sample = in[i]; +@@ -102,7 +103,8 @@ mulaw_decode (guint8 * in, gint16 * out, gint numsamples) + static gint16 exp_lut[8] = { 0, 132, 396, 924, 1980, 4092, 8316, 16764 }; + gint16 sign, exponent, mantissa; + guint8 ulawbyte; +- gint16 linear, i; ++ gint16 linear; ++ gint i; + + for (i = 0; i < numsamples; i++) { + ulawbyte = in[i]; +-- +1.7.9.5 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb new file mode 100644 index 00000000000..f993cfc1111 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb @@ -0,0 +1,47 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +PR = "r8" + +PACKAGECONFIG ?= "jpeg v4l \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ +" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" +PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" +PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,libgudev" +# sub-feature of v4l, but control separately since libv4l is not part of oe-core +PACKAGECONFIG[libv4l] = "--with-libv4l2,--without-libv4l2,libv4l" +PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,virtual/libx11 libxfixes libxdamage" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394" + +DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \ + speex libsoup-2.4 libcap" + +inherit gettext gconf + +SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch \ + file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch \ + file://0407-mulawdec-fix-integer-overrun.patch \ +" +EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \ + --disable-examples --disable-taglib" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6" +SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6" + +FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas" +FILES_${PN}-equalizer += "${datadir}/gstreamer-0.10/presets/*.prs" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch new file mode 100644 index 00000000000..1f72fc036c9 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch @@ -0,0 +1,193 @@ +From 649bd92cd2600719862ad5189899212409dd0a67 Mon Sep 17 00:00:00 2001 +From: Leon Merten Lohse +Date: Thu, 3 May 2012 23:50:30 +0100 +Subject: [PATCH] cdio: compensate for libcdio's recent cd-text api changes + +https://bugzilla.gnome.org/show_bug.cgi?id=675112 + +Conflicts: + + ext/cdio/gstcdiocddasrc.c + +Signed-off-by: Andreas Müller + +Upstream-Status: Backport +--- + ext/cdio/gstcdio.c | 35 ++++++++++++++++++++++++++++------- + ext/cdio/gstcdio.h | 16 ++++++++++++++++ + ext/cdio/gstcdiocddasrc.c | 19 +++++++++++++++++++ + 3 files changed, 63 insertions(+), 7 deletions(-) + +diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c +index 2f58d18..483ebf5 100644 +--- a/ext/cdio/gstcdio.c ++++ b/ext/cdio/gstcdio.c +@@ -30,12 +30,16 @@ + GST_DEBUG_CATEGORY (gst_cdio_debug); + + void +-gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, ++gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, track_t track, + cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags) + { + const gchar *txt; + ++#if LIBCDIO_VERSION_NUM > 83 ++ txt = cdtext_get_const (cdtext, field, track); ++#else + txt = cdtext_get_const (field, cdtext); ++#endif + if (txt == NULL || *txt == '\0') { + GST_DEBUG_OBJECT (src, "empty CD-TEXT field %u (%s)", field, gst_tag); + return; +@@ -57,6 +61,12 @@ gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, + } + + GstTagList * ++#if LIBCDIO_VERSION_NUM > 83 ++gst_cdio_get_cdtext (GstObject * src, cdtext_t * t, track_t track) ++{ ++ GstTagList *tags = NULL; ++ ++#else + gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) + { + GstTagList *tags = NULL; +@@ -67,14 +77,22 @@ gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) + GST_DEBUG_OBJECT (src, "no CD-TEXT for track %u", track); + return NULL; + } ++#endif + +- gst_cdio_add_cdtext_field (src, t, CDTEXT_PERFORMER, GST_TAG_ARTIST, &tags); +- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_TITLE, &tags); ++ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_PERFORMER, ++ GST_TAG_ARTIST, &tags); ++ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_TITLE, GST_TAG_TITLE, ++ &tags); + + return tags; + } + + void ++#if LIBCDIO_VERSION_NUM > 83 ++gst_cdio_add_cdtext_album_tags (GstObject * src, cdtext_t * t, ++ GstTagList * tags) ++{ ++#else + gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) + { + cdtext_t *t; +@@ -84,11 +102,14 @@ gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) + GST_DEBUG_OBJECT (src, "no CD-TEXT for album"); + return; + } ++#endif + +- /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */ +- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags); +- gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags); +- ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_PERFORMER, ++ GST_TAG_ALBUM_ARTIST, &tags); ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_TITLE, GST_TAG_ALBUM, ++ &tags); ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_GENRE, GST_TAG_GENRE, ++ &tags); + GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags); + } + +diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h +index ef31ed0..c6da580 100644 +--- a/ext/cdio/gstcdio.h ++++ b/ext/cdio/gstcdio.h +@@ -24,22 +24,38 @@ + #include + #include + #include ++#include ++ ++#if LIBCDIO_VERSION_NUM <= 83 ++ #define CDTEXT_FIELD_PERFORMER CDTEXT_PERFORMER ++ #define CDTEXT_FIELD_GENRE CDTEXT_GENRE ++ #define CDTEXT_FIELD_TITLE CDTEXT_TITLE ++#endif + + GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug); + #define GST_CAT_DEFAULT gst_cdio_debug + + void gst_cdio_add_cdtext_field (GstObject * src, + cdtext_t * cdtext, ++ track_t track, + cdtext_field_t field, + const gchar * gst_tag, + GstTagList ** p_tags); + + GstTagList * gst_cdio_get_cdtext (GstObject * src, ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t * t, ++#else + CdIo * cdio, ++#endif + track_t track); + + void gst_cdio_add_cdtext_album_tags (GstObject * src, ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t * t, ++#else + CdIo * cdio, ++#endif + GstTagList * tags); + + #endif /* __GST_CDIO_H__ */ +diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c +index 615a0c8..830839e 100644 +--- a/ext/cdio/gstcdiocddasrc.c ++++ b/ext/cdio/gstcdiocddasrc.c +@@ -206,6 +206,9 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device) + GstCdioCddaSrc *src; + discmode_t discmode; + gint first_track, num_tracks, i; ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t *cdtext; ++#endif + + src = GST_CDIO_CDDA_SRC (audiocdsrc); + +@@ -244,8 +244,18 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device) + if (src->read_speed != -1) + cdio_set_speed (src->cdio, src->read_speed); + ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext = cdio_get_cdtext (src->cdio); ++ ++ if (NULL == cdtext) ++ GST_DEBUG_OBJECT (src, "no CD-TEXT on disc"); ++ else ++ gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), cdtext, ++ cddabasesrc->tags); ++#else + gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio, + cddabasesrc->tags); ++#endif + + GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track); + +@@ -250,8 +263,14 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device) + * the right thing here (for cddb id calculations etc. as well) */ + track.start = cdio_get_track_lsn (src->cdio, i + first_track); + track.end = track.start + len_sectors - 1; /* -1? */ ++#if LIBCDIO_VERSION_NUM > 83 ++ if (NULL != cdtext) ++ track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), cdtext, ++ i + first_track); ++#else + track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), src->cdio, + i + first_track); ++#endif + + gst_audio_cd_src_add_track (GST_AUDIO_CD_SRC (src), &track); + } +-- +2.1.0 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch new file mode 100644 index 00000000000..3fd6a269741 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch @@ -0,0 +1,58 @@ +From e634bc6420826f760f6519a9f134c6a4d3412ef8 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Mon, 19 Oct 2015 15:26:24 +0200 +Subject: [PATCH] Fix opencore include paths + +Upstream-Status: Inappropriate [no upstream - GStreamer 0.10 is no longer being maintained] + +Signed-off-by: Carlos Rafael Giani +--- + ext/amrnb/amrnbdec.h | 2 +- + ext/amrnb/amrnbenc.h | 2 +- + ext/amrwbdec/amrwbdec.h | 4 ++-- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ext/amrnb/amrnbdec.h b/ext/amrnb/amrnbdec.h +index 1e81839..01b7154 100644 +--- a/ext/amrnb/amrnbdec.h ++++ b/ext/amrnb/amrnbdec.h +@@ -22,7 +22,7 @@ + + #include + #include +-#include ++#include + + G_BEGIN_DECLS + +diff --git a/ext/amrnb/amrnbenc.h b/ext/amrnb/amrnbenc.h +index 7f673ac..5be39b5 100644 +--- a/ext/amrnb/amrnbenc.h ++++ b/ext/amrnb/amrnbenc.h +@@ -21,7 +21,7 @@ + #define __GST_AMRNBENC_H__ + + #include +-#include ++#include + #include + + G_BEGIN_DECLS +diff --git a/ext/amrwbdec/amrwbdec.h b/ext/amrwbdec/amrwbdec.h +index c3528fc..f27c6d2 100644 +--- a/ext/amrwbdec/amrwbdec.h ++++ b/ext/amrwbdec/amrwbdec.h +@@ -22,8 +22,8 @@ + + #include + #include +-#include +-#include ++#include ++#include + + G_BEGIN_DECLS + +-- +1.9.1 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb new file mode 100644 index 00000000000..199b47d7624 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb @@ -0,0 +1,35 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://gst/synaesthesia/synaescope.h;beginline=1;endline=20;md5=99f301df7b80490c6ff8305fcc712838 \ + file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 \ + file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9" + +DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame" +PR = "r3" + +inherit gettext + +EXTRA_OECONF += "--with-plugins=a52dec,lame,id3tag,mad,mpeg2dec,mpegstream,mpegaudioparse,asfdemux,realmedia \ + --disable-orc" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" +PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread" +PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr" +PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "1d81c593e22a6cdf0f2b4f57eae93df2" +SRC_URI[sha256sum] = "1ca90059275c0f5dca71d4d1601a8f429b7852baed0723e820703b977e2c8df0" +SRC_URI += "file://0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch \ + file://0002-Fix-opencore-include-paths.patch" + +FILES_${PN}-amrnb += "${datadir}/gstreamer-0.10/presets/GstAmrnbEnc.prs" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc new file mode 100644 index 00000000000..6e163a8c493 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc @@ -0,0 +1,29 @@ +SUMMARY = "Plugins for the GStreamer multimedia framework" +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +DEPENDS = "gstreamer" + +# gobject-introspection to get --disable-introspection into UNKNOWN_CONFIGURE_WHITELIST +inherit autotools pkgconfig gobject-introspection + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples --disable-introspection" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +LIBV = "0.10" +require recipes-multimedia/gstreamer/gst-plugins-package.inc + +PACKAGES_DYNAMIC += "^${PN}-.*" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + if [ -e ${S}/po/Makefile.in.in ]; then + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in + fi +} diff --git a/meta-multimedia/recipes-multimedia/gstreamer/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch similarity index 100% rename from meta-multimedia/recipes-multimedia/gstreamer/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch rename to meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch diff --git a/meta-multimedia/recipes-multimedia/gstreamer/gst-rtsp_0.10.8.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb similarity index 94% rename from meta-multimedia/recipes-multimedia/gstreamer/gst-rtsp_0.10.8.bb rename to meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb index 931865651f4..b78bcaf5ac9 100644 --- a/meta-multimedia/recipes-multimedia/gstreamer/gst-rtsp_0.10.8.bb +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb @@ -9,6 +9,8 @@ SRC_URI[sha256sum] = "9915887cf8515bda87462c69738646afb715b597613edc7340477ccab6 DEPENDS = "gst-plugins-base gstreamer" +EXTRA_OECONF = "--disable-introspection" + # Configure always checks for Python so inherit pythonnative. Better solution # would be to disable the checks entirely. inherit autotools pythonnative gettext diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch new file mode 100644 index 00000000000..d07749682b6 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch @@ -0,0 +1,32 @@ +From ed7f4802222234eef192aa3f74bc92268f338f97 Mon Sep 17 00:00:00 2001 +From: Sebastian Droege +Date: Tue, 6 Mar 2012 12:28:02 +0100 +Subject: [PATCH] baseparse: Fix 'self-comparison always evaluates to true' + +This was really a bug. + +Commit is ed7f4802222234eef192aa3f74bc92268f338f97 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Sebastian Droege +--- + libs/gst/base/gstbaseparse.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c +index 851ec1d..108ee89 100644 +--- a/libs/gst/base/gstbaseparse.c ++++ b/libs/gst/base/gstbaseparse.c +@@ -3899,7 +3899,7 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event) + seek event (in bytes) to upstream. Segment / flush handling happens + in corresponding src event handlers */ + GST_DEBUG_OBJECT (parse, "seek in PUSH mode"); +- if (seekstop >= 0 && seekpos <= seekpos) ++ if (seekstop >= 0 && seekstop <= seekpos) + seekstop = seekpos; + new_event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags, + GST_SEEK_TYPE_SET, seekpos, stop_type, seekstop); +-- +1.7.9.5 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch new file mode 100644 index 00000000000..dc2d606122b --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch @@ -0,0 +1,35 @@ +From 60516f4798894f958fc53b470e1283318d0f8706 Mon Sep 17 00:00:00 2001 +From: Kerrick Staley +Date: Tue, 20 Aug 2013 23:59:29 -0700 +Subject: [PATCH 1/2] parse: make grammar.y work with Bison 3 + +YYLEX_PARAM is no longer supported in Bison 3. + +https://bugzilla.gnome.org/show_bug.cgi?id=706462 +--- + gst/parse/grammar.y | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y +index 24fc87b..7f9dd16 100644 +--- a/gst/parse/grammar.y ++++ b/gst/parse/grammar.y +@@ -26,7 +26,6 @@ + */ + + #define YYERROR_VERBOSE 1 +-#define YYLEX_PARAM scanner + + #define YYENABLE_NLS 0 + +@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s); + %right '.' + %left '!' '=' + ++%lex-param { void *scanner } + %parse-param { void *scanner } + %parse-param { graph_t *graph } + %pure-parser +-- +2.7.2 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch new file mode 100644 index 00000000000..8db39663132 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch @@ -0,0 +1,32 @@ +From 4b145ceb22bbce7ba6e209c6ab61f2d5867e69f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 1 Nov 2016 19:02:30 +0100 +Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +we are definitely not one of those poor souls mentioned + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + common/m4/gst-glib2.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 +index b01f02f..4569ae5 100644 +--- a/common/m4/gst-glib2.m4 ++++ b/common/m4/gst-glib2.m4 +@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], + fi + + dnl for the poor souls who for example have glib in /usr/local +- AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) + ]) +-- +2.5.5 + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch new file mode 100644 index 00000000000..5d8bb134032 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch @@ -0,0 +1,19 @@ +# gstreamer: Fix a problem with configure if check has already been built +# Richard Purdie + +Upstream-Status: Inappropriate [configuration] + +diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac +--- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800 ++++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800 +@@ -543,8 +543,10 @@ + *) BUILD_CHECK=yes ;; + esac + ]) ++ + dnl bit of a misnomer, but keep the conditional named like this so we don't + dnl have to change too much elsewhere ++HAVE_CHECK=no + AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes") + + dnl configure the desired buffer alignment diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch new file mode 100644 index 00000000000..30be85f59d8 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch @@ -0,0 +1,16 @@ +# Fix crash with gst-inspect +# Chris Lord + +Upstream-Status: Pending + +--- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100 ++++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100 +@@ -1123,7 +1123,7 @@ + g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE); + g_option_context_add_group (ctx, gst_init_get_option_group ()); + if (!g_option_context_parse (ctx, &argc, &argv, &err)) { +- g_print ("Error initializing: %s\n", err->message); ++ g_print ("Error initializing: %s\n", err ? err->message : "(null)"); + exit (1); + } + g_option_context_free (ctx); diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c new file mode 100644 index 00000000000..c1f3e71af64 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c @@ -0,0 +1,487 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * 2005 David A. Schleef + * + * gstregistryxml.c: GstRegistry object, support routines + * + * This library is free software; you can redistribute it and/or + * modify it ulnder the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#include + +/* +** Simple handy function to write a memory location to the registry cache file +*/ +inline static gboolean +gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size) +{ + if (write(registry->cache_file, mem, size) != size) + { + GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n", + mem, size, strerror(errno)); + return FALSE; + } + return TRUE; +} + +/* +** Save features GstBinary style +*/ +static gboolean +gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name) +{ + GstBinaryChunck *chk; + + if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = dest; + chk->size = sizeof (GstBinaryPluginFeature); + + *list = g_list_append(*list, chk); + + dest->rank = orig->rank; + if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) || + !strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + + if (GST_IS_ELEMENT_FACTORY(orig)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(orig); + + if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) || + !strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) || + !strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) || + !strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + } + + dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0; + return TRUE; + + fail: + free(chk); + return FALSE; +} + + +/* +** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version +*/ +inline static gboolean +gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m) +{ + if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) || + !strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Failed to write magic to the registry magic structure"); + return FALSE; + } + return TRUE; +} + +/* +** Check GstBinaryRegistryMagic validity. +** Return a pointer pointing right after the magic structure +*/ +static gchar * +gst_registry_binary_check_magic(gchar *in) +{ + GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in; + + if (m == NULL || m->magic == NULL || m->version == NULL) + { + GST_ERROR("Binary registry magic structure is broken"); + return NULL; + } + if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0) + { + GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x", + GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff, + GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff, + m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff); + return NULL; + } + if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Binary registry magic version is different : %s != %s", + GST_MAJORMINOR, m->version); + return NULL; + } + return (in + sizeof (GstBinaryRegistryMagic)); +} + +/* +** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the +** registry file. +*/ +static gboolean +gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin) +{ + GstBinaryPluginElement *e; + GstBinaryChunck *chk; + GList *walk; + + if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL || + (chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = e; + chk->size = sizeof (GstBinaryPluginElement); + *list = g_list_append(*list, chk); + + if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) || + !strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) || + !strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) || + !strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) || + !strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) || + !strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) || + !strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) || + !strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN)) + { + GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement"); + goto fail; + } + + e->size = plugin->file_size; + e->m32p = plugin->file_mtime; + + GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name); + + for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++) + { + GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data); + GstBinaryPluginFeature *newfeat; + const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat)); + + if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL) + goto fail; + + if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name)) + { + GST_ERROR("Can't fill plugin feature, aborting."); + goto fail; + } + } + + GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name); + return TRUE; + + fail: + free(chk); + free(e); + return FALSE; +} + +/* +** Write the cache to file. Part of the code was taken from gstregistryxml.c +*/ +gboolean +gst_registry_binary_write_cache(GstRegistry *registry, const char *location) +{ + GList *walk; + char *tmp_location; + GstBinaryRegistryMagic *magic; + GstBinaryChunck *magic_chunck; + GList *to_write = NULL; + + GST_INFO("Writing binary registry cache"); + + g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE); + tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL); + registry->cache_file = g_mkstemp (tmp_location); + if (registry->cache_file == -1) + { + char *dir; + + /* oops, I bet the directory doesn't exist */ + dir = g_path_get_dirname (location); + g_mkdir_with_parents (dir, 0777); + g_free (dir); + + registry->cache_file = g_mkstemp (tmp_location); + } + + if (registry->cache_file == -1) + goto fail; + + if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL || + !gst_registry_binary_initialize_magic(magic)) + goto fail; + + if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL) + goto fail; + + magic_chunck->data = magic; + magic_chunck->size = sizeof (GstBinaryRegistryMagic); + to_write = g_list_append(to_write, magic_chunck); + + /* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */ + for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk)) + { + GstPlugin *plugin = GST_PLUGIN(walk->data); + + if (!plugin->filename) + continue; + + if (plugin->flags & GST_PLUGIN_FLAG_CACHED) + { + int ret; + struct stat statbuf; + + ret = g_stat (plugin->filename, &statbuf); + if ((ret = g_stat (plugin->filename, &statbuf)) < 0 || + plugin->file_mtime != statbuf.st_mtime || + plugin->file_size != statbuf.st_size) + continue; + } + + if (!gst_registry_binary_save_plugin(&to_write, registry, plugin)) + { + GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename); + continue; /* Try anyway */ + } + } + + for (walk = g_list_first(to_write); walk; walk = g_list_next(walk)) + { + GstBinaryChunck *cur = walk->data; + + if (!gst_registry_binary_write(registry, cur->data, cur->size)) + { + free(cur->data); + free(cur); + g_list_free(to_write); + goto fail; + } + free(cur->data); + free(cur); + } + g_list_free(to_write); + + if (close(registry->cache_file) < 0) + { + GST_DEBUG("Can't close registry file : %s", strerror(errno)); + goto fail; + } + + if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) { +#ifdef WIN32 + remove (location); +#endif + rename (tmp_location, location); + } + + g_free (tmp_location); + return TRUE; + + fail: + g_free(tmp_location); + return FALSE; +} + +static GstPluginFeature* +gst_registry_binary_load_feature(GstBinaryPluginFeature *in) +{ + GstPluginFeature *feature; + GType type; + + if (!in->typename || !*(in->typename)) + return NULL; + + /* GST_INFO("Plugin feature typename : %s", in->typename);*/ + + if (!(type = g_type_from_name(in->typename))) + { + GST_ERROR("Unknown type from typename"); + return NULL; + } + feature = g_object_new (type, NULL); + + if (!feature) { + GST_ERROR("Can't create feature from type"); + return NULL; + } + + if (!GST_IS_PLUGIN_FEATURE (feature)) { + /* don't really know what it is */ + if (GST_IS_OBJECT (feature)) + gst_object_unref (feature); + else + g_object_unref (feature); + return NULL; + } + + feature->name = g_strdup(in->name); + feature->rank = in->rank; + + if (GST_IS_ELEMENT_FACTORY(feature)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(feature); + + factory->details.longname = g_strdup(in->longname); + factory->details.klass = g_strdup(in->class); + factory->details.description = g_strdup(in->description); + factory->details.author = g_strdup(in->author); + + /* GST_INFO("Element factory : %s", factory->details.longname); */ + } + + GST_DEBUG("Added feature %p with name %s", feature, feature->name); + return feature; +} + +/* +** Make a new plugin from current GstBinaryPluginElement structure +** and save it to the GstRegistry. Return an offset to the next +** GstBinaryPluginElement structure. +*/ +static unsigned long +gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in) +{ + GstBinaryPluginElement *p = (GstBinaryPluginElement *) in; + GstPlugin *plugin = NULL; + GList *plugin_features = NULL; + GstBinaryPluginFeature *feat; + unsigned int i; + unsigned long offset; + + plugin = g_object_new (GST_TYPE_PLUGIN, NULL); + + plugin->flags |= GST_PLUGIN_FLAG_CACHED; + + plugin->desc.name = g_strdup(p->name); + plugin->desc.description= g_strdup(p->description); + plugin->filename = g_strdup(p->filename); + plugin->desc.version = g_strdup(p->version); + plugin->desc.license = g_strdup(p->license); + plugin->desc.source = g_strdup(p->source); + plugin->desc.package = g_strdup(p->package); + plugin->desc.origin = g_strdup(p->origin); + plugin->file_mtime = p->m32p; + plugin->file_size = p->size; + plugin->basename = g_path_get_basename (plugin->filename); + + if (plugin->file_mtime < 0 || plugin->file_size < 0) + { + GST_ERROR("Plugin time or file size is not valid !"); + g_free(plugin); + return -1; + } + + if (p->nfeatures < 0) + { + GST_ERROR("The number of feature structure is not valid !"); + gst_object_unref(plugin); + return -1; + } + + for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0; + i < p->nfeatures; i++, feat++) + { + GstPluginFeature *gstfeat; + + if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL) + { + g_list_free(plugin_features); + g_free(plugin); + GST_ERROR("Error while loading binary feature"); + return -1; + } + gstfeat->plugin_name = g_strdup(plugin->desc.name); + plugin_features = g_list_prepend(plugin_features, gstfeat); + } + + GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name); + GList *g; + + gst_registry_add_plugin (registry, plugin); + for (g = plugin_features; g; g = g_list_next (g)) + gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data)); + /* g_list_free(plugin_features); */ + + offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature); + return offset; +} + + +/* +** Read the cache and adapt it to fill GstRegistry +*/ +gboolean +gst_registry_binary_read_cache(GstRegistry *registry, const char *location) +{ + GMappedFile *mapped = NULL; + GTimer *timer = NULL; + gchar *contents = NULL; + gdouble seconds; + unsigned long offset, inc; + gsize size; + + /* make sure these types exist */ + GST_TYPE_ELEMENT_FACTORY; + GST_TYPE_TYPE_FIND_FACTORY; + GST_TYPE_INDEX_FACTORY; + + timer = g_timer_new (); + + if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL || + (contents = g_mapped_file_get_contents(mapped)) == NULL) + { + GST_ERROR("Can't load file : %s", strerror(errno)); + return FALSE; + } + if ((contents = gst_registry_binary_check_magic(contents)) == NULL) + { + GST_ERROR("Binary registry type not recognized (invalid magic)"); + g_mapped_file_free(mapped); + return FALSE; + } + + if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement)) + { + GST_INFO("No binary plugins structure to read"); + return TRUE; /* This is not really an error */ + } + + for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size && + (inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0; + offset += inc) + ; /* May want in the future to do something here */ + if (inc < 0) + { + GST_DEBUG("Problem while reading binary registry"); + return FALSE; + } + + g_timer_stop (timer); + seconds = g_timer_elapsed (timer, NULL); + g_timer_destroy (timer); + + GST_INFO ("loaded %s in %f seconds", location, seconds); + + if (mapped) + g_mapped_file_free (mapped); + return TRUE; +} diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h new file mode 100644 index 00000000000..2ef24d765df --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h @@ -0,0 +1,194 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * + * gstregistry.h: Header for registry handling + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* SUGGESTIONS AND TODO : +** ==================== +** - Use a compressed registry, but would induce performance loss +** - Encrypt the registry, for security purpose, but would also reduce performances +** - Also have a non-mmap based cache reading (work with file descriptors) +*/ + +#ifndef __GST_REGISTRYBINARY_H__ +#define __GST_REGISTRYBINARY_H__ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "glib-compat-private.h" +#include + +/* A magic, written at the beginning of the file */ +#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d" +#define GST_MAGIC_BINARY_REGISTRY_LEN (4) +#define GST_MAGIC_BINARY_VERSION_LEN (64) + +typedef struct _GstBinaryRegistryMagic +{ + char magic[GST_MAGIC_BINARY_REGISTRY_LEN]; + char version[GST_MAGIC_BINARY_VERSION_LEN]; +} GstBinaryRegistryMagic; + + +/* Used to store pointers to write */ +typedef struct _GstBinaryChunck +{ + void *data; + unsigned int size; +} GstBinaryChunck; + + +/* A structure containing (staticely) every information needed for a plugin +** +** Notes : +** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have +** right after the structure itself. +*/ + +/* Various lenght defines for our GstBinaryPluginElement structure +** Note : We could eventually use smaller size +*/ +#define GST_BINARY_REGISTRY_NAME_LEN (256) +#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_VERSION_LEN (64) +#define GST_BINARY_REGISTRY_LICENSE_LEN (256) +#define GST_BINARY_REGISTRY_SOURCE_LEN (256) +#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024) +#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024) + +typedef struct _GstBinaryPluginElement +{ + char name[GST_BINARY_REGISTRY_NAME_LEN]; + char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN]; + char filename[_POSIX_PATH_MAX]; + char version[GST_BINARY_REGISTRY_VERSION_LEN]; + char license[GST_BINARY_REGISTRY_LICENSE_LEN]; + char source[GST_BINARY_REGISTRY_SOURCE_LEN]; + char package[GST_BINARY_REGISTRY_PACKAGE_LEN]; + char origin[GST_BINARY_REGISTRY_ORIGIN_LEN]; + unsigned long size; + unsigned long m32p; + unsigned int nfeatures; +} GstBinaryPluginElement; + + +/* A structure containing the plugin features +** +** Note : +** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself. +** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself. +** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself. +*/ +#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512) +#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256) + +typedef struct _GstBinaryPluginFeature +{ + char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN]; + char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN]; + unsigned long rank; + char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN]; + char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN]; + char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN]; + char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN]; + unsigned int npadtemplates; + unsigned int ninterfaces; + unsigned int nuritypes; +} GstBinaryPluginFeature; + + +/* +** A structure containing the static pad templates of a plugin feature +*/ +#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256) +#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024) + +typedef struct _GstBinaryPadTemplate +{ + char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN]; + char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN]; + int direction; /* Either 0:"sink" or 1:"src" */ + GstPadPresence presence; +} GstBinaryPadTemplate; + +/* +** A very simple structure defining the plugin feature interface string +*/ +#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512) +typedef struct _GstBinaryInterface +{ + char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN]; + unsigned long size; +} GstBinaryInterface; + +/* Uri Type */ +typedef struct _GstBinaryUriType +{ + GstURIType type; + unsigned long nuriprotocols; +} GstBinaryUriType; + +/* +** Function prototypes +*/ + +/* Local prototypes */ +inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size); +inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m); +static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *); +static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin); +static gchar *gst_registry_binary_check_magic(gchar *in); +static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *); +static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in); + +/* Exportable */ +gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location); +gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location); + +#endif /* !__GST_REGISTRYBINARY_H__ */ + + diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb new file mode 100644 index 00000000000..5f97a20fd6c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb @@ -0,0 +1,53 @@ +SUMMARY = "GStreamer multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4" +DEPENDS = "glib-2.0 libxml2 bison-native flex-native glib-2.0-native" + +PR = "r2" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \ + file://check_fix.patch \ + file://gst-inspect-check-error.patch \ + file://0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch \ + file://0001-parse-make-grammar.y-work-with-Bison-3.patch \ + file://0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \ +" + +SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b" +SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30" + +inherit autotools pkgconfig gettext + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \ + --disable-dependency-tracking --disable-check \ + --disable-examples --disable-tests \ + --disable-valgrind ${GSTREAMER_DEBUG} \ + --disable-introspection \ + " + +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in +} + +#do_compile_prepend () { +# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/ +#} + +RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" +RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" + +FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" +FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/" diff --git a/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb b/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb new file mode 100644 index 00000000000..7836bae691a --- /dev/null +++ b/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb @@ -0,0 +1,3 @@ +inherit nativesdk +include projucer.inc +BBCLASSEXTEND = "nativesdk" diff --git a/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb b/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb new file mode 100644 index 00000000000..fb54fb9e988 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb @@ -0,0 +1,3 @@ +inherit native +include projucer.inc +BBCLASSEXTEND = "native" diff --git a/meta-multimedia/recipes-multimedia/juce/projucer.inc b/meta-multimedia/recipes-multimedia/juce/projucer.inc new file mode 100644 index 00000000000..63ed9e90e08 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/juce/projucer.inc @@ -0,0 +1,37 @@ +SUMMARY = "JUCE's Projucer" +DESCRIPTION = "Projucer is used to build and generate support files and build infrastructure for all \ +JUCE supported platforms, including Linux and Embedded Linux." +SECTION = "utils" +HOMEPAGE = "http://juce.com/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://README.md;md5=65c50b4ff3522b99436da100536ccd1c" + +inherit pkgconfig + +DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl" + +SRCREV = "4f41f28b47d01b939559123d145b4e5860528bb7" +BRANCH = "master" +SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH}" + +S = "${WORKDIR}/git" +PV = "5.0.1" + +JUCE_PROJUCER_BUILD_PATH = "${B}/extras/Projucer/Builds" +JUCE_PROJUCER_MAKEFILE_PATH = "${JUCE_PROJUCER_BUILD_PATH}/LinuxMakefile" +JUCE_PROJUCER = "${JUCE_PROJUCER_MAKEFILE_PATH}/build/Projucer" + +do_configure() { + cd ${JUCE_PROJUCER_MAKEFILE_PATH} + CONFIG=Release oe_runmake clean +} + +do_compile() { + cd ${JUCE_PROJUCER_MAKEFILE_PATH} + CONFIG=Release oe_runmake +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${JUCE_PROJUCER} ${D}${bindir} +} diff --git a/meta-multimedia/recipes-multimedia/libao/libao_1.1.0.bb b/meta-multimedia/recipes-multimedia/libao/libao_1.1.0.bb deleted file mode 100644 index 1a2260485ad..00000000000 --- a/meta-multimedia/recipes-multimedia/libao/libao_1.1.0.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Cross-platform audio output library and plugins" -DESCRIPTION = "Libao is a cross-platform audio library that allows programs to \ - output audio using a simple API on a wide variety of platforms." -SECTION = "multimedia" -HOMEPAGE = "https://www.xiph.org/ao/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -SRC_URI="http://downloads.xiph.org/releases/ao/${BP}.tar.gz" -SRC_URI[md5sum] = "2b2508c29bc97e4dc218fa162cf883c8" -SRC_URI[sha256sum] = "29de5bb9b1726ba890455ef7e562d877df87811febb0d99ee69164b88c171bd4" - -inherit autotools - -PACKAGES_DYNAMIC += "^${BPN}-plugin-.*" - -do_install_append () { - find "${D}" -name '*.la' -exec rm -f {} + -} - -python populate_packages_prepend () { - rootdir = bb.data.expand('${libdir}/ao/plugins-4', d) - rootdir_dbg = bb.data.expand('${libdir}/ao/plugins-4/.debug', d) - do_split_packages(d, rootdir, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin') - do_split_packages(d, rootdir_dbg, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data') -} - -PACKAGECONFIG ?= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d) ${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)" -PACKAGECONFIG[esound] = "--enable-esd,--disable-esd,esound" -PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" -PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" diff --git a/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb new file mode 100644 index 00000000000..4c0976e43d9 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb @@ -0,0 +1,34 @@ +SUMMARY = "Cross-platform audio output library and plugins" +DESCRIPTION = "Libao is a cross-platform audio library that allows programs to \ + output audio using a simple API on a wide variety of platforms." +SECTION = "multimedia" +HOMEPAGE = "https://www.xiph.org/ao/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI="http://downloads.xiph.org/releases/ao/${BP}.tar.gz" +SRC_URI[md5sum] = "9f5dd20d7e95fd0dd72df5353829f097" +SRC_URI[sha256sum] = "03ad231ad1f9d64b52474392d63c31197b0bc7bd416e58b1c10a329a5ed89caf" + +inherit autotools + +PACKAGES += "${BPN}-ckport" +PACKAGES_DYNAMIC += "^${BPN}-plugin-.*" + +do_install_append () { + find "${D}" -name '*.la' -exec rm -f {} + +} + +python populate_packages_prepend () { + rootdir = bb.data.expand('${libdir}/ao/plugins-4', d) + rootdir_dbg = bb.data.expand('${libdir}/ao/plugins-4/.debug', d) + do_split_packages(d, rootdir, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin') + do_split_packages(d, rootdir_dbg, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data') +} + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}" +PACKAGECONFIG[esound] = "--enable-esd,--disable-esd,esound" +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +FILES_${BPN}-ckport = "${libdir}/ckport" diff --git a/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb b/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb new file mode 100644 index 00000000000..f5b0d48c464 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "libavc1394 is a programming interface for the 1394 Trade \ +Association AV/C (Audio/Video Control) Digital Interface Command Set" +HOMEPAGE = "http://sourceforge.net/projects/libavc1394/" +SECTION = "libs/multimedia" + +DEPENDS = "libraw1394" +DEPENDS_append_libc-musl = " argp-standalone" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz" +SRC_URI[md5sum] = "caf0db059d8b8d35d6f08e6c0e1c7dfe" +SRC_URI[sha256sum] = "7cb1ff09506ae911ca9860bef4af08c2403f3e131f6c913a2cbd6ddca4215b53" + +inherit autotools pkgconfig + +LDFLAGS_append_libc-musl = " -largp" diff --git a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb index 0ea5cb90aee..8a9e9a1d7d6 100755 --- a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb +++ b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb @@ -5,11 +5,14 @@ LICENSE = "LGPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64" # libsdl to provide sdl.m4 with AM_PATH_SDL -DEPENDS += "libusb1 libraw1394 libsdl" +DEPENDS += "libusb1 libraw1394 libsdl \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl libglu', '', d)} \ +" -PV = "2.2.1+gitr${SRCPV}" +PV = "2.2.5+gitr${SRCPV}" -SRCREV = "b90342933b4b48634b98b73805f47bd25ed5857e" +SRCREV = "5e78f51936fd09db0c0f742c7d2c0e5bdbbeed56" SRC_URI = "git://git.code.sf.net/p/libdc1394/code;branch=master;protocol=git \ file://install_examples.patch \ diff --git a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb new file mode 100644 index 00000000000..48b0111047a --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "libdvbpsi is a simple library designed for decoding \ +and generation of MPEG TS and DVB PSI tables according to standards \ +ISO/IEC 13818 and ITU-T H.222.0." +HOMEPAGE = "http://www.videolan.org/developers/libdvbpsi.html" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "http://download.videolan.org/pub/libdvbpsi/${PV}/libdvbpsi-${PV}.tar.bz2" +SRC_URI[md5sum] = "2b217039a1299000c39423441f77e76a" +SRC_URI[sha256sum] = "a2fed1d11980662f919bbd1f29e2462719e0f6227e1a531310bd5a706db0a1fe" + +inherit autotools diff --git a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb new file mode 100644 index 00000000000..c2dd96f9d82 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb @@ -0,0 +1,14 @@ +SUMMARY = "library for DVD navigation features" +SECTION = "libs/multimedia" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "libdvdread" + +SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.bz2" +SRC_URI[md5sum] = "e9ea4de3bd8f204e61301d407d09f033" +SRC_URI[sha256sum] = "5097023e3d2b36944c763f1df707ee06b19dc639b2b68fb30113a5f2cbf60b6d" + +inherit autotools lib_package binconfig pkgconfig + +CONFIGUREOPTS_remove = "--disable-silent-rules" + diff --git a/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb b/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb new file mode 100644 index 00000000000..e6079bd752e --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "An implementation of the most relevant parts of IEC 61883 over \ +libraw1394 for transmission, reception, and management of media streams and \ +devices such as DV, MPEG2-TS, audio, and MIDI" +HOMEPAGE = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libiec61883" +SECTION = "libs/multimedia" + +DEPENDS = "libraw1394" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=771782cb6245c7fbbe74bc0ec059beff" + +SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "ed91bc1727fac8e019402fc3724a283d" +SRC_URI[sha256sum] = "d1e02c7e276fac37313a2f8c1c33d7a9e19282ff16f32e72435428ff5121f09e" + +inherit autotools pkgconfig diff --git a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb new file mode 100644 index 00000000000..f060f1e80dc --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb @@ -0,0 +1,19 @@ +SUMMARY = "The squish library (abbreviated to libsquish) is an open source DXT compression library written in C++ " + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://alpha.cpp;beginline=3;endline=22;md5=6665e479f71feb92d590ea9ae9b9f6d5" + +PV = "1.10+git${SRCPV}" + +SRCREV = "52e7d93c5947f72380521116c05d97c528863ba8" +SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "INSTALL_DIR=${D}${prefix}" + +do_install() { + install -d ${D}${includedir} + install -d ${D}${libdir}/pkgconfig + oe_runmake install +} diff --git a/meta-multimedia/recipes-multimedia/madplay/madplay_0.15.2b.bb b/meta-multimedia/recipes-multimedia/madplay/madplay_0.15.2b.bb new file mode 100644 index 00000000000..04be1d0ebf4 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/madplay/madplay_0.15.2b.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "Madplay is a command-line MPEG audio decoder and player" +SECTION = "console/multimedia" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = "ftp://ftp.mars.org/pub/mpeg/${PN}-0.15.2b.tar.gz " + +SRC_URI[md5sum] = "6814b47ceaa99880c754c5195aa1aac1" +SRC_URI[sha256sum] = "5a79c7516ff7560dffc6a14399a389432bc619c905b13d3b73da22fa65acede0" + +DEPENDS += "libmad libid3tag" +inherit autotools gettext + +do_configure_prepend() { + + touch ${S}/NEWS + touch ${S}/AUTHORS + touch ${S}/ChangeLog +} + +ARM_INSTRUCTION_SET = "arm" + +FILES_${PN} = "${bindir}/*" + +# plese add the below line in your conf/local.conf when you have got any LICENCE errors of libmad +# LICENSE_FLAGS_WHITELIST += "commercial" diff --git a/meta-multimedia/recipes-multimedia/mpg123/mpg123_1.21.0.bb b/meta-multimedia/recipes-multimedia/mpg123/mpg123_1.21.0.bb deleted file mode 100644 index 4efdeab6efb..00000000000 --- a/meta-multimedia/recipes-multimedia/mpg123/mpg123_1.21.0.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" -DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ -mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ -and also can write the decoded audio to WAV." -HOMEPAGE = "http://mpg123.de/" -BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" -SECTION = "multimedia" - -DEPENDS = "tslib audiofile" - -# The options should be mutually exclusive for configuration script. -# If both alsa and pulseaudio are specified (as in the default distro features) -# pulseaudio takes precedence. -PACKAGECONFIG_ALSA = "${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}" -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" -PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" -PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" -PACKAGECONFIG[sdl] = ",,libsdl" -PACKAGECONFIG[openal] = ",,openal-soft" -PACKAGECONFIG[jack] = ",,jack" -PACKAGECONFIG[portaudio] = ",,portaudio-v19" -PACKAGECONFIG[esd] = ",,esound" - -# Following are possible sound output modules -#alsa tinyalsa oss coreaudio sndio sun win32 win32_wasapi os2 esd jack portaudio pulse sdl nas arts openal dummy -AUDIOMODS += "${@base_contains('PACKAGECONFIG', 'alsa', 'alsa', '', d)}" -AUDIOMODS += "${@base_contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" -AUDIOMODS += "${@base_contains('PACKAGECONFIG', 'sdl', 'sdl', '', d)}" -AUDIOMODS += "${@base_contains('PACKAGECONFIG', 'openal', 'openal', '', d)}" -AUDIOMODS += "${@base_contains('PACKAGECONFIG', 'jack', 'jack', '', d)}" -AUDIOMODS += "${@base_contains('PACKAGECONFIG', 'portaudio', 'portaudio', '', d)}" -AUDIOMODS += "${@base_contains('PACKAGECONFIG', 'esd', 'esd', '', d)}" - -LICENSE = "LGPLv2.1" -LICENSE_FLAGS = "commercial" -LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3" - -SRC_URI = "${SOURCEFORGE_MIRROR}/mpg123/mpg123/${PV}/${BP}.tar.bz2" -SRC_URI[md5sum] = "13a9df5d4e7aa110e4ae27cf30128ce9" -SRC_URI[sha256sum] = "3ad197f77c9ffdf3601e1c3183ae0709ccb3c3de68309527ce9375fcfb15dcba" - -inherit autotools pkgconfig - -EXTRA_OECONF = " \ - --enable-shared \ - --with-audio='${AUDIOMODS}' \ - --with-module-suffix=.so \ - ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ - ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ -" - diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb index a6a4f6a8a68..16e52134bd0 100644 --- a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb +++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb @@ -3,19 +3,16 @@ DESCRIPTION = "The MusicBrainz client is a library which can be built into other HOMEPAGE = "http://musicbrainz.org" LICENSE = "LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24" -DEPENDS = "expat neon neon-native" +DEPENDS = "expat libxml2 libxml2-native neon neon-native" -PV = "5.0.1+git${SRCPV}" -PR = "r1" +PV = "5.1.0+git${SRCPV}" -SRCREV = "0749dd0a35b4a54316da064475863a4ac6e28e7e" +SRCREV = "44c05779dd996035758f5ec426766aeedce29cc3" SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git \ file://allow-libdir-override.patch " S = "${WORKDIR}/git" -LDFLAGS_prepend_libc-uclibc = " -lpthread " - inherit cmake pkgconfig do_configure_prepend() { diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.1.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.1.bb deleted file mode 100644 index a5cd557e431..00000000000 --- a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.1.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "Music Player Daemon" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -HOMEPAGE ="http://www.musicpd.org" - -DEPENDS = "alsa-lib libsamplerate0 libsndfile1 libvorbis libogg faad2 ffmpeg curl sqlite bzip2 pulseaudio tcp-wrappers openal-soft yajl jack faad2 flac libao fluidsynth libcdio wavpack libopus mpg123 libmms libmodplug boost icu dbus expat zlib" - -SRC_URI = " \ - http://www.musicpd.org/download/${BPN}/0.19/${BP}.tar.xz \ - file://mpd.conf.in \ -" -SRC_URI[md5sum] = "d235f6e53e5442b6926c49946a303f8d" -SRC_URI[sha256sum] = "8b3afcd440181c9bd18b229b5974e529d59648344dd371370d6f7d62ec2847c5" - -inherit autotools useradd systemd - -EXTRA_OECONF = "enable_bzip2=yes" -EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" - -PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" -PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag" -PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame" -PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba" - -do_install_append() { - install -d ${D}/${localstatedir}/lib/mpd/music - chmod 775 ${D}/${localstatedir}/lib/mpd/music - install -d ${D}/${localstatedir}/lib/mpd/playlists - chown -R mpd ${D}/${localstatedir}/lib/mpd - chown mpd:mpd ${D}/${localstatedir}/lib/mpd/music - - install -d ${D}/${sysconfdir} - install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf - sed -i \ - -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \ - -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \ - -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \ - -e 's|%log_file%|${localstatedir}/log/mpd.log|' \ - -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \ - ${D}/${sysconfdir}/mpd.conf - - if [ -e ${D}/${systemd_unitdir}/system/mpd.service ] ; then - sed -i \ - 's|^ExecStart=.*|ExecStart=${bindir}/mpd --no-daemon|' \ - ${D}/${systemd_unitdir}/system/mpd.service - fi -} - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "mpd.service mpd.socket" - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = " \ - --system --no-create-home \ - --home ${localstatedir}/lib/mpd \ - --groups audio \ - --user-group mpd" diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.21.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.21.bb new file mode 100644 index 00000000000..2eb21a369e5 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.19.21.bb @@ -0,0 +1,100 @@ +SUMMARY = "Music Player Daemon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +HOMEPAGE ="http://www.musicpd.org" + +inherit autotools useradd systemd pkgconfig + +DEPENDS += " \ + alsa-lib \ + libsamplerate0 \ + libsndfile1 \ + libvorbis \ + libogg \ + faad2 \ + ffmpeg \ + curl \ + sqlite \ + bzip2 \ + pulseaudio \ + tcp-wrappers \ + openal-soft \ + yajl \ + jack \ + faad2 \ + flac \ + libao \ + fluidsynth \ + libcdio \ + wavpack \ + libopus \ + mpg123 \ + libmms \ + libmodplug \ + boost \ + icu \ + dbus \ + expat \ + zlib \ + libupnp1.6 \ +" + +# While this item does not require it, it depends on mpg123 which does +LICENSE_FLAGS = "commercial" + +SRC_URI = " \ + http://www.musicpd.org/download/${BPN}/0.19/${BP}.tar.xz \ + file://mpd.conf.in \ +" +SRC_URI[md5sum] = "fc19f76b512bd471b6af5214965ff7c5" +SRC_URI[sha256sum] = "8305b8bc026f4b6bde28b8dd09bfdddbe5590acf36358eed4d083a396e301730" + +EXTRA_OECONF = "enable_bzip2=yes" +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" + +PACKAGECONFIG[audiofile] = "--enable-audiofile,--disable-audiofile,audiofile" +PACKAGECONFIG[cdioparanoia] = "--enable-cdio-paranoia,--disable-cdio-paranoia,libcdio-paranoia" +PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" +PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag" +PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame" +PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba" + +do_configure_prepend() { + sed -i -e 's|libsystemd-daemon|libsystemd|' ${S}/configure.ac +} + +do_install_append() { + install -d ${D}/${localstatedir}/lib/mpd/music + chmod 775 ${D}/${localstatedir}/lib/mpd/music + install -d ${D}/${localstatedir}/lib/mpd/playlists + chown -R mpd ${D}/${localstatedir}/lib/mpd + chown mpd:mpd ${D}/${localstatedir}/lib/mpd/music + + install -d ${D}/${sysconfdir} + install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf + sed -i \ + -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \ + -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \ + -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \ + -e 's|%log_file%|${localstatedir}/log/mpd.log|' \ + -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \ + ${D}/${sysconfdir}/mpd.conf + + if [ -e ${D}/${systemd_unitdir}/system/mpd.service ] ; then + sed -i \ + 's|^ExecStart=.*|ExecStart=${bindir}/mpd --no-daemon|' \ + ${D}/${systemd_unitdir}/system/mpd.service + fi +} + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "mpd.socket" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = " \ + --system --no-create-home \ + --home ${localstatedir}/lib/mpd \ + --groups audio \ + --user-group mpd" diff --git a/meta-multimedia/recipes-multimedia/nonworking/gstreamer/files/display.patch b/meta-multimedia/recipes-multimedia/nonworking/gstreamer/files/display.patch deleted file mode 100644 index 61b0e6c87ea..00000000000 --- a/meta-multimedia/recipes-multimedia/nonworking/gstreamer/files/display.patch +++ /dev/null @@ -1,60 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 3e46d2e501da68d929bb5f26900a292a5fc04a1f Mon Sep 17 00:00:00 2001 -From: Stefan Westerfeld -Date: Mon, 23 Apr 2012 03:10:22 +0200 -Subject: [PATCH] Fix time display updates (broken by introduction of quiet - mode). - ---- - src/gst123.cc | 1 + - src/msg.cc | 7 +++++++ - src/msg.h | 1 + - 3 files changed, 9 insertions(+) - -diff --git a/src/gst123.cc b/src/gst123.cc -index 20e91e5..ce5876d 100644 ---- a/src/gst123.cc -+++ b/src/gst123.cc -@@ -640,6 +640,7 @@ cb_print_position (gpointer *data) - else - blanks += " "; - Msg::print ("%s%s\r", status.c_str(), blanks.c_str()); -+ Msg::flush(); - } - - /* call me again */ -diff --git a/src/msg.cc b/src/msg.cc -index 547cd90..33cada2 100644 ---- a/src/msg.cc -+++ b/src/msg.cc -@@ -41,6 +41,13 @@ print (const char *format, ...) - } - } - -+void -+flush() -+{ -+ if (!Options::the().quiet) -+ fflush (stdout); -+} -+ - } - - } -diff --git a/src/msg.h b/src/msg.h -index e0ced24..5bebac0 100644 ---- a/src/msg.h -+++ b/src/msg.h -@@ -27,6 +27,7 @@ namespace Msg - { - - void print (const char *format, ...); -+void flush(); - - } - --- -1.7.9.5 - diff --git a/meta-multimedia/recipes-multimedia/nonworking/gstreamer/gst123_0.3.1.bb b/meta-multimedia/recipes-multimedia/nonworking/gstreamer/gst123_0.3.1.bb deleted file mode 100644 index 6c495b20c5d..00000000000 --- a/meta-multimedia/recipes-multimedia/nonworking/gstreamer/gst123_0.3.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Flexible CLI player in the spirit of mpg123, based on GStreamer" -HOMEPAGE = "http://space.twc.de/~stefan/gst123.php" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ - file://src/gst123.cc;beginline=1;endline=19;md5=05d2f5d54b985b986c26af931d2084f8" - -DEPENDS = "libx11 gstreamer gst-plugins-base gtk+ ncurses" - -SRC_URI = "http://space.twc.de/~stefan/gst123/${BPN}-${PV}.tar.bz2 \ - file://display.patch" - -SRC_URI[md5sum] = "1e77767c9d6fecee5641f95804f160fe" -SRC_URI[sha256sum] = "89d1de025eca0466c125dcd6a11b64341bdf98ee4c03c3e5a12321d77cb8b0ce" - -inherit autotools diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb index ab038a71b41..e0f1a26de4e 100644 --- a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb +++ b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb @@ -9,10 +9,7 @@ SRC_URI = "http://kcat.strangesoft.net/openal-releases/${BP}.tar.bz2" SRC_URI[md5sum] = "ea83dec3b9655a27d28e7bc7cae9cd71" SRC_URI[sha256sum] = "0e29a162f0841ccb4135ce76e92e8a704589b680a85eddf76f898de5236eb056" -PACKAGECONFIG ?= "\ - ${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \ - ${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ -" +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}" PACKAGECONFIG[alsa] = "-DALSA=TRUE, -DALSA=FALSE, alsa-lib" PACKAGECONFIG[pulseaudio] = "-DPULSEAUDIO=TRUE, -DPULSEAUDIO=FALSE, pulseaudio" # currently doesn't work with libav-9 diff --git a/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb new file mode 100644 index 00000000000..ab5813ebe9f --- /dev/null +++ b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "OpenCORE Adaptive Multi Rate (AMR) speech codec library implementation" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "09d2c5dfb43a9f6e9fec8b1ae678e725" +SRC_URI[sha256sum] = "106bf811c1f36444d7671d8fd2589f8b2e0cca58a2c764da62ffc4a070595385" + +inherit autotools diff --git a/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb b/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb new file mode 100644 index 00000000000..ce3736294ac --- /dev/null +++ b/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "VisualOn Advanced Audio Coding (AAC) encoder" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "b574da1d92d75fc40b0b75aa16f24ac4" +SRC_URI[sha256sum] = "e51a7477a359f18df7c4f82d195dab4e14e7414cbd48cf79cc195fc446850f36" + +inherit autotools diff --git a/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb b/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb new file mode 100644 index 00000000000..cc049edb812 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "VisualOn Adaptive Multi Rate Wideband (AMR-WB) encoder" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "f63bb92bde0b1583cb3cb344c12922e0" +SRC_URI[sha256sum] = "5652b391e0f0e296417b841b02987d3fd33e6c0af342c69542cbb016a71d9d4e" + +inherit autotools diff --git a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb index a1e650243f2..c5513b02520 100644 --- a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb +++ b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb @@ -17,6 +17,6 @@ S = "${WORKDIR}/git" inherit autotools-brokensep EXTRA_OEMAKE = " \ - CC='${CC}' LD='${LD} ${STAGING_LIBDIR}' \ + CC='${CC}' LD='${LD} ${STAGING_LIBDIR}' XCFLAGS='${CFLAGS}' XLDFLAGS='${LDFLAGS}' \ SYS=posix INC=-I=/usr/include DESTDIR=${D} \ prefix=${prefix} libdir=${libdir} incdir=${includedir}/librtmp bindir=${bindir} mandir=${mandir}" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb index e91ba45c647..a80fc10ace4 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb @@ -10,8 +10,8 @@ SRC_URI[sha256sum] = "69fe2cfe7154a6e752688e3a0d7d6b07b1605bbaf75b56f6470dc7b4c2 inherit allarch do_install() { - install -d ${D}${datadir}/movies - install -m 0644 ${WORKDIR}/big_buck_bunny_1080p_surround.avi ${D}${datadir}/movies/ + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_1080p_surround.avi ${D}${datadir}/movies/ } FILES_${PN} += "${datadir}/movies" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb index e7029d9b0cb..59ac4788cb6 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb @@ -10,8 +10,8 @@ SRC_URI[sha256sum] = "40d1cf5bc8e1b0e55dac7bb2e3fbc2aea05b6679444864781299b24db0 inherit allarch do_install() { - install -d ${D}${datadir}/movies - install -m 0644 ${WORKDIR}/big_buck_bunny_480p_surround-fix.avi ${D}${datadir}/movies/ + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_480p_surround-fix.avi ${D}${datadir}/movies/ } FILES_${PN} += "${datadir}/movies" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb index 55fceabc81f..21b8f8f0f8a 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb @@ -10,8 +10,8 @@ SRC_URI[sha256sum] = "b957d6e6212638441b52d3b620af157cc8d40c2a0342669294854a06ed inherit allarch do_install() { - install -d ${D}${datadir}/movies - install -m 0644 ${WORKDIR}/big_buck_bunny_720p_surround.avi ${D}${datadir}/movies/ + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_720p_surround.avi ${D}${datadir}/movies/ } FILES_${PN} += "${datadir}/movies" diff --git a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb index bb7ee7cf70a..0582a48562f 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb @@ -9,8 +9,8 @@ SRC_URI[sha256sum] = "bd2b5bc6c16d4085034f47ef7e4b3938afe86b4eec4ac3cf2685367d3b inherit allarch do_install() { - install -d ${D}${datadir}/movies - install -m 0644 ${WORKDIR}/ToS-4k-1920.mov ${D}${datadir}/movies/ + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/ToS-4k-1920.mov ${D}${datadir}/movies/ } FILES_${PN} += "${datadir}/movies" diff --git a/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch b/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch new file mode 100644 index 00000000000..605863a221d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch @@ -0,0 +1,28 @@ +From c2aed28e3e14329ad0a8c4371fdcce9934013f21 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 16:36:06 -0700 +Subject: [PATCH] remove the #error line and live without file-type detection + with pipes + +this fallback is executed with musl + +Signed-off-by: Khem Raj +--- + src/formats.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/formats.c b/src/formats.c +index 7e231ca..b13f0d5 100644 +--- a/src/formats.c ++++ b/src/formats.c +@@ -416,7 +416,6 @@ static void UNUSED rewind_pipe(FILE * fp) + /* To fix this #error, either simply remove the #error line and live without + * file-type detection with pipes, or add support for your compiler in the + * lines above. Test with cat monkey.au | ./sox --info - */ +- #error FIX NEEDED HERE + #define NO_REWIND_PIPE + (void)fp; + #endif +-- +2.13.2 + diff --git a/meta-multimedia/recipes-multimedia/sox/sox_14.4.0.bb b/meta-multimedia/recipes-multimedia/sox/sox_14.4.0.bb index 758fec99b71..3eb1856e06d 100644 --- a/meta-multimedia/recipes-multimedia/sox/sox_14.4.0.bb +++ b/meta-multimedia/recipes-multimedia/sox/sox_14.4.0.bb @@ -4,17 +4,22 @@ and can apply different effects and filters to the audio data." HOMEPAGE = "http://sox.sourceforge.net" SECTION = "audio" -DEPENDS = "libpng libav libsndfile1 libvorbis" +DEPENDS = "libpng ffmpeg libsndfile1 libvorbis" + +# While this item does not require it, it depends on ffmpeg which does +LICENSE_FLAGS = "commercial" PR = "r2" -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ - ${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \ +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \ magic \ " PACKAGECONFIG[pulseaudio] = "--with-pulseaudio=dyn,--with-pulseaudio=no,pulseaudio," PACKAGECONFIG[alsa] = "--with-alsa=dyn,--with-alsa=no,alsa-lib," PACKAGECONFIG[wavpack] = "--with-wavpack=dyn,--with-wavpack=no,wavpack," +PACKAGECONFIG[flac] = "--with-flac=dyn,--with-flac=no,flac," +PACKAGECONFIG[amrwb] = "--with-amrwb=dyn,--with-amrwb=no,opencore-amr," +PACKAGECONFIG[amrnb] = "--with-amrnb=dyn,--with-amrnb=no,opencore-amr," PACKAGECONFIG[magic] = "--with-magic,--without-magic,file," PACKAGECONFIG[mad] = "--with-mad,--without-mad,libmad," PACKAGECONFIG[id3tag] = "--with-id3tag,--without-id3tag,libid3tag," @@ -25,7 +30,9 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe \ file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24" -SRC_URI = "${SOURCEFORGE_MIRROR}/sox/sox-${PV}.tar.gz" +SRC_URI = "${SOURCEFORGE_MIRROR}/sox/sox-${PV}.tar.gz \ + file://0001-remove-the-error-line-and-live-without-file-type-det.patch \ + " SRC_URI[md5sum] = "b0c15cff7a4ba0ec17fdc74e6a1f9cf1" SRC_URI[sha256sum] = "3ee34b14dd267de378e8a117aae81ec4cae330772342e6a55bbf6520a0a88aa3" diff --git a/meta-multimedia/recipes-multimedia/streamripper/streamripper/0001-build-these-are-foreign-automake-projects.patch b/meta-multimedia/recipes-multimedia/streamripper/streamripper/0001-build-these-are-foreign-automake-projects.patch new file mode 100644 index 00000000000..c0f4692d1d8 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/streamripper/streamripper/0001-build-these-are-foreign-automake-projects.patch @@ -0,0 +1,49 @@ +From 4c7165b3fbc0e99e7cdd77031e8a001440d0629d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Thu, 3 Nov 2016 20:53:21 +0000 +Subject: [PATCH 1/3] build: these are 'foreign' automake projects +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In order to prevent automake from complaining about missing + +files ChangeLog, AUTHORS, etc., use the 'foreign' automake +option to instruct it so. + +Upstream-Status: Inappropriate [no upstream activity for 7+ years] +Signed-off-by: André Draszik +--- + configure.ac | 2 +- + libmad-0.15.1b/configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b12d11f..96300d6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -11,7 +11,7 @@ dnl AC_CHECK_FUNC: defines a shell variable + + AC_PREREQ(2.59) + AC_INIT(streamripper,1.64.6) +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) + + AC_CONFIG_HEADERS([lib/config.h]) + +diff --git a/libmad-0.15.1b/configure.ac b/libmad-0.15.1b/configure.ac +index 8fb35ee..ab116a6 100644 +--- a/libmad-0.15.1b/configure.ac ++++ b/libmad-0.15.1b/configure.ac +@@ -26,7 +26,7 @@ AC_PREREQ(2.53) + + AC_CONFIG_SRCDIR([decoder.h]) + +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) + + AM_CONFIG_HEADER([config.h]) + +-- +2.10.1 + diff --git a/meta-multimedia/recipes-multimedia/streamripper/streamripper/0002-build-don-t-ignore-CPPFLAGS-from-environment.patch b/meta-multimedia/recipes-multimedia/streamripper/streamripper/0002-build-don-t-ignore-CPPFLAGS-from-environment.patch new file mode 100644 index 00000000000..58473f61126 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/streamripper/streamripper/0002-build-don-t-ignore-CPPFLAGS-from-environment.patch @@ -0,0 +1,30 @@ +From 2fcf2b164e25c4b2523dea4b04094916e57ba19e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Thu, 3 Nov 2016 20:53:26 +0000 +Subject: [PATCH 2/3] build: don't ignore CPPFLAGS from environment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [no upstream activity for 7+ years] +Signed-off-by: André Draszik +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 96300d6..1600c88 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -56,7 +56,7 @@ AC_ARG_WITH(curses, + [ --with-curses(=XXX) compile curses front-end (XXX is curses (default), ncurses, ncursesw, pdcurses or slang)]) + + +-CPPFLAGS="-D__UNIX__" ++CPPFLAGS="$CPPFLAGS -D__UNIX__" + AC_SUBST(CPPFLAGS) + + +-- +2.10.1 + diff --git a/meta-multimedia/recipes-multimedia/streamripper/streamripper/0003-ripstream-fix-compilation.patch b/meta-multimedia/recipes-multimedia/streamripper/streamripper/0003-ripstream-fix-compilation.patch new file mode 100644 index 00000000000..065254ec8a7 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/streamripper/streamripper/0003-ripstream-fix-compilation.patch @@ -0,0 +1,42 @@ +From 6d59b60ff5108357ad2c2951a97112e713ee5368 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Thu, 3 Nov 2016 20:53:32 +0000 +Subject: [PATCH 3/3] ripstream: fix compilation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| ../../streamripper-1.64.6/lib/ripstream.c: In function 'write_id3v2_frame': +| ../../streamripper-1.64.6/lib/ripstream.c:717:5: error: unknown type name '__uint32_t' +| __uint32_t framesize = 0; +| ^~~~~~~~~~ + +The already included srtypes.h does the right thing for all +platforms (I think). It certainly works well here. + +Upstream-Status: Inappropriate [no upstream activity for 7+ years] +Signed-off-by: André Draszik +--- + lib/ripstream.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/lib/ripstream.c b/lib/ripstream.c +index c671e18..7f311c6 100644 +--- a/lib/ripstream.c ++++ b/lib/ripstream.c +@@ -713,11 +713,7 @@ write_id3v2_frame(RIP_MANAGER_INFO* rmi, char* tag_name, mchar* data, + int rc; + char bigbuf[HEADER_SIZE] = ""; + ID3V2frame id3v2frame; +-#ifndef WIN32 +- __uint32_t framesize = 0; +-#else +- unsigned long int framesize = 0; +-#endif ++ uint32_t framesize = 0; + + memset(&id3v2frame, '\000', sizeof(id3v2frame)); + strncpy(id3v2frame.id, tag_name, 4); +-- +2.10.1 + diff --git a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb new file mode 100644 index 00000000000..722815ab6aa --- /dev/null +++ b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb @@ -0,0 +1,32 @@ +SUMMARY = "download online streams into audio files" +DESCRIPTION = "This command-line tool can be used to record MPEG III \ +and OGG online radio-streams into track-separated audio files." +HOMEPAGE = "http://streamripper.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "glib-2.0 libmad libogg libvorbis" + +# While this item does not require it, it depends on libmad which does +LICENSE_FLAGS = "commercial" + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ + file://0001-build-these-are-foreign-automake-projects.patch \ + file://0002-build-don-t-ignore-CPPFLAGS-from-environment.patch \ + file://0003-ripstream-fix-compilation.patch \ +" +SRC_URI[mdsum] = "a37a1a8b8f9228522196a122a1c2dd32" +SRC_URI[sha256sum] = "c1d75f2e9c7b38fd4695be66eff4533395248132f3cc61f375196403c4d8de42" + +inherit autotools pkgconfig + +EXTRA_OECONF += "--with-included-argv=yes --with-included-libmad=no" +EXTRA_OECONF += "\ + --with-ogg-includes=${STAGING_INCDIR} \ + --with-ogg-libraries=${STAGING_LIBDIR} \ + --with-vorbis-includes=${STAGING_INCDIR} \ + --with-vorbis-libraries=${STAGING_LIBDIR} \ +" + +# the included argv library needs this +CPPFLAGS_append = " -DANSI_PROTOTYPES" diff --git a/meta-multimedia/recipes-multimedia/tremor/tremor/obsolete_automake_macros.patch b/meta-multimedia/recipes-multimedia/tremor/tremor/obsolete_automake_macros.patch new file mode 100644 index 00000000000..7e5102903b4 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/tremor/tremor/obsolete_automake_macros.patch @@ -0,0 +1,15 @@ +Upstream-Status: Submitted [https://trac.xiph.org/ticket/1922] + +Signed-off-by: Marko Lindqvist +Index: configure.in +=================================================================== +--- configure.in (revision 18764) ++++ configure.in (working copy) +@@ -9,7 +9,7 @@ + AC_CANONICAL_HOST + AC_CANONICAL_TARGET + +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + + AM_INIT_AUTOMAKE(libvorbisidec,1.2.1) diff --git a/meta-multimedia/recipes-multimedia/tremor/tremor/tremor-arm-thumb2.patch b/meta-multimedia/recipes-multimedia/tremor/tremor/tremor-arm-thumb2.patch new file mode 100644 index 00000000000..2049542227c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/tremor/tremor/tremor-arm-thumb2.patch @@ -0,0 +1,104 @@ +From: Xin Ouyang +Date: Mon, 16 Jul 2012 13:29:34 +0800 +Subject: [PATCH] tremor: add IT instructions for arm thumb2 tune flags. + +Upstream-Status: Pending + +In Thumb-2, most instructions do not have a built in condition code (except for +conditional branches). Instead, short sequences of instructions which are to be +executed conditionally can be preceded by a special "IT instruction" which +describes the condition and which of the following instructions should be +executed if the condition is false respectively. + +For the ARM/Thumb IT(If-Then) instruction: +http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cjabicci.html + +Signed-off-by: Xin Ouyang +--- + asm_arm.h | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/asm_arm.h b/asm_arm.h +index c3bda00..823c54f 100755 +--- a/asm_arm.h ++++ b/asm_arm.h +@@ -108,9 +108,11 @@ static inline void XNPROD31(ogg_int32_t a, ogg_int32_t b, + static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) { + int tmp; + asm volatile("subs %1, %0, #32768\n\t" ++ "itt pl\n\t" + "movpl %0, #0x7f00\n\t" + "orrpl %0, %0, #0xff\n" + "adds %1, %0, #32768\n\t" ++ "it mi\n\t" + "movmi %0, #0x8000" + : "+r"(x),"=r"(tmp) + : +@@ -139,10 +141,12 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip, + + "ldmdb r0!,{r1,r3};" + "subs r1,r1,%4;" //ilsp[j]-wi ++ "it mi;" + "rsbmi r1,r1,#0;" //labs(ilsp[j]-wi) + "umull %0,r2,r1,%0;" //qi*=labs(ilsp[j]-wi) + + "subs r1,r3,%4;" //ilsp[j+1]-wi ++ "it mi;" + "rsbmi r1,r1,#0;" //labs(ilsp[j+1]-wi) + "umull %1,r3,r1,%1;" //pi*=labs(ilsp[j+1]-wi) + +@@ -167,6 +171,7 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip, + "mov r0,#0x4000;\n" + + "subs r1,r1,%4;\n" //ilsp[j]-wi ++ "it mi;\n" + "rsbmi r1,r1,#0;\n" //labs(ilsp[j]-wi) + "umull %0,r2,r1,%0;\n" //qi*=labs(ilsp[j]-wi) + "umull %1,r3,r0,%1;\n" //pi*=labs(ilsp[j+1]-wi) +@@ -190,18 +195,23 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip, + "mov r2,#0;" + "orr r1,%0,%1;" + "tst r1,#0xff000000;" ++ "itt ne;" + "addne r2,r2,#8;" + "movne r1,r1,lsr #8;" + "tst r1,#0x00f00000;" ++ "itt ne;" + "addne r2,r2,#4;" + "movne r1,r1,lsr #4;" + "tst r1,#0x000c0000;" ++ "itt ne;" + "addne r2,r2,#2;" + "movne r1,r1,lsr #2;" + "tst r1,#0x00020000;" ++ "itt ne;" + "addne r2,r2,#1;" + "movne r1,r1,lsr #1;" + "tst r1,#0x00010000;" ++ "it ne;" + "addne r2,r2,#1;" + "mov %0,%0,lsr r2;" + "mov %1,%1,lsr r2;" +@@ -222,15 +232,19 @@ static inline void lsp_norm_asm(ogg_uint32_t *qip,ogg_int32_t *qexpp){ + ogg_int32_t qexp=*qexpp; + + asm("tst %0,#0x0000ff00;" ++ "itt eq;" + "moveq %0,%0,lsl #8;" + "subeq %1,%1,#8;" + "tst %0,#0x0000f000;" ++ "itt eq;" + "moveq %0,%0,lsl #4;" + "subeq %1,%1,#4;" + "tst %0,#0x0000c000;" ++ "itt eq;" + "moveq %0,%0,lsl #2;" + "subeq %1,%1,#2;" + "tst %0,#0x00008000;" ++ "itt eq;" + "moveq %0,%0,lsl #1;" + "subeq %1,%1,#1;" + : "+r"(qi),"+r"(qexp) +-- +1.7.9.5 + diff --git a/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb b/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb new file mode 100644 index 00000000000..937894a73a3 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb @@ -0,0 +1,27 @@ +SUMMARY = "Fixed-point decoder" +DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec." +SECTION = "libs" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ + file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f" +DEPENDS = "libogg" +SRCDATE = "${PV}" +PR = "r1" + +# SVN support for upstream version check isn't implemented yet +RECIPE_UPSTREAM_VERSION = "20150107" +RECIPE_UPSTREAM_DATE = "Jan 07, 2015" +CHECK_DATE = "Aug 12, 2015" + +SRC_URI = "svn://svn.xiph.org/trunk;module=Tremor;rev=19427;protocol=http \ + file://obsolete_automake_macros.patch;striplevel=0 \ + file://tremor-arm-thumb2.patch \ +" + +S = "${WORKDIR}/Tremor" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--enable-shared" + +ARM_INSTRUCTION_SET = "arm" diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc.inc b/meta-multimedia/recipes-multimedia/vlc/vlc.inc index 0362f3919df..acb3ccd1d14 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc.inc +++ b/meta-multimedia/recipes-multimedia/vlc/vlc.inc @@ -5,38 +5,34 @@ SECTION = "multimedia" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "libfribidi libtool libgcrypt libgcrypt-native gst-plugins-bad \ - virtual/libsdl libsdl-image qt4-x11-free dbus dbus-glib libxml2 gnutls \ - tremor faad2 ffmpeg flac libxpm libxinerama fluidsynth alsa-lib \ - libdvdcss libdvdread lua-native lua libidn libnotify gtk+ gnome-vfs \ - libdc1394 libraw1394 avahi libjpeg-turbo xz libmodplug mpeg2dec \ - libmtp libopus orc libusb1 schroedinger taglib \ - tiff xcb-util-keysyms samba" +DEPENDS = "libfribidi libtool libgcrypt libgcrypt-native \ + dbus dbus-glib libxml2 gnutls \ + tremor faad2 ffmpeg flac fluidsynth alsa-lib \ + lua-native lua libidn \ + avahi jpeg xz libmodplug mpeg2dec \ + libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \ + tiff" + +# While this item does not require it, it depends on ffmpeg which does +LICENSE_FLAGS = "commercial" SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz" inherit autotools gettext pkgconfig distro_features_check -# depends on libxinerama libxpm xcb-util-keysyms -REQUIRED_DISTRO_FEATURES = "x11" ARM_INSTRUCTION_SET = "arm" EXTRA_OECONF = "\ - --enable-dvdread \ - --with-contrib \ --enable-run-as-root \ - --enable-xvideo \ + --enable-xvideo \ --disable-screen --disable-caca \ --enable-httpd --enable-vlm \ --enable-freetype \ - --enable-sdl \ - --enable-png \ --enable-tremor \ --enable-v4l2 --disable-aa --disable-faad \ --enable-dbus \ --without-contrib \ --without-kde-solid \ - --disable-glx \ --enable-realrtsp \ --disable-libtar \ ac_cv_path_MOC=${STAGING_BINDIR_NATIVE}/moc4 \ @@ -44,8 +40,9 @@ EXTRA_OECONF = "\ ac_cv_path_UIC=${STAGING_BINDIR_NATIVE}/uic4 \ " -PACKAGECONFIG ?= " live555" +PACKAGECONFIG ?= " live555 dc1394 dv1394 notify fontconfig freetype dvdread png ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 sdl vdpau', '', d)}" PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" +PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl libsdl-image " PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52" PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" PACKAGECONFIG[live555] = "--enable-live555,--disable-live555,live555" @@ -54,6 +51,31 @@ PACKAGECONFIG[mkv] = "--enable-mkv,--disable-mkv,libmatroska libebml" PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc" PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" PACKAGECONFIG[libva] = "--enable-libva --enable-avcodec,--disable-libva --disable-avcodec,libva libav" +PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" +PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gst-plugins-bad" +PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx" +PACKAGECONFIG[qt4] = "--enable-qt,--disable-qt, qt4-x11-free" +PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp" +PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi" +PACKAGECONFIG[gnome-vfs] = "--enable-gnomevfs,--disable-gnomevfs, gnome-vfs" +PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba" +PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp" +PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss" +PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394" +PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg" +PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo" +PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+" +PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig" +PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss" +PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver" +PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama" +PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" +PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" do_configure_prepend() { cp ${STAGING_DATADIR}/libtool/config.* ${S}/autotools/ || true @@ -61,7 +83,7 @@ do_configure_prepend() { do_configure_append() { sed -i -e s:'$(MOC) $(DEFS) $(CPPFLAGS)':'$(MOC) $(DEFS)'\ -I${B}/include\ -DSYS_LINUX:g ${B}/modules/gui/qt4/Makefile - sed -i -e s:'${top_builddir_slash}libtool':${TARGET_SYS}-libtool:g ${B}/doltlibtool + sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool } # This recipe packages vlc as a library as well, so qt4 dependencies @@ -76,6 +98,7 @@ FILES_${PN} += "\ ${datadir}/applications \ ${datadir}/vlc/ \ ${datadir}/icons \ + ${lindir}/vlc/vlc/libvlc_vdpau.so \ " FILES_${PN}-dbg += "\ @@ -86,3 +109,6 @@ FILES_${PN}-dbg += "\ FILES_${PN}-staticdev += "\ ${libdir}/vlc/plugins/*/*.a \ " + +INSANE_SKIP_${PN} = "dev-so" + diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch index ae80745d253..8e881d0935e 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch @@ -5,11 +5,11 @@ Upstream status: Pending -Index: vlc-2.1.4/configure.ac +Index: vlc-2.2.1/configure.ac =================================================================== ---- vlc-2.1.4.orig/configure.ac -+++ vlc-2.1.4/configure.ac -@@ -3940,25 +3940,19 @@ PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], +--- vlc-2.2.1.orig/configure.ac ++++ vlc-2.2.1/configure.ac +@@ -4017,25 +4017,19 @@ PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], dnl dnl libgcrypt dnl @@ -26,10 +26,10 @@ Index: vlc-2.1.4/configure.ac - GCRYPT_CFLAGS="`libgcrypt-config --cflags`" - GCRYPT_LIBS="`libgcrypt-config --libs`" - ], [ -- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.]) +- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.]) - ], [`libgcrypt-config --libs`]) - ], [ -- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.]) +- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.]) - ], [#include ] - ) + AM_PATH_LIBGCRYPT($GCRYPT_LIBVER:$GCRYPT_REQ, diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch index 3dadb237e44..53df1c6ebfe 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch @@ -1,17 +1,19 @@ -* modules/gui/qt4/Modules.am not B!=S friendly +* modules/gui/qt4/Makefile.am not B!=S friendly * Simple solution to missing directories in ${B} Upstream status: Pending -Index: vlc-2.1.4/modules/gui/qt4/Modules.am +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/gui/qt4/Makefile.am =================================================================== ---- vlc-2.1.4.orig/modules/gui/qt4/Modules.am -+++ vlc-2.1.4/modules/gui/qt4/Modules.am -@@ -261,6 +261,7 @@ else - if HAVE_WIN32 - $(moc_verbose)$(MOC) -D_WIN32 $(DEFS) -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_builddir) $(CPPFLAGS_qt4) -o $@ $< - else +--- vlc-2.2.1.orig/modules/gui/qt4/Makefile.am ++++ vlc-2.2.1/modules/gui/qt4/Makefile.am +@@ -127,6 +127,7 @@ moc_verbose_0 = @echo " MOC " $@; + moc_verbose__0 = $(moc_verbose_0) + + .hpp.moc.cpp: + [ -d $(dir $@) ] || mkdir -p $(dir $@) - $(moc_verbose)$(MOC) $(DEFS) -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_builddir) $(CPPFLAGS_qt4) -o $@ $< - endif - endif + $(moc_verbose)$(MOC) $(MOC_CPPFLAGS) -o $@ $< + + # These MOC files depend on the configure settings: diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch new file mode 100644 index 00000000000..d05cf02b710 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch @@ -0,0 +1,19 @@ +* tremor provides libvorbisidec, use it instead of libvorbisdec + +Upstream-status: Pending + +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/codec/Makefile.am +=================================================================== +--- vlc-2.2.1.orig/modules/codec/Makefile.am ++++ vlc-2.2.1/modules/codec/Makefile.am +@@ -234,7 +234,7 @@ codec_LTLIBRARIES += $(LTLIBtheora) + libtremor_plugin_la_SOURCES = codec/vorbis.c + libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor + libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' +-libtremor_plugin_la_LIBADD = -lvorbisdec -logg ++libtremor_plugin_la_LIBADD = -lvorbisidec -logg + EXTRA_LTLIBRARIES += libtremor_plugin.la + codec_LTLIBRARIES += $(LTLIBtremor) + diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch new file mode 100644 index 00000000000..145e1ab821d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch @@ -0,0 +1,279 @@ +* luaL_checkint and luaL_optint were deprecated in lua 5.3 +* replacement functions are luaL_checkinteger and luaL_optinteger + +Upstream-status: Pending + +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/lua/demux.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/demux.c ++++ vlc-2.2.1/modules/lua/demux.c +@@ -52,7 +52,7 @@ struct demux_sys_t + static int vlclua_demux_peek( lua_State *L ) + { + demux_t *p_demux = (demux_t *)vlclua_get_this( L ); +- int n = luaL_checkint( L, 1 ); ++ int n = luaL_checkinteger( L, 1 ); + const uint8_t *p_peek; + + int i_peek = stream_Peek( p_demux->s, &p_peek, n ); +@@ -67,7 +67,7 @@ static int vlclua_demux_read( lua_State + { + demux_t *p_demux = (demux_t *)vlclua_get_this( L ); + const uint8_t *p_read; +- int n = luaL_checkint( L, 1 ); ++ int n = luaL_checkinteger( L, 1 ); + int i_read = stream_Peek( p_demux->s, &p_read, n ); + + if( i_read > 0 ) +Index: vlc-2.2.1/modules/lua/libs/configuration.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/configuration.c ++++ vlc-2.2.1/modules/lua/libs/configuration.c +@@ -84,7 +84,7 @@ static int vlclua_config_set( lua_State + break; + + case VLC_VAR_INTEGER: +- config_PutInt( p_this, psz_name, luaL_checkint( L, 2 ) ); ++ config_PutInt( p_this, psz_name, luaL_checkinteger( L, 2 ) ); + break; + + case VLC_VAR_BOOL: +Index: vlc-2.2.1/modules/lua/libs/net.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/net.c ++++ vlc-2.2.1/modules/lua/libs/net.c +@@ -202,7 +202,7 @@ static int vlclua_net_listen_tcp( lua_St + { + vlc_object_t *p_this = vlclua_get_this( L ); + const char *psz_host = luaL_checkstring( L, 1 ); +- int i_port = luaL_checkint( L, 2 ); ++ int i_port = luaL_checkinteger( L, 2 ); + int *pi_fd = net_ListenTCP( p_this, psz_host, i_port ); + if( pi_fd == NULL ) + return luaL_error( L, "Cannot listen on %s:%d", psz_host, i_port ); +@@ -274,7 +274,7 @@ static int vlclua_net_connect_tcp( lua_S + { + vlc_object_t *p_this = vlclua_get_this( L ); + const char *psz_host = luaL_checkstring( L, 1 ); +- int i_port = luaL_checkint( L, 2 ); ++ int i_port = luaL_checkinteger( L, 2 ); + int i_fd = net_Connect( p_this, psz_host, i_port, SOCK_STREAM, IPPROTO_TCP ); + lua_pushinteger( L, vlclua_fd_map_safe( L, i_fd ) ); + return 1; +@@ -282,26 +282,26 @@ static int vlclua_net_connect_tcp( lua_S + + static int vlclua_net_close( lua_State *L ) + { +- int i_fd = luaL_checkint( L, 1 ); ++ int i_fd = luaL_checkinteger( L, 1 ); + vlclua_fd_unmap_safe( L, i_fd ); + return 0; + } + + static int vlclua_net_send( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); + size_t i_len; + const char *psz_buffer = luaL_checklstring( L, 2, &i_len ); + +- i_len = luaL_optint( L, 3, i_len ); ++ i_len = luaL_optinteger( L, 3, i_len ); + lua_pushinteger( L, (fd != -1) ? send( fd, psz_buffer, i_len, 0 ) : -1 ); + return 1; + } + + static int vlclua_net_recv( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); +- size_t i_len = luaL_optint( L, 2, 1 ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); ++ size_t i_len = luaL_optinteger( L, 2, 1 ); + char psz_buffer[i_len]; + + ssize_t i_ret = (fd != -1) ? recv( fd, psz_buffer, i_len, 0 ) : -1; +@@ -382,19 +382,19 @@ static int vlclua_fd_open( lua_State *L + #ifndef _WIN32 + static int vlclua_fd_write( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); + size_t i_len; + const char *psz_buffer = luaL_checklstring( L, 2, &i_len ); + +- i_len = luaL_optint( L, 3, i_len ); ++ i_len = luaL_optinteger( L, 3, i_len ); + lua_pushinteger( L, (fd != -1) ? write( fd, psz_buffer, i_len ) : -1 ); + return 1; + } + + static int vlclua_fd_read( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); +- size_t i_len = luaL_optint( L, 2, 1 ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); ++ size_t i_len = luaL_optinteger( L, 2, 1 ); + char psz_buffer[i_len]; + + ssize_t i_ret = (fd != -1) ? read( fd, psz_buffer, i_len ) : -1; +Index: vlc-2.2.1/modules/lua/libs/osd.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/osd.c ++++ vlc-2.2.1/modules/lua/libs/osd.c +@@ -67,7 +67,7 @@ static int vlclua_osd_icon( lua_State *L + { + const char *psz_icon = luaL_checkstring( L, 1 ); + int i_icon = vlc_osd_icon_from_string( psz_icon ); +- int i_chan = luaL_optint( L, 2, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 2, SPU_DEFAULT_CHANNEL ); + if( !i_icon ) + return luaL_error( L, "\"%s\" is not a valid osd icon.", psz_icon ); + +@@ -114,9 +114,9 @@ static int vlc_osd_position_from_string( + static int vlclua_osd_message( lua_State *L ) + { + const char *psz_message = luaL_checkstring( L, 1 ); +- int i_chan = luaL_optint( L, 2, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 2, SPU_DEFAULT_CHANNEL ); + const char *psz_position = luaL_optstring( L, 3, "top-right" ); +- mtime_t duration = luaL_optint( L, 4, 1000000 ); ++ mtime_t duration = luaL_optinteger( L, 4, 1000000 ); + + input_thread_t *p_input = vlclua_get_input_internal( L ); + if( p_input ) +@@ -154,10 +154,10 @@ static int vlc_osd_slider_type_from_stri + + static int vlclua_osd_slider( lua_State *L ) + { +- int i_position = luaL_checkint( L, 1 ); ++ int i_position = luaL_checkinteger( L, 1 ); + const char *psz_type = luaL_checkstring( L, 2 ); + int i_type = vlc_osd_slider_type_from_string( psz_type ); +- int i_chan = luaL_optint( L, 3, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 3, SPU_DEFAULT_CHANNEL ); + if( !i_type ) + return luaL_error( L, "\"%s\" is not a valid slider type.", + psz_type ); +@@ -198,7 +198,7 @@ static int vlclua_spu_channel_register( + + static int vlclua_spu_channel_clear( lua_State *L ) + { +- int i_chan = luaL_checkint( L, 1 ); ++ int i_chan = luaL_checkinteger( L, 1 ); + input_thread_t *p_input = vlclua_get_input_internal( L ); + if( !p_input ) + return luaL_error( L, "Unable to find input." ); +Index: vlc-2.2.1/modules/lua/libs/playlist.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/playlist.c ++++ vlc-2.2.1/modules/lua/libs/playlist.c +@@ -69,7 +69,7 @@ static int vlclua_playlist_next( lua_Sta + + static int vlclua_playlist_skip( lua_State * L ) + { +- int i_skip = luaL_checkint( L, 1 ); ++ int i_skip = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + playlist_Skip( p_playlist, i_skip ); + return 0; +@@ -127,7 +127,7 @@ static int vlclua_playlist_random( lua_S + + static int vlclua_playlist_gotoitem( lua_State * L ) + { +- int i_id = luaL_checkint( L, 1 ); ++ int i_id = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + int i_ret = playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, +@@ -139,7 +139,7 @@ static int vlclua_playlist_gotoitem( lua + + static int vlclua_playlist_delete( lua_State * L ) + { +- int i_id = luaL_checkint( L, 1 ); ++ int i_id = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id ); +@@ -155,8 +155,8 @@ static int vlclua_playlist_delete( lua_S + + static int vlclua_playlist_move( lua_State * L ) + { +- int i_item = luaL_checkint( L, 1 ); +- int i_target = luaL_checkint( L, 2 ); ++ int i_item = luaL_checkinteger( L, 1 ); ++ int i_target = luaL_checkinteger( L, 2 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item ); +Index: vlc-2.2.1/modules/lua/libs/stream.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/stream.c ++++ vlc-2.2.1/modules/lua/libs/stream.c +@@ -101,7 +101,7 @@ static int vlclua_stream_read( lua_State + { + int i_read; + stream_t **pp_stream = (stream_t **)luaL_checkudata( L, 1, "stream" ); +- int n = luaL_checkint( L, 2 ); ++ int n = luaL_checkinteger( L, 2 ); + uint8_t *p_read = malloc( n ); + if( !p_read ) return vlclua_error( L ); + +Index: vlc-2.2.1/modules/lua/libs/variables.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/variables.c ++++ vlc-2.2.1/modules/lua/libs/variables.c +@@ -103,7 +103,7 @@ static int vlclua_tovalue( lua_State *L, + val->b_bool = luaL_checkboolean( L, -1 ); + break; + case VLC_VAR_INTEGER: +- val->i_int = luaL_checkint( L, -1 ); ++ val->i_int = luaL_checkinteger( L, -1 ); + break; + case VLC_VAR_STRING: + val->psz_string = (char*)luaL_checkstring( L, -1 ); /* XXX: Beware, this only stays valid as long as (L,-1) stays in the stack */ +Index: vlc-2.2.1/modules/lua/libs/volume.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/volume.c ++++ vlc-2.2.1/modules/lua/libs/volume.c +@@ -48,7 +48,7 @@ + static int vlclua_volume_set( lua_State *L ) + { + playlist_t *p_this = vlclua_get_playlist_internal( L ); +- int i_volume = luaL_checkint( L, 1 ); ++ int i_volume = luaL_checkinteger( L, 1 ); + if( i_volume < 0 ) + i_volume = 0; + int i_ret = playlist_VolumeSet( p_this, i_volume/(float)AOUT_VOLUME_DEFAULT ); +@@ -68,7 +68,7 @@ static int vlclua_volume_up( lua_State * + playlist_t *p_this = vlclua_get_playlist_internal( L ); + float volume; + +- playlist_VolumeUp( p_this, luaL_optint( L, 1, 1 ), &volume ); ++ playlist_VolumeUp( p_this, luaL_optinteger( L, 1, 1 ), &volume ); + lua_pushnumber( L, lroundf(volume * AOUT_VOLUME_DEFAULT) ); + return 1; + } +@@ -78,7 +78,7 @@ static int vlclua_volume_down( lua_State + playlist_t *p_this = vlclua_get_playlist_internal( L ); + float volume; + +- playlist_VolumeDown( p_this, luaL_optint( L, 1, 1 ), &volume ); ++ playlist_VolumeDown( p_this, luaL_optinteger( L, 1, 1 ), &volume ); + lua_pushnumber( L, lroundf(volume * AOUT_VOLUME_DEFAULT) ); + return 1; + } +Index: vlc-2.2.1/modules/lua/libs/win.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/win.c ++++ vlc-2.2.1/modules/lua/libs/win.c +@@ -123,7 +123,7 @@ static int vlclua_console_init( lua_Stat + + static int vlclua_console_wait( lua_State *L ) + { +- int i_timeout = luaL_optint( L, 1, 0 ); ++ int i_timeout = luaL_optinteger( L, 1, 0 ); + DWORD status = WaitForSingleObject( GetConsole( L ), i_timeout ); + lua_pushboolean( L, status == WAIT_OBJECT_0 ); + return 1; diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch new file mode 100644 index 00000000000..cb3ba71dd61 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch @@ -0,0 +1,293 @@ +From 427732a379893491eac27aeadff0e0b3e252d158 Mon Sep 17 00:00:00 2001 +From: Jean-Baptiste Kempf +Date: Mon, 31 Aug 2015 08:19:00 +0200 +Subject: [PATCH] Avcodec/swscale: use AV_PIX_FMT consistently +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +(cherry picked from commit faa7bd357b1f9e07a6ffbc451a188773fad7a275) +Signed-off-by: Rafaël Carré + +Conflicts: + modules/codec/avcodec/chroma.c + modules/codec/avcodec/video.c +--- + modules/codec/avcodec/chroma.c | 104 ++++++++++++++++++++--------------------- + modules/codec/avcodec/video.c | 10 ++-- + modules/video_chroma/swscale.c | 28 +++++------ + 3 files changed, 71 insertions(+), 71 deletions(-) + +diff --git a/modules/codec/avcodec/chroma.c b/modules/codec/avcodec/chroma.c +index 393364b..c31f93d 100644 +--- a/modules/codec/avcodec/chroma.c ++++ b/modules/codec/avcodec/chroma.c +@@ -62,77 +62,77 @@ static const struct + } chroma_table[] = + { + /* Planar YUV formats */ +- {VLC_CODEC_I444, PIX_FMT_YUV444P, 0, 0, 0 }, +- {VLC_CODEC_J444, PIX_FMT_YUVJ444P, 0, 0, 0 }, +- +- {VLC_CODEC_I440, PIX_FMT_YUV440P, 0, 0, 0 }, +- {VLC_CODEC_J440, PIX_FMT_YUVJ440P, 0, 0, 0 }, +- +- {VLC_CODEC_I422, PIX_FMT_YUV422P, 0, 0, 0 }, +- {VLC_CODEC_J422, PIX_FMT_YUVJ422P, 0, 0, 0 }, +- +- {VLC_CODEC_I420, PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_CODEC_YV12, PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_FOURCC('I','Y','U','V'), PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_CODEC_J420, PIX_FMT_YUVJ420P, 0, 0, 0 }, +- {VLC_CODEC_I411, PIX_FMT_YUV411P, 0, 0, 0 }, +- {VLC_CODEC_I410, PIX_FMT_YUV410P, 0, 0, 0 }, +- {VLC_FOURCC('Y','V','U','9'), PIX_FMT_YUV410P, 0, 0, 0 }, +- +- {VLC_FOURCC('N','V','1','2'), PIX_FMT_NV12, 0, 0, 0 }, +- {VLC_FOURCC('N','V','2','1'), PIX_FMT_NV21, 0, 0, 0 }, +- +- {VLC_CODEC_I420_9L, PIX_FMT_YUV420P9LE, 0, 0, 0 }, +- {VLC_CODEC_I420_9B, PIX_FMT_YUV420P9BE, 0, 0, 0 }, +- {VLC_CODEC_I420_10L, PIX_FMT_YUV420P10LE, 0, 0, 0 }, +- {VLC_CODEC_I420_10B, PIX_FMT_YUV420P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I444, AV_PIX_FMT_YUV444P, 0, 0, 0 }, ++ {VLC_CODEC_J444, AV_PIX_FMT_YUVJ444P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I440, AV_PIX_FMT_YUV440P, 0, 0, 0 }, ++ {VLC_CODEC_J440, AV_PIX_FMT_YUVJ440P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I422, AV_PIX_FMT_YUV422P, 0, 0, 0 }, ++ {VLC_CODEC_J422, AV_PIX_FMT_YUVJ422P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I420, AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_CODEC_YV12, AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_FOURCC('I','Y','U','V'), AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_CODEC_J420, AV_PIX_FMT_YUVJ420P, 0, 0, 0 }, ++ {VLC_CODEC_I411, AV_PIX_FMT_YUV411P, 0, 0, 0 }, ++ {VLC_CODEC_I410, AV_PIX_FMT_YUV410P, 0, 0, 0 }, ++ {VLC_FOURCC('Y','V','U','9'), AV_PIX_FMT_YUV410P, 0, 0, 0 }, ++ ++ {VLC_FOURCC('N','V','1','2'), AV_PIX_FMT_NV12, 0, 0, 0 }, ++ {VLC_FOURCC('N','V','2','1'), AV_PIX_FMT_NV21, 0, 0, 0 }, ++ ++ {VLC_CODEC_I420_9L, AV_PIX_FMT_YUV420P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I420_9B, AV_PIX_FMT_YUV420P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I420_10L, AV_PIX_FMT_YUV420P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I420_10B, AV_PIX_FMT_YUV420P10BE, 0, 0, 0 }, + #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51,13,0) +- {VLC_CODEC_I422_9L, PIX_FMT_YUV422P9LE, 0, 0, 0 }, +- {VLC_CODEC_I422_9B, PIX_FMT_YUV422P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I422_9L, AV_PIX_FMT_YUV422P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I422_9B, AV_PIX_FMT_YUV422P9BE, 0, 0, 0 }, + #endif +- {VLC_CODEC_I422_10L, PIX_FMT_YUV422P10LE, 0, 0, 0 }, +- {VLC_CODEC_I422_10B, PIX_FMT_YUV422P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I422_10L, AV_PIX_FMT_YUV422P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I422_10B, AV_PIX_FMT_YUV422P10BE, 0, 0, 0 }, + +- {VLC_CODEC_YUV420A, PIX_FMT_YUVA420P, 0, 0, 0 }, ++ {VLC_CODEC_YUV420A, AV_PIX_FMT_YUVA420P, 0, 0, 0 }, + #if LIBAVUTIL_VERSION_CHECK( 51, 45, 0, 74, 100 ) + {VLC_CODEC_YUV422A, AV_PIX_FMT_YUVA422P, 0, 0, 0 }, + #endif + +- {VLC_CODEC_I444_9L, PIX_FMT_YUV444P9LE, 0, 0, 0 }, +- {VLC_CODEC_I444_9B, PIX_FMT_YUV444P9BE, 0, 0, 0 }, +- {VLC_CODEC_I444_10L, PIX_FMT_YUV444P10LE, 0, 0, 0 }, +- {VLC_CODEC_I444_10B, PIX_FMT_YUV444P10BE, 0, 0, 0 }, +- {VLC_CODEC_I444_16L, PIX_FMT_YUV444P16LE, 0, 0, 0 }, +- {VLC_CODEC_I444_16B, PIX_FMT_YUV444P16BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_9L, AV_PIX_FMT_YUV444P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_9B, AV_PIX_FMT_YUV444P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_10L, AV_PIX_FMT_YUV444P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_10B, AV_PIX_FMT_YUV444P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_16L, AV_PIX_FMT_YUV444P16LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_16B, AV_PIX_FMT_YUV444P16BE, 0, 0, 0 }, + + /* Packed YUV formats */ +- {VLC_CODEC_YUYV, PIX_FMT_YUYV422, 0, 0, 0 }, +- {VLC_FOURCC('Y','U','Y','V'), PIX_FMT_YUYV422, 0, 0, 0 }, +- {VLC_CODEC_UYVY, PIX_FMT_UYVY422, 0, 0, 0 }, +- {VLC_FOURCC('Y','4','1','1'), PIX_FMT_UYYVYY411, 0, 0, 0 }, ++ {VLC_CODEC_YUYV, AV_PIX_FMT_YUYV422, 0, 0, 0 }, ++ {VLC_FOURCC('Y','U','Y','V'), AV_PIX_FMT_YUYV422, 0, 0, 0 }, ++ {VLC_CODEC_UYVY, AV_PIX_FMT_UYVY422, 0, 0, 0 }, ++ {VLC_FOURCC('Y','4','1','1'), AV_PIX_FMT_UYYVYY411, 0, 0, 0 }, + + /* Packed RGB formats */ +- VLC_RGB( VLC_FOURCC('R','G','B','4'), PIX_FMT_RGB4, PIX_FMT_BGR4, 0x10, 0x06, 0x01 ) +- VLC_RGB( VLC_FOURCC('R','G','B','8'), PIX_FMT_RGB8, PIX_FMT_BGR8, 0xC0, 0x38, 0x07 ) ++ VLC_RGB( VLC_FOURCC('R','G','B','4'), AV_PIX_FMT_RGB4, AV_PIX_FMT_BGR4, 0x10, 0x06, 0x01 ) ++ VLC_RGB( VLC_FOURCC('R','G','B','8'), AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, 0xC0, 0x38, 0x07 ) + +- VLC_RGB( VLC_CODEC_RGB15, PIX_FMT_RGB555, PIX_FMT_BGR555, 0x7c00, 0x03e0, 0x001f ) +- VLC_RGB( VLC_CODEC_RGB16, PIX_FMT_RGB565, PIX_FMT_BGR565, 0xf800, 0x07e0, 0x001f ) +- VLC_RGB( VLC_CODEC_RGB24, PIX_FMT_BGR24, PIX_FMT_RGB24, 0xff0000, 0x00ff00, 0x0000ff ) ++ VLC_RGB( VLC_CODEC_RGB15, AV_PIX_FMT_RGB555, AV_PIX_FMT_BGR555, 0x7c00, 0x03e0, 0x001f ) ++ VLC_RGB( VLC_CODEC_RGB16, AV_PIX_FMT_RGB565, AV_PIX_FMT_BGR565, 0xf800, 0x07e0, 0x001f ) ++ VLC_RGB( VLC_CODEC_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB24, 0xff0000, 0x00ff00, 0x0000ff ) + +- VLC_RGB( VLC_CODEC_RGB32, PIX_FMT_RGB32, PIX_FMT_BGR32, 0x00ff0000, 0x0000ff00, 0x000000ff ) +- VLC_RGB( VLC_CODEC_RGB32, PIX_FMT_RGB32_1, PIX_FMT_BGR32_1, 0xff000000, 0x00ff0000, 0x0000ff00 ) ++ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_RGB32, AV_PIX_FMT_BGR32, 0x00ff0000, 0x0000ff00, 0x000000ff ) ++ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_RGB32_1, AV_PIX_FMT_BGR32_1, 0xff000000, 0x00ff0000, 0x0000ff00 ) + + #ifdef AV_PIX_FMT_0BGR32 + VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_0BGR32, AV_PIX_FMT_0RGB32, 0x000000ff, 0x0000ff00, 0x00ff0000 ) + #endif + +- {VLC_CODEC_RGBA, PIX_FMT_RGBA, 0, 0, 0 }, +- {VLC_CODEC_ARGB, PIX_FMT_ARGB, 0, 0, 0 }, +- {VLC_CODEC_BGRA, PIX_FMT_BGRA, 0, 0, 0 }, +- {VLC_CODEC_GREY, PIX_FMT_GRAY8, 0, 0, 0}, ++ {VLC_CODEC_RGBA, AV_PIX_FMT_RGBA, 0, 0, 0 }, ++ {VLC_CODEC_ARGB, AV_PIX_FMT_ARGB, 0, 0, 0 }, ++ {VLC_CODEC_BGRA, AV_PIX_FMT_BGRA, 0, 0, 0 }, ++ {VLC_CODEC_GREY, AV_PIX_FMT_GRAY8, 0, 0, 0}, + + /* Paletized RGB */ +- {VLC_CODEC_RGBP, PIX_FMT_PAL8, 0, 0, 0}, ++ {VLC_CODEC_RGBP, AV_PIX_FMT_PAL8, 0, 0, 0}, + + #if LIBAVUTIL_VERSION_CHECK(51, 42, 0, 74,100) + {VLC_CODEC_GBR_PLANAR, AV_PIX_FMT_GBRP, 0, 0, 0 }, +@@ -201,5 +201,5 @@ int FindFfmpegChroma( vlc_fourcc_t fourcc ) + for( int i = 0; chroma_table[i].i_chroma != 0; i++ ) + if( chroma_table[i].i_chroma == fourcc ) + return chroma_table[i].i_chroma_id; +- return PIX_FMT_NONE; ++ return AV_PIX_FMT_NONE; + } +diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c +index c115db9..ae600e8 100644 +--- a/modules/codec/avcodec/video.c ++++ b/modules/codec/avcodec/video.c +@@ -1004,7 +1004,7 @@ static picture_t *lavc_dr_GetFrame(struct AVCodecContext *ctx, + if (GetVlcChroma(&dec->fmt_out.video, ctx->pix_fmt) != VLC_SUCCESS) + return NULL; + dec->fmt_out.i_codec = dec->fmt_out.video.i_chroma; +- if (ctx->pix_fmt == PIX_FMT_PAL8) ++ if (ctx->pix_fmt == AV_PIX_FMT_PAL8) + return NULL; + + int width = frame->width; +@@ -1180,7 +1180,7 @@ static picture_t *ffmpeg_dr_GetFrameBuf(struct AVCodecContext *p_context) + if (GetVlcChroma(&p_dec->fmt_out.video, p_context->pix_fmt) != VLC_SUCCESS) + goto no_dr; + +- if (p_context->pix_fmt == PIX_FMT_PAL8) ++ if (p_context->pix_fmt == AV_PIX_FMT_PAL8) + goto no_dr; + + p_dec->fmt_out.i_codec = p_dec->fmt_out.video.i_chroma; +@@ -1215,7 +1215,7 @@ static picture_t *ffmpeg_dr_GetFrameBuf(struct AVCodecContext *p_context) + goto no_dr; + } + +- if( p_context->pix_fmt == PIX_FMT_YUV422P ) ++ if( p_context->pix_fmt == AV_PIX_FMT_YUV422P ) + { + if( 2 * p_pic->p[1].i_pitch != p_pic->p[0].i_pitch || + 2 * p_pic->p[2].i_pitch != p_pic->p[0].i_pitch ) +@@ -1325,7 +1325,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, + + /* Enumerate available formats */ + bool can_hwaccel = false; +- for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ ) ++ for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ ) + { + const AVPixFmtDescriptor *dsc = av_pix_fmt_desc_get(pi_fmt[i]); + if (dsc == NULL) +@@ -1352,7 +1352,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, + if( p_va == NULL ) + goto end; + +- for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ ) ++ for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ ) + { + if( p_va->pix_fmt != pi_fmt[i] ) + continue; +diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c +index 569e0f5..4e0ecf1 100644 +--- a/modules/video_chroma/swscale.c ++++ b/modules/video_chroma/swscale.c +@@ -257,35 +257,35 @@ static void FixParameters( int *pi_fmt, bool *pb_has_a, bool *pb_swap_uv, vlc_fo + switch( fmt ) + { + case VLC_CODEC_YUV422A: +- *pi_fmt = PIX_FMT_YUV422P; ++ *pi_fmt = AV_PIX_FMT_YUV422P; + *pb_has_a = true; + break; + case VLC_CODEC_YUV420A: +- *pi_fmt = PIX_FMT_YUV420P; ++ *pi_fmt = AV_PIX_FMT_YUV420P; + *pb_has_a = true; + break; + case VLC_CODEC_YUVA: +- *pi_fmt = PIX_FMT_YUV444P; ++ *pi_fmt = AV_PIX_FMT_YUV444P; + *pb_has_a = true; + break; + case VLC_CODEC_RGBA: +- *pi_fmt = PIX_FMT_BGR32; ++ *pi_fmt = AV_PIX_FMT_BGR32; + *pb_has_a = true; + break; + case VLC_CODEC_ARGB: +- *pi_fmt = PIX_FMT_BGR32_1; ++ *pi_fmt = AV_PIX_FMT_BGR32_1; + *pb_has_a = true; + break; + case VLC_CODEC_BGRA: +- *pi_fmt = PIX_FMT_RGB32; ++ *pi_fmt = AV_PIX_FMT_RGB32; + *pb_has_a = true; + break; + case VLC_CODEC_YV12: +- *pi_fmt = PIX_FMT_YUV420P; ++ *pi_fmt = AV_PIX_FMT_YUV420P; + *pb_swap_uv = true; + break; + case VLC_CODEC_YV9: +- *pi_fmt = PIX_FMT_YUV410P; ++ *pi_fmt = AV_PIX_FMT_YUV410P; + *pb_swap_uv = true; + break; + default: +@@ -314,7 +314,7 @@ static int GetParameters( ScalerConfiguration *p_cfg, + { + if( p_fmti->i_chroma == VLC_CODEC_YUVP && ALLOW_YUVP ) + { +- i_fmti = i_fmto = PIX_FMT_GRAY8; ++ i_fmti = i_fmto = AV_PIX_FMT_GRAY8; + i_sws_flags = SWS_POINT; + } + } +@@ -327,9 +327,9 @@ static int GetParameters( ScalerConfiguration *p_cfg, + * Without SWS_ACCURATE_RND the quality is really bad for some conversions */ + switch( i_fmto ) + { +- case PIX_FMT_ARGB: +- case PIX_FMT_RGBA: +- case PIX_FMT_ABGR: ++ case AV_PIX_FMT_ARGB: ++ case AV_PIX_FMT_RGBA: ++ case AV_PIX_FMT_ABGR: + i_sws_flags |= SWS_ACCURATE_RND; + break; + } +@@ -403,8 +403,8 @@ static int Init( filter_t *p_filter ) + const unsigned i_fmto_visible_width = p_fmto->i_visible_width * p_sys->i_extend_factor; + for( int n = 0; n < (cfg.b_has_a ? 2 : 1); n++ ) + { +- const int i_fmti = n == 0 ? cfg.i_fmti : PIX_FMT_GRAY8; +- const int i_fmto = n == 0 ? cfg.i_fmto : PIX_FMT_GRAY8; ++ const int i_fmti = n == 0 ? cfg.i_fmti : AV_PIX_FMT_GRAY8; ++ const int i_fmto = n == 0 ? cfg.i_fmto : AV_PIX_FMT_GRAY8; + struct SwsContext *ctx; + + ctx = sws_getContext( i_fmti_visible_width, p_fmti->i_visible_height, i_fmti, +-- +2.5.0 + diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch new file mode 100644 index 00000000000..56744e7de8e --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch @@ -0,0 +1,45 @@ +From 6fa8a4a9bb64ff34328aae46acd600f8502b2c05 Mon Sep 17 00:00:00 2001 +From: Jean-Baptiste Kempf +Date: Mon, 31 Aug 2015 09:07:39 +0200 +Subject: [PATCH] SWSCALE: fix compilation with 4.x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +(cherry picked from commit 2b23857c68622edda76b72b74aeb3d943ee277c9) +Signed-off-by: Rafaël Carré +--- + modules/video_chroma/swscale.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c +index 4e0ecf1..26d0d6f 100644 +--- a/modules/video_chroma/swscale.c ++++ b/modules/video_chroma/swscale.c +@@ -36,6 +36,7 @@ + #include + + #include ++#include + + #ifdef __APPLE__ + # include +@@ -235,6 +236,7 @@ static int GetSwsCpuMask(void) + { + int i_sws_cpu = 0; + ++#if LIBSWSCALE_VERSION_MAJOR < 4 + #if defined(__i386__) || defined(__x86_64__) + if( vlc_CPU_MMX() ) + i_sws_cpu |= SWS_CPU_CAPS_MMX; +@@ -248,6 +250,7 @@ static int GetSwsCpuMask(void) + if( vlc_CPU_ALTIVEC() ) + i_sws_cpu |= SWS_CPU_CAPS_ALTIVEC; + #endif ++#endif + + return i_sws_cpu; + } +-- +2.5.0 + diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_2.1.4.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_2.1.4.bb deleted file mode 100644 index 418f77cfcfb..00000000000 --- a/meta-multimedia/recipes-multimedia/vlc/vlc_2.1.4.bb +++ /dev/null @@ -1,15 +0,0 @@ -require ${BPN}.inc - -# work around build failure -EXTRA_OECONF += " --enable-libxml2=no" - -SRC_URI += "file://0001-enable-subdir-objects.patch \ - file://0002-glibc-does-not-provide-strlcpy.patch \ - file://0003-use-am-path-libgcrypt.patch \ - file://0004-modules-gui-qt4-out-of-tree-build.patch \ - file://0005-libpostproc-header-check.patch \ - file://0006-make-opencv-configurable.patch \ -" - -SRC_URI[md5sum] = "7ed67d22f7425011078772bfc62ac222" -SRC_URI[sha256sum] = "3e566c7525478167e18cc53dc75d621e4af91eb40aabb6231e47db25d682d5d3" diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb new file mode 100644 index 00000000000..b5be04cb917 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb @@ -0,0 +1,19 @@ +require ${BPN}.inc + +# work around build failure +EXTRA_OECONF += " --enable-libxml2=no" + +SRC_URI += "file://0001-enable-subdir-objects.patch \ + file://0002-glibc-does-not-provide-strlcpy.patch \ + file://0003-use-am-path-libgcrypt.patch \ + file://0004-modules-gui-qt4-out-of-tree-build.patch \ + file://0005-libpostproc-header-check.patch \ + file://0006-make-opencv-configurable.patch \ + file://0007-use-vorbisidec.patch \ + file://0008-fix-luaL-checkint.patch \ + file://0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch \ + file://0010-SWSCALE-fix-compilation-with-4.x.patch \ +" + +SRC_URI[md5sum] = "f98d60f0f59ef72b6e3407f2ff09bda6" +SRC_URI[sha256sum] = "9ad23128be16f9b40ed772961272cb0748ed8e4aa1bc79c129e589feebea5fb5" diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch new file mode 100644 index 00000000000..b623dbf37ee --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch @@ -0,0 +1,49 @@ +Upstream-Status: Backport + +Backport patch to fix CVE-2015-6749 from: + +https://trac.xiph.org/ticket/2212 + +Signed-off-by: Kai Kang +--- +From 04815d3e1bfae3a6cdfb2c25358a5a72b61299f7 Mon Sep 17 00:00:00 2001 +From: Mark Harris +Date: Sun, 30 Aug 2015 05:54:46 -0700 +Subject: [PATCH] oggenc: Fix large alloca on bad AIFF input + +Fixes #2212 +--- + oggenc/audio.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/oggenc/audio.c b/oggenc/audio.c +index 477da8c..4921fb9 100644 +--- a/oggenc/audio.c ++++ b/oggenc/audio.c +@@ -245,8 +245,8 @@ static int aiff_permute_matrix[6][6] = + int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) + { + int aifc; /* AIFC or AIFF? */ +- unsigned int len; +- unsigned char *buffer; ++ unsigned int len, readlen; ++ unsigned char buffer[22]; + unsigned char buf2[8]; + aiff_fmt format; + aifffile *aiff = malloc(sizeof(aifffile)); +@@ -269,9 +269,9 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) + return 0; /* Weird common chunk */ + } + +- buffer = alloca(len); +- +- if(fread(buffer,1,len,in) < len) ++ readlen = len < sizeof(buffer) ? len : sizeof(buffer); ++ if(fread(buffer,1,readlen,in) < readlen || ++ (len > readlen && !seek_forward(in, len-readlen))) + { + fprintf(stderr, _("Warning: Unexpected EOF in reading AIFF header\n")); + return 0; +-- +2.5.0 + diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch new file mode 100644 index 00000000000..111e98ac1f0 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch @@ -0,0 +1,26 @@ +From: Petter Reinholdtsen +Date: Wed, 22 Oct 2014 13:25:21 +0200 +Subject: Fix format error blocking compilation with hardening + +Last-Update: 2014-10-22 +Forwarded: no + +Enabling hardening refuses to compile code with sprintf() calls +with no formatting string. Adjust the code to work with hardening. +--- + ogg123/status.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ogg123/status.c b/ogg123/status.c +index 92b8ff1..ccec389 100644 +--- a/ogg123/status.c ++++ b/ogg123/status.c +@@ -148,7 +148,7 @@ int print_statistics_line (stat_format_t stats[]) + + switch (stats->type) { + case stat_noarg: +- len += sprintf(str+len, stats->formatstr); ++ len += sprintf(str+len, "%s", stats->formatstr); + break; + case stat_intarg: + len += sprintf(str+len, stats->formatstr, stats->arg.intarg); diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb new file mode 100644 index 00000000000..e43cb40329e --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "Vorbis Tools" +DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \ +that is free of intellectual property restrictions. vorbis-tools \ +include some command line applications to use the libraries." +HOMEPAGE = "http://www.vorbis.com/" +BUGTRACKER = "https://trac.xiph.org" +SECTION = "multimedia" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "libogg libvorbis curl libao" + +SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \ + file://0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch \ + file://0004-Fix-format-error-blocking-compilation-with-hardening.patch \ + " + +SRC_URI[md5sum] = "567e0fb8d321b2cd7124f8208b8b90e6" +SRC_URI[sha256sum] = "a389395baa43f8e5a796c99daf62397e435a7e73531c9f44d9084055a05d22bc" + +inherit autotools pkgconfig gettext + +PACKAGECONFIG ??= "flac" +PACKAGECONFIG[flac] = ",--without-flac,flac,libflac" +PACKAGECONFIG[speex] = ",--without-speex,speex,speex" diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch new file mode 100644 index 00000000000..7668df35d77 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch @@ -0,0 +1,29 @@ +From 4945dca11bc4ddec60bd858f45212dc8f39638e0 Mon Sep 17 00:00:00 2001 +From: Nicolas Dufresne +Date: Tue, 5 Jul 2016 18:07:45 -0400 +Subject: [PATCH 1/6] build: Protect against unsupported CPU types + +Signed-off-by: Tanu Kaskinen +Upstream-Status: Accepted [expected in 0.4] +--- + configure.ac | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6f9553b..f5304b8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -70,8 +70,9 @@ AS_CASE(["${host_cpu}"], + [ + HAVE_ARM=1 + ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" +- ] ++ ], + # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines ++ [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] + ) + AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) + AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) +-- +2.11.0 + diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch new file mode 100644 index 00000000000..2e202b03c1f --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch @@ -0,0 +1,30 @@ +From b5bda3431159b6505dcd069641c863018c4d4309 Mon Sep 17 00:00:00 2001 +From: Nicolas Dufresne +Date: Wed, 6 Jul 2016 15:18:15 -0400 +Subject: [PATCH 2/6] build: Add ARM 64bit support + +Signed-off-by: Tanu Kaskinen +Upstream-Status: Accepted [expected in 0.4] +--- + configure.ac | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/configure.ac b/configure.ac +index f5304b8..be20514 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -71,6 +71,11 @@ AS_CASE(["${host_cpu}"], + HAVE_ARM=1 + ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" + ], ++ [aarch64*], ++ [ ++ HAVE_NEON=1 ++ ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64" ++ ], + # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines + [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] + ) +-- +2.11.0 + diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch new file mode 100644 index 00000000000..82e270fac1b --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch @@ -0,0 +1,96 @@ +From 7722fb8a3189fea0f6381f02a0e4f63c847f0393 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 6 Aug 2016 11:02:43 +0200 +Subject: [PATCH 3/6] build: fix architecture detection + +The current architecture detection, based on the "host_cpu" part of the +tuple does not work properly for a number of reason: + + - The code assumes that if host_cpu starts with "arm" then ARM + instructions are available, which is incorrect. Indeed, Cortex-M + platforms can run Linux, they are ARM platforms (so host_cpu = arm), + but they don't support ARM instructions: they support only the + Thumb-2 instruction set. + + - The armv7 case is also not very useful, as it is not standard at all + to pass armv7 as host_cpu even if the host system is actually ARMv7 + based. + + - For the same reason, the armv8 case is not very useful: ARMv8 is + AArch64, and there is already a separate case to handle this + architecture. + +So, this commit moves away from a host_cpu based logic, and instead +tests using AC_CHECK_DECLS() the built-in definitions of the compiler: + + - If we have __ARM_ARCH_ISA_ARM defined, then it's an ARM processor + that supports the ARM instruction set (this allows to exclude Thumb-2 + only processors). + + - If we have __ARM_ARCH_7A__, then we have an ARMv7-A processor, and + we can enable the corresponding optimizations + + - Same for __aarch64__, __i386__ and __x86_64__. + +In addition, we remove the AC_MSG_ERROR() that makes the build fail for +all architectures but the ones that are explicitly supported. Indeed, +webrtc-audio-processing builds just fine for other architectures (tested +on MIPS), it's just that none of the architecture-specific optimizations +will be used. + +Signed-off-by: Thomas Petazzoni +Signed-off-by: Tanu Kaskinen +Upstream-Status: Accepted [expected in 0.4] +--- + configure.ac | 35 +++++++++++------------------------ + 1 file changed, 11 insertions(+), 24 deletions(-) + +diff --git a/configure.ac b/configure.ac +index be20514..e898014 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,30 +55,17 @@ AS_CASE(["${host}"], + ) + AC_SUBST(PLATFORM_CFLAGS) + +-AS_CASE(["${host_cpu}"], +- [i?86|x86_64], +- [ +- HAVE_X86=1 +- ], +- [armv7*|armv8*], +- [ +- HAVE_ARM=1 +- HAVE_ARMV7=1 +- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7" +- ], +- [arm*], +- [ +- HAVE_ARM=1 +- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" +- ], +- [aarch64*], +- [ +- HAVE_NEON=1 +- ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64" +- ], +- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines +- [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] +-) ++# Testing __ARM_ARCH_ISA_ARM since the code contains ARM instructions, ++# which don't work on Thumb-2 only platforms (ARMv7-M). ++AC_CHECK_DECLS([__ARM_ARCH_ISA_ARM], ++ [HAVE_ARM=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM"]) ++AC_CHECK_DECLS([__ARM_ARCH_7A__], ++ [HAVE_ARMV7=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM_V7"]) ++AC_CHECK_DECLS([__aarch64__], ++ [HAVE_NEON=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"]) ++AC_CHECK_DECLS([__i386__], [HAVE_X86=1]) ++AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1]) ++ + AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) + AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) + AM_CONDITIONAL(HAVE_ARMV7, [test "x${HAVE_ARMV7}" = "x1"]) +-- +2.11.0 + diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch new file mode 100644 index 00000000000..c96f10ed974 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch @@ -0,0 +1,41 @@ +From 0c332b7d94f8425c4f33344ddf406b6eea458861 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Mon, 8 May 2017 17:01:49 +0300 +Subject: [PATCH 4/6] typedefs.h: add support for 64-bit and big endian MIPS + +The 64-bit check is taken from the upstream webrtc project, the big +endian check is my own addition. + +Upstream-Status: Pending +Signed-off-by: Tanu Kaskinen +--- + webrtc/typedefs.h | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/webrtc/typedefs.h b/webrtc/typedefs.h +index d875490..d1b2f54 100644 +--- a/webrtc/typedefs.h ++++ b/webrtc/typedefs.h +@@ -41,9 +41,18 @@ + //#define WEBRTC_ARCH_ARMEL + #define WEBRTC_ARCH_32_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN +-#elif defined(__MIPSEL__) ++#elif defined(__MIPSEL__) || defined(__MIPSEB__) ++#define WEBRTC_ARCH_MIPS_FAMILY ++#if defined(__LP64__) ++#define WEBRTC_ARCH_64_BITS ++#else + #define WEBRTC_ARCH_32_BITS ++#endif ++#if defined(__MIPSEL__) + #define WEBRTC_ARCH_LITTLE_ENDIAN ++#else ++#define WEBRTC_ARCH_BIG_ENDIAN ++#endif + #elif defined(__pnacl__) + #define WEBRTC_ARCH_32_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN +-- +2.11.0 + diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0005-typedefs.h-add-support-for-PowerPC.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0005-typedefs.h-add-support-for-PowerPC.patch new file mode 100644 index 00000000000..e16b57ecb51 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0005-typedefs.h-add-support-for-PowerPC.patch @@ -0,0 +1,28 @@ +From db5f570e928c8ca5b0b8dc702e1af0a57277f092 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Mon, 3 Jul 2017 16:20:08 +0300 +Subject: [PATCH 5/6] typedefs.h: add support for PowerPC + +Upstream-Status: Pending +Signed-off-by: Tanu Kaskinen +--- + webrtc/typedefs.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/webrtc/typedefs.h b/webrtc/typedefs.h +index d1b2f54..6e34d9e 100644 +--- a/webrtc/typedefs.h ++++ b/webrtc/typedefs.h +@@ -53,6 +53,9 @@ + #else + #define WEBRTC_ARCH_BIG_ENDIAN + #endif ++#elif defined(__powerpc__) ++#define WEBRTC_ARCH_32_BITS ++#define WEBRTC_ARCH_BIG_ENDIAN + #elif defined(__pnacl__) + #define WEBRTC_ARCH_32_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN +-- +2.11.0 + diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0006-common_audio-implement-endianness-conversion-in-wav-.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0006-common_audio-implement-endianness-conversion-in-wav-.patch new file mode 100644 index 00000000000..5826ab00da7 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0006-common_audio-implement-endianness-conversion-in-wav-.patch @@ -0,0 +1,116 @@ +From 7d31da8ef93987000f297d435dbacaf7d436107b Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Thu, 15 Jun 2017 18:38:30 +0300 +Subject: [PATCH 6/6] common_audio: implement endianness conversion in wav file + handling + +The code didn't build for big endian machines due to the missing +endianness conversions. + +Upstream-Status: Pending +Signed-off-by: Tanu Kaskinen +--- + webrtc/common_audio/wav_file.cc | 27 +++++++++++++++++++++------ + webrtc/common_audio/wav_header.cc | 32 +++++++++++++++++++++++++++++++- + 2 files changed, 52 insertions(+), 7 deletions(-) + +diff --git a/webrtc/common_audio/wav_file.cc b/webrtc/common_audio/wav_file.cc +index b14b620..e2f7738 100644 +--- a/webrtc/common_audio/wav_file.cc ++++ b/webrtc/common_audio/wav_file.cc +@@ -64,9 +64,6 @@ WavReader::~WavReader() { + } + + size_t WavReader::ReadSamples(size_t num_samples, int16_t* samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to big-endian when reading from WAV file" +-#endif + // There could be metadata after the audio; ensure we don't read it. + num_samples = std::min(rtc::checked_cast(num_samples), + num_samples_remaining_); +@@ -76,6 +73,13 @@ size_t WavReader::ReadSamples(size_t num_samples, int16_t* samples) { + RTC_CHECK(read == num_samples || feof(file_handle_)); + RTC_CHECK_LE(read, num_samples_remaining_); + num_samples_remaining_ -= rtc::checked_cast(read); ++ ++#ifdef WEBRTC_ARCH_BIG_ENDIAN ++ // Convert the read samples from little-endian to big-endian. ++ for (size_t i = 0; i < read; i++) ++ samples[i] = ((uint16_t) samples[i] >> 8) | ((uint16_t) samples[i] << 8); ++#endif ++ + return read; + } + +@@ -119,11 +123,22 @@ WavWriter::~WavWriter() { + } + + void WavWriter::WriteSamples(const int16_t* samples, size_t num_samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to little-endian when writing to WAV file" +-#endif ++#ifdef WEBRTC_ARCH_BIG_ENDIAN ++ // Convert the samples from big-endian samples to little-endian. ++ int16_t* converted_samples = static_cast(malloc(num_samples * sizeof(*samples))); ++ RTC_CHECK(converted_samples) << "Out of memory."; ++ for (int i = 0; i < num_samples; i++) ++ converted_samples[i] = ++ ((uint16_t) samples[i] >> 8) | ((uint16_t) samples[i] << 8); ++ ++ const size_t written = ++ fwrite(converted_samples, sizeof(*converted_samples), num_samples, ++ file_handle_); ++ free(converted_samples); ++#else + const size_t written = + fwrite(samples, sizeof(*samples), num_samples, file_handle_); ++#endif + RTC_CHECK_EQ(num_samples, written); + num_samples_ += static_cast(written); + RTC_CHECK(written <= std::numeric_limits::max() || +diff --git a/webrtc/common_audio/wav_header.cc b/webrtc/common_audio/wav_header.cc +index 61cfffe..382bfc7 100644 +--- a/webrtc/common_audio/wav_header.cc ++++ b/webrtc/common_audio/wav_header.cc +@@ -129,7 +129,37 @@ static inline std::string ReadFourCC(uint32_t x) { + return std::string(reinterpret_cast(&x), 4); + } + #else +-#error "Write be-to-le conversion functions" ++static inline void WriteLE16(uint16_t* f, uint16_t x) { ++ *f = x >> 8 | x << 8; ++} ++static inline void WriteLE32(uint32_t* f, uint32_t x) { ++ *f = x >> 24 ++ | (x && 0xFF0000) >> 8 ++ | (x && 0xFF00) << 8 ++ | x << 24; ++} ++static inline void WriteFourCC(uint32_t* f, char a, char b, char c, char d) { ++ *f = static_cast(d) ++ | static_cast(c) << 8 ++ | static_cast(b) << 16 ++ | static_cast(a) << 24; ++} ++ ++static inline uint32_t ReadLE16(uint16_t x) { ++ return x >> 8 | x << 8; ++} ++ ++static inline uint32_t ReadLE32(uint32_t x) { ++ return x >> 24 ++ | (x && 0xFF0000) >> 8 ++ | (x && 0xFF00) << 8 ++ | x << 24; ++} ++ ++static inline std::string ReadFourCC(uint32_t x) { ++ x = ReadLE32(x); ++ return std::string(reinterpret_cast(&x), 4); ++} + #endif + + static inline uint32_t RiffChunkSize(uint32_t bytes_in_payload) { +-- +2.11.0 + diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb new file mode 100644 index 00000000000..2b0f7c68402 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Audio processing bits of the WebRTC reference implementation" +HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/" +SECTION = "audio" + +DEPENDS_append_libc-musl = " libexecinfo" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \ + file://webrtc/common.h;beginline=1;endline=9;md5=41f7322d91deabaf0acbbd0b8d0bc548 \ +" + +# Note that patch 3 effectively reverts patches 1 and 2. The only reason +# why patches 1 and 2 are included is that otherwise patch 3 wouldn't +# apply cleanly. +SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${BP}.tar.xz \ + file://0001-build-Protect-against-unsupported-CPU-types.patch \ + file://0002-build-Add-ARM-64bit-support.patch \ + file://0003-build-fix-architecture-detection.patch \ + file://0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch \ + file://0005-typedefs.h-add-support-for-PowerPC.patch \ + file://0006-common_audio-implement-endianness-conversion-in-wav-.patch \ +" + +SRC_URI[md5sum] = "336ae032f608e65808ac577cde0ab72c" +SRC_URI[sha256sum] = "756e291d4f557d88cd50c4fe3b8454ec238362d22cedb3e6173240d90f0a80fa" + +LDFLAGS_append_libc-musl = " -lexecinfo" +inherit autotools diff --git a/meta-multimedia/recipes-support/crossguid/crossguid.bb b/meta-multimedia/recipes-support/crossguid/crossguid.bb new file mode 100644 index 00000000000..228b8b65406 --- /dev/null +++ b/meta-multimedia/recipes-support/crossguid/crossguid.bb @@ -0,0 +1,25 @@ +# Copyright (C) 2017 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Lightweight cross platform C++ GUID/UUID library" +HOMEPAGE = "https://github.com/graeme-hill/crossguid" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1373274bc8d8001edc54933919f36f68" +DEPENDS += "util-linux" + +PV = "0.0+git${SRCPV}" + +SRCREV = "b56957ac453575e91ca1b63a80c0077c2b0d011a" +SRC_URI = "git://github.com/graeme-hill/crossguid;protocol=https" + +S = "${WORKDIR}/git" + +do_compile() { + ${CXX} -c guid.cpp -o guid.o ${CXXFLAGS} -std=c++11 -DGUID_LIBUUID + ${AR} rvs libcrossguid.a guid.o +} + +do_install() { + install -D -m 0644 ${B}/libcrossguid.a ${D}${libdir}/libcrossguid.a + install -D -m 0644 ${S}/guid.h ${D}${includedir}/guid.h +} diff --git a/meta-multimedia/recipes-support/gst-instruments/gst-instruments_0.2.3.bb b/meta-multimedia/recipes-support/gst-instruments/gst-instruments_0.2.3.bb new file mode 100644 index 00000000000..b6cdc4f1462 --- /dev/null +++ b/meta-multimedia/recipes-support/gst-instruments/gst-instruments_0.2.3.bb @@ -0,0 +1,22 @@ +SUMMARY = "Profiling utilities for GStreamer 1.0 pipelines" +HOMEPAGE = "https://github.com/kirushyk/gst-instruments" +SECTION = "multimedia" + +LICENSE = "LGPL-3.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI = "https://github.com/kirushyk/gst-instruments/archive/${PV}.tar.gz" + +SRC_URI[md5sum] = "14a394dec25642848b17f9999f1b4999" +SRC_URI[sha256sum] = "5565658a33ff9596946541304fbdd3b3683dbb82171a0e6ce56f42b64a01e58d" + +S = "${WORKDIR}/gst-instruments-${PV}" + +FILES_${PN} += "${libdir}/*" + +INSANE_SKIP_${PN} = "dev-so" + +DEPENDS = "gstreamer1.0" + +inherit autotools pkgconfig + diff --git a/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb b/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb new file mode 100644 index 00000000000..44f135a216e --- /dev/null +++ b/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb @@ -0,0 +1,7 @@ +require libmediaart.inc + +SRC_URI = "${GNOME_MIRROR}/libmediaart/1.9/libmediaart-${PV}.tar.xz" +SRC_URI[md5sum] = "0b65d64398d2f3dff89534c9dfffab4f" +SRC_URI[sha256sum] = "94668adb29d4dc3115b0fd105942ebd5ca6f5f9dbb2afa8a191a73a747dd506f" + +S = "${WORKDIR}/libmediaart-${PV}" diff --git a/meta-multimedia/recipes-support/libmediaart/libmediaart.inc b/meta-multimedia/recipes-support/libmediaart/libmediaart.inc new file mode 100644 index 00000000000..57dca9c1763 --- /dev/null +++ b/meta-multimedia/recipes-support/libmediaart/libmediaart.inc @@ -0,0 +1,14 @@ +SUMMARY = "Library tasked with managing, extracting and handling media art caches" + +LICENSE = "LGPLv2+ & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \ + file://libmediaart/extract.c;endline=18;md5=dff2b6328ab067b5baadc135f9876c36 \ + file://tests/mediaarttest.c;endline=18;md5=067106eaa1f7a9d918759a096667f18e" + +DEPENDS = "glib-2.0 gdk-pixbuf" + +GNOME_COMPRESS_TYPE = "xz" + +inherit gnomebase gtk-doc gobject-introspection + +EXTRA_OECONF = "--disable-qt --enable-gdkpixbuf" diff --git a/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb b/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb index ed7f0794c01..ae95d4f6975 100644 --- a/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb +++ b/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb @@ -1,16 +1,6 @@ -SUMMARY = "Library tasked with managing, extracting and handling media art caches" +require libmediaart.inc -LICENSE = "LGPLv2+ & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \ - file://libmediaart/extract.c;endline=18;md5=dff2b6328ab067b5baadc135f9876c36 \ - file://tests/mediaarttest.c;endline=18;md5=067106eaa1f7a9d918759a096667f18e" - -DEPENDS = "glib-2.0 gdk-pixbuf" - -GNOME_COMPRESS_TYPE = "xz" SRC_URI[archive.md5sum] = "1a44933d4cd0064e3c76d8d0ddacddc9" SRC_URI[archive.sha256sum] = "3a9dffcad862aed7c0921579b93080d694b8a66f3676bfee8037867f653a1cd3" -inherit gnomebase gtk-doc - -EXTRA_OECONF = "--disable-introspection --disable-qt --enable-gdkpixbuf" +EXTRA_OECONF_append = " --disable-gtk-doc" diff --git a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch new file mode 100644 index 00000000000..aff1cb18427 --- /dev/null +++ b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch @@ -0,0 +1,41 @@ +Upstream-Status: Inappropriate [configuration] + +From 1921498bcc06408e8b051a3a9e9ce4182998f748 Mon Sep 17 00:00:00 2001 +From: David Schleef +Date: Fri, 8 Apr 2011 10:05:49 -0700 +Subject: [PATCH 10/10] Fix --enable-vfp flag + +Patch from Christophe Lyon, fixes #36084. +--- + configure.ac | 4 ++-- + liboil/arm/Makefile.am | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 98c81fb..407d88c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -188,8 +188,8 @@ fi + AC_ARG_ENABLE(vfp, + AC_HELP_STRING([--enable-vfp],[compile with Vector Floating-point unit support]), + enable_vfp=$enableval,enable_vfp=yes) +-if test "x$enable-vfp" = xyes -a x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes; then +- AS_COMPILER_FLAG(["-Wa,-mfpu=vfp"], ++if test "x$enable_vfp" = xyes -a x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes; then ++ AS_COMPILER_FLAG(["-mfpu=vfp"], + [VFP_CFLAGS="$VFP_CFLAGS -mfpu=vfp"], + true) + #AS_COMPILER_FLAG(["-Wa,-mfloat-abi=softfp"], +diff --git a/liboil/arm/Makefile.am b/liboil/arm/Makefile.am +index ead08ed..cd8d9fa 100644 +--- a/liboil/arm/Makefile.am ++++ b/liboil/arm/Makefile.am +@@ -6,4 +6,5 @@ libarm_la_SOURCES = \ + math_vfp_asm.S + + libarm_la_CFLAGS = $(LIBOIL_CFLAGS) $(VFP_CFLAGS) ++libarm_la_CCASFLAGS = $(LIBOIL_CFLAGS) $(VFP_CFLAGS) + +-- +1.7.6 + diff --git a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch new file mode 100644 index 00000000000..c8e3c1f7215 --- /dev/null +++ b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch @@ -0,0 +1,19 @@ +Upstream: https://bugs.freedesktop.org/show_bug.cgi?id=31358 + +configure: fix whitelisting of x86_64 unaligned memory access + +Fix typo in whitelist so cross-compile works for x86_64. + +Upstream-Status: Inappropriate [configuration] + +--- liboil-0.3.17/m4/as-unaligned-access.m4.orig 2009-02-26 14:40:08.000000000 -0500 ++++ liboil-0.3.17/m4/as-unaligned-access.m4 2010-11-03 12:19:55.000000000 -0400 +@@ -9,7 +9,7 @@ + _AS_ECHO_N([(blacklisted) ]) + as_cv_unaligned_access=no + ;; +- i?86*|x86_64|amd64|powerpc*|m68k*|cris*) ++ i?86*|x86_64*|amd64*|powerpc*|m68k*|cris*) + _AS_ECHO_N([(whitelisted) ]) + as_cv_unaligned_access=yes + ;; diff --git a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch new file mode 100644 index 00000000000..473380e9fcd --- /dev/null +++ b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch @@ -0,0 +1,222 @@ +Upstream-Status: Pending + +Make the assembly syntax compatible with x32 gcc. Othewise x32 gcc throws errors. + +Signed-Off-By: Nitin A Kamble +2011/12/01 + + +Index: liboil-0.3.17/liboil/amd64/wavelet.c +=================================================================== +--- liboil-0.3.17.orig/liboil/amd64/wavelet.c ++++ liboil-0.3.17/liboil/amd64/wavelet.c +@@ -21,14 +21,14 @@ deinterleave2_asm (int16_t *d1, int16_t + asm volatile ("\n" + " sub $2, %%rcx\n" + "1:\n" +- " movw (%1,%%rcx,4), %%ax\n" +- " movw %%ax, (%0,%%rcx,2)\n" +- " movw 2(%1,%%rcx,4), %%ax\n" +- " movw %%ax, (%2,%%rcx,2)\n" +- " movw 4(%1,%%rcx,4), %%ax\n" +- " movw %%ax, 2(%0,%%rcx,2)\n" +- " movw 6(%1,%%rcx,4), %%ax\n" +- " movw %%ax, 2(%2,%%rcx,2)\n" ++ " movw (%q1,%%rcx,4), %%ax\n" ++ " movw %%ax, (%q0,%%rcx,2)\n" ++ " movw 2(%q1,%%rcx,4), %%ax\n" ++ " movw %%ax, (%q2,%%rcx,2)\n" ++ " movw 4(%q1,%%rcx,4), %%ax\n" ++ " movw %%ax, 2(%q0,%%rcx,2)\n" ++ " movw 6(%q1,%%rcx,4), %%ax\n" ++ " movw %%ax, 2(%q2,%%rcx,2)\n" + " sub $2, %%rcx\n" + " jge 1b\n" + : "+r" (d1), "+r" (s_2xn), "+r" (d2), "+c" (n) +@@ -53,20 +53,20 @@ deinterleave2_mmx (int16_t *d1, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%1,%%rcx,4), %%mm0\n" +- " movq 8(%1,%%rcx,4), %%mm1\n" ++ " movq (%q1,%%rcx,4), %%mm0\n" ++ " movq 8(%q1,%%rcx,4), %%mm1\n" + " pslld $16, %%mm0\n" + " pslld $16, %%mm1\n" + " psrad $16, %%mm0\n" + " psrad $16, %%mm1\n" + " packssdw %%mm1, %%mm0\n" +- " movq %%mm0, (%0,%%rcx,2)\n" +- " movq (%1,%%rcx,4), %%mm0\n" +- " movq 8(%1,%%rcx,4), %%mm1\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" ++ " movq (%q1,%%rcx,4), %%mm0\n" ++ " movq 8(%q1,%%rcx,4), %%mm1\n" + " psrad $16, %%mm0\n" + " psrad $16, %%mm1\n" + " packssdw %%mm1, %%mm0\n" +- " movq %%mm0, (%2,%%rcx,2)\n" ++ " movq %%mm0, (%q2,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -93,10 +93,10 @@ deinterleave2_mmx_2 (int16_t *d1, int16_ + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " pshufw $0xd8, (%1,%%rcx,4), %%mm0\n" +- " movd %%mm0, (%0,%%rcx,2)\n" +- " pshufw $0x8d, (%1,%%rcx,4), %%mm0\n" +- " movd %%mm0, (%2,%%rcx,2)\n" ++ " pshufw $0xd8, (%q1,%%rcx,4), %%mm0\n" ++ " movd %%mm0, (%q0,%%rcx,2)\n" ++ " pshufw $0x8d, (%q1,%%rcx,4), %%mm0\n" ++ " movd %%mm0, (%q2,%%rcx,2)\n" + " add $2, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -123,16 +123,16 @@ deinterleave2_mmx_3 (int16_t *d1, int16_ + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%1,%%rcx,4), %%mm1\n" +- " movq (%1,%%rcx,4), %%mm2\n" +- " movq 8(%1,%%rcx,4), %%mm0\n" ++ " movq (%q1,%%rcx,4), %%mm1\n" ++ " movq (%q1,%%rcx,4), %%mm2\n" ++ " movq 8(%q1,%%rcx,4), %%mm0\n" + " punpcklwd %%mm0, %%mm1\n" + " punpckhwd %%mm0, %%mm2\n" + " movq %%mm1, %%mm0\n" + " punpcklwd %%mm2, %%mm0\n" + " punpckhwd %%mm2, %%mm1\n" +- " movq %%mm0, (%0,%%rcx,2)\n" +- " movq %%mm1, (%2,%%rcx,2)\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" ++ " movq %%mm1, (%q2,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -159,26 +159,26 @@ deinterleave2_mmx_4 (int16_t *d1, int16_ + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%1,%%rcx,4), %%mm1\n" ++ " movq (%q1,%%rcx,4), %%mm1\n" + " movq %%mm1, %%mm2\n" +- " movq 8(%1,%%rcx,4), %%mm0\n" +- " movq 16(%1,%%rcx,4), %%mm5\n" ++ " movq 8(%q1,%%rcx,4), %%mm0\n" ++ " movq 16(%q1,%%rcx,4), %%mm5\n" + " punpcklwd %%mm0, %%mm1\n" + " movq %%mm5, %%mm6\n" + " punpckhwd %%mm0, %%mm2\n" +- " movq 24(%1,%%rcx,4), %%mm4\n" ++ " movq 24(%q1,%%rcx,4), %%mm4\n" + " movq %%mm1, %%mm0\n" + " punpcklwd %%mm4, %%mm5\n" + " punpcklwd %%mm2, %%mm0\n" + " punpckhwd %%mm4, %%mm6\n" + " punpckhwd %%mm2, %%mm1\n" + " movq %%mm5, %%mm4\n" +- " movq %%mm0, (%0,%%rcx,2)\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" + " punpcklwd %%mm6, %%mm4\n" +- " movq %%mm1, (%2,%%rcx,2)\n" ++ " movq %%mm1, (%q2,%%rcx,2)\n" + " punpckhwd %%mm6, %%mm5\n" +- " movq %%mm4, 8(%0,%%rcx,2)\n" +- " movq %%mm5, 8(%2,%%rcx,2)\n" ++ " movq %%mm4, 8(%q0,%%rcx,2)\n" ++ " movq %%mm5, 8(%q2,%%rcx,2)\n" + " add $8, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -252,13 +252,13 @@ interleave2_mmx (int16_t *d_2xn, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%1,%%rcx,2), %%mm0\n" +- " movq (%2,%%rcx,2), %%mm1\n" ++ " movq (%q1,%%rcx,2), %%mm0\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" + " movq %%mm0, %%mm2\n" + " punpckhwd %%mm1, %%mm0\n" + " punpcklwd %%mm1, %%mm2\n" +- " movq %%mm2, (%0,%%rcx,4)\n" +- " movq %%mm0, 8(%0,%%rcx,4)\n" ++ " movq %%mm2, (%q0,%%rcx,4)\n" ++ " movq %%mm0, 8(%q0,%%rcx,4)\n" + " add $4, %%rcx\n" + " cmp %3, %%ecx\n" + " jl 1b\n" +@@ -285,12 +285,12 @@ lift_add_shift1_mmx (int16_t *d, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%2,%%rcx,2), %%mm1\n" +- " movq (%3,%%rcx,2), %%mm2\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" ++ " movq (%q3,%%rcx,2), %%mm2\n" + " paddw %%mm2, %%mm1\n" + " psraw $1, %%mm1\n" +- " paddw (%1,%%rcx,2), %%mm1\n" +- " movq %%mm1, (%0,%%rcx,2)\n" ++ " paddw (%q1,%%rcx,2), %%mm1\n" ++ " movq %%mm1, (%q0,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %4, %%ecx\n" + " jl 1b\n" +@@ -317,13 +317,13 @@ lift_sub_shift1_mmx (int16_t *d, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%2,%%rcx,2), %%mm1\n" +- " movq (%3,%%rcx,2), %%mm2\n" +- " movq (%1,%%rcx,2), %%mm0\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" ++ " movq (%q3,%%rcx,2), %%mm2\n" ++ " movq (%q1,%%rcx,2), %%mm0\n" + " paddw %%mm2, %%mm1\n" + " psraw $1, %%mm1\n" + " psubw %%mm1, %%mm0\n" +- " movq %%mm0, (%0,%%rcx,2)\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %4, %%ecx\n" + " jl 1b\n" +@@ -350,12 +350,12 @@ lift_add_shift2_mmx (int16_t *d, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%2,%%rcx,2), %%mm1\n" +- " movq (%3,%%rcx,2), %%mm2\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" ++ " movq (%q3,%%rcx,2), %%mm2\n" + " paddw %%mm2, %%mm1\n" + " psraw $2, %%mm1\n" +- " paddw (%1,%%rcx,2), %%mm1\n" +- " movq %%mm1, (%0,%%rcx,2)\n" ++ " paddw (%q1,%%rcx,2), %%mm1\n" ++ " movq %%mm1, (%q0,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %4, %%ecx\n" + " jl 1b\n" +@@ -382,13 +382,13 @@ lift_sub_shift2_mmx (int16_t *d, int16_t + asm volatile ("\n" + " xor %%rcx, %%rcx\n" + "1:\n" +- " movq (%2,%%rcx,2), %%mm1\n" +- " movq (%3,%%rcx,2), %%mm2\n" +- " movq (%1,%%rcx,2), %%mm0\n" ++ " movq (%q2,%%rcx,2), %%mm1\n" ++ " movq (%q3,%%rcx,2), %%mm2\n" ++ " movq (%q1,%%rcx,2), %%mm0\n" + " paddw %%mm2, %%mm1\n" + " psraw $2, %%mm1\n" + " psubw %%mm1, %%mm0\n" +- " movq %%mm0, (%0,%%rcx,2)\n" ++ " movq %%mm0, (%q0,%%rcx,2)\n" + " add $4, %%rcx\n" + " cmp %4, %%ecx\n" + " jl 1b\n" diff --git a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch new file mode 100644 index 00000000000..892d4413101 --- /dev/null +++ b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch @@ -0,0 +1,24 @@ +Upstream-Status: Inappropriate [disable feature] + +--- liboil-0.3.9/liboil/liboilfunction.c.old 2006-09-18 13:03:20.000000000 +0100 ++++ liboil-0.3.9/liboil/liboilfunction.c 2006-09-18 13:04:10.000000000 +0100 +@@ -345,7 +345,9 @@ + return; + } + +- test = oil_test_new (klass); ++ klass->chosen_impl = klass->reference_impl; ++ klass->func = klass->reference_impl->func; ++/* test = oil_test_new (klass); + if (test == NULL) { + OIL_ERROR ("failed to test function class %s", klass->name); + return; +@@ -385,7 +387,7 @@ + klass->chosen_impl = min_impl; + klass->func = min_impl->func; + +- oil_test_free (test); ++ oil_test_free (test);*/ + } + + static void diff --git a/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb b/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb new file mode 100644 index 00000000000..03b77852150 --- /dev/null +++ b/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb @@ -0,0 +1,27 @@ +SUMMARY = "Library of simple functions optimized for various CPUs" +HOMEPAGE = "http://liboil.freedesktop.org/" +BUGTRACKER = "https://bugs.freedesktop.org/" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=ad80780d9c5205d63481a0184e199a15 \ + file://liboil/liboil.h;endline=28;md5=95c794a66b88800d949fed17e437d9fb \ + file://liboil/liboilcpu.c;endline=28;md5=89da69a61d88eedcba066f42353fb75a \ + file://examples/example1.c;endline=29;md5=9d4dad9fcbbdf0441ee063f8af5170c9 \ + file://testsuite/trans.c;endline=29;md5=380ecd43121fe3dcc0d8d7e5984f283d" + +DEPENDS = "glib-2.0" +PR = "r5" + +SRC_URI = "http://liboil.freedesktop.org/download/${BPN}-${PV}.tar.gz \ + file://no-tests.patch \ + file://fix-unaligned-whitelist.patch \ + file://0001-Fix-enable-vfp-flag.patch \ + file://liboil_fix_for_x32.patch \ + " + +SRC_URI[md5sum] = "47dc734f82faeb2964d97771cfd2e701" +SRC_URI[sha256sum] = "105f02079b0b50034c759db34b473ecb5704ffa20a5486b60a8b7698128bfc69" + +inherit autotools pkgconfig + +ARM_INSTRUCTION_SET = "arm" diff --git a/meta-multimedia/recipes-support/libsrtp/libsrtp/0001-Rename-conflicting-variable-mips.patch b/meta-multimedia/recipes-support/libsrtp/libsrtp/0001-Rename-conflicting-variable-mips.patch new file mode 100644 index 00000000000..b56c78959ac --- /dev/null +++ b/meta-multimedia/recipes-support/libsrtp/libsrtp/0001-Rename-conflicting-variable-mips.patch @@ -0,0 +1,73 @@ +From 3dc8a678a844247d0afcf7e30fb3cbd5ccbd828f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Jun 2017 14:05:06 -0700 +Subject: [PATCH] Rename conflicting variable 'mips' + +Fixes +test/srtp_driver.c:344:12: error: expected identifier or '(' before numeric constant + double mips = mips_estimate(1000000000, &ignore); + +Signed-off-by: Khem Raj +--- + test/srtp_driver.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/test/srtp_driver.c b/test/srtp_driver.c +index 8872971..d38ea19 100644 +--- a/test/srtp_driver.c ++++ b/test/srtp_driver.c +@@ -341,7 +341,7 @@ main (int argc, char *argv[]) { + if (do_codec_timing) { + srtp_policy_t policy; + int ignore; +- double mips = mips_estimate(1000000000, &ignore); ++ double est = mips_estimate(1000000000, &ignore); + + crypto_policy_set_rtp_default(&policy.rtp); + crypto_policy_set_rtcp_default(&policy.rtcp); +@@ -353,33 +353,33 @@ main (int argc, char *argv[]) { + policy.allow_repeat_tx = 0; + policy.next = NULL; + +- printf("mips estimate: %e\n", mips); ++ printf("mips estimate: %e\n", est); + + printf("testing srtp processing time for voice codecs:\n"); + printf("codec\t\tlength (octets)\t\tsrtp instructions/second\n"); + printf("G.711\t\t%d\t\t\t%e\n", 80, +- (double) mips * (80 * 8) / ++ (double) est * (80 * 8) / + srtp_bits_per_second(80, &policy) / .01 ); + printf("G.711\t\t%d\t\t\t%e\n", 160, +- (double) mips * (160 * 8) / ++ (double) est * (160 * 8) / + srtp_bits_per_second(160, &policy) / .02); + printf("G.726-32\t%d\t\t\t%e\n", 40, +- (double) mips * (40 * 8) / ++ (double) est * (40 * 8) / + srtp_bits_per_second(40, &policy) / .01 ); + printf("G.726-32\t%d\t\t\t%e\n", 80, +- (double) mips * (80 * 8) / ++ (double) est * (80 * 8) / + srtp_bits_per_second(80, &policy) / .02); + printf("G.729\t\t%d\t\t\t%e\n", 10, +- (double) mips * (10 * 8) / ++ (double) est * (10 * 8) / + srtp_bits_per_second(10, &policy) / .01 ); + printf("G.729\t\t%d\t\t\t%e\n", 20, +- (double) mips * (20 * 8) / ++ (double) est * (20 * 8) / + srtp_bits_per_second(20, &policy) / .02 ); + printf("Wideband\t%d\t\t\t%e\n", 320, +- (double) mips * (320 * 8) / ++ (double) est * (320 * 8) / + srtp_bits_per_second(320, &policy) / .01 ); + printf("Wideband\t%d\t\t\t%e\n", 640, +- (double) mips * (640 * 8) / ++ (double) est * (640 * 8) / + srtp_bits_per_second(640, &policy) / .02 ); + } + +-- +2.13.2 + diff --git a/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb b/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb new file mode 100644 index 00000000000..8abaa1284a6 --- /dev/null +++ b/meta-multimedia/recipes-support/libsrtp/libsrtp_1.5.2.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "library implementing Secure RTP (RFC 3711)" +HOMEPAGE = "https://github.com/cisco/libsrtp" +SECTION = "libs" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=15bc16b9d2e305974dde47e733883714" + +SRC_URI = "https://github.com/cisco/libsrtp/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \ + file://0001-Rename-conflicting-variable-mips.patch \ + " +SRC_URI[md5sum] = "2309aa6027992810a4285b042c71e644" +SRC_URI[sha256sum] = "86e1efe353397c0751f6bdd709794143bd1b76494412860f16ff2b6d9c304eda" + +inherit autotools + +do_install[postfuncs] += " rm_unused_bindir " + +rm_unused_bindir() { + rmdir ${D}/${bindir} +} diff --git a/meta-networking/classes/waf-samba.bbclass b/meta-networking/classes/waf-samba.bbclass new file mode 100644 index 00000000000..e4901762412 --- /dev/null +++ b/meta-networking/classes/waf-samba.bbclass @@ -0,0 +1,95 @@ +# waf is a build system which is used by samba related project. +# Obtain details from https://wiki.samba.org/index.php/Waf +# +inherit qemu pythonnative waf + +DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python" + +CONFIGUREOPTS = " --prefix=${prefix} \ + --bindir=${bindir} \ + --sbindir=${sbindir} \ + --libexecdir=${libexecdir} \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sharedstatedir=${sharedstatedir} \ + --localstatedir=${localstatedir} \ + --libdir=${libdir} \ + --includedir=${includedir} \ + --oldincludedir=${oldincludedir} \ + --infodir=${infodir} \ + --mandir=${mandir} \ + ${PACKAGECONFIG_CONFARGS} \ + " + +# Three methods for waf cross compile: +# 1. answers: +# Only --cross-answers - try the cross-answers file, and if +# there's no corresponding answer, add to the file and mark +# the configure process as unfinished. +# 2. exec: +# Only --cross-execute - get the answer from cross-execute, +# an emulator (qemu) is used to run cross-compiled binaries. +# 3. both: +# (notes: not supported in lower version of some packages, +# please check buildtools/wafsamba/samba_cross.py in the +# package source) +# Try the cross-answers file first, and if there is no +# corresponding answer, use cross-execute to get an answer, +# and add that answer to the file. +# +# The first one is preferred since it may fail with 2 or 3 if +# the target board is not suported by qemu, but we can use 2 or 3 +# to help generate the cross answer when adding new board support. +CROSS_METHOD ?= "answer" + +do_configure() { + + # Prepare the cross-answers file + WAF_CROSS_ANSWERS_PATH="${THISDIR}/../../files/waf-cross-answers" + CROSS_ANSWERS="${B}/cross-answers-${TARGET_ARCH}.txt" + if [ -e ${CROSS_ANSWERS} ]; then + rm -f ${CROSS_ANSWERS} + fi + echo 'Checking uname machine type: "${TARGET_ARCH}"' >> ${CROSS_ANSWERS} + echo 'Checking uname release type: "${OLDEST_KERNEL}"' >> ${CROSS_ANSWERS} + cat ${WAF_CROSS_ANSWERS_PATH}/cross-answers-${TARGET_ARCH}.txt >> ${CROSS_ANSWERS} + + qemu_binary="${@qemu_target_binary(d)}" + if [ "${qemu_binary}" = "qemu-allarch" ]; then + qemu_binary="qemuwrapper" + fi + + libdir_qemu="${STAGING_DIR_HOST}/${libdir}" + base_libdir_qemu="${STAGING_DIR_HOST}/${base_libdir}" + + CROSS_EXEC="${qemu_binary} \ + ${QEMU_OPTIONS} \ + -L ${STAGING_DIR_HOST} \ + -E LD_LIBRARY_PATH=${libdir_qemu}:${base_libdir_qemu}" + + export BUILD_ARCH=${BUILD_ARCH} + export HOST_ARCH=${HOST_ARCH} + export STAGING_LIBDIR=${STAGING_LIBDIR} + export STAGING_INCDIR=${STAGING_INCDIR} + export PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} + + CONFIG_CMD="./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} --cross-compile" + if [ "${CROSS_METHOD}" = "answer" ]; then + ${CONFIG_CMD} --cross-answers="${CROSS_ANSWERS}" + elif [ "${CROSS_METHOD}" = "exec" ]; then + ${CONFIG_CMD} --cross-exec="${CROSS_EXEC}" + elif [ "${CROSS_METHOD}" = "both" ]; then + ${CONFIG_CMD} --cross-answers="${CROSS_ANSWERS}" --cross-exec="${CROSS_EXEC}" + else + echo "ERROR: ${CROSS_METHOD} is not valid for cross-compile!" + exit 1 + fi +} + +do_compile () { + python ./buildtools/bin/waf ${@get_waf_parallel_make(d)} +} + +do_install() { + oe_runmake install DESTDIR=${D} +} diff --git a/meta-networking/conf/layer.conf b/meta-networking/conf/layer.conf index 63bb07d5a8c..2dfde4bdf44 100644 --- a/meta-networking/conf/layer.conf +++ b/meta-networking/conf/layer.conf @@ -18,3 +18,7 @@ LAYERDEPENDS_networking-layer += "openembedded-layer" LAYERDEPENDS_networking-layer += "meta-python" LICENSE_PATH += "${LAYERDIR}/licenses" + +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ + wireguard-tools->wireguard-module \ +" diff --git a/meta-networking/files/waf-cross-answers/README b/meta-networking/files/waf-cross-answers/README new file mode 100644 index 00000000000..dda45c50806 --- /dev/null +++ b/meta-networking/files/waf-cross-answers/README @@ -0,0 +1,3 @@ +The files in this directory are cross answers files +used by waf-samba.bbclass, please see waf-samba.bbclass +for details about how they are used. diff --git a/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt b/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt new file mode 100644 index 00000000000..1023f6aff3d --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: OK +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-arm.txt b/meta-networking/files/waf-cross-answers/cross-answers-arm.txt new file mode 100644 index 00000000000..a5cd9981a3e --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-arm.txt @@ -0,0 +1,40 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-i586.txt b/meta-networking/files/waf-cross-answers/cross-answers-i586.txt new file mode 100644 index 00000000000..a5cd9981a3e --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-i586.txt @@ -0,0 +1,40 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-i686.txt b/meta-networking/files/waf-cross-answers/cross-answers-i686.txt new file mode 100644 index 00000000000..a5cd9981a3e --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-i686.txt @@ -0,0 +1,40 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mips.txt b/meta-networking/files/waf-cross-answers/cross-answers-mips.txt new file mode 100644 index 00000000000..3e239e727f8 --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-mips.txt @@ -0,0 +1,40 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "128" +Checking value of _NSIG: "128" +Checking value of SIGRTMAX: "127" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt b/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt new file mode 100644 index 00000000000..82e694fdafe --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: OK +Checking for HAVE_INCOHERENT_MMAP: OK +Checking value of NSIG: "128" +Checking value of _NSIG: "128" +Checking value of SIGRTMAX: "127" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: OK +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt b/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt new file mode 100644 index 00000000000..3e239e727f8 --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt @@ -0,0 +1,40 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "128" +Checking value of _NSIG: "128" +Checking value of SIGRTMAX: "127" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt b/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt new file mode 100644 index 00000000000..27b9378a420 --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt @@ -0,0 +1,40 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: NO +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: NO +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt new file mode 100644 index 00000000000..7fd3092cb92 --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt @@ -0,0 +1,40 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: (255, "") +Checking if can we convert from IBM850 to UCS-2LE: (255, "") +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: OK +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt b/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt new file mode 100644 index 00000000000..1023f6aff3d --- /dev/null +++ b/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt @@ -0,0 +1,39 @@ +Checking uname sysname type: "Linux" +Checking uname version type: "# Wed May 20 10:34:39 UTC 2015" +Checking simple C program: "hello world" +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: NO +Checking correct behavior of strtoll: NO +Checking for working strptime: OK +Checking for C99 vsnprintf: "1" +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: NO +Checking for HAVE_IFACE_IFCONF: NO +Checking for HAVE_IFACE_IFREQ: NO +Checking for large file support without additional flags: OK +Checking for HAVE_INCOHERENT_MMAP: NO +Checking value of NSIG: "65" +Checking value of _NSIG: "65" +Checking value of SIGRTMAX: "64" +Checking value of SIGRTMIN: "34" +Checking whether the WRFILE -keytab is supported: OK +Checking for kernel change notify support: OK +Checking for Linux kernel oplocks: OK +Checking for kernel share modes: OK +Checking whether POSIX capabilities are available: OK +Checking if can we convert from CP850 to UCS-2LE: OK +Checking if can we convert from UTF-8 to UCS-2LE: OK +vfs_fileid checking for statfs() and struct statfs.f_fsid: OK +Checking whether we can use Linux thread-specific credentials: OK +Checking whether fcntl locking is available: OK +Checking for the maximum value of the 'time_t' type: OK +Checking whether the realpath function allows a NULL argument: OK +Checking for ftruncate extend: OK +getcwd takes a NULL argument: OK +Checking for small off_t: NO +Checking whether blkcnt_t is 32 bit: NO +Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Add-DESTDIR-support-in-install-libreg-rules-in-.patch b/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Add-DESTDIR-support-in-install-libreg-rules-in-.patch deleted file mode 100644 index 36464004dcd..00000000000 --- a/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Add-DESTDIR-support-in-install-libreg-rules-in-.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: "John W. Linville" -Date: Fri, 14 Feb 2014 13:58:44 -0500 -Subject: [PATCH] crda: Add DESTDIR support in install-libreg* rules in Makefile -Origin: https://git.kernel.org/?p=linux/kernel/git/mcgrof/crda.git/commit?id=2cabb2588da56735369131b709f191453c080be0 - -Upstream-Status: Backport - -Signed-off-by: John W. Linville -Signed-off-by: Luis R. Rodriguez ---- - Makefile | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/Makefile b/Makefile -index 0b2f0d7..1f25509 100644 ---- a/Makefile -+++ b/Makefile -@@ -120,13 +120,13 @@ $(LIBREG): regdb.h reglib.h reglib.c - - install-libreg-headers: - $(NQ) ' INSTALL libreg-headers' -- $(Q)mkdir -p $(INCLUDE_DIR) -- $(Q)cp *.h $(INCLUDE_DIR)/ -+ $(Q)mkdir -p $(DESTDIR)/$(INCLUDE_DIR) -+ $(Q)cp *.h $(DESTDIR)/$(INCLUDE_DIR)/ - - install-libreg: - $(NQ) ' INSTALL libreg' -- $(Q)mkdir -p $(LIBDIR) -- $(Q)cp $(LIBREG) $(LIBDIR)/ -+ $(Q)mkdir -p $(DESTDIR)/$(LIBDIR) -+ $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/ - $(Q)ldconfig - - %.o: %.c regdb.h $(LIBREG) diff --git a/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Fix-the-linking-order-to-avoid-compilation-erro.patch b/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Fix-the-linking-order-to-avoid-compilation-erro.patch deleted file mode 100644 index 68b4b13e90b..00000000000 --- a/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Fix-the-linking-order-to-avoid-compilation-erro.patch +++ /dev/null @@ -1,51 +0,0 @@ -From: Krishna Chaitanya -Date: Mon, 16 Dec 2013 21:57:39 +0530 -Subject: [PATCH] crda: Fix the linking order to avoid compilation error -Origin: https://git.kernel.org/?p=linux/kernel/git/mcgrof/crda.git/commit?id=fefefdb2c52c8fbedbb339b4badb8226cad7e7e0 - -While linking the crda.o and libreg.so, first put crda.o -and then -lreg. This fixed the below error: - - GEN keys-gcrypt.c - Trusted pubkeys: pubkeys/linville.key.pub.pem - CC libreg.so - CC crda.o - LD crda -crda.o: In function `main': -crda/crda.c:196: undefined reference to `reglib_get_rd_alpha2' -collect2: ld returned 1 exit status -make: *** [crda] Error 1 - -Note: This still doesn't fix the below error (will send another mail) - - CHK /usr/lib/crda/regulatory.bin -Database signature verification failed. -Invalid or empty regulatory file, note: a binary regulatory file should be used. -make: *** [verify] Error 234 - -Upstream-Status: Backport - -Signed-off-by: Luis R. Rodriguez -Signed-off-by: Chaitanya T K ---- - Makefile | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 4a351c6..0b2f0d7 100644 ---- a/Makefile -+++ b/Makefile -@@ -28,10 +28,11 @@ RUNTIME_PUBKEY_DIR?=/etc/wireless-regdb/pubkeys - CFLAGS += -O2 -fpic - CFLAGS += -std=gnu99 -Wall -Werror -pedantic - CFLAGS += -Wall -g --LDLIBS += -lm - LDLIBREG += -lreg -+LDLIBS += $(LDLIBREG) -+LDLIBS += -lm - LIBREG += libreg.so --LDFLAGS += -L ./ $(LDLIBREG) -+LDFLAGS += -L ./ - - all: all_noverify verify - diff --git a/meta-networking/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch b/meta-networking/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch new file mode 100644 index 00000000000..16800d50666 --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch @@ -0,0 +1,29 @@ +From 1e1a78b7b4fa1662b4447aa19c15b1e839b7e9db Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20M=C3=BCller-Klieser?= +Date: Wed, 24 Aug 2016 10:58:45 +0200 +Subject: [PATCH] Makefile: respect LDFLAGS for libreg +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Stefan Müller-Klieser +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 2879896..1650db8 100644 +--- a/Makefile ++++ b/Makefile +@@ -116,7 +116,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem) + + $(LIBREG): regdb.h reglib.h reglib.c + $(NQ) ' CC ' $@ +- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLDLIBS) ++ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LDFLAGS) $(LIBREGLDLIBS) + + install-libreg-headers: + $(NQ) ' INSTALL libreg-headers' +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/crda/crda-3.13/do-not-run-ldconfig-if-destdir-is-set.patch b/meta-networking/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch similarity index 100% rename from meta-networking/recipes-connectivity/crda/crda-3.13/do-not-run-ldconfig-if-destdir-is-set.patch rename to meta-networking/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch diff --git a/meta-networking/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch b/meta-networking/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch new file mode 100644 index 00000000000..747804d345c --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch @@ -0,0 +1,11 @@ +--- crda-3.18/utils/key2pub.py.orig 2016-06-18 09:54:23.671326113 -0400 ++++ crda-3.18/utils/key2pub.py 2016-06-18 09:54:34.387326300 -0400 +@@ -115,7 +115,7 @@ + .n = _n, .len_n = sizeof(_n), \ + } + +-static const struct key_params keys[] = { ++static const struct key_params keys[] __attribute__((unused))= { + ''') + for n in xrange(n + 1): + output.write(' KEYS(e_%d, n_%d),\n' % (n, n)) diff --git a/meta-networking/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch b/meta-networking/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch new file mode 100644 index 00000000000..93c836cf34a --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch @@ -0,0 +1,58 @@ +From 8d2164a090f17286ea8291f30a123595cf447dc3 Mon Sep 17 00:00:00 2001 +From: Haiqing Bai +Date: Wed, 30 Nov 2016 10:27:36 +0800 +Subject: [PATCH] crda: fix issues when 'USE_OPENSSL=1'. + +Fxed the below issues if configured with 'USE_OPENSSL=1': +a. keys-ssl.c uses BN_ULONG but doesn't include the openssl headers leading + to build failures: + keys-ssl.c:2:8: error: unknown type name 'BN_ULONG' + static BN_ULONG e_0[1] = { + +b. The large unqualified constants also break building: + keys-ssl.c:8:2: warning: overflow in implicit constant conversion [-Woverflow] + 0x63a2705416a0d8e1, 0xdc9fca11c8ba757b, + +c. keys-ssl.c: error: 'keys' defined but not used [-Werror=unused-variable] + static struct pubkey keys[] = { + +Signed-off-by: Mike Frysinger +Upsteam-Status: Pending +Signed-off-by: Haiqing Bai +--- + utils/key2pub.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/utils/key2pub.py b/utils/key2pub.py +index 401d58a..3ae00b8 100755 +--- a/utils/key2pub.py ++++ b/utils/key2pub.py +@@ -24,7 +24,7 @@ def print_ssl_64(output, name, val): + for v1, v2, v3, v4, v5, v6, v7, v8 in vnew: + if not idx: + output.write('\t') +- output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8))) ++ output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2xULL, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8))) + idx += 1 + if idx == 2: + idx = 0 +@@ -60,6 +60,7 @@ def print_ssl_32(output, name, val): + def print_ssl(output, name, val): + import os + output.write('#include \n') ++ output.write('#include \n') + if os.getenv('TARGET_BITS') == '64': + return print_ssl_64(output, name, val) + else: +@@ -78,7 +79,7 @@ struct pubkey { + + #define KEYS(e,n) { KEY(e), KEY(n), } + +-static struct pubkey keys[] = { ++static struct pubkey keys[] __attribute__((unused))= { + ''') + for n in xrange(n + 1): + output.write(' KEYS(e_%d, n_%d),\n' % (n, n)) +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/crda/crda-3.13/fix-linking-of-libraries-used-by-reglib.patch b/meta-networking/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch similarity index 100% rename from meta-networking/recipes-connectivity/crda/crda-3.13/fix-linking-of-libraries-used-by-reglib.patch rename to meta-networking/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch diff --git a/meta-networking/recipes-connectivity/crda/crda/make.patch b/meta-networking/recipes-connectivity/crda/crda/make.patch new file mode 100644 index 00000000000..0b737852c27 --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda/make.patch @@ -0,0 +1,25 @@ +These headers are not related to any Make rule but they do appear in +compiling of libreg.so, specifying .h files in compiler cmdline is flagged +as error by clang + +| clang-4.0: error: cannot specify -o when generating multiple output files +| make: *** [libreg.so] Error 1 + +This is how we see headers in cmdline +-O2 -fpic -std=gnu +99 -Wall -Werror -pedantic -Wall -g -DUSE_GCRYPT -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -o libreg.so -shared -Wl,-soname,libreg.so +regdb.h reglib.h reglib.c keys-gcrypt.c -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -L ./ -lm -lgcrypt + +Signed-off-by: Khem Raj + +--- a/Makefile.kk 2016-11-15 04:54:53.338670000 +0000 ++++ a/Makefile 2016-11-15 04:55:07.718670000 +0000 +@@ -114,7 +114,7 @@ keys-%.c: utils/key2pub.py $(wildcard $( + $(NQ) ' Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem) + $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@ + +-$(LIBREG): regdb.h reglib.h reglib.c ++$(LIBREG): reglib.c + $(NQ) ' CC ' $@ + $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LDFLAGS) $(LIBREGLDLIBS) + diff --git a/meta-networking/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch b/meta-networking/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch new file mode 100644 index 00000000000..100b765f2da --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch @@ -0,0 +1,34 @@ +From c1c42513edd27c97341f2033af77c13a4724eb8f Mon Sep 17 00:00:00 2001 +From: Haiqing Bai +Date: Fri, 25 Nov 2016 16:48:01 +0800 +Subject: [PATCH] crda: Use target word size instead of host's. + +In key2pub.py, the codes check the wordsize +of the host machine but not the target's, this fix +fetches the wordsize of target from the build system. + +Upstream-Status: Pending +Signed-off-by: Haiqing Bai +--- + utils/key2pub.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/utils/key2pub.py b/utils/key2pub.py +index 3e84cd2..401d58a 100755 +--- a/utils/key2pub.py ++++ b/utils/key2pub.py +@@ -58,9 +58,9 @@ def print_ssl_32(output, name, val): + output.write('};\n\n') + + def print_ssl(output, name, val): +- import struct ++ import os + output.write('#include \n') +- if len(struct.pack('@L', 0)) == 8: ++ if os.getenv('TARGET_BITS') == '64': + return print_ssl_64(output, name, val) + else: + return print_ssl_32(output, name, val) +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/crda/crda_3.13.bb b/meta-networking/recipes-connectivity/crda/crda_3.13.bb deleted file mode 100644 index fced75eec63..00000000000 --- a/meta-networking/recipes-connectivity/crda/crda_3.13.bb +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "Wireless Central Regulatory Domain Agent" -HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" - -LICENSE = "copyleft-next-0.3.0 & ISC" -LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe \ - file://${WORKDIR}/wireless-regdb-2014.11.18/LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" - -DEPENDS = "python-m2crypto-native python-native libgcrypt libnl" - -SRC_URI = "https://www.kernel.org/pub/software/network/crda/${BP}.tar.xz;name=crda \ - https://www.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2014.11.18.tar.xz;name=bin \ - file://crda-Fix-the-linking-order-to-avoid-compilation-erro.patch \ - file://crda-Add-DESTDIR-support-in-install-libreg-rules-in-.patch \ - file://do-not-run-ldconfig-if-destdir-is-set.patch \ - file://fix-linking-of-libraries-used-by-reglib.patch \ -" -SRC_URI[crda.md5sum] = "66b1b0417c1ad19f0009a5c0c0c1aebc" -SRC_URI[crda.sha256sum] = "2f85da7ab0170b140d6ed62596c8f268d4a7dedecf84cac7182ada979742ff59" - -SRC_URI[bin.md5sum] = "d750c402c5510add7380edcb1d9b75b2" -SRC_URI[bin.sha256sum] = "eab6b50f30748a8b0065ba38cf3df05aac161a5861ae0a6c3cfd01d38a71c9dd" - -inherit python-dir pythonnative -# Recursive make problem -EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg'" - -do_compile() { - oe_runmake all_noverify -} - -do_install() { - oe_runmake SBINDIR=${sbindir}/ install - - install -d ${D}${libdir}/crda/ - - install -m 0644 ${WORKDIR}/wireless-regdb-2014.11.18/regulatory.bin ${D}${libdir}/crda/regulatory.bin -} - - -RDEPENDS_${PN} = "udev" -FILES_${PN} += "${libdir}crda/regulatory.bin \ - ${base_libdir}/udev/rules.d/85-regulatory.rules \ -" diff --git a/meta-networking/recipes-connectivity/crda/crda_3.18.bb b/meta-networking/recipes-connectivity/crda/crda_3.18.bb new file mode 100644 index 00000000000..82a297b33e5 --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda_3.18.bb @@ -0,0 +1,36 @@ +SUMMARY = "Wireless Central Regulatory Domain Agent" +HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" +SECTION = "net" +LICENSE = "copyleft-next-0.3.0" +LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe" + +DEPENDS = "python-m2crypto-native python-typing-native python-native libgcrypt libnl openssl" + +SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \ + file://do-not-run-ldconfig-if-destdir-is-set.patch \ + file://fix-linking-of-libraries-used-by-reglib.patch \ + file://fix-gcc-6-unused-variables.patch \ + file://0001-Makefile-respect-LDFLAGS-for-libreg.patch \ + file://make.patch \ + file://use-target-word-size-instead-of-host-s.patch \ + file://fix-issues-when-USE_OPENSSL-1.patch \ +" +SRC_URI[md5sum] = "0431fef3067bf503dfb464069f06163a" +SRC_URI[sha256sum] = "43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf" + +inherit python-dir pythonnative +# Recursive make problem +EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg'" +EXTRA_OEMAKE_append = " USE_OPENSSL=1" +TARGET_BITS = "${SITEINFO_BITS}" +export TARGET_BITS + +do_compile() { + oe_runmake all_noverify +} + +do_install() { + oe_runmake SBINDIR=${sbindir}/ install +} + +RDEPENDS_${PN} = "udev wireless-regdb" diff --git a/meta-networking/recipes-connectivity/cyassl/cyassl_3.3.0.bb b/meta-networking/recipes-connectivity/cyassl/cyassl_3.3.0.bb deleted file mode 100644 index b6f852dc2a1..00000000000 --- a/meta-networking/recipes-connectivity/cyassl/cyassl_3.3.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "CyaSSL Lightweight, Embedded SSL Library" -DESCRIPTION = "CyaSSL is a lightweight SSL library written in C and \ - optimized for embedded and RTOS environments. It can be \ - Up to 20 times smaller than OpenSSL while still supporting \ - a full TLS 1.2 client and server." -HOMEPAGE = "http://www.yassl.com/yaSSL/Products-cyassl.html" -BUGTRACKER = "http://github.com/cyassl/cyassl/issues" -SECTION = "libs/network" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "http://www.yassl.com/${BP}.zip" - -SRC_URI[md5sum] = "0303eb0f2f9065a1207d9104ab0eba7c" -SRC_URI[sha256sum] = "e51583ea1e4d64537553922d67a96360312811dffef58d4c05506aa98a296fe3" - -inherit autotools - diff --git a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb new file mode 100644 index 00000000000..ec35175a084 --- /dev/null +++ b/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb @@ -0,0 +1,35 @@ +SUMMARY = "The dump DAQ test the various inline mode features " +HOMEPAGE = "http://www.snort.org" +SECTION = "libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=f9ce51a65dd738dc1ae631d8b21c40e0" + +PARALLEL_MAKE = "" + +DEPENDS = "libpcap libpcre libdnet" + +SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \ + file://disable-run-test-program-while-cross-compiling.patch \ + file://0001-correct-the-location-of-unistd.h.patch \ + " + +# these 2 create undeclared dependency on libdnet and libnetfilter-queue from meta-networking +# this error from test-dependencies script: +# daq/daq/latest lost dependency on libdnet libmnl libnetfilter-queue libnfnetlink +# +# never look to /usr/local lib while cross compiling + +EXTRA_OECONF = "--disable-nfq-module --disable-ipq-module --includedir=${includedir} \ + --with-libpcap-includes=${STAGING_INCDIR} --with-dnet-includes=${STAGING_LIBDIR}" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c" +SRC_URI[sha256sum] = "b40e1d1273e08aaeaa86e69d4f28d535b7e53bdb3898adf539266b63137be7cb" + +inherit autotools + +DISABLE_STATIC = "" + +BBCLASSEXTEND = "native" diff --git a/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch b/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch new file mode 100644 index 00000000000..4798a77f55b --- /dev/null +++ b/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch @@ -0,0 +1,29 @@ +From 10e7d4e4bfcb70344d18f0d4ce36068475747f25 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 29 Mar 2017 15:59:43 -0700 +Subject: [PATCH] correct the location of unistd.h + +Signed-off-by: Khem Raj +--- + os-daq-modules/daq_ipfw.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/os-daq-modules/daq_ipfw.c b/os-daq-modules/daq_ipfw.c +index 016beb0..c2a4175 100644 +--- a/os-daq-modules/daq_ipfw.c ++++ b/os-daq-modules/daq_ipfw.c +@@ -23,10 +23,10 @@ + #include + #include + #include ++#include + + #include + #include +-#include + + #include + #include +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch b/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch new file mode 100644 index 00000000000..a100b7cb83b --- /dev/null +++ b/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch @@ -0,0 +1,31 @@ +Upstream-Status:Inappropriate [embedded specific] + +fix the below error: +configure: error: cannot run test program while cross compiling + +Signed-off-by: Chunrong Guo + +--- a/m4/sf.m4old 2015-10-28 10:21:20.270557986 +0800 ++++ a/m4/sf.m4 2015-10-28 10:23:22.726551974 +0800 +@@ -135,20 +135,7 @@ + echo + exit 1 + fi +- AC_CACHE_CHECK([for libpcap version >= $1], [daq_cv_libpcap_version_1x], [ +- AC_RUN_IFELSE( +- [AC_LANG_PROGRAM( +- [[ +- #include +- #include +- extern char pcap_version[]; +- ]], +- [[ +- if (strcmp(pcap_version, $1) < 0) +- return 1; +- ]])], +- [daq_cv_libpcap_version_1x="yes"], +- [daq_cv_libpcap_version_1x="no"])]) ++ AC_CACHE_CHECK([for libpcap version >= $1], [daq_cv_libpcap_version_1x]) + if test "x$daq_cv_libpcap_version_1x" = "xno"; then + echo + echo " ERROR! Libpcap library version >= $1 not found." diff --git a/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb b/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb new file mode 100644 index 00000000000..cb3b5c22f51 --- /dev/null +++ b/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb @@ -0,0 +1,24 @@ +SECTION = "console/network" +SUMMARY = "dhcpcd - a DHCP client" +DESCRIPTION = "dhcpcd runs on your machine and silently configures your computer to work on the attached networks without trouble and mostly without configuration." + +HOMEPAGE = "http://roy.marples.name/projects/dhcpcd/" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://dhcpcd.c;endline=26;md5=77c40d671aff804ca91ea99556da8e9b" + +SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz" + +SRC_URI[md5sum] = "d4f2f3ed4964197dee7767219c33a9df" +SRC_URI[sha256sum] = "5abd12c4df2947d608f60a35227f9bf8ae8ab9de06ce975cdab1144d8f229b06" + +inherit autotools-brokensep + +PACKAGECONFIG ?= "udev ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" + +PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" + +EXTRA_OECONF = "--enable-ipv4" + +FILES_${PN}-dbg += "${libdir}/dhcpcd/dev/.debug" diff --git a/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch b/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch new file mode 100644 index 00000000000..42d2627a1a7 --- /dev/null +++ b/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch @@ -0,0 +1,48 @@ +Index: git/ClntMessages/ClntMsgRequest.cpp +=================================================================== +--- git.orig/ClntMessages/ClntMsgRequest.cpp ++++ git/ClntMessages/ClntMsgRequest.cpp +@@ -142,7 +142,10 @@ TClntMsgRequest::TClntMsgRequest(List(TA + IsDone=false; + SPtr ptr; + ptr = new TOptDUID(OPTION_CLIENTID, ClntCfgMgr().getDUID(), this ); +- Options.push_back( ptr ); ++ ++ if ( ptr ) { ++ Options.push_back( ptr ); ++ } + + if (!srvDUID) { + Log(Error) << "Unable to send REQUEST: ServerId not specified.\n" << LogEnd; +@@ -153,7 +156,9 @@ TClntMsgRequest::TClntMsgRequest(List(TA + ptr = new TOptDUID(OPTION_SERVERID, srvDUID,this); + // all IAs provided by checkSolicit + SPtr ClntAddrIA; +- Options.push_back( ptr ); ++ if ( ptr ) { ++ Options.push_back( ptr ); ++ } + + IAs.first(); + while (ClntAddrIA = IAs.get()) +Index: git/Messages/Msg.cpp +=================================================================== +--- git.orig/Messages/Msg.cpp ++++ git/Messages/Msg.cpp +@@ -69,10 +69,15 @@ int TMsg::getSize() + { + int pktsize=0; + TOptList::iterator opt; ++ int optionCount = 0; + for (opt = Options.begin(); opt!=Options.end(); ++opt) + { +- pktsize += (*opt)->getSize(); ++ Log(Info) << "### CPE Debug - Option with index " << optionCount++ << LogEnd ; ++ Log(Info) << "### CPE Debug - Option with type " << (*opt)->getOptType() << LogEnd ; ++ pktsize += (*opt)->getSize(); + } ++ Log(Info) << "### CPE Debug - Packet size of option (Add 4) " << pktsize << LogEnd ; ++ + return pktsize + 4; + } + diff --git a/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb b/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb new file mode 100644 index 00000000000..8890e14318f --- /dev/null +++ b/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb @@ -0,0 +1,37 @@ +SUMMARY = "Dibbler DHCPv6 client" +DESCRIPTION = "Dibbler is a portable DHCPv6 implementation. It supports stateful as well as stateless autoconfiguration for IPv6." +HOMEPAGE = "http://klub.com.pl/dhcpv6" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7236695bb6d4461c105d685a8b61c4e3" + +SRCREV = "c4b0ed52e751da7823dd9a36e91f93a6310e5525" + +SRC_URI = "git://github.com/tomaszmrugalski/dibbler \ + file://dibbler_fix_getSize_crash.patch \ + " +PV = "1.0.1+1.0.2RC1+git${SRCREV}" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "debug bind-reuse resolvconf dns-update" + +PACKAGECONFIG[debug] = "--enable-debug,,," +PACKAGECONFIG[efence] = "--enable-efence,,," +PACKAGECONFIG[bind-reuse] = "--enable-bind-reuse,,," +PACKAGECONFIG[dst-addr-filter] = "--enable-dst-addr-check,,," +PACKAGECONFIG[resolvconf] = "--enable-resolvconf,,," +PACKAGECONFIG[dns-update] = "--enable-dns-update,,," +PACKAGECONFIG[auth] = "--enable-auth,,," +PACKAGECONFIG[gtest] = "--enable-gtest-static,,," + +inherit autotools + +DEPENDS += "flex-native" + +PACKAGES =+ "${PN}-requestor ${PN}-client ${PN}-relay ${PN}-server" + +FILES_${PN}-client = "${sbindir}/${PN}-client" +FILES_${PN}-relay = "${sbindir}/${PN}-relay" +FILES_${PN}-requestor = "${sbindir}/${PN}-requestor" +FILES_${PN}-server = "${sbindir}/${PN}-server" diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb b/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb new file mode 100644 index 00000000000..51e220c9e71 --- /dev/null +++ b/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb @@ -0,0 +1,16 @@ +SUMMARY = "daemon that sends updates when your IP changes" +HOMEPAGE = "http://sourceforge.net/projects/ez-ipupdate/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=7783169b4be06b54e86730eb01bc3a31" + +SRC_URI = "http://sourceforge.net/projects/ez-ipupdate/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://Makefile.am.patch \ + file://cache_file.c.patch \ + file://conf_file.c.patch \ + file://wformat.patch \ + " +SRC_URI[md5sum] = "525be4550b4461fdf105aed8e753b020" +SRC_URI[sha256sum] = "a15ec0dc0b78ec7578360987c68e43a67bc8d3591cbf528a323588830ae22c20" + +inherit autotools pkgconfig diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch new file mode 100644 index 00000000000..d80ed3e29d0 --- /dev/null +++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch @@ -0,0 +1,14 @@ +Remove EXTRASRC and EXTRAOBJ from obj list + +--- ez-ipupdate-3.0.11b7/Makefile.am.orig 2014-07-02 13:47:50.758034983 -0600 ++++ ez-ipupdate-3.0.11b7/Makefile.am 2014-07-02 13:48:38.406034650 -0600 +@@ -1,7 +1,7 @@ + + bin_PROGRAMS = ez-ipupdate +-ez_ipupdate_SOURCES = ez-ipupdate.c conf_file.c conf_file.h md5.c md5.h cache_file.c cache_file.h error.h pid_file.c pid_file.h dprintf.h @EXTRASRC@ +-ez_ipupdate_LDADD = @EXTRAOBJ@ ++ez_ipupdate_SOURCES = ez-ipupdate.c conf_file.c conf_file.h md5.c md5.h cache_file.c cache_file.h error.h pid_file.c pid_file.h dprintf.h ++ez_ipupdate_LDADD = + + EXTRA_DIST = getpass.c ez-ipupdate.lsm example.conf example-pgpow.conf example-dhs.conf example-dyndns.conf example-ods.conf example-tzo.conf example-gnudip.conf example-easydns.conf example-justlinux.conf example-dyns.conf CHANGELOG mkbinary example-heipv6tb.conf + diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch new file mode 100644 index 00000000000..de5eb3a6d1e --- /dev/null +++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch @@ -0,0 +1,32 @@ +Dont assume errno type + +--- ez-ipupdate-3.0.11b7/cache_file.c.orig 2014-07-02 14:01:07.126029412 -0600 ++++ ez-ipupdate-3.0.11b7/cache_file.c 2014-07-02 14:08:27.422026332 -0600 +@@ -43,11 +43,11 @@ + #include + + #if HAVE_STRERROR +-extern int errno; ++# include + # define error_string strerror(errno) + #elif HAVE_SYS_ERRLIST + extern const char *const sys_errlist[]; +-extern int errno; ++# include + # define error_string (sys_errlist[errno]) + #else + # define error_string "error message not found" +@@ -63,11 +63,11 @@ + # define dprintf(x) + #endif + #if HAVE_STRERROR +-extern int errno; ++# include + # define error_string strerror(errno) + #elif HAVE_SYS_ERRLIST + extern const char *const sys_errlist[]; +-extern int errno; ++# include + # define error_string (sys_errlist[errno]) + #else + # define error_string "error message not found" diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch new file mode 100644 index 00000000000..02218a39ea6 --- /dev/null +++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch @@ -0,0 +1,18 @@ +Dont assume errno type + +--- ez-ipupdate-3.0.11b7/conf_file.c.orig 2014-07-02 14:01:19.174029328 -0600 ++++ ez-ipupdate-3.0.11b7/conf_file.c 2014-07-02 14:08:42.982026223 -0600 +@@ -38,11 +38,11 @@ + #include + + #if HAVE_STRERROR +-extern int errno; ++# include + # define error_string strerror(errno) + #elif HAVE_SYS_ERRLIST + extern const char *const sys_errlist[]; +-extern int errno; ++# include + # define error_string (sys_errlist[errno]) + #else + # define error_string "error message not found" diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch new file mode 100644 index 00000000000..1de267f0838 --- /dev/null +++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch @@ -0,0 +1,13 @@ +Index: ez-ipupdate-3.0.11b7/ez-ipupdate.c +=================================================================== +--- ez-ipupdate-3.0.11b7.orig/ez-ipupdate.c ++++ ez-ipupdate-3.0.11b7/ez-ipupdate.c +@@ -798,7 +798,7 @@ void show_message(char *fmt, ...) + sprintf(buf, "message incomplete because your OS sucks: %s\n", fmt); + #endif + +- syslog(LOG_NOTICE, buf); ++ syslog(LOG_NOTICE, "%s", buf); + } + else + { diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch new file mode 100644 index 00000000000..db8caab12e8 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch @@ -0,0 +1,28 @@ +From 66e8bcdcca8971b5c43c31755d56d7f675d8b5ff Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 16 Jun 2017 20:10:49 -0700 +Subject: [PATCH] rlm_mschap: Use includedir instead of hardcoding /usr/include + +OE QA flags it correctly as a voilation of cross compilation +namespace + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/modules/rlm_mschap/configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: freeradius-server-3.0.14/src/modules/rlm_mschap/configure.ac +=================================================================== +--- freeradius-server-3.0.14.orig/src/modules/rlm_mschap/configure.ac ++++ freeradius-server-3.0.14/src/modules/rlm_mschap/configure.ac +@@ -72,7 +72,7 @@ if test x$with_[]modname != xno; then + mod_ldflags="-framework DirectoryService" + fi + +- smart_try_dir="$winbind_include_dir /usr/include/samba-4.0" ++ smart_try_dir="$winbind_include_dir =/usr/include/samba-4.0" + FR_SMART_CHECK_INCLUDE(wbclient.h, [#include + #include ]) + if test "x$ac_cv_header_wbclient_h" != "xyes"; then diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius b/meta-networking/recipes-connectivity/freeradius/files/freeradius new file mode 100644 index 00000000000..fa412e2aa55 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius @@ -0,0 +1,110 @@ +#!/bin/sh +# Start/stop the FreeRADIUS daemon. + +### BEGIN INIT INFO +# Provides: freeradius +# Required-Start: $remote_fs $network $syslog +# Should-Start: $time mysql slapd postgresql samba krb5-kdc +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Radius Daemon +# Description: Extensible, configurable radius daemon +### END INIT INFO + +set -e + +# Source function library. +. /etc/init.d/functions + +if [ -f /lib/lsb/init-functions ]; then + . /lib/lsb/init-functions +fi + +PROG="radiusd" +PROGRAM="/usr/sbin/radiusd" +PIDFILE="/var/run/radiusd/radiusd.pid" +DESCR="FreeRADIUS daemon" + +if [ -r /etc/default/$PROG ]; then + . /etc/default/$PROG +fi + +test -f $PROGRAM || exit 0 + +check_certs() { + if [ ! -f /etc/raddb/certs/server.pem ]; then + echo -n "Creating certificates for freeradius..." + if sudo -u radiusd /etc/raddb/certs/bootstrap 1> /dev/null 2> /dev/null; then + echo "done" + else + echo "failed!" + fi + fi + +} + +# /var/run may be a tmpfs +if [ ! -d /var/run/radiusd ]; then + mkdir -p /var/run/radiusd + chown radiusd:radiusd /var/run/radiusd +fi + +if [ ! -d /var/log/radius ]; then + mkdir -p /var/log/radius + touch /var/log/radius/radius.log + chown radiusd:radiusd /var/run/radius +fi + +if [ ! -f ${PIDFILE} ]; then + touch ${PIDFILE} + chown radiusd:radiusd ${PIDFILE} +fi + +export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" + +ret=0 + +case "$1" in + start) + check_certs + echo -n "Starting $DESCR" "$PROG" + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM -- $FREERADIUS_OPTIONS || ret=$? + [ "$ret" == 0 ] && echo " Success" || echo " Failed" + exit $ret + ;; + stop) + echo -n "Stopping $DESCR" "$PROG" + if [ -f "$PIDFILE" ] ; then + start-stop-daemon --stop --retry=TERM/30/KILL/5 --quiet --pidfile $PIDFILE || ret=$? + else + echo -n "$PIDFILE not found" + ret=1 + fi + [ "$ret" == 0 ] && echo " Success" || echo " Failed" + ;; + status) + status $PROGRAM; + exit $? + ;; + restart) + $0 stop + $0 start + ;; + reload|force-reload) + echo -n "Reloading $DESCR" "$PROG" + if [ -f "$PIDFILE" ] ; then + start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || ret=$? + else + echo -n "$PIDFILE not found" + ret=1 + fi + [ "$ret" == 0 ] && echo " Success" || echo " Failed" + ;; + *) + echo "Usage: $0 start|stop|status|restart|force-reload|reload" + exit 1 + ;; +esac + +exit 0 diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch new file mode 100644 index 00000000000..9c997661fc8 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch @@ -0,0 +1,197 @@ +From dc41591d5ceb18900ec85894f8f7b7bb44bb3bd9 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Mon, 4 Jan 2016 01:44:04 -0500 +Subject: [PATCH] avoid searching host dirs + +Don't search the hardcoded host dirs to avoid +host contamination. + +Upstream-Status: Inappropriate [cross-compile specific] + +Signed-off-by: Jackie Huang +--- + acinclude.m4 | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac | 6 +++--- + src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac | 2 +- + src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac | 4 ++-- + 8 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index da48acc..b513ae1 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -178,7 +178,7 @@ if test "x$smart_lib" = "x"; then + FR_LOCATE_DIR(smart_lib_dir,[lib$1${libltdl_cv_shlibext}]) + FR_LOCATE_DIR(smart_lib_dir,[lib$1.a]) + +- for try in $smart_lib_dir /usr/local/lib /opt/lib; do ++ for try in $smart_lib_dir; do + AC_MSG_CHECKING([for $2 in -l$1 in $try]) + LIBS="-l$1 $old_LIBS" + CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS" +@@ -218,7 +218,7 @@ ac_safe=`echo "$1" | sed 'y%./+-%__pm%'` + old_CPPFLAGS="$CPPFLAGS" + smart_include= + dnl # The default directories we search in (in addition to the compilers search path) +-smart_include_dir="/usr/local/include /opt/include" ++smart_include_dir= + + dnl # Our local versions + _smart_try_dir= +diff --git a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac +index 75c851a..a262d71 100644 +--- a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac ++++ b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac +@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then + esac]) + + dnl Check for SQLConnect in -ldb2 +- smart_try_dir="$ibmdb2_lib_dir /usr/local/db2/lib /usr/IBMdb2/V7.1/lib" ++ smart_try_dir="$ibmdb2_lib_dir" + FR_SMART_CHECK_LIB(db2, SQLConnect) + if test "x$ac_cv_lib_db2_SQLConnect" != xyes; then + fail="$fail libdb2" + fi + + dnl Check for sqlcli.h +- smart_try_dir="$ibmdb2_include_dir /usr/local/db2/include /usr/IBMdb2/V7.1/include" ++ smart_try_dir="$ibmdb2_include_dir" + FR_SMART_CHECK_INCLUDE(sqlcli.h) + if test "x$ac_cv_header_sqlcli_h" != xyes; then + fail="$fail sqlcli.h" +diff --git a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac +index 4da57b3..752b043 100644 +--- a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac ++++ b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac +@@ -56,14 +56,14 @@ if test x$with_[]modname != xno; then + esac]) + + dnl Check for isc_attach_database in -lfbclient +- smart_try_dir="$firebird_lib_dir /usr/lib/firebird2/lib /usr/local/firebird/lib" ++ smart_try_dir="$firebird_lib_dir" + FR_SMART_CHECK_LIB(fbclient, isc_attach_database) + if test "x$ac_cv_lib_fbclient_isc_attach_database" != xyes; then + fail="$fail libfbclient" + fi + + dnl Check for ibase.h +- smart_try_dir="$firebird_include_dir /usr/lib/firebird2/include /usr/local/firebird/include" ++ smart_try_dir="$firebird_include_dir" + FR_SMART_CHECK_INCLUDE(ibase.h) + if test "x$ac_cv_header_ibase_h" != xyes; then + fail="$fail ibase.h" +diff --git a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac +index ba6304f..3393557 100644 +--- a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac ++++ b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac +@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then + esac]) + + dnl Check for SQLConnect in -liodbc +- smart_try_dir="$iodbc_lib_dir /usr/lib /usr/lib/iodbc /usr/local/lib/iodbc /usr/local/iodbc/lib/iodbc" ++ smart_try_dir="$iodbc_lib_dir" + FR_SMART_CHECK_LIB(iodbc, SQLConnect) + if test "x$ac_cv_lib_iodbc_SQLConnect" != xyes; then + fail="$fail libiodbc" + fi + + dnl Check for isql.h +- smart_try_dir="$iodbc_include_dir /usr/include /usr/include/iodbc /usr/local/iodbc/include" ++ smart_try_dir="$iodbc_include_dir" + FR_SMART_CHECK_INCLUDE(isql.h) + if test "x$ac_cv_header_isql_h" != xyes; then + fail="$fail isql.h" +diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac +index 1401677..2e7db44 100644 +--- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac ++++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac +@@ -136,7 +136,7 @@ if test x$with_[]modname != xno; then + + dnl # Check for libmysqlclient_r + if test "x$have_a_libmysqlclient" != "xyes"; then +- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql" ++ smart_try_dir="$mysql_lib_dir" + FR_SMART_CHECK_LIB(mysqlclient_r, mysql_init) + if test "x$ac_cv_lib_mysqlclient_r_mysql_init" = "xyes"; then + have_a_libmysqlclient='yes' +@@ -145,7 +145,7 @@ if test x$with_[]modname != xno; then + + dnl # Check for libmysqlclient + if test "x$have_a_libmysqlclient" != "xyes"; then +- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql" ++ smart_try_dir="$mysql_lib_dir" + FR_SMART_CHECK_LIB(mysqlclient, mysql_init) + if test "x$ac_cv_lib_mysqlclient_mysql_init" = "xyes"; then + have_a_libmysqlclient='yes' +@@ -189,7 +189,7 @@ if test x$with_[]modname != xno; then + fi + + if test "x$have_mysql_h" != "xyes"; then +- smart_try_dir="$mysql_include_dir /usr/local/include /usr/local/mysql/include" ++ smart_try_dir="$mysql_include_dir" + FR_SMART_CHECK_INCLUDE(mysql/mysql.h) + if test "x$ac_cv_header_mysql_mysql_h" = "xyes"; then + AC_DEFINE(HAVE_MYSQL_MYSQL_H, [], [Define if you have ]) +diff --git a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac +index 3178462..5cbc8c2 100644 +--- a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac ++++ b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac +@@ -63,7 +63,7 @@ if test x$with_[]modname != xno; then + dnl # Check for header files + dnl ############################################################ + +- smart_try_dir="$oracle_include_dir /usr/local/instaclient/include" ++ smart_try_dir="$oracle_include_dir" + + if test "x$ORACLE_HOME" != "x"; then + smart_try_dir="${smart_try_dir} ${ORACLE_HOME}/include" +diff --git a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac +index 4f9a890..e1cf811 100644 +--- a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac ++++ b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac +@@ -41,7 +41,7 @@ if test x$with_[]modname != xno; then + esac ] + ) + +- smart_try_dir="$rlm_sql_postgresql_include_dir /usr/include/postgresql /usr/local/pgsql/include /usr/include/pgsql" ++ smart_try_dir="$rlm_sql_postgresql_include_dir" + FR_SMART_CHECK_INCLUDE(libpq-fe.h) + if test "x$ac_cv_header_libpqmfe_h" != "xyes"; then + fail="$fail libpq-fe.h" +@@ -76,7 +76,7 @@ if test x$with_[]modname != xno; then + ]) + fi + +- smart_try_dir="$rlm_sql_postgresql_lib_dir /usr/lib /usr/local/pgsql/lib" ++ smart_try_dir="$rlm_sql_postgresql_lib_dir" + FR_SMART_CHECK_LIB(pq, PQconnectdb) + if test "x$ac_cv_lib_pq_PQconnectdb" != "xyes"; then + fail="$fail libpq" +diff --git a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac +index 3545387..c543ed4 100644 +--- a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac ++++ b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac +@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then + esac]) + + dnl Check for SQLConnect in -lodbc +- smart_try_dir="$unixodbc_lib_dir /usr/local/unixodbc/lib" ++ smart_try_dir="$unixodbc_lib_dir" + FR_SMART_CHECK_LIB(odbc, SQLConnect) + if test "x$ac_cv_lib_odbc_SQLConnect" != xyes; then + fail="$fail libodbc" + fi + + dnl Check for sql.h +- smart_try_dir="$unixodbc_include_dir /usr/local/unixodbc/include" ++ smart_try_dir="$unixodbc_include_dir" + FR_SMART_CHECK_INCLUDE(sql.h) + if test "x$ac_cv_header_sql_h" != xyes; then + fail="$fail sql.h" +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch new file mode 100644 index 00000000000..71b78090c30 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch @@ -0,0 +1,70 @@ +From 74eed61dec8702c89f3e121d577ea9db25c961a4 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Mon, 11 Jan 2016 02:52:16 -0500 +Subject: [PATCH] configure.ac: add option for libcap + +Upstream-Status: Pending + +Signed-off-by: Jackie Huang +--- + configure.ac | 37 ++++++++++++++++++++++++++++--------- + 1 file changed, 28 insertions(+), 9 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 066d3d7..6e4266b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -948,6 +948,23 @@ fi + dnl Set by FR_SMART_CHECKLIB + LIBS="${old_LIBS}" + ++dnl # ++dnl # extra argument: --with-libcap ++dnl # ++WITH_LIBCAP=yes ++AC_ARG_WITH(libcap, ++[ --with-licap use licap for debugger checks. (default=yes)], ++[ case "$withval" in ++ no) ++ WITH_LIBCAP=no ++ ;; ++ *) ++ WITH_LIBCAP=yes ++ ;; ++ esac ] ++) ++ ++ + dnl Check for cap + dnl extra argument: --with-cap-lib-dir=DIR + cap_lib_dir= +@@ -981,15 +998,17 @@ AC_ARG_WITH(cap-include-dir, + ;; + esac]) + +-smart_try_dir="$cap_lib_dir" +-FR_SMART_CHECK_LIB(cap, cap_get_proc) +-if test "x$ac_cv_lib_cap_cap_get_proc" != "xyes"; then +- AC_MSG_WARN([cap library not found, debugger checks will not be enabled. Use --with-cap-lib-dir=.]) +-else +- AC_DEFINE(HAVE_LIBCAP, 1, +- [Define to 1 if you have the `cap' library (-lcap).] +- ) +- HAVE_LIBCAP=1 ++if test "x$WITH_LIBCAP" = xyes; then ++ smart_try_dir="$cap_lib_dir" ++ FR_SMART_CHECK_LIB(cap, cap_get_proc) ++ if test "x$ac_cv_lib_cap_cap_get_proc" != "xyes"; then ++ AC_MSG_WARN([cap library not found, debugger checks will not be enabled. Use --with-cap-lib-dir=.]) ++ else ++ AC_DEFINE(HAVE_LIBCAP, 1, ++ [Define to 1 if you have the `cap' library (-lcap).] ++ ) ++ HAVE_LIBCAP=1 ++ fi + fi + + VL_LIB_READLINE +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch new file mode 100644 index 00000000000..30497a60297 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch @@ -0,0 +1,31 @@ +Subject: [PATCH] configure.ac: allow cross-compilation + +The checking OpenSSL library and header version consistency will +always fail in cross compiling, skip the check and give a warning +instead for cross compiling. + +Upstream-Status: Inappropriate[embedded specific] + +Signed-off-by: Jackie Huang +Signed-off-by: Yi Zhao +--- + src/modules/rlm_krb5/configure.ac | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/modules/rlm_krb5/configure.ac b/src/modules/rlm_krb5/configure.ac +index eb43534..113a079 100644 +--- a/src/modules/rlm_krb5/configure.ac ++++ b/src/modules/rlm_krb5/configure.ac +@@ -137,7 +137,8 @@ if test x$with_[]modname != xno; then + FR_SMART_CHECK_LIB(krb5, krb5_is_thread_safe) + if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" == xyes; then + AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include ]], [[return krb5_is_thread_safe() ? 0 : 1]])], +- [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])]) ++ [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])], ++ [AC_MSG_WARN(cross compiling: not checking)]) + fi + else + krb5threadsafe="" +-- +2.10.2 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch new file mode 100644 index 00000000000..4a62bf1fa2b --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch @@ -0,0 +1,28 @@ +Enable and change user and group of freeradius server to radiusd + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Roy.Li +Signed-off-by: Jackie Huang +--- + raddb/radiusd.conf.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/raddb/radiusd.conf.in b/raddb/radiusd.conf.in +index c62f4ff..0b4a84e 100644 +--- a/raddb/radiusd.conf.in ++++ b/raddb/radiusd.conf.in +@@ -436,8 +436,8 @@ security { + # member. This can allow for some finer-grained access + # controls. + # +-# user = radius +-# group = radius ++ user = radiusd ++ group = radiusd + + # Core dumps are a bad thing. This should only be set to + # 'yes' if you're debugging a problem with the server. +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch new file mode 100644 index 00000000000..af1bff051fd --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch @@ -0,0 +1,61 @@ +From 5b6d8b14f2696fcf1dca119212f9d0a0fa04defd Mon Sep 17 00:00:00 2001 +From: Yi Zhao +Date: Wed, 18 Jan 2017 14:59:39 +0800 +Subject: [PATCH] fix error for expansion of macro in thread.h + +The parameter declaration is missing in expansion of macro +which cause the build error: +| In file included from src/freeradius-devel/libradius.h:80:0, +| from src/lib/log.c:26: +| src/lib/log.c: In function '__fr_thread_local_destroy_fr_strerror_buffer': +| src/lib/log.c:37:31: error: 'fr_strerror_buffer' undeclared (first use in this function) +| fr_thread_local_setup(char *, fr_strerror_buffer) /* macro */ +| ^ + +Add the missing declaration in macro. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao +--- + src/include/threads.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/include/threads.h b/src/include/threads.h +index e36d81d..2bcb6aa 100644 +--- a/src/include/threads.h ++++ b/src/include/threads.h +@@ -89,7 +89,7 @@ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\ + # define fr_thread_local_get(_n) _n + #elif defined(HAVE_PTHREAD_H) + # include +-# define fr_thread_local_setup(_t, _n) \ ++# define fr_thread_local_setup(_t, _n) static __thread _t _n;\ + static pthread_key_t __fr_thread_local_key_##_n;\ + static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\ + static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\ +@@ -100,17 +100,17 @@ static void __fr_thread_local_destroy_##_n(UNUSED void *unused)\ + static void __fr_thread_local_key_init_##_n(void)\ + {\ + (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\ +- (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\ + }\ + static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\ + {\ + __fr_thread_local_destructor_##_n = func;\ + if (_n) return _n; \ + (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\ ++ (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\ + return _n;\ + } +-# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f) +-# define fr_thread_local_set(_n, _v) __fr_thread_local_set_##_n(_v) +-# define fr_thread_local_get(_n) __fr_thread_local_get_##_n() ++# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f) ++# define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1)) ++# define fr_thread_local_get(_n) _n + #endif + #endif +-- +2.10.2 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch new file mode 100644 index 00000000000..d29b2ac39d1 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch @@ -0,0 +1,236 @@ +From d8e251ef97869ab2c1c82bd374016f402083997c Mon Sep 17 00:00:00 2001 +From: Jorge Pereira +Date: Mon, 7 Dec 2015 16:51:07 -0200 +Subject: [PATCH] Fixing issues related to m4 include path + +Upstream-Status: Submitted [1] + +[1]: https://github.com/FreeRADIUS/freeradius-server/pull/1428 + +Submmited by: Jorge Pereira +--- + src/modules/rlm_example/config.h.in | 39 ++-------------------- + src/modules/rlm_ldap/configure | 2 +- + src/modules/rlm_pam/config.h.in | 3 ++ + src/modules/rlm_perl/config.h.in | 3 ++ + src/modules/rlm_perl/configure.ac | 2 +- + src/modules/rlm_radutmp/config.h.in | 3 ++ + src/modules/rlm_ruby/configure | 1 + + src/modules/rlm_ruby/configure.ac | 9 ++--- + src/modules/rlm_smsotp/config.h.in | 3 ++ + .../rlm_sql/drivers/rlm_sql_mysql/config.h.in | 3 ++ + src/modules/rlm_unix/config.h.in | 6 ++++ + 11 files changed, 32 insertions(+), 42 deletions(-) + +diff --git a/src/modules/rlm_example/config.h.in b/src/modules/rlm_example/config.h.in +index 2a81ef5..f80de9c 100644 +--- a/src/modules/rlm_example/config.h.in ++++ b/src/modules/rlm_example/config.h.in +@@ -1,38 +1,5 @@ + /* config.h.in. Generated from configure.ac by autoheader. */ + +-/* Define to 1 if you have the header file. */ +-#undef HAVE_INTTYPES_H +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_MEMORY_H +- +-/* Define to 1 if you have the `printf' function. */ +-#undef HAVE_PRINTF +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_STDINT_H +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_STDIO_H +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_STDLIB_H +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_STRINGS_H +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_STRING_H +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_SYS_STAT_H +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_SYS_TYPES_H +- +-/* Define to 1 if you have the header file. */ +-#undef HAVE_UNISTD_H +- + /* Define to the address where bug reports for this package should be sent. */ + #undef PACKAGE_BUGREPORT + +@@ -45,8 +12,8 @@ + /* Define to the one symbol short name of this package. */ + #undef PACKAGE_TARNAME + ++/* Define to the home page for this package. */ ++#undef PACKAGE_URL ++ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION +- +-/* Define to 1 if you have the ANSI C header files. */ +-#undef STDC_HEADERS +diff --git a/src/modules/rlm_ldap/configure b/src/modules/rlm_ldap/configure +index e0c15d9..cdf96d5 100755 +--- a/src/modules/rlm_ldap/configure ++++ b/src/modules/rlm_ldap/configure +@@ -3992,7 +3992,7 @@ smart_prefix= + $as_echo "#define WITH_SASL 1" >>confdefs.h + + SASL=sasl.c +- fi ++ fi + fi + + targetname=rlm_ldap +diff --git a/src/modules/rlm_pam/config.h.in b/src/modules/rlm_pam/config.h.in +index 32ef6ff..1ad20c5 100644 +--- a/src/modules/rlm_pam/config.h.in ++++ b/src/modules/rlm_pam/config.h.in +@@ -45,6 +45,9 @@ + /* Define to the one symbol short name of this package. */ + #undef PACKAGE_TARNAME + ++/* Define to the home page for this package. */ ++#undef PACKAGE_URL ++ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION + +diff --git a/src/modules/rlm_perl/config.h.in b/src/modules/rlm_perl/config.h.in +index 989ed53..f80de9c 100644 +--- a/src/modules/rlm_perl/config.h.in ++++ b/src/modules/rlm_perl/config.h.in +@@ -12,5 +12,8 @@ + /* Define to the one symbol short name of this package. */ + #undef PACKAGE_TARNAME + ++/* Define to the home page for this package. */ ++#undef PACKAGE_URL ++ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION +diff --git a/src/modules/rlm_perl/configure.ac b/src/modules/rlm_perl/configure.ac +index 44c5fc9..6b2a043 100644 +--- a/src/modules/rlm_perl/configure.ac ++++ b/src/modules/rlm_perl/configure.ac +@@ -3,7 +3,7 @@ AC_INIT(rlm_perl.c) + AC_REVISION($Revision$) + AC_DEFUN(modname,[rlm_perl]) + +-m4_include([ax_with_prog.m4]) ++m4_include([m4/ax_with_prog.m4]) + + if test x$with_[]modname != xno; then + AC_PROG_CC +diff --git a/src/modules/rlm_radutmp/config.h.in b/src/modules/rlm_radutmp/config.h.in +index 9a883cc..750b434 100644 +--- a/src/modules/rlm_radutmp/config.h.in ++++ b/src/modules/rlm_radutmp/config.h.in +@@ -42,6 +42,9 @@ + /* Define to the one symbol short name of this package. */ + #undef PACKAGE_TARNAME + ++/* Define to the home page for this package. */ ++#undef PACKAGE_URL ++ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION + +diff --git a/src/modules/rlm_ruby/configure b/src/modules/rlm_ruby/configure +index 15868ab..c728af2 100755 +--- a/src/modules/rlm_ruby/configure ++++ b/src/modules/rlm_ruby/configure +@@ -1875,6 +1875,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ++ + # =========================================================================== + # http://www.gnu.org/software/autoconf-archive/ax_compare_version.html + # =========================================================================== +diff --git a/src/modules/rlm_ruby/configure.ac b/src/modules/rlm_ruby/configure.ac +index 9306382..f1c8118 100644 +--- a/src/modules/rlm_ruby/configure.ac ++++ b/src/modules/rlm_ruby/configure.ac +@@ -3,15 +3,16 @@ AC_INIT(rlm_ruby.c) + AC_REVISION($Revision: 1.9 $) + AC_DEFUN(modname,[rlm_ruby]) + +-m4_include([ax_with_prog.m4]) ++m4_include([m4/ax_with_prog.m4]) + + AC_DEFUN([AX_WITH_RUBY],[ + AX_WITH_PROG([RUBY],[ruby],[not-found],[${PATH}:/usr/bin:/usr/local/bin]) + ]) + +-m4_include([ax_compare_version.m4]) +-m4_include([ax_prog_ruby_version.m4]) +-m4_include([ax_ruby_devel.m4]) ++ ++m4_include([m4/ax_compare_version.m4]) ++m4_include([m4/ax_prog_ruby_version.m4]) ++m4_include([m4/ax_ruby_devel.m4]) + + targetname=modname + mod_cflags= +diff --git a/src/modules/rlm_smsotp/config.h.in b/src/modules/rlm_smsotp/config.h.in +index 5feaf91..9e69f85 100644 +--- a/src/modules/rlm_smsotp/config.h.in ++++ b/src/modules/rlm_smsotp/config.h.in +@@ -42,6 +42,9 @@ + /* Define to the one symbol short name of this package. */ + #undef PACKAGE_TARNAME + ++/* Define to the home page for this package. */ ++#undef PACKAGE_URL ++ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION + +diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in b/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in +index e03d1a9..6262c48 100644 +--- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in ++++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in +@@ -18,5 +18,8 @@ + /* Define to the one symbol short name of this package. */ + #undef PACKAGE_TARNAME + ++/* Define to the home page for this package. */ ++#undef PACKAGE_URL ++ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION +diff --git a/src/modules/rlm_unix/config.h.in b/src/modules/rlm_unix/config.h.in +index dcb9aa2..70b4680 100644 +--- a/src/modules/rlm_unix/config.h.in ++++ b/src/modules/rlm_unix/config.h.in +@@ -1,5 +1,8 @@ + /* config.h.in. Generated from configure.ac by autoheader. */ + ++/* Define to 1 if you have the `getpwnam' function. */ ++#undef HAVE_GETPWNAM ++ + /* Define to 1 if you have the `getspnam' function. */ + #undef HAVE_GETSPNAM + +@@ -54,6 +57,9 @@ + /* Define to the one symbol short name of this package. */ + #undef PACKAGE_TARNAME + ++/* Define to the home page for this package. */ ++#undef PACKAGE_URL ++ + /* Define to the version of this package. */ + #undef PACKAGE_VERSION + +-- +2.3.5 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch new file mode 100644 index 00000000000..b0929c4b076 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch @@ -0,0 +1,55 @@ +Fix quoting for BUILD_WITH + +The escaped quotes are to make the -D values produce strings which +can be used to display these values. However, if the values are more +than one word, with spaces, they also need shell quoting to make them +into single words. + +Upstream-Status: Pending + +Signed-off-by: Peter Seebach +Signed-off-by: Yi Zhao +--- + src/main/libfreeradius-server.mk | 2 +- + src/main/unittest.mk | 2 +- + src/modules/rlm_eap/radeapclient.mk | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/main/libfreeradius-server.mk b/src/main/libfreeradius-server.mk +index 4495f72..07c28f1 100644 +--- a/src/main/libfreeradius-server.mk ++++ b/src/main/libfreeradius-server.mk +@@ -18,5 +18,5 @@ SOURCES := conffile.c \ + TGT_LDLIBS := $(OPENSSL_LIBS) + + ifneq ($(MAKECMDGOALS),scan) +-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\" ++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\"" + endif +diff --git a/src/main/unittest.mk b/src/main/unittest.mk +index 09f3938..ed33952 100644 +--- a/src/main/unittest.mk ++++ b/src/main/unittest.mk +@@ -21,5 +21,5 @@ TGT_PREREQS += libfreeradius-eap.a + endif + + ifneq ($(MAKECMDGOALS),scan) +-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\" ++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\"" + endif +diff --git a/src/modules/rlm_eap/radeapclient.mk b/src/modules/rlm_eap/radeapclient.mk +index 6068f54..7d3c556 100644 +--- a/src/modules/rlm_eap/radeapclient.mk ++++ b/src/modules/rlm_eap/radeapclient.mk +@@ -23,7 +23,7 @@ SRC_CFLAGS += -DWITH_EAPCLIENT + SRC_INCDIRS := ${top_srcdir}/src/modules/rlm_eap/libeap + + ifneq ($(MAKECMDGOALS),scan) +-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\" ++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\"" + endif + + endif +-- +2.10.2 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch new file mode 100644 index 00000000000..4eb61ff2ec0 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch @@ -0,0 +1,89 @@ +From 56ef434e454bcc82c162a83d9bcb076d4fc72b7f Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Thu, 9 Jan 2014 14:30:26 +0800 +Subject: [PATCH] Fix libtool detection + +Upstream-Status: pending + +Use LT_INIT instead of the deprecated AC_PROG_LIBTOOL to detect libtool, so it +can work with our libtoolize and libtool. + +Simplify the detection of ltdl. It will find the ltdl from the sysroot; the +switch --with-system-libltdl is no longer needed. The code is copied from +pulseaudio configure.ac, together with the comment paragraph. + +Also patch autogen.sh so it uses autoreconf, which handles libtoolize better. + +Signed-off-by: Jesse Zhang +Signed-off-by: Jackie Huang +--- + autogen.sh | 5 +---- + configure.ac | 36 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 37 insertions(+), 4 deletions(-) + +diff --git a/autogen.sh b/autogen.sh +index 3418673..e42c3d5 100755 +--- a/autogen.sh ++++ b/autogen.sh +@@ -5,10 +5,7 @@ parentdir=`dirname $0` + cd $parentdir + parentdir=`pwd` + +-libtoolize -f -c +-#aclocal +-autoheader +-autoconf ++autoreconf -Wcross --verbose --install --force + + mysubdirs="$mysubdirs `find src/modules/ -name configure -print | sed 's%/configure%%'`" + mysubdirs=`echo $mysubdirs` +diff --git a/configure.ac b/configure.ac +index e73e4ad..066d3d7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -205,6 +205,42 @@ dnl # See if we have Git. + dnl # + AC_CHECK_PROG(GIT, git, yes, no) + ++#### libtool stuff #### ++ ++dnl set this shit so it doesn't force CFLAGS... ++LTCFLAGS=" " ++ ++LT_PREREQ(2.2) ++LT_INIT([dlopen disable-static]) ++ ++dnl Unfortunately, even up to libtool 2.2.6a there is no way to know ++dnl exactly which version of libltdl is present in the system, so we ++dnl just assume that it's a working version as long as we have the ++dnl library and the header files. ++dnl ++dnl As an extra safety device, check for lt_dladvise_init() which is ++dnl only implemented in libtool 2.x, and refine as we go if we have ++dnl refined requirements. ++dnl ++dnl Check the header files first since the system may have a ++dnl libltdl.so for runtime, but no headers, and we want to bail out as ++dnl soon as possible. ++dnl ++dnl We don't need any special variable for this though, since the user ++dnl can give the proper place to find libltdl through the standard ++dnl variables like LDFLAGS and CPPFLAGS. ++ ++AC_CHECK_HEADER([ltdl.h], ++ [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])], ++ [LIBLTDL=]) ++ ++AS_IF([test "x$LIBLTDL" = "x"], ++ [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])]) ++AC_SUBST([LIBLTDL]) ++LTDL_SUBDIRS= ++INCLTDL=-DWITH_SYSTEM_LTDL ++AC_SUBST(LTDL_SUBDIRS) ++ + dnl Put this in later, when all distributed modules use autoconf. + dnl AC_ARG_WITH(disablemodulefoo, + dnl [ --without-rlm_foo Disables module compilation. Module list:] +-- +1.8.3 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch new file mode 100644 index 00000000000..1954586b2bf --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch @@ -0,0 +1,160 @@ +From 16bf899447fc1524ffc3c79e1d35380e5285a552 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Thu, 7 Jan 2016 22:37:30 -0800 +Subject: [PATCH] libtool: do not use jlibtool + +jlibtool is hardcoded to be used but we need to use +our libtool, so fix the makfiles to make it compatible +with our libtool. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Jackie Huang +Signed-off-by: Yi Zhao +--- + Make.inc.in | 4 ++-- + scripts/boiler.mk | 2 ++ + scripts/install.mk | 14 +++++++------- + scripts/libtool.mk | 22 ++++++++++++++++------ + 4 files changed, 27 insertions(+), 15 deletions(-) + +diff --git a/Make.inc.in b/Make.inc.in +index 7a77625..fd8aa3e 100644 +--- a/Make.inc.in ++++ b/Make.inc.in +@@ -57,7 +57,7 @@ CPPFLAGS = @CPPFLAGS@ + LIBPREFIX = @LIBPREFIX@ + EXEEXT = @EXEEXT@ + +-LIBTOOL = JLIBTOOL ++LIBTOOL = @LIBTOOL@ + ACLOCAL = @ACLOCAL@ + AUTOCONF = @AUTOCONF@ + AUTOHEADER = @AUTOHEADER@ +@@ -163,7 +163,7 @@ ANALYZE.c := @clang_path@ + # + ifeq "$(USE_SHARED_LIBS)" "yes" + TESTBINDIR = ./$(BUILD_DIR)/bin/local +- TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(JLIBTOOL) --quiet --mode=execute $(TESTBINDIR) ++ TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(LIBTOOL) --quiet --mode=execute $(TESTBINDIR) + else + TESTBINDIR = ./$(BUILD_DIR)/bin + TESTBIN = ./$(BUILD_DIR)/bin +diff --git a/scripts/boiler.mk b/scripts/boiler.mk +index bccec5e..926a13e 100644 +--- a/scripts/boiler.mk ++++ b/scripts/boiler.mk +@@ -266,6 +266,7 @@ define COMPILE_C_CMDS + $(Q)$(ECHO) CC $< + $(Q)$(strip ${COMPILE.c} -o $@ -c -MD ${CPPFLAGS} ${CFLAGS} ${SRC_CFLAGS} ${INCDIRS} \ + $(addprefix -I, ${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} $<) ++ ${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d + endef + else + # +@@ -281,6 +282,7 @@ define COMPILE_C_CMDS + $(Q)cppcheck --enable=style -q ${CHECKFLAGS} $(filter -isystem%,${SRC_CFLAGS}) \ + $(filter -I%,${SRC_CFLAGS}) $(filter -D%,${SRC_CFLAGS}) ${INCDIRS} \ + $(addprefix -I,${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} --suppress=variableScope --suppress=invalidscanf $< ++ ${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d + endef + endif + +diff --git a/scripts/install.mk b/scripts/install.mk +index 9164115..e38c1ed 100644 +--- a/scripts/install.mk ++++ b/scripts/install.mk +@@ -46,7 +46,7 @@ define ADD_INSTALL_RULE.exe + install: $${${1}_INSTALLDIR}/$(notdir ${1}) + + # Install executable ${1} +- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR} ++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR} + @$(ECHO) INSTALL ${1} + $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/bin/${1} $${${1}_INSTALLDIR}/ + $(Q)$${${1}_POSTINSTALL} +@@ -65,7 +65,7 @@ define ADD_INSTALL_RULE.a + install: $${${1}_INSTALLDIR}/$(notdir ${1}) + + # Install static library ${1} +- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} ${1} | $${${1}_INSTALLDIR} ++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} ${1} | $${${1}_INSTALLDIR} + @$(ECHO) INSTALL ${1} + $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/ + $(Q)$${${1}_POSTINSTALL} +@@ -87,9 +87,9 @@ define ADD_INSTALL_RULE.la + install: $${${1}_INSTALLDIR}/$(notdir ${1}) + + # Install libtool library ${1} +- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR} ++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR} + @$(ECHO) INSTALL ${1} +- $(Q)$${PROGRAM_INSTALL} -c -m 755 $${LOCAL_FLAGS_MIN} $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/ ++ $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/ + $(Q)$${${1}_POSTINSTALL} + + endef +@@ -107,7 +107,7 @@ define ADD_INSTALL_RULE.man + install: ${2}/$(notdir ${1}) + + # Install manual page ${1} +- ${2}/$(notdir ${1}): ${JLIBTOOL} ${1} | ${2} ++ ${2}/$(notdir ${1}): ${LIBTOOL} ${1} | ${2} + @$(ECHO) INSTALL $(notdir ${1}) + $(Q)$${PROGRAM_INSTALL} -c -m 644 ${1} ${2}/ + +@@ -122,9 +122,9 @@ endef + define ADD_INSTALL_RULE.dir + # Install directory + .PHONY: ${1} +- ${1}: ${JLIBTOOL} ++ ${1}: ${LIBTOOL} + @$(ECHO) INSTALL -d -m 755 ${1} +- $(Q)$${PROGRAM_INSTALL} -d -m 755 ${1} ++ $(Q)$${INSTALL} -d -m 755 ${1} + endef + + +diff --git a/scripts/libtool.mk b/scripts/libtool.mk +index 57915e1..2cb2f7d 100644 +--- a/scripts/libtool.mk ++++ b/scripts/libtool.mk +@@ -55,7 +55,9 @@ ifeq "${LIBTOOL}" "JLIBTOOL" + # Tell GNU Make to use this value, rather than anything specified + # on the command line. + override LIBTOOL := ${JLIBTOOL} +-endif # else we're not using jlibtool ++else # else we're not using jlibtool ++ all install: ${LIBTOOL} ++endif + + # When using libtool, it produces a '.libs' directory. Ensure that it + # is removed on "make clean", too. +@@ -69,11 +71,19 @@ clean: .libs_clean + # Re-define compilers and linkers + # + OBJ_EXT = lo +-COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC} +-COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX} +-LINK.c = ${LIBTOOL} --silent --mode=link ${CC} +-LINK.cxx = ${LIBTOOL} --mode=link ${CXX} +-PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL} ++ifeq "${LIBTOOL}" "JLIBTOOL" ++ COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC} ++ COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX} ++ LINK.c = ${LIBTOOL} --silent --mode=link ${CC} ++ LINK.cxx = ${LIBTOOL} --mode=link ${CXX} ++ PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL} ++else ++ COMPILE.c = ${LIBTOOL} --mode=compile --tag=CC ${CC} ++ COMPILE.cxx = ${LIBTOOL} --mode=compile --tag=CC ${CXX} ++ LINK.c = ${LIBTOOL} --mode=link --tag=CC ${CC} -module -export-dynamic ++ LINK.cxx = ${LIBTOOL} --mode=link --tag=CC ${CXX} -module -export-dynamic ++ PROGRAM_INSTALL = ${LIBTOOL} --mode=install ${INSTALL} ++endif + + + # LIBTOOL_ENDINGS - Given a library ending in ".a" or ".so", replace that +-- +2.10.2 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch new file mode 100644 index 00000000000..675940dd6c5 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch @@ -0,0 +1,33 @@ +From a0bf65e04d2bbd3271cab94bd5ac93f8e877bfc5 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Wed, 27 Jan 2016 05:07:19 -0500 +Subject: [PATCH] rlm_python: add PY_INC_DIR in search dir + +Upstream-Status: Pending + +configure option --with-rlm-python-include-dir is used to set +PY_INC_DIR which is never used and it fails to find Python.h, +so add it into search dir to fix it. + +Signed-off-by: Jackie Huang +Signed-off-by: Yi Zhao +--- + src/modules/rlm_python/configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/modules/rlm_python/configure.ac b/src/modules/rlm_python/configure.ac +index 831a33a..c3792d8 100644 +--- a/src/modules/rlm_python/configure.ac ++++ b/src/modules/rlm_python/configure.ac +@@ -93,7 +93,7 @@ if test x$with_[]modname != xno; then + + old_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $PY_CFLAGS" +- smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION" ++ smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION $PY_INC_DIR" + FR_SMART_CHECK_INCLUDE(Python.h) + CFLAGS=$old_CFLAGS + +-- +2.10.2 + diff --git a/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf b/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf new file mode 100644 index 00000000000..fa629629759 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf @@ -0,0 +1,2 @@ +d /var/log/radius 0755 radiusd radiusd - +d /var/run/radiusd 0755 radiusd radiusd - diff --git a/meta-networking/recipes-connectivity/freeradius/files/radiusd.service b/meta-networking/recipes-connectivity/freeradius/files/radiusd.service new file mode 100644 index 00000000000..899c4e49558 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/radiusd.service @@ -0,0 +1,16 @@ +[Unit] +Description=FreeRADIUS high performance RADIUS server. +After=syslog.target network.target + +[Service] +Type=forking +PIDFile=@STATEDIR@/run/radiusd/radiusd.pid +ExecStartPre=-@BASE_BINDIR@/chown -R radiusd.radiusd @STATEDIR@/run/radiusd +ExecStartPre=-@BASE_BINDIR@/sh -c "if [ ! -f @SYSCONFDIR@/raddb/certs/server.pem ]; then sudo -u radiusd @SYSCONFDIR@/raddb/certs/bootstrap; fi" +ExecStartPre=@SBINDIR@/radiusd -C +ExecStart=@SBINDIR@/radiusd -d @SYSCONFDIR@/raddb +ExecReload=@SBINDIR@/radiusd -C +ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-connectivity/freeradius/files/volatiles.58_radiusd b/meta-networking/recipes-connectivity/freeradius/files/volatiles.58_radiusd new file mode 100644 index 00000000000..8cbdae8a630 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/volatiles.58_radiusd @@ -0,0 +1,3 @@ +# +d radiusd radiusd 0755 /var/run/radiusd none +d radiusd radiusd 0755 /var/log/radius none diff --git a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb new file mode 100644 index 00000000000..4155a4059e0 --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb @@ -0,0 +1,222 @@ +DESCRIPTION = "FreeRADIUS is an Internet authentication daemon, which implements the RADIUS \ +protocol, as defined in RFC 2865 (and others). It allows Network Access \ +Servers (NAS boxes) to perform authentication for dial-up users. There are \ +also RADIUS clients available for Web servers, firewalls, Unix logins, and \ +more. Using RADIUS allows authentication and authorization for a network to \ +be centralized, and minimizes the amount of re-configuration which has to be \ +done when adding or deleting new users." + +SUMMARY = "High-performance and highly configurable RADIUS server" +HOMEPAGE = "http://www.freeradius.org/" +SECTION = "System/Servers" +LICENSE = "GPLv2 & LGPLv2+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a" +DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc" + +SRC_URI = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${PV}.tar.bz2 \ + file://freeradius \ + file://volatiles.58_radiusd \ + file://freeradius-enble-user-in-conf.patch \ + file://freeradius-configure.ac-allow-cross-compilation.patch \ + file://freeradius-fix-issues-related-to-m4-include-path.patch \ + file://freeradius-libtool-detection.patch \ + file://freeradius-configure.ac-add-option-for-libcap.patch \ + file://freeradius-avoid-searching-host-dirs.patch \ + file://freeradius-rlm_python-add-PY_INC_DIR.patch \ + file://freeradius-libtool-do-not-use-jlibtool.patch \ + file://freeradius-fix-quoting-for-BUILT_WITH.patch \ + file://freeradius-fix-error-for-expansion-of-macro.patch \ + file://0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \ + file://radiusd.service \ + file://radiusd-volatiles.conf \ +" +SRC_URI[md5sum] = "0c81a4464ccf1d04f7ef1218a029d37a" +SRC_URI[sha256sum] = "23267d8505e7b2909f5bdbf3938ca077c1fe122290dc969304d4f3b594f7e3ba" + +PARALLEL_MAKE = "" + +S = "${WORKDIR}/freeradius-server-${PV}" + +EXTRA_OECONF = " --enable-strict-dependencies \ + --with-docdir=${docdir}/freeradius-${PV} \ + --with-openssl-includes=${STAGING_INCDIR} \ + --with-openssl-libraries=${STAGING_LIBDIR} \ + --without-rlm_ippool \ + --without-rlm_cache_memcached \ + --without-rlm_counter \ + --without-rlm_couchbase \ + --without-rlm_dbm \ + --without-rlm_eap_tnc \ + --without-rlm_eap_ikev2 \ + --without-rlm_opendirectory \ + --without-rlm_redis \ + --without-rlm_rediswho \ + --without-rlm_sql_db2 \ + --without-rlm_sql_firebird \ + --without-rlm_sql_freetds \ + --without-rlm_sql_iodbc \ + --without-rlm_sql_oracle \ + --without-rlm_sql_sybase \ + --without-rlm_sqlhpwippool \ + ac_cv_path_PERL=${bindir}/perl \ + ax_cv_cc_builtin_choose_expr=no \ + ax_cv_cc_builtin_types_compatible_p=no \ + ax_cv_cc_builtin_bswap64=no \ + ax_cv_cc_bounded_attribute=no \ +" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ + pcre libcap \ +" + +PACKAGECONFIG[krb5] = "--with-rlm_krb5,--without-rlm_krb5,krb5" +PACKAGECONFIG[pam] = "--with-rlm_pam,--without-rlm_pam,libpam" +PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap" +PACKAGECONFIG[ldap] = "--with-rlm_ldap,--without-rlm_ldap,openldap" +PACKAGECONFIG[mysql] = "--with-rlm_sql_mysql,--without-rlm_sql_mysql,mysql5" +PACKAGECONFIG[sqlite] = "--with-rlm_sql_sqlite,--without-rlm_sql_sqlite,sqlite3" +PACKAGECONFIG[unixodbc] = "--with-rlm_sql_unixodbc,--without-rlm_sql_unixodbc,unixodbc" +PACKAGECONFIG[postgresql] = "--with-rlm_sql_postgresql,--without-rlm_sql_postgresql,postgresql" +PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre" +PACKAGECONFIG[perl] = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --with-rlm_perl,--without-rlm_perl,perl-native perl,perl" +PACKAGECONFIG[python] = "--with-rlm_python --with-rlm-python-bin=${STAGING_BINDIR_NATIVE}/python-native/python --with-rlm-python-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python,python-native python" +PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c" +PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby" + +inherit useradd autotools-brokensep update-rc.d systemd + +# This is not a cpan or python based package, but it needs some definitions +# from cpan-base and python-dir bbclasses for building rlm_perl and rlm_python +# correctly. +inherit cpan-base python-dir + +# The modules subdirs also need to be processed by autoreconf. Use autogen.sh +# in order to handle the subdirs correctly. +do_configure () { + ./autogen.sh + + # the configure of rlm_perl needs this to get correct + # mod_cflags and mod_ldflags + if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then + export PERL5LIB="${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}" + fi + + oe_runconf + + # we don't need dhcpclient + sed -i -e 's/dhcpclient.mk//' ${S}/src/modules/proto_dhcp/all.mk +} + +INITSCRIPT_NAME = "radiusd" + +SYSTEMD_SERVICE_${PN} = "radiusd.service" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false --user-group radiusd" + +do_install() { + rm -rf ${D} + mkdir -p ${D}/${sysconfdir}/logrotate.d + mkdir -p ${D}/${sysconfdir}/pam.d + mkdir -p ${D}/${sysconfdir}/init.d + mkdir -p ${D}/${localstatedir}/lib/radiusd + mkdir -p ${D}${sysconfdir}/default/volatiles + + export LD_LIBRARY_PATH=${D}/${libdir} + oe_runmake install R=${D} INSTALLSTRIP="" + + # remove unsupported config files + rm -f ${D}/${sysconfdir}/raddb/experimental.conf + + # remove scripts that required Perl(DBI) + rm -rf ${D}/${bindir}/radsqlrelay + + cp -f ${WORKDIR}/freeradius ${D}/etc/init.d/radiusd + rm -f ${D}/${sbindir}/rc.radiusd + chmod +x ${D}/${sysconfdir}/init.d/radiusd + rm -rf ${D}/${localstatedir}/run/ + install -m 0644 ${WORKDIR}/volatiles.58_radiusd ${D}${sysconfdir}/default/volatiles/58_radiusd + + chown -R radiusd:radiusd ${D}/${sysconfdir}/raddb/ + chown -R radiusd:radiusd ${D}/${localstatedir}/lib/radiusd + + # For systemd + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/radiusd.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@STATEDIR@,${localstatedir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + ${D}${systemd_unitdir}/system/radiusd.service + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d/ + install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/ + fi +} + +# This is only needed when we install/update on a running target. +# +pkg_postinst_${PN} () { + if [ -z "$D" ]; then + if command -v systemd-tmpfiles >/dev/null; then + # create /var/log/radius, /var/run/radiusd + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/radiusd-volatiles.conf + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + + # Fix ownership for /etc/raddb/*, /var/lib/radiusd + chown -R radiusd:radiusd ${sysconfdir}/raddb + chown -R radiusd:radiusd ${localstatedir}/lib/radiusd + fi +} + +# We really need the symlink :( +INSANE_SKIP_${PN} = "dev-so" +INSANE_SKIP_${PN}-krb5 = "dev-so" +INSANE_SKIP_${PN}-ldap = "dev-so" +INSANE_SKIP_${PN}-mysql = "dev-so" +INSANE_SKIP_${PN}-perl = "dev-so" +INSANE_SKIP_${PN}-postgresql = "dev-so" +INSANE_SKIP_${PN}-python = "dev-so" +INSANE_SKIP_${PN}-unixodbc = "dev-so" + +PACKAGES =+ "${PN}-utils ${PN}-ldap ${PN}-krb5 ${PN}-perl \ + ${PN}-python ${PN}-mysql ${PN}-postgresql ${PN}-unixodbc" + +FILES_${PN}-utils = "${bindir}/*" + +FILES_${PN}-ldap = "${libdir}/rlm_ldap.so* \ + ${sysconfdir}/raddb/mods-available/ldap \ +" + +FILES_${PN}-krb5 = "${libdir}/rlm_krb5.so* \ + ${sysconfdir}/raddb/mods-available/krb5 \ +" + +FILES_${PN}-perl = "${libdir}/rlm_perl.so* \ + ${sysconfdir}/raddb/mods-config/perl \ + ${sysconfdir}/raddb/mods-available/perl \ +" + +FILES_${PN}-python = "${libdir}/rlm_python.so* \ + ${sysconfdir}/raddb/mods-config/python \ + ${sysconfdir}/raddb/mods-available/python \ +" + +FILES_${PN}-mysql = "${libdir}/rlm_sql_mysql.so* \ + ${sysconfdir}/raddb/mods-config/sql/*/mysql \ + ${sysconfdir}/raddb/mods-available/sql \ +" + +FILES_${PN}-postgresql = "${libdir}/rlm_sql_postgresql.so* \ + ${sysconfdir}/raddb/mods-config/sql/*/postgresql \ +" + +FILES_${PN}-unixodbc = "${libdir}/rlm_sql_unixodbc.so*" + +FILES_${PN} =+ "${libdir}/rlm_*.so* ${libdir}/proto_*so*" + +RDEPENDS_${PN} += "perl" +RDEPENDS_${PN}-utils = "${PN}" diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/fix-disable-ipv6.patch b/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/fix-disable-ipv6.patch deleted file mode 100644 index bd3ae476bd4..00000000000 --- a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/fix-disable-ipv6.patch +++ /dev/null @@ -1,60 +0,0 @@ -Upstream: http://www.mail-archive.com/bug-inetutils@gnu.org/msg02103.html - -Upstream-Status: Pending - -diff -ur inetutils-1.8.orig/ping/ping_common.h inetutils-1.8/ping/ping_common.h ---- inetutils-1.8.orig/ping/ping_common.h 2010-05-15 20:55:47.000000000 +0930 -+++ inetutils-1.8/ping/ping_common.h 2010-12-01 12:19:08.000000000 +1030 -@@ -17,10 +17,14 @@ - You should have received a copy of the GNU General Public License - along with this program. If not, see `http://www.gnu.org/licenses/'. */ - -+#include -+ - #include - #include - #include -+#ifdef HAVE_IPV6 - #include -+#endif - #include - #include - #include -@@ -66,13 +70,19 @@ - (t).tv_usec = ((i)%PING_PRECISION)*(1000000/PING_PRECISION) ;\ - } while (0) - -+#ifdef HAVE_IPV6 - /* Not sure about this step*/ - #define _PING_BUFLEN(p, USE_IPV6) ((USE_IPV6)? ((p)->ping_datalen + sizeof (struct icmp6_hdr)) : \ - ((p)->ping_datalen + sizeof (icmphdr_t))) -+#else -+#define _PING_BUFLEN(p, USE_IPV6) ((p)->ping_datalen + sizeof (icmphdr_t)) -+#endif - -+#ifdef HAVE_IPV6 - typedef int (*ping_efp6) (int code, void *closure, struct sockaddr_in6 * dest, - struct sockaddr_in6 * from, struct icmp6_hdr * icmp, - int datalen); -+#endif - - typedef int (*ping_efp) (int code, - void *closure, -@@ -81,13 +91,17 @@ - struct ip * ip, icmphdr_t * icmp, int datalen); - - union event { -+#ifdef HAVE_IPV6 - ping_efp6 handler6; -+#endif - ping_efp handler; - }; - - union ping_address { - struct sockaddr_in ping_sockaddr; -+#ifdef HAVE_IPV6 - struct sockaddr_in6 ping_sockaddr6; -+#endif - }; - - typedef struct ping_data PING; diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch new file mode 100644 index 00000000000..d4764f58673 --- /dev/null +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch @@ -0,0 +1,31 @@ +Upstream-Status: Pending + +Subject: rcp: fix to work with large files + +When we copy file by rcp command, if the file > 2GB, it will fail. +The cause is that it used incorrect data type on file size in sink() of rcp. + +Signed-off-by: Chen Qi +--- + src/rcp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/rcp.c b/src/rcp.c +index 21f55b6..bafa35f 100644 +--- a/src/rcp.c ++++ b/src/rcp.c +@@ -876,9 +876,9 @@ sink (int argc, char *argv[]) + enum + { YES, NO, DISPLAYED } wrerr; + BUF *bp; +- off_t i, j; ++ off_t i, j, size; + int amt, count, exists, first, mask, mode, ofd, omode; +- int setimes, size, targisdir, wrerrno; ++ int setimes, targisdir, wrerrno; + char ch, *cp, *np, *targ, *vect[1], buf[BUFSIZ]; + const char *why; + +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch new file mode 100644 index 00000000000..24c134fcac8 --- /dev/null +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch @@ -0,0 +1,83 @@ +Upstream: http://www.mail-archive.com/bug-inetutils@gnu.org/msg02103.html + +Upstream-Status: Pending + +Signed-off-by: Jackie Huang +--- + ping/ping_common.h | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/ping/ping_common.h b/ping/ping_common.h +index 1dfd1b5..3bfbd12 100644 +--- a/ping/ping_common.h ++++ b/ping/ping_common.h +@@ -17,10 +17,14 @@ + You should have received a copy of the GNU General Public License + along with this program. If not, see `http://www.gnu.org/licenses/'. */ + ++#include ++ + #include + #include + #include ++#ifdef HAVE_IPV6 + #include ++#endif + #include + #include + #include +@@ -62,7 +66,12 @@ struct ping_stat + want to follow the traditional behaviour of ping. */ + #define DEFAULT_PING_COUNT 0 + ++#ifdef HAVE_IPV6 + #define PING_HEADER_LEN (USE_IPV6 ? sizeof (struct icmp6_hdr) : ICMP_MINLEN) ++#else ++#define PING_HEADER_LEN (ICMP_MINLEN) ++#endif ++ + #define PING_TIMING(s) ((s) >= sizeof (struct timeval)) + #define PING_DATALEN (64 - PING_HEADER_LEN) /* default data length */ + +@@ -74,13 +83,20 @@ struct ping_stat + (t).tv_usec = ((i)%PING_PRECISION)*(1000000/PING_PRECISION) ;\ + } while (0) + ++#ifdef HAVE_IPV6 + /* FIXME: Adjust IPv6 case for options and their consumption. */ + #define _PING_BUFLEN(p, u) ((u)? ((p)->ping_datalen + sizeof (struct icmp6_hdr)) : \ + (MAXIPLEN + (p)->ping_datalen + ICMP_TSLEN)) + ++#else ++#define _PING_BUFLEN(p, u) (MAXIPLEN + (p)->ping_datalen + ICMP_TSLEN) ++#endif ++ ++#ifdef HAVE_IPV6 + typedef int (*ping_efp6) (int code, void *closure, struct sockaddr_in6 * dest, + struct sockaddr_in6 * from, struct icmp6_hdr * icmp, + int datalen); ++#endif + + typedef int (*ping_efp) (int code, + void *closure, +@@ -89,13 +105,17 @@ typedef int (*ping_efp) (int code, + struct ip * ip, icmphdr_t * icmp, int datalen); + + union event { ++#ifdef HAVE_IPV6 + ping_efp6 handler6; ++#endif + ping_efp handler; + }; + + union ping_address { + struct sockaddr_in ping_sockaddr; ++#ifdef HAVE_IPV6 + struct sockaddr_in6 ping_sockaddr6; ++#endif + }; + + typedef struct ping_data PING; +-- +2.8.3 + diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch similarity index 100% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch rename to meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/inetutils-1.8-0003-wchar.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch similarity index 100% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/inetutils-1.8-0003-wchar.patch rename to meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/inetutils-1.9-PATH_PROCNET_DEV.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch similarity index 100% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/inetutils-1.9-PATH_PROCNET_DEV.patch rename to meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch new file mode 100644 index 00000000000..ff3abd86aad --- /dev/null +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch @@ -0,0 +1,40 @@ +Only check security/pam_appl.h which is provided by package libpam when pam is +enabled. + +Upstream-Status: Pending + +Signed-off-by: Kai Kang +--- +diff --git a/configure.ac b/configure.ac +index b35e672..e78a751 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -195,6 +195,19 @@ fi + + # See if we have libpam.a. Investigate PAM versus Linux-PAM. + if test "$with_pam" = yes ; then ++ AC_CHECK_HEADERS([security/pam_appl.h], [], [], [ ++#include ++#ifdef HAVE_NETINET_IN_SYSTM_H ++# include ++#endif ++#include ++#ifdef HAVE_NETINET_IP_H ++# include ++#endif ++#ifdef HAVE_SYS_PARAM_H ++# include ++#endif ++]) + AC_CHECK_LIB(dl, dlopen, LIBDL=-ldl) + AC_CHECK_LIB(pam, pam_authenticate, LIBPAM=-lpam) + if test "$ac_cv_lib_pam_pam_authenticate" = yes ; then +@@ -587,7 +600,7 @@ AC_HEADER_DIRENT + AC_CHECK_HEADERS([arpa/nameser.h errno.h fcntl.h features.h \ + glob.h memory.h netinet/ether.h netinet/in_systm.h \ + netinet/ip.h netinet/ip_icmp.h netinet/ip_var.h \ +- security/pam_appl.h shadow.h \ ++ shadow.h \ + stdarg.h stdlib.h string.h stropts.h sys/tty.h \ + sys/utsname.h sys/ptyvar.h sys/msgbuf.h sys/filio.h \ + sys/ioctl_compat.h sys/cdefs.h sys/stream.h sys/mkdev.h \ diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rexec.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils similarity index 85% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rexec.xinetd.inetutils rename to meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils index 80aed36ffbd..30e81ef4502 100644 --- a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rexec.xinetd.inetutils +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils @@ -14,7 +14,7 @@ service exec group = root log_on_success += USERID log_on_failure += USERID - server = /usr/bin/tcpd - server_args = /usr/sbin/in.rexecd + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rexecd disable = yes } diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rlogin.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils similarity index 86% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rlogin.xinetd.inetutils rename to meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils index 00dbf935bb7..21b55da9a9f 100644 --- a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rlogin.xinetd.inetutils +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils @@ -14,8 +14,8 @@ service login group = root log_on_success += USERID log_on_failure += USERID - server = /usr/bin/tcpd - server_args = /usr/sbin/in.rlogind -a + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rlogind -a disable = yes } diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rsh.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils similarity index 87% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rsh.xinetd.inetutils rename to meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils index ad59b62076a..2b894a74bd4 100644 --- a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/rsh.xinetd.inetutils +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils @@ -15,7 +15,7 @@ service shell group = root log_on_success += USERID log_on_failure += USERID - server = /usr/bin/tcpd - server_args = /usr/sbin/in.rshd -aL + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rshd -aL disable = yes } diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/telnet.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils similarity index 89% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/telnet.xinetd.inetutils rename to meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils index 2a2a12e3ad3..2d9a0408c0d 100644 --- a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/telnet.xinetd.inetutils +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils @@ -8,6 +8,6 @@ service telnet socket_type = stream wait = no user = root - server = /usr/sbin/in.telnetd + server = @SBINDIR@/in.telnetd log_on_failure += USERID } diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/tftpd.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils similarity index 91% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/tftpd.xinetd.inetutils rename to meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils index f5491633949..67b44c43e85 100644 --- a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/tftpd.xinetd.inetutils +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils @@ -13,7 +13,7 @@ service tftp wait = yes user = root group = root - server = /usr/sbin/in.tftpd + server = @SBINDIR@/in.tftpd server_args = /tftpboot } diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/version.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch similarity index 93% rename from meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/version.patch rename to meta-networking/recipes-connectivity/inetutils/inetutils/version.patch index 1caa2d39d1d..532a0e5c089 100644 --- a/meta-networking/recipes-connectivity/inetutils/inetutils-1.9.2/version.patch +++ b/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch @@ -11,7 +11,7 @@ Signed-off-by: Chunrong Guo -AC_INIT([GNU inetutils], - m4_esyscmd([build-aux/git-version-gen .tarball-version 's/inetutils-/v/;s/_/./g']), -+AC_INIT([GNU inetutils],[1.9.2], ++AC_INIT([GNU inetutils],[1.9.4], [bug-inetutils@gnu.org]) AC_CONFIG_SRCDIR([src/inetd.c]) diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.2.bb b/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.2.bb deleted file mode 100644 index e46133efb25..00000000000 --- a/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.2.bb +++ /dev/null @@ -1,170 +0,0 @@ -DESCRIPTION = "The GNU inetutils are a collection of common \ -networking utilities and servers including ftp, ftpd, rcp, \ -rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \ -talkd, telnet, telnetd, tftp, tftpd, and uucpd." -SECTION = "libs" -DEPENDS = "ncurses netbase readline" -LICENSE = "GPLv3" - -LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7" - -SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \ - file://version.patch \ - file://inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch \ - file://inetutils-1.8-0003-wchar.patch \ - file://rexec.xinetd.inetutils \ - file://rlogin.xinetd.inetutils \ - file://rsh.xinetd.inetutils \ - file://telnet.xinetd.inetutils \ - file://tftpd.xinetd.inetutils \ - file://inetutils-1.9-PATH_PROCNET_DEV.patch \ -" - -SRC_URI[md5sum] = "aa1a9a132259db83e66c1f3265065ba2" -SRC_URI[sha256sum] = "0423ea40a160cd4630f817e247df5c08ecc625378d2bb56a0509117a36a89913" - -inherit autotools gettext update-alternatives texinfo - -SRC_URI += "${@base_contains('DISTRO_FEATURES', 'ipv6', '', 'file://fix-disable-ipv6.patch', d)}" -noipv6="${@base_contains('DISTRO_FEATURES', 'ipv6', '', '--disable-ipv6 gl_cv_socket_ipv6=no', d)}" - -PACKAGECONFIG ??= "ftp uucpd" -PACKAGECONFIG[ftp] = "--enable-ftp,--disable-ftp,readline" -PACKAGECONFIG[uucpd] = "--enable-uucpd,--disable-uucpd,readline" - -EXTRA_OECONF = "--with-ncurses-include-dir=${STAGING_INCDIR} \ - ${noipv6} \ - inetutils_cv_path_login=${base_bindir}/login \ - --with-libreadline-prefix=${STAGING_LIBDIR} \ - --enable-rpath=no \ -" - -do_configure_prepend () { - export HELP2MAN='true' - cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}/build-aux/config.rpath - rm -f ${S}/glob/configure* -} - -do_install_append () { - install -m 0755 -d ${D}${base_bindir} - install -m 0755 -d ${D}${base_sbindir} - install -m 0755 -d ${D}${sbindir} - install -m 0755 -d ${D}${sysconfdir}/xinetd.d - mv ${D}${bindir}/ping ${D}${base_bindir}/ - mv ${D}${bindir}/ping6 ${D}${base_bindir}/ - mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/ - mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/ - mv ${D}${bindir}/hostname ${D}${base_bindir}/ - mv ${D}${libexecdir}/tftpd ${D}${sbindir}/in.tftpd - mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd - mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd - mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind - mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd - mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd - mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd - mv ${D}${libexecdir}/* ${D}${bindir}/ - cp ${WORKDIR}/rexec.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rexec - cp ${WORKDIR}/rlogin.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rlogin - cp ${WORKDIR}/rsh.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rsh - cp ${WORKDIR}/telnet.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/telnet - cp ${WORKDIR}/tftpd.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/tftpd - rm -rf ${D}${libexecdir}/ - # remove usr/lib if empty - rmdir ${D}${libdir} -} - -PACKAGES =+ "${PN}-ping ${PN}-ping6 ${PN}-hostname ${PN}-ifconfig \ -${PN}-tftp ${PN}-logger ${PN}-traceroute ${PN}-syslogd \ -${PN}-ftp ${PN}-ftpd ${PN}-tftpd ${PN}-telnet ${PN}-telnetd ${PN}-inetd \ -${PN}-rsh ${PN}-rshd" - -# The packages tftpd, telnetd and rshd conflict with the ones -# provided by netkit, so add the corresponding -dbg packages -# for them to avoid the confliction between the dbg package -# of inetutils and netkit. -PACKAGES += "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg" - -ALTERNATIVE_PRIORITY = "80" -ALTERNATIVE_${PN} = "talk whois" -ALTERNATIVE_LINK_NAME[talkd] = "${sbindir}/in.talkd" -ALTERNATIVE_LINK_NAME[uucpd] = "${sbindir}/in.uucpd" - -ALTERNATIVE_${PN}-logger = "logger" -ALTERNATIVE_${PN}-syslogd = "syslogd" -ALTERNATIVE_LINK_NAME[syslogd] = "${base_sbindir}/syslogd" - -ALTERNATIVE_${PN}-ftp = "ftp" -ALTERNATIVE_${PN}-ftpd = "ftpd" -ALTERNATIVE_${PN}-tftp = "tftp" -ALTERNATIVE_${PN}-tftpd = "tftpd" -ALTERNATIVE_LINK_NAME[tftpd] = "${bindir}/tftpd" -ALTERNATIVE_TARGET[tftpd] = "${sbindir}/in.tftpd" - -ALTERNATIVE_${PN}-telnet = "telnet" -ALTERNATIVE_${PN}-telnetd = "telnetd" -ALTERNATIVE_LINK_NAME[telnetd] = "${bindir}/telnetd" -ALTERNATIVE_TARGET[telnetd] = "${sbindir}/in.telnetd" - -ALTERNATIVE_${PN}-rsh = "rcp rexec rlogin rsh" -ALTERNATIVE_${PN}-rshd = "rshd rexecd rlogind" -ALTERNATIVE_LINK_NAME[rshd] = "${bindir}/rshd" -ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd" -ALTERNATIVE_LINK_NAME[rexecd] = "${bindir}/rexecd" -ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd" -ALTERNATIVE_LINK_NAME[rlogind] = "${bindir}/rlogind" -ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind" - -ALTERNATIVE_${PN}-inetd= "inetd" -ALTERNATIVE_${PN}-traceroute = "traceroute" - -ALTERNATIVE_${PN}-hostname = "hostname" -ALTERNATIVE_LINK_NAME[hostname] = "${base_bindir}/hostname" - -ALTERNATIVE_${PN}-ifconfig = "ifconfig" -ALTERNATIVE_LINK_NAME[ifconfig] = "${base_sbindir}/ifconfig" - -ALTERNATIVE_${PN}-ping = "ping" -ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" - -ALTERNATIVE_${PN}-ping6 = "ping6" -ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6" - - -FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" -FILES_${PN}-ping6 = "${base_bindir}/ping6.${BPN}" -FILES_${PN}-hostname = "${base_bindir}/hostname.${BPN}" -FILES_${PN}-ifconfig = "${base_sbindir}/ifconfig.${BPN}" -FILES_${PN}-traceroute = "${bindir}/traceroute.${BPN}" -FILES_${PN}-logger = "${bindir}/logger.${BPN}" -FILES_${PN}-syslogd = "${base_sbindir}/syslogd.${BPN}" -FILES_${PN}-ftp = "${bindir}/ftp.${BPN}" - -FILES_${PN}-tftp = "${bindir}/tftp.${BPN}" -FILES_${PN}-telnet = "${bindir}/telnet.${BPN}" -FILES_${PN}-rsh = "${bindir}/rsh.${BPN} ${bindir}/rlogin.${BPN} ${bindir}/rexec.${BPN} ${bindir}/rcp.${BPN}" - -FILES_${PN}-rshd = "${sbindir}/in.rshd ${sbindir}/in.rlogind ${sbindir}/in.rexecd \ - ${sysconfdir}/xinetd.d/rsh ${sysconfdir}/xinetd.d/rlogin ${sysconfdir}/xinetd.d/rexec" -FILES_${PN}-rshd-dbg = "${sbindir}/.debug/in.rshd ${sbindir}/.debug/in.rlogind ${sbindir}/.debug/in.rexecd" -RDEPENDS_${PN}-rshd += "xinetd tcp-wrappers" -RCONFLICTS_${PN}-rshd += "netkit-rshd" -RPROVIDES_${PN}-rshd = "rshd" - -FILES_${PN}-ftpd = "${bindir}/ftpd.${BPN}" -FILES_${PN}-ftpd-dbg = "${bindir}/.debug/ftpd.${BPN}" -RDEPENDS_${PN}-ftpd += "xinetd" - -FILES_${PN}-tftpd = "${sbindir}/in.tftpd ${sysconfdir}/xinetd.d/tftpd" -FILES_${PN}-tftpd-dbg = "${sbindir}/.debug/in.tftpd" -RCONFLICTS_${PN}-tftpd += "netkit-tftpd" -RDEPENDS_${PN}-tftpd += "xinetd" - -FILES_${PN}-telnetd = "${sbindir}/in.telnetd ${sysconfdir}/xinetd.d/telnet" -FILES_${PN}-telnetd-dbg = "${sbindir}/.debug/in.telnetd" -RCONFLICTS_${PN}-telnetd += "netkit-telnetd" -RPROVIDES_${PN}-telnetd = "telnetd" -RDEPENDS_${PN}-telnetd += "xinetd" - -FILES_${PN}-inetd = "${bindir}/inetd.${BPN}" - -RDEPENDS_${PN} = "xinetd" diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb new file mode 100644 index 00000000000..4655bc5777d --- /dev/null +++ b/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb @@ -0,0 +1,203 @@ +DESCRIPTION = "The GNU inetutils are a collection of common \ +networking utilities and servers including ftp, ftpd, rcp, \ +rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \ +talkd, telnet, telnetd, tftp, tftpd, and uucpd." +HOMEPAGE = "http://www.gnu.org/software/inetutils" +SECTION = "net" +DEPENDS = "ncurses netbase readline" + +LICENSE = "GPLv3" + +LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7" + +SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \ + file://version.patch \ + file://inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch \ + file://inetutils-1.8-0003-wchar.patch \ + file://rexec.xinetd.inetutils \ + file://rlogin.xinetd.inetutils \ + file://rsh.xinetd.inetutils \ + file://telnet.xinetd.inetutils \ + file://tftpd.xinetd.inetutils \ + file://inetutils-1.9-PATH_PROCNET_DEV.patch \ + file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \ + file://0001-rcp-fix-to-work-with-large-files.patch \ +" + +SRC_URI[md5sum] = "04852c26c47cc8c6b825f2b74f191f52" +SRC_URI[sha256sum] = "be8f75eff936b8e41b112462db51adf689715658a1b09e0d6b05d11ec92cc616" + +inherit autotools gettext update-alternatives texinfo + +acpaths = "-I ./m4" + +SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '', 'file://fix-disable-ipv6.patch', d)}" + +PACKAGECONFIG ??= "ftp uucpd \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6 ping6', '', d)} \ + " +PACKAGECONFIG[ftp] = "--enable-ftp,--disable-ftp,readline" +PACKAGECONFIG[uucpd] = "--enable-uucpd,--disable-uucpd,readline" +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6 gl_cv_socket_ipv6=no," +PACKAGECONFIG[ping6] = "--enable-ping6,--disable-ping6," + +EXTRA_OECONF = "--with-ncurses-include-dir=${STAGING_INCDIR} \ + inetutils_cv_path_login=${base_bindir}/login \ + --with-libreadline-prefix=${STAGING_LIBDIR} \ + --enable-rpath=no \ +" + +EXTRA_OECONF_append_libc-musl = " --disable-rsh --disable-rcp --disable-rlogin " + +do_configure_prepend () { + export HELP2MAN='true' + cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}/build-aux/config.rpath + rm -f ${S}/glob/configure* +} + +do_install_append () { + install -m 0755 -d ${D}${base_sbindir} + install -m 0755 -d ${D}${sbindir} + install -m 0755 -d ${D}${sysconfdir}/xinetd.d + if [ "${base_bindir}" != "${bindir}" ] ; then + install -m 0755 -d ${D}${base_bindir} + mv ${D}${bindir}/ping* ${D}${base_bindir}/ + mv ${D}${bindir}/hostname ${D}${base_bindir}/ + fi + mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/ + mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/ + mv ${D}${libexecdir}/tftpd ${D}${sbindir}/in.tftpd + mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd + mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd + if [ -e ${D}${libexecdir}/rlogind ]; then + mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind + fi + if [ -e ${D}${libexecdir}/rshd ]; then + mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd + fi + if [ -e ${D}${libexecdir}/talkd ]; then + mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd + fi + mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd + mv ${D}${libexecdir}/* ${D}${bindir}/ + cp ${WORKDIR}/rexec.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rexec + cp ${WORKDIR}/rlogin.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rlogin + cp ${WORKDIR}/rsh.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rsh + cp ${WORKDIR}/telnet.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/telnet + cp ${WORKDIR}/tftpd.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/tftpd + + sed -e 's,@SBINDIR@,${sbindir},g' -i ${D}/${sysconfdir}/xinetd.d/* + if [ -e ${D}${libdir}/charset.alias ]; then + rm -rf ${D}${libdir}/charset.alias + fi + rm -rf ${D}${libexecdir}/ + # remove usr/lib if empty + rmdir ${D}${libdir} || true +} + +PACKAGES =+ "${PN}-ping ${PN}-ping6 ${PN}-hostname ${PN}-ifconfig \ +${PN}-tftp ${PN}-logger ${PN}-traceroute ${PN}-syslogd \ +${PN}-ftp ${PN}-ftpd ${PN}-tftpd ${PN}-telnet ${PN}-telnetd ${PN}-inetd \ +${PN}-rsh ${PN}-rshd" + +# The packages tftpd, telnetd and rshd conflict with the ones +# provided by netkit, so add the corresponding -dbg packages +# for them to avoid the confliction between the dbg package +# of inetutils and netkit. +PACKAGES =+ "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg" +NOAUTOPACKAGEDEBUG = "1" + +ALTERNATIVE_PRIORITY = "79" +ALTERNATIVE_${PN} = "talk whois" +ALTERNATIVE_LINK_NAME[talkd] = "${sbindir}/in.talkd" +ALTERNATIVE_LINK_NAME[uucpd] = "${sbindir}/in.uucpd" + +ALTERNATIVE_PRIORITY_${PN}-logger = "60" +ALTERNATIVE_${PN}-logger = "logger" +ALTERNATIVE_${PN}-syslogd = "syslogd" +ALTERNATIVE_LINK_NAME[syslogd] = "${base_sbindir}/syslogd" + +ALTERNATIVE_${PN}-ftp = "ftp" +ALTERNATIVE_${PN}-ftpd = "ftpd" +ALTERNATIVE_${PN}-tftp = "tftp" +ALTERNATIVE_${PN}-tftpd = "tftpd" +ALTERNATIVE_LINK_NAME[tftpd] = "${sbindir}/tftpd" +ALTERNATIVE_TARGET[tftpd] = "${sbindir}/in.tftpd" + +ALTERNATIVE_${PN}-telnet = "telnet" +ALTERNATIVE_${PN}-telnetd = "telnetd" +ALTERNATIVE_LINK_NAME[telnetd] = "${sbindir}/telnetd" +ALTERNATIVE_TARGET[telnetd] = "${sbindir}/in.telnetd" + +ALTERNATIVE_${PN}-rsh = "rcp rexec rlogin rsh" +ALTERNATIVE_${PN}-rshd = "rshd rexecd rlogind" +ALTERNATIVE_LINK_NAME[rshd] = "${sbindir}/rshd" +ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd" +ALTERNATIVE_LINK_NAME[rexecd] = "${sbindir}/rexecd" +ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd" +ALTERNATIVE_LINK_NAME[rlogind] = "${sbindir}/rlogind" +ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind" + +ALTERNATIVE_${PN}-inetd= "inetd" +ALTERNATIVE_${PN}-traceroute = "traceroute" + +ALTERNATIVE_${PN}-hostname = "hostname" +ALTERNATIVE_LINK_NAME[hostname] = "${base_bindir}/hostname" + +ALTERNATIVE_${PN}-doc = "hostname.1 dnsdomainname.1 logger.1 syslogd.8" +ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" +ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1" +ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1" +ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8" + +ALTERNATIVE_${PN}-ifconfig = "ifconfig" +ALTERNATIVE_LINK_NAME[ifconfig] = "${base_sbindir}/ifconfig" + +ALTERNATIVE_${PN}-ping = "ping" +ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" + +ALTERNATIVE_${PN}-ping6 = "${@bb.utils.filter('PACKAGECONFIG', 'ping6', d)}" +ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6" + + +FILES_${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" +FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" +FILES_${PN}-ping6 = "${base_bindir}/ping6.${BPN}" +FILES_${PN}-hostname = "${base_bindir}/hostname.${BPN}" +FILES_${PN}-ifconfig = "${base_sbindir}/ifconfig.${BPN}" +FILES_${PN}-traceroute = "${bindir}/traceroute.${BPN}" +FILES_${PN}-logger = "${bindir}/logger.${BPN}" +FILES_${PN}-syslogd = "${base_sbindir}/syslogd.${BPN}" +FILES_${PN}-ftp = "${bindir}/ftp.${BPN}" + +FILES_${PN}-tftp = "${bindir}/tftp.${BPN}" +FILES_${PN}-telnet = "${bindir}/telnet.${BPN}" +FILES_${PN}-rsh = "${bindir}/rsh.${BPN} ${bindir}/rlogin.${BPN} ${bindir}/rexec.${BPN} ${bindir}/rcp.${BPN}" + +FILES_${PN}-rshd = "${sbindir}/in.rshd ${sbindir}/in.rlogind ${sbindir}/in.rexecd \ + ${sysconfdir}/xinetd.d/rsh ${sysconfdir}/xinetd.d/rlogin ${sysconfdir}/xinetd.d/rexec" +FILES_${PN}-rshd-dbg = "${sbindir}/.debug/in.rshd ${sbindir}/.debug/in.rlogind ${sbindir}/.debug/in.rexecd" +RDEPENDS_${PN}-rshd += "xinetd tcp-wrappers" +RCONFLICTS_${PN}-rshd += "netkit-rshd" +RPROVIDES_${PN}-rshd = "rshd" + +FILES_${PN}-ftpd = "${bindir}/ftpd.${BPN}" +FILES_${PN}-ftpd-dbg = "${bindir}/.debug/ftpd.${BPN}" +RDEPENDS_${PN}-ftpd += "xinetd" + +FILES_${PN}-tftpd = "${sbindir}/in.tftpd ${sysconfdir}/xinetd.d/tftpd" +FILES_${PN}-tftpd-dbg = "${sbindir}/.debug/in.tftpd" +RCONFLICTS_${PN}-tftpd += "netkit-tftpd" +RDEPENDS_${PN}-tftpd += "xinetd" + +FILES_${PN}-telnetd = "${sbindir}/in.telnetd ${sysconfdir}/xinetd.d/telnet" +FILES_${PN}-telnetd-dbg = "${sbindir}/.debug/in.telnetd" +RCONFLICTS_${PN}-telnetd += "netkit-telnetd" +RPROVIDES_${PN}-telnetd = "telnetd" +RDEPENDS_${PN}-telnetd += "xinetd" + +FILES_${PN}-inetd = "${bindir}/inetd.${BPN}" + +RDEPENDS_${PN} = "xinetd" diff --git a/meta-networking/recipes-connectivity/lftp/files/fix-gcc-6-conflicts-signbit.patch b/meta-networking/recipes-connectivity/lftp/files/fix-gcc-6-conflicts-signbit.patch new file mode 100644 index 00000000000..952232b7a7d --- /dev/null +++ b/meta-networking/recipes-connectivity/lftp/files/fix-gcc-6-conflicts-signbit.patch @@ -0,0 +1,44 @@ +--- lftp-4.6.3a/src/NetAccess.cc.orig 2016-06-18 10:25:51.063358981 -0400 ++++ lftp-4.6.3a/src/NetAccess.cc 2016-06-18 10:26:04.143359209 -0400 +@@ -21,7 +21,7 @@ + + #include + #include +-#include ++#include + #include + + #include "NetAccess.h" +--- lftp-4.6.3a/src/Speedometer.cc.orig 2016-06-18 10:24:58.895358073 -0400 ++++ lftp-4.6.3a/src/Speedometer.cc 2016-06-18 10:25:10.879358281 -0400 +@@ -18,7 +18,7 @@ + */ + + #include +-#include ++#include + #include + #include "Speedometer.h" + #include "misc.h" +--- lftp-4.6.3a/src/FileCopy.cc.orig 2016-06-18 10:24:15.939357325 -0400 ++++ lftp-4.6.3a/src/FileCopy.cc 2016-06-18 10:24:24.583357475 -0400 +@@ -36,7 +36,7 @@ + #include + #include + #include +-#include ++#include + #include + #include "FileCopy.h" + #include "url.h" +--- lftp-4.6.3a/src/ResMgr.cc.orig 2016-06-18 10:23:31.387356549 -0400 ++++ lftp-4.6.3a/src/ResMgr.cc 2016-06-18 10:23:41.771356729 -0400 +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include diff --git a/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb b/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb new file mode 100644 index 00000000000..b6b65da736a --- /dev/null +++ b/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "LFTP is a sophisticated file transfer program with \ + command line interface. It supports FTP, HTTP, \ + FISH, SFTP, HTTPS and FTPS protocols" +HOMEPAGE = "http://lftp.yar.ru/" +SECTION = "console/network" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2 \ + file://fix-gcc-6-conflicts-signbit.patch \ + " +SRC_URI[md5sum] = "3701e7675baa5619c92622eb141c8301" +SRC_URI[sha256sum] = "fe441f20a9a317cfb99a8b8e628ba0457df472b6d93964d17374d5b5ebdf9280" + +inherit autotools gettext pkgconfig + +acpaths = "-I ./m4" + +EXTRA_OECONF += "--with-modules" + +PACKAGECONFIG ??= "libidn openssl zlib gnutls readline expat" +PACKAGECONFIG[libidn] = "--with-libidn, --without-libidn, libidn" +PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" +PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_INCDIR}/.., --without-zlib, zlib" +PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls" +PACKAGECONFIG[readline] = "--with-readline=${STAGING_INCDIR}/.. --with-readline-inc=${STAGING_INCDIR} --with-readline-lib=-lreadline, --with-readline=no, readline" +PACKAGECONFIG[expat] = "--with-expat=${STAGING_INCDIR}/.. --with-expat-inc=${STAGING_INCDIR} --with-expat-lib=-lexpat, , expat" + +do_install_append() { + rm -rf ${D}${libdir}/charset.alias +} + +FILES_${PN}-dbg += "${libdir}/lftp/${PV}/.debug" +RDEPENDS_${PN} = "perl bash readline" diff --git a/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb index 47525061efc..e579de50749 100644 --- a/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb +++ b/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb @@ -1,14 +1,16 @@ SUMMARY = "dumb networking library" HOMEPAGE = "http://code.google.com/p/libdnet/" +SECTION = "libs" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9" -SRC_URI = "http://libdnet.googlecode.com/files/libdnet-${PV}.tgz" +SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1" +SRCREV = "12fca29a6d4e99d1b923d6820887fe7b24226904" -SRC_URI[md5sum] = "9253ef6de1b5e28e9c9a62b882e44cc9" -SRC_URI[sha256sum] = "83b33039787cf99990e977cef7f18a5d5e7aaffc4505548a83d31bd3515eb026" +S = "${WORKDIR}/git" inherit autotools acpaths = "-I ./config/" +BBCLASSEXTEND = "native" diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls_1.3.17.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_1.3.17.bb new file mode 100644 index 00000000000..fcfec6907db --- /dev/null +++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls_1.3.17.bb @@ -0,0 +1,37 @@ +SUMMARY = "Lightweight crypto and SSL/TLS library" +DESCRIPTION = "mbedtls is a lean open source crypto library \ +for providing SSL and TLS support in your programs. It offers \ +an intuitive API and documented header files, so you can actually \ +understand what the code does. It features: \ + \ + - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \ + Camellia and XTEA \ + - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \ + - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \ + - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \ + ECDSA and ECDH \ + - SSL v3 and TLS 1.0, 1.1 and 1.2 \ + - Abstraction layers for ciphers, hashes, public key operations, \ + platform abstraction and threading \ +" + +HOMEPAGE = "https://polarssl.org" +BUGTRACKER = "https://github.com/polarssl/polarssl/issues" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" + +SECTION = "libdevel" + +SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-gpl.tgz" + +SRC_URI[md5sum] = "a6ed92fc377ef60f7c24d42b900e0dad" +SRC_URI[sha256sum] = "f5beb43e850283915e3e0f8d37495eade3bfb5beedfb61e7b8da70d4c68edb82" + +DEPENDS = "openssl" +RDEPENDS_${PN} += "libcrypto" +PROVIDES += "polarssl" +RPROVIDES_${PN} = "polarssl" +EXTRA_OECMAKE = "-DUSE_SHARED_POLARSSL_LIBRARY=on -DLIB_INSTALL_DIR=${baselib}" + +inherit cmake diff --git a/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb b/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb new file mode 100644 index 00000000000..c6f36e1375d --- /dev/null +++ b/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.bb @@ -0,0 +1,37 @@ +SUMMARY = "Lightweight UPnP IGD daemon" +DESCRIPTION = "The miniUPnP daemon is an UPnP IGD (internet gateway device) \ +which provide NAT traversal services to any UPnP enabled client on \ +the network." + +SECTION = "networking" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=aa71c78c373ccfe0ff207af0cd966d91" + +inherit autotools gettext pkgconfig + +DEPENDS += "iptables net-tools util-linux libmnl libnetfilter-conntrack" + +SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${P}.tar.gz;downloadfilename=${P}.tar.gz \ +" +SRC_URI[md5sum] = "1c07a215dd9b362e75a9efc05e2fb3b4" +SRC_URI[sha256sum] = "d96aa3a00e0f5490826bba3cb97e68cd27479e5839adac4b9bcb66eae786bfb7" + +IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}" + +do_compile() { + cd ${S} + CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux +} + +do_install() { + install -d ${D}/${sbindir} + install ${S}/miniupnpd ${D}/${sbindir} + install -d ${D}/${sysconfdir}/${BPN} + install ${S}/netfilter/iptables_init.sh ${D}/${sysconfdir}/${BPN} + install ${S}/netfilter/iptables_removeall.sh ${D}/${sysconfdir}/${BPN} + install ${S}/netfilter/ip6tables_init.sh ${D}/${sysconfdir}/${BPN} + install ${S}/netfilter/ip6tables_removeall.sh ${D}/${sysconfdir}/${BPN} + install -m 0644 -b ${S}/miniupnpd.conf ${D}/${sysconfdir}/${BPN} + install -d ${D}/${sysconfdir}/init.d + install ${S}/linux/miniupnpd.init.d.script ${D}/${sysconfdir}/init.d/miniupnpd +} diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb new file mode 100644 index 00000000000..cce3f918802 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb @@ -0,0 +1,39 @@ +SUMMARY = "NetworkManager-openvpn-plugin" +SECTION = "net/misc" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=100d5a599bead70ddcd70dcd73f2e29c" + +DEPENDS = "dbus dbus-glib networkmanager openvpn intltool-native glib-2.0-native" + +inherit gnomebase useradd gettext systemd + +SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz" +SRC_URI[md5sum] = "9f325be386aa906ff9b0b7c0bdf2a59a" +SRC_URI[sha256sum] = "3e0b4007f248d96df4b8eb5d0f937536044af7053debbbf525e67c9bc5d30654" + +S = "${WORKDIR}/NetworkManager-openvpn-${PV}" + +PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome" + +do_install_append () { + rm -rf ${D}${libdir}/NetworkManager/*.la +} + +# Create user and group nm-openvpn that are needed since version 1.0.6 +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system nm-openvpn" + +FILES_${PN} += " \ + ${libdir}/NetworkManager/*.so \ + ${libdir}/NetworkManager/VPN/nm-openvpn-service.name \ +" + +FILES_${PN}-staticdev += " \ + ${libdir}/NetworkManager/*.a \ +" + +RDEPENDS_${PN} = " \ + networkmanager \ + openvpn \ +" diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch new file mode 100644 index 00000000000..ced0c7cfffe --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-adjust-net-headers-for-musl-compatibility.patch @@ -0,0 +1,82 @@ +From 047d3bf96b510740f64687480333c378e414995f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 15:57:05 -0700 +Subject: [PATCH 1/5] adjust net/ headers for musl compatibility + +Signed-off-by: Khem Raj +--- + libnm-core/nm-utils.c | 12 +++++++----- + libnm-core/nm-utils.h | 5 ++--- + src/platform/wifi/wifi-utils.h | 2 +- + 3 files changed, 10 insertions(+), 9 deletions(-) + +diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c +index df75d56..868224e 100644 +--- a/libnm-core/nm-utils.c ++++ b/libnm-core/nm-utils.c +@@ -19,24 +19,26 @@ + * Copyright 2005 - 2014 Red Hat, Inc. + */ + +-#include "nm-default.h" +- +-#include "nm-utils.h" +- + #include + #include + #include +-#include + #include + #include + #include + #include + #include ++//#include ++//#include ++#include ++ ++#include "nm-default.h" + ++#include "nm-utils.h" + #if WITH_JANSSON + #include + #endif + ++ + #include "nm-common-macros.h" + #include "nm-utils-private.h" + #include "nm-setting-private.h" +diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h +index 407c14e..156ccae 100644 +--- a/libnm-core/nm-utils.h ++++ b/libnm-core/nm-utils.h +@@ -27,11 +27,10 @@ + + #include + +-#include +- + /* For ETH_ALEN and INFINIBAND_ALEN */ +-#include ++//#include + #include ++#include + + #include "nm-core-enum-types.h" + #include "nm-setting-wireless-security.h" +diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h +index 8e2b93f..84f5ce9 100644 +--- a/src/platform/wifi/wifi-utils.h ++++ b/src/platform/wifi/wifi-utils.h +@@ -22,7 +22,7 @@ + #ifndef __WIFI_UTILS_H__ + #define __WIFI_UTILS_H__ + +-#include ++//#include + + #include "nm-dbus-interface.h" + +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch new file mode 100644 index 00000000000..26f380bf98c --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-check-for-strndupa-before-using-it.patch @@ -0,0 +1,67 @@ +From 05e8bd664d0244cb8ab4376b962830b97860f6bf Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 18:37:19 -0700 +Subject: [PATCH] check for strndupa before using it + +musl does not have strndupa + +Signed-off-by: Khem Raj +--- + config.h.in | 4 ++++ + configure.ac | 1 + + src/systemd/src/basic/alloc-util.h | 12 ++++++++++++ + 3 files changed, 17 insertions(+) + +diff --git a/config.h.in b/config.h.in +index db8c135..c4229ed 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -41,6 +41,10 @@ + */ + #undef HAVE_DCGETTEXT + ++/* Define to 1 if you have the declaration of `strndupa', and to 0 if you ++ don't. */ ++#undef HAVE_DECL_STRNDUPA ++ + /* Define to 1 if you have the header file. */ + #undef HAVE_DLFCN_H + +diff --git a/configure.ac b/configure.ac +index 2630f8d..d0a57fd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -54,6 +54,7 @@ AC_SUBST(NM_VERSION) + + GIT_SHA_RECORD(NM_GIT_SHA) + ++AC_CHECK_DECLS([strndupa], [], [], [[#include ]]) + dnl + dnl Checks for typedefs, structures, and compiler characteristics. + dnl +diff --git a/src/systemd/src/basic/alloc-util.h b/src/systemd/src/basic/alloc-util.h +index ceeee51..924b59c 100644 +--- a/src/systemd/src/basic/alloc-util.h ++++ b/src/systemd/src/basic/alloc-util.h +@@ -25,6 +25,18 @@ + #include + + #include "macro.h" ++#include "config.h" ++ ++#if !HAVE_DECL_STRNDUPA ++#define strndupa(s, n) \ ++ ({ \ ++ const char *__old = (s); \ ++ size_t __len = strnlen(__old, (n)); \ ++ char *__new = (char *)alloca(__len + 1); \ ++ __new[__len] = '\0'; \ ++ (char *)memcpy(__new, __old, __len); \ ++ }) ++#endif + + #define new(t, n) ((t*) malloc_multiply(sizeof(t), (n))) + +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-add-systemd-resolved-backend.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-add-systemd-resolved-backend.patch new file mode 100644 index 00000000000..bd194a61d26 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-add-systemd-resolved-backend.patch @@ -0,0 +1,621 @@ +From: Sjoerd Simons +Date: Sun, 21 Aug 2016 21:46:02 +0200 +Subject: [PATCH] dns/resolved: add systemd-resolved backend + +Add initial DNS backend that pushes DNS information into +systemd-resolved. Backend is choosen by default if the systems +resolv.conv is setup to pointing to one of the standard resolved +locations. + +This doesn't handle global dns configuration. + +Signed-off-by: Sjoerd Simons + +https://bugzilla.gnome.org/show_bug.cgi?id=762540 + +Upstream-Status: Backport + +--- + man/NetworkManager.conf.xml | 10 +- + src/Makefile.am | 2 + + src/dns-manager/nm-dns-manager.c | 43 ++- + src/dns-manager/nm-dns-systemd-resolved.c | 427 ++++++++++++++++++++++++++++++ + src/dns-manager/nm-dns-systemd-resolved.h | 45 ++++ + 5 files changed, 523 insertions(+), 4 deletions(-) + create mode 100644 src/dns-manager/nm-dns-systemd-resolved.c + create mode 100644 src/dns-manager/nm-dns-systemd-resolved.h + +diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml +index 6295b82..0a67ae5 100644 +--- a/man/NetworkManager.conf.xml ++++ b/man/NetworkManager.conf.xml +@@ -275,10 +275,12 @@ no-auto-default=* + + dns + Set the DNS (resolv.conf) processing mode. +- default: The default if the key is +- not specified. NetworkManager will update ++ default: NetworkManager will update + resolv.conf to reflect the nameservers +- provided by currently active connections. ++ provided by currently active connections. This is the default ++ if the key is not specified, unless the system is configured ++ to use systemd-resolved; in this case the default is ++ systemd-resolved + dnsmasq: NetworkManager will run + dnsmasq as a local caching nameserver, using a "split DNS" + configuration if you are connected to a VPN, and then update +@@ -288,6 +290,8 @@ no-auto-default=* + to unbound and dnssec-triggerd, providing a "split DNS" + configuration with DNSSEC support. The /etc/resolv.conf + will be managed by dnssec-trigger daemon. ++ systemd-resolved: NetworkManager will ++ push the DNS configuration to systemd-resolved + none: NetworkManager will not + modify resolv.conf. This implies + rc-manager unmanaged +diff --git a/src/Makefile.am b/src/Makefile.am +index 8d29b19..10f63de 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -345,6 +345,8 @@ libNetworkManager_la_SOURCES = \ + \ + dns-manager/nm-dns-dnsmasq.c \ + dns-manager/nm-dns-dnsmasq.h \ ++ dns-manager/nm-dns-systemd-resolved.c \ ++ dns-manager/nm-dns-systemd-resolved.h \ + dns-manager/nm-dns-unbound.c \ + dns-manager/nm-dns-unbound.h \ + dns-manager/nm-dns-manager.c \ +diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c +index 5a758a9..38bc786 100644 +--- a/src/dns-manager/nm-dns-manager.c ++++ b/src/dns-manager/nm-dns-manager.c +@@ -45,6 +45,7 @@ + + #include "nm-dns-plugin.h" + #include "nm-dns-dnsmasq.h" ++#include "nm-dns-systemd-resolved.h" + #include "nm-dns-unbound.h" + + #if WITH_LIBSOUP +@@ -1588,6 +1589,37 @@ _check_resconf_immutable (NMDnsManagerResolvConfManager rc_manager) + + NM_DEFINE_SINGLETON_GETTER (NMDnsManager, nm_dns_manager_get, NM_TYPE_DNS_MANAGER); + ++static gboolean ++_resolvconf_resolved_managed (void) ++{ ++ static const char *const resolved_paths[] = { ++ "/run/systemd/resolve/resolv.conf", ++ "/lib/systemd/resolv.conf", ++ "/usr/lib/systemd/resolv.conf", ++ }; ++ GFile *f; ++ GFileInfo *info; ++ gboolean ret = FALSE; ++ ++ f = g_file_new_for_path (_PATH_RESCONF); ++ info = g_file_query_info (f, ++ G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK","\ ++ G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET, ++ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, ++ NULL, NULL); ++ ++ if (info && g_file_info_get_is_symlink (info)) { ++ ret = _nm_utils_strv_find_first ((gchar **) resolved_paths, ++ G_N_ELEMENTS (resolved_paths), ++ g_file_info_get_symlink_target (info)) >= 0; ++ } ++ ++ g_clear_object(&info); ++ g_clear_object(&f); ++ ++ return ret; ++} ++ + static void + init_resolv_conf_mode (NMDnsManager *self, gboolean force_reload_plugin) + { +@@ -1633,7 +1665,16 @@ again: + + rc_manager = _check_resconf_immutable (rc_manager); + +- if (nm_streq0 (mode, "dnsmasq")) { ++ if ( (!mode && _resolvconf_resolved_managed ()) ++ || nm_streq0 (mode, "systemd-resolved")) { ++ if ( force_reload_plugin ++ || !NM_IS_DNS_SYSTEMD_RESOLVED (priv->plugin)) { ++ _clear_plugin (self); ++ priv->plugin = nm_dns_systemd_resolved_new (); ++ plugin_changed = TRUE; ++ } ++ mode = "systemd-resolved"; ++ } else if (nm_streq0 (mode, "dnsmasq")) { + if (force_reload_plugin || !NM_IS_DNS_DNSMASQ (priv->plugin)) { + _clear_plugin (self); + priv->plugin = nm_dns_dnsmasq_new (); +diff --git a/src/dns-manager/nm-dns-systemd-resolved.c b/src/dns-manager/nm-dns-systemd-resolved.c +new file mode 100644 +index 0000000..6bdd5f6 +--- /dev/null ++++ b/src/dns-manager/nm-dns-systemd-resolved.c +@@ -0,0 +1,427 @@ ++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ ++/* ++ * Copyright (C) 2010 Dan Williams ++ * Copyright (C) 2016 Sjoerd Simons ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ */ ++ ++#include "nm-default.h" ++ ++#include "nm-dns-systemd-resolved.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "nm-core-internal.h" ++#include "nm-platform.h" ++#include "nm-utils.h" ++#include "nm-ip4-config.h" ++#include "nm-ip6-config.h" ++#include "nm-bus-manager.h" ++#include "nm-manager.h" ++#include "nm-device.h" ++#include "NetworkManagerUtils.h" ++ ++G_DEFINE_TYPE (NMDnsSystemdResolved, nm_dns_systemd_resolved, NM_TYPE_DNS_PLUGIN) ++ ++#define NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE(o) \ ++ (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_SYSTEMD_RESOLVED, \ ++ NMDnsSystemdResolvedPrivate)) ++ ++#define SYSTEMD_RESOLVED_DBUS_SERVICE "org.freedesktop.resolve1" ++#define SYSTEMD_RESOLVED_DBUS_PATH "/org/freedesktop/resolve1" ++ ++typedef struct { ++ int ifindex; ++ GList *configs; ++} InterfaceConfig; ++ ++typedef struct { ++ GDBusProxy *resolve; ++ GCancellable *init_cancellable; ++ GCancellable *update_cancellable; ++ GQueue dns_updates; ++ GQueue domain_updates; ++} NMDnsSystemdResolvedPrivate; ++ ++/*****************************************************************************/ ++ ++#define _NMLOG_DOMAIN LOGD_DNS ++#define _NMLOG_PREFIX_NAME "systemd-resolved" ++#define _NMLOG(level, ...) \ ++ G_STMT_START { \ ++ nm_log ((level), _NMLOG_DOMAIN, \ ++ "%s[%p]: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ ++ _NMLOG_PREFIX_NAME, \ ++ (self) \ ++ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ ++ } G_STMT_END ++ ++/*****************************************************************************/ ++ ++static void ++call_done (GObject *source, GAsyncResult *r, gpointer user_data) ++{ ++ GVariant *v; ++ GError *error = NULL; ++ NMDnsSystemdResolved *self = (NMDnsSystemdResolved *) user_data; ++ ++ v = g_dbus_proxy_call_finish (G_DBUS_PROXY (source), r, &error); ++ ++ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ return; ++ ++ if (error != NULL) { ++ _LOGW ("Failed: %s\n", error->message); ++ g_error_free (error); ++ } ++} ++ ++static void ++add_interface_configuration (NMDnsSystemdResolved *self, ++ GArray *interfaces, ++ const NMDnsIPConfigData *data) ++{ ++ int i; ++ InterfaceConfig *ic = NULL; ++ int ifindex; ++ NMDevice *device; ++ ++ if (NM_IS_IP4_CONFIG (data->config)) ++ ifindex = nm_ip4_config_get_ifindex (data->config); ++ else if (NM_IS_IP6_CONFIG (data->config)) ++ ifindex = nm_ip6_config_get_ifindex (data->config); ++ else ++ g_return_if_reached (); ++ ++ device = nm_manager_get_device_by_ifindex (nm_manager_get (), ifindex); ++ ++ if (!nm_device_get_managed (device, FALSE)) ++ return; ++ ++ for (i = 0; i < interfaces->len; i++) { ++ InterfaceConfig *tic = &g_array_index (interfaces, InterfaceConfig, i); ++ if (ifindex == tic->ifindex) { ++ ic = tic; ++ break; ++ } ++ } ++ ++ if (!ic) { ++ g_array_set_size (interfaces, interfaces->len + 1); ++ ic = &g_array_index (interfaces, InterfaceConfig, ++ interfaces->len - 1); ++ ic->ifindex = ifindex; ++ } ++ ++ ic->configs = g_list_append (ic->configs, data->config); ++} ++ ++static void ++add_domain (GVariantBuilder *domains, ++ const char *domain, ++ gboolean never_default) ++{ ++ /* If this link is never the default (e.g. only used for resources on this ++ * network) add a routing domain. */ ++ g_variant_builder_add (domains, "(sb)", domain, never_default); ++} ++ ++static void ++update_add_ip6_config (NMDnsSystemdResolved *self, ++ GVariantBuilder *dns, ++ GVariantBuilder *domains, ++ const NMIP6Config *config) ++{ ++ guint i, n; ++ ++ n = nm_ip6_config_get_num_nameservers (config); ++ for (i = 0 ; i < n; i++) { ++ const struct in6_addr *ip; ++ ++ g_variant_builder_open (dns, G_VARIANT_TYPE ("(iay)")); ++ g_variant_builder_add (dns, "i", AF_INET6); ++ ip = nm_ip6_config_get_nameserver (config, i), ++ ++ g_variant_builder_add_value (dns, g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE, ip, 16, 1)); ++ g_variant_builder_close (dns); ++ } ++ ++ n = nm_ip6_config_get_num_searches (config); ++ if (n > 0) { ++ for (i = 0; i < n; i++) { ++ add_domain (domains, nm_ip6_config_get_search (config, i), ++ nm_ip6_config_get_never_default (config)); ++ } ++ } else { ++ n = nm_ip6_config_get_num_domains (config); ++ for (i = 0; i < n; i++) { ++ add_domain (domains, nm_ip6_config_get_domain (config, i), ++ nm_ip6_config_get_never_default (config)); ++ } ++ } ++} ++ ++static void ++update_add_ip4_config (NMDnsSystemdResolved *self, ++ GVariantBuilder *dns, ++ GVariantBuilder *domains, ++ const NMIP4Config *config) ++{ ++ guint i, n; ++ ++ n = nm_ip4_config_get_num_nameservers (config); ++ for (i = 0 ; i < n; i++) { ++ guint32 ns; ++ ++ g_variant_builder_open (dns, G_VARIANT_TYPE ("(iay)")); ++ g_variant_builder_add (dns, "i", AF_INET); ++ ns = nm_ip4_config_get_nameserver (config, i), ++ ++ g_variant_builder_add_value (dns, g_variant_new_fixed_array (G_VARIANT_TYPE_BYTE, &ns, 4, 1)); ++ g_variant_builder_close (dns); ++ } ++ ++ n = nm_ip4_config_get_num_searches (config); ++ if (n > 0) { ++ for (i = 0; i < n; i++) { ++ add_domain (domains, nm_ip4_config_get_search (config, i), ++ nm_ip4_config_get_never_default (config)); ++ } ++ } else { ++ n = nm_ip4_config_get_num_domains (config); ++ for (i = 0; i < n; i++) { ++ add_domain (domains, nm_ip4_config_get_domain (config, i), ++ nm_ip4_config_get_never_default (config)); ++ } ++ } ++} ++ ++static void ++free_pending_updates (NMDnsSystemdResolved *self) ++{ ++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self); ++ GVariant *v; ++ ++ while ((v = g_queue_pop_head (&priv->dns_updates)) != NULL) ++ g_variant_unref (v); ++ ++ while ((v = g_queue_pop_head (&priv->domain_updates)) != NULL) ++ g_variant_unref (v); ++} ++ ++static void ++prepare_one_interface (NMDnsSystemdResolved *self, InterfaceConfig *ic) ++{ ++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self); ++ GVariantBuilder dns, domains; ++ GList *l; ++ ++ g_variant_builder_init (&dns, G_VARIANT_TYPE ("(ia(iay))")); ++ g_variant_builder_add (&dns, "i", ic->ifindex); ++ g_variant_builder_open (&dns, G_VARIANT_TYPE ("a(iay)")); ++ ++ g_variant_builder_init (&domains, G_VARIANT_TYPE ("(ia(sb))")); ++ g_variant_builder_add (&domains, "i", ic->ifindex); ++ g_variant_builder_open (&domains, G_VARIANT_TYPE ("a(sb)")); ++ ++ for (l = ic->configs ; l != NULL ; l = g_list_next (l)) { ++ if (NM_IS_IP4_CONFIG (l->data)) ++ update_add_ip4_config (self, &dns, &domains, l->data); ++ else if (NM_IS_IP6_CONFIG (l->data)) ++ update_add_ip6_config (self, &dns, &domains, l->data); ++ else ++ g_assert_not_reached (); ++ } ++ g_variant_builder_close (&dns); ++ g_variant_builder_close (&domains); ++ ++ g_queue_push_tail (&priv->dns_updates, ++ g_variant_ref_sink (g_variant_builder_end (&dns))); ++ g_queue_push_tail (&priv->domain_updates, ++ g_variant_ref_sink (g_variant_builder_end (&domains))); ++} ++ ++static void ++send_updates (NMDnsSystemdResolved *self) ++{ ++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self); ++ GVariant *v; ++ ++ nm_clear_g_cancellable (&priv->update_cancellable); ++ ++ if (!priv->resolve) ++ return; ++ ++ priv->update_cancellable = g_cancellable_new (); ++ ++ while ((v = g_queue_pop_head (&priv->dns_updates)) != NULL) { ++ g_dbus_proxy_call (priv->resolve, "SetLinkDNS", v, ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, priv->update_cancellable, call_done, self); ++ g_variant_unref (v); ++ } ++ ++ while ((v = g_queue_pop_head (&priv->domain_updates)) != NULL) { ++ g_dbus_proxy_call (priv->resolve, "SetLinkDomains", v, ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, priv->update_cancellable, call_done, self); ++ g_variant_unref (v); ++ } ++} ++ ++static gboolean ++update (NMDnsPlugin *plugin, ++ const NMDnsIPConfigData **configs, ++ const NMGlobalDnsConfig *global_config, ++ const char *hostname) ++{ ++ NMDnsSystemdResolved *self = NM_DNS_SYSTEMD_RESOLVED (plugin); ++ GArray *interfaces = g_array_new (TRUE, TRUE, sizeof (InterfaceConfig)); ++ const NMDnsIPConfigData **c; ++ int i; ++ ++ for (c = configs; *c != NULL; c++) ++ add_interface_configuration (self, interfaces, *c); ++ ++ free_pending_updates (self); ++ ++ for (i = 0; i < interfaces->len; i++) { ++ InterfaceConfig *ic = &g_array_index (interfaces, InterfaceConfig, i); ++ ++ prepare_one_interface (self, ic); ++ g_list_free (ic->configs); ++ } ++ ++ g_array_free (interfaces, TRUE); ++ ++ send_updates (self); ++ ++ return TRUE; ++} ++ ++/****************************************************************/ ++ ++static gboolean ++is_caching (NMDnsPlugin *plugin) ++{ ++ return TRUE; ++} ++ ++static const char * ++get_name (NMDnsPlugin *plugin) ++{ ++ return "systemd-resolved"; ++} ++ ++/****************************************************************/ ++ ++NMDnsPlugin * ++nm_dns_systemd_resolved_new (void) ++{ ++ return g_object_new (NM_TYPE_DNS_SYSTEMD_RESOLVED, NULL); ++} ++ ++static void ++resolved_proxy_created (GObject *source, GAsyncResult *r, gpointer user_data) ++{ ++ NMDnsSystemdResolved *self = (NMDnsSystemdResolved *) user_data; ++ NMDnsSystemdResolvedPrivate *priv; ++ gs_free_error GError *error = NULL; ++ GDBusProxy *resolve; ++ ++ resolve = g_dbus_proxy_new_finish (r, &error); ++ if ( !resolve ++ && g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) ++ return; ++ ++ priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self); ++ g_clear_object (&priv->init_cancellable); ++ if (!resolve) { ++ _LOGW ("failed to connect to resolved via DBus: %s", error->message); ++ g_signal_emit_by_name (self, NM_DNS_PLUGIN_FAILED); ++ return; ++ } ++ ++ priv->resolve = resolve; ++ send_updates (self); ++} ++ ++ ++static void ++nm_dns_systemd_resolved_init (NMDnsSystemdResolved *self) ++{ ++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self); ++ NMBusManager *dbus_mgr; ++ GDBusConnection *connection; ++ ++ g_queue_init (&priv->dns_updates); ++ g_queue_init (&priv->domain_updates); ++ ++ dbus_mgr = nm_bus_manager_get (); ++ g_return_if_fail (dbus_mgr); ++ ++ connection = nm_bus_manager_get_connection (dbus_mgr); ++ g_return_if_fail (connection); ++ ++ priv->init_cancellable = g_cancellable_new (); ++ g_dbus_proxy_new (connection, ++ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | ++ G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, ++ NULL, ++ SYSTEMD_RESOLVED_DBUS_SERVICE, ++ SYSTEMD_RESOLVED_DBUS_PATH, ++ SYSTEMD_RESOLVED_DBUS_SERVICE ".Manager", ++ priv->init_cancellable, ++ resolved_proxy_created, ++ self); ++} ++ ++static void ++dispose (GObject *object) ++{ ++ NMDnsSystemdResolved *self = NM_DNS_SYSTEMD_RESOLVED (object); ++ NMDnsSystemdResolvedPrivate *priv = NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE (self); ++ ++ free_pending_updates (self); ++ g_clear_object (&priv->resolve); ++ nm_clear_g_cancellable (&priv->init_cancellable); ++ nm_clear_g_cancellable (&priv->update_cancellable); ++ ++ G_OBJECT_CLASS (nm_dns_systemd_resolved_parent_class)->dispose (object); ++} ++ ++static void ++nm_dns_systemd_resolved_class_init (NMDnsSystemdResolvedClass *dns_class) ++{ ++ NMDnsPluginClass *plugin_class = NM_DNS_PLUGIN_CLASS (dns_class); ++ GObjectClass *object_class = G_OBJECT_CLASS (dns_class); ++ ++ g_type_class_add_private (dns_class, sizeof (NMDnsSystemdResolvedPrivate)); ++ ++ object_class->dispose = dispose; ++ ++ plugin_class->is_caching = is_caching; ++ plugin_class->update = update; ++ plugin_class->get_name = get_name; ++} ++ +diff --git a/src/dns-manager/nm-dns-systemd-resolved.h b/src/dns-manager/nm-dns-systemd-resolved.h +new file mode 100644 +index 0000000..45c64b3 +--- /dev/null ++++ b/src/dns-manager/nm-dns-systemd-resolved.h +@@ -0,0 +1,45 @@ ++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ ++/* This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Copyright (C) 2010 Red Hat, Inc. ++ * Copyright (C) 2016 Sjoerd Simons ++ */ ++ ++#ifndef __NETWORKMANAGER_DNS_SYSTEMD_RESOLVED_H__ ++#define __NETWORKMANAGER_DNS_SYSTEMD_RESOLVED_H__ ++ ++#include "nm-dns-plugin.h" ++ ++#define NM_TYPE_DNS_SYSTEMD_RESOLVED (nm_dns_systemd_resolved_get_type ()) ++#define NM_DNS_SYSTEMD_RESOLVED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DNS_SYSTEMD_RESOLVED, NMDnsSystemdResolved)) ++#define NM_DNS_SYSTEMD_RESOLVED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DNS_SYSTEMD_RESOLVED, NMDnsSystemdResolvedClass)) ++#define NM_IS_DNS_SYSTEMD_RESOLVED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DNS_SYSTEMD_RESOLVED)) ++#define NM_IS_DNS_SYSTEMD_RESOLVED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_SYSTEMD_RESOLVED)) ++#define NM_DNS_SYSTEMD_RESOLVED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_SYSTEMD_RESOLVED, NMDnsSystemdResolvedClass)) ++ ++typedef struct { ++ NMDnsPlugin parent; ++} NMDnsSystemdResolved; ++ ++typedef struct { ++ NMDnsPluginClass parent; ++} NMDnsSystemdResolvedClass; ++ ++GType nm_dns_systemd_resolved_get_type (void); ++ ++NMDnsPlugin *nm_dns_systemd_resolved_new (void); ++ ++#endif /* __NETWORKMANAGER_DNS_SYSTEMD_RESOLVED_H__ */ ++ diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch new file mode 100644 index 00000000000..ca7e4a496fc --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch @@ -0,0 +1,29 @@ +From 6f799f1f0e68cc7bf89c0a56aec5ecf46937619d Mon Sep 17 00:00:00 2001 +From: Ricardo Salveti +Date: Thu, 15 Jun 2017 10:02:38 -0300 +Subject: [PATCH] dns/resolved: also check for /etc/resolv-conf.systemd + +OE specific resolv.conf path, so it can be enabled by default if available. + +Upstream-Status: Inappropriate [OE config specific] + +Signed-off-by: Ricardo Salveti +--- + src/dns-manager/nm-dns-manager.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c +index c1d2bf7..d70d4b4 100644 +--- a/src/dns-manager/nm-dns-manager.c ++++ b/src/dns-manager/nm-dns-manager.c +@@ -1596,6 +1596,7 @@ _resolvconf_resolved_managed (void) + "/run/systemd/resolve/resolv.conf", + "/lib/systemd/resolv.conf", + "/usr/lib/systemd/resolv.conf", ++ "/etc/resolv-conf.systemd", + }; + GFile *f; + GFileInfo *info; +-- +2.7.4 + diff --git a/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch similarity index 100% rename from meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch rename to meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch new file mode 100644 index 00000000000..4234e2be2d4 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch @@ -0,0 +1,29 @@ +From a9bfe6f2029d75caf28fcdf3e740843cf6359615 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 07:31:25 -0700 +Subject: [PATCH 1/2] systemd: xlocale.h is dropped by newer glibc + +Signed-off-by: Khem Raj +--- + src/systemd/src/basic/parse-util.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/systemd/src/basic/parse-util.c b/src/systemd/src/basic/parse-util.c +index 9c21e5a..dd95d1f 100644 +--- a/src/systemd/src/basic/parse-util.c ++++ b/src/systemd/src/basic/parse-util.c +@@ -25,11 +25,7 @@ + #include + #include + #include +-#ifdef __GLIBC__ +-#include +-#else + #include +-#endif + #include "alloc-util.h" + #include "extract-word.h" + #include "macro.h" +-- +2.13.2 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch new file mode 100644 index 00000000000..aa57c832cb3 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fix-nm-version-macro-includes.patch @@ -0,0 +1,58 @@ +From 7274bbadd398a69b8babf47431f80d35e0228c42 Mon Sep 17 00:00:00 2001 +From: Adrian Freihofer +Date: Mon, 18 Jan 2016 08:53:26 +0100 +Subject: [PATCH] Fix nm-version-macro includes + +nm-version-macros.h cannot be found since include directive has +been changed from " to <. This breaks for example gnome-panel +build: +/usr/include/NetworkManager/NetworkManager.h:31:31: +fatal error: nm-version-macros.h: No such file or directory. +--- + libnm-core/nm-version.h | 2 +- + libnm-util/NetworkManager.h | 2 +- + libnm-util/nm-version.h | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h +index 730330a..d751bc1 100644 +--- a/libnm-core/nm-version.h ++++ b/libnm-core/nm-version.h +@@ -23,7 +23,7 @@ + + #include + +-#include ++#include "nm-version-macros.h" + + /* Deprecation / Availability macros */ + +diff --git a/libnm-util/NetworkManager.h b/libnm-util/NetworkManager.h +index d83e4ab..3a964fc 100644 +--- a/libnm-util/NetworkManager.h ++++ b/libnm-util/NetworkManager.h +@@ -28,7 +28,7 @@ + + /* This header must not include glib or libnm. */ + +-#include ++#include "nm-version-macros.h" + + /* + * dbus services details +diff --git a/libnm-util/nm-version.h b/libnm-util/nm-version.h +index 63895dd..41101a4 100644 +--- a/libnm-util/nm-version.h ++++ b/libnm-util/nm-version.h +@@ -23,7 +23,7 @@ + + #include + +-#include ++#include "nm-version-macros.h" + + /* Deprecation / Availability macros */ + +-- +2.5.0 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch new file mode 100644 index 00000000000..22bc6e8bda9 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-socket-util.h-Include-linux-sockios.h-on-musl.patch @@ -0,0 +1,30 @@ +From 98d7e3ae5b15e30af1bf5dd1d279e1a774bf2b86 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 16:05:05 -0700 +Subject: [PATCH 2/5] socket-util.h: Include linux/sockios.h on musl + +Signed-off-by: Khem Raj +--- + src/systemd/src/basic/socket-util.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/systemd/src/basic/socket-util.h b/src/systemd/src/basic/socket-util.h +index 2536b08..76d6107 100644 +--- a/src/systemd/src/basic/socket-util.h ++++ b/src/systemd/src/basic/socket-util.h +@@ -29,6 +29,12 @@ + #include + #include + ++#if !defined(__GLIBC__) ++/* SIOCGSTAMPNS from linux/asm-generic.h ++ * for src/systemd/src/libsystemd-network/sd-lldp.c */ ++#include ++#endif ++ + #include "macro.h" + #include "util.h" + +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-user-format-string-in-g_dbus_message_new_method_erro.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-user-format-string-in-g_dbus_message_new_method_erro.patch new file mode 100644 index 00000000000..e32b5c00ddf --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-user-format-string-in-g_dbus_message_new_method_erro.patch @@ -0,0 +1,67 @@ +From adc0668b854289a11cfc29597b5566ba1869d17e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 07:32:09 -0700 +Subject: [PATCH 2/2] user format string in g_dbus_message_new_method_error () + +This fixes format errors with -Werror=format-security + +Signed-off-by: Khem Raj +--- + src/nm-manager.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/nm-manager.c b/src/nm-manager.c +index c3d65cd..e814912 100644 +--- a/src/nm-manager.c ++++ b/src/nm-manager.c +@@ -4871,6 +4871,7 @@ prop_set_auth_done_cb (NMAuthChain *chain, + if (error || (result != NM_AUTH_CALL_RESULT_YES)) { + reply = g_dbus_message_new_method_error (pfd->message, + NM_PERM_DENIED_ERROR, ++ "%s", + (error_message = "Not authorized to perform this operation")); + if (error) + error_message = error->message; +@@ -4882,6 +4883,7 @@ prop_set_auth_done_cb (NMAuthChain *chain, + if (!object) { + reply = g_dbus_message_new_method_error (pfd->message, + "org.freedesktop.DBus.Error.UnknownObject", ++ "%s", + (error_message = "Object doesn't exist.")); + goto done; + } +@@ -4890,6 +4892,7 @@ prop_set_auth_done_cb (NMAuthChain *chain, + if (!nm_exported_object_get_interface_by_type (object, pfd->interface_type)) { + reply = g_dbus_message_new_method_error (pfd->message, + "org.freedesktop.DBus.Error.InvalidArgs", ++ "%s", + (error_message = "Object is of unexpected type.")); + goto done; + } +@@ -4905,6 +4908,7 @@ prop_set_auth_done_cb (NMAuthChain *chain, + if (global_dns && !nm_global_dns_config_is_internal (global_dns)) { + reply = g_dbus_message_new_method_error (pfd->message, + NM_PERM_DENIED_ERROR, ++ "%s", + (error_message = "Global DNS configuration already set via configuration file")); + goto done; + } +@@ -4949,6 +4953,7 @@ do_set_property_check (gpointer user_data) + if (!pfd->subject) { + reply = g_dbus_message_new_method_error (pfd->message, + NM_PERM_DENIED_ERROR, ++ "%s", + (error_message = "Could not determine request UID.")); + goto out; + } +@@ -4958,6 +4963,7 @@ do_set_property_check (gpointer user_data) + if (!chain) { + reply = g_dbus_message_new_method_error (pfd->message, + NM_PERM_DENIED_ERROR, ++ "%s", + (error_message = "Could not authenticate request.")); + goto out; + } +-- +2.13.2 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch new file mode 100644 index 00000000000..236914f756e --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Define-ETH_ALEN.patch @@ -0,0 +1,39 @@ +From 16c3dc7a407101243d2056d2c93e61dce1a05350 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 16:08:45 -0700 +Subject: [PATCH 3/5] Define ETH_ALEN + +Signed-off-by: Khem Raj +--- + libnm-core/nm-utils.h | 1 + + src/platform/wifi/wifi-utils.h | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h +index 156ccae..68e222b 100644 +--- a/libnm-core/nm-utils.h ++++ b/libnm-core/nm-utils.h +@@ -29,6 +29,7 @@ + + /* For ETH_ALEN and INFINIBAND_ALEN */ + //#include ++#define ETH_ALEN 6 /* Octets in one ethernet addr */ + #include + #include + +diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h +index 84f5ce9..33a838d 100644 +--- a/src/platform/wifi/wifi-utils.h ++++ b/src/platform/wifi/wifi-utils.h +@@ -24,6 +24,8 @@ + + //#include + ++#define ETH_ALEN 6 /* Octets in one ethernet addr */ ++ + #include "nm-dbus-interface.h" + + typedef struct WifiData WifiData; +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch new file mode 100644 index 00000000000..27c9ae96242 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0004-Define-missing-features-to-cater-for-musl.patch @@ -0,0 +1,93 @@ +From 2153109e60e362e0d09215d529bf00176f31a3e7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 16:09:41 -0700 +Subject: [PATCH 4/5] Define missing features to cater for musl + +Signed-off-by: Khem Raj +--- + src/systemd/sd-adapt/nm-sd-adapt.h | 2 +- + src/systemd/src/basic/parse-util.c | 5 ++++- + src/systemd/src/basic/stdio-util.h | 2 ++ + src/systemd/src/basic/util.h | 5 +++++ + src/systemd/src/systemd/sd-event.h | 4 ---- + 5 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/src/systemd/sd-adapt/nm-sd-adapt.h b/src/systemd/sd-adapt/nm-sd-adapt.h +index cf27c1a..72c1b89 100644 +--- a/src/systemd/sd-adapt/nm-sd-adapt.h ++++ b/src/systemd/sd-adapt/nm-sd-adapt.h +@@ -119,7 +119,7 @@ G_STMT_START { \ + # ifdef HAVE___SECURE_GETENV + # define secure_getenv __secure_getenv + # else +-# error neither secure_getenv nor __secure_getenv is available ++# define secure_getenv getenv + # endif + #endif + +diff --git a/src/systemd/src/basic/parse-util.c b/src/systemd/src/basic/parse-util.c +index 2738663..9c21e5a 100644 +--- a/src/systemd/src/basic/parse-util.c ++++ b/src/systemd/src/basic/parse-util.c +@@ -25,8 +25,11 @@ + #include + #include + #include ++#ifdef __GLIBC__ + #include +- ++#else ++#include ++#endif + #include "alloc-util.h" + #include "extract-word.h" + #include "macro.h" +diff --git a/src/systemd/src/basic/stdio-util.h b/src/systemd/src/basic/stdio-util.h +index bd1144b..c92e935 100644 +--- a/src/systemd/src/basic/stdio-util.h ++++ b/src/systemd/src/basic/stdio-util.h +@@ -19,7 +19,9 @@ + along with systemd; If not, see . + ***/ + ++#ifdef __GLIBC__ + #include ++#endif + #include + #include + #include +diff --git a/src/systemd/src/basic/util.h b/src/systemd/src/basic/util.h +index bb2fc31..fe074a5 100644 +--- a/src/systemd/src/basic/util.h ++++ b/src/systemd/src/basic/util.h +@@ -46,6 +46,11 @@ + #include "missing.h" + #include "time-util.h" + ++#if !defined(__GLIBC__) ++typedef int (*__compar_fn_t) (const void*, const void*); ++typedef __compar_fn_t comparison_fn_t; ++#endif ++ + size_t page_size(void) _pure_; + #define PAGE_ALIGN(l) ALIGN_TO((l), page_size()) + +diff --git a/src/systemd/src/systemd/sd-event.h b/src/systemd/src/systemd/sd-event.h +index cc26b7d..c7e0004 100644 +--- a/src/systemd/src/systemd/sd-event.h ++++ b/src/systemd/src/systemd/sd-event.h +@@ -69,11 +69,7 @@ typedef int (*sd_event_handler_t)(sd_event_source *s, void *userdata); + typedef int (*sd_event_io_handler_t)(sd_event_source *s, int fd, uint32_t revents, void *userdata); + typedef int (*sd_event_time_handler_t)(sd_event_source *s, uint64_t usec, void *userdata); + typedef int (*sd_event_signal_handler_t)(sd_event_source *s, const struct signalfd_siginfo *si, void *userdata); +-#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED + typedef int (*sd_event_child_handler_t)(sd_event_source *s, const siginfo_t *si, void *userdata); +-#else +-typedef void* sd_event_child_handler_t; +-#endif + + int sd_event_default(sd_event **e); + +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch new file mode 100644 index 00000000000..f4a04c782cb --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch @@ -0,0 +1,36 @@ +From 9e9e5814456ec23b9fc669d342bf9d8f7ee49fc2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 16:48:00 -0700 +Subject: [PATCH 5/5] sd-lldp.h: Remove net/ethernet.h seems to be over + specified + +Signed-off-by: Khem Raj +--- + src/systemd/src/systemd/sd-lldp.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: NetworkManager-1.4.2/src/systemd/src/systemd/sd-lldp.h +=================================================================== +--- NetworkManager-1.4.2.orig/src/systemd/src/systemd/sd-lldp.h ++++ NetworkManager-1.4.2/src/systemd/src/systemd/sd-lldp.h +@@ -22,7 +22,7 @@ + ***/ + + #include +-#include ++//#include + #include + + #include "sd-event.h" +Index: NetworkManager-1.4.2/src/systemd/src/libsystemd-network/sd-lldp.c +=================================================================== +--- NetworkManager-1.4.2.orig/src/systemd/src/libsystemd-network/sd-lldp.c ++++ NetworkManager-1.4.2/src/systemd/src/libsystemd-network/sd-lldp.c +@@ -21,6 +21,7 @@ + #include "nm-sd-adapt.h" + + #include ++#include + + #include "sd-lldp.h" + diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb new file mode 100644 index 00000000000..bfd2aada749 --- /dev/null +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.4.4.bb @@ -0,0 +1,135 @@ +SUMMARY = "NetworkManager" +HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager" +SECTION = "net/misc" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \ + file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \ + file://docs/api/html/license.html;md5=8eb8e72bab097b9d11763002cb003697 \ +" + +DEPENDS = " \ + intltool-native \ + libnl \ + dbus \ + dbus-glib \ + dbus-glib-native \ + libgudev \ + util-linux \ + libndp \ + libnewt \ + polkit \ + jansson \ +" + +inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection + +GI_DATA_ENABLED_libc-musl = "False" + +SRC_URI = "${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \ + file://0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch \ + file://0002-Fix-nm-version-macro-includes.patch \ + file://0001-adjust-net-headers-for-musl-compatibility.patch \ + file://0002-socket-util.h-Include-linux-sockios.h-on-musl.patch \ + file://0003-Define-ETH_ALEN.patch \ + file://0004-Define-missing-features-to-cater-for-musl.patch \ + file://0005-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \ + file://0001-check-for-strndupa-before-using-it.patch \ + file://0001-dns-resolved-add-systemd-resolved-backend.patch \ + file://0001-dns-resolved-also-check-for-etc-resolv-conf.systemd.patch \ + file://0001-systemd-xlocale.h-is-dropped-by-newer-glibc.patch \ + file://0002-user-format-string-in-g_dbus_message_new_method_erro.patch \ + " +SRC_URI[md5sum] = "63f1e0d6d7e9099499d062c84c927a75" +SRC_URI[sha256sum] = "829378f318cc008d138a23ca6a9191928ce75344e7e47a2f2c35f4ac82133309" + +S = "${WORKDIR}/NetworkManager-${PV}" + +EXTRA_OECONF = " \ + --disable-ifcfg-rh \ + --disable-ifnet \ + --disable-ifcfg-suse \ + --disable-more-warnings \ + --with-iptables=${sbindir}/iptables \ + --with-tests \ + --with-nmtui=yes \ +" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/libnm-util/.libs" +} + +PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \ +" +PACKAGECONFIG[systemd] = " \ + --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \ + --without-systemdsystemunitdir, \ + polkit \ +" +PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5" +# consolekit is not picked by shlibs, so add it to RDEPENDS too +PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit" +PACKAGECONFIG[concheck] = "--with-libsoup=yes,--with-libsoup=no,libsoup-2.4" +PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager" +PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp" +# Use full featured dhcp client instead of internal one +PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client" +PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq" +PACKAGECONFIG[nss] = "--with-crypto=nss,,nss" +PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls" +PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,wireless-tools,wpa-supplicant wireless-tools" +PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown" +PACKAGECONFIG[netconfig] = "--with-netconfig=yes,--with-netconfig=no" +PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free" + +PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \ + ${PN}-nmtui ${PN}-nmtui-doc \ + ${PN}-adsl \ +" + +FILES_libnmutil += "${libdir}/libnm-util.so.*" +FILES_libnmglib += "${libdir}/libnm-glib.so.*" +FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*" + +FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so" + +FILES_${PN} += " \ + ${libexecdir} \ + ${libdir}/pppd/*/nm-pppd-plugin.so \ + ${libdir}/NetworkManager/*.so \ + ${datadir}/polkit-1 \ + ${datadir}/dbus-1 \ + ${base_libdir}/udev/* \ + ${systemd_unitdir}/system \ +" + +RRECOMMENDS_${PN} += "iptables \ + ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \ +" +RCONFLICTS_${PN} = "connman" + +FILES_${PN}-dev += " \ + ${datadir}/NetworkManager/gdb-cmd \ + ${libdir}/pppd/*/*.la \ + ${libdir}/NetworkManager/*.la \ +" + +FILES_${PN}-nmtui = " \ + ${bindir}/nmtui \ + ${bindir}/nmtui-edit \ + ${bindir}/nmtui-connect \ + ${bindir}/nmtui-hostname \ +" + +FILES_${PN}-nmtui-doc = " \ + ${mandir}/man1/nmtui* \ +" + +SYSTEMD_SERVICE_${PN} = "NetworkManager.service NetworkManager-dispatcher.service" + +do_install_append() { + rm -rf ${D}/run ${D}${localstatedir}/run +} diff --git a/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb b/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb new file mode 100644 index 00000000000..c944144e22a --- /dev/null +++ b/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb @@ -0,0 +1,27 @@ +SUMMARY = "Open client for Cisco AnyConnect VPN" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad" + +DEPENDS = "vpnc libxml2 krb5 gettext-native" + +PACKAGECONFIG ??= "gnutls lz4 libproxy" + +# config defaults +PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls," +PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4," +PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy," + +# not config defaults +PACKAGECONFIG[pcsc-lite] = "--with-libpcsclite,--without-libpcsclite,pcsc-lite," + +PV = "7.08" + +SRCREV = "9697bea0e50952cab57063238b43a7099e498cbb" +SRC_URI = "git://git.infradead.org/users/dwmw2/openconnect.git" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF += "--with-vpnc-script=${SYSROOT_DESTDIR}${sysconfdir}/vpnc/vpnc-script \ + --disable-static" diff --git a/meta-networking/recipes-connectivity/polarssl/polarssl_1.3.8.bb b/meta-networking/recipes-connectivity/polarssl/polarssl_1.3.8.bb deleted file mode 100644 index 8adc0b1b303..00000000000 --- a/meta-networking/recipes-connectivity/polarssl/polarssl_1.3.8.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Lightweight crypto and SSL/TLS library" -DESCRIPTION = "PolarSSL is a lean open source crypto library \ -for providing SSL and TLS support in your programs. It offers \ -an intuitive API and documented header files, so you can actually \ -understand what the code does. It features: \ - \ - - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \ - Camellia and XTEA \ - - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \ - - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \ - - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \ - ECDSA and ECDH \ - - SSL v3 and TLS 1.0, 1.1 and 1.2 \ - - Abstraction layers for ciphers, hashes, public key operations, \ - platform abstraction and threading \ -" - -HOMEPAGE = "https://polarssl.org" -BUGTRACKER = "https://github.com/polarssl/polarssl/issues" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" - -SECTION = "net" - -SRC_URI = "https://polarssl.org/download/polarssl-${PV}-gpl.tgz" - -SRC_URI[md5sum] = "d1a2b4f21727e888f143414d2e3144e6" -SRC_URI[sha256sum] = "318171db41335cacbb5b0047c94f1faf91442ab70a223b5223436703c9406ff1" - -DEPENDS = "openssl" -RDEPENDS_${PN} += "libcrypto" -EXTRA_OECMAKE = "-DUSE_SHARED_POLARSSL_LIBRARY=on -DLIB_INSTALL_DIR=${baselib}" - -inherit cmake diff --git a/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb b/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb new file mode 100644 index 00000000000..4e41aa57653 --- /dev/null +++ b/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb @@ -0,0 +1,13 @@ +SUMMARY = "Easy communication with NetworkManager from Python" +HOMEPAGE = "https://github.com/seveas/python-networkmanager" +LICENSE = "Zlib" + +LIC_FILES_CHKSUM = "file://COPYING;md5=8d8bac174bf8422b151200e6cc78ebe4" + +SRC_URI[md5sum] = "5fc644a65463031295c6b7dd51a0f1bd" +SRC_URI[sha256sum] = "bc36507506ad29bfdac941b0987ebd1cc9633c9a9291d7378e229e4515a0a517" + +PYPI_PACKAGE = "python-networkmanager" +inherit pypi setuptools + +RDEPENDS_${PN} = "networkmanager python-dbus python-six" diff --git a/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch b/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch new file mode 100644 index 00000000000..08ba2c31e95 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch @@ -0,0 +1,40 @@ +From e0c690acfcddd3c3421f6eb0182c54815fd70f8f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 23:21:08 -0700 +Subject: [PATCH] rdate: define logwtmp on libc != glibc + +Signed-off-by: Khem Raj +--- + src/rdate.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/src/rdate.c b/src/rdate.c +index 943d481..685b1b8 100644 +--- a/src/rdate.c ++++ b/src/rdate.c +@@ -41,7 +41,22 @@ static int print_mode = 0; // display the time + static int timeout = 10; // timeout for each connection attempt + static char *service = DEFAULT_SERVICE; + ++#ifndef __GLIBC__ ++static void logwtmp(const char * line, const char * name, const char * host) ++{ ++ struct utmp u; ++ memset(&u, 0, sizeof(u)); ++ ++ u.ut_pid = getpid(); ++ u.ut_type = name[0] ? USER_PROCESS : DEAD_PROCESS; ++ strncpy(u.ut_line, line, sizeof(u.ut_line)); ++ strncpy(u.ut_name, name, sizeof(u.ut_name)); ++ strncpy(u.ut_host, host, sizeof(u.ut_host)); ++ gettimeofday(&(u.ut_tv), NULL); + ++ updwtmp(_PATH_WTMP, &u); ++} ++#endif /* __GLIBC__ */ + + // Returns string from address info pointer + static char* +-- +2.13.3 + diff --git a/meta-networking/recipes-connectivity/rdate/rdate/0001-src-rdate-Fix-printf-format-errors.patch b/meta-networking/recipes-connectivity/rdate/rdate/0001-src-rdate-Fix-printf-format-errors.patch new file mode 100644 index 00000000000..2f6518984d5 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdate/rdate/0001-src-rdate-Fix-printf-format-errors.patch @@ -0,0 +1,33 @@ +From f58bcb43c31d08de58853b088681cbe4df36cbf9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 26 Jun 2017 22:50:56 -0700 +Subject: [PATCH] src/rdate: Fix printf format errors + +Fixes + +rdate.c:85:41: error: format not a string literal and no format arguments [-Werror=format-security] +| syslog(is_error?LOG_WARNING:LOG_INFO, buf); + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + src/rdate.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/rdate.c b/src/rdate.c +index 5c3e829..943d481 100644 +--- a/src/rdate.c ++++ b/src/rdate.c +@@ -82,7 +82,7 @@ write_log(int is_error, char *format, ...) + return; /* Error, which we can't report because this _is_ the error + reporting mechanism */ + if(log_mode) +- syslog(is_error?LOG_WARNING:LOG_INFO, buf); ++ syslog(is_error?LOG_WARNING:LOG_INFO, "%s", buf); + if(is_error || print_mode) + fprintf(is_error?stderr:stdout, "%s: %s\n", argv0, buf); + } +-- +2.13.2 + diff --git a/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb b/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb new file mode 100644 index 00000000000..cd4db12c085 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb @@ -0,0 +1,21 @@ +SUMMARY = "Tool for getting the date/time from a remote machine." +DESCRIPTION = "The rdate utility retrieves the date and time from \ + another machine on your network, using the protocol described in RFC 868. \ + If you run rdate as root, it will set your machine local time to the \ + time of the machine that you queried. \ +" + +HOMEPAGE= "https://www.aelius.com/njh/rdate/" +SECTION = "Applications/System" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +SRC_URI = "https://www.aelius.com/njh/${BPN}/${BP}.tar.gz \ + file://0001-src-rdate-Fix-printf-format-errors.patch \ + file://0001-rdate-define-logwtmp-on-libc-glibc.patch \ + " +SRC_URI[md5sum] = "0a4f612480777fdf25264ac03c57eae6" +SRC_URI[sha256sum] = "6e800053eaac2b21ff4486ec42f0aca7214941c7e5fceedd593fa0be99b9227d" + +inherit autotools diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bb-build.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bb-build.patch new file mode 100644 index 00000000000..c95eaf8f58f --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bb-build.patch @@ -0,0 +1,75 @@ +From 244861e2c9bb9cc44f4bd246964ba850a7cf1216 Mon Sep 17 00:00:00 2001 +From: Xin Ouyang +Date: Tue, 15 May 2012 15:06:43 +0800 +Subject: [PATCH] rdist: bitbake build + +Upstream-Status: Inappropriate [OE specific] + +--- + Makefile.local | 8 ++++---- + doc/Makefile.real | 4 +++- + src/Makefile.real | 1 + + 3 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/Makefile.local b/Makefile.local +index 26092b2..389cb84 100644 +--- a/Makefile.local ++++ b/Makefile.local +@@ -14,7 +14,7 @@ + # BIN_DIR variable, you would uncomment the following line + # or add your own line. + # +-#BIN_DIR = /usr/bin ++BIN_DIR = ${DESTDIR}/${bindir} + + # + # Add any local definitions you want pass to the compiler to DEFS_LOCAL +@@ -46,13 +46,13 @@ LIBS_LOCAL = + # Set a site specific install program to use. Must support BSD style + # install(1) arguments. + # +-#INSTALL = install ++INSTALL = install + + # + # Site specific Man Page configuration. + # +-#MAN_1_DIR = /usr/local/man/man1 +-#MAN_8_DIR = /usr/local/man/man8 ++MAN_1_DIR = ${DESTDIR}/${mandir}/man1 ++MAN_8_DIR = ${DESTDIR}/${mandir}/man8 + #MAN_OWNER = bin + #MAN_GROUP = bin + #MAN_MODE = 644 +diff --git a/doc/Makefile.real b/doc/Makefile.real +index 42cabec..e32c30b 100644 +--- a/doc/Makefile.real ++++ b/doc/Makefile.real +@@ -16,9 +16,11 @@ all: + + doc: + +-install: ++install: install.man + + install.man: rdist.man rdistd.man ++ test -d ${MAN_1_DIR} || ${INSTALL} -d ${MAN_1_DIR} ++ test -d ${MAN_8_DIR} || ${INSTALL} -d ${MAN_8_DIR} + ${INSTALL} ${INSTALL_ARGS} rdist.man ${CLIENT_DEST} + ${INSTALL} ${INSTALL_ARGS} rdistd.man ${SERVER_DEST} + +diff --git a/src/Makefile.real b/src/Makefile.real +index 02179e4..9ec551d 100644 +--- a/src/Makefile.real ++++ b/src/Makefile.real +@@ -52,6 +52,7 @@ clean: + $(COMMONOBJS) $(MISSINGOBJS) + + install: ++ test -d $(BIN_DIR) || $(INSTALL) -d $(BIN_DIR) + $(INSTALL) ${IN_ARGS} -o $(BIN_OWNER) -m ${RDIST_MODE} \ + $(CLIENT_BIN) $(BIN_DIR)/$(CLIENT) + $(INSTALL) ${IN_ARGS} -o ${BIN_OWNER} -m ${RDISTD_MODE} \ +-- +1.7.5.4 + diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bison.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bison.patch new file mode 100644 index 00000000000..435491221cc --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-bison.patch @@ -0,0 +1,147 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/gram.y.bison 1998-11-10 05:10:42.000000000 +0100 ++++ rdist-6.1.5/src/gram.y 2003-06-04 16:02:19.000000000 +0200 +@@ -90,10 +90,10 @@ + struct namelist *namel; + } + +-%type OPTION, options +-%type NAME, STRING +-%type INSTALL, NOTIFY, EXCEPT, PATTERN, SPECIAL, CMDSPECIAL, cmdlist, cmd +-%type namelist, names, opt_namelist nlist ++%type OPTION options ++%type NAME STRING ++%type INSTALL NOTIFY EXCEPT PATTERN SPECIAL CMDSPECIAL cmdlist cmd ++%type namelist names opt_namelist nlist + + %% + +@@ -101,19 +101,19 @@ + | file command + ; + +-command: NAME '=' namelist = { ++command: NAME '=' namelist { + (void) lookup($1, INSERT, $3); + } +- | namelist ARROW namelist cmdlist = { ++ | namelist ARROW namelist cmdlist { + insert((char *)NULL, $1, $3, $4); + } +- | NAME COLON namelist ARROW namelist cmdlist = { ++ | NAME COLON namelist ARROW namelist cmdlist { + insert($1, $3, $5, $6); + } +- | namelist DCOLON NAME cmdlist = { ++ | namelist DCOLON NAME cmdlist { + append((char *)NULL, $1, $3, $4); + } +- | NAME COLON namelist DCOLON NAME cmdlist = { ++ | NAME COLON namelist DCOLON NAME cmdlist { + append($1, $3, $5, $6); + } + | error +@@ -133,10 +133,10 @@ + } + ; + +-nlist: NAME = { ++nlist: NAME { + $$ = makenl($1); + } +- | '(' names ')' = { ++ | '(' names ')' { + $$ = $2; + } + ; +@@ -144,7 +144,7 @@ + names: /* VOID */ { + $$ = last_n = NULL; + } +- | names NAME = { ++ | names NAME { + if (last_n == NULL) + $$ = last_n = makenl($2); + else { +@@ -158,7 +158,7 @@ + cmdlist: /* VOID */ { + $$ = last_sc = NULL; + } +- | cmdlist cmd = { ++ | cmdlist cmd { + if (last_sc == NULL) + $$ = last_sc = $2; + else { +@@ -169,7 +169,7 @@ + } + ; + +-cmd: INSTALL options opt_namelist ';' = { ++cmd: INSTALL options opt_namelist ';' { + register struct namelist *nl; + + $1->sc_options = $2 | options; +@@ -185,17 +185,17 @@ + } + $$ = $1; + } +- | NOTIFY namelist ';' = { ++ | NOTIFY namelist ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_VARS); + $$ = $1; + } +- | EXCEPT namelist ';' = { ++ | EXCEPT namelist ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $$ = $1; + } +- | PATTERN namelist ';' = { ++ | PATTERN namelist ';' { + struct namelist *nl; + char *cp, *re_comp(); + +@@ -205,13 +205,13 @@ + $1->sc_args = expand($2, E_VARS); + $$ = $1; + } +- | SPECIAL opt_namelist STRING ';' = { ++ | SPECIAL opt_namelist STRING ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $1->sc_name = $3; + $$ = $1; + } +- | CMDSPECIAL opt_namelist STRING ';' = { ++ | CMDSPECIAL opt_namelist STRING ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $1->sc_name = $3; +@@ -219,18 +219,18 @@ + } + ; + +-options: /* VOID */ = { ++options: /* VOID */ { + $$ = 0; + } +- | options OPTION = { ++ | options OPTION { + $$ |= $2; + } + ; + +-opt_namelist: /* VOID */ = { ++opt_namelist: /* VOID */ { + $$ = NULL; + } +- | namelist = { ++ | namelist { + $$ = $1; + } + ; diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-cleanup.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-cleanup.patch new file mode 100644 index 00000000000..ed3d7f1b35c --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-cleanup.patch @@ -0,0 +1,2087 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/gram.y.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/gram.y 2003-12-17 11:38:16.000000000 +0100 +@@ -40,7 +40,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: gram.y,v 6.30 1998/11/10 04:10:42 mcooper Exp $"; + +@@ -170,7 +170,7 @@ + ; + + cmd: INSTALL options opt_namelist ';' { +- register struct namelist *nl; ++ struct namelist *nl; + + $1->sc_options = $2 | options; + if ($3 != NULL) { +@@ -240,11 +240,11 @@ + int yylineno = 1; + extern FILE *fin; + +-yylex() ++int yylex() + { + static char yytext[INMAX]; +- register int c; +- register char *cp1, *cp2; ++ int c; ++ char *cp1, *cp2; + static char quotechars[] = "[]{}*?$"; + + again: +@@ -409,8 +409,8 @@ + * some of the characters we use. + */ + extern int any(c, str) +- register int c; +- register char *str; ++ int c; ++ char *str; + { + while (*str) + if (c == *str++) +@@ -421,13 +421,14 @@ + /* + * Insert or append ARROW command to list of hosts to be updated. + */ ++void + insert(label, files, hosts, subcmds) + char *label; + struct namelist *files, *hosts; + struct subcmd *subcmds; + { +- register struct cmd *c, *prev, *nc; +- register struct namelist *h, *lasth; ++ struct cmd *c, *prev, *nc; ++ struct namelist *h, *lasth; + + debugmsg(DM_CALL, "insert(%s, %x, %x, %x) start, files = %s", + label == NULL ? "(null)" : label, +@@ -475,13 +476,14 @@ + * Append DCOLON command to the end of the command list since these are always + * executed in the order they appear in the distfile. + */ ++void + append(label, files, stamp, subcmds) + char *label; + struct namelist *files; + char *stamp; + struct subcmd *subcmds; + { +- register struct cmd *c; ++ struct cmd *c; + + c = ALLOC(cmd); + c->c_type = DCOLON; +@@ -501,6 +503,7 @@ + /* + * Error printing routine in parser. + */ ++void + yyerror(s) + char *s; + { +@@ -530,7 +533,7 @@ + makenl(name) + char *name; + { +- register struct namelist *nl; ++ struct namelist *nl; + + debugmsg(DM_CALL, "makenl(%s)", name == NULL ? "null" : name); + +@@ -627,7 +630,7 @@ + makesubcmd(type) + int type; + { +- register struct subcmd *sc; ++ struct subcmd *sc; + + sc = ALLOC(subcmd); + sc->sc_type = type; +--- rdist-6.1.5/src/rdist.c.cleanup 1998-11-10 05:13:50.000000000 +0100 ++++ rdist-6.1.5/src/rdist.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist.c,v 6.66 1998/11/10 04:13:49 mcooper Exp $"; + +@@ -80,7 +80,7 @@ + char *name; + struct namelist **hostlist; + { +- register struct namelist *ptr, *new; ++ struct namelist *ptr, *new; + + if (!name || !hostlist) + return; +@@ -97,14 +97,15 @@ + *hostlist = new; + } + ++int + main(argc, argv, envp) + int argc; + char *argv[]; + char **envp; + { + struct namelist *hostlist = NULL; +- register int x; +- register char *cp; ++ int x; ++ char *cp; + int cmdargs = 0; + int c; + +@@ -114,7 +115,7 @@ + */ + setprogname(argv); + +- if (cp = msgparseopts(localmsglist, TRUE)) { ++ if ((cp = msgparseopts(localmsglist, TRUE))) { + error("Bad builtin log option (%s): %s.", + localmsglist, cp); + usage(); +@@ -158,7 +159,7 @@ + while ((c = getopt(argc, argv, optchars)) != -1) + switch (c) { + case 'l': +- if (cp = msgparseopts(optarg, TRUE)) { ++ if ((cp = msgparseopts(optarg, TRUE))) { + error("Bad log option \"%s\": %s.", optarg,cp); + usage(); + } +@@ -206,7 +207,7 @@ + + case 'D': + debug = DM_ALL; +- if (cp = msgparseopts("stdout=all,debug", TRUE)) { ++ if ((cp = msgparseopts("stdout=all,debug", TRUE))) { + error("Enable debug messages failed: %s.", cp); + usage(); + } +@@ -245,7 +246,7 @@ + error("No path specified to \"-P\"."); + usage(); + } +- if (cp = searchpath(optarg)) ++ if ((cp = searchpath(optarg))) + path_remsh = strdup(cp); + else { + error("No component of path \"%s\" exists.", +@@ -297,7 +298,7 @@ + else { + if (fin == NULL) + fin = opendist(distfile); +- (void) yyparse(); ++ yyparse(); + /* + * Need to keep stdin open for child processing later + */ +@@ -348,6 +349,7 @@ + /* + * Print usage message and exit. + */ ++void + usage() + { + char *sopts = "cDFnv"; +@@ -379,12 +381,13 @@ + /* + * rcp like interface for distributing files. + */ ++void + docmdargs(nargs, args) + int nargs; + char *args[]; + { +- register struct namelist *nl, *prev; +- register char *cp; ++ struct namelist *nl, *prev; ++ char *cp; + struct namelist *files, *hosts; + struct subcmd *cmds; + char *dest; +@@ -433,10 +436,10 @@ + * Get a list of NAME blocks (mostly for debugging). + */ + extern char *getnlstr(nl) +- register struct namelist *nl; ++ struct namelist *nl; + { + static char buf[16384]; +- register int count = 0, len = 0; ++ int count = 0, len = 0; + + (void) sprintf(buf, "("); + +--- rdist-6.1.5/src/client.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/client.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: client.c,v 6.82 1998/11/10 04:08:47 mcooper Exp $"; + +@@ -84,7 +84,7 @@ + int destdir; + { + extern struct namelist *filelist; +- register char *lname, *cp; ++ char *lname, *cp; + static char buff[BUFSIZ]; + int srclen, pathlen; + char *p; +@@ -146,7 +146,7 @@ + struct namelist *list; + char *file; + { +- register struct namelist *nl; ++ struct namelist *nl; + + for (nl = list; nl != NULL; nl = nl->n_next) + if (strcmp(file, nl->n_name) == 0) +@@ -163,7 +163,7 @@ + char *rname; + int destdir; + { +- register struct subcmd *sc; ++ struct subcmd *sc; + extern struct subcmd *subcmds; + char *rfile; + +@@ -200,7 +200,7 @@ + { + char *rfile; + struct namelist *new; +- register struct subcmd *sc; ++ struct subcmd *sc; + extern struct subcmd *subcmds; + int isokay = 0; + +@@ -227,7 +227,7 @@ + */ + static void freecmdspecialfiles() + { +- register struct namelist *ptr, *save; ++ struct namelist *ptr, *save; + + for (ptr = updfilelist; ptr; ) { + if (ptr->n_name) (void) free(ptr->n_name); +@@ -249,10 +249,8 @@ + char **filev; + opt_t opts; + { +- register struct subcmd *sc; +- register struct namelist *f; +- register char **cpp; +- char *file; ++ struct subcmd *sc; ++ struct namelist *f; + int first = TRUE; + + for (sc = cmd->c_cmds; sc != NULL; sc = sc->sc_next) { +@@ -294,7 +292,7 @@ + int checkfilename(name) + char *name; + { +- register char *cp; ++ char *cp; + + if (strchr(name, '\n')) { + for (cp = name; *cp; cp++) +@@ -501,7 +499,7 @@ + static int rmchk(opts) + opt_t opts; + { +- register u_char *s; ++ u_char *s; + struct stat stb; + int didupdate = 0; + int n; +@@ -618,7 +616,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if (!strcmp(dp->d_name, ".") || + !strcmp(dp->d_name, "..")) + continue; +@@ -631,7 +629,7 @@ + if (ptarget[-1] != '/') + *ptarget++ = '/'; + cp = dp->d_name; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (sendit(dp->d_name, opts, destdir) > 0) +@@ -770,13 +768,13 @@ + opt_t opts; + struct stat *statp; + { +- register off_t size; +- register time_t mtime; ++ off_t size; ++ time_t mtime; + unsigned short lmode; + unsigned short rmode; + char *owner = NULL, *group = NULL; + int done, n; +- u_char *cp; ++ char *cp; + + debugmsg(DM_CALL, "update(%s, 0x%x, 0x%x)\n", rname, opts, statp); + +@@ -1035,7 +1033,6 @@ + int destdir; + { + static struct stat stb; +- extern struct subcmd *subcmds; + char *user, *group; + int u, len; + int didupdate = 0; +@@ -1157,7 +1154,7 @@ + (void) unlink(statfile); + #endif + +- if (file = getnotifyfile()) ++ if ((file = getnotifyfile())) + (void) unlink(file); + } + +--- rdist-6.1.5/src/child.c.cleanup 1998-11-10 05:18:57.000000000 +0100 ++++ rdist-6.1.5/src/child.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: child.c,v 6.29 1998/11/10 04:18:56 mcooper Exp $"; + +@@ -90,7 +90,7 @@ + static void removechild(child) + CHILD *child; + { +- register CHILD *pc, *prevpc; ++ CHILD *pc, *prevpc; + + debugmsg(DM_CALL, "removechild(%s, %d, %d) start", + child->c_name, child->c_pid, child->c_readfd); +@@ -148,7 +148,7 @@ + static CHILD *copychild(child) + CHILD *child; + { +- register CHILD *newc; ++ CHILD *newc; + + newc = (CHILD *) xmalloc(sizeof(CHILD)); + +@@ -167,7 +167,7 @@ + static void addchild(child) + CHILD *child; + { +- register CHILD *pc; ++ CHILD *pc; + + debugmsg(DM_CALL, "addchild() start\n"); + +@@ -280,7 +280,7 @@ + */ + static void reap() + { +- register CHILD *pc; ++ CHILD *pc; + int status = 0; + pid_t pid; + +@@ -336,7 +336,7 @@ + */ + static void childscan() + { +- register CHILD *pc, *nextpc; ++ CHILD *pc, *nextpc; + + debugmsg(DM_CALL, "childscan() start"); + +@@ -366,8 +366,8 @@ + extern void waitup() + { + #if defined(HAVE_SELECT) +- register int count; +- register CHILD *pc; ++ int count; ++ CHILD *pc; + fd_set rchildfds; + + debugmsg(DM_CALL, "waitup() start\n"); +--- rdist-6.1.5/src/docmd.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/docmd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: docmd.c,v 6.87 1998/11/10 04:08:32 mcooper Exp $"; + +@@ -99,10 +99,10 @@ + */ + static void notify(rhost, to, lmod) + char *rhost; +- register struct namelist *to; ++ struct namelist *to; + time_t lmod; + { +- register int fd, len; ++ int fd, len; + FILE *pf, *popen(); + struct stat stb; + static char buf[BUFSIZ]; +@@ -221,7 +221,7 @@ + struct cmd *cmd; + struct cmd *cmdlist; + { +- register struct cmd *pcmd; ++ struct cmd *pcmd; + + for (pcmd = cmdlist; pcmd; pcmd = pcmd->c_next) { + checkcmd(pcmd); +@@ -238,7 +238,7 @@ + struct cmd *cmd; + struct cmd *cmdlist; + { +- register struct cmd *pc; ++ struct cmd *pc; + + if (!cmd) { + debugmsg(DM_MISC, "markfailed() NULL cmd parameter"); +@@ -309,7 +309,7 @@ + static int makeconn(rhost) + char *rhost; + { +- register char *ruser, *cp; ++ char *ruser, *cp; + static char *cur_host = NULL; + extern char *locuser; + extern long min_freefiles, min_freespace; +@@ -430,9 +430,9 @@ + struct cmd *cmd; + char **filev; + { +- register struct namelist *f; +- register struct subcmd *sc; +- register char **cpp; ++ struct namelist *f; ++ struct subcmd *sc; ++ char **cpp; + int n, ddir, destdir, opts = options; + struct namelist *files; + struct subcmd *sbcmds; +@@ -567,7 +567,6 @@ + } + } + +-done: + /* + * Run any commands for the entire cmd + */ +@@ -584,7 +583,7 @@ + notify(rhost, sc->sc_args, (time_t) 0); + + if (!nflag) { +- register struct linkbuf *nextl, *l; ++ struct linkbuf *nextl, *l; + + for (l = ihead; l != NULL; freelinkinfo(l), l = nextl) { + nextl = l->nextp; +@@ -601,11 +600,12 @@ + setjmp_ok = FALSE; + } + ++int + okname(name) +- register char *name; ++ char *name; + { +- register char *cp = name; +- register int c, isbad; ++ char *cp = name; ++ int c, isbad; + + for (isbad = FALSE; *cp && !isbad; ++cp) { + c = *cp; +@@ -627,9 +627,9 @@ + struct subcmd *sbcmds; + char **env; + { +- register DIR *d; +- register DIRENTRY *dp; +- register char *cp; ++ DIR *d; ++ DIRENTRY *dp; ++ char *cp; + char *optarget; + int len; + +@@ -641,7 +641,7 @@ + } + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) + continue; + if (len + 1 + (int)strlen(dp->d_name) >= BUFSIZ - 1) { +@@ -651,7 +651,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + cmptime(target, sbcmds, env); +@@ -740,9 +740,9 @@ + struct cmd *cmd; + char **filev; + { +- register struct subcmd *sc; +- register struct namelist *f; +- register char *cp, **cpp; ++ struct subcmd *sc; ++ struct namelist *f; ++ char *cp, **cpp; + struct stat stb; + struct namelist *files = cmd->c_files; + struct subcmd *sbcmds = cmd->c_cmds; +@@ -824,8 +824,8 @@ + extern int except(file) + char *file; + { +- register struct subcmd *sc; +- register struct namelist *nl; ++ struct subcmd *sc; ++ struct namelist *nl; + + debugmsg(DM_CALL, "except(%s)", file); + +@@ -918,8 +918,8 @@ + int argc; + char **argv; + { +- register struct namelist *f; +- register int i; ++ struct namelist *f; ++ int i; + + if (argc) { + for (i = 0; i < argc; i++) { +@@ -962,9 +962,9 @@ + int argc; + char **argv; + { +- register struct cmd *c; +- register char *cp; +- register int i; ++ struct cmd *c; ++ char *cp; ++ int i; + + (void) signal(SIGHUP, sighandler); + (void) signal(SIGINT, sighandler); +@@ -1032,7 +1032,7 @@ + + if (hostlist) { + /* Do specific hosts as specified on command line */ +- register struct namelist *nlptr; ++ struct namelist *nlptr; + + for (nlptr = hostlist; nlptr; nlptr = nlptr->n_next) + /* +--- rdist-6.1.5/src/distopt.c.cleanup 1998-11-10 05:09:11.000000000 +0100 ++++ rdist-6.1.5/src/distopt.c 2003-12-17 11:38:16.000000000 +0100 +@@ -6,7 +6,7 @@ + * appropriately. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: distopt.c,v 6.12 1998/11/10 04:09:11 mcooper Exp $"; + +@@ -55,7 +55,7 @@ + extern DISTOPTINFO *getdistopt(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; distoptinfo[i].do_name; ++i) + if (strcasecmp(name, distoptinfo[i].do_name) == 0) +@@ -74,7 +74,7 @@ + opt_t *optptr; + int doerrs; + { +- register char *string, *optstr; ++ char *string, *optstr; + DISTOPTINFO *distopt; + int negate; + +@@ -93,7 +93,7 @@ + * and the option starts with "no", strip "no" + * from option and retry lookup. + */ +- if (distopt = getdistopt(optstr)) { ++ if ((distopt = getdistopt(optstr))) { + FLAG_ON(*optptr, distopt->do_value); + continue; + } +@@ -116,7 +116,7 @@ + */ + extern char *getdistoptlist() + { +- register int i; ++ int i; + static char buf[1024]; + + for (i = 0, buf[0] = CNULL; distoptinfo[i].do_name; ++i) { +@@ -138,7 +138,7 @@ + extern char *getondistoptlist(opts) + opt_t opts; + { +- register int i; ++ int i; + static char buf[1024]; + + for (i = 0, buf[0] = CNULL; distoptinfo[i].do_name; ++i) { +--- rdist-6.1.5/src/expand.c.cleanup 1998-11-10 05:09:31.000000000 +0100 ++++ rdist-6.1.5/src/expand.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: expand.c,v 6.19 1998/11/10 04:09:31 mcooper Exp $"; + +@@ -81,9 +81,9 @@ + sizeof(*sortbase), argcmp), sortbase = &eargv[eargc] + + static void Cat(s1, s2) /* quote in s1 and s2 */ +- register u_char *s1, *s2; ++ u_char *s1, *s2; + { +- register char *cp; ++ char *cp; + int len = strlen((char *)s1) + strlen((char *)s2) + 2; + + if ((eargc + 1) >= MAXEARGS) { +@@ -97,12 +97,12 @@ + do { + if (*s1 == QUOTECHAR) + s1++; +- } while (*cp++ = *s1++); ++ } while ((*cp++ = *s1++)); + cp--; + do { + if (*s2 == QUOTECHAR) + s2++; +- } while (*cp++ = *s2++); ++ } while ((*cp++ = *s2++)); + } + + static void addpath(c) +@@ -131,8 +131,8 @@ + struct namelist *list; + int wh; + { +- register struct namelist *nl, *prev; +- register int n; ++ struct namelist *nl, *prev; ++ int n; + char pathbuf[BUFSIZ]; + + if (debug) +@@ -182,7 +182,7 @@ + u_char *str; + int ch; + { +- register u_char *cp; ++ u_char *cp; + + for (cp = str; cp && *cp != CNULL; ++cp) + if (ch == *cp) +@@ -194,8 +194,8 @@ + void expstr(s) + u_char *s; + { +- register u_char *cp, *cp1; +- register struct namelist *tp; ++ u_char *cp, *cp1; ++ struct namelist *tp; + u_char *tail; + u_char ebuf[BUFSIZ]; + u_char varbuff[BUFSIZ]; +@@ -302,7 +302,7 @@ + cp1 = (u_char *)pw->pw_dir; + s = cp; + } +- for (cp = (u_char *)path; *cp++ = *cp1++; ) ++ for (cp = (u_char *)path; (*cp++ = *cp1++); ) + ; + tpathp = pathp = (char *)cp - 1; + } else { +@@ -326,7 +326,7 @@ + sort(); + } + +-static ++static int + argcmp(a1, a2) + char **a1, **a2; + { +@@ -341,8 +341,8 @@ + void expsh(s) /* quote in s */ + u_char *s; + { +- register u_char *cp, *oldcp; +- register char *spathp; ++ u_char *cp, *oldcp; ++ char *spathp; + struct stat stb; + + spathp = pathp; +@@ -380,7 +380,7 @@ + char *pattern; + { + struct stat stb; +- register DIRENTRY *dp; ++ DIRENTRY *dp; + DIR *dirp; + + dirp = opendir(path); +@@ -417,11 +417,12 @@ + yyerror(path); + } + ++int + execbrc(p, s) /* quote in p */ + u_char *p, *s; + { + u_char restbuf[BUFSIZ + 2]; +- register u_char *pe, *pm, *pl; ++ u_char *pe, *pm, *pl; + int brclev = 0; + u_char *lm, savec; + char *spathp; +@@ -507,11 +508,12 @@ + return (0); + } + ++int + match(s, p) /* quote in p */ + char *s, *p; + { +- register int c; +- register char *sentp; ++ int c; ++ char *sentp; + char sexpany = expany; + + if (*s == '.' && *p != '.') +@@ -524,11 +526,12 @@ + return (c); + } + ++int + amatch(s, p) /* quote in p */ +- register char *s; +- register u_char *p; ++ char *s; ++ u_char *p; + { +- register int scc; ++ int scc; + int ok, lc; + char *spathp; + struct stat stb; +@@ -545,7 +548,7 @@ + case '[': + ok = 0; + lc = 077777; +- while (cc = *p++) { ++ while ((cc = *p++)) { + if (cc == ']') { + if (ok) + break; +@@ -599,7 +602,7 @@ + while (*s) + addpath(*s++); + addpath('/'); +- if (stat(path, &stb) == 0 && S_ISDIR(stb.st_mode)) ++ if (stat(path, &stb) == 0 && S_ISDIR(stb.st_mode)) { + if (*p == CNULL) { + if (which & E_TILDE) + Cat((u_char *)path, +@@ -609,6 +612,7 @@ + (u_char *)tpathp); + } else + expsh(p); ++ } + pathp = spathp; + *pathp = CNULL; + return (0); +--- rdist-6.1.5/src/lookup.c.cleanup 1998-11-10 05:12:56.000000000 +0100 ++++ rdist-6.1.5/src/lookup.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: lookup.c,v 6.9 1998/11/10 04:12:56 mcooper Exp $"; + +@@ -68,11 +68,12 @@ + /* + * Define a variable from a command line argument. + */ ++void + define(name) + char *name; + { +- register char *cp, *s; +- register struct namelist *nl; ++ char *cp, *s; ++ struct namelist *nl; + struct namelist *value; + + debugmsg(DM_CALL, "define(%s)", name); +@@ -137,9 +138,9 @@ + int action; + struct namelist *value; + { +- register unsigned n; +- register char *cp; +- register struct syment *s; ++ unsigned n; ++ char *cp; ++ struct syment *s; + char ebuf[BUFSIZ]; + + debugmsg(DM_CALL, "lookup(%s, %d, %x)", name, action, value); +--- rdist-6.1.5/src/isexec.c.cleanup 1998-11-10 05:11:42.000000000 +0100 ++++ rdist-6.1.5/src/isexec.c 2003-12-17 11:38:16.000000000 +0100 +@@ -37,7 +37,7 @@ + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: isexec.c,v 6.22 1998/11/10 04:11:42 mcooper Exp $"; + +--- rdist-6.1.5/src/signal.c.cleanup 1998-11-10 05:16:13.000000000 +0100 ++++ rdist-6.1.5/src/signal.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: signal.c,v 6.2 1998/11/10 04:16:13 mcooper Exp $"; + +--- rdist-6.1.5/src/rshrcmd.c.cleanup 1998-11-10 05:15:07.000000000 +0100 ++++ rdist-6.1.5/src/rshrcmd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -10,7 +10,7 @@ + * Chris Siebenmann . + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rshrcmd.c,v 1.9 1998/11/10 04:15:07 mcooper Exp $"; + +@@ -34,6 +34,7 @@ + * program in place of a direct rcmd() function call so as to + * avoid having to be root. + */ ++int + rshrcmd(ahost, port, luser, ruser, cmd, fd2p) + char **ahost; + u_short port; +@@ -108,6 +109,7 @@ + (void) wait(0); + return sp[0]; + } ++ return -1; + /*NOTREACHED*/ + } + +--- rdist-6.1.5/src/common.c.cleanup 1998-11-10 05:09:01.000000000 +0100 ++++ rdist-6.1.5/src/common.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: common.c,v 6.84 1998/11/10 04:09:01 mcooper Exp $"; + +@@ -87,14 +87,14 @@ + /* + * Front end to write() that handles partial write() requests. + */ +-extern WRITE_RETURN_T xwrite(fd, buf, len) ++WRITE_RETURN_T xwrite(fd, buf, len) + int fd; + void *buf; + WRITE_AMT_T len; + { + WRITE_AMT_T nleft = len; + WRITE_RETURN_T nwritten; +- register char *ptr = buf; ++ char *ptr = buf; + + while (nleft > 0) { + if ((nwritten = write(fd, ptr, nleft)) <= 0) { +@@ -110,14 +110,14 @@ + /* + * Set program name + */ +-extern void setprogname(argv) ++void setprogname(argv) + char **argv; + { +- register char *cp; ++ char *cp; + + if (!progname) { + progname = strdup(argv[0]); +- if (cp = strrchr(progname, '/')) ++ if ((cp = strrchr(progname, '/'))) + progname = cp + 1; + } + } +@@ -125,14 +125,14 @@ + /* + * Do run-time initialization + */ +-extern int init(argc, argv, envp) ++int init(argc, argv, envp) + /*ARGSUSED*/ + int argc; + char **argv; + char **envp; + { +- register int i; +- register char *cp; ++ int i; ++ char *cp; + + if (!isserver) + (void) signal(SIGSEGV, sighandler); +@@ -182,7 +182,7 @@ + /* + * Finish things up before ending. + */ +-extern void finish() ++void finish() + { + extern jmp_buf finish_jmpbuf; + +@@ -216,7 +216,7 @@ + /* + * Handle lost connections + */ +-extern void lostconn() ++void lostconn() + { + /* Prevent looping */ + (void) signal(SIGPIPE, SIG_IGN); +@@ -232,7 +232,7 @@ + /* + * Do a core dump + */ +-extern void coredump() ++void coredump() + { + error("Segmentation violation - dumping core [PID = %d, %s]", + getpid(), +@@ -245,7 +245,7 @@ + /* + * General signal handler + */ +-extern void sighandler(sig) ++void sighandler(sig) + int sig; + { + debugmsg(DM_CALL, "sighandler() received signal %d\n", sig); +@@ -325,7 +325,7 @@ + /* + * Stdarg frontend to sendcmdmsg() + */ +-extern int sendcmd(char cmd, char *fmt, ...) ++int sendcmd(char cmd, char *fmt, ...) + { + static char buf[BUFSIZ]; + va_list args; +@@ -345,7 +345,7 @@ + /* + * Varargs frontend to sendcmdmsg() + */ +-extern int sendcmd(va_alist) ++int sendcmd(va_alist) + va_dcl + { + static char buf[BUFSIZ]; +@@ -372,7 +372,7 @@ + * Stupid frontend to sendcmdmsg() + */ + /*VARARGS2*/ +-extern int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a7, a8) ++int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a7, a8) + char cmd; + char *fmt; + { +@@ -433,13 +433,13 @@ + * errors, call cleanup() or lostconn(). In other words, unless + * the third argument is nonzero, this routine never returns failure. + */ +-extern int remline(buffer, space, doclean) +- register u_char *buffer; ++int remline(buffer, space, doclean) ++ u_char *buffer; + int space; + int doclean; + { +- register int c, left = space; +- register u_char *p = buffer; ++ int c, left = space; ++ u_char *p = buffer; + + if (rem_r < 0) { + error("Cannot read remote input: Remote descriptor not open."); +@@ -494,9 +494,9 @@ + /* + * Non-line-oriented remote read. + */ +-readrem(p, space) ++int readrem(p, space) + char *p; +- register int space; ++ int space; + { + if (remleft <= 0) { + /* +@@ -527,7 +527,7 @@ + /* + * Get the user name for the uid. + */ +-extern char *getusername(uid, file, opts) ++char *getusername(uid, file, opts) + UID_T uid; + char *file; + opt_t opts; +@@ -566,7 +566,7 @@ + /* + * Get the group name for the gid. + */ +-extern char *getgroupname(gid, file, opts) ++char *getgroupname(gid, file, opts) + GID_T gid; + char *file; + opt_t opts; +@@ -604,7 +604,7 @@ + /* + * Read a response from the remote host. + */ +-extern int response() ++int response() + { + static u_char resp[BUFSIZ]; + u_char *s; +@@ -646,6 +646,7 @@ + message(MT_FERROR, "%s", s); + finish(); + } ++ return -1; + /*NOTREACHED*/ + } + +@@ -657,11 +658,11 @@ + * user's home directory path name. Return a pointer in buf to the + * part corresponding to `file'. + */ +-extern char *exptilde(ebuf, file) ++char *exptilde(ebuf, file) + char *ebuf; +- register char *file; ++ char *file; + { +- register char *s1, *s2, *s3; ++ char *s1, *s2, *s3; + extern char *homedir; + + if (*file != '~') { +@@ -694,12 +695,12 @@ + *s3 = '/'; + s2 = pw->pw_dir; + } +- for (s1 = ebuf; *s1++ = *s2++; ) ++ for (s1 = ebuf; (*s1++ = *s2++); ) + ; + s2 = --s1; + if (s3 != NULL) { + s2++; +- while (*s1++ = *s3++) ++ while ((*s1++ = *s3++)) + ; + } + return(s2); +@@ -710,7 +711,7 @@ + * Set our effective user id to the user running us. + * This should be the uid we do most of our work as. + */ +-extern int becomeuser() ++int becomeuser() + { + int r = 0; + +@@ -732,7 +733,7 @@ + /* + * Set our effective user id to "root" (uid = 0) + */ +-extern int becomeroot() ++int becomeroot() + { + int r = 0; + +@@ -753,7 +754,7 @@ + /* + * Set access and modify times of a given file + */ +-extern int setfiletime(file, atime, mtime) ++int setfiletime(file, atime, mtime) + char *file; + time_t atime; + time_t mtime; +@@ -790,7 +791,7 @@ + /* + * Get version info + */ +-extern char *getversion() ++char *getversion() + { + static char buff[BUFSIZ]; + +@@ -811,7 +812,7 @@ + { + int fd[2], pid, i; + int status; +- register char *cp, *s; ++ char *cp, *s; + char sbuf[BUFSIZ], buf[BUFSIZ]; + + if (pipe(fd) < 0) { +@@ -933,12 +934,12 @@ + /* + * Private version of basename() + */ +-extern char *xbasename(path) ++char *xbasename(path) + char *path; + { +- register char *cp; ++ char *cp; + +- if (cp = strrchr(path, '/')) ++ if ((cp = strrchr(path, '/'))) + return(cp+1); + else + return(path); +@@ -949,11 +950,11 @@ + * search until a component of that path is found and + * return the found file name. + */ +-extern char *searchpath(path) ++char *searchpath(path) + char *path; + { +- register char *cp; +- register char *file; ++ char *cp; ++ char *file; + struct stat statbuf; + + for (; ;) { +@@ -977,8 +978,7 @@ + /* + * Set line buffering. + */ +-extern void +-mysetlinebuf(fp) ++void mysetlinebuf(fp) + FILE *fp; + { + #if SETBUF_TYPE == SETBUF_SETLINEBUF +@@ -995,8 +995,7 @@ + /* + * Our interface to system call to get a socket pair. + */ +-int +-getsocketpair(domain, type, protocol, sv) ++int getsocketpair(domain, type, protocol, sv) + int domain; + int type; + int protocol; +--- rdist-6.1.5/src/message.c.cleanup 1998-11-10 05:13:30.000000000 +0100 ++++ rdist-6.1.5/src/message.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: message.c,v 6.25 1998/11/10 04:13:30 mcooper Exp $"; + +@@ -97,7 +97,7 @@ + */ + extern void msgprusage() + { +- register int i, x; ++ int i, x; + + (void) fprintf(stderr, "\nWhere is of form\n"); + (void) fprintf(stderr, +@@ -120,7 +120,7 @@ + */ + extern void msgprconfig() + { +- register int i, x; ++ int i, x; + static char buf[MSGBUFSIZ]; + + debugmsg(DM_MISC, "Current message logging config:"); +@@ -145,7 +145,7 @@ + static MSGFACILITY *getmsgfac(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; msgfacility[i].mf_name; ++i) + if (strcasecmp(name, msgfacility[i].mf_name) == 0) +@@ -160,7 +160,7 @@ + static MSGTYPE *getmsgtype(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; msgtypes[i].mt_name; ++i) + if (strcasecmp(name, msgtypes[i].mt_name) == 0) +@@ -178,9 +178,9 @@ + char *str; + { + static char ebuf[BUFSIZ]; +- register char *cp; +- register char *strptr, *word; +- register MSGTYPE *mtp; ++ char *cp; ++ char *strptr, *word; ++ MSGTYPE *mtp; + + /* + * MF_SYSLOG is the only supported message facility for the server +@@ -240,11 +240,11 @@ + msgfac->mf_msgtypes = 0; /* Start from scratch */ + while (strptr) { + word = strptr; +- if (cp = strchr(strptr, ',')) ++ if ((cp = strchr(strptr, ','))) + *cp++ = CNULL; + strptr = cp; + +- if (mtp = getmsgtype(word)) { ++ if ((mtp = getmsgtype(word))) { + msgfac->mf_msgtypes |= mtp->mt_type; + /* + * XXX This is really a kludge until we add real +@@ -272,8 +272,8 @@ + int doset; + { + static char ebuf[BUFSIZ], msgbuf[MSGBUFSIZ]; +- register char *cp, *optstr; +- register char *word; ++ char *cp, *optstr; ++ char *word; + MSGFACILITY *msgfac; + + if (msgstr == NULL) +@@ -308,7 +308,7 @@ + if (doset) { + char *mcp; + +- if (mcp = setmsgtypes(msgfac, cp)) ++ if ((mcp = setmsgtypes(msgfac, cp))) + return(mcp); + } + } +@@ -462,8 +462,9 @@ + return; + + if (!msgfac->mf_fptr) { +- register char *cp; ++ char *cp; + char *getenv(); ++ int fd; + + /* + * Create and open a new temporary file +@@ -475,7 +476,10 @@ + (void) sprintf(tempfile, "%s/%s", cp, _RDIST_TMP); + + msgfac->mf_filename = tempfile; +- (void) mktemp(msgfac->mf_filename); ++ fd = mkstemp(msgfac->mf_filename); ++ if (fd < 0) ++ fatalerr("Cannot open notify file for writing: %s: %s.", msgfac->mf_filename, SYSERR); ++ close(fd); + if ((msgfac->mf_fptr = fopen(msgfac->mf_filename, "w"))==NULL) + fatalerr("Cannot open notify file for writing: %s: %s.", + msgfac->mf_filename, SYSERR); +@@ -515,15 +519,15 @@ + int flags; + char *msgbuf; + { +- register int i, x; +- register char *cp; ++ int i, x; ++ char *cp; + static char mbuf[2048]; + + if (msgbuf && *msgbuf) { + /* + * Ensure no stray newlines are present + */ +- if (cp = strchr(msgbuf, '\n')) ++ if ((cp = strchr(msgbuf, '\n'))) + *cp = CNULL; + + checkhostname(); +@@ -863,7 +867,7 @@ + */ + extern char *getnotifyfile() + { +- register int i; ++ int i; + + for (i = 0; msgfacility[i].mf_name; i++) + if (msgfacility[i].mf_msgfac == MF_NOTIFY && +--- rdist-6.1.5/src/setargs.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/setargs.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: setargs.c,v 6.5 1998/11/10 04:15:56 mcooper Exp $"; + +@@ -66,12 +66,12 @@ + /* + * Settup things for using setproctitle() + */ +-setargs_settup(argc, argv, envp) ++void setargs_settup(argc, argv, envp) + int argc; + char **argv; + char **envp; + { +- register int i; ++ int i; + extern char **environ; + + /* Remember the User Environment */ +@@ -92,10 +92,10 @@ + /* + * Set process title + */ +-extern void _setproctitle(msg) ++void _setproctitle(msg) + char *msg; + { +- register int i; ++ int i; + char *p; + + p = Argv[0]; +@@ -119,7 +119,7 @@ + /* + * Varargs front-end to _setproctitle() + */ +-extern void setproctitle(va_alist) ++void setproctitle(va_alist) + va_dcl + { + static char buf[BUFSIZ]; +@@ -138,7 +138,7 @@ + /* + * Stdarg front-end to _setproctitle() + */ +-extern void setproctitle(char *fmt, ...) ++void setproctitle(char *fmt, ...) + { + static char buf[BUFSIZ]; + va_list args; +@@ -155,7 +155,7 @@ + * Non-Varargs front-end to _setproctitle() + */ + /*VARARGS1*/ +-extern void setproctitle(fmt, a1, a2, a3, a4, a5, a6) ++void setproctitle(fmt, a1, a2, a3, a4, a5, a6) + char *fmt; + { + static char buf[BUFSIZ]; +--- rdist-6.1.5/src/rdistd.c.cleanup 1998-11-10 05:14:06.000000000 +0100 ++++ rdist-6.1.5/src/rdistd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdistd.c,v 6.23 1998/11/10 04:14:06 mcooper Exp $"; + +@@ -53,21 +53,12 @@ + + #include "defs.h" + +-/* +- * Print usage message +- */ +-static void usage() +-{ +- fprintf(stderr, "usage: %s -S [ -DV ]\n", progname); +- exit(1); +-} +- + char localmsglist[] = "syslog=ferror"; + + /* + * The Beginning + */ +-main(argc, argv, envp) ++int main(argc, argv, envp) + int argc; + char **argv; + char **envp; +@@ -95,7 +86,8 @@ + case '?': + default: + error("Bad command line option."); +- usage(); ++ fprintf(stderr, "usage: %s -S [ -DV ]\n", progname); ++ exit(1); + } + + if (!isserver) { +@@ -108,7 +100,7 @@ + rem_w = fileno(stdout); + + /* Set logging */ +- if (cp = msgparseopts(localmsglist, TRUE)) ++ if ((cp = msgparseopts(localmsglist, TRUE))) + fatalerr("Bad message logging option (%s): %s", + localmsglist, cp); + +--- rdist-6.1.5/src/server.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/server.c 2003-12-17 11:38:16.000000000 +0100 +@@ -37,7 +37,7 @@ + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: server.c,v 6.86 1998/11/10 04:15:31 mcooper Exp $"; + +@@ -197,7 +197,7 @@ + static UID_T last_uid = (UID_T)-2; + static GID_T last_primegid; + extern char *locuser; +- register int i; ++ int i; + UID_T uid; + GID_T gid; + GID_T primegid = (GID_T)-2; +@@ -252,7 +252,7 @@ + /* + * Invalid cached values so we need to do a new lookup. + */ +- if (gr = mygetgroup(group)) { ++ if ((gr = mygetgroup(group))) { + last_gid = gid = gr->gr_gid; + strcpy(last_group, gr->gr_name); + } else { +@@ -325,7 +325,7 @@ + { + DIR *d; + static DIRENTRY *dp; +- register char *cp; ++ char *cp; + struct stat stb; + char *optarget; + int len, failures = 0; +@@ -362,7 +362,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if ((D_NAMLEN(dp) == 1 && dp->d_name[0] == '.') || + (D_NAMLEN(dp) == 2 && dp->d_name[0] == '.' && + dp->d_name[1] == '.')) +@@ -376,7 +376,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name;; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (lstat(target, &stb) < 0) { +@@ -414,10 +414,10 @@ + * for extraneous files and remove them. + */ + static void doclean(cp) +- register char *cp; ++ char *cp; + { + DIR *d; +- register DIRENTRY *dp; ++ DIRENTRY *dp; + struct stat stb; + char *optarget, *ep; + int len; +@@ -436,7 +436,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if ((D_NAMLEN(dp) == 1 && dp->d_name[0] == '.') || + (D_NAMLEN(dp) == 2 && dp->d_name[0] == '.' && + dp->d_name[1] == '.')) +@@ -450,7 +450,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name;; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (lstat(target, &stb) < 0) { +@@ -481,7 +481,7 @@ + * Frontend to doclean(). + */ + static void clean(cp) +- register char *cp; ++ char *cp; + { + doclean(cp); + (void) sendcmd(CC_END, NULL); +@@ -509,7 +509,7 @@ + */ + static void docmdspecial() + { +- register char *cp; ++ char *cp; + char *cmd, *env = NULL; + int n; + int len; +@@ -667,7 +667,7 @@ + char *name; + opt_t opts; + { +- register char *cp; ++ char *cp; + struct stat stb; + int r = -1; + +@@ -760,7 +760,7 @@ + { + int f, wrerr, olderrno, lastwashole = 0, wassparse = 0; + off_t i; +- register char *cp; ++ char *cp; + char *savefile = NULL; + static struct stat statbuff; + +@@ -987,7 +987,7 @@ + char *owner, *group; + { + static char lowner[100], lgroup[100]; +- register char *cp; ++ char *cp; + struct stat stb; + int s; + +@@ -1044,7 +1044,7 @@ + + o = (owner[0] == ':') ? opts & DO_NUMCHKOWNER : + opts; +- if (cp = getusername(stb.st_uid, target, o)) ++ if ((cp = getusername(stb.st_uid, target, o))) + if (strcmp(owner, cp)) + (void) strcpy(lowner, cp); + } +@@ -1053,7 +1053,7 @@ + + o = (group[0] == ':') ? opts & DO_NUMCHKGROUP : + opts; +- if (cp = getgroupname(stb.st_gid, target, o)) ++ if ((cp = getgroupname(stb.st_gid, target, o))) + if (strcmp(group, cp)) + (void) strcpy(lgroup, cp); + } +@@ -1107,8 +1107,8 @@ + if (s < 0) { + if (errno == ENOENT) { + if (mkdir(target, mode) == 0 || +- chkparent(target, opts) == 0 && +- mkdir(target, mode) == 0) { ++ (chkparent(target, opts) == 0 && ++ mkdir(target, mode) == 0)) { + message(MT_NOTICE, "%s: mkdir", target); + (void) fchog(-1, target, owner, group, mode); + ack(); +@@ -1304,7 +1304,7 @@ + static void setconfig(cmd) + char *cmd; + { +- register char *cp = cmd; ++ char *cp = cmd; + char *estr; + + switch (*cp++) { +@@ -1338,7 +1338,7 @@ + break; + + case SC_LOGGING: /* Logging options */ +- if (estr = msgparseopts(cp, TRUE)) { ++ if ((estr = msgparseopts(cp, TRUE))) { + fatalerr("Bad message option string (%s): %s", + cp, estr); + return; +@@ -1455,7 +1455,7 @@ + sptarget[catname] = ptarget; + if (catname++) { + *ptarget++ = '/'; +- while (*ptarget++ = *file++) ++ while ((*ptarget++ = *file++)) + ; + ptarget--; + } +@@ -1463,6 +1463,7 @@ + /* + * Create name of temporary file + */ ++ int fd; + if (catname && cattarget(file) < 0) { + error("Cannot set file name."); + return; +@@ -1477,7 +1478,12 @@ + (void) sprintf(new, "%s/%s", target, tempname); + *file = '/'; + } +- (void) mktemp(new); ++ fd = mkstemp(new); ++ if (fd < 0) { ++ error("Cannot set file name."); ++ return; ++ } ++ close(fd); + } + + /* +@@ -1581,8 +1587,8 @@ + extern void server() + { + static char cmdbuf[BUFSIZ]; +- register char *cp; +- register int n; ++ char *cp; ++ int n; + extern jmp_buf finish_jmpbuf; + + if (setjmp(finish_jmpbuf)) { +--- rdist-6.1.5/src/filesys.c.cleanup 1998-11-10 05:10:18.000000000 +0100 ++++ rdist-6.1.5/src/filesys.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: filesys.c,v 6.25 1998/11/10 04:10:17 mcooper Exp $"; + +@@ -72,7 +72,7 @@ + static char last_pathname[MAXPATHLEN]; + static char file[MAXPATHLEN + 3]; + static struct stat filestat; +- register char *p; ++ char *p; + + /* + * Mark the statbuf as invalid to start with. +@@ -125,7 +125,7 @@ + * Normally we want to change /dir1/dir2/file + * into "/dir1/dir2/." + */ +- if (p = (char *) strrchr(file, '/')) { ++ if ((p = (char *) strrchr(file, '/'))) { + *++p = '.'; + *++p = CNULL; + } else { +@@ -183,7 +183,7 @@ + struct stat *filest; + struct mntinfo *mntinfo; + { +- register struct mntinfo *mi; ++ struct mntinfo *mi; + + for (mi = mntinfo; mi; mi = mi->mi_nxt) { + if (mi->mi_mnt->me_flags & MEFLAG_IGNORE) +@@ -202,7 +202,7 @@ + mntent_t *mnt; + struct mntinfo *mntinfo; + { +- register struct mntinfo *m; ++ struct mntinfo *m; + + for (m = mntinfo; m; m = m->mi_nxt) + if (strcmp(m->mi_mnt->me_path, mnt->me_path) == 0) +@@ -247,7 +247,7 @@ + } + + mntinfo = mi; +- while (mnt = getmountent(mfp)) { ++ while ((mnt = getmountent(mfp))) { + debugmsg(DM_MISC, "mountent = '%s' (%s)", + mnt->me_path, mnt->me_type); + +@@ -308,7 +308,7 @@ + static struct stat filestat; + struct stat *pstat; + struct mntinfo *tmpmi; +- register mntent_t *mnt; ++ mntent_t *mnt; + + /* + * Use the supplied stat buffer if not NULL or our own. +@@ -330,16 +330,16 @@ + /* + * Find the mnt that pathname is on. + */ +- if (mnt = findmnt(pstat, mntinfo)) ++ if ((mnt = findmnt(pstat, mntinfo))) + return(mnt); + + /* + * We failed to find correct mnt, so maybe it's a newly + * mounted filesystem. We rebuild mntinfo and try again. + */ +- if (tmpmi = makemntinfo(mntinfo)) { ++ if ((tmpmi = makemntinfo(mntinfo))) { + mntinfo = tmpmi; +- if (mnt = findmnt(pstat, mntinfo)) ++ if ((mnt = findmnt(pstat, mntinfo))) + return(mnt); + } + +--- rdist-6.1.5/src/filesys-os.c.cleanup 1998-11-10 05:09:59.000000000 +0100 ++++ rdist-6.1.5/src/filesys-os.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: filesys-os.c,v 6.18 1998/11/10 04:09:58 mcooper Exp $"; + +@@ -314,7 +314,7 @@ + + bzero((char *)&me, sizeof(mntent_t)); + +- if (mntent = getmntent(fptr)) { ++ if ((mntent = getmntent(fptr))) { + me.me_path = mntent->mnt_dir; + me.me_type = mntent->mnt_type; + if (mntent->mnt_opts && hasmntopt(mntent, MNTOPT_RO)) +--- rdist-6.1.5/src/strcasecmp.c.cleanup 1998-11-10 05:16:52.000000000 +0100 ++++ rdist-6.1.5/src/strcasecmp.c 2003-12-17 11:38:16.000000000 +0100 +@@ -51,9 +51,9 @@ + }; + + strcasecmp(s1, s2) +- register char *s1, *s2; ++ char *s1, *s2; + { +- register char *cm = charmap; ++ char *cm = charmap; + + while (cm[*s1] == cm[*s2++]) + if (*s1++ == '\0') +@@ -62,10 +62,10 @@ + } + + strncasecmp(s1, s2, n) +- register char *s1, *s2; +- register int n; ++ char *s1, *s2; ++ int n; + { +- register char *cm = charmap; ++ char *cm = charmap; + + while (--n >= 0 && cm[*s1] == cm[*s2++]) + if (*s1++ == '\0') +--- rdist-6.1.5/src/strtol.c.cleanup 1994-03-17 00:25:50.000000000 +0100 ++++ rdist-6.1.5/src/strtol.c 2003-12-17 11:38:16.000000000 +0100 +@@ -54,13 +54,13 @@ + strtol(nptr, endptr, base) + char *nptr; + char **endptr; +- register int base; ++ int base; + { +- register char *s = nptr; +- register unsigned long acc; +- register int c; +- register unsigned long cutoff; +- register int neg = 0, any, cutlim; ++ char *s = nptr; ++ unsigned long acc; ++ int c; ++ unsigned long cutoff; ++ int neg = 0, any, cutlim; + + /* + * Skip white space and pick up leading +/- sign if any. +--- rdist-6.1.5/src/regex.c.cleanup 1998-11-10 05:14:28.000000000 +0100 ++++ rdist-6.1.5/src/regex.c 2003-12-17 11:39:14.000000000 +0100 +@@ -142,10 +142,8 @@ + */ + char * + re_comp(sp) +- register char *sp; + { +- register int c; +- register char *ep = expbuf; ++ char *ep = expbuf; + int cclcnt, numbra = 0; + char *lastep = 0; + char bracket[NBRA]; +@@ -266,10 +264,10 @@ + */ + int + re_exec(p1) +- register char *p1; ++ char *p1; + { +- register char *p2 = expbuf; +- register int c; ++ char *p2 = expbuf; ++ int c; + int rv; + + for (c = 0; c < NBRA; c++) { +@@ -306,9 +304,9 @@ + */ + static int + advance(lp, ep) +- register char *lp, *ep; ++ char *lp, *ep; + { +- register char *curlp; ++ char *curlp; + int ct, i; + int rv; + +@@ -413,10 +411,10 @@ + } + + backref(i, lp) +- register int i; +- register char *lp; ++ int i; ++ char *lp; + { +- register char *bp; ++ char *bp; + + bp = braslist[i]; + while (*bp++ == *lp++) +@@ -427,10 +425,10 @@ + + int + cclass(set, c, af) +- register char *set, c; ++ char *set, c; + int af; + { +- register int n; ++ int n; + + if (c == 0) + return(0); +--- rdist-6.1.5/include/defs.h.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/include/defs.h 2003-12-17 11:38:16.000000000 +0100 +@@ -30,11 +30,13 @@ + #include + #include + #include ++#include + #include + #include + #include +-#include + #include ++#include ++#include + + #include "version.h" + #include "config-def.h" +@@ -48,6 +50,9 @@ + #endif /* yacc */ + + #include ++#define _REGEX_RE_COMP ++#include ++ + + /* + * This belongs in os-svr4.h but many SVR4 OS's +@@ -321,12 +326,11 @@ + /* + * Our own declarations. + */ +-char *exptilde(); + char *makestr(); + char *xcalloc(); + char *xmalloc(); + char *xrealloc(); +-extern char *xbasename(); ++extern char *exptilde(); + extern char *getdistoptlist(); + extern char *getgroupname(); + extern char *getnlstr(); +@@ -336,44 +340,75 @@ + extern char *getversion(); + extern char *msgparseopts(); + extern char *searchpath(); ++extern char *xbasename(); ++extern int amatch(); + extern int any(); ++extern int becomeroot(); ++extern int becomeuser(); ++extern int except(); ++extern int execbrc(); ++extern int getfilesysinfo(); ++extern int getsocketpair(); + extern int init(); + extern int install(); + extern int isexec(); ++extern int is_nfs_mounted(); ++extern int is_ro_mounted(); ++extern int is_symlinked(); ++extern int match(); ++extern int okname(); + extern int parsedistopts(); ++extern int readrem(); + extern int remline(); ++extern int response(); ++extern int rshrcmd(); + extern int setfiletime(); ++extern int setnonblocking(); + extern int spawn(); ++extern int yylex(); ++extern int yyparse(); + extern struct subcmd *makesubcmd(); ++extern void append(); + extern void checkhostname(); + extern void cleanup(); + extern void complain(); ++extern void coredump(); ++extern void define(); ++extern void docmdargs(); + extern void docmds(); + extern void finish(); +-extern void log(); ++extern void freelinkinfo(); ++extern void insert(); + extern void logmsg(); + extern void lostconn(); + extern void markassigned(); ++extern void msgprconfig(); + extern void msgprusage(); ++extern void mysetlinebuf(); + extern void note(); + extern void runcmdspecial(); + extern void runcommand(); + extern void server(); ++extern void setargs_settup(); + extern void setprogname(); + extern void sighandler(); ++extern void usage(); + extern void waitup(); ++extern void yyerror(); ++extern WRITE_RETURN_T xwrite(); + struct namelist *expand(); + struct namelist *lookup(); + struct namelist *makenl(); +-extern WRITE_RETURN_T xwrite(); + + #if defined(ARG_TYPE) && ARG_TYPE == ARG_STDARG ++extern int sendcmd(char cmd, char *fmt, ...); + extern void debugmsg(int, char *, ...); + extern void error(char *, ...); + extern void fatalerr(char *, ...); + extern void message(int, char *, ...); + extern void setproctitle(char *fmt, ...); + #else ++extern int sendcmd(va_alist); + extern void debugmsg(); + extern void error(); + extern void fatalerr(); diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-msgsndnotify-loop.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-msgsndnotify-loop.patch new file mode 100644 index 00000000000..d183d918333 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-msgsndnotify-loop.patch @@ -0,0 +1,37 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/message.c.thestokes 2006-04-19 17:30:39.000000000 -0400 ++++ rdist-6.1.5/src/message.c 2006-04-19 17:36:37.000000000 -0400 +@@ -793,15 +793,20 @@ + char *msg; + { + static char buf[MSGBUFSIZ]; +- +- ++nerrs; +- +- if (isserver) +- (void) sprintf(buf, "REMOTE ERROR: %s", msg); +- else +- (void) sprintf(buf, "LOCAL ERROR: %s", msg); +- +- _message(MT_FERROR, buf); ++ /* Don't reenter this function. There is a nasty infinite recursion ++ case that pops up when msgsndnotify tries to exit. */ ++ static int inside=0; ++ ++ if(inside==0){ ++ ++nerrs; ++ inside=1; ++ ++ if (isserver) ++ (void) sprintf(buf, "REMOTE ERROR: %s", msg); ++ else ++ (void) sprintf(buf, "LOCAL ERROR: %s", msg); ++ _message(MT_FERROR, buf); ++ } + + exit(nerrs); + } diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-hardlink.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-hardlink.patch new file mode 100644 index 00000000000..baf8e303025 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-hardlink.patch @@ -0,0 +1,25 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/client.c.hardlink Thu Jun 3 13:56:31 1999 ++++ rdist-6.1.5/src/client.c Thu Jun 3 14:00:06 1999 +@@ -348,7 +348,7 @@ + lp->target = strdup(Tdest); + else + lp->target = NULL; +- if (!lp->pathname || !lp->src || !(Tdest && lp->target)) ++ if (!lp->pathname || !lp->src || (Tdest && !lp->target)) + fatalerr("Cannot malloc memory in linkinfo."); + + return((struct linkbuf *) NULL); +@@ -370,7 +370,7 @@ + "sendhardlink: rname='%s' pathname='%s' src='%s' target='%s'\n", + rname, lp->pathname, lp->src, lp->target); + +- if (*lp->target == CNULL) ++ if (lp->target == NULL || *lp->target == CNULL) + (void) sendcmd(C_RECVHARDLINK, "%o %s %s", + opts, lp->pathname, rname); + else { diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-lfs.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-lfs.patch new file mode 100644 index 00000000000..3fa8db8cd76 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-lfs.patch @@ -0,0 +1,142 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/client.c.lfs 2003-12-16 23:43:56.000000000 +0100 ++++ rdist-6.1.5/src/client.c 2003-12-16 23:46:56.000000000 +0100 +@@ -414,9 +414,9 @@ + /* + * Send file info + */ +- (void) sendcmd(C_RECVREG, "%o %04o %ld %ld %ld %s %s %s", ++ (void) sendcmd(C_RECVREG, "%o %04o %lld %ld %ld %s %s %s", + opts, stb->st_mode & 07777, +- (long) stb->st_size, ++ (off_t) stb->st_size, + stb->st_mtime, stb->st_atime, + user, group, rname); + if (response() < 0) { +@@ -424,8 +424,8 @@ + return(-1); + } + +- debugmsg(DM_MISC, "Send file '%s' %d bytes\n", +- rname, (long) stb->st_size); ++ debugmsg(DM_MISC, "Send file '%s' %lld bytes\n", ++ rname, (off_t) stb->st_size); + + /* + * Set remote time out alarm handler. +@@ -676,9 +676,9 @@ + /* + * Gather and send basic link info + */ +- (void) sendcmd(C_RECVSYMLINK, "%o %04o %ld %ld %ld %s %s %s", ++ (void) sendcmd(C_RECVSYMLINK, "%o %04o %lld %ld %ld %s %s %s", + opts, stb->st_mode & 07777, +- (long) stb->st_size, ++ (off_t) stb->st_size, + stb->st_mtime, stb->st_atime, + user, group, rname); + if (response() < 0) +@@ -858,7 +858,7 @@ + /* + * Parse size + */ +- size = strtol(cp, &cp, 10); ++ size = strtoll(cp, &cp, 10); + if (*cp++ != ' ') { + error("update: size not delimited"); + return(US_NOTHING); +@@ -910,8 +910,8 @@ + + debugmsg(DM_MISC, "update(%s,) local mode %04o remote mode %04o\n", + rname, lmode, rmode); +- debugmsg(DM_MISC, "update(%s,) size %d mtime %d owner '%s' grp '%s'\n", +- rname, (int) size, mtime, owner, group); ++ debugmsg(DM_MISC, "update(%s,) size %lld mtime %d owner '%s' grp '%s'\n", ++ rname, (off_t) size, mtime, owner, group); + + if (statp->st_mtime != mtime) { + if (statp->st_mtime < mtime && IS_ON(opts, DO_YOUNGER)) { +@@ -937,8 +937,8 @@ + } + + if (statp->st_size != size) { +- debugmsg(DM_MISC, "size does not match (%d != %d).\n", +- (int) statp->st_size, size); ++ debugmsg(DM_MISC, "size does not match (%lld != %lld).\n", ++ statp->st_size, size); + return(US_OUTDATE); + } + +--- rdist-6.1.5/src/server.c.lfs 1998-11-10 05:15:31.000000000 +0100 ++++ rdist-6.1.5/src/server.c 2003-12-16 23:50:19.000000000 +0100 +@@ -645,8 +645,8 @@ + case S_IFLNK: + case S_IFDIR: + case S_IFREG: +- (void) sendcmd(QC_YES, "%ld %ld %o %s %s", +- (long) stb.st_size, ++ (void) sendcmd(QC_YES, "%lld %ld %o %s %s", ++ (off_t) stb.st_size, + stb.st_mtime, + stb.st_mode & 07777, + getusername(stb.st_uid, target, options), +@@ -1388,7 +1388,7 @@ + /* + * Get file size + */ +- size = strtol(cp, &cp, 10); ++ size = strtoll(cp, &cp, 10); + if (*cp++ != ' ') { + error("recvit: size not delimited"); + return; +@@ -1441,7 +1441,7 @@ + } + + debugmsg(DM_MISC, +- "recvit: opts = %04o mode = %04o size = %d mtime = %d", ++ "recvit: opts = %04o mode = %04o size = %lld mtime = %d", + opts, mode, size, mtime); + debugmsg(DM_MISC, + "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d", +--- rdist-6.1.5/include/defs.h.lfs 2003-12-16 23:43:56.000000000 +0100 ++++ rdist-6.1.5/include/defs.h 2003-12-16 23:43:56.000000000 +0100 +@@ -22,6 +22,8 @@ + #include + #endif /* _POSIX_SOURCE */ + #include ++#include ++#include + #include + #include + #include +@@ -317,15 +319,6 @@ + #endif /* USE_STATDB */ + + /* +- * System function declarations +- */ +-char *hasmntopt(); +-char *strchr(); +-char *strdup(); +-char *strrchr(); +-char *strtok(); +- +-/* + * Our own declarations. + */ + char *exptilde(); +--- rdist-6.1.5/Makefile.local.lfs 1998-11-10 04:36:31.000000000 +0100 ++++ rdist-6.1.5/Makefile.local 2003-12-16 23:43:56.000000000 +0100 +@@ -20,7 +20,7 @@ + # Add any local definitions you want pass to the compiler to DEFS_LOCAL + # below. This includes those items found in "config/config.h". + # +-#DEFS_LOCAL = -DDIRECT_RCMD ++DEFS_LOCAL = -O2 -g -pipe -Wall -D_POSIX_SOURCE -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 + + # + # Add any local libraries that your system might need to LIBS_LOCAL below. diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-links.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-links.patch new file mode 100644 index 00000000000..e9994f2c9d8 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-links.patch @@ -0,0 +1,79 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/client.c.links Wed Feb 17 17:46:09 1999 ++++ rdist-6.1.5/src/client.c Wed Feb 17 17:51:15 1999 +@@ -309,6 +309,18 @@ + return(0); + } + ++void freelinkinfo(lp) ++ struct linkbuf *lp; ++{ ++ if (lp->pathname) ++ free(lp->pathname); ++ if (lp->src) ++ free(lp->src); ++ if (lp->target) ++ free(lp->target); ++ free(lp); ++} ++ + /* + * Save and retrieve hard link info + */ +@@ -317,6 +329,7 @@ + { + struct linkbuf *lp; + ++ /* xxx: linear search doesn't scale with many links */ + for (lp = ihead; lp != NULL; lp = lp->nextp) + if (lp->inum == statp->st_ino && lp->devnum == statp->st_dev) { + lp->count--; +@@ -329,12 +342,14 @@ + lp->inum = statp->st_ino; + lp->devnum = statp->st_dev; + lp->count = statp->st_nlink - 1; +- (void) strcpy(lp->pathname, target); +- (void) strcpy(lp->src, source); ++ lp->pathname = strdup(target); ++ lp->src = strdup(source); + if (Tdest) +- (void) strcpy(lp->target, Tdest); ++ lp->target = strdup(Tdest); + else +- *lp->target = CNULL; ++ lp->target = NULL; ++ if (!lp->pathname || !lp->src || !(Tdest && lp->target)) ++ fatalerr("Cannot malloc memory in linkinfo."); + + return((struct linkbuf *) NULL); + } +--- rdist-6.1.5/src/docmd.c.links Wed Feb 17 17:51:23 1999 ++++ rdist-6.1.5/src/docmd.c Wed Feb 17 17:52:44 1999 +@@ -586,7 +586,7 @@ + if (!nflag) { + register struct linkbuf *nextl, *l; + +- for (l = ihead; l != NULL; free((char *)l), l = nextl) { ++ for (l = ihead; l != NULL; freelinkinfo(l), l = nextl) { + nextl = l->nextp; + if (contimedout || IS_ON(opts, DO_IGNLNKS) || + l->count == 0) +--- rdist-6.1.5/include/defs.h.links Wed Feb 17 17:52:58 1999 ++++ rdist-6.1.5/include/defs.h Wed Feb 17 17:53:47 1999 +@@ -276,9 +276,9 @@ + ino_t inum; + dev_t devnum; + int count; +- char pathname[BUFSIZ]; +- char src[BUFSIZ]; +- char target[BUFSIZ]; ++ char *pathname; ++ char *src; ++ char *target; + struct linkbuf *nextp; + }; + diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-linux.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-linux.patch new file mode 100644 index 00000000000..b56fd38b9e2 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-linux.patch @@ -0,0 +1,28 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +diff: rdist-6.1.5/config/mf: No such file or directory +--- rdist-6.1.5/config/os-linux.h.linux Mon Nov 9 22:59:59 1998 ++++ rdist-6.1.5/config/os-linux.h Thu Nov 12 14:50:35 1998 +@@ -58,7 +58,7 @@ + /* + * Select the type of executable file format. + */ +-#define EXE_TYPE EXE_AOUT ++#define EXE_TYPE EXE_ELF + + /* + * Select the type of statfs() system call (if any). +--- rdist-6.1.5/mf/Makefile.var.linux Tue Nov 10 00:02:11 1998 ++++ rdist-6.1.5/mf/Makefile.var Thu Nov 12 14:50:35 1998 +@@ -67,7 +67,7 @@ + # + # Name of YACC. + # +-#YACC = bison -y ++YACC = bison -y + + OPT = -g + RM = rm diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-makefile-add-ldflags.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-makefile-add-ldflags.patch new file mode 100644 index 00000000000..cc82e16cc23 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-makefile-add-ldflags.patch @@ -0,0 +1,23 @@ +Add LDFLAGS variable to Makefile so that extra linker flags can be sent via this variable. + +Upstream-Status: Inappropriate [no upstream] + +Signed-off-by: Yi Zhao + +diff --git a/src/Makefile.real b/src/Makefile.real +index 02179e4..9070974 100644 +--- a/src/Makefile.real ++++ b/src/Makefile.real +@@ -36,10 +36,10 @@ all: src + src: $(CLIENT_BIN) $(SERVER_BIN) + + $(SERVER_BIN): $(SERVEROBJS) $(COMMONOBJS) $(MISSINGOBJS) +- $(CC) -o $@ $(SERVEROBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS) ++ $(CC) -o $@ $(SERVEROBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS) $(LDFLAGS) + + $(CLIENT_BIN): $(CLIENTOBJS) $(COMMONOBJS) $(MISSINGOBJS) +- $(CC) -o $@ $(CLIENTOBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS) ++ $(CC) -o $@ $(CLIENTOBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS) $(LDFLAGS) + + $(CLIENTOBJS) $(SERVEROBJS): $(HFILES) y.tab.h + diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-maxargs.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-maxargs.patch new file mode 100644 index 00000000000..e816394469b --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-maxargs.patch @@ -0,0 +1,16 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from:rdist +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/setargs.c.maxargs 1998-11-10 05:15:56.000000000 +0100 ++++ rdist-6.1.5/src/setargs.c 2003-09-04 14:39:03.000000000 +0200 +@@ -58,7 +58,7 @@ + * Set process argument functions + */ + +-#define MAXUSERENVIRON 40 ++#define MAXUSERENVIRON 1024 + char **Argv = NULL; + char *LastArgv = NULL; + char *UserEnviron[MAXUSERENVIRON+1]; diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-mkstemp.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-mkstemp.patch new file mode 100644 index 00000000000..e49e3e4d1d5 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-mkstemp.patch @@ -0,0 +1,28 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/server.c.mkstemp 2004-05-25 14:29:37.279312752 +0200 ++++ rdist-6.1.5/src/server.c 2004-05-25 14:31:27.050744340 +0200 +@@ -1479,11 +1479,18 @@ + *file = '/'; + } + fd = mkstemp(new); +- if (fd < 0) { ++ /* ++ * Don't consider it a fatal error if mkstemp() fails ++ * because parent directory didn't exist. (Missing ++ * parents are created later (in recvfile()) ++ */ ++ if ((fd < 0) && (errno != ENOENT)) { + error("Cannot set file name."); + return; ++ } else if (fd >= 0) { ++ close(fd); ++ unlink(new); /* Or symlink() will fail */ + } +- close(fd); + } + + /* diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-oldpath.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-oldpath.patch new file mode 100644 index 00000000000..493b1839766 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-oldpath.patch @@ -0,0 +1,59 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/config/config.h.oldpath Tue Nov 10 04:59:48 1998 ++++ rdist-6.1.5/config/config.h Thu Jan 31 17:33:21 2002 +@@ -39,7 +39,7 @@ + * don't have the old rdist, then uncomment the "#undef" line. + */ + #ifndef _PATH_OLDRDIST +-#define _PATH_OLDRDIST "/usr/ucb/oldrdist" /* Enable compat */ ++#define _PATH_OLDRDIST "/usr/bin/oldrdist" /* Enable compat */ + #endif + /*#undef _PATH_OLDRDIST*/ /* Disable compat */ + +--- rdist-6.1.5/doc/rdist.man.oldpath Tue Nov 10 06:38:53 1998 ++++ rdist-6.1.5/doc/rdist.man Thu Jan 31 17:36:57 2002 +@@ -170,10 +170,9 @@ + This option will only work if + .I rdist + was compiled with the location of the old rdist +-(usually either +-.I /usr/ucb/oldrdist +-or +-.I /usr/old/rdist) ++(the path ++.I /usr/bin/oldrdist ++is used on Red Hat linux) + and that program is available at run time. + .PP + .I Rdist +@@ -558,7 +557,7 @@ + should be of form + .sp + .RS +-\fIfacility\fB=\fItypes\fB:\fIfacility\fB=\fItypes... ++\fIfacility\fB=\fItypes\fB:\fIfacility\fB=\fItypes...\fR + .RE + .sp + The valid facility names are: +--- rdist-6.1.5/README.oldpath Fri Jul 19 19:24:09 1996 ++++ rdist-6.1.5/README Thu Jan 31 17:33:21 2002 +@@ -65,12 +65,12 @@ + + The way the old rdist started a server rdist is to run "rdist + -Server". If the new rdist is run with the "-Server" option, then it +-will exec a copy of the old rdist (usually /usr/old/rdist or +-/usr/ucb/oldrdist). In this way, you get compatibility with hosts ++will exec a copy of the old rdist (the path /usr/bin/oldrdist in Red ++Hat linux). In this way, you get compatibility with hosts + running the old rdist attempting to rdist to a machine running new + rdist. If your host running new rdist wants to rdist to a host + running the old rdist, then it must run the old rdist program +-(/usr/old/rdist or /usr/ucb/oldrdist). ++(/usr/bin/oldrdist in Red Hat linux). + + The definition _PATH_OLDRDIST in "config/config.h" controls the + location of the old rdist. If this is not defined, or the defined diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-ssh.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-ssh.patch new file mode 100644 index 00000000000..d3982cf4140 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-ssh.patch @@ -0,0 +1,14 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/rshrcmd.c.dist Tue Dec 12 08:20:56 1995 ++++ rdist-6.1.5/src/rshrcmd.c Wed Dec 11 07:14:13 1996 +@@ -64,5 +64,5 @@ + sp[0]. */ + (void) close(sp[0]); +- if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0 || dup2(0, 2) < 0) { ++ if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0) { + error("dup2 failed: %s.", SYSERR); + _exit(255); diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-stat64.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-stat64.patch new file mode 100644 index 00000000000..b20953ef3de --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-stat64.patch @@ -0,0 +1,85 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/src/filesys.c.stat64 2005-05-04 14:11:03.000000000 +0200 ++++ rdist-6.1.5/src/filesys.c 2005-05-04 14:11:10.000000000 +0200 +@@ -430,8 +430,8 @@ + */ + int getfilesysinfo(file, freespace, freefiles) + char *file; +- long *freespace; +- long *freefiles; ++ fsblkcnt_t *freespace; ++ fsfilcnt_t *freefiles; + { + #if defined(STATFS_TYPE) + static statfs_t statfsbuf; +--- rdist-6.1.5/src/server.c.stat64 2005-05-04 14:11:23.000000000 +0200 ++++ rdist-6.1.5/src/server.c 2005-05-04 14:20:34.000000000 +0200 +@@ -62,8 +62,8 @@ + int catname = 0; /* cat name to target name */ + char *sptarget[32]; /* stack of saved ptarget's for directories */ + char *fromhost = NULL; /* Client hostname */ +-static long min_freespace = 0; /* Minimium free space on a filesystem */ +-static long min_freefiles = 0; /* Minimium free # files on a filesystem */ ++static fsblkcnt_t min_freespace = 0; /* Minimium free space on a filesystem */ ++static fsfilcnt_t min_freefiles = 0; /* Minimium free # files on a filesystem */ + int oumask; /* Old umask */ + + /* +@@ -1326,7 +1326,7 @@ + fatalerr("Expected digit, got '%s'.", cp); + return; + } +- min_freespace = (unsigned long) atoi(cp); ++ min_freespace = (fsblkcnt_t) atoll(cp); + break; + + case SC_FREEFILES: /* Minimium free files */ +@@ -1334,7 +1334,7 @@ + fatalerr("Expected digit, got '%s'.", cp); + return; + } +- min_freefiles = (unsigned long) atoi(cp); ++ min_freefiles = (fsfilcnt_t) atoll(cp); + break; + + case SC_LOGGING: /* Logging options */ +@@ -1364,7 +1364,8 @@ + time_t mtime, atime; + char *owner, *group, *file; + char new[MAXPATHLEN]; +- long freespace = -1, freefiles = -1; ++ fsfilcnt_t freefiles = -1; ++ fsblkcnt_t freespace = -1; + char *cp = cmd; + + /* +@@ -1499,7 +1500,7 @@ + */ + if (min_freespace || min_freefiles) { + /* Convert file size to kilobytes */ +- long fsize = (long) (size / 1024); ++ fsblkcnt_t fsize = (fsblkcnt_t) (size / 1024); + + if (getfilesysinfo(target, &freespace, &freefiles) != 0) + return; +@@ -1511,14 +1512,14 @@ + if (min_freespace && (freespace >= 0) && + (freespace - fsize < min_freespace)) { + error( +- "%s: Not enough free space on filesystem: min %d free %d", ++ "%s: Not enough free space on filesystem: min %lld free %lld", + target, min_freespace, freespace); + return; + } + if (min_freefiles && (freefiles >= 0) && + (freefiles - 1 < min_freefiles)) { + error( +- "%s: Not enough free files on filesystem: min %d free %d", ++ "%s: Not enough free files on filesystem: min %lld free %lld", + target, min_freefiles, freefiles); + return; + } diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-svr4.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-svr4.patch new file mode 100644 index 00000000000..bf73b71e1e5 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-svr4.patch @@ -0,0 +1,15 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/build/os-type.svr4 2003-12-17 12:44:18.000000000 +0100 ++++ rdist-6.1.5/build/os-type 2003-12-17 12:44:29.000000000 +0100 +@@ -83,7 +83,6 @@ + if [ -z "${OS}" -a ! -z "${uname}" ]; then + case "`$uname -a | tr '[A-Z]' '[a-z]'`" in + osf1*) OS=break;; +- *"4.0"*) OS=svr4;; # There has to be a better way + *" dcosx "*) OS=dcosx;; + *"cx/ux"*) OS=cxux;; + *"hp-ux"*) # HP-UX 9.x diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-varargs.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-varargs.patch new file mode 100644 index 00000000000..e6edbc44d85 --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-varargs.patch @@ -0,0 +1,16 @@ +Upstream-Status: Inappropriate [1] + +[1] Not the author, the patch is from: +http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm + +--- rdist-6.1.5/config/os-linux.h.varargs 2003-06-17 17:52:33.000000000 +0200 ++++ rdist-6.1.5/config/os-linux.h 2003-06-17 17:53:07.000000000 +0200 +@@ -68,7 +68,7 @@ + /* + * Type of arg functions we have. + */ +-#define ARG_TYPE ARG_VARARGS ++#define ARG_TYPE ARG_STDARG + + /* + * Do we have select()? diff --git a/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb b/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb new file mode 100644 index 00000000000..cea1f08f9dd --- /dev/null +++ b/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb @@ -0,0 +1,37 @@ +SUMMARY = "Remote file distribution client and server" +DESCRIPTION = "\ +Rdist is a program to maintain identical copies of files over multiple \ +hosts. It preserves the owner, group, mode, and mtime of files if \ +possible and can update programs that are executing. \ +" +SECTION = "console/network" +LICENSE = "BSD-4-Clause" +LIC_FILES_CHKSUM = "file://Copyright;md5=3f47ec9f64b11c8192ee05a66b5c2755" + +SRC_URI = "http://www.magnicomp.com/download/${BPN}/${BP}.tar.gz" +SRC_URI[md5sum] = "546779700af70aa5f9103e08782cdcac" +SRC_URI[sha256sum] = "2bb0d0f5904eadc9e7fe3d60c15389d6897fcf884211070e289a6c710ff37f96" + +SRC_URI += "file://rdist-6.1.5-linux.patch \ + file://rdist-6.1.5-links.patch \ + file://rdist-6.1.5-oldpath.patch \ + file://rdist-6.1.5-hardlink.patch \ + file://rdist-6.1.5-bison.patch \ + file://rdist-6.1.5-varargs.patch \ + file://rdist-6.1.5-maxargs.patch \ + file://rdist-6.1.5-lfs.patch \ + file://rdist-6.1.5-cleanup.patch \ + file://rdist-6.1.5-svr4.patch \ + file://rdist-6.1.5-ssh.patch \ + file://rdist-6.1.5-mkstemp.patch \ + file://rdist-6.1.5-stat64.patch \ + file://rdist-6.1.5-fix-msgsndnotify-loop.patch \ + file://rdist-6.1.5-bb-build.patch \ + file://rdist-6.1.5-makefile-add-ldflags.patch \ +" + +DEPENDS = "bison-native" + +inherit autotools-brokensep + +EXTRA_OEMAKE = "BIN_GROUP=root MAN_GROUP=root RDIST_MODE=755 RDISTD_MODE=755 MAN_MODE=644" diff --git a/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch b/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch new file mode 100644 index 00000000000..eaaf30460ff --- /dev/null +++ b/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch @@ -0,0 +1,34 @@ +From 2fa326b26dc479942367dc4283e2f87372403988 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 Jun 2017 09:32:04 -0700 +Subject: [PATCH] rtnl_flush: Error on failed write() + +Fixes +route.c:45:2: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result] +| write(fd, "-1", 2); +| ^~~~~~~~~~~~~~~~~~ + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + route.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/route.c b/route.c +index c552d1f..fc5c31e 100644 +--- a/route.c ++++ b/route.c +@@ -42,7 +42,8 @@ static void rtnl_flush(void) + if (fd < 0) + return; + +- write(fd, "-1", 2); ++ if (write(fd, "-1", 2) < 0 ) ++ perror("write"); + close(fd); + } + +-- +2.13.1 + diff --git a/meta-networking/recipes-connectivity/relayd/relayd_git.bb b/meta-networking/recipes-connectivity/relayd/relayd_git.bb new file mode 100644 index 00000000000..98dc41a0932 --- /dev/null +++ b/meta-networking/recipes-connectivity/relayd/relayd_git.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Layer 3 relay daemon" +SECTION = "console/network" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://main.c;endline=17;md5=86aad799085683e0a2e1c2684a20bab2" + +DEPENDS = "libubox" + +SRC_URI = "git://git.openwrt.org/project/relayd.git \ + file://0001-rtnl_flush-Error-on-failed-write.patch \ +" + +SRCREV = "ad0b25ad74345d367c62311e14b279f5ccb8ef13" +PV = "0.0.1+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit cmake diff --git a/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch b/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch new file mode 100644 index 00000000000..0ab3436fc56 --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch @@ -0,0 +1,31 @@ +Upstream-Status: Submitted [https://github.com/samba-team/samba/pull/70] + +Signed-off-by: Andreas Oberritter + +From 50eac4fd30944e5e1d83060757633fe0ed572723 Mon Sep 17 00:00:00 2001 +From: Andreas Oberritter +Date: Wed, 30 Nov 2016 16:25:06 +0100 +Subject: [PATCH] packaging: Avoid timeout for nmbd if started offline with + systemd + +If no network connection appears within DefaultTimeoutStartSec +(~ 90s) after startup, nmbd fails to notify systemd and will +therefore get killed. + +Signed-off-by: Andreas Oberritter +--- + packaging/systemd/nmb.service | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/packaging/systemd/nmb.service b/packaging/systemd/nmb.service +index 992c0cd..555c9ab 100644 +--- a/packaging/systemd/nmb.service ++++ b/packaging/systemd/nmb.service +@@ -10,6 +10,7 @@ EnvironmentFile=-/etc/sysconfig/samba + ExecStart=/usr/sbin/nmbd $NMBDOPTIONS + ExecReload=/usr/bin/kill -HUP $MAINPID + LimitCORE=infinity ++TimeoutStartSec=0 + + [Install] + WantedBy=multi-user.target diff --git a/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch b/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch new file mode 100644 index 00000000000..cdf7a38c18b --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch @@ -0,0 +1,32 @@ +From 5413f97290d3126262eb309ecbcf7769509f2a11 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Tue, 10 Nov 2015 00:48:35 -0500 +Subject: [PATCH 6/7] avoid using colon in the checking msg + +Upstream-Status: Pending + +colon is used as the separator when parse from +a answers file, the colon here makes it never +get the right answer. + +Signed-off-by: Jackie Huang +--- + wscript_configure_system_mitkrb5 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5 +index a62d00b..a2d89f0 100644 +--- a/wscript_configure_system_mitkrb5 ++++ b/wscript_configure_system_mitkrb5 +@@ -240,7 +240,7 @@ conf.CHECK_CODE(''' + ''', + 'HAVE_WRFILE_KEYTAB', + headers='krb5.h', lib='krb5', execute=True, +- msg="Checking whether the WRFILE:-keytab is supported"); ++ msg="Checking whether the WRFILE -keytab is supported"); + # Check for KRB5_DEPRECATED handling + conf.CHECK_CODE('''#define KRB5_DEPRECATED 1 + #include ''', +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/samba/samba/16-do-not-check-xsltproc-manpages.patch b/meta-networking/recipes-connectivity/samba/samba/16-do-not-check-xsltproc-manpages.patch new file mode 100644 index 00000000000..c37cfcde445 --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/16-do-not-check-xsltproc-manpages.patch @@ -0,0 +1,43 @@ +Don't check xsltproc manpages + +Signed-off-by: Bian Naimeng + +Index: samba-4.4.2/lib/ldb/wscript +=================================================================== +--- samba-4.4.2.orig/lib/ldb/wscript ++++ samba-4.4.2/lib/ldb/wscript +@@ -65,7 +65,7 @@ def configure(conf): + conf.define('USING_SYSTEM_LDB', 1) + + if conf.env.standalone_ldb: +- conf.CHECK_XSLTPROC_MANPAGES() ++ #conf.CHECK_XSLTPROC_MANPAGES() + + # we need this for the ldap backend + if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): +Index: samba-4.4.2/lib/talloc/wscript +=================================================================== +--- samba-4.4.2.orig/lib/talloc/wscript ++++ samba-4.4.2/lib/talloc/wscript +@@ -56,7 +56,7 @@ def configure(conf): + if conf.env.standalone_talloc: + conf.env.TALLOC_COMPAT1 = Options.options.TALLOC_COMPAT1 + +- conf.CHECK_XSLTPROC_MANPAGES() ++ #conf.CHECK_XSLTPROC_MANPAGES() + + if not conf.env.disable_python: + # also disable if we don't have the python libs installed +Index: samba-4.4.2/lib/tdb/wscript +=================================================================== +--- samba-4.4.2.orig/lib/tdb/wscript ++++ samba-4.4.2/lib/tdb/wscript +@@ -92,7 +92,7 @@ def configure(conf): + not conf.env.disable_tdb_mutex_locking): + conf.define('USE_TDB_MUTEX_LOCKING', 1) + +- conf.CHECK_XSLTPROC_MANPAGES() ++ #conf.CHECK_XSLTPROC_MANPAGES() + + if not conf.env.disable_python: + # also disable if we don't have the python libs installed diff --git a/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch b/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch new file mode 100644 index 00000000000..e112b3b40ba --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch @@ -0,0 +1,58 @@ +Some modules such as dynamic library maybe cann't be imported while cross compile, +we just check whether does the module exist. + +Signed-off-by: Bian Naimeng + +Index: samba-4.4.2/buildtools/wafsamba/samba_bundled.py +=================================================================== +--- samba-4.4.2.orig/buildtools/wafsamba/samba_bundled.py ++++ samba-4.4.2/buildtools/wafsamba/samba_bundled.py +@@ -2,6 +2,7 @@ + + import sys + import Build, Options, Logs ++import imp, os + from Configure import conf + from samba_utils import TO_LIST + +@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li + # versions + minversion = minimum_library_version(conf, libname, minversion) + +- try: +- m = __import__(modulename) +- except ImportError: +- found = False +- else: ++ # Find module in PYTHONPATH ++ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]]) ++ if stuff: + try: +- version = m.__version__ +- except AttributeError: ++ m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2]) ++ except ImportError: + found = False ++ ++ if conf.env.CROSS_COMPILE: ++ # Some modules such as dynamic library maybe cann't be imported ++ # while cross compile, we just check whether the module exist ++ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1])) ++ found = True + else: +- found = tuplize_version(version) >= tuplize_version(minversion) ++ try: ++ version = m.__version__ ++ except AttributeError: ++ found = False ++ else: ++ found = tuplize_version(version) >= tuplize_version(minversion) ++ finally: ++ if stuff[0]: ++ stuff[0].close() ++ else: ++ found = False ++ + if not found and not conf.LIB_MAY_BE_BUNDLED(libname): + Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion)) + sys.exit(1) diff --git a/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch b/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch new file mode 100644 index 00000000000..025ac2775fb --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch @@ -0,0 +1,63 @@ +From 9a2d6315ff206b2a47100dfd85afe3af56576995 Mon Sep 17 00:00:00 2001 +From: Wenzong Fan +Date: Thu, 10 Dec 2015 04:20:51 -0500 +Subject: [PATCH] Add config option without-valgrind + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan +--- + lib/replace/wscript | 4 +++- + source3/wscript | 5 ++++- + wscript | 4 ++++ + 3 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/lib/replace/wscript b/lib/replace/wscript +index f0040b1..aca73af 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -101,7 +101,9 @@ struct foo bar = { .y = 'X', .x = 1 }; + + conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') + +- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ if not Options.options.disable_valgrind: ++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ + conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') + conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') + conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h malloc.h') +diff --git a/source3/wscript b/source3/wscript +index bac3dd5..a5c51ea 100644 +--- a/source3/wscript ++++ b/source3/wscript +@@ -1016,7 +1016,10 @@ syscall(SYS_setgroups32, 0, NULL); + Logs.warn("--with-dnsupdate=yes but gssapi support not sufficient") + else: + conf.DEFINE('WITH_DNS_UPDATES', 1) +- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ ++ if not Options.options.disable_valgrind: ++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ + if Options.options.developer: + if conf.CONFIG_SET('HAVE_VALGRIND_H') or conf.CONFIG_SET('HAVE_VALGRIND_VALGRIND_H'): + conf.DEFINE('VALGRIND', '1') +diff --git a/wscript b/wscript +index 7679c0f..681ac17 100644 +--- a/wscript ++++ b/wscript +@@ -72,6 +72,10 @@ def set_options(opt): + help=("Disable systemd integration"), + action='store_false', dest='enable_systemd') + ++ opt.add_option('--without-valgrind', ++ help=("Disable use of the valgrind headers"), ++ action="store_true", dest='disable_valgrind', default=False) ++ + gr = opt.option_group('developer options') + + opt.tool_options('python') # options for disabling pyc or pyo compilation +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch b/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch new file mode 100644 index 00000000000..894bc8bb2c2 --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch @@ -0,0 +1,15 @@ +Index: samba-4.6.2/ctdb/tests/src/test_mutex_raw.c +=================================================================== +--- samba-4.6.2.orig/ctdb/tests/src/test_mutex_raw.c ++++ samba-4.6.2/ctdb/tests/src/test_mutex_raw.c +@@ -166,8 +166,10 @@ int main(int argc, const char **argv) + if (ret == 0) { + pthread_mutex_unlock(mutex); + } ++#ifdef __GLIBC__ + } else if (ret == EBUSY) { + printf("pid=%u\n", mutex->__data.__owner); ++#endif + } else if (ret == 0) { + pthread_mutex_unlock(mutex); + } diff --git a/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch b/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch new file mode 100644 index 00000000000..eb06866f46b --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch @@ -0,0 +1,19 @@ +Index: samba-4.6.2/nsswitch/wins.c +=================================================================== +--- samba-4.6.2.orig/nsswitch/wins.c ++++ samba-4.6.2/nsswitch/wins.c +@@ -39,6 +39,14 @@ static pthread_mutex_t wins_nss_mutex = + #define INADDRSZ 4 + #endif + ++#ifndef NETDB_INTERNAL ++#define NETDB_INTERNAL (-1) ++#endif ++ ++#ifndef NETDB_SUCCESS ++#define NETDB_SUCCESS 0 ++#endif ++ + NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname, + struct hostent *he, + char *buffer, diff --git a/meta-networking/recipes-connectivity/samba/samba/samba-4.2.7-pam.patch b/meta-networking/recipes-connectivity/samba/samba/samba-4.2.7-pam.patch new file mode 100644 index 00000000000..6b9ade920e5 --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/samba-4.2.7-pam.patch @@ -0,0 +1,36 @@ +Lifted from gentoo and ported to 4.4.5 + +http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.2.7-pam.patch + +Signed-off-by: Khem Raj + + +Index: samba-4.4.5/source3/wscript +=================================================================== +--- samba-4.4.5.orig/source3/wscript ++++ samba-4.4.5/source3/wscript +@@ -873,7 +873,7 @@ msg.msg_accrightslen = sizeof(fd); + if conf.env.with_iconv: + conf.DEFINE('HAVE_ICONV', 1) + +- if Options.options.with_pam: ++ if Options.options.with_pam != False: + use_pam=True + conf.CHECK_HEADERS('security/pam_appl.h pam/pam_appl.h') + if not conf.CONFIG_SET('HAVE_SECURITY_PAM_APPL_H') and not conf.CONFIG_SET('HAVE_PAM_PAM_APPL_H'): +@@ -945,6 +945,15 @@ int i; i = PAM_RADIO_TYPE; + if use_pam: + conf.DEFINE('WITH_PAM', 1) + conf.DEFINE('WITH_PAM_MODULES', 1) ++ else: ++ Logs.warn("PAM disabled") ++ use_pam=False ++ conf.undefine('WITH_PAM') ++ conf.undefine('WITH_PAM_MODULES') ++ conf.undefine('HAVE_SECURITY_PAM_APPL_H') ++ conf.undefine('PAM_RHOST') ++ conf.undefine('PAM_TTY') ++ conf.undefine('HAVE_PAM_PAM_APPL_H') + + seteuid = False + diff --git a/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch b/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch new file mode 100644 index 00000000000..71db99c5d21 --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch @@ -0,0 +1,87 @@ +Musl does not have _r versions of getent() and getpwent() APIs + +Taken from gentoo +http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.3.9-remove-getpwent_r.patch + +Signed-off-by: Khem Raj + +Index: samba-4.4.5/source4/torture/local/nss_tests.c +=================================================================== +--- samba-4.4.5.orig/source4/torture/local/nss_tests.c ++++ samba-4.4.5/source4/torture/local/nss_tests.c +@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct tortu + return true; + } + +- + static bool test_getgrgid(struct torture_context *tctx, + gid_t gid, + struct group *grp_p) +@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct tort + return true; + } + ++#if HAVE_GETPWENT_R + static bool test_enum_r_passwd(struct torture_context *tctx, + struct passwd **pwd_array_p, + size_t *num_pwd_p) +@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct to + + return true; + } ++#endif + + static bool torture_assert_passwd_equal(struct torture_context *tctx, + const struct passwd *p1, +@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture + struct passwd *pwd, pwd1, pwd2; + size_t num_pwd; + +- torture_assert(tctx, test_enum_r_passwd(tctx, &pwd, &num_pwd), ++ torture_assert(tctx, test_enum_passwd(tctx, &pwd, &num_pwd), + "failed to enumerate passwd"); + + for (i=0; i < num_pwd; i++) { +@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct t + struct passwd *pwd, pwd1, pwd2, pwd3, pwd4; + size_t num_pwd; + +- torture_assert(tctx, test_enum_r_passwd(tctx, &pwd, &num_pwd), ++ torture_assert(tctx, test_enum_passwd(tctx, &pwd, &num_pwd), + "failed to enumerate passwd"); + + for (i=0; i < num_pwd; i++) { +@@ -531,6 +532,7 @@ static bool test_enum_group(struct tortu + return true; + } + ++#if HAVE_GETGRENT_R + static bool test_enum_r_group(struct torture_context *tctx, + struct group **grp_array_p, + size_t *num_grp_p) +@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct tor + + return true; + } ++#endif + + static bool torture_assert_group_equal(struct torture_context *tctx, + const struct group *g1, +@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_ + struct group *grp, grp1, grp2; + size_t num_grp; + +- torture_assert(tctx, test_enum_r_group(tctx, &grp, &num_grp), ++ torture_assert(tctx, test_enum_group(tctx, &grp, &num_grp), + "failed to enumerate group"); + + for (i=0; i < num_grp; i++) { +@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct to + struct group *grp, grp1, grp2, grp3, grp4; + size_t num_grp; + +- torture_assert(tctx, test_enum_r_group(tctx, &grp, &num_grp), ++ torture_assert(tctx, test_enum_group(tctx, &grp, &num_grp), + "failed to enumerate group"); + + for (i=0; i < num_grp; i++) { diff --git a/meta-networking/recipes-connectivity/samba/samba/volatiles.03_samba b/meta-networking/recipes-connectivity/samba/samba/volatiles.03_samba new file mode 100644 index 00000000000..4bdfa7d2c9d --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba/volatiles.03_samba @@ -0,0 +1,3 @@ +# +d root root 0755 /var/log/samba none +d root root 0755 /var/run/samba none diff --git a/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb b/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb new file mode 100644 index 00000000000..2b227c95d1d --- /dev/null +++ b/meta-networking/recipes-connectivity/samba/samba_4.6.7.bb @@ -0,0 +1,256 @@ +HOMEPAGE = "https://www.samba.org/" +SECTION = "console/network" + +LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ + file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " + +SAMBA_MIRROR = "http://samba.org/samba/ftp" +MIRRORS += "\ +${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \ +${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \ +" + +SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ + file://16-do-not-check-xsltproc-manpages.patch \ + file://20-do-not-import-target-module-while-cross-compile.patch \ + file://21-add-config-option-without-valgrind.patch \ + file://0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch \ + file://0006-avoid-using-colon-in-the-checking-msg.patch \ + file://netdb_defines.patch \ + file://glibc_only.patch \ + file://volatiles.03_samba \ + " +SRC_URI_append_libc-musl = " \ + file://samba-4.2.7-pam.patch \ + file://samba-4.3.9-remove-getpwent_r.patch \ + " + +SRC_URI[md5sum] = "c6ee5c766016d59908c8fb672fbbd445" +SRC_URI[sha256sum] = "9ef24393de08390f236cabccd6a420b5cea304e959cbf1a99ff317325db3ddfa" + +inherit systemd waf-samba cpan-base perlnative update-rc.d +# remove default added RDEPENDS on perl +RDEPENDS_${PN}_remove = "perl" + +DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb krb5 libbsd libaio libpam" +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + +LSB = "" +LSB_linuxstdbase = "lsb" + +INITSCRIPT_NAME = "samba" +INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ." + +SYSTEMD_PACKAGES = "${PN}-base winbind" +SYSTEMD_SERVICE_${PN}-base = "nmb.service smb.service" +SYSTEMD_SERVICE_winbind = "winbind.service" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \ + acl cups ldap \ +" + +RDEPENDS_${PN}-base += "${LSB}" +RDEPENDS_${PN}-ctdb-tests += "bash util-linux-getopt" + +PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl" +PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin" +PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups" +PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" +PACKAGECONFIG[sasl] = ",,cyrus-sasl" +PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd" +PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi" +PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi" +PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind," +PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust" +PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive" + + +SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2" +SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4" +SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4" +SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}" + +SAMBA4_LIBS="heimdal,!zlib,!popt,!talloc,!pytalloc,!pytalloc-util,!tevent,!pytevent,!tdb,!pytdb,!ldb,!pyldb" + +EXTRA_OECONF += "--enable-fhs \ + --with-piddir=/run \ + --with-sockets-dir=/run/samba \ + --with-modulesdir=${libdir}/samba \ + --with-lockdir=${localstatedir}/lib/samba \ + --with-cachedir=${localstatedir}/lib/samba \ + --disable-gnutls \ + --disable-rpath-install \ + --with-shared-modules=${SAMBA4_MODULES} \ + --bundled-libraries=${SAMBA4_LIBS} \ + --with-system-mitkrb5 \ + --without-ad-dc \ + ${@base_conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \ + --with-cluster-support \ + --with-profiling-data \ + --with-libiconv=${STAGING_DIR_HOST}${prefix} \ + --with-pam --with-pammodulesdir=${base_libdir}/security \ + " + +LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +do_install_append() { + for section in 1 5 7; do + install -d ${D}${mandir}/man$section + install -m 0644 ctdb/doc/*.$section ${D}${mandir}/man$section + done + for section in 1 5 7 8; do + install -d ${D}${mandir}/man$section + install -m 0644 docs/manpages/*.$section ${D}${mandir}/man$section + done + + install -d ${D}${systemd_system_unitdir} + install -m 0644 packaging/systemd/*.service ${D}${systemd_system_unitdir} + sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \ + -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \ + -i ${D}${systemd_system_unitdir}/*.service + + install -d ${D}${sysconfdir}/tmpfiles.d + install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf + echo "d ${localstatedir}/log/samba 0755 root root -" \ + >> ${D}${sysconfdir}/tmpfiles.d/samba.conf + if [ "${LSB}" = "lsb" ]; then + install -d ${D}${sysconfdir}/init.d + install -m 0755 packaging/LSB/samba.sh ${D}${sysconfdir}/init.d/samba + else + install -d ${D}${sysconfdir}/init.d + install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba + sed -e 's,/opt/samba/bin,${sbindir},g' \ + -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \ + -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \ + -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \ + -e 's,/usr/bin,${base_bindir},g' \ + -i ${D}${sysconfdir}/init.d/samba + fi + + install -d ${D}${sysconfdir}/samba + echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts + install -m644 packaging/LSB/smb.conf ${D}${sysconfdir}/samba/smb.conf + install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba + + install -d ${D}${sysconfdir}/default + install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba + + # install ctdb config file and test cases + install -D -m 0644 ${S}/ctdb/tests/onnode/nodes ${D}${sysconfdir}/ctdb/nodes + # the items are from ctdb/tests/run_tests.sh + for d in onnode takeover tool eventscripts cunit simple complex; do + testdir=${D}${datadir}/ctdb-tests/$d + install -d $testdir + cp ${S}/ctdb/tests/$d/*.sh $testdir + cp -r ${S}/ctdb/tests/$d/scripts ${S}/ctdb/tests/$d/stubs $testdir || true + done + + # fix file-rdeps qa warning + if [ -f ${D}${bindir}/onnode ]; then + sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode + fi + + chmod 0750 ${D}${sysconfdir}/sudoers.d + rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log +} + +PACKAGES =+ "${PN}-python ${PN}-pidl \ + ${PN}-dsdb-modules ${PN}-testsuite registry-tools \ + winbind \ + ${PN}-common ${PN}-base ${PN}-ctdb-tests \ + smbclient" + +python samba_populate_packages() { + def module_hook(file, pkg, pattern, format, basename): + pn = d.getVar('PN', True) + d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg) + + mlprefix = d.getVar('MLPREFIX', True) or '' + pam_libdir = d.expand('${base_libdir}/security') + pam_pkgname = mlprefix + 'pam-plugin%s' + do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True) + + libdir = d.getVar('libdir', True) + do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True) + pkglibdir = '%s/samba' % libdir + do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True) + moduledir = '%s/samba/auth' % libdir + do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True) + moduledir = '%s/samba/pdb' % libdir + do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True) +} + +PACKAGESPLITFUNCS_prepend = "samba_populate_packages " + +RDEPENDS_${PN} += "${PN}-base ${PN}-python ${PN}-dsdb-modules" +RDEPENDS_${PN}-python += "pytalloc python-tdb" + +FILES_${PN}-base = "${sbindir}/nmbd \ + ${sbindir}/smbd \ + ${sysconfdir}/init.d \ + ${localstatedir}/lib/samba \ + ${localstatedir}/nmbd \ + ${localstatedir}/spool/samba \ + ${systemd_system_unitdir}/nmb.service \ + ${systemd_system_unitdir}/samba.service \ + ${systemd_system_unitdir}/smb.service" + +FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \ + ${bindir}/ctdb_run_cluster_tests \ + ${sysconfdir}/ctdb/nodes \ + ${datadir}/ctdb-tests \ + ${datadir}/ctdb/tests \ + " + +FILES_${BPN}-common = "${sysconfdir}/default \ + ${sysconfdir}/samba \ + ${sysconfdir}/tmpfiles.d \ +" + +FILES_${PN} += "${libdir}/vfs/*.so \ + ${libdir}/charset/*.so \ + ${libdir}/*.dat \ + ${libdir}/auth/*.so \ +" + +FILES_${PN}-dsdb-modules = "${libdir}/samba/ldb" + +FILES_${PN}-testsuite = "${bindir}/gentest \ + ${bindir}/locktest \ + ${bindir}/masktest \ + ${bindir}/ndrdump \ + ${bindir}/smbtorture" + +FILES_registry-tools = "${bindir}/regdiff \ + ${bindir}/regpatch \ + ${bindir}/regshell \ + ${bindir}/regtree" + +FILES_winbind = "${sbindir}/winbindd \ + ${bindir}/wbinfo \ + ${bindir}/ntlm_auth \ + ${libdir}/samba/idmap \ + ${libdir}/samba/nss_info \ + ${libdir}/winbind_krb5_locator.so \ + ${sysconfdir}/init.d/winbind \ + ${systemd_system_unitdir}/winbind.service" + +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" + +FILES_smbclient = "${bindir}/cifsdd \ + ${bindir}/rpcclient \ + ${bindir}/smbcacls \ + ${bindir}/smbclient \ + ${bindir}/smbcquotas \ + ${bindir}/smbget \ + ${bindir}/smbspool \ + ${bindir}/smbtar \ + ${bindir}/smbtree \ + ${libdir}/samba/smbspool_krb5_wrapper" + +RDEPENDS_${PN}-pidl_append = " perl" +FILES_${PN}-pidl = "${bindir}/pidl ${datadir}/perl5/Parse" diff --git a/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb b/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb index 5e8d9d9bf98..fc304fae728 100644 --- a/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb +++ b/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb @@ -1,5 +1,6 @@ DESCRIPTION = "set Linux HDLC packet radio modem driver port information" HOMEPAGE = "https://www.kernel.org/pub/linux/utils/net/hdlc" +SECTION = "comm" LICENSE = "GPLv2 & GPLv2+ " LIC_FILES_CHKSUM = "file://sethdlc.c;endline=10;md5=90f936879e9f8b755a138aeb348782eb" diff --git a/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch b/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch new file mode 100644 index 00000000000..1520553a454 --- /dev/null +++ b/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch @@ -0,0 +1,35 @@ +From 815e861721a9c43efddb78521147145ebc7569ca Mon Sep 17 00:00:00 2001 +From: Zhiquan Li +Date: Fri, 13 Nov 2015 17:40:24 +0800 +Subject: [PATCH] fix do_package failed since snort 2.9.7.0 + +Remove redundant '/' as a workround for below error: +/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character + +It's a rpm debugedit bug: +* http://sourceforge.net/p/snort/mailman/message/34130268/ +* https://bugzilla.redhat.com/show_bug.cgi?id=304121 + +Upstream-Status:Inappropriate [embedded specific] + +Signed-off-by: Zhiquan Li +--- + src/snort.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/snort.h b/src/snort.h +index 8308e57..499d157 100644 +--- a/src/snort.h ++++ b/src/snort.h +@@ -39,7 +39,7 @@ + #include "sfdaq.h" + #include "sf_types.h" + #include "sfutil/sflsq.h" +-#include "sfutil//sfActionQueue.h" ++#include "sfutil/sfActionQueue.h" + #include "profiler.h" + #include "rules.h" + #include "treenodes.h" +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch b/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch new file mode 100644 index 00000000000..e6afcabaa85 --- /dev/null +++ b/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch @@ -0,0 +1,50 @@ +Upstream-Status:Inappropriate [embedded specific] + +fix the below error: +checking for daq flow ID... configure: +configure: error: cannot run test program while cross compiling + + +--- a/configure.in 2015-10-28 10:36:42.918512690 +0800 ++++ b/configure.in 2015-10-28 10:37:36.738510048 +0800 +@@ -716,23 +716,23 @@ + # [DAQ version supports address space ID in header.]) + #fi + +-AC_MSG_CHECKING([for daq flow ID]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include +-]], +-[[ +- DAQ_PktHdr_t hdr; +- hdr.flow_id = 0; +-]])], +-[have_daq_flow_id="yes"], +-[have_daq_flow_id="no"]) +-AC_MSG_RESULT($have_daq_flow_id) +-if test "x$have_daq_flow_id" = "xyes"; then +- AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], +- [DAQ version supports flow ID in header.]) +-fi ++#AC_MSG_CHECKING([for daq flow ID]) ++#AC_RUN_IFELSE( ++#[AC_LANG_PROGRAM( ++#[[ ++##include ++#]], ++#[[ ++# DAQ_PktHdr_t hdr; ++# hdr.flow_id = 0; ++#]])], ++have_daq_flow_id="yes" ++#[have_daq_flow_id="no"]) ++#AC_MSG_RESULT($have_daq_flow_id) ++#if test "x$have_daq_flow_id" = "xyes"; then ++# AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], ++# [DAQ version supports flow ID in header.]) ++#fi + + AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) + AC_RUN_IFELSE( diff --git a/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch b/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch new file mode 100644 index 00000000000..1a13298ca22 --- /dev/null +++ b/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch @@ -0,0 +1,51 @@ +Upstream-Status:Inappropriate [embedded specific] + +fix the below error: +checking for DAQ_VERDICT_RETRY... configure: +configure: error: cannot run test program while cross compiling + + +--- a/configure.in 2015-10-28 10:45:18.174487395 +0800 ++++ b/configure.in 2015-10-28 10:45:47.586485951 +0800 +@@ -734,23 +734,23 @@ + # [DAQ version supports flow ID in header.]) + #fi + +-AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) +-AC_RUN_IFELSE( +-[AC_LANG_PROGRAM( +-[[ +-#include +-]], +-[[ +- DAQ_Verdict verdict; +- verdict = DAQ_VERDICT_RETRY; +-]])], +-[have_daq_verdict_retry="yes"], +-[have_daq_verdict_retry="no"]) +-AC_MSG_RESULT($have_daq_verdict_retry) +-if test "x$have_daq_verdict_retry" = "xyes"; then +- AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1], +- [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.]) +-fi ++#AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) ++#AC_RUN_IFELSE( ++#[AC_LANG_PROGRAM( ++#[[ ++##include ++#]], ++#[[ ++# DAQ_Verdict verdict; ++# verdict = DAQ_VERDICT_RETRY; ++#]])], ++have_daq_verdict_retry="yes" ++#[have_daq_verdict_retry="no"]) ++#AC_MSG_RESULT($have_daq_verdict_retry) ++#if test "x$have_daq_verdict_retry" = "xyes"; then ++# AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1], ++# [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.]) ++#fi + + # any sparc platform has to have this one defined. + AC_MSG_CHECKING(for sparc) + diff --git a/meta-networking/recipes-connectivity/snort/snort/fix-host-contamination-when-enable-static-daq.patch b/meta-networking/recipes-connectivity/snort/snort/fix-host-contamination-when-enable-static-daq.patch new file mode 100644 index 00000000000..2becc062443 --- /dev/null +++ b/meta-networking/recipes-connectivity/snort/snort/fix-host-contamination-when-enable-static-daq.patch @@ -0,0 +1,21 @@ +Upstream-Status: Inappropriate [embedded specific] + +When enable static daq for snort, it calls to daq-modules-config to get link +library and library path. Library path is useless for oe and cause host +contamination issue. So filter it. + +Signed-off-by: Kai Kang +--- +diff --git a/configure.in b/configure.in +index fded45b..a247bb9 100644 +--- a/configure.in ++++ b/configure.in +@@ -658,7 +658,7 @@ fi + + if test "x$enable_static_daq" = "xyes"; then + LDAQ="" +- LIBS="${LIBS} `daq-modules-config --static --libs`" ++ LIBS="${LIBS} `daq-modules-config --static --libs | sed 's#-L[^ ]*##g'`" + AC_CHECK_LIB([daq_static], [daq_load_modules], + [LIBS="-ldaq_static ${LIBS}"], [LDAQ="no"], [ ]) + diff --git a/meta-networking/recipes-connectivity/snort/snort/not-hardcoded-libdir.patch b/meta-networking/recipes-connectivity/snort/snort/not-hardcoded-libdir.patch deleted file mode 100644 index 075ec138b18..00000000000 --- a/meta-networking/recipes-connectivity/snort/snort/not-hardcoded-libdir.patch +++ /dev/null @@ -1,279 +0,0 @@ -[PATCH] do not hardcoded libdir - -Upstream-Status: Pending - -libdir is hardcoded to ${exec_prefix}/lib, but we want it to support multilib - -Signed-off-by: Roy.Li ---- - src/dynamic-examples/dynamic-preprocessor/Makefile.am | 2 +- - src/dynamic-examples/dynamic-rule/Makefile.am | 2 +- - src/dynamic-plugins/sf_engine/Makefile.am | 2 +- - src/dynamic-preprocessors/dcerpc2/Makefile.am | 2 +- - src/dynamic-preprocessors/dnp3/Makefile.am | 2 +- - src/dynamic-preprocessors/dns/Makefile.am | 2 +- - src/dynamic-preprocessors/file/Makefile.am | 2 +- - src/dynamic-preprocessors/ftptelnet/Makefile.am | 2 +- - src/dynamic-preprocessors/gtp/Makefile.am | 2 +- - src/dynamic-preprocessors/imap/Makefile.am | 2 +- - src/dynamic-preprocessors/modbus/Makefile.am | 2 +- - src/dynamic-preprocessors/pop/Makefile.am | 2 +- - src/dynamic-preprocessors/reputation/Makefile.am | 2 +- - src/dynamic-preprocessors/rzb_saac/Makefile.am | 2 +- - src/dynamic-preprocessors/sdf/Makefile.am | 2 +- - src/dynamic-preprocessors/sip/Makefile.am | 2 +- - src/dynamic-preprocessors/smtp/Makefile.am | 2 +- - src/dynamic-preprocessors/ssh/Makefile.am | 2 +- - src/dynamic-preprocessors/ssl/Makefile.am | 2 +- - 19 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/src/dynamic-examples/dynamic-preprocessor/Makefile.am b/src/dynamic-examples/dynamic-preprocessor/Makefile.am -index 255755e..1cafead 100644 ---- a/src/dynamic-examples/dynamic-preprocessor/Makefile.am -+++ b/src/dynamic-examples/dynamic-preprocessor/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include - --noinst_libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+noinst_libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - noinst_lib_LTLIBRARIES = lib_sfdynamic_preprocessor_example.la - -diff --git a/src/dynamic-examples/dynamic-rule/Makefile.am b/src/dynamic-examples/dynamic-rule/Makefile.am -index e5338d2..82eb212 100644 ---- a/src/dynamic-examples/dynamic-rule/Makefile.am -+++ b/src/dynamic-examples/dynamic-rule/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include - --noinst_libdir = ${exec_prefix}/lib/snort_dynamicrules -+noinst_libdir = ${exec_prefix}${base_libdir}/snort_dynamicrules - - noinst_lib_LTLIBRARIES = lib_sfdynamic_example_rule.la - -diff --git a/src/dynamic-plugins/sf_engine/Makefile.am b/src/dynamic-plugins/sf_engine/Makefile.am -index d6a6200..3d270c3 100644 ---- a/src/dynamic-plugins/sf_engine/Makefile.am -+++ b/src/dynamic-plugins/sf_engine/Makefile.am -@@ -5,7 +5,7 @@ INCLUDES = @INCLUDES@ - - lib_LTLIBRARIES = libsf_engine.la - --libdir = ${exec_prefix}/lib/snort_dynamicengine -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicengine - - libsf_engine_la_LDFLAGS = -export-dynamic -module @XCCFLAGS@ - -diff --git a/src/dynamic-preprocessors/dcerpc2/Makefile.am b/src/dynamic-preprocessors/dcerpc2/Makefile.am -index 9843073..8a0caa5 100644 ---- a/src/dynamic-preprocessors/dcerpc2/Makefile.am -+++ b/src/dynamic-preprocessors/dcerpc2/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs -I$(srcdir)/includes - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_dce2_preproc.la - -diff --git a/src/dynamic-preprocessors/dnp3/Makefile.am b/src/dynamic-preprocessors/dnp3/Makefile.am -index 1358862..18e2178 100644 ---- a/src/dynamic-preprocessors/dnp3/Makefile.am -+++ b/src/dynamic-preprocessors/dnp3/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_dnp3_preproc.la - -diff --git a/src/dynamic-preprocessors/dns/Makefile.am b/src/dynamic-preprocessors/dns/Makefile.am -index f22d90e..49d2f55 100644 ---- a/src/dynamic-preprocessors/dns/Makefile.am -+++ b/src/dynamic-preprocessors/dns/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_dns_preproc.la - -diff --git a/src/dynamic-preprocessors/file/Makefile.am b/src/dynamic-preprocessors/file/Makefile.am -index d71c0fd..834f7ac 100644 ---- a/src/dynamic-preprocessors/file/Makefile.am -+++ b/src/dynamic-preprocessors/file/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs -I./include - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_file_preproc.la - -diff --git a/src/dynamic-preprocessors/ftptelnet/Makefile.am b/src/dynamic-preprocessors/ftptelnet/Makefile.am -index fe73835..3457231 100644 ---- a/src/dynamic-preprocessors/ftptelnet/Makefile.am -+++ b/src/dynamic-preprocessors/ftptelnet/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs -I$(srcdir)/includes - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_ftptelnet_preproc.la - -diff --git a/src/dynamic-preprocessors/gtp/Makefile.am b/src/dynamic-preprocessors/gtp/Makefile.am -index 51c961a..d7fb9b2 100644 ---- a/src/dynamic-preprocessors/gtp/Makefile.am -+++ b/src/dynamic-preprocessors/gtp/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs -I$(srcdir)/includes - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_gtp_preproc.la - -diff --git a/src/dynamic-preprocessors/imap/Makefile.am b/src/dynamic-preprocessors/imap/Makefile.am -index 533e43d..9efcbc4 100644 ---- a/src/dynamic-preprocessors/imap/Makefile.am -+++ b/src/dynamic-preprocessors/imap/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_imap_preproc.la - -diff --git a/src/dynamic-preprocessors/modbus/Makefile.am b/src/dynamic-preprocessors/modbus/Makefile.am -index 05fc63e..e4f1415 100644 ---- a/src/dynamic-preprocessors/modbus/Makefile.am -+++ b/src/dynamic-preprocessors/modbus/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_modbus_preproc.la - -diff --git a/src/dynamic-preprocessors/pop/Makefile.am b/src/dynamic-preprocessors/pop/Makefile.am -index d4b07b3..1345bc6 100644 ---- a/src/dynamic-preprocessors/pop/Makefile.am -+++ b/src/dynamic-preprocessors/pop/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_pop_preproc.la - -diff --git a/src/dynamic-preprocessors/reputation/Makefile.am b/src/dynamic-preprocessors/reputation/Makefile.am -index 4e16142..14ba0cb 100644 ---- a/src/dynamic-preprocessors/reputation/Makefile.am -+++ b/src/dynamic-preprocessors/reputation/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs -I$(srcdir)/includes - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_reputation_preproc.la - -diff --git a/src/dynamic-preprocessors/rzb_saac/Makefile.am b/src/dynamic-preprocessors/rzb_saac/Makefile.am -index f0b0912..6ebe04e 100644 ---- a/src/dynamic-preprocessors/rzb_saac/Makefile.am -+++ b/src/dynamic-preprocessors/rzb_saac/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --pkglibdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+pkglibdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - pkglib_LTLIBRARIES = sf_rzb_saac_preproc.la - -diff --git a/src/dynamic-preprocessors/sdf/Makefile.am b/src/dynamic-preprocessors/sdf/Makefile.am -index 97b416e..04b5ce5 100644 ---- a/src/dynamic-preprocessors/sdf/Makefile.am -+++ b/src/dynamic-preprocessors/sdf/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_sdf_preproc.la - -diff --git a/src/dynamic-preprocessors/sip/Makefile.am b/src/dynamic-preprocessors/sip/Makefile.am -index 67ac1e1..b4f360f 100644 ---- a/src/dynamic-preprocessors/sip/Makefile.am -+++ b/src/dynamic-preprocessors/sip/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs -I$(srcdir)/includes - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_sip_preproc.la - -diff --git a/src/dynamic-preprocessors/smtp/Makefile.am b/src/dynamic-preprocessors/smtp/Makefile.am -index 3b5893f..96750df 100644 ---- a/src/dynamic-preprocessors/smtp/Makefile.am -+++ b/src/dynamic-preprocessors/smtp/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_smtp_preproc.la - -diff --git a/src/dynamic-preprocessors/ssh/Makefile.am b/src/dynamic-preprocessors/ssh/Makefile.am -index 0eab645..5ae9b80 100644 ---- a/src/dynamic-preprocessors/ssh/Makefile.am -+++ b/src/dynamic-preprocessors/ssh/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_ssh_preproc.la - -diff --git a/src/dynamic-preprocessors/ssl/Makefile.am b/src/dynamic-preprocessors/ssl/Makefile.am -index 4ac2943..8d3abe3 100644 ---- a/src/dynamic-preprocessors/ssl/Makefile.am -+++ b/src/dynamic-preprocessors/ssl/Makefile.am -@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS=foreign no-dependencies - - INCLUDES = -I../include -I${srcdir}/../libs - --libdir = ${exec_prefix}/lib/snort_dynamicpreprocessor -+libdir = ${exec_prefix}${base_libdir}/snort_dynamicpreprocessor - - lib_LTLIBRARIES = libsf_ssl_preproc.la - --- -1.9.1 - diff --git a/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb b/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb deleted file mode 100644 index 17d6792520b..00000000000 --- a/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb +++ /dev/null @@ -1,93 +0,0 @@ -DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows." -HOMEPAGE = "http://www.snort.org/" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5" - -DEPENDS = "libpcap libpcre daq libdnet util-linux" - -# Blacklist: -# -# http://errors.yoctoproject.org/Errors/Details/8936/ -# -# snort failure is again very nasty, because it's m4 which eats all -# available memory and swap before it's killed by OOM killer. -# -# Luckily it always picked m4 -# -# [Wed Feb 18 19:00:51 2015] Out of memory: Kill process 28522 (m4) score 961 or sacrifice child -# [Wed Feb 18 19:10:51 2015] Out of memory: Kill process 45228 (m4) score 958 or sacrifice child -# ... -PNBLACKLIST[snort] ?= "BROKEN: autotools processing causes OOM condition on configure" - -SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \ - file://snort.init \ - file://disable-inaddr-none.patch \ - file://disable-dap-address-space-id.patch \ - file://0001-libpcap-search-sysroot-for-headers.patch \ - file://not-hardcoded-libdir.patch \ -" - -SRC_URI[tarball.md5sum] = "18111f6de3989ca89add36077a7c2659" -SRC_URI[tarball.sha256sum] = "3cc6c8a9b52f4c863a5736a73b4012aff340b50b5e002771b04d4877f47cd19e" - -inherit autotools gettext update-rc.d pkgconfig - -INITSCRIPT_NAME = "snort" -INITSCRIPT_PARAMS = "defaults" - -EXTRA_OECONF = " \ - --enable-gre \ - --enable-linux-smp-stats \ - --enable-reload \ - --enable-reload-error-restart \ - --enable-targetbased \ - --disable-static-daq \ - --with-dnet-includes=${STAGING_INCDIR} \ - --with-dnet-libraries=${STAGING_LIBDIR} \ - " - -# if you want to disable it, you need to patch configure.in first -# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no") -# is called even with --without-openssl-includes -PACKAGECONFIG ?= "openssl" -PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl," - -do_install_append() { - install -d ${D}/${sysconfdir}/snort/rules - install -d ${D}/${sysconfdir}/snort/preproc_rules - install -d ${D}${sysconfdir}/init.d - for i in map config conf dtd; do - cp ${S}/etc/*.$i ${D}/${sysconfdir}/snort/ - done - cp ${S}/preproc_rules/*.rules ${D}/${sysconfdir}/snort/preproc_rules/ - install -m 755 ${WORKDIR}/snort.init ${D}/${sysconfdir}/init.d/snort - mkdir -p ${D}/${localstatedir}/log/snort - install -d ${D}/var/log/snort -} - -FILES_${PN} += " \ - ${libdir}/snort_dynamicengine/*.so.* \ - ${libdir}/snort_dynamicpreprocessor/*.so.* \ - ${libdir}/snort_dynamicrules/*.so.* \ - " -FILES_${PN}-dbg += " \ - ${libdir}/snort_dynamicengine/.debug \ - ${libdir}/snort_dynamicpreprocessor/.debug \ - ${libdir}/snort_dynamicrules/.debug \ - " -FILES_${PN}-staticdev += " \ - ${libdir}/snort_dynamicengine/*.a \ - ${libdir}/snort_dynamicpreprocessor/*.a \ - ${libdir}/snort_dynamicrules/*.a \ - ${libdir}/snort/dynamic_preproc/*.a \ - ${libdir}/snort/dynamic_output/*.a \ - " -FILES_${PN}-dev += " \ - ${libdir}/snort_dynamicengine/*.la \ - ${libdir}/snort_dynamicpreprocessor/*.la \ - ${libdir}/snort_dynamicrules/*.la \ - ${libdir}/snort_dynamicengine/*.so \ - ${libdir}/snort_dynamicpreprocessor/*.so \ - ${libdir}/snort_dynamicrules/*.so \ - ${prefix}/src/snort_dynamicsrc \ - " diff --git a/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb b/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb new file mode 100644 index 00000000000..2034b85fb5b --- /dev/null +++ b/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb @@ -0,0 +1,105 @@ +DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows." +HOMEPAGE = "http://www.snort.org/" +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5" + +DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native" +DEPENDS_append_libc-musl = " libtirpc" + +SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \ + file://snort.init \ + file://disable-inaddr-none.patch \ + file://disable-dap-address-space-id.patch \ + file://disable-daq-flow-id.patch \ + file://disable-daq-verdict-retry.patch \ + file://0001-libpcap-search-sysroot-for-headers.patch \ + file://0001-fix-do_package-failed-since-snort-2.9.7.0.patch \ + file://fix-host-contamination-when-enable-static-daq.patch \ +" + +SRC_URI[tarball.md5sum] = "fd271788c0f8876be87a858a9142f202" +SRC_URI[tarball.sha256sum] = "ad03f11b5301b16642199a86aa90388eaa53f5003f83b0c5595745a490047be1" + +inherit autotools gettext update-rc.d pkgconfig + +INITSCRIPT_NAME = "snort" +INITSCRIPT_PARAMS = "defaults" + +EXTRA_OECONF = " \ + --enable-gre \ + --enable-linux-smp-stats \ + --enable-reload \ + --enable-reload-error-restart \ + --enable-targetbased \ + --enable-static-daq \ + --with-dnet-includes=${STAGING_INCDIR} \ + --with-dnet-libraries=${STAGING_LIBDIR} \ + --with-libpcre-includes=${STAGING_INCDIR} \ + --with-libpcre-libraries=${STAGING_LIBDIR} \ + --with-daq-includes=${STAGING_INCDIR} \ + --with-daq-libraries=${STAGING_LIBDIR} \ +" + +# if you want to disable it, you need to patch configure.in first +# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no") +# is called even with --without-openssl-includes +PACKAGECONFIG ?= "openssl lzma" +PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl," +PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz," + +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + +do_install_append() { + install -d ${D}${sysconfdir}/snort/rules + install -d ${D}${sysconfdir}/snort/preproc_rules + install -d ${D}${sysconfdir}/init.d + for i in map config conf dtd; do + cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/ + done + + # fix the hardcoded path and lib name + # comment out the rules that are not provided + sed -i -e 's#/usr/local/lib#${libdir}#' \ + -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \ + -e 's#\(libsf_engine.so\)#\1.0#' \ + -e 's/^\(include $RULE_PATH\)/#\1/' \ + -e 's/^\(dynamicdetection\)/#\1/' \ + -e '/preprocessor reputation/,/blacklist/ s/^/#/' \ + ${D}${sysconfdir}/snort/snort.conf + + cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/ + install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort + mkdir -p ${D}${localstatedir}/log/snort + install -d ${D}/var/log/snort + + sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc +} + +FILES_${PN} += " \ + ${libdir}/snort_dynamicengine/*.so.* \ + ${libdir}/snort_dynamicpreprocessor/*.so.* \ + ${libdir}/snort_dynamicrules/*.so.* \ +" +FILES_${PN}-dbg += " \ + ${libdir}/snort_dynamicengine/.debug \ + ${libdir}/snort_dynamicpreprocessor/.debug \ + ${libdir}/snort_dynamicrules/.debug \ +" +FILES_${PN}-staticdev += " \ + ${libdir}/snort_dynamicengine/*.a \ + ${libdir}/snort_dynamicpreprocessor/*.a \ + ${libdir}/snort_dynamicrules/*.a \ + ${libdir}/snort/dynamic_preproc/*.a \ + ${libdir}/snort/dynamic_output/*.a \ +" +FILES_${PN}-dev += " \ + ${libdir}/snort_dynamicengine/*.la \ + ${libdir}/snort_dynamicpreprocessor/*.la \ + ${libdir}/snort_dynamicrules/*.la \ + ${libdir}/snort_dynamicengine/*.so \ + ${libdir}/snort_dynamicpreprocessor/*.so \ + ${libdir}/snort_dynamicrules/*.so \ + ${prefix}/src/snort_dynamicsrc \ +" diff --git a/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb b/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb index 467f2a81fb0..19cfe46b7ba 100644 --- a/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb +++ b/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb @@ -3,6 +3,7 @@ DESCRIPTION = "UFW stands for Uncomplicated Firewall, and is program for \ managing a netfilter firewall. It provides a command line interface and aims \ to be uncomplicated and easy to use." HOMEPAGE = "https://launchpad.net/ufw" +SECTION = "net" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" @@ -29,12 +30,22 @@ RDEPENDS_${PN} = " \ RRECOMMENDS_${PN} = " \ kernel-module-ipv6 \ + kernel-module-nf-conntrack-ipv6 \ + kernel-module-nf-log-common \ + kernel-module-nf-log-ipv4 \ + kernel-module-nf-log-ipv6 \ + kernel-module-nf-addrtype \ + kernel-module-nf-limit \ + kernel-module-nf-log \ + kernel-module-nf-recent \ " +# Certain items are explicitly put under /lib, not base_libdir when installed. +# FILES_${PN} += " \ ${sbindir}/* \ ${datadir}/ufw/* \ - ${base_libdir}/ufw/* \ + /lib/ufw/* \ ${sysconfdir}/ufw/* \ ${sysconfdir}/default/ufw \ " diff --git a/meta-networking/recipes-connectivity/vlan/vlan-1.9/0001-Add-printf-format-and-silence-format-security-warnin.patch b/meta-networking/recipes-connectivity/vlan/vlan-1.9/0001-Add-printf-format-and-silence-format-security-warnin.patch new file mode 100644 index 00000000000..ebcfc7c2ff6 --- /dev/null +++ b/meta-networking/recipes-connectivity/vlan/vlan-1.9/0001-Add-printf-format-and-silence-format-security-warnin.patch @@ -0,0 +1,34 @@ +From 400b8f235377f677a7a760f1e3a1cd26d95140bc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 16 Jun 2017 22:58:18 -0700 +Subject: [PATCH] Add printf format and silence format-security warnings + +Fix + +vconfig.c:66:4: error: format not a string literal and no format arguments [-Werror=format-security] + fprintf(stdout,usage); + ^~~~~~~ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + vconfig.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/vconfig.c b/vconfig.c +index 5057cfd..83137ba 100644 +--- a/vconfig.c ++++ b/vconfig.c +@@ -63,7 +63,7 @@ static char* usage = + " is OFF.\n"; + + void show_usage() { +- fprintf(stdout,usage); ++ fprintf(stdout, "%s", usage); + } + + int hex_to_bytes(char* bytes, int bytes_length, char* hex_str) { +-- +2.13.1 + diff --git a/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb b/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb index 086f559a7d8..bd55efce27a 100644 --- a/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb +++ b/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb @@ -1,15 +1,21 @@ SUMMARY = "VLAN provides vconfig utility" +HOMEPAGE = "http://www.candelatech.com/~greear/vlan.html" +SECTION = "misc" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://vconfig.c;md5=293ef69c4e88434d37a5ee577a5288cb" +LIC_FILES_CHKSUM = "file://vconfig.c;beginline=1;endline=19;md5=094ca47de36c20c598b15b32c270ce0a" SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV}.orig.tar.gz \ - file://no-HOME-includes.patch" + file://no-HOME-includes.patch \ + file://0001-Add-printf-format-and-silence-format-security-warnin.patch \ +" SRC_URI[md5sum] = "5f0c6060b33956fb16e11a15467dd394" SRC_URI[sha256sum] = "3b8f0a1bf0d3642764e5f646e1f3bbc8b1eeec474a77392d9aeb4868842b4cca" S = "${WORKDIR}/${BPN}" +EXTRA_OEMAKE = "-e MAKEFLAGS=" + # comment out MakeInclude in Makefile which sets build environment do_configure_append () { sed -i 's/^ include/#^include/' ${S}/Makefile diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch new file mode 100644 index 00000000000..184c7943b51 --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch @@ -0,0 +1,26 @@ +From 48e16e9ae7d8e4c42282bd82cbbd9a6d346a5c00 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sun, 2 Dec 2012 02:16:54 +0100 +Subject: [PATCH 1/8] search for log-help in build dir + +Signed-off-by: Khem Raj +--- + makeman.pl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/makeman.pl b/makeman.pl +index cf241a1..2d73432 100755 +--- a/makeman.pl ++++ b/makeman.pl +@@ -30,7 +30,7 @@ my $vpnc = './vpnc'; + # indenting lists (those originally starting with an asterisk). I hope + # this pays off when converting the manpage to HTML or such. + +-open my $LONGHELP, '-|', "$vpnc --long-help"; ++open my $LONGHELP, '-|', "cat ./long-help"; + my $vpnc_options = ''; + my $relative_indent = 0; + my $indent_needed = 0; +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch new file mode 100644 index 00000000000..6f00d3b894e --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch @@ -0,0 +1,49 @@ +From d565b4a5e0045f1e40e0e462920ed5b8faca9eec Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Sun, 2 Dec 2012 02:16:54 +0100 +Subject: [PATCH 2/8] Fix vpnc install for cross compile + +--- + Makefile | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/Makefile b/Makefile +index 69f5aca..a15782e 100644 +--- a/Makefile ++++ b/Makefile +@@ -133,21 +133,21 @@ install-common: all + else \ + install vpnc-script $(DESTDIR)$(ETCDIR); \ + fi +- install -m600 vpnc.conf $(DESTDIR)$(ETCDIR)/default.conf +- install -m755 vpnc-disconnect $(DESTDIR)$(SBINDIR) +- install -m755 pcf2vpnc $(DESTDIR)$(BINDIR) +- install -m644 vpnc.8 $(DESTDIR)$(MANDIR)/man8 +- install -m644 pcf2vpnc.1 $(DESTDIR)$(MANDIR)/man1 +- install -m644 cisco-decrypt.1 $(DESTDIR)$(MANDIR)/man1 +- install -m644 COPYING $(DESTDIR)$(DOCDIR) ++ install -m 600 vpnc.conf $(DESTDIR)$(ETCDIR)/default.conf ++ install -m 755 vpnc-disconnect $(DESTDIR)$(SBINDIR) ++ install -m 755 pcf2vpnc $(DESTDIR)$(BINDIR) ++ install -m 644 vpnc.8 $(DESTDIR)$(MANDIR)/man8 ++ install -m 644 pcf2vpnc.1 $(DESTDIR)$(MANDIR)/man1 ++ install -m 644 cisco-decrypt.1 $(DESTDIR)$(MANDIR)/man1 ++ install -m 644 COPYING $(DESTDIR)$(DOCDIR) + + install : install-common +- install -m755 vpnc $(DESTDIR)$(SBINDIR) +- install -m755 cisco-decrypt $(DESTDIR)$(BINDIR) ++ install -m 755 vpnc $(DESTDIR)$(SBINDIR) ++ install -m 755 cisco-decrypt $(DESTDIR)$(BINDIR) + + install-strip : install-common +- install -s -m755 vpnc $(DESTDIR)$(SBINDIR) +- install -s -m755 cisco-decrypt $(DESTDIR)$(BINDIR) ++ install -s -m 755 vpnc $(DESTDIR)$(SBINDIR) ++ install -s -m 755 cisco-decrypt $(DESTDIR)$(BINDIR) + + uninstall : + rm -f $(DESTDIR)$(SBINDIR)/vpnc \ +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch new file mode 100644 index 00000000000..bb7730647b8 --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch @@ -0,0 +1,30 @@ +From 6b49020893f999df56392b49b1a289cb96a113a1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 29 Mar 2017 22:08:17 -0700 +Subject: [PATCH 3/8] error.h is specific to glibc on linux + +Signed-off-by: Khem Raj +--- + sysdep.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/sysdep.h b/sysdep.h +index 137bf6d..6a323f0 100644 +--- a/sysdep.h ++++ b/sysdep.h +@@ -37,9 +37,10 @@ int tun_read(int fd, unsigned char *buf, int len); + int tun_get_hwaddr(int fd, char *dev, uint8_t *hwaddr); + + /***************************************************************************/ +-#if defined(__linux__) || defined(__GLIBC__) ++#if defined(__linux__) ++#if defined(__GLIBC__) + #include +- ++#endif + #define HAVE_VASPRINTF 1 + #define HAVE_ASPRINTF 1 + #define HAVE_ERROR 1 +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch new file mode 100644 index 00000000000..f70a13898f3 --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch @@ -0,0 +1,30 @@ +From 4d1dd61c04f52a7c796debbdea5fc9139ffa271d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 29 Mar 2017 22:45:05 -0700 +Subject: [PATCH 4/8] Use pkgconfig instead of libgcrypt-config + +Signed-off-by: Khem Raj +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index a15782e..b537046 100644 +--- a/Makefile ++++ b/Makefile +@@ -63,10 +63,10 @@ RELEASE_VERSION := $(shell cat VERSION) + CC ?= gcc + CFLAGS ?= -O3 -g + CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings +-CFLAGS += $(shell libgcrypt-config --cflags) $(CRYPTO_CFLAGS) ++CFLAGS += $(shell pkg-config libgcrypt --cflags) $(CRYPTO_CFLAGS) + CPPFLAGS += -DVERSION=\"$(VERSION)\" + LDFLAGS ?= -g +-LIBS += $(shell libgcrypt-config --libs) $(CRYPTO_LDADD) ++LIBS += $(shell pkg-config libgcrypt --libs) $(CRYPTO_LDADD) + + ifeq ($(shell uname -s), SunOS) + LIBS += -lnsl -lresolv -lsocket +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch new file mode 100644 index 00000000000..01783f45b74 --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch @@ -0,0 +1,30 @@ +From 1947ea776dc38c3377702dd89bd229670f4d948d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 29 Mar 2017 23:06:52 -0700 +Subject: [PATCH 5/8] include sys/ttydefaults.h for CEOT definition + +Fixes + +config.c:146:25: error: use of undeclared identifier 'CEOT' + if (llen == 0 && c == CEOT) + +Signed-off-by: Khem Raj +--- + config.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.c b/config.c +index 804faa7..1883d12 100644 +--- a/config.c ++++ b/config.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include + +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch new file mode 100644 index 00000000000..fa89df27962 --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch @@ -0,0 +1,40 @@ +From 56768fc0c2cbd6abcf28c9805ab516db8a0548d4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 29 Mar 2017 23:09:47 -0700 +Subject: [PATCH 6/8] sysdep: Add header include sequence to adjust for musl + +--- + sysdep.h | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/sysdep.h b/sysdep.h +index 6a323f0..0122b95 100644 +--- a/sysdep.h ++++ b/sysdep.h +@@ -17,16 +17,20 @@ + * __SKYOS__ + * + */ ++/* hack to make sure kernel headers understand that libc (musl) ++ * does define IFF_LOWER_UP et al. ++ */ ++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0 + + #include + #include +-#include + + #if !defined(__CYGWIN__) +-#include +-#include ++//#include ++//#include + #include + #endif ++#include + + #include "config.h" + +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch new file mode 100644 index 00000000000..de67b47a439 --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch @@ -0,0 +1,66 @@ +From b6a027fe4da6f66552b533f1314e5005b16c5455 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 29 Mar 2017 23:52:36 -0700 +Subject: [PATCH 7/8] add error() API when error.h is not on platform + +sign-off-by: Khem Raj +--- + sysdep.c | 24 ++++++++++++++++++++++++ + sysdep.h | 2 ++ + 2 files changed, 26 insertions(+) + +diff --git a/sysdep.c b/sysdep.c +index d8f181d..2518ec1 100644 +--- a/sysdep.c ++++ b/sysdep.c +@@ -17,6 +17,7 @@ + GNU General Public License for more details. + */ + ++#define _GNU_SOURCE + #include + #include + #include +@@ -794,3 +795,26 @@ int setenv(const char *name, const char *value, int overwrite) + return ret; + } + #endif ++ ++#ifndef _ERROR_H_ ++#define _ERROR_H_ ++#include ++#include ++#include ++ ++void error(int status, int errnum, const char* format, ...) ++{ ++ va_list ap; ++ ++ fflush(stdout); ++ fprintf(stderr, "%s: ", program_invocation_name); ++ va_start(ap, format); ++ vfprintf(stderr, format, ap); ++ va_end(ap); ++ if (errnum) ++ fprintf(stderr, ":%d", errnum); ++ if (status) ++ exit(status); ++} ++#endif /* _ERROR_H_ */ ++ +diff --git a/sysdep.h b/sysdep.h +index 0122b95..4e60064 100644 +--- a/sysdep.h ++++ b/sysdep.h +@@ -44,6 +44,8 @@ int tun_get_hwaddr(int fd, char *dev, uint8_t *hwaddr); + #if defined(__linux__) + #if defined(__GLIBC__) + #include ++#else ++void error(int status, int errnum, const char* format, ...); + #endif + #define HAVE_VASPRINTF 1 + #define HAVE_ASPRINTF 1 +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch new file mode 100644 index 00000000000..62ffdb7c9fa --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch @@ -0,0 +1,36 @@ +From 7f01847d14a1a3af50f49499743b0551ddef1311 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 29 Mar 2017 23:54:01 -0700 +Subject: [PATCH 8/8] include sysdep.h before net/if_tun.h + +Fixes duplicate defines in header errors + +Signed-off-by: Khem Raj +--- + sysdep.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sysdep.c b/sysdep.c +index 2518ec1..5624ef1 100644 +--- a/sysdep.c ++++ b/sysdep.c +@@ -57,6 +57,8 @@ + #include + #endif + ++#include "sysdep.h" ++ + #if defined(__DragonFly__) + #include + #elif defined(__linux__) +@@ -69,7 +71,6 @@ + #include + #endif + +-#include "sysdep.h" + + #if !defined(HAVE_VASPRINTF) || !defined(HAVE_ASPRINTF) || !defined(HAVE_ERROR) + #include +-- +2.12.1 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch new file mode 100644 index 00000000000..2bed5504151 --- /dev/null +++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch @@ -0,0 +1,42 @@ +From 39925f090c21ab571ebc6ec250696f7f7093a2a6 Mon Sep 17 00:00:00 2001 +From: Will Page +Date: Wed, 30 Aug 2017 18:14:00 -0700 +Subject: [PATCH 1/1] Reduce lifetime value to widely-compatible value + +Current proposed lifetime value (2147483 seconds, which equates to +MAXINT ms, or ~25 days) is rejected by Fortigate vpn devices because +"peer SA proposal does not match local policy". It seems default +policy for these devices constrains lifetime where similar VPN devices +don't. + +Reducing the lifetime from its current value to 28800 (exactly 8 hours) +causes it to start working with fortigate devices. +--- + vpnc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/vpnc.c b/vpnc.c +index 36dd0f3..3e0fcba 100644 +--- a/vpnc.c ++++ b/vpnc.c +@@ -1135,7 +1135,7 @@ static struct isakmp_attribute *make_transform_ike(int dh_group, int crypt, int + a->af = isakmp_attr_lots; + a->u.lots.length = 4; + a->u.lots.data = xallocc(a->u.lots.length); +- *((uint32_t *) a->u.lots.data) = htonl(2147483); ++ *((uint32_t *) a->u.lots.data) = htonl(28800); + a = new_isakmp_attribute_16(IKE_ATTRIB_LIFE_TYPE, IKE_LIFE_TYPE_SECONDS, a); + a = new_isakmp_attribute_16(IKE_ATTRIB_AUTH_METHOD, auth, a); + a = new_isakmp_attribute_16(IKE_ATTRIB_GROUP_DESC, dh_group, a); +@@ -2561,7 +2561,7 @@ static struct isakmp_attribute *make_transform_ipsec(struct sa_block *s, int dh_ + a->af = isakmp_attr_lots; + a->u.lots.length = 4; + a->u.lots.data = xallocc(a->u.lots.length); +- *((uint32_t *) a->u.lots.data) = htonl(2147483); ++ *((uint32_t *) a->u.lots.data) = htonl(28800); + a = new_isakmp_attribute_16(ISAKMP_IPSEC_ATTRIB_SA_LIFE_TYPE, IPSEC_LIFE_SECONDS, a); + + if (dh_group) +-- +2.7.4 + diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch deleted file mode 100644 index f394e6abdd4..00000000000 --- a/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- vpnc-0.5.1/makeman.pl.old 2008-03-16 02:17:59.000000000 -0500 -+++ vpnc-0.5.1/makeman.pl 2008-03-16 02:29:34.000000000 -0500 -@@ -29,7 +29,7 @@ my $vpnc = './vpnc'; - # indenting lists (those originally starting with an asterisk). I hope - # this pays off when converting the manpage to HTML or such. - --open my $LONGHELP, '-|', "$vpnc --long-help"; -+open my $LONGHELP, '-|', "cat ../long-help"; - my $vpnc_options = ''; - my $relative_indent = 0; - my $indent_needed = 0; diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch deleted file mode 100644 index 3de65ec35e3..00000000000 --- a/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- a/Makefile~ 2009-01-20 18:44:30.000000000 +0100 -+++ b/Makefile 2009-01-20 18:44:30.000000000 +0100 -@@ -119,21 +119,21 @@ - else \ - install vpnc-script $(DESTDIR)$(ETCDIR); \ - fi -- install -m600 vpnc.conf $(DESTDIR)$(ETCDIR)/default.conf -- install -m755 vpnc-disconnect $(DESTDIR)$(SBINDIR) -- install -m755 pcf2vpnc $(DESTDIR)$(BINDIR) -- install -m644 vpnc.8 $(DESTDIR)$(MANDIR)/man8 -- install -m644 pcf2vpnc.1 $(DESTDIR)$(MANDIR)/man1 -- install -m644 cisco-decrypt.1 $(DESTDIR)$(MANDIR)/man1 -- install -m644 COPYING $(DESTDIR)$(DOCDIR) -+ install -m 600 vpnc.conf $(DESTDIR)$(ETCDIR)/default.conf -+ install -m 755 vpnc-disconnect $(DESTDIR)$(SBINDIR) -+ install -m 755 pcf2vpnc $(DESTDIR)$(BINDIR) -+ install -m 644 vpnc.8 $(DESTDIR)$(MANDIR)/man8 -+ install -m 644 pcf2vpnc.1 $(DESTDIR)$(MANDIR)/man1 -+ install -m 644 cisco-decrypt.1 $(DESTDIR)$(MANDIR)/man1 -+ install -m 644 COPYING $(DESTDIR)$(DOCDIR) - - install : install-common -- install -m755 vpnc $(DESTDIR)$(SBINDIR) -- install -m755 cisco-decrypt $(DESTDIR)$(BINDIR) -+ install -m 755 vpnc $(DESTDIR)$(SBINDIR) -+ install -m 755 cisco-decrypt $(DESTDIR)$(BINDIR) - - install-strip : install-common -- install -s -m755 vpnc $(DESTDIR)$(SBINDIR) -- install -s -m755 cisco-decrypt $(DESTDIR)$(BINDIR) -+ install -s -m 755 vpnc $(DESTDIR)$(SBINDIR) -+ install -s -m 755 cisco-decrypt $(DESTDIR)$(BINDIR) - - uninstall : - rm -f $(DESTDIR)$(SBINDIR)/vpnc \ diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb index 4efc412a047..ea21799853b 100644 --- a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb +++ b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb @@ -1,37 +1,59 @@ SUMMARY = "A client for the Cisco3000 VPN Concentrator" HOMEPAGE = "http://www.unix-ag.uni-kl.de/~massar/vpnc/" AUTHOR = "Maurice Massar vpnc@unix-ag.uni-kl.de" -SECTION = "console/network" -PRIORITY = "optional" +SECTION = "net" LICENSE = "GPL-2.0+" LIC_FILES_CHKSUM = "file://COPYING;md5=173b74cb8ac640a9992c03f3bce22a33" -DEPENDS = "libgcrypt" -inherit perlnative +DEPENDS += "libgcrypt" -CFLAGS_append = ' -DVERSION=\\"${PV}\\"' -LDFLAGS_append = " -lgcrypt -lgpg-error" +PV .= "r550-2jnpr1" +SRCREV = "b1243d29e0c00312ead038b04a2cf5e2fa31d740" +SRC_URI = "git://github.com/ndpgroup/vpnc \ + file://long-help \ + file://default.conf \ + file://0001-search-for-log-help-in-build-dir.patch \ + file://0002-Fix-vpnc-install-for-cross-compile.patch \ + file://0003-error.h-is-specific-to-glibc-on-linux.patch \ + file://0004-Use-pkgconfig-instead-of-libgcrypt-config.patch \ + file://0005-include-sys-ttydefaults.h-for-CEOT-definition.patch \ + file://0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch \ + file://0007-add-error-API-when-error.h-is-not-on-platform.patch \ + file://0008-include-sysdep.h-before-net-if_tun.h.patch \ + file://0009-reduce-lifetime-value.patch \ + " + +PACKAGECONFIG ?= "gnutls" + +PACKAGECONFIG[gnutls] = ",,gnutls" +PACKAGECONFIG[openssl] = ",,openssl" + +S = "${WORKDIR}/git" + +inherit perlnative pkgconfig + +#EXTRA_OEMAKE = "-e MAKEFLAGS=" do_configure_append () { # Make sure we use our nativeperl wrapper sed -i "1s:#!.*:#!/usr/bin/env nativeperl:" ${S}/*.pl + cp ${WORKDIR}/long-help ${S} } do_install () { - sed -i s:m600:m\ 600:g Makefile + sed -i s:m600:m\ 600:g Makefile oe_runmake 'DESTDIR=${D}' 'PREFIX=/usr' install rm -f ${D}${sysconfdir}/vpnc/vpnc.conf #This file is useless install ${WORKDIR}/default.conf ${D}${sysconfdir}/vpnc/default.conf } -CONFFILES_${PN} = "${sysconfdir}/vpnc/default.conf" -RDEPENDS_${PN} = "kernel-module-tun perl-module-io-file" +SYSROOT_PREPROCESS_FUNCS += "vpnc_sysroot_preprocess" -SRC_URI = "http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-${PV}.tar.gz \ - file://makeman.patch \ - file://vpnc-install.patch \ - file://long-help \ - file://default.conf" +vpnc_sysroot_preprocess () { + install -d ${SYSROOT_DESTDIR}${sysconfdir}/vpnc + install -m 755 ${D}${sysconfdir}/vpnc/vpnc-script ${SYSROOT_DESTDIR}${sysconfdir}/vpnc +} -SRC_URI[md5sum] = "4378f9551d5b077e1770bbe09995afb3" -SRC_URI[sha256sum] = "46cea3bd02f207c62c7c6f2f22133382602baeda1dc320747809e94881414884" +CONFFILES_${PN} = "${sysconfdir}/vpnc/default.conf" +RDEPENDS_${PN} = "perl-module-io-file" +RRECOMMENDS_${PN} = "kernel-module-tun" diff --git a/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb b/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb new file mode 100644 index 00000000000..64e9401e7a3 --- /dev/null +++ b/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb @@ -0,0 +1,20 @@ +SUMMARY = "Wireless Central Regulatory Domain Database" +HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" +SECTION = "net" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" + +SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz" +SRC_URI[md5sum] = "d282cce92b6e692e8673e2bd97adf33b" +SRC_URI[sha256sum] = "cfedf1c3521b3c8f32602f25ed796e96e687c3441a00e7c050fedf7fd4f1b8b7" + +inherit bin_package + +do_install() { + install -d -m0755 ${D}${libdir}/crda + install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys + install -m 0644 regulatory.bin ${D}${libdir}/crda/regulatory.bin + install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem +} + +RSUGGESTS_${PN} = "crda" diff --git a/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch b/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch new file mode 100644 index 00000000000..f304d933da6 --- /dev/null +++ b/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch @@ -0,0 +1,27 @@ +From fb490136cf8f2456cfe13b0b4f796e6c155e75dc Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Wed, 30 Aug 2017 03:02:32 -0400 +Subject: [PATCH] fix no rule to make cyassl/options.h + +Upstream-Status: Pending + +Signed-off-by: Dengke Du +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 395d75d..d4a3880 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3684,6 +3684,7 @@ AC_CONFIG_FILES([wolfssl/options.h]) + #fi + AC_CONFIG_FILES([support/wolfssl.pc]) + AC_CONFIG_FILES([rpm/spec]) ++AC_CONFIG_FILES([cyassl/options.h]) + + AX_CREATE_GENERIC_CONFIG + AX_AM_JOBSERVER([yes]) +-- +2.8.1 + diff --git a/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb b/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb new file mode 100644 index 00000000000..512619098af --- /dev/null +++ b/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.12.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "wolfSSL Lightweight, Embedded SSL Library" +DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written in C and \ + optimized for embedded and RTOS environments. It can be \ + Up to 20 times smaller than OpenSSL while still supporting \ + a full TLS 1.2 client and server." +HOMEPAGE = "http://www.wolfssl.com/yaSSL/Products-wolfssl.html" +BUGTRACKER = "http://github.com/wolfssl/wolfssl/issues" +SECTION = "libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +PROVIDES += "cyassl" +RPROVIDES_${PN} = "cyassl" + +SRC_URI = "https://github.com/wolfSSL/wolfssl/archive/v${PV}-stable.zip \ + file://0001-fix-no-rule-to-make-cyassl-options.h.patch \ + " + +SRC_URI[md5sum] = "f9caf558169ab650dc8200708799ebeb" +SRC_URI[sha256sum] = "b6d87d3e2c8757177d69aff373c91cf162f4a3944fae90fa10d086fd5f9542e7" + +S = "${WORKDIR}/wolfssl-${PV}-stable" + +inherit autotools + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta-networking/recipes-daemons/atftp/atftp/0001-argz.h-fix-musl-compile-add-missing-defines.patch b/meta-networking/recipes-daemons/atftp/atftp/0001-argz.h-fix-musl-compile-add-missing-defines.patch new file mode 100644 index 00000000000..cfa8a7325f8 --- /dev/null +++ b/meta-networking/recipes-daemons/atftp/atftp/0001-argz.h-fix-musl-compile-add-missing-defines.patch @@ -0,0 +1,45 @@ +From 543e67919f5cacf309ac88ab091331e41af4224b Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Thu, 16 Apr 2015 22:41:57 +0200 +Subject: [PATCH] argz.h: fix musl compile (add missing defines) + +Upstream-Status: Pending + +Add __THROW, __BEGIN_DECLS, __END_DECLS and __attribute_pure__ defines. + +Signed-off-by: Peter Seiderer +Signed-off-by: Ming Liu +--- + argz.h | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/argz.h b/argz.h +index 582be55..bdf9f62 100644 +--- a/argz.h ++++ b/argz.h +@@ -48,6 +48,22 @@ + # define __const const + #endif + ++#ifndef __THROW ++# define __THROW ++#endif ++ ++#ifndef __BEGIN_DECLS ++# define __BEGIN_DECLS ++#endif ++ ++#ifndef __END_DECLS ++# define __END_DECLS ++#endif ++ ++#ifndef __attribute_pure__ ++# define __attribute_pure__ ++#endif ++ + #ifndef __error_t_defined + typedef int error_t; + #endif +-- +2.1.4 + diff --git a/meta-networking/recipes-daemons/atftp/atftp/0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch b/meta-networking/recipes-daemons/atftp/atftp/0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch new file mode 100644 index 00000000000..093054ce805 --- /dev/null +++ b/meta-networking/recipes-daemons/atftp/atftp/0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch @@ -0,0 +1,43 @@ +From 77e399899d9d7297d23c321811b628febdf0fd92 Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Thu, 16 Apr 2015 22:43:49 +0200 +Subject: [PATCH] tftp.h/tftpd.h: fix musl compile (missing include) + +Upstream-Status: Pending + +Add sys/types.h include for u_char typedef. + +Signed-off-by: Peter Seiderer +Signed-off-by: Ming Liu +--- + tftp.h | 1 + + tftpd.h | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/tftp.h b/tftp.h +index 12bd6aa..32a3f63 100644 +--- a/tftp.h ++++ b/tftp.h +@@ -19,6 +19,7 @@ + + #include + #include ++#include + #include "tftp_def.h" + #include "config.h" + +diff --git a/tftpd.h b/tftpd.h +index 945065e..60d3a49 100644 +--- a/tftpd.h ++++ b/tftpd.h +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include "tftp_io.h" + + /* +-- +2.1.4 + diff --git a/meta-networking/recipes-daemons/atftp/atftp_git.bb b/meta-networking/recipes-daemons/atftp/atftp_git.bb index ee84f772526..a9949d59ae6 100644 --- a/meta-networking/recipes-daemons/atftp/atftp_git.bb +++ b/meta-networking/recipes-daemons/atftp/atftp_git.bb @@ -1,5 +1,5 @@ SUMMARY = "Advanced TFTP server and client" -SECTION = "network" +SECTION = "net" HOMEPAGE = "http://packages.debian.org/atftp" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" @@ -12,12 +12,16 @@ SRC_URI = "git://git.code.sf.net/p/atftp/code \ file://atftpd-0.7_circumvent_tftp_size_restrictions.patch \ file://atftpd-0.7_unprotected_assignments_crash.patch \ file://atftpd.init \ - file://atftpd.service \ + file://atftpd.service \ file://atftp-0.7-sorcerers_apprentice.patch \ " +SRC_URI_append_libc-musl = " file://0001-argz.h-fix-musl-compile-add-missing-defines.patch \ + file://0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch \ + " + S = "${WORKDIR}/git" -inherit autotools update-rc.d useradd systemd +inherit autotools update-rc.d systemd PACKAGECONFIG ??= "tcp-wrappers" PACKAGECONFIG[pcre] = "--enable-libpcre,--disable-libpcre,libpcre" @@ -28,9 +32,8 @@ INITSCRIPT_PACKAGES = "${PN}d" INITSCRIPT_NAME_${PN}d = "atftpd" INITSCRIPT_PARAMS_${PN}d = "defaults 80" -USERADD_PACKAGES = "${PN}d" -USERADD_PARAM_${PN}d = "--system --no-create-home --shell /bin/false \ - --user-group nobody" + +EXTRA_OEMAKE = "CFLAGS='${CFLAGS} -std=gnu89'" do_install_append() { install -d ${D}${sysconfdir}/init.d @@ -39,7 +42,7 @@ do_install_append() { install -d ${D}/srv/tftp rm ${D}${sbindir}/in.tftpd - + install -d ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/atftpd.service ${D}${systemd_unitdir}/system } diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch b/meta-networking/recipes-daemons/autofs/autofs-5.1.0/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch deleted file mode 100644 index 742f25de198..00000000000 --- a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 40971911d653bf53de295d7462c643e4073916b9 Mon Sep 17 00:00:00 2001 -From: Joe MacDonald -Date: Fri, 1 Nov 2013 12:47:18 -0400 -Subject: [PATCH] systemd: allow --with-systemd to take a path arg - -If building for a cross-compile environment with systemd it is convenient -to be able to specify a systemd path for the target that may not be the -same as that on the host. - -Upstream-status: Submitted [http://www.spinics.net/lists/autofs/msg00740.html] - -Signed-off-by: Joe MacDonald ---- - aclocal.m4 | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/aclocal.m4 b/aclocal.m4 -index 3e6f223..105e3e9 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -229,8 +229,10 @@ dnl Check the location of the systemd unit files directory - dnl -------------------------------------------------------------------------- - AC_DEFUN([AF_WITH_SYSTEMD], - [AC_ARG_WITH(systemd, --[ --with-systemd install systemd unit file if systemd unit directory -- is found on system], -+[ --with-systemd@<:@=systemddir@:>@ install systemd unit file. If 'yes' -+ probe the system for unit directory. -+ If a path is specified, assume that -+ is a valid install path.], - [if test "$withval" = yes; then - if test -z "$systemddir"; then - AC_MSG_CHECKING([location of the systemd unit files directory]) -@@ -247,6 +249,10 @@ AC_DEFUN([AF_WITH_SYSTEMD], - else - AC_MSG_RESULT(not found) - fi -+else -+ if test "$withval" != no; then -+ systemddir=$withval -+ fi - fi]) - ]) - --- -1.7.10.4 - diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/Makefile.rules-cross.patch b/meta-networking/recipes-daemons/autofs/autofs-5.1.0/Makefile.rules-cross.patch deleted file mode 100644 index 7dc7096c2e3..00000000000 --- a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/Makefile.rules-cross.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: autofs-5.0.7/Makefile.rules -=================================================================== ---- autofs-5.0.7.orig/Makefile.rules 2012-07-24 23:05:26.000000000 -0700 -+++ autofs-5.0.7/Makefile.rules 2012-10-26 09:23:40.270204270 -0700 -@@ -34,14 +34,14 @@ - else - CFLAGS ?= -O2 -Wall - LDFLAGS = -s --STRIP = strip --strip-debug -+STRIP = ${TARGET_PREFIX}strip --strip-debug - endif - endif - --CC = gcc --CXX = g++ -+CC ?= ${TARGET_PREFIX}gcc -+CXX ?= ${TARGET_PREFIX}g++ - CXXFLAGS = $(CFLAGS) --LD = ld -+LD ?= ${TARGET_PREFIX}ld - SOLDFLAGS = -shared - - CFLAGS += -D_REENTRANT -D_FILE_OFFSET_BITS=64 diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-additional-distros.patch b/meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-additional-distros.patch deleted file mode 100644 index 6a35843cea6..00000000000 --- a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-additional-distros.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- autofs-4.1.4/samples/rc.autofs.in~ 2005-04-11 06:30:54.000000000 -0500 -+++ autofs-4.1.4/samples/rc.autofs.in 2007-04-07 13:18:44.000000000 -0500 -@@ -43,6 +43,9 @@ - system=debian - elif [ -f /etc/redhat-release ]; then - system=redhat -+elif [ -f /etc/issue ] && grep -q "^SlugOS\|Yocto" /etc/issue ; then -+ # SlugOS and Yocto behave like Debian, at least for autofs purposes. -+ system=debian - else - echo "$0: Unknown system, please port and contact autofs@linux.kernel.org" 1>&2 - exit 1 diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/fix_disable_ldap.patch b/meta-networking/recipes-daemons/autofs/autofs-5.1.0/fix_disable_ldap.patch deleted file mode 100644 index 31c8510a69e..00000000000 --- a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/fix_disable_ldap.patch +++ /dev/null @@ -1,42 +0,0 @@ -autofs: fails to compile with openldap disabled - -As of 5.0.6, it appears that changes were introduced so that -if you compile with openldap disabled and openldap headers are not -available, then autofs fails to build. - -Upstream-Status: Pending - -Signed-off-by: Amy Fong --- - lookup_ldap.h | 4 ++++ - 1 file changed, 4 insertions(+) - ---- - include/lookup_ldap.h | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/include/lookup_ldap.h -+++ b/include/lookup_ldap.h -@@ -1,7 +1,9 @@ - #ifndef LOOKUP_LDAP_H - #define LOOKUP_LDAP_H - -+#ifdef WITH_LDAP - #include -+#endif - - #ifdef WITH_SASL - #include -@@ -109,10 +111,12 @@ - - #define LDAP_AUTH_USESIMPLE 0x0008 - -+#ifdef WITH_LDAP - /* lookup_ldap.c */ - LDAP *init_ldap_connection(unsigned logopt, const char *uri, struct lookup_context *ctxt); - int unbind_ldap_connection(unsigned logopt, LDAP *ldap, struct lookup_context *ctxt); - int authtype_requires_creds(const char *authtype); -+#endif - - #ifdef WITH_SASL - /* cyrus-sasl.c */ diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/libtirpc-name-clash-backout.patch b/meta-networking/recipes-daemons/autofs/autofs-5.1.0/libtirpc-name-clash-backout.patch deleted file mode 100644 index e93021d5677..00000000000 --- a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/libtirpc-name-clash-backout.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- - lib/rpc_subs.c | 10 ---------- - 1 file changed, 10 deletions(-) - -diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c -index 5d6ead0..c7177f2 100644 ---- a/lib/rpc_subs.c -+++ b/lib/rpc_subs.c -@@ -34,16 +34,6 @@ - #include - - #ifdef WITH_LIBTIRPC --#undef auth_destroy --#define auth_destroy(auth) \ -- do { \ -- int refs; \ -- if ((refs = auth_put((auth))) == 0) \ -- ((*((auth)->ah_ops->ah_destroy))(auth));\ -- } while (0) --#endif -- --#ifdef WITH_LIBTIRPC - const rpcprog_t rpcb_prog = RPCBPROG; - const rpcvers_t rpcb_version = RPCBVERS; - #else --- -1.7.10.4 - diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch new file mode 100644 index 00000000000..075af5707b1 --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch @@ -0,0 +1,50 @@ +From 933e065cf8aecfa0cce5f8f92abbed5baaaf3f77 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 19:10:57 -0700 +Subject: [PATCH 1/2] Define __SWORD_TYPE and _PATH_NSSWITCH_CONF + +if they are not defined as is in musl then define +them here + +Signed-off-by: Khem Raj +--- + include/automount.h | 8 ++++++++ + include/nsswitch.h | 3 +++ + 2 files changed, 11 insertions(+) + +diff --git a/include/automount.h b/include/automount.h +index 219b07d..b12c22a 100644 +--- a/include/automount.h ++++ b/include/automount.h +@@ -42,6 +42,14 @@ + + #define ENABLE_CORES 1 + ++#ifndef __SWORD_TYPE ++# if __WORDSIZE == 32 /* System word size */ ++# define __SWORD_TYPE int ++# else /* __WORDSIZE == 64 */ ++# define __SWORD_TYPE long int ++# endif ++#endif ++ + /* We MUST have the paths to mount(8) and umount(8) */ + #ifndef HAVE_MOUNT + #error Failed to locate mount(8)! +diff --git a/include/nsswitch.h b/include/nsswitch.h +index 2b445a9..3db77b2 100644 +--- a/include/nsswitch.h ++++ b/include/nsswitch.h +@@ -24,6 +24,9 @@ + #include + #include "list.h" + ++#ifndef _PATH_NSSWITCH_CONF ++#define _PATH_NSSWITCH_CONF "/etc/nsswitch.conf" ++#endif + #define NSSWITCH_FILE _PATH_NSSWITCH_CONF + + enum nsswitch_status { +-- +2.12.1 + diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch new file mode 100644 index 00000000000..7ac1456748a --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch @@ -0,0 +1,29 @@ +From e4ee00e08acd7c0912a3264ad32e4de861c7416f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 7 Sep 2017 22:22:31 -0700 +Subject: [PATCH] modules/lookup_multi.c: Replace __S_IEXEC with S_IEXEC + +__S_IEXEC is internal to libc and may not be available on +all libc e.g. musl + +Signed-off-by: Khem Raj +--- + modules/lookup_multi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules/lookup_multi.c b/modules/lookup_multi.c +index 3ecda6d..cf109de 100644 +--- a/modules/lookup_multi.c ++++ b/modules/lookup_multi.c +@@ -452,7 +452,7 @@ int lookup_reinit(const char *my_mapfmt, + continue; + } + +- if (st.st_mode & __S_IEXEC) ++ if (st.st_mode & S_IEXEC) + type = src_prog; + else + type = src_file; +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch b/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch new file mode 100644 index 00000000000..6b6ba6d855f --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch @@ -0,0 +1,51 @@ +From 8fd74ddb3369572c594b22b396346131af00faee Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 19:12:10 -0700 +Subject: [PATCH 2/2] Replace __S_IEXEC with S_IEXEC + +S_IEXEC is portable + +Signed-off-by: Khem Raj +--- + daemon/lookup.c | 4 ++-- + modules/lookup_multi.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/daemon/lookup.c b/daemon/lookup.c +index 62071df..1bec97f 100644 +--- a/daemon/lookup.c ++++ b/daemon/lookup.c +@@ -400,7 +400,7 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source + if (!S_ISREG(st.st_mode)) + return NSS_STATUS_NOTFOUND; + +- if (st.st_mode & __S_IEXEC) ++ if (st.st_mode & S_IEXEC) + type = src_prog; + else + type = src_file; +@@ -890,7 +890,7 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_ + if (!S_ISREG(st.st_mode)) + return NSS_STATUS_NOTFOUND; + +- if (st.st_mode & __S_IEXEC) ++ if (st.st_mode & S_IEXEC) + type = src_prog; + else + type = src_file; +diff --git a/modules/lookup_multi.c b/modules/lookup_multi.c +index 6ec8434..88d081f 100644 +--- a/modules/lookup_multi.c ++++ b/modules/lookup_multi.c +@@ -104,7 +104,7 @@ static struct lookup_mod *nss_open_lookup(const char *format, int argc, const ch + continue; + } + +- if (st.st_mode & __S_IEXEC) ++ if (st.st_mode & S_IEXEC) + type = src_prog; + else + type = src_file; +-- +2.12.1 + diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/add-the-needed-stdarg.h.patch b/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/add-the-needed-stdarg.h.patch rename to meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-5.0.7-do-not-check-for-modprobe.patch b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-5.0.7-do-not-check-for-modprobe.patch rename to meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-5.0.7-fix-lib-deps.patch b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-fix-lib-deps.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-5.0.7-fix-lib-deps.patch rename to meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-fix-lib-deps.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch rename to meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch new file mode 100644 index 00000000000..cbf2bf80477 --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch @@ -0,0 +1,30 @@ +Make configure compatible with -Wl,--as-needed following +https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Failure_in_..2Fconfigure + +2016-07-05 Martin von Gagern + +Index: autofs-5.1.2/aclocal.m4 +=================================================================== +--- autofs-5.1.2.orig/aclocal.m4 ++++ autofs-5.1.2/aclocal.m4 +@@ -415,9 +415,9 @@ AC_DEFUN([AF_CHECK_LIBTIRPC], + [ + # save current flags + af_check_libtirpc_save_cflags="$CFLAGS" +-af_check_libtirpc_save_ldflags="$LDFLAGS" ++af_check_libtirpc_save_libs="$LIBS" + CFLAGS="$CFLAGS -I=/usr/include/tirpc" +-LDFLAGS="$LDFLAGS -ltirpc" ++LIBS="$LIBS -ltirpc" + + AC_TRY_LINK( + [ #include ], +@@ -440,7 +440,7 @@ AC_CHECK_FUNCS([getrpcbyname getservbyna + + # restore flags + CFLAGS="$af_check_libtirpc_save_cflags" +-LDFLAGS="$af_check_libtirpc_save_ldflags" ++LIBS="$af_check_libtirpc_save_libs" + ]) + + AC_DEFUN([AF_WITH_LIBTIRPC], diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/cross.patch b/meta-networking/recipes-daemons/autofs/autofs/cross.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/cross.patch rename to meta-networking/recipes-daemons/autofs/autofs/cross.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch b/meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch new file mode 100644 index 00000000000..9b641838fac --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch @@ -0,0 +1,62 @@ +[PATCH] fix the YACC rule to fix a building failure + +Upstream-Statu: Pending + +The original rule will create the header file twice, one is that the header +file as the object file is created, other time is when create the C source file. +since YACC always has "-d" parameter. + +This lead to a race when compile amd_tok.o, the header file maybe rewritten. + |---------------------- + |amd_tok.l:359:10: error: 'RBRACKET' undeclared (first use in this function) + | ")" { return RBRACKET; } + | ^ + |../Makefile.rules:64: recipe for target 'amd_tok.o' failed + |---------------------- +Signed-off-by: Roy Li +--- + lib/Makefile | 6 ++++-- + modules/Makefile | 3 ++- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/lib/Makefile b/lib/Makefile +index 4798a4b..c40cf86 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -57,7 +57,8 @@ mount_xdr.o: mount_xdr.c + master_tok.c: master_tok.l + $(LEX) -o$@ -Pmaster_ $? + +-master_parse.tab.c master_parse.tab.h: master_parse.y ++master_parse.tab.h: master_parse.tab.c ++master_parse.tab.c: master_parse.y + $(YACC) -v -d -p master_ -b master_parse $? + + master_tok.o: master_tok.c master_parse.tab.h +@@ -67,7 +68,8 @@ master_parse.tab.o: master_parse.tab.c master_parse.tab.h + nss_tok.c: nss_tok.l + $(LEX) -o$@ -Pnss_ $? + +-nss_parse.tab.c nss_parse.tab.h: nss_parse.y ++nss_parse.tab.h: nss_parse.tab.c ++nss_parse.tab.c: nss_parse.y + $(YACC) -v -d -p nss_ -b nss_parse $? + + nss_tok.o: nss_tok.c nss_parse.tab.h +diff --git a/modules/Makefile b/modules/Makefile +index 237b70b..71415d0 100644 +--- a/modules/Makefile ++++ b/modules/Makefile +@@ -103,7 +103,8 @@ amd_tok.c: amd_tok.l + + amd_tok.o: amd_tok.c amd_parse.tab.h + +-amd_parse.tab.c amd_parse.tab.h: amd_parse.y ++amd_parse.tab.h: amd_parse.tab.c ++amd_parse.tab.c: amd_parse.y + $(YACC) -v -d -p amd_ -b amd_parse $? + + amd_parse.tab.o: amd_parse.tab.c amd_parse.tab.h +-- +1.9.1 + diff --git a/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch b/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch new file mode 100644 index 00000000000..94750b257c8 --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch @@ -0,0 +1,44 @@ +autofs: fails to compile with openldap disabled + +As of 5.0.6, it appears that changes were introduced so that +if you compile with openldap disabled and openldap headers are not +available, then autofs fails to build. + +Upstream-Status: Pending + +Signed-off-by: Amy Fong +-- + lookup_ldap.h | 4 ++++ + 1 file changed, 4 insertions(+) + +--- + include/lookup_ldap.h | 4 ++++ + 1 file changed, 4 insertions(+) + +Index: autofs-5.1.2/include/lookup_ldap.h +=================================================================== +--- autofs-5.1.2.orig/include/lookup_ldap.h ++++ autofs-5.1.2/include/lookup_ldap.h +@@ -1,7 +1,9 @@ + #ifndef LOOKUP_LDAP_H + #define LOOKUP_LDAP_H + ++#ifdef WITH_LDAP + #include ++#endif + + #ifdef WITH_SASL + #include +@@ -117,10 +119,12 @@ struct lookup_context { + + #define LDAP_AUTH_USESIMPLE 0x0008 + ++#ifdef WITH_LDAP + /* lookup_ldap.c */ + LDAP *init_ldap_connection(unsigned logopt, const char *uri, struct lookup_context *ctxt); + int unbind_ldap_connection(unsigned logopt, struct ldap_conn *conn, struct lookup_context *ctxt); + int authtype_requires_creds(const char *authtype); ++#endif + + #ifdef WITH_SASL + /* cyrus-sasl.c */ diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/force-STRIP-to-emtpy.patch b/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/force-STRIP-to-emtpy.patch rename to meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/libtirpc.patch b/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/libtirpc.patch rename to meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/no-bash.patch b/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/no-bash.patch rename to meta-networking/recipes-daemons/autofs/autofs/no-bash.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch b/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch new file mode 100644 index 00000000000..bf2c964a0ec --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch @@ -0,0 +1,19 @@ +Use pkg-config first to look for external libnsl which is now +split out from glibc, if it does not exist then see if its provided +by glibc itself. + +-Khem + +Index: autofs-5.1.2/configure.in +=================================================================== +--- autofs-5.1.2.orig/configure.in ++++ autofs-5.1.2/configure.in +@@ -186,7 +186,7 @@ fi + # + # glibc/libc 6 new libraries + # +-AC_CHECK_LIB(nsl, yp_match, LIBNSL="-lnsl") ++PKG_CHECK_MODULES([NSL], [libnsl], [], [AC_CHECK_LIB([nsl],[yp_match],[LIBNSL="-lnsl"],[LIBNSL=""])]) + AC_SUBST(LIBNSL) + + AC_CHECK_LIB(resolv, res_query, LIBRESOLV="-lresolv") diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/remove-bashism.patch b/meta-networking/recipes-daemons/autofs/autofs/remove-bashism.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/remove-bashism.patch rename to meta-networking/recipes-daemons/autofs/autofs/remove-bashism.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs-5.1.0/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch b/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch similarity index 100% rename from meta-networking/recipes-daemons/autofs/autofs-5.1.0/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch rename to meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch diff --git a/meta-networking/recipes-daemons/autofs/autofs_5.1.0.bb b/meta-networking/recipes-daemons/autofs/autofs_5.1.0.bb deleted file mode 100644 index 13af2fe45f1..00000000000 --- a/meta-networking/recipes-daemons/autofs/autofs_5.1.0.bb +++ /dev/null @@ -1,71 +0,0 @@ -SUMMARY = "Kernel based automounter for linux" -SECTION = "base" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" - -DEPENDS += "libtirpc flex-native bison-native" - -inherit autotools-brokensep systemd - -SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \ - file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \ - file://no-bash.patch \ - file://cross.patch \ - file://libtirpc.patch \ - file://libtirpc-name-clash-backout.patch \ - file://autofs-5.0.7-do-not-check-for-modprobe.patch \ - file://fix_disable_ldap.patch \ - file://autofs-5.0.7-fix-lib-deps.patch \ - file://add-the-needed-stdarg.h.patch \ - file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \ - file://force-STRIP-to-emtpy.patch \ - file://remove-bashism.patch \ -" - -SRC_URI[md5sum] = "b7724a9a55923f3c06933a8dfd1e79d3" -SRC_URI[sha256sum] = "794a28d178d2b21a2380ee71cbdb3b15b4be47c06f3de255b8c5c4351f046b26" - -inherit update-rc.d pkgconfig - -INITSCRIPT_NAME = "autofs" -INITSCRIPT_PARAMS = "defaults" - -# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS -CFLAGS += "${LDFLAGS}" - -PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd" - -PACKAGECONFIG ?= "${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" - -EXTRA_OEMAKE = "DONTSTRIP=1" -EXTRA_OECONF += "--disable-mount-locking \ - --enable-ignore-busy --with-openldap=no \ - --with-sasl=no --with-libtirpc=yes \ - --with-path=${STAGING_BINDIR_NATIVE} \ -" -CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \ - ac_cv_path_RPCGEN=rpcgen \ -" - -do_configure_prepend () { - sed -e "s:filagdir:flagdir:" -i configure.in - if [ ! -e acinclude.m4 ]; then - cp aclocal.m4 acinclude.m4 - fi -} - -do_install_append () { - if [ -d ${D}/run ]; then - rmdir ${D}/run - fi - if [ -d ${D}${localstatedir}/run ]; then - rmdir ${D}${localstatedir}/run - fi -} - -INSANE_SKIP_${PN} = "dev-so" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "autofs.service" diff --git a/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb b/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb new file mode 100644 index 00000000000..68c64fdb043 --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb @@ -0,0 +1,77 @@ +SUMMARY = "Kernel based automounter for linux" +SECTION = "utils" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2" + +CFLAGS += "-I${STAGING_INCDIR}/tirpc" + +inherit autotools-brokensep systemd update-rc.d pkgconfig + +SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \ + file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \ + file://no-bash.patch \ + file://cross.patch \ + file://libtirpc.patch \ + file://autofs-5.0.7-do-not-check-for-modprobe.patch \ + file://fix_disable_ldap.patch \ + file://autofs-5.0.7-fix-lib-deps.patch \ + file://add-the-needed-stdarg.h.patch \ + file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \ + file://force-STRIP-to-emtpy.patch \ + file://remove-bashism.patch \ + file://fix-the-YACC-rule-to-fix-a-building-failure.patch \ + file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \ + file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \ + file://autofs-5.1.2-libtirpc-as-need.patch \ + file://pkgconfig-libnsl.patch \ + file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \ + " +SRC_URI[md5sum] = "28cf88f99eff553a8500659ba5d45a76" +SRC_URI[sha256sum] = "0d57e4138c2ec8058ca92164d035546f68ce4af93acb893369993d67c7056a10" + +INITSCRIPT_NAME = "autofs" +INITSCRIPT_PARAMS = "defaults" + +# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS +#CFLAGS += "${LDFLAGS}" + +PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" + +EXTRA_OEMAKE = "DONTSTRIP=1" +EXTRA_OECONF += "--disable-mount-locking \ + --enable-ignore-busy --with-openldap=no \ + --with-sasl=no --with-libtirpc \ + --with-path=${STAGING_BINDIR_NATIVE} \ +" +CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \ + ac_cv_path_RPCGEN=rpcgen \ +" + +do_configure_prepend () { + sed -e "s:filagdir:flagdir:" -i ${S}/configure.in + if [ ! -e ${S}/acinclude.m4 ]; then + cp ${S}/aclocal.m4 ${S}/acinclude.m4 + fi +} + +do_install_append () { + if [ -d ${D}/run ]; then + rmdir ${D}/run + fi + if [ -d ${D}${localstatedir}/run ]; then + rmdir ${D}${localstatedir}/run + fi +} +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" + +INSANE_SKIP_${PN} = "dev-so" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "autofs.service" + diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb index c235a1b9542..eaa453d9177 100644 --- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb +++ b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb @@ -1,18 +1,19 @@ SUMMARY = "Generic client/server library for SASL authentication" -SECTION = "console/network" +SECTION = "libs" +HOMEPAGE = "http://asg.web.cmu.edu/sasl/" DEPENDS = "openssl virtual/db" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396" SRC_URI = "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-${PV}.tar.gz \ - file://avoid-to-call-AC_TRY_RUN.patch \ - file://Fix-hardcoded-libdir.patch \ - file://debian_patches_0009_sasldb_al.diff \ - file://debian_patches_0014_avoid_pic_overwrite.diff \ - file://sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch \ - file://saslauthd.service \ - file://saslauthd.conf \ - " + file://avoid-to-call-AC_TRY_RUN.patch \ + file://Fix-hardcoded-libdir.patch \ + file://debian_patches_0009_sasldb_al.diff \ + file://debian_patches_0014_avoid_pic_overwrite.diff \ + file://sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch \ + file://saslauthd.service \ + file://saslauthd.conf \ +" inherit autotools-brokensep pkgconfig useradd systemd @@ -24,15 +25,15 @@ EXTRA_OECONF += "--with-dblib=berkeley \ andrew_cv_runpath_switch=none" PACKAGECONFIG ??= "ntlm \ - ${@base_contains('DISTRO_FEATURES', 'ldap', 'ldap', '', d)} \ - ${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ - " + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 ldap pam', d)} \ +" PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5," PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie," PACKAGECONFIG[des] = "--with-des,--without-des,," PACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} --enable-ldapdb,--without-ldap --disable-ldapdb,openldap," PACKAGECONFIG[ntlm] = "--with-ntlm,--without-ntlm,," +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," CFLAGS += "-fPIC" @@ -54,7 +55,7 @@ do_compile_prepend () { } do_install_append() { - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/saslauthd.service ${D}${systemd_unitdir}/system @@ -72,7 +73,6 @@ do_install_append() { } USERADD_PACKAGES = "${PN}-bin" -GROUPADD_PARAM_${PN}-bin = "--system mail" USERADD_PARAM_${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus" SYSTEMD_PACKAGES = "${PN}" diff --git a/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb b/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb deleted file mode 100644 index 3b8fdc93c6a..00000000000 --- a/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "A caching, forwarding DNS proxy server" -DESCRIPTION = "\ -dnrd is a proxying nameserver. It forwards DNS queries to the appropriate \ -nameserver, but can also act as the primary nameserver for a subnet behind \ -a firewall. It also has features such as caching DNS requests, support for \ -DNS servers, cache poisoning prevention, TCP support, etc.." -HOMEPAGE = "http://dnrd.sourceforge.net/" -SECTION = "System Environment/Daemons" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=0be67017f1c770313ad7b40e18d568f1" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ - file://dnrd.service \ - file://dnrd.conf.sample \ - file://dnrd.init" -SRC_URI[md5sum] = "41c9b070aae8ed403fc8c2aac7ab157c" -SRC_URI[sha256sum] = "aa46e7f8736b88c1d752cf606b3990041221ce91d014e955c6b02eb2167db015" - -SYSTEMD_SERVICE_${PN} = "dnrd.service" -SYSTEMD_AUTO_ENABLE = "disable" - -inherit autotools -inherit ${@base_contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)} - -do_install() { - oe_runmake install DESTDIR=${D} INSTALL="install -p" - - sed -i -e 's:/etc/rc.d/init.d/functions:/etc/init.d/functions:g' \ - ${WORKDIR}/dnrd.init - install -d -m 0755 ${D}${sysconfdir}/init.d - install -d -m 0755 ${D}${sysconfdir}/dnrd - install -p -m 0644 ${WORKDIR}/dnrd.conf.sample ${D}${sysconfdir}/dnrd/dnrd.conf - install -p -m 0755 ${WORKDIR}/dnrd.init ${D}${sysconfdir}/init.d/dnrd - - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d -m 0755 ${D}${systemd_unitdir}/system - install -m 644 ${WORKDIR}/dnrd.service ${D}${systemd_unitdir}/system - fi -} diff --git a/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch b/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch new file mode 100644 index 00000000000..82cdc36ac45 --- /dev/null +++ b/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch @@ -0,0 +1,25 @@ +From a557651a08e21e3c7c7f5eca9f5405f86624903f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 22:42:51 -0700 +Subject: [PATCH] src/igmpproxy.h: Include sys/types.h for u_short/u_init + +Signed-off-by: Khem Raj +--- + src/igmpproxy.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/igmpproxy.h b/src/igmpproxy.h +index 4dabd1c..4454729 100644 +--- a/src/igmpproxy.h ++++ b/src/igmpproxy.h +@@ -46,6 +46,7 @@ + #include + + #include ++#include + #include + #include + #include +-- +2.13.3 + diff --git a/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb b/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb new file mode 100644 index 00000000000..5424dc455ea --- /dev/null +++ b/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb @@ -0,0 +1,16 @@ +SUMMARY = "simple dynamic multicast routing daemon that only uses IGMP signalling" +HOMEPAGE = "http://sourceforge.net/projects/igmpproxy/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e995e2799bb0d27d63069b97f805420" + +SRC_URI = "http://sourceforge.net/projects/igmpproxy/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch \ + " + +SRC_URI[md5sum] = "c56f41ec195bc1fe016369bf74efc5a1" +SRC_URI[sha256sum] = "ee18ff3d8c3ae3a29dccb7e5eedf332337330020168bd95a11cece8d7d7ee6ae" + +inherit autotools pkgconfig + +CFLAGS += "-D_GNU_SOURCE" diff --git a/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch new file mode 100644 index 00000000000..e9676212598 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch @@ -0,0 +1,56 @@ +From 4848b9e4d516a9203c08432901a7b40419e8f43c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 19 Jul 2017 15:54:35 -0700 +Subject: [PATCH 1/3] Respect flags from env + +Signed-off-by: Khem Raj +--- + Makefile | 4 ++-- + cli/Makefile | 2 +- + pppd/Makefile | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index a05a000..439a978 100644 +--- a/Makefile ++++ b/Makefile +@@ -81,8 +81,8 @@ LIBS.dmalloc= -ldmalloc + export USE_DMALLOC + endif + +-CPPFLAGS= $(CPPFLAGS.ippooltest) +-CFLAGS= -I. -Iusl -Icli -MMD -Wall -g $(CPPFLAGS) $(CPPFLAGS.dmalloc) ++CPPFLAGS+= $(CPPFLAGS.ippooltest) ++CFLAGS+= -I. -Iusl -Icli -MMD -Wall -g $(CPPFLAGS) $(CPPFLAGS.dmalloc) + LDFLAGS.ippoold= $(LDFLAGS) -Wl,-E -L. -Lusl -lusl -lnsl -ldl $(LIBS.dmalloc) -lc + LDFLAGS.ippoolconfig= $(LDFLAGS) -Lcli -lcli -lreadline -lcurses -lnsl $(LIBS.dmalloc) -lc + +diff --git a/cli/Makefile b/cli/Makefile +index 4b5dd59..56fbf2f 100644 +--- a/cli/Makefile ++++ b/cli/Makefile +@@ -7,7 +7,7 @@ CLI_SRCS_TEST.o= $(CLI_SRCS_TEST.c:%.c=%.o) + + LDFLAGS.cli_test= -L.. -L. $(READLINE_LDFLAGS) -lcli -lusl -lreadline -lcurses -lc + +-CFLAGS= $(CFLAGS.optimize) -MMD -Wall -Werror -I.. $(READLINE_CFLAGS) ++CFLAGS= $(CFLAGS.optimize) -MMD -Wall -Werror -I.. $(READLINE_CFLAGS) $(CPPFLAGS) + + .PHONY: all test clean + +diff --git a/pppd/Makefile b/pppd/Makefile +index 106deca..7fd815f 100644 +--- a/pppd/Makefile ++++ b/pppd/Makefile +@@ -10,7 +10,7 @@ endif + + # END CONFIGURABLE SETTINGS + +-CFLAGS += -g -I.. -I/usr/include/pppd $(CFLAGS.pppd) -fPIC ++CFLAGS += -g -I.. -I=/usr/include/pppd $(CFLAGS.pppd) -fPIC + LDFLAGS += -shared + + all: ippool.so +-- +2.13.3 + diff --git a/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch new file mode 100644 index 00000000000..7d3f9acb65d --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch @@ -0,0 +1,31 @@ +From e4e0aae139b6489dc582fd14e54e562126482ce2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 07:23:53 -0700 +Subject: [PATCH 1/3] read() returns ssize_t + +Fixes +usl_fd.c:284:10: error: comparison of unsigned expression < 0 is always false [-Werror,-Wtautological-compare] + if (nb < 0) { + ~~ ^ ~ + +Signed-off-by: Khem Raj +--- + usl/usl_fd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/usl/usl_fd.c b/usl/usl_fd.c +index 3b7a813..04ba48c 100644 +--- a/usl/usl_fd.c ++++ b/usl/usl_fd.c +@@ -280,7 +280,7 @@ size_t usl_fd_read(int fd, void *buf, size_t count) + char *ptr = buf; + + for (chars_read = 0; chars_read < count; ) { +- size_t nb = read(fd, ptr, count - chars_read); ++ ssize_t nb = read(fd, ptr, count - chars_read); + if (nb < 0) { + if (errno == EINTR) + continue; +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch new file mode 100644 index 00000000000..6fb7cc5c461 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch @@ -0,0 +1,28 @@ +From 5d7f20c045b3c74dad2c53d65e30bd4840250082 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 15:17:19 -0700 +Subject: [PATCH] usl_timer: Check for return value of write() API + +Signed-off-by: Khem Raj +--- + usl/usl_timer.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/usl/usl_timer.c b/usl/usl_timer.c +index fda752b..d8414a6 100644 +--- a/usl/usl_timer.c ++++ b/usl/usl_timer.c +@@ -94,7 +94,9 @@ void usl_timer_tick(void) + + if (!usl_tick_pending) { + usl_tick_pending = 1; +- write(usl_tick_pipe[1], &msg, sizeof(msg)); ++ if (write(usl_tick_pipe[1], &msg, sizeof(msg)) != sizeof(msg)) { ++ fprintf(stderr, "write to fd %i failed: %s\n", usl_tick_pipe[1], strerror(errno)); ++ } + } + } + +-- +2.13.2 + diff --git a/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch b/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch new file mode 100644 index 00000000000..6e2bd523da7 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch @@ -0,0 +1,31 @@ +From cf25576428903168cd41b183fb1ca9c2b7e2666e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 07:28:10 -0700 +Subject: [PATCH 2/3] Mark first element of a string as null + +Fixes +cli_lib.c:427:20: error: expression which evaluates to zero treated as a null pointer constant of type 'char *' [-Werror,-Wnon-literal-null-conversion] + values[arg] = '\0'; + ^~~~ + +Signed-off-by: Khem Raj +--- + cli/cli_lib.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cli/cli_lib.c b/cli/cli_lib.c +index 41a0b06..e4d2fd5 100644 +--- a/cli/cli_lib.c ++++ b/cli/cli_lib.c +@@ -424,7 +424,7 @@ int cli_find_args(int argc, char *argv[], struct cli_node *cmd, struct cli_node + if (arg_string[1] == '\0') { + /* no arg value - only allowed for string args */ + if (node->arg->parser == cli_arg_parse_string) { +- values[arg] = '\0'; ++ *values[arg] = '\0'; + } else { + result = -EINVAL; + break; +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch b/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch new file mode 100644 index 00000000000..d80f7b4362c --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch @@ -0,0 +1,30 @@ +From 47aef26198431f7ad568c2277dded158bda3e36f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 19 Jul 2017 16:00:35 -0700 +Subject: [PATCH 2/3] link with libtirpc + +musl needs it + +Signed-off-by: Khem Raj +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 439a978..ea821eb 100644 +--- a/Makefile ++++ b/Makefile +@@ -83,8 +83,8 @@ endif + + CPPFLAGS+= $(CPPFLAGS.ippooltest) + CFLAGS+= -I. -Iusl -Icli -MMD -Wall -g $(CPPFLAGS) $(CPPFLAGS.dmalloc) +-LDFLAGS.ippoold= $(LDFLAGS) -Wl,-E -L. -Lusl -lusl -lnsl -ldl $(LIBS.dmalloc) -lc +-LDFLAGS.ippoolconfig= $(LDFLAGS) -Lcli -lcli -lreadline -lcurses -lnsl $(LIBS.dmalloc) -lc ++LDFLAGS.ippoold= $(LDFLAGS) -Wl,-E -L. -Lusl -lusl -ldl $(LIBS.dmalloc) -lc -ltirpc ++LDFLAGS.ippoolconfig= $(LDFLAGS) -Lcli -lcli -lreadline -lcurses $(LIBS.dmalloc) -lc -ltirpc + + OPT_CFLAGS?= -O + +-- +2.13.3 + diff --git a/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch b/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch new file mode 100644 index 00000000000..3854b1133c4 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch @@ -0,0 +1,58 @@ +From 994d9575374d3cdb34b1b0f70c3c53ae76fe578e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 07:41:05 -0700 +Subject: [PATCH 3/3] cli: Mark return of strtol as long int + +strtol does not return unsigned long + +error: taking the absolute value of unsigned type 'unsigned long' has no effect [-Werror,-Wabsolute-value] + if ((*endp == '\0') && (labs(tmp) < 32768)) { + +Signed-off-by: Khem Raj +--- + cli/cli_lib.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/cli/cli_lib.c b/cli/cli_lib.c +index e4d2fd5..5f487dc 100644 +--- a/cli/cli_lib.c ++++ b/cli/cli_lib.c +@@ -522,7 +522,7 @@ int cli_arg_parse_int32(struct cli_node *arg, const char *val, void *result) + int cli_arg_parse_int16(struct cli_node *arg, const char *val, void *result) + { + int16_t *intval = result; +- unsigned long tmp; ++ long tmp; + char *endp; + int ret = 0; + +@@ -539,7 +539,7 @@ int cli_arg_parse_int16(struct cli_node *arg, const char *val, void *result) + int cli_arg_parse_int8(struct cli_node *arg, const char *val, void *result) + { + int8_t *intval = result; +- unsigned long tmp; ++ long tmp; + char *endp; + int ret = 0; + +@@ -573,7 +573,7 @@ int cli_arg_parse_uint32(struct cli_node *arg, const char *val, void *result) + int cli_arg_parse_uint16(struct cli_node *arg, const char *val, void *result) + { + uint16_t *intval = result; +- unsigned long tmp; ++ long tmp; + char *endp; + int ret = 0; + +@@ -590,7 +590,7 @@ int cli_arg_parse_uint16(struct cli_node *arg, const char *val, void *result) + int cli_arg_parse_uint8(struct cli_node *arg, const char *val, void *result) + { + uint8_t *intval = result; +- unsigned long tmp; ++ long tmp; + char *endp; + int ret = 0; + +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch b/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch new file mode 100644 index 00000000000..3cd5259fa65 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch @@ -0,0 +1,283 @@ +From eb345047decba665e3f39908336a83f039e1ece2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 19 Jul 2017 16:01:32 -0700 +Subject: [PATCH 3/3] musl fixes + +Signed-off-by: Khem Raj +--- + cli/cli_readline.c | 7 +- + ippool_api.c | 9 ++- + net/ppp_defs.h | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + usl/usl.h | 4 ++ + 4 files changed, 208 insertions(+), 6 deletions(-) + create mode 100644 net/ppp_defs.h + +diff --git a/cli/cli_readline.c b/cli/cli_readline.c +index 2812e6e..542935c 100644 +--- a/cli/cli_readline.c ++++ b/cli/cli_readline.c +@@ -17,13 +17,14 @@ + * Boston, MA 02110-1301 USA + * + *****************************************************************************/ +- ++#define _GNU_SOURCE + #include + #include + #include + #include + #include +-#include ++#include ++#include + #include + + #include +@@ -630,7 +631,7 @@ static void cli_rl_uninstall_signal_handlers(void) + + static int cli_rl_install_signal_handlers(void) + { +- __sighandler_t handler; ++ sighandler_t handler; + + rl_catch_signals = 0; + rl_clear_signals(); +diff --git a/ippool_api.c b/ippool_api.c +index 2c10c47..d1127a9 100644 +--- a/ippool_api.c ++++ b/ippool_api.c +@@ -181,10 +181,13 @@ int ippool_api_rpc_check_request(SVCXPRT *xprt) + * non-loopback interface, reject the request. + */ + if ((!ippool_opt_remote_rpc) && +- ((xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) && +- (xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_ANY)))) { ++ ((xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_LOOPBACK)) && ++ (xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_ANY)))) { ++ char straddr[INET6_ADDRSTRLEN]; ++ inet_ntop(AF_INET6, &xprt->xp_raddr.sin6_addr, straddr, sizeof(straddr)); ++ + if (ippool_opt_debug) { +- ippool_log(LOG_ERR, "Rejecting RPC request from %s", inet_ntoa(xprt->xp_raddr.sin_addr)); ++ ippool_log(LOG_ERR, "Rejecting RPC request from %s", straddr); + } + svcerr_auth(xprt, AUTH_TOOWEAK); + return -EPERM; +diff --git a/net/ppp_defs.h b/net/ppp_defs.h +new file mode 100644 +index 0000000..b06eda5 +--- /dev/null ++++ b/net/ppp_defs.h +@@ -0,0 +1,194 @@ ++/* $Id: ppp_defs.h,v 1.17 2002/12/06 09:49:15 paulus Exp $ */ ++ ++/* ++ * ppp_defs.h - PPP definitions. ++ * ++ * Copyright (c) 1984 Paul Mackerras. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * 3. The name(s) of the authors of this software must not be used to ++ * endorse or promote products derived from this software without ++ * prior written permission. ++ * ++ * 4. Redistributions of any form whatsoever must retain the following ++ * acknowledgment: ++ * "This product includes software developed by Paul Mackerras ++ * ". ++ * ++ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO ++ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++#ifndef _PPP_DEFS_H_ ++#define _PPP_DEFS_H_ ++ ++/* ++ * The basic PPP frame. ++ */ ++#define PPP_HDRLEN 4 /* octets for standard ppp header */ ++#define PPP_FCSLEN 2 /* octets for FCS */ ++ ++/* ++ * Packet sizes ++ * ++ * Note - lcp shouldn't be allowed to negotiate stuff outside these ++ * limits. See lcp.h in the pppd directory. ++ * (XXX - these constants should simply be shared by lcp.c instead ++ * of living in lcp.h) ++ */ ++#define PPP_MTU 1500 /* Default MTU (size of Info field) */ ++#define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN) ++#define PPP_MINMTU 64 ++#define PPP_MRU 1500 /* default MRU = max length of info field */ ++#define PPP_MAXMRU 65000 /* Largest MRU we allow */ ++#define PPP_MINMRU 128 ++ ++#define PPP_ADDRESS(p) (((u_char *)(p))[0]) ++#define PPP_CONTROL(p) (((u_char *)(p))[1]) ++#define PPP_PROTOCOL(p) ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3]) ++ ++/* ++ * Significant octet values. ++ */ ++#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */ ++#define PPP_UI 0x03 /* Unnumbered Information */ ++#define PPP_FLAG 0x7e /* Flag Sequence */ ++#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */ ++#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */ ++ ++/* ++ * Protocol field values. ++ */ ++#define PPP_IP 0x21 /* Internet Protocol */ ++#define PPP_AT 0x29 /* AppleTalk Protocol */ ++#define PPP_IPX 0x2b /* IPX protocol */ ++#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */ ++#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */ ++#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */ ++#define PPP_COMP 0xfd /* compressed packet */ ++#define PPP_IPCP 0x8021 /* IP Control Protocol */ ++#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */ ++#define PPP_IPXCP 0x802b /* IPX Control Protocol */ ++#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */ ++#define PPP_CCP 0x80fd /* Compression Control Protocol */ ++#define PPP_ECP 0x8053 /* Encryption Control Protocol */ ++#define PPP_LCP 0xc021 /* Link Control Protocol */ ++#define PPP_PAP 0xc023 /* Password Authentication Protocol */ ++#define PPP_LQR 0xc025 /* Link Quality Report protocol */ ++#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */ ++#define PPP_CBCP 0xc029 /* Callback Control Protocol */ ++#define PPP_EAP 0xc227 /* Extensible Authentication Protocol */ ++ ++/* ++ * Values for FCS calculations. ++ */ ++#define PPP_INITFCS 0xffff /* Initial FCS value */ ++#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */ ++#define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff]) ++ ++/* ++ * A 32-bit unsigned integral type. ++ */ ++ ++#if !defined(__BIT_TYPES_DEFINED__) && !defined(_BITYPES) \ ++ && !defined(__FreeBSD__) && (NS_TARGET < 40) ++#ifdef UINT32_T ++typedef UINT32_T u_int32_t; ++#else ++typedef unsigned int u_int32_t; ++typedef unsigned short u_int16_t; ++#endif ++#endif ++ ++/* ++ * Extended asyncmap - allows any character to be escaped. ++ */ ++typedef u_int32_t ext_accm[8]; ++ ++/* ++ * What to do with network protocol (NP) packets. ++ */ ++enum NPmode { ++ NPMODE_PASS, /* pass the packet through */ ++ NPMODE_DROP, /* silently drop the packet */ ++ NPMODE_ERROR, /* return an error */ ++ NPMODE_QUEUE /* save it up for later. */ ++}; ++ ++/* ++ * Statistics. ++ */ ++struct pppstat { ++ unsigned int ppp_ibytes; /* bytes received */ ++ unsigned int ppp_ipackets; /* packets received */ ++ unsigned int ppp_ierrors; /* receive errors */ ++ unsigned int ppp_obytes; /* bytes sent */ ++ unsigned int ppp_opackets; /* packets sent */ ++ unsigned int ppp_oerrors; /* transmit errors */ ++}; ++ ++struct vjstat { ++ unsigned int vjs_packets; /* outbound packets */ ++ unsigned int vjs_compressed; /* outbound compressed packets */ ++ unsigned int vjs_searches; /* searches for connection state */ ++ unsigned int vjs_misses; /* times couldn't find conn. state */ ++ unsigned int vjs_uncompressedin; /* inbound uncompressed packets */ ++ unsigned int vjs_compressedin; /* inbound compressed packets */ ++ unsigned int vjs_errorin; /* inbound unknown type packets */ ++ unsigned int vjs_tossed; /* inbound packets tossed because of error */ ++}; ++ ++struct ppp_stats { ++ struct pppstat p; /* basic PPP statistics */ ++ struct vjstat vj; /* VJ header compression statistics */ ++}; ++ ++struct compstat { ++ unsigned int unc_bytes; /* total uncompressed bytes */ ++ unsigned int unc_packets; /* total uncompressed packets */ ++ unsigned int comp_bytes; /* compressed bytes */ ++ unsigned int comp_packets; /* compressed packets */ ++ unsigned int inc_bytes; /* incompressible bytes */ ++ unsigned int inc_packets; /* incompressible packets */ ++ unsigned int ratio; /* recent compression ratio << 8 */ ++}; ++ ++struct ppp_comp_stats { ++ struct compstat c; /* packet compression statistics */ ++ struct compstat d; /* packet decompression statistics */ ++}; ++ ++/* ++ * The following structure records the time in seconds since ++ * the last NP packet was sent or received. ++ */ ++struct ppp_idle { ++ time_t xmit_idle; /* time since last NP packet sent */ ++ time_t recv_idle; /* time since last NP packet received */ ++}; ++ ++#ifndef __P ++#ifdef __STDC__ ++#define __P(x) x ++#else ++#define __P(x) () ++#endif ++#endif ++ ++#endif /* _PPP_DEFS_H_ */ +diff --git a/usl/usl.h b/usl/usl.h +index cdc16db..88d2714 100644 +--- a/usl/usl.h ++++ b/usl/usl.h +@@ -38,6 +38,10 @@ + #include "usl_fsm.h" + #include "usl_list.h" + ++#ifndef WAIT_ANY ++#define WAIT_ANY (-1) ++#endif ++ + #define USL_VERSION "0.6" + + #ifdef DEBUG +-- +2.13.3 + diff --git a/meta-networking/recipes-daemons/ippool/ippool/always_syslog.patch b/meta-networking/recipes-daemons/ippool/ippool/always_syslog.patch new file mode 100644 index 00000000000..e475276c0e2 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/always_syslog.patch @@ -0,0 +1,22 @@ +ippool: always log to syslog + +Even when running in the foreground, send log messages to syslog. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Joe Slater + + +--- a/ippool_main.c ++++ b/ippool_main.c +@@ -251,9 +251,8 @@ void ippool_vlog(int level, const char * + if (ippool_opt_nodaemon) { + vprintf(fmt, ap); + printf("\n"); +- } else { +- vsyslog(level, fmt, ap); + } ++ vsyslog(level, fmt, ap); + DMALLOC_VMESSAGE(fmt, ap); + } + diff --git a/meta-networking/recipes-daemons/ippool/ippool/ippool.service b/meta-networking/recipes-daemons/ippool/ippool/ippool.service new file mode 100644 index 00000000000..e5917fc1418 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/ippool.service @@ -0,0 +1,19 @@ +[Unit] +Description=ip address pool allocator +Requires=rpcbind.service +After=rpcbind.service + +[Service] +Type=simple +# Start ippoold in the foreground! +ExecStart=@SBINDIR@/ippoold -f +# Normal output will go to syslog, so suppress stdout. +StandardOutput=null +StandardError=syslog +# ExecStop is not needed. systemd will send SIGTERM +# and ippoold will exit status 1. +SuccessExitStatus=1 + +[Install] +WantedBy=multi-user.target + diff --git a/meta-networking/recipes-daemons/ippool/ippool/ippool_init.d.patch b/meta-networking/recipes-daemons/ippool/ippool/ippool_init.d.patch new file mode 100644 index 00000000000..14a768d0feb --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/ippool_init.d.patch @@ -0,0 +1,65 @@ +Fix start error if lsb init-functions doesn't exist + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Yi Zhao + +diff --git a/debian/init.d b/debian/init.d +index 363ba89..0327fec 100644 +--- a/debian/init.d ++++ b/debian/init.d +@@ -10,6 +10,9 @@ + # Description: Start ippool daemon + ### END INIT INFO + ++# Source function library. ++. /etc/init.d/functions ++ + DAEMON=/usr/sbin/ippoold + NAME=ippoold + MODULE=pppol2tp +@@ -18,7 +21,23 @@ MODULE=pppol2tp + test -x $DAEMON || exit 0 + + # Get lsb functions +-. /lib/lsb/init-functions ++if [ -f /lib/lsb/init-functions ] ++then ++ . /lib/lsb/init-functions ++else ++ log_begin_msg() { ++ echo -n $* ++ } ++ ++ log_end_msg() { ++ if [ $1 -eq 0 ]; then ++ echo "done" ++ else ++ echo "failed" ++ fi ++ } ++fi ++ + . /etc/default/rcS + + case "$1" in +@@ -35,6 +54,10 @@ case "$1" in + fi + log_end_msg $? + ;; ++ status) ++ status /usr/sbin/ippoold; ++ exit $? ++ ;; + restart) + $0 stop + sleep 1 +@@ -46,7 +69,7 @@ case "$1" in + log_end_msg $? + ;; + *) +- log_success_msg "Usage: /etc/init.d/ippoold {start|stop|restart|reload|force-reload}" ++ log_success_msg "Usage: /etc/init.d/ippoold {start|stop|status|restart|reload|force-reload}" + exit 1 + esac + diff --git a/meta-networking/recipes-daemons/ippool/ippool/ippool_parallel_make_and_pic.patch b/meta-networking/recipes-daemons/ippool/ippool/ippool_parallel_make_and_pic.patch new file mode 100644 index 00000000000..1ebd95ea175 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/ippool_parallel_make_and_pic.patch @@ -0,0 +1,89 @@ +1)add -fPIC for $(IPPOOL_RPC_STEM)_xdr.o, $(IPPOOL_RPC_STEM)_client.o +2)add sub target for subdirs-all, and those dependencies below + pppd plugin directory build depends on $(IPPOOL_RPC_STEM)_xdr.o +$(IPPOOL_RPC_STEM)_client.o ippool_rpc.h + + ippoold depends on libusl + ippoolconfig depends on libcli + + $(IPPOOL_RPC_STEM)_xdr.o, $(IPPOOL_RPC_STEM)_client.o +$(IPPOOL_RPC_STEM)_server.o *.o in main directory depends on ippool_rpc.h +as those all directly or indirectly include ippool_rpc.h which is +dynamically generated by rpcgen + +to make parallel make working. +3)include dependency files for pppd. + +Upstream-Status: Pending + +Signed-off-by: Yao Zhao +--- +diff --git a/Makefile b/Makefile +index 73aa72f..4f7af1d 100644 +--- a/Makefile ++++ b/Makefile +@@ -106,14 +106,14 @@ all: generated-files $(IPPOOL_RPC_STEM)_xdr.o $(IPPOOL_RPC_STEM)_client.o \ + subdirs-all $(PROGS.sbin) $(PROGS.bin) + + # Compile without -Wall because rpcgen-generated code is full of warnings +-$(IPPOOL_RPC_STEM)_xdr.o: $(IPPOOL_RPC_STEM)_xdr.c +- $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< ++$(IPPOOL_RPC_STEM)_xdr.o: $(IPPOOL_RPC_STEM)_xdr.c $(IPPOOL_RPC_STEM).h ++ $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC + +-$(IPPOOL_RPC_STEM)_client.o: $(IPPOOL_RPC_STEM)_client.c +- $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< ++$(IPPOOL_RPC_STEM)_client.o: $(IPPOOL_RPC_STEM)_client.c $(IPPOOL_RPC_STEM).h ++ $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC + +-$(IPPOOL_RPC_STEM)_server.o: $(IPPOOL_RPC_STEM)_server.c +- $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< ++$(IPPOOL_RPC_STEM)_server.o: $(IPPOOL_RPC_STEM)_server.c $(IPPOOL_RPC_STEM).h ++ $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC + + $(IPPOOL_RPC_STEM)_xdr.c: $(IPPOOL_RPC_STEM).x + -$(RM) $@ +@@ -136,8 +136,12 @@ $(IPPOOL_RPC_STEM).h: $(IPPOOL_RPC_STEM).x + + generated-files: $(RPC_FILES) + +-subdirs-all: +- @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS)" all; if [ $$? -ne 0 ]; then exit 1; fi; done ++subdirs-all: $(patsubst %,%-dir, $(SUBDIRS)) ++ ++pppd-dir: $(IPPOOL_RPC_STEM)_xdr.o $(IPPOOL_RPC_STEM)_client.o $(IPPOOL_RPC_STEM).h ++ ++$(patsubst %,%-dir,$(SUBDIRS)): ++ @for d in $(patsubst %-dir,%,$@); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS)" all; if [ $$? -ne 0 ]; then exit 1; fi; done + + clean: + @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) $@; if [ $$? -ne 0 ]; then exit 1; fi; done +@@ -151,13 +155,13 @@ TAGS: + @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) $@; done + etags -t $(wildcard *.c) $(wildcard *.h) + +-ippoold: $(IPPOOLD_SRCS.o) +- $(CC) -o $@ $^ $(LDFLAGS.ippoold) ++ippoold: $(IPPOOLD_SRCS.o) usl-dir ++ $(CC) -o $@ $(IPPOOLD_SRCS.o) $(LDFLAGS.ippoold) + +-ippoolconfig: $(IPPOOLCONFIG_SRCS.o) +- $(CC) -o $@ $^ $(LDFLAGS.ippoolconfig) ++ippoolconfig: $(IPPOOLCONFIG_SRCS.o) cli-dir ++ $(CC) -o $@ $(IPPOOLCONFIG_SRCS.o) $(LDFLAGS.ippoolconfig) + +-%.o: %.c ++%.o: %.c $(IPPOOL_RPC_STEM).h + $(CC) -c $(CFLAGS) $< -o $@ + + install: all +diff --git a/pppd/Makefile b/pppd/Makefile +index 78d9b33..106deca 100644 +--- a/pppd/Makefile ++++ b/pppd/Makefile +@@ -24,3 +24,5 @@ install: ippool.so + + clean: + -rm -rf *.o *.so ++ ++include $(wildcard *.d /dev/null) diff --git a/meta-networking/recipes-daemons/ippool/ippool/ippool_usl_timer.patch b/meta-networking/recipes-daemons/ippool/ippool/ippool_usl_timer.patch new file mode 100644 index 00000000000..ca0e3320c9d --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/ippool_usl_timer.patch @@ -0,0 +1,49 @@ +include limits.h to avoid UINT_MAX undefined compiling error. +remove the unused assign which caused compiling error with -Werror. + +Upstream-Status: Pending + +Signed-off-by: Yao Zhao +--- + +diff --git a/usl/usl_timer.c b/usl/usl_timer.c +index 734b820..fda752b 100644 +--- a/usl/usl_timer.c ++++ b/usl/usl_timer.c +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + + #include "usl.h" + +@@ -87,14 +88,13 @@ void (*usl_timer_tick_hook)(void); + */ + void usl_timer_tick(void) + { +- int result; + char msg = '\0'; + + usl_tick++; + + if (!usl_tick_pending) { + usl_tick_pending = 1; +- result = write(usl_tick_pipe[1], &msg, sizeof(msg)); ++ write(usl_tick_pipe[1], &msg, sizeof(msg)); + } + } + +@@ -111,11 +111,10 @@ static void usl_timer_tick_handler(int fd, void *arg) + struct usl_ord_list_head *tmp; + struct usl_list_head *iwalk; + struct usl_list_head *itmp; +- int result; + char msg; + USL_LIST_HEAD(expire_list); + +- result = usl_fd_read(usl_tick_pipe[0], &msg, sizeof(msg)); ++ usl_fd_read(usl_tick_pipe[0], &msg, sizeof(msg)); + usl_tick_pending = 0; + + usl_list_for_each(walk, tmp, &usl_timer_list) { diff --git a/meta-networking/recipes-daemons/ippool/ippool/makefile-add-ldflags.patch b/meta-networking/recipes-daemons/ippool/ippool/makefile-add-ldflags.patch new file mode 100644 index 00000000000..7d5b715aeea --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/makefile-add-ldflags.patch @@ -0,0 +1,21 @@ +Add LDFLAGS variable to Makefile so that extra linker flags can be sent via this variable. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/Makefile b/Makefile +index 4f7af1d..a05a000 100644 +--- a/Makefile ++++ b/Makefile +@@ -83,8 +83,8 @@ endif + + CPPFLAGS= $(CPPFLAGS.ippooltest) + CFLAGS= -I. -Iusl -Icli -MMD -Wall -g $(CPPFLAGS) $(CPPFLAGS.dmalloc) +-LDFLAGS.ippoold= -Wl,-E -L. -Lusl -lusl -lnsl -ldl $(LIBS.dmalloc) -lc +-LDFLAGS.ippoolconfig= -Lcli -lcli -lreadline -lcurses -lnsl $(LIBS.dmalloc) -lc ++LDFLAGS.ippoold= $(LDFLAGS) -Wl,-E -L. -Lusl -lusl -lnsl -ldl $(LIBS.dmalloc) -lc ++LDFLAGS.ippoolconfig= $(LDFLAGS) -Lcli -lcli -lreadline -lcurses -lnsl $(LIBS.dmalloc) -lc + + OPT_CFLAGS?= -O + diff --git a/meta-networking/recipes-daemons/ippool/ippool/runtest.sh b/meta-networking/recipes-daemons/ippool/ippool/runtest.sh new file mode 100644 index 00000000000..f91f58237a6 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool/runtest.sh @@ -0,0 +1,26 @@ +#!/bin/sh +BANNER="----------------------------------------------------------------------------" +TCLSH="tclsh all.tcl -preservecore 3 -verbose bps -tmpdir ./results -outfile test-ippool.result" + +test_setup() { + if [ -d ./results ]; then rm -fr ./results; fi + mkdir ./results +} + +test_ippool() { + echo "${BANNER}" + eval $TCLSH -constraints "ipPool" +} +test_postprocess() { + echo "${BANNER}" + (failed=`grep FAILED results/*.result | wc -l`; \ + let failed2=failed/2 ;\ + passed=`grep PASSED results/*.result | wc -l`; \ + echo "TEST SUMMARY: $passed tests PASSED, $failed2 tests FAILED" ;\ + exit $failed2) +} + +test_setup +test_ippool +test_postprocess + diff --git a/meta-networking/recipes-daemons/ippool/ippool_1.3.bb b/meta-networking/recipes-daemons/ippool/ippool_1.3.bb new file mode 100644 index 00000000000..6e474835709 --- /dev/null +++ b/meta-networking/recipes-daemons/ippool/ippool_1.3.bb @@ -0,0 +1,113 @@ +SUMMARY = "An IP address pool manager" +DESCRIPTION = "IpPool is implemented as a separate server daemon \ +to allow any application to use its address pools. This makes it possible \ +to define address pools that are shared by PPP, L2TP, PPTP etc. It may be \ +useful in some VPN server setups. IpPool comes with a command line \ +management application, ippoolconfig to manage and query address pool \ +status. A pppd plugin is supplied which allows pppd to request IP \ +addresses from ippoold. \ +" +HOMEPAGE = "http://www.openl2tp.org/" +SECTION = "console/network" +LICENSE = "GPLv2+" + +SRC_URI = "https://sourceforge.net/projects/openl2tp/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://runtest.sh \ + file://ippool.service \ + file://ippool_usl_timer.patch \ + file://ippool_parallel_make_and_pic.patch \ + file://ippool_init.d.patch \ + file://always_syslog.patch \ + file://makefile-add-ldflags.patch \ + file://0001-usl_timer-Check-for-return-value-of-write-API.patch \ + file://0001-Respect-flags-from-env.patch \ + file://0001-read-returns-ssize_t.patch \ + file://0002-Mark-first-element-of-a-string-as-null.patch \ + file://0003-cli-Mark-return-of-strtol-as-long-int.patch \ + " +SRC_URI_append_libc-musl = "\ + file://0002-link-with-libtirpc.patch \ + file://0003-musl-fixes.patch \ + " + +LIC_FILES_CHKSUM = "file://LICENSE;md5=4c59283b82fc2b166455e0fc23c71c6f" +SRC_URI[md5sum] = "e2401e65db26a3764585b97212888fae" +SRC_URI[sha256sum] = "d3eab7d6cad5da8ccc9d1e31d5303e27a39622c07bdb8fa3618eea314412075b" + +inherit systemd + +DEPENDS = "readline ppp ncurses gzip-native" +DEPENDS_append_libc-musl = " libtirpc" +RDEPENDS_${PN} = "rpcbind" + +EXTRA_OEMAKE = "CC='${CC}' AS='${AS}' LD='${LD}' AR='${AR}' NM='${NM}' STRIP='${STRIP}'" +EXTRA_OEMAKE += "PPPD_VERSION=${PPPD_VERSION} SYS_LIBDIR=${libdir}" +# enable self tests +EXTRA_OEMAKE += "IPPOOL_TEST=y" + +CPPFLAGS += "${SELECTED_OPTIMIZATION}" +CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" + +SYSTEMD_SERVICE_${PN} = "ippool.service" +SYSTEMD_AUTO_ENABLE = "disable" + + +do_compile_prepend() { + # fix the CFLAGS= and CPPFLAGS= in main Makefile, to have the extra CFLAGS in env + sed -i -e "s/^CFLAGS=/CFLAGS+=/" ${S}/Makefile + sed -i -e "s/^CPPFLAGS=/CPPFLAGS+=/" ${S}/Makefile + + sed -i -e "s:-I/usr/include/pppd:-I=/usr/include/pppd:" ${S}/pppd/Makefile + +} + + +do_install() { + oe_runmake DESTDIR=${D} install + + install -D -m 0755 ${S}/debian/init.d ${D}${sysconfdir}/init.d/ippoold + install -D -m 0644 ${WORKDIR}/ippool.service ${D}${systemd_system_unitdir}/ippool.service + sed -i -e 's:@SBINDIR@:${sbindir}:g' ${D}${systemd_system_unitdir}/ippool.service + + # install self test + install -d ${D}/opt/${BPN} + install ${S}/test/all.tcl ${S}/test/ippool.test \ + ${S}/test/test_procs.tcl ${D}/opt/${BPN} + install ${WORKDIR}/runtest.sh ${D}/opt/${BPN} + # fix the ../ippoolconfig in test_procs.tcl + sed -i -e "s:../ippoolconfig:ippoolconfig:" \ + ${D}/opt/${BPN}/test_procs.tcl +} + + +PACKAGES =+ "${PN}-test" + +FILES_${PN} += "${libdir}/pppd/${PPPD_VERSION}/ippool.so" +FILES_${PN}-dbg += "${libdir}/pppd/${PPPD_VERSION}/.debug/ippool.so" +FILES_${PN}-test = "/opt/${BPN}" + +# needs tcl to run tests +RDEPENDS_${PN}-test += "tcl ${BPN}" + +PPPD_VERSION="${@get_ppp_version(d)}" + +def get_ppp_version(d): + import re + + pppd_plugin = d.expand('${STAGING_LIBDIR}/pppd') + if not os.path.isdir(pppd_plugin): + return None + + bb.debug(1, "pppd plugin dir %s" % pppd_plugin) + r = re.compile("\d*\.\d*\.\d*") + for f in os.listdir(pppd_plugin): + if os.path.isdir(os.path.join(pppd_plugin, f)): + ma = r.match(f) + if ma: + bb.debug(1, "pppd version dir %s" % f) + return f + else: + bb.debug(1, "under pppd plugin dir %s" % f) + + return None + diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-Do-not-clean-kernel-source.patch b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-Do-not-clean-kernel-source.patch new file mode 100644 index 00000000000..2c466119cdf --- /dev/null +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-Do-not-clean-kernel-source.patch @@ -0,0 +1,44 @@ +From 4ebab8add4a549c16ab8b124137546c0a7b46a9b Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Tue, 15 Nov 2016 11:11:30 -0500 +Subject: [PATCH] Do not clean kernel source + +The default behaviour should not be to attempt to clean the kernel source +tree when building userspace. When not cross-compiling, however, this action is +harmless, but when attempting to build within the sysroot and since this package +is purely userspace, the clean step will fail. + +Removing the clean step eliminates an unnecessary dependency on the kernel build +infrastructure. + +Upstream-status: Inappropriate (embedded specific) + +Signed-off-by: Joe MacDonald +--- + Makefile | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index c8cd00e..9576bba 100644 +--- a/Makefile ++++ b/Makefile +@@ -37,7 +37,7 @@ endif + + all: user + +-user: iscsiuio/Makefile ++user: + $(MAKE) -C utils/sysdeps + $(MAKE) -C utils/fwparam_ibft + $(MAKE) -C usr +@@ -75,7 +75,6 @@ clean: + $(MAKE) -C utils/fwparam_ibft clean + $(MAKE) -C utils clean + $(MAKE) -C usr clean +- $(MAKE) -C kernel clean + [ ! -f iscsiuio/Makefile ] || $(MAKE) -C iscsiuio clean + [ ! -f iscsiuio/Makefile ] || $(MAKE) -C iscsiuio distclean + +-- +1.9.1 + diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch deleted file mode 100644 index ce48e2bb396..00000000000 --- a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch +++ /dev/null @@ -1,21 +0,0 @@ -iscsi-initiator-utils not to use static - -Upstream-status: Backport -This patch is from fedora17. - -Signed-off-by: Yao Zhao -Signed-off-by: Vu Tran - -diff --git a/usr/Makefile b/usr/Makefile -index 673b7f1..fd14a10 100644 ---- a/usr/Makefile -+++ b/usr/Makefile -@@ -61,7 +61,7 @@ iscsiadm: $(ISCSI_LIB_SRCS) $(DISCOVERY_SRCS) iscsiadm.o session_mgmt.o - - iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \ - iscsistart.o statics.o -- $(CC) $(CFLAGS) -static $^ -o $@ -+ $(CC) $(CFLAGS) $^ -o $@ - clean: - rm -f *.o $(PROGRAMS) .depend $(LIBSYS) - diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-fw_context-add-include-for-NI_MAXHOST-definiton.patch b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-fw_context-add-include-for-NI_MAXHOST-definiton.patch new file mode 100644 index 00000000000..37d695f49d6 --- /dev/null +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-fw_context-add-include-for-NI_MAXHOST-definiton.patch @@ -0,0 +1,35 @@ +From 79bea58a554205dd185509fbc4e76b5fc40f9038 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Tue, 15 Nov 2016 12:36:45 -0500 +Subject: [PATCH] fw_context: add include for NI_MAXHOST definiton + +This appears to build successfully with gcc 4.x but fails on gcc 5+, though it's +not immediately clear why NI_MAXHOST isn't being defined from the include +chain. Currently engaging with the upstream devs to determine the best course +of action, but this is an adequate workaround. + +Upstream-status: Pending + +Signed-off-by: Joe MacDonald +--- + include/fw_context.h | 4 + + 1 file changed, 1 insertion(+) + +diff --git a/include/fw_context.h b/include/fw_context.h +index 44053d8..0b05cea 100644 +--- a/include/fw_context.h ++++ b/include/fw_context.h +@@ -21,6 +21,10 @@ + #ifndef FWPARAM_CONTEXT_H_ + #define FWPARAM_CONTEXT_H_ + ++#include ++#ifndef NI_MAXHOST ++#define NI_MAXHOST 1025 ++#endif + #include + #include + +-- +2.1.4 + diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch deleted file mode 100644 index 50227a77482..00000000000 --- a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch +++ /dev/null @@ -1,240 +0,0 @@ -iscsi-initiator-utils to use var for config - -Upstream-status: Backport -This patch is from fedora. - -Use /var/lib/iscsi/ instead of /etc/iscsi/ for holding -state files. - -Signed-off-by: Yao Zhao -Signed-off-by: Vu Tran - -diff --git a/README b/README -index 7364b2d..5e8bff8 100644 ---- a/README -+++ b/README -@@ -164,10 +164,10 @@ available on all Linux installations. - - The database contains two tables: - --- Discovery table (/etc/iscsi/send_targets); --- Node table (/etc/iscsi/nodes). -+- Discovery table (/var/lib/iscsi/send_targets); -+- Node table (/var/lib/iscsi/nodes). - --The regular place for iSCSI database files: /etc/iscsi/nodes -+The regular place for iSCSI database files: /var/lib/iscsi/nodes - - The iscsiadm utility is a command-line tool to manage (update, delete, - insert, query) the persistent database. -@@ -444,7 +444,7 @@ a scsi_host per HBA port). - To manage both types of initiator stacks, iscsiadm uses the interface (iface) - structure. For each HBA port or for software iscsi for each network - device (ethX) or NIC, that you wish to bind sessions to you must create --a iface config /etc/iscsi/ifaces. -+a iface config /var/lib/iscsi/ifaces. - - Prep: - -@@ -478,29 +478,29 @@ Running: - iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax - iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax - --Will report iface configurations that are setup in /etc/iscsi/ifaces. -+Will report iface configurations that are setup in /var/lib/iscsi/ifaces. - The format is: - - iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname - - For software iscsi, you can create the iface configs by hand, but it is - reccomended that you use iscsiadm's iface mode. There is a iface.example in --/etc/iscsi/ifaces which can be used as a template for the daring. -+/var/lib/iscsi/ifaces which can be used as a template for the daring. - - For each network object you wish to bind a session to you must create --a seperate iface config in /etc/iscsi/ifaces and each iface config file -+a seperate iface config in /var/lib/iscsi/ifaces and each iface config file - must have a unique name which is less than or equal to 64 characters. - - Example: - - If you have NIC1 with MAC address 00:0F:1F:92:6B:BF and NIC2 with - MAC address 00:C0:DD:08:63:E7 and you wanted to do software iscsi over --TCP/IP. Then in /etc/iscsi/ifaces/iface0 you would enter: -+TCP/IP. Then in /var/lib/iscsi/ifaces/iface0 you would enter: - - iface.transport_name = tcp - iface.hwaddress = 00:0F:1F:92:6B:BF - --and in /etc/iscsi/ifaces/iface1 you would enter: -+and in /var/lib/iscsi/ifaces/iface1 you would enter: - - iface.transport_name = tcp - iface.hwaddress = 00:C0:DD:08:63:E7 -@@ -550,7 +550,7 @@ cxgb3i.00:07:43:05:97:07 cxgb3i,00:07:43:05:97:07,,, - qla4xxx.00:0e:1e:04:8b:2e qla4xxx,00:0e:1e:04:8b:2e,,, - - --Will report iface configurations that are setup in /etc/iscsi/ifaces. -+Will report iface configurations that are setup in /var/lib/iscsi/ifaces. - The format is: - - iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname -@@ -636,7 +636,7 @@ need a seperate network connection to the target for discovery purposes. - *This will be fixed in the next version of open-iscsi* - - For compatibility reasons, when you run iscsiadm to do discovery, it --will check for interfaces in /etc/iscsi/iscsi/ifaces that are using -+will check for interfaces in /var/lib/iscsi/iscsi/ifaces that are using - tcp for the iface.transport and it will bind the portals that are discovered - so that they will be logged in through those ifaces. This behavior can also - be overriden by passing in the interfaces you want to use. For the case -@@ -654,7 +654,7 @@ we do not bind a session to a iface, then you can use the special iface - - iscsiadm -m discoverydb -t st -p ip:port -I default --discover -P 1 - --And if you did not define any interfaces in /etc/iscsi/ifaces and do -+And if you did not define any interfaces in /var/lib/iscsi/ifaces and do - not pass anything into iscsiadm, running iscsiadm will do the default - behavior, where we allow the network subsystem to decide which - device to use. -@@ -696,7 +696,7 @@ To now log into targets it is the same as with sofware iscsi. See section - - ./iscsiadm -m discoverydb -t st -p 192.168.1.1:3260 --discover - -- This will search /etc/iscsi/send_targets for a record with the -+ This will search /var/lib/iscsi/send_targets for a record with the - ID [portal = 192.168.1.1:3260 and type = sendtargets. If found it - will perform discovery using the settings stored in the record. - If a record does not exist, it will be created using the iscsid.conf -@@ -705,7 +705,7 @@ To now log into targets it is the same as with sofware iscsi. See section - The argument to -p may also be a hostname instead of an address. - ./iscsiadm -m discoverydb -t st -p smoehost --discover - -- For the ifaces, iscsiadm will first search /etc/iscsi/ifaces for -+ For the ifaces, iscsiadm will first search /var/lib/iscsi/ifaces for - interfaces using software iscsi. If any are found then nodes found - during discovery will be setup so that they can logged in through - those interfaces. To specify a specific iface, pass the -@@ -761,7 +761,7 @@ To now log into targets it is the same as with sofware iscsi. See section - This command will perform discovery, but not manipulate the node DB. - - - SendTargets iSCSI Discovery with a specific interface. If you -- wish to only use a subset of the interfaces in /etc/iscsi/ifaces -+ wish to only use a subset of the interfaces in /var/lib/iscsi/ifaces - then you can pass them in during discovery: - - ./iscsiadm -m discoverydb -t sendtargets -p 192.168.1.1:3260 \ -@@ -1072,8 +1072,8 @@ where targetname is the name of the target and ip_address:port is the address - and port of the portal. tpgt, is the portal group tag of - the portal, and is not used in iscsiadm commands except for static - record creation. And iface name is the name of the iscsi interface --defined in /etc/iscsi/ifaces. If no interface was defined in --/etc/iscsi/ifaces or passed in, the default behavior is used. -+defined in /var/lib/iscsi/ifaces. If no interface was defined in -+/var/lib/iscsi/ifaces or passed in, the default behavior is used. - Default here is iscsi_tcp/tcp to be used over which ever NIC the - network layer decides is best. - -@@ -1188,7 +1188,7 @@ If set, iscsid will perform discovery to the address every - discovery.isns.discoveryd_poll_inval or - discovery.sendtargets.discoveryd_poll_inval seconds, - and it will log into any portals found from the discovery source using --the ifaces in /etc/iscsi/ifaces. -+the ifaces in /var/lib/iscsi/ifaces. - - Note that for iSNS the poll_interval does not have to be set. If not set, - iscsid will only perform rediscovery when it gets a SCN from the server. -diff --git a/doc/iscsiadm.8 b/doc/iscsiadm.8 -index 7c209f6..e94cca0 100644 ---- a/doc/iscsiadm.8 -+++ b/doc/iscsiadm.8 -@@ -89,7 +89,7 @@ This option is only valid for ping submode. - .TP - \fB\-I\fR, \fB\-\-interface=\fI[iface]\fR - The interface argument specifies the iSCSI interface to use for the operation. --iSCSI interfaces (iface) are defined in /etc/iscsi/ifaces. For hardware -+iSCSI interfaces (iface) are defined in /var/lib/iscsi/ifaces. For hardware - iSCSI (qla4xxx) the iface config must have the hardware address - (iface.hwaddress = port's MAC address) - and the driver/transport_name (iface.transport_name). The iface's name is -@@ -166,7 +166,7 @@ If no other options are specified: for \fIdiscoverydb\fR and \fInode\fR, all - of their respective records are displayed; for \fIsession\fR, all active - sessions and connections are displayed; for \fIfw\fR, all boot firmware - values are displayed; for \fIhost\fR, all iSCSI hosts are displayed; and --for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed. -+for \fIiface\fR, all ifaces setup in /var/lib/iscsi/ifaces are displayed. - - .TP - \fB\-n\fR, \fB\-\-name=\fIname\fR -@@ -535,10 +535,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup. - The file containing the iSCSI InitiatorName and InitiatorAlias read by - \fBiscsid\fR and \fBiscsiadm\fR on startup. - .TP --/etc/iscsi/nodes/ -+/var/lib/iscsi/nodes/ - This directory contains the nodes with their targets. - .TP --/etc/iscsi/send_targets -+/var/lib/iscsi/send_targets - This directory contains the portals. - - .SH "SEE ALSO" -diff --git a/usr/idbm.c b/usr/idbm.c -index 4d30aa9..316e54f 100644 ---- a/usr/idbm.c -+++ b/usr/idbm.c -@@ -2468,9 +2468,9 @@ free_info: - int idbm_init(idbm_get_config_file_fn *fn) - { - /* make sure root db dir is there */ -- if (access(ISCSI_CONFIG_ROOT, F_OK) != 0) { -- if (mkdir(ISCSI_CONFIG_ROOT, 0660) != 0) { -- log_error("Could not make %s %d\n", ISCSI_CONFIG_ROOT, -+ if (access(ISCSIVAR, F_OK) != 0) { -+ if (mkdir(ISCSIVAR, 0660) != 0) { -+ log_error("Could not make %s %d\n", ISCSIVAR, - errno); - return errno; - } -diff --git a/usr/idbm.h b/usr/idbm.h -index 245f046..f45e86e 100644 ---- a/usr/idbm.h -+++ b/usr/idbm.h -@@ -28,12 +28,16 @@ - #include "config.h" - #include "list.h" - --#define NODE_CONFIG_DIR ISCSI_CONFIG_ROOT"nodes" --#define SLP_CONFIG_DIR ISCSI_CONFIG_ROOT"slp" --#define ISNS_CONFIG_DIR ISCSI_CONFIG_ROOT"isns" --#define STATIC_CONFIG_DIR ISCSI_CONFIG_ROOT"static" --#define FW_CONFIG_DIR ISCSI_CONFIG_ROOT"fw" --#define ST_CONFIG_DIR ISCSI_CONFIG_ROOT"send_targets" -+#define ISCSIVAR "/var/lib/iscsi/" -+ -+#define NODE_CONFIG_DIR ISCSIVAR"nodes" -+#define SLP_CONFIG_DIR ISCSIVAR"slp" -+#define ISNS_CONFIG_DIR ISCSIVAR"isns" -+#define STATIC_CONFIG_DIR ISCSIVAR"static" -+#define FW_CONFIG_DIR ISCSIVAR"fw" -+#define ST_CONFIG_DIR ISCSIVAR"send_targets" -+ -+ - #define ST_CONFIG_NAME "st_config" - #define ISNS_CONFIG_NAME "isns_config" - -diff --git a/usr/iface.h b/usr/iface.h -index 01f7074..2c6ef72 100644 ---- a/usr/iface.h -+++ b/usr/iface.h -@@ -20,7 +20,8 @@ - #ifndef ISCSI_IFACE_H - #define ISCSI_IFACE_H - --#define IFACE_CONFIG_DIR ISCSI_CONFIG_ROOT"ifaces" -+#include "idbm.h" -+#define IFACE_CONFIG_DIR ISCSIVAR"ifaces" - - struct iface_rec; - struct list_head; diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator.service b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator.service index b1397513bb8..3790daebdc1 100644 --- a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator.service +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator.service @@ -5,6 +5,7 @@ After=syslog.target [Service] EnvironmentFile=/etc/default/iscsi-initiator ExecStartPre=/sbin/modprobe iscsi_tcp +ExecStartPre=/usr/lib/iscsi/set_initiatorname ExecStart=/usr/sbin/iscsid -f $OPTS_ISCSID [Install] diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/set_initiatorname b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/set_initiatorname new file mode 100644 index 00000000000..a196c6b79d3 --- /dev/null +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/set_initiatorname @@ -0,0 +1,12 @@ +#!/bin/sh +if [ ! -f /etc/iscsi/initiatorname.iscsi ]; then + INITIATORNAME=$(iscsi-iname) + cat >/etc/iscsi/initiatorname.iscsi < ${D}${sysconfdir}/tmpfiles.d/iscsi.conf - install -d ${D}/etc/default/ - install -p -m 755 ${WORKDIR}/iscsi-initiator ${D}${sysconfdir}/default/ - - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/iscsi-initiator.service \ - ${WORKDIR}/iscsi-initiator-targets.service \ - ${D}${systemd_unitdir}/system/ - else - install -d ${D}/etc/default/volatiles - install -m 0644 ${WORKDIR}/99_iscsi-initiator-utils ${D}/etc/default/volatiles - fi -} - -pkg_postinst_${PN}() { - #default there is no initiatorname.iscsi installed - #but it is needed or iscsid will fail - - #will run only when postinst on target - if [ "x$D" != "x" ]; then - exit 1 - fi - if [ ! -f ${sysconfdir}/iscsi/initiatorname.iscsi ]; then - echo "InitiatorName=$(${sbindir}/iscsi-iname)" > \ - ${sysconfdir}/iscsi/initiatorname.iscsi - fi - - if [ -e /etc/init.d/populate-volatile.sh ]; then - /etc/init.d/populate-volatile.sh update - elif command -v systemd-tmpfiles >/dev/null; then - systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/iscsi.conf - fi -} - -SYSTEMD_SERVICE = " iscsi-initiator.service iscsi-initiator-targets.service " -INITSCRIPT_NAME = "iscsid" -INITSCRIPT_PARAMS = "start 30 1 2 3 4 5 . stop 70 0 1 2 3 4 5 6 ." diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.874.bb b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.874.bb new file mode 100644 index 00000000000..16ac1999268 --- /dev/null +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.874.bb @@ -0,0 +1,122 @@ +SUMMARY = "iSCSI daemon and utility programs" +DESCRIPTION = "Open-iSCSI project is a high performance, transport \ +independent, multi-platform implementation of RFC3720. The iscsi package \ +provides the server daemon for the iSCSI protocol, as well as the utility \ +programs used to manage it. iSCSI is a protocol for distributed \ +disk access using SCSI commands sent over Internet Protocol networks." +HOMEPAGE = "http://www.open-iscsi.com/" +LICENSE = "GPLv2 & LGPLv2.1" +SECTION = "net" +DEPENDS = "openssl flex-native bison-native open-isns util-linux" + +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +SRCREV ?= "8db9717e73d32d2c5131da4f9ad86dfd9065f74b" + +SRC_URI = "git://github.com/open-iscsi/open-iscsi \ + file://iscsi-initiator-utils-Do-not-clean-kernel-source.patch \ + file://iscsi-initiator-utils-fw_context-add-include-for-NI_MAXHOST-definiton.patch \ + file://initd.debian \ + file://99_iscsi-initiator-utils \ + file://iscsi-initiator \ + file://iscsi-initiator.service \ + file://iscsi-initiator-targets.service \ + file://set_initiatorname \ +" + +S = "${WORKDIR}/git" +B = "${WORKDIR}/build" + +inherit update-rc.d systemd autotools distro_features_check +# open-isns depends on systemd +REQUIRED_DISTRO_FEATURES = "systemd" + +EXTRA_OECONF = " \ + --target=${TARGET_SYS} \ + --host=${BUILD_SYS} \ + --prefix=${prefix} \ + --libdir=${libdir} \ +" + +EXTRA_OEMAKE = ' \ + CC="${CC}" \ + AR="${AR}" \ + RANLIB="${RANLIB}" \ + CFLAGS="${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE -I. -I../include -I../../include -I../usr -I../../usr" \ + LDFLAGS="${LDFLAGS}" \ + LD="${LD}" \ + OS="${TARGET_SYS}" \ + TARGET="${TARGET_OS}" \ + BASE="${prefix}" \ + MANDIR="${mandir}" \ +' + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_configure () { + cd ${S}/iscsiuio ; autoreconf --install; ./configure ${EXTRA_OECONF} +} + +do_compile () { + # Make sure we DO NOT regenerate prom_lex.c. + mv ${S}/utils/fwparam_ibft/prom_lex.l ${S}/utils/fwparam_ibft/prom_lex.l.unused + oe_runmake -C ${S} ${EXTRA_OEMAKE} user +} + +do_install () { + #install necessary directories + install -d ${D}${sbindir} \ + ${D}${sysconfdir}/init.d \ + ${D}${sysconfdir}/iscsi \ + ${D}${localstatedir}/lib/iscsi/nodes \ + ${D}${localstatedir}/lib/iscsi/send_targets \ + ${D}${localstatedir}/lib/iscsi/static \ + ${D}${localstatedir}/lib/iscsi/isns \ + ${D}${localstatedir}/lib/iscsi/slp \ + ${D}${localstatedir}/lib/iscsi/ifaces \ + ${D}/${mandir}/man8 + + install -p -m 755 ${S}/usr/iscsid ${S}/usr/iscsiadm \ + ${S}/utils/iscsi-iname \ + ${S}/usr/iscsistart ${D}/${sbindir} + + install -p -m 644 ${S}/doc/iscsiadm.8 ${S}/doc/iscsid.8 ${D}/${mandir}/man8 + install -p -m 644 ${S}/etc/iscsid.conf ${D}${sysconfdir}/iscsi + install -p -m 755 ${WORKDIR}/initd.debian ${D}${sysconfdir}/init.d/iscsid + + sed -i -e "s:= /sbin/iscsid:= ${sbindir}/iscsid:" ${D}${sysconfdir}/iscsi/iscsid.conf + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/${BPN}/lock - - - -" \ + > ${D}${sysconfdir}/tmpfiles.d/iscsi.conf + install -d ${D}/etc/default/ + install -p -m 755 ${WORKDIR}/iscsi-initiator ${D}${sysconfdir}/default/ + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/iscsi-initiator.service \ + ${WORKDIR}/iscsi-initiator-targets.service \ + ${D}${systemd_unitdir}/system/ + install -d ${D}${nonarch_libdir}/iscsi + install -m 0755 ${WORKDIR}/set_initiatorname ${D}${nonarch_libdir}/iscsi + else + install -d ${D}/etc/default/volatiles + install -m 0644 ${WORKDIR}/99_iscsi-initiator-utils ${D}/etc/default/volatiles + fi +} + +pkg_postinst_${PN}() { + if [ "x$D" = "x" ]; then + if [ -e /etc/init.d/populate-volatile.sh ]; then + /etc/init.d/populate-volatile.sh update + elif command -v systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/iscsi.conf + fi + fi +} + +SYSTEMD_SERVICE = " iscsi-initiator.service iscsi-initiator-targets.service " +INITSCRIPT_NAME = "iscsid" +INITSCRIPT_PARAMS = "start 30 1 2 3 4 5 . stop 70 0 1 2 3 4 5 6 ." + +FILES_${PN} += "${nonarch_libdir}/iscsi" diff --git a/meta-networking/recipes-daemons/keepalived/keepalived_1.3.5.bb b/meta-networking/recipes-daemons/keepalived/keepalived_1.3.5.bb new file mode 100644 index 00000000000..5e7e6e49f54 --- /dev/null +++ b/meta-networking/recipes-daemons/keepalived/keepalived_1.3.5.bb @@ -0,0 +1,49 @@ +SUMMARY = "High Availability monitor built upon LVS, VRRP and service pollers" +DESCRIPTION = "Keepalived is a routing software written in C. The main goal \ +of this project is to provide simple and robust facilities for loadbalancing \ +and high-availability to Linux system and Linux based infrastructures. \ +Loadbalancing framework relies on well-known and widely used Linux Virtual \ +Server (IPVS) kernel module providing Layer4 loadbalancing \ +" +HOMEPAGE = "http://www.keepalived.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz" + +SRC_URI[md5sum] = "9964d295ec9d34ed3408b57d28847b68" +SRC_URI[sha256sum] = "c0114d86ea4c896557beb0d9367819a423ffba772bc5d7c548dc455e6b3bd048" + +DEPENDS = "libnfnetlink openssl" + +inherit autotools pkgconfig systemd update-rc.d + +PACKAGECONFIG ??= "libnl snmp \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ +" +PACKAGECONFIG[libnl] = "--enable-libnl,--disable-libnl,libnl" +PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp" +PACKAGECONFIG[systemd] = "--with-init=systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--with-init=SYSV,systemd" + +EXTRA_OECONF = "--disable-libiptc" +EXTRA_OEMAKE = "initdir=${sysconfdir}/init.d" + +do_install_append() { + if [ -f ${D}${sysconfdir}/init.d/${BPN} ]; then + chmod 0755 ${D}${sysconfdir}/init.d/${BPN} + sed -i 's#rc.d/##' ${D}${sysconfdir}/init.d/${BPN} + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -D -m 0644 ${B}/${BPN}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service + fi +} + +FILES_${PN} += "${datadir}/snmp/mibs/KEEPALIVED-MIB.txt" + +INITSCRIPT_NAME = "keepalived" +INITSCRIPT_PARAMS = "remove" + +SYSTEMD_SERVICE_${PN} = "keepalived.service" +SYSTEMD_AUTO_ENABLE ?= "disable" diff --git a/meta-networking/recipes-daemons/lldpad/lldpad_0.9.46.bb b/meta-networking/recipes-daemons/lldpad/lldpad_0.9.46.bb deleted file mode 100644 index 4dad80d3e9e..00000000000 --- a/meta-networking/recipes-daemons/lldpad/lldpad_0.9.46.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Intel LLDP Agent" -DESCRIPTION = "\ -This package contains the Linux user space daemon and configuration tool for \ -Intel LLDP Agent with Enhanced Ethernet support for the Data Center." -SECTION = "System Environment/Daemons" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" -DEPENDS = "libconfig libnl" -SRCREV = "48a5f38778b18d6659a672ccb4640f25c6720827" - -SRC_URI = "git://github.com/jrfastab/lldpad.git;protocol=http" - -S = "${WORKDIR}/git" - -inherit autotools-brokensep pkgconfig systemd - -do_install_append () { - install -m 0755 -d ${D}${systemd_unitdir} - mv ${D}${prefix}${systemd_unitdir}/* ${D}${systemd_unitdir}/ - rmdir ${D}${prefix}${systemd_unitdir} -} - -FILES_${PN} += "${systemd_unitdir}" diff --git a/meta-networking/recipes-daemons/lldpd/files/lldpd.default b/meta-networking/recipes-daemons/lldpd/files/lldpd.default new file mode 100644 index 00000000000..3acacfd90b1 --- /dev/null +++ b/meta-networking/recipes-daemons/lldpd/files/lldpd.default @@ -0,0 +1,2 @@ +# Uncomment to start SNMP subagent and enable CDP, SONMP and EDP protocol +#DAEMON_ARGS="-x -c -s -e" diff --git a/meta-networking/recipes-daemons/lldpd/files/lldpd.init.d b/meta-networking/recipes-daemons/lldpd/files/lldpd.init.d new file mode 100644 index 00000000000..88bf9589891 --- /dev/null +++ b/meta-networking/recipes-daemons/lldpd/files/lldpd.init.d @@ -0,0 +1,128 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lldpd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $network $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: LLDP daemon +# Description: lldpd is a 802.1AB implementation, a L2 network +# discovery protocol. It also supports CDP, EDP and +# various other protocols. +### END INIT INFO + +# Do NOT "set -e" + +log_daemon_msg() { + echo $* +} + +log_end_msg() { + if [ $1 -eq 0 ]; then + success $* + else + failure $* + fi +} + +log_failure_msg() { + echo $* +} + +log_success_msg() { + echo $* +} + + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="LLDP daemon" +NAME=lldpd +DAEMON=/usr/sbin/$NAME +DAEMON_ARGS="" +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +CHROOT=/var/run/$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# LSB log_* functions +. /etc/init.d/functions + +do_start() +{ + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +do_reload() { + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME + return 0 +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + reload) + log_daemon_msg "Reloading $DESC" "$NAME" + do_reload + log_end_msg $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + status) + status_of_proc $DAEMON $NAME -p $PIDFILE && exit 0 || exit $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2 + exit 3 + ;; +esac + +: diff --git a/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch b/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch new file mode 100644 index 00000000000..4876e17945c --- /dev/null +++ b/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch @@ -0,0 +1,32 @@ +From f9f3e4dd31588cce5f655730da7b5c3f56a9bdc1 Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Tue, 26 Sep 2017 09:19:51 -0300 +Subject: [PATCH] src/daemon/lldpd.service.in: Use fixed path for mkdir command +Organization: O.S. Systems Software LTDA. + +@mkdir_p@ is expanded to host tools path ../build/tmp/hosttools/mkdir that +doesn't exist on target. Remove @mkdir_p@ and use /bin/mkdir -p to +create /var/run/lldpd directory. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Fabio Berton +--- + src/daemon/lldpd.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/daemon/lldpd.service.in b/src/daemon/lldpd.service.in +index fdb7338..4291830 100644 +--- a/src/daemon/lldpd.service.in ++++ b/src/daemon/lldpd.service.in +@@ -9,7 +9,7 @@ Type=notify + NotifyAccess=main + EnvironmentFile=-/etc/default/lldpd + EnvironmentFile=-/etc/sysconfig/lldpd +-ExecStartPre=@mkdir_p@ @PRIVSEP_CHROOT@ ++ExecStartPre=/bin/mkdir -p @PRIVSEP_CHROOT@ + ExecStart=@sbindir@/lldpd $DAEMON_ARGS $LLDPD_OPTIONS + Restart=on-failure + PrivateTmp=yes +-- +2.14.2 diff --git a/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb b/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb new file mode 100644 index 00000000000..dbd84cf6734 --- /dev/null +++ b/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb @@ -0,0 +1,65 @@ +SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments" +SECTION = "net/misc" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d" + +DEPENDS = "libbsd libevent" + +SRC_URI = "\ + http://media.luffy.cx/files/${BPN}/${BPN}-${PV}.tar.gz \ + file://lldpd.init.d \ + file://lldpd.default \ + file://src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch \ + " + +SRC_URI[md5sum] = "8809600492f6b73149eb19158e819c1f" +SRC_URI[sha256sum] = "9ee494e91bc33938575b2c09b26188c486ef8eac6e2155d250c189cc4e988c4f" + +inherit autotools update-rc.d useradd systemd pkgconfig bash-completion + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system -g lldpd --shell /bin/false lldpd" +GROUPADD_PARAM_${PN} = "--system lldpd" + +EXTRA_OECONF += "--without-embedded-libevent \ + --disable-oldies \ + --with-privsep-user=lldpd \ + --with-privsep-group=lldpd \ + --with-systemdsystemunitdir=${systemd_system_unitdir} \ + --without-sysusersdir \ +" + +PACKAGECONFIG ??= "cdp fdp edp sonmp lldpmed dot1 dot3" +PACKAGECONFIG[xml] = "--with-xml,--without-xml,libxm2" +PACKAGECONFIG[snmp] = "--with-snmp,--without-snmp,net-snmp" +PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" +PACKAGECONFIG[seccomp] = "--with-seccomp,--without-seccomp,libseccomp" +PACKAGECONFIG[cdp] = "--enable-cdp,--disable-cdp" +PACKAGECONFIG[fdp] = "--enable-fdp,--disable-fdp" +PACKAGECONFIG[edp] = "--enable-edp,--disable-edp" +PACKAGECONFIG[sonmp] = "--enable-sonmp,--disable-sonmp" +PACKAGECONFIG[lldpmed] = "--enable-lldpmed,--disable-lldpmed" +PACKAGECONFIG[dot1] = "--enable-dot1,--disable-dot1" +PACKAGECONFIG[dot3] = "--enable-dot3,--disable-dot3" +PACKAGECONFIG[custom] = "--enable-custom,--disable-custom" + +INITSCRIPT_NAME = "lldpd" +INITSCRIPT_PARAMS = "defaults" + +SYSTEMD_SERVICE_${PN} = "lldpd.service" + +do_install_append() { + install -Dm 0755 ${WORKDIR}/lldpd.init.d ${D}${sysconfdir}/init.d/lldpd + install -Dm 0644 ${WORKDIR}/lldpd.default ${D}${sysconfdir}/default/lldpd + # Make an empty configuration file + touch ${D}${sysconfdir}/lldpd.conf +} + +PACKAGES =+ "${PN}-zsh-completion" + +FILES_${PN} += "${libdir}/sysusers.d" +RDEPENDS_${PN} += "os-release" + +FILES_${PN}-zsh-completion += "${datadir}/zsh/" +# FIXME: zsh is broken in meta-oe so this cannot be enabled for now +#RDEPENDS_${PN}-zsh-completion += "zsh" diff --git a/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-configure-use-BUILD_CC-for-ccdv.patch b/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-configure-use-BUILD_CC-for-ccdv.patch new file mode 100644 index 00000000000..aa590175c29 --- /dev/null +++ b/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-configure-use-BUILD_CC-for-ccdv.patch @@ -0,0 +1,32 @@ +From 043e1a9ec83a59671ef8c4cad679dbf781e5ef98 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Sun, 29 Nov 2015 23:37:06 -0800 +Subject: [PATCH] configure: use BUILD_CC for ccdv + +ccdv is intended to be invoked from Makefiles only, +it doesn't work for the cross compiling, so compile +it with $BUILD_CC and corresponding CFLAGS. + +Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Jackie Huang +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 2f0fae0..a7e9112 100755 +--- a/configure ++++ b/configure +@@ -11286,7 +11286,7 @@ panic: + } /* main */ + /* eof ccdv.c */ + EOF +- ${CC-cc} $DEFS $CPPFLAGS $CFLAGS "ccdv.c" -o "ccdv" >/dev/null 2>&1 ++ ${BUILD_CC} $DEFS ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} "ccdv.c" -o "ccdv" >/dev/null 2>&1 + rm -f ccdv.c ccdv.o ccdv.c.gz.uu ccdv.c.gz + strip ./ccdv >/dev/null 2>&1 + ./ccdv >/dev/null 2>&1 +-- +2.3.5 + diff --git a/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch b/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch new file mode 100644 index 00000000000..1c8146edaf4 --- /dev/null +++ b/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch @@ -0,0 +1,32 @@ +This patch is needed to avoid double definitions of functions +especially when building with security flags turned on. The double +definitions causes the sed.sh script in configure to fail since it +starts to spit out double outputs e.g. + +wi_cv_gethostname_size_t size_t size_t + +which then caused almost all subsequent compile time tests to fail since +this gets into confdefs.h file + +removing this include causes only one definitions to be emitted into +the genrated protos.h file and thus avoiding the above failure. + +Other solution would to fix sed.sh to ignore double definitions + +Upstream-Status: Pending + +Signed-of-by: Khem Raj + + +Index: ncftp-3.2.6/configure +=================================================================== +--- ncftp-3.2.6.orig/configure ++++ ncftp-3.2.6/configure +@@ -7859,7 +7859,6 @@ chmod 755 "$wi_tmpdir/prpp.pl" + cat << 'EOF' > "$wi_tmpdir/unistd.c" + #include + +-#include + #include + #include + #include diff --git a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb deleted file mode 100644 index 5e632933000..00000000000 --- a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "A sophisticated console ftp client" -HOMEPAGE = "http://ncftp.com/" -SECTION = "console/network" -LICENSE = "ClArtistic" -LIC_FILES_CHKSUM = "file://ncftp/cmds.c;beginline=3;endline=4;md5=9de76faeaedc4f908082e3f8142715f4" -DEPENDS = "ncurses" - -SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz" -SRC_URI[md5sum] = "685e45f60ac11c89442c572c28af4228" -SRC_URI[sha256sum] = "ac111b71112382853b2835c42ebe7bd59acb7f85dd00d44b2c19fbd074a436c4" - -inherit autotools-brokensep pkgconfig - -do_configure() { - oe_runconf -} -do_install () { - install -d ${D}${bindir} ${D}${sysconfdir} ${D}${mandir} - oe_runmake 'prefix=${D}${prefix}' 'BINDIR=${D}${bindir}' \ - 'SYSCONFDIR=${D}${sysconfdir}' 'mandir=${D}${mandir}' \ - install -} diff --git a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb new file mode 100644 index 00000000000..5f92f27fdfb --- /dev/null +++ b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "A sophisticated console ftp client" +HOMEPAGE = "http://ncftp.com/" +SECTION = "net" +LICENSE = "ClArtistic" +LIC_FILES_CHKSUM = "file://ncftp/cmds.c;beginline=3;endline=4;md5=9c2390809f71465aa7ff76e03dc14d91" +DEPENDS = "ncurses" + +SRC_URI = "ftp://ftp.ncftp.com/${BPN}/${BP}-src.tar.xz \ + file://ncftp-configure-use-BUILD_CC-for-ccdv.patch \ + file://unistd.patch \ +" +SRC_URI[md5sum] = "42d0f896d69a4d603ec097546444245f" +SRC_URI[sha256sum] = "5f200687c05d0807690d9fb770327b226f02dd86155b49e750853fce4e31098d" + +inherit autotools-brokensep pkgconfig + +CFLAGS += "-DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -Wall" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[ccdv] = "--enable-ccdv,--disable-ccdv,," + +EXTRA_OECONF = "--disable-precomp" +TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}" + +do_configure() { + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + oe_runconf +} +do_install () { + install -d ${D}${bindir} ${D}${sysconfdir} ${D}${mandir} + oe_runmake 'prefix=${D}${prefix}' 'BINDIR=${D}${bindir}' \ + 'SYSCONFDIR=${D}${sysconfdir}' 'mandir=${D}${mandir}' \ + install +} diff --git a/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch b/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch new file mode 100644 index 00000000000..4f493f7b8f1 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch @@ -0,0 +1,49 @@ +From 398c6db66c643ed6133cc2b028ab1e27a17c5295 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 1 May 2017 19:10:09 +0000 +Subject: [PATCH] Fix build failures with gcc7 + +Signed-off-by: Khem Raj +--- + plugins/ipmidirect/ipmi_mc_vendor.cpp | 2 +- + plugins/ipmidirect/ipmi_resource.cpp | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins/ipmidirect/ipmi_mc_vendor.cpp b/plugins/ipmidirect/ipmi_mc_vendor.cpp +index 2c6c090..557771c 100644 +--- a/plugins/ipmidirect/ipmi_mc_vendor.cpp ++++ b/plugins/ipmidirect/ipmi_mc_vendor.cpp +@@ -322,7 +322,7 @@ cIpmiMcVendor::CreateResources( cIpmiDomain *domain, cIpmiMc *source_mc, cIpmiSd + if ( addr.m_channel != source_mc->GetChannel() ) + stdlog << "WARNING : SDR channel " << addr.m_channel << " NOT equal to MC channel " << source_mc->GetChannel() << "\n"; + +- if ( FindOrCreateResource( domain, source_mc, fru_id, sdr, sdrs ) == false ) { ++ if ( !FindOrCreateResource( domain, source_mc, fru_id, sdr, sdrs ) ) { + return false; + } + } +diff --git a/plugins/ipmidirect/ipmi_resource.cpp b/plugins/ipmidirect/ipmi_resource.cpp +index c438e74..2552673 100644 +--- a/plugins/ipmidirect/ipmi_resource.cpp ++++ b/plugins/ipmidirect/ipmi_resource.cpp +@@ -73,7 +73,7 @@ cIpmiResource::SendCommandReadLock( const cIpmiMsg &msg, cIpmiMsg &rsp, + + domain->ReadLock(); + +- if ( domain->VerifyResource( resource ) == false ) ++ if ( !domain->VerifyResource( resource ) ) + return SA_ERR_HPI_NOT_PRESENT; + + return rv; +@@ -91,7 +91,7 @@ cIpmiResource::SendCommandReadLock( cIpmiRdr *rdr, const cIpmiMsg &msg, cIpmiMsg + + domain->ReadLock(); + +- if ( domain->VerifyRdr( rdr ) == false ) ++ if ( !domain->VerifyRdr( rdr ) ) + return SA_ERR_HPI_NOT_PRESENT; + + return rv; +-- +1.9.1 + diff --git a/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch b/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch new file mode 100644 index 00000000000..4d56f6535c8 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch @@ -0,0 +1,31 @@ +From be40b3f11460cf495bbbef45692e7763afda0c2b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 14 Sep 2017 17:56:31 -0700 +Subject: [PATCH] ipmidirect: Replace __STRING + +__STRING is not universally available e.g. +musl does not define it + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + plugins/ipmidirect/t/test.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/ipmidirect/t/test.h b/plugins/ipmidirect/t/test.h +index 8d71381..978d5ff 100644 +--- a/plugins/ipmidirect/t/test.h ++++ b/plugins/ipmidirect/t/test.h +@@ -22,7 +22,7 @@ TestFunction( const char *str, const char *file, int line, bool expr ) + } + + +-#define Test(expr) TestFunction( __STRING(expr), __FILE__, __LINE__, expr ) ++#define Test(expr) TestFunction( #expr, __FILE__, __LINE__, expr ) + + + static int +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch b/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch new file mode 100644 index 00000000000..0f033ac8550 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch @@ -0,0 +1,47 @@ +From be665d9513cca7e8b64c79ae424cf44ac166b052 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 14 Sep 2017 17:07:58 -0700 +Subject: [PATCH] plugins: Check for PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + before use + +musl does not define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +so we can not assume that all Linux systems support PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +its a glibc specific define so check for it being defined before using it + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + plugins/dynamic_simulator/thread.cpp | 2 +- + plugins/ipmidirect/thread.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/plugins/dynamic_simulator/thread.cpp b/plugins/dynamic_simulator/thread.cpp +index d663be0..9210fd7 100644 +--- a/plugins/dynamic_simulator/thread.cpp ++++ b/plugins/dynamic_simulator/thread.cpp +@@ -229,7 +229,7 @@ cThread::Exit( void *rv ) + /** + * Constructor + **/ +-#if ( defined(__sun) && defined(__SVR4) ) || defined(__FreeBSD__) ++#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + cThreadLock::cThreadLock() + { + pthread_mutexattr_t attr; +diff --git a/plugins/ipmidirect/thread.cpp b/plugins/ipmidirect/thread.cpp +index 5c52557..48e83fa 100644 +--- a/plugins/ipmidirect/thread.cpp ++++ b/plugins/ipmidirect/thread.cpp +@@ -167,7 +167,7 @@ cThread::Exit( void *rv ) + // cThreadLock + ////////////////////////////////////////////////// + +-#if ( defined(__sun) && defined(__SVR4) ) || defined(__FreeBSD__) ++#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + cThreadLock::cThreadLock() + { + pthread_mutexattr_t attr; +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/openhpi/files/c++11.patch b/meta-networking/recipes-daemons/openhpi/files/c++11.patch new file mode 100644 index 00000000000..0549d597779 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/c++11.patch @@ -0,0 +1,12 @@ +Index: openhpi-3.6.1/configure.ac +=================================================================== +--- openhpi-3.6.1.orig/configure.ac ++++ openhpi-3.6.1/configure.ac +@@ -44,6 +44,7 @@ AC_PROG_CPP + AC_PROG_INSTALL + AC_PROG_LN_S + AC_PROG_MAKE_SET ++AX_CXX_COMPILE_STDCXX_11([noext],[mandatory]) + + enabled_non32bit="no" + AC_ARG_ENABLE([non32bit-int], diff --git a/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch b/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch new file mode 100644 index 00000000000..9b35a0cceda --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch @@ -0,0 +1,1288 @@ +Index: openhpi-3.6.1/plugins/dynamic_simulator/new_sim.cpp +=================================================================== +--- openhpi-3.6.1.orig/plugins/dynamic_simulator/new_sim.cpp ++++ openhpi-3.6.1/plugins/dynamic_simulator/new_sim.cpp +@@ -415,7 +415,7 @@ extern "C" { + /** + * Alias for @ref öh_open(), implemented by @ref NewSimulatorOpen(). + **/ +-static void * NewSimulatorOpen( GHashTable *, unsigned int, oh_evt_queue * ) __attribute__((used)); ++static void * NewSimulatorOpen( GHashTable *, unsigned int, oh_evt_queue * ) __asm__("NewSimulatorOpen") __attribute__((used)); + + /** + * @fn NewSimulatorOpen( GHashTable *handler_config, unsigned int hid, +@@ -530,7 +530,7 @@ static void * NewSimulatorOpen( GHashTab + /** + * Alias for @ref öh_close(), implemented by @ref NewSimulatorClose(). + **/ +-static void NewSimulatorClose( void * ) __attribute__((used)); ++static void NewSimulatorClose( void * ) __asm__("NewSimulatorClose") __attribute__((used)); + + /** + * @relate NewSimulatorClose +@@ -585,7 +585,7 @@ static void NewSimulatorClose( void *hnd + * + * @return HPI error code + **/ +-static SaErrorT NewSimulatorGetEvent( void * ) __attribute__((used)); ++static SaErrorT NewSimulatorGetEvent( void * ) __asm__("NewSimulatorGetEvent") __attribute__((used)); + + static SaErrorT NewSimulatorGetEvent( void *hnd ) { + dbg( "NewSimulatorGetEvent" ); +@@ -613,7 +613,7 @@ static SaErrorT NewSimulatorGetEvent( vo + * + * @return HPI error code + **/ +-static SaErrorT NewSimulatorDiscoverResources( void * ) __attribute__((used)); ++static SaErrorT NewSimulatorDiscoverResources( void * ) __asm__("NewSimulatorDiscoverResources") __attribute__((used)); + + static SaErrorT NewSimulatorDiscoverResources( void *hnd ) { + dbg( "NewSimulatorDiscoverResources" ); +@@ -641,7 +641,7 @@ static SaErrorT NewSimulatorDiscoverReso + * + * @return HPI error code + **/ +-static SaErrorT NewSimulatorSetResourceTag( void *, SaHpiResourceIdT, SaHpiTextBufferT * ) __attribute__((used)); ++static SaErrorT NewSimulatorSetResourceTag( void *, SaHpiResourceIdT, SaHpiTextBufferT * ) __asm__("NewSimulatorSetResourceTag") __attribute__((used)); + + static SaErrorT NewSimulatorSetResourceTag( void *hnd, SaHpiResourceIdT id, + SaHpiTextBufferT *tag ) { +@@ -669,7 +669,7 @@ static SaErrorT NewSimulatorSetResourceT + * + * @return HPI error code + **/ +-static SaErrorT NewSimulatorSetResourceSeverity( void *, SaHpiResourceIdT, SaHpiSeverityT ) __attribute__((used)); ++static SaErrorT NewSimulatorSetResourceSeverity( void *, SaHpiResourceIdT, SaHpiSeverityT ) __asm__("NewSimulatorSetResourceSeverity") __attribute__((used)); + + static SaErrorT NewSimulatorSetResourceSeverity( void *hnd, SaHpiResourceIdT id, + SaHpiSeverityT sev ) { +@@ -703,7 +703,7 @@ static SaErrorT NewSimulatorGetSensorRea + SaHpiResourceIdT id, + SaHpiSensorNumT num, + SaHpiSensorReadingT *data, +- SaHpiEventStateT *state ) __attribute__((used)); ++ SaHpiEventStateT *state ) __asm__("NewSimulatorGetSensorReading") __attribute__((used)); + + static SaErrorT NewSimulatorGetSensorReading( void *hnd, + SaHpiResourceIdT id, +@@ -738,7 +738,7 @@ static SaErrorT NewSimulatorGetSensorRea + static SaErrorT NewSimulatorGetSensorThresholds( void *hnd, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiSensorThresholdsT * ) __attribute__((used)); ++ SaHpiSensorThresholdsT * ) __asm__("NewSimulatorGetSensorThresholds") __attribute__((used)); + + static SaErrorT NewSimulatorGetSensorThresholds( void *hnd, + SaHpiResourceIdT id, +@@ -777,7 +777,7 @@ static SaErrorT NewSimulatorGetSensorThr + static SaErrorT NewSimulatorSetSensorThresholds( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- const SaHpiSensorThresholdsT * ) __attribute__((used)); ++ const SaHpiSensorThresholdsT * ) __asm__("NewSimulatorSetSensorThresholds") __attribute__((used)); + + static SaErrorT NewSimulatorSetSensorThresholds( void *hnd, + SaHpiResourceIdT id, +@@ -815,7 +815,7 @@ static SaErrorT NewSimulatorSetSensorThr + static SaErrorT NewSimulatorGetSensorEnable( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiBoolT * ) __attribute__((used)); ++ SaHpiBoolT * ) __asm__("NewSimulatorGetSensorEnable") __attribute__((used)); + + static SaErrorT NewSimulatorGetSensorEnable( void *hnd, + SaHpiResourceIdT id, +@@ -849,7 +849,7 @@ static SaErrorT NewSimulatorGetSensorEna + static SaErrorT NewSimulatorSetSensorEnable( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiBoolT ) __attribute__((used)); ++ SaHpiBoolT ) __asm__("NewSimulatorSetSensorEnable") __attribute__((used)); + + static SaErrorT NewSimulatorSetSensorEnable( void *hnd, + SaHpiResourceIdT id, +@@ -883,7 +883,7 @@ static SaErrorT NewSimulatorSetSensorEna + static SaErrorT NewSimulatorGetSensorEventEnables( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiBoolT * ) __attribute__((used)); ++ SaHpiBoolT * ) __asm__("NewSimulatorGetSensorEventEnables") __attribute__((used)); + + static SaErrorT NewSimulatorGetSensorEventEnables( void *hnd, + SaHpiResourceIdT id, +@@ -916,7 +916,7 @@ static SaErrorT NewSimulatorGetSensorEve + static SaErrorT NewSimulatorSetSensorEventEnables( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiBoolT ) __attribute__((used)); ++ SaHpiBoolT ) __asm__("NewSimulatorSetSensorEventEnables") __attribute__((used)); + + static SaErrorT NewSimulatorSetSensorEventEnables( void *hnd, + SaHpiResourceIdT id, +@@ -952,7 +952,7 @@ static SaErrorT NewSimulatorGetSensorEve + SaHpiResourceIdT, + SaHpiSensorNumT, + SaHpiEventStateT *, +- SaHpiEventStateT * ) __attribute__((used)); ++ SaHpiEventStateT * ) __asm__("NewSimulatorGetSensorEventMasks") __attribute__((used)); + + static SaErrorT NewSimulatorGetSensorEventMasks( void *hnd, + SaHpiResourceIdT id, +@@ -990,7 +990,7 @@ static SaErrorT NewSimulatorSetSensorEve + SaHpiSensorNumT, + SaHpiSensorEventMaskActionT, + SaHpiEventStateT, +- SaHpiEventStateT ) __attribute__((used)); ++ SaHpiEventStateT ) __asm__("NewSimulatorSetSensorEventMasks") __attribute__((used)); + + static SaErrorT NewSimulatorSetSensorEventMasks( void *hnd, + SaHpiResourceIdT id, +@@ -1026,7 +1026,7 @@ static SaErrorT NewSimulatorSetSensorEve + static SaErrorT NewSimulatorGetControlState( void *, SaHpiResourceIdT, + SaHpiCtrlNumT, + SaHpiCtrlModeT *, +- SaHpiCtrlStateT * ) __attribute__((used)); ++ SaHpiCtrlStateT * ) __asm__("NewSimulatorGetControlState") __attribute__((used)); + + static SaErrorT NewSimulatorGetControlState( void *hnd, SaHpiResourceIdT id, + SaHpiCtrlNumT num, +@@ -1061,7 +1061,7 @@ static SaErrorT NewSimulatorGetControlSt + static SaErrorT NewSimulatorSetControlState( void *, SaHpiResourceIdT, + SaHpiCtrlNumT, + SaHpiCtrlModeT, +- SaHpiCtrlStateT * ) __attribute__((used)); ++ SaHpiCtrlStateT * ) __asm__("NewSimulatorSetControlState") __attribute__((used)); + + static SaErrorT NewSimulatorSetControlState( void *hnd, SaHpiResourceIdT id, + SaHpiCtrlNumT num, +@@ -1099,7 +1099,7 @@ static SaErrorT NewSimulatorGetNextAnnou + SaHpiAnnunciatorNumT, + SaHpiSeverityT, + SaHpiBoolT, +- SaHpiAnnouncementT *) __attribute__((used)); ++ SaHpiAnnouncementT *) __asm__("NewSimulatorGetNextAnnouncement") __attribute__((used)); + + static SaErrorT NewSimulatorGetNextAnnouncement(void *hnd, SaHpiResourceIdT id, + SaHpiAnnunciatorNumT num, +@@ -1135,7 +1135,7 @@ static SaErrorT NewSimulatorGetNextAnnou + static SaErrorT NewSimulatorGetAnnouncement(void *, SaHpiResourceIdT, + SaHpiAnnunciatorNumT, + SaHpiEntryIdT, +- SaHpiAnnouncementT *) __attribute__((used)); ++ SaHpiAnnouncementT *) __asm__("NewSimulatorGetAnnouncement") __attribute__((used)); + + static SaErrorT NewSimulatorGetAnnouncement(void *hnd, SaHpiResourceIdT id, + SaHpiAnnunciatorNumT num, +@@ -1171,7 +1171,7 @@ static SaErrorT NewSimulatorGetAnnouncem + static SaErrorT NewSimulatorAckAnnouncement(void *, SaHpiResourceIdT, + SaHpiAnnunciatorNumT, + SaHpiEntryIdT, +- SaHpiSeverityT) __attribute__((used)); ++ SaHpiSeverityT) __asm__("NewSimulatorAckAnnouncement") __attribute__((used)); + + static SaErrorT NewSimulatorAckAnnouncement(void *hnd, SaHpiResourceIdT id, + SaHpiAnnunciatorNumT num, +@@ -1205,7 +1205,7 @@ static SaErrorT NewSimulatorAckAnnouncem + **/ + static SaErrorT NewSimulatorAddAnnouncement(void *, SaHpiResourceIdT, + SaHpiAnnunciatorNumT, +- SaHpiAnnouncementT *) __attribute__((used)); ++ SaHpiAnnouncementT *) __asm__("NewSimulatorAddAnnouncement") __attribute__((used)); + + static SaErrorT NewSimulatorAddAnnouncement(void *hnd, SaHpiResourceIdT id, + SaHpiAnnunciatorNumT num, +@@ -1239,7 +1239,7 @@ static SaErrorT NewSimulatorAddAnnouncem + static SaErrorT NewSimulatorDelAnnouncement(void *, SaHpiResourceIdT, + SaHpiAnnunciatorNumT, + SaHpiEntryIdT, +- SaHpiSeverityT) __attribute__((used)); ++ SaHpiSeverityT) __asm__("NewSimulatorDelAnnouncement") __attribute__((used)); + + static SaErrorT NewSimulatorDelAnnouncement(void *hnd, SaHpiResourceIdT id, + SaHpiAnnunciatorNumT num, +@@ -1273,7 +1273,7 @@ static SaErrorT NewSimulatorDelAnnouncem + **/ + static SaErrorT NewSimulatorGetAnnMode(void *, SaHpiResourceIdT, + SaHpiAnnunciatorNumT, +- SaHpiAnnunciatorModeT *) __attribute__((used)); ++ SaHpiAnnunciatorModeT *) __asm__("NewSimulatorGetAnnMode") __attribute__((used)); + + static SaErrorT NewSimulatorGetAnnMode(void *hnd, SaHpiResourceIdT id, + SaHpiAnnunciatorNumT num, +@@ -1306,7 +1306,7 @@ static SaErrorT NewSimulatorGetAnnMode(v + **/ + static SaErrorT NewSimulatorSetAnnMode(void *, SaHpiResourceIdT, + SaHpiAnnunciatorNumT, +- SaHpiAnnunciatorModeT) __attribute__((used)); ++ SaHpiAnnunciatorModeT) __asm__("NewSimulatorSetAnnMode") __attribute__((used)); + + static SaErrorT NewSimulatorSetAnnMode(void *hnd, SaHpiResourceIdT id, + SaHpiAnnunciatorNumT num, +@@ -1340,7 +1340,7 @@ static SaErrorT NewSimulatorSetAnnMode(v + static SaErrorT NewSimulatorGetIdrInfo( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiIdrInfoT * ) __attribute__((used)); ++ SaHpiIdrInfoT * ) __asm__("NewSimulatorGetIdrInfo") __attribute__((used)); + + static SaErrorT NewSimulatorGetIdrInfo( void *hnd, + SaHpiResourceIdT id, +@@ -1380,7 +1380,7 @@ static SaErrorT NewSimulatorGetIdrAreaHe + SaHpiIdrAreaTypeT, + SaHpiEntryIdT, + SaHpiEntryIdT *, +- SaHpiIdrAreaHeaderT * ) __attribute__((used)); ++ SaHpiIdrAreaHeaderT * ) __asm__("NewSimulatorGetIdrAreaHeader") __attribute__((used)); + + static SaErrorT NewSimulatorGetIdrAreaHeader( void *hnd, + SaHpiResourceIdT id, +@@ -1419,7 +1419,7 @@ static SaErrorT NewSimulatorAddIdrArea( + SaHpiResourceIdT, + SaHpiIdrIdT, + SaHpiIdrAreaTypeT, +- SaHpiEntryIdT * ) __attribute__((used)); ++ SaHpiEntryIdT * ) __asm__("NewSimulatorAddIdrArea") __attribute__((used)); + + static SaErrorT NewSimulatorAddIdrArea( void *hnd, + SaHpiResourceIdT id, +@@ -1456,7 +1456,7 @@ static SaErrorT NewSimulatorAddIdrAreaBy + SaHpiResourceIdT, + SaHpiIdrIdT, + SaHpiIdrAreaTypeT, +- SaHpiEntryIdT ) __attribute__((used)); ++ SaHpiEntryIdT ) __asm__("NewSimulatorAddIdrAreaById") __attribute__((used)); + + static SaErrorT NewSimulatorAddIdrAreaById( void *hnd, + SaHpiResourceIdT id, +@@ -1490,7 +1490,7 @@ static SaErrorT NewSimulatorAddIdrAreaBy + static SaErrorT NewSimulatorDelIdrArea( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiEntryIdT ) __attribute__((used)); ++ SaHpiEntryIdT ) __asm__("NewSimulatorDelIdrArea") __attribute__((used)); + + static SaErrorT NewSimulatorDelIdrArea( void *hnd, + SaHpiResourceIdT id, +@@ -1532,7 +1532,7 @@ static SaErrorT NewSimulatorGetIdrField( + SaHpiIdrFieldTypeT, + SaHpiEntryIdT, + SaHpiEntryIdT *, +- SaHpiIdrFieldT * ) __attribute__((used)); ++ SaHpiIdrFieldT * ) __asm__("NewSimulatorGetIdrField") __attribute__((used)); + + static SaErrorT NewSimulatorGetIdrField( void *hnd, + SaHpiResourceIdT id, +@@ -1570,7 +1570,7 @@ static SaErrorT NewSimulatorGetIdrField( + static SaErrorT NewSimulatorAddIdrField( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiIdrFieldT * ) __attribute__((used)); ++ SaHpiIdrFieldT * ) __asm__("NewSimulatorAddIdrField") __attribute__((used)); + + static SaErrorT NewSimulatorAddIdrField( void *hnd, + SaHpiResourceIdT id, +@@ -1604,7 +1604,7 @@ static SaErrorT NewSimulatorAddIdrField( + static SaErrorT NewSimulatorAddIdrFieldById( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiIdrFieldT * ) __attribute__((used)); ++ SaHpiIdrFieldT * ) __asm__("NewSimulatorAddIdrFieldById") __attribute__((used)); + + static SaErrorT NewSimulatorAddIdrFieldById( void *hnd, + SaHpiResourceIdT id, +@@ -1637,7 +1637,7 @@ static SaErrorT NewSimulatorAddIdrFieldB + static SaErrorT NewSimulatorSetIdrField( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiIdrFieldT * ) __attribute__((used)); ++ SaHpiIdrFieldT * ) __asm__("NewSimulatorSetIdrField") __attribute__((used)); + + static SaErrorT NewSimulatorSetIdrField( void *hnd, + SaHpiResourceIdT id, +@@ -1672,7 +1672,7 @@ static SaErrorT NewSimulatorDelIdrField( + SaHpiResourceIdT, + SaHpiIdrIdT, + SaHpiEntryIdT, +- SaHpiEntryIdT ) __attribute__((used)); ++ SaHpiEntryIdT ) __asm__("NewSimulatorDelIdrField") __attribute__((used)); + + static SaErrorT NewSimulatorDelIdrField( void *hnd, + SaHpiResourceIdT id, +@@ -1704,7 +1704,7 @@ static SaErrorT NewSimulatorDelIdrField( + **/ + static SaErrorT NewSimulatorGetSelInfo( void *, + SaHpiResourceIdT, +- SaHpiEventLogInfoT * ) __attribute__((used)); ++ SaHpiEventLogInfoT * ) __asm__("NewSimulatorGetSelInfo") __attribute__((used)); + + static SaErrorT NewSimulatorGetSelInfo( void *hnd, + SaHpiResourceIdT id, +@@ -1736,7 +1736,7 @@ static SaErrorT NewSimulatorGetSelInfo( + * + * @return HPI error code + **/ +-static SaErrorT NewSimulatorSetSelTime( void *, SaHpiResourceIdT, SaHpiTimeT ) __attribute__((used)); ++static SaErrorT NewSimulatorSetSelTime( void *, SaHpiResourceIdT, SaHpiTimeT ) __asm__("NewSimulatorSetSelTime") __attribute__((used)); + + static SaErrorT NewSimulatorSetSelTime( void *hnd, SaHpiResourceIdT id, SaHpiTimeT t ) { + SaErrorT rv = SA_ERR_HPI_INTERNAL_ERROR; +@@ -1766,7 +1766,7 @@ static SaErrorT NewSimulatorSetSelTime( + * + * @return HPI error code + **/ +-static SaErrorT NewSimulatorAddSelEntry( void *, SaHpiResourceIdT, const SaHpiEventT * ) __attribute__((used)); ++static SaErrorT NewSimulatorAddSelEntry( void *, SaHpiResourceIdT, const SaHpiEventT * ) __asm__("NewSimulatorAddSelEntry") __attribute__((used)); + + static SaErrorT NewSimulatorAddSelEntry( void *hnd, SaHpiResourceIdT id, + const SaHpiEventT *Event ) { +@@ -1809,7 +1809,7 @@ static SaErrorT NewSimulatorGetSelEntry( + SaHpiEventLogEntryIdT *, + SaHpiEventLogEntryT *, + SaHpiRdrT *, +- SaHpiRptEntryT * ) __attribute__((used)); ++ SaHpiRptEntryT * ) __asm__("NewSimulatorGetSelEntry") __attribute__((used)); + + static SaErrorT NewSimulatorGetSelEntry( void *hnd, SaHpiResourceIdT id, + SaHpiEventLogEntryIdT current, +@@ -1844,7 +1844,7 @@ static SaErrorT NewSimulatorGetSelEntry( + * + * @return HPI error code + **/ +-static SaErrorT NewSimulatorClearSel( void *, SaHpiResourceIdT ) __attribute__((used)); ++static SaErrorT NewSimulatorClearSel( void *, SaHpiResourceIdT ) __asm__("NewSimulatorClearSel") __attribute__((used)); + + static SaErrorT NewSimulatorClearSel( void *hnd, SaHpiResourceIdT id ) { + SaErrorT rv = SA_ERR_HPI_INTERNAL_ERROR; +@@ -1875,7 +1875,7 @@ static SaErrorT NewSimulatorClearSel( vo + * @return HPI error code + **/ + static SaErrorT NewSimulatorSetSelState(void *, SaHpiResourceIdT, +- SaHpiBoolT) __attribute__((used)); ++ SaHpiBoolT) __asm__("NewSimulatorSetSelState") __attribute__((used)); + + static SaErrorT NewSimulatorSetSelState( void *hnd, SaHpiResourceIdT id, + SaHpiBoolT state ) { +@@ -1907,7 +1907,7 @@ static SaErrorT NewSimulatorSetSelState( + * @return HPI error code + **/ + static SaErrorT NewSimulatorGetSelState(void *, SaHpiResourceIdT, +- SaHpiBoolT *) __attribute__((used)); ++ SaHpiBoolT *) __asm__("NewSimulatorGetSelState") __attribute__((used)); + + static SaErrorT NewSimulatorGetSelState( void *hnd, SaHpiResourceIdT id, + SaHpiBoolT *state ) { +@@ -1939,7 +1939,7 @@ static SaErrorT NewSimulatorGetSelState( + * @return HPI error code + **/ + static SaErrorT NewSimulatorGetSelCapability(void *, SaHpiResourceIdT, +- SaHpiEventLogCapabilitiesT *) __attribute__((used)); ++ SaHpiEventLogCapabilitiesT *) __asm__("NewSimulatorGetSelCapability") __attribute__((used)); + + static SaErrorT NewSimulatorGetSelCapability( void *hnd, SaHpiResourceIdT id, + SaHpiEventLogCapabilitiesT *caps ) { +@@ -1970,7 +1970,7 @@ static SaErrorT NewSimulatorGetSelCapabi + * @return HPI error code + **/ + static SaErrorT NewSimulatorResetSelOverflow(void *, SaHpiResourceIdT) +- __attribute__((used)); ++ __asm__("NewSimulatorResetSelOverflow") __attribute__((used)); + + static SaErrorT NewSimulatorResetSelOverflow( void *hnd, SaHpiResourceIdT id ) { + +@@ -2002,7 +2002,7 @@ static SaErrorT NewSimulatorResetSelOver + * @return HPI error code + **/ + static SaErrorT NewSimulatorHotswapPolicyCancel( void *, SaHpiResourceIdT, +- SaHpiTimeoutT ) __attribute__((used)); ++ SaHpiTimeoutT ) __asm__("NewSimulatorHotswapPolicyCancel") __attribute__((used)); + + static SaErrorT NewSimulatorHotswapPolicyCancel( void *hnd, SaHpiResourceIdT id, + SaHpiTimeoutT timeout) { +@@ -2032,7 +2032,7 @@ static SaErrorT NewSimulatorHotswapPolic + * @return HPI error code + **/ + static SaErrorT NewSimulatorGetHotswapState( void *, SaHpiResourceIdT , +- SaHpiHsStateT * ) __attribute__((used)); ++ SaHpiHsStateT * ) __asm__("NewSimulatorGetHotswapState") __attribute__((used)); + + static SaErrorT NewSimulatorGetHotswapState( void *hnd, SaHpiResourceIdT id, + SaHpiHsStateT *state ) { +@@ -2063,7 +2063,7 @@ static SaErrorT NewSimulatorGetHotswapSt + * @return HPI error code + **/ + static SaErrorT NewSimulatorSetHotswapState( void *, SaHpiResourceIdT, +- SaHpiHsStateT ) __attribute__((used)); ++ SaHpiHsStateT ) __asm__("NewSimulatorSetHotswapState") __attribute__((used)); + + static SaErrorT NewSimulatorSetHotswapState( void *hnd, SaHpiResourceIdT id, + SaHpiHsStateT state ) { +@@ -2105,7 +2105,7 @@ static SaErrorT NewSimulatorSetHotswapSt + * @return HPI error code + **/ + static SaErrorT NewSimulatorRequestHotswapAction( void *, SaHpiResourceIdT, +- SaHpiHsActionT ) __attribute__((used)); ++ SaHpiHsActionT ) __asm__("NewSimulatorRequestHotswapAction") __attribute__((used)); + + static SaErrorT NewSimulatorRequestHotswapAction( void *hnd, SaHpiResourceIdT id, + SaHpiHsActionT act ) { +@@ -2139,7 +2139,7 @@ static SaErrorT NewSimulatorRequestHotsw + static SaErrorT NewSimulatorGetWatchdogInfo(void *, + SaHpiResourceIdT, + SaHpiWatchdogNumT, +- SaHpiWatchdogT *) __attribute__((used)); ++ SaHpiWatchdogT *) __asm__("NewSimulatorGetWatchdogInfo") __attribute__((used)); + + static SaErrorT NewSimulatorGetWatchdogInfo(void *hnd, + SaHpiResourceIdT id, +@@ -2170,7 +2170,7 @@ static SaErrorT NewSimulatorGetWatchdogI + static SaErrorT NewSimulatorSetWatchdogInfo(void *, + SaHpiResourceIdT, + SaHpiWatchdogNumT, +- SaHpiWatchdogT *) __attribute__((used)); ++ SaHpiWatchdogT *) __asm__("NewSimulatorSetWatchdogInfo") __attribute__((used)); + + static SaErrorT NewSimulatorSetWatchdogInfo(void *hnd, + SaHpiResourceIdT id, +@@ -2199,7 +2199,7 @@ static SaErrorT NewSimulatorSetWatchdogI + **/ + static SaErrorT NewSimulatorResetWatchdog(void *, + SaHpiResourceIdT, +- SaHpiWatchdogNumT) __attribute__((used)); ++ SaHpiWatchdogNumT) __asm__("NewSimulatorResetWatchdog") __attribute__((used)); + + static SaErrorT NewSimulatorResetWatchdog(void *hnd, + SaHpiResourceIdT id, +@@ -2229,7 +2229,7 @@ static SaErrorT NewSimulatorResetWatchdo + static SaErrorT NewSimulatorGetFumiSpec(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiFumiSpecInfoT *) __attribute__((used)); ++ SaHpiFumiSpecInfoT *) __asm__("NewSimulatorGetFumiSpec") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiSpec(void *hnd, + SaHpiResourceIdT id, +@@ -2260,7 +2260,7 @@ static SaErrorT NewSimulatorGetFumiSpec( + static SaErrorT NewSimulatorGetFumiServImpact(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiFumiServiceImpactDataT *) __attribute__((used)); ++ SaHpiFumiServiceImpactDataT *) __asm__("NewSimulatorGetFumiServImpact") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiServImpact(void *hnd, + SaHpiResourceIdT id, +@@ -2294,7 +2294,7 @@ static SaErrorT NewSimulatorSetFumiSourc + SaHpiResourceIdT, + SaHpiFumiNumT, + SaHpiBankNumT, +- SaHpiTextBufferT *) __attribute__((used)); ++ SaHpiTextBufferT *) __asm__("NewSimulatorSetFumiSource") __attribute__((used)); + + static SaErrorT NewSimulatorSetFumiSource(void *hnd, + SaHpiResourceIdT id, +@@ -2327,7 +2327,7 @@ static SaErrorT NewSimulatorSetFumiSourc + static SaErrorT NewSimulatorValidateFumiSource(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiBankNumT) __attribute__((used)); ++ SaHpiBankNumT) __asm__("NewSimulatorValidateFumiSource") __attribute__((used)); + + static SaErrorT NewSimulatorValidateFumiSource(void *hnd, + SaHpiResourceIdT id, +@@ -2361,7 +2361,7 @@ static SaErrorT NewSimulatorGetFumiSourc + SaHpiResourceIdT, + SaHpiFumiNumT, + SaHpiBankNumT, +- SaHpiFumiSourceInfoT *) __attribute__((used)); ++ SaHpiFumiSourceInfoT *) __asm__("NewSimulatorGetFumiSource") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiSource(void *hnd, + SaHpiResourceIdT id, +@@ -2400,7 +2400,7 @@ static SaErrorT NewSimulatorGetFumiSourc + SaHpiBankNumT, + SaHpiEntryIdT, + SaHpiEntryIdT *, +- SaHpiFumiComponentInfoT *) __attribute__((used)); ++ SaHpiFumiComponentInfoT *) __asm__("NewSimulatorGetFumiSourceComponent") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiSourceComponent(void *hnd, + SaHpiResourceIdT id, +@@ -2437,7 +2437,7 @@ static SaErrorT NewSimulatorGetFumiTarge + SaHpiResourceIdT, + SaHpiFumiNumT, + SaHpiBankNumT, +- SaHpiFumiBankInfoT *) __attribute__((used)); ++ SaHpiFumiBankInfoT *) __asm__("NewSimulatorGetFumiTarget") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiTarget(void *hnd, + SaHpiResourceIdT id, +@@ -2476,7 +2476,7 @@ static SaErrorT NewSimulatorGetFumiTarge + SaHpiBankNumT, + SaHpiEntryIdT, + SaHpiEntryIdT *, +- SaHpiFumiComponentInfoT *) __attribute__((used)); ++ SaHpiFumiComponentInfoT *) __asm__("NewSimulatorGetFumiTargetComponent") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiTargetComponent(void *hnd, + SaHpiResourceIdT id, +@@ -2511,7 +2511,7 @@ static SaErrorT NewSimulatorGetFumiTarge + static SaErrorT NewSimulatorGetFumiLogicalTarget(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiFumiLogicalBankInfoT *) __attribute__((used)); ++ SaHpiFumiLogicalBankInfoT *) __asm__("NewSimulatorGetFumiLogicalTarget") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiLogicalTarget(void *hnd, + SaHpiResourceIdT id, +@@ -2547,7 +2547,7 @@ static SaErrorT NewSimulatorGetFumiLogic + SaHpiFumiNumT, + SaHpiEntryIdT, + SaHpiEntryIdT *, +- SaHpiFumiLogicalComponentInfoT *) __attribute__((used)); ++ SaHpiFumiLogicalComponentInfoT *) __asm__("NewSimulatorGetFumiLogicalTargetComponent") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiLogicalTargetComponent(void *hnd, + SaHpiResourceIdT id, +@@ -2579,7 +2579,7 @@ static SaErrorT NewSimulatorGetFumiLogic + **/ + static SaErrorT NewSimulatorStartFumiBackup(void *, + SaHpiResourceIdT, +- SaHpiFumiNumT) __attribute__((used)); ++ SaHpiFumiNumT) __asm__("NewSimulatorStartFumiBackup") __attribute__((used)); + + static SaErrorT NewSimulatorStartFumiBackup(void *hnd, + SaHpiResourceIdT id, +@@ -2612,7 +2612,7 @@ static SaErrorT NewSimulatorSetFumiBankO + SaHpiResourceIdT, + SaHpiFumiNumT, + SaHpiBankNumT, +- SaHpiUint32T) __attribute__((used)); ++ SaHpiUint32T) __asm__("NewSimulatorSetFumiBankOrder") __attribute__((used)); + + static SaErrorT NewSimulatorSetFumiBankOrder(void *hnd, + SaHpiResourceIdT id, +@@ -2647,7 +2647,7 @@ static SaErrorT NewSimulatorStartFumiBan + SaHpiResourceIdT, + SaHpiFumiNumT, + SaHpiBankNumT, +- SaHpiBankNumT) __attribute__((used)); ++ SaHpiBankNumT) __asm__("NewSimulatorStartFumiBankCopy") __attribute__((used)); + + static SaErrorT NewSimulatorStartFumiBankCopy(void *hnd, + SaHpiResourceIdT id, +@@ -2680,7 +2680,7 @@ static SaErrorT NewSimulatorStartFumiBan + static SaErrorT NewSimulatorStartFumiInstall(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiBankNumT) __attribute__((used)); ++ SaHpiBankNumT) __asm__("NewSimulatorStartFumiInstall") __attribute__((used)); + + static SaErrorT NewSimulatorStartFumiInstall(void *hnd, + SaHpiResourceIdT id, +@@ -2714,7 +2714,7 @@ static SaErrorT NewSimulatorGetFumiStatu + SaHpiResourceIdT, + SaHpiFumiNumT, + SaHpiBankNumT, +- SaHpiFumiUpgradeStatusT *) __attribute__((used)); ++ SaHpiFumiUpgradeStatusT *) __asm__("NewSimulatorGetFumiStatus") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiStatus(void *hnd, + SaHpiResourceIdT id, +@@ -2747,7 +2747,7 @@ static SaErrorT NewSimulatorGetFumiStatu + static SaErrorT NewSimulatorStartFumiVerification(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiBankNumT) __attribute__((used)); ++ SaHpiBankNumT) __asm__("NewSimulatorStartFumiVerification") __attribute__((used)); + + static SaErrorT NewSimulatorStartFumiVerification(void *hnd, + SaHpiResourceIdT id, +@@ -2776,7 +2776,7 @@ static SaErrorT NewSimulatorStartFumiVer + **/ + static SaErrorT NewSimulatorStartFumiVerificationMain(void *, + SaHpiResourceIdT, +- SaHpiFumiNumT) __attribute__((used)); ++ SaHpiFumiNumT) __asm__("NewSimulatorStartFumiVerificationMain") __attribute__((used)); + + static SaErrorT NewSimulatorStartFumiVerificationMain(void *hnd, + SaHpiResourceIdT id, +@@ -2807,7 +2807,7 @@ static SaErrorT NewSimulatorStartFumiVer + static SaErrorT NewSimulatorCancelFumiUpgrade(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiBankNumT) __attribute__((used)); ++ SaHpiBankNumT) __asm__("NewSimulatorCancelFumiUpgrade") __attribute__((used)); + + static SaErrorT NewSimulatorCancelFumiUpgrade(void *hnd, + SaHpiResourceIdT id, +@@ -2838,7 +2838,7 @@ static SaErrorT NewSimulatorCancelFumiUp + static SaErrorT NewSimulatorGetFumiRollback(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiBoolT *) __attribute__((used)); ++ SaHpiBoolT *) __asm__("NewSimulatorGetFumiRollback") __attribute__((used)); + + static SaErrorT NewSimulatorGetFumiRollback(void *hnd, + SaHpiResourceIdT id, +@@ -2870,7 +2870,7 @@ static SaErrorT NewSimulatorGetFumiRollb + static SaErrorT NewSimulatorSetFumiRollback(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiBoolT) __attribute__((used)); ++ SaHpiBoolT) __asm__("NewSimulatorSetFumiRollback") __attribute__((used)); + + static SaErrorT NewSimulatorSetFumiRollback(void *hnd, + SaHpiResourceIdT id, +@@ -2900,7 +2900,7 @@ static SaErrorT NewSimulatorSetFumiRollb + **/ + static SaErrorT NewSimulatorStartFumiRollback(void *, + SaHpiResourceIdT, +- SaHpiFumiNumT) __attribute__((used)); ++ SaHpiFumiNumT) __asm__("NewSimulatorStartFumiRollback") __attribute__((used)); + + static SaErrorT NewSimulatorStartFumiRollback(void *hnd, + SaHpiResourceIdT id, +@@ -2929,7 +2929,7 @@ static SaErrorT NewSimulatorStartFumiRol + **/ + static SaErrorT NewSimulatorActivateFumi(void *, + SaHpiResourceIdT, +- SaHpiFumiNumT) __attribute__((used)); ++ SaHpiFumiNumT) __asm__("NewSimulatorActivateFumi") __attribute__((used)); + + static SaErrorT NewSimulatorActivateFumi(void *hnd, + SaHpiResourceIdT id, +@@ -2960,7 +2960,7 @@ static SaErrorT NewSimulatorActivateFumi + static SaErrorT NewSimulatorStartFumiActivation(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiBoolT) __attribute__((used)); ++ SaHpiBoolT) __asm__("NewSimulatorStartFumiActivation") __attribute__((used)); + + static SaErrorT NewSimulatorStartFumiActivation(void *hnd, + SaHpiResourceIdT id, +@@ -2992,7 +2992,7 @@ static SaErrorT NewSimulatorStartFumiAct + static SaErrorT NewSimulatorCleanupFumi(void *, + SaHpiResourceIdT, + SaHpiFumiNumT, +- SaHpiBankNumT) __attribute__((used)); ++ SaHpiBankNumT) __asm__("NewSimulatorCleanupFumi") __attribute__((used)); + + static SaErrorT NewSimulatorCleanupFumi(void *hnd, + SaHpiResourceIdT id, +@@ -3023,7 +3023,7 @@ static SaErrorT NewSimulatorCleanupFumi( + static SaErrorT NewSimulatorGetDimiInfo( void *, + SaHpiResourceIdT, + SaHpiDimiNumT, +- SaHpiDimiInfoT *) __attribute__((used)); ++ SaHpiDimiInfoT *) __asm__("NewSimulatorGetDimiInfo") __attribute__((used)); + + static SaErrorT NewSimulatorGetDimiInfo( void *hnd, + SaHpiResourceIdT id, +@@ -3057,7 +3057,7 @@ static SaErrorT NewSimulatorGetDimiTestI + SaHpiResourceIdT, + SaHpiDimiNumT, + SaHpiDimiTestNumT, +- SaHpiDimiTestT *) __attribute__((used)); ++ SaHpiDimiTestT *) __asm__("NewSimulatorGetDimiTestInfo") __attribute__((used)); + + static SaErrorT NewSimulatorGetDimiTestInfo( void *hnd, + SaHpiResourceIdT id, +@@ -3092,7 +3092,7 @@ static SaErrorT NewSimulatorGetDimiTestR + SaHpiResourceIdT, + SaHpiDimiNumT, + SaHpiDimiTestNumT, +- SaHpiDimiReadyT *) __attribute__((used)); ++ SaHpiDimiReadyT *) __asm__("NewSimulatorGetDimiTestReadiness") __attribute__((used)); + + static SaErrorT NewSimulatorGetDimiTestReadiness( void *hnd, + SaHpiResourceIdT id, +@@ -3129,7 +3129,7 @@ static SaErrorT NewSimulatorStartDimiTes + SaHpiDimiNumT, + SaHpiDimiTestNumT, + SaHpiUint8T, +- SaHpiDimiTestVariableParamsT *) __attribute__((used)); ++ SaHpiDimiTestVariableParamsT *) __asm__("NewSimulatorStartDimiTest") __attribute__((used)); + + static SaErrorT NewSimulatorStartDimiTest( void *hnd, + SaHpiResourceIdT id, +@@ -3163,7 +3163,7 @@ static SaErrorT NewSimulatorStartDimiTes + static SaErrorT NewSimulatorCancelDimiTest( void *, + SaHpiResourceIdT, + SaHpiDimiNumT, +- SaHpiDimiTestNumT) __attribute__((used)); ++ SaHpiDimiTestNumT) __asm__("NewSimulatorCancelDimiTest") __attribute__((used)); + + static SaErrorT NewSimulatorCancelDimiTest( void *hnd, + SaHpiResourceIdT id, +@@ -3199,7 +3199,7 @@ static SaErrorT NewSimulatorGetDimiTestS + SaHpiDimiNumT, + SaHpiDimiTestNumT, + SaHpiDimiTestPercentCompletedT *, +- SaHpiDimiTestRunStatusT *) __attribute__((used)); ++ SaHpiDimiTestRunStatusT *) __asm__("NewSimulatorGetDimiTestStatus") __attribute__((used)); + + static SaErrorT NewSimulatorGetDimiTestStatus( void *hnd, + SaHpiResourceIdT id, +@@ -3234,7 +3234,7 @@ static SaErrorT NewSimulatorGetDimiTestR + SaHpiResourceIdT, + SaHpiDimiNumT, + SaHpiDimiTestNumT, +- SaHpiDimiTestResultsT *) __attribute__((used)); ++ SaHpiDimiTestResultsT *) __asm__("NewSimulatorGetDimiTestResults") __attribute__((used)); + + static SaErrorT NewSimulatorGetDimiTestResults( void *hnd, + SaHpiResourceIdT id, +@@ -3263,7 +3263,7 @@ static SaErrorT NewSimulatorGetDimiTestR + * @return HPI error code + **/ + static SaErrorT NewSimulatorSetAutoInsertTimeout( void *, +- SaHpiTimeoutT ) __attribute__((used)); ++ SaHpiTimeoutT ) __asm__("NewSimulatorSetAutoInsertTimeout") __attribute__((used)); + + static SaErrorT NewSimulatorSetAutoInsertTimeout( void *hnd, SaHpiTimeoutT timeout) { + NewSimulator *newsim = VerifyNewSimulator( hnd ); +@@ -3289,7 +3289,7 @@ static SaErrorT NewSimulatorSetAutoInser + * @return HPI error code + **/ + static SaErrorT NewSimulatorGetAutoExtractTimeout( void *, SaHpiResourceIdT, +- SaHpiTimeoutT * ) __attribute__((used)); ++ SaHpiTimeoutT * ) __asm__("NewSimulatorGetAutoExtractTimeout") __attribute__((used)); + + static SaErrorT NewSimulatorGetAutoExtractTimeout( void *hnd, SaHpiResourceIdT id, + SaHpiTimeoutT *timeout ) { +@@ -3319,7 +3319,7 @@ static SaErrorT NewSimulatorGetAutoExtra + * @return HPI error code + **/ + static SaErrorT NewSimulatorSetAutoExtractTimeout( void *, SaHpiResourceIdT, +- SaHpiTimeoutT ) __attribute__((used)); ++ SaHpiTimeoutT ) __asm__("NewSimulatorSetAutoExtractTimeout") __attribute__((used)); + + static SaErrorT NewSimulatorSetAutoExtractTimeout( void *hnd, SaHpiResourceIdT id, + SaHpiTimeoutT timeout ) { +@@ -3350,7 +3350,7 @@ static SaErrorT NewSimulatorSetAutoExtra + * @return HPI error code + **/ + static SaErrorT NewSimulatorGetPowerState( void *, SaHpiResourceIdT, +- SaHpiPowerStateT * ) __attribute__((used)); ++ SaHpiPowerStateT * ) __asm__("NewSimulatorGetPowerState") __attribute__((used)); + + static SaErrorT NewSimulatorGetPowerState( void *hnd, SaHpiResourceIdT id, + SaHpiPowerStateT *state ) { +@@ -3382,7 +3382,7 @@ static SaErrorT NewSimulatorGetPowerStat + * @return HPI error code + **/ + static SaErrorT NewSimulatorSetPowerState( void *, SaHpiResourceIdT, +- SaHpiPowerStateT ) __attribute__((used)); ++ SaHpiPowerStateT ) __asm__("NewSimulatorSetPowerState") __attribute__((used)); + + static SaErrorT NewSimulatorSetPowerState( void *hnd, SaHpiResourceIdT id, + SaHpiPowerStateT state ) { +@@ -3414,7 +3414,7 @@ static SaErrorT NewSimulatorSetPowerStat + * @return HPI error code + **/ + static SaErrorT NewSimulatorGetIndicatorState( void *, SaHpiResourceIdT, +- SaHpiHsIndicatorStateT * ) __attribute__((used)); ++ SaHpiHsIndicatorStateT * ) __asm__("NewSimulatorGetIndicatorState") __attribute__((used)); + + static SaErrorT NewSimulatorGetIndicatorState( void *hnd, SaHpiResourceIdT id, + SaHpiHsIndicatorStateT *state ) { +@@ -3446,7 +3446,7 @@ static SaErrorT NewSimulatorGetIndicator + * @return HPI error code + **/ + static SaErrorT NewSimulatorSetIndicatorState( void *, SaHpiResourceIdT, +- SaHpiHsIndicatorStateT ) __attribute__((used)); ++ SaHpiHsIndicatorStateT ) __asm__("NewSimulatorSetIndicatorState") __attribute__((used)); + + static SaErrorT NewSimulatorSetIndicatorState( void *hnd, SaHpiResourceIdT id, + SaHpiHsIndicatorStateT state ) { +@@ -3479,7 +3479,7 @@ static SaErrorT NewSimulatorSetIndicator + **/ + static SaErrorT NewSimulatorControlParm( void *, + SaHpiResourceIdT, +- SaHpiParmActionT ) __attribute__((used)); ++ SaHpiParmActionT ) __asm__("NewSimulatorControlParm") __attribute__((used)); + + static SaErrorT NewSimulatorControlParm( void *hnd, + SaHpiResourceIdT id, +@@ -3512,7 +3512,7 @@ static SaErrorT NewSimulatorControlParm( + * @return HPI error code + **/ + static SaErrorT NewSimulatorGetResetState( void *, SaHpiResourceIdT, +- SaHpiResetActionT * ) __attribute__((used)); ++ SaHpiResetActionT * ) __asm__("NewSimulatorGetResetState") __attribute__((used)); + + static SaErrorT NewSimulatorGetResetState( void *hnd, SaHpiResourceIdT id, + SaHpiResetActionT *act ) { +@@ -3545,7 +3545,7 @@ static SaErrorT NewSimulatorGetResetStat + **/ + static SaErrorT NewSimulatorSetResetState( void *, + SaHpiResourceIdT, +- SaHpiResetActionT ) __attribute__((used)); ++ SaHpiResetActionT ) __asm__("NewSimulatorSetResetState") __attribute__((used)); + + static SaErrorT NewSimulatorSetResetState( void *hnd, + SaHpiResourceIdT id, +Index: openhpi-3.6.1/plugins/dynamic_simulator/new_sim_file.cpp +=================================================================== +--- openhpi-3.6.1.orig/plugins/dynamic_simulator/new_sim_file.cpp ++++ openhpi-3.6.1/plugins/dynamic_simulator/new_sim_file.cpp +@@ -44,9 +44,9 @@ + ///< Global skip characters for oh_scanner_config + static gchar skip_characters[] = " \t\n"; + ///< Global identifier_first for oh_scanner_config +-static gchar identifier_first[] = G_CSET_a_2_z"_/."G_CSET_A_2_Z; ++static gchar identifier_first[] = G_CSET_a_2_z "_/." G_CSET_A_2_Z; + ///< Global identifier_nth for oh_scanner_config +-static gchar identifier_nth[] = G_CSET_a_2_z"_-0123456789/."G_CSET_A_2_Z; ++static gchar identifier_nth[] = G_CSET_a_2_z "_-0123456789/." G_CSET_A_2_Z; + ///< Global comment signs for oh_scanner_config + static gchar comment_single[] = "#\n"; + +Index: openhpi-3.6.1/plugins/ipmidirect/ipmi.cpp +=================================================================== +--- openhpi-3.6.1.orig/plugins/ipmidirect/ipmi.cpp ++++ openhpi-3.6.1/plugins/ipmidirect/ipmi.cpp +@@ -279,7 +279,7 @@ extern "C" { + // ABI Interface functions + + static void * +-IpmiOpen( GHashTable *, unsigned int, oh_evt_queue * ) __attribute__((used)); ++IpmiOpen( GHashTable *, unsigned int, oh_evt_queue * ) __asm__("IpmiOpen") __attribute__((used)); + + static void * + IpmiOpen( GHashTable *handler_config, unsigned int hid, oh_evt_queue *eventq ) +@@ -388,7 +388,7 @@ IpmiOpen( GHashTable *handler_config, un + + + static void +-IpmiClose( void * ) __attribute__((used)); ++IpmiClose( void * ) __asm__("IpmiClose") __attribute__((used)); + + static void + IpmiClose( void *hnd ) +@@ -436,7 +436,7 @@ IpmiClose( void *hnd ) + + + static SaErrorT +-IpmiGetEvent( void * ) __attribute__((used)); ++IpmiGetEvent( void * ) __asm__("IpmiGetEvent") __attribute__((used)); + + static SaErrorT + IpmiGetEvent( void *hnd ) +@@ -458,7 +458,7 @@ IpmiGetEvent( void *hnd ) + + + static SaErrorT +-IpmiDiscoverResources( void * ) __attribute__((used)); ++IpmiDiscoverResources( void * ) __asm__("IpmiDiscoverResources") __attribute__((used)); + + static SaErrorT + IpmiDiscoverResources( void *hnd ) +@@ -479,7 +479,7 @@ IpmiDiscoverResources( void *hnd ) + + + static SaErrorT +-IpmiSetResourceTag( void *, SaHpiResourceIdT, SaHpiTextBufferT * ) __attribute__((used)); ++IpmiSetResourceTag( void *, SaHpiResourceIdT, SaHpiTextBufferT * ) __asm__("IpmiSetResourceTag") __attribute__((used)); + + static SaErrorT + IpmiSetResourceTag( void *hnd, SaHpiResourceIdT id, SaHpiTextBufferT *tag ) +@@ -499,7 +499,7 @@ IpmiSetResourceTag( void *hnd, SaHpiReso + + + static SaErrorT +-IpmiSetResourceSeverity( void *, SaHpiResourceIdT, SaHpiSeverityT ) __attribute__((used)); ++IpmiSetResourceSeverity( void *, SaHpiResourceIdT, SaHpiSeverityT ) __asm__("IpmiSetResourceSeverity") __attribute__((used)); + + static SaErrorT + IpmiSetResourceSeverity( void *hnd, SaHpiResourceIdT id, SaHpiSeverityT sev ) +@@ -523,7 +523,7 @@ IpmiGetSensorReading( void *, + SaHpiResourceIdT id, + SaHpiSensorNumT num, + SaHpiSensorReadingT *data, +- SaHpiEventStateT *state ) __attribute__((used)); ++ SaHpiEventStateT *state ) __asm__("IpmiGetSensorReading") __attribute__((used)); + + static SaErrorT + IpmiGetSensorReading( void *hnd, +@@ -550,7 +550,7 @@ static SaErrorT + IpmiGetSensorThresholds( void *hnd, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiSensorThresholdsT * ) __attribute__((used)); ++ SaHpiSensorThresholdsT * ) __asm__("IpmiGetSensorThresholds") __attribute__((used)); + + static SaErrorT + IpmiGetSensorThresholds( void *hnd, +@@ -581,7 +581,7 @@ static SaErrorT + IpmiSetSensorThresholds( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- const SaHpiSensorThresholdsT * ) __attribute__((used)); ++ const SaHpiSensorThresholdsT * ) __asm__("IpmiSetSensorThresholds") __attribute__((used)); + + static SaErrorT + IpmiSetSensorThresholds( void *hnd, +@@ -612,7 +612,7 @@ static SaErrorT + IpmiGetSensorEnable( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiBoolT * ) __attribute__((used)); ++ SaHpiBoolT * ) __asm__("IpmiGetSensorEnable") __attribute__((used)); + + static SaErrorT + IpmiGetSensorEnable( void *hnd, +@@ -638,7 +638,7 @@ static SaErrorT + IpmiSetSensorEnable( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiBoolT ) __attribute__((used)); ++ SaHpiBoolT ) __asm__("IpmiSetSensorEnable") __attribute__((used)); + + static SaErrorT + IpmiSetSensorEnable( void *hnd, +@@ -664,7 +664,7 @@ static SaErrorT + IpmiGetSensorEventEnables( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiBoolT * ) __attribute__((used)); ++ SaHpiBoolT * ) __asm__("IpmiGetSensorEventEnables") __attribute__((used)); + + static SaErrorT + IpmiGetSensorEventEnables( void *hnd, +@@ -690,7 +690,7 @@ static SaErrorT + IpmiSetSensorEventEnables( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, +- SaHpiBoolT ) __attribute__((used)); ++ SaHpiBoolT ) __asm__("IpmiSetSensorEventEnables") __attribute__((used)); + + static SaErrorT + IpmiSetSensorEventEnables( void *hnd, +@@ -717,7 +717,7 @@ IpmiGetSensorEventMasks( void *, + SaHpiResourceIdT, + SaHpiSensorNumT, + SaHpiEventStateT *, +- SaHpiEventStateT * ) __attribute__((used)); ++ SaHpiEventStateT * ) __asm__("IpmiGetSensorEventMasks") __attribute__((used)); + + static SaErrorT + IpmiGetSensorEventMasks( void *hnd, +@@ -747,7 +747,7 @@ IpmiSetSensorEventMasks( void *, + SaHpiSensorNumT, + SaHpiSensorEventMaskActionT, + SaHpiEventStateT, +- SaHpiEventStateT ) __attribute__((used)); ++ SaHpiEventStateT ) __asm__("IpmiSetSensorEventMasks") __attribute__((used)); + + static SaErrorT + IpmiSetSensorEventMasks( void *hnd, +@@ -776,7 +776,7 @@ static SaErrorT + IpmiGetControlState( void *, SaHpiResourceIdT, + SaHpiCtrlNumT, + SaHpiCtrlModeT *, +- SaHpiCtrlStateT * ) __attribute__((used)); ++ SaHpiCtrlStateT * ) __asm__("IpmiGetControlState") __attribute__((used)); + + static SaErrorT + IpmiGetControlState( void *hnd, SaHpiResourceIdT id, +@@ -802,7 +802,7 @@ static SaErrorT + IpmiSetControlState( void *, SaHpiResourceIdT, + SaHpiCtrlNumT, + SaHpiCtrlModeT, +- SaHpiCtrlStateT * ) __attribute__((used)); ++ SaHpiCtrlStateT * ) __asm__("IpmiSetControlState") __attribute__((used)); + + static SaErrorT + IpmiSetControlState( void *hnd, SaHpiResourceIdT id, +@@ -828,7 +828,7 @@ static SaErrorT + IpmiGetIdrInfo( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiIdrInfoT * ) __attribute__((used)); ++ SaHpiIdrInfoT * ) __asm__("IpmiGetIdrInfo") __attribute__((used)); + + static SaErrorT + IpmiGetIdrInfo( void *hnd, +@@ -857,7 +857,7 @@ IpmiGetIdrAreaHeader( void *, + SaHpiIdrAreaTypeT, + SaHpiEntryIdT, + SaHpiEntryIdT *, +- SaHpiIdrAreaHeaderT * ) __attribute__((used)); ++ SaHpiIdrAreaHeaderT * ) __asm__("IpmiGetIdrAreaHeader") __attribute__((used)); + + static SaErrorT + IpmiGetIdrAreaHeader( void *hnd, +@@ -887,7 +887,7 @@ IpmiAddIdrArea( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, + SaHpiIdrAreaTypeT, +- SaHpiEntryIdT * ) __attribute__((used)); ++ SaHpiEntryIdT * ) __asm__("IpmiAddIdrArea") __attribute__((used)); + + static SaErrorT + IpmiAddIdrArea( void *hnd, +@@ -914,7 +914,7 @@ static SaErrorT + IpmiDelIdrArea( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiEntryIdT ) __attribute__((used)); ++ SaHpiEntryIdT ) __asm__("IpmiDelIdrArea") __attribute__((used)); + + static SaErrorT + IpmiDelIdrArea( void *hnd, +@@ -944,7 +944,7 @@ IpmiGetIdrField( void *, + SaHpiIdrFieldTypeT, + SaHpiEntryIdT, + SaHpiEntryIdT *, +- SaHpiIdrFieldT * ) __attribute__((used)); ++ SaHpiIdrFieldT * ) __asm__("IpmiGetIdrField") __attribute__((used)); + + static SaErrorT + IpmiGetIdrField( void *hnd, +@@ -974,7 +974,7 @@ static SaErrorT + IpmiAddIdrField( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiIdrFieldT * ) __attribute__((used)); ++ SaHpiIdrFieldT * ) __asm__("IpmiAddIdrField") __attribute__((used)); + + static SaErrorT + IpmiAddIdrField( void *hnd, +@@ -1000,7 +1000,7 @@ static SaErrorT + IpmiSetIdrField( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, +- SaHpiIdrFieldT * ) __attribute__((used)); ++ SaHpiIdrFieldT * ) __asm__("IpmiSetIdrField") __attribute__((used)); + + static SaErrorT + IpmiSetIdrField( void *hnd, +@@ -1027,7 +1027,7 @@ IpmiDelIdrField( void *, + SaHpiResourceIdT, + SaHpiIdrIdT, + SaHpiEntryIdT, +- SaHpiEntryIdT ) __attribute__((used)); ++ SaHpiEntryIdT ) __asm__("IpmiDelIdrField") __attribute__((used)); + + static SaErrorT + IpmiDelIdrField( void *hnd, +@@ -1053,7 +1053,7 @@ IpmiDelIdrField( void *hnd, + static SaErrorT + IpmiGetSelInfo( void *, + SaHpiResourceIdT, +- SaHpiEventLogInfoT * ) __attribute__((used)); ++ SaHpiEventLogInfoT * ) __asm__("IpmiGetSelInfo") __attribute__((used)); + + static SaErrorT + IpmiGetSelInfo( void *hnd, +@@ -1075,7 +1075,7 @@ IpmiGetSelInfo( void *hnd, + + + static SaErrorT +-IpmiSetSelTime( void *, SaHpiResourceIdT, SaHpiTimeT ) __attribute__((used)); ++IpmiSetSelTime( void *, SaHpiResourceIdT, SaHpiTimeT ) __asm__("IpmiSetSelTime") __attribute__((used)); + + static SaErrorT + IpmiSetSelTime( void *hnd, SaHpiResourceIdT id, SaHpiTimeT t ) +@@ -1096,7 +1096,7 @@ IpmiSetSelTime( void *hnd, SaHpiResource + + static SaErrorT + IpmiAddSelEntry( void *, SaHpiResourceIdT, +- const SaHpiEventT * ) __attribute__((used)); ++ const SaHpiEventT * ) __asm__("IpmiAddSelEntry") __attribute__((used)); + + static SaErrorT + IpmiAddSelEntry( void *hnd, SaHpiResourceIdT id, +@@ -1118,7 +1118,7 @@ IpmiAddSelEntry( void *hnd, SaHpiResourc + #ifdef NOTUSED + static SaErrorT + IpmiDelSelEntry( void *, SaHpiResourceIdT, +- SaHpiEventLogEntryIdT ) __attribute__((used)); ++ SaHpiEventLogEntryIdT ) __asm__("IpmiDelSelEntry") __attribute__((used)); + + static SaErrorT + IpmiDelSelEntry( void *hnd, SaHpiResourceIdT id, +@@ -1145,7 +1145,7 @@ IpmiGetSelEntry( void *hnd, SaHpiResourc + SaHpiEventLogEntryIdT *, SaHpiEventLogEntryIdT *, + SaHpiEventLogEntryT *, + SaHpiRdrT *, +- SaHpiRptEntryT * ) __attribute__((used)); ++ SaHpiRptEntryT * ) __asm__("IpmiGetSelEntry") __attribute__((used)); + + static SaErrorT + IpmiGetSelEntry( void *hnd, SaHpiResourceIdT id, +@@ -1170,7 +1170,7 @@ IpmiGetSelEntry( void *hnd, SaHpiResourc + + + static SaErrorT +-IpmiClearSel( void *, SaHpiResourceIdT ) __attribute__((used)); ++IpmiClearSel( void *, SaHpiResourceIdT ) __asm__("IpmiClearSel") __attribute__((used)); + + static SaErrorT + IpmiClearSel( void *hnd, SaHpiResourceIdT id ) +@@ -1190,7 +1190,7 @@ IpmiClearSel( void *hnd, SaHpiResourceId + + static SaErrorT + IpmiHotswapPolicyCancel( void *, SaHpiResourceIdT, +- SaHpiTimeoutT ) __attribute__((used)); ++ SaHpiTimeoutT ) __asm__("IpmiHotswapPolicyCancel") __attribute__((used)); + + static SaErrorT + IpmiHotswapPolicyCancel( void *hnd, SaHpiResourceIdT id, +@@ -1210,7 +1210,7 @@ IpmiHotswapPolicyCancel( void *hnd, SaHp + } + + static SaErrorT +-IpmiSetAutoInsertTimeout( void *, SaHpiTimeoutT ) __attribute__((used)); ++IpmiSetAutoInsertTimeout( void *, SaHpiTimeoutT ) __asm__("IpmiSetAutoInsertTimeout") __attribute__((used)); + + static SaErrorT + IpmiSetAutoInsertTimeout( void *hnd, SaHpiTimeoutT timeout) +@@ -1229,7 +1229,7 @@ IpmiSetAutoInsertTimeout( void *hnd, SaH + + static SaErrorT + IpmiGetAutoExtractTimeout( void *, SaHpiResourceIdT, +- SaHpiTimeoutT * ) __attribute__((used)); ++ SaHpiTimeoutT * ) __asm__("IpmiGetAutoExtractTimeout") __attribute__((used)); + + static SaErrorT + IpmiGetAutoExtractTimeout( void *hnd, SaHpiResourceIdT id, +@@ -1250,7 +1250,7 @@ IpmiGetAutoExtractTimeout( void *hnd, Sa + + static SaErrorT + IpmiSetAutoExtractTimeout( void *, SaHpiResourceIdT, +- SaHpiTimeoutT ) __attribute__((used)); ++ SaHpiTimeoutT ) __asm__("IpmiSetAutoExtractTimeout") __attribute__((used)); + + static SaErrorT + IpmiSetAutoExtractTimeout( void *hnd, SaHpiResourceIdT id, +@@ -1271,7 +1271,7 @@ IpmiSetAutoExtractTimeout( void *hnd, Sa + + static SaErrorT + IpmiGetHotswapState( void *, SaHpiResourceIdT , +- SaHpiHsStateT * ) __attribute__((used)); ++ SaHpiHsStateT * ) __asm__("IpmiGetHotswapState") __attribute__((used)); + + static SaErrorT + IpmiGetHotswapState( void *hnd, SaHpiResourceIdT id, +@@ -1293,7 +1293,7 @@ IpmiGetHotswapState( void *hnd, SaHpiRes + + static SaErrorT + IpmiSetHotswapState( void *, SaHpiResourceIdT, +- SaHpiHsStateT ) __attribute__((used)); ++ SaHpiHsStateT ) __asm__("IpmiSetHotswapState") __attribute__((used)); + + static SaErrorT + IpmiSetHotswapState( void *hnd, SaHpiResourceIdT id, +@@ -1315,7 +1315,7 @@ IpmiSetHotswapState( void *hnd, SaHpiRes + + static SaErrorT + IpmiRequestHotswapAction( void *, SaHpiResourceIdT, +- SaHpiHsActionT ) __attribute__((used)); ++ SaHpiHsActionT ) __asm__("IpmiRequestHotswapAction") __attribute__((used)); + + static SaErrorT + IpmiRequestHotswapAction( void *hnd, SaHpiResourceIdT id, +@@ -1337,7 +1337,7 @@ IpmiRequestHotswapAction( void *hnd, SaH + + static SaErrorT + IpmiGetPowerState( void *, SaHpiResourceIdT, +- SaHpiPowerStateT * ) __attribute__((used)); ++ SaHpiPowerStateT * ) __asm__("IpmiGetPowerState") __attribute__((used)); + + static SaErrorT + IpmiGetPowerState( void *hnd, SaHpiResourceIdT id, +@@ -1359,7 +1359,7 @@ IpmiGetPowerState( void *hnd, SaHpiResou + + static SaErrorT + IpmiSetPowerState( void *, SaHpiResourceIdT, +- SaHpiPowerStateT ) __attribute__((used)); ++ SaHpiPowerStateT ) __asm__("IpmiSetPowerState") __attribute__((used)); + + static SaErrorT + IpmiSetPowerState( void *hnd, SaHpiResourceIdT id, +@@ -1381,7 +1381,7 @@ IpmiSetPowerState( void *hnd, SaHpiResou + + static SaErrorT + IpmiGetIndicatorState( void *, SaHpiResourceIdT, +- SaHpiHsIndicatorStateT * ) __attribute__((used)); ++ SaHpiHsIndicatorStateT * ) __asm__("IpmiGetIndicatorState") __attribute__((used)); + + static SaErrorT + IpmiGetIndicatorState( void *hnd, SaHpiResourceIdT id, +@@ -1403,7 +1403,7 @@ IpmiGetIndicatorState( void *hnd, SaHpiR + + static SaErrorT + IpmiSetIndicatorState( void *, SaHpiResourceIdT, +- SaHpiHsIndicatorStateT ) __attribute__((used)); ++ SaHpiHsIndicatorStateT ) __asm__("IpmiSetIndicatorState") __attribute__((used)); + + static SaErrorT + IpmiSetIndicatorState( void *hnd, SaHpiResourceIdT id, +@@ -1426,7 +1426,7 @@ IpmiSetIndicatorState( void *hnd, SaHpiR + static SaErrorT + IpmiControlParm( void *, + SaHpiResourceIdT, +- SaHpiParmActionT ) __attribute__((used)); ++ SaHpiParmActionT ) __asm__("IpmiControlParm") __attribute__((used)); + + static SaErrorT + IpmiControlParm( void *hnd, +@@ -1449,7 +1449,7 @@ IpmiControlParm( void *hnd, + + static SaErrorT + IpmiGetResetState( void *, SaHpiResourceIdT, +- SaHpiResetActionT * ) __attribute__((used)); ++ SaHpiResetActionT * ) __asm__("IpmiGetResetState") __attribute__((used)); + + static SaErrorT + IpmiGetResetState( void *hnd, SaHpiResourceIdT id, +@@ -1472,7 +1472,7 @@ IpmiGetResetState( void *hnd, SaHpiResou + static SaErrorT + IpmiSetResetState( void *, + SaHpiResourceIdT, +- SaHpiResetActionT ) __attribute__((used)); ++ SaHpiResetActionT ) __asm__("IpmiSetResetState") __attribute__((used)); + + static SaErrorT + IpmiSetResetState( void *hnd, +@@ -1496,7 +1496,7 @@ static SaErrorT + IpmiGetWatchdogInfo(void *, + SaHpiResourceIdT, + SaHpiWatchdogNumT, +- SaHpiWatchdogT *) __attribute__((used)); ++ SaHpiWatchdogT *) __asm__("IpmiGetWatchdogInfo") __attribute__((used)); + + static SaErrorT + IpmiGetWatchdogInfo(void *hnd, +@@ -1517,7 +1517,7 @@ static SaErrorT + IpmiSetWatchdogInfo(void *, + SaHpiResourceIdT, + SaHpiWatchdogNumT, +- SaHpiWatchdogT *) __attribute__((used)); ++ SaHpiWatchdogT *) __asm__("IpmiSetWatchdogInfo") __attribute__((used)); + + static SaErrorT + IpmiSetWatchdogInfo(void *hnd, +@@ -1537,7 +1537,7 @@ IpmiSetWatchdogInfo(void *hnd, + static SaErrorT + IpmiResetWatchdog(void *, + SaHpiResourceIdT, +- SaHpiWatchdogNumT) __attribute__((used)); ++ SaHpiWatchdogNumT) __asm__("IpmiResetWatchdog") __attribute__((used)); + + static SaErrorT + IpmiResetWatchdog(void *hnd, +Index: openhpi-3.6.1/plugins/ipmidirect/ipmi_auth.h +=================================================================== +--- openhpi-3.6.1.orig/plugins/ipmidirect/ipmi_auth.h ++++ openhpi-3.6.1/plugins/ipmidirect/ipmi_auth.h +@@ -32,7 +32,7 @@ class cIpmiAuthSg + { + public: + void *data; /* NULL to terminate. */ +- int len; ++ unsigned int len; + }; + + diff --git a/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch b/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch new file mode 100644 index 00000000000..4c545708fc4 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch @@ -0,0 +1,20 @@ +Fix + +sensor_factors_000.cpp:66:5: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned char' in initializer list [-Wc++11-narrowing] +((dRExp << 4) & 0xf0) | (dBExp & 0x0f ), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Signed-off-by: Khem Raj + +Index: openhpi-3.6.1/plugins/ipmidirect/t/sensor_factors_000.cpp +=================================================================== +--- openhpi-3.6.1.orig/plugins/ipmidirect/t/sensor_factors_000.cpp ++++ openhpi-3.6.1/plugins/ipmidirect/t/sensor_factors_000.cpp +@@ -63,7 +63,7 @@ static cIpmiSdr sdr = + dB & 0xff, + ((dB >> 2) & 0xc0) | (dAccuracy & 0x3f), + ((dAccuracy >> 2) & 0xf0) | ((dAccuracyExp << 2) & 0x0c), +- ((dRExp << 4) & 0xf0) | (dBExp & 0x0f ), ++ (unsigned char)(((dRExp << 4) & 0xf0) | (dBExp & 0x0f )), + 0, + 0, + } diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch new file mode 100644 index 00000000000..4644910b763 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch @@ -0,0 +1,25 @@ +[PATCH] add libnetsnmp when link + +Upstream-Status: Pending + +Signed-off-by: Roy Li +--- + plugins/snmp_bc/t/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/snmp_bc/t/Makefile.am b/plugins/snmp_bc/t/Makefile.am +index 57e77ac..9894620 100644 +--- a/plugins/snmp_bc/t/Makefile.am ++++ b/plugins/snmp_bc/t/Makefile.am +@@ -74,7 +74,7 @@ nodist_libsnmp_bc_la_SOURCES = $(GENERATED_EVENT_CODE) $(REMOTE_SIM_SOURCES) + # libopenhpi_la_LIBADD = $(top_builddir)/utils/libopenhpiutils.la + # libopenhpi_la_LDFLAGS = -L$(top_builddir)/utils -version-info @HPI_LIB_VERSION@ -export-symbols $(top_srcdir)/src/hpi.sym + +-libsnmp_bc_la_LIBADD = -luuid @SNMPLIBS@ $(top_builddir)/utils/libopenhpiutils.la ++libsnmp_bc_la_LIBADD = -luuid @SNMPLIBS@ $(top_builddir)/utils/libopenhpiutils.la -lnetsnmp + libsnmp_bc_la_LDFLAGS = -L$(top_builddir)/utils -module -version-info @HPI_LIB_VERSION@ + # libsnmp_bc_la_LDFLAGS = -version 0:0:0 + +-- +1.7.10.4 + diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch new file mode 100644 index 00000000000..077e26cbff5 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch @@ -0,0 +1,23 @@ +Fix alignment issue in ipmi_inventory.c + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail + +diff --git a/plugins/ipmi/ipmi_inventory.c b/plugins/ipmi/ipmi_inventory.c +index 5382186..01655c6 100644 +--- a/plugins/ipmi/ipmi_inventory.c ++++ b/plugins/ipmi/ipmi_inventory.c +@@ -2546,8 +2546,11 @@ static SaErrorT modify_inventory(SaHpiIdrFieldT *field, + if (tb->DataLength == 0) { + rv = ipmi_fru_set_board_info_mfg_time(fru, 0); + } else { ++ time_t the_time; ++ /* tb->Data is not aligned -- copy to temp */ ++ memcpy(&the_time, tb->Data, sizeof(the_time)); + rv = ipmi_fru_set_board_info_mfg_time(fru, +- *(time_t *)tb->Data); ++ the_time); + } + break; + case SAHPI_IDR_FIELDTYPE_MANUFACTURER: diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch new file mode 100644 index 00000000000..029b857bc1e --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch @@ -0,0 +1,24 @@ +fix host gcc warnings + +Remove gcc warnings when gcc is v3.2 + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail + +diff --git a/configure.ac b/configure.ac +index f5a5b74..4a20154 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -605,11 +605,6 @@ AC_ARG_ENABLE([werror], + fi], + []) + +-if test -n "`gcc --version | grep ' 3.2'`" ; then +- CC_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wno-strict-aliasing//g'` +- CXX_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wno-strict-aliasing//g'` +-fi +- + case $host_os in + solaris*) + CC_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wcast-qual//g'` diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch new file mode 100644 index 00000000000..205696e6514 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch @@ -0,0 +1,31 @@ +Fix for saftest failures. + +Upstream-Status: Pending + +Signed-off-by: yanjun.zhu + +diff -urpN a/openhpid/safhpi.c b/openhpid/safhpi.c +--- a/openhpid/safhpi.c ++++ b/openhpid/safhpi.c +@@ -1976,7 +1976,7 @@ SaErrorT SAHPI_API saHpiSensorThresholds + oh_release_domain(d); /* Unlock domain */ + + OH_CALL_ABI(h, set_sensor_thresholds, SA_ERR_HPI_INVALID_CMD, rv, +- ResourceId, SensorNum, SensorThresholds); ++ ResourceId, SensorNum, &tmp); + oh_release_handler(h); + + return rv; +diff -urpN a/utils/sahpi_struct_utils.c b/utils/sahpi_struct_utils.c +--- a/utils/sahpi_struct_utils.c ++++ b/utils/sahpi_struct_utils.c +@@ -3855,6 +3855,9 @@ SaHpiBoolT oh_valid_textbuffer(SaHpiText + /* found a unpaired surrogate */ + return SAHPI_FALSE; + } ++ } else { ++ /*the first 2 bytes wrong*/ ++ return SAHPI_FALSE; + } + } + break; diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch new file mode 100644 index 00000000000..1627c979727 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch @@ -0,0 +1,33 @@ +Fix glib cross compile + +Uses proper PKG_CONFIG_PATH when cross-compiling + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail + +diff --git a/configure.ac b/configure.ac +index b5f5aad..f5a5b74 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -110,13 +110,13 @@ else + *** GLIB is always available from ftp://ftp.gtk.org/.]) + fi + +-exact_version=`pkg-config --modversion $GLIB`; +-GLIB_CFLAGS=`pkg-config --cflags $GLIB $GTHREAD` +-GLIB_LIBS=`pkg-config --libs $GLIB $GTHREAD` +-GLIB_ONLY_CFLAGS=`pkg-config --cflags $GLIB` +-GLIB_ONLY_LIBS=`pkg-config --libs $GLIB` +-GMODULE_ONLY_CFLAGS=`pkg-config --cflags $GMODULE` +-GMODULE_ONLY_LIBS=`pkg-config --libs $GMODULE` ++exact_version=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --modversion $GLIB`; ++GLIB_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GLIB $GTHREAD` ++GLIB_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GLIB $GTHREAD` ++GLIB_ONLY_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GLIB` ++GLIB_ONLY_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GLIB` ++GMODULE_ONLY_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GMODULE` ++GMODULE_ONLY_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GMODULE` + + # On some versions of Solaris the pkg-config file for gthread-2.0 contains a + # compiler option, '-mt', that is incompatible with gcc diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch new file mode 100644 index 00000000000..7dac453189a --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch @@ -0,0 +1,29 @@ +commit e9f9a73c9dba8dd59f3d6c3acd9988ec8361d55a +Author: Aws Ismail +Date: Mon Dec 17 16:23:45 2012 -0500 + + Correct dangling g_thread_exit in session.c + + hpi_shell's session.c has its progress_bar + thread created using pthread_create but + exited using g_thread_exit. Use pthread_exit + instead to avoid unpredictable GLIB thread + errors. + + Upstream-Status: Pending + + Signed-off-by: Aws Ismail + +diff --git a/hpi_shell/session.c b/hpi_shell/session.c +index 85c31bf..187da4c 100644 +--- a/hpi_shell/session.c ++++ b/hpi_shell/session.c +@@ -66,7 +66,7 @@ static void* progress_bar(void *unused) + if (i < (PROGRESS_BUF_SIZE - mes_len - 1)) i++; + t++; + }; +- g_thread_exit(0); ++ pthread_exit(0); + return (void *)1; + } + diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch new file mode 100644 index 00000000000..d03c97e186f --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch @@ -0,0 +1,21 @@ +Upstream-Status: Submitted + +Package saftest run a test case to pass invalid session id to function +saHpiResourceIdGet that expect return SA_ERR_HPI_INVALID_SESSION. But the check +for SA_ERR_HPI_INVALID_SESSION is missed somehow in function saHpiResourceIdGet. + +Add check for SA_ERR_HPI_INVALID_SESSION. + +Signed-off-by: Kai Kang +----- +--- openhpi-3.4.0/baselib/safhpi.cpp.orig 2014-02-25 10:45:20.911734868 +0800 ++++ openhpi-3.4.0/baselib/safhpi.cpp 2014-02-25 10:46:05.366925389 +0800 +@@ -477,6 +477,8 @@ + &rpt_update_count ); + if ( rv == SA_ERR_HPI_NOT_PRESENT ) { + return SA_ERR_HPI_NOT_PRESENT; ++ } else if ( rv == SA_ERR_HPI_INVALID_SESSION) { ++ return SA_ERR_HPI_INVALID_SESSION; + } else if ( rv != SA_OK ) { + return SA_ERR_HPI_UNKNOWN; + } diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch new file mode 100644 index 00000000000..6d3b6648a8e --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch @@ -0,0 +1,21 @@ +Fix libxml2 for cross-compiling + +Use proper XML2_INCLUDE path when cross-compiling + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail + +diff --git a/configure.ac b/configure.ac +index 30a792c..b5f5aad 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -175,7 +175,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/md5.h openssl/bio.h openssl/ssl.h openss + + dnl xml is used for XML-based communication in ilo2_ribcl and oa_soap + AC_CHECK_LIB([xml2],[xmlParseMemory],[XML2_LIB=-lxml2],[XML2_LIB=]) +-AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE]) ++AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE]) + AC_SUBST(XML2_LIB) + AC_SUBST(XML2_INCLUDE) + diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch new file mode 100644 index 00000000000..3222f5d13d6 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch @@ -0,0 +1,33 @@ +Fix ipmi plugin's test dir compilation + +The ipmi plugin's test dir is not included +in compilation since it does not compile +properly with SSL + +Signed-of-by: Aws Ismail + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan +--- + plugins/ipmi/Makefile.in | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/plugins/ipmi/Makefile.in b/plugins/ipmi/Makefile.in +index 7c6b0a4..6204dbe 100644 +--- a/plugins/ipmi/Makefile.in ++++ b/plugins/ipmi/Makefile.in +@@ -448,7 +448,9 @@ top_srcdir = @top_srcdir@ + MAINTAINERCLEANFILES = Makefile.in + AM_CPPFLAGS = -DG_LOG_DOMAIN=\"ipmi\" @OPENHPI_INCLUDES@ + EXTRA_DIST = ipmi.sym ekeyfru.h +-SUBDIRS = t ++#SUBDIRS = t ++#Tests don't compile wih SSL properly so comment them out ++SUBDIRS = + AM_CFLAGS = @OPENIPMI_CFLAGS@ + pkglib_LTLIBRARIES = libipmi.la + libipmi_la_SOURCES = ipmi.c \ +-- +1.9.1 + diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch new file mode 100644 index 00000000000..95b0abc913c --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch @@ -0,0 +1,48 @@ +Fix net-snmp when cross-compiling + +Remove irrelevant references to net-snmp libs and flags +when cross-compiling net-snmp + +Signed-of-by: Aws Ismail + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan +--- + acinclude.m4 | 4 ++-- + configure | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 82c33f6..727e461 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -160,8 +160,8 @@ AC_DEFUN([OH_CHECK_NETSNMP], + ], + [ + have_netsnmp=yes +- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'` +- SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs` ++ SNMPFLAGS="" ++ SNMPLIBS="" + AC_MSG_RESULT(yes) + ], + [AC_MSG_RESULT(no. No SNMP based plugins can be built!)]) +diff --git a/configure b/configure +index 00067bc..36b913c 100755 +--- a/configure ++++ b/configure +@@ -15949,8 +15949,8 @@ _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + + have_netsnmp=yes +- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'` +- SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs` ++ SNMPFLAGS="" ++ SNMPLIBS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + +-- +1.9.1 + diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch new file mode 100644 index 00000000000..38d9a67424d --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch @@ -0,0 +1,23 @@ +Fix sysfs when cross-compiling + +Use proper paths for sysfs plugins when cross-compiling + +Signed-of-by: Aws Ismail + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan + +diff --git a/plugins/sysfs/sysfs2hpi.c b/plugins/sysfs/sysfs2hpi.c +index a745214..3685598 100644 +--- a/plugins/sysfs/sysfs2hpi.c ++++ b/plugins/sysfs/sysfs2hpi.c +@@ -18,7 +18,7 @@ + + #include + #include +-#include ++#include + + #include + #include diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch new file mode 100644 index 00000000000..51537ef128b --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch @@ -0,0 +1,31 @@ +From 36fbaa27e7299f63c1324b0ad22b970e9365d6a7 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Wed, 24 Dec 2014 10:54:59 +0800 +Subject: [PATCH] openhpi: use serial-tests config needed by ptest + +ptest needs buildtest-TESTS and runtest-TESTS targets. +serial-tests is required to generate those targets. + +Upstream-Status: Inappropriate [default automake behavior incompatible with ptest] + +Signed-off-by: Jackie Huang +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 4b51971..16136b3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7,7 +7,7 @@ dnl various hacks by Sean Dague 4/23/03 + AC_PREREQ(2.57) + AC_INIT(openhpi, 3.5.0) + AC_CONFIG_SRCDIR(openhpi.spec.in) +-AM_INIT_AUTOMAKE([1.8]) ++AM_INIT_AUTOMAKE([1.8 serial-tests]) + + AM_CONFIG_HEADER(config.h) + AH_TOP([#ifndef __OPENHPI_CONFIG_H +-- +1.7.1 + diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi.init b/meta-networking/recipes-daemons/openhpi/files/openhpi.init new file mode 100755 index 00000000000..3a5f4a06aca --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpi.init @@ -0,0 +1,230 @@ +#! /bin/sh +# +### BEGIN INIT INFO +# Provides: openhpid +# Required-Start: $network $remote_fs $syslog +# Required-Stop: $network $remote_fs $syslog +# Should-Start: $named +# Should-Stop: $named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start OpenHPI daemon at boot time +# Description: Enable OpenHPI service which is provided by openhpid. +### END INIT INFO +# +# openhpid.sh Start/Stop the openhpi daemon. +# +# description: openhpid is standard UNIX program which uses the OpenHPI \ +# APIs and provides a standard internet server to access those \ +# APIs for client programs. +# processname: openhpid +# config: the standard openhpi conf file specified on the command line or the env. +# pidfile: /var/run/openhpid.pid +# +# Author(s): +# W. David Ashley +# Daniel de Araujo + +# Source function library. +PATH=/sbin:/bin:/usr/sbin:/usr/bin +prog="OpenHPI" + +# If the openhpid executable is not available, we can't do any of this +test -f /usr/sbin/openhpid || exit 0 + +# Determine whether the lsb package is installed +# If it is, determine which lsb is installed: +# redhat, suse, or standard lsb + +if test -f /etc/init.d/functions +then + lsbtype="rh" + . /etc/init.d/functions +elif test -f /etc/rc.status +then + lsbtype="suse" + . /etc/rc.status +elif test -f /lib/lsb/init-functions +then + lsbtype="lsb" + . /lib/lsb/init-functions +elif test -f /etc/gentoo-release +then + lsbtype="gentoo" + . /sbin/functions.sh +else + lsbtype="nolsb" +fi + +print_outcome() +{ + + case "${lsbtype}" in + + suse) + rc_status -v + ;; + + lsb) + if test "$?" -eq 0 + then + log_success_msg "success" + else + log_failure_msg "failed" + fi + ;; + + gentoo) + eend $? + ;; + + nolsb | rh) + if test "$?" -eq 0 + then + echo " ... success" + fi + if test "$?" -ne 0 + then + echo " ... failed" + fi + ;; + esac +} + +start() { + case "${lsbtype}" in + + suse) + echo -n "Starting $prog: " + startproc /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf + RETVAL=$? + ;; + lsb) + echo -n "Starting $prog: " + start_daemon /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf + RETVAL=$? + ;; + gentoo | rh) + echo "Starting $prog: " + start-stop-daemon --start --quiet --exec /usr/sbin/openhpid -- -c /etc/openhpi/openhpi.conf + RETVAL=$? + ;; + nolsb) + echo -n "Starting $prog: " + /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf + RETVAL=$? + ;; + + esac + + print_outcome + +} + +stop() { + case "${lsbtype}" in + + lsb | suse) + echo -n "Stopping $prog: " + killproc /usr/sbin/openhpid + RETVAL=$? + ;; + + gentoo) + echo "Stopping $prog: " + start-stop-daemon --stop --quiet --exec /usr/sbin/openhpid + RETVAL=$? + ;; + + nolsb | rh) + echo -n "Stopping $prog: " + if test -f /var/run/openhpid.pid && test "`cat /var/run/openhpid.pid`" != "" + then + kill "`cat /var/run/openhpid.pid`" + RETVAL=$? + else + RETVAL=0 + fi + ;; + + esac + + print_outcome + + if test "$RETVAL" -eq 0 && test -f /var/run/openhpid.pid + then + rm -f /var/lock/openhpid + rm -f /var/run/openhpid.pid + fi + +} + +dstatus() { + echo "Checking for $prog daemon: " + + case "${lsbtype}" in + + suse) + checkproc /usr/sbin/openhpid + rc_status -v + ;; + lsb) + pid="`pidofproc /usr/sbin/openhpid`" + if test "${pid}" != "" + then + log_success_msg "$prog is running" + else + log_success_msg "$prog is not running" + fi + ;; + gentoo | nolsb | rh) + if test -f /var/run/openhpid.pid && + test "`cat /var/run/openhpid.pid`" != "" && + kill -s 0 "`cat /var/run/openhpid.pid`" + then + echo "$prog is running" + else + echo "$prog is not running" + fi + + ;; + + esac + + + +} + +restart() { + stop + start +} + +force_reload() { + # We don't currently support a reload, but can do a restart + stop + start +} + +# See how we were called. + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + restart + ;; + status) + dstatus + ;; + force-reload) + force_reload + ;; + *) + echo "Usage: $0 {start|stop|restart|status|force-reload}" + exit 1 +esac diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpid.service b/meta-networking/recipes-daemons/openhpi/files/openhpid.service new file mode 100644 index 00000000000..cd4168f8e50 --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/openhpid.service @@ -0,0 +1,11 @@ +[Unit] +Description=Daemon providing access to the SAF Hardware Platform Interface +After=syslog.target + +[Service] +Type=forking +PIDFile=/var/run/openhpid.pid +ExecStart=@SBINDIR@/openhpid -c @SYSCONFDIR@/openhpi/openhpi.conf + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-daemons/openhpi/files/run-ptest b/meta-networking/recipes-daemons/openhpi/files/run-ptest new file mode 100755 index 00000000000..5b187d9086b --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/files/run-ptest @@ -0,0 +1,5 @@ +#!/bin/sh +for x in `find ./ -name Makefile`; +do + make -C `dirname ${x}` -k runtest-TESTS +done diff --git a/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb b/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb new file mode 100644 index 00000000000..ecf71d70f6a --- /dev/null +++ b/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb @@ -0,0 +1,115 @@ +SUMMARY = "Hardware Platform Interface Library and Tools" + +DESCRIPTION = "\ +OpenHPI is an open source project created with the intent of providing an \ +implementation of the SA Forum's Hardware Platform Interface (HPI). HPI \ +provides an abstracted interface to managing computer hardware, typically for \ +chassis and rack based servers. HPI includes resource modeling; access to and \ +control over sensor, control, watchdog, and inventory data associated with \ +resources; abstracted System Event Log interfaces; hardware events and alerts; \ +and a managed hotswap interface. \ +\ +OpenHPI provides a modular mechanism for adding new hardware and device support \ +easily. Many plugins exist in the OpenHPI source tree to provide access to \ +various types of hardware. This includes, but is not limited to, IPMI based \ +servers, Blade Center, and machines which export data via sysfs. \ +" + +HOMEPAGE = "http://openhpi.sourceforge.net/Home" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4" + +DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs autoconf-archive-native" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ + file://openhpi.init \ + file://openhpid.service \ + file://run-ptest \ + file://openhpi-netsnmp-cross-compile.patch \ + file://openhpi-sysfs-cross-compile.patch \ + file://openhpi-libxml2-cross-compile.patch \ + file://openhpi-glib-cross-compile.patch \ + file://openhpi-linkfix.patch \ + file://openhpi-fix-host-gcc.patch \ + file://openhpi-hpi-shell-thread-fix.patch \ + file://openhpi-fix-testfail-errors.patch \ + file://openhpi-add-libnetsnmp-when-link.patch \ + file://openhpi-invalide-session.patch \ + file://openhpi-use-serial-tests-config-needed-by-ptest.patch \ + file://openhpi-fix-alignment-issue.patch \ + file://0001-Fix-build-failures-with-gcc7.patch \ + file://c++11.patch \ + file://clang-c++11.patch \ + file://fix-narrowing-warning.patch \ + file://0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch \ + file://0001-ipmidirect-Replace-__STRING.patch \ + " + +SRC_URI[md5sum] = "4718b16e0f749b5ad214a9b04f45dd23" +SRC_URI[sha256sum] = "e0a810cb401c4bdcfc9551f2e6afd5a8ca4b411f5ee3bc60c19f82fd6e84a3dc" + +inherit autotools pkgconfig ptest update-rc.d systemd + +PACKAGES =+ "${PN}-libs" + +FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so" + +INSANE_SKIP_${PN}-libs = "dev-so" +RDEPENDS_${PN} += "${PN}-libs" + +PACKAGECONFIG ??= "libgcrypt non32bit" +PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils," +PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt," +PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,," + +do_install_append () { + install -m 0755 -d ${D}${sysconfdir}/${BPN} + install -m 0755 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf + install -m 0700 ${S}/openhpi.conf.example ${D}${sysconfdir}/${BPN}/openhpi.conf + install -m 0755 ${S}/simulation.data.example ${D}${sysconfdir}/${BPN}/simulation.data + install -m 0755 ${S}/test_agent.data.example ${D}${sysconfdir}/${BPN}/test_agent.data + install -m 0755 ${WORKDIR}/openhpi.init ${D}${sysconfdir}/init.d/openhpid + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/openhpid.service ${D}${systemd_unitdir}/system + sed -i -e "s,@SBINDIR@,${sbindir},g" -e "s,@SYSCONFDIR@,${sysconfdir},g" \ + ${D}${systemd_unitdir}/system/openhpid.service +} + +do_compile_ptest () { + for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do + dir=`dirname ${x}` + upper=`dirname ${dir}` + if [ `basename ${upper}` != "cpp" ]; then + oe_runmake -C ${dir} buildtest-TESTS + fi + done +} + +do_install_ptest () { + cp -rf ${B}/openhpid/t/ohpi/.libs/* ${B}/openhpid/t/ohpi/ + TESTS="utils marshal openhpid" + for subtest in ${TESTS}; do + mkdir -p ${D}${PTEST_PATH}/${subtest}/t + cp -rf ${B}/${subtest}/t/* ${D}${PTEST_PATH}/${subtest}/t + done + + for x in `find ${D}${PTEST_PATH} -name Makefile`; do + sed -i "s:${S}:${PTEST_PATH}/:g" ${x}; + sed -i "s/^Makefile:/MM:/g" ${x}; + done; + + mkdir -p ${D}${PTEST_PATH}/plugins/watchdog/ + cp -L ${D}/${libdir}/${BPN}/libwatchdog.so ${D}${PTEST_PATH}/plugins/watchdog/ + cp -L ${D}/${libdir}/${BPN}/libsimulator.so ${D}${PTEST_PATH}/plugins/watchdog/ + find ${D}${PTEST_PATH}/ -name "*.c" -exec rm {} \; + find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \; + find ${D}${PTEST_PATH}/ -name "*.h" -exec rm {} \; +} + +INITSCRIPT_NAME = "openhpid" +INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ." + +SYSTEMD_SERVICE_${PN} = "openhpid.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch new file mode 100644 index 00000000000..512e246c56c --- /dev/null +++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch @@ -0,0 +1,127 @@ +From ab00d6f5793b2d850f975bcb6d5d0aa6d7a9eaa4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 22 Apr 2017 12:34:37 -0700 +Subject: [PATCH] configure: Disable format-overflow if supported by gcc + +Signed-off-by: Khem Raj +--- + Makefile.am | 6 ++-- + configure.ac | 2 ++ + m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 79 insertions(+), 3 deletions(-) + create mode 100644 m4/ax_check_compile_flag.m4 + +diff --git a/Makefile.am b/Makefile.am +index d63fbbb..1012a2c 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -52,10 +52,10 @@ AM_CPPFLAGS = \ + -pthread \ + -D_GNU_SOURCE -DINTERNAL_VERSION_ID='"@INTERNAL_VERSION_ID@"' \ + $(CORE_INCLUDES) \ +- $(all_includes) ++ $(all_includes) @NOWARNINGS@ + +-AM_CFLAGS = -pipe -std=gnu11 @OSAF_HARDEN_FLAGS@ -Wall -Wformat=2 -Werror +-AM_CXXFLAGS = -pipe -std=gnu++11 @OSAF_HARDEN_FLAGS@ -Wall -Wformat=2 -Werror ++AM_CFLAGS = -pipe -std=gnu11 @OSAF_HARDEN_FLAGS@ -Wall -Wformat=2 -Werror @NOWARNINGS@ ++AM_CXXFLAGS = -pipe -std=gnu++11 @OSAF_HARDEN_FLAGS@ -Wall -Wformat=2 -Werror @NOWARNINGS@ + AM_LDFLAGS = @OSAF_HARDEN_FLAGS@ -Wl,--as-needed -ldl -lrt -pthread -rdynamic + ACLOCAL_AMFLAGS = -I m4 + OSAF_LIB_FLAGS = +diff --git a/configure.ac b/configure.ac +index 02771c6..b76b0fe 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -557,6 +557,8 @@ if test -z "$OSAF_HARDEN_FLAGS"; then + fi + AC_SUBST(OSAF_HARDEN_FLAGS) + ++AX_CHECK_COMPILE_FLAG([-Werror=format-overflow],[NOWARNINGS=-Wno-error=format-overflow]) ++AC_SUBST(NOWARNINGS) + ############################################# + # List the output Makefiles + ############################################# +diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 +new file mode 100644 +index 0000000..dcabb92 +--- /dev/null ++++ b/m4/ax_check_compile_flag.m4 +@@ -0,0 +1,74 @@ ++# =========================================================================== ++# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) ++# ++# DESCRIPTION ++# ++# Check whether the given FLAG works with the current language's compiler ++# or gives an error. (Warnings, however, are ignored) ++# ++# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on ++# success/failure. ++# ++# If EXTRA-FLAGS is defined, it is added to the current language's default ++# flags (e.g. CFLAGS) when the check is done. The check is thus made with ++# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to ++# force the compiler to issue an error when a bad flag is given. ++# ++# INPUT gives an alternative input source to AC_COMPILE_IFELSE. ++# ++# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this ++# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Guido U. Draheim ++# Copyright (c) 2011 Maarten Bosmans ++# ++# This program is free software: you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation, either version 3 of the License, or (at your ++# option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see . ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++#serial 5 ++ ++AC_DEFUN([AX_CHECK_COMPILE_FLAG], ++[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF ++AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl ++AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ++ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS ++ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" ++ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], ++ [AS_VAR_SET(CACHEVAR,[yes])], ++ [AS_VAR_SET(CACHEVAR,[no])]) ++ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) ++AS_VAR_IF(CACHEVAR,yes, ++ [m4_default([$2], :)], ++ [m4_default([$3], :)]) ++AS_VAR_POPDEF([CACHEVAR])dnl ++])dnl AX_CHECK_COMPILE_FLAGS +-- +2.12.2 + diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch new file mode 100644 index 00000000000..5756a027b47 --- /dev/null +++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch @@ -0,0 +1,29 @@ +From 6248b717b4861d16b80235fd8e57d64e4f636428 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Apr 2017 17:39:07 -0700 +Subject: [PATCH] configure: Pass linker specific options with -Wl + +This helps make it pass the options to linker correctly +and we can use non-gcc compilers + +Signed-off-by: Khem Raj +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index df4fc58..02771c6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -553,7 +553,7 @@ if test -z "$OSAF_HARDEN_FLAGS"; then + if echo "${CFLAGS} ${CXXFLAGS}" | grep -q -- -O0; then + OSAF_HARDEN_FLAGS="" + fi +- OSAF_HARDEN_FLAGS="${OSAF_HARDEN_FLAGS} -fstack-protector --param ssp-buffer-size=4 -fPIE -pie -zrelro -znow" ++ OSAF_HARDEN_FLAGS="${OSAF_HARDEN_FLAGS} -fstack-protector --param ssp-buffer-size=4 -fPIE -pie -Wl,-z,relro,-z,now" + fi + AC_SUBST(OSAF_HARDEN_FLAGS) + +-- +2.12.2 + diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch new file mode 100644 index 00000000000..76c47c6584e --- /dev/null +++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch @@ -0,0 +1,34 @@ +From 508ea7c0d67243feb1684eaa83569cb687561d64 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 Sep 2017 10:09:03 -0700 +Subject: [PATCH] immpbe_dump.cc: Use sys/wait.h instead of wait.h + +Fixes +redirecting incorrect #include to + +Signed-off-by: Khem Raj +--- + src/imm/common/immpbe_dump.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/imm/common/immpbe_dump.cc b/src/imm/common/immpbe_dump.cc +index 100222f37..33e47ce3c 100644 +--- a/src/imm/common/immpbe_dump.cc ++++ b/src/imm/common/immpbe_dump.cc +@@ -26,12 +26,12 @@ + #include + #include + #include +-#include + #include + #include + #include + #include + #include ++#include + #include + + #include +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch new file mode 100644 index 00000000000..4a2a825f991 --- /dev/null +++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch @@ -0,0 +1,122 @@ +From 6442b57a855e273aa5a3d93e8596783cea128073 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 Sep 2017 09:39:40 -0700 +Subject: [PATCH] src: Add missing header limits.h for _POSIX_HOST_NAME_MAX + +Use _GNU_SOURCE instead of libc internal __USE_GNU +Do not use the deprecated headers under include/sys + +Signed-off-by: Khem Raj +--- + src/base/os_defs.h | 5 +++-- + src/mds/mds_dt_tcp.c | 1 - + src/mds/mds_dt_tcp_disc.h | 2 +- + src/mds/mds_dt_tipc.c | 1 - + src/mds/mds_dt_tipc.h | 2 +- + src/mds/mds_dt_trans.c | 1 - + src/ntf/ntfd/NtfLogger.cc | 2 +- + 7 files changed, 6 insertions(+), 8 deletions(-) + +diff --git a/src/base/os_defs.h b/src/base/os_defs.h +index 50a9bf5fc..af6842863 100644 +--- a/src/base/os_defs.h ++++ b/src/base/os_defs.h +@@ -47,17 +47,18 @@ + #include + #include /* Added for message-queues : PM : 28/10/03 */ + #include +-#ifndef __USE_GNU ++#include ++#ifndef _GNU_SOURCE + struct msgbuf { + long int mtype; + char mtext[1]; + }; + #endif /* else defined in */ + #include +-#include + #include + #include + ++#include + #include + #include + +diff --git a/src/mds/mds_dt_tcp.c b/src/mds/mds_dt_tcp.c +index 1407eb1ab..a87c22faa 100644 +--- a/src/mds/mds_dt_tcp.c ++++ b/src/mds/mds_dt_tcp.c +@@ -27,7 +27,6 @@ + + #include + #include +-#include + #include + #include + #include +diff --git a/src/mds/mds_dt_tcp_disc.h b/src/mds/mds_dt_tcp_disc.h +index a6249d73e..574f52681 100644 +--- a/src/mds/mds_dt_tcp_disc.h ++++ b/src/mds/mds_dt_tcp_disc.h +@@ -24,7 +24,7 @@ + #include "base/ncssysf_tsk.h" + #include "base/ncssysf_mem.h" + #include "mds_dt_tcp_disc.h" +-#include "sys/poll.h" ++#include + + /* mds_indentifire + mds_version + msg_type + scope_type + server_type + + server_instance_lower + server_instance_upper + sub_ref_val + sub_ref_val + +diff --git a/src/mds/mds_dt_tipc.c b/src/mds/mds_dt_tipc.c +index 37745e7f0..9b3255567 100644 +--- a/src/mds/mds_dt_tipc.c ++++ b/src/mds/mds_dt_tipc.c +@@ -35,7 +35,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff --git a/src/mds/mds_dt_tipc.h b/src/mds/mds_dt_tipc.h +index e73a11b09..401d208c2 100644 +--- a/src/mds/mds_dt_tipc.h ++++ b/src/mds/mds_dt_tipc.h +@@ -32,7 +32,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/src/mds/mds_dt_trans.c b/src/mds/mds_dt_trans.c +index 6f621e04e..5aacbd33e 100644 +--- a/src/mds/mds_dt_trans.c ++++ b/src/mds/mds_dt_trans.c +@@ -26,7 +26,6 @@ + #include "mds_core.h" + #include "base/osaf_utility.h" + +-#include + #include + + #define MDS_PROT_TCP 0xA0 +diff --git a/src/ntf/ntfd/NtfLogger.cc b/src/ntf/ntfd/NtfLogger.cc +index 84014b578..31b1ccc6c 100644 +--- a/src/ntf/ntfd/NtfLogger.cc ++++ b/src/ntf/ntfd/NtfLogger.cc +@@ -20,7 +20,7 @@ + * INCLUDE FILES + * ======================================================================== + */ +-#include ++#include + + #include "base/osaf_utility.h" + #include +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch b/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch deleted file mode 100644 index 016b64f2e96..00000000000 --- a/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- opensaf-4.5.0.orig/Makefile.am 2014-12-31 14:45:54.088797989 +0800 -+++ opensaf-4.5.0/Makefile.am 2014-12-31 14:45:08.328796688 +0800 -@@ -219,7 +219,7 @@ install-data-local: - $(mkinstalldirs) $(DESTDIR)$(pkgpiddir) - $(mkinstalldirs) $(DESTDIR)$(lockdir) - $(mkinstalldirs) $(DESTDIR)$(pkglocalstatedir) -- cp -R samples/ $(DESTDIR)$(pkgdatadir) -+ cp -R $(srcdir)/samples/ $(DESTDIR)$(pkgdatadir) - - install-data-hook: - @for i in $$(grep -lr -e 'xxLIBDIRxx' -e 'xxLOGDIRxx' -e 'xxCLCCLIDIRxx' $(DESTDIR)$(pkgimmxml_svcdir)/*.xml) ; do \ diff --git a/meta-networking/recipes-daemons/opensaf/opensaf_4.5.0.bb b/meta-networking/recipes-daemons/opensaf/opensaf_4.5.0.bb deleted file mode 100644 index 5b42defb382..00000000000 --- a/meta-networking/recipes-daemons/opensaf/opensaf_4.5.0.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "OpenSAF is an open source implementation of the SAF AIS specification" -DESCRIPTION = "OpenSAF is an open source project established to develop a base platform \ -middleware consistent with Service Availability Forum (SA Forum) \ -specifications, under the LGPLv2.1 license. The OpenSAF Foundation was \ -established by leading Communications and Enterprise Computing Companies to \ -facilitate the OpenSAF Project and to accelerate the adoption of the OpenSAF \ -code base in commercial products. \ -The OpenSAF project was launched in mid 2007 and has been under development by \ -an informal group of supporters of the OpenSAF initiative. The OpenSAF \ -Foundation was founded on January 22nd 2008 with Emerson Network Power, \ -Ericsson, Nokia Siemens Networks, HP and Sun Microsystems as founding members." -HOMEPAGE = "http://www.opensaf.org" - -inherit autotools useradd systemd pkgconfig - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \ - file://install-samples-from-srcdir.patch" - -SRC_URI[md5sum] = "534c0a99438a62c4c8dda56cfa67300c" -SRC_URI[sha256sum] = "2f5ba57fe67e94099c0df82d0a0dd207b5c583c93030035ba354c97b5471b590" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7" - -DEPENDS = "libxml2 python" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "-f -r opensaf" -USERADD_PARAM_${PN} = "-r -g opensaf -d ${datadir}/opensaf/ -s ${sbindir}/nologin -c \"OpenSAF\" opensaf" - -SYSTEMD_SERVICE_${PN} += "opensafd.service" -SYSTEMD_AUTO_ENABLE = "disable" - -FILES_${PN} += "${localstatedir}/run" - -INSANE_SKIP_${PN} = "dev-so" - -do_install_append() { - rm -fr "${D}${localstatedir}/lock" - rm -fr "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" -} diff --git a/meta-networking/recipes-daemons/opensaf/opensaf_5.17.07.bb b/meta-networking/recipes-daemons/opensaf/opensaf_5.17.07.bb new file mode 100644 index 00000000000..74483d77861 --- /dev/null +++ b/meta-networking/recipes-daemons/opensaf/opensaf_5.17.07.bb @@ -0,0 +1,67 @@ +SUMMARY = "OpenSAF is an open source implementation of the SAF AIS specification" +DESCRIPTION = "OpenSAF is an open source project established to develop a base platform \ +middleware consistent with Service Availability Forum (SA Forum) \ +specifications, under the LGPLv2.1 license. The OpenSAF Foundation was \ +established by leading Communications and Enterprise Computing Companies to \ +facilitate the OpenSAF Project and to accelerate the adoption of the OpenSAF \ +code base in commercial products. \ +The OpenSAF project was launched in mid 2007 and has been under development by \ +an informal group of supporters of the OpenSAF initiative. The OpenSAF \ +Foundation was founded on January 22nd 2008 with Emerson Network Power, \ +Ericsson, Nokia Siemens Networks, HP and Sun Microsystems as founding members." +HOMEPAGE = "http://www.opensaf.org" +SECTION = "admin" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7" + +DEPENDS = "libxml2 python" +TOOLCHAIN = "gcc" + +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \ + file://0001-configure-Pass-linker-specific-options-with-Wl.patch \ + file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \ + file://0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch \ + file://0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch \ +" +SRC_URI[md5sum] = "125bcd9aabd7412aedcbfbf73f4e6196" +SRC_URI[sha256sum] = "3fb2239bb2c9328c8b45368ff8d8de979ea286a27edc9871d218200e88bb91cc" + +inherit autotools useradd systemd pkgconfig + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "-f -r opensaf" +USERADD_PARAM_${PN} = "-r -g opensaf -d ${datadir}/opensaf/ -s ${sbindir}/nologin -c \"OpenSAF\" opensaf" + +SYSTEMD_SERVICE_${PN} += "opensafd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +PACKAGECONFIG[systemd] = ",,systemd" +PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03 --enable-ais-plm,,openhpi" + +PACKAGECONFIG_append = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}" + +PKGLIBDIR="${libdir}" + +LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed" + +do_install_append() { + cp -av --no-preserve=ownership ${B}/lib/.libs/*.so* ${D}${libdir} + rm -fr "${D}${localstatedir}/lock" + rm -fr "${D}${localstatedir}/run" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" + rmdir --ignore-fail-on-non-empty "${D}${datadir}/java" + if [ ! -d "${D}${sysconfdir}/init.d" ]; then + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${B}/osaf/services/infrastructure/nid/scripts/opensafd ${D}${sysconfdir}/init.d/ + fi +} + +FILES_${PN} += "${systemd_unitdir}/system/*.service" +FILES_${PN}-staticdev += "${PKGLIBDIR}/*.a" + +INSANE_SKIP_${PN} = "dev-so" + +RDEPENDS_${PN} += "bash python" + diff --git a/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch b/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch new file mode 100644 index 00000000000..6b86e392591 --- /dev/null +++ b/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch @@ -0,0 +1,26 @@ +From 63619acf25151d4dade6d65732722ec4a710a5ac Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Jul 2017 09:54:25 -0700 +Subject: [PATCH] Check for glibc before setting CANT_USE_SEND_RECV_MSG + +Signed-off-by: Khem Raj +--- + src/util/sys_defs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/util/sys_defs.h b/src/util/sys_defs.h +index f720e2a..7314c63 100644 +--- a/src/util/sys_defs.h ++++ b/src/util/sys_defs.h +@@ -813,7 +813,7 @@ extern int initgroups(const char *, int); + #define KERNEL_VERSION(a,b,c) (LINUX_VERSION_CODE + 1) + #endif + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,2,0)) \ +- || (__GLIBC__ < 2) ++ || (defined(__GLIBC__) && (__GLIBC__ < 2)) + #define CANT_USE_SEND_RECV_MSG + #define DEF_SMTP_CACHE_DEMAND 0 + #else +-- +2.13.3 + diff --git a/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch b/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch new file mode 100644 index 00000000000..763a4a9b987 --- /dev/null +++ b/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch @@ -0,0 +1,64 @@ +From a0d0de10e4c5ab55bc2fa48798079e2876b1211d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 10:29:37 -0700 +Subject: [PATCH] makedefs: Use native compiler to build makedefs.test + +Its a binary used during build + +Signed-off-by: Khem Raj +--- + makedefs | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/makedefs b/makedefs +index 9fd4bc2..5ee7747 100644 +--- a/makedefs ++++ b/makedefs +@@ -526,7 +526,7 @@ int main(int argc, char **argv) + exit(0); + } + EOF +- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1 ++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1 + rm -f makedefs.test makedefs.test.[co] + fi;; + esac +@@ -762,7 +762,7 @@ int main(int argc, char **argv) + exit(0); + } + EOF +- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1 ++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1 + ./makedefs.test 2>/dev/null || + CCARGS="$CCARGS -DNO_SIGSETJMP" + rm -f makedefs.test makedefs.test.[co] +@@ -796,7 +796,7 @@ int main(int argc, char **argv) + &error) != 14); + } + EOF +- ${CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \ ++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \ + $icu_ldflags >/dev/null 2>&1 + if ./makedefs.test 2>/dev/null ; then + CCARGS="$CCARGS $icu_cppflags" +@@ -911,7 +911,7 @@ int main(void) + exit(ferror(stdout) ? 1 : 0); + } + EOF +- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1 ++ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1 + ./makedefs.test || exit 1 + rm -f makedefs.test makedefs.test.[co] + } +@@ -1067,7 +1067,7 @@ int main(void) + exit(ferror(stdout) ? 1 : 0); + } + EOF +- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1 ++ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1 + parm_val=`./makedefs.test` || exit 1 + rm -f makedefs.test makedefs.test.[co] + eval ${parm_name}=\""\$parm_val"\" +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/postfix/files/check_hostname.sh b/meta-networking/recipes-daemons/postfix/files/check_hostname.sh new file mode 100755 index 00000000000..37a0dd088cf --- /dev/null +++ b/meta-networking/recipes-daemons/postfix/files/check_hostname.sh @@ -0,0 +1,13 @@ +#! /bin/sh + +HOSTNAME=$(/bin/hostname) + +if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" -o ! -z "`echo $HOSTNAME | sed -n '/^[0-9]*\.[0-9].*/p'`" ]; then + # If hostname is invalid, and myhostname not existed in main.cf + /usr/sbin/postconf -h "myhostname" 2>/dev/null + if [ $? -ne 0 ]; then + # Set "localhost" to main.cf + /usr/sbin/postconf -e "myhostname=localhost" + fi +fi + diff --git a/meta-networking/recipes-daemons/postfix/files/icu-config.patch b/meta-networking/recipes-daemons/postfix/files/icu-config.patch new file mode 100644 index 00000000000..9bd9c2f03ee --- /dev/null +++ b/meta-networking/recipes-daemons/postfix/files/icu-config.patch @@ -0,0 +1,21 @@ +do not entertain cppflags from icu, this is because +icu-config feeds the -I path without sysroot which +caused native headers to be included and build is +corrupted in any case its just adding -I/usr/include +to the CCARGS which we loose nothing if its not +entertained. + +Signed-off-by: Khem Raj + +Index: postfix-3.2.2/makedefs +=================================================================== +--- postfix-3.2.2.orig/makedefs ++++ postfix-3.2.2/makedefs +@@ -799,7 +799,6 @@ EOF + ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \ + $icu_ldflags >/dev/null 2>&1 + if ./makedefs.test 2>/dev/null ; then +- CCARGS="$CCARGS $icu_cppflags" + SYSLIBS="$SYSLIBS $icu_ldflags" + else + CCARGS="$CCARGS -DNO_EAI" diff --git a/meta-networking/recipes-daemons/postfix/files/install.patch b/meta-networking/recipes-daemons/postfix/files/install.patch index a3fe089c223..d023680f3b6 100644 --- a/meta-networking/recipes-daemons/postfix/files/install.patch +++ b/meta-networking/recipes-daemons/postfix/files/install.patch @@ -1,14 +1,20 @@ -Change fixed postconf to a variable for cross-compiling +From 190650e1cd5700cd6950ead3fcb17ebcec192a2e Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 19 Jun 2015 17:14:58 +0900 +Subject: [PATCH] Change fixed postconf to a variable for cross-compiling Upstreamstatus: Inappropriate [embedded specific] Signed-off-by: Yao Zhao --- + postfix-install | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + diff --git a/postfix-install b/postfix-install -index 49225ac..2e4c292 100644 +index 1662c3d..d11fa12 100644 --- a/postfix-install +++ b/postfix-install -@@ -201,8 +201,8 @@ test -z "$non_interactive" -a ! -t 0 && { +@@ -226,8 +226,8 @@ test -z "$non_interactive" -a ! -t 0 && { exit 1 } @@ -19,7 +25,16 @@ index 49225ac..2e4c292 100644 exit 1 } -@@ -363,7 +363,7 @@ HTML files. Specify \"no\" if you do not want to install these files." +@@ -248,7 +248,7 @@ do + case "$junk" in + *MAIL_VERSION*) + case "$mail_version" in +- "") mail_version="`bin/postconf -dhx mail_version`" || exit 1 ++ "") mail_version="`$POSTCONF -dhx mail_version`" || exit 1 + esac + val=`echo "$junk" | sed 's/MAIL_VERSION$/'"$mail_version/g"` || exit 1 + case "$val" in +@@ -434,7 +434,7 @@ template files main.cf.proto and master.cf.proto." : ${install_root=/} : ${tempdir=`pwd`} @@ -28,39 +43,51 @@ index 49225ac..2e4c292 100644 # Find out the location of installed configuration files. -@@ -433,7 +433,7 @@ test -f $CONFIG_DIRECTORY/main.cf && { +@@ -500,7 +500,7 @@ test -f $CONFIG_DIRECTORY/main.cf && { case "$junk" in "") eval unset $name;; esac -- eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -h $name\`} || -+ eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -h $name\`} || +- eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -hx $name\`} || ++ eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -hx $name\`} || exit 1 done } -@@ -446,7 +446,7 @@ do +@@ -513,7 +513,7 @@ do case "$junk" in "") eval unset $name;; esac -- eval : \${$name=\`bin/postconf -c conf -d -h $name\`} || exit 1 -+ eval : \${$name=\`$POSTCONF -c conf -d -h $name\`} || exit 1 +- eval : \${$name=\`bin/postconf -c conf -d -hx $name\`} || exit 1 ++ eval : \${$name=\`$POSTCONF -c conf -d -hx $name\`} || exit 1 done # Override settings manually. -@@ -565,6 +565,8 @@ HTML_DIRECTORY=$install_root$html_directory - MANPAGE_DIRECTORY=$install_root$manpage_directory - README_DIRECTORY=$install_root$readme_directory +@@ -639,6 +639,8 @@ README_DIRECTORY=$install_root$readme_directory + SHLIB_DIRECTORY=$install_root$shlib_directory + META_DIRECTORY=$install_root$meta_directory +test "x$POSTCONF" != "x" || POSTCONF="bin/postconf" + # Avoid repeated tests for existence of these; default permissions suffice. test -d $DAEMON_DIRECTORY || mkdir -p $DAEMON_DIRECTORY || exit 1 -@@ -724,7 +726,7 @@ do - # Postfix releases, and software should not suddenly be installed in +@@ -810,7 +812,7 @@ IFS="$BACKUP_IFS" # the wrong place when Postfix is being upgraded. + case "$mail_version" in +-"") mail_version="`bin/postconf -dhx mail_version`" || exit 1 ++"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1 + esac + + # Undo MAIL_VERSION expansion at the end of a parameter value. If +@@ -830,7 +832,7 @@ do + esac + done + -bin/postconf -c $CONFIG_DIRECTORY -e \ +"$POSTCONF" -c $CONFIG_DIRECTORY -e \ "daemon_directory = $daemon_directory" \ "data_directory = $data_directory" \ "command_directory = $command_directory" \ +-- +1.8.4.2 + diff --git a/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 b/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 index 9e1077f6b00..dc7feb57b74 100644 --- a/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 +++ b/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 @@ -30,7 +30,7 @@ queue_directory = /var/spool/postfix mail_spool_directory = /var/spool/mail readme_directory = no command_directory = /usr/sbin -daemon_directory = /usr/lib/postfix +daemon_directory = @LIBEXECDIR@ mail_owner = postfix setgid_group = postdrop unknown_local_recipient_reject_code = 450 diff --git a/meta-networking/recipes-daemons/postfix/files/makedefs.patch b/meta-networking/recipes-daemons/postfix/files/makedefs.patch index 32c31b02435..98d5f7ed60a 100644 --- a/meta-networking/recipes-daemons/postfix/files/makedefs.patch +++ b/meta-networking/recipes-daemons/postfix/files/makedefs.patch @@ -1,4 +1,7 @@ -1)remove RANLIB, SYSLIBS, AR and get them from env. +From 4f49e2ce420fb3c17415937530493158ef312733 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 19 Jun 2015 16:45:54 +0900 +Subject: [PATCH] 1)remove RANLIB, SYSLIBS, AR and get them from env. 2)reference sysroot when searching header files 3)include sysroot path instead of absolute include path @@ -11,24 +14,24 @@ Upstreamstatus: Inappropriate [embedded specific] Signed-off-by: Yao Zhao --- - makedefs | 27 +++++++++++---------------- - 1 files changed, 11 insertions(+), 16 deletions(-) + makedefs | 27 +++++++++++---------------- + 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/makedefs b/makedefs -index dd5f256..e6fb795 100644 +index 8b84e47..893fb0d 100644 --- a/makedefs +++ b/makedefs -@@ -87,9 +87,6 @@ - +@@ -170,9 +170,6 @@ echo "# pie=$pie" + # Defaults for most sane systems - + -RANLIB=ranlib -SYSLIBS= -AR=ar ARFL=rv - + # Ugly function to make our error message more visible among the -@@ -293,12 +290,12 @@ case "$SYSTEM.$RELEASE" in +@@ -424,12 +421,12 @@ case "$SYSTEM.$RELEASE" in case "$CCARGS" in *-DNO_DB*) ;; *-DHAS_DB*) ;; @@ -44,7 +47,7 @@ index dd5f256..e6fb795 100644 else # No, we're not going to try db1 db2 db3 etc. # On a properly installed system, Postfix builds -@@ -307,12 +304,12 @@ case "$SYSTEM.$RELEASE" in +@@ -438,12 +435,12 @@ case "$SYSTEM.$RELEASE" in echo "Install the appropriate db*-devel package first." 1>&2 exit 1 fi @@ -59,7 +62,7 @@ index dd5f256..e6fb795 100644 do test -e $lib/lib$name.a -o -e $lib/lib$name.so && { SYSLIBS="$SYSLIBS -l$name" -@@ -332,7 +329,7 @@ case "$SYSTEM.$RELEASE" in +@@ -463,7 +460,7 @@ case "$SYSTEM.$RELEASE" in if [ `expr "X$CCARGS" : "X.*-DNO_EPOLL"` -gt 0 ] then : @@ -68,7 +71,7 @@ index dd5f256..e6fb795 100644 then echo CCARGS="$CCARGS -DNO_EPOLL" else -@@ -356,8 +353,6 @@ int main(int argc, char **argv) +@@ -487,8 +484,6 @@ int main(int argc, char **argv) } EOF ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1 @@ -77,7 +80,7 @@ index dd5f256..e6fb795 100644 rm -f makedefs.test makedefs.test.[co] fi;; esac -@@ -366,12 +361,12 @@ EOF +@@ -504,12 +499,12 @@ EOF case "$CCARGS" in *-DNO_DB*) ;; *-DHAS_DB*) ;; @@ -93,7 +96,7 @@ index dd5f256..e6fb795 100644 else # On a properly installed system, Postfix builds # by including and by linking with -ldb -@@ -379,7 +374,7 @@ EOF +@@ -517,12 +512,12 @@ EOF echo "Install the appropriate db*-devel package first." 1>&2 exit 1 fi @@ -102,15 +105,12 @@ index dd5f256..e6fb795 100644 ;; esac for name in nsl resolv -@@ -415,7 +410,7 @@ EOF - esac - for name in nsl resolv do -- for lib in /usr/lib64 /lib64 /usr/lib /lib +- for lib in /usr/lib64 /lib64 /usr/lib /usr/lib/* /lib /lib/* + for lib in $BUILD_SYSROOT_NSL_PATH do test -e $lib/lib$name.a -o -e $lib/lib$name.so && { SYSLIBS="$SYSLIBS -l$name" --- -1.7.1 +-- +1.8.4.2 diff --git a/meta-networking/recipes-daemons/postfix/files/postfix b/meta-networking/recipes-daemons/postfix/files/postfix index 7bcc81625a4..8c7a60175ac 100755 --- a/meta-networking/recipes-daemons/postfix/files/postfix +++ b/meta-networking/recipes-daemons/postfix/files/postfix @@ -1,4 +1,12 @@ #!/bin/sh +### BEGIN INIT INFO +# Provides: postfix MTA +# Default-Start: 2345 +# Default-Stop: 016 +# Short-Description: start and stop postfix +# Description: Postfix is a Mail Transport Agent, which is the program +# that moves mail from one machine to another. +### END INIT INFO success() { echo " Successful" @@ -32,6 +40,7 @@ case "$1" in newaliases fi if ! postfix status >/dev/null 2>&1; then + /usr/sbin/check_hostname.sh postfix start check_return $? else diff --git a/meta-networking/recipes-daemons/postfix/files/postfix-add-db6-support.patch b/meta-networking/recipes-daemons/postfix/files/postfix-add-db6-support.patch deleted file mode 100644 index e3e28c8430f..00000000000 --- a/meta-networking/recipes-daemons/postfix/files/postfix-add-db6-support.patch +++ /dev/null @@ -1,26 +0,0 @@ -Subject: [PATCH] add db6 support db6 - -Upstream-Status: Backport - -Signed-off-by: Jackie Huang ---- - src/util/dict_db.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/src/util/dict_db.c b/src/util/dict_db.c -index 93ee480..f1ae66b 100644 ---- a/src/util/dict_db.c -+++ b/src/util/dict_db.c -@@ -693,7 +693,8 @@ static DICT *dict_db_open(const char *class, const char *path, int open_flags, - msg_fatal("set DB cache size %d: %m", dict_db_cache_size); - if (type == DB_HASH && db->set_h_nelem(db, DICT_DB_NELM) != 0) - msg_fatal("set DB hash element count %d: %m", DICT_DB_NELM); --#if DB_VERSION_MAJOR == 5 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0) -+#if DB_VERSION_MAJOR == 6 || DB_VERSION_MAJOR == 5 || \ -+ (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0) - if ((errno = db->open(db, 0, db_path, 0, type, db_flags, 0644)) != 0) - FREE_RETURN(dict_surrogate(class, path, open_flags, dict_flags, - "open database %s: %m", db_path)); --- -1.7.1 - diff --git a/meta-networking/recipes-daemons/postfix/files/postfix-install.patch b/meta-networking/recipes-daemons/postfix/files/postfix-install.patch new file mode 100644 index 00000000000..45479bd52a6 --- /dev/null +++ b/meta-networking/recipes-daemons/postfix/files/postfix-install.patch @@ -0,0 +1,26 @@ +Index: postfix-3.2.2/postfix-install +=================================================================== +--- postfix-3.2.2.orig/postfix-install ++++ postfix-3.2.2/postfix-install +@@ -843,7 +843,7 @@ IFS="$BACKUP_IFS" + # the wrong place when Postfix is being upgraded. + + case "$mail_version" in +-"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1 ++"") mail_version="`$POSTCONF -c $CONFIG_DIRECTORY -dhx mail_version`" || exit 1 + esac + + # Undo MAIL_VERSION expansion at the end of a parameter value. If +Index: postfix-3.2.2/Makefile.in +=================================================================== +--- postfix-3.2.2.orig/Makefile.in ++++ postfix-3.2.2/Makefile.in +@@ -20,7 +20,7 @@ META = meta/main.cf.proto meta/master.cf + EXPAND = sed -e "s;\$${LIB_PREFIX};$(LIB_PREFIX);" \ + -e "s;\$${LIB_SUFFIX};$(LIB_SUFFIX);" + SHLIB_DIR_OVERRIDE = \ +- $${shlib_directory:-`$(SHLIB_ENV) bin/postconf -dhx shlib_directory`} ++ $${shlib_directory:-`$(SHLIB_ENV) $(POSTCONF) -dhx shlib_directory`} + + default: update + diff --git a/meta-networking/recipes-daemons/postfix/files/postfix.service b/meta-networking/recipes-daemons/postfix/files/postfix.service index 02ea640b25e..3a9a0a18135 100644 --- a/meta-networking/recipes-daemons/postfix/files/postfix.service +++ b/meta-networking/recipes-daemons/postfix/files/postfix.service @@ -6,6 +6,7 @@ Conflicts=sendmail.service exim.service [Service] Type=forking PIDFile=@LOCALSTATEDIR@/spool/postfix/pid/master.pid +ExecStartPre=-@SBINDIR@/check_hostname.sh ExecStartPre=-@LIBEXECDIR@/aliasesdb ExecStart=@SBINDIR@/postfix start ExecReload=@SBINDIR@/postfix reload diff --git a/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-networking/recipes-daemons/postfix/postfix.inc index eb1c54733b8..a588bd34767 100644 --- a/meta-networking/recipes-daemons/postfix/postfix.inc +++ b/meta-networking/recipes-daemons/postfix/postfix.inc @@ -5,12 +5,12 @@ Postfix attempts to be fast, easy to administer, and secure. The outsidei \ has a definite Sendmail-ish flavor, but the inside is completely different." HOMEPAGE= "http://www.postfix.org" -SECTION = "console/network" -DEPENDS = "virtual/db libpcre openssl postfix-native \ - ${@base_contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \ - ${@base_contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \ +SECTION = "mail" +DEPENDS = "virtual/db icu libpcre openssl postfix-native \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \ " -DEPENDS_virtclass-native = "virtual/db-native openssl-native libpcre-native" +DEPENDS_class-native = "virtual/db-native icu-native openssl-native libpcre-native" LICENSE = "IPL-1.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=64375f37431336ea1b1b3005fe3fa354" @@ -23,10 +23,13 @@ SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV file://internal_recipient \ file://postfix.service \ file://aliasesdb \ + file://check_hostname.sh \ " S = "${WORKDIR}/postfix-${PV}" +CLEANBROKEN = "1" + BBCLASSEXTEND = "native" inherit update-rc.d useradd update-alternatives systemd @@ -36,9 +39,9 @@ INITSCRIPT_PARAMS = "start 58 3 4 5 . stop 13 0 1 6 ." USERADD_PACKAGES = "${PN}" USERADD_PARAM_${PN} = \ "-d /var/spool/postfix -r -g postfix --shell /bin/false postfix; \ - -d /var/spool/vmail -r -u 5000 -g vmail --shell /bin/false vmail \ + -d /var/spool/vmail -r -g vmail --shell /bin/false vmail \ " -GROUPADD_PARAM_${PN} = "--system postfix;--system postdrop;-g 5000 --system vmail" +GROUPADD_PARAM_${PN} = "--system postfix;--system postdrop;--system vmail" export SYSLIBS = "${LDFLAGS}" @@ -49,28 +52,32 @@ export SYSLIBS = "${LDFLAGS}" # ldap support export CCARGS-ldap = "\ - ${@base_contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}" + ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}" export AUXLIBS-ldap = "\ - ${@base_contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}" + ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}" # no native openldap -export CCARGS-ldap_virtclass-native = "" -export AUXLIBS-ldap_virtclass-native = "" +export CCARGS-ldap_class-native = "" +export AUXLIBS-ldap_class-native = "" + +export CCARGS-nonis_libc-musl = "-DNO_NIS" +export CCARGS-nonis = "" # SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH # current openldap didn't enable SASL export CCARGS-sasl = "\ - ${@base_contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I=/usr/include/sasl', '', d)}" + ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${STAGING_INCDIR}/sasl', '', d)}" export AUXLIBS-sasl = "\ - ${@base_contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}" -export CCARGS-sasl_virtclass-native = "" -export AUXLIBS-sasl_virtclass-native = "" + ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}" +export CCARGS-sasl_class-native = "" +export AUXLIBS-sasl_class-native = "" # PCRE, TLS support default -export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS ${CCARGS-ldap} ${CCARGS-sasl}" +export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS -I${STAGING_INCDIR}/openssl ${CCARGS-ldap} ${CCARGS-sasl} ${CCARGS-nonis}" export AUXLIBS = "-lpcre -lssl -lcrypto ${AUXLIBS-sasl} ${AUXLIBS-ldap}" export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf" +export CCARGS-nonis_libc-musl = "-DNO_NIS" # OPT,DEBUG is aready in CFLAGS # ignore the OPTS="CC=$CC" in Makefile it will not use the CC=$CC $CCARGS EXTRA_OEMAKE += "OPT= DEBUG= OPTS= " @@ -119,7 +126,7 @@ do_compile () { oe_runmake } -do_install_prepend_virtclass-native() { +do_install_prepend_class-native() { export POSTCONF="bin/postconf" } @@ -140,8 +147,13 @@ do_install () { -non-interactive rm -rf ${D}${localstatedir}/spool/postfix mv ${D}${sysconfdir}/postfix/main.cf ${D}${sysconfdir}/postfix/sample-main.cf + install -m 755 ${S}/bin/smtp-sink ${D}/${sbindir}/ install -d ${D}${sysconfdir}/init.d install -m 644 ${WORKDIR}/main.cf_2.0 ${D}${sysconfdir}/postfix/main.cf + sed -i 's#@LIBEXECDIR@#${libexecdir}#' ${D}${sysconfdir}/postfix/main.cf + + install -m 755 ${WORKDIR}/check_hostname.sh ${D}${sbindir}/ + install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient @@ -156,8 +168,6 @@ do_install () { install -m 770 -d ${D}${localstatedir}/spool/postfix chown postfix:postfix ${D}${localstatedir}/spool/postfix - install -m 2755 -d ${D}${localstatedir}/spool/mail - chown postfix:nogroup ${D}${localstatedir}/spool/mail install -m 0755 -d ${D}${localstatedir}/lib/postfix chown postfix:nogroup ${D}${localstatedir}/lib/postfix install -m 0755 -d ${D}${localstatedir}/spool/postfix @@ -206,7 +216,7 @@ do_install_append_class-native() { do_install_append_class-target() { # Remove references to buildmachine paths in target makedefs.out - sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' ${D}/etc/postfix/makedefs.out + sed -i 's:-fdebug-prefix-map[^ ]*::g; s:--sysroot=${STAGING_DIR_TARGET}::g' ${D}/etc/postfix/makedefs.out } NATIVE_INSTALL_WORKS = "1" @@ -216,6 +226,11 @@ ALTERNATIVE_TARGET[sendmail] = "${sbindir}/sendmail.postfix" ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" ALTERNATIVE_PRIORITY = "120" +ALTERNATIVE_${PN}-doc += "mailq.1 newaliases.1 sendmail.1" +ALTERNATIVE_LINK_NAME[mailq.1] = "${mandir}/man1/mailq.1" +ALTERNATIVE_LINK_NAME[newaliases.1] = "${mandir}/man1/newaliases.1" +ALTERNATIVE_LINK_NAME[sendmail.1] = "${mandir}/man1/sendmail.1" + pkg_postinst_${PN} () { if [ "x$D" = "x" ]; then touch /etc/aliases @@ -230,7 +245,7 @@ pkg_postinst_${PN} () { touch $D/etc/postfix/virtual_alias postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias - if ${@'true' if 'linuxstdbase' in d.getVar('DISTROOVERRIDES') else 'false'}; then + if ${@'true' if 'linuxstdbase' in d.getVar('DISTROOVERRIDES', False) else 'false'}; then # /usr/lib/sendmial is required by LSB core test [ ! -L $D/usr/lib/sendmail ] && ln -sf ${sbindir}/sendmail $D/usr/lib/ fi diff --git a/meta-networking/recipes-daemons/postfix/postfix_2.11.1.bb b/meta-networking/recipes-daemons/postfix/postfix_2.11.1.bb deleted file mode 100644 index 8f237dc2ee7..00000000000 --- a/meta-networking/recipes-daemons/postfix/postfix_2.11.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -require postfix.inc - -SRC_URI += "file://postfix-add-db6-support.patch" - -SRC_URI[md5sum] = "56ac1f1a79737c4ac1e24535a122a4a6" -SRC_URI[sha256sum] = "487f98a73b95a5799409caf21ec065efea91c1dcdfb84c038a0e3a265d6489e2" diff --git a/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb b/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb new file mode 100644 index 00000000000..439ede9b65b --- /dev/null +++ b/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb @@ -0,0 +1,18 @@ +require postfix.inc + +SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \ + file://makedefs.patch \ + file://install.patch \ + file://main.cf_2.0 \ + file://postfix \ + file://internal_recipient \ + file://postfix.service \ + file://aliasesdb \ + file://check_hostname.sh \ + file://0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch \ + file://0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch \ + file://postfix-install.patch \ + file://icu-config.patch \ + " +SRC_URI[md5sum] = "aea073a9b0bea5bdb590460a270a4aa0" +SRC_URI[sha256sum] = "d06849418d119d09366997b2b481bb23f737629769b4e4a52da42fb3ad8b0576" diff --git a/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch b/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch index 19617a6bb71..9816d4d22a1 100644 --- a/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch +++ b/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch @@ -9,11 +9,11 @@ redefine PR_RUN_DIR as ${localstatedir}/run Signed-off-By: Armin Kuster -Index: proftpd-1.3.5/Make.rules.in +Index: proftpd-1.3.6/Make.rules.in =================================================================== ---- proftpd-1.3.5.orig/Make.rules.in -+++ proftpd-1.3.5/Make.rules.in -@@ -29,9 +29,9 @@ INSTALL=@INSTALL@ +--- proftpd-1.3.6.orig/Make.rules.in ++++ proftpd-1.3.6/Make.rules.in +@@ -30,9 +30,9 @@ INSTALL=@INSTALL@ INSTALL_STRIP=@INSTALL_STRIP@ INSTALL_USER=@install_user@ INSTALL_GROUP=@install_group@ @@ -26,10 +26,10 @@ Index: proftpd-1.3.5/Make.rules.in RM=rm -f SHELL=@CONFIG_SHELL@ -Index: proftpd-1.3.5/Makefile.in +Index: proftpd-1.3.6/Makefile.in =================================================================== ---- proftpd-1.3.5.orig/Makefile.in -+++ proftpd-1.3.5/Makefile.in +--- proftpd-1.3.6.orig/Makefile.in ++++ proftpd-1.3.6/Makefile.in @@ -105,7 +105,6 @@ check: proftpd$(EXEEXT) $(DESTDIR)$(localedir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(libdir) $(DESTDIR)$(pkgconfigdir) $(DESTDIR)$(libdir)/proftpd $(DESTDIR)$(libexecdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8: @if [ ! -d $@ ]; then \ @@ -60,11 +60,11 @@ Index: proftpd-1.3.5/Makefile.in $(top_srcdir)/sample-configurations/basic.conf \ $(DESTDIR)$(sysconfdir)/proftpd.conf ; \ fi -Index: proftpd-1.3.5/configure +Index: proftpd-1.3.6/configure =================================================================== ---- proftpd-1.3.5.orig/configure -+++ proftpd-1.3.5/configure -@@ -38255,7 +38255,7 @@ _ACEOF +--- proftpd-1.3.6.orig/configure ++++ proftpd-1.3.6/configure +@@ -41777,7 +41777,7 @@ _ACEOF cat >>confdefs.h <<_ACEOF @@ -72,9 +72,9 @@ Index: proftpd-1.3.5/configure +#define PR_RUN_DIR "`eval echo "${localstatedir}"/run/`" _ACEOF - cat >>confdefs.h <<_ACEOF -@@ -38263,7 +38263,7 @@ cat >>confdefs.h <<_ACEOF - _ACEOF + +@@ -41787,7 +41787,7 @@ _ACEOF + cat >>confdefs.h <<_ACEOF -#define PR_PID_FILE_PATH "`eval echo "${localstatedir}/proftpd.pid"`" @@ -82,25 +82,25 @@ Index: proftpd-1.3.5/configure _ACEOF -Index: proftpd-1.3.5/configure.in +Index: proftpd-1.3.6/configure.in =================================================================== ---- proftpd-1.3.5.orig/configure.in -+++ proftpd-1.3.5/configure.in -@@ -2971,8 +2971,8 @@ locale_dir="`eval echo ${locale_dir}`" - AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`") +--- proftpd-1.3.6.orig/configure.in ++++ proftpd-1.3.6/configure.in +@@ -3833,8 +3833,8 @@ locale_dir="`eval echo ${locale_dir}`" + AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`", [Define the locale directory]) - AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`") --AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`") --AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/proftpd.pid"`") -+AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/run/proftpd.conf"`") -+AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/run/proftpd.pid"`") + AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`", [Define the run directory]) +-AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`", [Define the configuration file path]) +-AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/proftpd.pid"`", [Define the PID file path]) ++AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/run/proftpd.conf"`", [Define the configuration file path]) ++AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/run/proftpd.pid"`", [Define the PID file path]) prefix="$pr_saved_prefix" exec_prefix="$pr_saved_exec_prefix" -Index: proftpd-1.3.5/lib/libcap/Makefile +Index: proftpd-1.3.6/lib/libcap/Makefile =================================================================== ---- proftpd-1.3.5.orig/lib/libcap/Makefile -+++ proftpd-1.3.5/lib/libcap/Makefile +--- proftpd-1.3.6.orig/lib/libcap/Makefile ++++ proftpd-1.3.6/lib/libcap/Makefile @@ -26,7 +26,7 @@ OBJS=$(addsuffix .o, $(FILES)) all: $(LIBNAME) diff --git a/meta-networking/recipes-daemons/proftpd/files/proftpd.service b/meta-networking/recipes-daemons/proftpd/files/proftpd.service index ba97f8e1cac..18764385ef3 100644 --- a/meta-networking/recipes-daemons/proftpd/files/proftpd.service +++ b/meta-networking/recipes-daemons/proftpd/files/proftpd.service @@ -1,7 +1,12 @@ [Unit] Description=proftpd Daemon +After=network.target [Service] Type=forking -ExecStart=-@SBINDIR@/proftpd -c @SYSCONFDIR@/proftpd.conf +ExecStart=@SBINDIR@/proftpd -c @SYSCONFDIR@/proftpd.conf StandardError=syslog + +[Install] +WantedBy=default.target + diff --git a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5.bb b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5.bb deleted file mode 100644 index 13c9410012c..00000000000 --- a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5.bb +++ /dev/null @@ -1,113 +0,0 @@ -SUMMARY = "Secure and configurable FTP server" -SECTION = "console/network" -HOMEPAGE = "http://www.proftpd.org" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=fb0d1484d11915fa88a6a7702f1dc184" - -SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz \ - file://basic.conf.patch \ - file://proftpd-basic.init \ - file://default \ - file://close-RequireValidShell-check.patch \ - file://contrib.patch \ - file://build_fixup.patch \ - file://proftpd.service \ - " - -SRC_URI[md5sum] = "aff1bff40e675244d72c4667f203e5bb" -SRC_URI[sha256sum] = "c10316fb003bd25eccbc08c77dd9057e053693e6527ffa2ea2cc4e08ccb87715" - -inherit autotools-brokensep useradd update-rc.d systemd - -PACKAGECONFIG ??= "sia shadow" -PACKAGECONFIG += " ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" -PACKAGECONFIG += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" - -PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses, --disable-curses --disable-ncurses, ncurses" -PACKAGECONFIG[openssl] = "--enable-openssl, --disable-openssl, openssl, openssl" -PACKAGECONFIG[pam] = "--enable-auth-pam, --disable-auth-pam, libpam, libpam" -PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6" -PACKAGECONFIG[shadow] = "--enable-shadow, --disable-shadow" -PACKAGECONFIG[pcre] = "--enable-pcre, --disable-pcre, libpcre " - -# enable POSIX.1e capabilities -PACKAGECONFIG[cap] = "--enable-cap, --disable-cap, libcap, libcap" - -#enable support for POSIX ACLs -PACKAGECONFIG[acl] = "--enable-facl, --disable-facl" - -#enable proftpd controls via ftpdct -PACKAGECONFIG[ctrls] = "--enable-ctrls, --disable-crtls" - -#prevent proftpd from using its bundled getopt implementation. -PACKAGECONFIG[getopt] = "--with-getopt, --without-getopt" - -#do not strip debugging symbols from installed code -PACKAGECONFIG[strip] = "--enable-strip, --disable-strip" - -#enable SIA authentication support (Tru64) -PACKAGECONFIG[sia] = "--enable-sia, --disable-sia" -PACKAGECONFIG[sendfile] = "-enable-sendfile, --disable-sendfile" - -#enable Native Language Support (NLS) -PACKAGECONFIG[nls] = "--enable-nls, --disable-nls" - -#add mod_dso to core modules -PACKAGECONFIG[dso] = "--enable-dso, --disable-dso" -PACKAGECONFIG[largefile] = "--enable-largefile, --disable-largefile" - -#omit mod_auth_file from core modules -PACKAGECONFIG[auth] = "--enable-auth-file, --disable-auth-file" - - -# proftpd uses libltdl which currently makes configuring using -# autotools.bbclass a pain... -do_configure () { - oe_runconf -} - -FTPUSER = "ftp" -FTPGROUP = "ftp" - -do_install () { - oe_runmake DESTDIR=${D} install - rmdir ${D}${libdir}/proftpd ${D}${datadir}/locale - [ -d ${D}${libexecdir} ] && rmdir ${D}${libexecdir} - sed -i '/ *User[ \t]*/s/ftp/${FTPUSER}/' ${D}${sysconfdir}/proftpd.conf - sed -i '/ *Group[ \t]*/s/ftp/${FTPGROUP}/' ${D}${sysconfdir}/proftpd.conf - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/proftpd-basic.init ${D}${sysconfdir}/init.d/proftpd - sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/proftpd - sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/proftpd - sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/proftpd - sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/proftpd - - install -d ${D}${sysconfdir}/default - install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/proftpd - - # create the pub directory - mkdir -p ${D}/home/${FTPUSER}/pub/ - chown -R ${FTPUSER}:${FTPGROUP} ${D}/home/${FTPUSER}/pub - - install -d ${D}/${systemd_unitdir}/system - install -m 644 ${WORKDIR}/proftpd.service ${D}/${systemd_unitdir}/system - sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ - -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - -e 's,@SBINDIR@,${sbindir},g' \ - -i ${D}${systemd_unitdir}/system/*.service -} - -INITSCRIPT_NAME = "proftpd" -INITSCRIPT_PARAM = "defaults 85 15" - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "proftpd.service" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "--system ${FTPGROUP}" -USERADD_PARAM_${PN} = "--system -g ${FTPGROUP} --home-dir /var/lib/${FTPUSER} --no-create-home \ - --shell /bin/false ${FTPUSER}" - -FILES_${PN} += "/home/${FTPUSER}" - -RDEPENDS_${PN} += "perl" diff --git a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb new file mode 100644 index 00000000000..409947265d4 --- /dev/null +++ b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb @@ -0,0 +1,138 @@ +SUMMARY = "Secure and configurable FTP server" +SECTION = "net" +HOMEPAGE = "http://www.proftpd.org" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb0d1484d11915fa88a6a7702f1dc184" + +SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz \ + file://basic.conf.patch \ + file://proftpd-basic.init \ + file://default \ + file://close-RequireValidShell-check.patch \ + file://contrib.patch \ + file://build_fixup.patch \ + file://proftpd.service \ + " +iSRC_URI[md5sum] = "13270911c42aac842435f18205546a1b" +SRC_URI[sha256sum] = "91ef74b143495d5ff97c4d4770c6804072a8c8eb1ad1ecc8cc541b40e152ecaf" + +inherit autotools-brokensep useradd update-rc.d systemd + +PACKAGECONFIG ??= "shadow \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \ + " + +PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses, --disable-curses --disable-ncurses, ncurses" +PACKAGECONFIG[openssl] = "--enable-openssl, --disable-openssl, openssl, openssl" +PACKAGECONFIG[pam] = "--enable-auth-pam, --disable-auth-pam, libpam, libpam" +PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6" +PACKAGECONFIG[shadow] = "--enable-shadow, --disable-shadow" +PACKAGECONFIG[pcre] = "--enable-pcre, --disable-pcre, libpcre " + +# enable POSIX.1e capabilities +PACKAGECONFIG[cap] = "--enable-cap, --disable-cap, libcap, libcap" + +#enable support for POSIX ACLs +PACKAGECONFIG[acl] = "--enable-facl, --disable-facl" + +#enable proftpd controls via ftpdct +PACKAGECONFIG[ctrls] = "--enable-ctrls, --disable-crtls" + +#prevent proftpd from using its bundled getopt implementation. +PACKAGECONFIG[getopt] = "--with-getopt, --without-getopt" + +#do not strip debugging symbols from installed code +PACKAGECONFIG[strip] = "--enable-strip, --disable-strip" + +#enable SIA authentication support (Tru64) +PACKAGECONFIG[sia] = "--enable-sia, --disable-sia" +PACKAGECONFIG[sendfile] = "-enable-sendfile, --disable-sendfile" + +#enable Native Language Support (NLS) +PACKAGECONFIG[nls] = "--enable-nls, --disable-nls" + +#add mod_dso to core modules +PACKAGECONFIG[dso] = "--enable-dso, --disable-dso" +PACKAGECONFIG[largefile] = "--enable-largefile, --disable-largefile" + +#omit mod_auth_file from core modules +PACKAGECONFIG[auth] = "--enable-auth-file, --disable-auth-file" + + +# proftpd uses libltdl which currently makes configuring using +# autotools.bbclass a pain... +do_configure () { + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + oe_runconf + cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S}/libtool +} + +FTPUSER = "ftp" +FTPGROUP = "ftp" + +do_install () { + oe_runmake DESTDIR=${D} install + rmdir ${D}${libdir}/proftpd ${D}${datadir}/locale + [ -d ${D}${libexecdir} ] && rmdir ${D}${libexecdir} + sed -i '/ *User[ \t]*/s/ftp/${FTPUSER}/' ${D}${sysconfdir}/proftpd.conf + sed -i '/ *Group[ \t]*/s/ftp/${FTPGROUP}/' ${D}${sysconfdir}/proftpd.conf + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/proftpd-basic.init ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/proftpd + + install -d ${D}${sysconfdir}/default + install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/proftpd + + # create the pub directory + mkdir -p ${D}/home/${FTPUSER}/pub/ + chown -R ${FTPUSER}:${FTPGROUP} ${D}/home/${FTPUSER}/pub + if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then + # install proftpd pam configuration + install -d ${D}${sysconfdir}/pam.d + install -m 644 ${S}/contrib/dist/rpm/ftp.pamd ${D}${sysconfdir}/pam.d/proftpd + sed -i '/ftpusers/d' ${D}${sysconfdir}/pam.d/proftpd + # specify the user Authentication config + sed -i '/^MaxInstances/a\AuthPAM on\nAuthPAMConfig proftpd' \ + ${D}${sysconfdir}/proftpd.conf + fi + + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/proftpd.service ${D}/${systemd_unitdir}/system + sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -i ${D}${systemd_unitdir}/system/*.service + + sed -e 's|--sysroot=${STAGING_DIR_HOST}||g' \ + -e 's|${STAGING_DIR_NATIVE}||g' \ + -e 's|-fdebug-prefix-map=[^ ]*||g' \ + -i ${D}/${bindir}/prxs + + # ftpmail perl script, which reads the proftpd log file and sends + # automatic email notifications once an upload finishs, + # depends on an old perl Mail::Sendmail + # The Mail::Sendmail has not been maintained for almost 10 years + # Other distribution not ship with ftpmail, so do the same to + # avoid confusion about having it fails to run + rm -rf ${D}${bindir}/ftpmail + rm -rf ${D}${mandir}/man1/ftpmail.1 +} + +INITSCRIPT_NAME = "proftpd" +INITSCRIPT_PARAM = "defaults 85 15" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "proftpd.service" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system ${FTPGROUP}" +USERADD_PARAM_${PN} = "--system -g ${FTPGROUP} --home-dir /var/lib/${FTPUSER} --no-create-home \ + --shell /bin/false ${FTPUSER}" + +FILES_${PN} += "/home/${FTPUSER}" + +RDEPENDS_${PN} += "perl" diff --git a/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-add-dpaa-etsec-support.patch b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-add-dpaa-etsec-support.patch deleted file mode 100644 index abb39331062..00000000000 --- a/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-add-dpaa-etsec-support.patch +++ /dev/null @@ -1,621 +0,0 @@ -Add FSL QorIQ DPAA and eTSEC support - -This patch is for Freescale QorIQ DPAA and eTSEC which support 1588 hardware -assist module, and mainly uses SO_TIMESTAMPING API for HW timestamp and PHC -API. - -Signed-off-by: Lu Yangbo -Upstream-Status: Submitted [http://sourceforge.net/p/ptpd/patches/56/] - -diff --git a/src/bmc.c b/src/bmc.c -index f4c74bd..925daba 100644 ---- a/src/bmc.c -+++ b/src/bmc.c -@@ -249,6 +249,7 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim - ptpClock->timePropertiesDS.ptpTimescale = IS_SET(header->flagField1, PTPT); - ptpClock->timePropertiesDS.timeSource = announce->timeSource; - -+#ifndef FSL_1588 - #if defined(MOD_TAI) && NTP_API == 4 - /* - * update kernel TAI offset, but only if timescale is -@@ -261,6 +262,7 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim - INFO("Set kernel UTC offset to %d\n", ptpClock->timePropertiesDS.currentUtcOffset); - } - #endif /* MOD_TAI */ -+#endif - - /* Leap second handling */ - -@@ -280,9 +282,11 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim - ptpClock->leapSecondPending = FALSE; - ptpClock->leapSecondInProgress = FALSE; - timerStop(LEAP_SECOND_PAUSE_TIMER, ptpClock->itimer); -+#ifndef FSL_1588 - #ifdef HAVE_SYS_TIMEX_H - unsetTimexFlags(STA_INS | STA_DEL,TRUE); - #endif /* HAVE_SYS_TIMEX_H */ -+#endif /* FSL_1588 */ - } - - /* -@@ -295,6 +299,7 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim - ((!previousLeap59 && ptpClock->timePropertiesDS.leap59) || - (!previousLeap61 && ptpClock->timePropertiesDS.leap61)))) { - #ifdef HAVE_SYS_TIMEX_H -+#ifndef FSL_1588 - WARNING("Leap second pending! Setting kernel to %s " - "one second at midnight\n", - ptpClock->timePropertiesDS.leap61 ? "add" : "delete"); -@@ -304,6 +309,7 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim - setTimexFlags(ptpClock->timePropertiesDS.leap61 ? STA_INS : STA_DEL, - FALSE); - } -+#endif - #else - WARNING("Leap second pending! No kernel leap second " - "API support - expect a clock jump at " -diff --git a/src/dep/net.c b/src/dep/net.c -index 34d23ad..9075847 100644 ---- a/src/dep/net.c -+++ b/src/dep/net.c -@@ -85,6 +85,9 @@ - #include - #endif /* SO_TIMESTAMPING */ - -+#if defined(FSL_1588) -+char fsl_1588_if_name[IFACE_NAME_LENGTH]; -+#endif - /** - * shutdown the IPv4 multicast for specific address - * -@@ -461,6 +464,9 @@ testInterface(char * ifaceName, RunTimeOpts* rtOpts) - if(getInterfaceInfo(ifaceName, &info) != 1) - return FALSE; - -+#if defined(FSL_1588) -+ memcpy(fsl_1588_if_name, ifaceName, IFACE_NAME_LENGTH); -+#endif - switch(rtOpts->transport) { - - case UDP_IPV4: -@@ -666,6 +672,27 @@ end: - } - #endif /* SO_TIMESTAMPING */ - -+#if defined(FSL_1588) -+/* select HWTSTAMP_TX_ON or HWTSTAMP_TX_OFF */ -+void hwtstamp_tx_ctl(NetPath *netPath, Boolean enable) -+{ -+ struct ifreq hwtstamp; -+ struct hwtstamp_config hwconfig; -+ -+ memset(&hwtstamp, 0, sizeof(hwtstamp)); -+ strncpy(hwtstamp.ifr_name, fsl_1588_if_name, sizeof(hwtstamp.ifr_name)); -+ hwtstamp.ifr_data = (void *)&hwconfig; -+ memset(&hwconfig, 0, sizeof(hwconfig)); -+ hwconfig.tx_type = -+ enable ? -+ HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF; -+ hwconfig.rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_SYNC; -+ if (ioctl(netPath->eventSock, SIOCSHWTSTAMP, &hwtstamp) < 0 -+ || ioctl(netPath->generalSock, SIOCSHWTSTAMP, &hwtstamp) < 0) -+ printf("error:hwtstamp_tx_ctl\n"); -+} -+#endif -+ - - /** - * Initialize timestamping of packets -@@ -682,10 +709,17 @@ netInitTimestamping(NetPath * netPath, RunTimeOpts * rtOpts) - Boolean result = TRUE; - #if defined(SO_TIMESTAMPING) && defined(SO_TIMESTAMPNS)/* Linux - current API */ - DBG("netInitTimestamping: trying to use SO_TIMESTAMPING\n"); -+#if defined(FSL_1588) -+ val = SOF_TIMESTAMPING_TX_HARDWARE | -+ SOF_TIMESTAMPING_RX_HARDWARE | -+ SOF_TIMESTAMPING_RAW_HARDWARE; -+#else - val = SOF_TIMESTAMPING_TX_SOFTWARE | - SOF_TIMESTAMPING_RX_SOFTWARE | - SOF_TIMESTAMPING_SOFTWARE; -+#endif - -+#ifndef FSL_1588 - /* unless compiled with PTPD_EXPERIMENTAL, check if we support the desired tstamp capabilities */ - #ifndef PTPD_EXPERIMENTAL - #ifdef ETHTOOL_GET_TS_INFO -@@ -716,6 +750,7 @@ netInitTimestamping(NetPath * netPath, RunTimeOpts * rtOpts) - val = 1; - #endif /* ETHTOOL_GET_TS_INFO */ - #endif /* PTPD_EXPERIMENTAL */ -+#endif /* FSL_1588 */ - - if(val == 1) { - if (setsockopt(netPath->eventSock, SOL_SOCKET, SO_TIMESTAMPNS, &val, sizeof(int)) < 0) { -@@ -902,6 +937,9 @@ netInit(NetPath * netPath, RunTimeOpts * rtOpts, PtpClock * ptpClock) - - DBG("Listening on IP: %s\n",inet_ntoa( - ((struct sockaddr_in*)&(netPath->interfaceInfo.afAddress))->sin_addr)); -+#if defined(FSL_1588) -+ hwtstamp_tx_ctl(&ptpClock->netPath, FALSE);/* HWTSTAMP_TX_OFF */ -+#endif - - #ifdef PTPD_PCAP - if (rtOpts->pcap == TRUE) { -@@ -1319,7 +1357,11 @@ netRecvEvent(Octet * buf, TimeInternal * time, NetPath * netPath, int flags) - #if defined(SO_TIMESTAMPING) && defined(SO_TIMESTAMPNS) - if(cmsg->cmsg_type == SO_TIMESTAMPING || - cmsg->cmsg_type == SO_TIMESTAMPNS) { -+#if defined(FSL_1588) -+ ts = (struct timespec *)CMSG_DATA(cmsg) + 2; -+#else - ts = (struct timespec *)CMSG_DATA(cmsg); -+#endif - time->seconds = ts->tv_sec; - time->nanoseconds = ts->tv_nsec; - timestampValid = TRUE; -@@ -1520,6 +1562,9 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, - ssize_t ret; - struct sockaddr_in addr; - -+#if defined(FSL_1588) -+ hwtstamp_tx_ctl(netPath, TRUE);/* HWTSTAMP_TX_ON */ -+#endif - addr.sin_family = AF_INET; - addr.sin_port = htons(PTP_EVENT_PORT); - -@@ -1559,6 +1604,9 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, - DBG("Error sending unicast event message\n"); - else - netPath->sentPackets++; -+#if defined(FSL_1588) -+ usleep(100); -+#endif - #ifndef SO_TIMESTAMPING - /* - * Need to forcibly loop back the packet since -@@ -1574,10 +1622,14 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, - #else - if(!netPath->txTimestampFailure) { - if(!getTxTimestamp(netPath, tim)) { -+#if defined(FSL_1588) -+ printf("getTxTimestamp: get tx timestamp error\n"); -+#else - netPath->txTimestampFailure = TRUE; - if (tim) { - clearTime(tim); - } -+#endif - } - } - -@@ -1609,9 +1661,15 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, - DBG("Error sending multicast event message\n"); - else - netPath->sentPackets++; -+#if defined(FSL_1588) -+ usleep(100); -+#endif - #ifdef SO_TIMESTAMPING - if(!netPath->txTimestampFailure) { - if(!getTxTimestamp(netPath, tim)) { -+#if defined(FSL_1588) -+ printf("getTxTimestamp: get tx timestamp error\n"); -+#else - if (tim) { - clearTime(tim); - } -@@ -1620,6 +1678,7 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, - - /* Try re-enabling MULTICAST_LOOP */ - netSetMulticastLoopback(netPath, TRUE); -+#endif - } - } - #endif /* SO_TIMESTAMPING */ -@@ -1638,6 +1697,9 @@ netSendGeneral(Octet * buf, UInteger16 length, NetPath * netPath, - ssize_t ret; - struct sockaddr_in addr; - -+#if defined(FSL_1588) -+ hwtstamp_tx_ctl(netPath, TRUE);/* HWTSTAMP_TX_ON */ -+#endif - addr.sin_family = AF_INET; - addr.sin_port = htons(PTP_GENERAL_PORT); - -@@ -1707,6 +1769,9 @@ netSendPeerGeneral(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpt - ssize_t ret; - struct sockaddr_in addr; - -+#if defined(FSL_1588) -+ hwtstamp_tx_ctl(netPath, TRUE);/* HWTSTAMP_TX_ON */ -+#endif - addr.sin_family = AF_INET; - addr.sin_port = htons(PTP_GENERAL_PORT); - -@@ -1762,6 +1827,9 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts - ssize_t ret; - struct sockaddr_in addr; - -+#if defined(FSL_1588) -+ hwtstamp_tx_ctl(netPath, TRUE);/* HWTSTAMP_TX_ON */ -+#endif - addr.sin_family = AF_INET; - addr.sin_port = htons(PTP_EVENT_PORT); - -@@ -1788,6 +1856,9 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts - DBG("Error sending unicast peer event message\n"); - else - netPath->sentPackets++; -+#if defined(FSL_1588) -+ usleep(100); -+#endif - - #ifndef SO_TIMESTAMPING - /* -@@ -1804,10 +1875,14 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts - #else - if(!netPath->txTimestampFailure) { - if(!getTxTimestamp(netPath, tim)) { -+#if defined(FSL_1588) -+ printf("getTxTimestamp: get tx timestamp error\n"); -+#else - netPath->txTimestampFailure = TRUE; - if (tim) { - clearTime(tim); - } -+#endif - } - } - -@@ -1839,9 +1914,15 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts - DBG("Error sending multicast peer event message\n"); - else - netPath->sentPackets++; -+#if defined(FSL_1588) -+ usleep(100); -+#endif - #ifdef SO_TIMESTAMPING - if(!netPath->txTimestampFailure) { - if(!getTxTimestamp(netPath, tim)) { -+#if defined(FSL_1588) -+ printf("getTxTimestamp: get tx timestamp error\n"); -+#else - if (tim) { - clearTime(tim); - } -@@ -1850,6 +1931,7 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts - - /* Try re-enabling MULTICAST_LOOP */ - netSetMulticastLoopback(netPath, TRUE); -+#endif - } - } - #endif /* SO_TIMESTAMPING */ -diff --git a/src/dep/ntpengine/ntpdcontrol.c b/src/dep/ntpengine/ntpdcontrol.c -index d773284..e84af9e 100644 ---- a/src/dep/ntpengine/ntpdcontrol.c -+++ b/src/dep/ntpengine/ntpdcontrol.c -@@ -170,6 +170,15 @@ get_systime( - { - double dtemp; - -+#if defined(FSL_1588) -+ struct timespec tp; -+ clock_gettime(clkid, &tp); -+ tv.tv_sec = tp.tv_sec; -+ tv.tv_usec = tp.tv_nsec / 1000; -+ -+ now->l_i = tv.tv_sec + JAN_1970; -+ dtemp = tv.tv_usec / 1e6; -+#else /* FSL_1588 */ - #if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_GETCLOCK) - struct timespec ts; /* seconds and nanoseconds */ - -@@ -195,6 +204,7 @@ get_systime( - dtemp = tv.tv_usec / 1e6; - - #endif /* HAVE_CLOCK_GETTIME || HAVE_GETCLOCK */ -+#endif /* FSL_1588 */ - - /* - * Renormalize to seconds past 1900 and fraction. -diff --git a/src/dep/ptpd_dep.h b/src/dep/ptpd_dep.h -index 8778988..03ae642 100644 ---- a/src/dep/ptpd_dep.h -+++ b/src/dep/ptpd_dep.h -@@ -14,6 +14,7 @@ - #define PTPD_DBGV - #endif - -+#define FSL_1588 1 - /** \name System messages*/ - /**\{*/ - -@@ -280,6 +281,11 @@ UInteger16 msgPackManagementResponse(Octet * buf,MsgHeader*,MsgManagement*,PtpCl - * -Init network stuff, send and receive datas*/ - /**\{*/ - -+#if defined(FSL_1588) -+extern char fsl_1588_if_name[IFACE_NAME_LENGTH]; -+/* select HWTSTAMP_TX_ON or HWTSTAMP_TX_OFF */ -+void hwtstamp_tx_ctl(NetPath *netPath, Boolean enable); -+#endif - Boolean testInterface(char* ifaceName, RunTimeOpts* rtOpts); - Boolean netInit(NetPath*,RunTimeOpts*,PtpClock*); - Boolean netShutdown(NetPath*); -@@ -357,6 +363,10 @@ void restartLogging(RunTimeOpts* rtOpts); - void logStatistics(RunTimeOpts *rtOpts, PtpClock *ptpClock); - void displayStatus(PtpClock *ptpClock, const char *prefixMessage); - void displayPortIdentity(PortIdentity *port, const char *prefixMessage); -+#if defined(FSL_1588) -+clockid_t get_clockid(int fd); -+int clock_adjtime(clockid_t id, struct timex *tx); -+#endif - Boolean nanoSleep(TimeInternal*); - void getTime(TimeInternal*); - void setTime(TimeInternal*); -@@ -378,12 +388,15 @@ void adjTime(Integer32); - void adjFreq_wrapper(RunTimeOpts * rtOpts, PtpClock * ptpClock, double adj); - Boolean adjFreq(double); - double getAdjFreq(void); -+#ifndef FSL_1588 - void informClockSource(PtpClock* ptpClock); -+#endif - - /* Observed drift save / recovery functions */ - void restoreDrift(PtpClock * ptpClock, RunTimeOpts * rtOpts, Boolean quiet); - void saveDrift(PtpClock * ptpClock, RunTimeOpts * rtOpts, Boolean quiet); - -+#ifndef FSL_1588 - /* Helper function to manage ntpadjtime / adjtimex flags */ - void setTimexFlags(int flags, Boolean quiet); - void unsetTimexFlags(int flags, Boolean quiet); -@@ -393,6 +406,7 @@ Boolean checkTimexFlags(int flags); - #if defined(MOD_TAI) && NTP_API == 4 - void setKernelUtcOffset(int utc_offset); - #endif /* MOD_TAI */ -+#endif - - #endif /* HAVE_SYS_TIMEX_H */ - -diff --git a/src/dep/servo.c b/src/dep/servo.c -index 06215e6..6651a20 100644 ---- a/src/dep/servo.c -+++ b/src/dep/servo.c -@@ -1013,10 +1013,12 @@ if(rtOpts->ntpOptions.enableEngine && rtOpts->panicModeNtp) { - /* Adjust the clock first -> the PI controller runs here */ - adjFreq_wrapper(rtOpts, ptpClock, runPIservo(&ptpClock->servo, ptpClock->offsetFromMaster.nanoseconds)); - warn_operator_fast_slewing(rtOpts, ptpClock, ptpClock->servo.observedDrift); -+#ifndef FSL_1588 - /* Unset STA_UNSYNC */ - unsetTimexFlags(STA_UNSYNC, TRUE); - /* "Tell" the clock about maxerror, esterror etc. */ - informClockSource(ptpClock); -+#endif /* FSL_1588 */ - #endif /* HAVE_SYS_TIMEX_H */ - } - -diff --git a/src/dep/sys.c b/src/dep/sys.c -index 52b274c..8551724 100644 ---- a/src/dep/sys.c -+++ b/src/dep/sys.c -@@ -344,7 +344,14 @@ int writeMessage(FILE* destination, int priority, const char * format, va_list a - * it also can cause problems in nested debug statements (which are solved by turning the signal - * handling synchronous, and not calling this function inside asycnhronous signal processing) - */ -+#if defined(FSL_1588) -+ struct timespec tp; -+ clock_gettime(clkid, &tp); -+ now.tv_sec = tp.tv_sec; -+ now.tv_usec = tp.tv_nsec / 1000; -+#else - gettimeofday(&now, 0); -+#endif - strftime(time_str, MAXTIMESTR, "%F %X", localtime((time_t*)&now.tv_sec)); - fprintf(destination, "%s.%06d ", time_str, (int)now.tv_usec ); - fprintf(destination,PTPD_PROGNAME"[%d].%s (%-9s ", -@@ -1174,13 +1181,33 @@ nanoSleep(TimeInternal * t) - return TRUE; - } - -+#if defined(FSL_1588) -+clockid_t get_clockid(int fd) -+{ -+#define CLOCKFD 3 -+#define FD_TO_CLOCKID(fd) ((~(clockid_t) (fd) << 3) | CLOCKFD) -+ return FD_TO_CLOCKID(fd); -+} -+ -+/* When glibc offers the syscall, this will go away. */ -+#include -+int clock_adjtime(clockid_t id, struct timex *tx) -+{ -+ return syscall(__NR_clock_adjtime, id, tx); -+} -+#endif -+ - void - getTime(TimeInternal * time) - { --#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) -+#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) || defined(FSL_1588) - - struct timespec tp; -+#if defined(FSL_1588) -+ if (clock_gettime(clkid, &tp) < 0) { -+#else - if (clock_gettime(CLOCK_REALTIME, &tp) < 0) { -+#endif - PERROR("clock_gettime() failed, exiting."); - exit(0); - } -@@ -1201,7 +1228,7 @@ void - setTime(TimeInternal * time) - { - --#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) -+#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) || defined(FSL_1588) - - struct timespec tp; - tp.tv_sec = time->seconds; -@@ -1215,9 +1242,13 @@ setTime(TimeInternal * time) - - #endif /* _POSIX_TIMERS */ - --#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) - -+#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) || defined(FSL_1588) -+#if defined(FSL_1588) -+ if (clock_settime(clkid, &tp) < 0) { -+#else - if (clock_settime(CLOCK_REALTIME, &tp) < 0) { -+#endif - PERROR("Could not set system time"); - return; - } -@@ -1595,7 +1626,11 @@ adjFreq(double adj) - #endif /* HAVE_STRUCT_TIMEX_TICK */ - DBG2(" adj is %.09f; t freq is %d (float: %.09f)\n", adj, t.freq, dFreq); - -+#if defined(FSL_1588) -+ return !clock_adjtime(clkid, &t); -+#else - return !adjtimex(&t); -+#endif - } - - -@@ -1609,7 +1644,11 @@ getAdjFreq(void) - - memset(&t, 0, sizeof(t)); - t.modes = 0; -+#if defined(FSL_1588) -+ clock_adjtime(clkid, &t); -+#else - adjtimex(&t); -+#endif - - dFreq = (t.freq + 0.0) / ((1<<16) / 1000.0); - -@@ -1764,6 +1803,7 @@ saveDrift(PtpClock * ptpClock, RunTimeOpts * rtOpts, Boolean quiet) - fclose(driftFP); - } - -+#ifndef FSL_1588 - void - setTimexFlags(int flags, Boolean quiet) - { -@@ -1922,6 +1962,7 @@ setKernelUtcOffset(int utc_offset) { - } - } - #endif /* MOD_TAI */ -+#endif /* FSL_1588 */ - - - #else -diff --git a/src/protocol.c b/src/protocol.c -index c73728b..90554f3 100644 ---- a/src/protocol.c -+++ b/src/protocol.c -@@ -615,6 +615,7 @@ if(!rtOpts->panicModeNtp || !ptpClock->panicMode) - timerStart(STATISTICS_UPDATE_TIMER, rtOpts->statsUpdateInterval, ptpClock->itimer); - #endif /* PTPD_STATISTICS */ - -+#ifndef FSL_1588 - #ifdef HAVE_SYS_TIMEX_H - - /* -@@ -632,6 +633,7 @@ if(!rtOpts->panicModeNtp || !ptpClock->panicMode) - unsetTimexFlags(STA_INS | STA_DEL, TRUE); - } - #endif /* HAVE_SYS_TIMEX_H */ -+#endif /* FSL_1588 */ - break; - default: - DBG("to unrecognized state\n"); -@@ -934,6 +936,7 @@ doState(RunTimeOpts *rtOpts, PtpClock *ptpClock) - WARNING("Leap second event imminent - pausing " - "clock and offset updates\n"); - ptpClock->leapSecondInProgress = TRUE; -+#ifndef FSL_1588 - #ifdef HAVE_SYS_TIMEX_H - if(!checkTimexFlags(ptpClock->timePropertiesDS.leap61 ? - STA_INS : STA_DEL)) { -@@ -944,6 +947,7 @@ doState(RunTimeOpts *rtOpts, PtpClock *ptpClock) - STA_INS : STA_DEL, FALSE); - } - #endif /* HAVE_SYS_TIMEX_H */ -+#endif /* FSL_1588 */ - /* - * start pause timer from now until [pause] after - * midnight, plus an extra second if inserting -@@ -1290,6 +1294,9 @@ handle(RunTimeOpts *rtOpts, PtpClock *ptpClock) - int ret; - ssize_t length = -1; - -+#if defined(FSL_1588) -+ hwtstamp_tx_ctl(&ptpClock->netPath, FALSE);/* HWTSTAMP_TX_OFF */ -+#endif - TimeInternal timeStamp = { 0, 0 }; - fd_set readfds; - -@@ -1437,9 +1444,11 @@ handleAnnounce(MsgHeader *header, ssize_t length, - ptpClock->leapSecondInProgress=FALSE; - ptpClock->timePropertiesDS.leap59 = FALSE; - ptpClock->timePropertiesDS.leap61 = FALSE; -+#ifndef FSL_1588 - #ifdef HAVE_SYS_TIMEX_H - unsetTimexFlags(STA_INS | STA_DEL, TRUE); - #endif /* HAVE_SYS_TIMEX_H */ -+#endif /* FSL_1588 */ - } - } - DBG2("___ Announce: received Announce from current Master, so reset the Announce timer\n"); -diff --git a/src/ptpd.c b/src/ptpd.c -index 3fad379..471b1e9 100644 ---- a/src/ptpd.c -+++ b/src/ptpd.c -@@ -78,6 +78,21 @@ main(int argc, char **argv) - PtpClock *ptpClock; - Integer16 ret; - -+#if defined(FSL_1588) -+ char device[] = "/dev/ptp0"; -+ int fd; -+ -+ fd = open(device, O_RDWR); -+ if (fd < 0) { -+ fprintf(stderr, "opening %s: %s\n", device, strerror(errno)); -+ return -1; -+ } -+ clkid = get_clockid(fd); -+ if (clkid == -1) { -+ fprintf(stderr, "failed to read clock id\n"); -+ return -1; -+ } -+#endif - startupInProgress = TRUE; - - /* Initialize run time options with command line arguments */ -diff --git a/src/ptpd.h b/src/ptpd.h -index 009f51c..6641649 100644 ---- a/src/ptpd.h -+++ b/src/ptpd.h -@@ -172,6 +172,15 @@ - #include - #endif /* HAVE_LINUX_RTC_H */ - -+#ifdef FSL_1588 -+#ifndef SO_TIMESTAMPING -+#define SO_TIMESTAMPING 37 -+#endif -+#ifndef HAVE_SYS_TIMEX_H -+#define HAVE_SYS_TIMEX_H 1 -+#endif -+clockid_t clkid; -+#endif - /** \name arith.c - * -Timing management and arithmetic*/ - /**\{*/ diff --git a/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1-rc2.bb b/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1-rc2.bb deleted file mode 100644 index 0dcfc1f7d64..00000000000 --- a/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1-rc2.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "The PTP daemon (PTPd)" -DESCRIPTION = "The PTP daemon (PTPd) implements the Precision Time protocol (PTP) as \ -defined by the relevant IEEE 1588 standard. PTP Version 1 implements IEEE-1588-2002, \ -and PTP Version 2 implements IEEE-1588-2008. PTP was developed to provide very precise \ -time coordination of LAN connected computers." -HOMEPAGE = "http://sourceforge.net/projects/ptpd" -SECTION = "network" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://README;md5=2452033fe374283f29579898663b1aa8" - -DEPENDS = "libpcap" - -inherit autotools systemd - -# return something like '1.2.3' or '1.2.3/rc1' -# -def get_sub(d): - parts = d.getVar('PV',True).split('-') - try: - return parts[0] + '/' + parts[1] - except: - return parts[0] - -SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${@get_sub(d)}/ptpd-${PV}.tar.gz \ - file://ptpd-add-dpaa-etsec-support.patch \ - file://ptpd-use-pkgconfig.patch \ - file://ptpd.service \ - file://ptpd.conf \ -" - -SRC_URI[md5sum] = "1ef2f1f2825080a865bbce0eb61246d4" -SRC_URI[sha256sum] = "2802aab758649bb222859dfcb62a5d282709ccb4d3f1df3f26f739cc091d0c8d" - -S = "${WORKDIR}/ptpd-${PV}" - -EXTRA_OEMAKE = "" - -EXTRA_OECONF += "--disable-snmp --with-pcap-config=pkg-config" - -do_install() { - install -d ${D}${bindir} ${D}${mandir}/man8 - install -m 0755 ${B}/src/ptpd2 ${D}${bindir} - install -m 0644 ${B}/src/ptpd2.8 ${D}${mandir}/man8 - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/ptpd.service ${D}${systemd_unitdir}/system - - sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/ptpd.service - sed -i -e 's#@BINDIR@#${bindir}#g' ${D}${systemd_unitdir}/system/ptpd.service - - install -d ${D}${sysconfdir}/default/ - install -m 0644 ${WORKDIR}/ptpd.conf ${D}${sysconfdir}/default/ptpd - fi -} - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "ptpd.service" -SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb b/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb new file mode 100644 index 00000000000..e136193205a --- /dev/null +++ b/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb @@ -0,0 +1,58 @@ +SUMMARY = "The PTP daemon (PTPd)" +DESCRIPTION = "The PTP daemon (PTPd) implements the Precision Time protocol (PTP) as \ +defined by the relevant IEEE 1588 standard. PTP Version 1 implements IEEE-1588-2002, \ +and PTP Version 2 implements IEEE-1588-2008. PTP was developed to provide very precise \ +time coordination of LAN connected computers." +HOMEPAGE = "http://sourceforge.net/projects/ptpd" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://README;md5=0733e1b3788ab2ebbc63bf33a020da1d" + +DEPENDS = "libpcap" + +inherit autotools pkgconfig systemd + +# return something like '1.2.3' or '1.2.3/rc1' +# +def get_sub(d): + parts = d.getVar('PV').split('-') + try: + return parts[0] + '/' + parts[1] + except: + return parts[0] + +SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${@get_sub(d)}/ptpd-${PV}.tar.gz \ + file://ptpd-use-pkgconfig.patch \ + file://ptpd.service \ + file://ptpd.conf \ +" + +SRC_URI[md5sum] = "253bab7ab51d969616ea811be1f132f3" +SRC_URI[sha256sum] = "0dbf54dd2c178bd9fe62481d2c37513ee36636d8bf137cfdad96891490cdbf93" + +S = "${WORKDIR}/ptpd-${PV}" + +EXTRA_OEMAKE = "" + +EXTRA_OECONF += "--disable-snmp --with-pcap-config=pkg-config" + +do_install() { + install -d ${D}${bindir} ${D}${mandir}/man8 + install -m 0755 ${B}/src/ptpd2 ${D}${bindir} + install -m 0644 ${B}/src/ptpd2.8 ${D}${mandir}/man8 + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/ptpd.service ${D}${systemd_unitdir}/system + + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/ptpd.service + sed -i -e 's#@BINDIR@#${bindir}#g' ${D}${systemd_unitdir}/system/ptpd.service + + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/ptpd.conf ${D}${sysconfdir}/default/ptpd + fi +} + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "ptpd.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch index 54088b0447b..76523fb9973 100644 --- a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch +++ b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch @@ -1,20 +1,21 @@ -From cffca7cb7c055f82ced316ddee90bb701b85b92d Mon Sep 17 00:00:00 2001 -From: Yauhen Kharuzhy -Date: Tue, 10 Jan 2012 19:15:25 +0300 +From 1bafadf2502334a3e972ff667061469316d0d2ca Mon Sep 17 00:00:00 2001 +From: Tudor Florea +Date: Tue, 4 Aug 2015 02:46:39 +0200 Subject: [PATCH] Remove hardcoded /usr/local includes from configure.ac Upstream-Status: Inappropriate [config] Signed-off-by: Yauhen Kharuzhy +Signed-off-by: Tudor Florea --- - configure.ac | 12 ------------ - 1 files changed, 0 insertions(+), 12 deletions(-) + configure.ac | 12 ------------ + 1 file changed, 12 deletions(-) diff --git a/configure.ac b/configure.ac -index ae00c08..9ba6d8d 100644 +index 6c78e8c..851d45d 100644 --- a/configure.ac +++ b/configure.ac -@@ -67,18 +67,6 @@ AC_ARG_VAR(PYTHON,local path to the python interpreter) +@@ -100,18 +100,6 @@ AC_ARG_VAR(PYTHON,local path to the python interpreter) python_possible_path="/usr/bin:/usr/local/bin:/bin:/opt/python/bin:/opt/python/usr/bin:/opt/python/usr/local/bin" AC_PATH_PROG(PYTHON,python,/usr/bin/env python,$python_possible_path) @@ -30,9 +31,9 @@ index ae00c08..9ba6d8d 100644 - LDFLAGS="$LDFLAGS -L/usr/local/lib" -fi - - if uname | fgrep SunOS > /dev/null 2> /dev/null ; then - CPPFLAGS="$CPPFLAGS -D_XPG4_2=1" - fi + CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2" + + dnl Checks for header files -- -1.7.7.3 +1.9.1 diff --git a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch index 5cbbc5fa7b2..4cb33bc5c8c 100644 --- a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch +++ b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch @@ -1,6 +1,6 @@ -From 45eb89d1a6fde65caaf2d6e1a5d527f1ae7beb9c Mon Sep 17 00:00:00 2001 -From: Paul Eggleton -Date: Mon, 3 Dec 2012 17:12:11 +0000 +From 0290bd6f4ceddff2c52dff833c9d31d24de7d0e1 Mon Sep 17 00:00:00 2001 +From: Tudor Florea +Date: Tue, 4 Aug 2015 03:07:01 +0200 Subject: [PATCH] Don't mess with CFLAGS and LDFLAGS when --with-minimal is specified We especially don't want stripping enabled. @@ -8,23 +8,24 @@ We especially don't want stripping enabled. Upstream-Status: Inappropriate [config] Signed-off-by: Paul Eggleton +Signed-off-by: Tudor Florea --- - configure.ac | 2 -- - 1 files changed, 0 insertions(+), 2 deletions(-) + configure.ac | 2 -- + 1 file changed, 2 deletions(-) diff --git a/configure.ac b/configure.ac -index 3d59409..6836c0e 100644 +index 851d45d..dc410a1 100644 --- a/configure.ac +++ b/configure.ac -@@ -413,8 +413,6 @@ AC_ARG_WITH(minimal, +@@ -423,8 +423,6 @@ AC_ARG_WITH(minimal, AC_DEFINE(NO_FTP_USERS) AC_DEFINE(WITHOUT_ASCII) AC_DEFINE(BORING_MODE) -- CFLAGS="$CFLAGS -Os -fomit-frame-pointer -fgcse -falign-functions=2 -falign-jumps=2 -fno-unroll-loops " +- CFLAGS="$CFLAGS -Os -fomit-frame-pointer -fno-unroll-loops " - LDFLAGS="$LDFLAGS -s " fi ]) AC_ARG_WITH(paranoidmsg, -- -1.7.1 +1.9.1 diff --git a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.36.bb b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.36.bb deleted file mode 100644 index 974e6b74b74..00000000000 --- a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.36.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "FTP Server with a strong focus on software security" -DESCRIPTION = "Pure-FTPd is a free (BSD license), secure, production-quality and standard-conformant FTP server." -HOMEPAGE = "http://www.pureftpd.org/project/pure-ftpd" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=ae9e161311a5a0768c333b537a40e332" - -DEPENDS = "libcap" - - -SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \ - file://0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch \ - file://nostrip.patch \ -" -SRC_URI[md5sum] = "bbcb48e8aa6ec1abff9775b89f84af91" -SRC_URI[sha256sum] = "90fb63b1a9d448076aa9f3e3c74b298965f98e03c824e9a4d241fffe8eb3a130" - -inherit autotools - -EXTRA_OECONF = "--with-minimal" diff --git a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb new file mode 100644 index 00000000000..c1f15040551 --- /dev/null +++ b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb @@ -0,0 +1,22 @@ +SUMMARY = "FTP Server with a strong focus on software security" +DESCRIPTION = "Pure-FTPd is a free (BSD license), secure, production-quality and standard-conformant FTP server." +HOMEPAGE = "http://www.pureftpd.org/project/pure-ftpd" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=90352fb2bfe17f4261687a0d6e09f489" + +DEPENDS = "libcap" + + +SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \ + file://0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch \ + file://nostrip.patch \ +" +SRC_URI[md5sum] = "4195af8f0e5ee2a798b1014071dae3a3" +SRC_URI[sha256sum] = "7be73a8e58b190a7054d2ae00c5e650cb9e091980420082d02ec3c3b68d8e7f9" + +inherit autotools + +EXTRA_OECONF = "--with-minimal" +PACKAGECONFIG[libsodium] ="ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=yes, \ + ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=no, libsodium" diff --git a/meta-networking/recipes-daemons/radvd/radvd.inc b/meta-networking/recipes-daemons/radvd/radvd.inc index 6b595b07f3f..bff693ca975 100644 --- a/meta-networking/recipes-daemons/radvd/radvd.inc +++ b/meta-networking/recipes-daemons/radvd/radvd.inc @@ -7,7 +7,7 @@ advertisements hosts can automatically configure their \ addresses and some other parameters. They also can \ choose a default router based on these advertisements." HOMEPAGE = "http://www.litech.org/radvd/" -SECTION = "console/network" +SECTION = "net" DEPENDS = "flex-native libdaemon" # License is BSD-Style (with advertising clause) but also has an additional 0th clause @@ -62,6 +62,6 @@ USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup pkg_postinst_${PN} () { if [ -z "$D" -a -x /etc/init.d/populate-volatile.sh ]; then - /etc/init.d/populate-volatile.sh update + /etc/init.d/populate-volatile.sh update fi } diff --git a/meta-networking/recipes-daemons/radvd/radvd_1.14.bb b/meta-networking/recipes-daemons/radvd/radvd_1.14.bb deleted file mode 100644 index bf572e3bb81..00000000000 --- a/meta-networking/recipes-daemons/radvd/radvd_1.14.bb +++ /dev/null @@ -1,6 +0,0 @@ - -require radvd.inc - -SRC_URI[md5sum] = "a257e05bd6a435ef948d3b407726d56f" -SRC_URI[sha256sum] = "3b16dd9ef3d6c8b889cdabfdb16c81db8bd61b0f1fc42f6acc52d3cf300c6d07" - diff --git a/meta-networking/recipes-daemons/radvd/radvd_2.17.bb b/meta-networking/recipes-daemons/radvd/radvd_2.17.bb new file mode 100644 index 00000000000..4baea01d07b --- /dev/null +++ b/meta-networking/recipes-daemons/radvd/radvd_2.17.bb @@ -0,0 +1,5 @@ + +require radvd.inc + +SRC_URI[md5sum] = "64ee3fdb5544bcddef1c6cd80d77fa0a" +SRC_URI[sha256sum] = "53757e7f2164899e1145482f1ae91829600a6e2f6fec29cfb3b350a3bb45bd5d" diff --git a/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch b/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch new file mode 100644 index 00000000000..48674c3c570 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch @@ -0,0 +1,48 @@ +From f9150a0dc092ab2cbd47ee428436b747dce323a9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 23 Apr 2017 10:28:28 -0700 +Subject: [PATCH] SquidNew: use noexcept instead of throw for C++11 compilers + +Fixes errors with gcc7 which is more pedantic about c++11 +conformance regarding deprecated features + +include/SquidNew.h:21:51: error: dynamic exception specifications are deprecated in C++11 +_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc) + ^~~~~ + +Signed-off-by: Khem Raj +--- + include/SquidNew.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/include/SquidNew.h b/include/SquidNew.h +index 39fcee0..c960347 100644 +--- a/include/SquidNew.h ++++ b/include/SquidNew.h +@@ -18,19 +18,19 @@ + */ + #include + +-_SQUID_EXTERNNEW_ void *operator new(size_t size) throw (std::bad_alloc) ++_SQUID_EXTERNNEW_ void *operator new(size_t size) noexcept(false) + { + return xmalloc(size); + } +-_SQUID_EXTERNNEW_ void operator delete (void *address) throw() ++_SQUID_EXTERNNEW_ void operator delete (void *address) noexcept(true) + { + xfree(address); + } +-_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc) ++_SQUID_EXTERNNEW_ void *operator new[] (size_t size) noexcept(false) + { + return xmalloc(size); + } +-_SQUID_EXTERNNEW_ void operator delete[] (void *address) throw() ++_SQUID_EXTERNNEW_ void operator delete[] (void *address) noexcept(true) + { + xfree(address); + } +-- +2.12.2 + diff --git a/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch b/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch new file mode 100644 index 00000000000..0c0a3aad102 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch @@ -0,0 +1,116 @@ +From 14d469bc82c758116aef7d549abd49c131b4170f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 22 Apr 2017 11:54:57 -0700 +Subject: [PATCH] configure: Check for -Wno-error=format-truncation compiler + option + +If this option is supported by compiler then disable it ( gcc7+) +Fixes +client.c:834:23: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1010 [-Werror=format-truncation=] + +Signed-off-by: Khem Raj +--- + configure.ac | 3 +- + m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 76 insertions(+), 1 deletion(-) + create mode 100644 m4/ax_check_compile_flag.m4 + +Index: squid-3.5.26/configure.ac +=================================================================== +--- squid-3.5.26.orig/configure.ac ++++ squid-3.5.26/configure.ac +@@ -26,6 +26,7 @@ m4_include([acinclude/pkg.m4]) + m4_include([acinclude/lib-checks.m4]) + m4_include([acinclude/ax_cxx_compile_stdcxx_11.m4]) + m4_include([acinclude/ax_cxx_0x_types.m4]) ++m4_include([acinclude/ax_check_compile_flag.m4]) + + HOSTCXX="$BUILD_CXX" + PRESET_CFLAGS="$CFLAGS" +@@ -44,6 +45,7 @@ AC_PROG_CXX + AC_LANG([C++]) + AC_CANONICAL_HOST + ++AX_CHECK_COMPILE_FLAG([-Werror=format-truncation],[CFLAGS="$CFLAGS -Wno-error=format-truncation" CXXFLAGS="$CXXFLAGS -Wno-error=format-truncation"]) + # Clang 3.2 on some CPUs requires -march-native to detect correctly. + # GCC 4.3+ can also produce faster executables when its used. + # But building inside a virtual machine environment has been found to +Index: squid-3.5.26/acinclude/ax_check_compile_flag.m4 +=================================================================== +--- /dev/null ++++ squid-3.5.26/acinclude/ax_check_compile_flag.m4 +@@ -0,0 +1,74 @@ ++# =========================================================================== ++# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) ++# ++# DESCRIPTION ++# ++# Check whether the given FLAG works with the current language's compiler ++# or gives an error. (Warnings, however, are ignored) ++# ++# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on ++# success/failure. ++# ++# If EXTRA-FLAGS is defined, it is added to the current language's default ++# flags (e.g. CFLAGS) when the check is done. The check is thus made with ++# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to ++# force the compiler to issue an error when a bad flag is given. ++# ++# INPUT gives an alternative input source to AC_COMPILE_IFELSE. ++# ++# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this ++# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Guido U. Draheim ++# Copyright (c) 2011 Maarten Bosmans ++# ++# This program is free software: you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation, either version 3 of the License, or (at your ++# option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see . ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++#serial 5 ++ ++AC_DEFUN([AX_CHECK_COMPILE_FLAG], ++[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF ++AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl ++AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ++ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS ++ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" ++ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], ++ [AS_VAR_SET(CACHEVAR,[yes])], ++ [AS_VAR_SET(CACHEVAR,[no])]) ++ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) ++AS_VAR_IF(CACHEVAR,yes, ++ [m4_default([$2], :)], ++ [m4_default([$3], :)]) ++AS_VAR_POPDEF([CACHEVAR])dnl ++])dnl AX_CHECK_COMPILE_FLAGS diff --git a/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch b/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch new file mode 100644 index 00000000000..082a1114b6d --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch @@ -0,0 +1,36 @@ +From a78f2f0feda8f92cb59afe8236bd90726908768f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 25 Jun 2017 00:59:24 -0700 +Subject: [PATCH] tools.cc: fixed unused-result warning + +fix +| ../../squid-3.5.26/src/tools.cc: In function 'void enter_suid()': +| ../../squid-3.5.26/src/tools.cc:616:11: error: ignoring return value of 'int setuid(__uid_t)', declared with attribute warn_unused_result [-Werror=unused-result] +| setuid(0); +| ~~~~~~^~~ + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + src/tools.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/tools.cc b/src/tools.cc +index 8137a03..843e266 100644 +--- a/src/tools.cc ++++ b/src/tools.cc +@@ -612,8 +612,8 @@ enter_suid(void) + if (setresuid((uid_t)-1, 0, (uid_t)-1) < 0) + debugs (21, 3, "enter_suid: setresuid failed: " << xstrerror ()); + #else +- +- setuid(0); ++ if (setuid(0) < 0) ++ debugs(50, DBG_IMPORTANT, "WARNING: no_suid: setuid(0): " << xstrerror()); + #endif + #if HAVE_PRCTL && defined(PR_SET_DUMPABLE) + /* Set Linux DUMPABLE flag */ +-- +2.13.1 + diff --git a/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch b/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch deleted file mode 100644 index 5f845bb4cdc..00000000000 --- a/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch +++ /dev/null @@ -1,31 +0,0 @@ -From faa212a4e0aaf442ff58fca50770a8fadc1038e3 Mon Sep 17 00:00:00 2001 -Message-Id: -From: Jim Somerville -Date: Thu, 17 Oct 2013 16:17:48 -0400 -Subject: [PATCH 1/1] Add default entry for cross compile - -Signed-off-by: Jim Somerville ---- - acinclude/krb5.m4 | 6 +++++- - 1 files changed, 5 insertions(+), 1 deletions(-) - -diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4 -index 5d9ac36..7a072a2 100644 ---- a/acinclude/krb5.m4 -+++ b/acinclude/krb5.m4 -@@ -82,7 +82,11 @@ main(void) - - return 0; - } --]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ]) -+]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ], -+[ -+ dnl Can't test in cross compiled env - so assume good -+ squid_cv_broken_heimdal_krb5_h=no -+]) - ], - [ - dnl Can't test in cross compiled env - so assume good --- -1.7.4.1 - diff --git a/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch b/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch new file mode 100644 index 00000000000..cc1ea78a55c --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/gcc7-fixes.patch @@ -0,0 +1,17 @@ +../../squid-3.5.26/src/DiskIO/DiskThreads/aiops.cc: In function 'void squidaio_init()': ../../squid-3.5.26/src/DiskIO/DiskThreads/DiskThreads.h:30:50: error: '*' in boolean context, suggest '&&' instead [-Werror=int-in-bool-context] #define NUMTHREADS (Config.cacheSwap.n_configured*16) + + +Upstream-Status: Backport +Index: squid-3.5.26/src/DiskIO/DiskThreads/aiops.cc +=================================================================== +--- squid-3.5.26.orig/src/DiskIO/DiskThreads/aiops.cc ++++ squid-3.5.26/src/DiskIO/DiskThreads/aiops.cc +@@ -290,7 +290,7 @@ squidaio_init(void) + /* Create threads and get them to sit in their wait loop */ + squidaio_thread_pool = memPoolCreate("aio_thread", sizeof(squidaio_thread_t)); + +- assert(NUMTHREADS); ++ assert(NUMTHREADS != 0); + + for (i = 0; i < NUMTHREADS; ++i) { + threadp = (squidaio_thread_t *)squidaio_thread_pool->alloc(); diff --git a/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch b/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch new file mode 100644 index 00000000000..fdcd174d3b2 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch @@ -0,0 +1,33 @@ +Set the SYSROOT for libxml2 header file to avoid host contamination. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Yue Tao +Signed-off-by: Yi Zhao + +diff --git a/configure.ac.old b/configure.ac +index 54eda73..874f48e 100644 +--- a/configure.ac.old ++++ b/configure.ac +@@ -964,15 +964,15 @@ if test "x$squid_opt_use_esi" = "xyes" -a "x$with_libxml2" != "xno" ; then + dnl Find the main header and include path... + AC_CACHE_CHECK([location of libxml2 include files], [ac_cv_libxml2_include], [ + AC_CHECK_HEADERS([libxml/parser.h], [], [ +- AC_MSG_NOTICE([Testing in /usr/include/libxml2]) ++ AC_MSG_NOTICE([Testing in $SYSROOT/usr/include/libxml2]) + SAVED_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS" ++ CPPFLAGS="-I$SYSROOT/usr/include/libxml2 $CPPFLAGS" + unset ac_cv_header_libxml_parser_h +- AC_CHECK_HEADERS([libxml/parser.h], [ac_cv_libxml2_include="-I/usr/include/libxml2"], [ +- AC_MSG_NOTICE([Testing in /usr/local/include/libxml2]) +- CPPFLAGS="-I/usr/local/include/libxml2 $SAVED_CPPFLAGS" ++ AC_CHECK_HEADERS([libxml/parser.h], [ac_cv_libxml2_include="-I$SYSROOT/usr/include/libxml2"], [ ++ AC_MSG_NOTICE([Testing in $SYSROOT/usr/local/include/libxml2]) ++ CPPFLAGS="-I$SYSROOT/usr/local/include/libxml2 $SAVED_CPPFLAGS" + unset ac_cv_header_libxml_parser_h +- AC_CHECK_HEADERS([libxml/parser.h], [ac_cv_libxml2_include="-I/usr/local/include/libxml2"], [ ++ AC_CHECK_HEADERS([libxml/parser.h], [ac_cv_libxml2_include="-I$SYSROOT/usr/local/include/libxml2"], [ + AC_MSG_NOTICE([Failed to find libxml2 header file libxml/parser.h]) + ]) + ]) diff --git a/meta-networking/recipes-daemons/squid/files/squid-change-ksh-reference-in-krb-ldap-helper-to-sh.patch b/meta-networking/recipes-daemons/squid/files/squid-change-ksh-reference-in-krb-ldap-helper-to-sh.patch deleted file mode 100644 index 8e03860b3c5..00000000000 --- a/meta-networking/recipes-daemons/squid/files/squid-change-ksh-reference-in-krb-ldap-helper-to-sh.patch +++ /dev/null @@ -1,39 +0,0 @@ -squid: change ksh reference in krb ldap helper to sh - -Very simple cert_tool script with no ksh specifics. -Change it to use sh so a package dependency doesn't -get created to ksh. - -Upstream-Status: Pending - -Signed-off-by: Jim Somerville -Signed-off-by: Chong Lu ---- - helpers/external_acl/kerberos_ldap_group/cert_tool | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/helpers/external_acl/kerberos_ldap_group/cert_tool b/helpers/external_acl/kerberos_ldap_group/cert_tool -index 9f14959..8c4ea11 100644 ---- a/helpers/external_acl/kerberos_ldap_group/cert_tool -+++ b/helpers/external_acl/kerberos_ldap_group/cert_tool -@@ -1,4 +1,4 @@ --#!/bin/ksh -+#!/bin/sh - # - # ----------------------------------------------------------------------------- - # -@@ -64,9 +64,9 @@ QUIT - # Create database for Sun ldap and pem file for Openldap - # - rm ${server}_[0-9]*.pem 2>/dev/null --let i=0 -+i=0 - ls ${server}_[0-9]*.cert | while read file; do -- let i=i+1 -+ i=`expr $i + 1` - cat $file >> ${server}_$i.pem - CA=`openssl x509 -noout -text -in ${server}_$i.pem | grep -i "CA:.*true"` - if [ -n "$CA" ]; then --- -1.9.1 - diff --git a/meta-networking/recipes-daemons/squid/files/squid-don-t-do-squid-conf-tests-at-build-time.patch b/meta-networking/recipes-daemons/squid/files/squid-don-t-do-squid-conf-tests-at-build-time.patch new file mode 100644 index 00000000000..312f44f8ebf --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/squid-don-t-do-squid-conf-tests-at-build-time.patch @@ -0,0 +1,63 @@ +From 54a9c2ba60adc7ec2724786662fd398e7c03999f Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Thu, 25 Aug 2016 15:22:57 +0800 +Subject: [PATCH] squid: don't do squid-conf-tests at build time + +* squid-conf-tests is a test to run "squid -k parse -f" + to perse the config files, which should not be run + at build time since we are cross compiling, so remove + it but it will be added back for the runtime ptest. + +* Fix the directories of the conf files for squid-conf-tests + so that it can run on the target board. + +Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Jackie Huang +--- + test-suite/Makefile.am | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am +index d5468be..77fc480 100644 +--- a/test-suite/Makefile.am ++++ b/test-suite/Makefile.am +@@ -41,8 +41,7 @@ TESTS += debug \ + MemPoolTest\ + mem_node_test\ + mem_hdr_test\ +- $(ESI_TESTS) \ +- squid-conf-tests ++ $(ESI_TESTS) + + ## Sort by alpha - any build failures are significant. + check_PROGRAMS += debug \ +@@ -125,19 +124,19 @@ VirtualDeleteOperator_SOURCES = VirtualDeleteOperator.cc $(DEBUG_SOURCE) + ##$(TARGLIB): $(LIBOBJS) + ## $(AR_R) $(TARGLIB) $(LIBOBJS) + +-squid-conf-tests: $(top_builddir)/src/squid.conf.default $(srcdir)/squidconf/* ++squid-conf-tests: $(sysconfdir)/squid.conf.default squidconf/* + @failed=0; cfglist="$?"; rm -f $@ || $(TRUE); \ + for cfg in $$cfglist ; do \ +- $(top_builddir)/src/squid -k parse -f $$cfg || \ ++ squid -k parse -f $$cfg || \ + { echo "FAIL: squid.conf test: $$cfg" | \ +- sed s%$(top_builddir)/src/%% | \ +- sed s%$(srcdir)/squidconf/%% ; \ ++ sed s%$(sysconfdir)/%% | \ ++ sed s%squidconf/%% ; \ + failed=1; break; \ + }; \ + if test "$$failed" -eq 0; then \ + echo "PASS: squid.conf test: $$cfg" | \ +- sed s%$(top_builddir)/src/%% | \ +- sed s%$(srcdir)/squidconf/%% ; \ ++ sed s%$(sysconfdir)/%% | \ ++ sed s%squidconf/%% ; \ + else break; fi; \ + done; \ + if test "$$failed" -eq 0; then cp $(TRUE) $@ ; fi +-- +2.8.3 + diff --git a/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch b/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch index 9e2ceab8805..01ec5962235 100644 --- a/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch +++ b/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch @@ -1,6 +1,6 @@ -From 2192fdbc90b0ff2d5408e8763df200620870deea Mon Sep 17 00:00:00 2001 +From bd58d3672bc267824000f34a37561c7ab2bd571f Mon Sep 17 00:00:00 2001 From: Jackie Huang -Date: Mon, 13 Oct 2014 01:32:37 -0700 +Date: Tue, 19 Jul 2016 01:56:23 -0400 Subject: [PATCH] squid: use serial-tests config needed by ptest ptest needs buildtest-TESTS and runtest-TESTS targets. @@ -10,22 +10,22 @@ Upstream-Status: Inappropriate [default automake behavior incompatible with ptes Signed-off-by: Jackie Huang --- - configure.ac | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 6f7171f..ab9b93e 100644 +index 05ad027..e324b93 100644 --- a/configure.ac +++ b/configure.ac -@@ -3,7 +3,7 @@ AC_PREREQ(2.61) +@@ -10,7 +10,7 @@ AC_PREREQ(2.61) AC_CONFIG_HEADERS([include/autoconf.h]) AC_CONFIG_AUX_DIR(cfgaux) AC_CONFIG_SRCDIR([src/main.cc]) --AM_INIT_AUTOMAKE([tar-ustar nostdinc]) -+AM_INIT_AUTOMAKE([tar-ustar nostdinc serial-tests]) +-AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects]) ++AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects serial-tests]) AC_REVISION($Revision$)dnl AC_PREFIX_DEFAULT(/usr/local/squid) AM_MAINTAINER_MODE -- -1.7.1 +2.8.1 diff --git a/meta-networking/recipes-daemons/squid/files/volatiles.03_squid b/meta-networking/recipes-daemons/squid/files/volatiles.03_squid index b96865d731a..83e1f8b7a58 100644 --- a/meta-networking/recipes-daemons/squid/files/volatiles.03_squid +++ b/meta-networking/recipes-daemons/squid/files/volatiles.03_squid @@ -1,2 +1,3 @@ # d squid squid 0755 /var/run/squid none +d squid squid 0750 /var/log/squid none diff --git a/meta-networking/recipes-daemons/squid/squid_3.4.7.bb b/meta-networking/recipes-daemons/squid/squid_3.4.7.bb deleted file mode 100644 index c5f616dd418..00000000000 --- a/meta-networking/recipes-daemons/squid/squid_3.4.7.bb +++ /dev/null @@ -1,67 +0,0 @@ -SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux" -DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \ -Squid offers a rich access control, authorization and logging environment to \ -develop web proxy and content serving applications. \ -Squid offers a rich set of traffic optimization options, most of which are \ -enabled by default for simpler installation and high performance. \ -" -HOMEPAGE = "http://www.squid-cache.org" -SECTION = "network" -LICENSE = "GPLv2+" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}" -MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${PV}.tar.bz2 \ - file://Set-up-for-cross-compilation.patch \ - file://Skip-AC_RUN_IFELSE-tests.patch \ - file://Fix-flawed-dynamic-ldb-link-test-in-configure.patch \ - file://squid-change-ksh-reference-in-krb-ldap-helper-to-sh.patch \ - file://squid-use-serial-tests-config-needed-by-ptest.patch \ - file://run-ptest \ - file://volatiles.03_squid \ -" - -LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \ - file://COPYRIGHT;md5=2900f50789c498be8e9f1eb23b55cbe9 \ - " -SRC_URI[md5sum] = "9951034b10f7ee0f45a95cfae61c57c2" -SRC_URI[sha256sum] = "7b423f3d3495a317503ca559ea535f80445fd7c4e3c3e268cb7a8c97c61af2b6" - -DEPENDS = "libtool krb5 openldap db cyrus-sasl" - -inherit autotools useradd ptest - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack" -EXTRA_OECONF += "--with-default-user=squid" - -TESTDIR = "test-suite" -do_compile_ptest() { - oe_runmake -C ${TESTDIR} buildtest-TESTS -} - -do_install_ptest() { - cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH} - cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH} - - # do NOT need to rebuild Makefile itself - sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile -} - -do_install_append() { - install -d ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/volatiles.03_squid - rmdir "${D}${localstatedir}/run/${BPN}" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run" -} - -FILES_${PN} += "${libdir} ${datadir}/errors ${datadir}/icons" -FILES_${PN}-dbg += "/usr/src/debug" -FILES_${PN}-doc += "${datadir}/*.txt" - -RDEPENDS_${PN} += "perl" -RDEPENDS_${PN}-ptest += "make" diff --git a/meta-networking/recipes-daemons/squid/squid_3.5.26.bb b/meta-networking/recipes-daemons/squid/squid_3.5.26.bb new file mode 100644 index 00000000000..3ee96abb7bd --- /dev/null +++ b/meta-networking/recipes-daemons/squid/squid_3.5.26.bb @@ -0,0 +1,114 @@ +SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux" +DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \ +Squid offers a rich access control, authorization and logging environment to \ +develop web proxy and content serving applications. \ +Squid offers a rich set of traffic optimization options, most of which are \ +enabled by default for simpler installation and high performance. \ +" +HOMEPAGE = "http://www.squid-cache.org" +SECTION = "web" +LICENSE = "GPLv2+" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}" +MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${PV}.tar.bz2 \ + file://Set-up-for-cross-compilation.patch \ + file://Skip-AC_RUN_IFELSE-tests.patch \ + file://Fix-flawed-dynamic-ldb-link-test-in-configure.patch \ + file://squid-use-serial-tests-config-needed-by-ptest.patch \ + file://run-ptest \ + file://volatiles.03_squid \ + file://set_sysroot_patch.patch \ + file://squid-don-t-do-squid-conf-tests-at-build-time.patch \ + file://0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch \ + file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \ + file://gcc7-fixes.patch \ + file://0001-tools.cc-fixed-unused-result-warning.patch \ + " + +SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch" + +SRC_URI[md5sum] = "dc1830cd361e077814aa39bcc3691d8b" +SRC_URI[sha256sum] = "41d8845863dcd026c856508cd1599d417c8947ffd96e86e24085f9893cb8b8c2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \ + file://errors/COPYRIGHT;md5=8861130fae91400bcf99b66f133172b3 \ + " +DEPENDS = "libtool krb5 openldap db cyrus-sasl openssl expat libxml2" + +inherit autotools pkgconfig useradd ptest perlnative + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid" + +PACKAGECONFIG ??= "${@bb.utils.contains('TARGET_ARCH', 'powerpc', 'noatomics', '', d)} \ + ${@bb.utils.contains('TARGET_ARCH', 'mips', 'noatomics', '', d)} \ + ${@bb.utils.contains('TARGET_ARCH', 'mipsel', 'noatomics', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ + " +PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack" +PACKAGECONFIG[noatomics] = "squid_cv_gnu_atomics=no,squid_cv_gnu_atomics=yes,," +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +BASIC_AUTH = "DB SASL LDAP" + +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +BASIC_AUTH += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'PAM', '', d)}" + +EXTRA_OECONF += "--with-default-user=squid --enable-auth-basic='${BASIC_AUTH}' \ + --sysconfdir=${sysconfdir}/${BPN} \ + --with-logdir=${localstatedir}/log/${BPN} \ + 'PERL=${USRBINPATH}/env perl'" + +export BUILDCXXFLAGS="${BUILD_CXXFLAGS}" + +TESTDIR = "test-suite" + +do_configure_prepend() { + export SYSROOT=$PKG_CONFIG_SYSROOT_DIR +} + +do_compile_ptest() { + oe_runmake -C ${TESTDIR} buildtest-TESTS +} + +do_install_ptest() { + cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH} + cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH} + + # do NOT need to rebuild Makefile itself + sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile + + # Add squid-conf-tests for runtime tests + sed -e 's/^\(runtest-TESTS:\)/\1 squid-conf-tests/' \ + -e "s/\(list=' \$(TESTS)\)/\1 squid-conf-tests/" \ + -i ${D}${PTEST_PATH}/${TESTDIR}/Makefile + + # Ensure the path for command true is correct + sed -i 's:^TRUE = .*$:TRUE = /bin/true:' ${D}${PTEST_PATH}/${TESTDIR}/Makefile +} + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d ${localstatedir}/run/${BPN} 0755 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + echo "d ${localstatedir}/log/${BPN} 0750 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + fi + + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/03_squid + + rmdir "${D}${localstatedir}/run/${BPN}" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run" + + rmdir "${D}${localstatedir}/log/${BPN}" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/log" +} + +FILES_${PN} += "${libdir} ${datadir}/errors ${datadir}/icons" +FILES_${PN}-dbg += "/usr/src/debug" +FILES_${PN}-doc += "${datadir}/*.txt" + +RDEPENDS_${PN} += "perl" +RDEPENDS_${PN}-ptest += "make" diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch b/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch new file mode 100644 index 00000000000..cead977e289 --- /dev/null +++ b/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch @@ -0,0 +1,62 @@ +From 941038fc05be21202cab7a7a9434097fb55ecbe0 Mon Sep 17 00:00:00 2001 +From: Thorsten Glaser +Date: Thu, 31 Jul 2014 16:29:41 +0930 +Subject: [PATCH] __progname[] is provided by libc + +Rename local variable to tftpd_progname to avoid a clash with glibc +global symbols and work around Debian bug #519006 (Closes: #564052). + +[ hpa: specifically, double-underscore symbols in C are reserved for + the implementation, i.e. compiler/libc. ] + +Signed-off-by: Ron Lee +Signed-off-by: H. Peter Anvin +--- + tftpd/tftpd.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/tftpd/tftpd.c b/tftpd/tftpd.c +index e247b97..5fec7bf 100644 +--- a/tftpd/tftpd.c ++++ b/tftpd/tftpd.c +@@ -76,7 +76,7 @@ static int ai_fam = AF_INET; + #define TRIES 6 /* Number of attempts to send each packet */ + #define TIMEOUT_LIMIT ((1 << TRIES)-1) + +-const char *__progname; ++const char *tftpd_progname; + static int peer; + static unsigned long timeout = TIMEOUT; /* Current timeout value */ + static unsigned long rexmtval = TIMEOUT; /* Basic timeout value */ +@@ -395,9 +395,9 @@ int main(int argc, char **argv) + /* basename() is way too much of a pain from a portability standpoint */ + + p = strrchr(argv[0], '/'); +- __progname = (p && p[1]) ? p + 1 : argv[0]; ++ tftpd_progname = (p && p[1]) ? p + 1 : argv[0]; + +- openlog(__progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); ++ openlog(tftpd_progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); + + srand(time(NULL) ^ getpid()); + +@@ -946,14 +946,14 @@ int main(int argc, char **argv) + syslog daemon gets restarted by the time we get here. */ + if (secure && standalone) { + closelog(); +- openlog(__progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); ++ openlog(tftpd_progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); + } + + #ifdef HAVE_TCPWRAPPERS + /* Verify if this was a legal request for us. This has to be + done before the chroot, while /etc is still accessible. */ + request_init(&wrap_request, +- RQ_DAEMON, __progname, ++ RQ_DAEMON, tftpd_progname, + RQ_FILE, fd, + RQ_CLIENT_SIN, &from, RQ_SERVER_SIN, &myaddr, 0); + sock_methods(&wrap_request); +-- +2.14.1 + diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.service b/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.service new file mode 100644 index 00000000000..97d56586be5 --- /dev/null +++ b/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.service @@ -0,0 +1,10 @@ +[Unit] +Description=Tftp Server +Requires=tftpd-hpa.socket + +[Service] +ExecStart=@SBINDIR@/in.tftpd-hpa -s /var/lib/tftpboot +StandardInput=socket + +[Install] +Also=tftpd-hpa.socket diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.socket b/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.socket new file mode 100644 index 00000000000..8764c1de349 --- /dev/null +++ b/meta-networking/recipes-daemons/tftp-hpa/files/tftpd-hpa.socket @@ -0,0 +1,8 @@ +[Unit] +Description=Tftp Server Activation Socket + +[Socket] +ListenDatagram=69 + +[Install] +WantedBy=sockets.target diff --git a/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb b/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb index 3f17fd6fc20..132972b3312 100644 --- a/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb +++ b/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb @@ -6,7 +6,8 @@ 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." DEPENDS = "tcp-wrappers readline" -SECTION = "network" +SECTION = "net" +HOMEPAGE = "http://freecode.com/projects/tftp-hpa" 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" @@ -26,17 +27,23 @@ SRC_URI = "http://kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-${PV}.t file://add-error-check-for-disk-filled-up.patch \ file://tftp-hpa-bug-fix-on-separated-CR-and-LF.patch \ file://fix-writing-emtpy-file.patch \ + file://0001-__progname-is-provided-by-libc.patch \ + file://tftpd-hpa.socket \ + file://tftpd-hpa.service \ " SRC_URI[md5sum] = "46c9bd20bbffa62f79c958c7b99aac21" SRC_URI[sha256sum] = "0a9f88d4c1c02687b4853b02ab5dd8779d4de4ffdb9b2e5c9332841304d1a269" -inherit autotools-brokensep update-rc.d update-alternatives +inherit autotools-brokensep update-rc.d update-alternatives systemd export AR = "${HOST_PREFIX}ar cq" EXTRA_OECONF += "--disable-option-checking" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + # configure.in has errors do_configure() { oe_runconf @@ -57,6 +64,11 @@ do_install() { install -d ${D}${sysconfdir}/default install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/tftpd-hpa + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/tftpd-hpa.socket ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/tftpd-hpa.service ${D}${systemd_unitdir}/system + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/tftpd-hpa.service } FILES_${PN} = "${bindir}" @@ -72,5 +84,8 @@ INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 20 1 ." ALTERNATIVE_${PN} = "tftp" ALTERNATIVE_TARGET[tftp] = "${bindir}/tftp-hpa" -ALTERNATIVE_PRIORITY = "50" +ALTERNATIVE_PRIORITY = "60" +SYSTEMD_PACKAGES = "tftp-hpa-server" +SYSTEMD_SERVICE_tftp-hpa-server = "tftpd-hpa.socket tftpd-hpa.service" +SYSTEMD_AUTO_ENABLE_tftp-hpa-server = "enable" diff --git a/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch b/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch new file mode 100644 index 00000000000..a74452db698 --- /dev/null +++ b/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch @@ -0,0 +1,19 @@ +Add LDFLAGS variable to Makefile, make sure the extra linker flags can be passed. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/makefile b/makefile +index 98008da..c328ba7 100644 +--- a/makefile ++++ b/makefile +@@ -11,7 +11,7 @@ mandir = ${sharedir}/man + O=aoe.o bpf.o ${PLATFORM}.o ata.o + + vblade: $O +- ${CC} -o vblade $O ++ ${CC} ${LDFLAGS} -o vblade $O + + aoe.o : aoe.c config.h dat.h fns.h makefile + ${CC} ${CFLAGS} -c $< diff --git a/meta-networking/recipes-daemons/vblade/files/vblade.conf b/meta-networking/recipes-daemons/vblade/files/vblade.conf new file mode 100644 index 00000000000..e8b93ec3715 --- /dev/null +++ b/meta-networking/recipes-daemons/vblade/files/vblade.conf @@ -0,0 +1,2 @@ +# network_device shelf slot file/disk/partition mac[,mac[,mac]] +#eth0 0 0 /dev/sdb 00:11:22:33:44:55 diff --git a/meta-networking/recipes-daemons/vblade/files/vblade.init b/meta-networking/recipes-daemons/vblade/files/vblade.init new file mode 100644 index 00000000000..0298c800185 --- /dev/null +++ b/meta-networking/recipes-daemons/vblade/files/vblade.init @@ -0,0 +1,193 @@ +#!/bin/sh +# +# Init script for vblade (ATA over Ethernet daemon) +# +# chkconfig: - 30 70 +# description: vblade AoE daemon +# +# processname: vblade +# config: /etc/vblade.conf +# +# Shamelessly hacked together from other init scripts (sshd, mostly) +# integrate vblade.init from Fedora's vblade-14-6.fc12.src.rpm +# + +RETVAL=0 +prog=vblade + +spawn_vblade() { + ALLOWMACS="" + [ -n "$5" ] && ALLOWMACS="-m $5" + ID="$1-e$2.$3" + if [ ! -d "/var/run/$prog" ]; then + mkdir /var/run/$prog + fi + PID_FILE=/var/run/$prog/${ID}.pid + $prog $ALLOWMACS $2 $3 $1 $4 >> /var/log/$prog.log 2>&1 & + pid=$! + RETVAL=$? + echo $pid > $PID_FILE + echo -n $"$4 (e$2.$3@$1) [pid $pid]" + [ "$RETVAL" = 0 ] && echo "success" || echo "failure" + echo +} + +start() { + local ret + + echo $"Starting up $prog: " + + #/var/lock/subsys/$prog exists? + status $prog 2>&1 > /dev/null + ret=$? + + if [ "$ret" = "2" ]; then + echo "$prog dead but subsys locked" + echo + return 2 + else + if [ "$ret" = "0" ]; then + #is running + echo "already running" + return 0 + fi + fi + + if [ 0 -ne `grep -vc '^#\|^$' /etc/$prog.conf` ] + then + grep -v '^#' /etc/$prog.conf | sed -e 's/ / /g' -e 's/ / /g' | while read line + do + spawn_vblade $line + done + touch /var/lock/subsys/$prog + else + echo -n "empty $prog.conf?" + echo " passed" + echo + fi +} + +stop() { + echo -n $"Shutting down $prog: " + for pidfile in `ls /var/run/$prog/*.pid 2>/dev/null` + do + kill -TERM `cat $pidfile` + rm -f $pidfile + done + echo "success" + echo + rm -f /var/lock/subsys/$prog +} + +__pids_var_run() { + local base=${1##*/} + local pid_file=${2:-/var/run/$base.pid} + + pid= + if [ -f "$pid_file" ] ; then + local line p + + while : ; do + read line + [ -z "$line" ] && break + for p in $line ; do + [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p" + done + done < "$pid_file" + + if [ -n "$pid" ]; then + return 0 + fi + return 1 # "Program is dead and /var/run pid file exists" + fi + return 3 # "Program is not running" +} + +__pids_pidof() { + pidof "$1" || pidof "${1##*/}" +} + +status() { + local base pid lock_file= pid_file= + + # Test syntax. + if [ "$#" = 0 ] ; then + echo $"Usage: status [-p pidfile] {program}" + return 1 + fi + if [ "$1" = "-p" ]; then + pid_file=$2 + shift 2 + fi + if [ "$1" = "-l" ]; then + lock_file=$2 + shift 2 + fi + base=${1##*/} + + # First try "pidof" + __pids_var_run "$1" "$pid_file" + RC=$? + if [ -z "$pid_file" -a -z "$pid" ]; then + pid="$(__pids_pidof "$1")" + fi + if [ -n "$pid" ]; then + echo $"${base} (pid $pid) is running..." + return 0 + fi + + case "$RC" in + 0) + echo $"${base} (pid $pid) is running..." + return 0 + ;; + 1) + echo $"${base} dead but pid file exists" + return 1 + ;; + esac + if [ -z "${lock_file}" ]; then + lock_file=${base} + fi + # See if /var/lock/subsys/${lock_file} exists + if [ -f /var/lock/subsys/${lock_file} ]; then + echo $"${base} dead but subsys locked" + return 2 + fi + echo $"${base} is stopped" + return 3 +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + reload) + # yes, this sucks, but the vblade processes die on SIGHUP + stop + start + ;; + condrestart) + if [ -f /var/lock/subsys/$prog ]; then + stop + # avoid race + sleep 3 + start + fi + ;; + status) + status $prog + RETVAL=$? + ;; + *) + echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}" + RETVAL=1 +esac +exit $RETVAL diff --git a/meta-networking/recipes-daemons/vblade/files/vblade.service b/meta-networking/recipes-daemons/vblade/files/vblade.service new file mode 100644 index 00000000000..83a4d5dcbff --- /dev/null +++ b/meta-networking/recipes-daemons/vblade/files/vblade.service @@ -0,0 +1,11 @@ +[Unit] +Description=Virtual EtherDrive blade AoE target +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=@BINDIR@/vblade.init start +ExecStop=@BINDIR@/vblade.init stop + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-daemons/vblade/files/volatiles.99_vblade b/meta-networking/recipes-daemons/vblade/files/volatiles.99_vblade new file mode 100644 index 00000000000..64a5881c07a --- /dev/null +++ b/meta-networking/recipes-daemons/vblade/files/volatiles.99_vblade @@ -0,0 +1 @@ +d root root 0755 /var/run/vblade none diff --git a/meta-networking/recipes-daemons/vblade/vblade_20.bb b/meta-networking/recipes-daemons/vblade/vblade_20.bb deleted file mode 100644 index a2ebb5a486e..00000000000 --- a/meta-networking/recipes-daemons/vblade/vblade_20.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Virtual EtherDrive blade AoE target" -SECTION = "console/network" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -SRC_URI = "${SOURCEFORGE_MIRROR}/aoetools/${BPN}-${PV}.tgz \ - file://cross.patch" - -SRC_URI[md5sum] = "3c80e4a6bc7d66ae0c235b88cb44bd59" -SRC_URI[sha256sum] = "c8fe2fc4f2fba8e07e5cfdf17335982584eef2cd5c78bf8b1db93f2b56e7121d" - -inherit autotools-brokensep - -do_install() { - install -D -m 0755 ${S}/vblade ${D}/${sbindir}/vblade - install -D -m 0755 ${S}/vbladed ${D}/${sbindir}/vbladed - install -D -m 0644 ${S}/vblade.8 ${D}/${mandir}/man8/vblade.8 -} - diff --git a/meta-networking/recipes-daemons/vblade/vblade_22.bb b/meta-networking/recipes-daemons/vblade/vblade_22.bb new file mode 100644 index 00000000000..d7b1dfaad3f --- /dev/null +++ b/meta-networking/recipes-daemons/vblade/vblade_22.bb @@ -0,0 +1,51 @@ +SUMMARY = "Virtual EtherDrive blade AoE target" +SECTION = "admin" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = "${SOURCEFORGE_MIRROR}/aoetools/${BP}.tar.gz \ + file://cross.patch \ + file://makefile-add-ldflags.patch \ + file://${BPN}.conf \ + file://${BPN}.init \ + file://${BPN}.service \ + file://volatiles.99_vblade \ + " + +SRC_URI[md5sum] = "510d98ba0f231284a5fbe2da11cb2d6e" +SRC_URI[sha256sum] = "a990378f273f10eb431e42954a871aed52714035bbab28c54cef600c458356bb" + +inherit autotools-brokensep update-rc.d systemd + +do_install() { + install -D -m 0755 ${S}/vblade ${D}/${sbindir}/vblade + install -D -m 0755 ${S}/vbladed ${D}/${sbindir}/vbladed + install -D -m 0644 ${S}/vblade.8 ${D}/${mandir}/man8/vblade.8 + + install -D -m 0644 ${WORKDIR}/${BPN}.conf ${D}/${sysconfdir}/${BPN}.conf + install -D -m 0755 ${WORKDIR}/${BPN}.init ${D}/${sysconfdir}/init.d/${BPN} + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}/${sysconfdir}/default/volatiles + install -m 0755 ${WORKDIR}/volatiles.99_vblade ${D}/${sysconfdir}/default/volatiles/99_vblade + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}/${bindir} + install -m 0755 ${WORKDIR}/${BPN}.init ${D}/${bindir}/ + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /var/run/${BPN} 0755 root root -" > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/vblade.service ${D}${systemd_system_unitdir} + sed -e 's,@BINDIR@,${bindir},g' -i ${D}${systemd_system_unitdir}/*.service + fi + +} + +INITSCRIPT_NAME = "vblade" +INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ." + +SYSTEMD_SERVICE_${PN} = "vblade.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-networking/recipes-daemons/vsftpd/files/init b/meta-networking/recipes-daemons/vsftpd/files/init index d0ec010dc76..72adf0d9ad4 100755 --- a/meta-networking/recipes-daemons/vsftpd/files/init +++ b/meta-networking/recipes-daemons/vsftpd/files/init @@ -1,4 +1,13 @@ #!/bin/sh +### BEGIN INIT INFO +# Provides: vsftpd +# Default-Start: 2345 +# Default-Stop: 016 +# Short-Description: Very Secure Ftp Daemon +# Description: vsftpd is a Very Secure FTP daemon. It was written completely from +# scratch +### END INIT INFO + DAEMON=/usr/sbin/vsftpd NAME=vsftpd DESC="FTP Server" diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch new file mode 100644 index 00000000000..c3919e11746 --- /dev/null +++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch @@ -0,0 +1,28 @@ +From e55135c2a4ea7eae3cb1f4dccf69ca477ea095bf Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 20:09:12 -0700 +Subject: [PATCH] sysdeputil.c: Fix with musl which does not have utmpx + +Signed-off-by: Khem Raj +--- + sysdeputil.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/sysdeputil.c b/sysdeputil.c +index 06f01f4..a8cff3b 100644 +--- a/sysdeputil.c ++++ b/sysdeputil.c +@@ -58,7 +58,9 @@ + #define VSF_SYSDEP_HAVE_SHADOW + #define VSF_SYSDEP_HAVE_USERSHELL + #define VSF_SYSDEP_HAVE_LIBCAP +-#define VSF_SYSDEP_HAVE_UTMPX ++#if defined(__GLIBC__) ++ #define VSF_SYSDEP_HAVE_UTMPX ++#endif + + #define __USE_GNU + #include +-- +2.12.1 + diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch new file mode 100644 index 00000000000..7accbbc241b --- /dev/null +++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch @@ -0,0 +1,45 @@ +From 37cc924363515c8c309944c455bcbba7ddcc8eda Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Tue, 6 Sep 2016 17:17:44 +0800 +Subject: [PATCH] vsftpd: allow sysinfo() in the seccomp sandbox + +Upstream-Status: Pending + +* Allow sysinfo() in the seccomp sandbox otherwise + comes below OOPS: priv_sock_get_cmd as the syscall + sysinfo() not allowed + +tnftp 192.168.1.1 +Connected to 192.168.1.1. +220 (vsFTPd 3.0.3) +Name (192.168.1.1:root): anonymous +331 Please specify the password. +Password: +230 Login successful. +Remote system type is UNIX. +Using binary mode to transfer files. +ftp> prompt +Interactive mode off. +ftp> mget small* +OOPS: priv_sock_get_cmd + +Signed-off-by: Mingli Yu +--- + seccompsandbox.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/seccompsandbox.c b/seccompsandbox.c +index 2c350a9..67d9ca5 100644 +--- a/seccompsandbox.c ++++ b/seccompsandbox.c +@@ -409,6 +409,7 @@ seccomp_sandbox_setup_postlogin(const struct vsf_session* p_sess) + allow_nr(__NR_getcwd); + allow_nr(__NR_chdir); + allow_nr(__NR_getdents); ++ allow_nr(__NR_sysinfo); + /* Misc */ + allow_nr(__NR_umask); + +-- +2.8.1 + diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/makefile-destdir.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-destdir.patch similarity index 100% rename from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/makefile-destdir.patch rename to meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-destdir.patch diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/makefile-libs.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch similarity index 100% rename from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/makefile-libs.patch rename to meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/makefile-strip.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch similarity index 100% rename from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/makefile-strip.patch rename to meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/nopam-with-tcp_wrappers.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch similarity index 100% rename from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/nopam-with-tcp_wrappers.patch rename to meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/nopam.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch similarity index 100% rename from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/nopam.patch rename to meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch new file mode 100644 index 00000000000..32f7e82183d --- /dev/null +++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch @@ -0,0 +1,77 @@ +Fix the CVE-2015-1419 + +Upstream-Status: Pending + +Try to fix deny_file parsing to do more what is expected. Taken +from fedora. CVE-2015-1419 + +ftp://195.220.108.108/linux/fedora/linux/development/rawhide/source/SRPMS/v/vsftpd-3.0.2-13.fc22.src.rpm + +Signed-off-by: Roy Li + +diff -up vsftpd-2.1.0/ls.c.filter vsftpd-2.1.0/ls.c +--- vsftpd-2.1.0/ls.c.filter 2008-02-02 02:30:41.000000000 +0100 ++++ vsftpd-2.1.0/ls.c 2009-01-08 19:31:15.000000000 +0100 +@@ -239,9 +239,31 @@ vsf_filename_passes_filter(const struct + int ret = 0; + char last_token = 0; + int must_match_at_current_pos = 1; ++ ++ + str_copy(&filter_remain_str, p_filter_str); +- str_copy(&name_remain_str, p_filename_str); +- ++ ++ if (!str_isempty (&filter_remain_str) && !str_isempty(p_filename_str)) { ++ if (str_get_char_at(p_filter_str, 0) == '/') { ++ if (str_get_char_at(p_filename_str, 0) != '/') { ++ str_getcwd (&name_remain_str); ++ ++ if (str_getlen(&name_remain_str) > 1) /* cwd != root dir */ ++ str_append_char (&name_remain_str, '/'); ++ ++ str_append_str (&name_remain_str, p_filename_str); ++ } ++ else ++ str_copy (&name_remain_str, p_filename_str); ++ } else { ++ if (str_get_char_at(p_filter_str, 0) != '{') ++ str_basename (&name_remain_str, p_filename_str); ++ else ++ str_copy (&name_remain_str, p_filename_str); ++ } ++ } else ++ str_copy(&name_remain_str, p_filename_str); ++ + while (!str_isempty(&filter_remain_str) && *iters < VSFTP_MATCHITERS_MAX) + { + static struct mystr s_match_needed_str; +diff -up vsftpd-2.1.0/str.c.filter vsftpd-2.1.0/str.c +--- vsftpd-2.1.0/str.c.filter 2008-12-17 06:54:16.000000000 +0100 ++++ vsftpd-2.1.0/str.c 2009-01-08 19:31:15.000000000 +0100 +@@ -680,3 +680,14 @@ str_replace_unprintable(struct mystr* p_ + } + } + ++void ++str_basename (struct mystr* d_str, const struct mystr* path) ++{ ++ static struct mystr tmp; ++ ++ str_copy (&tmp, path); ++ str_split_char_reverse(&tmp, d_str, '/'); ++ ++ if (str_isempty(d_str)) ++ str_copy (d_str, path); ++} +diff -up vsftpd-2.1.0/str.h.filter vsftpd-2.1.0/str.h +--- vsftpd-2.1.0/str.h.filter 2008-12-17 06:53:23.000000000 +0100 ++++ vsftpd-2.1.0/str.h 2009-01-08 19:32:14.000000000 +0100 +@@ -100,6 +100,7 @@ void str_replace_unprintable(struct myst + int str_atoi(const struct mystr* p_str); + filesize_t str_a_to_filesize_t(const struct mystr* p_str); + unsigned int str_octal_to_uint(const struct mystr* p_str); ++void str_basename (struct mystr* d_str, const struct mystr* path); + + /* PURPOSE: Extract a line of text (delimited by \n or EOF) from a string + * buffer, starting at character position 'p_pos'. The extracted line will diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/vsftpd-tcp_wrappers-support.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch similarity index 100% rename from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.2/vsftpd-tcp_wrappers-support.patch rename to meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.2.bb b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.2.bb deleted file mode 100644 index e4d65eea6f5..00000000000 --- a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.2.bb +++ /dev/null @@ -1,106 +0,0 @@ -SUMMARY = "Very Secure FTP server" -HOMEPAGE = "https://security.appspot.com/vsftpd.html" -SECTION = "network" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271" - -DEPENDS = "libcap openssl" - -SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \ - file://makefile-destdir.patch \ - file://makefile-libs.patch \ - file://makefile-strip.patch \ - file://init \ - file://vsftpd.conf \ - file://vsftpd.user_list \ - file://vsftpd.ftpusers \ - file://change-secure_chroot_dir.patch \ - file://volatiles.99_vsftpd \ - file://vsftpd.service \ -" - -LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \ - file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \ - file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb" -SRC_URI[md5sum] = "8b00c749719089401315bd3c44dddbb2" -SRC_URI[sha256sum] = "be46f0e2c5528fe021fafc8dab1ecfea0c1f183063a06977f8537fcd0b195e56" - - -PACKAGECONFIG ??= "tcp-wrappers" -PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers" -SRC_URI +="${@base_contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)}" - -DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -RDEPENDS_${PN} += "${@base_contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}" -PAMLIB = "${@base_contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}" -NOPAM_SRC ="${@base_contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}" -SRC_URI += "${@base_contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)}" - -inherit update-rc.d useradd systemd - -CONFFILES_${PN} = "${sysconfdir}/vsftpd.conf" -LDFLAGS_append =" -lcrypt -lcap" - -do_configure() { - # Fix hardcoded /usr, /etc, /var mess. - cat tunables.c|sed s:\"/usr:\"${prefix}:g|sed s:\"/var:\"${localstatedir}:g \ - |sed s:\"/etc:\"${sysconfdir}:g > tunables.c.new - mv tunables.c.new tunables.c -} - -do_compile() { - oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} -lwrap" -} - -do_install() { - install -d ${D}${sbindir} - install -d ${D}${mandir}/man8 - install -d ${D}${mandir}/man5 - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${sysconfdir} - install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf - install -d ${D}${sysconfdir}/init.d/ - install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd - install -d ${D}/${sysconfdir}/default/volatiles - install -m 644 ${WORKDIR}/volatiles.99_vsftpd ${D}/${sysconfdir}/default/volatiles/99_vsftpd - - install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/ - install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/ - if ! test -z "${PAMLIB}" ; then - install -d ${D}${sysconfdir}/pam.d/ - cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd - sed -i "s:/lib/security:${base_libdir}/security:" ${D}${sysconfdir}/pam.d/vsftpd - sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd - fi - if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d - echo "d /var/run/vsftpd/empty 0755 root root -" \ - > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf - fi - - # Install systemd unit files - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/vsftpd.service ${D}${systemd_unitdir}/system - sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/vsftpd.service -} - -INITSCRIPT_PACKAGES = "${PN}" -INITSCRIPT_NAME_${PN} = "vsftpd" -INITSCRIPT_PARAMS_${PN} = "defaults 80" - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --home-dir /var/lib/ftp --no-create-home -g ftp \ - --shell /bin/false ftp " -GROUPADD_PARAM_${PN} = "-r ftp" - -SYSTEMD_SERVICE_${PN} = "vsftpd.service" - -pkg_postinst_${PN}() { - if [ -z "$D" ]; then - if type systemd-tmpfiles >/dev/null; then - systemd-tmpfiles --create - elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then - ${sysconfdir}/init.d/populate-volatile.sh update - fi - fi -} diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb new file mode 100644 index 00000000000..7a203560189 --- /dev/null +++ b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb @@ -0,0 +1,112 @@ +SUMMARY = "Very Secure FTP server" +HOMEPAGE = "https://security.appspot.com/vsftpd.html" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271" + +DEPENDS = "libcap openssl" + +SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \ + file://makefile-destdir.patch \ + file://makefile-libs.patch \ + file://makefile-strip.patch \ + file://init \ + file://vsftpd.conf \ + file://vsftpd.user_list \ + file://vsftpd.ftpusers \ + file://change-secure_chroot_dir.patch \ + file://volatiles.99_vsftpd \ + file://vsftpd.service \ + file://vsftpd-2.1.0-filter.patch \ + file://0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch \ + ${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)} \ + file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \ + " + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \ + file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \ + file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb" +SRC_URI[md5sum] = "da119d084bd3f98664636ea05b5bb398" +SRC_URI[sha256sum] = "9d4d2bf6e6e2884852ba4e69e157a2cecd68c5a7635d66a3a8cf8d898c955ef7" + + +PACKAGECONFIG ??= "tcp-wrappers" +PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers" + +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}" +PAMLIB = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}" +WRAPLIB = "${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', '-lwrap', '', d)}" +NOPAM_SRC ="${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}" + +inherit update-rc.d useradd systemd + +CONFFILES_${PN} = "${sysconfdir}/vsftpd.conf" +LDFLAGS_append =" -lcrypt -lcap" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_configure() { + # Fix hardcoded /usr, /etc, /var mess. + cat tunables.c|sed s:\"/usr:\"${prefix}:g|sed s:\"/var:\"${localstatedir}:g \ + |sed s:\"/etc:\"${sysconfdir}:g > tunables.c.new + mv tunables.c.new tunables.c +} + +do_compile() { + oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} ${WRAPLIB}" +} + +do_install() { + install -d ${D}${sbindir} + install -d ${D}${mandir}/man8 + install -d ${D}${mandir}/man5 + oe_runmake 'DESTDIR=${D}' install + install -d ${D}${sysconfdir} + install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf + install -d ${D}${sysconfdir}/init.d/ + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd + install -d ${D}/${sysconfdir}/default/volatiles + install -m 644 ${WORKDIR}/volatiles.99_vsftpd ${D}/${sysconfdir}/default/volatiles/99_vsftpd + + install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/ + install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/ + if ! test -z "${PAMLIB}" ; then + install -d ${D}${sysconfdir}/pam.d/ + cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd + sed -i "s:/lib/security:${base_libdir}/security:" ${D}${sysconfdir}/pam.d/vsftpd + sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd + fi + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /var/run/vsftpd/empty 0755 root root -" \ + > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + fi + + # Install systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/vsftpd.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/vsftpd.service +} + +INITSCRIPT_PACKAGES = "${PN}" +INITSCRIPT_NAME_${PN} = "vsftpd" +INITSCRIPT_PARAMS_${PN} = "defaults 80" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --home-dir /var/lib/ftp --no-create-home -g ftp \ + --shell /bin/false ftp " +GROUPADD_PARAM_${PN} = "-r ftp" + +SYSTEMD_SERVICE_${PN} = "vsftpd.service" + +pkg_postinst_${PN}() { + if [ -z "$D" ]; then + if type systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + fi +} diff --git a/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest b/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest new file mode 100644 index 00000000000..f1c833e6cae --- /dev/null +++ b/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest @@ -0,0 +1,21 @@ +#!/bin/sh +# + +# prepare testing config +CONF_USERS=`readlink -f /etc/raddb/users` +mv ${CONF_USERS} ${CONF_USERS}_orig +echo "testing Cleartext-Password := \"testpassword\"" > ${CONF_USERS} +cat ${CONF_USERS}_orig >> ${CONF_USERS} + +# restart radiusd server +systemctl restart radiusd || /etc/init.d/radiusd restart || { + echo "FAIL: Start radiusd service." + exit 1 +} + +# run teests +perl test.pl + +# restore the config and restart +mv ${CONF_USERS}_orig ${CONF_USERS} +systemctl restart radiusd || /etc/init.d/radiusd restart diff --git a/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch b/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch new file mode 100644 index 00000000000..9798af497cd --- /dev/null +++ b/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch @@ -0,0 +1,90 @@ +From 829302792bf0e4935d29efc23ca1f2e9e7ee7dfd Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Thu, 7 Jan 2016 03:12:38 -0500 +Subject: [PATCH] test.pl: adjust for ptest + +* Don't use interactive inputs, set default test + settings instead. +* Change the test results output to the ptest format + +Upstream-Status: Inappropriate [OE ptest specific] + +Signed-off-by: Jackie Huang +--- + test.pl | 31 ++++++++++++++++++------------- + 1 file changed, 18 insertions(+), 13 deletions(-) + +diff --git a/test.pl b/test.pl +index cfd1c1e..9b4f10e 100644 +--- a/test.pl ++++ b/test.pl +@@ -7,11 +7,11 @@ + # Change 1..1 below to 1..last_test_to_print . + # (It may become useful if the test is moved to ./t subdirectory.) + +-BEGIN {print "1..5\n";} +-END {print "not ok 1\n" unless $loaded;} ++BEGIN {print "Start testing for libauthen-radius-perl\n";} ++END {print "\nFAIL: test1\n" unless $loaded;} + use Authen::Radius; + $loaded = 1; +-print "ok 1\n"; ++print "\nPASS: test1\n"; + + ######################### End of black magic. + +@@ -19,26 +19,31 @@ print "ok 1\n"; + # (correspondingly "not ok 13") depending on the success of chunk 13 + # of the test code): + ++$host = "127.0.0.1"; ++$secret = "testing123"; ++$user = "testing"; ++$pwd = "testpassword"; ++ + print "Make sure this machine is in your Radius clients file!\n"; +-print "Enter hostname[:port] of your Radius server: "; chomp ($host = ); +-print "Enter shared-secret of your Radius server: "; chomp ($secret = ); +-print "Enter a username to be validated: "; chomp ($user = ); +-print "Enter this user's password: "; chomp ($pwd = ); ++print "hostname of your Radius server: $host\n"; ++print "shared-secret of your Radius server: $secret\n"; ++print "The username to be validated: $user\n"; ++print "The user's password: $pwd\n"; + + $t = 2; + if ($host ne '') { + $r = new Authen::Radius(Host => $host, Secret => $secret, Debug => 1); +- print defined($r) ? "" : "not ", "ok $t\n"; $t++; ++ print defined($r) ? "\nPASS: test$t\n" : "\nFAIL: test$t\n"; $t++; + #Authen::Radius->load_dictionary; +- print $r->check_pwd($user, $pwd) ? "" : "not ", "ok $t\n"; $t++; ++ print $r->check_pwd($user, $pwd) ? "\nPASS: test$t\n" : "\nFAIL: test$t\n"; $t++; + @a = $r->get_attributes; +- print $#a != -1 ? "" : "not ", "ok $t\n"; $t++; ++ print $#a != -1 ? "\nPASS: test$t\n" : "\nFAIL: test$t\n"; $t++; + #for $a (@a) { + # print "attr: name=$a->{'Name'} value=$a->{'Value'}\n"; + #} + } else { + foreach my $t (2..4) { +- print "skipped $t\n"; ++ print "\nSKIP test$t\n"; + } + } + +@@ -53,9 +58,9 @@ my $data = "what do ya want for nothing?"; + my $etalon_digest = hex_to_ascii("750c783e6ab0b503eaa86e310a5db738"); + my $digest = Authen::Radius::hmac_md5(undef, $data, $key); + if ($etalon_digest eq $digest) { +- print "ok 5\n"; ++ print "\nPASS: test5\n"; + } else { +- print "not ok 5\n"; ++ print "\nFAIL: test5\n"; + } + + exit; +-- +1.9.1 + diff --git a/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb b/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb new file mode 100644 index 00000000000..ea5bb1b0c9e --- /dev/null +++ b/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb @@ -0,0 +1,39 @@ +SUMMARY = "Authen::Radius - provide simple Radius client facilities" +DESCRIPTION = "The Authen::Radius module provides a simple class that \ + allows you to send/receive Radius requests/responses to/from a \ + Radius server. \ +" + +HOMEPAGE = "http://search.cpan.org/~manowar/RadiusPerl" +SECTION = "libs" + +LICENSE = "Artistic-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=78ab6ea0cba1f1ec1680ebb149e3bc11" + +DEPENDS = "perl" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MANOWAR/RadiusPerl-${PV}.tar.gz \ + file://test.pl-adjust-for-ptest.patch \ + file://run-ptest \ +" +SRC_URI[md5sum] = "d1fe2d6ecf7ea99299e4e3a8f945aad8" +SRC_URI[sha256sum] = "3b276506986ccaa4949d92b13ce053a0017ad11562a991cc753364923fe81ca7" + +S = "${WORKDIR}/Authen-Radius-${PV}" + +inherit cpan ptest + +do_install_ptest() { + install -m 0755 ${S}/test.pl ${D}${PTEST_PATH} +} + +RDEPENDS_${PN} += "\ + libdata-hexdump-perl \ + perl-module-digest-md5 \ + perl-module-data-dumper \ + perl-module-io-select \ + perl-module-io-socket \ +" +RDEPENDS_${PN}-ptest += "${PN} freeradius" + +BBCLASSEXTEND = "native" diff --git a/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb b/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb new file mode 100644 index 00000000000..3dbc8b13e54 --- /dev/null +++ b/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb @@ -0,0 +1,29 @@ +# +# Copyright (C) 2012 Wind River Systems, Inc. +# +SUMMARY = "Provides a wrapper in Python to LDAP" +DESCRIPTION = "This module provides access to the LDAP \ +(Lightweight Directory Access Protocol) through Python operations \ +instead of C API. The module mainly acts as a wrapper for the \ +OpenLDAP 2.x libraries. Errors will appear as exceptions." + +LICENSE = "PSF" +HOMEPAGE = "http://www.python-ldap.org/" +DEPENDS = "python openldap cyrus-sasl" + +PYPI_PACKAGE = "python-ldap" +inherit pypi setuptools + +LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555" +SRC_URI[md5sum] = "18db2d009150ec1864710fea3ed76173" +SRC_URI[sha256sum] = "6d430ecf040f2fc704ee316d3390cb1f5419c191371e1e131baef54a0e42cef0" + +do_configure_prepend() { + sed -i -e 's:^library_dirs =.*::' setup.cfg + sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' setup.cfg +} + +RDEPENDS_${PN} = " \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-networking/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch b/meta-networking/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch new file mode 100644 index 00000000000..fe4b0793fe5 --- /dev/null +++ b/meta-networking/recipes-extended/corosync/corosync/0001-Include-fcntl.h-for-F_-and-O_-defines.patch @@ -0,0 +1,28 @@ +From 85ea47fedbc96ed9180e08b0d371d9966e3a88da Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 30 Aug 2017 17:28:55 -0700 +Subject: [PATCH] Include fcntl.h for F_* and O_* defines + +Fixes errors like +utils.c:95:22: error: use of undeclared identifier 'O_WRONLY' + +Signed-off-by: Khem Raj +--- + qdevices/utils.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/qdevices/utils.c b/qdevices/utils.c +index 41850b8c..87090853 100644 +--- a/qdevices/utils.c ++++ b/qdevices/utils.c +@@ -39,6 +39,7 @@ + + #include + #include ++#include + #include + #include + #include +-- +2.14.1 + diff --git a/meta-networking/recipes-extended/corosync/corosync_2.4.2.bb b/meta-networking/recipes-extended/corosync/corosync_2.4.2.bb new file mode 100644 index 00000000000..33e74e2ff84 --- /dev/null +++ b/meta-networking/recipes-extended/corosync/corosync_2.4.2.bb @@ -0,0 +1,80 @@ +SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces" +DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \ +APIs and libraries, default configuration files, and an init script." +HOMEPAGE = "http://corosync.github.io/corosync/" + +SECTION = "base" + +inherit autotools pkgconfig systemd useradd + +SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz \ + file://0001-Include-fcntl.h-for-F_-and-O_-defines.patch \ + " +SRC_URI[md5sum] = "547fa78704da53aa35912be58d31035f" +SRC_URI[sha256sum] = "f26e3011309fe4bcce94b1dc20ea8c462f19483a73f3ca62f13b925d011a4ba9" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d" + +DEPENDS = "groff-native nss libqb" + +SYSTEMD_SERVICE_${PN} = "corosync.service corosync-notifyd.service \ + ${@bb.utils.contains('PACKAGECONFIG', 'qdevice', 'corosync-qdevice.service', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'corosync-qnetd.service', '', d)} \ +" +SYSTEMD_AUTO_ENABLE = "enable" + +INITSCRIPT_NAME = "corosync-daemon" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + dbus qdevice qnetd snmp \ +" + +PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" +PACKAGECONFIG[qdevice] = "--enable-qdevices,--disable-qdevices" +PACKAGECONFIG[qnetd] = "--enable-qnetd,--disable-qnetd" +PACKAGECONFIG[rdma] = "--enable-rdma,--disable-rdma" +PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp" +PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_system_unitdir},--disable-systemd --without-systemddir,systemd" + +EXTRA_OECONF = "ac_cv_path_BASHPATH=${base_bindir}/bash" +EXTRA_OEMAKE = "tmpfilesdir_DATA=" + +do_configure_prepend() { + ( cd ${S} + ${S}/autogen.sh ) +} + +do_install_append() { + install -d ${D}${sysconfdir}/sysconfig/ + install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync + install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd + + rm -rf "${D}${localstatedir}/run" + + install -d ${D}${sysconfdir}/default/volatiles + echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync + + if ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'true', 'false', d)}; then + chown -R coroqnetd:coroqnetd ${D}${sysconfdir}/${BPN}/qnetd + echo "d coroqnetd coroqnetd 0770 /var/run/corosync-qnetd none" >> ${D}${sysconfdir}/default/volatiles/05_corosync + fi + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf + + if ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'true', 'false', d)}; then + install -m 0644 ${S}/conf/tmpfiles.d/corosync-qnetd.conf ${D}${sysconfdir}/tmpfiles.d + fi + fi +} + +RDEPENDS_${PN} += "bash" + +FILES_${PN}-dbg += "${libexecdir}/lcrso/.debug" +FILES_${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system coroqnetd" +USERADD_PARAM_${PN} = "--system -d / -M -s /bin/nologin -c 'User for corosync-qnetd' -g coroqnetd coroqnetd" diff --git a/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch b/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch new file mode 100644 index 00000000000..69b2f903c3e --- /dev/null +++ b/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch @@ -0,0 +1,36 @@ +diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile +--- dlm-4.0.2.orig/dlm_controld/Makefile 2017-04-04 10:49:23.661320260 +0200 ++++ dlm-4.0.2/dlm_controld/Makefile 2017-04-04 10:50:36.121326429 +0200 +@@ -55,7 +55,7 @@ + BIN_CFLAGS += -fPIE -DPIE + BIN_CFLAGS += -I../include -I../libdlm + +-BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie ++BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie + BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum + + LIB_CFLAGS += $(BIN_CFLAGS) +diff -uNr dlm-4.0.2.orig/dlm_tool/Makefile dlm-4.0.2/dlm_tool/Makefile +--- dlm-4.0.2.orig/dlm_tool/Makefile 2013-07-31 17:50:26.000000000 +0200 ++++ dlm-4.0.2/dlm_tool/Makefile 2017-04-04 10:50:44.617327153 +0200 +@@ -32,7 +32,7 @@ + BIN_CFLAGS += -fPIE -DPIE + BIN_CFLAGS += -I../include -I../libdlm -I../dlm_controld + +-BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie ++BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie + BIN_LDFLAGS += -L../libdlm -L../dlm_controld + BIN_LDFLAGS += -lpthread -ldlm -ldlmcontrol + +diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile +--- dlm-4.0.2.orig/dlm_controld/Makefile 2017-04-04 11:02:58.578389641 +0200 ++++ dlm-4.0.2/dlm_controld/Makefile 2017-04-04 11:07:55.672414935 +0200 +@@ -59,7 +59,7 @@ + BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum + + LIB_CFLAGS += $(BIN_CFLAGS) +-LIB_LDFLAGS += -Wl,-z,relro -pie ++LIB_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -pie + + ifeq ($(USE_SD_NOTIFY),yes) + BIN_CFLAGS += $(shell pkg-config --cflags libsystemd-daemon) \ diff --git a/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb b/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb similarity index 89% rename from meta-oe/recipes-extended/dlm/dlm_4.0.2.bb rename to meta-networking/recipes-extended/dlm/dlm_4.0.2.bb index 560630c74bb..31e411e86d1 100644 --- a/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb +++ b/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb @@ -5,7 +5,9 @@ HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage" REQUIRED_DISTRO_FEATURES = "systemd" -SRC_URI = "https://git.fedorahosted.org/cgit/dlm.git/snapshot/${BP}.tar.xz" +SRC_URI = "https://git.fedorahosted.org/cgit/dlm.git/snapshot/${BP}.tar.xz \ + file://respect-ldflags-also-from-bin_ldflags.patch \ +" SRC_URI[md5sum] = "efc2ee6093aa6aa0a88aaad83e998a3f" SRC_URI[sha256sum] = "b89bc557aaffbab0ac005398025f247718a5589cff6574d902eaffe2b20e683e" @@ -37,7 +39,7 @@ do_install_append (){ install -m 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm # install systemd unit files - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_unitdir}/system install -m 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system fi diff --git a/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch b/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch new file mode 100644 index 00000000000..4426d3552d8 --- /dev/null +++ b/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch @@ -0,0 +1,40 @@ +From cbc5f8151017f45231b75a826f18354a81c287c4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 07:52:59 -0700 +Subject: [PATCH] kernel/event: netlink_ack() now requires 4 arguments + +see https://patchwork.kernel.org/patch/9670181/ + +event.c:32:4: error: too few arguments to function 'netlink_ack' +| netlink_ack(skb, nlh, 0); +| ^~~~~~~~~~~ + +Signed-off-by: Khem Raj +--- + kernel/event.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: iscsitarget-1.4.20.3+svn502/kernel/event.c +=================================================================== +--- iscsitarget-1.4.20.3+svn502.orig/kernel/event.c ++++ iscsitarget-1.4.20.3+svn502/kernel/event.c +@@ -6,6 +6,7 @@ + * Some functions are based on audit code. + */ + ++#include + #include + #include + #include "iet_u.h" +@@ -29,7 +30,11 @@ static void event_recv_skb(struct sk_buf + ietd_pid = NETLINK_CB(skb).portid; + WARN_ON(ietd_pid == 0); + if (nlh->nlmsg_flags & NLM_F_ACK) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ netlink_ack(skb, nlh, 0, NULL); ++#else + netlink_ack(skb, nlh, 0); ++#endif + skb_pull(skb, rlen); + } + } diff --git a/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch b/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch new file mode 100644 index 00000000000..4444234b2ed --- /dev/null +++ b/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch @@ -0,0 +1,28 @@ +The element skc_v6_daddr (in struct sock_common) is defined in +kernel source only when CONFIG_IPV6 is enabled. Hence, access +sk_v6_daddr element (i.e __sk_common.skc_v6_daddr) only when CONFIG_IPV6 +is defined; to fix below error in world build: + +-- snip -- +/home/jenkins/oe/world/shr-core/tmp-glibc/work-shared/qemux86/kernel-source/include/net/sock.h:330:33: error: 'struct sock_common' has no member named 'skc_v6_daddr' +-- CUT -- + +Upstream-Status: Pending + +Signed-off-by: Jagadeesh Krishnanjanappa + +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2015-12-29 21:57:50.547932217 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2015-12-29 22:47:25.254657627 -0800 +@@ -46,10 +46,12 @@ void conn_info_show(struct seq_file *seq + snprintf(buf, sizeof(buf), + "%pI4", &inet_sk(sk)->inet_daddr); + break; ++#if defined(CONFIG_IPV6) + case AF_INET6: + snprintf(buf, sizeof(buf), "[%pI6]", + &(sk)->sk_v6_daddr); + break; ++#endif /* defined(CONFIG_IPV6) */ + default: + break; + } diff --git a/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch b/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch new file mode 100644 index 00000000000..bce38baee51 --- /dev/null +++ b/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch @@ -0,0 +1,108 @@ +Description: Fix source to compile with 4.3+ kernels + commit 4246a0b63bd8f56a1469b12eafeb875b1041a451 + block: add a bi_error field to struct bio + -> Removes BIO_UPTODATE and error argument to bio_endio. + commit b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c + block: remove bio_get_nr_vecs() + -> Removed that call (always use BIO_MAX_PAGES) + commit 676d23690fb62b5d51ba5d659935e9f7d9da9f8e + net: Fix use after free by removing length arg from sk_data_ready callbacks. + -> Removes len argument from sk_data_ready() callback. +Author: Stefan Bader + +The original patch is at http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz, +those changes were taken using #ifs to allow compilation of iscsitarget +package with kernel versions < 4.3. + +Upstream-Status: Submitted [http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz] + +Signed-off-by: Jagadeesh Krishnanjanappa + +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 00:46:28.263951115 -0800 +@@ -29,14 +29,23 @@ struct tio_work { + struct completion tio_complete; + }; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++static void blockio_bio_endio(struct bio *bio) ++#else + static void blockio_bio_endio(struct bio *bio, int error) ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + { + struct tio_work *tio_work = bio->bi_private; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ if (bio->bi_error) ++ atomic_set(&tio_work->error, bio->bi_error); ++#else + error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO; + + if (error) + atomic_set(&tio_work->error, error); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + + /* If last bio signal completion */ + if (atomic_dec_and_test(&tio_work->bios_remaining)) +@@ -61,14 +70,20 @@ blockio_make_request(struct iet_volume * + u32 size = tio->size; + u32 tio_index = 0; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ int max_pages = bdev_q ? BIO_MAX_PAGES : 1; ++#else + int max_pages = 1; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + int err = 0; + + loff_t ppos = tio->offset; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) + /* Calculate max_pages for bio_alloc (memory saver) */ + if (bdev_q) + max_pages = bio_get_nr_vecs(bio_data->bdev); ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) */ + + tio_work = kzalloc(sizeof (*tio_work), GFP_KERNEL); + if (!tio_work) +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 00:39:09.737117778 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 00:52:30.037223901 -0800 +@@ -89,13 +89,21 @@ static void iet_state_change(struct sock + target->nthread_info.old_state_change(sk); + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++static void iet_data_ready(struct sock *sk) ++#else + static void iet_data_ready(struct sock *sk, int len) ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + { + struct iscsi_conn *conn = sk->sk_user_data; + struct iscsi_target *target = conn->session->target; + + nthread_wakeup(target); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ target->nthread_info.old_data_ready(sk); ++#else + target->nthread_info.old_data_ready(sk, len); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + } + + /* +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h +--- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 00:48:02.102837260 -0800 +@@ -81,7 +81,11 @@ struct network_thread_info { + spinlock_t nthread_lock; + + void (*old_state_change)(struct sock *); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ void (*old_data_ready)(struct sock *); ++#else + void (*old_data_ready)(struct sock *, int); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + void (*old_write_space)(struct sock *); + }; + diff --git a/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch b/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch new file mode 100644 index 00000000000..e508a5e6cda --- /dev/null +++ b/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch @@ -0,0 +1,475 @@ +Resolve build error with linux kernel 4.8 + +The below changes in kernel source, triggered iscsitarget +build fail with linux kernel v4.8. + +1. An extra 'flags' argument has been passed to vfs_readv/vfs_writev + syscalls in v4.8. So, set this argument to "0" for now + (as there is no real need for that). + Ref: https://github.com/torvalds/linux/commit/793b80ef14af56d20c998265287648ad34239b6f + Solves: + -- snip -- +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c: In function 'write_data': +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:350:9: error: too few arguments to function 'vfs_writev' + res = vfs_writev(file, (struct iovec __user *) iop, count, &off); + ^~~~~~~~~~ + -- snip -- + +2. Redefine dropped PAGE_CACHE_* and page_cache_{get,release} definitions, + as they have been dropped with v4.8 + Ref: https://github.com/torvalds/linux/commit/1fa64f198b9f8d6ec0f7aec7c18dc94684391140 + Solves: + -- snip -- +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c: In function 'sess_param_check': +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c:48:41: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function) + (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE)); + ^ + -- snip -- + +3. Replace crypto_hash interfaces with crypto_ahash interfaces, + Ref: https://github.com/torvalds/linux/commit/896545098777564212b9e91af4c973f094649aa7 + Ref: https://www.redhat.com/archives/dm-devel/2016-January/msg00244.html + Solves: + -- snip -- +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_init': +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:42:23: error: implicit declaration of function 'crypto_alloc_hash' [-Werror=implicit-function-declaration] + conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, + ^~~~~~~~~~~~~~~~~ +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_cleanup': +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:77:3: error: implicit declaration of function 'crypto_free_hash' [-Werror=implicit-function-declaration] + crypto_free_hash(conn->tx_hash.tfm); + ^~~~~~~~~~~~~~~~ + -- snip -- + +4. The earlier "rw" parameter has been set in "bi_rw" within + bio structure, hence remove "rw" argument. + Ref: https://github.com/torvalds/linux/commit/4e49ea4a3d276365bf7396c9b77b4d1d5923835a + Solves: +-- snip -- +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/block-io.c:140:14: warning: passing argument 1 of 'submit_bio' makes pointer from integer without a cast [-Wint-conversion] + submit_bio(rw, bio); + ^~ +-- snip -- + +5. The 'len' argument from sk_data_ready() callback has been removed in + linux kernel v4.3 and above. + Ref: https://github.com/torvalds/linux/commit/676d23690fb62b5d51ba5d659935e9f7d9da9f8e + Solves: +-- snip -- +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c: In function 'iet_socket_bind': +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:143:38: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] + target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready; + ^ +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:144:32: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] + conn->sock->sk->sk_data_ready = iet_data_ready; + ^ +-- snip -- + +6. + A. The "size" argument has been dropped from sock_recvmsg syscall in v4.8, + as all callers have it equal to msg_data_left(msg). + B. 'struct user_msghdr' is being used for userland-side msghdr instead + of 'struct msghdr', which is used for kernel-side msghdr in linux v3.19 + and above, so typecase it while calling sock_recvmsg syscall. + Ref: https://github.com/torvalds/linux/commit/2da62906b1e298695e1bb725927041cd59942c98 + https://github.com/torvalds/linux/commit/666547ff591cebdedc4679bf6b1b3f3383a8dea3 + Solves: + -- snip -- +TOPDIR/tmp-glibc/work-shared/qemux86/kernel-source/include/linux/net.h:222:5: note: expected 'struct msghdr *' but argument is of type 'struct user_msghdr *' + int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags); + ^~~~~~~~~~~~ +TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:129:8: error: too many arguments to function 'sock_recvmsg' + res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL); + ^~~~~~~~~~~~ + -- snip -- + +Detailed error log is at: http://errors.yoctoproject.org/Errors/Details/83334/ + +Upstream-Status: Pending + +Signed-off-by: Jagadeesh Krishnanjanappa + +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2017-01-19 20:19:27.400507354 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 20:32:22.977988593 -0800 +@@ -104,7 +104,11 @@ blockio_make_request(struct iet_volume * + /* bi_sector is ALWAYS in units of 512 bytes */ + bio->bi_iter.bi_sector = ppos >> 9; + bio->bi_bdev = bio_data->bdev; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ bio->bi_end_io = (bio_end_io_t *) blockio_bio_endio; ++#else + bio->bi_end_io = blockio_bio_endio; ++#endif + bio->bi_private = tio_work; + + if (tio_bio) +@@ -139,7 +143,12 @@ blockio_make_request(struct iet_volume * + tio_bio = tio_bio->bi_next; + bio->bi_next = NULL; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ bio_set_op_attrs(bio, REQ_OP_WRITE, 0); ++ submit_bio(bio); ++#else + submit_bio(rw, bio); ++#endif + } + + blk_finish_plug(&plug); +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 20:19:27.400507354 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 20:32:22.978988614 -0800 +@@ -148,8 +148,14 @@ static void iet_socket_bind(struct iscsi + target->nthread_info.old_state_change = conn->sock->sk->sk_state_change; + conn->sock->sk->sk_state_change = iet_state_change; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ target->nthread_info.old_data_ready = (void (*) (struct sock *)) \ ++ conn->sock->sk->sk_data_ready; ++ conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) iet_data_ready; ++#else + target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready; + conn->sock->sk->sk_data_ready = iet_data_ready; ++#endif + + target->nthread_info.old_write_space = conn->sock->sk->sk_write_space; + conn->sock->sk->sk_write_space = iet_write_space; +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/digest.c iscsitarget-1.4.20.3+svn502/kernel/digest.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/digest.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/digest.c 2017-01-19 20:32:22.978988614 -0800 +@@ -30,6 +30,9 @@ void digest_alg_available(unsigned int * + int digest_init(struct iscsi_conn *conn) + { + int err = 0; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct crypto_ahash *tfm; ++#endif + + if (!(conn->hdigest_type & DIGEST_ALL)) + conn->hdigest_type = DIGEST_NONE; +@@ -39,15 +42,40 @@ int digest_init(struct iscsi_conn *conn) + + if (conn->hdigest_type & DIGEST_CRC32C || + conn->ddigest_type & DIGEST_CRC32C) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ tfm = crypto_alloc_ahash("crc32c", 0, CRYPTO_ALG_ASYNC); ++ if (IS_ERR(tfm)) { ++ tfm = NULL; ++#else + conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, + CRYPTO_ALG_ASYNC); + conn->rx_hash.flags = 0; + if (IS_ERR(conn->rx_hash.tfm)) { + conn->rx_hash.tfm = NULL; ++#endif + err = -ENOMEM; + goto out; + } +- ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ conn->rx_hash = ahash_request_alloc(tfm, GFP_KERNEL); ++ if (!conn->rx_hash) { ++ pr_err("ahash_request_alloc() failed for conn->rx_hash\n"); ++ crypto_free_ahash(tfm); ++ err = -ENOMEM; ++ goto out; ++ } ++ ahash_request_set_callback(conn->rx_hash, 0, NULL, NULL); ++ conn->tx_hash = ahash_request_alloc(tfm, GFP_KERNEL); ++ if(!conn->tx_hash) { ++ pr_err("ahash_request_alloc() failed for conn->tx_hash\n"); ++ ahash_request_free(conn->rx_hash); ++ conn->rx_hash = NULL; ++ crypto_free_ahash(tfm); ++ err = -ENOMEM; ++ goto out; ++ } ++ ahash_request_set_callback(conn->tx_hash, 0, NULL, NULL); ++#else + conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0, + CRYPTO_ALG_ASYNC); + conn->tx_hash.flags = 0; +@@ -56,6 +84,7 @@ int digest_init(struct iscsi_conn *conn) + err = -ENOMEM; + goto out; + } ++#endif + } + + out: +@@ -73,10 +102,21 @@ out: + */ + void digest_cleanup(struct iscsi_conn *conn) + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ ahash_request_free(conn->tx_hash); ++ if (conn->rx_hash) { ++ struct crypto_ahash *tfm; ++ tfm = crypto_ahash_reqtfm(conn->rx_hash); ++ ahash_request_free(conn->rx_hash); ++ crypto_free_ahash(tfm); ++ } ++ ++#else + if (conn->tx_hash.tfm) + crypto_free_hash(conn->tx_hash.tfm); + if (conn->rx_hash.tfm) + crypto_free_hash(conn->rx_hash.tfm); ++#endif + } + + /** +@@ -160,8 +200,13 @@ static inline void __dbg_simulate_data_d + } + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++static void digest_header(struct ahash_request *hash, struct iscsi_pdu *pdu, ++ u8 *crc) ++#else + static void digest_header(struct hash_desc *hash, struct iscsi_pdu *pdu, + u8 *crc) ++#endif + { + struct scatterlist sg[2]; + unsigned int nbytes = sizeof(struct iscsi_hdr); +@@ -174,16 +219,27 @@ static void digest_header(struct hash_de + nbytes += pdu->ahssize; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ crypto_ahash_init(hash); ++ ahash_request_set_crypt(hash, sg, crc, nbytes); ++ crypto_ahash_update(hash); ++ crypto_ahash_digest(hash); ++#else + crypto_hash_init(hash); + crypto_hash_update(hash, sg, nbytes); + crypto_hash_final(hash, crc); ++#endif + } + + int digest_rx_header(struct iscsi_cmnd *cmnd) + { + u32 crc; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ digest_header(cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc); ++#else + digest_header(&cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc); ++#endif + if (crc != cmnd->hdigest) + return -EIO; + +@@ -192,11 +248,20 @@ int digest_rx_header(struct iscsi_cmnd * + + void digest_tx_header(struct iscsi_cmnd *cmnd) + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ digest_header(cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest); ++#else + digest_header(&cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest); ++#endif + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++static void digest_data(struct ahash_request *hash, struct iscsi_cmnd *cmnd, ++ struct tio *tio, u32 offset, u8 *crc) ++#else + static void digest_data(struct hash_desc *hash, struct iscsi_cmnd *cmnd, + struct tio *tio, u32 offset, u8 *crc) ++#endif + { + struct scatterlist *sg = cmnd->conn->hash_sg; + u32 size, length, npages; +@@ -214,7 +279,11 @@ static void digest_data(struct hash_desc + BUG_ON(npages > ISCSI_CONN_IOV_MAX); + + sg_init_table(sg, ARRAY_SIZE(cmnd->conn->hash_sg)); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ crypto_ahash_init(hash); ++#else + crypto_hash_init(hash); ++#endif + + for (i = 0; size > 0; i++) { + length = min_t(u32, PAGE_CACHE_SIZE - offset, size); +@@ -225,8 +294,14 @@ static void digest_data(struct hash_desc + + sg_mark_end(&sg[i - 1]); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ ahash_request_set_crypt(hash, sg, crc, nbytes); ++ crypto_ahash_update(hash); ++ crypto_ahash_digest(hash); ++#else + crypto_hash_update(hash, sg, nbytes); + crypto_hash_final(hash, crc); ++#endif + } + + int digest_rx_data(struct iscsi_cmnd *cmnd) +@@ -251,8 +326,11 @@ int digest_rx_data(struct iscsi_cmnd *cm + tio = cmnd->tio; + offset = 0; + } +- ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ digest_data(cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc); ++#else + digest_data(&cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc); ++#endif + + if (!cmnd->conn->read_overflow && + (cmnd_opcode(cmnd) != ISCSI_OP_PDU_REJECT)) { +@@ -269,6 +347,11 @@ void digest_tx_data(struct iscsi_cmnd *c + struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *)&cmnd->pdu.bhs; + + assert(tio); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ digest_data(cmnd->conn->tx_hash, cmnd, tio, ++ be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest); ++#else + digest_data(&cmnd->conn->tx_hash, cmnd, tio, + be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest); ++#endif + } +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h +--- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2017-01-19 20:19:27.400507354 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 20:32:22.979988634 -0800 +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -275,8 +276,13 @@ struct iscsi_conn { + u32 write_offset; + int write_state; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct ahash_request *rx_hash; ++ struct ahash_request *tx_hash; ++#else + struct hash_desc rx_hash; + struct hash_desc tx_hash; ++#endif + struct scatterlist hash_sg[ISCSI_CONN_IOV_MAX]; + }; + +@@ -552,4 +558,10 @@ enum cmnd_flags { + #define PRODUCT_ID "VIRTUAL-DISK" + #define PRODUCT_REV "0" + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++#define PAGE_CACHE_SHIFT PAGE_SHIFT ++#define PAGE_CACHE_SIZE PAGE_SIZE ++#define PAGE_CACHE_MASK PAGE_MASK ++#endif ++ + #endif /* __ISCSI_H__ */ +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2017-01-19 20:19:27.276504928 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-19 20:32:22.979988634 -0800 +@@ -155,7 +155,12 @@ static int do_recv(struct iscsi_conn *co + + oldfs = get_fs(); + set_fs(get_ds()); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ res = sock_recvmsg(conn->sock, (struct msghdr *) &msg, \ ++ MSG_DONTWAIT | MSG_NOSIGNAL); ++#else + res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL); ++#endif + set_fs(oldfs); + + if (res <= 0) { +@@ -376,7 +381,11 @@ static int write_data(struct iscsi_conn + ; + oldfs = get_fs(); + set_fs(KERNEL_DS); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ res = vfs_writev(file, (struct iovec __user *) iop, count, &off, 0); ++#else + res = vfs_writev(file, (struct iovec __user *) iop, count, &off); ++#endif + set_fs(oldfs); + dprintk(D_DATA, "%#Lx:%u: %d(%ld)\n", + (unsigned long long) conn->session->sid, conn->cid, +@@ -503,7 +512,11 @@ static int tx_ddigest(struct iscsi_cmnd + iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest); + iov.iov_len = rest; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ res = kernel_sendmsg(cmnd->conn->sock, (struct msghdr *) &msg, &iov, 1, rest); ++#else + res = kernel_sendmsg(cmnd->conn->sock, &msg, &iov, 1, rest); ++#endif + + if (res > 0) { + cmnd->conn->write_size -= res; +@@ -702,7 +715,12 @@ static void close_conn(struct iscsi_conn + + write_lock_bh(&conn->sock->sk->sk_callback_lock); + conn->sock->sk->sk_state_change = target->nthread_info.old_state_change; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) \ ++ target->nthread_info.old_data_ready; ++#else + conn->sock->sk->sk_data_ready = target->nthread_info.old_data_ready; ++#endif + conn->sock->sk->sk_write_space = target->nthread_info.old_write_space; + write_unlock_bh(&conn->sock->sk->sk_callback_lock); + +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2017-01-19 20:19:27.276504928 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-19 20:32:22.979988634 -0800 +@@ -84,12 +84,25 @@ static int set_scsisn(struct iet_volume + /* Generate a MD5 hash of the target IQN and LUN number */ + static void gen_scsiid(struct iet_volume *volume) + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ struct ahash_request *hash; ++ struct crypto_ahash *tfm; ++#else + struct hash_desc hash; ++#endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC); ++#else + hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC); + hash.flags = 0; ++#endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ if (!IS_ERR(tfm)) { ++#else + if (!IS_ERR(hash.tfm)) { ++#endif + struct scatterlist sg[2]; + unsigned int nbytes = 0; + +@@ -102,11 +115,19 @@ static void gen_scsiid(struct iet_volume + sg_set_buf(&sg[1], &volume->lun, sizeof(volume->lun)); + nbytes += sizeof(volume->lun); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ crypto_ahash_init(hash); ++ ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes); ++ crypto_ahash_update(hash); ++ crypto_ahash_digest(hash); ++ crypto_free_ahash(tfm); ++#else + crypto_hash_init(&hash); + crypto_hash_update(&hash, sg, nbytes); + crypto_hash_final(&hash, volume->scsi_id); + + crypto_free_hash(hash.tfm); ++#endif + } else { + /* If no MD5 available set ID to TID and LUN */ + memcpy(volume->scsi_id, &volume->target->tid, diff --git a/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch b/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch new file mode 100644 index 00000000000..c99683478b6 --- /dev/null +++ b/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch @@ -0,0 +1,85 @@ +The previous build_with_updated_interfaces_of_linux_v4.8_and_above.patch +does not alloc struct ahash_request before using it. This will cause the +kernel call trace below when calling gen_scsiid on kernel 4.8 or later +version. + +This patch normalizes the calling of ahash API according to the example +in kernel doc Documentation/crypto/api-intro.txt. + +BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 +IP: [] volume_add+0x625/0x7f0 [iscsi_trgt] +PGD dd77067 PUD dd7c067 PMD 0 +Oops: 0000 [#1] PREEMPT SMP +Modules linked in: iscsi_trgt(O) +CPU: 0 PID: 350 Comm: ietd Tainted: G O 4.8.12-yocto-standard #1 +Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 +task: ffff88000dfe2c00 task.stack: ffff88000de88000 +RIP: 0010:[] [] volume_add+0x625/0x7f0 [iscsi_trgt] +RSP: 0018:ffff88000de8bd90 EFLAGS: 00000206 +RAX: 000000000000ddfa RBX: ffff88000ddd1d78 RCX: ffffea0000000000 +RDX: 0000000000000600 RSI: 0000000000000000 RDI: ffff88000ddd1c14 +RBP: ffff88000de8be38 R08: ffff88000de44180 R09: ffff88000de8bdd0 +R10: 000000000000002c R11: 0000000000000000 R12: ffff88000ddfa600 +R13: 0000000000000000 R14: 0000000000000000 R15: ffff88000de92200 +FS: 00007f767548b700(0000) GS:ffff88000fc00000(0000) knlGS:0000000000000000 +CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +CR2: 0000000000000020 CR3: 000000000dd2d000 CR4: 00000000000006f0 +Stack: + ffff88000de8bdd0 ffff88000dc1b3d0 ffff88000ddfa650 ffff88000ddfa660 + ffff88000df8f000 ffff88000ddd1c00 ffff88000de44180 0000000000000000 + ffffea0000377440 0000000f00000c14 0000000000000000 0000000000000000 +Call Trace: + [] ioctl+0x217/0x390 [iscsi_trgt] + [] do_vfs_ioctl+0x94/0x5c0 + [] ? vfs_read+0xf3/0x120 + [] SyS_ioctl+0x79/0x90 + [] entry_SYSCALL_64_fastpath+0x13/0x8f +Code: 4c 01 e0 0f 82 a2 01 00 00 48 b9 00 00 00 80 ff 77 00 00 48 01 +c8 45 31 f6 48 b9 00 00 00 00 00 ea ff ff 89 54 24 68 48 c1 e8 0c <49> +8b 56 20 4c 89 44 24 20 4c 89 f7 48 c1 e0 06 c7 44 24 6c 04 +RIP [] volume_add+0x625/0x7f0 [iscsi_trgt] + RSP +CR2: 0000000000000020 +end trace cd2016297df21635 ] +ietd_response_recv 200 0 -5 +Input/output error. + +Upstream-Status: Pending [This patch is based on the previous one which +has not been merged upstream.] + +Signed-off-by: Zhe He + +--- iscsitarget-1.4.20.3+svn502_orig/kernel/volume.c 2017-01-18 08:57:56.752187402 +0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 09:02:44.164195234 +0800 +@@ -93,13 +93,14 @@ static void gen_scsiid(struct iet_volume + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) + tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC); ++ hash = ahash_request_alloc(tfm, GFP_ATOMIC); + #else + hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC); + hash.flags = 0; + #endif + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) +- if (!IS_ERR(tfm)) { ++ if (tfm && !IS_ERR(tfm)) { + #else + if (!IS_ERR(hash.tfm)) { + #endif +@@ -116,10 +117,13 @@ static void gen_scsiid(struct iet_volume + nbytes += sizeof(volume->lun); + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) +- crypto_ahash_init(hash); ++ ahash_request_set_callback(hash, 0, NULL, NULL); + ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes); +- crypto_ahash_update(hash); + crypto_ahash_digest(hash); ++ crypto_ahash_init(hash); ++ crypto_ahash_update(hash); ++ crypto_ahash_final(hash); ++ ahash_request_free(hash); + crypto_free_ahash(tfm); + #else + crypto_hash_init(&hash); diff --git a/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch b/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch new file mode 100644 index 00000000000..1e6a1d6d3f6 --- /dev/null +++ b/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch @@ -0,0 +1,327 @@ +Description: Fix source to compile on 3.19 kernels +Author: Stefan Bader +Forward: no + +Fixes below inconsistent crash when trying to login to iSCSI target +server, observed with linux kernel v4.1. + +-- snip -- +CPU: 1 PID: 29883 Comm: istd1 Tainted: G O 4.1.35-rt40-yocto-standard #1 +Hardware name: To be filled by O.E.M. To be filled by O.E.M./Larne CRB, BIOS 4.6.5.4 09/18/2014 +task: ffff88020f1f30c0 ti: ffff8800d7f3c000 task.ti: ffff8800d7f3c000 +RIP: 0010:[] [] copy_to_iter+0x3e/0x280 +RSP: 0018:ffff8800d7f3f728 EFLAGS: 00010246 +RAX: 00000000d7f3f928 RBX: 0000000000000030 RCX: 0000000000000030 +RDX: ffff8800d7f3f900 RSI: 0000000000000030 RDI: ffff8800d1501e82 +RBP: ffff8800d7f3f768 R08: 00000000c127d467 R09: 0000000000000000 +R10: ffff88020f29e118 R11: 0000000000000004 R12: ffff8800d7f3f900 +R13: 0000000000000030 R14: 0000000000000001 R15: 0000000000000246 +FS: 00007f86f9c4c700(0000) GS:ffff88021ec80000(0000) knlGS:00000000f7733700 +CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +CR2: 000000000000024e CR3: 00000000d38b0000 CR4: 00000000000406e0 +Stack: +ffff880214f14ec0 ffff8800d1501e82 ffff8800d7f3f748 0000000000000030 +ffff88020f122500 0000000000000030 0000000000000000 0000000000000030 +ffff8800d7f3f7c8 ffffffff81806981 ffff8800d7f3f798 ffffffff8105d72a +Call Trace: +[] skb_copy_datagram_iter+0x71/0x2b0 +[] ? __local_bh_enable_ip+0x4a/0xb0 +[] tcp_recvmsg+0x5e0/0xbb0 +[] inet_recvmsg+0x8d/0xb0 +[] sock_recvmsg+0x13/0x20 +[] do_recv+0xe3/0x1f0 [iscsi_trgt] +[] ? __mod_zone_page_state+0x77/0xb0 +[] ? __this_cpu_preempt_check+0x13/0x20 +[] ? __mod_zone_page_state+0x77/0xb0 +[] ? find_next_bit+0x15/0x30 +[] ? cpumask_next_and+0x30/0x50 +[] ? __alloc_pages_nodemask+0x165/0x980 +[] ? preempt_count_add+0xd0/0xf0 +[] ? _raw_spin_lock+0x1b/0x60 +[] ? cpuacct_charge+0x58/0x70 +[] ? update_curr+0xb9/0x190 +[] ? __this_cpu_preempt_check+0x13/0x20 +[] ? __perf_event_task_sched_in+0x4f/0x90 +[] ? _raw_spin_unlock_irq+0x1d/0x40 +[] ? finish_task_switch+0x63/0xe0 +[] ? __schedule+0x38b/0x980 +[] ? preempt_count_add+0xd0/0xf0 +[] istd+0x4d5/0x1390 [iscsi_trgt] +[] ? __schedule+0x38b/0x980 +[] ? nthread_wakeup+0x40/0x40 [iscsi_trgt] +[] ? nthread_wakeup+0x40/0x40 [iscsi_trgt] +[] kthread+0xbb/0xe0 +[] ? wireless_dev_seq_show+0x100/0x180 +[] ? kthread_worker_fn+0x170/0x170 +[] ret_from_fork+0x42/0x70 +[] ? kthread_worker_fn+0x170/0x170 +Code: 5a 10 48 89 7d c8 48 39 f3 48 0f 47 de 48 85 db 0f 84 6f 01 00 00 8b 02 49 89 +d4 4c 8b 72 08 4c 8b 7a 18 a8 04 0f 85 a2 00 00 00 <4d> 8b 6f 08 4d 29 f5 49 39 dd 4c 0f 47 eb a8 02 0f 85 5c 01 00 +RSP +CR2: 000000000000024e +------------[ cut here ]------------ +-- snip -- + +The original patch is at +http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz, +those changes were taken using #ifs, inorder to allow compilation of +iscsitarget package with linux kernels < 3.19. + +Upstream-Status: Submitted [http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz] + +Signed-off-by: Jagadeesh Krishnanjanappa + +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-18 22:27:02.713167436 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-18 23:13:11.909214379 -0800 +@@ -129,7 +129,11 @@ static void iet_socket_bind(struct iscsi + + dprintk(D_GENERIC, "%llu\n", (unsigned long long) session->sid); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ conn->sock = SOCKET_I(file_inode(conn->file)); ++#else + conn->sock = SOCKET_I(conn->file->f_dentry->d_inode); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + conn->sock->sk->sk_user_data = conn; + + write_lock_bh(&conn->sock->sk->sk_callback_lock); +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c iscsitarget-1.4.20.3+svn502/kernel/file-io.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/file-io.c 2017-01-18 23:54:38.505717079 -0800 +@@ -69,7 +69,11 @@ static int fileio_make_request(struct ie + static int fileio_sync(struct iet_volume *lu, struct tio *tio) + { + struct fileio_data *p = lu->private; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ struct inode *inode = file_inode(p->filp); ++#else + struct inode *inode = p->filp->f_dentry->d_inode; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + struct address_space *mapping = inode->i_mapping; + loff_t ppos, count; + int res; +@@ -213,7 +217,11 @@ static int fileio_attach(struct iet_volu + eprintk("%d\n", err); + goto out; + } ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ inode = file_inode(p->filp); ++#else + inode = p->filp->f_dentry->d_inode; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + + if (S_ISREG(inode->i_mode)) + ; +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c iscsitarget-1.4.20.3+svn502/kernel/iscsi.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.c 2017-01-18 23:37:36.462970326 -0800 +@@ -489,8 +489,12 @@ static void cmnd_skip_pdu(struct iscsi_c + } + conn->read_iov[i].iov_base = addr; + conn->read_iov[i].iov_len = size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size); ++#else + conn->read_msg.msg_iov = conn->read_iov; + conn->read_msg.msg_iovlen = ++i; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + } + + static void iscsi_cmnd_reject(struct iscsi_cmnd *req, int reason) +@@ -718,7 +722,9 @@ static int cmnd_recv_pdu(struct iscsi_co + idx = offset >> PAGE_CACHE_SHIFT; + offset &= ~PAGE_CACHE_MASK; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + conn->read_msg.msg_iov = conn->read_iov; ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ + conn->read_size = size = (size + 3) & -4; + conn->read_overflow = 0; + +@@ -730,16 +736,25 @@ static int cmnd_recv_pdu(struct iscsi_co + conn->read_iov[i].iov_base = addr + offset; + if (offset + size <= PAGE_CACHE_SIZE) { + conn->read_iov[i].iov_len = size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size); ++#else + conn->read_msg.msg_iovlen = ++i; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + break; + } + conn->read_iov[i].iov_len = PAGE_CACHE_SIZE - offset; + size -= conn->read_iov[i].iov_len; + offset = 0; + if (++i >= ISCSI_CONN_IOV_MAX) { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + conn->read_msg.msg_iovlen = i; ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ + conn->read_overflow = size; + conn->read_size -= size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + break; + } + +@@ -918,7 +933,9 @@ static int nop_out_start(struct iscsi_co + + if ((size = cmnd->pdu.datasize)) { + size = (size + 3) & -4; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + conn->read_msg.msg_iov = conn->read_iov; ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ + if (cmnd->pdu.bhs.itt != cpu_to_be32(ISCSI_RESERVED_TAG)) { + struct tio *tio; + int pg_cnt = get_pgcnt(size); +@@ -946,7 +963,11 @@ static int nop_out_start(struct iscsi_co + } + assert(!size); + conn->read_overflow = size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size); ++#else + conn->read_msg.msg_iovlen = i; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + } + + out: +@@ -986,7 +1007,11 @@ static void scsi_cmnd_start(struct iscsi + set_cmnd_lunit(req); + + switch (req_hdr->scb[0]) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ case SERVICE_ACTION_IN_16: ++#else + case SERVICE_ACTION_IN: ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + if ((req_hdr->scb[1] & 0x1f) != 0x10) + goto error; + case INQUIRY: +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-18 23:45:03.291033881 -0800 +@@ -42,9 +42,14 @@ static inline void iscsi_conn_init_read( + len = (len + 3) & -4; // XXX ??? + conn->read_iov[0].iov_base = data; + conn->read_iov[0].iov_len = len; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + conn->read_msg.msg_iov = conn->read_iov; + conn->read_msg.msg_iovlen = 1; ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ + conn->read_size = (len + 3) & -4; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, 1, conn->read_size); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + } + + static void iscsi_conn_read_ahs(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) +@@ -83,14 +88,31 @@ static int is_data_available(struct iscs + + static void forward_iov(struct msghdr *msg, int len) + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ struct iovec *iov; ++ ++ while (msg->msg_iter.iov->iov_len <= len) { ++ len -= msg->msg_iter.iov->iov_len; ++ msg->msg_iter.iov++; ++ msg->msg_iter.nr_segs--; ++ } ++#else + while (msg->msg_iov->iov_len <= len) { + len -= msg->msg_iov->iov_len; + msg->msg_iov++; + msg->msg_iovlen--; + } ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ /* XXX: discards const ... */ ++ iov = msg->msg_iter.iov; ++ iov->iov_base = (char *) msg->msg_iter.iov->iov_base + len; ++ iov->iov_len -= len; ++#else + msg->msg_iov->iov_base = (char *) msg->msg_iov->iov_base + len; + msg->msg_iov->iov_len -= len; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + } + + static int do_recv(struct iscsi_conn *conn, int state) +@@ -98,6 +120,9 @@ static int do_recv(struct iscsi_conn *co + mm_segment_t oldfs; + struct msghdr msg; + struct iovec iov[ISCSI_CONN_IOV_MAX]; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ size_t iovlen = ISCSI_CONN_IOV_MAX; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + int i, len, res; + + if (!test_bit(CONN_ACTIVE, &conn->state)) { +@@ -110,12 +135,23 @@ static int do_recv(struct iscsi_conn *co + goto out; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ if (conn->read_msg.msg_iter.nr_segs < iovlen) ++ iovlen = conn->read_msg.msg_iter.nr_segs; ++ ++ for (i = 0, len = 0; i < iovlen; i++) { ++ iov[i] = conn->read_msg.msg_iter.iov[i]; ++ len += iov[i].iov_len; ++ } ++ iov_iter_init(&msg.msg_iter, READ, iov, iovlen, len); ++#else + msg.msg_iov = iov; + msg.msg_iovlen = min_t(size_t, conn->read_msg.msg_iovlen, ISCSI_CONN_IOV_MAX); + for (i = 0, len = 0; i < msg.msg_iovlen; i++) { + iov[i] = conn->read_msg.msg_iov[i]; + len += iov[i].iov_len; + } ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + + oldfs = get_fs(); + set_fs(get_ds()); +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c iscsitarget-1.4.20.3+svn502/kernel/target_disk.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/target_disk.c 2017-01-18 23:45:51.451010417 -0800 +@@ -606,7 +606,11 @@ static int disk_execute_cmnd(struct iscs + case REQUEST_SENSE: + send_data_rsp(cmnd, build_request_sense_response); + break; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ case SERVICE_ACTION_IN_16: ++#else + case SERVICE_ACTION_IN: ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + send_data_rsp(cmnd, build_service_action_in_response); + break; + case READ_6: +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 23:47:07.957561600 -0800 +@@ -398,7 +398,11 @@ int is_volume_reserved(struct iet_volume + case READ_CAPACITY: + /* allowed commands when reserved */ + break; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ case SERVICE_ACTION_IN_16: ++#else + case SERVICE_ACTION_IN: ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + if ((scb[1] & 0x1F) == 0x10) + break; + /* fall through */ +@@ -465,7 +469,11 @@ int is_volume_reserved(struct iet_volume + if (excl_access_ro && !registered) + err = -EBUSY; + break; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ case SERVICE_ACTION_IN_16: ++#else + case SERVICE_ACTION_IN: ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + if ((scb[1] & 0x1F) == 0x10) + break; + /* fall through */ diff --git a/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch b/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch new file mode 100644 index 00000000000..95bd047b97a --- /dev/null +++ b/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch @@ -0,0 +1,67 @@ +Get linux kernel version from Makefile of kernel source + +We get below messages while building iscsitarget, + +-- snip -- +x86_64-poky-linux-gcc: error: +/CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work-shared/qemux86-64/kernel-source/include/linux/version.h: +No such file or directory +x86_64-poky-linux-gcc: fatal error: no input files +compilation terminated. +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +/bin/sh: line 0: [: too many arguments +-- CUT -- + +These messages are due to absence of include/linux/version.h file in +kernel source directory and failed to compute linux kernel version. +So, use kernel source Makefile ( i.e $(KSRC)/Makefile) to find out +actual kernel version. + +Upstream-Status: Pending + +Signed-off-by: Jagadeesh Krishnanjanappa + +--- iscsitarget-1.4.20.3+svn499_org/Makefile 2014-01-27 00:00:45.000000000 +0530 ++++ iscsitarget-1.4.20.3+svn499/Makefile 2015-07-23 10:44:47.013600285 +0530 +@@ -18,27 +18,11 @@ ifeq ($(KSRC),) + endif + + +-ifneq ($(wildcard $(KSRC)/include/generated/utsrelease.h),) +- VERSION_FILE := $(KSRC)/include/generated/utsrelease.h +-else +- ifneq ($(wildcard $(KSRC)/include/linux/utsrelease.h),) +- VERSION_FILE := $(KSRC)/include/linux/utsrelease.h +- else +- VERSION_FILE := $(KSRC)/include/linux/version.h +- endif +-endif +- +-KVER := $(shell $(CC) $(CFLAGS) $(LDFLAGS) -E -dM $(VERSION_FILE) | \ +- grep UTS_RELEASE | awk '{ print $$3 }' | sed 's/\"//g') +- + KMOD := /lib/modules/$(KVER)/extra +- +-KMAJ := $(shell echo $(KVER) | \ +- sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/') +-KMIN := $(shell echo $(KVER) | \ +- sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/') +-KREV := $(shell echo $(KVER) | \ +- sed -e 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/') ++KMAJ := $(shell cat $(KSRC)/Makefile | grep ^VERSION | gawk -F " " '{ print $$NF }') ++KMIN := $(shell cat $(KSRC)/Makefile | grep ^PATCHLEVEL | gawk -F " " '{ print $$NF }') ++KREV := $(shell cat $(KSRC)/Makefile | grep ^SUBLEVEL | gawk -F " " '{ print $$NF }') ++KVER := ${KMAJ}.${KMIN}.${KREV} + + kver_eq = $(shell [ $(KMAJ) -eq $(1) -a $(KMIN) -eq $(2) -a $(KREV) -eq $(3) ] && \ + echo 1 || echo 0) diff --git a/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb b/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb new file mode 100644 index 00000000000..6593661075f --- /dev/null +++ b/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb @@ -0,0 +1,62 @@ +DESCRIPTION = "iSCSI Enterprise Target is aimed to develop an \ + open source iSCSI target with professional features, \ + that works well in enterprise environment under real \ + workload, and is scalable and versatile enough to meet the \ + challenge of future storage needs and developments." +HOMEPAGE = "http://iscsitarget.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=6e233eda45c807aa29aeaa6d94bc48a2" +DEPENDS = "openssl virtual/kernel" + +SRC_URI = "http://ftp.heanet.ie/mirrors/ubuntu/pool/universe/i/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://use-kernel-makefile-to-get-kernel-version.patch \ + file://fix-errors-observed-with-linux-3.19-and-greater.patch \ + file://access-sk_v6_daddr-iff-IPV6-defined.patch \ + file://build_with_updated_bio_struct_of_linux_v4.3_and_above.patch \ + file://build_with_updated_interfaces_of_linux_v4.8_and_above.patch \ + file://fix-call-trace-of-ahash-API-calling.patch \ + file://0001-kernel-event-netlink_ack-now-requires-4-arguments.patch \ + " + +SRC_URI[md5sum] = "ef9bc823bbabd3c772208c00d5f2d089" +SRC_URI[sha256sum] = "d3196ccb78a43266dce28587bfe30d8ab4db7566d7bce96057dfbb84100babb5" + +inherit module + +do_configure[noexec] = "1" + +# make_scripts requires kernel source directory to create +# kernel scripts +do_make_scripts[depends] += "virtual/kernel:do_shared_workdir" + +do_compile() { + oe_runmake KSRC=${STAGING_KERNEL_DIR} LDFLAGS='' V=1 kernel + oe_runmake KSRC=${STAGING_KERNEL_DIR} usr +} + +do_install() { + # Module + install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi + install -m 0644 kernel/iscsi_trgt.ko \ + ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi/iscsi_trgt.ko + + # Userspace utilities + install -d ${D}${sbindir} + install -m 0755 usr/ietd ${D}${sbindir}/ietd + install -m 0755 usr/ietadm ${D}${sbindir}/ietadm + + # Config files, init scripts + mkdir -p ${D}${sysconfdir}/iet + install -m 0644 etc/ietd.conf ${D}/${sysconfdir}/iet/ietd.conf + install -m 0644 etc/initiators.allow ${D}${sysconfdir}/iet/initiators.allow + install -m 0644 etc/targets.allow ${D}${sysconfdir}/iet/targets.allow + mkdir -p ${D}${sysconfdir}/init.d + install -m 0755 etc/initd/initd ${D}${sysconfdir}/init.d/iscsi-target + install -m 0644 etc/initiators.deny ${D}${sysconfdir}/iet/initiators.deny +} + +FILES_${PN} += "${sbindir} \ + ${sysconfdir}" + +RDEPENDS_${PN} = "kernel-module-iscsi-trgt" +RRECOMMENDS_${PN} = "kernel-module-crc32c kernel-module-libcrc32c" diff --git a/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb b/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb new file mode 100644 index 00000000000..6fd0affdf68 --- /dev/null +++ b/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb @@ -0,0 +1,35 @@ +SUMMARY = "IPTables based firewall scripts" +HOMEPAGE = "http://rocky.eld.leidenuniv.nl/joomla/index.php?option=com_content&view=article&id=45&Itemid=63" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://gpl_license.txt;md5=11c7b65c4a4acb9d5175f7e9bf99c403" + +SRC_URI = "http://rocky.eld.leidenuniv.nl/arno-iptables-firewall/${BPN}_${PV}.tar.gz \ + " +SRC_URI[md5sum] = "77eba7f148bf2840a3e35a6f50c9c353" +SRC_URI[sha256sum] = "0bafd85ddc235752250eaec0c7fdb21e530912483f6807a97f86158ed2d301f7" + +S = "${WORKDIR}/${BPN}_${PV}" + +inherit systemd + +do_install() { + install -d ${D}${sysconfdir} ${D}${sbindir} ${D}${bindir} ${D}${systemd_unitdir}/system ${D}${sysconfdir}/init.d + install -d ${D}${datadir}/arno-iptables-firewall ${D}${sysconfdir}/arno-iptables-firewall + cp -r ${S}${sysconfdir}/arno-iptables-firewall ${D}${sysconfdir}/ + install -m 0755 ${S}${sysconfdir}/init.d/arno-iptables-firewall ${D}${bindir} + install -m 0755 ${S}/bin/arno-iptables-firewall ${D}${sbindir} + install -m 0755 ${S}/bin/arno-fwfilter ${D}${bindir} + cp -r ${S}/share/arno-iptables-firewall/* ${D}${datadir}/arno-iptables-firewall + cp -r ${S}/etc/arno-iptables-firewall/* ${D}${sysconfdir}/arno-iptables-firewall + install -m 0644 ${S}/${systemd_unitdir}/system/arno-iptables-firewall.service ${D}${systemd_unitdir}/system + sed -i -e 's%/usr/local/sbin%${bindir}%g' ${D}${systemd_unitdir}/system/arno-iptables-firewall.service + sed -i -e 's%/usr/local/sbin%${sbindir}%g' ${D}${bindir}/arno-iptables-firewall + sed -i -e 's%/usr/local%${exec_prefix}%g' ${D}${sysconfdir}/arno-iptables-firewall/firewall.conf + sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${bindir}/arno-fwfilter + sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${datadir}/arno-iptables-firewall/plugins/traffic-accounting-helper + sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${datadir}/arno-iptables-firewall/plugins/dyndns-host-open-helper +} + +SYSTEMD_SERVICE_${PN} = "arno-iptables-firewall.service" +FILES_${PN} += "${systemd_unitdir}/system/arno-iptables-firewall.service" diff --git a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.0.bb b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.0.bb deleted file mode 100644 index 0cc13984089..00000000000 --- a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.0.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Connection tracking userspace tools for Linux" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -DEPENDS = "libnfnetlink libnetfilter-conntrack libnetfilter-cttimeout \ - libnetfilter-cthelper libnetfilter-queue bison-native" - - -SRC_URI = " \ - http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2;name=tar \ - file://conntrack-failover \ - file://init \ -" -SRC_URI[tar.md5sum] = "ee737c774e01349f75e935228a2d851b" -SRC_URI[tar.sha256sum] = "036b032a5c4d180aad686df21399d74506b9b3d3000794eb13ac313482e24896" - -inherit autotools-brokensep update-rc.d pkgconfig - -INITSCRIPT_NAME = "conntrackd" - -do_install_append() { - install -d ${D}/${sysconfdir}/conntrackd - install -d ${D}/${sysconfdir}/init.d - install -m 0644 doc/sync/ftfw/conntrackd.conf ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample - install -m 0755 ${WORKDIR}/conntrack-failover ${D}/${sysconfdir}/init.d/conntrack-failover - install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/conntrackd - - # Fix hardcoded paths in scripts - sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd - sed -i 's!/etc/!${sysconfdir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd - sed -i 's!/var/!${localstatedir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample - sed -i 's!^export PATH=.*!export PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}/${sysconfdir}/init.d/conntrackd -} diff --git a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb new file mode 100644 index 00000000000..8b3490d7c2e --- /dev/null +++ b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb @@ -0,0 +1,36 @@ +SUMMARY = "Connection tracking userspace tools for Linux" +SECTION = "net" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" + +DEPENDS = "libnfnetlink libnetfilter-conntrack libnetfilter-cttimeout \ + libnetfilter-cthelper libnetfilter-queue bison-native" + +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + +SRC_URI = "http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2;name=tar \ + file://conntrack-failover \ + file://init \ +" +SRC_URI[tar.md5sum] = "acd9e0b27cf16ae3092ba900e4d7560e" +SRC_URI[tar.sha256sum] = "b7caf4fcc4c03575df57d25e5216584d597fd916c891f191dac616ce68bdba6c" + +inherit autotools update-rc.d pkgconfig + +INITSCRIPT_NAME = "conntrackd" + +do_install_append() { + install -d ${D}/${sysconfdir}/conntrackd + install -d ${D}/${sysconfdir}/init.d + install -m 0644 ${S}/doc/sync/ftfw/conntrackd.conf ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample + install -m 0755 ${WORKDIR}/conntrack-failover ${D}/${sysconfdir}/init.d/conntrack-failover + install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/conntrackd + + # Fix hardcoded paths in scripts + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd + sed -i 's!/etc/!${sysconfdir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd + sed -i 's!/var/!${localstatedir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample + sed -i 's!^export PATH=.*!export PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}/${sysconfdir}/init.d/conntrackd +} diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch new file mode 100644 index 00000000000..90b69792b8d --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch @@ -0,0 +1,45 @@ +From dd35afc9ce1004128a754d5eeb8c5c2cb32ae420 Mon Sep 17 00:00:00 2001 +From: Bart De Schuymer +Date: Tue, 3 Jul 2012 18:47:32 +0000 +Subject: [PATCH 01/10] add RARP and update iana url + +--- + ethertypes | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/ethertypes b/ethertypes +index 5e700f6..813177b 100644 +--- a/ethertypes ++++ b/ethertypes +@@ -5,6 +5,7 @@ + # + # This list could be found on: + # http://www.iana.org/assignments/ethernet-numbers ++# http://www.iana.org/assignments/ieee-802-numbers + # + # ... #Comment + # +@@ -21,15 +22,16 @@ LAT 6004 # DEC LAT + DIAG 6005 # DEC Diagnostics + CUST 6006 # DEC Customer use + SCA 6007 # DEC Systems Comms Arch +-TEB 6558 # Trans Ether Bridging [RFC1701] +-RAW_FR 6559 # Raw Frame Relay [RFC1701] ++TEB 6558 # Trans Ether Bridging [RFC1701] ++RAW_FR 6559 # Raw Frame Relay [RFC1701] ++RARP 8035 # Reverse ARP [RFC903] + AARP 80F3 # Appletalk AARP +-ATALK 809B # Appletalk ++ATALK 809B # Appletalk + 802_1Q 8100 8021q 1q 802.1q dot1q # 802.1Q Virtual LAN tagged frame + IPX 8137 # Novell IPX + NetBEUI 8191 # NetBEUI + IPv6 86DD ip6 # IP version 6 +-PPP 880B # PPP ++PPP 880B # PPP + ATMMPOA 884C # MultiProtocol over ATM + PPP_DISC 8863 # PPPoE discovery messages + PPP_SES 8864 # PPPoE session messages +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch new file mode 100644 index 00000000000..87b0e9b877b --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch @@ -0,0 +1,25 @@ +From 2a5333fc8b4825251adfb717d980d89cefde38d6 Mon Sep 17 00:00:00 2001 +From: Petri Gynther +Date: Sun, 24 Feb 2013 10:56:59 +0100 +Subject: [PATCH 02/10] fix compilation warning + +--- + communication.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/communication.c b/communication.c +index 62ed667..ba058c0 100644 +--- a/communication.c ++++ b/communication.c +@@ -282,7 +282,7 @@ static int store_counters_in_file(char *filename, struct ebt_u_replace *repl) + } + close_file: + fclose(file); +- return 0; ++ return ret; + } + + /* Gets executed after ebt_deliver_table. Delivers the counters to the kernel +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch new file mode 100644 index 00000000000..c8573a464fc --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch @@ -0,0 +1,25 @@ +From a6faf3b50d6af4768b7b853cb536944fb18e1450 Mon Sep 17 00:00:00 2001 +From: Bart De Schuymer +Date: Wed, 3 Jul 2013 22:12:47 +0200 +Subject: [PATCH 03/10] add info about -Wl,-no-as-needed + +--- + INSTALL | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/INSTALL b/INSTALL +index 4a05c67..e90d5c1 100644 +--- a/INSTALL ++++ b/INSTALL +@@ -39,6 +39,8 @@ That's all + You can also use a base directory different from the root directory (/), + using the DESTDIR option. See the Makefile for more details. + ++You might need to set LDFLAGS=-Wl,-no-as-needed to build ebtables correctly ++on your system. + + ADDITIONAL PROGRAMS: + ---------------------- +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch new file mode 100644 index 00000000000..d8f2795bcab --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch @@ -0,0 +1,28 @@ +From b0617af37b8b1aafb43e8019135bea44c2d94c28 Mon Sep 17 00:00:00 2001 +From: Luis Fernando +Date: Wed, 3 Jul 2013 22:19:55 +0200 +Subject: [PATCH 04/10] workaround for kernel regression bug: IPv6 + source/destination addresses are potentially not matched correctly + +--- + extensions/ebt_ip6.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c +index 0465e77..bbdc4ae 100644 +--- a/extensions/ebt_ip6.c ++++ b/extensions/ebt_ip6.c +@@ -312,6 +312,10 @@ static void init(struct ebt_entry_match *match) + + ipinfo->invflags = 0; + ipinfo->bitmask = 0; ++ memset(ipinfo->saddr.s6_addr, 0, sizeof(ipinfo->saddr.s6_addr)); ++ memset(ipinfo->smsk.s6_addr, 0, sizeof(ipinfo->smsk.s6_addr)); ++ memset(ipinfo->daddr.s6_addr, 0, sizeof(ipinfo->daddr.s6_addr)); ++ memset(ipinfo->dmsk.s6_addr, 0, sizeof(ipinfo->dmsk.s6_addr)); + } + + #define OPT_SOURCE 0x01 +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch new file mode 100644 index 00000000000..9585fd20e3e --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch @@ -0,0 +1,75 @@ +From 15d3ab8a4a167dc44396b003d2ec01841949972f Mon Sep 17 00:00:00 2001 +From: Sanket Shah +Date: Wed, 31 Jul 2013 21:40:08 +0200 +Subject: [PATCH 05/10] Add --noflush command line support for ebtables-restore + +--- + ebtables-restore.c | 29 +++++++++++++++++++++++++---- + 1 file changed, 25 insertions(+), 4 deletions(-) + +diff --git a/ebtables-restore.c b/ebtables-restore.c +index ea02960..bb4d0cf 100644 +--- a/ebtables-restore.c ++++ b/ebtables-restore.c +@@ -22,13 +22,25 @@ + #include + #include + #include ++#include + #include "include/ebtables_u.h" + ++static const struct option options[] = { ++ {.name = "noflush", .has_arg = 0, .val = 'n'}, ++ { 0 } ++}; ++ + static struct ebt_u_replace replace[3]; + void ebt_early_init_once(); + + #define OPT_KERNELDATA 0x800 /* Also defined in ebtables.c */ + ++static void print_usage() ++{ ++ fprintf(stderr, "Usage: ebtables-restore [ --noflush ]\n"); ++ exit(1); ++} ++ + static void copy_table_names() + { + strcpy(replace[0].name, "filter"); +@@ -41,11 +53,20 @@ static void copy_table_names() + int main(int argc_, char *argv_[]) + { + char *argv[EBTD_ARGC_MAX], cmdline[EBTD_CMDLINE_MAXLN]; +- int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace; ++ int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace, c, flush = 1; + char ebtables_str[] = "ebtables"; + +- if (argc_ != 1) +- ebtrest_print_error("options are not supported"); ++ while ((c = getopt_long(argc_, argv_, "n", options, NULL)) != -1) { ++ switch(c) { ++ case 'n': ++ flush = 0; ++ break; ++ default: ++ print_usage(); ++ break; ++ } ++ } ++ + ebt_silent = 0; + copy_table_names(); + ebt_early_init_once(); +@@ -68,7 +89,7 @@ int main(int argc_, char *argv_[]) + ebtrest_print_error("table '%s' was not recognized", cmdline+1); + table_nr = i; + replace[table_nr].command = 11; +- ebt_get_kernel_table(&replace[table_nr], 1); ++ ebt_get_kernel_table(&replace[table_nr], flush); + replace[table_nr].command = 0; + replace[table_nr].flags = OPT_KERNELDATA; /* Prevent do_command from initialising replace */ + continue; +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch new file mode 100644 index 00000000000..21f8e588d41 --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch @@ -0,0 +1,69 @@ +From 85a0f6d77a9d5c0e7ef7948395f0f6b1612dc987 Mon Sep 17 00:00:00 2001 +From: Bart De Schuymer +Date: Mon, 14 Apr 2014 22:04:55 +0200 +Subject: [PATCH 06/10] don't print IPv6 mask if it's all ones (based on patch + by Mariusz Mazur ) + +--- + extensions/ebt_ip6.c | 4 ++-- + include/ebtables_u.h | 1 + + useful_functions.c | 13 +++++++++++++ + 3 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c +index bbdc4ae..e3e0956 100644 +--- a/extensions/ebt_ip6.c ++++ b/extensions/ebt_ip6.c +@@ -449,14 +449,14 @@ static void print(const struct ebt_u_entry *entry, + if (ipinfo->invflags & EBT_IP6_SOURCE) + printf("! "); + printf("%s", ebt_ip6_to_numeric(&ipinfo->saddr)); +- printf("/%s ", ebt_ip6_to_numeric(&ipinfo->smsk)); ++ printf("%s ", ebt_ip6_mask_to_string(&ipinfo->smsk)); + } + if (ipinfo->bitmask & EBT_IP6_DEST) { + printf("--ip6-dst "); + if (ipinfo->invflags & EBT_IP6_DEST) + printf("! "); + printf("%s", ebt_ip6_to_numeric(&ipinfo->daddr)); +- printf("/%s ", ebt_ip6_to_numeric(&ipinfo->dmsk)); ++ printf("%s ", ebt_ip6_mask_to_string(&ipinfo->dmsk)); + } + if (ipinfo->bitmask & EBT_IP6_TCLASS) { + printf("--ip6-tclass "); +diff --git a/include/ebtables_u.h b/include/ebtables_u.h +index ab615c1..35a5bcc 100644 +--- a/include/ebtables_u.h ++++ b/include/ebtables_u.h +@@ -303,6 +303,7 @@ char *ebt_mask_to_dotted(uint32_t mask); + void ebt_parse_ip6_address(char *address, struct in6_addr *addr, + struct in6_addr *msk); + char *ebt_ip6_to_numeric(const struct in6_addr *addrp); ++char *ebt_ip6_mask_to_string(const struct in6_addr *msk); + + + int do_command(int argc, char *argv[], int exec_style, +diff --git a/useful_functions.c b/useful_functions.c +index d20b68e..d14cbe9 100644 +--- a/useful_functions.c ++++ b/useful_functions.c +@@ -411,3 +411,16 @@ char *ebt_ip6_to_numeric(const struct in6_addr *addrp) + static char buf[50+1]; + return (char *)inet_ntop(AF_INET6, addrp, buf, sizeof(buf)); + } ++ ++char *ebt_ip6_mask_to_string(const struct in6_addr *msk) ++{ ++ /* /0000:0000:0000:0000:0000:000.000.000.000 ++ * /0000:0000:0000:0000:0000:0000:0000:0000 */ ++ static char buf[51+1]; ++ if (msk->s6_addr32[0] == 0xFFFFFFFFL && msk->s6_addr32[1] == 0xFFFFFFFFL && ++ msk->s6_addr32[2] == 0xFFFFFFFFL && msk->s6_addr32[3] == 0xFFFFFFFFL) ++ *buf = '\0'; ++ else ++ sprintf(buf, "/%s", ebt_ip6_to_numeric(msk)); ++ return buf; ++} +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch new file mode 100644 index 00000000000..6fbe7df4ca2 --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch @@ -0,0 +1,67 @@ +From a60c7d4a6d05387aceb8ae9c38390d0f9bae84a2 Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Sat, 16 May 2015 12:22:39 +0200 +Subject: [PATCH 07/10] extensions: Use stdint types + +Signed-off-by: Felix Janda +Signed-off-by: Pablo Neira Ayuso +--- + extensions/ebt_ip6.c | 4 ++-- + extensions/ebt_limit.c | 10 +++++----- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c +index e3e0956..dd48547 100644 +--- a/extensions/ebt_ip6.c ++++ b/extensions/ebt_ip6.c +@@ -53,8 +53,8 @@ static const struct option opts[] = + + struct icmpv6_names { + const char *name; +- u_int8_t type; +- u_int8_t code_min, code_max; ++ uint8_t type; ++ uint8_t code_min, code_max; + }; + + static const struct icmpv6_names icmpv6_codes[] = { +diff --git a/extensions/ebt_limit.c b/extensions/ebt_limit.c +index ee40e5c..d189a09 100644 +--- a/extensions/ebt_limit.c ++++ b/extensions/ebt_limit.c +@@ -59,11 +59,11 @@ static void print_help(void) + " default %u\n", EBT_LIMIT_BURST); + } + +-static int parse_rate(const char *rate, u_int32_t *val) ++static int parse_rate(const char *rate, uint32_t *val) + { + const char *delim; +- u_int32_t r; +- u_int32_t mult = 1; /* Seconds by default. */ ++ uint32_t r; ++ uint32_t mult = 1; /* Seconds by default. */ + + delim = strchr(rate, '/'); + if (delim) { +@@ -151,7 +151,7 @@ static void final_check(const struct ebt_u_entry *entry, + struct rates + { + const char *name; +- u_int32_t mult; ++ uint32_t mult; + }; + + static struct rates g_rates[] = +@@ -162,7 +162,7 @@ static struct rates g_rates[] = + { "sec", EBT_LIMIT_SCALE } + }; + +-static void print_rate(u_int32_t period) ++static void print_rate(uint32_t period) + { + unsigned int i; + +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch new file mode 100644 index 00000000000..df3f5214372 --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch @@ -0,0 +1,48 @@ +From 6ed23c8c2bc5efc3956e7bb6155afc8f45e6ae1a Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Sat, 16 May 2015 12:31:58 +0200 +Subject: [PATCH 08/10] ethernetdb.h: Remove C++ specific compiler hint macro + _THROW + +Fixes compilation with musl libc + +Signed-off-by: Felix Janda +Signed-off-by: Pablo Neira Ayuso +--- + include/ethernetdb.h | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/include/ethernetdb.h b/include/ethernetdb.h +index 46d8bfd..1683abe 100644 +--- a/include/ethernetdb.h ++++ b/include/ethernetdb.h +@@ -38,21 +38,20 @@ struct ethertypeent { + + /* Open ethertype data base files and mark them as staying open even + after a later search if STAY_OPEN is non-zero. */ +-extern void setethertypeent(int __stay_open) __THROW; ++extern void setethertypeent(int __stay_open); + + /* Close ethertype data base files and clear `stay open' flag. */ +-extern void endethertypeent(void) __THROW; ++extern void endethertypeent(void); + + /* Get next entry from ethertype data base file. Open data base if + necessary. */ +-extern struct ethertypeent *getethertypeent(void) __THROW; ++extern struct ethertypeent *getethertypeent(void); + + /* Return entry from ethertype data base for network with NAME. */ +-extern struct ethertypeent *getethertypebyname(__const char *__name) +- __THROW; ++extern struct ethertypeent *getethertypebyname(__const char *__name); + + /* Return entry from ethertype data base which number is PROTO. */ +-extern struct ethertypeent *getethertypebynumber(int __ethertype) __THROW; ++extern struct ethertypeent *getethertypebynumber(int __ethertype); + + + #endif /* ethernetdb.h */ +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch new file mode 100644 index 00000000000..248582c188c --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch @@ -0,0 +1,48 @@ +From e6b367c0c2668341c47242d099f4d2048ae575ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alin=20N=C4=83stac?= +Date: Thu, 22 Oct 2015 16:41:03 +0200 +Subject: [PATCH 09/10] ebtables: Allow RETURN target rules in user defined + chains + +During loop checking ebtables marks entries with '1 << NF_BR_NUMHOOKS' if +they're called from a base chain rather than a user defined chain. + +This can be used by ebtables targets that can encode a special return +value to bail out if e.g. RETURN is used from a base chain. + +Unfortunately, this is broken, since the '1 << NF_BR_NUMHOOKS' is also +copied to called user-defined-chains (i.e., a user defined chain can no +longer be distinguished from a base chain): + +root@OpenWrt:~# ebtables -N foo +root@OpenWrt:~# ebtables -A OUTPUT -j foo +root@OpenWrt:~# ebtables -A foo -j mark --mark-or 3 --mark-target RETURN +--mark-target RETURN not allowed on base chain. + +This works if -A OUTPUT -j foo is omitted, but will still appear +if we try to call foo from OUTPUT afterwards. + +After this patch we still reject +'-A OUTPUT -j mark .. --mark-target RETURN'. + +Signed-off-by: Florian Westphal +--- + libebtc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libebtc.c b/libebtc.c +index 17ba8f2..74830ec 100644 +--- a/libebtc.c ++++ b/libebtc.c +@@ -1102,7 +1102,7 @@ void ebt_check_for_loops(struct ebt_u_replace *replace) + /* check if we've dealt with this chain already */ + if (entries2->hook_mask & (1<hook_mask |= entries->hook_mask; ++ entries2->hook_mask |= entries->hook_mask & ~(1 << NF_BR_NUMHOOKS); + /* Jump to the chain, make sure we know how to get back */ + stack[sp].chain_nr = chain_nr; + stack[sp].n = j; +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch new file mode 100644 index 00000000000..a6ef9cd0990 --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch @@ -0,0 +1,216 @@ +From b7cee37734007fced7a4d5ed586c3a9e5ad92878 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 26 Mar 2017 13:12:21 -0700 +Subject: [PATCH 10/10] Adjust header include sequence + +This fixes the build with musl + +Signed-off-by: Khem Raj +--- + extensions/ebt_among.c | 2 +- + extensions/ebt_arpreply.c | 2 +- + extensions/ebt_nat.c | 2 +- + include/linux/if_ether.h | 126 ---------------------------------------------- + useful_functions.c | 4 +- + 5 files changed, 5 insertions(+), 131 deletions(-) + delete mode 100644 include/linux/if_ether.h + +diff --git a/extensions/ebt_among.c b/extensions/ebt_among.c +index f97d07e..b096847 100644 +--- a/extensions/ebt_among.c ++++ b/extensions/ebt_among.c +@@ -12,8 +12,8 @@ + #include + #include + #include +-#include "../include/ebtables_u.h" + #include ++#include "../include/ebtables_u.h" + #include "../include/ethernetdb.h" + #include + #include +diff --git a/extensions/ebt_arpreply.c b/extensions/ebt_arpreply.c +index c3757f3..c5102a4 100644 +--- a/extensions/ebt_arpreply.c ++++ b/extensions/ebt_arpreply.c +@@ -11,8 +11,8 @@ + #include + #include + #include +-#include "../include/ebtables_u.h" + #include ++#include "../include/ebtables_u.h" + #include + + static int mac_supplied; +diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c +index e6afbf8..8d318d1 100644 +--- a/extensions/ebt_nat.c ++++ b/extensions/ebt_nat.c +@@ -10,8 +10,8 @@ + #include + #include + #include +-#include "../include/ebtables_u.h" + #include ++#include "../include/ebtables_u.h" + #include + + static int to_source_supplied, to_dest_supplied; +diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h +deleted file mode 100644 +index 28a15ff..0000000 +--- a/include/linux/if_ether.h ++++ /dev/null +@@ -1,126 +0,0 @@ +-/* +- * INET An implementation of the TCP/IP protocol suite for the LINUX +- * operating system. INET is implemented using the BSD Socket +- * interface as the means of communication with the user level. +- * +- * Global definitions for the Ethernet IEEE 802.3 interface. +- * +- * Version: @(#)if_ether.h 1.0.1a 02/08/94 +- * +- * Author: Fred N. van Kempen, +- * Donald Becker, +- * Alan Cox, +- * Steve Whitehouse, +- * +- * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License +- * as published by the Free Software Foundation; either version +- * 2 of the License, or (at your option) any later version. +- */ +- +-#ifndef _LINUX_IF_ETHER_H +-#define _LINUX_IF_ETHER_H +- +-#include +- +-/* +- * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble +- * and FCS/CRC (frame check sequence). +- */ +- +-#define ETH_ALEN 6 /* Octets in one ethernet addr */ +-#define ETH_HLEN 14 /* Total octets in header. */ +-#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ +-#define ETH_DATA_LEN 1500 /* Max. octets in payload */ +-#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ +-#define ETH_FCS_LEN 4 /* Octets in the FCS */ +- +-/* +- * These are the defined Ethernet Protocol ID's. +- */ +- +-#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */ +-#define ETH_P_PUP 0x0200 /* Xerox PUP packet */ +-#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */ +-#define ETH_P_IP 0x0800 /* Internet Protocol packet */ +-#define ETH_P_X25 0x0805 /* CCITT X.25 */ +-#define ETH_P_ARP 0x0806 /* Address Resolution packet */ +-#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ +-#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ +-#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ +-#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ +-#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ +-#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ +-#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */ +-#define ETH_P_LAT 0x6004 /* DEC LAT */ +-#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */ +-#define ETH_P_CUST 0x6006 /* DEC Customer use */ +-#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */ +-#define ETH_P_TEB 0x6558 /* Trans Ether Bridging */ +-#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */ +-#define ETH_P_ATALK 0x809B /* Appletalk DDP */ +-#define ETH_P_AARP 0x80F3 /* Appletalk AARP */ +-#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ +-#define ETH_P_IPX 0x8137 /* IPX over DIX */ +-#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ +-#define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */ +-#define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */ +-#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol +- * defined in draft-wilson-wrec-wccp-v2-00.txt */ +-#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ +-#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ +-#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */ +-#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */ +-#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ +-#define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */ +-#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport +- * over Ethernet +- */ +-#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ +-#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */ +-#define ETH_P_TIPC 0x88CA /* TIPC */ +-#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */ +-#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ +-#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ +-#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ +- +-/* +- * Non DIX types. Won't clash for 1500 types. +- */ +- +-#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ +-#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ +-#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ +-#define ETH_P_802_2 0x0004 /* 802.2 frames */ +-#define ETH_P_SNAP 0x0005 /* Internal only */ +-#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ +-#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ +-#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ +-#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ +-#define ETH_P_CAN 0x000C /* Controller Area Network */ +-#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ +-#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ +-#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ +-#define ETH_P_CONTROL 0x0016 /* Card specific control frames */ +-#define ETH_P_IRDA 0x0017 /* Linux-IrDA */ +-#define ETH_P_ECONET 0x0018 /* Acorn Econet */ +-#define ETH_P_HDLC 0x0019 /* HDLC frames */ +-#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */ +-#define ETH_P_DSA 0x001B /* Distributed Switch Arch. */ +-#define ETH_P_TRAILER 0x001C /* Trailer switch tagging */ +-#define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */ +-#define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */ +-#define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */ +- +-/* +- * This is an Ethernet frame header. +- */ +- +-struct ethhdr { +- unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ +- unsigned char h_source[ETH_ALEN]; /* source ether addr */ +- __be16 h_proto; /* packet type ID field */ +-} __attribute__((packed)); +- +- +-#endif /* _LINUX_IF_ETHER_H */ +diff --git a/useful_functions.c b/useful_functions.c +index d14cbe9..c304f4d 100644 +--- a/useful_functions.c ++++ b/useful_functions.c +@@ -22,8 +22,6 @@ + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +-#include "include/ebtables_u.h" +-#include "include/ethernetdb.h" + #include + #include + #include +@@ -33,6 +31,8 @@ + #include + #include + #include ++#include "include/ebtables_u.h" ++#include "include/ethernetdb.h" + + const unsigned char mac_type_unicast[ETH_ALEN] = {0,0,0,0,0,0}; + const unsigned char msk_type_unicast[ETH_ALEN] = {1,0,0,0,0,0}; +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save new file mode 100755 index 00000000000..2d7fc4ed7cd --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save @@ -0,0 +1,43 @@ +#!/bin/bash + +EBTABLES="/sbin/ebtables" + +[ -x "$EBTABLES" ] || exit 1 + +echo "# Generated by ebtables-save v1.0 on $(date)" + +cnt="" +[ "x$EBTABLES_SAVE_COUNTER" = "xyes" ] && cnt="--Lc" + +for table_name in $(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//); do + table=$($EBTABLES -t $table_name -L $cnt) + [ $? -eq 0 ] || { echo "$table"; exit -1; } + + chain="" + rules="" + while read line; do + [ -z "$line" ] && continue + + case "$line" in + Bridge\ table:\ *) + echo "*${line:14}" + ;; + Bridge\ chain:\ *) + chain="${line:14}" + chain="${chain%%,*}" + policy="${line##*policy: }" + echo ":$chain $policy" + ;; + *) + if [ "$cnt" = "--Lc" ]; then + line=${line/, pcnt \=/ -c} + line=${line/-- bcnt \=/} + fi + rules="$rules-A $chain $line\n" + ;; + esac + done < +Date: Thu, 30 Mar 2017 13:26:56 -0700 +Subject: [PATCH] Correct typo in the location of internal.h in #include + +Signed-off-by: Khem Raj +--- + src/libnetfilter_queue.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c +index 211a8ba..065d618 100644 +--- a/src/libnetfilter_queue.c ++++ b/src/libnetfilter_queue.c +@@ -32,7 +32,7 @@ + + #include + #include +-#include "src/internal.h" ++#include "internal.h" + + /** + * \mainpage +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch b/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch new file mode 100644 index 00000000000..9e0b420e0a5 --- /dev/null +++ b/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch @@ -0,0 +1,255 @@ +From f3e3e8fa703e88b76b22c5486277dfca3c85a24b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 10 Apr 2017 14:56:18 -0700 +Subject: [PATCH] Declare the define visivility attribute together + +clang ignores the visibility attribute if its not +defined before the definition. As a result these +symbols become hidden and consumers of this library +fail to link due to these missing symbols + +Signed-off-by: Khem Raj +--- + doxygen.cfg.in | 2 +- + src/internal.h | 5 ++--- + src/libnetfilter_acct.c | 41 ++++++++++++++--------------------------- + 3 files changed, 17 insertions(+), 31 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index 7f4bd04..fe64d48 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = */.git/* .*.d +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL nfacct ++EXCLUDE_SYMBOLS = nfacct + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/src/internal.h b/src/internal.h +index f0cc2e1..e5c5ffd 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -3,10 +3,9 @@ + + #include "config.h" + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible ++# define __EXPORT __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORT + #endif + + #include +diff --git a/src/libnetfilter_acct.c b/src/libnetfilter_acct.c +index b0bcf67..0220d14 100644 +--- a/src/libnetfilter_acct.c ++++ b/src/libnetfilter_acct.c +@@ -76,21 +76,19 @@ struct nfacct { + * In case of success, this function returns a valid pointer, otherwise NULL + * s returned and errno is appropriately set. + */ +-struct nfacct *nfacct_alloc(void) ++struct nfacct __EXPORT *nfacct_alloc(void) + { + return calloc(1, sizeof(struct nfacct)); + } +-EXPORT_SYMBOL(nfacct_alloc); + + /** + * nfacct_free - release one accounting object + * \param nfacct pointer to the accounting object + */ +-void nfacct_free(struct nfacct *nfacct) ++void __EXPORT nfacct_free(struct nfacct *nfacct) + { + free(nfacct); + } +-EXPORT_SYMBOL(nfacct_free); + + /** + * nfacct_attr_set - set one attribute of the accounting object +@@ -98,7 +96,7 @@ EXPORT_SYMBOL(nfacct_free); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-void ++void __EXPORT + nfacct_attr_set(struct nfacct *nfacct, enum nfacct_attr_type type, + const void *data) + { +@@ -126,7 +124,6 @@ nfacct_attr_set(struct nfacct *nfacct, enum nfacct_attr_type type, + break; + } + } +-EXPORT_SYMBOL(nfacct_attr_set); + + /** + * nfacct_attr_set_str - set one attribute the accounting object +@@ -134,13 +131,12 @@ EXPORT_SYMBOL(nfacct_attr_set); + * \param type attribute type you want to set + * \param name string that will be used to set this attribute + */ +-void ++void __EXPORT + nfacct_attr_set_str(struct nfacct *nfacct, enum nfacct_attr_type type, + const char *name) + { + nfacct_attr_set(nfacct, type, name); + } +-EXPORT_SYMBOL(nfacct_attr_set_str); + + /** + * nfacct_attr_set_u64 - set one attribute the accounting object +@@ -148,20 +144,19 @@ EXPORT_SYMBOL(nfacct_attr_set_str); + * \param type attribute type you want to set + * \param value unsigned 64-bits integer + */ +-void ++void __EXPORT + nfacct_attr_set_u64(struct nfacct *nfacct, enum nfacct_attr_type type, + uint64_t value) + { + nfacct_attr_set(nfacct, type, &value); + } +-EXPORT_SYMBOL(nfacct_attr_set_u64); + + /** + * nfacct_attr_unset - unset one attribute the accounting object + * \param nfacct pointer to the accounting object + * \param type attribute type you want to set + */ +-void ++void __EXPORT + nfacct_attr_unset(struct nfacct *nfacct, enum nfacct_attr_type type) + { + switch(type) { +@@ -182,7 +177,6 @@ nfacct_attr_unset(struct nfacct *nfacct, enum nfacct_attr_type type) + break; + } + } +-EXPORT_SYMBOL(nfacct_attr_unset); + + /** + * nfacct_attr_get - get one attribute the accounting object +@@ -192,7 +186,7 @@ EXPORT_SYMBOL(nfacct_attr_unset); + * This function returns a valid pointer to the attribute data. If a + * unsupported attribute is used, this returns NULL. + */ +-const void *nfacct_attr_get(struct nfacct *nfacct, enum nfacct_attr_type type) ++const void __EXPORT *nfacct_attr_get(struct nfacct *nfacct, enum nfacct_attr_type type) + { + const void *ret = NULL; + +@@ -220,7 +214,6 @@ const void *nfacct_attr_get(struct nfacct *nfacct, enum nfacct_attr_type type) + } + return ret; + } +-EXPORT_SYMBOL(nfacct_attr_get); + + /** + * nfacct_attr_get_str - get one attribute the accounting object +@@ -230,12 +223,11 @@ EXPORT_SYMBOL(nfacct_attr_get); + * This function returns a valid pointer to the beginning of the string. + * If the attribute is unsupported, this returns NULL. + */ +-const char * ++const char __EXPORT * + nfacct_attr_get_str(struct nfacct *nfacct, enum nfacct_attr_type type) + { + return nfacct_attr_get(nfacct, type); + } +-EXPORT_SYMBOL(nfacct_attr_get_str); + + /** + * nfacct_attr_get_u64 - get one attribute the accounting object +@@ -245,12 +237,11 @@ EXPORT_SYMBOL(nfacct_attr_get_str); + * This function returns a unsigned 64-bits integer. If the attribute is + * unsupported, this returns NULL. + */ +-uint64_t nfacct_attr_get_u64(struct nfacct *nfacct, enum nfacct_attr_type type) ++uint64_t __EXPORT nfacct_attr_get_u64(struct nfacct *nfacct, enum nfacct_attr_type type) + { + const void *ret = nfacct_attr_get(nfacct, type); + return ret ? *((uint64_t *)ret) : 0; + } +-EXPORT_SYMBOL(nfacct_attr_get_u64); + + static int + nfacct_snprintf_plain(char *buf, size_t rem, struct nfacct *nfacct, +@@ -424,8 +415,8 @@ err: + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int nfacct_snprintf(char *buf, size_t size, struct nfacct *nfacct, +- uint16_t type, uint16_t flags) ++int __EXPORT nfacct_snprintf(char *buf, size_t size, struct nfacct *nfacct, ++ uint16_t type, uint16_t flags) + { + int ret = 0; + +@@ -445,7 +436,6 @@ int nfacct_snprintf(char *buf, size_t size, struct nfacct *nfacct, + } + return ret; + } +-EXPORT_SYMBOL(nfacct_snprintf); + + /** + * @} +@@ -484,7 +474,7 @@ EXPORT_SYMBOL(nfacct_snprintf); + * - Command NFNL_MSG_ACCT_DEL, to delete one specific nfacct object (if + * unused, otherwise you hit EBUSY). + */ +-struct nlmsghdr * ++struct nlmsghdr __EXPORT * + nfacct_nlmsg_build_hdr(char *buf, uint8_t cmd, uint16_t flags, uint32_t seq) + { + struct nlmsghdr *nlh; +@@ -502,14 +492,13 @@ nfacct_nlmsg_build_hdr(char *buf, uint8_t cmd, uint16_t flags, uint32_t seq) + + return nlh; + } +-EXPORT_SYMBOL(nfacct_nlmsg_build_hdr); + + /** + * nfacct_nlmsg_build_payload - build payload from accounting object + * \param nlh: netlink message that you want to use to add the payload. + * \param nfacct: pointer to a accounting object + */ +-void nfacct_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfacct *nfacct) ++void __EXPORT nfacct_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfacct *nfacct) + { + if (nfacct->bitset & (1 << NFACCT_ATTR_NAME)) + mnl_attr_put_strz(nlh, NFACCT_NAME, nfacct->name); +@@ -526,7 +515,6 @@ void nfacct_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfacct *nfacct) + if (nfacct->bitset & (1 << NFACCT_ATTR_QUOTA)) + mnl_attr_put_u64(nlh, NFACCT_QUOTA, htobe64(nfacct->quota)); + } +-EXPORT_SYMBOL(nfacct_nlmsg_build_payload); + + static int nfacct_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -563,7 +551,7 @@ static int nfacct_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data) + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int ++int __EXPORT + nfacct_nlmsg_parse_payload(const struct nlmsghdr *nlh, struct nfacct *nfacct) + { + struct nlattr *tb[NFACCT_MAX+1] = {}; +@@ -589,7 +577,6 @@ nfacct_nlmsg_parse_payload(const struct nlmsghdr *nlh, struct nfacct *nfacct) + + return 0; + } +-EXPORT_SYMBOL(nfacct_nlmsg_parse_payload); + + /** + * @} +-- +2.12.2 + diff --git a/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch b/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch new file mode 100644 index 00000000000..946f1b71d7a --- /dev/null +++ b/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch @@ -0,0 +1,1229 @@ +From 06562244ac4a1a61e1a2c6b219a517658f7349bf Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 10 Apr 2017 12:09:41 -0700 +Subject: [PATCH] Declare the define visivility attribute together + +clang ignores the visibility attribute if its not +defined before the definition. As a result these +symbols become hidden and consumers of this library +fail to link due to these missing symbols + +Signed-off-by: Khem Raj +--- + doxygen.cfg.in | 2 +- + src/extra/ipv4.c | 15 +++---- + src/extra/ipv6.c | 9 ++-- + src/extra/pktbuff.c | 42 ++++++------------ + src/extra/tcp.c | 21 +++------ + src/extra/udp.c | 21 +++------ + src/internal.h | 5 +-- + src/libnetfilter_queue.c | 108 ++++++++++++++++------------------------------- + src/nlmsg.c | 21 +++------ + 9 files changed, 82 insertions(+), 162 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index a7378ca..659abee 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL ++EXCLUDE_SYMBOLS = + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/src/extra/ipv4.c b/src/extra/ipv4.c +index a93d113..56d5dc7 100644 +--- a/src/extra/ipv4.c ++++ b/src/extra/ipv4.c +@@ -32,7 +32,7 @@ + * This funcion returns NULL if the IPv4 is malformed or the protocol version + * is not 4. On success, it returns a valid pointer to the IPv4 header. + */ +-struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb) ++struct iphdr __EXPORTED *nfq_ip_get_hdr(struct pkt_buff *pktb) + { + struct iphdr *iph; + unsigned int pktlen = pktb->tail - pktb->network_header; +@@ -53,14 +53,13 @@ struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb) + + return iph; + } +-EXPORT_SYMBOL(nfq_ip_get_hdr); + + /** + * nfq_ip_set_transport_header - set transport header + * \param pktb: pointer to network packet buffer + * \param iph: pointer to the IPv4 header + */ +-int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph) ++int __EXPORTED nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph) + { + int doff = iph->ihl * 4; + +@@ -71,7 +70,6 @@ int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph) + pktb->transport_header = pktb->network_header + doff; + return 0; + } +-EXPORT_SYMBOL(nfq_ip_set_transport_header); + + /** + * nfq_ip_set_checksum - set IPv4 checksum +@@ -80,14 +78,13 @@ EXPORT_SYMBOL(nfq_ip_set_transport_header); + * \note Call to this function if you modified the IPv4 header to update the + * checksum. + */ +-void nfq_ip_set_checksum(struct iphdr *iph) ++void __EXPORTED nfq_ip_set_checksum(struct iphdr *iph) + { + uint32_t iph_len = iph->ihl * 4; + + iph->check = 0; + iph->check = nfq_checksum(0, (uint16_t *)iph, iph_len); + } +-EXPORT_SYMBOL(nfq_ip_set_checksum); + + /** + * nfq_ip_mangle - mangle IPv4 packet buffer +@@ -100,7 +97,7 @@ EXPORT_SYMBOL(nfq_ip_set_checksum); + * + * \note This function recalculates the IPv4 checksum (if needed). + */ +-int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, ++int __EXPORTED nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, + unsigned int match_offset, unsigned int match_len, + const char *rep_buffer, unsigned int rep_len) + { +@@ -116,7 +113,6 @@ int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, + + return 1; + } +-EXPORT_SYMBOL(nfq_ip_mangle); + + /** + * nfq_pkt_snprintf_ip - print IPv4 header into buffer in iptables LOG format +@@ -128,7 +124,7 @@ EXPORT_SYMBOL(nfq_ip_mangle); + * case that there is enough room in the buffer. Read snprintf manpage for more + * information to know more about this strange behaviour. + */ +-int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) ++int __EXPORTED nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) + { + int ret; + struct in_addr src = { iph->saddr }; +@@ -147,7 +143,6 @@ int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) + + return ret; + } +-EXPORT_SYMBOL(nfq_ip_snprintf); + + /** + * @} +diff --git a/src/extra/ipv6.c b/src/extra/ipv6.c +index 7c5dc9b..6641c6b 100644 +--- a/src/extra/ipv6.c ++++ b/src/extra/ipv6.c +@@ -33,7 +33,7 @@ + * This funcion returns NULL if an invalid header is found. On sucess, it + * returns a valid pointer to the header. + */ +-struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb) ++struct ip6_hdr __EXPORTED *nfq_ip6_get_hdr(struct pkt_buff *pktb) + { + struct ip6_hdr *ip6h; + unsigned int pktlen = pktb->tail - pktb->network_header; +@@ -50,7 +50,6 @@ struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb) + + return ip6h; + } +-EXPORT_SYMBOL(nfq_ip6_get_hdr); + + /** + * nfq_ip6_set_transport_header - set transport header pointer for IPv6 packet +@@ -61,7 +60,7 @@ EXPORT_SYMBOL(nfq_ip6_get_hdr); + * This function returns 1 if the protocol has been found and the transport + * header has been set. Otherwise, it returns 0. + */ +-int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h, ++int __EXPORTED nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h, + uint8_t target) + { + uint8_t nexthdr = ip6h->ip6_nxt; +@@ -115,7 +114,6 @@ int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h, + pktb->transport_header = cur; + return cur ? 1 : 0; + } +-EXPORT_SYMBOL(nfq_ip6_set_transport_header); + + /** + * nfq_ip6_snprintf - print IPv6 header into one buffer in iptables LOG format +@@ -124,7 +122,7 @@ EXPORT_SYMBOL(nfq_ip6_set_transport_header); + * \param ip6_hdr: pointer to a valid IPv6 header. + * + */ +-int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h) ++int __EXPORTED nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h) + { + int ret; + char src[INET6_ADDRSTRLEN]; +@@ -143,7 +141,6 @@ int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h) + + return ret; + } +-EXPORT_SYMBOL(nfq_ip6_snprintf); + + /** + * @} +diff --git a/src/extra/pktbuff.c b/src/extra/pktbuff.c +index 1c15a00..54d8244 100644 +--- a/src/extra/pktbuff.c ++++ b/src/extra/pktbuff.c +@@ -40,7 +40,7 @@ + * + * \return a pointer to a new queue handle or NULL on failure. + */ +-struct pkt_buff * ++struct pkt_buff __EXPORTED * + pktb_alloc(int family, void *data, size_t len, size_t extra) + { + struct pkt_buff *pktb; +@@ -84,120 +84,108 @@ pktb_alloc(int family, void *data, size_t len, size_t extra) + } + return pktb; + } +-EXPORT_SYMBOL(pktb_alloc); + + /** + * pktb_data - return pointer to the beginning of the packet buffer + * \param pktb Pointer to packet buffer + */ +-uint8_t *pktb_data(struct pkt_buff *pktb) ++uint8_t __EXPORTED *pktb_data(struct pkt_buff *pktb) + { + return pktb->data; + } +-EXPORT_SYMBOL(pktb_data); + + /** + * pktb_len - return length of the packet buffer + * \param pktb Pointer to packet buffer + */ +-uint32_t pktb_len(struct pkt_buff *pktb) ++uint32_t __EXPORTED pktb_len(struct pkt_buff *pktb) + { + return pktb->len; + } +-EXPORT_SYMBOL(pktb_len); + + /** + * pktb_free - release packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_free(struct pkt_buff *pktb) ++void __EXPORTED pktb_free(struct pkt_buff *pktb) + { + free(pktb); + } +-EXPORT_SYMBOL(pktb_free); + + /** + * pktb_push - update pointer to the beginning of the packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_push(struct pkt_buff *pktb, unsigned int len) ++void __EXPORTED pktb_push(struct pkt_buff *pktb, unsigned int len) + { + pktb->data -= len; + pktb->len += len; + } +-EXPORT_SYMBOL(pktb_push); + + /** + * pktb_pull - update pointer to the beginning of the packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_pull(struct pkt_buff *pktb, unsigned int len) ++void __EXPORTED pktb_pull(struct pkt_buff *pktb, unsigned int len) + { + pktb->data += len; + pktb->len -= len; + } +-EXPORT_SYMBOL(pktb_pull); + + /** + * pktb_put - add extra bytes to the tail of the packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_put(struct pkt_buff *pktb, unsigned int len) ++void __EXPORTED pktb_put(struct pkt_buff *pktb, unsigned int len) + { + pktb->tail += len; + pktb->len += len; + } +-EXPORT_SYMBOL(pktb_put); + + /** + * pktb_trim - set new length for this packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_trim(struct pkt_buff *pktb, unsigned int len) ++void __EXPORTED pktb_trim(struct pkt_buff *pktb, unsigned int len) + { + pktb->len = len; + } +-EXPORT_SYMBOL(pktb_trim); + + /** + * pktb_tailroom - get room in bytes in the tail of the packet buffer + * \param pktb Pointer to packet buffer + */ +-unsigned int pktb_tailroom(struct pkt_buff *pktb) ++unsigned int __EXPORTED pktb_tailroom(struct pkt_buff *pktb) + { + return pktb->data_len - pktb->len; + } +-EXPORT_SYMBOL(pktb_tailroom); + + /** + * pktb_mac_header - return pointer to layer 2 header (if any) + * \param pktb Pointer to packet buffer + */ +-uint8_t *pktb_mac_header(struct pkt_buff *pktb) ++uint8_t __EXPORTED *pktb_mac_header(struct pkt_buff *pktb) + { + return pktb->mac_header; + } +-EXPORT_SYMBOL(pktb_mac_header); + + /** + * pktb_network_header - return pointer to layer 3 header + * \param pktb Pointer to packet buffer + */ +-uint8_t *pktb_network_header(struct pkt_buff *pktb) ++uint8_t __EXPORTED *pktb_network_header(struct pkt_buff *pktb) + { + return pktb->network_header; + } +-EXPORT_SYMBOL(pktb_network_header); + + /** + * pktb_transport_header - return pointer to layer 4 header (if any) + * \param pktb Pointer to packet buffer + */ +-uint8_t *pktb_transport_header(struct pkt_buff *pktb) ++uint8_t __EXPORTED *pktb_transport_header(struct pkt_buff *pktb) + { + return pktb->transport_header; + } +-EXPORT_SYMBOL(pktb_transport_header); + + static int pktb_expand_tail(struct pkt_buff *pkt, int extra) + { +@@ -224,7 +212,7 @@ static int enlarge_pkt(struct pkt_buff *pkt, unsigned int extra) + return 1; + } + +-int pktb_mangle(struct pkt_buff *pkt, ++int __EXPORTED pktb_mangle(struct pkt_buff *pkt, + unsigned int dataoff, + unsigned int match_offset, + unsigned int match_len, +@@ -258,17 +246,15 @@ int pktb_mangle(struct pkt_buff *pkt, + pkt->mangled = true; + return 1; + } +-EXPORT_SYMBOL(pktb_mangle); + + /** + * pktb_mangled - return true if packet has been mangled + * \param pktb Pointer to packet buffer + */ +-bool pktb_mangled(const struct pkt_buff *pkt) ++bool __EXPORTED pktb_mangled(const struct pkt_buff *pkt) + { + return pkt->mangled; + } +-EXPORT_SYMBOL(pktb_mangled); + + /** + * @} +diff --git a/src/extra/tcp.c b/src/extra/tcp.c +index d1cd79d..8038ce5 100644 +--- a/src/extra/tcp.c ++++ b/src/extra/tcp.c +@@ -40,7 +40,7 @@ + * \note You have to call nfq_ip_set_transport_header or + * nfq_ip6_set_transport_header first to access the TCP header. + */ +-struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb) ++struct tcphdr __EXPORTED *nfq_tcp_get_hdr(struct pkt_buff *pktb) + { + if (pktb->transport_header == NULL) + return NULL; +@@ -51,14 +51,13 @@ struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb) + + return (struct tcphdr *)pktb->transport_header; + } +-EXPORT_SYMBOL(nfq_tcp_get_hdr); + + /** + * nfq_tcp_get_payload - get the TCP packet payload + * \param tcph: pointer to the TCP header + * \param pktb: pointer to user-space network packet buffer + */ +-void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) ++void __EXPORTED *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) + { + unsigned int len = tcph->doff * 4; + +@@ -72,47 +71,43 @@ void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) + + return pktb->transport_header + len; + } +-EXPORT_SYMBOL(nfq_tcp_get_payload); + + /** + * nfq_tcp_get_payload_len - get the tcp packet payload + * \param tcph: pointer to the TCP header + * \param pktb: pointer to user-space network packet buffer + */ +-unsigned int ++unsigned int __EXPORTED + nfq_tcp_get_payload_len(struct tcphdr *tcph, struct pkt_buff *pktb) + { + return pktb->tail - pktb->transport_header; + } +-EXPORT_SYMBOL(nfq_tcp_get_payload_len); + + /** + * nfq_tcp_set_checksum_ipv4 - computes IPv4/TCP packet checksum + * \param tcph: pointer to the TCP header + * \param iph: pointer to the IPv4 header + */ +-void ++void __EXPORTED + nfq_tcp_compute_checksum_ipv4(struct tcphdr *tcph, struct iphdr *iph) + { + /* checksum field in header needs to be zero for calculation. */ + tcph->check = 0; + tcph->check = nfq_checksum_tcpudp_ipv4(iph); + } +-EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv4); + + /** + * nfq_tcp_set_checksum_ipv6 - computes IPv6/TCP packet checksum + * \param tcph: pointer to the TCP header + * \param iph: pointer to the IPv6 header + */ +-void ++void __EXPORTED + nfq_tcp_compute_checksum_ipv6(struct tcphdr *tcph, struct ip6_hdr *ip6h) + { + /* checksum field in header needs to be zero for calculation. */ + tcph->check = 0; + tcph->check = nfq_checksum_tcpudp_ipv6(ip6h, tcph); + } +-EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv6); + + /* + * The union cast uses a gcc extension to avoid aliasing problems +@@ -134,7 +129,7 @@ union tcp_word_hdr { + * \param tcp: pointer to a valid tcp header. + * + */ +-int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph) ++int __EXPORTED nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph) + { + int ret, len = 0; + +@@ -177,7 +172,6 @@ int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph) + + return ret; + } +-EXPORT_SYMBOL(nfq_tcp_snprintf); + + /** + * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer +@@ -189,7 +183,7 @@ EXPORT_SYMBOL(nfq_tcp_snprintf); + * + * \note This function recalculates the IPv4 and TCP checksums for you. + */ +-int ++int __EXPORTED + nfq_tcp_mangle_ipv4(struct pkt_buff *pkt, + unsigned int match_offset, unsigned int match_len, + const char *rep_buffer, unsigned int rep_len) +@@ -208,7 +202,6 @@ nfq_tcp_mangle_ipv4(struct pkt_buff *pkt, + + return 1; + } +-EXPORT_SYMBOL(nfq_tcp_mangle_ipv4); + + /** + * @} +diff --git a/src/extra/udp.c b/src/extra/udp.c +index 8c44a66..99c8faa 100644 +--- a/src/extra/udp.c ++++ b/src/extra/udp.c +@@ -37,7 +37,7 @@ + * This function returns NULL if invalid UDP header is found. On success, + * it returns the UDP header. + */ +-struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb) ++struct udphdr __EXPORTED *nfq_udp_get_hdr(struct pkt_buff *pktb) + { + if (pktb->transport_header == NULL) + return NULL; +@@ -48,14 +48,13 @@ struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb) + + return (struct udphdr *)pktb->transport_header; + } +-EXPORT_SYMBOL(nfq_udp_get_hdr); + + /** + * nfq_udp_get_payload - get the UDP packet payload. + * \param udph: the pointer to the UDP header. + * \param tail: pointer to the tail of the packet + */ +-void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) ++void __EXPORTED *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) + { + uint16_t len = ntohs(udph->len); + +@@ -69,17 +68,15 @@ void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) + + return pktb->transport_header + sizeof(struct udphdr); + } +-EXPORT_SYMBOL(nfq_udp_get_payload); + + /** + * nfq_udp_get_payload_len - get the udp packet payload. + * \param udp: the pointer to the udp header. + */ +-unsigned int nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb) ++unsigned int __EXPORTED nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb) + { + return pktb->tail - pktb->transport_header; + } +-EXPORT_SYMBOL(nfq_udp_get_payload_len); + + /** + * nfq_udp_set_checksum_ipv4 - computes a IPv4/TCP packet's segment +@@ -91,14 +88,13 @@ EXPORT_SYMBOL(nfq_udp_get_payload_len); + * \see nfq_pkt_compute_ip_checksum + * \see nfq_pkt_compute_udp_checksum + */ +-void ++void __EXPORTED + nfq_udp_compute_checksum_ipv4(struct udphdr *udph, struct iphdr *iph) + { + /* checksum field in header needs to be zero for calculation. */ + udph->check = 0; + udph->check = nfq_checksum_tcpudp_ipv4(iph); + } +-EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4); + + /** + * nfq_udp_set_checksum_ipv6 - computes a IPv6/TCP packet's segment +@@ -110,14 +106,13 @@ EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4); + * \see nfq_pkt_compute_ip_checksum + * \see nfq_pkt_compute_udp_checksum + */ +-void ++void __EXPORTED + nfq_udp_compute_checksum_ipv6(struct udphdr *udph, struct ip6_hdr *ip6h) + { + /* checksum field in header needs to be zero for calculation. */ + udph->check = 0; + udph->check = nfq_checksum_tcpudp_ipv6(ip6h, udph); + } +-EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6); + + /** + * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer +@@ -129,7 +124,7 @@ EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6); + * + * \note This function recalculates the IPv4 and TCP checksums for you. + */ +-int ++int __EXPORTED + nfq_udp_mangle_ipv4(struct pkt_buff *pkt, + unsigned int match_offset, unsigned int match_len, + const char *rep_buffer, unsigned int rep_len) +@@ -148,7 +143,6 @@ nfq_udp_mangle_ipv4(struct pkt_buff *pkt, + + return 1; + } +-EXPORT_SYMBOL(nfq_udp_mangle_ipv4); + + /** + * nfq_pkt_snprintf_udp_hdr - print udp header into one buffer in a humnan +@@ -158,12 +152,11 @@ EXPORT_SYMBOL(nfq_udp_mangle_ipv4); + * \param udp: pointer to a valid udp header. + * + */ +-int nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph) ++int __EXPORTED nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph) + { + return snprintf(buf, size, "SPT=%u DPT=%u ", + htons(udph->source), htons(udph->dest)); + } +-EXPORT_SYMBOL(nfq_udp_snprintf); + + /** + * @} +diff --git a/src/internal.h b/src/internal.h +index 558d267..79b0752 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -5,10 +5,9 @@ + #include + #include + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible ++# define __EXPORTED __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORTED + #endif + + struct iphdr; +diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c +index 065d618..ab0b66b 100644 +--- a/src/libnetfilter_queue.c ++++ b/src/libnetfilter_queue.c +@@ -133,8 +133,7 @@ struct nfq_data { + struct nfattr **data; + }; + +-int nfq_errno; +-EXPORT_SYMBOL(nfq_errno); ++int __EXPORTED nfq_errno; + + /*********************************************************************** + * low level stuff +@@ -218,11 +217,10 @@ static int __nfq_rcv_pkt(struct nlmsghdr *nlh, struct nfattr *nfa[], + + /* public interface */ + +-struct nfnl_handle *nfq_nfnlh(struct nfq_handle *h) ++struct nfnl_handle __EXPORTED *nfq_nfnlh(struct nfq_handle *h) + { + return h->nfnlh; + } +-EXPORT_SYMBOL(nfq_nfnlh); + + /** + * +@@ -294,11 +292,10 @@ EXPORT_SYMBOL(nfq_nfnlh); + * over the netlink connection associated with the given queue connection + * handle. + */ +-int nfq_fd(struct nfq_handle *h) ++int __EXPORTED nfq_fd(struct nfq_handle *h) + { + return nfnl_fd(nfq_nfnlh(h)); + } +-EXPORT_SYMBOL(nfq_fd); + /** + * @} + */ +@@ -349,7 +346,7 @@ EXPORT_SYMBOL(nfq_fd); + * + * \return a pointer to a new queue handle or NULL on failure. + */ +-struct nfq_handle *nfq_open(void) ++struct nfq_handle __EXPORTED *nfq_open(void) + { + struct nfnl_handle *nfnlh = nfnl_open(); + struct nfq_handle *qh; +@@ -366,7 +363,6 @@ struct nfq_handle *nfq_open(void) + + return qh; + } +-EXPORT_SYMBOL(nfq_open); + + /** + * @} +@@ -382,7 +378,7 @@ EXPORT_SYMBOL(nfq_open); + * + * \return a pointer to a new queue handle or NULL on failure. + */ +-struct nfq_handle *nfq_open_nfnl(struct nfnl_handle *nfnlh) ++struct nfq_handle __EXPORTED *nfq_open_nfnl(struct nfnl_handle *nfnlh) + { + struct nfnl_callback pkt_cb = { + .call = __nfq_rcv_pkt, +@@ -419,7 +415,6 @@ out_free: + free(h); + return NULL; + } +-EXPORT_SYMBOL(nfq_open_nfnl); + + /** + * \addtogroup LibrarySetup +@@ -438,7 +433,7 @@ EXPORT_SYMBOL(nfq_open_nfnl); + * + * \return 0 on success, non-zero on failure. + */ +-int nfq_close(struct nfq_handle *h) ++int __EXPORTED nfq_close(struct nfq_handle *h) + { + int ret; + +@@ -447,7 +442,6 @@ int nfq_close(struct nfq_handle *h) + free(h); + return ret; + } +-EXPORT_SYMBOL(nfq_close); + + /** + * nfq_bind_pf - bind a nfqueue handler to a given protocol family +@@ -460,11 +454,10 @@ EXPORT_SYMBOL(nfq_close); + * + * \return integer inferior to 0 in case of failure + */ +-int nfq_bind_pf(struct nfq_handle *h, uint16_t pf) ++int __EXPORTED nfq_bind_pf(struct nfq_handle *h, uint16_t pf) + { + return __build_send_cfg_msg(h, NFQNL_CFG_CMD_PF_BIND, 0, pf); + } +-EXPORT_SYMBOL(nfq_bind_pf); + + /** + * nfq_unbind_pf - unbind nfqueue handler from a protocol family +@@ -476,11 +469,10 @@ EXPORT_SYMBOL(nfq_bind_pf); + * + * This call is obsolete, Linux kernels from 3.8 onwards ignore it. + */ +-int nfq_unbind_pf(struct nfq_handle *h, uint16_t pf) ++int __EXPORTED nfq_unbind_pf(struct nfq_handle *h, uint16_t pf) + { + return __build_send_cfg_msg(h, NFQNL_CFG_CMD_PF_UNBIND, 0, pf); + } +-EXPORT_SYMBOL(nfq_unbind_pf); + + + /** +@@ -524,7 +516,7 @@ typedef int nfq_callback(struct nfq_q_handle *qh, + * The callback should return < 0 to stop processing. + */ + +-struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h, ++struct nfq_q_handle __EXPORTED *nfq_create_queue(struct nfq_handle *h, + uint16_t num, + nfq_callback *cb, + void *data) +@@ -555,7 +547,6 @@ struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h, + add_qh(qh); + return qh; + } +-EXPORT_SYMBOL(nfq_create_queue); + + /** + * @} +@@ -573,7 +564,7 @@ EXPORT_SYMBOL(nfq_create_queue); + * Removes the binding for the specified queue handle. This call also unbind + * from the nfqueue handler, so you don't have to call nfq_unbind_pf. + */ +-int nfq_destroy_queue(struct nfq_q_handle *qh) ++int __EXPORTED nfq_destroy_queue(struct nfq_q_handle *qh) + { + int ret = __build_send_cfg_msg(qh->h, NFQNL_CFG_CMD_UNBIND, qh->id, 0); + if (ret == 0) { +@@ -583,7 +574,6 @@ int nfq_destroy_queue(struct nfq_q_handle *qh) + + return ret; + } +-EXPORT_SYMBOL(nfq_destroy_queue); + + /** + * nfq_handle_packet - handle a packet received from the nfqueue subsystem +@@ -597,11 +587,10 @@ EXPORT_SYMBOL(nfq_destroy_queue); + * + * \return 0 on success, non-zero on failure. + */ +-int nfq_handle_packet(struct nfq_handle *h, char *buf, int len) ++int __EXPORTED nfq_handle_packet(struct nfq_handle *h, char *buf, int len) + { + return nfnl_handle_packet(h->nfnlh, buf, len); + } +-EXPORT_SYMBOL(nfq_handle_packet); + + /** + * nfq_set_mode - set the amount of packet data that nfqueue copies to userspace +@@ -618,7 +607,7 @@ EXPORT_SYMBOL(nfq_handle_packet); + * + * \return -1 on error; >=0 otherwise. + */ +-int nfq_set_mode(struct nfq_q_handle *qh, ++int __EXPORTED nfq_set_mode(struct nfq_q_handle *qh, + uint8_t mode, uint32_t range) + { + union { +@@ -638,7 +627,6 @@ int nfq_set_mode(struct nfq_q_handle *qh, + + return nfnl_query(qh->h->nfnlh, &u.nmh); + } +-EXPORT_SYMBOL(nfq_set_mode); + + /** + * nfq_set_queue_flags - set flags (options) for the kernel queue +@@ -690,7 +678,7 @@ EXPORT_SYMBOL(nfq_set_mode); + * + * \return -1 on error with errno set appropriately; =0 otherwise. + */ +-int nfq_set_queue_flags(struct nfq_q_handle *qh, ++int __EXPORTED nfq_set_queue_flags(struct nfq_q_handle *qh, + uint32_t mask, uint32_t flags) + { + union { +@@ -711,7 +699,6 @@ int nfq_set_queue_flags(struct nfq_q_handle *qh, + + return nfnl_query(qh->h->nfnlh, &u.nmh); + } +-EXPORT_SYMBOL(nfq_set_queue_flags); + + /** + * nfq_set_queue_maxlen - Set kernel queue maximum length parameter +@@ -724,7 +711,7 @@ EXPORT_SYMBOL(nfq_set_queue_flags); + * + * \return -1 on error; >=0 otherwise. + */ +-int nfq_set_queue_maxlen(struct nfq_q_handle *qh, ++int __EXPORTED nfq_set_queue_maxlen(struct nfq_q_handle *qh, + uint32_t queuelen) + { + union { +@@ -742,7 +729,6 @@ int nfq_set_queue_maxlen(struct nfq_q_handle *qh, + + return nfnl_query(qh->h->nfnlh, &u.nmh); + } +-EXPORT_SYMBOL(nfq_set_queue_maxlen); + + /** + * @} +@@ -829,14 +815,13 @@ static int __set_verdict(struct nfq_q_handle *qh, uint32_t id, + * + * \return -1 on error; >= 0 otherwise. + */ +-int nfq_set_verdict(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict, uint32_t data_len, + const unsigned char *buf) + { + return __set_verdict(qh, id, verdict, 0, 0, data_len, buf, + NFQNL_MSG_VERDICT); + } +-EXPORT_SYMBOL(nfq_set_verdict); + + /** + * nfq_set_verdict2 - like nfq_set_verdict, but you can set the mark. +@@ -847,14 +832,13 @@ EXPORT_SYMBOL(nfq_set_verdict); + * \param data_len number of bytes of data pointed to by #buf + * \param buf the buffer that contains the packet data + */ +-int nfq_set_verdict2(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict2(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict, uint32_t mark, + uint32_t data_len, const unsigned char *buf) + { + return __set_verdict(qh, id, verdict, htonl(mark), 1, data_len, + buf, NFQNL_MSG_VERDICT); + } +-EXPORT_SYMBOL(nfq_set_verdict2); + + /** + * nfq_set_verdict_batch - issue verdicts on several packets at once +@@ -868,13 +852,12 @@ EXPORT_SYMBOL(nfq_set_verdict2); + * batch support was added in Linux 3.1. + * These functions will fail silently on older kernels. + */ +-int nfq_set_verdict_batch(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict_batch(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict) + { + return __set_verdict(qh, id, verdict, 0, 0, 0, NULL, + NFQNL_MSG_VERDICT_BATCH); + } +-EXPORT_SYMBOL(nfq_set_verdict_batch); + + /** + * nfq_set_verdict_batch2 - like nfq_set_verdict_batch, but you can set a mark. +@@ -883,13 +866,12 @@ EXPORT_SYMBOL(nfq_set_verdict_batch); + * \param verdict verdict to return to netfilter (NF_ACCEPT, NF_DROP) + * \param mark mark to put on packet + */ +-int nfq_set_verdict_batch2(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict_batch2(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict, uint32_t mark) + { + return __set_verdict(qh, id, verdict, htonl(mark), 1, 0, + NULL, NFQNL_MSG_VERDICT_BATCH); + } +-EXPORT_SYMBOL(nfq_set_verdict_batch2); + + /** + * nfq_set_verdict_mark - like nfq_set_verdict, but you can set the mark. +@@ -905,14 +887,13 @@ EXPORT_SYMBOL(nfq_set_verdict_batch2); + * This function is deprecated since it is broken, its use is highly + * discouraged. Please, use nfq_set_verdict2 instead. + */ +-int nfq_set_verdict_mark(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict_mark(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict, uint32_t mark, + uint32_t data_len, const unsigned char *buf) + { + return __set_verdict(qh, id, verdict, mark, 1, data_len, buf, + NFQNL_MSG_VERDICT); + } +-EXPORT_SYMBOL(nfq_set_verdict_mark); + + /** + * @} +@@ -947,12 +928,11 @@ EXPORT_SYMBOL(nfq_set_verdict_mark); + } __attribute__ ((packed)); + \endverbatim + */ +-struct nfqnl_msg_packet_hdr *nfq_get_msg_packet_hdr(struct nfq_data *nfad) ++struct nfqnl_msg_packet_hdr __EXPORTED *nfq_get_msg_packet_hdr(struct nfq_data *nfad) + { + return nfnl_get_pointer_to_data(nfad->data, NFQA_PACKET_HDR, + struct nfqnl_msg_packet_hdr); + } +-EXPORT_SYMBOL(nfq_get_msg_packet_hdr); + + /** + * nfq_get_nfmark - get the packet mark +@@ -960,11 +940,10 @@ EXPORT_SYMBOL(nfq_get_msg_packet_hdr); + * + * \return the netfilter mark currently assigned to the given queued packet. + */ +-uint32_t nfq_get_nfmark(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_nfmark(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_MARK, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_nfmark); + + /** + * nfq_get_timestamp - get the packet timestamp +@@ -975,7 +954,7 @@ EXPORT_SYMBOL(nfq_get_nfmark); + * + * \return 0 on success, non-zero on failure. + */ +-int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv) ++int __EXPORTED nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv) + { + struct nfqnl_msg_packet_timestamp *qpt; + qpt = nfnl_get_pointer_to_data(nfad->data, NFQA_TIMESTAMP, +@@ -988,7 +967,6 @@ int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv) + + return 0; + } +-EXPORT_SYMBOL(nfq_get_timestamp); + + /** + * nfq_get_indev - get the interface that the packet was received through +@@ -1001,11 +979,10 @@ EXPORT_SYMBOL(nfq_get_timestamp); + * \warning all nfq_get_dev() functions return 0 if not set, since linux + * only allows ifindex >= 1, see net/core/dev.c:2600 (in 2.6.13.1) + */ +-uint32_t nfq_get_indev(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_indev(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_INDEV, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_indev); + + /** + * nfq_get_physindev - get the physical interface that the packet was received +@@ -1015,11 +992,10 @@ EXPORT_SYMBOL(nfq_get_indev); + * If the returned index is 0, the packet was locally generated or the + * physical input interface is no longer known (ie. POSTROUTING?). + */ +-uint32_t nfq_get_physindev(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_physindev(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSINDEV, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_physindev); + + /** + * nfq_get_outdev - gets the interface that the packet will be routed out +@@ -1029,11 +1005,10 @@ EXPORT_SYMBOL(nfq_get_physindev); + * returned index is 0, the packet is destined for localhost or the output + * interface is not yet known (ie. PREROUTING?). + */ +-uint32_t nfq_get_outdev(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_outdev(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_OUTDEV, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_outdev); + + /** + * nfq_get_physoutdev - get the physical interface that the packet output +@@ -1045,11 +1020,10 @@ EXPORT_SYMBOL(nfq_get_outdev); + * + * \return The index of physical interface that the packet output will be routed out. + */ +-uint32_t nfq_get_physoutdev(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_physoutdev(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSOUTDEV, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_physoutdev); + + /** + * nfq_get_indev_name - get the name of the interface the packet +@@ -1089,13 +1063,12 @@ EXPORT_SYMBOL(nfq_get_physoutdev); + \endverbatim + * + */ +-int nfq_get_indev_name(struct nlif_handle *nlif_handle, ++int __EXPORTED nfq_get_indev_name(struct nlif_handle *nlif_handle, + struct nfq_data *nfad, char *name) + { + uint32_t ifindex = nfq_get_indev(nfad); + return nlif_index2name(nlif_handle, ifindex, name); + } +-EXPORT_SYMBOL(nfq_get_indev_name); + + /** + * nfq_get_physindev_name - get the name of the physical interface the +@@ -1109,13 +1082,12 @@ EXPORT_SYMBOL(nfq_get_indev_name); + * + * \return -1 in case of error, > 0 if it succeed. + */ +-int nfq_get_physindev_name(struct nlif_handle *nlif_handle, ++int __EXPORTED nfq_get_physindev_name(struct nlif_handle *nlif_handle, + struct nfq_data *nfad, char *name) + { + uint32_t ifindex = nfq_get_physindev(nfad); + return nlif_index2name(nlif_handle, ifindex, name); + } +-EXPORT_SYMBOL(nfq_get_physindev_name); + + /** + * nfq_get_outdev_name - get the name of the physical interface the +@@ -1129,13 +1101,12 @@ EXPORT_SYMBOL(nfq_get_physindev_name); + * + * \return -1 in case of error, > 0 if it succeed. + */ +-int nfq_get_outdev_name(struct nlif_handle *nlif_handle, ++int __EXPORTED nfq_get_outdev_name(struct nlif_handle *nlif_handle, + struct nfq_data *nfad, char *name) + { + uint32_t ifindex = nfq_get_outdev(nfad); + return nlif_index2name(nlif_handle, ifindex, name); + } +-EXPORT_SYMBOL(nfq_get_outdev_name); + + /** + * nfq_get_physoutdev_name - get the name of the interface the +@@ -1150,13 +1121,12 @@ EXPORT_SYMBOL(nfq_get_outdev_name); + * \return -1 in case of error, > 0 if it succeed. + */ + +-int nfq_get_physoutdev_name(struct nlif_handle *nlif_handle, ++int __EXPORTED nfq_get_physoutdev_name(struct nlif_handle *nlif_handle, + struct nfq_data *nfad, char *name) + { + uint32_t ifindex = nfq_get_physoutdev(nfad); + return nlif_index2name(nlif_handle, ifindex, name); + } +-EXPORT_SYMBOL(nfq_get_physoutdev_name); + + /** + * nfq_get_packet_hw +@@ -1180,12 +1150,11 @@ EXPORT_SYMBOL(nfq_get_physoutdev_name); + } __attribute__ ((packed)); + \endverbatim + */ +-struct nfqnl_msg_packet_hw *nfq_get_packet_hw(struct nfq_data *nfad) ++struct nfqnl_msg_packet_hw __EXPORTED *nfq_get_packet_hw(struct nfq_data *nfad) + { + return nfnl_get_pointer_to_data(nfad->data, NFQA_HWADDR, + struct nfqnl_msg_packet_hw); + } +-EXPORT_SYMBOL(nfq_get_packet_hw); + + /** + * nfq_get_uid - get the UID of the user the packet belongs to +@@ -1193,7 +1162,7 @@ EXPORT_SYMBOL(nfq_get_packet_hw); + * + * \return 1 if there is a UID available, 0 otherwise. + */ +-int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid) ++int __EXPORTED nfq_get_uid(struct nfq_data *nfad, uint32_t *uid) + { + if (!nfnl_attr_present(nfad->data, NFQA_UID)) + return 0; +@@ -1201,7 +1170,6 @@ int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid) + *uid = ntohl(nfnl_get_data(nfad->data, NFQA_UID, uint32_t)); + return 1; + } +-EXPORT_SYMBOL(nfq_get_uid); + + /** + * nfq_get_gid - get the GID of the user the packet belongs to +@@ -1209,7 +1177,7 @@ EXPORT_SYMBOL(nfq_get_uid); + * + * \return 1 if there is a GID available, 0 otherwise. + */ +-int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid) ++int __EXPORTED nfq_get_gid(struct nfq_data *nfad, uint32_t *gid) + { + if (!nfnl_attr_present(nfad->data, NFQA_GID)) + return 0; +@@ -1217,7 +1185,6 @@ int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid) + *gid = ntohl(nfnl_get_data(nfad->data, NFQA_GID, uint32_t)); + return 1; + } +-EXPORT_SYMBOL(nfq_get_gid); + + + /** +@@ -1227,7 +1194,7 @@ EXPORT_SYMBOL(nfq_get_gid); + * + * \return -1 on error, otherwise > 0 + */ +-int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata) ++int __EXPORTED nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata) + { + if (!nfnl_attr_present(nfad->data, NFQA_SECCTX)) + return -1; +@@ -1240,7 +1207,6 @@ int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata) + + return 0; + } +-EXPORT_SYMBOL(nfq_get_secctx); + + /** + * nfq_get_payload - get payload +@@ -1253,7 +1219,7 @@ EXPORT_SYMBOL(nfq_get_secctx); + * + * \return -1 on error, otherwise > 0. + */ +-int nfq_get_payload(struct nfq_data *nfad, unsigned char **data) ++int __EXPORTED nfq_get_payload(struct nfq_data *nfad, unsigned char **data) + { + *data = (unsigned char *) + nfnl_get_pointer_to_data(nfad->data, NFQA_PAYLOAD, char); +@@ -1262,7 +1228,6 @@ int nfq_get_payload(struct nfq_data *nfad, unsigned char **data) + + return -1; + } +-EXPORT_SYMBOL(nfq_get_payload); + + /** + * @} +@@ -1307,7 +1272,7 @@ do { \ + * would have been printed into the buffer (in case that there is enough + * room in it). See snprintf() return value for more information. + */ +-int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags) ++int __EXPORTED nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags) + { + struct nfqnl_msg_packet_hdr *ph; + struct nfqnl_msg_packet_hw *hwph; +@@ -1460,7 +1425,6 @@ int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags) + + return len; + } +-EXPORT_SYMBOL(nfq_snprintf_xml); + + /** + * @} +diff --git a/src/nlmsg.c b/src/nlmsg.c +index ba28c77..5582407 100644 +--- a/src/nlmsg.c ++++ b/src/nlmsg.c +@@ -30,7 +30,7 @@ + * @{ + */ + +-void nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict) ++void __EXPORTED nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict) + { + struct nfqnl_msg_verdict_hdr vh = { + .verdict = htonl(verdict), +@@ -38,20 +38,17 @@ void nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict) + }; + mnl_attr_put(nlh, NFQA_VERDICT_HDR, sizeof(vh), &vh); + } +-EXPORT_SYMBOL(nfq_nlmsg_verdict_put); + +-void nfq_nlmsg_verdict_put_mark(struct nlmsghdr *nlh, uint32_t mark) ++void __EXPORTED nfq_nlmsg_verdict_put_mark(struct nlmsghdr *nlh, uint32_t mark) + { + mnl_attr_put_u32(nlh, NFQA_MARK, htonl(mark)); + } +-EXPORT_SYMBOL(nfq_nlmsg_verdict_put_mark); + +-void ++void __EXPORTED + nfq_nlmsg_verdict_put_pkt(struct nlmsghdr *nlh, const void *pkt, uint32_t plen) + { + mnl_attr_put(nlh, NFQA_PAYLOAD, plen, pkt); + } +-EXPORT_SYMBOL(nfq_nlmsg_verdict_put_pkt); + + /** + * @} +@@ -85,7 +82,7 @@ EXPORT_SYMBOL(nfq_nlmsg_verdict_put_pkt); + * given protocol family. Both commands are ignored by Linux kernel 3.8 and + * later versions. + */ +-void nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd) ++void __EXPORTED nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd) + { + struct nfqnl_msg_config_cmd command = { + .command = cmd, +@@ -93,9 +90,8 @@ void nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd) + }; + mnl_attr_put(nlh, NFQA_CFG_CMD, sizeof(command), &command); + } +-EXPORT_SYMBOL(nfq_nlmsg_cfg_put_cmd); + +-void nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range) ++void __EXPORTED nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range) + { + struct nfqnl_msg_config_params params = { + .copy_range = htonl(range), +@@ -103,13 +99,11 @@ void nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range) + }; + mnl_attr_put(nlh, NFQA_CFG_PARAMS, sizeof(params), ¶ms); + } +-EXPORT_SYMBOL(nfq_nlmsg_cfg_put_params); + +-void nfq_nlmsg_cfg_put_qmaxlen(struct nlmsghdr *nlh, uint32_t queue_maxlen) ++void __EXPORTED nfq_nlmsg_cfg_put_qmaxlen(struct nlmsghdr *nlh, uint32_t queue_maxlen) + { + mnl_attr_put_u32(nlh, NFQA_CFG_QUEUE_MAXLEN, htonl(queue_maxlen)); + } +-EXPORT_SYMBOL(nfq_nlmsg_cfg_put_qmaxlen); + + /** + * @} +@@ -179,12 +173,11 @@ static int nfq_pkt_parse_attr_cb(const struct nlattr *attr, void *data) + * This function returns MNL_CB_ERROR if any error occurs, or MNL_CB_OK on + * success. + */ +-int nfq_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr **attr) ++int __EXPORTED nfq_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr **attr) + { + return mnl_attr_parse(nlh, sizeof(struct nfgenmsg), + nfq_pkt_parse_attr_cb, attr); + } +-EXPORT_SYMBOL(nfq_nlmsg_parse); + + /** + * @} +-- +2.12.2 + diff --git a/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch b/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch new file mode 100644 index 00000000000..9377f57cb06 --- /dev/null +++ b/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch @@ -0,0 +1,385 @@ +From f58c5b09fb59baf07c942d373fc4d522b27e73c6 Mon Sep 17 00:00:00 2001 +From: Kevin Cernekee +Date: Wed, 4 Jan 2017 14:30:26 -0800 +Subject: Use __EXPORTED rather than EXPORT_SYMBOL + +clang is sensitive to the ordering of +__attribute__((visibility("default"))) relative to the function +body. gcc is not. So if we try to re-declare an existing function +with default visibility, clang prints a warning and generates +a broken .so file in which nfct_helper_* are not exported to library +callers. + +Move the attribute up into the function definition to make clang happy. + +Signed-off-by: Kevin Cernekee +Signed-off-by: Pablo Neira Ayuso +--- + doxygen.cfg.in | 2 +- + src/internal.h | 5 ++- + src/libnetfilter_cthelper.c | 83 ++++++++++++++++++--------------------------- + 3 files changed, 36 insertions(+), 54 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index cac9b05..190b7cd 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = */.git/* .*.d +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL ++EXCLUDE_SYMBOLS = + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/src/internal.h b/src/internal.h +index 3a88d1a..5d78171 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -3,10 +3,9 @@ + + #include "config.h" + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible ++# define __EXPORTED __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORTED + #endif + + #endif +diff --git a/src/libnetfilter_cthelper.c b/src/libnetfilter_cthelper.c +index f8f58e6..af543a1 100644 +--- a/src/libnetfilter_cthelper.c ++++ b/src/libnetfilter_cthelper.c +@@ -99,17 +99,16 @@ struct nfct_helper { + * In case of success, this function returns a valid pointer, otherwise NULL + * s returned and errno is appropriately set. + */ +-struct nfct_helper *nfct_helper_alloc(void) ++struct nfct_helper __EXPORTED *nfct_helper_alloc(void) + { + return calloc(1, sizeof(struct nfct_helper)); + } +-EXPORT_SYMBOL(nfct_helper_alloc); + + /** + * nfct_helper_free - release one helper object + * \param nfct_helper pointer to the helper object + */ +-void nfct_helper_free(struct nfct_helper *h) ++void __EXPORTED nfct_helper_free(struct nfct_helper *h) + { + int i; + +@@ -119,7 +118,6 @@ void nfct_helper_free(struct nfct_helper *h) + } + free(h); + } +-EXPORT_SYMBOL(nfct_helper_free); + + /** + * nfct_helper_policy_alloc - allocate a new helper policy object +@@ -127,21 +125,19 @@ EXPORT_SYMBOL(nfct_helper_free); + * In case of success, this function returns a valid pointer, otherwise NULL + * s returned and errno is appropriately set. + */ +-struct nfct_helper_policy *nfct_helper_policy_alloc(void) ++struct nfct_helper_policy __EXPORTED *nfct_helper_policy_alloc(void) + { + return calloc(1, sizeof(struct nfct_helper_policy)); + } +-EXPORT_SYMBOL(nfct_helper_policy_alloc); + + /** + * nfct_helper_free - release one helper policy object + * \param nfct_helper pointer to the helper object + */ +-void nfct_helper_policy_free(struct nfct_helper_policy *p) ++void __EXPORTED nfct_helper_policy_free(struct nfct_helper_policy *p) + { + free(p); + } +-EXPORT_SYMBOL(nfct_helper_policy_free); + + /** + * nfct_helper_policy_attr_set - set one attribute of the helper object +@@ -149,7 +145,7 @@ EXPORT_SYMBOL(nfct_helper_policy_free); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-void ++void __EXPORTED + nfct_helper_policy_attr_set(struct nfct_helper_policy *p, + enum nfct_helper_policy_attr_type type, + const void *data) +@@ -170,7 +166,6 @@ nfct_helper_policy_attr_set(struct nfct_helper_policy *p, + break; + } + } +-EXPORT_SYMBOL(nfct_helper_policy_attr_set); + + /** + * nfct_helper_attr_set_str - set one attribute the helper object +@@ -178,23 +173,21 @@ EXPORT_SYMBOL(nfct_helper_policy_attr_set); + * \param type attribute type you want to set + * \param name string that will be used to set this attribute + */ +-void ++void __EXPORTED + nfct_helper_policy_attr_set_str(struct nfct_helper_policy *p, + enum nfct_helper_policy_attr_type type, + const char *name) + { + nfct_helper_policy_attr_set(p, type, name); + } +-EXPORT_SYMBOL(nfct_helper_policy_attr_set_str); + +-void ++void __EXPORTED + nfct_helper_policy_attr_set_u32(struct nfct_helper_policy *p, + enum nfct_helper_policy_attr_type type, + uint32_t value) + { + nfct_helper_policy_attr_set(p, type, &value); + } +-EXPORT_SYMBOL(nfct_helper_policy_attr_set_u32); + + /** + * nfct_helper_attr_set - set one attribute of the helper object +@@ -202,7 +195,7 @@ EXPORT_SYMBOL(nfct_helper_policy_attr_set_u32); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-void ++void __EXPORTED + nfct_helper_attr_set(struct nfct_helper *h, + enum nfct_helper_attr_type type, const void *data) + { +@@ -250,7 +243,6 @@ nfct_helper_attr_set(struct nfct_helper *h, + break; + } + } +-EXPORT_SYMBOL(nfct_helper_attr_set); + + /** + * nfct_helper_attr_set_str - set one attribute the helper object +@@ -258,44 +250,40 @@ EXPORT_SYMBOL(nfct_helper_attr_set); + * \param type attribute type you want to set + * \param name string that will be used to set this attribute + */ +-void ++void __EXPORTED + nfct_helper_attr_set_str(struct nfct_helper *nfct_helper, enum nfct_helper_attr_type type, + const char *name) + { + nfct_helper_attr_set(nfct_helper, type, name); + } +-EXPORT_SYMBOL(nfct_helper_attr_set_str); + +-void ++void __EXPORTED + nfct_helper_attr_set_u8(struct nfct_helper *nfct_helper, + enum nfct_helper_attr_type type, uint8_t value) + { + nfct_helper_attr_set(nfct_helper, type, &value); + } +-EXPORT_SYMBOL(nfct_helper_attr_set_u8); + +-void ++void __EXPORTED + nfct_helper_attr_set_u16(struct nfct_helper *nfct_helper, + enum nfct_helper_attr_type type, uint16_t value) + { + nfct_helper_attr_set(nfct_helper, type, &value); + } +-EXPORT_SYMBOL(nfct_helper_attr_set_u16); + +-void ++void __EXPORTED + nfct_helper_attr_set_u32(struct nfct_helper *nfct_helper, + enum nfct_helper_attr_type type, uint32_t value) + { + nfct_helper_attr_set(nfct_helper, type, &value); + } +-EXPORT_SYMBOL(nfct_helper_attr_set_u32); + + /** + * nfct_helper_attr_unset - unset one attribute the helper object + * \param nfct_helper pointer to the helper object + * \param type attribute type you want to set + */ +-void ++void __EXPORTED + nfct_helper_attr_unset(struct nfct_helper *nfct_helper, enum nfct_helper_attr_type type) + { + switch(type) { +@@ -307,7 +295,6 @@ nfct_helper_attr_unset(struct nfct_helper *nfct_helper, enum nfct_helper_attr_ty + break; + } + } +-EXPORT_SYMBOL(nfct_helper_attr_unset); + + /** + * nfct_helper_attr_get - get one attribute the helper object +@@ -317,8 +304,9 @@ EXPORT_SYMBOL(nfct_helper_attr_unset); + * This function returns a valid pointer to the attribute data. If a + * unsupported attribute is used, this returns NULL. + */ +-const void *nfct_helper_attr_get(struct nfct_helper *helper, +- enum nfct_helper_attr_type type) ++const void __EXPORTED * ++nfct_helper_attr_get(struct nfct_helper *helper, ++ enum nfct_helper_attr_type type) + { + const void *ret = NULL; + +@@ -358,7 +346,6 @@ const void *nfct_helper_attr_get(struct nfct_helper *helper, + } + return ret; + } +-EXPORT_SYMBOL(nfct_helper_attr_get); + + /** + * nfct_helper_attr_get_str - get one attribute the helper object +@@ -368,13 +355,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get); + * This function returns a valid pointer to the beginning of the string. + * If the attribute is unsupported, this returns NULL. + */ +-const char * ++const char __EXPORTED * + nfct_helper_attr_get_str(struct nfct_helper *nfct_helper, + enum nfct_helper_attr_type type) + { + return (const char *)nfct_helper_attr_get(nfct_helper, type); + } +-EXPORT_SYMBOL(nfct_helper_attr_get_str); + + /** + * nfct_helper_attr_get_u8 - get one attribute the helper object +@@ -384,12 +370,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_str); + * This function returns a unsigned 8-bits integer. If the attribute is + * unsupported, this returns NULL. + */ +-uint8_t nfct_helper_attr_get_u8(struct nfct_helper *nfct_helper, +- enum nfct_helper_attr_type type) ++uint8_t __EXPORTED ++nfct_helper_attr_get_u8(struct nfct_helper *nfct_helper, ++ enum nfct_helper_attr_type type) + { + return *((uint8_t *)nfct_helper_attr_get(nfct_helper, type)); + } +-EXPORT_SYMBOL(nfct_helper_attr_get_u8); + + /** + * nfct_helper_attr_get_u16 - get one attribute the helper object +@@ -399,12 +385,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u8); + * This function returns a unsigned 16-bits integer. If the attribute is + * unsupported, this returns NULL. + */ +-uint16_t nfct_helper_attr_get_u16(struct nfct_helper *nfct_helper, +- enum nfct_helper_attr_type type) ++uint16_t __EXPORTED ++nfct_helper_attr_get_u16(struct nfct_helper *nfct_helper, ++ enum nfct_helper_attr_type type) + { + return *((uint16_t *)nfct_helper_attr_get(nfct_helper, type)); + } +-EXPORT_SYMBOL(nfct_helper_attr_get_u16); + + /** + * nfct_helper_attr_get_u32 - get one attribute the helper object +@@ -414,12 +400,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u16); + * This function returns a unsigned 32-bits integer. If the attribute is + * unsupported, this returns NULL. + */ +-uint32_t nfct_helper_attr_get_u32(struct nfct_helper *nfct_helper, +- enum nfct_helper_attr_type type) ++uint32_t __EXPORTED ++nfct_helper_attr_get_u32(struct nfct_helper *nfct_helper, ++ enum nfct_helper_attr_type type) + { + return *((uint32_t *)nfct_helper_attr_get(nfct_helper, type)); + } +-EXPORT_SYMBOL(nfct_helper_attr_get_u32); + + /** + * nfct_helper_snprintf - print helper object into one buffer +@@ -431,9 +417,10 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u32); + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int nfct_helper_snprintf(char *buf, size_t size, +- struct nfct_helper *helper, +- unsigned int type, unsigned int flags) ++int __EXPORTED ++nfct_helper_snprintf(char *buf, size_t size, ++ struct nfct_helper *helper, ++ unsigned int type, unsigned int flags) + { + int ret; + +@@ -454,7 +441,6 @@ int nfct_helper_snprintf(char *buf, size_t size, + + return ret; + } +-EXPORT_SYMBOL(nfct_helper_snprintf); + + /** + * @} +@@ -490,7 +476,7 @@ EXPORT_SYMBOL(nfct_helper_snprintf); + * - Command NFNL_MSG_ACCT_DEL, to delete one specific nfct_helper object (if + * unused, otherwise you hit EBUSY). + */ +-struct nlmsghdr * ++struct nlmsghdr __EXPORTED * + nfct_helper_nlmsg_build_hdr(char *buf, uint8_t cmd, + uint16_t flags, uint32_t seq) + { +@@ -509,7 +495,6 @@ nfct_helper_nlmsg_build_hdr(char *buf, uint8_t cmd, + + return nlh; + } +-EXPORT_SYMBOL(nfct_helper_nlmsg_build_hdr); + + static void + nfct_helper_nlmsg_build_policy(struct nlmsghdr *nlh, +@@ -530,7 +515,7 @@ nfct_helper_nlmsg_build_policy(struct nlmsghdr *nlh, + * \param nlh: netlink message that you want to use to add the payload. + * \param nfct_helper: pointer to a helper object + */ +-void ++void __EXPORTED + nfct_helper_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfct_helper *h) + { + struct nlattr *nest; +@@ -593,7 +578,6 @@ nfct_helper_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfct_helper *h) + if (h->bitset & (1 << NFCTH_ATTR_STATUS)) + mnl_attr_put_u32(nlh, NFCTH_STATUS, ntohl(h->status)); + } +-EXPORT_SYMBOL(nfct_helper_nlmsg_build_payload); + + static int + nfct_helper_nlmsg_parse_tuple_cb(const struct nlattr *attr, void *data) +@@ -795,7 +779,7 @@ nfct_helper_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data) + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int ++int __EXPORTED + nfct_helper_nlmsg_parse_payload(const struct nlmsghdr *nlh, + struct nfct_helper *h) + { +@@ -832,7 +816,6 @@ nfct_helper_nlmsg_parse_payload(const struct nlmsghdr *nlh, + } + return 0; + } +-EXPORT_SYMBOL(nfct_helper_nlmsg_parse_payload); + + /** + * @} +-- +cgit v1.1 + diff --git a/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch b/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch new file mode 100644 index 00000000000..2c606c832d1 --- /dev/null +++ b/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch @@ -0,0 +1,264 @@ +From d0c4e39d12f903e06db262656cff2e24d267bed7 Mon Sep 17 00:00:00 2001 +From: Kevin Cernekee +Date: Wed, 4 Jan 2017 14:30:25 -0800 +Subject: Use __EXPORTED rather than EXPORT_SYMBOL + +clang is sensitive to the ordering of +__attribute__((visibility("default"))) relative to the function +body. gcc is not. So if we try to re-declare an existing function +with default visibility, clang prints a warning and generates +a broken .so file in which nfct_timeout_* are not exported to library +callers. + +Move the attribute up into the function definition to make clang happy. + +Signed-off-by: Kevin Cernekee +Signed-off-by: Pablo Neira Ayuso +--- + doxygen.cfg.in | 2 +- + src/internal.h | 5 ++--- + src/libnetfilter_cttimeout.c | 44 +++++++++++++++++--------------------------- + 3 files changed, 20 insertions(+), 31 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index 8e5d449..09c3ce0 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = */.git/* .*.d +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL nfct_timeout _container_policy_cb ++EXCLUDE_SYMBOLS = nfct_timeout _container_policy_cb + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/src/internal.h b/src/internal.h +index 3a88d1a..5d78171 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -3,10 +3,9 @@ + + #include "config.h" + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible ++# define __EXPORTED __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORTED + #endif + + #endif +diff --git a/src/libnetfilter_cttimeout.c b/src/libnetfilter_cttimeout.c +index 7844a1f..a0a7185 100644 +--- a/src/libnetfilter_cttimeout.c ++++ b/src/libnetfilter_cttimeout.c +@@ -187,7 +187,7 @@ struct nfct_timeout { + * In case of success, this function returns a valid pointer, otherwise NULL + * s returned and errno is appropriately set. + */ +-struct nfct_timeout *nfct_timeout_alloc(void) ++struct nfct_timeout __EXPORTED *nfct_timeout_alloc(void) + { + struct nfct_timeout *t; + +@@ -197,19 +197,17 @@ struct nfct_timeout *nfct_timeout_alloc(void) + + return t; + } +-EXPORT_SYMBOL(nfct_timeout_alloc); + + /** + * nfct_timeout_free - release one conntrack timeout object + * \param t pointer to the conntrack timeout object + */ +-void nfct_timeout_free(struct nfct_timeout *t) ++void __EXPORTED nfct_timeout_free(struct nfct_timeout *t) + { + if (t->timeout) + free(t->timeout); + free(t); + } +-EXPORT_SYMBOL(nfct_timeout_free); + + /** + * nfct_timeout_attr_set - set one attribute of the conntrack timeout object +@@ -217,7 +215,7 @@ EXPORT_SYMBOL(nfct_timeout_free); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-int ++int __EXPORTED + nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data) + { + switch(type) { +@@ -236,7 +234,6 @@ nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data) + t->attrset |= (1 << type); + return 0; + } +-EXPORT_SYMBOL(nfct_timeout_attr_set); + + /** + * nfct_timeout_attr_set_u8 - set one attribute of the conntrack timeout object +@@ -244,12 +241,11 @@ EXPORT_SYMBOL(nfct_timeout_attr_set); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-int ++int __EXPORTED + nfct_timeout_attr_set_u8(struct nfct_timeout *t, uint32_t type, uint8_t data) + { + return nfct_timeout_attr_set(t, type, &data); + } +-EXPORT_SYMBOL(nfct_timeout_attr_set_u8); + + /** + * nfct_timeout_attr_set_u16 - set one attribute of the conntrack timeout object +@@ -257,23 +253,21 @@ EXPORT_SYMBOL(nfct_timeout_attr_set_u8); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-int ++int __EXPORTED + nfct_timeout_attr_set_u16(struct nfct_timeout *t, uint32_t type, uint16_t data) + { + return nfct_timeout_attr_set(t, type, &data); + } +-EXPORT_SYMBOL(nfct_timeout_attr_set_u16); + + /** + * nfct_timeout_attr_unset - unset one attribute of the conntrack timeout object + * \param t pointer to the conntrack timeout object + * \param type attribute type you want to set + */ +-void nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type) ++void __EXPORTED nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type) + { + t->attrset &= ~(1 << type); + } +-EXPORT_SYMBOL(nfct_timeout_attr_unset); + + /** + * nfct_timeout_policy_attr_set_u32 - set one attribute of the policy +@@ -281,7 +275,7 @@ EXPORT_SYMBOL(nfct_timeout_attr_unset); + * \param type attribute type you want to set + * \param data data that will be used to set this attribute + */ +-int ++int __EXPORTED + nfct_timeout_policy_attr_set_u32(struct nfct_timeout *t, + uint32_t type, uint32_t data) + { +@@ -319,18 +313,17 @@ nfct_timeout_policy_attr_set_u32(struct nfct_timeout *t, + + return 0; + } +-EXPORT_SYMBOL(nfct_timeout_policy_attr_set_u32); + + /** + * nfct_timeout_policy_attr_unset - unset one attribute of the policy + * \param t pointer to the conntrack timeout object + * \param type attribute type you want to set + */ +-void nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type) ++void __EXPORTED ++nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type) + { + t->attrset &= ~(1 << type); + } +-EXPORT_SYMBOL(nfct_timeout_policy_attr_unset); + + /** + * nfct_timeout_policy_attr_to_name - get state name from protocol state number +@@ -340,7 +333,8 @@ EXPORT_SYMBOL(nfct_timeout_policy_attr_unset); + * This function returns NULL if unsupported protocol or state number is passed. + * Otherwise, a pointer to valid string is returned. + */ +-const char *nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state) ++const char __EXPORTED * ++nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state) + { + if (timeout_protocol[l4proto].state_to_name == NULL) { + printf("no array state name\n"); +@@ -354,7 +348,6 @@ const char *nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state) + + return timeout_protocol[l4proto].state_to_name[state]; + } +-EXPORT_SYMBOL(nfct_timeout_policy_attr_to_name); + + /** + * @} +@@ -438,8 +431,9 @@ nfct_timeout_snprintf_default(char *buf, size_t size, + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t, +- unsigned int type, unsigned int flags) ++int __EXPORTED ++nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t, ++ unsigned int type, unsigned int flags) + { + int ret = 0; + +@@ -454,7 +448,6 @@ int nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t, + + return ret; + } +-EXPORT_SYMBOL(nfct_timeout_snprintf); + + /** + * @} +@@ -477,7 +470,7 @@ EXPORT_SYMBOL(nfct_timeout_snprintf); + * - CTNL_MSG_TIMEOUT_GET: get conntrack timeout object. + * - CTNL_MSG_TIMEOUT_DEL: delete conntrack timeout object. + */ +-struct nlmsghdr * ++struct nlmsghdr __EXPORTED * + nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd, + uint16_t flags, uint32_t seq) + { +@@ -496,14 +489,13 @@ nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd, + + return nlh; + } +-EXPORT_SYMBOL(nfct_timeout_nlmsg_build_hdr); + + /** + * nfct_timeout_nlmsg_build_payload - build payload from ct timeout object + * \param nlh: netlink message that you want to use to add the payload. + * \param t: pointer to a conntrack timeout object + */ +-void ++void __EXPORTED + nfct_timeout_nlmsg_build_payload(struct nlmsghdr *nlh, + const struct nfct_timeout *t) + { +@@ -532,7 +524,6 @@ nfct_timeout_nlmsg_build_payload(struct nlmsghdr *nlh, + } + + } +-EXPORT_SYMBOL(nfct_timeout_nlmsg_build_payload); + + static int + timeout_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data) +@@ -629,7 +620,7 @@ timeout_parse_attr_data(struct nfct_timeout *t, const struct nlattr *nest) + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int ++int __EXPORTED + nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh, + struct nfct_timeout *t) + { +@@ -654,7 +645,6 @@ nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh, + } + return 0; + } +-EXPORT_SYMBOL(nfct_timeout_nlmsg_parse_payload); + + /** + * @} +-- +cgit v1.1 + diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb new file mode 100644 index 00000000000..974035ccc76 --- /dev/null +++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb @@ -0,0 +1,17 @@ +SUMMARY = "libnetfilter_acct accounting infrastructure." +DESCRIPTION = "libnetfilter_acct is the userspace library providing interface to extended accounting infrastructure." +HOMEPAGE = "http://netfilter.org/projects/libnetfilter_acct/index.html" +SECTION = "libs" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" +DEPENDS = "libnfnetlink libmnl" + +SRC_URI = "http://ftp.netfilter.org/pub/libnetfilter_acct/libnetfilter_acct-1.0.3.tar.bz2 \ + file://0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch \ +" +SRC_URI[md5sum] = "814b2972b2f5c740ff87510bc109168b" +SRC_URI[sha256sum] = "4250ceef3efe2034f4ac05906c3ee427db31b9b0a2df41b2744f4bf79a959a1a" + +S = "${WORKDIR}/libnetfilter_acct-${PV}" + +inherit autotools pkgconfig diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.2.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.2.bb deleted file mode 100644 index fb915abbfd1..00000000000 --- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.2.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Netfilter connection tracking library" -DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter connection tracking state table" -HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_conntrack/index.html" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -DEPENDS = "libnfnetlink libmnl" - -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${PV}.tar.bz2;name=tar" -SRC_URI[tar.md5sum] = "447114b5d61bb9a9617ead3217c3d3ff" -SRC_URI[tar.sha256sum] = "a0bd747dd58ae1513586b43c7125b41e6325f97eb95ac63d53cf5aeb33254d12" - -S = "${WORKDIR}/libnetfilter_conntrack-${PV}" - -inherit autotools pkgconfig diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb new file mode 100644 index 00000000000..e4e186bdbb7 --- /dev/null +++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb @@ -0,0 +1,16 @@ +SUMMARY = "Netfilter connection tracking library" +DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter connection tracking state table" +HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_conntrack/index.html" +SECTION = "libs" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "libnfnetlink libmnl" + +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${PV}.tar.bz2;name=tar \ +" +SRC_URI[tar.md5sum] = "7139c5f408dd9606ffecfd5dcda8175b" +SRC_URI[tar.sha256sum] = "efcc08021284e75f4d96d3581c5155a11f08fd63316b1938cbcb269c87f37feb" + +S = "${WORKDIR}/libnetfilter_conntrack-${PV}" + +inherit autotools pkgconfig diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb index 405e8bfae29..92cb23d6e96 100644 --- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb +++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb @@ -1,11 +1,14 @@ SUMMARY = "Netfilter connection tracking helper library" DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter user-space helper infrastructure" HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_cthelper/index.html" +SECTION = "libs" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "libmnl" -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cthelper/files/libnetfilter_cthelper-${PV}.tar.bz2;name=tar" +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cthelper/files/libnetfilter_cthelper-${PV}.tar.bz2;name=tar \ + file://libnetfilter-cthelper-visibility-hidden.patch \ +" SRC_URI[tar.md5sum] = "b2efab1a3a198a5add448960ba011acd" SRC_URI[tar.sha256sum] = "07618e71c4d9a6b6b3dc1986540486ee310a9838ba754926c7d14a17d8fccf3d" diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb index 2f258521735..ff32f3409df 100644 --- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb +++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb @@ -1,10 +1,13 @@ SUMMARY = "Netfilter connection tracking timeout library" DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter fine-grain connection tracking timeout infrastructure" +SECTION = "libs" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "libmnl" -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cttimeout/files/libnetfilter_cttimeout-${PV}.tar.bz2;name=tar" +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cttimeout/files/libnetfilter_cttimeout-${PV}.tar.bz2;name=tar \ + file://libnetfilter-cttimeout-visibility-hidden.patch \ +" SRC_URI[tar.md5sum] = "7697437fc9ebb6f6b83df56a633db7f9" SRC_URI[tar.sha256sum] = "aeab12754f557cba3ce2950a2029963d817490df7edb49880008b34d7ff8feba" diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb index 81909b8be13..2f627d458ec 100644 --- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb +++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb @@ -1,14 +1,15 @@ SUMMARY = "Netfilter logging library" DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter log message (NFLOG)" HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_log/index.html" +SECTION = "libs" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -DEPENDS = "libnfnetlink" +DEPENDS = "libnfnetlink libmnl" +SRCREV = "ba196a97e810746e5660fe3f57c87c0ed0f2b324" +PV .= "+git${SRCPV}" -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_log/files/libnetfilter_log-${PV}.tar.bz2;name=tar" -SRC_URI[tar.md5sum] = "2a4bb0654ae675a52d2e8d1c06090b94" -SRC_URI[tar.sha256sum] = "74e0fe75753dba3ac114531b5e73240452c789a3f3adccf5c51217da1d933b21" +SRC_URI = "git://git.netfilter.org/libnetfilter_log" -S = "${WORKDIR}/libnetfilter_log-${PV}" +S = "${WORKDIR}/git" inherit autotools pkgconfig diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb index b932ff65ffa..754e11d9997 100644 --- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb +++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb @@ -1,14 +1,19 @@ SUMMARY = "Netfilter packet queue access library" DESCRIPTION = "Userspace library providing a programming interface (API) to access the Linux kernel netfilter packet queue" HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_queue/index.html" +SECTION = "libs" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "libnfnetlink libmnl" -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_queue/files/libnetfilter_queue-${PV}.tar.bz2;name=tar" -SRC_URI[tar.md5sum] = "df09befac35cb215865b39a36c96a3fa" -SRC_URI[tar.sha256sum] = "838490eb5dbe358f9669823704982f5313a8d397111562373200203f93ac1a32" +PV .= "+git${SRCREV}" +SRCREV = "981025e103d887fb6a9c9bb49c74ec323108d098" -S = "${WORKDIR}/libnetfilter_queue-${PV}" +SRC_URI = "git://git.netfilter.org/libnetfilter_queue \ + file://0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch \ + file://0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch \ + " + +S = "${WORKDIR}/git" inherit autotools pkgconfig diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch new file mode 100644 index 00000000000..00d95cd79e9 --- /dev/null +++ b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch @@ -0,0 +1,28 @@ +From 2e5f2b81fb8cbe0d1cd33e58caa19ac308e1f847 Mon Sep 17 00:00:00 2001 +From: Jan Engelhardt +Date: Tue, 9 Oct 2012 15:59:48 +0200 +Subject: [PATCH 1/6] build: resolve automake-1.12 warnings + +am/ltlibrary.am: warning: 'libnfnetlink.la': linking libtool libraries +using a non-POSIX archiver requires 'AM_PROG_AR' in 'configure.ac' + +Signed-off-by: Jan Engelhardt +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index ed549df..0926a1c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7,6 +7,7 @@ AC_CANONICAL_HOST + + AM_INIT_AUTOMAKE([-Wall foreign subdir-objects + tar-pax no-dist-gzip dist-bzip2 1.6]) ++m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) + + dnl kernel style compile messages + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch new file mode 100644 index 00000000000..c2fb5e05a71 --- /dev/null +++ b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch @@ -0,0 +1,49 @@ +From 5e6b6e23a8b04475c5a9de7eddb4c18103932fe5 Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso +Date: Wed, 7 Aug 2013 20:53:57 +0200 +Subject: [PATCH 2/6] src: get source code license header in sync with current + licensing terms + +Since (3956761 license: upgrade to GPLv2+), we upgraded to GPLv2+, +propagate that changes to src/iftable.c and src/rtnl.c + +Reported-by: Thomas Woerner +Signed-off-by: Pablo Neira Ayuso +--- + src/iftable.c | 2 +- + src/rtnl.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/iftable.c b/src/iftable.c +index 0325335..5976ed8 100644 +--- a/src/iftable.c ++++ b/src/iftable.c +@@ -3,7 +3,7 @@ + * (C) 2004 by Astaro AG, written by Harald Welte + * (C) 2008 by Pablo Neira Ayuso + * +- * This software is Free Software and licensed under GNU GPLv2. ++ * This software is Free Software and licensed under GNU GPLv2+. + */ + + /* IFINDEX handling */ +diff --git a/src/rtnl.c b/src/rtnl.c +index 5ccb272..7b4ac7d 100644 +--- a/src/rtnl.c ++++ b/src/rtnl.c +@@ -1,10 +1,10 @@ + /* rtnl - rtnetlink utility functions + * + * (C) 2004 by Astaro AG, written by Harald Welte +- * ++ * + * Adapted to nfnetlink by Eric Leblond + * +- * This software is free software and licensed under GNU GPLv2. ++ * This software is free software and licensed under GNU GPLv2+. + * + */ + +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch new file mode 100644 index 00000000000..6cb7ed6fa91 --- /dev/null +++ b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch @@ -0,0 +1,27 @@ +From b259fe13826414c1bd5328a25c8d6d60e20e65f2 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 10 Sep 2013 16:23:29 -0300 +Subject: [PATCH 3/6] configure: uclinux is also linux + +Signed-off-by: Gustavo Zacarias +Signed-off-by: Pablo Neira Ayuso +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 0926a1c..b979772 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -18,7 +18,7 @@ AC_DISABLE_STATIC + AM_PROG_LIBTOOL + + case "$host" in +-*-*-linux*) ;; ++*-*-linux* | *-*-uclinux*) ;; + *) AC_MSG_ERROR([Linux only, dude!]);; + esac + +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch new file mode 100644 index 00000000000..cf3a841356c --- /dev/null +++ b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch @@ -0,0 +1,39 @@ +From b142da8d2c9e2e2dfbe4e89e680dd124f6064ac8 Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso +Date: Mon, 3 Feb 2014 12:09:29 +0100 +Subject: [PATCH 4/6] libnfnetlink: initialize attribute padding to resolve + valgrind warnings + +==12195== Syscall param socketcall.sendto(msg) points to uninitialised byte(s) +==12195== at 0x51209C3: __sendto_nocancel (syscall-template.S:81) +==12195== by 0x53E4D12: nfnl_send (libnfnetlink.c:391) +==12195== by 0x53E6952: nfnl_query (libnfnetlink.c:1569) +==12195== by 0x4E344AF: __build_send_cfg_msg.isra.1 (libnetfilter_log.c:143) +==12195== by 0x4E34710: nflog_bind_group (libnetfilter_log.c:413) +==12195== by 0x400CB1: main (nfulnl_test.c:77) +==12195== Address 0x7fefff3e9 is on thread 1's stack + +This patch sets to zero the padding that is included to align the +attribute payload. + +Reported-by: Ivan Homoliak +Signed-off-by: Pablo Neira Ayuso +--- + src/libnfnetlink.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c +index 4b2bcd0..398b7d7 100644 +--- a/src/libnfnetlink.c ++++ b/src/libnfnetlink.c +@@ -809,6 +809,7 @@ int nfnl_addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, + nfa->nfa_type = type; + nfa->nfa_len = len; + memcpy(NFA_DATA(nfa), data, alen); ++ memset((uint8_t *)nfa + nfa->nfa_len, 0, NFA_ALIGN(alen) - alen); + n->nlmsg_len = (NLMSG_ALIGN(n->nlmsg_len) + NFA_ALIGN(len)); + return 0; + } +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch new file mode 100644 index 00000000000..383f0e8b3dd --- /dev/null +++ b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch @@ -0,0 +1,110 @@ +From b10c90a61a5fc46f2be5aeecb9c96e84178f7717 Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Sat, 16 May 2015 14:49:07 +0200 +Subject: [PATCH 5/6] include: Sync with kernel headers + +Signed-off-by: Felix Janda +Signed-off-by: Pablo Neira Ayuso +--- + include/libnfnetlink/linux_nfnetlink.h | 44 ++++----------------------- + include/libnfnetlink/linux_nfnetlink_compat.h | 12 ++++---- + 2 files changed, 12 insertions(+), 44 deletions(-) + +diff --git a/include/libnfnetlink/linux_nfnetlink.h b/include/libnfnetlink/linux_nfnetlink.h +index 76a8550..44a38d6 100644 +--- a/include/libnfnetlink/linux_nfnetlink.h ++++ b/include/libnfnetlink/linux_nfnetlink.h +@@ -25,9 +25,9 @@ enum nfnetlink_groups { + /* General form of address family dependent message. + */ + struct nfgenmsg { +- u_int8_t nfgen_family; /* AF_xxx */ +- u_int8_t version; /* nfnetlink version */ +- u_int16_t res_id; /* resource id */ ++ __u8 nfgen_family; /* AF_xxx */ ++ __u8 version; /* nfnetlink version */ ++ __be16 res_id; /* resource id */ + }; + + #define NFNETLINK_V0 0 +@@ -46,40 +46,8 @@ struct nfgenmsg { + #define NFNL_SUBSYS_CTNETLINK_EXP 2 + #define NFNL_SUBSYS_QUEUE 3 + #define NFNL_SUBSYS_ULOG 4 +-#define NFNL_SUBSYS_COUNT 5 ++#define NFNL_SUBSYS_OSF 5 ++#define NFNL_SUBSYS_IPSET 6 ++#define NFNL_SUBSYS_COUNT 7 + +-#ifdef __KERNEL__ +- +-#include +-#include +-#include +- +-struct nfnl_callback +-{ +- int (*call)(struct sock *nl, struct sk_buff *skb, +- struct nlmsghdr *nlh, struct nlattr *cda[]); +- const struct nla_policy *policy; /* netlink attribute policy */ +- const u_int16_t attr_count; /* number of nlattr's */ +-}; +- +-struct nfnetlink_subsystem +-{ +- const char *name; +- __u8 subsys_id; /* nfnetlink subsystem ID */ +- __u8 cb_count; /* number of callbacks */ +- const struct nfnl_callback *cb; /* callback for individual types */ +-}; +- +-extern int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n); +-extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n); +- +-extern int nfnetlink_has_listeners(unsigned int group); +-extern int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, +- int echo); +-extern int nfnetlink_unicast(struct sk_buff *skb, u_int32_t pid, int flags); +- +-#define MODULE_ALIAS_NFNL_SUBSYS(subsys) \ +- MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys)) +- +-#endif /* __KERNEL__ */ + #endif /* _NFNETLINK_H */ +diff --git a/include/libnfnetlink/linux_nfnetlink_compat.h b/include/libnfnetlink/linux_nfnetlink_compat.h +index e145176..74b9e55 100644 +--- a/include/libnfnetlink/linux_nfnetlink_compat.h ++++ b/include/libnfnetlink/linux_nfnetlink_compat.h +@@ -1,6 +1,8 @@ + #ifndef _NFNETLINK_COMPAT_H + #define _NFNETLINK_COMPAT_H +-#ifndef __KERNEL__ ++ ++#include ++ + /* Old nfnetlink macros for userspace */ + + /* nfnetlink groups: Up to 32 maximum */ +@@ -18,10 +20,9 @@ + * ! nfnetlink use the same attributes methods. - J. Schulist. + */ + +-struct nfattr +-{ +- u_int16_t nfa_len; +- u_int16_t nfa_type; /* we use 15 bits for the type, and the highest ++struct nfattr { ++ __u16 nfa_len; ++ __u16 nfa_type; /* we use 15 bits for the type, and the highest + * bit to indicate whether the payload is nested */ + }; + +@@ -57,5 +58,4 @@ struct nfattr + + NLMSG_ALIGN(sizeof(struct nfgenmsg)))) + #define NFM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct nfgenmsg)) + +-#endif /* ! __KERNEL__ */ + #endif /* _NFNETLINK_COMPAT_H */ +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch new file mode 100644 index 00000000000..72c9987d1ee --- /dev/null +++ b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch @@ -0,0 +1,403 @@ +From 5cb589e246c91331ee6b3926b15f5e6cfc8ad95e Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Sat, 16 May 2015 14:59:57 +0200 +Subject: [PATCH 6/6] src: Use stdint types everywhere + +Signed-off-by: Felix Janda +Signed-off-by: Pablo Neira Ayuso +--- + include/libnfnetlink/libnfnetlink.h | 25 ++++++------- + src/iftable.c | 8 ++--- + src/iftable.h | 4 +-- + src/libnfnetlink.c | 72 ++++++++++++++++++------------------- + src/rtnl.c | 4 +-- + src/rtnl.h | 2 +- + 6 files changed, 58 insertions(+), 57 deletions(-) + +diff --git a/include/libnfnetlink/libnfnetlink.h b/include/libnfnetlink/libnfnetlink.h +index 1d8c49d..cd0be3d 100644 +--- a/include/libnfnetlink/libnfnetlink.h ++++ b/include/libnfnetlink/libnfnetlink.h +@@ -15,6 +15,7 @@ + #define aligned_u64 unsigned long long __attribute__((aligned(8))) + #endif + ++#include + #include /* for sa_family_t */ + #include + #include +@@ -55,7 +56,7 @@ struct nfnlhdr { + struct nfnl_callback { + int (*call)(struct nlmsghdr *nlh, struct nfattr *nfa[], void *data); + void *data; +- u_int16_t attr_count; ++ uint16_t attr_count; + }; + + struct nfnl_handle; +@@ -69,7 +70,7 @@ extern struct nfnl_handle *nfnl_open(void); + extern int nfnl_close(struct nfnl_handle *); + + extern struct nfnl_subsys_handle *nfnl_subsys_open(struct nfnl_handle *, +- u_int8_t, u_int8_t, ++ uint8_t, uint8_t, + unsigned int); + extern void nfnl_subsys_close(struct nfnl_subsys_handle *); + +@@ -88,8 +89,8 @@ extern int nfnl_sendiov(const struct nfnl_handle *nfnlh, + const struct iovec *iov, unsigned int num, + unsigned int flags); + extern void nfnl_fill_hdr(struct nfnl_subsys_handle *, struct nlmsghdr *, +- unsigned int, u_int8_t, u_int16_t, u_int16_t, +- u_int16_t); ++ unsigned int, uint8_t, uint16_t, uint16_t, ++ uint16_t); + extern __attribute__((deprecated)) int + nfnl_talk(struct nfnl_handle *, struct nlmsghdr *, pid_t, + unsigned, struct nlmsghdr *, +@@ -103,8 +104,8 @@ nfnl_listen(struct nfnl_handle *, + /* receiving */ + extern ssize_t nfnl_recv(const struct nfnl_handle *h, unsigned char *buf, size_t len); + extern int nfnl_callback_register(struct nfnl_subsys_handle *, +- u_int8_t type, struct nfnl_callback *cb); +-extern int nfnl_callback_unregister(struct nfnl_subsys_handle *, u_int8_t type); ++ uint8_t type, struct nfnl_callback *cb); ++extern int nfnl_callback_unregister(struct nfnl_subsys_handle *, uint8_t type); + extern int nfnl_handle_packet(struct nfnl_handle *, char *buf, int len); + + /* parsing */ +@@ -180,12 +181,12 @@ extern int nfnl_query(struct nfnl_handle *h, struct nlmsghdr *nlh); + + /* nfnl attribute handling functions */ + extern int nfnl_addattr_l(struct nlmsghdr *, int, int, const void *, int); +-extern int nfnl_addattr8(struct nlmsghdr *, int, int, u_int8_t); +-extern int nfnl_addattr16(struct nlmsghdr *, int, int, u_int16_t); +-extern int nfnl_addattr32(struct nlmsghdr *, int, int, u_int32_t); ++extern int nfnl_addattr8(struct nlmsghdr *, int, int, uint8_t); ++extern int nfnl_addattr16(struct nlmsghdr *, int, int, uint16_t); ++extern int nfnl_addattr32(struct nlmsghdr *, int, int, uint32_t); + extern int nfnl_nfa_addattr_l(struct nfattr *, int, int, const void *, int); +-extern int nfnl_nfa_addattr16(struct nfattr *, int, int, u_int16_t); +-extern int nfnl_nfa_addattr32(struct nfattr *, int, int, u_int32_t); ++extern int nfnl_nfa_addattr16(struct nfattr *, int, int, uint16_t); ++extern int nfnl_nfa_addattr32(struct nfattr *, int, int, uint32_t); + extern int nfnl_parse_attr(struct nfattr **, int, struct nfattr *, int); + #define nfnl_parse_nested(tb, max, nfa) \ + nfnl_parse_attr((tb), (max), NFA_DATA((nfa)), NFA_PAYLOAD((nfa))) +@@ -197,7 +198,7 @@ extern int nfnl_parse_attr(struct nfattr **, int, struct nfattr *, int); + ({ (tail)->nfa_len = (void *) NLMSG_TAIL(nlh) - (void *) tail; }) + + extern void nfnl_build_nfa_iovec(struct iovec *iov, struct nfattr *nfa, +- u_int16_t type, u_int32_t len, ++ uint16_t type, uint32_t len, + unsigned char *val); + extern unsigned int nfnl_rcvbufsiz(const struct nfnl_handle *h, + unsigned int size); +diff --git a/src/iftable.c b/src/iftable.c +index 5976ed8..157f97b 100644 +--- a/src/iftable.c ++++ b/src/iftable.c +@@ -27,10 +27,10 @@ + struct ifindex_node { + struct list_head head; + +- u_int32_t index; +- u_int32_t type; +- u_int32_t alen; +- u_int32_t flags; ++ uint32_t index; ++ uint32_t type; ++ uint32_t alen; ++ uint32_t flags; + char addr[8]; + char name[16]; + }; +diff --git a/src/iftable.h b/src/iftable.h +index 8df7f24..655df6b 100644 +--- a/src/iftable.h ++++ b/src/iftable.h +@@ -1,8 +1,8 @@ + #ifndef _IFTABLE_H + #define _IFTABLE_H + +-int iftable_delete(u_int32_t dst, u_int32_t mask, u_int32_t gw, u_int32_t oif); +-int iftable_insert(u_int32_t dst, u_int32_t mask, u_int32_t gw, u_int32_t oif); ++int iftable_delete(uint32_t dst, uint32_t mask, uint32_t gw, uint32_t oif); ++int iftable_insert(uint32_t dst, uint32_t mask, uint32_t gw, uint32_t oif); + + int iftable_init(void); + void iftable_fini(void); +diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c +index 398b7d7..df57533 100644 +--- a/src/libnfnetlink.c ++++ b/src/libnfnetlink.c +@@ -72,9 +72,9 @@ + + struct nfnl_subsys_handle { + struct nfnl_handle *nfnlh; +- u_int32_t subscriptions; +- u_int8_t subsys_id; +- u_int8_t cb_count; ++ uint32_t subscriptions; ++ uint8_t subsys_id; ++ uint8_t cb_count; + struct nfnl_callback *cb; /* array of callbacks */ + }; + +@@ -86,11 +86,11 @@ struct nfnl_handle { + int fd; + struct sockaddr_nl local; + struct sockaddr_nl peer; +- u_int32_t subscriptions; +- u_int32_t seq; +- u_int32_t dump; +- u_int32_t rcv_buffer_size; /* for nfnl_catch */ +- u_int32_t flags; ++ uint32_t subscriptions; ++ uint32_t seq; ++ uint32_t dump; ++ uint32_t rcv_buffer_size; /* for nfnl_catch */ ++ uint32_t flags; + struct nlmsghdr *last_nlhdr; + struct nfnl_subsys_handle subsys[NFNL_MAX_SUBSYS+1]; + }; +@@ -145,7 +145,7 @@ unsigned int nfnl_portid(const struct nfnl_handle *h) + static int recalc_rebind_subscriptions(struct nfnl_handle *nfnlh) + { + int i, err; +- u_int32_t new_subscriptions = nfnlh->subscriptions; ++ uint32_t new_subscriptions = nfnlh->subscriptions; + + for (i = 0; i < NFNL_MAX_SUBSYS; i++) + new_subscriptions |= nfnlh->subsys[i].subscriptions; +@@ -273,8 +273,8 @@ void nfnl_set_rcv_buffer_size(struct nfnl_handle *h, unsigned int size) + * a valid address that points to a nfnl_subsys_handle structure is returned. + */ + struct nfnl_subsys_handle * +-nfnl_subsys_open(struct nfnl_handle *nfnlh, u_int8_t subsys_id, +- u_int8_t cb_count, u_int32_t subscriptions) ++nfnl_subsys_open(struct nfnl_handle *nfnlh, uint8_t subsys_id, ++ uint8_t cb_count, uint32_t subscriptions) + { + struct nfnl_subsys_handle *ssh; + +@@ -435,10 +435,10 @@ int nfnl_sendiov(const struct nfnl_handle *nfnlh, const struct iovec *iov, + */ + void nfnl_fill_hdr(struct nfnl_subsys_handle *ssh, + struct nlmsghdr *nlh, unsigned int len, +- u_int8_t family, +- u_int16_t res_id, +- u_int16_t msg_type, +- u_int16_t msg_flags) ++ uint8_t family, ++ uint16_t res_id, ++ uint16_t msg_type, ++ uint16_t msg_flags) + { + assert(ssh); + assert(nlh); +@@ -815,7 +815,7 @@ int nfnl_addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, + } + + /** +- * nfnl_nfa_addattr_l - Add variable length attribute to struct nfattr ++ * nfnl_nfa_addattr_l - Add variable length attribute to struct nfattr + * + * @nfa: struct nfattr + * @maxlen: maximal length of nfattr buffer +@@ -849,14 +849,14 @@ int nfnl_nfa_addattr_l(struct nfattr *nfa, int maxlen, int type, + } + + /** +- * nfnl_addattr8 - Add u_int8_t attribute to nlmsghdr ++ * nfnl_addattr8 - Add uint8_t attribute to nlmsghdr + * + * @n: netlink message header to which attribute is to be added + * @maxlen: maximum length of netlink message header + * @type: type of new attribute + * @data: content of new attribute + */ +-int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data) ++int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, uint8_t data) + { + assert(n); + assert(maxlen > 0); +@@ -866,7 +866,7 @@ int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data) + } + + /** +- * nfnl_nfa_addattr16 - Add u_int16_t attribute to struct nfattr ++ * nfnl_nfa_addattr16 - Add uint16_t attribute to struct nfattr + * + * @nfa: struct nfattr + * @maxlen: maximal length of nfattr buffer +@@ -875,7 +875,7 @@ int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data) + * + */ + int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type, +- u_int16_t data) ++ uint16_t data) + { + assert(nfa); + assert(maxlen > 0); +@@ -885,7 +885,7 @@ int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type, + } + + /** +- * nfnl_addattr16 - Add u_int16_t attribute to nlmsghdr ++ * nfnl_addattr16 - Add uint16_t attribute to nlmsghdr + * + * @n: netlink message header to which attribute is to be added + * @maxlen: maximum length of netlink message header +@@ -894,7 +894,7 @@ int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type, + * + */ + int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type, +- u_int16_t data) ++ uint16_t data) + { + assert(n); + assert(maxlen > 0); +@@ -904,7 +904,7 @@ int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type, + } + + /** +- * nfnl_nfa_addattr32 - Add u_int32_t attribute to struct nfattr ++ * nfnl_nfa_addattr32 - Add uint32_t attribute to struct nfattr + * + * @nfa: struct nfattr + * @maxlen: maximal length of nfattr buffer +@@ -913,7 +913,7 @@ int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type, + * + */ + int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type, +- u_int32_t data) ++ uint32_t data) + { + assert(nfa); + assert(maxlen > 0); +@@ -923,7 +923,7 @@ int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type, + } + + /** +- * nfnl_addattr32 - Add u_int32_t attribute to nlmsghdr ++ * nfnl_addattr32 - Add uint32_t attribute to nlmsghdr + * + * @n: netlink message header to which attribute is to be added + * @maxlen: maximum length of netlink message header +@@ -932,7 +932,7 @@ int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type, + * + */ + int nfnl_addattr32(struct nlmsghdr *n, int maxlen, int type, +- u_int32_t data) ++ uint32_t data) + { + assert(n); + assert(maxlen > 0); +@@ -980,7 +980,7 @@ int nfnl_parse_attr(struct nfattr *tb[], int max, struct nfattr *nfa, int len) + * + */ + void nfnl_build_nfa_iovec(struct iovec *iov, struct nfattr *nfa, +- u_int16_t type, u_int32_t len, unsigned char *val) ++ uint16_t type, uint32_t len, unsigned char *val) + { + assert(iov); + assert(nfa); +@@ -1115,7 +1115,7 @@ struct nlmsghdr *nfnl_get_msg_next(struct nfnl_handle *h, + * appropiately. + */ + int nfnl_callback_register(struct nfnl_subsys_handle *ssh, +- u_int8_t type, struct nfnl_callback *cb) ++ uint8_t type, struct nfnl_callback *cb) + { + assert(ssh); + assert(cb); +@@ -1138,7 +1138,7 @@ int nfnl_callback_register(struct nfnl_subsys_handle *ssh, + * On sucess, 0 is returned. On error, -1 is returned and errno is + * set appropiately. + */ +-int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, u_int8_t type) ++int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, uint8_t type) + { + assert(ssh); + +@@ -1161,8 +1161,8 @@ int nfnl_check_attributes(const struct nfnl_handle *h, + assert(nfa); + + int min_len; +- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); +- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); ++ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); ++ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); + const struct nfnl_subsys_handle *ssh; + struct nfnl_callback *cb; + +@@ -1212,8 +1212,8 @@ static int __nfnl_handle_msg(struct nfnl_handle *h, struct nlmsghdr *nlh, + int len) + { + struct nfnl_subsys_handle *ssh; +- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); +- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); ++ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); ++ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); + int err = 0; + + if (subsys_id > NFNL_MAX_SUBSYS) +@@ -1243,7 +1243,7 @@ int nfnl_handle_packet(struct nfnl_handle *h, char *buf, int len) + { + + while (len >= NLMSG_SPACE(0)) { +- u_int32_t rlen; ++ uint32_t rlen; + struct nlmsghdr *nlh = (struct nlmsghdr *)buf; + + if (nlh->nlmsg_len < sizeof(struct nlmsghdr) +@@ -1285,8 +1285,8 @@ static int nfnl_is_error(struct nfnl_handle *h, struct nlmsghdr *nlh) + static int nfnl_step(struct nfnl_handle *h, struct nlmsghdr *nlh) + { + struct nfnl_subsys_handle *ssh; +- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); +- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); ++ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); ++ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); + + /* Is this an error message? */ + if (nfnl_is_error(h, nlh)) { +diff --git a/src/rtnl.c b/src/rtnl.c +index 7b4ac7d..284eecd 100644 +--- a/src/rtnl.c ++++ b/src/rtnl.c +@@ -30,7 +30,7 @@ + #define rtnl_log(x, ...) + + static inline struct rtnl_handler * +-find_handler(struct rtnl_handle *rtnl_handle, u_int16_t type) ++find_handler(struct rtnl_handle *rtnl_handle, uint16_t type) + { + struct rtnl_handler *h; + for (h = rtnl_handle->handlers; h; h = h->next) { +@@ -41,7 +41,7 @@ find_handler(struct rtnl_handle *rtnl_handle, u_int16_t type) + } + + static int call_handler(struct rtnl_handle *rtnl_handle, +- u_int16_t type, ++ uint16_t type, + struct nlmsghdr *hdr) + { + struct rtnl_handler *h = find_handler(rtnl_handle, type); +diff --git a/src/rtnl.h b/src/rtnl.h +index 0c403dc..2cb22a8 100644 +--- a/src/rtnl.h ++++ b/src/rtnl.h +@@ -7,7 +7,7 @@ + struct rtnl_handler { + struct rtnl_handler *next; + +- u_int16_t nlmsg_type; ++ uint16_t nlmsg_type; + int (*handlefn)(struct nlmsghdr *h, void *arg); + void *arg; + }; +-- +2.12.1 + diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb index 9cb615bb47c..f7951ff8dd0 100644 --- a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb +++ b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb @@ -5,13 +5,20 @@ infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log, \ nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or \ management tools in userspace." HOMEPAGE = "http://www.netfilter.org/projects/libnfnetlink/index.html" -SECTION = "devel/libs" +SECTION = "libs" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -SRC_URI = "http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${PV}.tar.bz2;name=tar" +SRC_URI = "http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${PV}.tar.bz2;name=tar \ + file://0001-build-resolve-automake-1.12-warnings.patch \ + file://0002-src-get-source-code-license-header-in-sync-with-curr.patch \ + file://0003-configure-uclinux-is-also-linux.patch \ + file://0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch \ + file://0005-include-Sync-with-kernel-headers.patch \ + file://0006-src-Use-stdint-types-everywhere.patch \ + " SRC_URI[tar.md5sum] = "98927583d2016a9fb1936fed992e2c5e" SRC_URI[tar.sha256sum] = "f270e19de9127642d2a11589ef2ec97ef90a649a74f56cf9a96306b04817b51a" diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch new file mode 100644 index 00000000000..e82b23813f7 --- /dev/null +++ b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch @@ -0,0 +1,2949 @@ +From bd01f785da5222d0662be3182fe2650e1c12f43e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 10 Apr 2017 14:07:07 -0700 +Subject: [PATCH] Declare the define visivility attribute together + +clang ignores the visibility attribute if its not +defined before the definition. As a result these +symbols become hidden and consumers of this library +fail to link due to these missing symbols + +Signed-off-by: Khem Raj +--- + doxygen.cfg.in | 2 +- + include/utils.h | 5 +-- + src/batch.c | 21 ++++------- + src/chain.c | 102 +++++++++++++++++--------------------------------- + src/common.c | 21 ++++------- + src/expr.c | 51 +++++++++---------------- + src/gen.c | 39 +++++++------------ + src/object.c | 99 ++++++++++++++++-------------------------------- + src/rule.c | 114 +++++++++++++++++++------------------------------------- + src/ruleset.c | 48 ++++++++---------------- + src/set.c | 96 ++++++++++++++++------------------------------- + src/set_elem.c | 72 ++++++++++++----------------------- + src/table.c | 90 +++++++++++++++----------------------------- + src/trace.c | 27 +++++--------- + src/udata.c | 48 ++++++++---------------- + 15 files changed, 279 insertions(+), 556 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index 23fcad4..e49f28d 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = */.git/* .*.d +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL ++EXCLUDE_SYMBOLS = + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/include/utils.h b/include/utils.h +index 2f5cf34..ff8207e 100644 +--- a/include/utils.h ++++ b/include/utils.h +@@ -9,10 +9,9 @@ + + #include "config.h" + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible; ++# define __EXPORTED __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORT + #endif + + #define __noreturn __attribute__((__noreturn__)) +diff --git a/src/batch.c b/src/batch.c +index 5ee3fd7..3bedd26 100644 +--- a/src/batch.c ++++ b/src/batch.c +@@ -57,7 +57,7 @@ static void nftnl_batch_add_page(struct nftnl_batch_page *page, + list_add_tail(&page->head, &batch->page_list); + } + +-struct nftnl_batch *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size) ++struct nftnl_batch __EXPORTED *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size) + { + struct nftnl_batch *batch; + struct nftnl_batch_page *page; +@@ -80,9 +80,8 @@ err1: + free(batch); + return NULL; + } +-EXPORT_SYMBOL(nftnl_batch_alloc); + +-void nftnl_batch_free(struct nftnl_batch *batch) ++void __EXPORTED nftnl_batch_free(struct nftnl_batch *batch) + { + struct nftnl_batch_page *page, *next; + +@@ -94,9 +93,8 @@ void nftnl_batch_free(struct nftnl_batch *batch) + + free(batch); + } +-EXPORT_SYMBOL(nftnl_batch_free); + +-int nftnl_batch_update(struct nftnl_batch *batch) ++int __EXPORTED nftnl_batch_update(struct nftnl_batch *batch) + { + struct nftnl_batch_page *page; + struct nlmsghdr *last_nlh; +@@ -119,21 +117,18 @@ int nftnl_batch_update(struct nftnl_batch *batch) + err1: + return -1; + } +-EXPORT_SYMBOL(nftnl_batch_update); + +-void *nftnl_batch_buffer(struct nftnl_batch *batch) ++void __EXPORTED *nftnl_batch_buffer(struct nftnl_batch *batch) + { + return mnl_nlmsg_batch_current(batch->current_page->batch); + } +-EXPORT_SYMBOL(nftnl_batch_buffer); + +-uint32_t nftnl_batch_buffer_len(struct nftnl_batch *batch) ++uint32_t __EXPORTED nftnl_batch_buffer_len(struct nftnl_batch *batch) + { + return mnl_nlmsg_batch_size(batch->current_page->batch); + } +-EXPORT_SYMBOL(nftnl_batch_buffer_len); + +-int nftnl_batch_iovec_len(struct nftnl_batch *batch) ++int __EXPORTED nftnl_batch_iovec_len(struct nftnl_batch *batch) + { + int num_pages = batch->num_pages; + +@@ -143,9 +138,8 @@ int nftnl_batch_iovec_len(struct nftnl_batch *batch) + + return num_pages; + } +-EXPORT_SYMBOL(nftnl_batch_iovec_len); + +-void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, ++void __EXPORTED nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, + uint32_t iovlen) + { + struct nftnl_batch_page *page; +@@ -160,4 +154,3 @@ void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, + i++; + } + } +-EXPORT_SYMBOL(nftnl_batch_iovec); +diff --git a/src/chain.c b/src/chain.c +index 29860c5..362fa0d 100644 +--- a/src/chain.c ++++ b/src/chain.c +@@ -87,13 +87,12 @@ static const char *nftnl_hooknum2str(int family, int hooknum) + return "unknown"; + } + +-struct nftnl_chain *nftnl_chain_alloc(void) ++struct nftnl_chain __EXPORTED *nftnl_chain_alloc(void) + { + return calloc(1, sizeof(struct nftnl_chain)); + } +-EXPORT_SYMBOL(nftnl_chain_alloc); + +-void nftnl_chain_free(const struct nftnl_chain *c) ++void __EXPORTED nftnl_chain_free(const struct nftnl_chain *c) + { + if (c->flags & (1 << NFTNL_CHAIN_NAME)) + xfree(c->name); +@@ -105,15 +104,13 @@ void nftnl_chain_free(const struct nftnl_chain *c) + xfree(c->dev); + xfree(c); + } +-EXPORT_SYMBOL(nftnl_chain_free); + +-bool nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr) ++bool __EXPORTED nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr) + { + return c->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_chain_is_set); + +-void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) ++void __EXPORTED nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) + { + if (!(c->flags & (1 << attr))) + return; +@@ -147,7 +144,6 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) + + c->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_chain_unset); + + static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = { + [NFTNL_CHAIN_HOOKNUM] = sizeof(uint32_t), +@@ -159,7 +155,7 @@ static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = { + [NFTNL_CHAIN_FAMILY] = sizeof(uint32_t), + }; + +-int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, ++int __EXPORTED nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, + const void *data, uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_CHAIN_MAX); +@@ -226,45 +222,38 @@ int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, + c->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_chain_set_data); + +-void nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data) ++void __EXPORTED nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data) + { + nftnl_chain_set_data(c, attr, data, nftnl_chain_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_chain_set); + +-void nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data) ++void __EXPORTED nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data) + { + nftnl_chain_set_data(c, attr, &data, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_chain_set_u32); + +-void nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data) ++void __EXPORTED nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data) + { + nftnl_chain_set_data(c, attr, &data, sizeof(int32_t)); + } +-EXPORT_SYMBOL(nftnl_chain_set_s32); + +-void nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data) ++void __EXPORTED nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data) + { + nftnl_chain_set_data(c, attr, &data, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_chain_set_u64); + +-void nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data) ++void __EXPORTED nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data) + { + nftnl_chain_set_data(c, attr, &data, sizeof(uint8_t)); + } +-EXPORT_SYMBOL(nftnl_chain_set_u8); + +-int nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str) ++int __EXPORTED nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str) + { + return nftnl_chain_set_data(c, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_chain_set_str); + +-const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, ++const void __EXPORTED *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, + uint32_t *data_len) + { + if (!(c->flags & (1 << attr))) +@@ -310,22 +299,19 @@ const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_chain_get_data); + +-const void *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr) ++const void __EXPORTED *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + return nftnl_chain_get_data(c, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_chain_get); + +-const char *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr) ++const char __EXPORTED *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr) + { + return nftnl_chain_get(c, attr); + } +-EXPORT_SYMBOL(nftnl_chain_get_str); + +-uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) ++uint32_t __EXPORTED nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + const uint32_t *val = nftnl_chain_get_data(c, attr, &data_len); +@@ -334,9 +320,8 @@ uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_chain_get_u32); + +-int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) ++int32_t __EXPORTED nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + const int32_t *val = nftnl_chain_get_data(c, attr, &data_len); +@@ -345,9 +330,8 @@ int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_chain_get_s32); + +-uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) ++uint64_t __EXPORTED nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + const uint64_t *val = nftnl_chain_get_data(c, attr, &data_len); +@@ -356,9 +340,8 @@ uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_chain_get_u64); + +-uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) ++uint8_t __EXPORTED nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + const uint8_t *val = nftnl_chain_get_data(c, attr, &data_len); +@@ -367,9 +350,8 @@ uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_chain_get_u8); + +-void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c) ++void __EXPORTED nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c) + { + if (c->flags & (1 << NFTNL_CHAIN_TABLE)) + mnl_attr_put_strz(nlh, NFTA_CHAIN_TABLE, c->table); +@@ -404,7 +386,6 @@ void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_ch + if (c->flags & (1 << NFTNL_CHAIN_TYPE)) + mnl_attr_put_strz(nlh, NFTA_CHAIN_TYPE, c->type); + } +-EXPORT_SYMBOL(nftnl_chain_nlmsg_build_payload); + + static int nftnl_chain_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -529,7 +510,7 @@ static int nftnl_chain_parse_hook(struct nlattr *attr, struct nftnl_chain *c) + return 0; + } + +-int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) ++int __EXPORTED nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) + { + struct nlattr *tb[NFTA_CHAIN_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -590,7 +571,6 @@ int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) + + return ret; + } +-EXPORT_SYMBOL(nftnl_chain_nlmsg_parse); + + static inline int nftnl_str2hooknum(int family, const char *hook) + { +@@ -732,19 +712,17 @@ static int nftnl_chain_do_parse(struct nftnl_chain *c, enum nftnl_parse_type typ + return ret; + } + +-int nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type, ++int __EXPORTED nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_chain_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_chain_parse); + +-int nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type, ++int __EXPORTED nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_chain_do_parse(c, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_chain_parse_file); + + static int nftnl_chain_export(char *buf, size_t size, + const struct nftnl_chain *c, int type) +@@ -841,13 +819,12 @@ static int nftnl_chain_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c, ++int __EXPORTED nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c, + uint32_t type, uint32_t flags) + { + return nftnl_chain_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_chain_snprintf); + + static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -855,19 +832,18 @@ static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c, + return nftnl_chain_snprintf(buf, size, c, type, flags); + } + +-int nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type, ++int __EXPORTED nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags, + nftnl_chain_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_chain_fprintf); + + struct nftnl_chain_list { + struct list_head list; + }; + +-struct nftnl_chain_list *nftnl_chain_list_alloc(void) ++struct nftnl_chain_list __EXPORTED *nftnl_chain_list_alloc(void) + { + struct nftnl_chain_list *list; + +@@ -879,9 +855,8 @@ struct nftnl_chain_list *nftnl_chain_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_chain_list_alloc); + +-void nftnl_chain_list_free(struct nftnl_chain_list *list) ++void __EXPORTED nftnl_chain_list_free(struct nftnl_chain_list *list) + { + struct nftnl_chain *r, *tmp; + +@@ -891,33 +866,28 @@ void nftnl_chain_list_free(struct nftnl_chain_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_chain_list_free); + +-int nftnl_chain_list_is_empty(const struct nftnl_chain_list *list) ++int __EXPORTED nftnl_chain_list_is_empty(const struct nftnl_chain_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_chain_list_is_empty); + +-void nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list) ++void __EXPORTED nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list) + { + list_add(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_chain_list_add); + +-void nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list) ++void __EXPORTED nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list) + { + list_add_tail(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_chain_list_add_tail); + +-void nftnl_chain_list_del(struct nftnl_chain *r) ++void __EXPORTED nftnl_chain_list_del(struct nftnl_chain *r) + { + list_del(&r->head); + } +-EXPORT_SYMBOL(nftnl_chain_list_del); + +-int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, ++int __EXPORTED nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, + int (*cb)(struct nftnl_chain *r, void *data), + void *data) + { +@@ -931,14 +901,13 @@ int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_chain_list_foreach); + + struct nftnl_chain_list_iter { + const struct nftnl_chain_list *list; + struct nftnl_chain *cur; + }; + +-struct nftnl_chain_list_iter * ++struct nftnl_chain_list_iter __EXPORTED * + nftnl_chain_list_iter_create(const struct nftnl_chain_list *l) + { + struct nftnl_chain_list_iter *iter; +@@ -955,9 +924,8 @@ nftnl_chain_list_iter_create(const struct nftnl_chain_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_chain_list_iter_create); + +-struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter) ++struct nftnl_chain __EXPORTED *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter) + { + struct nftnl_chain *r = iter->cur; + +@@ -971,10 +939,8 @@ struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *ite + + return r; + } +-EXPORT_SYMBOL(nftnl_chain_list_iter_next); + +-void nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter) ++void __EXPORTED nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_chain_list_iter_destroy); +diff --git a/src/common.c b/src/common.c +index a95883c..68bce2e 100644 +--- a/src/common.c ++++ b/src/common.c +@@ -43,15 +43,14 @@ static struct nlmsghdr *__nftnl_nlmsg_build_hdr(char *buf, uint16_t type, + return nlh; + } + +-struct nlmsghdr *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family, ++struct nlmsghdr __EXPORTED *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family, + uint16_t flags, uint32_t seq) + { + return __nftnl_nlmsg_build_hdr(buf, (NFNL_SUBSYS_NFTABLES << 8) | type, + family, flags, seq, 0); + } +-EXPORT_SYMBOL(nftnl_nlmsg_build_hdr); + +-struct nftnl_parse_err *nftnl_parse_err_alloc(void) ++struct nftnl_parse_err __EXPORTED *nftnl_parse_err_alloc(void) + { + struct nftnl_parse_err *err; + +@@ -63,15 +62,13 @@ struct nftnl_parse_err *nftnl_parse_err_alloc(void) + + return err; + } +-EXPORT_SYMBOL(nftnl_parse_err_alloc); + +-void nftnl_parse_err_free(struct nftnl_parse_err *err) ++void __EXPORTED nftnl_parse_err_free(struct nftnl_parse_err *err) + { + xfree(err); + } +-EXPORT_SYMBOL(nftnl_parse_err_free); + +-int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) ++int __EXPORTED nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) + { + switch (err->error) { + case NFTNL_PARSE_EBADINPUT: +@@ -89,7 +86,6 @@ int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) + return fprintf(stderr, "%s: Undefined error\n", msg); + } + } +-EXPORT_SYMBOL(nftnl_parse_perror); + + int nftnl_cmd_header_snprintf(char *buf, size_t size, uint32_t cmd, uint32_t type, + uint32_t flags) +@@ -165,21 +161,19 @@ int nftnl_cmd_footer_fprintf(FILE *fp, uint32_t cmd, uint32_t type, + nftnl_cmd_footer_fprintf_cb); + } + +-struct nlmsghdr *nftnl_batch_begin(char *buf, uint32_t seq) ++struct nlmsghdr __EXPORTED *nftnl_batch_begin(char *buf, uint32_t seq) + { + return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_BEGIN, AF_UNSPEC, + 0, seq, NFNL_SUBSYS_NFTABLES); + } +-EXPORT_SYMBOL(nftnl_batch_begin); + +-struct nlmsghdr *nftnl_batch_end(char *buf, uint32_t seq) ++struct nlmsghdr __EXPORTED *nftnl_batch_end(char *buf, uint32_t seq) + { + return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_END, AF_UNSPEC, + 0, seq, NFNL_SUBSYS_NFTABLES); + } +-EXPORT_SYMBOL(nftnl_batch_end); + +-int nftnl_batch_is_supported(void) ++int __EXPORTED nftnl_batch_is_supported(void) + { + struct mnl_socket *nl; + struct mnl_nlmsg_batch *b; +@@ -236,4 +230,3 @@ err: + mnl_nlmsg_batch_stop(b); + return -1; + } +-EXPORT_SYMBOL(nftnl_batch_is_supported); +diff --git a/src/expr.c b/src/expr.c +index 10ba2c4..c7eb2b4 100644 +--- a/src/expr.c ++++ b/src/expr.c +@@ -24,7 +24,7 @@ + + #include + +-struct nftnl_expr *nftnl_expr_alloc(const char *name) ++struct nftnl_expr __EXPORTED *nftnl_expr_alloc(const char *name) + { + struct nftnl_expr *expr; + struct expr_ops *ops; +@@ -43,24 +43,21 @@ struct nftnl_expr *nftnl_expr_alloc(const char *name) + + return expr; + } +-EXPORT_SYMBOL(nftnl_expr_alloc); + +-void nftnl_expr_free(const struct nftnl_expr *expr) ++void __EXPORTED nftnl_expr_free(const struct nftnl_expr *expr) + { + if (expr->ops->free) + expr->ops->free(expr); + + xfree(expr); + } +-EXPORT_SYMBOL(nftnl_expr_free); + +-bool nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type) ++bool __EXPORTED nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type) + { + return expr->flags & (1 << type); + } +-EXPORT_SYMBOL(nftnl_expr_is_set); + +-int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, ++int __EXPORTED nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, + const void *data, uint32_t data_len) + { + switch(type) { +@@ -73,43 +70,37 @@ int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, + expr->flags |= (1 << type); + return 0; + } +-EXPORT_SYMBOL(nftnl_expr_set); + +-void ++void __EXPORTED + nftnl_expr_set_u8(struct nftnl_expr *expr, uint16_t type, uint8_t data) + { + nftnl_expr_set(expr, type, &data, sizeof(uint8_t)); + } +-EXPORT_SYMBOL(nftnl_expr_set_u8); + +-void ++void __EXPORTED + nftnl_expr_set_u16(struct nftnl_expr *expr, uint16_t type, uint16_t data) + { + nftnl_expr_set(expr, type, &data, sizeof(uint16_t)); + } +-EXPORT_SYMBOL(nftnl_expr_set_u16); + +-void ++void __EXPORTED + nftnl_expr_set_u32(struct nftnl_expr *expr, uint16_t type, uint32_t data) + { + nftnl_expr_set(expr, type, &data, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_expr_set_u32); + +-void ++void __EXPORTED + nftnl_expr_set_u64(struct nftnl_expr *expr, uint16_t type, uint64_t data) + { + nftnl_expr_set(expr, type, &data, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_expr_set_u64); + +-int nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str) ++int __EXPORTED nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str) + { + return nftnl_expr_set(expr, type, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_expr_set_str); + +-const void *nftnl_expr_get(const struct nftnl_expr *expr, ++const void __EXPORTED *nftnl_expr_get(const struct nftnl_expr *expr, + uint16_t type, uint32_t *data_len) + { + const void *ret; +@@ -129,9 +120,8 @@ const void *nftnl_expr_get(const struct nftnl_expr *expr, + + return ret; + } +-EXPORT_SYMBOL(nftnl_expr_get); + +-uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) ++uint8_t __EXPORTED nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) + { + const void *data; + uint32_t data_len; +@@ -145,9 +135,8 @@ uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) + + return *((uint8_t *)data); + } +-EXPORT_SYMBOL(nftnl_expr_get_u8); + +-uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) ++uint16_t __EXPORTED nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) + { + const void *data; + uint32_t data_len; +@@ -161,9 +150,8 @@ uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) + + return *((uint16_t *)data); + } +-EXPORT_SYMBOL(nftnl_expr_get_u16); + +-uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) ++uint32_t __EXPORTED nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) + { + const void *data; + uint32_t data_len; +@@ -177,9 +165,8 @@ uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) + + return *((uint32_t *)data); + } +-EXPORT_SYMBOL(nftnl_expr_get_u32); + +-uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) ++uint64_t __EXPORTED nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) + { + const void *data; + uint32_t data_len; +@@ -193,17 +180,15 @@ uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) + + return *((uint64_t *)data); + } +-EXPORT_SYMBOL(nftnl_expr_get_u64); + +-const char *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type) ++const char __EXPORTED *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type) + { + uint32_t data_len; + + return (const char *)nftnl_expr_get(expr, type, &data_len); + } +-EXPORT_SYMBOL(nftnl_expr_get_str); + +-bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) ++bool __EXPORTED nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) + { + if (e1->flags != e2->flags || + strcmp(e1->ops->name, e2->ops->name) != 0) +@@ -211,7 +196,6 @@ bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) + + return e1->ops->cmp(e1, e2); + } +-EXPORT_SYMBOL(nftnl_expr_cmp); + + void nftnl_expr_build_payload(struct nlmsghdr *nlh, struct nftnl_expr *expr) + { +@@ -275,7 +259,7 @@ err1: + return NULL; + } + +-int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, ++int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, + uint32_t type, uint32_t flags) + { + int ret; +@@ -289,4 +273,3 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, + + return offset; + } +-EXPORT_SYMBOL(nftnl_expr_snprintf); +diff --git a/src/gen.c b/src/gen.c +index 213562e..8b45caa 100644 +--- a/src/gen.c ++++ b/src/gen.c +@@ -29,25 +29,22 @@ struct nftnl_gen { + uint32_t flags; + }; + +-struct nftnl_gen *nftnl_gen_alloc(void) ++struct nftnl_gen __EXPORTED *nftnl_gen_alloc(void) + { + return calloc(1, sizeof(struct nftnl_gen)); + } +-EXPORT_SYMBOL(nftnl_gen_alloc); + +-void nftnl_gen_free(const struct nftnl_gen *gen) ++void __EXPORTED nftnl_gen_free(const struct nftnl_gen *gen) + { + xfree(gen); + } +-EXPORT_SYMBOL(nftnl_gen_free); + +-bool nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr) ++bool __EXPORTED nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr) + { + return gen->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_gen_is_set); + +-void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) ++void __EXPORTED nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) + { + if (!(gen->flags & (1 << attr))) + return; +@@ -58,13 +55,12 @@ void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) + } + gen->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_gen_unset); + + static uint32_t nftnl_gen_validate[NFTNL_GEN_MAX + 1] = { + [NFTNL_GEN_ID] = sizeof(uint32_t), + }; + +-int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, ++int __EXPORTED nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, + const void *data, uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_GEN_MAX); +@@ -78,21 +74,18 @@ int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, + gen->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_gen_set_data); + +-int nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data) ++int __EXPORTED nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data) + { + return nftnl_gen_set_data(gen, attr, data, nftnl_gen_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_gen_set); + +-void nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val) + { + nftnl_gen_set_data(gen, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_gen_set_u32); + +-const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, ++const void __EXPORTED *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, + uint32_t *data_len) + { + if (!(gen->flags & (1 << attr))) +@@ -105,21 +98,18 @@ const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_gen_get_data); + +-const void *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr) ++const void __EXPORTED *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr) + { + uint32_t data_len; + return nftnl_gen_get_data(gen, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_gen_get); + +-uint32_t nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr) ++uint32_t __EXPORTED nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr) + { + const void *ret = nftnl_gen_get(gen, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); + } +-EXPORT_SYMBOL(nftnl_gen_get_u32); + + static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -140,7 +130,7 @@ static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data) + return MNL_CB_OK; + } + +-int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) ++int __EXPORTED nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) + { + struct nlattr *tb[NFTA_GEN_MAX + 1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -154,7 +144,6 @@ int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) + } + return 0; + } +-EXPORT_SYMBOL(nftnl_gen_nlmsg_parse); + + static int nftnl_gen_snprintf_default(char *buf, size_t size, + const struct nftnl_gen *gen) +@@ -186,13 +175,12 @@ static int nftnl_gen_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen, ++int __EXPORTED nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen, + uint32_t type, uint32_t flags) + {; + return nftnl_gen_cmd_snprintf(buf, size, gen, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_gen_snprintf); + + static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -200,10 +188,9 @@ static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen, + return nftnl_gen_snprintf(buf, size, gen, type, flags); + } + +-int nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type, ++int __EXPORTED nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, gen, NFTNL_CMD_UNSPEC, type, flags, + nftnl_gen_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_gen_fprintf); +diff --git a/src/object.c b/src/object.c +index e1a5ac4..d409c6d 100644 +--- a/src/object.c ++++ b/src/object.c +@@ -39,13 +39,12 @@ static struct obj_ops *nftnl_obj_ops_lookup(uint32_t type) + return obj_ops[type]; + } + +-struct nftnl_obj *nftnl_obj_alloc(void) ++struct nftnl_obj __EXPORTED *nftnl_obj_alloc(void) + { + return calloc(1, sizeof(struct nftnl_obj)); + } +-EXPORT_SYMBOL(nftnl_obj_alloc); + +-void nftnl_obj_free(const struct nftnl_obj *obj) ++void __EXPORTED nftnl_obj_free(const struct nftnl_obj *obj) + { + if (obj->flags & (1 << NFTNL_OBJ_TABLE)) + xfree(obj->table); +@@ -54,20 +53,18 @@ void nftnl_obj_free(const struct nftnl_obj *obj) + + xfree(obj); + } +-EXPORT_SYMBOL(nftnl_obj_free); + +-bool nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr) ++bool __EXPORTED nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr) + { + return obj->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_obj_is_set); + + static uint32_t nftnl_obj_validate[NFTNL_OBJ_MAX + 1] = { + [NFTNL_OBJ_FAMILY] = sizeof(uint32_t), + [NFTNL_OBJ_USE] = sizeof(uint32_t), + }; + +-void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, ++void __EXPORTED nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, + const void *data, uint32_t data_len) + { + if (attr < NFTNL_OBJ_MAX) +@@ -100,45 +97,38 @@ void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, + } + obj->flags |= (1 << attr); + } +-EXPORT_SYMBOL(nftnl_obj_set_data); + +-void nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data) ++void __EXPORTED nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data) + { + nftnl_obj_set_data(obj, attr, data, nftnl_obj_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_obj_set); + +-void nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val) ++void __EXPORTED nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val) + { + nftnl_obj_set_data(obj, attr, &val, sizeof(uint8_t)); + } +-EXPORT_SYMBOL(nftnl_obj_set_u8); + +-void nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val) ++void __EXPORTED nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val) + { + nftnl_obj_set_data(obj, attr, &val, sizeof(uint16_t)); + } +-EXPORT_SYMBOL(nftnl_obj_set_u16); + +-void nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val) + { + nftnl_obj_set_data(obj, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_obj_set_u32); + +-void nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val) ++void __EXPORTED nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val) + { + nftnl_obj_set_data(obj, attr, &val, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_obj_set_u64); + +-void nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str) ++void __EXPORTED nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str) + { + nftnl_obj_set_data(obj, attr, str, 0); + } +-EXPORT_SYMBOL(nftnl_obj_set_str); + +-const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, ++const void __EXPORTED *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, + uint32_t *data_len) + { + if (!(obj->flags & (1 << attr))) +@@ -168,50 +158,43 @@ const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_obj_get_data); + +-const void *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr) ++const void __EXPORTED *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr) + { + uint32_t data_len; + return nftnl_obj_get_data(obj, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_obj_get); + +-uint8_t nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr) ++uint8_t __EXPORTED nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr) + { + const void *ret = nftnl_obj_get(obj, attr); + return ret == NULL ? 0 : *((uint8_t *)ret); + } +-EXPORT_SYMBOL(nftnl_obj_get_u8); + +-uint16_t nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr) ++uint16_t __EXPORTED nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr) + { + const void *ret = nftnl_obj_get(obj, attr); + return ret == NULL ? 0 : *((uint16_t *)ret); + } +-EXPORT_SYMBOL(nftnl_obj_get_u16); + +-uint32_t nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr) ++uint32_t __EXPORTED nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr) + { + const void *ret = nftnl_obj_get(obj, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); + } +-EXPORT_SYMBOL(nftnl_obj_get_u32); + +-uint64_t nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr) ++uint64_t __EXPORTED nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr) + { + const void *ret = nftnl_obj_get(obj, attr); + return ret == NULL ? 0 : *((uint64_t *)ret); + } +-EXPORT_SYMBOL(nftnl_obj_get_u64); + +-const char *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr) ++const char __EXPORTED *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr) + { + return nftnl_obj_get(obj, attr); + } +-EXPORT_SYMBOL(nftnl_obj_get_str); + +-void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, ++void __EXPORTED nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, + const struct nftnl_obj *obj) + { + if (obj->flags & (1 << NFTNL_OBJ_TABLE)) +@@ -228,7 +211,6 @@ void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, + mnl_attr_nest_end(nlh, nest); + } + } +-EXPORT_SYMBOL(nftnl_obj_nlmsg_build_payload); + + static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -258,7 +240,7 @@ static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data) + return MNL_CB_OK; + } + +-int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) ++int __EXPORTED nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) + { + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); + struct nlattr *tb[NFTA_OBJ_MAX + 1] = {}; +@@ -299,7 +281,6 @@ int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) + + return 0; + } +-EXPORT_SYMBOL(nftnl_obj_nlmsg_parse); + + #ifdef JSON_PARSING + static int nftnl_jansson_parse_obj(struct nftnl_obj *t, json_t *tree, +@@ -377,19 +358,17 @@ static int nftnl_obj_do_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, + return ret; + } + +-int nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, ++int __EXPORTED nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_obj_do_parse(obj, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_obj_parse); + +-int nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type, ++int __EXPORTED nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_obj_do_parse(obj, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_obj_parse_file); + + static int nftnl_obj_export(char *buf, size_t size, + const struct nftnl_obj *obj, +@@ -469,13 +448,12 @@ static int nftnl_obj_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj, ++int __EXPORTED nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj, + uint32_t type, uint32_t flags) + { + return nftnl_obj_cmd_snprintf(buf, size, obj, nftnl_flag2cmd(flags), + type, flags); + } +-EXPORT_SYMBOL(nftnl_obj_snprintf); + + static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -483,19 +461,18 @@ static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj, + return nftnl_obj_snprintf(buf, size, obj, type, flags); + } + +-int nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type, ++int __EXPORTED nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, obj, NFTNL_CMD_UNSPEC, type, flags, + nftnl_obj_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_obj_fprintf); + + struct nftnl_obj_list { + struct list_head list; + }; + +-struct nftnl_obj_list *nftnl_obj_list_alloc(void) ++struct nftnl_obj_list __EXPORTED *nftnl_obj_list_alloc(void) + { + struct nftnl_obj_list *list; + +@@ -507,9 +484,8 @@ struct nftnl_obj_list *nftnl_obj_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_obj_list_alloc); + +-void nftnl_obj_list_free(struct nftnl_obj_list *list) ++void __EXPORTED nftnl_obj_list_free(struct nftnl_obj_list *list) + { + struct nftnl_obj *r, *tmp; + +@@ -519,34 +495,29 @@ void nftnl_obj_list_free(struct nftnl_obj_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_obj_list_free); + +-int nftnl_obj_list_is_empty(struct nftnl_obj_list *list) ++int __EXPORTED nftnl_obj_list_is_empty(struct nftnl_obj_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_obj_list_is_empty); + +-void nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list) ++void __EXPORTED nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list) + { + list_add(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_obj_list_add); + +-void nftnl_obj_list_add_tail(struct nftnl_obj *r, ++void __EXPORTED nftnl_obj_list_add_tail(struct nftnl_obj *r, + struct nftnl_obj_list *list) + { + list_add_tail(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_obj_list_add_tail); + +-void nftnl_obj_list_del(struct nftnl_obj *t) ++void __EXPORTED nftnl_obj_list_del(struct nftnl_obj *t) + { + list_del(&t->head); + } +-EXPORT_SYMBOL(nftnl_obj_list_del); + +-int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, ++int __EXPORTED nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, + int (*cb)(struct nftnl_obj *t, void *data), + void *data) + { +@@ -560,14 +531,13 @@ int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_obj_list_foreach); + + struct nftnl_obj_list_iter { + struct nftnl_obj_list *list; + struct nftnl_obj *cur; + }; + +-struct nftnl_obj_list_iter * ++struct nftnl_obj_list_iter __EXPORTED * + nftnl_obj_list_iter_create(struct nftnl_obj_list *l) + { + struct nftnl_obj_list_iter *iter; +@@ -584,9 +554,8 @@ nftnl_obj_list_iter_create(struct nftnl_obj_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_obj_list_iter_create); + +-struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) ++struct nftnl_obj __EXPORTED *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) + { + struct nftnl_obj *r = iter->cur; + +@@ -600,10 +569,8 @@ struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) + + return r; + } +-EXPORT_SYMBOL(nftnl_obj_list_iter_next); + +-void nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter) ++void __EXPORTED nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_obj_list_iter_destroy); +diff --git a/src/rule.c b/src/rule.c +index 6c22141..ad8609f 100644 +--- a/src/rule.c ++++ b/src/rule.c +@@ -52,7 +52,7 @@ struct nftnl_rule { + struct list_head expr_list; + }; + +-struct nftnl_rule *nftnl_rule_alloc(void) ++struct nftnl_rule __EXPORTED *nftnl_rule_alloc(void) + { + struct nftnl_rule *r; + +@@ -64,9 +64,8 @@ struct nftnl_rule *nftnl_rule_alloc(void) + + return r; + } +-EXPORT_SYMBOL(nftnl_rule_alloc); + +-void nftnl_rule_free(const struct nftnl_rule *r) ++void __EXPORTED nftnl_rule_free(const struct nftnl_rule *r) + { + struct nftnl_expr *e, *tmp; + +@@ -82,15 +81,13 @@ void nftnl_rule_free(const struct nftnl_rule *r) + + xfree(r); + } +-EXPORT_SYMBOL(nftnl_rule_free); + +-bool nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr) ++bool __EXPORTED nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr) + { + return r->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_rule_is_set); + +-void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) ++void __EXPORTED nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) + { + if (!(r->flags & (1 << attr))) + return; +@@ -116,7 +113,6 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) + + r->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_rule_unset); + + static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = { + [NFTNL_RULE_HANDLE] = sizeof(uint64_t), +@@ -127,7 +123,7 @@ static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = { + [NFTNL_RULE_ID] = sizeof(uint32_t), + }; + +-int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, ++int __EXPORTED nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, + const void *data, uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_RULE_MAX); +@@ -183,33 +179,28 @@ int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, + r->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_rule_set_data); + +-int nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data) ++int __EXPORTED nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data) + { + return nftnl_rule_set_data(r, attr, data, nftnl_rule_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_rule_set); + +-void nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val) + { + nftnl_rule_set_data(r, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_rule_set_u32); + +-void nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val) ++void __EXPORTED nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val) + { + nftnl_rule_set_data(r, attr, &val, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_rule_set_u64); + +-int nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str) ++int __EXPORTED nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str) + { + return nftnl_rule_set_data(r, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_rule_set_str); + +-const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, ++const void __EXPORTED *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, + uint32_t *data_len) + { + if (!(r->flags & (1 << attr))) +@@ -246,22 +237,19 @@ const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_rule_get_data); + +-const void *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr) ++const void __EXPORTED *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr) + { + uint32_t data_len; + return nftnl_rule_get_data(r, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_rule_get); + +-const char *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr) ++const char __EXPORTED *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr) + { + return nftnl_rule_get(r, attr); + } +-EXPORT_SYMBOL(nftnl_rule_get_str); + +-uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) ++uint32_t __EXPORTED nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) + { + uint32_t data_len; + const uint32_t *val = nftnl_rule_get_data(r, attr, &data_len); +@@ -270,9 +258,8 @@ uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_rule_get_u32); + +-uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) ++uint64_t __EXPORTED nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) + { + uint32_t data_len; + const uint64_t *val = nftnl_rule_get_data(r, attr, &data_len); +@@ -281,9 +268,8 @@ uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_rule_get_u64); + +-uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) ++uint8_t __EXPORTED nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) + { + uint32_t data_len; + const uint8_t *val = nftnl_rule_get_data(r, attr, &data_len); +@@ -292,9 +278,8 @@ uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_rule_get_u8); + +-void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) ++void __EXPORTED nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) + { + struct nftnl_expr *expr; + struct nlattr *nest, *nest2; +@@ -335,13 +320,11 @@ void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) + if (r->flags & (1 << NFTNL_RULE_ID)) + mnl_attr_put_u32(nlh, NFTA_RULE_ID, htonl(r->id)); + } +-EXPORT_SYMBOL(nftnl_rule_nlmsg_build_payload); + +-void nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr) ++void __EXPORTED nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr) + { + list_add_tail(&expr->head, &r->expr_list); + } +-EXPORT_SYMBOL(nftnl_rule_add_expr); + + static int nftnl_rule_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -441,7 +424,7 @@ static int nftnl_rule_parse_compat(struct nlattr *nest, struct nftnl_rule *r) + return 0; + } + +-int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) ++int __EXPORTED nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) + { + struct nlattr *tb[NFTA_RULE_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -510,7 +493,6 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) + + return 0; + } +-EXPORT_SYMBOL(nftnl_rule_nlmsg_parse); + + #ifdef JSON_PARSING + int nftnl_jansson_parse_rule(struct nftnl_rule *r, json_t *tree, +@@ -658,19 +640,17 @@ static int nftnl_rule_do_parse(struct nftnl_rule *r, enum nftnl_parse_type type, + + return ret; + } +-int nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type, ++int __EXPORTED nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_rule_do_parse(r, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_rule_parse); + +-int nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type, ++int __EXPORTED nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_rule_do_parse(r, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_rule_parse_file); + + static int nftnl_rule_export(char *buf, size_t size, + const struct nftnl_rule *r, +@@ -819,13 +799,12 @@ static int nftnl_rule_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r, ++int __EXPORTED nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r, + uint32_t type, uint32_t flags) + { + return nftnl_rule_cmd_snprintf(buf, size, r, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_rule_snprintf); + + static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -833,15 +812,14 @@ static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r, + return nftnl_rule_snprintf(buf, size, r, type, flags); + } + +-int nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type, ++int __EXPORTED nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, r, NFTNL_CMD_UNSPEC, type, flags, + nftnl_rule_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_rule_fprintf); + +-int nftnl_expr_foreach(struct nftnl_rule *r, ++int __EXPORTED nftnl_expr_foreach(struct nftnl_rule *r, + int (*cb)(struct nftnl_expr *e, void *data), + void *data) + { +@@ -855,7 +833,6 @@ int nftnl_expr_foreach(struct nftnl_rule *r, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_expr_foreach); + + struct nftnl_expr_iter { + const struct nftnl_rule *r; +@@ -873,7 +850,7 @@ static void nftnl_expr_iter_init(const struct nftnl_rule *r, + head); + } + +-struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r) ++struct nftnl_expr_iter __EXPORTED *nftnl_expr_iter_create(const struct nftnl_rule *r) + { + struct nftnl_expr_iter *iter; + +@@ -885,9 +862,8 @@ struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r) + + return iter; + } +-EXPORT_SYMBOL(nftnl_expr_iter_create); + +-struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) ++struct nftnl_expr __EXPORTED *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) + { + struct nftnl_expr *expr = iter->cur; + +@@ -901,15 +877,13 @@ struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) + + return expr; + } +-EXPORT_SYMBOL(nftnl_expr_iter_next); + +-void nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter) ++void __EXPORTED nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_expr_iter_destroy); + +-bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) ++bool __EXPORTED nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) + { + struct nftnl_expr_iter it1, it2; + struct nftnl_expr *e1, *e2; +@@ -938,13 +912,12 @@ bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) + + return eq; + } +-EXPORT_SYMBOL(nftnl_rule_cmp); + + struct nftnl_rule_list { + struct list_head list; + }; + +-struct nftnl_rule_list *nftnl_rule_list_alloc(void) ++struct nftnl_rule_list __EXPORTED *nftnl_rule_list_alloc(void) + { + struct nftnl_rule_list *list; + +@@ -956,9 +929,8 @@ struct nftnl_rule_list *nftnl_rule_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_rule_list_alloc); + +-void nftnl_rule_list_free(struct nftnl_rule_list *list) ++void __EXPORTED nftnl_rule_list_free(struct nftnl_rule_list *list) + { + struct nftnl_rule *r, *tmp; + +@@ -968,33 +940,28 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_rule_list_free); + +-int nftnl_rule_list_is_empty(const struct nftnl_rule_list *list) ++int __EXPORTED nftnl_rule_list_is_empty(const struct nftnl_rule_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_rule_list_is_empty); + +-void nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list) ++void __EXPORTED nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list) + { + list_add(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_rule_list_add); + +-void nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list) ++void __EXPORTED nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list) + { + list_add_tail(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_rule_list_add_tail); + +-void nftnl_rule_list_del(struct nftnl_rule *r) ++void __EXPORTED nftnl_rule_list_del(struct nftnl_rule *r) + { + list_del(&r->head); + } +-EXPORT_SYMBOL(nftnl_rule_list_del); + +-int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, ++int __EXPORTED nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, + int (*cb)(struct nftnl_rule *r, void *data), + void *data) + { +@@ -1008,14 +975,13 @@ int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_rule_list_foreach); + + struct nftnl_rule_list_iter { + const struct nftnl_rule_list *list; + struct nftnl_rule *cur; + }; + +-struct nftnl_rule_list_iter * ++struct nftnl_rule_list_iter __EXPORTED * + nftnl_rule_list_iter_create(const struct nftnl_rule_list *l) + { + struct nftnl_rule_list_iter *iter; +@@ -1032,15 +998,13 @@ nftnl_rule_list_iter_create(const struct nftnl_rule_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_rule_list_iter_create); + +-struct nftnl_rule *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter) ++struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter) + { + return iter->cur; + } +-EXPORT_SYMBOL(nftnl_rule_list_iter_cur); + +-struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) ++struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) + { + struct nftnl_rule *r = iter->cur; + +@@ -1054,10 +1018,8 @@ struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) + + return r; + } +-EXPORT_SYMBOL(nftnl_rule_list_iter_next); + +-void nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter) ++void __EXPORTED nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_rule_list_iter_destroy); +diff --git a/src/ruleset.c b/src/ruleset.c +index 6ef2956..10d48f6 100644 +--- a/src/ruleset.c ++++ b/src/ruleset.c +@@ -55,13 +55,12 @@ struct nftnl_parse_ctx { + uint16_t flags; + }; + +-struct nftnl_ruleset *nftnl_ruleset_alloc(void) ++struct nftnl_ruleset __EXPORTED *nftnl_ruleset_alloc(void) + { + return calloc(1, sizeof(struct nftnl_ruleset)); + } +-EXPORT_SYMBOL(nftnl_ruleset_alloc); + +-void nftnl_ruleset_free(const struct nftnl_ruleset *r) ++void __EXPORTED nftnl_ruleset_free(const struct nftnl_ruleset *r) + { + if (r->flags & (1 << NFTNL_RULESET_TABLELIST)) + nftnl_table_list_free(r->table_list); +@@ -73,15 +72,13 @@ void nftnl_ruleset_free(const struct nftnl_ruleset *r) + nftnl_rule_list_free(r->rule_list); + xfree(r); + } +-EXPORT_SYMBOL(nftnl_ruleset_free); + +-bool nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr) ++bool __EXPORTED nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr) + { + return r->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_ruleset_is_set); + +-void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) ++void __EXPORTED nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) + { + if (!(r->flags & (1 << attr))) + return; +@@ -102,9 +99,8 @@ void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) + } + r->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_ruleset_unset); + +-void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) ++void __EXPORTED nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) + { + switch (attr) { + case NFTNL_RULESET_TABLELIST: +@@ -128,9 +124,8 @@ void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) + } + r->flags |= (1 << attr); + } +-EXPORT_SYMBOL(nftnl_ruleset_set); + +-void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) ++void __EXPORTED *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) + { + if (!(r->flags & (1 << attr))) + return NULL; +@@ -148,9 +143,8 @@ void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) + return NULL; + } + } +-EXPORT_SYMBOL(nftnl_ruleset_get); + +-void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) ++void __EXPORTED nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) + { + switch (ctx->type) { + case NFTNL_RULESET_TABLE: +@@ -171,15 +165,13 @@ void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) + break; + } + } +-EXPORT_SYMBOL(nftnl_ruleset_ctx_free); + +-bool nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr) ++bool __EXPORTED nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr) + { + return ctx->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_ruleset_ctx_is_set); + +-void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) ++void __EXPORTED *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) + { + if (!(ctx->flags & (1 << attr))) + return NULL; +@@ -203,14 +195,12 @@ void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) + return NULL; + } + } +-EXPORT_SYMBOL(nftnl_ruleset_ctx_get); + +-uint32_t nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr) ++uint32_t __EXPORTED nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr) + { + const void *ret = nftnl_ruleset_ctx_get(ctx, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); + } +-EXPORT_SYMBOL(nftnl_ruleset_ctx_get_u32); + + #if defined(JSON_PARSING) + static void nftnl_ruleset_ctx_set(struct nftnl_parse_ctx *ctx, uint16_t attr, +@@ -593,22 +583,20 @@ nftnl_ruleset_do_parse(enum nftnl_parse_type type, const void *data, + return ret; + } + +-int nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp, ++int __EXPORTED nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp, + struct nftnl_parse_err *err, void *data, + int (*cb)(const struct nftnl_parse_ctx *ctx)) + { + return nftnl_ruleset_do_parse(type, fp, err, NFTNL_PARSE_FILE, data, cb); + } +-EXPORT_SYMBOL(nftnl_ruleset_parse_file_cb); + +-int nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer, ++int __EXPORTED nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer, + struct nftnl_parse_err *err, void *data, + int (*cb)(const struct nftnl_parse_ctx *ctx)) + { + return nftnl_ruleset_do_parse(type, buffer, err, NFTNL_PARSE_BUFFER, data, + cb); + } +-EXPORT_SYMBOL(nftnl_ruleset_parse_buffer_cb); + + static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx) + { +@@ -671,19 +659,17 @@ static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx) + return 0; + } + +-int nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type, ++int __EXPORTED nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_ruleset_parse_buffer_cb(type, data, err, r, nftnl_ruleset_cb); + } +-EXPORT_SYMBOL(nftnl_ruleset_parse); + +-int nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type, ++int __EXPORTED nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_ruleset_parse_file_cb(type, fp, err, rs, nftnl_ruleset_cb); + } +-EXPORT_SYMBOL(nftnl_ruleset_parse_file); + + static const char *nftnl_ruleset_o_opentag(uint32_t type) + { +@@ -928,7 +914,7 @@ static int nftnl_ruleset_cmd_snprintf(char *buf, size_t size, + } + } + +-int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r, ++int __EXPORTED nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r, + uint32_t type, uint32_t flags) + { + switch (type) { +@@ -943,7 +929,6 @@ int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r + return -1; + } + } +-EXPORT_SYMBOL(nftnl_ruleset_snprintf); + + static int nftnl_ruleset_fprintf_tables(FILE *fp, const struct nftnl_ruleset *rs, + uint32_t type, uint32_t flags) +@@ -1157,10 +1142,9 @@ static int nftnl_ruleset_cmd_fprintf(FILE *fp, const struct nftnl_ruleset *rs, + return len; + } + +-int nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type, ++int __EXPORTED nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type, + uint32_t flags) + { + return nftnl_ruleset_cmd_fprintf(fp, rs, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_ruleset_fprintf); +diff --git a/src/set.c b/src/set.c +index cce5e63..33a6794 100644 +--- a/src/set.c ++++ b/src/set.c +@@ -27,7 +27,7 @@ + #include + #include + +-struct nftnl_set *nftnl_set_alloc(void) ++struct nftnl_set __EXPORTED *nftnl_set_alloc(void) + { + struct nftnl_set *s; + +@@ -38,9 +38,8 @@ struct nftnl_set *nftnl_set_alloc(void) + INIT_LIST_HEAD(&s->element_list); + return s; + } +-EXPORT_SYMBOL(nftnl_set_alloc); + +-void nftnl_set_free(const struct nftnl_set *s) ++void __EXPORTED nftnl_set_free(const struct nftnl_set *s) + { + struct nftnl_set_elem *elem, *tmp; + +@@ -55,15 +54,13 @@ void nftnl_set_free(const struct nftnl_set *s) + } + xfree(s); + } +-EXPORT_SYMBOL(nftnl_set_free); + +-bool nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr) ++bool __EXPORTED nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr) + { + return s->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_set_is_set); + +-void nftnl_set_unset(struct nftnl_set *s, uint16_t attr) ++void __EXPORTED nftnl_set_unset(struct nftnl_set *s, uint16_t attr) + { + if (!(s->flags & (1 << attr))) + return; +@@ -97,7 +94,6 @@ void nftnl_set_unset(struct nftnl_set *s, uint16_t attr) + + s->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_set_unset); + + static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = { + [NFTNL_SET_FLAGS] = sizeof(uint32_t), +@@ -113,7 +109,7 @@ static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = { + [NFTNL_SET_GC_INTERVAL] = sizeof(uint32_t), + }; + +-int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, ++int __EXPORTED nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, + uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_SET_MAX); +@@ -186,33 +182,28 @@ int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, + s->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_set_set_data); + +-int nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data) ++int __EXPORTED nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data) + { + return nftnl_set_set_data(s, attr, data, nftnl_set_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_set_set); + +-void nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val) + { + nftnl_set_set(s, attr, &val); + } +-EXPORT_SYMBOL(nftnl_set_set_u32); + +-void nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val) ++void __EXPORTED nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val) + { + nftnl_set_set(s, attr, &val); + } +-EXPORT_SYMBOL(nftnl_set_set_u64); + +-int nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str) ++int __EXPORTED nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str) + { + return nftnl_set_set_data(s, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_set_set_str); + +-const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, ++const void __EXPORTED *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, + uint32_t *data_len) + { + if (!(s->flags & (1 << attr))) +@@ -267,22 +258,19 @@ const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_set_get_data); + +-const void *nftnl_set_get(const struct nftnl_set *s, uint16_t attr) ++const void __EXPORTED *nftnl_set_get(const struct nftnl_set *s, uint16_t attr) + { + uint32_t data_len; + return nftnl_set_get_data(s, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_set_get); + +-const char *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr) ++const char __EXPORTED *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr) + { + return nftnl_set_get(s, attr); + } +-EXPORT_SYMBOL(nftnl_set_get_str); + +-uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) ++uint32_t __EXPORTED nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) + { + uint32_t data_len; + const uint32_t *val = nftnl_set_get_data(s, attr, &data_len); +@@ -291,9 +279,8 @@ uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_set_get_u32); + +-uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) ++uint64_t __EXPORTED nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) + { + uint32_t data_len; + const uint64_t *val = nftnl_set_get_data(s, attr, &data_len); +@@ -302,7 +289,6 @@ uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_set_get_u64); + + struct nftnl_set *nftnl_set_clone(const struct nftnl_set *set) + { +@@ -351,7 +337,7 @@ nftnl_set_nlmsg_build_desc_payload(struct nlmsghdr *nlh, struct nftnl_set *s) + mnl_attr_nest_end(nlh, nest); + } + +-void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) ++void __EXPORTED nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) + { + if (s->flags & (1 << NFTNL_SET_TABLE)) + mnl_attr_put_strz(nlh, NFTA_SET_TABLE, s->table); +@@ -383,7 +369,6 @@ void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) + if (s->flags & (1 << NFTNL_SET_USERDATA)) + mnl_attr_put(nlh, NFTA_SET_USERDATA, s->user.len, s->user.data); + } +-EXPORT_SYMBOL(nftnl_set_nlmsg_build_payload); + + static int nftnl_set_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -463,7 +448,7 @@ static int nftnl_set_desc_parse(struct nftnl_set *s, + return 0; + } + +-int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) ++int __EXPORTED nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) + { + struct nlattr *tb[NFTA_SET_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -546,7 +531,6 @@ int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) + + return 0; + } +-EXPORT_SYMBOL(nftnl_set_nlmsg_parse); + + #ifdef JSON_PARSING + static int nftnl_jansson_parse_set_info(struct nftnl_set *s, json_t *tree, +@@ -718,19 +702,17 @@ static int nftnl_set_do_parse(struct nftnl_set *s, enum nftnl_parse_type type, + + return ret; + } +-int nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type, ++int __EXPORTED nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_set_do_parse(s, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_set_parse); + +-int nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type, ++int __EXPORTED nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_set_do_parse(s, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_set_parse_file); + + static int nftnl_set_snprintf_json(char *buf, size_t size, + const struct nftnl_set *s, +@@ -918,13 +900,12 @@ static int nftnl_set_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s, ++int __EXPORTED nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s, + uint32_t type, uint32_t flags) + { + return nftnl_set_cmd_snprintf(buf, size, s, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_set_snprintf); + + static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -932,25 +913,23 @@ static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s, + return nftnl_set_snprintf(buf, size, s, type, flags); + } + +-int nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type, ++int __EXPORTED nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, s, NFTNL_CMD_UNSPEC, type, flags, + nftnl_set_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_set_fprintf); + +-void nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem) ++void __EXPORTED nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem) + { + list_add_tail(&elem->head, &s->element_list); + } +-EXPORT_SYMBOL(nftnl_set_elem_add); + + struct nftnl_set_list { + struct list_head list; + }; + +-struct nftnl_set_list *nftnl_set_list_alloc(void) ++struct nftnl_set_list __EXPORTED *nftnl_set_list_alloc(void) + { + struct nftnl_set_list *list; + +@@ -962,9 +941,8 @@ struct nftnl_set_list *nftnl_set_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_set_list_alloc); + +-void nftnl_set_list_free(struct nftnl_set_list *list) ++void __EXPORTED nftnl_set_list_free(struct nftnl_set_list *list) + { + struct nftnl_set *s, *tmp; + +@@ -974,33 +952,28 @@ void nftnl_set_list_free(struct nftnl_set_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_set_list_free); + +-int nftnl_set_list_is_empty(const struct nftnl_set_list *list) ++int __EXPORTED nftnl_set_list_is_empty(const struct nftnl_set_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_set_list_is_empty); + +-void nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list) ++void __EXPORTED nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list) + { + list_add(&s->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_set_list_add); + +-void nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list) ++void __EXPORTED nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list) + { + list_add_tail(&s->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_set_list_add_tail); + +-void nftnl_set_list_del(struct nftnl_set *s) ++void __EXPORTED nftnl_set_list_del(struct nftnl_set *s) + { + list_del(&s->head); + } +-EXPORT_SYMBOL(nftnl_set_list_del); + +-int nftnl_set_list_foreach(struct nftnl_set_list *set_list, ++int __EXPORTED nftnl_set_list_foreach(struct nftnl_set_list *set_list, + int (*cb)(struct nftnl_set *t, void *data), void *data) + { + struct nftnl_set *cur, *tmp; +@@ -1013,14 +986,13 @@ int nftnl_set_list_foreach(struct nftnl_set_list *set_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_set_list_foreach); + + struct nftnl_set_list_iter { + const struct nftnl_set_list *list; + struct nftnl_set *cur; + }; + +-struct nftnl_set_list_iter * ++struct nftnl_set_list_iter __EXPORTED * + nftnl_set_list_iter_create(const struct nftnl_set_list *l) + { + struct nftnl_set_list_iter *iter; +@@ -1037,16 +1009,14 @@ nftnl_set_list_iter_create(const struct nftnl_set_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_set_list_iter_create); + +-struct nftnl_set * ++struct nftnl_set __EXPORTED * + nftnl_set_list_iter_cur(const struct nftnl_set_list_iter *iter) + { + return iter->cur; + } +-EXPORT_SYMBOL(nftnl_set_list_iter_cur); + +-struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) ++struct nftnl_set __EXPORTED *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) + { + struct nftnl_set *s = iter->cur; + +@@ -1060,13 +1030,11 @@ struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) + + return s; + } +-EXPORT_SYMBOL(nftnl_set_list_iter_next); + +-void nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter) ++void __EXPORTED nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_set_list_iter_destroy); + + static struct nftnl_set *nftnl_set_lookup(const char *this_set_name, + struct nftnl_set_list *set_list) +diff --git a/src/set_elem.c b/src/set_elem.c +index 433b896..bd1e895 100644 +--- a/src/set_elem.c ++++ b/src/set_elem.c +@@ -27,7 +27,7 @@ + #include + #include + +-struct nftnl_set_elem *nftnl_set_elem_alloc(void) ++struct nftnl_set_elem __EXPORTED *nftnl_set_elem_alloc(void) + { + struct nftnl_set_elem *s; + +@@ -37,9 +37,8 @@ struct nftnl_set_elem *nftnl_set_elem_alloc(void) + + return s; + } +-EXPORT_SYMBOL(nftnl_set_elem_alloc); + +-void nftnl_set_elem_free(struct nftnl_set_elem *s) ++void __EXPORTED nftnl_set_elem_free(struct nftnl_set_elem *s) + { + if (s->flags & (1 << NFTNL_SET_ELEM_CHAIN)) + xfree(s->data.chain); +@@ -55,15 +54,13 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s) + + xfree(s); + } +-EXPORT_SYMBOL(nftnl_set_elem_free); + +-bool nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr) ++bool __EXPORTED nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr) + { + return s->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_set_elem_is_set); + +-void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) ++void __EXPORTED nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) + { + if (!(s->flags & (1 << attr))) + return; +@@ -94,9 +91,8 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) + + s->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_set_elem_unset); + +-int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, ++int __EXPORTED nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, + const void *data, uint32_t data_len) + { + switch(attr) { +@@ -147,27 +143,23 @@ int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, + s->flags |= (1 << attr); + return -1; + } +-EXPORT_SYMBOL(nftnl_set_elem_set); + +-void nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val) + { + nftnl_set_elem_set(s, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_set_elem_set_u32); + +-void nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val) ++void __EXPORTED nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val) + { + nftnl_set_elem_set(s, attr, &val, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_set_elem_set_u64); + +-int nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str) ++int __EXPORTED nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str) + { + return nftnl_set_elem_set(s, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_set_elem_set_str); + +-const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len) ++const void __EXPORTED *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len) + { + if (!(s->flags & (1 << attr))) + return NULL; +@@ -205,31 +197,27 @@ const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_set_elem_get); + +-const char *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr) ++const char __EXPORTED *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr) + { + uint32_t size; + + return nftnl_set_elem_get(s, attr, &size); + } +-EXPORT_SYMBOL(nftnl_set_elem_get_str); + +-uint32_t nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr) ++uint32_t __EXPORTED nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr) + { + uint32_t size; + uint32_t val = *((uint32_t *)nftnl_set_elem_get(s, attr, &size)); + return val; + } +-EXPORT_SYMBOL(nftnl_set_elem_get_u32); + +-uint64_t nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr) ++uint64_t __EXPORTED nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr) + { + uint32_t size; + uint64_t val = *((uint64_t *)nftnl_set_elem_get(s, attr, &size)); + return val; + } +-EXPORT_SYMBOL(nftnl_set_elem_get_u64); + + struct nftnl_set_elem *nftnl_set_elem_clone(struct nftnl_set_elem *elem) + { +@@ -315,7 +303,7 @@ static struct nlattr *nftnl_set_elem_build(struct nlmsghdr *nlh, + return nest2; + } + +-void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) ++void __EXPORTED nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) + { + struct nftnl_set_elem *elem; + struct nlattr *nest1; +@@ -332,7 +320,6 @@ void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set + + mnl_attr_nest_end(nlh, nest1); + } +-EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload); + + static int nftnl_set_elem_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -503,7 +490,7 @@ static int nftnl_set_elems_parse(struct nftnl_set *s, const struct nlattr *nest) + return ret; + } + +-int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) ++int __EXPORTED nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) + { + struct nlattr *tb[NFTA_SET_ELEM_LIST_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -546,7 +533,6 @@ int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) + + return 0; + } +-EXPORT_SYMBOL(nftnl_set_elems_nlmsg_parse); + + static int nftnl_set_elem_json_parse(struct nftnl_set_elem *e, const void *json, + struct nftnl_parse_err *err, +@@ -587,19 +573,17 @@ nftnl_set_elem_do_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, + + return ret; + } +-int nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, ++int __EXPORTED nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_set_elem_do_parse(e, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_set_elem_parse); + +-int nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type, ++int __EXPORTED nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_set_elem_do_parse(e, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_set_elem_parse_file); + + static int nftnl_set_elem_snprintf_json(char *buf, size_t size, + const struct nftnl_set_elem *e, +@@ -719,14 +703,13 @@ static int nftnl_set_elem_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_set_elem_snprintf(char *buf, size_t size, ++int __EXPORTED nftnl_set_elem_snprintf(char *buf, size_t size, + const struct nftnl_set_elem *e, + uint32_t type, uint32_t flags) + { + return nftnl_set_elem_cmd_snprintf(buf, size, e, nftnl_flag2cmd(flags), + type, flags); + } +-EXPORT_SYMBOL(nftnl_set_elem_snprintf); + + static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e, + uint32_t cmd, uint32_t type, +@@ -735,15 +718,14 @@ static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e, + return nftnl_set_elem_snprintf(buf, size, e, type, flags); + } + +-int nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type, ++int __EXPORTED nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, se, NFTNL_CMD_UNSPEC, type, flags, + nftnl_set_elem_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_set_elem_fprintf); + +-int nftnl_set_elem_foreach(struct nftnl_set *s, ++int __EXPORTED nftnl_set_elem_foreach(struct nftnl_set *s, + int (*cb)(struct nftnl_set_elem *e, void *data), + void *data) + { +@@ -757,7 +739,6 @@ int nftnl_set_elem_foreach(struct nftnl_set *s, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_set_elem_foreach); + + struct nftnl_set_elems_iter { + const struct nftnl_set *set; +@@ -765,7 +746,7 @@ struct nftnl_set_elems_iter { + struct nftnl_set_elem *cur; + }; + +-struct nftnl_set_elems_iter * ++struct nftnl_set_elems_iter __EXPORTED * + nftnl_set_elems_iter_create(const struct nftnl_set *s) + { + struct nftnl_set_elems_iter *iter; +@@ -784,16 +765,14 @@ nftnl_set_elems_iter_create(const struct nftnl_set *s) + + return iter; + } +-EXPORT_SYMBOL(nftnl_set_elems_iter_create); + +-struct nftnl_set_elem * ++struct nftnl_set_elem __EXPORTED * + nftnl_set_elems_iter_cur(const struct nftnl_set_elems_iter *iter) + { + return iter->cur; + } +-EXPORT_SYMBOL(nftnl_set_elems_iter_cur); + +-struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter) ++struct nftnl_set_elem __EXPORTED *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter) + { + struct nftnl_set_elem *s = iter->cur; + +@@ -806,13 +785,11 @@ struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *it + + return s; + } +-EXPORT_SYMBOL(nftnl_set_elems_iter_next); + +-void nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter) ++void __EXPORTED nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_set_elems_iter_destroy); + + static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh, + const struct nlattr *from, +@@ -831,7 +808,7 @@ static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh, + return false; + } + +-int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, ++int __EXPORTED nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, + struct nftnl_set_elems_iter *iter) + { + struct nftnl_set_elem *elem; +@@ -861,4 +838,3 @@ int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, + + return ret; + } +-EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload_iter); +diff --git a/src/table.c b/src/table.c +index a7d5a8f..0e99f3c 100644 +--- a/src/table.c ++++ b/src/table.c +@@ -36,28 +36,25 @@ struct nftnl_table { + uint32_t flags; + }; + +-struct nftnl_table *nftnl_table_alloc(void) ++struct nftnl_table __EXPORTED *nftnl_table_alloc(void) + { + return calloc(1, sizeof(struct nftnl_table)); + } +-EXPORT_SYMBOL(nftnl_table_alloc); + +-void nftnl_table_free(const struct nftnl_table *t) ++void __EXPORTED nftnl_table_free(const struct nftnl_table *t) + { + if (t->flags & (1 << NFTNL_TABLE_NAME)) + xfree(t->name); + + xfree(t); + } +-EXPORT_SYMBOL(nftnl_table_free); + +-bool nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr) ++bool __EXPORTED nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr) + { + return t->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_table_is_set); + +-void nftnl_table_unset(struct nftnl_table *t, uint16_t attr) ++void __EXPORTED nftnl_table_unset(struct nftnl_table *t, uint16_t attr) + { + if (!(t->flags & (1 << attr))) + return; +@@ -74,14 +71,13 @@ void nftnl_table_unset(struct nftnl_table *t, uint16_t attr) + } + t->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_table_unset); + + static uint32_t nftnl_table_validate[NFTNL_TABLE_MAX + 1] = { + [NFTNL_TABLE_FLAGS] = sizeof(uint32_t), + [NFTNL_TABLE_FAMILY] = sizeof(uint32_t), + }; + +-int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, ++int __EXPORTED nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, + const void *data, uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_TABLE_MAX); +@@ -109,33 +105,28 @@ int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, + t->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_table_set_data); + +-void nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data) ++void __EXPORTED nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data) + { + nftnl_table_set_data(t, attr, data, nftnl_table_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_table_set); + +-void nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val) + { + nftnl_table_set_data(t, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_table_set_u32); + +-void nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val) ++void __EXPORTED nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val) + { + nftnl_table_set_data(t, attr, &val, sizeof(uint8_t)); + } +-EXPORT_SYMBOL(nftnl_table_set_u8); + +-int nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str) ++int __EXPORTED nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str) + { + return nftnl_table_set_data(t, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_table_set_str); + +-const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, ++const void __EXPORTED *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, + uint32_t *data_len) + { + if (!(t->flags & (1 << attr))) +@@ -157,43 +148,37 @@ const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_table_get_data); + +-const void *nftnl_table_get(const struct nftnl_table *t, uint16_t attr) ++const void __EXPORTED *nftnl_table_get(const struct nftnl_table *t, uint16_t attr) + { + uint32_t data_len; + return nftnl_table_get_data(t, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_table_get); + +-uint32_t nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr) ++uint32_t __EXPORTED nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr) + { + const void *ret = nftnl_table_get(t, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); + } +-EXPORT_SYMBOL(nftnl_table_get_u32); + +-uint8_t nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr) ++uint8_t __EXPORTED nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr) + { + const void *ret = nftnl_table_get(t, attr); + return ret == NULL ? 0 : *((uint8_t *)ret); + } +-EXPORT_SYMBOL(nftnl_table_get_u8); + +-const char *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr) ++const char __EXPORTED *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr) + { + return nftnl_table_get(t, attr); + } +-EXPORT_SYMBOL(nftnl_table_get_str); + +-void nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t) ++void __EXPORTED nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t) + { + if (t->flags & (1 << NFTNL_TABLE_NAME)) + mnl_attr_put_strz(nlh, NFTA_TABLE_NAME, t->name); + if (t->flags & (1 << NFTNL_TABLE_FLAGS)) + mnl_attr_put_u32(nlh, NFTA_TABLE_FLAGS, htonl(t->table_flags)); + } +-EXPORT_SYMBOL(nftnl_table_nlmsg_build_payload); + + static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -219,7 +204,7 @@ static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data) + return MNL_CB_OK; + } + +-int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) ++int __EXPORTED nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) + { + struct nlattr *tb[NFTA_TABLE_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -249,7 +234,6 @@ int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) + + return 0; + } +-EXPORT_SYMBOL(nftnl_table_nlmsg_parse); + + #ifdef JSON_PARSING + int nftnl_jansson_parse_table(struct nftnl_table *t, json_t *tree, +@@ -330,19 +314,17 @@ static int nftnl_table_do_parse(struct nftnl_table *t, enum nftnl_parse_type typ + return ret; + } + +-int nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type, ++int __EXPORTED nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_table_do_parse(t, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_table_parse); + +-int nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type, ++int __EXPORTED nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_table_do_parse(t, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_table_parse_file); + + static int nftnl_table_export(char *buf, size_t size, + const struct nftnl_table *t, int type) +@@ -400,13 +382,12 @@ static int nftnl_table_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t, ++int __EXPORTED nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t, + uint32_t type, uint32_t flags) + { + return nftnl_table_cmd_snprintf(buf, size, t, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_table_snprintf); + + static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -414,19 +395,18 @@ static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t, + return nftnl_table_snprintf(buf, size, t, type, flags); + } + +-int nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type, ++int __EXPORTED nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, t, NFTNL_CMD_UNSPEC, type, flags, + nftnl_table_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_table_fprintf); + + struct nftnl_table_list { + struct list_head list; + }; + +-struct nftnl_table_list *nftnl_table_list_alloc(void) ++struct nftnl_table_list __EXPORTED *nftnl_table_list_alloc(void) + { + struct nftnl_table_list *list; + +@@ -438,9 +418,8 @@ struct nftnl_table_list *nftnl_table_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_table_list_alloc); + +-void nftnl_table_list_free(struct nftnl_table_list *list) ++void __EXPORTED nftnl_table_list_free(struct nftnl_table_list *list) + { + struct nftnl_table *r, *tmp; + +@@ -450,33 +429,28 @@ void nftnl_table_list_free(struct nftnl_table_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_table_list_free); + +-int nftnl_table_list_is_empty(const struct nftnl_table_list *list) ++int __EXPORTED nftnl_table_list_is_empty(const struct nftnl_table_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_table_list_is_empty); + +-void nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list) ++void __EXPORTED nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list) + { + list_add(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_table_list_add); + +-void nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list) ++void __EXPORTED nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list) + { + list_add_tail(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_table_list_add_tail); + +-void nftnl_table_list_del(struct nftnl_table *t) ++void __EXPORTED nftnl_table_list_del(struct nftnl_table *t) + { + list_del(&t->head); + } +-EXPORT_SYMBOL(nftnl_table_list_del); + +-int nftnl_table_list_foreach(struct nftnl_table_list *table_list, ++int __EXPORTED nftnl_table_list_foreach(struct nftnl_table_list *table_list, + int (*cb)(struct nftnl_table *t, void *data), + void *data) + { +@@ -490,14 +464,13 @@ int nftnl_table_list_foreach(struct nftnl_table_list *table_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_table_list_foreach); + + struct nftnl_table_list_iter { + const struct nftnl_table_list *list; + struct nftnl_table *cur; + }; + +-struct nftnl_table_list_iter * ++struct nftnl_table_list_iter __EXPORTED * + nftnl_table_list_iter_create(const struct nftnl_table_list *l) + { + struct nftnl_table_list_iter *iter; +@@ -514,9 +487,8 @@ nftnl_table_list_iter_create(const struct nftnl_table_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_table_list_iter_create); + +-struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter) ++struct nftnl_table __EXPORTED *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter) + { + struct nftnl_table *r = iter->cur; + +@@ -530,10 +502,8 @@ struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *ite + + return r; + } +-EXPORT_SYMBOL(nftnl_table_list_iter_next); + +-void nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter) ++void __EXPORTED nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_table_list_iter_destroy); +diff --git a/src/trace.c b/src/trace.c +index bd05d3c..4739ef9 100644 +--- a/src/trace.c ++++ b/src/trace.c +@@ -52,14 +52,12 @@ struct nftnl_trace { + uint32_t flags; + }; + +-EXPORT_SYMBOL(nftnl_trace_alloc); +-struct nftnl_trace *nftnl_trace_alloc(void) ++struct nftnl_trace __EXPORTED *nftnl_trace_alloc(void) + { + return calloc(1, sizeof(struct nftnl_trace)); + } + +-EXPORT_SYMBOL(nftnl_trace_free); +-void nftnl_trace_free(const struct nftnl_trace *t) ++void __EXPORTED nftnl_trace_free(const struct nftnl_trace *t) + { + xfree(t->chain); + xfree(t->table); +@@ -70,8 +68,7 @@ void nftnl_trace_free(const struct nftnl_trace *t) + xfree(t); + } + +-EXPORT_SYMBOL(nftnl_trace_is_set); +-bool nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr) ++bool __EXPORTED nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr) + { + return t->flags & (1 << attr); + } +@@ -130,8 +127,7 @@ static int nftnl_trace_parse_attr_cb(const struct nlattr *attr, void *data) + return MNL_CB_OK; + } + +-EXPORT_SYMBOL(nftnl_trace_get_data); +-const void *nftnl_trace_get_data(const struct nftnl_trace *trace, ++const void __EXPORTED *nftnl_trace_get_data(const struct nftnl_trace *trace, + uint16_t type, uint32_t *data_len) + { + enum nftnl_trace_attr attr = type; +@@ -201,8 +197,7 @@ const void *nftnl_trace_get_data(const struct nftnl_trace *trace, + return NULL; + } + +-EXPORT_SYMBOL(nftnl_trace_get_str); +-const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) ++const char __EXPORTED *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) + { + if (!nftnl_trace_is_set(trace, type)) + return NULL; +@@ -216,8 +211,7 @@ const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) + return NULL; + } + +-EXPORT_SYMBOL(nftnl_trace_get_u16); +-uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) ++uint16_t __EXPORTED nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) + { + const uint16_t *d; + uint32_t dlen; +@@ -229,8 +223,7 @@ uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) + return 0; + } + +-EXPORT_SYMBOL(nftnl_trace_get_u32); +-uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) ++uint32_t __EXPORTED nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) + { + const uint32_t *d; + uint32_t dlen; +@@ -242,8 +235,7 @@ uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) + return 0; + } + +-EXPORT_SYMBOL(nftnl_trace_get_u64); +-uint64_t nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type) ++uint64_t __EXPORTED nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type) + { + const uint64_t *d; + uint32_t dlen; +@@ -323,9 +315,8 @@ static int nftnl_trace_parse_verdict(const struct nlattr *attr, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_trace_nlmsg_parse); + +-int nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t) ++int __EXPORTED nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t) + { + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); + struct nlattr *tb[NFTA_TRACE_MAX+1] = {}; +diff --git a/src/udata.c b/src/udata.c +index d679dd0..7e2de0f 100644 +--- a/src/udata.c ++++ b/src/udata.c +@@ -16,7 +16,7 @@ + #include + #include + +-struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size) ++struct nftnl_udata_buf __EXPORTED *nftnl_udata_buf_alloc(uint32_t data_size) + { + struct nftnl_udata_buf *buf; + +@@ -28,47 +28,40 @@ struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size) + + return buf; + } +-EXPORT_SYMBOL(nftnl_udata_buf_alloc); + +-void nftnl_udata_buf_free(const struct nftnl_udata_buf *buf) ++void __EXPORTED nftnl_udata_buf_free(const struct nftnl_udata_buf *buf) + { + xfree(buf); + } +-EXPORT_SYMBOL(nftnl_udata_buf_free); + +-uint32_t nftnl_udata_buf_len(const struct nftnl_udata_buf *buf) ++uint32_t __EXPORTED nftnl_udata_buf_len(const struct nftnl_udata_buf *buf) + { + return (uint32_t)(buf->end - buf->data); + } +-EXPORT_SYMBOL(nftnl_udata_buf_len); + +-void *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf) ++void __EXPORTED *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf) + { + return (void *)buf->data; + } +-EXPORT_SYMBOL(nftnl_udata_buf_data); + +-void nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data, ++void __EXPORTED nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data, + uint32_t len) + { + memcpy(buf->data, data, len <= buf->size ? len : buf->size); + buf->end = buf->data + len; + } +-EXPORT_SYMBOL(nftnl_udata_buf_put); + +-struct nftnl_udata *nftnl_udata_start(const struct nftnl_udata_buf *buf) ++struct nftnl_udata __EXPORTED *nftnl_udata_start(const struct nftnl_udata_buf *buf) + { + return (struct nftnl_udata *)buf->data; + } +-EXPORT_SYMBOL(nftnl_udata_start); + +-struct nftnl_udata *nftnl_udata_end(const struct nftnl_udata_buf *buf) ++struct nftnl_udata __EXPORTED *nftnl_udata_end(const struct nftnl_udata_buf *buf) + { + return (struct nftnl_udata *)buf->end; + } +-EXPORT_SYMBOL(nftnl_udata_end); + +-bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, ++bool __EXPORTED nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, + const void *value) + { + struct nftnl_udata *attr; +@@ -85,55 +78,47 @@ bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, + + return true; + } +-EXPORT_SYMBOL(nftnl_udata_put); + +-bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, ++bool __EXPORTED nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, + const char *strz) + { + return nftnl_udata_put(buf, type, strlen(strz) + 1, strz); + } +-EXPORT_SYMBOL(nftnl_udata_put_strz); + +-bool nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type, ++bool __EXPORTED nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type, + uint32_t data) + { + return nftnl_udata_put(buf, type, sizeof(data), &data); + } +-EXPORT_SYMBOL(nftnl_udata_put_u32); + +-uint8_t nftnl_udata_type(const struct nftnl_udata *attr) ++uint8_t __EXPORTED nftnl_udata_type(const struct nftnl_udata *attr) + { + return attr->type; + } +-EXPORT_SYMBOL(nftnl_udata_type); + +-uint8_t nftnl_udata_len(const struct nftnl_udata *attr) ++uint8_t __EXPORTED nftnl_udata_len(const struct nftnl_udata *attr) + { + return attr->len; + } +-EXPORT_SYMBOL(nftnl_udata_len); + +-void *nftnl_udata_get(const struct nftnl_udata *attr) ++void __EXPORTED *nftnl_udata_get(const struct nftnl_udata *attr) + { + return (void *)attr->value; + } +-EXPORT_SYMBOL(nftnl_udata_get); + +-uint32_t nftnl_udata_get_u32(const struct nftnl_udata *attr) ++uint32_t __EXPORTED nftnl_udata_get_u32(const struct nftnl_udata *attr) + { + uint32_t *data = (uint32_t *)attr->value; + + return *data; + } +-EXPORT_SYMBOL(nftnl_udata_get_u32); + +-struct nftnl_udata *nftnl_udata_next(const struct nftnl_udata *attr) ++struct nftnl_udata __EXPORTED *nftnl_udata_next(const struct nftnl_udata *attr) + { + return (struct nftnl_udata *)&attr->value[attr->len]; + } +-EXPORT_SYMBOL(nftnl_udata_next); + +-int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, ++int __EXPORTED nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, + void *cb_data) + { + int ret = 0; +@@ -147,4 +132,3 @@ int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, + + return ret; + } +-EXPORT_SYMBOL(nftnl_udata_parse); +-- +2.11.0 (Apple Git-81) + diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch new file mode 100644 index 00000000000..06e68177cec --- /dev/null +++ b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch @@ -0,0 +1,514 @@ +From f840cc0da571d98beb17855c177e9986bd096b72 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Apr 2017 11:46:09 -0700 +Subject: [PATCH] avoid naming local function as one of printf family + +Fixes build issues with clang +error: no member named '__builtin___snprintf_chk' in 'struct expr_ops' + +Signed-off-by: Khem Raj +--- + include/expr_ops.h | 2 +- + include/obj.h | 2 +- + src/buffer.c | 2 +- + src/expr.c | 4 ++-- + src/expr/bitwise.c | 2 +- + src/expr/byteorder.c | 2 +- + src/expr/cmp.c | 2 +- + src/expr/counter.c | 2 +- + src/expr/ct.c | 2 +- + src/expr/dup.c | 2 +- + src/expr/dynset.c | 2 +- + src/expr/exthdr.c | 2 +- + src/expr/fib.c | 2 +- + src/expr/fwd.c | 2 +- + src/expr/hash.c | 2 +- + src/expr/immediate.c | 2 +- + src/expr/limit.c | 2 +- + src/expr/log.c | 2 +- + src/expr/lookup.c | 2 +- + src/expr/masq.c | 2 +- + src/expr/match.c | 2 +- + src/expr/meta.c | 2 +- + src/expr/nat.c | 2 +- + src/expr/numgen.c | 2 +- + src/expr/objref.c | 2 +- + src/expr/payload.c | 2 +- + src/expr/queue.c | 2 +- + src/expr/quota.c | 2 +- + src/expr/range.c | 2 +- + src/expr/redir.c | 2 +- + src/expr/reject.c | 2 +- + src/expr/rt.c | 2 +- + src/expr/target.c | 2 +- + src/obj/counter.c | 2 +- + src/obj/ct_helper.c | 2 +- + src/obj/quota.c | 2 +- + src/object.c | 4 ++-- + 37 files changed, 39 insertions(+), 39 deletions(-) + +diff --git a/include/expr_ops.h b/include/expr_ops.h +index e639390..c4fe050 100644 +--- a/include/expr_ops.h ++++ b/include/expr_ops.h +@@ -18,7 +18,7 @@ struct expr_ops { + const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len); + int (*parse)(struct nftnl_expr *e, struct nlattr *attr); + void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e); +- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e); ++ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e); + int (*json_parse)(struct nftnl_expr *e, json_t *data, + struct nftnl_parse_err *err); + }; +diff --git a/include/obj.h b/include/obj.h +index d90919f..772caff 100644 +--- a/include/obj.h ++++ b/include/obj.h +@@ -47,7 +47,7 @@ struct obj_ops { + const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len); + int (*parse)(struct nftnl_obj *e, struct nlattr *attr); + void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e); +- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e); ++ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e); + int (*json_parse)(struct nftnl_obj *e, json_t *data, + struct nftnl_parse_err *err); + }; +diff --git a/src/buffer.c b/src/buffer.c +index f9d5a83..db656e2 100644 +--- a/src/buffer.c ++++ b/src/buffer.c +@@ -206,7 +206,7 @@ int nftnl_buf_expr(struct nftnl_buf *b, int type, uint32_t flags, + case NFTNL_OUTPUT_JSON: + nftnl_buf_put(b, "{"); + nftnl_buf_str(b, type, expr->ops->name, TYPE); +- ret = expr->ops->snprintf(b->buf + b->off, b->len, type, flags, ++ ret = expr->ops->snprintf_(b->buf + b->off, b->len, type, flags, + expr); + if (ret > 0) + nftnl_buf_update(b, ret); +diff --git a/src/expr.c b/src/expr.c +index c7eb2b4..24f8f8c 100644 +--- a/src/expr.c ++++ b/src/expr.c +@@ -265,10 +265,10 @@ int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_ex + int ret; + unsigned int offset = 0, len = size; + +- if (!expr->ops->snprintf) ++ if (!expr->ops->snprintf_) + return 0; + +- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr); ++ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + return offset; +diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c +index 0febc9d..9b48e79 100644 +--- a/src/expr/bitwise.c ++++ b/src/expr/bitwise.c +@@ -299,6 +299,6 @@ struct expr_ops expr_ops_bitwise = { + .get = nftnl_expr_bitwise_get, + .parse = nftnl_expr_bitwise_parse, + .build = nftnl_expr_bitwise_build, +- .snprintf = nftnl_expr_bitwise_snprintf, ++ .snprintf_ = nftnl_expr_bitwise_snprintf, + .json_parse = nftnl_expr_bitwise_json_parse, + }; +diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c +index 3805307..079582f 100644 +--- a/src/expr/byteorder.c ++++ b/src/expr/byteorder.c +@@ -314,6 +314,6 @@ struct expr_ops expr_ops_byteorder = { + .get = nftnl_expr_byteorder_get, + .parse = nftnl_expr_byteorder_parse, + .build = nftnl_expr_byteorder_build, +- .snprintf = nftnl_expr_byteorder_snprintf, ++ .snprintf_ = nftnl_expr_byteorder_snprintf, + .json_parse = nftnl_expr_byteorder_json_parse, + }; +diff --git a/src/expr/cmp.c b/src/expr/cmp.c +index 353e907..99b497c 100644 +--- a/src/expr/cmp.c ++++ b/src/expr/cmp.c +@@ -284,6 +284,6 @@ struct expr_ops expr_ops_cmp = { + .get = nftnl_expr_cmp_get, + .parse = nftnl_expr_cmp_parse, + .build = nftnl_expr_cmp_build, +- .snprintf = nftnl_expr_cmp_snprintf, ++ .snprintf_ = nftnl_expr_cmp_snprintf, + .json_parse = nftnl_expr_cmp_json_parse, + }; +diff --git a/src/expr/counter.c b/src/expr/counter.c +index 21901e8..9fd7655 100644 +--- a/src/expr/counter.c ++++ b/src/expr/counter.c +@@ -200,6 +200,6 @@ struct expr_ops expr_ops_counter = { + .get = nftnl_expr_counter_get, + .parse = nftnl_expr_counter_parse, + .build = nftnl_expr_counter_build, +- .snprintf = nftnl_expr_counter_snprintf, ++ .snprintf_ = nftnl_expr_counter_snprintf, + .json_parse = nftnl_expr_counter_json_parse, + }; +diff --git a/src/expr/ct.c b/src/expr/ct.c +index cdd08e9..6ce5478 100644 +--- a/src/expr/ct.c ++++ b/src/expr/ct.c +@@ -356,6 +356,6 @@ struct expr_ops expr_ops_ct = { + .get = nftnl_expr_ct_get, + .parse = nftnl_expr_ct_parse, + .build = nftnl_expr_ct_build, +- .snprintf = nftnl_expr_ct_snprintf, ++ .snprintf_ = nftnl_expr_ct_snprintf, + .json_parse = nftnl_expr_ct_json_parse, + }; +diff --git a/src/expr/dup.c b/src/expr/dup.c +index 9aa332b..2f491d8 100644 +--- a/src/expr/dup.c ++++ b/src/expr/dup.c +@@ -206,6 +206,6 @@ struct expr_ops expr_ops_dup = { + .get = nftnl_expr_dup_get, + .parse = nftnl_expr_dup_parse, + .build = nftnl_expr_dup_build, +- .snprintf = nftnl_expr_dup_snprintf, ++ .snprintf_ = nftnl_expr_dup_snprintf, + .json_parse = nftnl_expr_dup_json_parse, + }; +diff --git a/src/expr/dynset.c b/src/expr/dynset.c +index f7b99ea..758f07c 100644 +--- a/src/expr/dynset.c ++++ b/src/expr/dynset.c +@@ -368,6 +368,6 @@ struct expr_ops expr_ops_dynset = { + .get = nftnl_expr_dynset_get, + .parse = nftnl_expr_dynset_parse, + .build = nftnl_expr_dynset_build, +- .snprintf = nftnl_expr_dynset_snprintf, ++ .snprintf_ = nftnl_expr_dynset_snprintf, + .json_parse = nftnl_expr_dynset_json_parse, + }; +diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c +index d4f1665..a834782 100644 +--- a/src/expr/exthdr.c ++++ b/src/expr/exthdr.c +@@ -356,6 +356,6 @@ struct expr_ops expr_ops_exthdr = { + .get = nftnl_expr_exthdr_get, + .parse = nftnl_expr_exthdr_parse, + .build = nftnl_expr_exthdr_build, +- .snprintf = nftnl_expr_exthdr_snprintf, ++ .snprintf_ = nftnl_expr_exthdr_snprintf, + .json_parse = nftnl_expr_exthdr_json_parse, + }; +diff --git a/src/expr/fib.c b/src/expr/fib.c +index f3be081..3c353b2 100644 +--- a/src/expr/fib.c ++++ b/src/expr/fib.c +@@ -272,6 +272,6 @@ struct expr_ops expr_ops_fib = { + .get = nftnl_expr_fib_get, + .parse = nftnl_expr_fib_parse, + .build = nftnl_expr_fib_build, +- .snprintf = nftnl_expr_fib_snprintf, ++ .snprintf_ = nftnl_expr_fib_snprintf, + .json_parse = nftnl_expr_fib_json_parse, + }; +diff --git a/src/expr/fwd.c b/src/expr/fwd.c +index c30d494..f6e41f1 100644 +--- a/src/expr/fwd.c ++++ b/src/expr/fwd.c +@@ -180,6 +180,6 @@ struct expr_ops expr_ops_fwd = { + .get = nftnl_expr_fwd_get, + .parse = nftnl_expr_fwd_parse, + .build = nftnl_expr_fwd_build, +- .snprintf = nftnl_expr_fwd_snprintf, ++ .snprintf_ = nftnl_expr_fwd_snprintf, + .json_parse = nftnl_expr_fwd_json_parse, + }; +diff --git a/src/expr/hash.c b/src/expr/hash.c +index d870510..5acb66a 100644 +--- a/src/expr/hash.c ++++ b/src/expr/hash.c +@@ -332,6 +332,6 @@ struct expr_ops expr_ops_hash = { + .get = nftnl_expr_hash_get, + .parse = nftnl_expr_hash_parse, + .build = nftnl_expr_hash_build, +- .snprintf = nftnl_expr_hash_snprintf, ++ .snprintf_ = nftnl_expr_hash_snprintf, + .json_parse = nftnl_expr_hash_json_parse, + }; +diff --git a/src/expr/immediate.c b/src/expr/immediate.c +index 0b188cc..94bd6da 100644 +--- a/src/expr/immediate.c ++++ b/src/expr/immediate.c +@@ -316,6 +316,6 @@ struct expr_ops expr_ops_immediate = { + .get = nftnl_expr_immediate_get, + .parse = nftnl_expr_immediate_parse, + .build = nftnl_expr_immediate_build, +- .snprintf = nftnl_expr_immediate_snprintf, ++ .snprintf_ = nftnl_expr_immediate_snprintf, + .json_parse = nftnl_expr_immediate_json_parse, + }; +diff --git a/src/expr/limit.c b/src/expr/limit.c +index 856ab18..e71fc2f 100644 +--- a/src/expr/limit.c ++++ b/src/expr/limit.c +@@ -285,6 +285,6 @@ struct expr_ops expr_ops_limit = { + .get = nftnl_expr_limit_get, + .parse = nftnl_expr_limit_parse, + .build = nftnl_expr_limit_build, +- .snprintf = nftnl_expr_limit_snprintf, ++ .snprintf_ = nftnl_expr_limit_snprintf, + .json_parse = nftnl_expr_limit_json_parse, + }; +diff --git a/src/expr/log.c b/src/expr/log.c +index b642255..71dd83a 100644 +--- a/src/expr/log.c ++++ b/src/expr/log.c +@@ -352,6 +352,6 @@ struct expr_ops expr_ops_log = { + .get = nftnl_expr_log_get, + .parse = nftnl_expr_log_parse, + .build = nftnl_expr_log_build, +- .snprintf = nftnl_expr_log_snprintf, ++ .snprintf_ = nftnl_expr_log_snprintf, + .json_parse = nftnl_expr_log_json_parse, + }; +diff --git a/src/expr/lookup.c b/src/expr/lookup.c +index 861815f..6049913 100644 +--- a/src/expr/lookup.c ++++ b/src/expr/lookup.c +@@ -293,6 +293,6 @@ struct expr_ops expr_ops_lookup = { + .get = nftnl_expr_lookup_get, + .parse = nftnl_expr_lookup_parse, + .build = nftnl_expr_lookup_build, +- .snprintf = nftnl_expr_lookup_snprintf, ++ .snprintf_ = nftnl_expr_lookup_snprintf, + .json_parse = nftnl_expr_lookup_json_parse, + }; +diff --git a/src/expr/masq.c b/src/expr/masq.c +index 7c235d3..adec325 100644 +--- a/src/expr/masq.c ++++ b/src/expr/masq.c +@@ -228,6 +228,6 @@ struct expr_ops expr_ops_masq = { + .get = nftnl_expr_masq_get, + .parse = nftnl_expr_masq_parse, + .build = nftnl_expr_masq_build, +- .snprintf = nftnl_expr_masq_snprintf, ++ .snprintf_ = nftnl_expr_masq_snprintf, + .json_parse = nftnl_expr_masq_json_parse, + }; +diff --git a/src/expr/match.c b/src/expr/match.c +index dd09e1e..f0d8868 100644 +--- a/src/expr/match.c ++++ b/src/expr/match.c +@@ -249,6 +249,6 @@ struct expr_ops expr_ops_match = { + .get = nftnl_expr_match_get, + .parse = nftnl_expr_match_parse, + .build = nftnl_expr_match_build, +- .snprintf = nftnl_expr_match_snprintf, ++ .snprintf_ = nftnl_expr_match_snprintf, + .json_parse = nftnl_expr_match_json_parse, + }; +diff --git a/src/expr/meta.c b/src/expr/meta.c +index 2c75841..907a677 100644 +--- a/src/expr/meta.c ++++ b/src/expr/meta.c +@@ -290,6 +290,6 @@ struct expr_ops expr_ops_meta = { + .get = nftnl_expr_meta_get, + .parse = nftnl_expr_meta_parse, + .build = nftnl_expr_meta_build, +- .snprintf = nftnl_expr_meta_snprintf, ++ .snprintf_ = nftnl_expr_meta_snprintf, + .json_parse = nftnl_expr_meta_json_parse, + }; +diff --git a/src/expr/nat.c b/src/expr/nat.c +index 29bc3a2..d476283 100644 +--- a/src/expr/nat.c ++++ b/src/expr/nat.c +@@ -383,6 +383,6 @@ struct expr_ops expr_ops_nat = { + .get = nftnl_expr_nat_get, + .parse = nftnl_expr_nat_parse, + .build = nftnl_expr_nat_build, +- .snprintf = nftnl_expr_nat_snprintf, ++ .snprintf_ = nftnl_expr_nat_snprintf, + .json_parse = nftnl_expr_nat_json_parse, + }; +diff --git a/src/expr/numgen.c b/src/expr/numgen.c +index a15f03a..28ef741 100644 +--- a/src/expr/numgen.c ++++ b/src/expr/numgen.c +@@ -264,6 +264,6 @@ struct expr_ops expr_ops_ng = { + .get = nftnl_expr_ng_get, + .parse = nftnl_expr_ng_parse, + .build = nftnl_expr_ng_build, +- .snprintf = nftnl_expr_ng_snprintf, ++ .snprintf_ = nftnl_expr_ng_snprintf, + .json_parse = nftnl_expr_ng_json_parse, + }; +diff --git a/src/expr/objref.c b/src/expr/objref.c +index 4cfa3cb..c394290 100644 +--- a/src/expr/objref.c ++++ b/src/expr/objref.c +@@ -278,6 +278,6 @@ struct expr_ops expr_ops_objref = { + .get = nftnl_expr_objref_get, + .parse = nftnl_expr_objref_parse, + .build = nftnl_expr_objref_build, +- .snprintf = nftnl_expr_objref_snprintf, ++ .snprintf_ = nftnl_expr_objref_snprintf, + .json_parse = nftnl_expr_objref_json_parse, + }; +diff --git a/src/expr/payload.c b/src/expr/payload.c +index 91e1587..894ac08 100644 +--- a/src/expr/payload.c ++++ b/src/expr/payload.c +@@ -348,6 +348,6 @@ struct expr_ops expr_ops_payload = { + .get = nftnl_expr_payload_get, + .parse = nftnl_expr_payload_parse, + .build = nftnl_expr_payload_build, +- .snprintf = nftnl_expr_payload_snprintf, ++ .snprintf_ = nftnl_expr_payload_snprintf, + .json_parse = nftnl_expr_payload_json_parse, + }; +diff --git a/src/expr/queue.c b/src/expr/queue.c +index 8a9deda..389af83 100644 +--- a/src/expr/queue.c ++++ b/src/expr/queue.c +@@ -276,6 +276,6 @@ struct expr_ops expr_ops_queue = { + .get = nftnl_expr_queue_get, + .parse = nftnl_expr_queue_parse, + .build = nftnl_expr_queue_build, +- .snprintf = nftnl_expr_queue_snprintf, ++ .snprintf_ = nftnl_expr_queue_snprintf, + .json_parse = nftnl_expr_queue_json_parse, + }; +diff --git a/src/expr/quota.c b/src/expr/quota.c +index 667e6e1..ff5d182 100644 +--- a/src/expr/quota.c ++++ b/src/expr/quota.c +@@ -203,6 +203,6 @@ struct expr_ops expr_ops_quota = { + .get = nftnl_expr_quota_get, + .parse = nftnl_expr_quota_parse, + .build = nftnl_expr_quota_build, +- .snprintf = nftnl_expr_quota_snprintf, ++ .snprintf_ = nftnl_expr_quota_snprintf, + .json_parse = nftnl_expr_quota_json_parse, + }; +diff --git a/src/expr/range.c b/src/expr/range.c +index 8c8ce12..34d422b 100644 +--- a/src/expr/range.c ++++ b/src/expr/range.c +@@ -283,6 +283,6 @@ struct expr_ops expr_ops_range = { + .get = nftnl_expr_range_get, + .parse = nftnl_expr_range_parse, + .build = nftnl_expr_range_build, +- .snprintf = nftnl_expr_range_snprintf, ++ .snprintf_ = nftnl_expr_range_snprintf, + .json_parse = nftnl_expr_range_json_parse, + }; +diff --git a/src/expr/redir.c b/src/expr/redir.c +index 43538d5..8a21f93 100644 +--- a/src/expr/redir.c ++++ b/src/expr/redir.c +@@ -242,6 +242,6 @@ struct expr_ops expr_ops_redir = { + .get = nftnl_expr_redir_get, + .parse = nftnl_expr_redir_parse, + .build = nftnl_expr_redir_build, +- .snprintf = nftnl_expr_redir_snprintf, ++ .snprintf_ = nftnl_expr_redir_snprintf, + .json_parse = nftnl_expr_redir_json_parse, + }; +diff --git a/src/expr/reject.c b/src/expr/reject.c +index 11d8b20..b10e729 100644 +--- a/src/expr/reject.c ++++ b/src/expr/reject.c +@@ -200,6 +200,6 @@ struct expr_ops expr_ops_reject = { + .get = nftnl_expr_reject_get, + .parse = nftnl_expr_reject_parse, + .build = nftnl_expr_reject_build, +- .snprintf = nftnl_expr_reject_snprintf, ++ .snprintf_ = nftnl_expr_reject_snprintf, + .json_parse = nftnl_expr_reject_json_parse, + }; +diff --git a/src/expr/rt.c b/src/expr/rt.c +index 5088e66..9f44b29 100644 +--- a/src/expr/rt.c ++++ b/src/expr/rt.c +@@ -238,6 +238,6 @@ struct expr_ops expr_ops_rt = { + .get = nftnl_expr_rt_get, + .parse = nftnl_expr_rt_parse, + .build = nftnl_expr_rt_build, +- .snprintf = nftnl_expr_rt_snprintf, ++ .snprintf_ = nftnl_expr_rt_snprintf, + .json_parse = nftnl_expr_rt_json_parse, + }; +diff --git a/src/expr/target.c b/src/expr/target.c +index ed4bf7d..2ef4078 100644 +--- a/src/expr/target.c ++++ b/src/expr/target.c +@@ -249,6 +249,6 @@ struct expr_ops expr_ops_target = { + .get = nftnl_expr_target_get, + .parse = nftnl_expr_target_parse, + .build = nftnl_expr_target_build, +- .snprintf = nftnl_expr_target_snprintf, ++ .snprintf_ = nftnl_expr_target_snprintf, + .json_parse = nftnl_expr_target_json_parse, + }; +diff --git a/src/obj/counter.c b/src/obj/counter.c +index beadc93..8c4cc25 100644 +--- a/src/obj/counter.c ++++ b/src/obj/counter.c +@@ -179,6 +179,6 @@ struct obj_ops obj_ops_counter = { + .get = nftnl_obj_counter_get, + .parse = nftnl_obj_counter_parse, + .build = nftnl_obj_counter_build, +- .snprintf = nftnl_obj_counter_snprintf, ++ .snprintf_ = nftnl_obj_counter_snprintf, + .json_parse = nftnl_obj_counter_json_parse, + }; +diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c +index d6d3111..4c7c88b 100644 +--- a/src/obj/ct_helper.c ++++ b/src/obj/ct_helper.c +@@ -205,6 +205,6 @@ struct obj_ops obj_ops_ct_helper = { + .get = nftnl_obj_ct_helper_get, + .parse = nftnl_obj_ct_helper_parse, + .build = nftnl_obj_ct_helper_build, +- .snprintf = nftnl_obj_ct_helper_snprintf, ++ .snprintf_ = nftnl_obj_ct_helper_snprintf, + .json_parse = nftnl_obj_quota_json_parse, + }; +diff --git a/src/obj/quota.c b/src/obj/quota.c +index d5757b2..e959ff8 100644 +--- a/src/obj/quota.c ++++ b/src/obj/quota.c +@@ -200,6 +200,6 @@ struct obj_ops obj_ops_quota = { + .get = nftnl_obj_quota_get, + .parse = nftnl_obj_quota_parse, + .build = nftnl_obj_quota_build, +- .snprintf = nftnl_obj_quota_snprintf, ++ .snprintf_ = nftnl_obj_quota_snprintf, + .json_parse = nftnl_obj_quota_json_parse, + }; +diff --git a/src/object.c b/src/object.c +index d409c6d..b938c97 100644 +--- a/src/object.c ++++ b/src/object.c +@@ -389,7 +389,7 @@ static int nftnl_obj_export(char *buf, size_t size, + nftnl_buf_u32(&b, type, obj->use, USE); + + if (obj->ops) +- ret = obj->ops->snprintf(buf + b.len, size - b.len, type, ++ ret = obj->ops->snprintf_(buf + b.len, size - b.len, type, + flags, obj); + + b.len += ret; +@@ -410,7 +410,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size, + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + if (obj->ops) { +- ret = obj->ops->snprintf(buf + offset, offset, type, flags, obj); ++ ret = obj->ops->snprintf_(buf + offset, offset, type, flags, obj); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + } + ret = snprintf(buf + offset, offset, "]"); +-- +2.12.2 + diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb b/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb new file mode 100644 index 00000000000..ca01c0a6113 --- /dev/null +++ b/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb @@ -0,0 +1,17 @@ +SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26" +SECTION = "libs" +DEPENDS = "libmnl" +PV .= "+git${SRCPV}" +SRCREV = "4b89c0cb0883f638ff1abbc2ff47c43cdc26aac5" +SRC_URI = "git://git.netfilter.org/libnftnl \ + file://0001-Declare-the-define-visivility-attribute-together.patch \ + file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \ + " +SRC_URI[md5sum] = "82183867168eb6644926c48b991b8aac" +SRC_URI[sha256sum] = "9bb66ecbc64b8508249402f0093829f44177770ad99f6042b86b3a467d963982" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig diff --git a/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb b/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb new file mode 100644 index 00000000000..8177ebcc2a1 --- /dev/null +++ b/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "nfacct is the command line tool to create/retrieve/delete accounting objects" +HOMEPAGE = "http://netfilter.org/projects/nfacct/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" + +SRC_URI = "ftp://ftp.netfilter.org/pub/${BPN}/${BP}.tar.bz2" + +SRC_URI[md5sum] = "94faafdaaed85ca9220c5692be8a408e" +SRC_URI[sha256sum] = "ecff2218754be318bce3c3a5d1775bab93bf4168b2c4aac465785de5655fbd69" +DEPENDS = "libnfnetlink libmnl libnetfilter-acct" + +EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"' + +inherit autotools pkgconfig + diff --git a/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch b/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch new file mode 100644 index 00000000000..86a3d53dfd1 --- /dev/null +++ b/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch @@ -0,0 +1,323 @@ +From 0011985554e269e1cc8f8e5b41eb9dcd795ebe8c Mon Sep 17 00:00:00 2001 +From: Arturo Borrero Gonzalez +Date: Wed, 25 Jan 2017 12:51:08 +0100 +Subject: [PATCH] payload: explicit network ctx assignment for icmp/icmp6 in + special families + +In the inet, bridge and netdev families, we can add rules like these: + +% nft add rule inet t c ip protocol icmp icmp type echo-request +% nft add rule inet t c ip6 nexthdr icmpv6 icmpv6 type echo-request + +However, when we print the ruleset: + +% nft list ruleset +table inet t { + chain c { + icmpv6 type echo-request + icmp type echo-request + } +} + +These rules we obtain can't be added again: + +% nft add rule inet t c icmp type echo-request +:1:19-27: Error: conflicting protocols specified: inet-service vs. icmp +add rule inet t c icmp type echo-request + ^^^^^^^^^ + +% nft add rule inet t c icmpv6 type echo-request +:1:19-29: Error: conflicting protocols specified: inet-service vs. icmpv6 +add rule inet t c icmpv6 type echo-request + ^^^^^^^^^^^ + +Since I wouldn't expect an IP packet carrying ICMPv6, or IPv6 packet +carrying ICMP, if the link layer is inet, the network layer protocol context +can be safely update to 'ip' or 'ip6'. + +Moreover, nft currently generates a 'meta nfproto ipvX' depedency when +using icmp or icmp6 in the inet family, and similar in netdev and bridge +families. + +While at it, a bit of code factorization is introduced. + +Fixes: https://bugzilla.netfilter.org/show_bug.cgi?id=1073 +Signed-off-by: Arturo Borrero Gonzalez +Signed-off-by: Pablo Neira Ayuso +--- +Upstream-Status: Backport +Signed-off-by: André Draszik + src/payload.c | 70 ++++++++++++++++--------------------- + tests/py/any/icmpX.t.netdev | 8 +++++ + tests/py/any/icmpX.t.netdev.payload | 36 +++++++++++++++++++ + tests/py/bridge/icmpX.t | 8 +++++ + tests/py/bridge/icmpX.t.payload | 36 +++++++++++++++++++ + tests/py/inet/icmpX.t | 8 +++++ + tests/py/inet/icmpX.t.payload | 36 +++++++++++++++++++ + 7 files changed, 162 insertions(+), 40 deletions(-) + create mode 100644 tests/py/any/icmpX.t.netdev + create mode 100644 tests/py/any/icmpX.t.netdev.payload + create mode 100644 tests/py/bridge/icmpX.t + create mode 100644 tests/py/bridge/icmpX.t.payload + create mode 100644 tests/py/inet/icmpX.t + create mode 100644 tests/py/inet/icmpX.t.payload + +diff --git a/src/payload.c b/src/payload.c +index af533b2..74f8254 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -223,6 +223,34 @@ static int payload_add_dependency(struct eval_ctx *ctx, + return 0; + } + ++static const struct proto_desc * ++payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) ++{ ++ switch (expr->payload.base) { ++ case PROTO_BASE_LL_HDR: ++ switch (ctx->pctx.family) { ++ case NFPROTO_INET: ++ return &proto_inet; ++ case NFPROTO_BRIDGE: ++ return &proto_eth; ++ case NFPROTO_NETDEV: ++ return &proto_netdev; ++ default: ++ break; ++ } ++ break; ++ case PROTO_BASE_TRANSPORT_HDR: ++ if (expr->payload.desc == &proto_icmp) ++ return &proto_ip; ++ if (expr->payload.desc == &proto_icmp6) ++ return &proto_ip6; ++ return &proto_inet_service; ++ default: ++ break; ++ } ++ return NULL; ++} ++ + /** + * payload_gen_dependency - generate match expression on payload dependency + * +@@ -276,46 +304,8 @@ int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr, + + desc = ctx->pctx.protocol[expr->payload.base - 1].desc; + /* Special case for mixed IPv4/IPv6 and bridge tables */ +- if (desc == NULL) { +- switch (ctx->pctx.family) { +- case NFPROTO_INET: +- switch (expr->payload.base) { +- case PROTO_BASE_LL_HDR: +- desc = &proto_inet; +- break; +- case PROTO_BASE_TRANSPORT_HDR: +- desc = &proto_inet_service; +- break; +- default: +- break; +- } +- break; +- case NFPROTO_BRIDGE: +- switch (expr->payload.base) { +- case PROTO_BASE_LL_HDR: +- desc = &proto_eth; +- break; +- case PROTO_BASE_TRANSPORT_HDR: +- desc = &proto_inet_service; +- break; +- default: +- break; +- } +- break; +- case NFPROTO_NETDEV: +- switch (expr->payload.base) { +- case PROTO_BASE_LL_HDR: +- desc = &proto_netdev; +- break; +- case PROTO_BASE_TRANSPORT_HDR: +- desc = &proto_inet_service; +- break; +- default: +- break; +- } +- break; +- } +- } ++ if (desc == NULL) ++ desc = payload_gen_special_dependency(ctx, expr); + + if (desc == NULL) + return expr_error(ctx->msgs, expr, +diff --git a/tests/py/any/icmpX.t.netdev b/tests/py/any/icmpX.t.netdev +new file mode 100644 +index 0000000..a327ce6 +--- /dev/null ++++ b/tests/py/any/icmpX.t.netdev +@@ -0,0 +1,8 @@ ++:ingress;type filter hook ingress device lo priority 0 ++ ++*netdev;test-netdev;ingress ++ ++ip protocol icmp icmp type echo-request;ok;icmp type echo-request ++icmp type echo-request;ok ++ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request ++icmpv6 type echo-request;ok +diff --git a/tests/py/any/icmpX.t.netdev.payload b/tests/py/any/icmpX.t.netdev.payload +new file mode 100644 +index 0000000..8b8107c +--- /dev/null ++++ b/tests/py/any/icmpX.t.netdev.payload +@@ -0,0 +1,36 @@ ++# ip protocol icmp icmp type echo-request ++netdev test-netdev ingress ++ [ meta load protocol => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# icmp type echo-request ++netdev test-netdev ingress ++ [ meta load protocol => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# ip6 nexthdr icmpv6 icmpv6 type echo-request ++netdev test-netdev ingress ++ [ meta load protocol => reg 1 ] ++ [ cmp eq reg 1 0x0000dd86 ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ ++# icmpv6 type echo-request ++netdev test-netdev ingress ++ [ meta load protocol => reg 1 ] ++ [ cmp eq reg 1 0x0000dd86 ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ +diff --git a/tests/py/bridge/icmpX.t b/tests/py/bridge/icmpX.t +new file mode 100644 +index 0000000..8c0a597 +--- /dev/null ++++ b/tests/py/bridge/icmpX.t +@@ -0,0 +1,8 @@ ++:input;type filter hook input priority 0 ++ ++*bridge;test-bridge;input ++ ++ip protocol icmp icmp type echo-request;ok;icmp type echo-request ++icmp type echo-request;ok ++ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request ++icmpv6 type echo-request;ok +diff --git a/tests/py/bridge/icmpX.t.payload b/tests/py/bridge/icmpX.t.payload +new file mode 100644 +index 0000000..19efdd8 +--- /dev/null ++++ b/tests/py/bridge/icmpX.t.payload +@@ -0,0 +1,36 @@ ++# ip protocol icmp icmp type echo-request ++bridge test-bridge input ++ [ payload load 2b @ link header + 12 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# icmp type echo-request ++bridge test-bridge input ++ [ payload load 2b @ link header + 12 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# ip6 nexthdr icmpv6 icmpv6 type echo-request ++bridge test-bridge input ++ [ payload load 2b @ link header + 12 => reg 1 ] ++ [ cmp eq reg 1 0x0000dd86 ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ ++# icmpv6 type echo-request ++bridge test-bridge input ++ [ payload load 2b @ link header + 12 => reg 1 ] ++ [ cmp eq reg 1 0x0000dd86 ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ +diff --git a/tests/py/inet/icmpX.t b/tests/py/inet/icmpX.t +new file mode 100644 +index 0000000..1b467a1 +--- /dev/null ++++ b/tests/py/inet/icmpX.t +@@ -0,0 +1,8 @@ ++:input;type filter hook input priority 0 ++ ++*inet;test-inet;input ++ ++ip protocol icmp icmp type echo-request;ok;icmp type echo-request ++icmp type echo-request;ok ++ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request ++icmpv6 type echo-request;ok +diff --git a/tests/py/inet/icmpX.t.payload b/tests/py/inet/icmpX.t.payload +new file mode 100644 +index 0000000..81ca774 +--- /dev/null ++++ b/tests/py/inet/icmpX.t.payload +@@ -0,0 +1,36 @@ ++# ip protocol icmp icmp type echo-request ++inet test-inet input ++ [ meta load nfproto => reg 1 ] ++ [ cmp eq reg 1 0x00000002 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# icmp type echo-request ++inet test-inet input ++ [ meta load nfproto => reg 1 ] ++ [ cmp eq reg 1 0x00000002 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# ip6 nexthdr icmpv6 icmpv6 type echo-request ++inet test-inet input ++ [ meta load nfproto => reg 1 ] ++ [ cmp eq reg 1 0x0000000a ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ ++# icmpv6 type echo-request ++inet test-inet input ++ [ meta load nfproto => reg 1 ] ++ [ cmp eq reg 1 0x0000000a ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ +-- +2.11.0 + diff --git a/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch b/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch new file mode 100644 index 00000000000..4d9e9d11a46 --- /dev/null +++ b/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch @@ -0,0 +1,147 @@ +From 9ade8fb75f8963375b45b3f2973b8bb7aa66ad76 Mon Sep 17 00:00:00 2001 +From: Phil Sutter +Date: Thu, 16 Mar 2017 13:43:20 +0100 +Subject: [PATCH] proto: Add some exotic ICMPv6 types + +This adds support for matching on inverse ND messages as defined by +RFC3122 (not implemented in Linux) and MLDv2 as defined by RFC3810. + +Note that ICMPV6_MLD2_REPORT macro is defined in linux/icmpv6.h but +including that header leads to conflicts with symbols defined in +netinet/icmp6.h. + +In addition to the above, "mld-listener-done" is introduced as an alias +for "mld-listener-reduction". + +Signed-off-by: Phil Sutter +Signed-off-by: Pablo Neira Ayuso +--- +Upstream-Status: Backport +Signed-off-by: André Draszik + src/proto.c | 8 ++++++++ + tests/py/ip6/icmpv6.t | 8 ++++++-- + tests/py/ip6/icmpv6.t.payload.ip6 | 34 +++++++++++++++++++++++++++++++++- + 3 files changed, 47 insertions(+), 3 deletions(-) + +diff --git a/src/proto.c b/src/proto.c +index fb96530..79e9dbf 100644 +--- a/src/proto.c ++++ b/src/proto.c +@@ -632,6 +632,10 @@ const struct proto_desc proto_ip = { + + #include + ++#define IND_NEIGHBOR_SOLICIT 141 ++#define IND_NEIGHBOR_ADVERT 142 ++#define ICMPV6_MLD2_REPORT 143 ++ + static const struct symbol_table icmp6_type_tbl = { + .base = BASE_DECIMAL, + .symbols = { +@@ -643,6 +647,7 @@ static const struct symbol_table icmp6_type_tbl = { + SYMBOL("echo-reply", ICMP6_ECHO_REPLY), + SYMBOL("mld-listener-query", MLD_LISTENER_QUERY), + SYMBOL("mld-listener-report", MLD_LISTENER_REPORT), ++ SYMBOL("mld-listener-done", MLD_LISTENER_REDUCTION), + SYMBOL("mld-listener-reduction", MLD_LISTENER_REDUCTION), + SYMBOL("nd-router-solicit", ND_ROUTER_SOLICIT), + SYMBOL("nd-router-advert", ND_ROUTER_ADVERT), +@@ -650,6 +655,9 @@ static const struct symbol_table icmp6_type_tbl = { + SYMBOL("nd-neighbor-advert", ND_NEIGHBOR_ADVERT), + SYMBOL("nd-redirect", ND_REDIRECT), + SYMBOL("router-renumbering", ICMP6_ROUTER_RENUMBERING), ++ SYMBOL("ind-neighbor-solicit", IND_NEIGHBOR_SOLICIT), ++ SYMBOL("ind-neighbor-advert", IND_NEIGHBOR_ADVERT), ++ SYMBOL("mld2-listener-report", ICMPV6_MLD2_REPORT), + SYMBOL_LIST_END + }, + }; +diff --git a/tests/py/ip6/icmpv6.t b/tests/py/ip6/icmpv6.t +index afbd451..a898fe3 100644 +--- a/tests/py/ip6/icmpv6.t ++++ b/tests/py/ip6/icmpv6.t +@@ -11,7 +11,8 @@ icmpv6 type echo-request accept;ok + icmpv6 type echo-reply accept;ok + icmpv6 type mld-listener-query accept;ok + icmpv6 type mld-listener-report accept;ok +-icmpv6 type mld-listener-reduction accept;ok ++icmpv6 type mld-listener-done accept;ok ++icmpv6 type mld-listener-reduction accept;ok;icmpv6 type mld-listener-done accept + icmpv6 type nd-router-solicit accept;ok + icmpv6 type nd-router-advert accept;ok + icmpv6 type nd-neighbor-solicit accept;ok +@@ -19,8 +20,11 @@ icmpv6 type nd-neighbor-advert accept;ok + icmpv6 type nd-redirect accept;ok + icmpv6 type parameter-problem accept;ok + icmpv6 type router-renumbering accept;ok ++icmpv6 type ind-neighbor-solicit accept;ok ++icmpv6 type ind-neighbor-advert accept;ok ++icmpv6 type mld2-listener-report accept;ok + icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept;ok +-icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept;ok ++icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept;ok + icmpv6 type {mld-listener-query, time-exceeded, nd-router-advert} accept;ok + icmpv6 type != {mld-listener-query, time-exceeded, nd-router-advert} accept;ok + +diff --git a/tests/py/ip6/icmpv6.t.payload.ip6 b/tests/py/ip6/icmpv6.t.payload.ip6 +index 9fe2496..30f58ca 100644 +--- a/tests/py/ip6/icmpv6.t.payload.ip6 ++++ b/tests/py/ip6/icmpv6.t.payload.ip6 +@@ -54,6 +54,14 @@ ip6 test-ip6 input + [ cmp eq reg 1 0x00000083 ] + [ immediate reg 0 accept ] + ++# icmpv6 type mld-listener-done accept ++ip6 test-ip6 input ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000084 ] ++ [ immediate reg 0 accept ] ++ + # icmpv6 type mld-listener-reduction accept + ip6 test-ip6 input + [ payload load 1b @ network header + 6 => reg 1 ] +@@ -118,6 +126,30 @@ ip6 test-ip6 input + [ cmp eq reg 1 0x0000008a ] + [ immediate reg 0 accept ] + ++# icmpv6 type ind-neighbor-solicit accept ++ip6 test-ip6 input ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x0000008d ] ++ [ immediate reg 0 accept ] ++ ++# icmpv6 type ind-neighbor-advert accept ++ip6 test-ip6 input ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x0000008e ] ++ [ immediate reg 0 accept ] ++ ++# icmpv6 type mld2-listener-report accept ++ip6 test-ip6 input ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x0000008f ] ++ [ immediate reg 0 accept ] ++ + # icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept + __set%d test-ip6 3 + __set%d test-ip6 0 +@@ -129,7 +161,7 @@ ip6 test-ip6 input + [ lookup reg 1 set __set%d ] + [ immediate reg 0 accept ] + +-# icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept ++# icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept + __set%d test-ip6 3 + __set%d test-ip6 0 + element 0000008a : 0 [end] element 00000084 : 0 [end] element 00000003 : 0 [end] element 00000085 : 0 [end] +-- +2.11.0 + diff --git a/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch b/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch new file mode 100644 index 00000000000..50cac300e82 --- /dev/null +++ b/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch @@ -0,0 +1,62 @@ +From 8d8cfe5ad6ca460a5262fb15fdbef3601058c784 Mon Sep 17 00:00:00 2001 +From: Florian Westphal +Date: Thu, 18 May 2017 13:30:54 +0200 +Subject: [PATCH 1/4] payload: split ll proto dependency into helper + +will be re-used in folloup patch for icmp/icmpv6 depenency +handling. + +Signed-off-by: Florian Westphal +--- +Upstream-Status: Backport +Signed-off-by: André Draszik + src/payload.c | 29 ++++++++++++++++++----------- + 1 file changed, 18 insertions(+), 11 deletions(-) + +diff --git a/src/payload.c b/src/payload.c +index 55128fe..31e5a02 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -224,21 +224,28 @@ static int payload_add_dependency(struct eval_ctx *ctx, + } + + static const struct proto_desc * ++payload_get_get_ll_hdr(const struct eval_ctx *ctx) ++{ ++ switch (ctx->pctx.family) { ++ case NFPROTO_INET: ++ return &proto_inet; ++ case NFPROTO_BRIDGE: ++ return &proto_eth; ++ case NFPROTO_NETDEV: ++ return &proto_netdev; ++ default: ++ break; ++ } ++ ++ return NULL; ++} ++ ++static const struct proto_desc * + payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) + { + switch (expr->payload.base) { + case PROTO_BASE_LL_HDR: +- switch (ctx->pctx.family) { +- case NFPROTO_INET: +- return &proto_inet; +- case NFPROTO_BRIDGE: +- return &proto_eth; +- case NFPROTO_NETDEV: +- return &proto_netdev; +- default: +- break; +- } +- break; ++ return payload_get_get_ll_hdr(ctx); + case PROTO_BASE_TRANSPORT_HDR: + if (expr->payload.desc == &proto_icmp) + return &proto_ip; +-- +2.11.0 + diff --git a/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch b/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch new file mode 100644 index 00000000000..180edb3504c --- /dev/null +++ b/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch @@ -0,0 +1,65 @@ +From 9a1f2bbf3cd2417e0c10d18578e224abe2071d68 Mon Sep 17 00:00:00 2001 +From: Florian Westphal +Date: Tue, 21 Mar 2017 19:47:22 +0100 +Subject: [PATCH 2/4] src: allow update of net base w. meta l4proto icmpv6 + +nft add rule ip6 f i meta l4proto ipv6-icmp icmpv6 type nd-router-advert +:1:50-60: Error: conflicting protocols specified: unknown vs. icmpv6 + +add icmpv6 to nexthdr list so base gets updated correctly. + +Reported-by: Thomas Woerner +Signed-off-by: Florian Westphal +--- +Upstream-Status: Backport +Signed-off-by: André Draszik + src/proto.c | 1 + + tests/py/any/meta.t | 1 + + tests/py/any/meta.t.payload | 7 +++++++ + 3 files changed, 9 insertions(+) + +diff --git a/src/proto.c b/src/proto.c +index 79e9dbf..fcdfbe7 100644 +--- a/src/proto.c ++++ b/src/proto.c +@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = { + PROTO_LINK(IPPROTO_TCP, &proto_tcp), + PROTO_LINK(IPPROTO_DCCP, &proto_dccp), + PROTO_LINK(IPPROTO_SCTP, &proto_sctp), ++ PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), + }, + .templates = { + [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), +diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t +index c3ac0a4..2ff942f 100644 +--- a/tests/py/any/meta.t ++++ b/tests/py/any/meta.t +@@ -38,6 +38,7 @@ meta l4proto { 33, 55, 67, 88};ok;meta l4proto { 33, 55, 67, 88} + meta l4proto != { 33, 55, 67, 88};ok + meta l4proto { 33-55};ok + meta l4proto != { 33-55};ok ++meta l4proto ipv6-icmp icmpv6 type nd-router-advert;ok;icmpv6 type nd-router-advert + + meta priority root;ok + meta priority none;ok +diff --git a/tests/py/any/meta.t.payload b/tests/py/any/meta.t.payload +index e432656..871f1ad 100644 +--- a/tests/py/any/meta.t.payload ++++ b/tests/py/any/meta.t.payload +@@ -187,6 +187,13 @@ ip test-ip4 input + [ byteorder reg 1 = hton(reg 1, 2, 1) ] + [ lookup reg 1 set __set%d 0x1 ] + ++# meta l4proto ipv6-icmp icmpv6 type nd-router-advert ++ip test-ip4 input ++ [ meta load l4proto => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000086 ] ++ + # meta mark 0x4 + ip test-ip4 input + [ meta load mark => reg 1 ] +-- +2.11.0 + diff --git a/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch b/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch new file mode 100644 index 00000000000..f600ae05c0f --- /dev/null +++ b/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch @@ -0,0 +1,98 @@ +From 2366ed9ffcb4f5f5341f10f0a1d1a4688d37ad87 Mon Sep 17 00:00:00 2001 +From: Florian Westphal +Date: Wed, 22 Mar 2017 15:08:48 +0100 +Subject: [PATCH 3/4] src: ipv6: switch implicit dependencies to meta l4proto + +when using rule like + +ip6 filter input tcp dport 22 +nft generates: + [ payload load 1b @ network header + 6 => reg 1 ] + [ cmp eq reg 1 0x00000006 ] + [ payload load 2b @ transport header + 2 => reg 1 ] + [ cmp eq reg 1 0x00001600 ] + +which is: ip6 filter input ip6 nexthdr tcp dport 22 +IOW, such a rule won't match if e.g. a fragment header is in place. + +This changes ip6_proto to use 'meta l4proto' which is the protocol header +found by exthdr walk. + +A side effect is that for bridge we get a shorter dependency chain as it +no longer needs to prepend 'ether proto ipv6' for old 'ip6 nexthdr' dep. + +Only problem: + +ip6 nexthdr tcp tcp dport 22 +will now inject a (useless) meta l4 dependency as ip6 nexthdr is no +longer flagged as EXPR_F_PROTOCOL, to avoid this add a small helper +that skips the unneded meta dependency in that case. + +Signed-off-by: Florian Westphal +--- +Upstream-Status: Backport +Signed-off-by: André Draszik + src/payload.c | 19 ++++++++++++++++++- + src/proto.c | 2 +- + 2 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/src/payload.c b/src/payload.c +index 31e5a02..38db15e 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -117,6 +117,23 @@ static const struct expr_ops payload_expr_ops = { + .pctx_update = payload_expr_pctx_update, + }; + ++/* ++ * ipv6 is special case, we normally use 'meta l4proto' to fetch the last ++ * l4 header of the ipv6 extension header chain so we will also match ++ * tcp after a fragmentation header, for instance. ++ * ++ * If user specifically asks for nexthdr x, treat is as a full ++ * dependency rather than injecting another (useless) meta l4 one. ++ */ ++static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type) ++{ ++ if (type == desc->protocol_key || ++ (desc == &proto_ip6 && type == IP6HDR_NEXTHDR)) ++ return true; ++ ++ return false; ++} ++ + struct expr *payload_expr_alloc(const struct location *loc, + const struct proto_desc *desc, + unsigned int type) +@@ -129,7 +146,7 @@ struct expr *payload_expr_alloc(const struct location *loc, + if (desc != NULL) { + tmpl = &desc->templates[type]; + base = desc->base; +- if (type == desc->protocol_key) ++ if (proto_key_is_protocol(desc, type)) + flags = EXPR_F_PROTOCOL; + } else { + tmpl = &proto_unknown_template; +diff --git a/src/proto.c b/src/proto.c +index fcdfbe7..3b20a5f 100644 +--- a/src/proto.c ++++ b/src/proto.c +@@ -707,7 +707,6 @@ const struct proto_desc proto_icmp6 = { + const struct proto_desc proto_ip6 = { + .name = "ip6", + .base = PROTO_BASE_NETWORK_HDR, +- .protocol_key = IP6HDR_NEXTHDR, + .protocols = { + PROTO_LINK(IPPROTO_ESP, &proto_esp), + PROTO_LINK(IPPROTO_AH, &proto_ah), +@@ -720,6 +719,7 @@ const struct proto_desc proto_ip6 = { + PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), + }, + .templates = { ++ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), + [IP6HDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4), + [IP6HDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 4, 6), + [IP6HDR_ECN] = HDR_BITFIELD("ecn", &ecn_type, 10, 2), +-- +2.11.0 + diff --git a/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch b/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch new file mode 100644 index 00000000000..00076d7cef9 --- /dev/null +++ b/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch @@ -0,0 +1,84 @@ +From f21a7a4849b50c30341ec571813bd7fe37040ad3 Mon Sep 17 00:00:00 2001 +From: Florian Westphal +Date: Thu, 18 May 2017 13:30:54 +0200 +Subject: [PATCH 4/4] payload: enforce ip/ip6 protocol depending on icmp or + icmpv6 + +After some discussion with Pablo we agreed to treat icmp/icmpv6 specially. + +in the case of a rule like 'tcp dport 22' the inet, bridge and netdev +families only care about the lower layer protocol. + +In the icmpv6 case however we'd like to also enforce an ipv6 protocol check +(and ipv4 check in icmp case). + +This extends payload_gen_special_dependency() to consider this. +With this patch: + +add rule $pf filter input meta l4proto icmpv6 +add rule $pf filter input meta l4proto icmpv6 icmpv6 type echo-request +add rule $pf filter input icmpv6 type echo-request + +will work in all tables and all families. +For inet/bridge/netdev, an ipv6 protocol dependency is added; this will +not match ipv4 packets with ip->protocol == icmpv6, EXCEPT in the case +of the ip family. + +Its still possible to match icmpv6-in-ipv4 in inet/bridge/netdev with an +explicit dependency: + +add rule inet f i ip protocol ipv6-icmp meta l4proto ipv6-icmp icmpv6 type ... + +Implicit dependencies won't get removed at the moment, so + bridge ... icmp type echo-request +will be shown as + ether type ip meta l4proto 1 icmp type echo-request + +Signed-off-by: Florian Westphal +--- +Upstream-Status: Backport +Signed-off-by: André Draszik + src/payload.c | 27 +++++++++++++++++++++++---- + 1 file changed, 23 insertions(+), 4 deletions(-) + +diff --git a/src/payload.c b/src/payload.c +index 38db15e..8796ee5 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -264,10 +264,29 @@ payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) + case PROTO_BASE_LL_HDR: + return payload_get_get_ll_hdr(ctx); + case PROTO_BASE_TRANSPORT_HDR: +- if (expr->payload.desc == &proto_icmp) +- return &proto_ip; +- if (expr->payload.desc == &proto_icmp6) +- return &proto_ip6; ++ if (expr->payload.desc == &proto_icmp || ++ expr->payload.desc == &proto_icmp6) { ++ const struct proto_desc *desc, *desc_upper; ++ struct stmt *nstmt; ++ ++ desc = ctx->pctx.protocol[PROTO_BASE_LL_HDR].desc; ++ if (!desc) { ++ desc = payload_get_get_ll_hdr(ctx); ++ if (!desc) ++ break; ++ } ++ ++ desc_upper = &proto_ip6; ++ if (expr->payload.desc == &proto_icmp) ++ desc_upper = &proto_ip; ++ ++ if (payload_add_dependency(ctx, desc, desc_upper, ++ expr, &nstmt) < 0) ++ return NULL; ++ ++ list_add_tail(&nstmt->list, &ctx->stmt->list); ++ return desc_upper; ++ } + return &proto_inet_service; + default: + break; +-- +2.11.0 + diff --git a/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch b/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch new file mode 100644 index 00000000000..5b72437d275 --- /dev/null +++ b/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch @@ -0,0 +1,86 @@ +From 0825c57d571bb7121e7048e198b9b023f7e7f358 Mon Sep 17 00:00:00 2001 +From: Florian Westphal +Date: Sun, 7 May 2017 03:53:30 +0200 +Subject: [PATCH] src: ip: switch implicit dependencies to meta l4proto too + +after ip6 nexthdr also switch ip to meta l4proto instead of ip protocol. + +While its needed for ipv6 (due to extension headers) this isn't needed +for ip but it has the advantage that + +tcp dport 22 + +produces same expressions for ip/ip6/inet families. + +Signed-off-by: Florian Westphal +--- +Upstream-Status: Backport +Signed-off-by: André Draszik + src/payload.c | 17 +++++++++++------ + src/proto.c | 3 ++- + 2 files changed, 13 insertions(+), 7 deletions(-) + +diff --git a/src/payload.c b/src/payload.c +index 8796ee5..11b6df3 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -118,17 +118,22 @@ static const struct expr_ops payload_expr_ops = { + }; + + /* +- * ipv6 is special case, we normally use 'meta l4proto' to fetch the last +- * l4 header of the ipv6 extension header chain so we will also match ++ * We normally use 'meta l4proto' to fetch the last l4 header of the ++ * ipv6 extension header chain so we will also match + * tcp after a fragmentation header, for instance. ++ * For consistency we also use meta l4proto for ipv4. + * +- * If user specifically asks for nexthdr x, treat is as a full +- * dependency rather than injecting another (useless) meta l4 one. ++ * If user specifically asks for nexthdr x, don't add another (useless) ++ * meta dependency. + */ + static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type) + { +- if (type == desc->protocol_key || +- (desc == &proto_ip6 && type == IP6HDR_NEXTHDR)) ++ if (type == desc->protocol_key) ++ return true; ++ ++ if (desc == &proto_ip6 && type == IP6HDR_NEXTHDR) ++ return true; ++ if (desc == &proto_ip && type == IPHDR_PROTOCOL) + return true; + + return false; +diff --git a/src/proto.c b/src/proto.c +index 3b20a5f..2afedf7 100644 +--- a/src/proto.c ++++ b/src/proto.c +@@ -587,7 +587,6 @@ const struct proto_desc proto_ip = { + .name = "ip", + .base = PROTO_BASE_NETWORK_HDR, + .checksum_key = IPHDR_CHECKSUM, +- .protocol_key = IPHDR_PROTOCOL, + .protocols = { + PROTO_LINK(IPPROTO_ICMP, &proto_icmp), + PROTO_LINK(IPPROTO_ESP, &proto_esp), +@@ -600,6 +599,7 @@ const struct proto_desc proto_ip = { + PROTO_LINK(IPPROTO_SCTP, &proto_sctp), + }, + .templates = { ++ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), + [IPHDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4), + [IPHDR_HDRLENGTH] = HDR_BITFIELD("hdrlength", &integer_type, 4, 4), + [IPHDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 8, 6), +@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = { + PROTO_LINK(IPPROTO_TCP, &proto_tcp), + PROTO_LINK(IPPROTO_DCCP, &proto_dccp), + PROTO_LINK(IPPROTO_SCTP, &proto_sctp), ++ PROTO_LINK(IPPROTO_ICMP, &proto_icmp), + PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), + }, + .templates = { +-- +2.11.0 + diff --git a/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch b/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch new file mode 100644 index 00000000000..8dce90a754b --- /dev/null +++ b/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch @@ -0,0 +1,26 @@ +[PATCH] disable to make ntf.8 man + +Upstream-Status: Pending + +$DB2MAN do not support the xinclude parameter whether it is +docbook2x-man or other, so disable to make ntf.8 man + +Signed-off-by: Roy Li +--- + doc/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/doc/Makefile.am b/doc/Makefile.am +index a92de7f..537c36b 100644 +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -1,5 +1,5 @@ + if BUILD_MAN +-man_MANS = nft.8 ++#man_MANS = nft.8 + endif + + if BUILD_PDF +-- +1.9.1 + diff --git a/meta-networking/recipes-filter/nftables/nftables_0.7.bb b/meta-networking/recipes-filter/nftables/nftables_0.7.bb new file mode 100644 index 00000000000..0ea79953bed --- /dev/null +++ b/meta-networking/recipes-filter/nftables/nftables_0.7.bb @@ -0,0 +1,27 @@ +SUMMARY = "Netfilter Tables userspace utillites" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79" +SECTION = "net" + +DEPENDS = "libmnl libnftnl readline gmp" +RRECOMMENDS_${PN} += "kernel-module-nf-tables \ + " + +SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \ + file://fix-to-generate-ntf.8.patch \ + \ + file://0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch \ + file://0002-proto-Add-some-exotic-ICMPv6-types.patch \ + \ + file://0003-payload-split-ll-proto-dependency-into-helper.patch \ + file://0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch \ + file://0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch \ + file://0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch \ + file://0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch \ + " +SRC_URI[md5sum] = "4c005e76a15a029afaba71d7db21d065" +SRC_URI[sha256sum] = "fe639239d801ce5890397f6f4391c58a934bfc27d8b7d5ef922692de5ec4ed43" + +ASNEEDED = "" + +inherit autotools pkgconfig diff --git a/meta-networking/recipes-irc/znc/znc/0001-Fix-NULL-pointer-dereference-in-webadmin.patch b/meta-networking/recipes-irc/znc/znc/0001-Fix-NULL-pointer-dereference-in-webadmin.patch deleted file mode 100644 index 68e44147041..00000000000 --- a/meta-networking/recipes-irc/znc/znc/0001-Fix-NULL-pointer-dereference-in-webadmin.patch +++ /dev/null @@ -1,58 +0,0 @@ -Subject: [PATCH] Fix NULL pointer dereference in webadmin. - -Upstream-Status: Backport - -commit 2bd410ee5570cea127233f1133ea22f25174eb28 upstream - -Triggerable by any non-admin, if webadmin is loaded. - -The only affected version is 1.0 - -Thanks to ChauffeR (Simone Esposito) for reporting this. ---- - modules/webadmin.cpp | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp -index b793c02..816f217 100644 ---- a/modules/webadmin.cpp -+++ b/modules/webadmin.cpp -@@ -419,7 +419,7 @@ public: - CIRCNetwork* pNetwork = SafeGetNetworkFromParam(WebSock); - - // Admin||Self Check -- if (!spSession->IsAdmin() && (!spSession->GetUser() || spSession->GetUser() != pNetwork->GetUser())) { -+ if (!spSession->IsAdmin() && (!spSession->GetUser() || !pNetwork || spSession->GetUser() != pNetwork->GetUser())) { - return false; - } - -@@ -448,7 +448,7 @@ public: - CIRCNetwork* pNetwork = SafeGetNetworkFromParam(WebSock); - - // Admin||Self Check -- if (!spSession->IsAdmin() && (!spSession->GetUser() || spSession->GetUser() != pNetwork->GetUser())) { -+ if (!spSession->IsAdmin() && (!spSession->GetUser() || !pNetwork || spSession->GetUser() != pNetwork->GetUser())) { - return false; - } - -@@ -472,7 +472,7 @@ public: - CIRCNetwork* pNetwork = SafeGetNetworkFromParam(WebSock); - - // Admin||Self Check -- if (!spSession->IsAdmin() && (!spSession->GetUser() || spSession->GetUser() != pNetwork->GetUser())) { -+ if (!spSession->IsAdmin() && (!spSession->GetUser() || !pNetwork || spSession->GetUser() != pNetwork->GetUser())) { - return false; - } - -@@ -486,7 +486,7 @@ public: - CIRCNetwork* pNetwork = SafeGetNetworkFromParam(WebSock); - - // Admin||Self Check -- if (!spSession->IsAdmin() && (!spSession->GetUser() || spSession->GetUser() != pNetwork->GetUser())) { -+ if (!spSession->IsAdmin() && (!spSession->GetUser() || !pNetwork || spSession->GetUser() != pNetwork->GetUser())) { - return false; - } - --- -1.8.5.2.233.g932f7e4 - diff --git a/meta-networking/recipes-irc/znc/znc_git.bb b/meta-networking/recipes-irc/znc/znc_git.bb index 77db25b330c..c2d71563a10 100644 --- a/meta-networking/recipes-irc/znc/znc_git.bb +++ b/meta-networking/recipes-irc/znc/znc_git.bb @@ -1,21 +1,34 @@ SUMMARY = "ZNC, an advanced IRC bouncer" +SECTION = "net" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" -DEPENDS = "openssl" +DEPENDS = "openssl zlib icu" -PV = "1.0+git" +PV = "1.6.0" -SRCREV = "ef59c23068547c132cb678092fba9a21317fd5f2" -SRC_URI = "git://github.com/znc/znc.git \ - file://0001-Fix-NULL-pointer-dereference-in-webadmin.patch \ +SRC_URI = "git://github.com/znc/znc.git;name=znc \ + git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket \ " +SRCREV_znc = "f47e8465efa4e1cd948b9caae93ac401b4355df8" +SRCREV_Csocket = "07b4437396122650e5b8fb3d014e820a5decf4ee" + +# This constructs a composite revision based on multiple SRCREV's. +# +SRCREV_FORMAT = "znc_Csocket" S = "${WORKDIR}/git" inherit autotools-brokensep pkgconfig +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + # ZNC has a custom autogen.sh that states that this command is needed *and* expected to fail do_configure_prepend() { automake --add-missing || true } + +do_install_append() { + sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc +} diff --git a/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170810.bb b/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170810.bb new file mode 100644 index 00000000000..2c69c58f8b7 --- /dev/null +++ b/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170810.bb @@ -0,0 +1,31 @@ +require wireguard.inc + +inherit module kernel-module-split + +DEPENDS = "virtual/kernel libmnl" + +# This module requires Linux 3.10 higher and several networking related +# configuration options. For exact kernel requirements visit: +# https://www.wireguard.io/install/#kernel-requirements + +EXTRA_OEMAKE_append = " \ + KERNELDIR=${STAGING_KERNEL_DIR} \ + " + +MAKE_TARGETS = "module" + +RRECOMMENDS_${PN} = "kernel-module-xt-hashlimit" +MODULE_NAME = "wireguard" + +# Kernel module packages MUST begin with 'kernel-module-', otherwise +# multilib image generation can fail. +# +# The following line is only necessary if the recipe name does not begin +# with kernel-module-. +PKG_${PN} = "kernel-module-${MODULE_NAME}" + +module_do_install() { + install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME} + install -m 0644 ${MODULE_NAME}.ko \ + ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}/${MODULE_NAME}.ko +} diff --git a/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170810.bb b/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170810.bb new file mode 100644 index 00000000000..c4ddbcb0e90 --- /dev/null +++ b/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170810.bb @@ -0,0 +1,27 @@ +require wireguard.inc + +inherit bash-completion systemd pkgconfig + +DEPENDS = "wireguard-module libmnl" + +do_compile_prepend () { + cd ${S}/tools +} + +do_install () { + cd ${S}/tools + oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \ + SYSTEMDUNITDIR="${systemd_unitdir}" \ + WITH_SYSTEMDUNITS=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', '', d)} \ + WITH_BASHCOMPLETION=yes \ + WITH_WGQUICK=yes \ + install +} + +FILES_${PN} = " \ + ${sysconfdir} \ + ${systemd_unitdir} \ + ${bindir} \ +" + +RDEPENDS_${PN} = "wireguard-module bash" diff --git a/meta-networking/recipes-kernel/wireguard/wireguard.inc b/meta-networking/recipes-kernel/wireguard/wireguard.inc new file mode 100644 index 00000000000..f37d52b2228 --- /dev/null +++ b/meta-networking/recipes-kernel/wireguard/wireguard.inc @@ -0,0 +1,17 @@ +SUMMARY = "WireGuard is an extremely simple yet fast and modern VPN" +DESCRIPTION="WireGuard is a secure network tunnel, operating at layer 3, \ +implemented as a kernel virtual network interface for Linux, which aims to \ +replace both IPsec for most use cases, as well as popular user space and/or \ +TLS-based solutions like OpenVPN, while being more secure, more performant, \ +and easier to use." +SECTION = "networking" +HOMEPAGE = "https://www.wireguard.io/" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${PV}.tar.xz" +SRC_URI[md5sum] = "8dd3e080407b8295c25565a847a4ca27" +SRC_URI[sha256sum] = "ab96230390625aad6f4816fa23aef6e9f7fee130f083d838919129ff12089bf7" + +S = "${WORKDIR}/WireGuard-${PV}/src/" diff --git a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch new file mode 100644 index 00000000000..8376603ead2 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch @@ -0,0 +1,30 @@ +From 2ee0c51d81a0a08d64b64ab624074e5f7cd9615a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Jul 2017 00:07:32 -0700 +Subject: [PATCH] ftp: include sys/types.h for u_long + +fixes +ftp.c:1091:2: error: unknown type name 'u_long'; did you mean 'long'? + u_long a1,a2,a3,a4,p1,p2; + ^~~~~~ + +Signed-off-by: Khem Raj +--- + ftp/ftp.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ftp/ftp.c b/ftp/ftp.c +index 7a56af6..5dcb513 100644 +--- a/ftp/ftp.c ++++ b/ftp/ftp.c +@@ -43,6 +43,7 @@ char ftp_rcsid[] = + #include + #include + #include ++#include + + #include + #include +-- +2.13.3 + diff --git a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb index 8bac0497680..394a69e6299 100644 --- a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb +++ b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb @@ -1,14 +1,15 @@ DESCRIPTION = "netkit-ft includes the ftp client." -SECTION = "networking" +SECTION = "net" HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://ftp/ftp.c;beginline=2;endline=3;md5=2d40a75a50d83b8f6317b3f53db72bfa" SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}.orig.tar.gz;name=archive \ - ${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}-31.debian.tar.xz;name=patch31 \ - file://Add_ARG_MAX_define.patch \ -" + ${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}-31.debian.tar.xz;name=patch31 \ + file://Add_ARG_MAX_define.patch \ + file://0001-ftp-include-sys-types.h-for-u_long.patch \ + " SRC_URI[archive.md5sum] = "94441610c9b86ef45c4c6ec609444060" SRC_URI[archive.sha256sum] = "61c913299b81a4671ff089aac821329f7db9bc111aa812993dd585798b700349" @@ -31,7 +32,7 @@ do_install () { install -d ${D}${mandir}/man5 install -m${BINMODE} ${S}/ftp/ftp ${D}${bindir} - ln -sf ${D}${bindir}/ftp ${D}${bindir}/pftp + ln -sf ftp ${D}${bindir}/pftp install -m${MANMODE} ${S}/ftp/ftp.1 ${D}${mandir}/man1 ln -sf ftp.1 ${D}${mandir}/man1/pftp.1 install -m${MANMODE} ${S}/ftp/netrc.5 ${D}${mandir}/man5 diff --git a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch new file mode 100644 index 00000000000..8bd77d2e474 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch @@ -0,0 +1,51 @@ +From 439e3e35f7fcbff1abb782de4b19b31e43ae3449 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 09:59:19 -0700 +Subject: [PATCH] rpcgen: Fix printf formats + +Fixes build with hardening flags + +Signed-off-by: Khem Raj +--- + rpcgen/rpc_hout.c | 2 +- + rpcgen/rpc_tblout.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/rpcgen/rpc_hout.c b/rpcgen/rpc_hout.c +index 0ef52df..09a7b57 100644 +--- a/rpcgen/rpc_hout.c ++++ b/rpcgen/rpc_hout.c +@@ -474,7 +474,7 @@ pdeclaration(const char *name, declaration *dec, int tab, + break; + } + } +- f_print(fout, separator ); ++ f_print(fout, "%s", separator ); + } + + static int +diff --git a/rpcgen/rpc_tblout.c b/rpcgen/rpc_tblout.c +index d64bfde..fd62a52 100644 +--- a/rpcgen/rpc_tblout.c ++++ b/rpcgen/rpc_tblout.c +@@ -99,7 +99,7 @@ write_table(const definition *def) + } + else { + expected = 1; +- f_print(fout, null_entry); ++ f_print(fout, "%s", null_entry); + } + for (proc = vp->procs; proc != NULL; proc = proc->next) { + current = atoi(proc->proc_num); +@@ -139,7 +139,7 @@ write_table(const definition *def) + } + + /* print the table trailer */ +- f_print(fout, tbl_end); ++ f_print(fout, "%s", tbl_end); + f_print(fout, tbl_nproc, progvers, progvers, progvers); + } + } +-- +2.13.2 + diff --git a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb index 4d8d95ac3f9..9487fdc2c07 100644 --- a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb +++ b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb @@ -1,13 +1,18 @@ DESCRIPTION = "netkit-rpc includes rpcinfo and rpcgen." HOMEPAGE = "http://ftp.linux.org.uk/pub/linux/Networking/netkit" -SECTION = "networking" +SECTION = "net" LICENSE = "SPL-1.0" LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89" +DEPENDS_append_libc-musl = " libtirpc" SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \ - file://gcc4.patch" + file://gcc4.patch \ + file://0001-rpcgen-Fix-printf-formats.patch \ + " SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642" SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LIBS_append_libc-musl = " -ltirpc" do_configure () { ./configure --prefix=${prefix} @@ -16,6 +21,7 @@ do_configure () { echo "LD=${LD}" >> MCONFIG echo "CFLAGS=${CFLAGS}" >> MCONFIG echo "LDFLAGS=${LDFLAGS}" >> MCONFIG + echo "LIBS=${LIBS}" >> MCONFIG } do_compile () { diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch new file mode 100644 index 00000000000..1d3631d47d9 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch @@ -0,0 +1,27 @@ +fix host variable when rsh is renamed to other. + +Upstream-Status: Pending + +If rsh is renamed to other, like rsh.netkit, host variable is assigned to +rsh.netkit, which is wrong. + +Signed-off-by: Roy.Li +--- + rsh/rsh.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/rsh/rsh.c b/rsh/rsh.c +index ac594f9..11f533e 100644 +--- a/rsh/rsh.c ++++ b/rsh/rsh.c +@@ -100,7 +100,6 @@ main(int argc, char *argv[]) + #else + if (!strcmp(p, "rsh")) asrsh = 1; + #endif +- else host = p; + + /* handle "rsh host flags" */ + if (!host && argc > 2 && argv[1][0] != '-') { +-- +1.7.5.4 + diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fixup_wait3_api_change.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fixup_wait3_api_change.patch new file mode 100644 index 00000000000..cd6df62fb34 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fixup_wait3_api_change.patch @@ -0,0 +1,34 @@ +Fix build issue do to Deprecate union wait and remove support from wait functions [BZ #19613] + +| rlogin.c: In function 'catch_child': +| rlogin.c:463:13: error: storage size of 'status' isn't known +| union wait status; + +https://sourceware.org/ml/libc-alpha/2016-02/msg00342.html + +Upstream-Status: Inappropriate [ no upstream maintaner ] + +Signed-off-by Armin Kuster + +Index: netkit-rsh-0.17/rlogin/rlogin.c +=================================================================== +--- netkit-rsh-0.17.orig/rlogin/rlogin.c ++++ netkit-rsh-0.17/rlogin/rlogin.c +@@ -460,7 +460,7 @@ writeroob(int ignore) + void + catch_child(int ignore) + { +- union wait status; ++ int status; + int pid; + + (void)ignore; +@@ -471,7 +471,7 @@ catch_child(int ignore) + return; + /* if the child (reader) dies, just quit */ + if (pid < 0 || (pid == childpid && !WIFSTOPPED(status))) +- done((int)(status.w_termsig | status.w_retcode)); ++ done((int)(WTERMSIG(status) | WEXITSTATUS(status))); + } + /* NOTREACHED */ + } diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch new file mode 100644 index 00000000000..efd060f3651 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch @@ -0,0 +1,30 @@ +make rexec support ipv6 + +Upstream-status: Pending + +rexec equals rexec_af(... ,AF_INET) which only support ipv4, +use rexec_af(..., AF_UNSPEC) to support both ipv6 and ipv4. + +Signed-off-by: Roy.Li +--- + rexec/rexec.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/rexec/rexec.c b/rexec/rexec.c +index 0913c02..9c8f769 100644 +--- a/rexec/rexec.c ++++ b/rexec/rexec.c +@@ -214,8 +214,8 @@ int main(int argc, char *argv[]) + passwd = getpass("Password: "); + } + +- if ( (sock = rexec(&host, port_exec, user_name, passwd, command, +- p_to_aux_sock)) < 0 ) ++ if ( (sock = rexec_af(&host, port_exec, user_name, passwd, command, ++ p_to_aux_sock, AF_UNSPEC)) < 0 ) + { + fprintf(stderr,"%s: Error in rexec system call: ",argv[0]); + perror(NULL); +-- +1.7.4.1 + diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam new file mode 100644 index 00000000000..94e5dda50b5 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam @@ -0,0 +1,10 @@ +#%PAM-1.0 +# For root login to succeed here with pam_securetty, "rexec" must be +# listed in /etc/securetty. +auth required pam_nologin.so +auth required pam_env.so +auth include common-auth +account include common-account +session optional pam_keyinit.so force revoke +session include common-session +session required pam_loginuid.so diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit index 80aed36ffbd..7354360ae7c 100644 --- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit @@ -14,7 +14,7 @@ service exec group = root log_on_success += USERID log_on_failure += USERID - server = /usr/bin/tcpd + server = /usr/sbin/tcpd server_args = /usr/sbin/in.rexecd disable = yes } diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam new file mode 100644 index 00000000000..b30f139cb78 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam @@ -0,0 +1,12 @@ +#%PAM-1.0 +# For root login to succeed here with pam_securetty, "rlogin" must be +# listed in /etc/securetty. +auth required pam_nologin.so +auth required pam_securetty.so +auth required pam_env.so +auth include common-auth +account include common-account +password include common-password +session optional pam_keyinit.so force revoke +session include common-session +session required pam_loginuid.so diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit index 00dbf935bb7..70493e603bb 100644 --- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit @@ -14,7 +14,7 @@ service login group = root log_on_success += USERID log_on_failure += USERID - server = /usr/bin/tcpd + server = /usr/sbin/tcpd server_args = /usr/sbin/in.rlogind -a disable = yes } diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam new file mode 100644 index 00000000000..072327a76e6 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam @@ -0,0 +1,10 @@ +#%PAM-1.0 +# For root login to succeed here with pam_securetty, "rsh" must be +# listed in /etc/securetty. +auth required pam_nologin.so +auth required pam_securetty.so +auth required pam_env.so +account include common-account +session optional pam_keyinit.so force revoke +session include common-session +session required pam_loginuid.so diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit index ad59b62076a..a842eb974fe 100644 --- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit @@ -15,7 +15,7 @@ service shell group = root log_on_success += USERID log_on_failure += USERID - server = /usr/bin/tcpd + server = /usr/sbin/tcpd server_args = /usr/sbin/in.rshd -aL disable = yes } diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb index 8b42fa7cb6d..3990f7b5276 100644 --- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb @@ -1,10 +1,10 @@ DESCRIPTION = "netkit-rsh includes the rsh daemon and client." -SECTION = "networking" +SECTION = "net" HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" LICENSE = "BSD-4-Clause" DEPENDS = "xinetd libgcrypt" -LIC_FILES_CHKSUM = "file://rsh/rsh.c;beginline=2;endline=3;md5=25737e9d21d9df251dd26b7dcbd8ee29" +LIC_FILES_CHKSUM = "file://rsh/rsh.c;endline=32;md5=487b3c637bdc181d32b2a8543d41b606" SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}.orig.tar.gz;name=archive \ ${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}-15.diff.gz;name=patch15 \ @@ -13,6 +13,9 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}.orig.tar.gz;name= file://rexec.xinetd.netkit \ file://rlogin.xinetd.netkit \ file://rsh.xinetd.netkit \ + file://netkit-rsh-0.17-rexec-ipv6.patch \ + file://fix-host-variable.patch \ + file://fixup_wait3_api_change.patch \ " SRC_URI[archive.md5sum] = "65f5f28e2fe22d9ad8b17bb9a10df096" @@ -20,20 +23,27 @@ SRC_URI[archive.sha256sum] = "edcac7fa18015f0bc04e573f3f54ae3b638d71335df1ad7dae SRC_URI[patch15.md5sum] = "655efc0d541b03ca5de0ae506c805ea3" SRC_URI[patch15.sha256sum] = "2bc071c438e8b0ed42a0bd2db2d8b681b27a1e9b1798694d9874733293bc2aa9" +# Other support files +PAM_SRC_URI = "file://rexec.pam \ + file://rlogin.pam \ + file://rsh.pam \ +" +SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" + inherit pkgconfig CFLAGS += " -D_GNU_SOURCE -Wno-deprecated-declarations" LDFLAGS += " -L${STAGING_LIBDIR} -lutil -lcrypt" PACKAGECONFIG ??= "" -PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam", "", d)}" +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" PACKAGECONFIG[pam] = " , --without-pam, libpam, libpam" do_configure () { - ./configure --prefix=${prefix} + ./configure --prefix=${prefix} --exec-prefix=${exec_prefix} echo "INSTALLROOT=${D}" > MCONFIG - if [ "${@base_contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then + if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then echo "USE_PAM=1" >> MCONFIG fi @@ -55,12 +65,12 @@ do_install () { 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ 'MANDIR=${mandir}' install - if [ "${@base_contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then + if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then install -d ${D}${sysconfdir}/pam.d install -m 0644 debian/hosts.equiv ${D}/${sysconfdir} - install -m 0644 debian/pam.d/rexec ${D}/${sysconfdir}/pam.d - install -m 0644 debian/pam.d/rlogin ${D}/${sysconfdir}/pam.d - install -m 0644 debian/pam.d/rsh ${D}/${sysconfdir}/pam.d + install -m 0644 ${WORKDIR}/rexec.pam ${D}/${sysconfdir}/pam.d/rexec + install -m 0644 ${WORKDIR}/rlogin.pam ${D}/${sysconfdir}/pam.d/rlogin + install -m 0644 ${WORKDIR}/rsh.pam ${D}/${sysconfdir}/pam.d/rsh fi cp ${WORKDIR}/rexec.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rexec cp ${WORKDIR}/rlogin.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rlogin @@ -85,7 +95,8 @@ ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd" ALTERNATIVE_LINK_NAME[rlogind] = "${bindir}/rlogind" ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind" -RCONFLICTS_${PN}-client += "inetutils-rshd" -RPROVIDES_${PN}-rshd = "rshd" +RCONFLICTS_${PN}-server += "inetutils-rshd" +RPROVIDES_${PN}-server = "rshd" -RDEPENDS_${PN} = "xinetd" +RDEPENDS_${PN}-server = "xinetd" +RDEPENDS_${PN}-server += "tcp-wrappers" diff --git a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb index c930842eee6..459e39e593f 100644 --- a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb +++ b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb @@ -1,13 +1,13 @@ DESCRIPTION = "netkit-rusers includes rusers - Displays who is logged in to machines on local network \ rusersd - Logged in users server" HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" -SECTION = "networking" +SECTION = "net" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://rusers/rusers.c;beginline=2;endline=3;md5=f4fc634a4ce8c569911196b72b10770e" DEPENDS = " tcp-wrappers libtirpc rpcbind" -SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \ - ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-8.diff.gz;name=patch8 \ +SRC_URI = "http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \ + http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}-8.diff.gz;name=patch8 \ file://rpc.rusersd-Makefile-fix-parallel-build-issue.patch \ " diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch new file mode 100644 index 00000000000..b1325b3173d --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch @@ -0,0 +1,46 @@ +From 55ab6f1389261edff5f4c942bc3b0d8e695856d7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 30 Aug 2017 18:11:33 -0700 +Subject: [PATCH 1/2] Add missing include path to -I options + +Fixes errors like +| rwho.c:52:10: fatal error: 'protocols/rwhod.h' file not found +| #include +| ^~~~~~~~~~~~~~~~~~~ + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + rwho/Makefile | 1 + + rwhod/Makefile | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/rwho/Makefile b/rwho/Makefile +index 6f86388..67b28d4 100644 +--- a/rwho/Makefile ++++ b/rwho/Makefile +@@ -6,6 +6,7 @@ include ../MRULES + rwho: rwho.o + $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ + ++CFLAGS += -I../include + rwho.o: ../version.h + + install: rwho +diff --git a/rwhod/Makefile b/rwhod/Makefile +index 772b641..9034218 100644 +--- a/rwhod/Makefile ++++ b/rwhod/Makefile +@@ -7,6 +7,8 @@ ifneq ($(USE_GLIBC),1) + CFLAGS += -D_GNU_SOURCE + endif + ++CFLAGS += -I../include ++ + OBJS = rwhod.o + + rwhod: $(OBJS) +-- +2.14.1 + diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch new file mode 100644 index 00000000000..717b4d73f41 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch @@ -0,0 +1,71 @@ +From 2108213242638fa355f662382f55495d91301858 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 30 Aug 2017 18:13:17 -0700 +Subject: [PATCH 2/2] Fix build issues found with musl + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + ruptime/ruptime.c | 1 + + rwho/rwho.c | 1 + + rwhod/rwhod.c | 5 +++-- + 3 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/ruptime/ruptime.c b/ruptime/ruptime.c +index 1d4f7b6..f1f043c 100644 +--- a/ruptime/ruptime.c ++++ b/ruptime/ruptime.c +@@ -53,6 +53,7 @@ char ruptime_rcsid[] = + #include + #include + #include ++#include + + struct hs { + char hs_hostname[MAXHOSTNAMELEN]; +diff --git a/rwho/rwho.c b/rwho/rwho.c +index 63919ac..71aec9e 100644 +--- a/rwho/rwho.c ++++ b/rwho/rwho.c +@@ -49,6 +49,7 @@ char rcsid[] = "$Id: rwho.c,v 1.7 1999/08/01 20:44:18 dholland Exp $"; + #include + #include + #include ++#include + #include + + #include "../version.h" +diff --git a/rwhod/rwhod.c b/rwhod/rwhod.c +index 54498d0..40cabcf 100644 +--- a/rwhod/rwhod.c ++++ b/rwhod/rwhod.c +@@ -76,6 +76,7 @@ char rcsid[] = + #include + #include + #include ++#include + + #include "../version.h" + +@@ -102,7 +103,7 @@ struct nlist nl[] = { + static void broadcaster(void); + static int configure(int s); + static int verify(const char *name); +-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2) ++#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)) + static int getloadavg(double ptr[3], int n); + #endif + +@@ -549,7 +550,7 @@ sendpacket(struct whod *wd) + } + } + +-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2) ++#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)) + /* + * Taken from: + * +-- +2.14.1 + diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb index 4433dc1613a..5685f03d62f 100644 --- a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb +++ b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb @@ -1,6 +1,6 @@ DESCRIPTION = "netkit-rwho includes, ruptime rwho and rwhod (Daemon to maintain data for rwho/ruptime)" HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" -SECTION = "networking" +SECTION = "net" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://rwho/rwho.c;beginline=2;endline=3;md5=5a85f13c0142d72fc378e00f15da5b9e" @@ -8,7 +8,9 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}.orig.tar.gz;nam ${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}-13.debian.tar.gz;name=patch13 \ file://rwhod \ file://rwhod.default \ -" + file://0001-Add-missing-include-path-to-I-options.patch \ + file://0002-Fix-build-issues-found-with-musl.patch \ + " SRC_URI[archive.md5sum] = "0f71620d45d472f89134ba0d74242e75" SRC_URI[archive.sha256sum] = "0409e2ce4bfdb2dacb2c193d0fedfc49bb975cb057c5c6b0ffcca603a1188da7" SRC_URI[patch13.md5sum] = "82ed5a3c6b0bbf00b36508b9787963b9" diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch b/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch new file mode 100644 index 00000000000..f2f1b12e289 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch @@ -0,0 +1,66 @@ +From 7a3095d1e9b7c73f9dca56250f433bcfc7cb660e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 10:15:34 -0700 +Subject: [PATCH] telnet/telnetd: Fix print format strings + +Fixes build with hardening flags + +Signed-off-by: Khem Raj +--- + telnet/utilities.cc | 6 +++--- + telnetd/utility.c | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/telnet/utilities.cc b/telnet/utilities.cc +index 66839ab..36f0731 100644 +--- a/telnet/utilities.cc ++++ b/telnet/utilities.cc +@@ -583,17 +583,17 @@ void printsub(int direction, unsigned char *pointer, int length) { + case ENV_VAR: + if (pointer[1] == TELQUAL_SEND) + goto def_case; +- fprintf(NetTrace, "\" VAR " + noquote); ++ fprintf(NetTrace, "%s", "\" VAR " + noquote); + noquote = 2; + break; + + case ENV_VALUE: +- fprintf(NetTrace, "\" VALUE " + noquote); ++ fprintf(NetTrace, "%s", "\" VALUE " + noquote); + noquote = 2; + break; + + case ENV_ESC: +- fprintf(NetTrace, "\" ESC " + noquote); ++ fprintf(NetTrace, "%s", "\" ESC " + noquote); + noquote = 2; + break; + +diff --git a/telnetd/utility.c b/telnetd/utility.c +index 29b7da1..75314cb 100644 +--- a/telnetd/utility.c ++++ b/telnetd/utility.c +@@ -909,17 +909,17 @@ printsub(char direction, unsigned char *pointer, int length) + case ENV_VAR: + if (pointer[1] == TELQUAL_SEND) + goto def_case; +- netoprintf("\" VAR " + noquote); ++ netoprintf("%s", "\" VAR " + noquote); + noquote = 2; + break; + + case ENV_VALUE: +- netoprintf("\" VALUE " + noquote); ++ netoprintf("%s", "\" VALUE " + noquote); + noquote = 2; + break; + + case ENV_ESC: +- netoprintf("\" ESC " + noquote); ++ netoprintf("%s", "\" ESC " + noquote); + noquote = 2; + break; + +-- +2.13.2 + diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch b/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch new file mode 100644 index 00000000000..b3fe36b7bbf --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch @@ -0,0 +1,48 @@ +To support the cross-compile + +Upstream-Status: Pending + +make the configure to support the cross-compile, by only to compile the +target, and not to run it + +Roy Li +Index: netkit-telnet-0.17/configure +=================================================================== +--- netkit-telnet-0.17.orig/configure 2008-11-23 22:01:26.000000000 +0100 ++++ netkit-telnet-0.17/configure 2008-11-23 22:05:00.000000000 +0100 +@@ -94,7 +94,7 @@ + echo -n 'Checking if C compiler works... ' + if ( + $CC __conftest.c -o __conftest || exit 1 +- ./__conftest || exit 1 ++ # Idiots belong shot! ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'yes' + else +@@ -141,7 +141,7 @@ + echo -n 'Checking if C++ compiler works... ' + if ( + $CXX __conftest.cc -o __conftest || exit 1 +- ./__conftest || exit 1 ++ # Iditios belong shot! ./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'yes' + else +@@ -284,7 +284,7 @@ + else + if ( + $CXX $CXXFLAGS -D__USE_BSD_SIGNAL __conftest.cc -o __conftest || exit 1 +- ./__conftest || exit 1 ++ # running still does not work./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo '-D__USE_BSD_SIGNAL' + CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL" +@@ -501,7 +501,7 @@ + EOF + if ( + $CXX $CXXFLAGS __conftest.cc $LIBBSD -o __conftest || exit 1 +- ./__conftest || exit 1 ++ # argh! morons!./__conftest || exit 1 + ) >/dev/null 2>&1; then + echo 'ok' + else diff --git a/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb index a2dc1c270b5..807b5664492 100644 --- a/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb +++ b/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb @@ -1,26 +1,33 @@ DESCRIPTION = "netkit-telnet includes the telnet daemon and client." -SECTION = "base" +HOMEPAGE = "http://www.hcs.harvard.edu/~dholland/computers/netkit.html" +SECTION = "net" DEPENDS = "ncurses" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef" SRC_URI = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${BP}.tar.gz \ - file://To-aviod-buffer-overflow-in-telnet.patch \ - file://Warning-fix-in-the-step-of-install.patch \ - file://telnet-xinetd \ -" + file://To-aviod-buffer-overflow-in-telnet.patch \ + file://Warning-fix-in-the-step-of-install.patch \ + file://telnet-xinetd \ + file://cross-compile.patch \ + file://0001-telnet-telnetd-Fix-print-format-strings.patch \ + " EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \ MANMODE=644 MANDIR=${mandir}" do_configure () { ./configure --prefix=${prefix} - echo "LDFLAGS=${LDFLAGS}" > MCONFIG + sed -e 's#^CFLAGS=\(.*\)$#CFLAGS= -D_GNU_SOURCE \1#' \ + -e 's#^CXXFLAGS=\(.*\)$#CXXFLAGS= -D_GNU_SOURCE \1#' \ + -e 's#^LDFLAGS=.*$#LDFLAGS= ${LDFLAGS}#' \ + -i MCONFIG } do_compile () { oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnet oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' LIBS=-lutil SUB=telnetd + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnetlogin } do_install () { @@ -32,6 +39,7 @@ do_install () { install -d ${D}${mandir}/man8 oe_runmake SUB=telnetd install rm -rf ${D}${mandir}/man1 + install -D -m 4750 ${B}/telnetlogin/telnetlogin ${D}/${libdir}/telnetlogin # fix up hardcoded paths sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/telnet-xinetd install -d ${D}/etc/xinetd.d/ @@ -50,3 +58,4 @@ pkg_prerm_${PN} () { SRC_URI[md5sum] = "d6beabaaf53fe6e382c42ce3faa05a36" SRC_URI[sha256sum] = "9c80d5c7838361a328fb6b60016d503def9ce53ad3c589f3b08ff71a2bb88e00" +FILES_${PN} += "${sbindir}/in.* ${libdir}/* ${sysconfdir}/xinetd.d/*" diff --git a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch new file mode 100644 index 00000000000..78936907f6e --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch @@ -0,0 +1,27 @@ +From fa57e161fc953264a75d50a787cb83983e60acc7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 30 Aug 2017 18:30:02 -0700 +Subject: [PATCH] tftp: Include missing fcntl.h + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + tftp/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tftp/main.c b/tftp/main.c +index 8c54843..5c9b698 100644 +--- a/tftp/main.c ++++ b/tftp/main.c +@@ -63,6 +63,7 @@ char main_rcsid[] = + #include + #include + #include ++#include + + #include "tftpsubs.h" /* for mysignal() */ + +-- +2.14.1 + diff --git a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb index bd54c0a8170..92c13e850c2 100644 --- a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb +++ b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb @@ -1,14 +1,15 @@ SUMMARY = "tftp - Trivial file transfer protocol client" -SECTION = "networking" +SECTION = "net" LICENSE = "BSD-4-Clause" DEPENDS = "tcp-wrappers" LIC_FILES_CHKSUM = "file://tftp/tftp.c;beginline=2;endline=3;md5=84d2cfe1e60863a7d82648734ba4d30c" SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \ - ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-18.diff.gz;name=patch18 \ - file://tftp.conf \ -" + ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-18.diff.gz;name=patch18 \ + file://tftp.conf \ + file://0001-tftp-Include-missing-fcntl.h.patch \ + " SRC_URI[archive.md5sum] = "b7262c798e2ff50e29c2ff50dfd8d6a8" SRC_URI[archive.sha256sum] = "3a43c0010d4e61f412563fd83769d4667d8b8e82903526d21cb9205fe55ad14d" diff --git a/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb b/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb deleted file mode 100644 index 526818c05ea..00000000000 --- a/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "ACCEL-PPP is a high performance VPN server application for linux" -HOMEPAGE = "http://sourceforge.net/apps/trac/accel-ppp/wiki" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" - -DEPENDS = "openssl libpcre" - -inherit cmake - -PR = "r1" -PV = "1.7.3+git" - -SRCREV = "4acfa46c321a344b9a6ce4128e72d1e02828d8a0" -SRC_URI = "git://accel-ppp.git.sourceforge.net/gitroot/accel-ppp/accel-ppp;branch=1.7" - -S = "${WORKDIR}/git" - -EXTRA_OECMAKE = " \ - -DBUILD_DRIVER=FALSE \ - -DCMAKE_INSTALL_PREFIX=${prefix} \ - -DCMAKE_BUILD_TYPE=Release \ - -DLOG_PGSQL=FALSE \ - -DRADIUS=FALSE \ - -DNETSNMP=FALSE \ -" -FILES_${PN}-dbg += "/usr/lib/${BPN}/.debug/*" - -PACKAGES =+ "${PN}-libs" -FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so" -INSANE_SKIP_${PN}-libs = "dev-so" -RDEPENDS_${PN} += "${PN}-libs" - -do_install_prepend() { - cmlist=`find ${S} -name CMakeLists.txt` - for file in $cmlist; do - sed -i -e "s:LIBRARY DESTINATION lib/accel-ppp:LIBRARY DESTINATION ${baselib}/accel-ppp:g" \ - -e "s:\${CMAKE_INSTALL_PREFIX}/lib/accel-ppp:\${CMAKE_INSTALL_PREFIX}/${baselib}/accel-ppp:g" \ - $cmlist - done -} diff --git a/meta-networking/recipes-protocols/dante/dante_1.4.1.bb b/meta-networking/recipes-protocols/dante/dante_1.4.1.bb new file mode 100644 index 00000000000..ffdab22cf08 --- /dev/null +++ b/meta-networking/recipes-protocols/dante/dante_1.4.1.bb @@ -0,0 +1,49 @@ +SECTION = "console/utils" +SUMMARY = "A free SOCKS server" +DESCRIPTION = "Dante consists of a SOCKS server and a SOCKS client,\ +implementing RFC 1928 and related standards. It is a flexible product\ +that can be used to provide convenient and secure network\ +connectivity. Once installed, Dante can in most cases be made\ +transparent to clients, providing functionality somewhat similar to\ +what could be described as a non-transparent Layer 4 router." +HOMEPAGE = "http://www.inet.no/dante/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=221118dda731fe93a85d0ed973467249" + +SRC_URI = "https://www.inet.no/dante/files/dante-${PV}.tar.gz \ + " +SRC_URI[md5sum] = "68c2ce12119e12cea11a90c7a80efa8f" +SRC_URI[sha256sum] = "b6d232bd6fefc87d14bf97e447e4fcdeef4b28b16b048d804b50b48f261c4f53" + +# without --without-gssapi, config.log will contain reference to /usr/lib +# as a consequence of GSSAPI path being set to /usr by default. +# --with-gssapi-path=PATH specify gssapi path +# --without-gssapi disable gssapi support +# --enable-release build prerelease as full release +EXTRA_OECONF += "--without-gssapi --sbindir=${bindir}" + +DEPENDS += "flex-native bison-native libpam" + +inherit autotools-brokensep distro_features_check + +REQUIRED_DISTRO_FEATURES = "pam" + +EXTRA_AUTORECONF = "-I ${S}" + +PACKAGECONFIG[libwrap] = ",--disable-libwrap,tcp-wrappers,libwrap" +PACKAGECONFIG[krb5] = ",--without-krb5,krb5" + +PACKAGECONFIG ??= "" + +do_install_append() { + install -d ${D}${sysconfdir} + cp ${S}/example/sock[sd].conf ${D}${sysconfdir} +} + +PACKAGES =+ "${PN}-sockd ${PN}-libdsocks " + +FILES_${PN}-libdsocks = "${libdir}/libdsocks.so" +FILES_${PN}-sockd = "${bindir}/sockd ${sysconfdir}/sockd.conf" + +INSANE_SKIP_${PN}-libdsocks = "dev-elf" diff --git a/meta-networking/recipes-protocols/mdns/files/build.patch b/meta-networking/recipes-protocols/mdns/files/build.patch new file mode 100644 index 00000000000..4ab9d23bf75 --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/build.patch @@ -0,0 +1,167 @@ +From 43b6e98c9c37afd0d914949dcff4eab81f5a995f Mon Sep 17 00:00:00 2001 +From: Brendan Le Foll +Date: Tue, 3 Mar 2015 11:42:57 +0000 + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Paul Eggleton + +--- + mDNSPosix/Makefile | 54 +++++++++++++++++++++++++----------------------------- + 1 file changed, 25 insertions(+), 29 deletions(-) + +diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile +index 4f98e90..8ac97ad 100755 +--- a/mDNSPosix/Makefile ++++ b/mDNSPosix/Makefile +@@ -50,6 +50,7 @@ + + LIBVERS = 1 + ++POSIXDIR = ../mDNSPosix + COREDIR = ../mDNSCore + SHAREDDIR ?= ../mDNSShared + JDK = /usr/jdk +@@ -58,11 +59,11 @@ CC = @cc + BISON = @bison + FLEX = @flex + ST = @strip +-LD = ld -shared ++LD =@LD + CP = cp + RM = rm + LN = ln -s -f +-CFLAGS_COMMON = -I$(COREDIR) -I$(SHAREDDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" ++CFLAGS_COMMON = -I$(POSIXDIR) -I$(COREDIR) -I$(SHAREDDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" + CFLAGS_PTHREAD = + LINKOPTS = + LINKOPTS_PTHREAD = -lpthread +@@ -70,7 +71,7 @@ LDSUFFIX = so + JAVACFLAGS_OS = -fPIC -shared -ldns_sd + + # Set up diverging paths for debug vs. prod builds +-DEBUG=0 ++DEBUG?=1 + ifeq ($(DEBUG),1) + CFLAGS_DEBUG = -g -DMDNS_DEBUGMSGS=2 + OBJDIR = objects/debug +@@ -213,7 +214,7 @@ endif + endif + endif + +-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_OS) $(CFLAGS_DEBUG) ++CFLAGS_BUILD = $(CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_OS) $(CFLAGS_DEBUG) + + ############################################################################# + +@@ -249,8 +250,7 @@ Daemon: setup $(BUILDDIR)/mdnsd + @echo "Responder daemon done" + + $(BUILDDIR)/mdnsd: $(DAEMONOBJS) +- $(CC) -o $@ $+ $(LINKOPTS) +- @$(STRIP) $@ ++ $(CC) -o $@ $+ + + # libdns_sd target builds the client library + libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX) +@@ -259,22 +259,18 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX) + CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o + + $(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS) +- @$(LD) $(LINKOPTS) -o $@ $+ +- @$(STRIP) $@ ++ $(LD) -shared $(LINKOPTS) -Wl,-soname,libdns_sd.$(LDSUFFIX).1 -o $@ $+ + +-Clients: setup libdns_sd ../Clients/build/dns-sd ++Clients: setup libdns_sd ++ @$(MAKE) -C ../Clients DEBUG=${DEBUG} + @echo "Clients done" + +-../Clients/build/dns-sd: +- @$(MAKE) -C ../Clients +- + # nss_mdns target builds the Name Service Switch module + nss_mdns: setup $(BUILDDIR)/$(NSSLIBFILE) + @echo "Name Service Switch module done" + + $(BUILDDIR)/$(NSSLIBFILE): $(CLIENTLIBOBJS) $(OBJDIR)/nss_mdns.c.so.o +- @$(LD) $(LINKOPTS) -o $@ $+ +- @$(STRIP) $@ ++ $(LD) -shared $(LINKOPTS) -o $@ $+ + + ############################################################################# + +@@ -470,55 +466,55 @@ dnsextd: setup $(BUILDDIR)/dnsextd + @echo "dnsextd done" + + $(BUILDDIR)/mDNSClientPosix: $(APPOBJ) $(OBJDIR)/Client.c.o +- $(CC) $+ -o $@ $(LINKOPTS) ++ $(CC) $+ -o $@ + + $(BUILDDIR)/mDNSResponderPosix: $(COMMONOBJ) $(OBJDIR)/Responder.c.o +- $(CC) $+ -o $@ $(LINKOPTS) ++ $(CC) $+ -o $@ + + $(BUILDDIR)/mDNSProxyResponderPosix: $(COMMONOBJ) $(OBJDIR)/ProxyResponder.c.o +- $(CC) $+ -o $@ $(LINKOPTS) ++ $(CC) $+ -o $@ + + $(BUILDDIR)/mDNSIdentify: $(SPECIALOBJ) $(OBJDIR)/Identify.c.o +- $(CC) $+ -o $@ $(LINKOPTS) ++ $(CC) $+ -o $@ + + $(OBJDIR)/Identify.c.o: $(COREDIR)/mDNS.c # Note: Identify.c textually imports mDNS.c + + $(BUILDDIR)/mDNSNetMonitor: $(SPECIALOBJ) $(OBJDIR)/NetMonitor.c.o +- $(CC) $+ -o $@ $(LINKOPTS) ++ $(CC) $+ -o $@ + + $(OBJDIR)/NetMonitor.c.o: $(COREDIR)/mDNS.c # Note: NetMonitor.c textually imports mDNS.c + + $(BUILDDIR)/dnsextd: $(DNSEXTDOBJ) $(OBJDIR)/dnsextd.c.threadsafe.o +- $(CC) $+ -o $@ $(LINKOPTS) $(LINKOPTS_PTHREAD) ++ $(CC) $+ -o $@ $(LINKOPTS_PTHREAD) + + ############################################################################# + + # Implicit rules + $(OBJDIR)/%.c.o: %.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(CFLAGS_BUILD) -c -o $@ $< + + $(OBJDIR)/%.c.o: $(COREDIR)/%.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(CFLAGS_BUILD) -c -o $@ $< + + $(OBJDIR)/%.c.o: $(SHAREDDIR)/%.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(CFLAGS_BUILD) -c -o $@ $< + + $(OBJDIR)/%.c.threadsafe.o: %.c +- $(CC) $(CFLAGS) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $< ++ $(CC) $(CFLAGS_BUILD) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $< + + $(OBJDIR)/%.c.threadsafe.o: $(SHAREDDIR)/%.c +- $(CC) $(CFLAGS) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $< ++ $(CC) $(CFLAGS_BUILD) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $< + + $(OBJDIR)/%.c.so.o: %.c +- $(CC) $(CFLAGS) -c -fPIC -o $@ $< ++ $(CC) $(CFLAGS_BUILD) -c -fPIC -o $@ $< + + $(OBJDIR)/%.c.so.o: $(SHAREDDIR)/%.c +- $(CC) $(CFLAGS) -c -fPIC -o $@ $< ++ $(CC) $(CFLAGS_BUILD) -c -fPIC -o $@ $< + + $(OBJDIR)/%.y.o: $(SHAREDDIR)/%.y + $(BISON) -o $(OBJDIR)/$*.c -d $< +- $(CC) $(CFLAGS) -c -o $@ $(OBJDIR)/$*.c ++ $(CC) $(CFLAGS_BUILD) -c -o $@ $(OBJDIR)/$*.c + + $(OBJDIR)/%.l.o: $(SHAREDDIR)/%.l + $(FLEX) $(FLEXFLAGS_OS) -i -o$(OBJDIR)/$*.l.c $< +- $(CC) $(CFLAGS) -Wno-error -c -o $@ $(OBJDIR)/$*.l.c ++ $(CC) $(CFLAGS_BUILD) -Wno-error -c -o $@ $(OBJDIR)/$*.l.c +-- +2.9.5 + diff --git a/meta-networking/recipes-protocols/mdns/files/mdns.service b/meta-networking/recipes-protocols/mdns/files/mdns.service new file mode 100644 index 00000000000..531d142dcde --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/files/mdns.service @@ -0,0 +1,15 @@ +[Unit] +Description=Zero-configuration networking +After=network.target + +[Service] +Type=forking +ExecStartPre=/bin/rm -f /var/run/mdnsd.pid +ExecStart=/usr/sbin/mdnsd +ExecReload=/bin/kill -HUP $MAINPID +PIDFile=/var/run/mdnsd.pid +Restart=always +RestartSec=10s + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb b/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb new file mode 100644 index 00000000000..1a80f7acb64 --- /dev/null +++ b/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb @@ -0,0 +1,89 @@ +SUMMARY = "Publishes & browses available services on a link according to the Zeroconf / Bonjour protocol" +DESCRIPTION = "Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks." +HOMEPAGE = "http://developer.apple.com/networking/bonjour/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf" + +RPROVIDES_${PN} += "libdns_sd.so" + +SRC_URI = "http://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \ + file://build.patch;patchdir=.. \ + file://mdns.service \ + " + +SRC_URI[md5sum] = "4a6bc1628851002634ea3833a4dca317" +SRC_URI[sha256sum] = "de61dd0034357aa50c60806726fb1f70fa8e953ff9cb62eccfb73efad10dba0a" + +PARALLEL_MAKE = "" + +S = "${WORKDIR}/mDNSResponder-${PV}/mDNSPosix" + +EXTRA_OEMAKE += "os=linux DEBUG=0 'CC=${CC}' 'LD=${CCLD} ${LDFLAGS}'" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install () { + install -d ${D}${sbindir} + install -m 0755 build/prod/mdnsd ${D}${sbindir} + + install -d ${D}${libdir} + cp build/prod/libdns_sd.so ${D}${libdir}/libdns_sd.so.1 + chmod 0644 ${D}${libdir}/libdns_sd.so.1 + ln -s libdns_sd.so.1 ${D}${libdir}/libdns_sd.so + + install -d ${D}${includedir} + install -m 0644 ../mDNSShared/dns_sd.h ${D}${includedir} + + install -d ${D}${mandir}/man8 + install -m 0644 ../mDNSShared/mDNSResponder.8 ${D}${mandir}/man8/mdnsd.8 + + install -d ${D}${bindir} + install -m 0755 ../Clients/build/dns-sd ${D}${bindir} + + install -d ${D}${libdir} + oe_libinstall -C build/prod -so libnss_mdns-0.2 ${D}${libdir} + ln -s libnss_mdns-0.2.so ${D}${libdir}/libnss_mdns.so.2 + + install -d ${D}${sysconfdir} + install -m 0644 nss_mdns.conf ${D}${sysconfdir} + + install -d ${D}${mandir}/man5 + install -m 0644 nss_mdns.conf.5 ${D}${mandir}/man5 + + install -d ${D}${mandir}/man8 + install -m 0644 libnss_mdns.8 ${D}${mandir}/man8 + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/mdns.service ${D}${systemd_unitdir}/system/ +} + +pkg_postinst_${PN} () { + sed -e '/^hosts:/s/\s*\//' \ + -e 's/\(^hosts:.*\)\(\\)\(.*\)\(\\)\(.*\)/\1\2 mdns\3\4\5/' \ + -i $D/etc/nsswitch.conf +} + +pkg_prerm_${PN} () { + sed -e '/^hosts:/s/\s*\//' \ + -e '/^hosts:/s/\s*mdns//' \ + -i $D/etc/nsswitch.conf +} + +inherit systemd + +SYSTEMD_SERVICE_${PN} = "mdns.service" + +FILES_${PN} += "${systemd_unitdir}/system/mdns.service" +FILES_${PN} += "${libdir}/libdns_sd.so.1 \ + ${bindir}/dns-sd \ + ${libdir}/libnss_mdns-0.2.so \ + ${sysconfdir}/nss_mdns.conf" + +FILES_${PN}-dev += "${libdir}/libdns_sd.so \ + ${includedir}/dns_sd.h " + +FILES_${PN}-man += "${mandir}/man8/mdnsd.8 \ + ${mandir}/man5/nss_mdns.conf.5 \ + ${mandir}/man8/libnss_mdns.8" + +PACKAGES = "${PN} ${PN}-dev ${PN}-man ${PN}-dbg" diff --git a/meta-networking/recipes-protocols/net-snmp/files/ifmib.patch b/meta-networking/recipes-protocols/net-snmp/files/ifmib.patch deleted file mode 100644 index 859c52c3e38..00000000000 --- a/meta-networking/recipes-protocols/net-snmp/files/ifmib.patch +++ /dev/null @@ -1,66 +0,0 @@ -Signed-off-by: Jack Mitchell -Upstream-Status: Pending -Bug-Report: http://sourceforge.net/p/net-snmp/bugs/2449/ - -diff --git a/agent/mibgroup/if-mib/data_access/interface_linux.c b/agent/mibgroup/if-mib/data_access/interface_linux.c -index 3419811..d6eb91a 100644 ---- a/agent/mibgroup/if-mib/data_access/interface_linux.c -+++ b/agent/mibgroup/if-mib/data_access/interface_linux.c -@@ -18,7 +18,31 @@ netsnmp_feature_require(interface_ioctl_flags_set) - - #ifdef HAVE_PCI_LOOKUP_NAME - #include -+#include - static struct pci_access *pci_access; -+ -+/* Avoid letting libpci call exit(1) when no PCI bus is available. */ -+static int do_longjmp =0; -+static jmp_buf err_buf; -+static void -+netsnmp_pci_error(char *msg, ...) -+{ -+ va_list args; -+ char *buf; -+ int buflen; -+ -+ va_start(args, msg); -+ buflen = strlen("pcilib: ")+strlen(msg)+2; -+ buf = malloc(buflen); -+ snprintf(buf, buflen, "pcilib: %s\n", msg); -+ snmp_vlog(LOG_ERR, buf, args); -+ free(buf); -+ va_end(args); -+ if (do_longjmp) -+ longjmp(err_buf, 1); -+ else -+ exit(1); -+} - #endif - - #ifdef HAVE_LINUX_ETHTOOL_H -@@ -147,10 +171,22 @@ netsnmp_arch_interface_init(void) - - #ifdef HAVE_PCI_LOOKUP_NAME - pci_access = pci_alloc(); -- if (pci_access) -+ if (!pci_access) { -+ snmp_log(LOG_ERR, "pcilib: pci_alloc failed\n"); -+ return; -+ } -+ -+ pci_access->error = netsnmp_pci_error; -+ -+ do_longjmp = 1; -+ if (setjmp(err_buf)) { -+ pci_cleanup(pci_access); -+ snmp_log(LOG_ERR, "pcilib: pci_init failed\n"); -+ pci_access = NULL; -+ } -+ else if (pci_access) - pci_init(pci_access); -- else -- snmp_log(LOG_ERR, "Unable to create pci access method\n"); -+ do_longjmp = 0; - #endif - } - diff --git a/meta-networking/recipes-protocols/net-snmp/files/init b/meta-networking/recipes-protocols/net-snmp/files/init index 2b8fe18b34a..47995466fbd 100755 --- a/meta-networking/recipes-protocols/net-snmp/files/init +++ b/meta-networking/recipes-protocols/net-snmp/files/init @@ -3,9 +3,6 @@ . /etc/init.d/functions -test -x /usr/sbin/snmpd || exit 0 -test -x /usr/sbin/snmptrapd || exit 0 - # Defaults export MIBDIRS=/usr/share/snmp/mibs SNMPDRUN=yes @@ -18,6 +15,9 @@ SPIDFILE=/var/run/snmptrapd.pid # Reads config file if exists (will override defaults above) [ -r /etc/default/snmpd ] && . /etc/default/snmpd +[ "$SNMPDRUN" = "yes" ] && { test -x /usr/sbin/snmpd || exit 0; } +[ "$TRAPDRUN" = "yes" ] && { test -x /usr/sbin/snmptrapd || exit 0; } + case "$1" in start) echo -n "Starting network management services:" diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Added-checks-for-printing-variables-with-wrong-types.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Added-checks-for-printing-variables-with-wrong-types.patch deleted file mode 100644 index 30374cfe962..00000000000 --- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Added-checks-for-printing-variables-with-wrong-types.patch +++ /dev/null @@ -1,455 +0,0 @@ -From 7f4a7b891332899cea26e95be0337aae01648742 Mon Sep 17 00:00:00 2001 -From: Jan Safranek -Date: Thu, 31 Jul 2014 13:46:49 +0200 -Subject: [PATCH] Added checks for printing variables with wrong types. - -Upstream-Status: Backport - -When -OQ command line argument is used, variable formatter preffers the type -of the varible parsed from a MIB file instead of checking type of the variable -as parsed from SNMP message. - -This can lead to crashes when incoming packets contains a variable with -NULL type, while the MIB says the variable should be non-NULL, like Integer. -The formatter then tries to interpret the NULL (from packet) as Integer (from -MIB file). - -Signed-off-by: Jan Safranek ---- - snmplib/mib.c | 270 ++++++++++++++++++++++++++++----------------------------- - 1 file changed, 135 insertions(+), 135 deletions(-) - -diff --git a/snmplib/mib.c b/snmplib/mib.c -index 9d3ca41..c6e0010 100644 ---- a/snmplib/mib.c -+++ b/snmplib/mib.c -@@ -439,17 +439,16 @@ sprint_realloc_octet_string(u_char ** buf, size_t * buf_len, - u_char *cp; - int output_format, cnt; - -- if ((var->type != ASN_OCTET_STR) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- const char str[] = "Wrong Type (should be OCTET STRING): "; -- if (snmp_cstrcat -- (buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_OCTET_STR) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ const char str[] = "Wrong Type (should be OCTET STRING): "; -+ if (!snmp_cstrcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - -@@ -702,16 +701,16 @@ sprint_realloc_float(u_char ** buf, size_t * buf_len, - const struct enum_list *enums, - const char *hint, const char *units) - { -- if ((var->type != ASN_OPAQUE_FLOAT) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- if (snmp_cstrcat(buf, buf_len, out_len, allow_realloc, -- "Wrong Type (should be Float): ")) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_OPAQUE_FLOAT) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be Float): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -772,17 +771,16 @@ sprint_realloc_double(u_char ** buf, size_t * buf_len, - const struct enum_list *enums, - const char *hint, const char *units) - { -- if ((var->type != ASN_OPAQUE_DOUBLE) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- if (snmp_cstrcat -- (buf, buf_len, out_len, allow_realloc, -- "Wrong Type (should be Double): ")) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_OPAQUE_DOUBLE) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be Double): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -847,20 +845,21 @@ sprint_realloc_counter64(u_char ** buf, size_t * buf_len, size_t * out_len, - { - char a64buf[I64CHARSZ + 1]; - -- if ((var->type != ASN_COUNTER64 -+ if (var->type != ASN_COUNTER64 - #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES - && var->type != ASN_OPAQUE_COUNTER64 - && var->type != ASN_OPAQUE_I64 && var->type != ASN_OPAQUE_U64 - #endif -- ) && (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- if (snmp_cstrcat(buf, buf_len, out_len, allow_realloc, -- "Wrong Type (should be Counter64): ")) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ ) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be Counter64): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -948,23 +947,25 @@ sprint_realloc_opaque(u_char ** buf, size_t * buf_len, - const struct enum_list *enums, - const char *hint, const char *units) - { -- if ((var->type != ASN_OPAQUE -+ if (var->type != ASN_OPAQUE - #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES - && var->type != ASN_OPAQUE_COUNTER64 - && var->type != ASN_OPAQUE_U64 - && var->type != ASN_OPAQUE_I64 - && var->type != ASN_OPAQUE_FLOAT && var->type != ASN_OPAQUE_DOUBLE - #endif /* NETSNMP_WITH_OPAQUE_SPECIAL_TYPES */ -- ) && (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- if (snmp_cstrcat(buf, buf_len, out_len, allow_realloc, -- "Wrong Type (should be Opaque): ")) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ ) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be Opaque): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } -+ - #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES - switch (var->type) { - case ASN_OPAQUE_COUNTER64: -@@ -1040,17 +1041,16 @@ sprint_realloc_object_identifier(u_char ** buf, size_t * buf_len, - { - int buf_overflow = 0; - -- if ((var->type != ASN_OBJECT_ID) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = -- "Wrong Type (should be OBJECT IDENTIFIER): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_OBJECT_ID) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be OBJECT IDENTIFIER): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -1110,16 +1110,16 @@ sprint_realloc_timeticks(u_char ** buf, size_t * buf_len, size_t * out_len, - { - char timebuf[40]; - -- if ((var->type != ASN_TIMETICKS) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be Timeticks): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_TIMETICKS) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be Timeticks): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS)) { -@@ -1277,17 +1277,18 @@ sprint_realloc_integer(u_char ** buf, size_t * buf_len, size_t * out_len, - { - char *enum_string = NULL; - -- if ((var->type != ASN_INTEGER) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be INTEGER): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_INTEGER) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be INTEGER): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } -+ - for (; enums; enums = enums->next) { - if (enums->value == *var->val.integer) { - enum_string = enums->label; -@@ -1380,16 +1381,16 @@ sprint_realloc_uinteger(u_char ** buf, size_t * buf_len, size_t * out_len, - { - char *enum_string = NULL; - -- if ((var->type != ASN_UINTEGER) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be UInteger32): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_UINTEGER) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be UInteger32): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - for (; enums; enums = enums->next) { -@@ -1477,17 +1478,16 @@ sprint_realloc_gauge(u_char ** buf, size_t * buf_len, size_t * out_len, - { - char tmp[32]; - -- if ((var->type != ASN_GAUGE) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = -- "Wrong Type (should be Gauge32 or Unsigned32): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_GAUGE) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be Gauge32 or Unsigned32): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -1550,16 +1550,16 @@ sprint_realloc_counter(u_char ** buf, size_t * buf_len, size_t * out_len, - { - char tmp[32]; - -- if ((var->type != ASN_COUNTER) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be Counter32): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_COUNTER) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be Counter32): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -1613,16 +1613,16 @@ sprint_realloc_networkaddress(u_char ** buf, size_t * buf_len, - { - size_t i; - -- if ((var->type != ASN_IPADDRESS) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be NetworkAddress): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_IPADDRESS) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be NetworkAddress): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -1679,16 +1679,16 @@ sprint_realloc_ipaddress(u_char ** buf, size_t * buf_len, size_t * out_len, - { - u_char *ip = var->val.string; - -- if ((var->type != ASN_IPADDRESS) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be IpAddress): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_IPADDRESS) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be IpAddress): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -1737,20 +1737,20 @@ sprint_realloc_null(u_char ** buf, size_t * buf_len, size_t * out_len, - const struct enum_list *enums, - const char *hint, const char *units) - { -- if ((var->type != ASN_NULL) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be NULL): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_NULL) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be NULL): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } -- } else { -- u_char str[] = "NULL"; -- return snmp_strcat(buf, buf_len, out_len, allow_realloc, str); - } -+ -+ u_char str[] = "NULL"; -+ return snmp_strcat(buf, buf_len, out_len, allow_realloc, str); - } - - -@@ -1785,16 +1785,16 @@ sprint_realloc_bitstring(u_char ** buf, size_t * buf_len, size_t * out_len, - u_char *cp; - char *enum_string; - -- if ((var->type != ASN_BIT_STR && var->type != ASN_OCTET_STR) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be BITS): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_BIT_STR && var->type != ASN_OCTET_STR) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be BITS): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { -@@ -1869,16 +1869,16 @@ sprint_realloc_nsapaddress(u_char ** buf, size_t * buf_len, - const struct enum_list *enums, const char *hint, - const char *units) - { -- if ((var->type != ASN_NSAP) && -- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { -- u_char str[] = "Wrong Type (should be NsapAddress): "; -- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { -- return sprint_realloc_by_type(buf, buf_len, out_len, -+ if (var->type != ASN_NSAP) { -+ if (!netsnmp_ds_get_boolean( -+ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { -+ u_char str[] = "Wrong Type (should be NsapAddress): "; -+ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) -+ return 0; -+ } -+ return sprint_realloc_by_type(buf, buf_len, out_len, - allow_realloc, var, NULL, NULL, - NULL); -- } else { -- return 0; -- } - } - - if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { --- -1.7.10.4 - diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch new file mode 100644 index 00000000000..b05eea56fc5 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch @@ -0,0 +1,48 @@ +From a92628a163ebf1ea62220684736300461c003875 Mon Sep 17 00:00:00 2001 +From: Niels Baggesen +Date: Mon, 26 Jan 2015 20:26:06 +0100 +Subject: [PATCH] BUG#a2584: Fix snmptrap to use clientaddr from snmp.conf. + Thanks to rizwan + +Upstream-Status: backport + +Signed-off-by: Li Zhou +--- + snmplib/transports/snmpUDPIPv6Domain.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/snmplib/transports/snmpUDPIPv6Domain.c b/snmplib/transports/snmpUDPIPv6Domain.c +index 55e3610..aca69ae 100644 +--- a/snmplib/transports/snmpUDPIPv6Domain.c ++++ b/snmplib/transports/snmpUDPIPv6Domain.c +@@ -256,6 +256,27 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local) + t->data = NULL; + t->data_length = 0; + } else { ++ char *client_socket = NULL; ++ /* ++ * This is a client session. If we've been given a ++ * client address to send from, then bind to that. ++ * Otherwise the send will use "something sensible". ++ */ ++ ++ client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, ++ NETSNMP_DS_LIB_CLIENT_ADDR); ++ if (client_socket) { ++ struct sockaddr_in6 client_addr; ++ netsnmp_sockaddr_in6_2(&client_addr, client_socket, NULL); ++ rc = bind(t->sock, (struct sockaddr *)&client_addr, ++ sizeof(struct sockaddr_in6)); ++ if ( rc != 0 ) { ++ DEBUGMSGTL(("netsnmp_udp6", "failed to bind for clientaddr: %d %s\n", ++ errno, strerror(errno))); ++ netsnmp_socketbase_close(t); ++ netsnmp_transport_free(t); ++ } ++ } + /* + * This is a client session. Save the address in the + * transport-specific data pointer for later use by netsnmp_udp6_send. +-- +2.9.3 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch new file mode 100644 index 00000000000..c6401fed396 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch @@ -0,0 +1,37 @@ +From 261a22096c79f8e6ef7b387514a74d208e4e5945 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 21 Aug 2015 18:23:13 +0900 +Subject: [PATCH] config_os_headers: Error Fix + +ERROR: This autoconf log indicates errors, it looked at host include +and/or library paths while determining system capabilities. +cc1: warning: include location "/usr/local/include" is unsafe for cross-compilation [-Wpoison-system-directories] +conftest.c:168:17: fatal error: pkg.h: No such file or directory + #include + ^ + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + configure.d/config_os_headers | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers +index 708aa09..0df32ca 100644 +--- a/configure.d/config_os_headers ++++ b/configure.d/config_os_headers +@@ -482,8 +482,8 @@ then + unset ac_cv_header_pkg_h + netsnmp_save_CPPFLAGS="$CPPFLAGS" + netsnmp_save_LDFLAGS="$LDFLAGS" +- CPPFLAGS="$CPPFLAGS -I/usr/local/include" +- LDFLAGS="$LDFLAGS -L/usr/local/lib" ++ CPPFLAGS="$CPPFLAGS" ++ LDFLAGS="$LDFLAGS" + AC_CHECK_HEADERS(pkg.h, + NETSNMP_SEARCH_LIBS(pkg_init, pkg, + AC_DEFINE(HAVE_LIBPKG, 1, [define if you have BSD pkg-ng]))) +-- +1.8.4.2 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch new file mode 100644 index 00000000000..5866a95edb6 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch @@ -0,0 +1,31 @@ +From e24fcd140f3f6dd18fd836b197c6d4bb773e50e7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= +Date: Wed, 4 Nov 2015 16:49:30 +0100 +Subject: [PATCH] config_os_libs2: Error Fix + +ERROR: This autoconf log indicates errors, it looked at host include +and/or library paths while determining system capabilities. +--- + configure.d/config_os_libs2 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2 +index 47491e2..e3647f9 100644 +--- a/configure.d/config_os_libs2 ++++ b/configure.d/config_os_libs2 +@@ -226,10 +226,10 @@ if test "x$with_nl" != "xno"; then + case $target_os in + linux*) # Check for libnl (linux) + netsnmp_save_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="-I/usr/include/libnl3 $CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS" + NETSNMP_SEARCH_LIBS(nl_connect, nl-3, + [AC_CHECK_HEADERS(netlink/netlink.h) +- EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES -I/usr/include/libnl3"], ++ EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES"], + [CPPFLAGS="$netsnmp_save_CPPFLAGS"], [], [], [LMIBLIBS]) + if test "x$ac_cv_header_netlink_netlink_h" != xyes; then + NETSNMP_SEARCH_LIBS(nl_connect, nl, [ +-- +2.5.0 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch new file mode 100644 index 00000000000..b87e9eec26c --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch @@ -0,0 +1,31 @@ +From c6304a3e4b8441ff0a6464c0f1f6c5229092fa32 Mon Sep 17 00:00:00 2001 +From: Niels Baggesen +Date: Wed, 24 May 2017 16:40:03 +0800 +Subject: [PATCH 1/4] configure: fix check for --enable-perl-cc-checks + +This patch comes from git://git.code.sf.net/p/net-snmp/code, +the commit is 8f431d410b803603dc809d82e0893509615d9a11. + +Upstream-Status: Backport + +Signed-off-by: Wenlin Kang +--- + configure.d/config_project_perl_python | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python +index 23f8c7e..475c843 100644 +--- a/configure.d/config_project_perl_python ++++ b/configure.d/config_project_perl_python +@@ -84,7 +84,7 @@ if test "x$install_perl" != "xno" ; then + + # What compiler was used to build the perl binary? + # +- if test "xenable_perl_cc_checks" != "xno" ; then ++ if test "x$enable_perl_cc_checks" != "xno" ; then + AC_MSG_CHECKING([for Perl cc]) + changequote(, ) + PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'` +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch new file mode 100644 index 00000000000..60ce80996dc --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch @@ -0,0 +1,29 @@ +From 7136d593ba96b64537069637c328bc65e1b66b2d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 22 Jul 2016 18:34:39 +0000 +Subject: [PATCH] get_pid_from_inode: Include limit.h + +PATH_MAX and NAME_MAX are required by this file + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + agent/mibgroup/util_funcs/get_pid_from_inode.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/agent/mibgroup/util_funcs/get_pid_from_inode.c b/agent/mibgroup/util_funcs/get_pid_from_inode.c +index 8e157ae..a494ec7 100644 +--- a/agent/mibgroup/util_funcs/get_pid_from_inode.c ++++ b/agent/mibgroup/util_funcs/get_pid_from_inode.c +@@ -5,6 +5,7 @@ + #include + + #include ++#include + #include + #if HAVE_STDLIB_H + #include +-- +1.8.3.1 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch new file mode 100644 index 00000000000..6255f7ced3d --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch @@ -0,0 +1,29 @@ +From 1ee72102fbe722d232d74abc4660a8b134cec8d6 Mon Sep 17 00:00:00 2001 +From: Bart Van Assche +Date: Sat, 23 May 2015 07:32:53 +0200 +Subject: [PATCH] snmplib, UDPIPv6 transport: Add a missing return statement + +Detected by Coverity. + +Upstream-Status: backport + +Signed-off-by: Li Zhou +--- + snmplib/transports/snmpUDPIPv6Domain.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/snmplib/transports/snmpUDPIPv6Domain.c b/snmplib/transports/snmpUDPIPv6Domain.c +index 029b164..11c39bb 100644 +--- a/snmplib/transports/snmpUDPIPv6Domain.c ++++ b/snmplib/transports/snmpUDPIPv6Domain.c +@@ -285,6 +285,7 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local) + errno, strerror(errno))); + netsnmp_socketbase_close(t); + netsnmp_transport_free(t); ++ return NULL; + } + } + /* +-- +2.9.3 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch new file mode 100644 index 00000000000..af242fafb22 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch @@ -0,0 +1,33 @@ +From d3027a227bc0f603a5b650d01f97ee1dec515be5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 18 Sep 2015 00:28:45 -0400 +Subject: [PATCH] snmplib/keytools.c: Don't check for return from + EVP_MD_CTX_init() + +EVP_MD_CTX_init() API returns void, it fixes errors with new compilers + +snmplib/keytools.c: In function 'generate_Ku': error: invalid use of void expression + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted [https://sourceforge.net/p/net-snmp/patches/1317/] + snmplib/keytools.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/snmplib/keytools.c b/snmplib/keytools.c +index 0ccb3a6..880fc14 100644 +--- a/snmplib/keytools.c ++++ b/snmplib/keytools.c +@@ -153,8 +153,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len, + ctx = EVP_MD_CTX_create(); + #else + ctx = malloc(sizeof(*ctx)); +- if (!EVP_MD_CTX_init(ctx)) +- return SNMPERR_GENERR; ++ EVP_MD_CTX_init(ctx); + #endif + #ifndef NETSNMP_DISABLE_MD5 + if (ISTRANSFORM(hashtype, HMACMD5Auth)) { +-- +2.5.2 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch new file mode 100644 index 00000000000..999976d2790 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch @@ -0,0 +1,30 @@ +From 94e7e4969bc84c945dfea12d67a1e10f61973948 Mon Sep 17 00:00:00 2001 +From: Wenlin Kang +Date: Wed, 24 May 2017 16:45:34 +0800 +Subject: [PATCH 2/4] configure: fix a cc check issue. + +When has "." in cc value, the expression +$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);' +can't get corretly the cc's value. + +Signed-off-by: Wenlin Kang +--- + configure.d/config_project_perl_python | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python +index 475c843..22d2ad3 100644 +--- a/configure.d/config_project_perl_python ++++ b/configure.d/config_project_perl_python +@@ -87,7 +87,7 @@ if test "x$install_perl" != "xno" ; then + if test "x$enable_perl_cc_checks" != "xno" ; then + AC_MSG_CHECKING([for Perl cc]) + changequote(, ) +- PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'` ++ PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\.\w\s\/]+).;\s*/$1/);'` + changequote([, ]) + if test "x$PERLCC" != "x" ; then + AC_MSG_RESULT([$PERLCC]) +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch new file mode 100644 index 00000000000..7951234a4e4 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch @@ -0,0 +1,186 @@ +From e57fc809ad6ae522670f3dc157aadde20d968ca7 Mon Sep 17 00:00:00 2001 +From: Bart Van Assche +Date: Wed, 24 May 2017 17:05:03 +0800 +Subject: [PATCH 3/4] CHANGES: BUG: 2712: Fix Perl module compilation + +Avoid that building the Net-SNMP Perl modules fails as follows: + +ERROR from evaluation of /sources/net-snmp-5.7.3/perl/ASN/Makefile.PL: Bizarre \ copy of HASH in list assignment at /usr/lib/perl5/site_perl/5.24.0/Carp.pm line\ 229. + +See also https://sourceforge.net/p/net-snmp/bugs/2712/. + +This patch comes from git://git.code.sf.net/p/net-snmp/code, +the commit is 4e793461e96a2b4fd81142ab312d074d5c8841fa. + +Signed-off-by: Wenlin Kang +--- + perl/ASN/Makefile.PL | 4 +--- + perl/Makefile.PL | 4 +--- + perl/OID/Makefile.PL | 5 +---- + perl/SNMP/Makefile.PL | 5 +---- + perl/TrapReceiver/Makefile.PL | 5 +---- + perl/agent/Makefile.PL | 5 +---- + perl/agent/Support/Makefile.PL | 5 +---- + perl/agent/default_store/Makefile.PL | 5 +---- + perl/default_store/Makefile.PL | 5 +---- + 9 files changed, 9 insertions(+), 34 deletions(-) + +diff --git a/perl/ASN/Makefile.PL b/perl/ASN/Makefile.PL +index 4576781..c33d8ba 100644 +--- a/perl/ASN/Makefile.PL ++++ b/perl/ASN/Makefile.PL +@@ -7,9 +7,7 @@ my $lib_version; + # See lib/ExtUtils/MakeMaker.pm for details of how to influence + # the contents of the Makefile that is written. + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/Makefile.PL b/perl/Makefile.PL +index 31fdc40..48aba2a 100644 +--- a/perl/Makefile.PL ++++ b/perl/Makefile.PL +@@ -3,9 +3,7 @@ use Config; + use Getopt::Long; + require 5; + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + sub InitMakeParams { + $nsconfig="net-snmp-config"; # in path by default +diff --git a/perl/OID/Makefile.PL b/perl/OID/Makefile.PL +index 6bb1616..2589985 100644 +--- a/perl/OID/Makefile.PL ++++ b/perl/OID/Makefile.PL +@@ -6,11 +6,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/SNMP/Makefile.PL b/perl/SNMP/Makefile.PL +index e617cb7..8aab9a9 100644 +--- a/perl/SNMP/Makefile.PL ++++ b/perl/SNMP/Makefile.PL +@@ -3,15 +3,12 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + my $opts; + + # See lib/ExtUtils/MakeMaker.pm for details of how to influence + # the contents of the Makefile that is written. + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/TrapReceiver/Makefile.PL b/perl/TrapReceiver/Makefile.PL +index 874ee21..7e9e58e 100644 +--- a/perl/TrapReceiver/Makefile.PL ++++ b/perl/TrapReceiver/Makefile.PL +@@ -3,11 +3,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/agent/Makefile.PL b/perl/agent/Makefile.PL +index 4f7bee3..003c0d1 100644 +--- a/perl/agent/Makefile.PL ++++ b/perl/agent/Makefile.PL +@@ -3,11 +3,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/agent/Support/Makefile.PL b/perl/agent/Support/Makefile.PL +index 48815b6..2325e10 100644 +--- a/perl/agent/Support/Makefile.PL ++++ b/perl/agent/Support/Makefile.PL +@@ -3,14 +3,11 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + + # See lib/ExtUtils/MakeMaker.pm for details of how to influence + # the contents of the Makefile that is written. + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/agent/default_store/Makefile.PL b/perl/agent/default_store/Makefile.PL +index ed6483a..31cfbee 100644 +--- a/perl/agent/default_store/Makefile.PL ++++ b/perl/agent/default_store/Makefile.PL +@@ -3,11 +3,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/default_store/Makefile.PL b/perl/default_store/Makefile.PL +index 7c671b8..01c8dd0 100644 +--- a/perl/default_store/Makefile.PL ++++ b/perl/default_store/Makefile.PL +@@ -3,11 +3,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + + sub InitMakeParams { +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch new file mode 100644 index 00000000000..2b03f9e9a2a --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch @@ -0,0 +1,30 @@ +From 4ad98ef125eb4e7d7a1a93146042002f78254d36 Mon Sep 17 00:00:00 2001 +From: Wenlin Kang +Date: Wed, 24 May 2017 17:10:20 +0800 +Subject: [PATCH 4/4] configure: fix incorrect variable + +For cross compile platform, this variable will not be correct, so fix it. + +Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Wenlin Kang +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index cfcdf73..164df05 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -171,7 +171,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt + # + # override LD_RUN_PATH to avoid dependencies on the build directory + perlmodules: perlmakefiles subdirs +- @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{archlibexp}/CORE);'`") ; \ ++ @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{installprivlib}/CORE);'`") ; \ + if test $$? != 0 ; then \ + exit 1 ; \ + fi +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch new file mode 100644 index 00000000000..6bd0f93c4bc --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch @@ -0,0 +1,131 @@ +From 6b93e686bdb6a908d00595608646a05527a5326b Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 21 Aug 2015 12:39:12 +0900 +Subject: [PATCH] the snmp_pdu_parse() function could leave incompletely parsed + varBind variables in the list of variables in case the parsing of the SNMP + PDU failed. If later processing tries to operate on the stale and + incompletely processed varBind (e.g. when printing the variables), this can + lead to e.g. crashes or, possibly, execution of arbitrary code + +Upstream-Status: Backport [net-snmp] + +Written-by: Robert Story +--- + snmplib/snmp_api.c | 53 ++++++++++++++++++++++++++++------------------------- + 1 file changed, 28 insertions(+), 25 deletions(-) + +diff --git a/snmplib/snmp_api.c b/snmplib/snmp_api.c +index 191debf..15a2d39 100644 +--- a/snmplib/snmp_api.c ++++ b/snmplib/snmp_api.c +@@ -4350,10 +4350,9 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + u_char type; + u_char msg_type; + u_char *var_val; +- int badtype = 0; + size_t len; + size_t four; +- netsnmp_variable_list *vp = NULL; ++ netsnmp_variable_list *vp = NULL, *vplast = NULL; + oid objid[MAX_OID_LEN]; + u_char *p; + +@@ -4493,31 +4492,17 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + (ASN_SEQUENCE | ASN_CONSTRUCTOR), + "varbinds"); + if (data == NULL) +- return -1; ++ goto fail; + + /* + * get each varBind sequence + */ + while ((int) *length > 0) { +- netsnmp_variable_list *vptemp; +- vptemp = (netsnmp_variable_list *) malloc(sizeof(*vptemp)); +- if (NULL == vptemp) { +- return -1; +- } +- if (NULL == vp) { +- pdu->variables = vptemp; +- } else { +- vp->next_variable = vptemp; +- } +- vp = vptemp; ++ vp = SNMP_MALLOC_TYPEDEF(netsnmp_variable_list); ++ if (NULL == vp) ++ goto fail; + +- vp->next_variable = NULL; +- vp->val.string = NULL; + vp->name_length = MAX_OID_LEN; +- vp->name = NULL; +- vp->index = 0; +- vp->data = NULL; +- vp->dataFreeHook = NULL; + DEBUGDUMPSECTION("recv", "VarBind"); + data = snmp_parse_var_op(data, objid, &vp->name_length, &vp->type, + &vp->val_len, &var_val, length); +@@ -4604,7 +4589,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + vp->val.string = (u_char *) malloc(vp->val_len); + } + if (vp->val.string == NULL) { +- return -1; ++ goto fail; + } + p = asn_parse_string(var_val, &len, &vp->type, vp->val.string, + &vp->val_len); +@@ -4619,7 +4604,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + vp->val_len *= sizeof(oid); + vp->val.objid = (oid *) malloc(vp->val_len); + if (vp->val.objid == NULL) { +- return -1; ++ goto fail; + } + memmove(vp->val.objid, objid, vp->val_len); + break; +@@ -4631,7 +4616,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + case ASN_BIT_STR: + vp->val.bitstring = (u_char *) malloc(vp->val_len); + if (vp->val.bitstring == NULL) { +- return -1; ++ goto fail; + } + p = asn_parse_bitstring(var_val, &len, &vp->type, + vp->val.bitstring, &vp->val_len); +@@ -4640,12 +4625,30 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length) + break; + default: + snmp_log(LOG_ERR, "bad type returned (%x)\n", vp->type); +- badtype = -1; ++ goto fail; + break; + } + DEBUGINDENTADD(-4); ++ ++ if (NULL == vplast) { ++ pdu->variables = vp; ++ } else { ++ vplast->next_variable = vp; ++ } ++ vplast = vp; ++ vp = NULL; ++ + } +- return badtype; ++ return 0; ++ ++ fail: ++ DEBUGMSGTL(("recv", "error while parsing VarBindList\n")); ++ /** if we were parsing a var, remove it from the pdu and free it */ ++ if (vp) ++ snmp_free_var(vp); ++ ++ return -1; ++ + } + + /* +-- +1.8.4.2 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch new file mode 100644 index 00000000000..efe803876db --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch @@ -0,0 +1,45 @@ +From e47c60dc7f649959f63e56bc62355de4bdfd73f4 Mon Sep 17 00:00:00 2001 +From: Marian Florea +Date: Thu, 20 Jul 2017 16:55:24 +0800 +Subject: [PATCH] net snmp: fix engineBoots value on SIGHUP + +Upstream-Status: Pending + +Signed-off-by: Marian Florea +Signed-off-by: Li Zhou +--- + agent/snmpd.c | 1 + + snmplib/snmpv3.c | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/agent/snmpd.c b/agent/snmpd.c +index 056048a..12a7ea1 100644 +--- a/agent/snmpd.c ++++ b/agent/snmpd.c +@@ -1246,6 +1246,7 @@ receive(void) + snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n", + netsnmp_get_version()); + update_config(); ++ snmp_store(app_name); + send_easy_trap(SNMP_TRAP_ENTERPRISESPECIFIC, 3); + #if HAVE_SIGHOLD + sigrelse(SIGHUP); +diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c +index 435cafd..6ad8208 100644 +--- a/snmplib/snmpv3.c ++++ b/snmplib/snmpv3.c +@@ -984,9 +984,9 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg, + /* + * if our engineID has changed at all, the boots record must be set to 1 + */ +- if (engineIDLen != oldEngineIDLength || ++ if (oldEngineIDLength != (size_t)0 && (engineIDLen != oldEngineIDLength || + oldEngineID == NULL || c_engineID == NULL || +- memcmp(oldEngineID, c_engineID, engineIDLen) != 0) { ++ memcmp(oldEngineID, c_engineID, engineIDLen) != 0)) { + engineBoots = 1; + } + +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch new file mode 100644 index 00000000000..5eed893e18e --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch @@ -0,0 +1,75 @@ +Description: fix snmpd crash via AgentX connection + + taken from Fedora, net-snmp-5.7-agentx-crash.patch + +bz729738 - net-snmp dumps core in netsnmp_oid_find_prefix +bz1038011 - net-snmp: snmpd crashes/hangs when AgentX subagent times-out + +commit f9304c83f76202db0e684269ca1af32e43cd9db4 +Author: Jan Safranek +Date: Tue Feb 7 14:53:44 2012 +0100 + + CHANGES: PATCH 1633670: fixed snmpd crashing when an AgentX subagent + disconnect in the middle of processing of a request. + + I fixed also the memory leak reported in the tracker comments. + +Upstream-Status: Backport + +Signed-off-by: Zhu Yanjun +Signed-off-by: Jackie Huang + +--- + agent/mibgroup/agentx/master.c | 5 +++++ + agent/mibgroup/agentx/master_admin.c | 9 +++++++-- + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/agent/mibgroup/agentx/master.c b/agent/mibgroup/agentx/master.c +index c42a42a..baeebaf 100644 +--- a/agent/mibgroup/agentx/master.c ++++ b/agent/mibgroup/agentx/master.c +@@ -219,6 +219,9 @@ agentx_got_response(int operation, + if (!cache) { + DEBUGMSGTL(("agentx/master", "response too late on session %8p\n", + session)); ++ /* response is too late, free the cache */ ++ if (magic) ++ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) magic); + return 0; + } + requests = cache->requests; +@@ -606,6 +609,8 @@ agentx_master_handler(netsnmp_mib_handler *handler, + result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data); + if (result == 0) { + snmp_free_pdu(pdu); ++ if (cb_data) ++ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) cb_data); + } + + return SNMP_ERR_NOERROR; +diff --git a/agent/mibgroup/agentx/master_admin.c b/agent/mibgroup/agentx/master_admin.c +index f16f392..b84b85e 100644 +--- a/agent/mibgroup/agentx/master_admin.c ++++ b/agent/mibgroup/agentx/master_admin.c +@@ -133,11 +133,16 @@ close_agentx_session(netsnmp_session * session, int sessid) + * requests, so that the delegated request will be completed and + * further requests can be processed + */ +- netsnmp_remove_delegated_requests_for_session(session); ++ while (netsnmp_remove_delegated_requests_for_session(session)) { ++ DEBUGMSGTL(("agentx/master", "Continue removing delegated reqests\n")); ++ } ++ + if (session->subsession != NULL) { + netsnmp_session *subsession = session->subsession; + for(; subsession; subsession = subsession->next) { +- netsnmp_remove_delegated_requests_for_session(subsession); ++ while (netsnmp_remove_delegated_requests_for_session(subsession)) { ++ DEBUGMSGTL(("agentx/master", "Continue removing delegated subsession reqests\n")); ++ } + } + } + +-- +2.7.4 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service b/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service index 3b336a05484..447683f8563 100644 --- a/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service @@ -6,7 +6,7 @@ After=syslog.target network.target Type=notify Environment=OPTIONS="-Ls0-6d" EnvironmentFile=-/etc/default/snmpd -ExecStart=/usr/sbin/snmpd $OPTIONS -f +ExecStart=/usr/sbin/snmpd $OPTIONS -a -f ExecReload=/bin/kill -HUP $MAINPID [Install] diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch index e19153bbc4e..c6af8c0f33f 100644 --- a/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch @@ -1,4 +1,8 @@ -Systemd support backported from the master branch as of 23/04/2012 (post 5.7.1, pre 5.8). +From 0cad0c6c36af2a2d589563804c9ed2b37b7085fb Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Fri, 21 Aug 2015 14:37:02 +0900 +Subject: [PATCH] ystemd support backported from the master branch as of + 23/04/2012 (post 5.7.1, pre 5.8). The following commits have been cherry-picked: @@ -15,15 +19,44 @@ bf108d7f1354f6276fc43c129963f2c49b9fc242 Upstream-Status: Backport Signed-off-by: Thomas Fitzsimmons +--- + README.systemd | 41 +++ + agent/snmpd.c | 33 +- + apps/snmptrapd.c | 32 +- + configure.d/config_modules_lib | 8 + + configure.d/config_project_with_enable | 9 + + dist/snmpd.servic | 18 + + dist/snmpd.socket | 17 + + dist/snmptrapd.service | 16 + + dist/snmptrapd.socket | 14 + + include/net-snmp/library/sd-daemon.h | 290 ++++++++++++++++ + snmplib/sd-daemon.c | 532 +++++++++++++++++++++++++++++ + snmplib/transports/snmpTCPDomain.c | 43 ++- + snmplib/transports/snmpTCPIPv6Domain.c | 46 ++- + snmplib/transports/snmpUDPIPv4BaseDomain.c | 33 +- + snmplib/transports/snmpUDPIPv6Domain.c | 34 +- + snmplib/transports/snmpUnixDomain.c | 66 ++-- + win32/libsnmp/Makefile.in | 6 + + win32/net-snmp/net-snmp-config.h | 2 + + win32/net-snmp/net-snmp-config.h.in | 2 + + 19 files changed, 1176 insertions(+), 66 deletions(-) + create mode 100644 README.systemd + create mode 100644 dist/snmpd.servic + create mode 100644 dist/snmpd.socket + create mode 100644 dist/snmptrapd.service + create mode 100644 dist/snmptrapd.socket + create mode 100644 include/net-snmp/library/sd-daemon.h + create mode 100644 snmplib/sd-daemon.c + diff --git a/README.systemd b/README.systemd new file mode 100644 -index 0000000..f731851 +index 0000000..dba15d1 --- /dev/null +++ b/README.systemd @@ -0,0 +1,41 @@ +README.systemd +-------------- -+Net-SNMP provides two daemons, which support systemd system manager. ++Net-SNMP provides two daemons, which support systemd system manager. +See http://www.freedesktop.org/wiki/Software/systemd to learn how +systemd works. Both socket activation and notification is supported by these +daemons. @@ -62,9 +95,8 @@ index 0000000..f731851 +If integration with SNMP agent using AgentX protocol is enabled, snmptrapd should +start during boot and not after first SNMP trap arrives. Same rules as for snmpd +applies then. -\ No newline at end of file diff --git a/agent/snmpd.c b/agent/snmpd.c -index b177d5b..08bdfc7 100644 +index cfc7bce..116ee5c 100644 --- a/agent/snmpd.c +++ b/agent/snmpd.c @@ -164,6 +164,10 @@ typedef long fd_mask; @@ -78,7 +110,7 @@ index b177d5b..08bdfc7 100644 netsnmp_feature_want(logging_file) netsnmp_feature_want(logging_stdio) netsnmp_feature_want(logging_syslog) -@@ -441,18 +445,28 @@ main(int argc, char *argv[]) +@@ -443,19 +447,29 @@ main(int argc, char *argv[]) int agent_mode = -1; char *pid_file = NULL; char option_compatability[] = "-Le"; @@ -102,14 +134,16 @@ index b177d5b..08bdfc7 100644 */ - for (i = getdtablesize() - 1; i > 2; --i) { - (void) close(i); +- } + if (!prepared_sockets) { + for (i = getdtablesize() - 1; i > 2; --i) { + (void) close(i); -+ } - } ++ } ++} #endif /* #WIN32 */ -@@ -1100,6 +1114,19 @@ main(int argc, char *argv[]) + /* +@@ -1107,6 +1121,19 @@ main(int argc, char *argv[]) netsnmp_addrcache_initialise(); /* @@ -130,7 +164,7 @@ index b177d5b..08bdfc7 100644 */ DEBUGMSGTL(("snmpd/main", "We're up. Starting to process data.\n")); diff --git a/apps/snmptrapd.c b/apps/snmptrapd.c -index 1a52080..0857ae1 100644 +index bce0d47..c6a74ec 100644 --- a/apps/snmptrapd.c +++ b/apps/snmptrapd.c @@ -125,6 +125,10 @@ SOFTWARE. @@ -144,7 +178,7 @@ index 1a52080..0857ae1 100644 #ifndef BSD4_3 #define BSD4_2 #endif -@@ -655,15 +659,24 @@ main(int argc, char *argv[]) +@@ -657,16 +661,25 @@ main(int argc, char *argv[]) int agentx_subagent = 1; #endif netsnmp_trapd_handler *traph; @@ -164,14 +198,16 @@ index 1a52080..0857ae1 100644 */ - for (i = getdtablesize() - 1; i > 2; --i) { - (void) close(i); +- } + if (!prepared_sockets) { + for (i = getdtablesize() - 1; i > 2; --i) { + (void) close(i); -+ } - } ++ } ++} #endif /* #WIN32 */ -@@ -1311,6 +1324,19 @@ main(int argc, char *argv[]) + #ifdef SIGTERM +@@ -1318,6 +1331,19 @@ main(int argc, char *argv[]) #endif #endif @@ -192,7 +228,7 @@ index 1a52080..0857ae1 100644 trapd_status = SNMPTRAPD_RUNNING; #endif diff --git a/configure.d/config_modules_lib b/configure.d/config_modules_lib -index b6609c1..5849072 100644 +index 362ba0a..bb69daa 100644 --- a/configure.d/config_modules_lib +++ b/configure.d/config_modules_lib @@ -53,6 +53,14 @@ if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" @@ -211,10 +247,10 @@ index b6609c1..5849072 100644 AC_SUBST(other_objs_list) AC_SUBST(other_lobjs_list) diff --git a/configure.d/config_project_with_enable b/configure.d/config_project_with_enable -index 8b46ad2..59d6d5c 100644 +index 61ba026..d782d12 100644 --- a/configure.d/config_project_with_enable +++ b/configure.d/config_project_with_enable -@@ -689,6 +689,15 @@ if test "x$with_dummy_values" != "xyes"; then +@@ -690,6 +690,15 @@ if test "x$with_dummy_values" != "xyes"; then data for]) fi @@ -230,11 +266,11 @@ index 8b46ad2..59d6d5c 100644 NETSNMP_ARG_ENABLE(set-support, [ --disable-set-support Do not allow SNMP set requests.]) if test "x$enable_set_support" = "xno"; then -diff --git a/dist/snmpd.service b/dist/snmpd.service +diff --git a/dist/snmpd.servic b/dist/snmpd.servic new file mode 100644 index 0000000..31391e5 --- /dev/null -+++ b/dist/snmpd.service ++++ b/dist/snmpd.servic @@ -0,0 +1,18 @@ +# +# SNMP agent service file for systemd @@ -301,24 +337,24 @@ index 0000000..e88a5b4 +WantedBy=multi-user.target diff --git a/dist/snmptrapd.socket b/dist/snmptrapd.socket new file mode 100644 -index 0000000..0fc8a7c +index 0000000..2d24fb8 --- /dev/null +++ b/dist/snmptrapd.socket @@ -0,0 +1,14 @@ -+[Unit] -+Description=Socket listening for SNMP trap messages -+ -+[Socket] -+ListenDatagram=0.0.0.0:162 -+# Uncomment other listening addresses as needed - TCP, UDP6, TCP6. -+# It must match listening addresses/ports defined in snmptrapd.service -+# or snmptrapd.conf. -+# ListenStream=0.0.0.0:162 -+# ListenDatagram=[::]:162 -+# ListenStream=[::]:162 -+ -+[Install] -+WantedBy=sockets.target +++[Unit] +++Description=Socket listening for SNMP trap messages +++ +++[Socket] +++ListenDatagram=0.0.0.0:162 +++# Uncomment other listening addresses as needed - TCP, UDP6, TCP6. +++# It must match listening addresses/ports defined in snmptrapd.service +++# or snmptrapd.conf. +++# ListenStream=0.0.0.0:162 +++# ListenDatagram=[::]:162 +++# ListenStream=[::]:162 +++ +++[Install] +++WantedBy=sockets.target diff --git a/include/net-snmp/library/sd-daemon.h b/include/net-snmp/library/sd-daemon.h new file mode 100644 index 0000000..85274c9 @@ -1154,7 +1190,7 @@ index 0000000..42dba29 + +#endif /* ! NETSNMP_NO_SYSTEMD */ diff --git a/snmplib/transports/snmpTCPDomain.c b/snmplib/transports/snmpTCPDomain.c -index b8bdba4..ab7f3a1 100644 +index 7feb028..a41b926 100644 --- a/snmplib/transports/snmpTCPDomain.c +++ b/snmplib/transports/snmpTCPDomain.c @@ -43,6 +43,10 @@ @@ -1216,11 +1252,10 @@ index b8bdba4..ab7f3a1 100644 } /* -@@ -235,12 +254,13 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local) - /* +@@ -236,11 +255,13 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local) * Now sit here and wait for connections to arrive. */ -- + - rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN); - if (rc != 0) { - netsnmp_socketbase_close(t); @@ -1237,7 +1272,7 @@ index b8bdba4..ab7f3a1 100644 /* diff --git a/snmplib/transports/snmpTCPIPv6Domain.c b/snmplib/transports/snmpTCPIPv6Domain.c -index 3c96856..305a861 100644 +index d2e0a2d..22de6d4 100644 --- a/snmplib/transports/snmpTCPIPv6Domain.c +++ b/snmplib/transports/snmpTCPIPv6Domain.c @@ -49,6 +49,10 @@ @@ -1322,7 +1357,7 @@ index 3c96856..305a861 100644 /* diff --git a/snmplib/transports/snmpUDPIPv4BaseDomain.c b/snmplib/transports/snmpUDPIPv4BaseDomain.c -index c67427b..428e6d6 100644 +index 8c0fb05..00e5bbc 100644 --- a/snmplib/transports/snmpUDPIPv4BaseDomain.c +++ b/snmplib/transports/snmpUDPIPv4BaseDomain.c @@ -40,6 +40,10 @@ @@ -1333,10 +1368,10 @@ index c67427b..428e6d6 100644 +#include +#endif + - #if (defined(linux) && defined(IP_PKTINFO)) \ - || defined(IP_RECVDSTADDR) && HAVE_STRUCT_MSGHDR_MSG_CONTROL \ - && HAVE_STRUCT_MSGHDR_MSG_FLAGS -@@ -67,6 +71,7 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) + #if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR) + int netsnmp_udpipv4_recvfrom(int s, void *buf, int len, struct sockaddr *from, + socklen_t *fromlen, struct sockaddr *dstip, +@@ -64,6 +68,7 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) char *client_socket = NULL; netsnmp_indexed_addr_pair addr_pair; socklen_t local_addr_len; @@ -1344,7 +1379,7 @@ index c67427b..428e6d6 100644 #ifdef NETSNMP_NO_LISTEN_SUPPORT if (local) -@@ -91,7 +96,19 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) +@@ -88,7 +93,19 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) free(str); } @@ -1365,10 +1400,10 @@ index c67427b..428e6d6 100644 DEBUGMSGTL(("UDPBase", "openned socket %d as local=%d\n", t->sock, local)); if (t->sock < 0) { netsnmp_transport_free(t); -@@ -141,12 +158,14 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) - DEBUGMSGTL(("netsnmp_udp", "set IP_RECVDSTADDR\n")); +@@ -151,12 +168,14 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local) + } } - #endif + #endif /* !defined(WIN32) */ - rc = bind(t->sock, (struct sockaddr *) addr, - sizeof(struct sockaddr)); - if (rc != 0) { @@ -1387,7 +1422,7 @@ index c67427b..428e6d6 100644 t->data = NULL; t->data_length = 0; diff --git a/snmplib/transports/snmpUDPIPv6Domain.c b/snmplib/transports/snmpUDPIPv6Domain.c -index b3eaae4..35b617f 100644 +index 18de876..fd2ced4 100644 --- a/snmplib/transports/snmpUDPIPv6Domain.c +++ b/snmplib/transports/snmpUDPIPv6Domain.c @@ -67,6 +67,10 @@ static const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT; @@ -1431,11 +1466,10 @@ index b3eaae4..35b617f 100644 if (t->sock < 0) { netsnmp_transport_free(t); return NULL; -@@ -242,13 +260,14 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local) - } - } +@@ -243,12 +261,14 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local) + } #endif -- + - rc = bind(t->sock, (struct sockaddr *) addr, - sizeof(struct sockaddr_in6)); - if (rc != 0) { @@ -1454,7 +1488,7 @@ index b3eaae4..35b617f 100644 t->local = (unsigned char*)malloc(18); if (t->local == NULL) { diff --git a/snmplib/transports/snmpUnixDomain.c b/snmplib/transports/snmpUnixDomain.c -index 674dc2b..9f3d3cb 100644 +index 47dffc1..8f34c37 100644 --- a/snmplib/transports/snmpUnixDomain.c +++ b/snmplib/transports/snmpUnixDomain.c @@ -37,6 +37,10 @@ @@ -1538,7 +1572,7 @@ index 674dc2b..9f3d3cb 100644 } /* -@@ -391,16 +409,17 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local) +@@ -391,14 +409,16 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local) * Now sit here and listen for connections to arrive. */ @@ -1561,53 +1595,50 @@ index 674dc2b..9f3d3cb 100644 + return NULL; + } } -- + } else { - t->remote = (u_char *)malloc(strlen(addr->sun_path)); - if (t->remote == NULL) { diff --git a/win32/libsnmp/Makefile.in b/win32/libsnmp/Makefile.in -index 98d83c8..dd5689b 100644 +index 98d83c8..b228d20 100644 --- a/win32/libsnmp/Makefile.in +++ b/win32/libsnmp/Makefile.in @@ -42,6 +42,7 @@ LIB32_OBJS= \ "$(INTDIR)\read_config.obj" \ "$(INTDIR)\readdir.obj" \ "$(INTDIR)\scapi.obj" \ -+ "$(INTDIR)\sd-daemon.obj" \ ++ "$(INTDIR)\sd-daemon.obj" \ "$(INTDIR)\snmp-tc.obj" \ "$(INTDIR)\snmp.obj" \ "$(INTDIR)\snmpCallbackDomain.obj" \ -@@ -307,6 +308,12 @@ SOURCE=..\..\snmplib\scapi.c +@@ -138,6 +139,11 @@ SOURCE=..\..\snmplib\asn1.c + "$(INTDIR)\asn1.obj" : $(SOURCE) "$(INTDIR)" $(CPP) $(CPP_PROJ) $(SOURCE) - +SOURCE=..\..\snmplib\sd-daemon.c + +"$(INTDIR)\sd-daemon.obj" : $(SOURCE) "$(INTDIR)" -+ $(CPP) $(CPP_PROJ) $(SOURCE) ++ $(CPP) $(CPP_PROJ) $(SOURCE) + -+ - SOURCE="..\..\snmplib\snmp-tc.c" - "$(INTDIR)\snmp-tc.obj" : $(SOURCE) "$(INTDIR)" + SOURCE=..\..\snmplib\callback.c + diff --git a/win32/net-snmp/net-snmp-config.h b/win32/net-snmp/net-snmp-config.h -index 7791ee0..1eccf42 100644 +index 1608563..7aec547 100644 --- a/win32/net-snmp/net-snmp-config.h +++ b/win32/net-snmp/net-snmp-config.h -@@ -1705,6 +1705,8 @@ enum { +@@ -1717,6 +1717,8 @@ enum { #define DMALLOC_FUNC_CHECK #endif -+#define NETSNMP_NO_SYSTEMD -+ +++#define NETSNMP_NO_SYSTEMD +++ /* #undef NETSNMP_ENABLE_LOCAL_SMUX */ /* define if agentx transport is to use domain sockets only */ diff --git a/win32/net-snmp/net-snmp-config.h.in b/win32/net-snmp/net-snmp-config.h.in -index 5215865..1607bfa 100644 +index 9693730..96ec3d9 100644 --- a/win32/net-snmp/net-snmp-config.h.in +++ b/win32/net-snmp/net-snmp-config.h.in -@@ -1705,6 +1705,8 @@ enum { +@@ -1717,6 +1717,8 @@ enum { #define DMALLOC_FUNC_CHECK #endif @@ -1616,3 +1647,6 @@ index 5215865..1607bfa 100644 /* #undef NETSNMP_ENABLE_LOCAL_SMUX */ /* define if agentx transport is to use domain sockets only */ +-- +1.8.4.2 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.2.1.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.2.1.bb deleted file mode 100644 index 1baf101d930..00000000000 --- a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.2.1.bb +++ /dev/null @@ -1,164 +0,0 @@ -SUMMARY = "Various tools relating to the Simple Network Management Protocol" -HOMEPAGE = "http://www.net-snmp.org/" -LICENSE = "BSD" - -LIC_FILES_CHKSUM = "file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5a622ea24634e" - -DEPENDS = "openssl libnl pciutils" - -SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \ - file://0001-Added-checks-for-printing-variables-with-wrong-types.patch \ - file://init \ - file://snmpd.conf \ - file://snmptrapd.conf \ - file://systemd-support.patch \ - file://snmpd.service \ - file://snmptrapd.service \ - file://ifmib.patch \ - file://net-snmp-add-knob-whether-nlist.h-are-checked.patch \ - file://fix-libtool-finish.patch \ - file://net-snmp-testing-add-the-output-format-for-ptest.patch \ - file://run-ptest \ -" - -SRC_URI[md5sum] = "a2c83518648b0f2a5d378625e45c0e18" -SRC_URI[sha256sum] = "ac9105539971f7cfb1456a86d479e18e8a8b3712212595ad40504347ba5843da" - -inherit autotools update-rc.d siteinfo systemd - -EXTRA_OEMAKE = "INSTALL_PREFIX=${D}" - -PARALLEL_MAKE = "" -CCACHE = "" - -TARGET_CC_ARCH += "${LDFLAGS}" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils" - -EXTRA_OECONF = "--disable-embedded-perl \ - --with-perl-modules=no \ - --enable-shared \ - --disable-manuals \ - --with-defaults \ - --with-persistent-directory=${localstatedir}/lib/net-snmp \ - ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)}" - -# net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp -EXTRA_OECONF += "--with-mib-modules=smux" - -CACHED_CONFIGUREVARS = " \ - ac_cv_header_valgrind_valgrind_h=no \ - ac_cv_header_valgrind_memcheck_h=no \ -" - -do_configure_prepend() { - export PERLPROG="${bindir}/env perl" -} - -do_install_append() { - install -d ${D}${sysconfdir}/snmp - install -d ${D}${sysconfdir}/init.d - install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/snmpd - install -m 644 ${WORKDIR}/snmpd.conf ${D}${sysconfdir}/snmp/ - install -m 644 ${WORKDIR}/snmptrapd.conf ${D}${sysconfdir}/snmp/ - sed -e "s@-I/usr/include@@g" \ - -e "s@^prefix=.*@prefix=${STAGING_DIR_HOST}@g" \ - -e "s@^exec_prefix=.*@exec_prefix=${STAGING_DIR_HOST}@g" \ - -e "s@^includedir=.*@includedir=${STAGING_INCDIR}@g" \ - -e "s@^libdir=.*@libdir=${STAGING_LIBDIR}@g" \ - -i ${D}${bindir}/net-snmp-config - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/snmpd.service ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/snmptrapd.service ${D}${systemd_unitdir}/system -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH} - for i in ${S}/dist ${S}/include ${B}/include ${S}/mibs ${S}/configure \ - ${B}/net-snmp-config ${S}/testing; do - if [ -e "$i" ]; then - cp -a "$i" ${D}${PTEST_PATH} - fi - done - echo `autoconf -V|awk '/autoconf/{print $NF}'` > ${D}${PTEST_PATH}/dist/autoconf-version - - rmdlist="${D}${PTEST_PATH}/dist/net-snmp-solaris-build" - for i in $rmdlist; do - if [ -d "$i" ]; then - rm -rf "$i" - fi - done -} - -SYSROOT_PREPROCESS_FUNCS += "net_snmp_sysroot_preprocess" - -net_snmp_sysroot_preprocess () { - if [ -e ${D}${bindir}/net-snmp-config ]; then - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -m 755 ${D}${bindir}/net-snmp-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - fi -} - -PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client ${PN}-server-snmpd ${PN}-server-snmptrapd" - -ALLOW_EMPTY_${PN} = "1" -ALLOW_EMPTY_${PN}-server = "1" - -FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}" -FILES_${PN}-mibs = "${datadir}/snmp/mibs" -FILES_${PN}-server-snmpd = "${sbindir}/snmpd \ - ${sysconfdir}/snmp/snmpd.conf \ - ${sysconfdir}/init.d \ - ${systemd_unitdir}/system/snmpd.service \ -" - -FILES_${PN}-server-snmptrapd = "${sbindir}/snmptrapd \ - ${sysconfdir}/snmp/snmptrapd.conf \ - ${systemd_unitdir}/system/snmptrapd.service \ -" - -FILES_${PN} = "" -FILES_${PN}-client = "${bindir}/* ${datadir}/snmp/" -FILES_${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/" -FILES_${PN}-dev += "${bindir}/mib2c ${bindir}/mib2c-update" - -CONFFILES_${PN}-server-snmpd = "${sysconfdir}/snmp/snmpd.conf" -CONFFILES_${PN}-server-snmptrapd = "${sysconfdir}/snmp/snmptrapd.conf" - -INITSCRIPT_PACKAGES = "${PN}-server" -INITSCRIPT_NAME_${PN}-server = "snmpd" -INITSCRIPT_PARAMS_${PN}-server = "start 90 2 3 4 5 . stop 60 0 1 6 ." - -EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemd', '--without-systemd', d)}" - -SYSTEMD_PACKAGES = "${PN}-server-snmpd \ - ${PN}-server-snmptrapd" - -SYSTEMD_SERVICE_${PN}-server-snmpd = "snmpd.service" -SYSTEMD_SERVICE_${PN}-server-snmptrapd = "snmptrapd.service" - -RDEPENDS_${PN} += "net-snmp-client" -RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs" -RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd" -RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd" -RDEPENDS_${PN}-client += "net-snmp-mibs" -RDEPENDS_${PN}-ptest += "perl \ - perl-module-test \ - perl-module-file-basename \ - perl-module-getopt-long \ - perl-module-file-temp \ - perl-module-data-dumper \ -" -RDEPENDS_${PN}-dev = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})" -RRECOMMENDS_${PN}-dbg = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})" - -RPROVIDES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" -RREPLACES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" -RCONFLICTS_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" - -RPROVIDES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" -RREPLACES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" -RCONFLICTS_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" - -LEAD_SONAME = "libnetsnmp.so" diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb new file mode 100644 index 00000000000..af6fd1b1fe5 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb @@ -0,0 +1,230 @@ +SUMMARY = "Various tools relating to the Simple Network Management Protocol" +HOMEPAGE = "http://www.net-snmp.org/" +SECTION = "net" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5a622ea24634e" + +DEPENDS = "openssl libnl pciutils" + +SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \ + file://init \ + file://snmpd.conf \ + file://snmptrapd.conf \ + file://systemd-support.patch \ + file://snmpd.service \ + file://snmptrapd.service \ + file://net-snmp-add-knob-whether-nlist.h-are-checked.patch \ + file://fix-libtool-finish.patch \ + file://net-snmp-testing-add-the-output-format-for-ptest.patch \ + file://run-ptest \ + file://dont-return-incompletely-parsed-varbinds.patch \ + file://0001-config_os_headers-Error-Fix.patch \ + file://0001-config_os_libs2-Error-Fix.patch \ + file://0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch \ + file://net-snmp-agentx-crash.patch \ + file://0001-get_pid_from_inode-Include-limit.h.patch \ + file://0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch \ + file://0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch \ + file://0001-configure-fix-check-for-enable-perl-cc-checks.patch \ + file://0002-configure-fix-a-cc-check-issue.patch \ + file://0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch \ + file://0004-configure-fix-incorrect-variable.patch \ + file://net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch \ + " +SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee" +SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e" + +inherit autotools-brokensep update-rc.d siteinfo systemd pkgconfig perlnative + +EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'" + +PARALLEL_MAKE = "" +CCACHE = "" + +TARGET_CC_ARCH += "${LDFLAGS}" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils" +PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,," + +PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no,\ + perl, perl perl-lib" + +EXTRA_OECONF = "--enable-shared \ + --disable-manuals \ + --with-defaults \ + --with-install-prefix=${D} \ + --with-persistent-directory=${localstatedir}/lib/net-snmp \ + ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)}" + +# net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp +EXTRA_OECONF += "--with-mib-modules=smux" + +CACHED_CONFIGUREVARS = " \ + ac_cv_header_valgrind_valgrind_h=no \ + ac_cv_header_valgrind_memcheck_h=no \ + ac_cv_ETC_MNTTAB=/etc/mtab \ + lt_cv_shlibpath_overrides_runpath=yes \ +" +export PERLPROG="${bindir}/env perl" +PERLPROG_append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}" + +HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}" + +do_configure_prepend() { + sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \ + "${S}"/configure \ + "${S}"/configure.d/config_os_libs2 + + if [ "${HAS_PERL}" = "1" ]; then + # this may need to be changed when package perl has any change. + cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config.pm ${WORKDIR}/ + cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config_heavy.pl ${WORKDIR}/ + sed -e "s@libpth => '/usr/lib.*@libpth => '${STAGING_DIR_TARGET}/${libdir} ${STAGING_DIR_TARGET}/${base_libdir}',@g" \ + -e "s@privlibexp => '/usr@privlibexp => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@scriptdir => '/usr@scriptdir => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@sitearchexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@sitelibexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@vendorarchexp => '/usr@vendorarchexp => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@vendorlibexp => '/usr@vendorlibexp => '${STAGING_DIR_TARGET}/usr@g" \ + -i ${WORKDIR}/Config.pm + fi + +} + +do_configure_append() { + if [ "${HAS_PERL}" = "1" ]; then + sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=${STAGING_DIR_TARGET}\$\{includedir\}@g" \ + -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L${STAGING_DIR_TARGET}\$\{libdir\}@g" \ + -i ${B}/net-snmp-config + fi +} + +do_install_append() { + install -d ${D}${sysconfdir}/snmp + install -d ${D}${sysconfdir}/init.d + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/snmpd + install -m 644 ${WORKDIR}/snmpd.conf ${D}${sysconfdir}/snmp/ + install -m 644 ${WORKDIR}/snmptrapd.conf ${D}${sysconfdir}/snmp/ + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/snmpd.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/snmptrapd.service ${D}${systemd_unitdir}/system + sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \ + -i ${D}${bindir}/net-snmp-create-v3-user + sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \ + -i ${D}${bindir}/net-snmp-config + + if [ "${HAS_PERL}" = "1" ]; then + sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=\$\{includedir\}@g" \ + -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L\$\{libdir\}@g" \ + -i ${D}${bindir}/net-snmp-config + fi +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH} + for i in ${S}/dist ${S}/include ${B}/include ${S}/mibs ${S}/configure \ + ${B}/net-snmp-config ${S}/testing; do + if [ -e "$i" ]; then + cp -R --no-dereference --preserve=mode,links -v "$i" ${D}${PTEST_PATH} + fi + done + echo `autoconf -V|awk '/autoconf/{print $NF}'` > ${D}${PTEST_PATH}/dist/autoconf-version + + rmdlist="${D}${PTEST_PATH}/dist/net-snmp-solaris-build" + for i in $rmdlist; do + if [ -d "$i" ]; then + rm -rf "$i" + fi + done +} + +SYSROOT_PREPROCESS_FUNCS += "net_snmp_sysroot_preprocess" + +net_snmp_sysroot_preprocess () { + if [ -e ${D}${bindir}/net-snmp-config ]; then + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -m 755 ${D}${bindir}/net-snmp-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + sed -e "s@-I/usr/include@-I${STAGING_INCDIR}@g" \ + -e "s@^prefix=.*@prefix=${STAGING_DIR_HOST}${prefix}@g" \ + -e "s@^exec_prefix=.*@exec_prefix=${STAGING_EXECPREFIXDIR}@g" \ + -e "s@^includedir=.*@includedir=${STAGING_INCDIR}@g" \ + -e "s@^libdir=.*@libdir=${STAGING_LIBDIR}@g" \ + -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=${S}@g" \ + -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/net-snmp-config + fi +} + +PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client ${PN}-server-snmpd ${PN}-server-snmptrapd" + +# perl module +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-server = "1" + +FILES_${PN}-perl-modules = "${libdir}/perl/*" + +FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}" +FILES_${PN}-mibs = "${datadir}/snmp/mibs" +FILES_${PN}-server-snmpd = "${sbindir}/snmpd \ + ${sysconfdir}/snmp/snmpd.conf \ + ${sysconfdir}/init.d \ + ${systemd_unitdir}/system/snmpd.service \ +" + +FILES_${PN}-server-snmptrapd = "${sbindir}/snmptrapd \ + ${sysconfdir}/snmp/snmptrapd.conf \ + ${systemd_unitdir}/system/snmptrapd.service \ +" + +FILES_${PN} = "" +FILES_${PN}-client = "${bindir}/* ${datadir}/snmp/" +FILES_${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/" +FILES_${PN}-dev += "${bindir}/mib2c ${bindir}/mib2c-update" + +CONFFILES_${PN}-server-snmpd = "${sysconfdir}/snmp/snmpd.conf" +CONFFILES_${PN}-server-snmptrapd = "${sysconfdir}/snmp/snmptrapd.conf" + +INITSCRIPT_PACKAGES = "${PN}-server-snmpd" +INITSCRIPT_NAME_${PN}-server-snmpd = "snmpd" +INITSCRIPT_PARAMS_${PN}-server-snmpd = "start 90 2 3 4 5 . stop 60 0 1 6 ." + +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemd', '--without-systemd', d)}" + +SYSTEMD_PACKAGES = "${PN}-server-snmpd \ + ${PN}-server-snmptrapd" + +SYSTEMD_SERVICE_${PN}-server-snmpd = "snmpd.service" +SYSTEMD_SERVICE_${PN}-server-snmptrapd = "snmptrapd.service" + +RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}" +RDEPENDS_${PN} += "net-snmp-client" +RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs" +RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd" +RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd" +RDEPENDS_${PN}-client += "net-snmp-mibs net-snmp-libs" +RDEPENDS_${PN}-libs += "libpci" +RDEPENDS_${PN}-ptest += "perl \ + perl-module-test \ + perl-module-file-basename \ + perl-module-getopt-long \ + perl-module-file-temp \ + perl-module-data-dumper \ +" +RDEPENDS_${PN}-dev = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})" +RRECOMMENDS_${PN}-dbg = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})" + +RPROVIDES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" +RREPLACES_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" +RCONFLICTS_${PN}-server-snmpd += "${PN}-server-snmpd-systemd" + +RPROVIDES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" +RREPLACES_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" +RCONFLICTS_${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd" + +LEAD_SONAME = "libnetsnmp.so" diff --git a/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb b/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb new file mode 100644 index 00000000000..1d77891d477 --- /dev/null +++ b/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb @@ -0,0 +1,23 @@ +SUMMARY = "OpenSource WebSocket Toolkit" +DESCRIPTION = "noPoll is a OpenSource WebSocket implementation (RFC 6455), \ +written in ansi C, that allows building pure WebSocket solutions or to \ +provide WebSocket support to existing TCP oriented applications.\ +\ +noPoll provides support for WebSocket (ws://) and TLS (secure) WebSocket (wss://),\ +allowing message based (handler notified) programming or stream oriented access." + +HOMEPAGE = "http://www.aspl.es/nopoll/" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=f0504124678c1b3158146e0630229298 \ + " +DEPENDS = "openssl" +SRC_URI = "http://www.aspl.es/nopoll/downloads/nopoll-${PV}.tar.gz \ + " +SRC_URI[md5sum] = "8c411cd0f3c0479aed28c4cf7b114fbb" +SRC_URI[sha256sum] = "f5fbf8aaa16a77b0f265d8c847eb06cb3e68f2b1a50737466dae81181618654c" + +inherit autotools pkgconfig + +EXTRA_OECONF += "--disable-nopoll-doc" + +LDFLAGS += "-lpthread" diff --git a/meta-networking/recipes-protocols/openflow/openflow.inc b/meta-networking/recipes-protocols/openflow/openflow.inc index 75d8ab8d744..cccbfa19a69 100644 --- a/meta-networking/recipes-protocols/openflow/openflow.inc +++ b/meta-networking/recipes-protocols/openflow/openflow.inc @@ -6,7 +6,7 @@ control and forwarding planes of a software-defined networking architecture.\ " HOMEPAGE = "http://www.openflow.org" -SECTION = "networking" +SECTION = "net" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=e870c934e2c3d6ccf085fd7cf0a1e2e2" @@ -16,20 +16,19 @@ SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git" DEPENDS = "virtual/libc" PACKAGECONFIG ??= "openssl" -PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl, libssl" +PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl openssl-native, libssl" EXTRA_OECONF += " \ KARCH=${TARGET_ARCH} \ - ${@base_contains('PACKAGECONFIG', 'openssl', 'SSL_LIBS="-lssl -lcrypto"', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'openssl', 'SSL_LIBS="-lssl -lcrypto"', '', d)} \ " S = "${WORKDIR}/git" -inherit autotools-brokensep +inherit autotools-brokensep pkgconfig -do_configure() { +do_configure_prepend() { ./boot.sh - oe_runconf } do_install_append() { diff --git a/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch b/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch new file mode 100644 index 00000000000..952274bb97a --- /dev/null +++ b/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch @@ -0,0 +1,64 @@ +From 7b62e5884353b247f542844d1e4687d0e9211999 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Jul 2017 04:27:32 -0700 +Subject: [PATCH 1/2] Check and use strlcpy from libc before defining own + +This is required especially on musl where +function prototype conflicts and causes build +failures. + +Signed-off-by: Khem Raj +--- + configure.ac | 2 +- + lib/util.c | 2 ++ + lib/util.h | 1 + + 3 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 13064f6..596c43f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -57,7 +57,7 @@ OFP_CHECK_HWTABLES + OFP_CHECK_HWLIBS + AC_SYS_LARGEFILE + +-AC_CHECK_FUNCS([strsignal]) ++AC_CHECK_FUNCS([strlcpy strsignal]) + + AC_ARG_VAR(KARCH, [Kernel Architecture String]) + AC_SUBST(KARCH) +diff --git a/lib/util.c b/lib/util.c +index 21cc28d..1f341b1 100644 +--- a/lib/util.c ++++ b/lib/util.c +@@ -138,6 +138,7 @@ xasprintf(const char *format, ...) + return s; + } + ++#ifndef HAVE_STRLCPY + void + strlcpy(char *dst, const char *src, size_t size) + { +@@ -148,6 +149,7 @@ strlcpy(char *dst, const char *src, size_t size) + dst[n_copy] = '\0'; + } + } ++#endif + + void + ofp_fatal(int err_no, const char *format, ...) +diff --git a/lib/util.h b/lib/util.h +index fde681f..9e45ea9 100644 +--- a/lib/util.h ++++ b/lib/util.h +@@ -41,6 +41,7 @@ + #include + #include + #include "compiler.h" ++#include "config.h" + + #ifndef va_copy + #ifdef __va_copy +-- +2.13.3 + diff --git a/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch b/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch new file mode 100644 index 00000000000..75180fe32f9 --- /dev/null +++ b/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch @@ -0,0 +1,59 @@ +From 5bba224edea38607e8732081f86679ffd8b218ab Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Jul 2017 04:29:04 -0700 +Subject: [PATCH 2/2] lib/netdev: Adjust header include sequence + +Specify libc headers before kernel UAPIs +this helps compiling with musl where otherwise +it uses the definition from kernel and complains +about double definition in libc headers + +Signed-off-by: Khem Raj +--- + lib/netdev.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/lib/netdev.c b/lib/netdev.c +index 3b6fbc5..c7de25e 100644 +--- a/lib/netdev.c ++++ b/lib/netdev.c +@@ -39,7 +39,6 @@ + #include + #include + #include +-#include + + /* Fix for some compile issues we were experiencing when setting up openwrt + * with the 2.4 kernel. linux/ethtool.h seems to use kernel-style inttypes, +@@ -57,10 +56,6 @@ + #define s64 __s64 + #endif + +-#include +-#include +-#include +-#include + #include + #include + #include +@@ -68,12 +63,16 @@ + #include + #include + #include +-#include + #include + #include + #include + #include + #include ++#include ++#include ++#include ++#include ++#include + + #include "fatal-signal.h" + #include "list.h" +-- +2.13.3 + diff --git a/meta-networking/recipes-protocols/openflow/openflow_git.bb b/meta-networking/recipes-protocols/openflow/openflow_git.bb index 6403bfb220c..eceb45e94f4 100644 --- a/meta-networking/recipes-protocols/openflow/openflow_git.bb +++ b/meta-networking/recipes-protocols/openflow/openflow_git.bb @@ -2,3 +2,8 @@ include ${BPN}.inc SRCREV = "c84f33f09d5dbcfc9b489f64cb30475bf36f653a" PV = "1.0+git${SRCPV}" + +SRC_URI += "\ + file://0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch \ + file://0002-lib-netdev-Adjust-header-include-sequence.patch \ + " diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch new file mode 100644 index 00000000000..d1ee3c59166 --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch @@ -0,0 +1,29 @@ +From 1f8d336a5cd88b87e15596d05980f6fe77a0f226 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 11:28:41 -0700 +Subject: [PATCH 1/4] Use -1 instead of WAIT_ANY + +WAIT_ANY is not supported by POSIX and some C libraries +e.g. musl do not define this. + +Signed-off-by: Khem Raj +--- + usl/usl_pid.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/usl/usl_pid.c b/usl/usl_pid.c +index 103458b..9819473 100644 +--- a/usl/usl_pid.c ++++ b/usl/usl_pid.c +@@ -78,7 +78,7 @@ int usl_pid_reap_children(int waitfor) + + /* Wait for processes in our process group. */ + +- while (((pid = waitpid(WAIT_ANY, &status, (waitfor ? 0: WNOHANG))) != -1) && (pid != 0)) { ++ while (((pid = waitpid(-1, &status, (waitfor ? 0: WNOHANG))) != -1) && (pid != 0)) { + have_callback = 0; + usl_list_for_each(walk, tmp, &usl_child_list) { + child = usl_list_entry(walk, struct usl_pid_child, list); +-- +2.12.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch new file mode 100644 index 00000000000..c50f68e65d7 --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch @@ -0,0 +1,34 @@ +From 25dce20a75bc84ae9e4ec640590cef0c12750789 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 17:48:13 -0700 +Subject: [PATCH 1/2] l2tp_api: Included needed headers + +These are flagged by musl + +Signed-off-by: Khem Raj +--- + l2tp_api.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/l2tp_api.c b/l2tp_api.c +index d16f80e..9d6f60a 100644 +--- a/l2tp_api.c ++++ b/l2tp_api.c +@@ -22,9 +22,12 @@ + * Each module implements the required RPC xxx_1_svc() callbacks which + * are called directly by the RPC library. + */ +- ++#define _GNU_SOURCE ++#include ++#include ++#include + #include +-#include ++//#include + + #include "usl.h" + +-- +2.12.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch new file mode 100644 index 00000000000..a11a97ebded --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch @@ -0,0 +1,31 @@ +From 8f299df4dd1ca857e34859c377a29b183c630961 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 21 Sep 2017 13:05:03 -0700 +Subject: [PATCH] l2tp_api.c: include rpc/clnt.h for 'resultproc_t' + +Fixes + +| /mnt/a/oe/build/tmp/work/mips32r2-bec-linux-musl/openl2tp/1.8-r0/recipe-sysroot/usr/include/tirpc/rpc/pmap_clnt.h:81:12: error: unknown type name 'resultproc_t'; did you mean 'rpcproc_t'? | resultproc_t); | ^~~~~~~~~~~~ + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + l2tp_api.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/l2tp_api.c b/l2tp_api.c +index f0946fd..f77881c 100644 +--- a/l2tp_api.c ++++ b/l2tp_api.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include + //#include + +-- +2.14.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-test-pppd_dummy.c-Fix-return-value.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-test-pppd_dummy.c-Fix-return-value.patch new file mode 100644 index 00000000000..1f576fa7102 --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-test-pppd_dummy.c-Fix-return-value.patch @@ -0,0 +1,38 @@ +From ce5f5563ab54db9d28dba44a0e25e8a8c7bb9876 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 19 Oct 2016 00:34:35 +0000 +Subject: [PATCH] test/pppd_dummy.c: Fix return value + +pause() is defined in unistd.h, clang does not +like the fact that we are using a function without +declaration + +Signed-off-by: Khem Raj +--- + test/pppd_dummy.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/test/pppd_dummy.c b/test/pppd_dummy.c +index 148e7d2..b564c36 100644 +--- a/test/pppd_dummy.c ++++ b/test/pppd_dummy.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #define PPPD_DUMMY_TMP_FILE "/tmp/pppd_dummy" + +@@ -40,7 +41,7 @@ int main(int argc, char **argv) + + if (file == NULL) { + syslog(LOG_ERR, "Failed to open %s\n", filename); +- return; ++ return -1; + } + + for (arg = 1; arg < argc; arg++) { +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch new file mode 100644 index 00000000000..9df32658a01 --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch @@ -0,0 +1,25 @@ +From 2d633f4c18ff3cb52234449fd86a0a63b55d669b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 11:31:55 -0700 +Subject: [PATCH 2/4] cli: include fcntl.h for O_CREAT define + +Signed-off-by: Khem Raj +--- + cli/cli_readline.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cli/cli_readline.c b/cli/cli_readline.c +index 097ed6a..127136c 100644 +--- a/cli/cli_readline.c ++++ b/cli/cli_readline.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + + #include +-- +2.12.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch new file mode 100644 index 00000000000..3f8bcaa483a --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch @@ -0,0 +1,33 @@ +From a41cbeee3cf660663a9baac80545050a8d960898 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 18:09:58 -0700 +Subject: [PATCH 2/2] user ipv6 structures + +Signed-off-by: Khem Raj +--- + l2tp_api.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/l2tp_api.c b/l2tp_api.c +index 9d6f60a..f0946fd 100644 +--- a/l2tp_api.c ++++ b/l2tp_api.c +@@ -450,10 +450,12 @@ int l2tp_api_rpc_check_request(SVCXPRT *xprt) + * non-loopback interface, reject the request. + */ + if ((!l2tp_opt_remote_rpc) && +- ((xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) && +- (xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_ANY)))) { ++ ((xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_LOOPBACK)) && ++ (xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_ANY)))) { ++ char straddr[INET6_ADDRSTRLEN]; ++ inet_ntop(AF_INET6, &xprt->xp_raddr.sin6_addr, straddr, sizeof(straddr)); + if (l2tp_opt_trace_flags & L2TP_DEBUG_API) { +- l2tp_log(LOG_ERR, "Rejecting RPC request from %s", inet_ntoa(xprt->xp_raddr.sin_addr)); ++ l2tp_log(LOG_ERR, "Rejecting RPC request from %s", straddr); + } + svcerr_auth(xprt, AUTH_TOOWEAK); + return -EPERM; +-- +2.12.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch new file mode 100644 index 00000000000..e05be1bbb4e --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch @@ -0,0 +1,35 @@ +From 74fe72583472bcc3c89a52839cac2ebbad6c8a74 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 11:34:52 -0700 +Subject: [PATCH 3/4] cli: Define _GNU_SOURCE for getting sighandler_t + +Signed-off-by: Khem Raj +--- + cli/cli_readline.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cli/cli_readline.c b/cli/cli_readline.c +index 127136c..931779b 100644 +--- a/cli/cli_readline.c ++++ b/cli/cli_readline.c +@@ -17,7 +17,7 @@ + * Boston, MA 02110-1301 USA + * + *****************************************************************************/ +- ++#define _GNU_SOURCE + #include + #include + #include +@@ -634,7 +634,7 @@ static void cli_rl_uninstall_signal_handlers(void) + + static int cli_rl_install_signal_handlers(void) + { +- __sighandler_t handler; ++ sighandler_t handler; + + rl_catch_signals = 0; + rl_clear_signals(); +-- +2.12.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch new file mode 100644 index 00000000000..0fcba6546ac --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch @@ -0,0 +1,36 @@ +From ede4ae8e25f9fb746a6f4e076d0ef029938d2880 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 11:46:56 -0700 +Subject: [PATCH 4/4] Adjust for linux-kernel headers assumptions on glibc + +Fixes build issues e.g. + +In file included from /mnt/a/build/tmp-musl/work/cortexa7hf-neon-vfpv4-oe-linux-musleabi/openl2tp/1.8-r0/recipe-sysroot/usr/include/linux/if_pppox.h:24: +/mnt/a/build/tmp-musl/work/cortexa7hf-neon-vfpv4-oe-linux-musleabi/openl2tp/1.8-r0/recipe-sysroot/usr/include/linux/if.h:97:2: error: expected identifier + IFF_LOWER_UP = 1<<16, /* __volatile__ */ + ^ + +Signed-off-by: Khem Raj +--- + plugins/ppp_unix.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/plugins/ppp_unix.c b/plugins/ppp_unix.c +index 869066f..5c1e44f 100644 +--- a/plugins/ppp_unix.c ++++ b/plugins/ppp_unix.c +@@ -21,6 +21,11 @@ + * Plugin to use the standard UNIX pppd + */ + ++/* hack to make sure kernel headers understand that libc (musl) ++ * does define IFF_LOWER_UP et al. ++ */ ++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0 ++ + #include + #include + #include +-- +2.12.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-obey-LDFLAGS.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-obey-LDFLAGS.patch new file mode 100644 index 00000000000..811faddd01a --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-obey-LDFLAGS.patch @@ -0,0 +1,15 @@ +Upstream-Status: Pending + +--- openl2tp-1.8/Makefile.orig 2016-09-16 14:54:18.554291976 +0200 ++++ openl2tp-1.8/Makefile 2016-09-16 14:57:23.559090400 +0200 +@@ -157,8 +157,8 @@ ADD_CFLAGS= -I. -Iusl -Icli -isystem i + -MMD -Wall -Wno-strict-aliasing \ + $(ADD_CPPFLAGS) $(CPPFLAGS.dmalloc) \ + -DSYS_LIBDIR=$(SYS_LIBDIR) +-LDFLAGS.l2tpd= -Wl,-E -L. -Lusl -lusl -ldl $(LIBS.dmalloc) -lc +-LDFLAGS.l2tpconfig= -Lcli -lcli -lreadline $(LIBS.dmalloc) $(READLINE_LDFLAGS) -lc ++LDFLAGS.l2tpd= -Wl,-E -L. -Lusl -lusl -ldl $(LIBS.dmalloc) -lc $(LDFLAGS) ++LDFLAGS.l2tpconfig= -Lcli -lcli -lreadline $(LIBS.dmalloc) $(READLINE_LDFLAGS) -lc $(LDFLAGS) + + OPT_CFLAGS?= -O + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch new file mode 100644 index 00000000000..3119425e69e --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch @@ -0,0 +1,35 @@ +commit 6ea3125e2bec15004f312814022335d94cdf7e94 +Author: Aws Ismail +Date: Wed Sep 19 11:34:48 2012 -0400 + + Fix openl2tp config script location + + Correct the location of the sysconfig + script. Use /etc/default/ instead of + /etc/sysconfig/ + + Signed-off-by: Aws Ismail + + Upstream-Status: Inappropriate [configuration] + + Signed-off-by: Jackie Huang + +diff --git a/etc/rc.d/init.d/openl2tpd b/etc/rc.d/init.d/openl2tpd +index 7f27bb7..4194f63 100755 +--- a/etc/rc.d/init.d/openl2tpd ++++ b/etc/rc.d/init.d/openl2tpd +@@ -8,12 +8,12 @@ + # can be used to implement L2TP VPNs. As a server, it can handle + # hundreds of tunnels and sessions. + # processname: openl2tpd +-# config: /etc/sysconfig/openl2tpd ++# config: /etc/default/openl2tpd + # pidfile: /var/run/openl2tpd.pid + + # Source function library. + . /etc/init.d/functions +-. /etc/sysconfig/openl2tpd ++. /etc/default/openl2tpd + + # See how we were called. + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-warning.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-warning.patch new file mode 100644 index 00000000000..15a8c5b088f --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-warning.patch @@ -0,0 +1,32 @@ +openl2tp: eliminate warning from modprobe + +modprobe will emit alarming warnings if it cannot +find a module, but we only care that it find one +of two possible modules when we start openl2tpd. + +Suppress messages from modprobe. + +Upstream-Status: Pending + +Signed-off-by: Joe Slater + +--- a/etc/rc.d/init.d/openl2tpd ++++ b/etc/rc.d/init.d/openl2tpd +@@ -29,7 +29,7 @@ start() { + return 1 + fi + fi +- modprobe -s pppol2tp || modprobe -s l2tp_ppp ++ modprobe -sq pppol2tp || modprobe -sq l2tp_ppp + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + start-stop-daemon --start --exec openl2tpd $OPENL2TPDARGS +@@ -57,7 +57,7 @@ stop() { + return 1; + fi + killproc openl2tpd +- modprobe -s -r pppol2tp || modprobe -s -r l2tp_ppp ++ modprobe -srq pppol2tp || modprobe -srq l2tp_ppp + echo + rm -f /var/run/openl2tpd.pid + rm -f /var/lock/subsys/openl2tpd diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch new file mode 100644 index 00000000000..9ecd4b072fa --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch @@ -0,0 +1,49 @@ +commit 7c58a1e244ea83a9e7bbd51a6d354cee25cdbd33 +Author: Aws Ismail +Date: Wed Sep 12 23:35:40 2012 -0400 + + Fix openl2tpd initscript + + - Correct the location of the retval statement. + - use start-stop-daemon instead of daemon. + + Signed-off-by: Aws Ismail + + Upstream-Status: Inappropriate [OE specific] + + Signed-off-by: Jackie Huang + +diff --git a/etc/rc.d/init.d/openl2tpd b/etc/rc.d/init.d/openl2tpd +index ce21b50..7f27bb7 100755 +--- a/etc/rc.d/init.d/openl2tpd ++++ b/etc/rc.d/init.d/openl2tpd +@@ -24,7 +24,7 @@ start() { + if [ -e /var/lock/subsys/openl2tpd ]; then + if [ -e /var/run/openl2tpd.pid ] && [ -e /proc/`cat /var/run/openl2tpd.pid` ]; then + echo -n $"cannot start openl2tpd: openl2tpd is already running."; +- failure $"cannot start openl2tpd: openl2tpd already running."; ++ #failure $"cannot start openl2tpd: openl2tpd already running."; + echo + return 1 + fi +@@ -32,9 +32,9 @@ start() { + modprobe -s pppol2tp || modprobe -s l2tp_ppp + RETVAL=$? + if [ $RETVAL -eq 0 ]; then +- daemon openl2tpd $OPENL2TPDARGS ++ start-stop-daemon --start --exec openl2tpd $OPENL2TPDARGS ++ RETVAL=$? + fi +- RETVAL=$? + echo + if [ $RETVAL -eq 0 ]; then + touch /var/lock/subsys/openl2tpd +@@ -52,7 +52,7 @@ stop() { + echo -n $"Stopping $prog: " + if [ ! -e /var/lock/subsys/openl2tpd ]; then + echo -n $"cannot stop openl2tpd: openl2tpd is not running." +- failure $"cannot stop openl2tpd: openl2tpd is not running." ++ #failure $"cannot stop openl2tpd: openl2tpd is not running." + echo + return 1; + fi diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service new file mode 100644 index 00000000000..7b3faf6725e --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service @@ -0,0 +1,17 @@ +[Unit] +Description=The open L2TP implementation +After=network.target remote-fs.target nss-lookup.target rpcbind.target +Requires=rpcbind.service + +[Service] +Type=forking +PIDFile=@STATEDIR@/run/openl2tpd.pid +EnvironmentFile=@SYSCONFDIR@/default/openl2tpd +ExecStartPre=@BASE_BINDIR@/sh -c "@BASE_SBINDIR@/modprobe -sq l2tp_ppp || @BASE_SBINDIR@/modprobe -sq pppol2tp" +ExecStart=@SBINDIR@/openl2tpd $OPENL2TPDARGS +ExecStartPost=@BASE_BINDIR@/sh -c 'if [ -n "$OPENL2TPD_CONFIG_FILE" ]; then sleep 1; @BINDIR@/l2tpconfig config restore file=$OPENL2TPD_CONFIG_FILE; fi' +ExecStopPost=@BASE_BINDIR@/sh -c "@BASE_SBINDIR@/modprobe -rsq l2tp_ppp || @BASE_SBINDIR@/modprobe -rsq pppol2tp" +SuccessExitStatus=1 + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb b/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb index 5a041073de8..bbde8a337d8 100644 --- a/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb @@ -6,22 +6,53 @@ products and is able to support hundreds of sessions, each with \ different configuration. It is used by several ISPs to provide \ L2TP services and by corporations to implement L2TP VPNs." HOMEPAGE = "http://www.openl2tp.org/" -SECTION = "console/network" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=e9d9259cbbf00945adc25a470c1d3585" +SECTION = "net" + +# cli and usl use license LGPL-2.1 +LICENSE = "GPL-2.0 & LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=e9d9259cbbf00945adc25a470c1d3585 \ + file://LICENSE;md5=f8970abd5ea9be701a0deedf5afd77a5 \ + file://cli/LICENSE;md5=9c1387a3c5213aa40671438af3e00793 \ + file://usl/LICENSE;md5=9c1387a3c5213aa40671438af3e00793 \ + " + DEPENDS = "popt flex readline" -SRC_URI = "http://ftp.jaist.ac.jp/pub/sourceforge/o/op/${PN}/${PN}/${PV}/${BP}.tar.gz \ +SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \ file://Makefile-modify-CFLAGS-to-aviod-build-error.patch \ file://openl2tp-simplify-gcc-warning-hack.patch \ - " + file://Makefile-obey-LDFLAGS.patch \ + file://0001-test-pppd_dummy.c-Fix-return-value.patch \ + file://0001-Use-1-instead-of-WAIT_ANY.patch \ + file://0002-cli-include-fcntl.h-for-O_CREAT-define.patch \ + file://0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch \ + file://0001-l2tp_api-Included-needed-headers.patch \ + file://openl2tpd-initscript-fix.patch \ + file://openl2tpd-initscript-fix-sysconfig.patch \ + file://openl2tpd-initscript-fix-warning.patch \ + file://openl2tpd.service \ + " + +SRC_URI_append_libc-musl = "\ + file://0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch \ + file://0002-user-ipv6-structures.patch \ + file://0001-l2tp_api.c-include-rpc-clnt.h-for-resultproc_t.patch \ + " SRC_URI[md5sum] = "e3d08dedfb9e6a9a1e24f6766f6dadd0" SRC_URI[sha256sum] = "1c97704d4b963a87fbc0e741668d4530933991515ae9ab0dffd11b5444f4860f" -inherit autotools-brokensep pkgconfig +inherit autotools-brokensep pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "openl2tpd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +DEPENDS_append_libc-musl = " libtirpc" +CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" PARALLEL_MAKE = "" -EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-nused-but-set-variable"' +EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-unused-but-set-variable" CPPFLAGS="${CPPFLAGS}" OPT_CFLAGS="${CFLAGS}"' do_compile_prepend() { sed -i -e "s:SYS_LIBDIR=.*:SYS_LIBDIR=${libdir}:g" \ @@ -32,5 +63,26 @@ do_compile_prepend() { -e 's:$(CROSS_COMPILE)nm:${NM}:g' \ -e 's:$(CROSS_COMPILE)strip:${STRIP}:g' \ -e 's:$(CROSS_COMPILE)install:install:g' \ + -e 's:CPPFLAGS-y:CPPFLAGS:g' \ ${S}/Makefile } + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/default + install -m 0755 ${S}/etc/rc.d/init.d/openl2tpd ${D}${sysconfdir}/init.d/openl2tpd + install -m 0755 ${S}/etc/sysconfig/openl2tpd ${D}${sysconfdir}/default/openl2tpd + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -D -m 0644 ${WORKDIR}/openl2tpd.service ${D}${systemd_system_unitdir}/openl2tpd.service + sed -i -e 's,@STATEDIR@,${localstatedir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@BINDIR@,${bindir},g' \ + -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ + -e 's,@BASE_BINDIR@,${base_bindir},g' \ + ${D}${systemd_system_unitdir}/openl2tpd.service + fi +} + +RDEPENDS_${PN} = "ppp ppp-l2tp bash" diff --git a/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.7.2/fix-parallel-build.patch b/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.7.2/fix-parallel-build.patch deleted file mode 100644 index 77722b064d1..00000000000 --- a/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.7.2/fix-parallel-build.patch +++ /dev/null @@ -1,19 +0,0 @@ -pptp.c and version.c depend on config.h - -Upstream-Status: Backport - -Upstream has already similar fixes. Will be available on next release. - -Signed-off-by: Jesse Zhang - ---- a/Makefile 2013-02-27 17:09:24.431226665 +0800 -+++ b/Makefile 2013-02-27 17:09:03.442075550 +0800 -@@ -43,6 +43,8 @@ - pptpsetup.8: pptpsetup - pod2man $? > $@ - -+pptp.o version.o: config.h -+ - config.h: - echo "/* text added by Makefile target config.h */" > config.h - echo "#define PPTP_LINUX_VERSION \"$(VERSION)$(RELEASE)\"" >> config.h diff --git a/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch b/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch new file mode 100644 index 00000000000..804bf123497 --- /dev/null +++ b/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch @@ -0,0 +1,28 @@ +From f6c4d2468ae0dadd2f35680d61b98b2a59077328 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 10:31:03 -0700 +Subject: [PATCH] include missing sys/types.h + +Fixes errors seen on musl +pqueue.h:21:3: error: unknown type name 'u_int32_t' + +Signed-off-by: Khem Raj +--- + pqueue.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pqueue.h b/pqueue.h +index c37ba7b..ae4cc6a 100644 +--- a/pqueue.h ++++ b/pqueue.h +@@ -3,6 +3,7 @@ + + #include + #include ++#include + + /* wait this many seconds for missing packets before forgetting about them */ + #define DEFAULT_PACKET_TIMEOUT 0.3 +-- +2.13.2 + diff --git a/meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.7.2/options.pptp b/meta-networking/recipes-protocols/pptp-linux/pptp-linux/options.pptp similarity index 100% rename from meta-networking/recipes-protocols/pptp-linux/pptp-linux-1.7.2/options.pptp rename to meta-networking/recipes-protocols/pptp-linux/pptp-linux/options.pptp diff --git a/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.7.2.bb b/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.7.2.bb deleted file mode 100644 index 6a90578bc64..00000000000 --- a/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.7.2.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Client for Microsoft PPTP VPNs" -DESCRIPTION = "PPTP Client is a Linux, FreeBSD, NetBSD \ - and OpenBSD client for the proprietary Microsoft Point-to-Point \ - Tunneling Protocol, PPTP. Allows connection to a PPTP based \ - Virtual Private Network (VPN) as used by employers and some \ - cable and ADSL internet service providers." -HOMEPAGE = "http://pptpclient.sourceforge.net" -SECTION = "network" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" - -PR = "r1" - -SRC_URI = "${SOURCEFORGE_MIRROR}/sourceforge/pptpclient/pptp-${PV}.tar.gz \ - file://options.pptp \ - file://fix-parallel-build.patch \ -" - -SRC_URI[md5sum] = "4c3d19286a37459a632c7128c92a9857" -SRC_URI[sha256sum] = "e98ae0065d2a39fa3131654ff28cb7070e996f668ed6d0e7d9a445b8d37694bc" - -S = "${WORKDIR}/pptp-${PV}" - -do_install() { - install -d ${D}${sbindir} ${D}${sysconfdir}/ppp ${D}${mandir}/man8 - install -m 555 pptp ${D}${sbindir} - install -m 644 pptp.8 ${D}${mandir}/man8 - install -m 644 ${WORKDIR}/options.pptp ${D}${sysconfdir}/ppp -} - -RDEPENDS_${PN} = "ppp" diff --git a/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb b/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb new file mode 100644 index 00000000000..10c9170fb10 --- /dev/null +++ b/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb @@ -0,0 +1,31 @@ +SUMMARY = "Client for Microsoft PPTP VPNs" +DESCRIPTION = "PPTP Client is a Linux, FreeBSD, NetBSD \ + and OpenBSD client for the proprietary Microsoft Point-to-Point \ + Tunneling Protocol, PPTP. Allows connection to a PPTP based \ + Virtual Private Network (VPN) as used by employers and some \ + cable and ADSL internet service providers." +HOMEPAGE = "http://pptpclient.sourceforge.net" +SECTION = "net" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "${SOURCEFORGE_MIRROR}/sourceforge/pptpclient/pptp-${PV}.tar.gz \ + file://options.pptp \ + file://0001-include-missing-sys-types.h.patch \ + " + +SRC_URI[md5sum] = "b2117b377f65294a9786f80f0235d308" +SRC_URI[sha256sum] = "0b1e8cbfc578d3f5ab12ee87c5c2c60419abfe9cc445690a8a19c320b11c9201" + +S = "${WORKDIR}/pptp-${PV}" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_install() { + install -d ${D}${sbindir} ${D}${sysconfdir}/ppp ${D}${mandir}/man8 + install -m 555 pptp ${D}${sbindir} + install -m 644 pptp.8 ${D}${mandir}/man8 + install -m 644 ${WORKDIR}/options.pptp ${D}${sysconfdir}/ppp +} + +RDEPENDS_${PN} = "ppp" diff --git a/meta-networking/recipes-protocols/quagga/files/Zebra-sync-zebra-routing-table-with-the-kernel-one.patch b/meta-networking/recipes-protocols/quagga/files/Zebra-sync-zebra-routing-table-with-the-kernel-one.patch deleted file mode 100644 index 35f4637d8e8..00000000000 --- a/meta-networking/recipes-protocols/quagga/files/Zebra-sync-zebra-routing-table-with-the-kernel-one.patch +++ /dev/null @@ -1,48 +0,0 @@ -sync zebra routing table with the kernel one when interface is down - -Add router to kernel main router table with "ip", then you can see -a router item in kernel main router table. Also can see this router -item in zebra router table. If down the interface, this router item -will be deleted from kernel main router table, but it will not be -deleted from zebra router table, just set as inactive. - -This patch is adopted from [1]. -[1] http://www.gossamer-threads.com/lists/quagga/dev/22609 - -Upstream-Status: Pending - -Signed-of-by: Aws Ismail -Signed-of-by: Roy.Li - ---- - zebra/zebra_rib.c | 7 +++++++ - 1 files changed, 7 insertions(+), 0 deletions(-) - -diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c -index 154e8d5..63434d0 100644 ---- a/zebra/zebra_rib.c -+++ b/zebra/zebra_rib.c -@@ -765,6 +765,9 @@ rib_match_ipv6 (struct in6_addr *addr) - #define RIB_SYSTEM_ROUTE(R) \ - ((R)->type == ZEBRA_ROUTE_KERNEL || (R)->type == ZEBRA_ROUTE_CONNECT) - -+#define RIB_KERNEL_ROUTE(R) \ -+ ((R)->type == ZEBRA_ROUTE_KERNEL) -+ - /* This function verifies reachability of one given nexthop, which can be - * numbered or unnumbered, IPv4 or IPv6. The result is unconditionally stored - * in nexthop->flags field. If the 4th parameter, 'set', is non-zero, -@@ -1135,6 +1138,10 @@ rib_process (struct route_node *rn) - redistribute_delete (&rn->p, fib); - if (! RIB_SYSTEM_ROUTE (fib)) - rib_uninstall_kernel (rn, fib); -+#ifdef GNU_LINUX -+ else if(RIB_KERNEL_ROUTE (fib) && !if_is_up(if_lookup_by_index(fib->nexthop->ifindex))) -+ del=fib; -+#endif - UNSET_FLAG (fib->flags, ZEBRA_FLAG_SELECTED); - - /* Set real nexthop. */ --- -1.7.4.1 - diff --git a/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch b/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch deleted file mode 100644 index c2757a2fb7f..00000000000 --- a/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch +++ /dev/null @@ -1,50 +0,0 @@ -From ba71f768e6dbb1f2ac72ed3bd880bff75a48d345 Mon Sep 17 00:00:00 2001 -From: Roy Li -Date: Wed, 19 Feb 2014 14:13:40 +0800 -Subject: [PATCH] babeld: close stdout once the background daemon is created - -Upstream-Status: pending - -Once babald becomes a background daemon, it should not output information to -stdout, so need to close stdout. - -In fact, other daemons close their stdout when they run into background, like -ospfd, isisd and bgpd, by calling daemon() which is in lib/daemon.c - -Closing the stdout can fix a tee hang issue { #/usr/sbin/babeld -d |tee tmp } - -Signed-off-by: Roy Li ---- - babeld/util.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/babeld/util.c b/babeld/util.c -index 011f382..76203bc 100644 ---- a/babeld/util.c -+++ b/babeld/util.c -@@ -425,7 +425,7 @@ uchar_to_in6addr(struct in6_addr *dest, const unsigned char *src) - int - daemonise() - { -- int rc; -+ int rc, fd; - - fflush(stdout); - fflush(stderr); -@@ -441,5 +441,13 @@ daemonise() - if(rc < 0) - return -1; - -+ fd = open("/dev/null", O_RDWR, 0); -+ if (fd != -1) -+ { -+ dup2(fd, STDOUT_FILENO); -+ if (fd > 2) -+ close(fd); -+ } -+ - return 1; - } --- -1.7.10.4 - diff --git a/meta-networking/recipes-protocols/quagga/files/babeld.service b/meta-networking/recipes-protocols/quagga/files/babeld.service deleted file mode 100644 index dd344b0b341..00000000000 --- a/meta-networking/recipes-protocols/quagga/files/babeld.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Babel routing daemon -BindTo=zebra.service -After=zebra.service -ConditionPathExists=@SYSCONFDIR@/quagga/babeld.conf - -[Service] -Type=forking -EnvironmentFile=-@SYSCONFDIR@/default/quagga -ExecStart=@SBINDIR@/babeld -d $babeld_options -f /etc/quagga/babeld.conf -Restart=on-abort - -[Install] -WantedBy=multi-user.target diff --git a/meta-networking/recipes-protocols/quagga/files/bgpd.service b/meta-networking/recipes-protocols/quagga/files/bgpd.service index 164c81724c4..76f9f61e73b 100644 --- a/meta-networking/recipes-protocols/quagga/files/bgpd.service +++ b/meta-networking/recipes-protocols/quagga/files/bgpd.service @@ -7,7 +7,9 @@ ConditionPathExists=@SYSCONFDIR@/quagga/bgpd.conf [Service] Type=forking EnvironmentFile=-@SYSCONFDIR@/default/quagga -ExecStart=@SBINDIR@/bgpd -d $bgpd_options -f /etc/quagga/bgpd.conf +PIDFile=@localstatedir@/run/quagga/bgpd.pid +ExecStart=@SBINDIR@/bgpd -d $bgpd_options -f @SYSCONFDIR@/quagga/bgpd.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/bgpd.pid Restart=on-abort [Install] diff --git a/meta-networking/recipes-protocols/quagga/files/ospf6d.service b/meta-networking/recipes-protocols/quagga/files/ospf6d.service index 4b8ebf80269..a2e493b423f 100644 --- a/meta-networking/recipes-protocols/quagga/files/ospf6d.service +++ b/meta-networking/recipes-protocols/quagga/files/ospf6d.service @@ -7,7 +7,9 @@ ConditionPathExists=@SYSCONFDIR@/quagga/ospf6d.conf [Service] Type=forking EnvironmentFile=-@SYSCONFDIR@/default/quagga -ExecStart=@SBINDIR@/ospf6d -d $ospf6d_options -f /etc/quagga/ospf6d.conf +PIDFile=@localstatedir@/run/quagga/ospf6d.pid +ExecStart=@SBINDIR@/ospf6d -d $ospf6d_options -f @SYSCONFDIR@/quagga/ospf6d.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/ospf6d.pid Restart=on-abort [Install] diff --git a/meta-networking/recipes-protocols/quagga/files/ospfd.service b/meta-networking/recipes-protocols/quagga/files/ospfd.service index f9f5031b4bf..0c62cbce582 100644 --- a/meta-networking/recipes-protocols/quagga/files/ospfd.service +++ b/meta-networking/recipes-protocols/quagga/files/ospfd.service @@ -7,7 +7,9 @@ ConditionPathExists=@SYSCONFDIR@/quagga/ospfd.conf [Service] Type=forking EnvironmentFile=-@SYSCONFDIR@/default/quagga -ExecStart=@SBINDIR@/ospfd -d $ospfd_options -f /etc/quagga/ospfd.conf +PIDFile=@localstatedir@/run/quagga/ospfd.pid +ExecStart=@SBINDIR@/ospfd -d $ospfd_options -f @SYSCONFDIR@/quagga/ospfd.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/ospfd.pid Restart=on-abort [Install] diff --git a/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch b/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch deleted file mode 100644 index a07e33f9fde..00000000000 --- a/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch +++ /dev/null @@ -1,54 +0,0 @@ -quagga: Avoid duplicate connected address adding to the list - -commit 27ba970b9("quagga/ripd: Fix two bugs after received SIGHUP signal") -introduces an regression: ifp->connected list is cleaned up when ripd is -restarting, however, for interface addresses which are not specified in -ripd configuration file, they are never to be added into ifp->connected -again, this will lead to some abnormal behavior for route advertising. - -Instead of cleaning up the ifp->connected list to avoid duplicated -connected address being added into this list, we can check this -condition during interface address adding process and return early -when an identical address has already been added. - -Upstream-Status: Pending - -Signed-off-by: Hu Yadi -Signed-off-by: Xufeng Zhang -Signed-off-by: Joe MacDonald ---- ---- a/lib/if.c -+++ b/lib/if.c -@@ -738,6 +738,16 @@ connected_add_by_prefix (struct interfac - struct prefix *destination) - { - struct connected *ifc; -+ struct listnode *cnode; -+ struct connected *c; -+ int ret = 0; -+ -+ for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, c)) -+ { -+ ret = connected_same_prefix (p, (c->address)); -+ if(ret == 1) -+ return NULL; -+ } - - /* Allocate new connected address. */ - ifc = connected_new (); ---- a/ripd/rip_interface.c -+++ b/ripd/rip_interface.c -@@ -516,13 +516,6 @@ rip_interface_clean (void) - thread_cancel (ri->t_wakeup); - ri->t_wakeup = NULL; - } -- -- for (conn_node = listhead (ifp->connected); conn_node; conn_node = next) -- { -- ifc = listgetdata (conn_node); -- next = conn_node->next; -- listnode_delete (ifp->connected, ifc); -- } - } - } - diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.default b/meta-networking/recipes-protocols/quagga/files/quagga.default index 0c1ce6c0427..4c4bc230719 100644 --- a/meta-networking/recipes-protocols/quagga/files/quagga.default +++ b/meta-networking/recipes-protocols/quagga/files/quagga.default @@ -4,7 +4,6 @@ vtysh_enable=yes # Bind all daemons to loopback only by default zebra_options=" --daemon -A 127.0.0.1" -babeld_options="--daemon -A 127.0.0.1" bgpd_options=" --daemon -A 127.0.0.1" ospfd_options=" --daemon -A 127.0.0.1" ospf6d_options="--daemon -A ::1" diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.init b/meta-networking/recipes-protocols/quagga/files/quagga.init index 60b5ab01a19..df1beb7123c 100644 --- a/meta-networking/recipes-protocols/quagga/files/quagga.init +++ b/meta-networking/recipes-protocols/quagga/files/quagga.init @@ -26,7 +26,7 @@ D_PATH=/usr/sbin C_PATH=/etc/quagga # Keep zebra first and do not list watchquagga! -DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld" +DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd" # Print the name of the pidfile. pidfile() diff --git a/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch b/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch deleted file mode 100644 index 4b8c9a929b4..00000000000 --- a/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch +++ /dev/null @@ -1,50 +0,0 @@ -ripd: Fix two bugs after received SIGHUP signal - -There are two problems for ripd implementation after received -SIGHUP signal: -1). ripd didn't clean up ifp->connected list before reload - configuration file. -2). ripd reset ri->split_horizon flag to RIP_NO_SPLIT_HORIZON - which lead to the unnecessary route to be advertised. - -Upstream-Status: Submitted [http://patchwork.diac24.net/patch/604/] - -Signed-off-by: Xufeng Zhang -Signed-off-by: Joe MacDonald ---- ---- a/ripd/rip_interface.c -+++ b/ripd/rip_interface.c -@@ -500,6 +500,8 @@ - struct listnode *node; - struct interface *ifp; - struct rip_interface *ri; -+ struct connected *ifc; -+ struct listnode *conn_node, *next; - - for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp)) - { -@@ -514,6 +516,13 @@ - thread_cancel (ri->t_wakeup); - ri->t_wakeup = NULL; - } -+ -+ for (conn_node = listhead (ifp->connected); conn_node; conn_node = next) -+ { -+ ifc = listgetdata (conn_node); -+ next = conn_node->next; -+ listnode_delete (ifp->connected, ifc); -+ } - } - } - -@@ -548,8 +557,8 @@ - ri->key_chain = NULL; - } - -- ri->split_horizon = RIP_NO_SPLIT_HORIZON; -- ri->split_horizon_default = RIP_NO_SPLIT_HORIZON; -+ ri->split_horizon = RIP_SPLIT_HORIZON; -+ ri->split_horizon_default = RIP_SPLIT_HORIZON; - - ri->list[RIP_FILTER_IN] = NULL; - ri->list[RIP_FILTER_OUT] = NULL; diff --git a/meta-networking/recipes-protocols/quagga/files/ripd.service b/meta-networking/recipes-protocols/quagga/files/ripd.service index 5dfd28b3ad1..1d20389e8bf 100644 --- a/meta-networking/recipes-protocols/quagga/files/ripd.service +++ b/meta-networking/recipes-protocols/quagga/files/ripd.service @@ -7,7 +7,9 @@ ConditionPathExists=@SYSCONFDIR@/quagga/ripd.conf [Service] Type=forking EnvironmentFile=-@SYSCONFDIR@/default/quagga -ExecStart=@SBINDIR@/ripd -d $ripd_options -f /etc/quagga/ripd.conf +PIDFile=@localstatedir@/run/quagga/ripd.pid +ExecStart=@SBINDIR@/ripd -d $ripd_options -f @SYSCONFDIR@/quagga/ripd.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/ripd.pid Restart=on-abort [Install] diff --git a/meta-networking/recipes-protocols/quagga/files/ripngd.service b/meta-networking/recipes-protocols/quagga/files/ripngd.service index 72562d5f7c6..0355ad12a45 100644 --- a/meta-networking/recipes-protocols/quagga/files/ripngd.service +++ b/meta-networking/recipes-protocols/quagga/files/ripngd.service @@ -7,7 +7,9 @@ ConditionPathExists=@SYSCONFDIR@/quagga/ripngd.conf [Service] Type=forking EnvironmentFile=-@SYSCONFDIR@/default/quagga -ExecStart=@SBINDIR@/ripngd -d $ripngd_options -f /etc/quagga/ripngd.conf +PIDFile=@localstatedir@/run/quagga/ripngd.pid +ExecStart=@SBINDIR@/ripngd -d $ripngd_options -f @SYSCONFDIR@/quagga/ripngd.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/ripngd.pid Restart=on-abort [Install] diff --git a/meta-networking/recipes-protocols/quagga/files/zebra.service b/meta-networking/recipes-protocols/quagga/files/zebra.service index afdd9e52db1..e4fb6c808dd 100644 --- a/meta-networking/recipes-protocols/quagga/files/zebra.service +++ b/meta-networking/recipes-protocols/quagga/files/zebra.service @@ -7,8 +7,10 @@ ConditionPathExists=@SYSCONFDIR@/quagga/zebra.conf [Service] Type=forking EnvironmentFile=-@SYSCONFDIR@/default/quagga +PIDFile=@localstatedir@/run/quagga/zebra.pid ExecStartPre=@BASE_SBINDIR@/ip route flush proto zebra -ExecStart=@SBINDIR@/zebra -d $zebra_options -f /etc/quagga/zebra.conf +ExecStart=@SBINDIR@/zebra -d $zebra_options -f @SYSCONFDIR@/quagga/zebra.conf +ExecStopPost=@base_bindir@/rm -rf @localstatedir@/run/quagga/zebra.pid Restart=on-abort [Install] diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc index 2c0817b83f0..dfd6aa7eb1f 100644 --- a/meta-networking/recipes-protocols/quagga/quagga.inc +++ b/meta-networking/recipes-protocols/quagga/quagga.inc @@ -6,32 +6,27 @@ Quagga is a fork of GNU Zebra which was developed by Kunihiro \ Ishiguro. The Quagga tree aims to build a more involved community \ around Quagga than the current centralised model of GNU Zebra." HOMEPAGE = "http://www.nongnu.org/quagga/" -SECTION = "network" -LICENSE = "GPL-2.0 & LGPL-2.0" -DEPENDS = "readline ncurses perl-native" -DEPENDS += "${@base_contains('DISTRO_FEATURES', 'snmp', 'net-snmp', '', d)}" -SNMP_CONF="${@base_contains('DISTRO_FEATURES', 'snmp', '--enable-snmp', '', d)}" +SECTION = "net" + +LICENSE = "GPL-2.0 & LGPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=81bcece21748c91ba9992349a91ec11d \ file://COPYING.LIB;md5=01ef24401ded36cd8e5d18bfe947240c" +DEPENDS = "readline ncurses perl-native c-ares" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'snmp', 'net-snmp', '', d)}" +SNMP_CONF="${@bb.utils.contains('DISTRO_FEATURES', 'snmp', '--enable-snmp', '', d)}" + # the "ip" command from busybox is not sufficient (flush by protocol flushes all routes) RDEPENDS_${PN} += "iproute2" -QUAGGASUBDIR = "" -# ${QUAGGASUBDIR} is deal with old versions. Set to "/attic" for old -# versions and leave it empty for recent versions. -SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz; \ - file://Zebra-sync-zebra-routing-table-with-the-kernel-one.patch \ +SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga/quagga-${PV}.tar.gz; \ file://quagga.init \ file://quagga.default \ file://watchquagga.init \ file://watchquagga.default \ file://volatiles.03_quagga \ file://quagga.pam \ - file://ripd-fix-two-bugs-after-received-SIGHUP.patch \ - file://quagga-Avoid-duplicate-connected-address.patch \ - file://babeld.service \ file://bgpd.service \ file://isisd.service \ file://ospf6d.service \ @@ -39,16 +34,15 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz; \ file://ripd.service \ file://ripngd.service \ file://zebra.service \ -" + " -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap" PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam" -inherit autotools update-rc.d useradd systemd +inherit autotools update-rc.d useradd systemd pkgconfig -SYSTEMD_PACKAGES = "${PN} ${PN}-babeld ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" -SYSTEMD_SERVICE_${PN}-babeld = "babeld.service" +SYSTEMD_PACKAGES = "${PN} ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" SYSTEMD_SERVICE_${PN}-bgpd = "bgpd.service" SYSTEMD_SERVICE_${PN}-isisd = "isisd.service" SYSTEMD_SERVICE_${PN}-ospf6d = "ospf6d.service" @@ -62,10 +56,7 @@ EXTRA_OECONF = "--sysconfdir=${sysconfdir}/quagga \ --enable-exampledir=${docdir}/quagga/examples/ \ --enable-vtysh \ --enable-isisd \ - ${@base_contains('DISTRO_FEATURES', 'sysvinit', '--enable-watchquagga', '--disable-watchquagga', d)} \ - --enable-ospf-te \ - --enable-opaque-lsa \ - --enable-ipv6 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '--enable-watchquagga', '--disable-watchquagga', d)} \ --enable-ospfclient=yes \ --enable-multipath=64 \ --enable-user=quagga \ @@ -78,6 +69,8 @@ EXTRA_OECONF = "--sysconfdir=${sysconfdir}/quagga \ ap_cv_cc_pie=no \ ${SNMP_CONF}" +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'" + do_install () { # Install init script and default settings install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d \ @@ -89,12 +82,12 @@ do_install () { install -m 0644 ${WORKDIR}/volatiles.03_quagga ${D}${sysconfdir}/default/volatiles/volatiles.03_quagga # Install sample configurations for the daemons - for f in bgpd vtysh babeld isisd ospfd ripngd zebra ripd ospf6d; do + for f in bgpd vtysh isisd ospfd ripngd zebra ripd ospf6d; do install -m 0640 ${S}/$f/$f.conf.sample ${D}${sysconfdir}/quagga/$f.conf.sample done - for f in bgpd vtysh babeld isisd ospfd ripngd zebra ripd ospf6d; do - touch ${D}${sysconfdir}/quagga/$f.conf + for f in bgpd vtysh isisd ospfd ripngd zebra ripd ospf6d; do + touch ${D}${sysconfdir}/quagga/$f.conf done chown quagga:quaggavty ${D}${sysconfdir}/quagga chown quagga:quagga ${D}${sysconfdir}/quagga/*.conf @@ -114,10 +107,6 @@ do_install () { sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/* ${D}${sysconfdir}/default/volatiles/volatiles.03_quagga sed -i 's!^PATH=.*!PATH=${base_sbindir}:${sbindir}:${base_bindir}:${bindir}!' ${D}${sysconfdir}/init.d/* - # Remove generated info dir file, it doesn't belong in the generated - # package. - rm -f ${D}${infodir}/dir - # For PAM for feature in ${DISTRO_FEATURES}; do if [ "$feature" = "pam" ]; then @@ -126,7 +115,7 @@ do_install () { fi done - if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/tmpfiles.d echo "d /var/run/quagga 0755 quagga quagga -" \ > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf @@ -139,12 +128,14 @@ do_install () { fi install -d ${D}${systemd_unitdir}/system - for i in babeld bgpd isisd ospf6d ospfd ripd ripngd zebra; do + for i in bgpd isisd ospf6d ospfd ripd ripngd zebra; do install -m 0644 ${WORKDIR}/$i.service ${D}${systemd_unitdir}/system done sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ -e 's,@SYSCONFDIR@,${sysconfdir},g' \ -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@base_bindir@,${base_bindir},g' \ + -e 's,@localstatedir@,${localstatedir},g' \ -i ${D}${systemd_unitdir}/system/*.service } @@ -159,15 +150,14 @@ pkg_postinst_${PN} () { } # Split into a main package and separate per-protocol packages -PACKAGE_BEFORE_PN = "${PN}-ospfd ${PN}-ospf6d ${PN}-babeld ${PN}-bgpd \ +PACKAGE_BEFORE_PN = "${PN}-ospfd ${PN}-ospf6d ${PN}-bgpd \ ${PN}-ripd ${PN}-ripngd ${PN}-isisd \ - ${PN}-ospfclient ${@base_contains('DISTRO_FEATURES', 'sysvinit', '${PN}-watchquagga', '', d)}" + ${PN}-ospfclient ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '${PN}-watchquagga', '', d)}" -RDEPENDS_${PN} += "${PN}-babeld ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" +RDEPENDS_${PN} += "${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" FILES_${PN}-ospfd = "${sbindir}/ospfd ${libdir}/libospf.so.*" FILES_${PN}-ospf6d = "${sbindir}/ospf6d" -FILES_${PN}-babeld = "${sbindir}/babeld" FILES_${PN}-bgpd = "${sbindir}/bgpd" FILES_${PN}-ripd = "${sbindir}/ripd" FILES_${PN}-ripngd = "${sbindir}/ripngd" @@ -180,7 +170,6 @@ FILES_${PN}-watchquagga = "${sbindir}/watchquagga ${sysconfdir}/default/watchqua CONFFILES_${PN} = "${sysconfdir}/default/quagga \ ${sysconfdir}/quagga/bgpd.conf \ ${sysconfdir}/quagga/vtysh.conf \ - ${sysconfdir}/quagga/babeld.conf \ ${sysconfdir}/quagga/isisd.conf \ ${sysconfdir}/quagga/ospfd.conf \ ${sysconfdir}/quagga/ripngd.conf \ @@ -194,9 +183,6 @@ CONFFILES_${PN}-watchquagga = "${sysconfdir}/default/watchquagga" DEBIAN_NOAUTONAME_${PN}-ospfd = "1" DEBIAN_NOAUTONAME_${PN}-ospfclient = "1" -# the "ip" command from busybox is not sufficient (flush by protocol flushes all routes) -RDEPENDS_${PN} += "iproute2" - # Main init script starts all deamons # Seperate init script for watchquagga INITSCRIPT_PACKAGES = "${PN} ${PN}-watchquagga" @@ -208,7 +194,7 @@ INITSCRIPT_PARAMS_${PN}-watchquagga = "defaults 90 10" # Add quagga's user and group USERADD_PACKAGES = "${PN}" GROUPADD_PARAM_${PN} = "--system quagga ; --system quaggavty" -USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga --shell /bin/false quagga" +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga -G quaggavty --shell /bin/false quagga" pkg_postinst_${PN} () { if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then @@ -229,10 +215,6 @@ pkg_prerm_${PN}-ospf6d () { ${sysconfdir}/init.d/quagga stop ospf6d } -pkg_prerm_${PN}-babeld () { - ${sysconfdir}/init.d/quagga stop babeld -} - pkg_prerm_${PN}-bgpd () { ${sysconfdir}/init.d/quagga stop bgpd } diff --git a/meta-networking/recipes-protocols/quagga/quagga_0.99.23.bb b/meta-networking/recipes-protocols/quagga/quagga_0.99.23.bb deleted file mode 100644 index a56767e518f..00000000000 --- a/meta-networking/recipes-protocols/quagga/quagga_0.99.23.bb +++ /dev/null @@ -1,9 +0,0 @@ -require quagga.inc - -SRC_URI += "file://babel-close-the-stdout-stderr-as-in-other-daemons.patch \ -" - -SRC_URI[md5sum] = "d17145e62b6ea14f0f13bb63f59e5166" -SRC_URI[sha256sum] = "2c7798204f35dc7acea9f206647e8aa3957cae3b21733cdff413b506481a101c" - -QUAGGASUBDIR = "" diff --git a/meta-networking/recipes-protocols/quagga/quagga_1.2.1.bb b/meta-networking/recipes-protocols/quagga/quagga_1.2.1.bb new file mode 100644 index 00000000000..4d43d7b2ac8 --- /dev/null +++ b/meta-networking/recipes-protocols/quagga/quagga_1.2.1.bb @@ -0,0 +1,4 @@ +require quagga.inc + +SRC_URI[md5sum] = "b1546de89062f7070d56e780b30be4b1" +SRC_URI[sha256sum] = "aaddba5d4f41ed8e4c2f155f4584c993465d122c9096b5b52ada3fc75266fbcd" diff --git a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb index 2350d4f88bd..95faa65b1e7 100644 --- a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb +++ b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Portable, easy-to-use and standard compliant library suitable \ for developing free and commercial software that need support for a RADIUS \ protocol (RFCs 2128 and 2139)." HOMEPAGE = "http://sourceforge.net/projects/radiusclient-ng.berlios/" -SECTION = "Applications/Internet" +SECTION = "net" SRC_URI = "${DEBIAN_MIRROR}/main/r/${BPN}/${BPN}_${PV}.orig.tar.gz \ file://Modify-configure.in-and-etc-Makefile.am.patch \ diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0001-ppoe-Dont-include-linux-if_ether.h.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0001-ppoe-Dont-include-linux-if_ether.h.patch new file mode 100644 index 00000000000..11356ce3f7a --- /dev/null +++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0001-ppoe-Dont-include-linux-if_ether.h.patch @@ -0,0 +1,30 @@ +From 8d4d452d733bac8c5b55a90bddec8cc323cc9fa8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 19:20:07 -0700 +Subject: [PATCH 1/2] ppoe: Dont include linux/if_ether.h + +Fixes build with musl + +Signed-off-by: Khem Raj +--- + src/pppoe.h | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/pppoe.h b/src/pppoe.h +index ec067a0..281879c 100644 +--- a/src/pppoe.h ++++ b/src/pppoe.h +@@ -127,10 +127,6 @@ typedef unsigned long UINT32_t; + #error Could not find a 32-bit integer type + #endif + +-#ifdef HAVE_LINUX_IF_ETHER_H +-#include +-#endif +- + #include + + #ifdef HAVE_NETINET_IF_ETHER_H +-- +2.12.1 + diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0002-Enable-support-for-the-kernel-module.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0002-Enable-support-for-the-kernel-module.patch new file mode 100644 index 00000000000..139d1f089ba --- /dev/null +++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0002-Enable-support-for-the-kernel-module.patch @@ -0,0 +1,25 @@ +From aca8473a516a8dc013866105da141fe1cd947474 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 19:24:53 -0700 +Subject: [PATCH 2/2] Enable support for the kernel module + +Signed-off-by: Khem Raj +--- + src/configure.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/configure.in b/src/configure.in +index cae0976..951a042 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -33,6 +33,7 @@ AC_CHECK_HEADERS(linux/if_pppox.h, [], [], + #include + #include + #include ++#include + ]) + + dnl Checks for typedefs, structures, and compiler characteristics. +-- +2.12.1 + diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch new file mode 100644 index 00000000000..2661fd3dbc8 --- /dev/null +++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch @@ -0,0 +1,59 @@ +From 71956de46feef962dc0645af4c81ae074ca3b818 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 19 Aug 2015 13:52:57 +0900 +Subject: [PATCH] configure.in: Error fix. + +the error is: conftest.c:9:28: fatal error: ac_nonexistent.h: +No such file or directory #include + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + src/configure.in | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +diff --git a/src/configure.in b/src/configure.in +index 0b23df5..31c7fbc 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -193,36 +193,6 @@ if test "$GCC" = yes; then + CFLAGS="$CFLAGS -fno-strict-aliasing -Wall -Wstrict-prototypes" + fi + +-dnl Figure out packing order of structures +-AC_CACHE_CHECK([packing order of bit fields],rpppoe_cv_pack_bitfields,[ +-if test "${rpppoe_cv_pack_bitfields+set}" != set ; then +-AC_TRY_RUN([ +-union foo { +- struct bar { +- unsigned int ver:4; +- unsigned int type:4; +- } bb; +- unsigned char baz; +-}; +- +-int +-main(void) +-{ +- union foo x; +- x.bb.ver = 1; +- x.bb.type = 2; +- if (x.baz == 0x21) { +- return 1; +- } else if (x.baz == 0x12) { +- return 0; +- } else { +- return 2; +- } +-}], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, +-$ECHO "no defaults for cross-compiling"; exit 1) +-fi +-]) +- + if test "$rpppoe_cv_pack_bitfields" = "rev" ; then + AC_MSG_RESULT(reversed) + AC_DEFINE([PACK_BITFIELDS_REVERSED], [], [Reversed bitfields]) +-- +1.8.4.2 + diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/configure.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch similarity index 100% rename from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/configure.patch rename to meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure_in_cross.patch similarity index 79% rename from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch rename to meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure_in_cross.patch index 18967594273..88cf7e6777c 100644 --- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch +++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure_in_cross.patch @@ -1,14 +1,23 @@ +From cab02076afb808a43c6ff3d7b1c64e71f5a1b397 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 19 Aug 2015 12:17:03 +0900 +Subject: [PATCH] configure in cross + Update the configure script to cross-compiling with OE. This hard-codes a few target paths, reworks a few tests to be more friendly for cross and drops other tests. Upstream-Status: Inappropriate [build system specific changes] -Index: src/configure.in -=================================================================== ---- rp-pppoe-3.8.orig/src/configure.in 2006-04-03 00:29:42.000000000 +1000 -+++ rp-pppoe-3.8/src/configure.in 2007-06-07 22:19:36.000000000 +1000 -@@ -5,6 +5,13 @@ +--- + src/configure.in | 66 ++++++++++++++------------------------------------------ + 1 file changed, 16 insertions(+), 50 deletions(-) + +diff --git a/src/configure.in b/src/configure.in +index e194295..82d64d6 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -5,6 +5,13 @@ AC_INIT(pppoe.c) dnl pppd directory for kernel-mode PPPoE PPPD_DIR=ppp-2.4.1.pppoe2 @@ -22,7 +31,7 @@ Index: src/configure.in AC_CONFIG_HEADER(config.h) AC_PREFIX_DEFAULT(/usr) -@@ -44,7 +51,7 @@ +@@ -45,7 +52,7 @@ ac_cv_struct_sockaddr_ll=no) AC_MSG_RESULT($ac_cv_struct_sockaddr_ll) if test "$ac_cv_struct_sockaddr_ll" = yes ; then @@ -31,7 +40,7 @@ Index: src/configure.in fi dnl Check for N_HDLC line discipline -@@ -55,7 +62,7 @@ +@@ -56,7 +63,7 @@ AC_TRY_COMPILE([#include ], ac_cv_n_hdlc=no) AC_MSG_RESULT($ac_cv_n_hdlc) if test "$ac_cv_n_hdlc" = yes ; then @@ -40,7 +49,7 @@ Index: src/configure.in fi AC_ARG_ENABLE(plugin, [ --enable-plugin=pppd_src_path build pppd plugin], ac_cv_pluginpath=$enableval, ac_cv_pluginpath=no) -@@ -100,13 +107,13 @@ +@@ -104,7 +111,7 @@ PPPD_INCDIR="" if test "$ac_cv_header_linux_if_pppox_h" = yes ; then if test "$ac_cv_pluginpath" != no ; then LINUX_KERNELMODE_PLUGIN=rp-pppoe.so @@ -49,6 +58,8 @@ Index: src/configure.in PPPD_INCDIR=$ac_cv_pluginpath fi fi +@@ -114,7 +121,7 @@ if test "$PPPD_INCDIR" = "" ; then + fi if test "$ac_cv_debugging" = "yes" ; then - AC_DEFINE(DEBUGGING_ENABLED) @@ -56,7 +67,7 @@ Index: src/configure.in fi AC_SUBST(LINUX_KERNELMODE_PLUGIN) -@@ -131,15 +138,8 @@ +@@ -140,15 +147,8 @@ AC_CHECK_SIZEOF(unsigned short) AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(unsigned long) @@ -73,8 +84,8 @@ Index: src/configure.in dnl Check for Linux-specific kernel support for PPPoE AC_MSG_CHECKING(for Linux 2.4.X kernel-mode PPPoE support) -@@ -183,44 +183,8 @@ - CFLAGS="$CFLAGS -Wall -Wstrict-prototypes -ansi" +@@ -193,44 +193,8 @@ if test "$GCC" = yes; then + CFLAGS="$CFLAGS -fno-strict-aliasing -Wall -Wstrict-prototypes" fi -dnl If we couldn't find pppd, die @@ -116,13 +127,13 @@ Index: src/configure.in dnl Figure out packing order of structures -AC_MSG_CHECKING([packing order of bit fields]) +AC_CACHE_CHECK([packing order of bit fields],rpppoe_cv_pack_bitfields,[ + if test "${rpppoe_cv_pack_bitfields+set}" != set ; then AC_TRY_RUN([ union foo { - struct bar { -@@ -245,10 +209,11 @@ - } +@@ -257,10 +221,11 @@ main(void) }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, $ECHO "no defaults for cross-compiling"; exit 0) + fi +]) if test "$rpppoe_cv_pack_bitfields" = "rev" ; then @@ -132,11 +143,14 @@ Index: src/configure.in else AC_MSG_RESULT(normal) fi -@@ -312,6 +277,7 @@ +@@ -324,6 +289,7 @@ AC_SUBST(PPPOE_SERVER_DEPS) AC_SUBST(RDYNAMIC) AC_SUBST(LIBEVENT) AC_SUBST(ECHO) +AC_SUBST(HAVE_STRUCT_SOCKADDR_LL) + AC_SUBST(LDFLAGS) datadir_evaluated=`eval echo $datadir` - AC_SUBST(datadir_evaluated) +-- +1.8.4.2 + diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/discard-use-of-dnl-in-Makefile.am.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/discard-use-of-dnl-in-Makefile.am.patch similarity index 100% rename from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/discard-use-of-dnl-in-Makefile.am.patch rename to meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/discard-use-of-dnl-in-Makefile.am.patch diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch new file mode 100644 index 00000000000..f61337f1537 --- /dev/null +++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch @@ -0,0 +1,28 @@ +From bbdadb803b19f002e76e7bb5ce3faf770dd7c413 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 19 Aug 2015 12:33:41 +0900 +Subject: [PATCH] don't swallow errors + +Further fixup to the configure scripts to not swallow errors + +Upstream-Status: Pending +--- + src/configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/configure.in b/src/configure.in +index 82d64d6..0b23df5 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -219,7 +219,7 @@ main(void) + return 2; + } + }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, +-$ECHO "no defaults for cross-compiling"; exit 0) ++$ECHO "no defaults for cross-compiling"; exit 1) + fi + ]) + +-- +1.8.4.2 + diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/pppoe-server.default b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.default similarity index 100% rename from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/pppoe-server.default rename to meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.default diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/pppoe-server.init b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init similarity index 100% rename from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/pppoe-server.init rename to meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service new file mode 100644 index 00000000000..41e0b9e8519 --- /dev/null +++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service @@ -0,0 +1,11 @@ +[Unit] +Description=PPPOE Service +After=network.target + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/pppoe-server +ExecStart=@SBINDIR@/pppoe-server + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/pppoe-src-restrictions.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch similarity index 100% rename from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/pppoe-src-restrictions.patch rename to meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch similarity index 100% rename from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch rename to meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/update-config.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch similarity index 100% rename from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/update-config.patch rename to meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/dont-swallow-errors.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/dont-swallow-errors.patch deleted file mode 100644 index c7fc9cfacc0..00000000000 --- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/dont-swallow-errors.patch +++ /dev/null @@ -1,15 +0,0 @@ -Further fixup to the configure scripts to not swallow errors - -Upstream-Status: Pending - ---- a/src/configure.in.org 2008-01-14 21:08:38.000000000 +0200 -+++ a/src/configure.in 2008-01-14 21:20:09.000000000 +0200 -@@ -208,7 +208,7 @@ - return 2; - } - }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, --$ECHO "no defaults for cross-compiling"; exit 0) -+$ECHO "no defaults for cross-compiling"; exit 1) - ]) - - if test "$rpppoe_cv_pack_bitfields" = "rev" ; then diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/use-ldflags.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/use-ldflags.patch deleted file mode 100644 index 95f629298bc..00000000000 --- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.8/use-ldflags.patch +++ /dev/null @@ -1,27 +0,0 @@ -Make the Makefile obey LDFLAGS. - -Upstream-Status: Pending - ---- a/src/Makefile.in 2006-04-02 18:29:42.000000000 +0400 -+++ b/src/Makefile.in 2010-04-16 17:51:31.000000000 +0400 -@@ -67,16 +67,16 @@ all: $(TARGETS) - @echo "Type 'make install' as root to install the software." - - pppoe-sniff: pppoe-sniff.o if.o common.o debug.o -- @CC@ -o pppoe-sniff pppoe-sniff.o if.o common.o debug.o -+ @CC@ -o pppoe-sniff pppoe-sniff.o if.o common.o debug.o $(LDFLAGS) - - pppoe-server: pppoe-server.o if.o debug.o common.o md5.o libevent/libevent.a @PPPOE_SERVER_DEPS@ -- @CC@ -o pppoe-server @RDYNAMIC@ pppoe-server.o if.o debug.o common.o md5.o $(PPPOE_SERVER_LIBS) -Llibevent -levent -+ @CC@ -o pppoe-server @RDYNAMIC@ pppoe-server.o if.o debug.o common.o md5.o $(PPPOE_SERVER_LIBS) -Llibevent -levent $(LDFLAGS) - - pppoe: pppoe.o if.o debug.o common.o ppp.o discovery.o -- @CC@ -o pppoe pppoe.o if.o debug.o common.o ppp.o discovery.o -+ @CC@ -o pppoe pppoe.o if.o debug.o common.o ppp.o discovery.o $(LDFLAGS) - - pppoe-relay: relay.o if.o debug.o common.o -- @CC@ -o pppoe-relay relay.o if.o debug.o common.o -+ @CC@ -o pppoe-relay relay.o if.o debug.o common.o $(LDFLAGS) - - pppoe.o: pppoe.c pppoe.h - @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o pppoe.o pppoe.c diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb new file mode 100644 index 00000000000..fbe015f5e87 --- /dev/null +++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb @@ -0,0 +1,77 @@ +SUMMARY = "A user-mode PPPoE client and server suite for Linux" +HOMEPAGE = "http://www.roaringpenguin.com/products/pppoe" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=a194eaefae2be54ee3221339b10d0581" + +PR = "r10" + +SRC_URI = "http://www.roaringpenguin.com/files/download/${BP}.tar.gz \ + file://top-autoconf.patch \ + file://configure_in_cross.patch \ + file://pppoe-src-restrictions.patch \ + file://update-config.patch \ + file://dont-swallow-errors.patch \ + file://discard-use-of-dnl-in-Makefile.am.patch \ + file://configure.patch \ + file://pppoe-server.default \ + file://pppoe-server.init \ + file://configure.in-Error-fix.patch \ + file://pppoe-server.service \ + file://0001-ppoe-Dont-include-linux-if_ether.h.patch \ + file://0002-Enable-support-for-the-kernel-module.patch \ + " + +SRC_URI[md5sum] = "216eb52b69062b92a64ee37fd71f4b66" +SRC_URI[sha256sum] = "00794e04031546b0e9b8cf286f2a6d1ccfc4a621b2a3abb2d7ef2a7ab7cc86c2" + +inherit autotools-brokensep update-rc.d systemd + +do_install_append() { + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/pppoe-server.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/pppoe-server.service + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/pppoe-server.service + install -d ${D}${datadir}/doc/${PN} + if [ -f ${D}${datadir}/doc/README ]; then + mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/ + fi +} + +do_install() { + # Install init script and default settings + install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d + install -m 0644 ${WORKDIR}/pppoe-server.default ${D}${sysconfdir}/default/pppoe-server + install -m 0755 ${WORKDIR}/pppoe-server.init ${D}${sysconfdir}/init.d/pppoe-server + # Install + oe_runmake -C ${S} DESTDIR=${D} docdir=${docdir} install + chmod 4755 ${D}${sbindir}/pppoe +} + +SYSTEMD_PACKAGES = "${PN}-server" +SYSTEMD_SERVICE_${PN}-server = "pppoe-server.service" +SYSTEMD_AUTO_ENABLE = "disable" +# Insert server package before main package +PACKAGES = "${PN}-dbg ${PN}-server ${PN}-relay ${PN}-sniff ${PN} ${PN}-doc" + +FILES_${PN}-server = "${sysconfdir}/default/pppoe-server \ + ${sysconfdir}/init.d/pppoe-server \ + ${sbindir}/pppoe-server \ + ${sysconfdir}/ppp/pppoe-server-options" +FILES_${PN}-relay = "${sbindir}/pppoe-relay" +FILES_${PN}-sniff = "${sbindir}/pppoe-sniff" + +CONFFILES_${PN} = "${sysconfdir}/ppp/pppoe.conf \ + ${sysconfdir}/ppp/firewall-standalone \ + ${sysconfdir}/ppp/firewall-masq" +CONFFILES_${PN}-server = "${sysconfdir}/ppp/pppoe-server-options \ + ${sysconfdir}/default/pppoe-server" + +INITSCRIPT_PACKAGES = "${PN}-server" +INITSCRIPT_NAME_${PN}-server = "pppoe-server" +INITSCRIPT_PARAMS_${PN}-server = "defaults 92 8" + +RDEPENDS_${PN} = "ppp" +RDEPENDS_${PN}-server = "${PN}" +RRECOMMENDS_${PN} = "ppp-oe" + diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.8.bb b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.8.bb deleted file mode 100644 index d1b0481b9eb..00000000000 --- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.8.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "A user-mode PPPoE client and server suite for Linux" -HOMEPAGE = "http://www.roaringpenguin.com/products/pppoe" -SECTION = "console/network" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=a194eaefae2be54ee3221339b10d0581" - -PR = "r10" - -SRC_URI = "http://www.roaringpenguin.com/files/download/${BP}.tar.gz \ - file://top-autoconf.patch \ - file://configure_in_cross.patch \ - file://pppoe-src-restrictions.patch \ - file://update-config.patch \ - file://dont-swallow-errors.patch \ - file://discard-use-of-dnl-in-Makefile.am.patch \ - file://use-ldflags.patch \ - file://configure.patch \ - file://pppoe-server.default \ - file://pppoe-server.init" - -SRC_URI[md5sum] = "0e32760f498f9cde44081ee6aafc823b" -SRC_URI[sha256sum] = "d916e9cfe1e62395f63a5361936fa855f6d0f0a37dc7227b394cdb725f553479" - -inherit autotools-brokensep update-rc.d - -do_install() { - # Install init script and default settings - install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d - install -m 0644 ${WORKDIR}/pppoe-server.default ${D}${sysconfdir}/default/pppoe-server - install -m 0755 ${WORKDIR}/pppoe-server.init ${D}${sysconfdir}/init.d/pppoe-server - # Install - oe_runmake -C ${S} RPM_INSTALL_ROOT=${D} docdir=${docdir} install - chmod 4755 ${D}${sbindir}/pppoe -} - -# Insert server package before main package -PACKAGES = "${PN}-dbg ${PN}-server ${PN}-relay ${PN}-sniff ${PN} ${PN}-doc" - -FILES_${PN}-server = "${sysconfdir}/default/pppoe-server \ - ${sysconfdir}/init.d/pppoe-server \ - ${sbindir}/pppoe-server \ - ${sysconfdir}/ppp/pppoe-server-options" -FILES_${PN}-relay = "${sbindir}/pppoe-relay" -FILES_${PN}-sniff = "${sbindir}/pppoe-sniff" - -CONFFILES_${PN} = "${sysconfdir}/ppp/pppoe.conf \ - ${sysconfdir}/ppp/firewall-standalone \ - ${sysconfdir}/ppp/firewall-masq" -CONFFILES_${PN}-server = "${sysconfdir}/ppp/pppoe-server-options \ - ${sysconfdir}/default/pppoe-server" - -INITSCRIPT_PACKAGES = "${PN}-server" -INITSCRIPT_NAME_${PN}-server = "pppoe-server" -INITSCRIPT_PARAMS_${PN}-server = "defaults 92 8" - -RDEPENDS_${PN} = "ppp" -RDEPENDS_${PN}-server = "${PN}" -RRECOMMENDS_${PN} = "ppp-oe" - diff --git a/meta-networking/recipes-protocols/tsocks/tsocks/makefile-add-ldflags.patch b/meta-networking/recipes-protocols/tsocks/tsocks/makefile-add-ldflags.patch new file mode 100644 index 00000000000..21464188ca4 --- /dev/null +++ b/meta-networking/recipes-protocols/tsocks/tsocks/makefile-add-ldflags.patch @@ -0,0 +1,19 @@ +Add LDFLAGS variable to Makefile.in, make sure the extra linker flags can be passed. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/Makefile.in b/Makefile.in +index cad6706..0ed55c5 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -50,7 +50,7 @@ ${SAVE}: ${SAVE}.c + ${SHCC} ${CFLAGS} ${INCLUDES} -static -o ${SAVE} ${SAVE}.c + + ${SHLIB}: ${OBJS} ${COMMON}.o ${PARSER}.o +- ${SHCC} ${CFLAGS} ${INCLUDES} -nostdlib -shared -o ${SHLIB} ${OBJS} ${COMMON}.o ${PARSER}.o ${DYNLIB_FLAGS} ${SPECIALLIBS} ${LIBS} ++ ${SHCC} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -nostdlib -shared -o ${SHLIB} ${OBJS} ${COMMON}.o ${PARSER}.o ${DYNLIB_FLAGS} ${SPECIALLIBS} ${LIBS} + ln -sf ${SHLIB} ${LIB_NAME}.so + + %.so: %.c diff --git a/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb b/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb new file mode 100644 index 00000000000..b2757f6ddc9 --- /dev/null +++ b/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb @@ -0,0 +1,28 @@ +SUMMARY = "Libraries and wrapper for using a SOCKS proxy" +DESCRIPTION = "The role of tsocks is to allow non SOCKS aware \ +applications (e.g telnet, ssh, ftp etc) to use SOCKS without any \ +modification. It does this by intercepting the calls that applications \ +make to establish network connections and negotating them through a \ +SOCKS server as necessary." +HOMEPAGE = "http://sourceforge.net/projects/tsocks/" +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760" + +SRC_URI = "http://downloads.sourceforge.net/tsocks/tsocks-${PV}.tar.gz \ + file://makefile-add-ldflags.patch \ + " + +SRC_URI[md5sum] = "51caefd77e5d440d0bbd6443db4fc0f8" +SRC_URI[sha256sum] = "849d7ef5af80d03e76cc05ed9fb8fa2bcc2b724b51ebfd1b6be11c7863f5b347" + +inherit autotools-brokensep + +S = "${WORKDIR}/tsocks-1.8" + +FILES_${PN} = "${libdir}/* ${bindir}/tsocks" +FILES_${PN}-dev = "" +INSANE_SKIP_${PN} = "dev-so" + +EXTRA_OEMAKE = "SHCC='${CC} -fPIC ${LDFLAGS}'" + diff --git a/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch b/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch new file mode 100644 index 00000000000..b932ebbb4fe --- /dev/null +++ b/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch @@ -0,0 +1,28 @@ +From 748bc693cf24baf42e459e12f152349e392b6737 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 20 Dec 2016 21:32:11 -0800 +Subject: [PATCH] Use foreign switch for automake + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 64cc9994..19ccd4a3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -29,7 +29,7 @@ dnl SUCH DAMAGE. + dnl + + AC_INIT([libusrsctp], [0.9.3.0]) +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) + + AC_PROG_CC + AC_PROG_LIBTOOL +-- +2.11.0 + diff --git a/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb b/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb new file mode 100644 index 00000000000..3ec746684bb --- /dev/null +++ b/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "This is a userland SCTP stack supporting FreeBSD, Linux, Mac OS X and Windows." +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=ffcf846341f3856d79a483eafa18e2a5" + +SRCREV = "dbfc1b8c4cf1a46a4d8987ba542d5ff06bdaf14c" +SRC_URI = "git://github.com/sctplab/usrsctp;protocol=https;branch=master \ + file://0001-Use-foreign-switch-for-automake.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +DEPENDS += "openssl" + +CFLAGS += "-DSCTP_USE_OPENSSL_SHA1 -fPIC" +LDFLAGS += "-lssl -lcrypto" + +PACKAGECONFIG ?= "disablewarnings inet inet6" +PACKAGECONFIG[disablewarnings] = "--disable-warnings-as-errors,," +PACKAGECONFIG[inet] = "--enable-inet,--disable-inet," +PACKAGECONFIG[inet6] = "--enable-inet6,--disable-inet6," + +EXTRA_OECONF += "--disable-debug" diff --git a/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc b/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc index f4ea2b8266a..d037c7cfc64 100644 --- a/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc +++ b/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc @@ -1,14 +1,15 @@ SUMMARY = "Xelerance version of the Layer 2 Tunneling Protocol (L2TP) daemon" HOMEPAGE = "http://www.xelerance.com/software/xl2tpd/" -SECTION = "network" +SECTION = "net" DEPENDS = "ppp virtual/kernel" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=0636e73ff0215e8d672dc4c32c317bb3" +PACKAGE_ARCH = "${MACHINE_ARCH}" -INC_PR = "r0" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRC_URI = "git://github.com/xelerance/xl2tpd.git" +SRC_URI = "git://github.com/xelerance/xl2tpd.git \ +" S = "${WORKDIR}/git" diff --git a/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb b/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb new file mode 100644 index 00000000000..df2ec52c653 --- /dev/null +++ b/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb @@ -0,0 +1,7 @@ +require xl2tpd.inc + +# The SRCREV corresponds to v1.3.6. +# Adding tag=v1.3.6 to the SRC_URI will force access to the upstream repo. +# +SRCREV = "5619e1771048e74b729804e8602f409af0f3faea" + diff --git a/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb b/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb index bd084aa0091..88ae5d6f8b1 100644 --- a/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb +++ b/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb @@ -1,5 +1,8 @@ require xl2tpd.inc -PR = "${INC_PR}.0" -SRCREV = "df7e30eb199fc5710faa83866381aea18b66e60c" +# This is v1.3.6 plus some commits. There is no tag for this commit. +# +PV = "1.3.9+git${SRCPV}" + +SRCREV = "f114c10ac532051badeca0132b144a2f1596f047" diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch b/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch new file mode 100644 index 00000000000..b4d6d94b062 --- /dev/null +++ b/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch @@ -0,0 +1,69 @@ +From 549773fdaf1fb003b84f25df386a07d299cdeb3e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 18 Jul 2017 21:25:33 -0700 +Subject: [PATCH] zeroconf: Rename arp_op to avoid namespace conflicts with C + library + +on musl e.g. we get +In file included from /mnt/a/oe/build/tmp/work/corei7-64-bec-linux-musl/zeroconf/0.9-r1/recipe-sysroot/usr/include/net/ethernet.h:10:0, + +This is because in musl arp_op is a define which is included +and causes the conflict + +Signed-off-by: Khem Raj +--- + zeroconf.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/zeroconf.c b/zeroconf.c +index 812d34b..f27e907 100644 +--- a/zeroconf.c ++++ b/zeroconf.c +@@ -14,8 +14,6 @@ + + #include + #include +-#include +-#include + #include + #include + #include +@@ -34,6 +32,8 @@ + #include + #include + #include ++#include ++#include + + #include "delay.h" + +@@ -108,7 +108,7 @@ int arp_conflict(struct intf *intf, struct arp_packet *pkt); + void arp_packet_dump(struct arp_packet *pkt); + void arp_packet_send(int as, + struct intf *intf, +- short int arp_op, ++ short int arpop, + int null_sender); + void arp_probe(int as, struct intf *intf); + void arp_claim(int as, struct intf *intf); +@@ -1591,7 +1591,7 @@ int arp_conflict(struct intf *intf, struct arp_packet *pkt) + + void arp_packet_send(int as, + struct intf *intf, +- short int arp_op, ++ short int arpop, + int null_sender) + { + +@@ -1605,7 +1605,7 @@ void arp_packet_send(int as, + ap.arp.ar_pro = htons(ARP_IP_PROTO); + ap.arp.ar_hln = ETH_ALEN; + ap.arp.ar_pln = 4; /* octets in IPv4 address */ +- ap.arp.ar_op = htons(arp_op); ++ ap.arp.ar_op = htons(arpop); + + /* filling with 0xff sets the destination to + * the broadcast link-layer address for free +-- +2.13.3 + diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf/makefile-add-ldflags.patch b/meta-networking/recipes-protocols/zeroconf/zeroconf/makefile-add-ldflags.patch new file mode 100644 index 00000000000..c5a4414db84 --- /dev/null +++ b/meta-networking/recipes-protocols/zeroconf/zeroconf/makefile-add-ldflags.patch @@ -0,0 +1,19 @@ +Add LDFLAGS variable to Makefile, make sure the extra linker flags can be passed. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/Makefile b/Makefile +index 77f3364..c98083f 100644 +--- a/Makefile ++++ b/Makefile +@@ -18,7 +18,7 @@ clean: + + zeroconf: zeroconf.o delay.o + $(Q)echo "Creating $@" +- $(Q)$(CC) $(CFLAGS) -o $@ $^ $(LIBS) ++ $(Q)$(CC) $(CFLAGS) ${LDFLAGS} -o $@ $^ $(LIBS) + + + # Automatic dependency generation diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb b/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb index 9307263c7ba..753d8329829 100644 --- a/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb +++ b/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb @@ -18,8 +18,11 @@ PR = "r1" SRC_URI = "http://www.progsoc.org/~wildfire/zeroconf/download/${BPN}-${PV}.tar.gz \ file://compilefix.patch \ + file://makefile-add-ldflags.patch \ file://zeroconf-default \ - file://debian-zeroconf" + file://debian-zeroconf \ + file://0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch \ + " SRC_URI[md5sum] = "bdafb16b008ebb5633e4e581f77821d2" SRC_URI[sha256sum] = "a8c74df127753e2310fa1e072f3c9ca44a404bb0bbce9cfec7a84c6dff8bec7b" diff --git a/meta-networking/recipes-support/aoetools/aoetools/makefile-add-ldflags.patch b/meta-networking/recipes-support/aoetools/aoetools/makefile-add-ldflags.patch new file mode 100644 index 00000000000..726d8c564d8 --- /dev/null +++ b/meta-networking/recipes-support/aoetools/aoetools/makefile-add-ldflags.patch @@ -0,0 +1,31 @@ +Add LDFLAGS variable to Makefile, make sure the extra linker flags can be passed. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/Makefile b/Makefile +index 0c56ade..79f2e2b 100644 +--- a/Makefile ++++ b/Makefile +@@ -68,17 +68,17 @@ clean : + rm -f ${CONF_SCRIPTS} ${AOE_PING_OBJ} ${AOE_CFG_OBJ} ${SANCHECK_OBJ} ${PROGS} + + aoeping : ${AOE_PING_OBJ} +- ${CC} ${CFLAGS} -o $@ ${AOE_PING_OBJ} ++ ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${AOE_PING_OBJ} + aoeping.o : aoeping.c dat.h fns.h + ${CC} ${CFLAGS} -o $@ -c $< + linux.o : linux.c config.h + ${CC} ${CFLAGS} -o $@ -c $< + aoecfg: ${AOE_CFG_OBJ} +- ${CC} ${CFLAGS} -o $@ ${AOE_CFG_OBJ} ++ ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${AOE_CFG_OBJ} + aoecfg.o : aoecfg.c dat.h fns.h + ${CC} ${CFLAGS} -o $@ -c $< + aoe-sancheck : ${SANCHECK_OBJ} +- -$(CC) $(CFLAGS) -o $@ ${SANCHECK_OBJ} $(SANCHECKLIBS) ++ -$(CC) $(CFLAGS) ${LDFLAGS} -o $@ ${SANCHECK_OBJ} $(SANCHECKLIBS) + aoe-sancheck.o : aoe-sancheck.c + -$(CC) $(CFLAGS) -o $@ -c $< + diff --git a/meta-networking/recipes-support/aoetools/aoetools_36.bb b/meta-networking/recipes-support/aoetools/aoetools_36.bb index 2b80ae74f76..9b73b442abd 100644 --- a/meta-networking/recipes-support/aoetools/aoetools_36.bb +++ b/meta-networking/recipes-support/aoetools/aoetools_36.bb @@ -5,13 +5,14 @@ storage protocol, a simple protocol for using storage over anethernet LAN. \ The vblade program (storage target) exports a blockdevice using AoE. \ " HOMEPAGE = "http://sourceforge.net/projects/${BPN}" -SECTION = "console/network" +SECTION = "admin" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" RRECOMMENDS_${PN} = "kernel-module-aoe" SRC_URI = "http://sourceforge.net/projects/${BPN}/files/${BPN}/${BPN}-${PV}.tar.gz \ file://aoe-stat-no-bashism.patch \ + file://makefile-add-ldflags.patch \ " SRC_URI[md5sum] = "bff30daa988a65f69d4448ce4726a6db" SRC_URI[sha256sum] = "fb5e2cd0de7644cc1ec04ee3aeb43211cf7445a0c19e13d6b3ed5a8fbdf215ff" diff --git a/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch b/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch deleted file mode 100644 index 80e98047241..00000000000 --- a/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch +++ /dev/null @@ -1,61 +0,0 @@ -Index: arptables-v0.0.3-4/Makefile -=================================================================== ---- arptables-v0.0.3-4.orig/Makefile 2010-03-08 18:49:28.000000000 +0300 -+++ arptables-v0.0.3-4/Makefile 2010-03-22 15:52:56.000000000 +0300 -@@ -6,12 +6,11 @@ - LIBDIR:=$(PREFIX)/lib - BINDIR:=$(PREFIX)/sbin - MANDIR:=$(PREFIX)/man --INITDIR:=/etc/rc.d/init.d -+INITDIR:=/etc/init.d - SYSCONFIGDIR:=/etc/sysconfig - DESTDIR:= - --COPT_FLAGS:=-O2 --CFLAGS:=$(COPT_FLAGS) -Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" #-g -DDEBUG #-pg # -DARPTC_DEBUG -+ARPCFLAGS:=-Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" - - ifndef ARPT_LIBDIR - ARPT_LIBDIR:=$(LIBDIR)/arptables -@@ -22,16 +21,16 @@ - all: arptables - - arptables.o: arptables.c -- $(CC) $(CFLAGS) -c -o $@ $< -+ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< - - arptables-standalone.o: arptables-standalone.c -- $(CC) $(CFLAGS) -c -o $@ $< -+ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< - - libarptc/libarptc.o: libarptc/libarptc.c libarptc/libarptc_incl.c -- $(CC) $(CFLAGS) -c -o $@ $< -+ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< - - arptables: arptables-standalone.o arptables.o libarptc/libarptc.o $(EXT_OBJS) -- $(CC) $(CFLAGS) -o $@ $^ -+ $(CC) $(LDFLAGS) $(CFLAGS) $(ARPCFLAGS) -o $@ $^ - - $(DESTDIR)$(MANDIR)/man8/arptables.8: arptables.8 - mkdir -p $(@D) -@@ -50,6 +49,7 @@ - cat arptables-restore | sed 's/__EXEC_PATH__/$(tmp1)/g' > arptables-restore_ - install -m 0755 -o root -g root arptables-restore_ $(DESTDIR)$(BINDIR)/arptables-restore - cat arptables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > arptables.sysv_ -+ install -d $(DESTDIR)$(INITDIR) - if test -d $(DESTDIR)$(INITDIR); then install -m 0755 -o root -g root arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables; fi - rm -f arptables-save_ arptables-restore_ arptables.sysv_ - -Index: arptables-v0.0.3-4/extensions/Makefile -=================================================================== ---- arptables-v0.0.3-4.orig/extensions/Makefile 2010-03-08 18:49:28.000000000 +0300 -+++ arptables-v0.0.3-4/extensions/Makefile 2010-03-22 15:52:38.000000000 +0300 -@@ -4,4 +4,7 @@ - EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/arpt_$(T).o) - - extensions/ebt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h -- $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< -+ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< -+ -+extensions/arpt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h -+ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< diff --git a/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch b/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch new file mode 100644 index 00000000000..e8be45e6b6b --- /dev/null +++ b/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch @@ -0,0 +1,79 @@ +From a2021f0bc0f029dfa05dcca5db3d2ec77904d41a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 30 Mar 2017 12:33:51 -0700 +Subject: [PATCH] Use ARPCFLAGS for package specific compiler flags + +This leaves room for setting CFLAGS in environment +which OE uses to pass tweaks + +Signed-off-by: Khem Raj +--- + Makefile | 15 +++++++-------- + extensions/Makefile | 5 ++++- + 2 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/Makefile b/Makefile +index 7bead0d..336db6b 100644 +--- a/Makefile ++++ b/Makefile +@@ -7,15 +7,13 @@ LIBDIR:=$(PREFIX)/lib + BINDIR:=$(PREFIX)/sbin + MANDIR:=$(PREFIX)/man + man8dir=$(MANDIR)/man8 +-INITDIR:=/etc/rc.d/init.d ++INITDIR:=/etc/init.d + SYSCONFIGDIR:=/etc/sysconfig + DESTDIR:= + + MANS = arptables.8 arptables-save.8 arptables-restore.8 + +-COPT_FLAGS:=-O2 +-CFLAGS:=$(COPT_FLAGS) -Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" #-g -DDEBUG #-pg # -DARPTC_DEBUG +- ++ARPCFLAGS:=-Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" + ifndef ARPT_LIBDIR + ARPT_LIBDIR:=$(LIBDIR)/arptables + endif +@@ -25,13 +23,13 @@ include extensions/Makefile + all: arptables libarptc/libarptc.a + + arptables.o: arptables.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(ARPCFLAGS) $(CFLAGS) -c -o $@ $< + + arptables-standalone.o: arptables-standalone.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(ARPCFLAGS) $(CFLAGS) -c -o $@ $< + + libarptc/libarptc.o: libarptc/libarptc.c libarptc/libarptc_incl.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(ARPCFLAGS) $(CFLAGS) -c -o $@ $< + + libarptc/libarptc.a: libarptc/libarptc.o + $(AR) rcs $@ $< +@@ -53,7 +51,8 @@ scripts: arptables-save arptables-restore arptables.sysv + install -m 0755 arptables-restore_ $(DESTDIR)$(BINDIR)/arptables-restore + cat arptables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > arptables.sysv_ + if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(INITDIR); fi +- if test -d $(DESTDIR)$(INITDIR); then install -m 0755 arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables; fi ++ install -d $(DESTDIR)$(INITDIR) ++ install -m 0755 arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables + rm -f arptables-save_ arptables-restore_ arptables.sysv_ + + .PHONY: install-man +diff --git a/extensions/Makefile b/extensions/Makefile +index 0189cc9..b046425 100644 +--- a/extensions/Makefile ++++ b/extensions/Makefile +@@ -4,4 +4,7 @@ EXT_FUNC+=standard mangle CLASSIFY MARK + EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/arpt_$(T).o) + + extensions/ebt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h +- $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< ++ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< ++ ++extensions/arpt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h ++ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< +-- +2.12.1 + diff --git a/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-arpt-get-target-fix.patch b/meta-networking/recipes-support/arptables/arptables/arptables-arpt-get-target-fix.patch similarity index 100% rename from meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-arpt-get-target-fix.patch rename to meta-networking/recipes-support/arptables/arptables/arptables-arpt-get-target-fix.patch diff --git a/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-init-busybox.patch b/meta-networking/recipes-support/arptables/arptables/arptables-init-busybox.patch similarity index 100% rename from meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-init-busybox.patch rename to meta-networking/recipes-support/arptables/arptables/arptables-init-busybox.patch diff --git a/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-remove-bashism.patch b/meta-networking/recipes-support/arptables/arptables/arptables-remove-bashism.patch similarity index 100% rename from meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-remove-bashism.patch rename to meta-networking/recipes-support/arptables/arptables/arptables-remove-bashism.patch diff --git a/meta-networking/recipes-support/arptables/arptables/arptables.service b/meta-networking/recipes-support/arptables/arptables/arptables.service new file mode 100644 index 00000000000..f9fd56df018 --- /dev/null +++ b/meta-networking/recipes-support/arptables/arptables/arptables.service @@ -0,0 +1,16 @@ +[Unit] +Description=Arp filtering arptables +After=network.target +Requires=network.target + +[Service] +Type=oneshot +ExecStartPre=/bin/sh -c "mkdir -p /etc/sysconfig; if [ ! -f /etc/sysconfig/arptables ]; then /usr/sbin/arptables-save > /etc/sysconfig/arptables; fi" +ExecStart=/bin/sh -c "/usr/sbin/arptables-restore < /etc/sysconfig/arptables" +ExecStartPost=/bin/sh -c "touch /var/lock/subsys/arptables" +RemainAfterExit=yes +ExecStop=/bin/sh -c "/usr/sbin/arptables-restore < /dev/null" +ExecStopPost=/bin/sh -c "rm -f /var/lock/subsys/arptables" + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb b/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb deleted file mode 100644 index 41a55c02765..00000000000 --- a/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Administration tool for arp packet filtering" -PRIORITY = "optional" -LICENSE = "GPL-2.0" -SECTION = "console/network" - -PR = "r2" - -RDEPENDS_${PN} += "perl" - -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -SRC_URI = " \ - ${SOURCEFORGE_MIRROR}/ebtables/arptables-v${PV}.tar.gz;name=arptables \ - file://arptables-compile-install.patch \ - file://arptables-init-busybox.patch \ - file://arptables-arpt-get-target-fix.patch \ - file://arptables-remove-bashism.patch \ -" -SRC_URI[arptables.md5sum] = "1d4ab05761f063b0751645d8f2b8f8e5" -SRC_URI[arptables.sha256sum] = "e529fd465c67d69ad335299a043516e6b38cdcd337a5ed21718413e96073f928" - -S = "${WORKDIR}/arptables-v${PV}" - -do_compile () { - oe_runmake -} - -# the install target is not multi-job safe, but it doesn't do much -# so we just install serially -# -PARALLEL_MAKEINST = "-j1" - -fakeroot do_install () { - oe_runmake 'BINDIR=${sbindir}' 'MANDIR=${mandir}/' 'DESTDIR=${D}' install -} diff --git a/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-networking/recipes-support/arptables/arptables_git.bb new file mode 100644 index 00000000000..274a55d91dd --- /dev/null +++ b/meta-networking/recipes-support/arptables/arptables_git.bb @@ -0,0 +1,38 @@ +SUMMARY = "Administration tool for arp packet filtering" +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +SRCREV = "f4ab8f63f11a72f14687a6646d04ae1bae3fa45f" +PV = "0.0.4+git${SRCPV}" + +SRC_URI = " \ + git://git.netfilter.org/arptables \ + file://0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch \ + file://arptables-init-busybox.patch \ + file://arptables-arpt-get-target-fix.patch \ + file://arptables-remove-bashism.patch \ + file://arptables.service \ +" +SRC_URI[arptables.md5sum] = "1d4ab05761f063b0751645d8f2b8f8e5" +SRC_URI[arptables.sha256sum] = "e529fd465c67d69ad335299a043516e6b38cdcd337a5ed21718413e96073f928" + +S = "${WORKDIR}/git" +SYSTEMD_SERVICE_${PN} = "arptables.service" + +inherit systemd + +EXTRA_OEMAKE = "'BINDIR=${sbindir}' 'MANDIR=${mandir}'" + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/arptables.service ${D}${systemd_unitdir}/system + fi +} + +RDEPENDS_${PN} += "perl" + +# the install target is not multi-job safe, but it doesn't do much +# so we just install serially +# +PARALLEL_MAKEINST = "-j1" diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils.inc b/meta-networking/recipes-support/bridge-utils/bridge-utils.inc index feeba743504..0fb18d5d6a6 100644 --- a/meta-networking/recipes-support/bridge-utils/bridge-utils.inc +++ b/meta-networking/recipes-support/bridge-utils/bridge-utils.inc @@ -1,6 +1,6 @@ SUMMARY = "Tools for ethernet bridging" HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge" -SECTION = "console/network" +SECTION = "net" LICENSE = "GPLv2" DEPENDS = "sysfsutils" diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-build-error-out-correctly-if-a-submake-fails.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-build-error-out-correctly-if-a-submake-fails.patch new file mode 100644 index 00000000000..c6897b4e7e5 --- /dev/null +++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-build-error-out-correctly-if-a-submake-fails.patch @@ -0,0 +1,69 @@ +From 5e102b453e254d16af1f95053134f58348e0f83a Mon Sep 17 00:00:00 2001 +From: root +Date: Wed, 20 Jul 2016 23:40:30 +0100 +Subject: [PATCH 1/5] build: error out correctly if a submake fails +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Due to use of a for loop, return status from submake was always +ignored. + +In the context of build-systems like OE this causes them to not +detect any errors and continue happily, resulting in a successful, +but incomplete, build. + +Fix by having a nicer Makefile.in which now has rules for the +individual targets (directories) so that make itself can +figure out all the dependencies and build those targets as +needed rather than using a for loop to iterate over the +directories in a shell and thus loosing the return status of +the command inside the loop. + +This has the added advantage that parallel builds work now. + +Upstream-Status: Pending + +Signed-off-by: André Draszik +--- + Makefile.in | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 6028513..dab88bb 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -13,11 +13,11 @@ distdir = $(PACKAGE)-$(VERSION) + + SUBDIRS=libbridge brctl doc + +-all: +- for x in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$x ; done ++all: override ACTION= ++all: $(SUBDIRS) + +-clean: +- for x in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$x clean ; done ++clean: override ACTION=clean ++clean: $(SUBDIRS) + + distclean: clean + rm -f config.log +@@ -30,6 +30,12 @@ maintainer-clean: distclean + rm -f libbridge/Makefile + rm -f doc/Makefile + +-install: +- for x in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$x install; done ++install: override ACTION=install ++install: $(SUBDIRS) + ++ ++brctl: libbridge ++$(SUBDIRS): ++ $(MAKE) $(MFLAGS) -C $@ $(ACTION) ++ ++.PHONY: $(SUBDIRS) +-- +2.8.1 + diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-libbridge-fix-some-build-time-warnings-fcntl.h.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-libbridge-fix-some-build-time-warnings-fcntl.h.patch new file mode 100644 index 00000000000..25d08ab9511 --- /dev/null +++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-libbridge-fix-some-build-time-warnings-fcntl.h.patch @@ -0,0 +1,64 @@ +From 68fafc4ea10365ac2e74ab7c660d097696857677 Mon Sep 17 00:00:00 2001 +From: root +Date: Wed, 20 Jul 2016 23:40:32 +0100 +Subject: [PATCH 2/5] libbridge: fix some build-time warnings (fcntl.h) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There are build-time warnings at the moment when building +against musl, as the code here #include's the wrong file, +sys/fcntl.h instead of fcntl.h + +In file included from libbridge_devif.c:26:0: +/usr/include/sys/fcntl.h:1:2: warning: #warning redirecting incorrect #include to [-Wcpp] + #warning redirecting incorrect #include to + ^~~~~~~ +In file included from libbridge_if.c:23:0: +/usr/include/sys/fcntl.h:1:2: warning: #warning redirecting incorrect #include to [-Wcpp] + #warning redirecting incorrect #include to + ^~~~~~~ + +glibc headers silently redirect sys/fcntl.h to fcntl.h so the +issue is not seen there. + +Let's fix the #include's to so as to use the correct ones +and silence the compiler. + +Upstream-Status: Pending + +Signed-off-by: André Draszik +--- + libbridge/libbridge_devif.c | 2 +- + libbridge/libbridge_if.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libbridge/libbridge_devif.c b/libbridge/libbridge_devif.c +index 1e83925..2cf78f6 100644 +--- a/libbridge/libbridge_devif.c ++++ b/libbridge/libbridge_devif.c +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + + #include "libbridge.h" + #include "libbridge_private.h" +diff --git a/libbridge/libbridge_if.c b/libbridge/libbridge_if.c +index 77d3f8a..9cf4bac 100644 +--- a/libbridge/libbridge_if.c ++++ b/libbridge/libbridge_if.c +@@ -20,7 +20,7 @@ + #include + #include + #include +-#include ++#include + #include + + #include "libbridge.h" +-- +2.8.1 + diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-bridge-fix-some-build-time-warnings-errno.h.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-bridge-fix-some-build-time-warnings-errno.h.patch new file mode 100644 index 00000000000..72f2a6292ce --- /dev/null +++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-bridge-fix-some-build-time-warnings-errno.h.patch @@ -0,0 +1,46 @@ +From 2b9dc245f93ab27d7da42a16ddbb9212888006e4 Mon Sep 17 00:00:00 2001 +From: root +Date: Wed, 20 Jul 2016 23:40:33 +0100 +Subject: [PATCH 3/5] bridge: fix some build-time warnings (errno.h) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There is a build-time warning at the moment when building +against musl, as the code here #include's the wrong file, +sys/errno.h instead of errno.h + +In file included from brctl.c:22:0: +/usr/include/sys/errno.h:1:2: warning: #warning redirecting incorrect #include to [-Wcpp] + #warning redirecting incorrect #include to + ^~~~~~~ + +glibc headers silently redirect sys/errno.h to errno.h so the +issue is not seen there. + +Let's fix the #include's to so as to use the correct ones +and silence the compiler. + +Upstream-Status: Pending + +Signed-off-by: André Draszik +--- + brctl/brctl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/brctl/brctl.c b/brctl/brctl.c +index 46ca352..8855234 100644 +--- a/brctl/brctl.c ++++ b/brctl/brctl.c +@@ -19,7 +19,7 @@ + #include + #include + #include +-#include ++#include + #include + + #include "libbridge.h" +-- +2.8.1 + diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-libbridge-add-missing-include-s-fix-build-against-mu.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-libbridge-add-missing-include-s-fix-build-against-mu.patch new file mode 100644 index 00000000000..565186e0faf --- /dev/null +++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-libbridge-add-missing-include-s-fix-build-against-mu.patch @@ -0,0 +1,47 @@ +From c45b73829a8b8c7924df528baa7e16498f917288 Mon Sep 17 00:00:00 2001 +From: root +Date: Wed, 20 Jul 2016 23:40:33 +0100 +Subject: [PATCH 4/5] libbridge: add missing #include's (fix build against + musl) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes error like: + +In file included from libbridge_devif.c:28:0: +libbridge.h:45:17: error: field 'max_age' has incomplete type + struct timeval max_age; + ^~~~~~~ +In file included from libbridge_devif.c:28:0: +libbridge.h:51:2: error: unknown type name 'u_int16_t' + u_int16_t root_port; + ^~~~~~~~~ + +These types are not standard C but rather Posix, +for struct timeval see: +http://pubs.opengroup.org/onlinepubs/7908799/xsh/systime.h.html + +Upstream-Status: Pending + +Signed-off-by: André Draszik +--- + libbridge/libbridge.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h +index 53ec869..b0727c1 100644 +--- a/libbridge/libbridge.h ++++ b/libbridge/libbridge.h +@@ -20,6 +20,8 @@ + #define _LIBBRIDGE_H + + #include ++#include ++#include + #include + #include + #include +-- +2.8.1 + diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch new file mode 100644 index 00000000000..9f2155e9b56 --- /dev/null +++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch @@ -0,0 +1,53 @@ +From 7bc1932cabfafca8c68e18bd43e3d203c70d2dd8 Mon Sep 17 00:00:00 2001 +From: root +Date: Wed, 20 Jul 2016 23:40:33 +0100 +Subject: [PATCH 5/5] build: don't ignore CFLAGS from environment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We need to take them into account so as to behave nicely towards +build environments which expect to be able to set them, e.g. for +optimisation flags, or debug options. + +Therefore they need to be added to the compiler command line of +every source file, and in addition, the same CFLAGS that were +used during compilation must also always be used during linking! + +Upstream-Status: Pending + +Signed-off-by: André Draszik +--- + brctl/Makefile.in | 2 +- + libbridge/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/brctl/Makefile.in b/brctl/Makefile.in +index e1956d6..eff260c 100644 +--- a/brctl/Makefile.in ++++ b/brctl/Makefile.in +@@ -34,7 +34,7 @@ install: $(PROGRAMS) + $(INSTALL) -m 755 $(PROGRAMS) $(DESTDIR)$(sbindir) + + brctl: $(brctl_OBJECTS) ../libbridge/libbridge.a +- $(CC) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl ++ $(CC) $(CFLAGS) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl + + %.o: %.c brctl.h + $(CC) $(CFLAGS) $(INCLUDE) -c $< +diff --git a/libbridge/Makefile.in b/libbridge/Makefile.in +index 20512c4..4e1cddc 100644 +--- a/libbridge/Makefile.in ++++ b/libbridge/Makefile.in +@@ -5,7 +5,7 @@ AR=ar + RANLIB=@RANLIB@ + + CC=@CC@ +-CFLAGS = -Wall -g $(KERNEL_HEADERS) ++CFLAGS = -Wall -g $(KERNEL_HEADERS) @CFLAGS@ + + prefix=@prefix@ + exec_prefix=@exec_prefix@ +-- +2.8.1 + diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils_1.5.bb b/meta-networking/recipes-support/bridge-utils/bridge-utils_1.5.bb index 04f863b2239..6032ab05ecb 100644 --- a/meta-networking/recipes-support/bridge-utils/bridge-utils_1.5.bb +++ b/meta-networking/recipes-support/bridge-utils/bridge-utils_1.5.bb @@ -1,8 +1,13 @@ require bridge-utils.inc -SRC_URI += "file://kernel-headers.patch" - -PARALLEL_MAKE = "" +SRC_URI += "\ + file://kernel-headers.patch \ + file://0001-build-error-out-correctly-if-a-submake-fails.patch \ + file://0002-libbridge-fix-some-build-time-warnings-fcntl.h.patch \ + file://0003-bridge-fix-some-build-time-warnings-errno.h.patch \ + file://0004-libbridge-add-missing-include-s-fix-build-against-mu.patch \ + file://0005-build-don-t-ignore-CFLAGS-from-environment.patch \ +" LIC_FILES_CHKSUM = "file://COPYING;md5=f9d20a453221a1b7e32ae84694da2c37" diff --git a/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch b/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch new file mode 100644 index 00000000000..5dd4c7d772b --- /dev/null +++ b/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch @@ -0,0 +1,105 @@ +From 7e1ae687916fd5878ee755afbdea6b10494e0b92 Mon Sep 17 00:00:00 2001 +From: Alexey Firago +Date: Wed, 26 Jul 2017 23:21:25 +0300 +Subject: [PATCH] cmake: Install libcares.pc + +Prepare and install libcares.pc file during cmake build, so libraries +using pkg-config to find libcares will not fail. + +Signed-off-by: Alexey Firago +--- + CMakeLists.txt | 21 +++++++++++++++++++++ + libcares.pc.cmakein | 20 ++++++++++++++++++++ + 2 files changed, 41 insertions(+) + create mode 100644 libcares.pc.cmakein + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 364b6c7..0016b67 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -173,21 +173,29 @@ ADD_DEFINITIONS(${SYSFLAGS}) + + + # Tell C-Ares about libraries to depend on ++# Also pass these libraries to pkg-config file ++SET(CARES_PRIVATE_LIBS_LIST) + IF (HAVE_LIBRESOLV) + LIST (APPEND CARES_DEPENDENT_LIBS resolv) ++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lresolv") + ENDIF () + IF (HAVE_LIBNSL) + LIST (APPEND CARES_DEPENDENT_LIBS nsl) ++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lnsl") + ENDIF () + IF (HAVE_LIBSOCKET) + LIST (APPEND CARES_DEPENDENT_LIBS socket) ++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lsocket") + ENDIF () + IF (HAVE_LIBRT) + LIST (APPEND CARES_DEPENDENT_LIBS rt) ++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lrt") + ENDIF () + IF (WIN32) + LIST (APPEND CARES_DEPENDENT_LIBS ws2_32) ++ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lws2_32") + ENDIF () ++string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}") + + + # When checking for symbols, we need to make sure we set the proper +@@ -489,6 +497,13 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h) + # Write ares_config.h configuration file. This is used only for the build. + CONFIGURE_FILE (ares_config.h.cmake ${PROJECT_BINARY_DIR}/ares_config.h) + ++# Pass required CFLAGS to pkg-config in case of static library ++IF (CARES_STATIC) ++ SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB") ++ENDIF() ++ ++# Write ares_config.h configuration file. This is used only for the build. ++CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY) + + # TRANSFORM_MAKEFILE_INC + # +@@ -625,6 +640,12 @@ IF (CARES_INSTALL) + INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" DESTINATION ${CMAKECONFIG_INSTALL_DIR}) + ENDIF () + ++# pkg-config file ++IF (CARES_INSTALL) ++ SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ++ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR}) ++ENDIF () ++ + # Legacy chain-building variables (provided for compatibility with old code). + # Don't use these, external code should be updated to refer to the aliases directly (e.g., Cares::cares). + SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND") +diff --git a/libcares.pc.cmakein b/libcares.pc.cmakein +new file mode 100644 +index 0000000..f29fede +--- /dev/null ++++ b/libcares.pc.cmakein +@@ -0,0 +1,20 @@ ++#*************************************************************************** ++# Project ___ __ _ _ __ ___ ___ ++# / __|____ / _` | '__/ _ \/ __| ++# | (_|_____| (_| | | | __/\__ \ ++# \___| \__,_|_| \___||___/ ++# ++prefix=@CMAKE_INSTALL_PREFIX@ ++exec_prefix=@CMAKE_INSTALL_PREFIX@ ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ ++ ++Name: c-ares ++URL: http://daniel.haxx.se/projects/c-ares/ ++Description: asynchronous DNS lookup library ++Version: @VERSION@ ++Requires: ++Requires.private: ++Cflags: -I${includedir} @CPPFLAG_CARES_STATICLIB@ ++Libs: -L${libdir} -lcares ++Libs.private: @CARES_PRIVATE_LIBS@ +-- +2.7.4 + diff --git a/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb b/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb new file mode 100644 index 00000000000..70e497f5f05 --- /dev/null +++ b/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb @@ -0,0 +1,24 @@ +# Copyright (c) 2012-2014 LG Electronics, Inc. +SUMMARY = "c-ares is a C library that resolves names asynchronously." +HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f4b026880834eb01c035c5e5cb47ccac" +SRCREV = "3be1924221e1326df520f8498d704a5c4c8d0cce" +PV = "1.13.0+gitr${SRCPV}" + +SRC_URI = "\ + git://github.com/c-ares/c-ares.git \ + file://cmake-install-libcares.pc.patch \ +" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +PACKAGES =+ "${PN}-utils" + +FILES_${PN}-dev += "${libdir}/cmake" +FILES_${PN}-utils = "${bindir}" + +BBCLASSEXTEND = "native" diff --git a/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch b/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch new file mode 100644 index 00000000000..d1586bba46a --- /dev/null +++ b/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch @@ -0,0 +1,57 @@ + chrony: fix build failure for arma9 + + Eliminate references to syscalls not available + for ARM_EABI. Also add a dependency on libseccomp + which is needed for scfilter to work. + + Set PACKAGECONFIG to not enable scfilter, since + kernel CONFIG_SECCOMP is unlikely to be set. This + aligns the usage of libseccomp with that of other packages. + + Upstream-Status: Pending + + Signed-off-by: Joe Slater + +--- a/sys_linux.c ++++ b/sys_linux.c +@@ -453,13 +453,12 @@ SYS_Linux_EnableSystemCallFilter(int lev + const int syscalls[] = { + /* Clock */ + SCMP_SYS(adjtimex), SCMP_SYS(gettimeofday), SCMP_SYS(settimeofday), +- SCMP_SYS(time), + /* Process */ +- SCMP_SYS(clone), SCMP_SYS(exit), SCMP_SYS(exit_group), SCMP_SYS(getrlimit), ++ SCMP_SYS(clone), SCMP_SYS(exit), SCMP_SYS(exit_group), + SCMP_SYS(rt_sigaction), SCMP_SYS(rt_sigreturn), SCMP_SYS(rt_sigprocmask), + SCMP_SYS(set_tid_address), SCMP_SYS(sigreturn), SCMP_SYS(wait4), + /* Memory */ +- SCMP_SYS(brk), SCMP_SYS(madvise), SCMP_SYS(mmap), SCMP_SYS(mmap2), ++ SCMP_SYS(brk), SCMP_SYS(madvise), SCMP_SYS(mmap2), + SCMP_SYS(mprotect), SCMP_SYS(mremap), SCMP_SYS(munmap), SCMP_SYS(shmdt), + /* Filesystem */ + SCMP_SYS(access), SCMP_SYS(chmod), SCMP_SYS(chown), SCMP_SYS(chown32), +@@ -470,14 +469,21 @@ SYS_Linux_EnableSystemCallFilter(int lev + SCMP_SYS(bind), SCMP_SYS(connect), SCMP_SYS(getsockname), + SCMP_SYS(recvfrom), SCMP_SYS(recvmsg), SCMP_SYS(sendmmsg), + SCMP_SYS(sendmsg), SCMP_SYS(sendto), +- /* TODO: check socketcall arguments */ +- SCMP_SYS(socketcall), + /* General I/O */ + SCMP_SYS(_newselect), SCMP_SYS(close), SCMP_SYS(open), SCMP_SYS(pipe), +- SCMP_SYS(poll), SCMP_SYS(read), SCMP_SYS(futex), SCMP_SYS(select), ++ SCMP_SYS(poll), SCMP_SYS(read), SCMP_SYS(futex), + SCMP_SYS(set_robust_list), SCMP_SYS(write), + /* Miscellaneous */ + SCMP_SYS(uname), ++ /* not always available */ ++#if ! defined(__ARM_EABI__) ++ SCMP_SYS(time), ++ SCMP_SYS(getrlimit), ++ SCMP_SYS(select), ++ SCMP_SYS(mmap), ++ /* TODO: check socketcall arguments */ ++ SCMP_SYS(socketcall), ++#endif + }; + + const int socket_domains[] = { diff --git a/meta-networking/recipes-support/chrony/chrony/chrony.conf b/meta-networking/recipes-support/chrony/chrony/chrony.conf new file mode 100644 index 00000000000..8d226d31a5e --- /dev/null +++ b/meta-networking/recipes-support/chrony/chrony/chrony.conf @@ -0,0 +1,44 @@ +# Use public NTP servers from the pool.ntp.org project. +# Please consider joining the pool project if possible by running your own +# server(s). +# If you are a vendor distributing a product using chrony, you *MUST* +# read and comply with http://www.pool.ntp.org/vendors.html +pool 0.openembedded.pool.ntp.org iburst + +# Use a local timeserver in preference to the pool, if it's reachable. +#server 192.168.22.22 iburst minpoll 2 prefer + +# Sync to pulse-per-second from an onboard GPS. +#refclock PPS /dev/pps0 poll 0 prefer +# You'll want to enable CONFIG_PPS and CONFIG_PPS_CLIENT_GPIO in your kernel, +# and an entry something like this in your device tree: +# pps { +# compatible = "pps-gpio"; +# gpios = <&ps7_gpio_0 56 0>; +# }; + +# In first three updates step the system clock instead of slew +# if the adjustment is larger than 1 second. +makestep 1.0 3 + +# Record the rate at which the system clock gains/loses time, +# improving accuracy after reboot +driftfile /var/lib/chrony/drift + +# Enable kernel synchronization of the hardware real-time clock (RTC). +rtcsync + +# Allow NTP client access from local network. +#allow 192.168/16 + +# Serve time even if not synchronized to any NTP server. +#local stratum 10 + +# Specify file containing keys for NTP authentication. +#keyfile /etc/chrony.keys + +# Specify directory for log files. +logdir /var/log/chrony + +# Select which information is logged. +#log measurements statistics tracking diff --git a/meta-networking/recipes-support/chrony/chrony/chronyd b/meta-networking/recipes-support/chrony/chrony/chronyd new file mode 100644 index 00000000000..04f1b681c43 --- /dev/null +++ b/meta-networking/recipes-support/chrony/chrony/chronyd @@ -0,0 +1,58 @@ +#! /bin/sh + +# System V init script for chrony +# Adapted from the script already in meta-networking for ntpd + +### BEGIN INIT INFO +# Provides: chrony +# Required-Start: $network $remote_fs $syslog +# Required-Stop: $network $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: +# Short-Description: Start chrony time daemon +### END INIT INFO + +PATH=/sbin:/bin:/usr/bin:/usr/sbin + +DAEMON=/usr/sbin/chronyd +PIDFILE=/var/run/chronyd.pid + +test -x $DAEMON -a -r /etc/chrony.conf || exit 0 + +# Source function library. +. /etc/init.d/functions + +# Functions to do individual actions +startdaemon(){ + echo -n "Starting chronyd: " + start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON -- "$@" + echo "done" +} +stopdaemon(){ + echo -n "Stopping chronyd: " + start-stop-daemon --stop --quiet --oknodo -p $PIDFILE + echo "done" +} + +case "$1" in + start) + startdaemon + ;; + stop) + stopdaemon + ;; + force-reload | restart | reload) + stopdaemon + startdaemon + ;; + status) + status /usr/sbin/chronyd; + exit $? + ;; + *) + echo "Usage: chronyd { start | stop | status | restart | reload }" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/meta-networking/recipes-support/chrony/chrony_2.4.bb b/meta-networking/recipes-support/chrony/chrony_2.4.bb new file mode 100644 index 00000000000..71431f4b7bd --- /dev/null +++ b/meta-networking/recipes-support/chrony/chrony_2.4.bb @@ -0,0 +1,134 @@ +SUMMARY = "Versatile implementation of the Network Time Protocol" +DESCRIPTION = "Chrony can synchronize the system clock with NTP \ +servers, reference clocks (e.g. GPS receiver), and manual input using \ +wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) \ +server and peer to provide a time service to other computers in the \ +network. \ +\ +It is designed to perform well in a wide range of conditions, \ +including intermittent network connections, heavily congested \ +networks, changing temperatures (ordinary computer clocks are \ +sensitive to temperature), and systems that do not run continuously, or \ +run on a virtual machine. \ +\ +Typical accuracy between two machines on a LAN is in tens, or a few \ +hundreds, of microseconds; over the Internet, accuracy is typically \ +within a few milliseconds. With a good hardware reference clock \ +sub-microsecond accuracy is possible. \ +\ +Two programs are included in chrony: chronyd is a daemon that can be \ +started at boot time and chronyc is a command-line interface program \ +which can be used to monitor chronyd's performance and to change \ +various operating parameters whilst it is running. \ +\ +This recipe produces two binary packages: 'chrony' which contains chronyd, \ +the configuration file and the init script, and 'chronyc' which contains \ +the client program only." + +HOMEPAGE = "http://chrony.tuxfamily.org/" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "https://download.tuxfamily.org/chrony/chrony-${PV}.tar.gz \ + file://chrony.conf \ + file://chronyd \ + file://arm_eabi.patch \ +" +SRC_URI[md5sum] = "d0598aa8a9be8faccef9386f6fc0d5f2" +SRC_URI[sha256sum] = "8d04e7cda2333289c2104b731d39c3c1db94816e43bae35d7ee4e7ae8af6391f" + +DEPENDS = "pps-tools" + +# Note: Despite being built via './configure; make; make install', +# chrony does not use GNU Autotools. +inherit update-rc.d systemd + +# Configuration options: +# - For command line editing support in chronyc, you may specify either +# 'editline' or 'readline' but not both. editline is smaller, but +# many systems already have readline for other purposes so you might want +# to choose that instead. However, beware license incompatibility +# since chrony is GPLv2 and readline versions after 6.0 are GPLv3+. +# You can of course choose neither, but if you're that tight on space +# consider dropping chronyc entirely (you can use it remotely with +# appropriate chrony.conf options). +# - Security-related: +# - 'sechash' is omitted by default because it pulls in nss which is huge. +# - 'privdrop' allows chronyd to run as non-root; would need changes to +# chrony.conf and init script. +# - 'scfilter' enables support for system call filtering, but requires the +# kernel to have CONFIG_SECCOMP enabled. +PACKAGECONFIG ??= "editline \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG[readline] = "--without-editline,--without-readline,readline" +PACKAGECONFIG[editline] = ",--without-editline,libedit" +PACKAGECONFIG[sechash] = "--without-tomcrypt,--disable-sechash,nss" +PACKAGECONFIG[privdrop] = ",--disable-privdrop,libcap" +PACKAGECONFIG[scfilter] = "--enable-scfilter,--without-seccomp,libseccomp" +PACKAGECONFIG[ipv6] = ",--disable-ipv6," +PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss" +PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap" + +# --disable-static isn't supported by chrony's configure script. +DISABLE_STATIC = "" + +do_configure() { + ./configure --sysconfdir=${sysconfdir} --bindir=${bindir} --sbindir=${sbindir} \ + --localstatedir=${localstatedir} --datarootdir=${datadir} \ + ${PACKAGECONFIG_CONFARGS} +} + +do_install() { + # Binaries + install -d ${D}${bindir} + install -m 0755 ${S}/chronyc ${D}${bindir} + install -d ${D}${sbindir} + install -m 0755 ${S}/chronyd ${D}${sbindir} + + # Config file + install -d ${D}${sysconfdir} + install -m 644 ${WORKDIR}/chrony.conf ${D}${sysconfdir} + + # System V init script + install -d ${D}${sysconfdir}/init.d + install -m 755 ${WORKDIR}/chronyd ${D}${sysconfdir}/init.d + + # systemd unit configuration file + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${S}/examples/chronyd.service ${D}${systemd_unitdir}/system/ + + # Variable data (for drift and/or rtc file) + install -d ${D}${localstatedir}/lib/chrony + + # Log files + install -d ${D}${localstatedir}/log/chrony + + # Fix hard-coded paths in config files and init scripts + sed -i -e 's!/var/!${localstatedir}/!g' -e 's!/etc/!${sysconfdir}/!g' \ + -e 's!/usr/sbin/!${sbindir}/!g' -e 's!/usr/bin/!${bindir}/!g' \ + ${D}${sysconfdir}/chrony.conf \ + ${D}${sysconfdir}/init.d/chronyd \ + ${D}${systemd_unitdir}/system/chronyd.service + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/chronyd + sed -i 's!^EnvironmentFile=.*!EnvironmentFile=-${sysconfdir}/default/chronyd!' ${D}${systemd_unitdir}/system/chronyd.service +} + +FILES_${PN} = "${sbindir}/chronyd ${sysconfdir} ${localstatedir}" +CONFFILES_${PN} = "${sysconfdir}/chrony.conf" +INITSCRIPT_NAME = "chronyd" +INITSCRIPT_PARAMS = "defaults" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "chronyd.service" + +# It's probably a bad idea to run chrony and another time daemon on +# the same system. systemd includes the SNTP client 'timesyncd', which +# will be disabled by chronyd.service, however it will remain on the rootfs +# wasting 150 kB unless you put 'PACKAGECONFIG_remove_pn-systemd = "timesyncd"' +# in a conf file or bbappend somewhere. +RCONFLICTS_${PN} = "ntp ntimed" + +# Separate the client program into its own package +PACKAGES =+ "chronyc" +FILES_chronyc = "${bindir}/chronyc" diff --git a/meta-networking/recipes-support/cifs/cifs-utils_git.bb b/meta-networking/recipes-support/cifs/cifs-utils_git.bb index 2b7a0dd66cb..3ca5b780bda 100644 --- a/meta-networking/recipes-support/cifs/cifs-utils_git.bb +++ b/meta-networking/recipes-support/cifs/cifs-utils_git.bb @@ -1,23 +1,26 @@ DESCRIPTION = "A a package of utilities for doing and managing mounts of the Linux CIFS filesystem." HOMEPAGE = "http://wiki.samba.org/index.php/LinuxCIFS_utils" - +SECTION = "otherosfs" LICENSE = "GPLv3 & LGPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -PV = "5.9" -PR = "r1" +PV = "6.7" -SRCREV = "353d491dcb5d69d31434abeb962c8e9a49c36867" +SRCREV = "8101a07871f185c7044fa2ca221b282ab4607c8b" SRC_URI = "git://git.samba.org/cifs-utils.git" S = "${WORKDIR}/git" +DEPENDS += "libtalloc" PACKAGECONFIG ??= "" PACKAGECONFIG[cap] = "--with-libcap,--without-libcap,libcap" # when enabled, it creates ${bindir}/cifscreds and --ignore-fail-on-non-empty in do_install_append is needed PACKAGECONFIG[cifscreds] = "--enable-cifscreds,--disable-cifscreds,keyutils" # when enabled, it creates ${sbindir}/cifs.upcall and --ignore-fail-on-non-empty in do_install_append is needed -PACKAGECONFIG[cifsupcall] = "--enable-cifsupcall,--disable-cifsupcall,krb5 talloc keyutils" +PACKAGECONFIG[cifsupcall] = "--enable-cifsupcall,--disable-cifsupcall,krb5 libtalloc keyutils" +PACKAGECONFIG[cifsidmap] = "--enable-cifsidmap,--disable-cifsidmap,keyutils samba" +PACKAGECONFIG[cifsacl] = "--enable-cifsacl,--disable-cifsacl,samba" +PACKAGECONFIG[pam] = "--enable-pam --with-pamdir=${base_libdir}/security,--disable-pam,libpam keyutils" inherit autotools pkgconfig @@ -27,4 +30,6 @@ do_install_append() { rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${sbindir} } +FILES_${PN} += "${base_libdir}/security" +FILES_${PN}-dbg += "${base_libdir}/security/.debug" RRECOMMENDS_${PN} = "kernel-module-cifs" diff --git a/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb b/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb index 06c0dd98585..31875ea50ff 100644 --- a/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb +++ b/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb @@ -1,5 +1,7 @@ require cim-schema.inc +SECTION = "doc" + LICENSE = "DMTF" SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-Doc.zip \ @@ -16,7 +18,7 @@ do_unpack() { do_install() { install -d -m 0755 ${D}${datadir}/doc/cim-schema-${PV}-docs - cp -a ${S}/* ${D}${datadir}/doc/cim-schema-${PV}-docs + cp -R --no-dereference --preserve=mode,links -v ${S}/* ${D}${datadir}/doc/cim-schema-${PV}-docs } FILES_${PN} = "${datadir}/doc/*" diff --git a/meta-networking/recipes-support/cim-schema/cim-schema-exper_2.39.0.bb b/meta-networking/recipes-support/cim-schema/cim-schema-exper_2.39.0.bb new file mode 100644 index 00000000000..2b490960783 --- /dev/null +++ b/meta-networking/recipes-support/cim-schema/cim-schema-exper_2.39.0.bb @@ -0,0 +1,29 @@ +require cim-schema.inc + +LICENSE = "DMTF" + +RCONFLICTS_${PN} = "cim-schema-final" + +SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2390/cim_schema_${PV}Experimental-MOFs.zip;subdir=${BPN}-${PV} \ + file://LICENSE \ +" +SRC_URI[md5sum] = "b82b31c609c6bcc69521829409f58ccc" +SRC_URI[sha256sum] = "ed2096ef1ea25d189a02bbc6603fed7a48297f2987f254265763a6eecb7fc870" +LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=eecc6f71a56ff3caf17f15bf7aeac7b4" + +do_install() { + install -d -m 0755 ${D}${datadir}/mof/cimv${PV}/ + install -d -m 0755 ${D}${datadir}/doc/cim-schema-${PV} + install -m 644 ${WORKDIR}/LICENSE ${D}${datadir}/doc/cim-schema-${PV} + + cp -R --no-dereference --preserve=mode,links -v ${S}/* ${D}${datadir}/mof/cimv${PV}/ + chown -R root:root ${D}${datadir}/mof/cimv${PV} + for i in `find ${D}${datadir}/mof/cimv${PV} -name "*.mof"`; do + sed -i -e 's/\r//g' $i + done + ln -s cimv${PV} ${D}${datadir}/mof/cim-current + ln -s cim_schema_${PV}.mof ${D}${datadir}/mof/cim-current/CIM_Schema.mof +} + +FILES_${PN} = "${datadir}/mof/* ${datadir}/doc/*" +FILES_${PN}-doc = "" diff --git a/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb b/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb new file mode 100644 index 00000000000..a14de46db63 --- /dev/null +++ b/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb @@ -0,0 +1,34 @@ +require cim-schema.inc + +LICENSE = "DMTF" + +RCONFLICTS_${PN} = "cim-schema-exper" + +SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-MOFs.zip \ + file://LICENSE \ +" +SRC_URI[md5sum] = "a9bdf17c7374e3b5b7adeaac4842c4ad" +SRC_URI[sha256sum] = "dbfa3064ea427acd71a4bebbc172ca2dc44b0b09a6d83b0945b9ffa988a9058a" +LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=eecc6f71a56ff3caf17f15bf7aeac7b4" + +do_unpack() { + unzip -q ${DL_DIR}/cim_schema_${PV}Final-MOFs.zip -d ${S} + cp -f ${FILE_DIRNAME}/files/LICENSE ${WORKDIR}/ +} + +do_install() { + install -d -m 0755 ${D}${datadir}/mof/cimv${PV}/ + install -d -m 0755 ${D}${datadir}/doc/cim-schema-${PV} + install -m 644 ${WORKDIR}/LICENSE ${D}${datadir}/doc/cim-schema-${PV} + + cp -R --no-dereference --preserve=mode,links -v ${S}/* ${D}${datadir}/mof/cimv${PV}/ + chown -R root:root ${D}${datadir}/mof/cimv${PV}/ + for i in `find ${D}${datadir}/mof/cimv${PV} -name "*.mof"`; do + sed -i -e 's/\r//g' $i + done + ln -s cimv${PV} ${D}${datadir}/mof/cim-current + ln -s cim_schema_${PV}.mof ${D}${datadir}/mof/cim-current/CIM_Schema.mof +} + +FILES_${PN} = "${datadir}/mof/* ${datadir}/doc/*" +FILES_${PN}-doc = "" diff --git a/meta-networking/recipes-support/cim-schema/cim-schema.inc b/meta-networking/recipes-support/cim-schema/cim-schema.inc index e35bff69c72..b9171e474eb 100644 --- a/meta-networking/recipes-support/cim-schema/cim-schema.inc +++ b/meta-networking/recipes-support/cim-schema/cim-schema.inc @@ -6,4 +6,4 @@ details for integration with other management models. The schema\ provides the actual model descriptions." HOMEPAGE = "http://www.dmtf.org/" -SECTION = "Development/Libraries" +SECTION = "libs" diff --git a/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE b/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE new file mode 100644 index 00000000000..54a28120ee8 --- /dev/null +++ b/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE @@ -0,0 +1,34 @@ +// Copyright 1998-2008 Distributed Management Task Force, Inc. (DMTF). +// All rights reserved. +// DMTF is a not-for-profit association of industry members dedicated +// to promoting enterprise and systems management and interoperability. +// DMTF specifications and documents may be reproduced by +// members and non-members, provided that correct attribution is given. +// As DMTF specifications may be revised from time to time, +// the particular version and release date should always be noted. +// +// Implementation of certain elements of this standard or proposed +// standard may be subject to third party patent rights, including +// provisional patent rights (herein "patent rights"). DMTF makes +// no representations to users of the standard as to the existence +// of such rights, and is not responsible to recognize, disclose, or +// identify any or all such third party patent right, owners or +// claimants, nor for any incomplete or inaccurate identification or +// disclosure of such rights, owners or claimants. DMTF shall have no +// liability to any party, in any manner or circumstance, under any +// legal theory whatsoever, for failure to recognize, disclose, or +// identify any such third party patent rights, or for such party's +// reliance on the standard or incorporation thereof in its product, +// protocols or testing procedures. DMTF shall have no liability to +// any party implementing such standard, whether such implementation +// is foreseeable or not, nor to any patent owner or claimant, and shall +// have no liability or responsibility for costs or losses incurred if +// a standard is withdrawn or modified after publication, and shall be +// indemnified and held harmless by any party implementing the +// standard from any and all claims of infringement by a patent owner +// for such implementations. +// +// For information about patents held by third-parties which have +// notified the DMTF that, in their opinion, such patent may relate to +// or impact implementations of DMTF standards, visit +// http://www.dmtf.org/about/policies/disclosures.php. diff --git a/meta-networking/recipes-support/cim-schema/cim-schema_2.40.0.bb b/meta-networking/recipes-support/cim-schema/cim-schema_2.40.0.bb deleted file mode 100644 index ff6c29dc5cf..00000000000 --- a/meta-networking/recipes-support/cim-schema/cim-schema_2.40.0.bb +++ /dev/null @@ -1,31 +0,0 @@ -require cim-schema.inc - -LICENSE = "DMTF" - -SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-MOFs.zip \ - file://LICENSE \ - " -SRC_URI[md5sum] = "a9bdf17c7374e3b5b7adeaac4842c4ad" -SRC_URI[sha256sum] = "dbfa3064ea427acd71a4bebbc172ca2dc44b0b09a6d83b0945b9ffa988a9058a" -LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=eecc6f71a56ff3caf17f15bf7aeac7b4" - -do_unpack() { - unzip -q ${DL_DIR}/cim_schema_${PV}Final-MOFs.zip -d ${S} - cp -f ${FILE_DIRNAME}/files/LICENSE ${WORKDIR}/ -} - -do_install() { - install -d -m 0755 ${D}${datadir}/mof/cimv${PV}/ - install -d -m 0755 ${D}${datadir}/doc/cim-schema-${PV} - install -m 644 ${WORKDIR}/LICENSE ${D}${datadir}/doc/cim-schema-${PV} - - cp -a ${S}/* ${D}${datadir}/mof/cimv${PV}/ - for i in `find ${D}${datadir}/mof/cimv${PV} -name "*.mof"`; do - sed -i -e 's/\r//g' $i - done - ln -s cimv${PV} ${D}${datadir}/mof/cim-current - ln -s cim_schema_${PV}.mof ${D}${datadir}/mof/cim-current/CIM_Schema.mof -} - -FILES_${PN} = "${datadir}/mof/* ${datadir}/doc/*" -FILES_${PN}-doc = "" diff --git a/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch b/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch new file mode 100644 index 00000000000..c9195b4f45a --- /dev/null +++ b/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch @@ -0,0 +1,24 @@ +support cross-compile for linux-os. + +Signed-off-by: Bian Naimeng + +diff -Nurp ctdb-2.5.1.orig/configure ctdb-2.5.1/configure +--- ctdb-2.5.1.orig/configure 2015-05-07 16:24:28.545000238 +0900 ++++ ctdb-2.5.1/configure 2015-05-07 16:28:20.894000244 +0900 +@@ -10692,10 +10692,16 @@ if test x"$libreplace_cv_HAVE_GETADDRINF + # see bug 5910, use our replacements if we detect + # a broken system. + if test "$cross_compiling" = yes; then : ++ case "$target_os" in ++ *linux*) ++ ;; ++ *) + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See \`config.log' for more details" "$LINENO" 5; } ++ ;; ++ esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ diff --git a/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch b/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch new file mode 100644 index 00000000000..1dd9b93a5a1 --- /dev/null +++ b/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch @@ -0,0 +1,16 @@ +link rep_snprintf from lib/replace/snprintf.o for ltdbtool + +Signed-off-by: Bian Naimeng + +diff -Nurp ctdb-2.5.1.orig/Makefile.in ctdb-2.5.1/Makefile.in +--- ctdb-2.5.1.orig/Makefile.in 2015-05-07 16:43:39.276000236 +0900 ++++ ctdb-2.5.1/Makefile.in 2015-05-07 16:44:09.627000237 +0900 +@@ -170,7 +170,7 @@ bin/ctdb: $(CTDB_CLIENT_OBJ) tools/ctdb. + @echo Linking $@ + $(WRAPPER) $(CC) $(CFLAGS) -o $@ tools/ctdb.o tools/ctdb_vacuum.o $(CTDB_CLIENT_OBJ) $(LIB_FLAGS) + +-bin/ltdbtool: tools/ltdbtool.o $(TDB_OBJ) ++bin/ltdbtool: tools/ltdbtool.o $(TDB_OBJ) lib/replace/snprintf.o + @echo Linking $@ + $(WRAPPER) $(CC) $(CFLAGS) -o $@ $+ $(TDB_LIBS) $(LIB_FLAGS) + diff --git a/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch b/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch new file mode 100644 index 00000000000..a7e987b85f4 --- /dev/null +++ b/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch @@ -0,0 +1,25 @@ +From f02ff7383f1cc0c118732352ccbae476c7b3b3ba Mon Sep 17 00:00:00 2001 +From: Mark Asselstine +Date: Tue, 17 Nov 2015 16:17:00 -0500 +Subject: [PATCH] service: ensure the PID directory is created + +Signed-off-by: Mark Asselstine +--- + config/ctdb.service | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config/ctdb.service b/config/ctdb.service +index ea37c30..8537105 100644 +--- a/config/ctdb.service ++++ b/config/ctdb.service +@@ -5,6 +5,7 @@ After=network.target + [Service] + Type=forking + LimitCORE=infinity ++RuntimeDirectory=/run/ctdb + PIDFile=/run/ctdb/ctdbd.pid + ExecStart=/usr/sbin/ctdbd_wrapper /run/ctdb/ctdbd.pid start + ExecStop=/usr/sbin/ctdbd_wrapper /run/ctdb/ctdbd.pid stop +-- +2.1.4 + diff --git a/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb b/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb new file mode 100644 index 00000000000..b5a60645c5f --- /dev/null +++ b/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb @@ -0,0 +1,57 @@ +DESCRIPTION = "CTDB is a cluster implementation of the TDB database \ +used by Samba and other projects to store temporary data. If an \ +application is already using TDB for temporary data it is very easy \ +to convert that application to be cluster aware and use CTDB instead." +HOMEPAGE = "https://ctdb.samba.org/" +LICENSE = "GPL-2.0+ & LGPL-3.0+ & GPL-3.0+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ + file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ + " + +SRC_URI = "https://ftp.samba.org/pub/${BPN}/${BP}.tar.gz \ + file://01-support-cross-compile-for-linux-os.patch \ + file://02-link-rep_snprintf-for-ltdbtool.patch \ + file://service-ensure-the-PID-directory-is-created.patch \ + " + +SRC_URI[md5sum] = "efc50109f90a4c790124c35e4ba234ad" +SRC_URI[sha256sum] = "fc1cdd7efcc91afc629f21408281bba5da107b9c17e74bdee2f28a532d14f874" + +inherit autotools-brokensep pkgconfig systemd + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libtdb] = "--without-included-tdb,--with-included-tdb,libtdb" + +PARALLEL_MAKE = "" + +DEPENDS += "popt libtevent libtalloc libldb" +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + +# ctdbd_wrapper requires pgrep, hence procps +RDEPENDS_${PN} += "procps" + +do_configure() { + oe_runconf +} + +do_install_append() { + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${S}/config/ctdb.service ${D}${systemd_unitdir}/system + sed -i -e 's,/usr/sbin/,${sbindir}/,' ${D}${systemd_unitdir}/system/ctdb.service + sed -i -e 's,\([=\ ]\)/run/,\1${localstatedir}/run/,' ${D}${systemd_unitdir}/system/ctdb.service + + rm -r ${D}/${localstatedir}/run +} + +# The systemd service is disabled by default, as the service will fail to +# start without /etc/ctdb/nodes. If the user supplies this, they can re-enable +# the service. +SYSTEMD_AUTO_ENABLE = "disable" +SYSTEMD_SERVICE_${PN} = "ctdb.service" + +# onnode is a shell script with bashisms and bash #! +RDEPENDS_${PN} += "bash" diff --git a/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch b/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch deleted file mode 100644 index dae583d8540..00000000000 --- a/meta-networking/recipes-support/curlpp/curlpp/example21.cpp-remove-deprecated-code.patch +++ /dev/null @@ -1,47 +0,0 @@ -example21.cpp: remove deprecated code - -The deprecated code was no longer used, so remove it to avoid -compiling failure with -Werror=unused-function -... -| example21.cpp:51:8: error: 'size_t {anonymous}::readData(char*, -size_t, size_t)' defined but not used [-Werror=unused-function] -| size_t readData(char *buffer, size_t size, size_t nitems) -... - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia ---- - examples/example21.cpp | 17 ----------------- - 1 file changed, 17 deletions(-) - -diff --git a/examples/example21.cpp b/examples/example21.cpp ---- a/examples/example21.cpp -+++ b/examples/example21.cpp -@@ -39,23 +39,6 @@ - #include - #include - --/* -- anonymous namespace to prevent name clash in case other examples using the same global entities -- would be compiled in the same project --*/ --namespace --{ -- --char *data = NULL; -- --size_t readData(char *buffer, size_t size, size_t nitems) --{ -- strncpy(buffer, data, size * nitems); -- return size * nitems; --} -- --} // namespace -- - int main(int argc, char *argv[]) - { - if(argc != 3) { --- -1.9.1 - diff --git a/meta-networking/recipes-support/curlpp/curlpp/pkgconfig_fix.patch b/meta-networking/recipes-support/curlpp/curlpp/pkgconfig_fix.patch deleted file mode 100644 index ad73c008857..00000000000 --- a/meta-networking/recipes-support/curlpp/curlpp/pkgconfig_fix.patch +++ /dev/null @@ -1,38 +0,0 @@ -Upstream-Status: Inappropriate [packaging] - - -Index: curl-7.20.0/libcurl.pc.in -=================================================================== ---- curl-7.20.0.orig/libcurl.pc.in 2009-11-17 18:11:07.000000000 +0000 -+++ curl-7.20.0/libcurl.pc.in 2010-03-25 12:13:26.814051066 +0000 -@@ -35,6 +35,7 @@ - URL: http://curl.haxx.se/ - Description: Library to transfer files with ftp, http, etc. - Version: @CURLVERSION@ --Libs: -L${libdir} -lcurl @LIBS@ --Libs.private: @LIBCURL_LIBS@ @LIBS@ -+Requires.private: @GNUTLS_REQUIRED@ -+Libs: -L${libdir} -lcurl -+Libs.private: -ldl -lz - Cflags: -I${includedir} -Index: curl-7.20.0/configure.ac -=================================================================== ---- curl-7.20.0.orig/configure.ac 2010-02-04 21:41:46.000000000 +0000 -+++ curl-7.20.0/configure.ac 2010-03-25 12:12:18.673129001 +0000 -@@ -1668,6 +1668,7 @@ - AC_SUBST(USE_GNUTLS, [1]) - GNUTLS_ENABLED=1 - USE_GNUTLS="yes" -+ GNUTLS_REQUIRED="gnutls" - curl_ssl_msg="enabled (GnuTLS)" - ], - [ -@@ -1696,6 +1697,8 @@ - - fi dnl OPENSSL != 1 - -+AC_SUBST(GNUTLS_REQUIRED) -+ - dnl ---------------------------------------------------- - dnl NSS. Only check if GnuTLS and OpenSSL are not enabled - dnl ---------------------------------------------------- diff --git a/meta-networking/recipes-support/curlpp/curlpp_0.7.3.bb b/meta-networking/recipes-support/curlpp/curlpp_0.7.3.bb deleted file mode 100644 index 48f5178b52b..00000000000 --- a/meta-networking/recipes-support/curlpp/curlpp_0.7.3.bb +++ /dev/null @@ -1,88 +0,0 @@ -SUMMARY = "C++ library for client-side URL transfers" -HOMEPAGE = "http://code.google.com/p/curlpp/" -SECTION = "console/network" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -DEPENDS = "curl boost" -DEPENDS_class-native = "curl-native" - -SRC_URI = "http://curlpp.googlecode.com/files/curlpp-${PV}.tar.gz \ - file://example21.cpp-remove-deprecated-code.patch \ - " - -SRC_URI[md5sum] = "ccc3d30d4b3b5d2cdbed635898c29485" -SRC_URI[sha256sum] = "e3f9427b27c5bddf898d383d45c0d3d5397e2056ff935d9a5cdaef6a9a653bd5" - -inherit autotools-brokensep pkgconfig binconfig - -EXTRA_OECONF = "--prefix=${STAGING_DIR} \ - --with-boost=${STAGING_DIR} \ - " - -do_install() { - install -d ${D}/${includedir}/curlpp - cp -r include/curlpp/* ${D}${includedir}/curlpp - - install -d ${D}${includedir}/utilspp - cp -r include/utilspp/* ${D}${includedir}/utilspp - - install -d ${D}/${libdir} - install -m 664 src/curlpp/.libs/libcurlpp.a ${D}/${libdir} - install -m 664 src/curlpp/.libs/libcurlpp.lai ${D}/${libdir}/libcurlpp.la - - install -m 775 src/curlpp/.libs/libcurlpp.so.0.0.2 ${D}/${libdir} - - install -m 664 src/utilspp/.libs/libutilspp.a ${D}/${libdir} - install -m 664 src/utilspp/.libs/libutilspp.lai ${D}/${libdir}/libutilspp.la - - install -m 664 src/utilspp/.libs/libutilspp.so.0.0.0 ${D}/${libdir} - - install -d ${D}/${libdir}/pkgconfig - install -m 664 curlpp.pc ${D}/${libdir}/pkgconfig - - install -d ${D}/${bindir} - install -m 755 curlpp-config ${D}/${bindir} - - install -d ${D}/${includedir}/curlpp - install -d ${D}/${includedir}/curlpp/internal - install -d ${D}/${includedir}/utilspp - install -d ${D}/${includedir}/utilspp/functor - install -d ${D}/${includedir}/utilspp/singleton - - install -m 664 include/curlpp/config* ${D}/${includedir}/curlpp - install -m 664 include/curlpp/*.h* ${D}/${includedir}/curlpp - install -m 664 include/curlpp/*.inl ${D}/${includedir}/curlpp - - install -m 664 include/curlpp/internal/*.h* ${D}/${includedir}/curlpp/internal - install -m 664 include/curlpp/internal/*.inl ${D}/${includedir}/curlpp/internal - - install -m 664 include/utilspp/*.h* ${D}/${includedir}/utilspp - install -m 664 include/utilspp/*.inl ${D}/${includedir}/utilspp - - install -m 664 include/utilspp/functor/*.h* ${D}/${includedir}/utilspp/functor - install -m 664 include/utilspp/singleton/*.h* ${D}/${includedir}/utilspp/singleton - install -m 664 include/utilspp/singleton/*.inl ${D}/${includedir}/utilspp/singleton - install -m 755 curlpp-config ${D}/${bindir} -} - -pkg_postinst_${PN}() { - ln -sf libcurlpp.so.0.0.2 /usr/lib/libcurlpp.so.0 - ln -sf libcurlpp.so.0.0.2 /usr/lib/libcurlpp.so - ln -sf libutilspp.so.0.0.0 /usr/lib/libutilspp.so.0 - ln -sf libutilspp.so.0.0.0 /usr/lib/libutilspp.so -} - -PACKAGES =+ "libcurlpp libcurlpp-dev libcurlpp-staticdev" - -FILES_lib${BPN} = "${libdir}/lib*.so.* \ - " - -FILES_lib${BPN}-dev = "${includedir} \ - ${libdir}/lib*.la \ - ${libdir}/pkgconfig \ - ${bindir}/*-config" - -FILES_lib${BPN}-staticdev = "${libdir}/lib*.a" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb b/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb new file mode 100644 index 00000000000..340f57dc7e4 --- /dev/null +++ b/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "C++ library for client-side URL transfers" +HOMEPAGE = "http://www.curlpp.org/" +SECTION = "libdevel" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +DEPENDS = "curl" +DEPENDS_class-native = "curl-native" + +SRC_URI = "git://github.com/jpbarrette/curlpp.git" + +SRCREV = "592552a165cc569dac7674cb7fc9de3dc829906f" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig binconfig + +do_install_append () { + sed -i 's,${STAGING_DIR_TARGET},,g' ${D}${libdir}/pkgconfig/curlpp.pc +} + +PACKAGES =+ "libcurlpp libcurlpp-dev libcurlpp-staticdev" + +FILES_lib${BPN} = "${libdir}/lib*.so.*" + +FILES_lib${BPN}-dev = "${includedir} \ + ${libdir}/pkgconfig \ + ${bindir}/*-config \ +" + +FILES_lib${BPN}-staticdev = "${libdir}/lib*.a" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc index 1335245986a..ef79c5f8221 100644 --- a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc +++ b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc @@ -1,16 +1,17 @@ SUMMARY = "Lightweight, easy to configure DNS forwarder and DHCP server" HOMEPAGE = "http://www.thekelleys.org.uk/dnsmasq/doc.html" -SECTION = "console/network" +SECTION = "net" # GPLv3 was added in version 2.41 as license option LICENSE = "GPLv2 | GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504" #at least versions 2.15 and prior are moved to the archive folder on the server -SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV',1).split('.')[1]) > 15]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \ +SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 15]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \ file://init \ file://dnsmasq.conf \ - file://dnsmasq.service \ + file://dnsmasq-resolvconf.service \ + file://dnsmasq-noresolvconf.service \ " inherit pkgconfig update-rc.d systemd @@ -23,18 +24,21 @@ PACKAGECONFIG[dbus] = ",,dbus" PACKAGECONFIG[idn] = ",,libidn" PACKAGECONFIG[conntrack] = ",,libnetfilter-conntrack" PACKAGECONFIG[lua] = ",,lua" +PACKAGECONFIG[resolvconf] = ",,,resolvconf" EXTRA_OEMAKE = "\ - 'COPTS=${@base_contains('PACKAGECONFIG', 'dbus', '-DHAVE_DBUS', '', d)} \ - ${@base_contains('PACKAGECONFIG', 'idn', '-DHAVE_IDN', '', d)} \ - ${@base_contains('PACKAGECONFIG', 'conntrack', '-DHAVE_CONNTRACK', '', d)} \ - ${@base_contains('PACKAGECONFIG', 'lua', '-DHAVE_LUASCRIPT', '', d)}' \ + 'COPTS=${@bb.utils.contains('PACKAGECONFIG', 'dbus', '-DHAVE_DBUS', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'idn', '-DHAVE_IDN', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'conntrack', '-DHAVE_CONNTRACK', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'lua', '-DHAVE_LUASCRIPT', '', d)}' \ 'CFLAGS=${CFLAGS}' \ 'LDFLAGS=${LDFLAGS}' \ " +SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'resolvconf', 'file://dnsmasq.resolvconf file://99_dnsmasq file://dnsmasq-resolvconf-helper', '', d)}" + do_compile_append() { # build dhcp_release - cd ${S}/contrib/wrt + cd ${S}/contrib/lease-tools oe_runmake } @@ -48,14 +52,27 @@ do_install () { install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/dnsmasq install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/dnsmasq.service ${D}${systemd_unitdir}/system - install -m 0755 ${S}/contrib/wrt/dhcp_release ${D}${bindir} + if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then + install -m 0644 ${WORKDIR}/dnsmasq-resolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service + else + install -m 0644 ${WORKDIR}/dnsmasq-noresolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service + fi + + install -m 0755 ${S}/contrib/lease-tools/dhcp_release ${D}${bindir} - if [ "${@base_contains('PACKAGECONFIG', 'dbus', 'dbus', '', d)}" != "" ]; then + if [ "${@bb.utils.filter('PACKAGECONFIG', 'dbus', d)}" ]; then install -d ${D}${sysconfdir}/dbus-1/system.d install -m 644 dbus/dnsmasq.conf ${D}${sysconfdir}/dbus-1/system.d/ fi + if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then + install -d ${D}${sysconfdir}/resolvconf/update.d/ + install -m 0755 ${WORKDIR}/dnsmasq.resolvconf ${D}${sysconfdir}/resolvconf/update.d/dnsmasq + + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/99_dnsmasq ${D}${sysconfdir}/default/volatiles + install -m 0755 ${WORKDIR}/dnsmasq-resolvconf-helper ${D}${bindir} + fi } CONFFILES_${PN} = "${sysconfdir}/dnsmasq.conf" diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch b/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch index 918c0b6d56e..0991dd8b953 100644 --- a/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch +++ b/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch @@ -1,29 +1,30 @@ -From 1e5be0a0bcf85913d63408030dec038d360a5fa6 Mon Sep 17 00:00:00 2001 +From be1b3d2d0f1608cba5efee73d6aac5ad0709041b Mon Sep 17 00:00:00 2001 From: Joe MacDonald Date: Tue, 9 Sep 2014 10:24:58 -0400 Subject: [PATCH] Upstream-status: Inappropriate [OE specific] Signed-off-by: Christopher Larson +Signed-off-by: Paul Eggleton --- - Makefile | 4 ++-- + Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile -index fc38393..a79f8bf 100644 +index 73ea23e..ed3eeb9 100644 --- a/Makefile +++ b/Makefile -@@ -57,8 +57,8 @@ idn_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) - - idn_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --libs libidn` +@@ -59,8 +59,8 @@ idn2_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFI + idn2_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFIG) --libs libidn2` ct_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --cflags libnetfilter_conntrack` ct_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --libs libnetfilter_conntrack` --lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua5.1` --lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua5.1` +-lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua5.2` +-lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua5.2` +lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua` +lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua` nettle_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --cflags nettle hogweed` nettle_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --libs nettle hogweed` - gmp_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --copy -lgmp` + gmp_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC NO_GMP --copy -lgmp` -- -1.7.9.5 +2.9.5 diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq/parallel-make.patch b/meta-networking/recipes-support/dnsmasq/dnsmasq/parallel-make.patch deleted file mode 100644 index 6d5b722eaba..00000000000 --- a/meta-networking/recipes-support/dnsmasq/dnsmasq/parallel-make.patch +++ /dev/null @@ -1,19 +0,0 @@ -The dnsmasq target depends on .configured and $(objs). .configured does an rm --f *.o. Yet the only thing telling make to build the .configured target before -the $(objs) target was the order of the dependencies of the dnsmasq target. We -can't rely on that order when doing a paralllel make build, so add an explicit -rule to enforce that order. - -Signed-off-by: Christopher Larson -Upstream-status: Pending - ---- dnsmasq-2.68.orig/Makefile -+++ dnsmasq-2.68/Makefile -@@ -139,6 +139,8 @@ bloatcheck : $(BUILDDIR)/dnsmasq_baselin - @rm -f *.o - @touch $@ - -+$(objs): .configured -+ - $(objs:.o=.c) $(hdrs): - ln -s $(top)/$(SRC)/$@ . diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.72.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.72.bb deleted file mode 100644 index bd5919492e6..00000000000 --- a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.72.bb +++ /dev/null @@ -1,10 +0,0 @@ -require dnsmasq.inc - -SRC_URI += "\ - file://parallel-make.patch \ - file://lua.patch \ -" - -SRC_URI[dnsmasq-2.72.md5sum] = "cf82f81cf09ad3d47612985012240483" -SRC_URI[dnsmasq-2.72.sha256sum] = "635f1b47417d17cf32e45cfcfd0213ac39fd09918479a25373ba9b2ce4adc05d" - diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb new file mode 100644 index 00000000000..4d1dc6e69e0 --- /dev/null +++ b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb @@ -0,0 +1,8 @@ +require dnsmasq.inc + +SRC_URI += "\ + file://lua.patch \ +" + +SRC_URI[dnsmasq-2.78.md5sum] = "3bb97f264c73853f802bf70610150788" +SRC_URI[dnsmasq-2.78.sha256sum] = "c92e5d78aa6353354d02aabf74590d08980bb1385d8a00b80ef9bc80430aa1dc" diff --git a/meta-networking/recipes-support/dnsmasq/files/99_dnsmasq b/meta-networking/recipes-support/dnsmasq/files/99_dnsmasq new file mode 100644 index 00000000000..f52ce4e8fff --- /dev/null +++ b/meta-networking/recipes-support/dnsmasq/files/99_dnsmasq @@ -0,0 +1 @@ +d root root 0755 /run/dnsmasq none diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq-noresolvconf.service b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-noresolvconf.service new file mode 100644 index 00000000000..0c64fab0030 --- /dev/null +++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-noresolvconf.service @@ -0,0 +1,15 @@ +[Unit] +Description=DNS forwarder and DHCP server +After=network.target + +[Service] +Type=forking +PIDFile=/run/dnsmasq.pid +ExecStartPre=/usr/bin/dnsmasq --test +ExecStart=/usr/bin/dnsmasq -x /run/dnsmasq.pid -7 /etc/dnsmasq.d --local-service +ExecStop=/bin/kill $MAINPID +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target + diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf-helper b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf-helper new file mode 100644 index 00000000000..db54d467e65 --- /dev/null +++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf-helper @@ -0,0 +1,62 @@ +#!/bin/bash +# +# Borrowing heavily from the dnsmasq initscript's version of support for +# resolvconf, intended for use in systemd-only configurations. +# +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/dnsmasq +NAME=dnsmasq + +# Most configuration options in /etc/default/dnsmasq are deprecated +# but still honoured. +if [ -r /etc/default/$NAME ]; then + . /etc/default/$NAME +fi + +start_resolvconf() +{ + # If interface "lo" is explicitly disabled in /etc/default/dnsmasq + # Then dnsmasq won't be providing local DNS, so don't add it to + # the resolvconf server set. + for interface in $DNSMASQ_EXCEPT + do + [ $interface = lo ] && return + done + + if [ -x /sbin/resolvconf ] ; then + echo "nameserver 127.0.0.1" | + /sbin/resolvconf -a lo.$NAME + fi + return 0 +} + +stop_resolvconf() +{ + if [ -x /sbin/resolvconf ] ; then + /sbin/resolvconf -d lo.$NAME + fi + return 0 +} + +case "$1" in + start) + start_resolvconf + exit 0 + ;; + stop) + stop_resolvconf + exit 0 + ;; + restart) + stop_resolvconf + start_resolvconf + exit 0 + ;; + *) + echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2 + exit 3 + ;; +esac + +exit 0 + diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service new file mode 100644 index 00000000000..2980f7def6e --- /dev/null +++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service @@ -0,0 +1,17 @@ +[Unit] +Description=DNS forwarder and DHCP server +After=network.target + +[Service] +Type=forking +PIDFile=/run/dnsmasq.pid +ExecStartPre=/usr/bin/dnsmasq --test +ExecStart=/usr/bin/dnsmasq -x /run/dnsmasq.pid -7 /etc/dnsmasq.d --local-service +ExecStartPost=/usr/bin/dnsmasq-resolvconf-helper start +ExecStopPre=/usr/bin/dnsmasq-resolvconf-helper stop +ExecStop=/bin/kill $MAINPID +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target + diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf index 1a198a3791d..9e5ab9f81bc 100755 --- a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf +++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf @@ -4,6 +4,11 @@ # as the long options legal on the command line. See # "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details. +# Listen on this specific port instead of the standard DNS port +# (53). Setting this to zero completely disables DNS function, +# leaving only DHCP and/or TFTP. +#port=5353 + # Change these lines if you want dnsmasq to serve MX records. # Only one of mx-host and mx-target need be set, the other defaults # to the name of the host running dnsmasq. @@ -77,7 +82,7 @@ bogus-priv #except-interface= # Or which to listen on by address (remember to include 127.0.0.1 if # you use this.) -#listen-address= +#listen-address=127.0.0.1 # On systems which support it, dnsmasq binds the wildcard address, # even when it is listening on only some interfaces. It then discards @@ -114,7 +119,7 @@ bogus-priv # repeat this for each network on which you want to supply DHCP # service. #dhcp-range=192.168.0.50,192.168.0.150,12h -dhcp-range=10.0.0.10,10.0.0.200,2h +#dhcp-range=10.0.0.10,10.0.0.200,2h # This is an example of a DHCP range where the netmask is given. This # is needed for networks we reach the dnsmasq DHCP server via a relay diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.resolvconf b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.resolvconf new file mode 100755 index 00000000000..06cd25cecec --- /dev/null +++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.resolvconf @@ -0,0 +1,84 @@ +#!/bin/sh +# +# Script to update the resolver list for dnsmasq +# +# N.B. Resolvconf may run us even if dnsmasq is not (yet) running. +# If dnsmasq is installed then we go ahead and update the resolver list +# in case dnsmasq is started later. +# +# Assumption: On entry, PWD contains the resolv.conf-type files. +# +# This file is part of the dnsmasq package. +# + +set -e + +RUN_DIR="/run/dnsmasq" +RSLVRLIST_FILE="${RUN_DIR}/resolv.conf" +TMP_FILE="${RSLVRLIST_FILE}_new.$$" +MY_NAME_FOR_RESOLVCONF="dnsmasq" + +[ -x /usr/bin/dnsmasq ] || exit 0 +[ -x /lib/resolvconf/list-records ] || exit 1 + +PATH=/bin:/sbin + +report_err() { echo "$0: Error: $*" >&2 ; } + +# Stores arguments (minus duplicates) in RSLT, separated by spaces +# Doesn't work properly if an argument itself contains whitespace +uniquify() +{ + RSLT="" + while [ "$1" ] ; do + for E in $RSLT ; do + [ "$1" = "$E" ] && { shift ; continue 2 ; } + done + RSLT="${RSLT:+$RSLT }$1" + shift + done +} + +if [ ! -d "$RUN_DIR" ] && ! mkdir --parents --mode=0755 "$RUN_DIR" ; then + report_err "Failed trying to create directory $RUN_DIR" + exit 1 +fi + +RSLVCNFFILES="" +for F in $(/lib/resolvconf/list-records --after "lo.$MY_NAME_FOR_RESOLVCONF") ; do + case "$F" in + "lo.$MY_NAME_FOR_RESOLVCONF") + # Omit own record + ;; + lo.*) + # Include no more records after one for a local nameserver + RSLVCNFFILES="${RSLVCNFFILES:+$RSLVCNFFILES }$F" + break + ;; + *) + RSLVCNFFILES="${RSLVCNFFILES:+$RSLVCNFFILES }$F" + ;; + esac +done + +NMSRVRS="" +if [ "$RSLVCNFFILES" ] ; then + uniquify $(sed -n -e 's/^[[:space:]]*nameserver[[:space:]]\+//p' $RSLVCNFFILES) + NMSRVRS="$RSLT" +fi + +# Dnsmasq uses the mtime of $RSLVRLIST_FILE, with a resolution of one second, +# to detect changes in the file. This means that if a resolvconf update occurs +# within one second of the previous one then dnsmasq may fail to notice the +# more recent change. To work around this problem we sleep one second here +# if necessary in order to ensure that the new mtime is different. +if [ -f "$RSLVRLIST_FILE" ] && [ "$(stat -c %X "$RSLVRLIST_FILE")" = "$(date +%s)" ] ; then + sleep 1 +fi + +clean_up() { rm -f "$TMP_FILE" ; } +trap clean_up EXIT +: >| "$TMP_FILE" +for N in $NMSRVRS ; do echo "nameserver $N" >> "$TMP_FILE" ; done +mv -f "$TMP_FILE" "$RSLVRLIST_FILE" + diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.service b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.service deleted file mode 100644 index 549e15e2b22..00000000000 --- a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=DNS forwarder and DHCP server -After=network.target - -[Service] -Type=forking -PIDFile=/run/dnsmasq.pid -ExecStart=/usr/bin/dnsmasq -x /run/dnsmasq.pid -ExecReload=/bin/kill -HUP $(/bin/cat /run/dnsmasq.pid) - -[Install] -WantedBy=multi-user.target - diff --git a/meta-networking/recipes-support/dnsmasq/files/init b/meta-networking/recipes-support/dnsmasq/files/init index d1aa9e517da..51c95dfedd5 100644 --- a/meta-networking/recipes-support/dnsmasq/files/init +++ b/meta-networking/recipes-support/dnsmasq/files/init @@ -8,15 +8,68 @@ test -f $DAEMON || exit 0 set -e +if [ -r /etc/default/$NAME ] +then + . /etc/default/$NAME +fi + +DNSMASQ_CONF="/etc/dnsmasq.conf" +test "/etc/dnsmasq.d/*" != '/etc/dnsmasq.d/*' && DNSMASQ_CONF="${DNSMASQ_CONF} /etc/dnsmasq.d/*" + +test -z "${PIDFILE}" && PIFILE="/run/dnsmasq.pid" + +if [ -z "$IGNORE_RESOLVCONF" ] +then + egrep -h -q '^no-resolv' ${DNSMASQ_CONF} && IGNORE_RESOLVCONF="yes" +fi + +# RESOLV_CONF: +# If the resolvconf package is installed then use the resolv conf file +# that it provides as the default. Otherwise use /etc/resolv.conf as +# the default. +# +# If IGNORE_RESOLVCONF is set in /etc/default/dnsmasq or an explicit +# filename is set there then this inhibits the use of the resolvconf-provided +# information. +# +# Note that if the resolvconf package is installed it is not possible to +# override it just by configuration in /etc/dnsmasq.conf, it is necessary +# to set IGNORE_RESOLVCONF=yes in /etc/default/dnsmasq. + +test -z "$RESOLV_CONF" -a "$IGNORE_RESOLVCONF" != "yes" -a -x /sbin/resolvconf && \ + RESOLV_CONF=/run/dnsmasq/resolv.conf + +start_resolvconf() +{ + if [ "$IGNORE_RESOLVCONF" != "yes" -a -x /sbin/resolvconf ] + then + echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo.$NAME + fi + : +} + +stop_resolvconf() +{ + if [ "$IGNORE_RESOLVCONF" != "yes" -a -x /sbin/resolvconf ] + then + /sbin/resolvconf -d lo.$NAME + fi + : +} + case "$1" in start) echo -n "starting $DESC: $NAME... " test -d /var/lib/misc/ || mkdir /var/lib/misc/ - start-stop-daemon -S -x $DAEMON -- $ARGS + start-stop-daemon -S -x $DAEMON -- $ARGS \ + ${RESOLV_CONF:+ -r $RESOLV_CONF} \ + ${PIDFILE:+ -x $PIDFILE} + test $? -eq 0 && start_resolvconf echo "done." ;; stop) echo -n "stopping $DESC: $NAME... " + stop_resolvconf start-stop-daemon -K -x $DAEMON echo "done." ;; @@ -25,7 +78,7 @@ case "$1" in start-stop-daemon -q -K -t -x $DAEMON RET=$? if [ "$RET" = "0" ]; then - PID=`cat /var/run/dnsmasq.pid` + PID=`cat ${PIDFILE}` echo "($PID) is running" else echo "is not running" @@ -43,6 +96,18 @@ case "$1" in killall -HUP $(basename ${DAEMON}) echo "done." ;; + systemd-start-resolvconf) + start_resolvconf + ;; + systemd-stop-resolvconf) + stop_resolvconf + ;; + systemd-exec) + test -d /var/lib/misc/ || mkdir /var/lib/misc/ + exec $DAEMON --keep-in-foreground $ARGS \ + ${RESOLV_CONF:+ -r $RESOLV_CONF} \ + ${PIDFILE:+ -x $PIDFILE} + ;; *) echo "Usage: $0 {start|stop|status|restart|reload}" exit 1 diff --git a/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb b/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb index 6a50971e833..ca59bd21706 100644 --- a/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb +++ b/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb @@ -9,7 +9,7 @@ Unbound, known DNSSEC keys, URL's to official publication pages of keys, \ and harvested keys, as well a script to harvest DNSKEY's from DNS. \ See also: system-config-dnssec" HOMEPAGE = "https://github.com/xelerance/dnssec-conf" -SECTION = "System Environment/Daemons" +SECTION = "net" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://LICENSE;md5=0636e73ff0215e8d672dc4c32c317bb3" DEPENDS += "xmlto-native docbook-xml-dtd4-native \ diff --git a/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch b/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch index 6f5c279be23..f86235076ef 100644 --- a/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch +++ b/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch @@ -1,21 +1,23 @@ -From 483f120603ada8db680085e3f462396da937e036 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Wed, 8 Jan 2014 09:30:36 +0100 +From 07150f3a27681e034f18ab2ed2b68914c1e10af6 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Sat, 18 Jul 2015 05:03:57 +0900 Subject: [PATCH] configure.ac: convert AC_TRY_RUN to AC_TRY_LINK statements This is not completely safe, but it's the least invasive fix. +Upstream-Status: pending + Signed-off-by: Koen Kooi -Upstream-status: Inappropriate +Signed-off-by: Li Xin --- - configure.ac | 23 +++++++---------------- - 1 file changed, 7 insertions(+), 16 deletions(-) + configure.ac | 15 +++++---------- + 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac -index 95984bb..dff1f87 100644 +index 3b32614..94ec002 100644 --- a/configure.ac +++ b/configure.ac -@@ -499,13 +499,10 @@ have_ioloop=no +@@ -519,13 +519,10 @@ have_ioloop=no if test "$ioloop" = "best" || test "$ioloop" = "epoll"; then AC_CACHE_CHECK([whether we can use epoll],i_cv_epoll_works,[ @@ -27,39 +29,12 @@ index 95984bb..dff1f87 100644 - { - return epoll_create(5) < 1; - } -+ ], [ -+ epoll_create(5) < 1; - ], [ - i_cv_epoll_works=yes - ], [ -@@ -551,15 +548,13 @@ have_notify=none - if test "$notify" = "" || test "$notify" = "inotify" ; then - dnl * inotify? - AC_CACHE_CHECK([whether we can use inotify],i_cv_inotify_works,[ -- AC_TRY_RUN([ -+ AC_TRY_LINK([ - #define _GNU_SOURCE - #include - #include - #include - #include -- -- int main() -- { + ], [ - int wd, fd; - char * fn = "/tmp"; - -@@ -581,8 +576,6 @@ if test "$notify" = "" || test "$notify" = "inotify" ; then - inotify_rm_watch (fd, wd); - - close (fd); -- return 0; -- } ++ epoll_create(5) < 1; ], [ - i_cv_inotify_works=yes + i_cv_epoll_works=yes ], [ -@@ -670,7 +663,7 @@ fi +@@ -653,7 +650,7 @@ fi dnl * Old glibcs have broken posix_fallocate(). Make sure not to use it. dnl * It may also be broken in AIX. AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[ @@ -68,16 +43,16 @@ index 95984bb..dff1f87 100644 #define _XOPEN_SOURCE 600 #include #include -@@ -679,7 +672,7 @@ AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[ +@@ -662,7 +659,7 @@ AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[ #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7) possibly broken posix_fallocate #endif - int main() { -+ ], [ ++ ], [ int fd = creat("conftest.temp", 0600); int ret; if (fd == -1) { -@@ -688,8 +681,6 @@ AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[ +@@ -671,8 +668,6 @@ AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[ } ret = posix_fallocate(fd, 1024, 1024) < 0 ? 1 : 0; unlink("conftest.temp"); diff --git a/meta-networking/recipes-support/dovecot/dovecot/building-rquota_xdr.c-depend-on-rquota.h.patch b/meta-networking/recipes-support/dovecot/dovecot/building-rquota_xdr.c-depend-on-rquota.h.patch deleted file mode 100644 index 11d9d8c0d2b..00000000000 --- a/meta-networking/recipes-support/dovecot/dovecot/building-rquota_xdr.c-depend-on-rquota.h.patch +++ /dev/null @@ -1,28 +0,0 @@ -[PATCH] building rquota_xdr.c depends on rquota.h - -Upstream-status: Pending - -rquota.h is generated automatically, and building rquota_xdr.c -needs rquota.h, so add the dependency on rquota.h for rquota_xdr.c - -Signed-off-by: rongqing li ---- - src/plugins/quota/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/plugins/quota/Makefile.am b/src/plugins/quota/Makefile.am -index 8a6988d..3626d79 100644 ---- a/src/plugins/quota/Makefile.am -+++ b/src/plugins/quota/Makefile.am -@@ -70,7 +70,7 @@ RQUOTA_XDR = rquota_xdr.c - RQUOTA_XDR_LO = rquota_xdr.lo - #RQUOTA_X = /usr/include/rpcsvc/rquota.x - RQUOTA_X = $(srcdir)/rquota.x --rquota_xdr.c: Makefile $(RQUOTA_X) -+rquota_xdr.c: Makefile $(RQUOTA_X) rquota.h - if [ "$(top_srcdir)" != "$(top_builddir)" ]; then \ - cp $(RQUOTA_X) $(top_builddir)/src/plugins/quota/; \ - fi; \ --- -1.8.2.1 - diff --git a/meta-networking/recipes-support/dovecot/dovecot/dovecot.service b/meta-networking/recipes-support/dovecot/dovecot/dovecot.service new file mode 100644 index 00000000000..ca250ea5d3e --- /dev/null +++ b/meta-networking/recipes-support/dovecot/dovecot/dovecot.service @@ -0,0 +1,14 @@ +[Unit] +Description=Dovecot IMAP/POP3 email server +After=local-fs.target network.target + +[Service] +Type=simple +EnvironmentFile=-@SYSCONFDIR@/sysconfig/dovecot +ExecStart=@SBINDIR@/dovecot -F +ExecReload=/bin/kill -HUP $MAINPID +NonBlocking=yes + +[Install] +WantedBy=multi-user.target + diff --git a/meta-networking/recipes-support/dovecot/dovecot/dovecot.socket b/meta-networking/recipes-support/dovecot/dovecot/dovecot.socket new file mode 100644 index 00000000000..556e1a8506f --- /dev/null +++ b/meta-networking/recipes-support/dovecot/dovecot/dovecot.socket @@ -0,0 +1,14 @@ +[Unit] +Description=Dovecot IMAP/POP3 email server activation socket + +[Socket] +#dovecot expects separate IPv4 and IPv6 sockets +BindIPv6Only=ipv6-only +ListenStream=0.0.0.0:143 +ListenStream=[::]:143 +ListenStream=0.0.0.0:993 +ListenStream=[::]:993 +KeepAlive=true + +[Install] +WantedBy=sockets.target diff --git a/meta-networking/recipes-support/dovecot/dovecot_2.2.10.bb b/meta-networking/recipes-support/dovecot/dovecot_2.2.10.bb deleted file mode 100644 index f733a7832f7..00000000000 --- a/meta-networking/recipes-support/dovecot/dovecot_2.2.10.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "Dovecot is an open source IMAP and POP3 email server" -DESCRIPTION = "Dovecot is an open source IMAP and POP3 email server for Linux/UNIX-like systems, written with security primarily in mind. Dovecot is an excellent choice for both small and large installations. It's fast, simple to set up, requires no special administration and it uses very little memory." - -LICENSE = "LGPLv2.1 & MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=a981379bd0f1c362f8d1d21515e5b30b" - -SRC_URI = "http://dovecot.org/releases/2.2/dovecot-${PV}.tar.gz \ - file://0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch \ - file://building-rquota_xdr.c-depend-on-rquota.h.patch \ - " -SRC_URI[md5sum] = "037e9c9e07d9dbff54dcff09f280fc8c" -SRC_URI[sha256sum] = "75592483d40dc4f76cc3b41af40caa4be80478946a699d46846d5d03e4d2e09b" - -DEPENDS = "openssl xz zlib bzip2 libcap" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= " \ - ${@base_contains('DISTRO_FEATURES', 'ldap', 'ldap', '', d)} \ - ${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ - " - -PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," -PACKAGECONFIG[ldap] = "--with-ldap=plugin,--without-ldap,openldap," - -# From native build in armv7a-hf/eglibc -CACHED_CONFIGUREVARS += "i_cv_signed_size_t=no \ - i_cv_gmtime_max_time_t=32 \ - i_cv_signed_time_t=yes \ - i_cv_mmap_plays_with_write=yes \ - i_cv_fd_passing=yes \ - i_cv_c99_vsnprintf=yes \ - lib_cv___va_copy=yes \ - lib_cv_va_copy=yes \ - lib_cv_va_val_copy=yes \ - " - -# hardcode epoll() to avoid running unsafe tests -# BSD needs kqueue and uclibc poll() -EXTRA_OECONF = " --with-ioloop=epoll" - -FILES_${PN}-staticdev += "${libdir}/dovecot/*/*.a" -FILES_${PN}-dev += "${libdir}/dovecot/*.so" -FILES_${PN}-dbg += "${libdir}/dovecot/*/.debug" - diff --git a/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb b/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb new file mode 100644 index 00000000000..d834bef71d6 --- /dev/null +++ b/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb @@ -0,0 +1,69 @@ +SUMMARY = "Dovecot is an open source IMAP and POP3 email server" +HOMEPAGE = "https://www.dovecot.org/" +DESCRIPTION = "Dovecot is an open source IMAP and POP3 email server for Linux/UNIX-like systems, written with security primarily in mind. Dovecot is an excellent choice for both small and large installations. It's fast, simple to set up, requires no special administration and it uses very little memory." +SECTION = "mail" +LICENSE = "LGPLv2.1 & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=a981379bd0f1c362f8d1d21515e5b30b" + +SRC_URI = "http://dovecot.org/releases/2.2/dovecot-${PV}.tar.gz \ + file://0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch \ + file://dovecot.service \ + file://dovecot.socket" + +SRC_URI[md5sum] = "ff95486a5c43025a2c3f5a712e7962b9" +SRC_URI[sha256sum] = "d939ea99126eb8a8c6955390b422b6e27ec0fa43a3b59b2b3218cb5ad67139a6" + +DEPENDS = "openssl xz zlib bzip2 libcap icu" + +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + +inherit autotools pkgconfig systemd useradd + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)}" + +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," +PACKAGECONFIG[ldap] = "--with-ldap=plugin,--without-ldap,openldap," +PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4," + +# From native build in armv7a-hf/eglibc +CACHED_CONFIGUREVARS += "i_cv_signed_size_t=no \ + i_cv_gmtime_max_time_t=32 \ + i_cv_signed_time_t=yes \ + i_cv_mmap_plays_with_write=yes \ + i_cv_fd_passing=yes \ + i_cv_c99_vsnprintf=yes \ + lib_cv___va_copy=yes \ + lib_cv_va_copy=yes \ + lib_cv_va_val_copy=yes \ + " + +# hardcode epoll() to avoid running unsafe tests +# BSD needs kqueue and uclibc poll() +EXTRA_OECONF = " --with-ioloop=epoll \ + --with-systemdsystemunitdir=${systemd_unitdir}/system" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "dovecot.service dovecot.socket" +SYSTEMD_AUTO_ENABLE = "disable" + +do_install_append () { + install -d 755 ${D}/etc/dovecot + touch 644 ${D}/etc/dovecot/dovecot.conf + install -m 0644 ${WORKDIR}/dovecot.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/dovecot.service + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/dovecot.service +} + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "-r -d ${libexecdir} -M -s ${base_sbindir}/nologin -g dovecot dovecot; \ + -r -d ${libexecdir} -M -s ${base_sbindir}/nologin -g dovenull dovenull" +GROUPADD_PARAM_${PN} = "-f -r dovecot;-f -r dovenull" + +FILES_${PN} += "${libdir}/dovecot/*plugin.so \ + ${libdir}/dovecot/libfs_compress.so \ + ${libdir}/dovecot/libssl_iostream_openssl.so" +FILES_${PN}-staticdev += "${libdir}/dovecot/*/*.a" +FILES_${PN}-dev += "${libdir}/dovecot/libdovecot*.so" +FILES_${PN}-dbg += "${libdir}/dovecot/*/.debug" diff --git a/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch b/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch new file mode 100644 index 00000000000..90dd1f8618c --- /dev/null +++ b/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch @@ -0,0 +1,25 @@ +Upstream-Status: Pending + +Subject: Makefile.in: fix permission bits for drbd.service + +Signed-off-by: Chen Qi +--- + scripts/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/Makefile.in b/scripts/Makefile.in +index 402b93b..4a45407 100644 +--- a/scripts/Makefile.in ++++ b/scripts/Makefile.in +@@ -65,7 +65,7 @@ endif + # yes, debian apparently allows installing both types from the same package + ifneq ($(initscripttype),sysv) # "systemd" or "both" + install -d $(DESTDIR)$(systemdunitdir) +- install -m 755 drbd.service $(DESTDIR)$(systemdunitdir)/ ++ install -m 644 drbd.service $(DESTDIR)$(systemdunitdir)/ + install -d $(DESTDIR)/lib/drbd/ + install -m 755 drbd $(DESTDIR)/lib/drbd/ + install -d $(DESTDIR)$(tmpfilesdir)/ +-- +1.9.1 + diff --git a/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb b/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb new file mode 100644 index 00000000000..5f6c43f7eaa --- /dev/null +++ b/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb @@ -0,0 +1,46 @@ +SUMMARY = "Distributed block device driver for Linux" +DESCRIPTION = "DRBD mirrors a block device over the network to another machine.\ +DRBD mirrors a block device over the network to another machine.\ +Think of it as networked raid 1. It is a building block for\ +setting up high availability (HA) clusters." +HOMEPAGE = "http://www.drbd.org/" +SECTION = "admin" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018" + +SRC_URI = "http://oss.linbit.com/drbd/${BP}.tar.gz \ + file://0001-Makefile.in-fix-permission-bits-for-drbd.service.patch \ + " +SRC_URI[md5sum] = "76ed6d3190cd77b00890f3365353124b" +SRC_URI[sha256sum] = "297b77c9b3f88de2e7dae459234f2753ea4fc2805282b2d276e35cf51e292913" + +SYSTEMD_SERVICE_${PN} = "drbd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +inherit autotools-brokensep systemd + +EXTRA_OECONF = " \ + --with-initdir=/etc/init.d \ + --without-pacemaker \ + --without-rgmanager \ + --without-bashcompletion \ + --with-distro debian \ + --with-initscripttype=both \ + --with-systemdunitdir=${systemd_unitdir}/system \ + --without-manual\ + " + +do_install_append() { + # don't install empty /var/lock to avoid conflict with base-files + rm -rf ${D}${localstatedir}/lock +} + +RDEPENDS_${PN} += "bash perl-module-getopt-long perl-module-exporter perl-module-constant perl-module-overloading perl-module-exporter-heavy" + +# The drbd items are explicitly put under /lib when installed. +# +FILES_${PN} += "/run" +FILES_${PN} += "${nonarch_base_libdir}/drbd \ + ${nonarch_libdir}/drbd \ + ${nonarch_libdir}/tmpfiles.d" +FILES_${PN}-dbg += "${nonarch_base_libdir}/drbd/.debug" diff --git a/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch b/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch new file mode 100644 index 00000000000..6414f7305a7 --- /dev/null +++ b/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch @@ -0,0 +1,24 @@ +If CONFIG_BLK_DEV_DRBD kernel config is enabled, then DRBD +does not build drbd.ko here. Under this circumstance do_install +task is going to fail with a below error: +-- snip -- +| install: cannot stat ‘drbd.ko’: No such file or directory +| make[1]: *** [install] Error 1 +-- snip -- + +So, check for kernel module existence before installing. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Jagadeesh Krishnanjanappa +--- drbd-9.0.1-1/drbd/Makefile 2016-07-03 06:54:19.421538690 -0700 ++++ drbd-9.0.1-1/drbd/Makefile_mod 2016-07-03 06:53:18.938801628 -0700 +@@ -158,7 +158,7 @@ else + fi + install -d $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR) + set -e ; for ko in $(MODOBJS); do \ +- install -m 644 $$ko $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR); \ ++ [ -e $$ko ] && install -m 644 $$ko $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR); \ + done + ifeq ($(DESTDIR),/) + ifeq ($(shell uname -r),$(KERNELRELEASE)) diff --git a/meta-networking/recipes-support/drbd/drbd/drbd.service b/meta-networking/recipes-support/drbd/drbd/drbd.service deleted file mode 100644 index 35439999763..00000000000 --- a/meta-networking/recipes-support/drbd/drbd/drbd.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=DRBD Service -After=network.target - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=@LIBEXECDIR@/drbd-helper start -ExecStop=@LIBEXECDIR@/drbd-helper stop - -[Install] -WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/drbd/drbd_8.4.4.bb b/meta-networking/recipes-support/drbd/drbd_8.4.4.bb deleted file mode 100644 index 491f05a5922..00000000000 --- a/meta-networking/recipes-support/drbd/drbd_8.4.4.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Distributed block device driver for Linux" -DESCRIPTION = "DRBD mirrors a block device over the network to another machine.\ -DRBD mirrors a block device over the network to another machine.\ -Think of it as networked raid 1. It is a building block for\ -setting up high availability (HA) clusters." -HOMEPAGE = "http://www.drbd.org/" -SECTION = "kernel/userland" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018" - -SRC_URI = "http://oss.linbit.com/${BPN}/8.4/${BPN}-${PV}.tar.gz \ - file://drbd.service \ - " -SRC_URI[md5sum] = "b51815343c1a9151e2936b3b97520388" -SRC_URI[sha256sum] = "a056219c5c23b079c3354179f7a1b9f55d47e573a4cd3178f2ef4c15604288f0" - -SYSTEMD_SERVICE_${PN} = "drbd.service" -SYSTEMD_AUTO_ENABLE = "disable" - -inherit autotools-brokensep systemd - -EXTRA_OECONF = "--with-utils \ - --without-km \ - --with-initdir=/etc/init.d \ - --without-pacemaker \ - --without-rgmanager \ - --without-bashcompletion \ - --with-distro debian \ - " - -do_configure (){ - oe_runconf -} - -do_install_append() { - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}/${systemd_unitdir}/system - install -m 644 ${WORKDIR}/drbd.service ${D}/${systemd_unitdir}/system - install -d ${D}/${libexecdir} - install -m 755 ${D}/${sysconfdir}/init.d/drbd ${D}/${libexecdir}/drbd-helper - - sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' \ - ${D}${systemd_unitdir}/system/drbd.service - fi -} - -RDEPENDS_${PN} += "bash perl" - -FILES_${PN} += "/run" -FILES_${PN} += "${base_libdir}/drbd" -FILES_${PN}-dbg += "${base_libdir}/drbd/.debug" diff --git a/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb b/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb new file mode 100644 index 00000000000..e943f2464ad --- /dev/null +++ b/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb @@ -0,0 +1,22 @@ +SUMMARY = "Distributed block device driver for Linux" +DESCRIPTION = "DRBD is a block device which is designed to build high \ + availability clusters. This is done by mirroring a whole \ + block device via (a dedicated) network. You could see \ + it as a network raid-1." +HOMEPAGE = "http://oss.linbit.com/drbd/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018" +DEPENDS = "virtual/kernel" + +SRC_URI = "http://www.linbit.com/downloads/drbd/9.0/drbd-${PV}.tar.gz \ + file://check_existence_of_modules_before_installing.patch" + +SRC_URI[md5sum] = "c1dd58043f46e9926b579aa65d4ea980" +SRC_URI[sha256sum] = "87f72d46db9bad926415b3ab9f5f1397de8c581d2e2ec1addbdd5ce2604e6123" +inherit module + +EXTRA_OEMAKE += "KDIR='${STAGING_KERNEL_DIR}'" + +do_install () { + oe_runmake install DESTDIR="${D}" +} diff --git a/meta-networking/recipes-support/esmtp/esmtp_1.2.bb b/meta-networking/recipes-support/esmtp/esmtp_1.2.bb index 917dc8b4143..2da73e77564 100644 --- a/meta-networking/recipes-support/esmtp/esmtp_1.2.bb +++ b/meta-networking/recipes-support/esmtp/esmtp_1.2.bb @@ -4,7 +4,7 @@ with a sendmail-compatible syntax, based on libESMTP and \ supporting the AUTH (including the CRAM-MD5 and NTLM SASL \ mechanisms) and StartTLS SMTP extensions." HOMEPAGE = "http://esmtp.sourceforge.net/" -SECTION = "console/network" +SECTION = "net" DEPENDS = "libesmtp" @@ -24,6 +24,11 @@ ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" ALTERNATIVE_TARGET[sendmail] = "${bindir}/esmtp" ALTERNATIVE_PRIORITY = "10" +ALTERNATIVE_${PN}-doc += "mailq.1 newaliases.1 sendmail.1" +ALTERNATIVE_LINK_NAME[mailq.1] = "${mandir}/man1/mailq.1" +ALTERNATIVE_LINK_NAME[newaliases.1] = "${mandir}/man1/newaliases.1" +ALTERNATIVE_LINK_NAME[sendmail.1] = "${mandir}/man1/sendmail.1" + SRC_URI[md5sum] = "79a9c1f9023d53f35bb82bf446150a72" SRC_URI[sha256sum] = "a0d26931bf731f97514da266d079d8bc7d73c65b3499ed080576ab606b21c0ce" diff --git a/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb b/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb index a45f74699e2..1d78288c88e 100644 --- a/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb +++ b/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb @@ -1,12 +1,13 @@ SUMMARY = "Fetchmail retrieves mail from remote mail servers and forwards it via SMTP" +HOMEPAGE = "http://www.fetchmail.info/" DESCRIPTION = "Fetchmail is a full-featured, robust, well-documented remote-mail retrieval and forwarding utility intended to be used over on-demand TCP/IP links (such as SLIP or PPP connections). It supports every remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC." - +SECTION = "mail" LICENSE = "GPLv2 & MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=fbb509e0303f5ded1cbfc0cc8705f28c" DEPENDS = "openssl" -SRC_URI = "http://download.berlios.de/fetchmail/fetchmail-${PV}.tar.xz" +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" SRC_URI[md5sum] = "61b66faad044afa26e142bb1791aa2b3" SRC_URI[sha256sum] = "79b4c54cdbaf02c1a9a691d9948fcb1a77a1591a813e904283a8b614b757e850" diff --git a/meta-networking/recipes-support/fping/fping_3.5.bb b/meta-networking/recipes-support/fping/fping_3.5.bb index fe8893405ee..82e3bf0730f 100644 --- a/meta-networking/recipes-support/fping/fping_3.5.bb +++ b/meta-networking/recipes-support/fping/fping_3.5.bb @@ -7,7 +7,7 @@ targets to ping. Instead of sending to one target until it times out or \ replies, fping will send out a ping packet and move on to the next target \ in a round-robin fashion." HOMEPAGE = "http://www.fping.org/" -SECTION = "console/tools" +SECTION = "net" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=09d77789fe32be35acde9637a5ee39b1" @@ -21,5 +21,5 @@ inherit autotools EXTRA_OECONF = "--enable-ipv4" -PACKAGECONFIG ?= "${@base_contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb b/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb new file mode 100644 index 00000000000..49b11ad3358 --- /dev/null +++ b/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb @@ -0,0 +1,34 @@ +SUMMARY = "fwknop - Single Packet Authorization" +HOMEPAGE = "http://www.cipherdyne.org/fwknop/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + " +inherit autotools-brokensep + +SRC_URI = "http://www.cipherdyne.org/${BPN}/download/${BPN}-${PV}.tar.bz2 \ + " + +SRC_URI[md5sum] = "e2c49e9674888a028bd443a55c3aaa22" +SRC_URI[sha256sum] = "5bf47fe1fd30e862d29464f762c0b8bf89b5e298665c37624d6707826da956d4" + +DEPENDS = "libpcap gpgme" + +EXTRA_OECONF = " --with-iptables=/usr/sbin/iptables \ + " + +do_configure () { + aclocal + libtoolize --automake --copy --force + autoconf + autoheader + automake -a + oe_runconf +} + +PACKAGES =+ "${PN}-client ${PN}-daemon" + +FILES_${PN}-client = "${bindir}/fwknop" +FILES_${PN}-daemon = "${sbindir}/fwknopd \ + ${sysconfdir}/fwknop/access.conf \ + ${sysconfdir}/fwknop/fwknopd.conf" + diff --git a/meta-networking/recipes-support/geoip/files/run-ptest b/meta-networking/recipes-support/geoip/files/run-ptest new file mode 100644 index 00000000000..14e96191f38 --- /dev/null +++ b/meta-networking/recipes-support/geoip/files/run-ptest @@ -0,0 +1,11 @@ +#!/bin/sh +pdir=`dirname $0` +cd ${pdir}/tests +for i in ./benchmark ./test-geoip-city ; do + ${i} 1>/dev/null 2>&1; + if [ $? == 0 ]; then + echo PASS: $i; + else + echo FAIL: $i; + fi; +done diff --git a/meta-networking/recipes-support/geoip/geoip-perl_1.45.bb b/meta-networking/recipes-support/geoip/geoip-perl_1.45.bb deleted file mode 100644 index 177841298c5..00000000000 --- a/meta-networking/recipes-support/geoip/geoip-perl_1.45.bb +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (C) 2014, 2015 Wind River Systems, Inc. -# Released under the MIT license (see COPYING.MIT for the terms) -# -SUMMARY = "GeoIP perl API library to access location database" -DESCRIPTION = "perl library for country/city/organization to IP address or hostname mapping" -HOMEPAGE = "http://www.maxmind.com/app/ip-location" -SECTION = "network" -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://README;md5=b0fa745303912bd2d64430f7ae69487d" - -# Note that we do not want to use the upstream file name locally. -# -SRC_URI = "http://github.com/maxmind/geoip-api-perl/archive/v${PV}.tar.gz;downloadfilename=${BPN}-${PV}.tar.gz \ - file://run-ptest \ - " - -SRC_URI[md5sum] = "0ce57140890bf81958e0cea4fe1885b2" -SRC_URI[sha256sum] = "c56437b1cc8887736cb1e435d0320c1c1ff3754830249516317b99137005fb23" - -S = "${WORKDIR}/geoip-api-perl-${PV}" - -DEPENDS += "geoip" - -inherit cpan ptest - -EXTRA_CPANFLAGS = "LIBS='-L${STAGING_LIBDIR}' INC='-I${STAGING_INCDIR}'" - - -# perl scripts and some special small data files -# -do_install_ptest () { - install -d -m 0755 ${D}${PTEST_PATH}/t/data - - install ${S}/t/*.t* ${D}${PTEST_PATH}/t - install ${S}/t/data/* ${D}${PTEST_PATH}/t/data -} - -FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Geo/IP/.debug" - diff --git a/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb b/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb new file mode 100644 index 00000000000..a8c8bcf5809 --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoip-perl_1.50.bb @@ -0,0 +1,40 @@ +# +# Copyright (C) 2014, 2015 Wind River Systems, Inc. +# Released under the MIT license (see COPYING.MIT for the terms) +# +SUMMARY = "GeoIP perl API library to access location database" +DESCRIPTION = "perl library for country/city/organization to IP address or hostname mapping" +HOMEPAGE = "http://www.maxmind.com/app/ip-location" +SECTION = "libdevel" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b7a36f55e8ba62aadd74e4f0886a405e" + +# Note that we do not want to use the upstream file name locally. +# +SRC_URI = "http://github.com/maxmind/geoip-api-perl/archive/v${PV}.tar.gz;downloadfilename=${BPN}-${PV}.tar.gz \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "2d7f8b1b54e6ba6d9e3fefce52675815" +SRC_URI[sha256sum] = "86da0dd67f417a43dc70f15a49bd3619f668970c117b9e7f737b4ab246c240a6" + +S = "${WORKDIR}/geoip-api-perl-${PV}" + +DEPENDS += "geoip" + +inherit cpan ptest + +EXTRA_CPANFLAGS = "LIBS='-L${STAGING_LIBDIR}' INC='-I${STAGING_INCDIR}'" + + +# perl scripts and some special small data files +# +do_install_ptest () { + install -d -m 0755 ${D}${PTEST_PATH}/t/data + + install ${S}/t/*.t* ${D}${PTEST_PATH}/t + install ${S}/t/data/* ${D}${PTEST_PATH}/t/data +} + +FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Geo/IP/.debug" + diff --git a/meta-networking/recipes-support/geoip/geoip_1.6.0.bb b/meta-networking/recipes-support/geoip/geoip_1.6.0.bb deleted file mode 100644 index ab206a03264..00000000000 --- a/meta-networking/recipes-support/geoip/geoip_1.6.0.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "C library for country/city/organization to IP address or hostname mapping" -DESCRIPTION = "GeoIP is a C library that enables the user to find the country that any IP \ -address or hostname originates from. It uses a file based database that is \ -accurate as of March 2003. This database simply contains IP blocks as keys, and \ -countries as values. This database should be more complete and accurate than \ -using reverse DNS lookups." - -HOMEPAGE = "http://dev.maxmind.com/geoip/" -SECTION = "Development/Libraries" - -SRC_URI = "http://www.maxmind.com/download/geoip/api/c/GeoIP-1.6.0.tar.gz;name=tarball \ - http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz;apply=no;name=GeoIP-dat \ - http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz;apply=no;name=GeoIPv6-dat \ - http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz;apply=no;name=GeoLiteCity-dat \ - http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz;apply=no;name=GeoLiteCityv6-dat \ -" - -SRC_URI[tarball.md5sum] = "89f4cdfdab43f1d67364cd7c85bbe8ca" -SRC_URI[tarball.sha256sum] = "075a0c2815cd099e9ec35c9569db716a3fefcdbb6a10dbfa1ce7c6cd48d4a635" - -SRC_URI[GeoIP-dat.md5sum] = "37c84ead332dda0362a5ac7b049b72d4" -SRC_URI[GeoIP-dat.sha256sum] = "79ff1099e96c2dc1c2539c9a18aaa13a9afd085cae477df60d95f1644d42bc07" - -SRC_URI[GeoIPv6-dat.md5sum] = "e75b84a4044e81d6d4484e33816bc762" -SRC_URI[GeoIPv6-dat.sha256sum] = "a009b0f21968d2868e6dd19d14f3c3b8cd60ae84a4bfc2970df34d771a04811e" - -SRC_URI[GeoLiteCity-dat.md5sum] = "4b6588d0bfe1af22e267ac90aa97f769" -SRC_URI[GeoLiteCity-dat.sha256sum] = "8a6467033a528f68b1a97de24d9d0ce86c8e8e83683820e16e433ddbd3f712f7" - -SRC_URI[GeoLiteCityv6-dat.md5sum] = "ad0cb42518af7f752499425dca0952bb" -SRC_URI[GeoLiteCityv6-dat.sha256sum] = "eda67f4204ba9fa5204a53cdb629167cca9394c712f5378bc723a8c29c0b440f" - -LICENSE = "LGPL-2.1" - -LIC_FILES_CHKSUM = "file://COPYING;md5=d5d53d6b948c064f4070183180a4fa89 \ - file://LICENSE;md5=f04db71812ba70aaba8b38da91984cd2 " - -S = "${WORKDIR}/GeoIP-1.6.0" - -inherit autotools - -EXTRA_OECONF = "--disable-static \ - --disable-dependency-tracking " - -do_install() { - make DESTDIR=${D} install - install -d ${D}/${datadir}/GeoIP - install ${WORKDIR}/GeoIP.dat ${D}/${datadir}/GeoIP/ - install ${WORKDIR}/GeoIPv6.dat ${D}/${datadir}/GeoIP/ - install ${WORKDIR}/GeoLiteCity.dat ${D}/${datadir}/GeoIP/ - install ${WORKDIR}/GeoLiteCityv6.dat ${D}/${datadir}/GeoIP/ -} - -PACKAGES =+ "${PN}-database" -FILES_${PN}-database = "" -FILES_${PN}-database += "${datadir}/GeoIP/*" - diff --git a/meta-networking/recipes-support/geoip/geoip_1.6.9.bb b/meta-networking/recipes-support/geoip/geoip_1.6.9.bb new file mode 100644 index 00000000000..9e8e0714f82 --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoip_1.6.9.bb @@ -0,0 +1,90 @@ +SUMMARY = "C library for country/city/organization to IP address or hostname mapping" +DESCRIPTION = "GeoIP is a C library that enables the user to find the country that any IP \ +address or hostname originates from. It uses a file based database that is \ +accurate as of March 2003. This database simply contains IP blocks as keys, and \ +countries as values. This database should be more complete and accurate than \ +using reverse DNS lookups." + +HOMEPAGE = "http://dev.maxmind.com/geoip/" +SECTION = "libdevel" + +SRC_URI = "git://github.com/maxmind/geoip-api-c.git \ + http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz;apply=no;name=GeoIP-dat \ + http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz;apply=no;name=GeoIPv6-dat \ + http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz;apply=no;name=GeoLiteCity-dat \ + http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz;apply=no;name=GeoLiteCityv6-dat \ + file://run-ptest \ +" +SRCREV = "4f487bf95532e0bba7783d591faff178ab0aa462" + +SRC_URI[GeoIP-dat.md5sum] = "37c84ead332dda0362a5ac7b049b72d4" +SRC_URI[GeoIP-dat.sha256sum] = "79ff1099e96c2dc1c2539c9a18aaa13a9afd085cae477df60d95f1644d42bc07" + +SRC_URI[GeoIPv6-dat.md5sum] = "e75b84a4044e81d6d4484e33816bc762" +SRC_URI[GeoIPv6-dat.sha256sum] = "a009b0f21968d2868e6dd19d14f3c3b8cd60ae84a4bfc2970df34d771a04811e" + +SRC_URI[GeoLiteCity-dat.md5sum] = "4b6588d0bfe1af22e267ac90aa97f769" +SRC_URI[GeoLiteCity-dat.sha256sum] = "8a6467033a528f68b1a97de24d9d0ce86c8e8e83683820e16e433ddbd3f712f7" + +SRC_URI[GeoLiteCityv6-dat.md5sum] = "ad0cb42518af7f752499425dca0952bb" +SRC_URI[GeoLiteCityv6-dat.sha256sum] = "eda67f4204ba9fa5204a53cdb629167cca9394c712f5378bc723a8c29c0b440f" + +LICENSE = "LGPL-2.1" + +LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad \ + file://LICENSE;md5=0388276749a542b0d611601fa7c1dcc8 " + +S = "${WORKDIR}/git" + +inherit autotools + +EXTRA_OECONF = "--disable-static \ + --disable-dependency-tracking " + +do_install() { + make DESTDIR=${D} install + install -d ${D}/${datadir}/GeoIP + install ${WORKDIR}/GeoIP.dat ${D}/${datadir}/GeoIP/ + install ${WORKDIR}/GeoIPv6.dat ${D}/${datadir}/GeoIP/ + install ${WORKDIR}/GeoLiteCity.dat ${D}/${datadir}/GeoIP/ + install ${WORKDIR}/GeoLiteCityv6.dat ${D}/${datadir}/GeoIP/ + ln -s GeoLiteCity.dat ${D}${datadir}/GeoIP/GeoIPCity.dat +} + +PACKAGES =+ "${PN}-database" +FILES_${PN}-database = "" +FILES_${PN}-database += "${datadir}/GeoIP/*" + +# We cannot do much looking up without databases. +# +RDEPENDS_${PN} += "${PN}-database" + +inherit ptest + +do_configure_ptest() { + sed -i -e "s/noinst_PROGRAMS = /test_PROGRAMS = /g" \ + -e 's:SRCDIR=\\"$(top_srcdir)\\":SRCDIR=\\"$(testdir)\\":' \ + ${S}/test/Makefile.am + + if ! grep "^testdir = " ${S}/test/Makefile.am ; then + sed -e '/EXTRA_PROGRAMS = /itestdir = ${PTEST_PATH}/tests' \ + -i ${S}/test/Makefile.am + fi + + sed -i -e "s:/usr/local/share:/usr/share:g" \ + ${S}/test/benchmark.c + + sed -i -e 's:"../data/:"/usr/share/GeoIP/:g' \ + ${S}/test/test-geoip-city.c \ + ${S}/test/test-geoip-isp.c \ + ${S}/test/test-geoip-asnum.c \ + ${S}/test/test-geoip-netspeed.c \ + ${S}/test/test-geoip-org.c \ + ${S}/test/test-geoip-region.c +} + + +do_install_ptest() { + oe_runmake -C test DESTDIR=${D} install-testPROGRAMS + install ${S}/test/*.txt ${D}${PTEST_PATH}/tests +} diff --git a/meta-networking/recipes-support/geoip/geoipupdate-2.1.0/GeoIP.conf b/meta-networking/recipes-support/geoip/geoipupdate-2.4.0/GeoIP.conf similarity index 100% rename from meta-networking/recipes-support/geoip/geoipupdate-2.1.0/GeoIP.conf rename to meta-networking/recipes-support/geoip/geoipupdate-2.4.0/GeoIP.conf diff --git a/meta-networking/recipes-support/geoip/geoipupdate-2.1.0/geoipupdate.cron b/meta-networking/recipes-support/geoip/geoipupdate-2.4.0/geoipupdate.cron similarity index 100% rename from meta-networking/recipes-support/geoip/geoipupdate-2.1.0/geoipupdate.cron rename to meta-networking/recipes-support/geoip/geoipupdate-2.4.0/geoipupdate.cron diff --git a/meta-networking/recipes-support/geoip/geoipupdate_2.1.0.bb b/meta-networking/recipes-support/geoip/geoipupdate_2.1.0.bb deleted file mode 100644 index 851ad414d4c..00000000000 --- a/meta-networking/recipes-support/geoip/geoipupdate_2.1.0.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Crontab entry to provide weekly updates of the GeoIP free databases." -DESCRIPTION = "update databases for GeoIP" - -HOMEPAGE = "http://dev.maxmind.com/geoip/" -SECTION = "Development" - -DEPENDS = "zlib curl" - -SRC_URI = "https://github.com/maxmind/geoipupdate/releases/download/v2.1.0/geoipupdate-2.1.0.tar.gz \ - file://GeoIP.conf \ - file://geoipupdate.cron \ - " - -SRC_URI[md5sum] = "9107d082f15c8e482f4b6f1080e7deaf" -SRC_URI[sha256sum] = "7388c46f6c483ae609e5f5333a2585bc9713d56bb522da5c11b09d41c87aa5fb" - -LICENSE = "GPLv2" - -LIC_FILES_CHKSUM = "\ -file://ChangeLog.md;md5=25f3500fad03ad7e6bf135b29c9c7c2d \ -" - -inherit autotools - -do_install_append() { - install -d ${D}/${sysconfdir} - install -d ${D}/${sysconfdir}/cron.d - install ${WORKDIR}/GeoIP.conf ${D}/${sysconfdir}/ - install ${WORKDIR}/geoipupdate.cron ${D}/${sysconfdir}/cron.d/ -} diff --git a/meta-networking/recipes-support/geoip/geoipupdate_2.4.0.bb b/meta-networking/recipes-support/geoip/geoipupdate_2.4.0.bb new file mode 100644 index 00000000000..3e045bb27dc --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoipupdate_2.4.0.bb @@ -0,0 +1,33 @@ +SUMMARY = "Crontab entry to provide weekly updates of the GeoIP free databases." +DESCRIPTION = "update databases for GeoIP" + +HOMEPAGE = "http://dev.maxmind.com/geoip/" +SECTION = "net" + +DEPENDS = "zlib curl" + +SRC_URI = "https://github.com/maxmind/geoipupdate/releases/download/v2.4.0/geoipupdate-2.4.0.tar.gz \ + file://GeoIP.conf \ + file://geoipupdate.cron \ + " +SRC_URI[md5sum] = "02f9712fb80e8e979d3d54cda7f7704f" +SRC_URI[sha256sum] = "8b4e88ce8d84e9c75bc681704d19ec5c63c54f01e945f7669f97fb0df7e13952" + +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "\ +file://ChangeLog.md;md5=334337b6ecbb65093bae66b3ae21c8c2 \ +" +FILES_${PN} = "/usr/share/GeoIP \ + /etc/GeoIP.conf \ + /etc/cron.d/geoipupdate.cron \ + /usr/bin/geoipupdate \ +" +inherit autotools + +do_install_append() { + install -d ${D}/${sysconfdir} + install -d ${D}/${sysconfdir}/cron.d + install ${WORKDIR}/GeoIP.conf ${D}/${sysconfdir}/ + install ${WORKDIR}/geoipupdate.cron ${D}/${sysconfdir}/cron.d/ +} diff --git a/meta-networking/recipes-support/ifenslave/ifenslave_1.1.0.bb b/meta-networking/recipes-support/ifenslave/ifenslave_1.1.0.bb deleted file mode 100644 index 58dca862420..00000000000 --- a/meta-networking/recipes-support/ifenslave/ifenslave_1.1.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Configure network interfaces for parallel routing" -HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding" -SECTION = "network" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://ifenslave.c;beginline=8;endline=12;md5=a9f0bd2324cdc1b36d1f44f0e643a62a" - -SRC_URI = "http://ftp.debian.org/debian/pool/main/i/${BPN}-2.6/${BPN}-2.6_${PV}.orig.tar.gz" -SRC_URI[md5sum] = "56126cd1013cefe0ce6f81613e677bdd" -SRC_URI[sha256sum] = "7917bf34de80a2492eb225adf9168c83a4854ac8a008ed0fd5b3fd147ccd3041" - -do_compile() { - ${CC} ifenslave.c -o ifenslave -} -do_install() { - install -d "${D}${sbindir}" - install -m 755 "${S}/ifenslave" "${D}${sbindir}/" -} diff --git a/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb b/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb new file mode 100644 index 00000000000..ea28b34aa91 --- /dev/null +++ b/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb @@ -0,0 +1,27 @@ +SUMMARY = "Configure network interfaces for parallel routing" +HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding" +SECTION = "net" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=acc89812938cf9ad6b1debc37cea0253" + + +SRCREV = "42bfbb9beb924672ca86b86e9679ac3d6b87d992" +SRC_URI = "git://anonscm.debian.org/collab-maint/ifenslave.git" + +S = "${WORKDIR}/git" + +do_install() { + install -d ${D}${sbindir} + install -m 0755 ${S}/ifenslave ${D}${sbindir}/ + + install -m 0755 -D ${S}/debian/ifenslave.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/ifenslave + install -m 0755 -D ${S}/debian/ifenslave.if-post-down ${D}${sysconfdir}/network/if-post-down.d/ifenslave + install -m 0755 -D ${S}/debian/ifenslave.if-up ${D}${sysconfdir}/network/if-up.d/ifenslave + install -m 0644 -D ${S}/debian/ifenslave.8 ${D}${mandir}/man8/ifenslave.8 +} + +FILES_${PN}-doc_remove = "${mandir}" +FILES_${PN} += "${mandir}/man8/ifenslave.8" + +RDEPENDS_${PN} = "man" diff --git a/meta-networking/recipes-support/iftop/iftop_1.0pre2.bb b/meta-networking/recipes-support/iftop/iftop_1.0pre2.bb deleted file mode 100644 index cc1f8b04657..00000000000 --- a/meta-networking/recipes-support/iftop/iftop_1.0pre2.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "iftop does for network usage what top(1) does for CPU usage" -HOMEPAGE = "http://www.ex-parrot.com/pdw/iftop/" - -DEPENDS = "libpcap ncurses" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -SRC_URI = "http://www.ex-parrot.com/pdw/iftop/download/iftop-${PV}.tar.gz" -SRC_URI[md5sum] = "fef521a49ec0122458d02c64212af3c5" -SRC_URI[sha256sum] = "1b193037bb3019afae88cd94c87468aac4b045d81ab816ed8d2f489716b14027" - -inherit autotools-brokensep - diff --git a/meta-networking/recipes-support/iftop/iftop_1.0pre4.bb b/meta-networking/recipes-support/iftop/iftop_1.0pre4.bb new file mode 100644 index 00000000000..0c8e494c19f --- /dev/null +++ b/meta-networking/recipes-support/iftop/iftop_1.0pre4.bb @@ -0,0 +1,14 @@ +SUMMARY = "iftop does for network usage what top(1) does for CPU usage" +HOMEPAGE = "http://www.ex-parrot.com/pdw/iftop/" +SECTION = "net" +DEPENDS = "libpcap ncurses" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=76498170798db0f4f0fb685a225f702f" + +SRC_URI = "http://www.ex-parrot.com/pdw/iftop/download/iftop-${PV}.tar.gz" +SRC_URI[md5sum] = "7e6decb4958e8a4890cccac335239f24" +SRC_URI[sha256sum] = "f733eeea371a7577f8fe353d86dd88d16f5b2a2e702bd96f5ffb2c197d9b4f97" + +inherit autotools-brokensep + diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch new file mode 100644 index 00000000000..5c091474501 --- /dev/null +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch @@ -0,0 +1,115 @@ +From 9135ca401186fb14e5e5110bbb04d1ccc480360a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 15 Nov 2016 04:15:44 +0000 +Subject: [PATCH] Fix build with clang + +Fixes for following errors found by clang + +src/racoon/eaytest.c:316:6: error: comparison of array 'dnstr_w1' not equal to a null pointer is always true + [-Werror,-Wtautological-pointer-compare] + if (dnstr_w1 != NULL) { + ^~~~~~~~ ~~~~ +src/racoon/eaytest.c:326:6: error: comparison of array 'dnstr_w1' not equal to a null pointer is always true + [-Werror,-Wtautological-pointer-compare] + if (dnstr_w1 != NULL) { + ^~~~~~~~ ~~~~ + +src/racoon/isakmp.c:1134:11: error: promoted type 'int' of K&R function parameter is not compatible with the + parameter type 'u_int8_t' (aka 'unsigned char') declared in a previous prototype [-Werror,-Wknr-promoted-parameter] + u_int8_t etype; + ^ +src/racoon/isakmp.c:184:48: note: previous declaration is here + struct sockaddr *, struct sockaddr *, u_int8_t)); + ^ + 1 error generated. + +src/racoon/racoonctl.c:1457:15: error: incompatible pointer types passing 'struct evt_async *' to parameter of type + 'caddr_t' (aka 'char *') [-Werror,-Wincompatible-pointer-types] + print_cfg(ec, len); + ^~ + +Signed-off-by: Khem Raj +--- + src/racoon/eaytest.c | 4 ++-- + src/racoon/isakmp.c | 10 +++++----- + src/racoon/racoonctl.c | 7 +++---- + 3 files changed, 10 insertions(+), 11 deletions(-) + +diff --git a/src/racoon/eaytest.c b/src/racoon/eaytest.c +index 1474bdc..d609e4f 100644 +--- a/src/racoon/eaytest.c ++++ b/src/racoon/eaytest.c +@@ -313,7 +313,7 @@ certtest(ac, av) + + printf("exact match: succeed.\n"); + +- if (dnstr_w1 != NULL) { ++ if (dnstr_w1[0] != '\0') { + asn1dn = eay_str2asn1dn(dnstr_w1, strlen(dnstr_w1)); + if (asn1dn == NULL || asn1dn->l == asn1dn0.l) + errx(1, "asn1dn length wrong for wildcard 1\n"); +@@ -323,7 +323,7 @@ certtest(ac, av) + printf("wildcard 1 match: succeed.\n"); + } + +- if (dnstr_w1 != NULL) { ++ if (dnstr_w1[0] != '\0') { + asn1dn = eay_str2asn1dn(dnstr_w2, strlen(dnstr_w2)); + if (asn1dn == NULL || asn1dn->l == asn1dn0.l) + errx(1, "asn1dn length wrong for wildcard 2\n"); +diff --git a/src/racoon/isakmp.c b/src/racoon/isakmp.c +index 2672f7a..da7ebe8 100644 +--- a/src/racoon/isakmp.c ++++ b/src/racoon/isakmp.c +@@ -567,7 +567,7 @@ isakmp_main(msg, remote, local) + + /* it must be responder's 1st exchange. */ + if (isakmp_ph1begin_r(msg, remote, local, +- isakmp->etype) < 0) ++ (u_int8_t)isakmp->etype) < 0) + return -1; + break; + +@@ -1128,10 +1128,10 @@ isakmp_ph1begin_i(rmconf, remote, local) + + /* new negotiation of phase 1 for responder */ + static int +-isakmp_ph1begin_r(msg, remote, local, etype) +- vchar_t *msg; +- struct sockaddr *remote, *local; +- u_int8_t etype; ++isakmp_ph1begin_r(vchar_t *msg, ++ struct sockaddr *remote, ++ struct sockaddr *local, ++ u_int8_t etype) + { + struct isakmp *isakmp = (struct isakmp *)msg->v; + struct ph1handle *iph1; +diff --git a/src/racoon/racoonctl.c b/src/racoon/racoonctl.c +index da28ecd..bbf068e 100644 +--- a/src/racoon/racoonctl.c ++++ b/src/racoon/racoonctl.c +@@ -1299,9 +1299,8 @@ print_evt(evtdump) + * Print ISAKMP mode config info (IP and banner) + */ + void +-print_cfg(buf, len) +- caddr_t buf; +- int len; ++print_cfg(caddr_t buf, ++ int len) + { + struct evt_async *evtdump = (struct evt_async *)buf; + struct isakmp_data *attr; +@@ -1454,7 +1453,7 @@ handle_recv(combuf) + else if (evt_quit_event == ec->ec_type) { + switch (ec->ec_type) { + case EVT_PHASE1_MODE_CFG: +- print_cfg(ec, len); ++ print_cfg((caddr_t)ec, len); + break; + default: + print_evt(ec); +-- +1.9.1 + diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch new file mode 100644 index 00000000000..630ecdb5f41 --- /dev/null +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch @@ -0,0 +1,249 @@ +From 7d9585be093c9cb2428b373c0b0088bb778942d0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 20 Mar 2017 21:37:47 -0700 +Subject: [PATCH] Fix header issues found with musl libc + +Signed-off-by: Khem Raj +--- + src/libipsec/ipsec_strerror.h | 3 +++ + src/libipsec/libpfkey.h | 4 +++- + src/racoon/admin.c | 2 +- + src/racoon/backupsa.c | 6 +++--- + src/racoon/cftoken.l | 4 ++++ + src/racoon/logger.h | 3 +++ + src/racoon/misc.h | 3 +++ + src/racoon/missing/crypto/sha2/sha2.h | 3 +++ + src/racoon/netdb_dnssec.h | 3 +++ + src/racoon/pfkey.c | 1 - + src/racoon/plog.h | 2 ++ + src/racoon/str2val.h | 3 +++ + src/racoon/vmbuf.h | 3 +++ + src/setkey/extern.h | 3 ++- + src/setkey/setkey.c | 1 - + 15 files changed, 36 insertions(+), 8 deletions(-) + +diff --git a/src/libipsec/ipsec_strerror.h b/src/libipsec/ipsec_strerror.h +index 2b4264f..dac66a1 100644 +--- a/src/libipsec/ipsec_strerror.h ++++ b/src/libipsec/ipsec_strerror.h +@@ -34,6 +34,9 @@ + #ifndef _IPSEC_STRERROR_H + #define _IPSEC_STRERROR_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + extern int __ipsec_errcode; + extern void __ipsec_set_strerror __P((const char *)); + +diff --git a/src/libipsec/libpfkey.h b/src/libipsec/libpfkey.h +index 61d2f2a..f7991b7 100644 +--- a/src/libipsec/libpfkey.h ++++ b/src/libipsec/libpfkey.h +@@ -34,6 +34,9 @@ + #ifndef _LIBPFKEY_H + #define _LIBPFKEY_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + #ifndef KAME_LIBPFKEY_H + #define KAME_LIBPFKEY_H + +@@ -43,7 +46,6 @@ + + #define PRIORITY_OFFSET_POSITIVE_MAX 0x3fffffff + #define PRIORITY_OFFSET_NEGATIVE_MAX 0x40000000 +- + struct sadb_msg; + extern void pfkey_sadump __P((struct sadb_msg *)); + extern void pfkey_sadump_withports __P((struct sadb_msg *)); +diff --git a/src/racoon/admin.c b/src/racoon/admin.c +index 4b1875b..03ea3f8 100644 +--- a/src/racoon/admin.c ++++ b/src/racoon/admin.c +@@ -36,7 +36,6 @@ + #include + #include + #include +-#include + #include + #include + +@@ -46,6 +45,7 @@ + #include PATH_IPSEC_H + + ++#include + #include + #include + #include +diff --git a/src/racoon/backupsa.c b/src/racoon/backupsa.c +index 82d74ca..95307ca 100644 +--- a/src/racoon/backupsa.c ++++ b/src/racoon/backupsa.c +@@ -276,9 +276,9 @@ do { \ + GETNEXTNUM(sa_args.a_keylen, strtoul); + GETNEXTNUM(sa_args.flags, strtoul); + GETNEXTNUM(sa_args.l_alloc, strtoul); +- GETNEXTNUM(sa_args.l_bytes, strtouq); +- GETNEXTNUM(sa_args.l_addtime, strtouq); +- GETNEXTNUM(sa_args.l_usetime, strtouq); ++ GETNEXTNUM(sa_args.l_bytes, strtoull); ++ GETNEXTNUM(sa_args.l_addtime, strtoull); ++ GETNEXTNUM(sa_args.l_usetime, strtoull); + GETNEXTNUM(sa_args.seq, strtoul); + + #undef GETNEXTNUM +diff --git a/src/racoon/cftoken.l b/src/racoon/cftoken.l +index 1701922..787f4a9 100644 +--- a/src/racoon/cftoken.l ++++ b/src/racoon/cftoken.l +@@ -77,6 +77,10 @@ + + #include "cfparse.h" + ++#ifndef GLOB_TILDE ++#define GLOB_TILDE 0 ++#endif ++ + int yyerrorcount = 0; + + #if defined(YIPS_DEBUG) +diff --git a/src/racoon/logger.h b/src/racoon/logger.h +index 3fd3e94..67af5f0 100644 +--- a/src/racoon/logger.h ++++ b/src/racoon/logger.h +@@ -34,6 +34,9 @@ + #ifndef _LOGGER_H + #define _LOGGER_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + struct log { + int head; + int siz; +diff --git a/src/racoon/misc.h b/src/racoon/misc.h +index 3e758d9..30d9825 100644 +--- a/src/racoon/misc.h ++++ b/src/racoon/misc.h +@@ -34,6 +34,9 @@ + #ifndef _MISC_H + #define _MISC_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + #define BIT2STR(b) bit2str(b, sizeof(b)<<3) + + #ifdef HAVE_FUNC_MACRO +diff --git a/src/racoon/missing/crypto/sha2/sha2.h b/src/racoon/missing/crypto/sha2/sha2.h +index 42bcc2a..c043dfe 100644 +--- a/src/racoon/missing/crypto/sha2/sha2.h ++++ b/src/racoon/missing/crypto/sha2/sha2.h +@@ -40,6 +40,9 @@ + #ifndef __SHA2_H__ + #define __SHA2_H__ + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + #ifdef __cplusplus + extern "C" { + #endif +diff --git a/src/racoon/netdb_dnssec.h b/src/racoon/netdb_dnssec.h +index a11209d..98fd813 100644 +--- a/src/racoon/netdb_dnssec.h ++++ b/src/racoon/netdb_dnssec.h +@@ -34,6 +34,9 @@ + #ifndef _NETDB_DNSSEC_H + #define _NETDB_DNSSEC_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + #ifndef T_CERT + #define T_CERT 37 /* defined by RFC2538 section 2 */ + #endif +diff --git a/src/racoon/pfkey.c b/src/racoon/pfkey.c +index 8f26c19..a06c30e 100644 +--- a/src/racoon/pfkey.c ++++ b/src/racoon/pfkey.c +@@ -59,7 +59,6 @@ + #include + #include + #include +-#include + + #include + #include +diff --git a/src/racoon/plog.h b/src/racoon/plog.h +index ed43c8b..920c850 100644 +--- a/src/racoon/plog.h ++++ b/src/racoon/plog.h +@@ -34,6 +34,8 @@ + #ifndef _PLOG_H + #define _PLOG_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ + #ifdef HAVE_STDARG_H + #include + #else +diff --git a/src/racoon/str2val.h b/src/racoon/str2val.h +index 4a7cec1..d3d698e 100644 +--- a/src/racoon/str2val.h ++++ b/src/racoon/str2val.h +@@ -34,6 +34,9 @@ + #ifndef _STR2VAL_H + #define _STR2VAL_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + extern caddr_t val2str __P((const char *, size_t)); + extern char *str2val __P((const char *, int, size_t *)); + +diff --git a/src/racoon/vmbuf.h b/src/racoon/vmbuf.h +index 3f2f4ea..8287a00 100644 +--- a/src/racoon/vmbuf.h ++++ b/src/racoon/vmbuf.h +@@ -34,6 +34,9 @@ + #ifndef _VMBUF_H + #define _VMBUF_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + /* + * bp v + * v v +diff --git a/src/setkey/extern.h b/src/setkey/extern.h +index 6f439fa..a1d9d14 100644 +--- a/src/setkey/extern.h ++++ b/src/setkey/extern.h +@@ -1,6 +1,7 @@ + /* $NetBSD: extern.h,v 1.5 2009/03/06 11:45:03 tteras Exp $ */ + +- ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ + + void parse_init __P((void)); + int parse __P((FILE **)); +diff --git a/src/setkey/setkey.c b/src/setkey/setkey.c +index c400faa..51f8b75 100644 +--- a/src/setkey/setkey.c ++++ b/src/setkey/setkey.c +@@ -40,7 +40,6 @@ + #include + #include + #include +-#include + #include + #include + #include +-- +2.12.0 + diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch new file mode 100644 index 00000000000..e9dd84aaa96 --- /dev/null +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch @@ -0,0 +1,30 @@ +From a5c59f6a1479947d33dba5191724cc5fc88a614b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 22 Apr 2017 10:39:57 -0700 +Subject: [PATCH 2/2] cfparse: clear memory equal to size of array + +Fixes compiler error +cfparse.y: In function 'set_isakmp_proposal': +cfparse.y:2567:3: error: 'memset' used with length equal to number of elements without multiplication by element size [-Werror=memset-elt-size] + +Signed-off-by: Khem Raj +--- + src/racoon/cfparse.y | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/racoon/cfparse.y b/src/racoon/cfparse.y +index 0d9bd67..5d9c67b 100644 +--- a/src/racoon/cfparse.y ++++ b/src/racoon/cfparse.y +@@ -2564,7 +2564,7 @@ set_isakmp_proposal(rmconf) + plog(LLV_DEBUG2, LOCATION, NULL, + "encklen=%d\n", s->encklen); + +- memset(types, 0, ARRAYLEN(types)); ++ memset(types, 0, sizeof(types)); + types[algclass_isakmp_enc] = s->algclass[algclass_isakmp_enc]; + types[algclass_isakmp_hash] = s->algclass[algclass_isakmp_hash]; + types[algclass_isakmp_dh] = s->algclass[algclass_isakmp_dh]; +-- +2.12.2 + diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch new file mode 100644 index 00000000000..5286376ac67 --- /dev/null +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch @@ -0,0 +1,36 @@ +[PATCH] fix CVE-2015-4047 + +Upstream-Status: Backport + +http://www.openwall.com/lists/oss-security/2015/05/20/1 + +racoon/gssapi.c in IPsec-Tools 0.8.2 allows remote attackers to cause +a denial of service (NULL pointer dereference and IKE daemon crash) via +a series of crafted UDP requests. + +https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-4047 + +Signed-off-by: Roy Li +--- + src/racoon/gssapi.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/racoon/gssapi.c b/src/racoon/gssapi.c +index e64b201..1ad3b42 100644 +--- a/src/racoon/gssapi.c ++++ b/src/racoon/gssapi.c +@@ -192,6 +192,11 @@ gssapi_init(struct ph1handle *iph1) + gss_name_t princ, canon_princ; + OM_uint32 maj_stat, min_stat; + ++ if (iph1->rmconf == NULL) { ++ plog(LLV_ERROR, LOCATION, NULL, "no remote config\n"); ++ return -1; ++ } ++ + gps = racoon_calloc(1, sizeof (struct gssapi_ph1_state)); + if (gps == NULL) { + plog(LLV_ERROR, LOCATION, NULL, "racoon_calloc failed\n"); +-- +1.9.1 + diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch new file mode 100644 index 00000000000..bd079655433 --- /dev/null +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch @@ -0,0 +1,207 @@ +Upstream-Status: Backport [https://anonscm.debian.org/cgit/pkg-ipsec-tools/pkg-ipsec-tools.git/plain/debian/patches/CVE-2016-10396.patch?id=62ac12648a4eb7c5ba5dba0f81998d1acf310d8b] + +Fix CVE-2016-10396. + +Signed-off-by: Kai Kang +--- +Description: Fix remotely exploitable DoS. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10396 +Source: vendor; https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=51682 +Bug-debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867986 + +Index: pkg-ipsec-tools/src/racoon/isakmp_frag.c +=================================================================== +--- pkg-ipsec-tools.orig/src/racoon/isakmp_frag.c ++++ pkg-ipsec-tools/src/racoon/isakmp_frag.c +@@ -1,4 +1,4 @@ +-/* $NetBSD: isakmp_frag.c,v 1.5 2009/04/22 11:24:20 tteras Exp $ */ ++/* $NetBSD: isakmp_frag.c,v 1.5.36.1 2017/04/21 16:50:42 bouyer Exp $ */ + + /* Id: isakmp_frag.c,v 1.4 2004/11/13 17:31:36 manubsd Exp */ + +@@ -173,6 +173,43 @@ vendorid_frag_cap(gen) + return ntohl(hp[MD5_DIGEST_LENGTH / sizeof(*hp)]); + } + ++static int ++isakmp_frag_insert(struct ph1handle *iph1, struct isakmp_frag_item *item) ++{ ++ struct isakmp_frag_item *pitem = NULL; ++ struct isakmp_frag_item *citem = iph1->frag_chain; ++ ++ /* no frag yet, just insert at beginning of list */ ++ if (iph1->frag_chain == NULL) { ++ iph1->frag_chain = item; ++ return 0; ++ } ++ ++ do { ++ /* duplicate fragment number, abort (CVE-2016-10396) */ ++ if (citem->frag_num == item->frag_num) ++ return -1; ++ ++ /* need to insert before current item */ ++ if (citem->frag_num > item->frag_num) { ++ if (pitem != NULL) ++ pitem->frag_next = item; ++ else ++ /* insert at the beginning of the list */ ++ iph1->frag_chain = item; ++ item->frag_next = citem; ++ return 0; ++ } ++ ++ pitem = citem; ++ citem = citem->frag_next; ++ } while (citem != NULL); ++ ++ /* we reached the end of the list, insert */ ++ pitem->frag_next = item; ++ return 0; ++} ++ + int + isakmp_frag_extract(iph1, msg) + struct ph1handle *iph1; +@@ -224,39 +261,43 @@ isakmp_frag_extract(iph1, msg) + item->frag_next = NULL; + item->frag_packet = buf; + +- /* Look for the last frag while inserting the new item in the chain */ +- if (item->frag_last) +- last_frag = item->frag_num; ++ /* Check for the last frag before inserting the new item in the chain */ ++ if (item->frag_last) { ++ /* if we have the last fragment, indices must match */ ++ if (iph1->frag_last_index != 0 && ++ item->frag_last != iph1->frag_last_index) { ++ plog(LLV_ERROR, LOCATION, NULL, ++ "Repeated last fragment index mismatch\n"); ++ racoon_free(item); ++ vfree(buf); ++ return -1; ++ } + +- if (iph1->frag_chain == NULL) { +- iph1->frag_chain = item; +- } else { +- struct isakmp_frag_item *current; ++ last_frag = iph1->frag_last_index = item->frag_num; ++ } + +- current = iph1->frag_chain; +- while (current->frag_next) { +- if (current->frag_last) +- last_frag = item->frag_num; +- current = current->frag_next; +- } +- current->frag_next = item; ++ /* insert fragment into chain */ ++ if (isakmp_frag_insert(iph1, item) == -1) { ++ plog(LLV_ERROR, LOCATION, NULL, ++ "Repeated fragment index mismatch\n"); ++ racoon_free(item); ++ vfree(buf); ++ return -1; + } + +- /* If we saw the last frag, check if the chain is complete */ ++ /* If we saw the last frag, check if the chain is complete ++ * we have a sorted list now, so just walk through */ + if (last_frag != 0) { ++ item = iph1->frag_chain; + for (i = 1; i <= last_frag; i++) { +- item = iph1->frag_chain; +- do { +- if (item->frag_num == i) +- break; +- item = item->frag_next; +- } while (item != NULL); +- ++ if (item->frag_num != i) ++ break; ++ item = item->frag_next; + if (item == NULL) /* Not found */ + break; + } + +- if (item != NULL) /* It is complete */ ++ if (i > last_frag) /* It is complete */ + return 1; + } + +@@ -291,15 +332,9 @@ isakmp_frag_reassembly(iph1) + } + data = buf->v; + ++ item = iph1->frag_chain; + for (i = 1; i <= frag_count; i++) { +- item = iph1->frag_chain; +- do { +- if (item->frag_num == i) +- break; +- item = item->frag_next; +- } while (item != NULL); +- +- if (item == NULL) { ++ if (item->frag_num != i) { + plog(LLV_ERROR, LOCATION, NULL, + "Missing fragment #%d\n", i); + vfree(buf); +@@ -308,6 +343,7 @@ isakmp_frag_reassembly(iph1) + } + memcpy(data, item->frag_packet->v, item->frag_packet->l); + data += item->frag_packet->l; ++ item = item->frag_next; + } + + out: +Index: pkg-ipsec-tools/src/racoon/isakmp_inf.c +=================================================================== +--- pkg-ipsec-tools.orig/src/racoon/isakmp_inf.c ++++ pkg-ipsec-tools/src/racoon/isakmp_inf.c +@@ -720,6 +720,7 @@ isakmp_info_send_nx(isakmp, remote, loca + #endif + #ifdef ENABLE_FRAG + iph1->frag = 0; ++ iph1->frag_last_index = 0; + iph1->frag_chain = NULL; + #endif + +Index: pkg-ipsec-tools/src/racoon/isakmp.c +=================================================================== +--- pkg-ipsec-tools.orig/src/racoon/isakmp.c ++++ pkg-ipsec-tools/src/racoon/isakmp.c +@@ -1072,6 +1072,7 @@ isakmp_ph1begin_i(rmconf, remote, local) + iph1->frag = 1; + else + iph1->frag = 0; ++ iph1->frag_last_index = 0; + iph1->frag_chain = NULL; + #endif + iph1->approval = NULL; +@@ -1176,6 +1177,7 @@ isakmp_ph1begin_r(msg, remote, local, et + #endif + #ifdef ENABLE_FRAG + iph1->frag = 0; ++ iph1->frag_last_index = 0; + iph1->frag_chain = NULL; + #endif + iph1->approval = NULL; +Index: pkg-ipsec-tools/src/racoon/handler.h +=================================================================== +--- pkg-ipsec-tools.orig/src/racoon/handler.h ++++ pkg-ipsec-tools/src/racoon/handler.h +@@ -1,4 +1,4 @@ +-/* $NetBSD: handler.h,v 1.25 2010/11/17 10:40:41 tteras Exp $ */ ++/* $NetBSD: handler.h,v 1.26 2017/01/24 19:23:56 christos Exp $ */ + + /* Id: handler.h,v 1.19 2006/02/25 08:25:12 manubsd Exp */ + +@@ -141,6 +141,7 @@ struct ph1handle { + #endif + #ifdef ENABLE_FRAG + int frag; /* IKE phase 1 fragmentation */ ++ int frag_last_index; + struct isakmp_frag_item *frag_chain; /* Received fragments */ + #endif + diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb b/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb index 9704b138c7e..5cbeb15ad5d 100644 --- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb @@ -1,13 +1,15 @@ DESCRIPTION = "IPsec-Tools is a port of KAME's IPsec utilities to the \ Linux-2.6 IPsec implementation." HOMEPAGE = "http://ipsec-tools.sourceforge.net/" -SECTION = "console/network" +SECTION = "net" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://src/libipsec/pfkey.c;beginline=6;endline=31;md5=bc9b7ff40beff19fe6bc6aef26bd2b24" DEPENDS = "virtual/kernel openssl readline flex-native bison-native" -SRC_URI = "ftp://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${PV}.tar.bz2 \ +PACKAGE_ARCH = "${MACHINE_ARCH}" + +SRC_URI = "http://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${PV}.tar.bz2 \ file://0002-Don-t-link-against-libfl.patch \ file://configure.patch \ file://0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch \ @@ -18,7 +20,12 @@ SRC_URI = "ftp://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${PV file://racoon.conf.sample \ file://racoon.conf \ file://racoon.service \ - " + file://fix-CVE-2015-4047.patch \ + file://0001-Fix-build-with-clang.patch \ + file://0001-Fix-header-issues-found-with-musl-libc.patch \ + file://0002-cfparse-clear-memory-equal-to-size-of-array.patch \ + file://fix-CVE-2016-10396.patch \ + " SRC_URI[md5sum] = "d53ec14a0a3ece64e09e5e34b3350b41" SRC_URI[sha256sum] = "8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d" @@ -58,7 +65,7 @@ EXTRA_OECONF = "--with-kernel-headers=${STAGING_INCDIR} \ --enable-dpd \ --enable-natt=yes \ --sysconfdir=${sysconfdir}/racoon \ - ${@base_contains('DISTRO_FEATURES', 'ipv6', '--enable-ipv6=yes', '', d)}" + ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--enable-ipv6=yes', '', d)}" # See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530527 CFLAGS += "-fno-strict-aliasing" @@ -67,6 +74,8 @@ PACKAGECONFIG ??= "" PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam," PACKAGECONFIG[selinux] = "--enable-security-context,--disable-security-context,libselinux," +SYSTEMD_SERVICE_${PN} = "racoon.service" + do_install_append() { install -d ${D}${sysconfdir}/racoon install -m 0644 ${WORKDIR}/racoon.conf.sample ${D}${sysconfdir}/racoon/racoon.conf @@ -82,3 +91,6 @@ do_install_append() { install -m 0644 ${WORKDIR}/racoon.conf ${D}${sysconfdir}/default/racoon fi } + +FILES_${PN} += "${sysconfdir}/racoon/racoon.conf \ + ${sysconfdir}/default/racoon" diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch new file mode 100644 index 00000000000..7c3dfe4a847 --- /dev/null +++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch @@ -0,0 +1,97 @@ +From 58292175115bae7a4c3600d3022e59ea57213025 Mon Sep 17 00:00:00 2001 +From: Jianchuan Wang +Date: Mon, 12 Jan 2015 15:53:23 +0800 +Subject: [PATCH] Modify the Makefile for cross compile. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Jianchuan Wang +--- + Makefile | 23 ++++++----------------- + libipvs/Makefile | 3 +-- + 2 files changed, 7 insertions(+), 19 deletions(-) + +diff --git a/Makefile b/Makefile +index e4e03cc..461c021 100644 +--- a/Makefile ++++ b/Makefile +@@ -35,10 +35,9 @@ ARCH = $(shell uname -m) + RPMSOURCEDIR = $(shell rpm --eval '%_sourcedir') + RPMSPECDIR = $(shell rpm --eval '%_specdir') + +-CC = gcc + INCLUDE = + SBIN = $(BUILD_ROOT)/sbin +-MANDIR = usr/man ++MANDIR = usr/share/man + MAN = $(BUILD_ROOT)/$(MANDIR)/man8 + INIT = $(BUILD_ROOT)/etc/rc.d/init.d + MKDIR = mkdir +@@ -62,17 +61,7 @@ RPMBUILD = $(shell \ + echo "/bin/rpm"; \ + fi ) + +-ifeq (,$(FORCE_GETOPT)) +-LIB_SEARCH = /lib64 /usr/lib64 /usr/local/lib64 /lib /usr/lib /usr/local/lib +-POPT_LIB = $(shell for i in $(LIB_SEARCH); do \ +- if [ -f $$i/libpopt.a ]; then \ +- if nm $$i/libpopt.a | fgrep -q poptGetContext; then \ +- echo "-lpopt"; \ +- break; \ +- fi; \ +- fi; \ +-done) +-endif ++POPT_LIB = -lpopt + + ifneq (,$(POPT_LIB)) + POPT_DEFINE = -DHAVE_POPT +@@ -81,7 +70,7 @@ endif + OBJS = ipvsadm.o config_stream.o dynamic_array.o + LIBS = $(POPT_LIB) + ifneq (0,$(HAVE_NL)) +-LIBS += -lnl ++LIBS += -lnl-3 -lnl-genl-3 + endif + DEFINES = -DVERSION=\"$(VERSION)\" -DSCHEDULERS=\"$(SCHEDULERS)\" \ + -DPE_LIST=\"$(PE_LIST)\" $(POPT_DEFINE) +@@ -91,13 +80,13 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \ + + .PHONY = all clean install dist distclean rpm rpms + +-all: libs ipvsadm ++all: ipvsadm + + libs: + make -C libipvs + +-ipvsadm: $(OBJS) $(STATIC_LIBS) +- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) ++ipvsadm: $(OBJS) libs ++ $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS) + + install: all + if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi +diff --git a/libipvs/Makefile b/libipvs/Makefile +index a527a7f..b7300ec 100644 +--- a/libipvs/Makefile ++++ b/libipvs/Makefile +@@ -1,6 +1,5 @@ + # Makefile for libipvs + +-CC = gcc + CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC + ifneq (0,$(HAVE_NL)) + CFLAGS += -DLIBIPVS_USE_NL +@@ -18,7 +17,7 @@ SHARED_LIB = libipvs.so + all: $(STATIC_LIB) $(SHARED_LIB) + + $(STATIC_LIB): libipvs.o ip_vs_nl_policy.o +- ar rv $@ $^ ++ $(AR) rv $@ $^ + + $(SHARED_LIB): libipvs.o ip_vs_nl_policy.o + $(CC) -shared -Wl,-soname,$@ -o $@ $^ +-- +1.9.1 + diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch new file mode 100644 index 00000000000..7896d6d1eae --- /dev/null +++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch @@ -0,0 +1,63 @@ +From 2686213259b15df9cf1d969c5a14d62f14cfbaae Mon Sep 17 00:00:00 2001 +From: Jianchuan Wang +Date: Thu, 8 Jan 2015 17:37:11 +0800 +Subject: [PATCH 2/2] Replace nl_handle to nl_sock. + +The nl_handle was replace with nl_sock in the libnl-3. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Jianchuan Wang +--- + libipvs/libipvs.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/libipvs/libipvs.c b/libipvs/libipvs.c +index a157e18..21a9bfa 100644 +--- a/libipvs/libipvs.c ++++ b/libipvs/libipvs.c +@@ -32,7 +32,7 @@ static void* ipvs_func = NULL; + struct ip_vs_getinfo ipvs_info; + + #ifdef LIBIPVS_USE_NL +-static struct nl_handle *sock = NULL; ++static struct nl_sock *sock = NULL; + static int family, try_nl = 1; + #endif + +@@ -73,7 +73,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg + { + int err = EINVAL; + +- sock = nl_handle_alloc(); ++ sock = nl_socket_alloc(); + if (!sock) { + nlmsg_free(msg); + return -1; +@@ -88,7 +88,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg + + /* To test connections and set the family */ + if (msg == NULL) { +- nl_handle_destroy(sock); ++ nl_socket_free(sock); + sock = NULL; + return 0; + } +@@ -104,12 +104,12 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg + + nlmsg_free(msg); + +- nl_handle_destroy(sock); ++ nl_socket_free(sock); + + return 0; + + fail_genl: +- nl_handle_destroy(sock); ++ nl_socket_free(sock); + sock = NULL; + nlmsg_free(msg); + errno = err; +-- +1.8.3.1 + diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/0003-ipvsadm-remove-dependency-on-bash.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0003-ipvsadm-remove-dependency-on-bash.patch new file mode 100644 index 00000000000..800114f2ce9 --- /dev/null +++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0003-ipvsadm-remove-dependency-on-bash.patch @@ -0,0 +1,39 @@ +From 2f4cdf70cf92d3a9503d8ff045ba277db40bb4e7 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald +Date: Monday, 13 Apr 2015 14:12:37 -0400 +Subject: [PATCH] ipvsadm: remove dependency on bash + +The save/restore scripts are very simple and don't depend on any BASH +features at all, so switch the interpreter to /bin/sh. + +Upstream-Status: Pending + +Signed-off-by: Joe MacDonald +--- + ipvsadm-restore | 2 +- + ipvsadm-save | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ipvsadm-restore b/ipvsadm-restore +index f24e1b3..a9fa8bc 100644 +--- a/ipvsadm-restore ++++ b/ipvsadm-restore +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # ipvsadm-restore - Restore IPVS rules + # + # A very simple wrapper to restore IPVS rules +diff --git a/ipvsadm-save b/ipvsadm-save +index f4d399e..af51638 100644 +--- a/ipvsadm-save ++++ b/ipvsadm-save +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # ipvsadm-save - Save IPVS rules + # + # A very simple wrapper to save IPVS rules +-- +1.9.1 + diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch new file mode 100644 index 00000000000..1bf1eed4c32 --- /dev/null +++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch @@ -0,0 +1,19 @@ +Add LDFLAGS variable to Makefile, make sure the extra linker flags can be passed. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/Makefile b/Makefile +index 461c021..8bc9cde 100644 +--- a/Makefile ++++ b/Makefile +@@ -86,7 +86,7 @@ libs: + make -C libipvs + + ipvsadm: $(OBJS) libs +- $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS) + + install: all + if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb new file mode 100644 index 00000000000..b35a9f4a405 --- /dev/null +++ b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb @@ -0,0 +1,37 @@ +SUMMARY = "Linux Virtual Server administration Utility" +HOMEPAGE = "http://www.linux-vs.org/software/index.html" +DESCRIPTION = "Ipvsadm is used to set up, maintain or inspect the virtual server \ +table in the Linux kernel. The Linux Virtual Server can be used to \ +build scalable network services based on a cluster of two or more nodes. \ +The active node of the cluster redirects service requests to a \ +collection of server hosts that will actually perform the services. \ +Supported features include two protocols (TCP and UDP), three packet-forwarding \ +methods (NAT, tunneling, and direct routing), and eight load balancing algorithms \ +(round robin, weighted round robin, least-connec-tion, weighted least-connection, \ +locality-based least-connection, locality-based least-connection with replication, \ +destination-hashing, and source-hashing)." +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://README;beginline=40;endline=56;md5=a54cba37b64924aa5008881607942892" + +DEPENDS += "libnl popt" + +SRC_URI = "http://www.linuxvirtualserver.org/software/kernel-2.6/${BP}.tar.gz \ + file://0001-Modify-the-Makefile-for-cross-compile.patch \ + file://0002-Replace-nl_handle-to-nl_sock.patch \ + file://0003-ipvsadm-remove-dependency-on-bash.patch \ + file://makefile-add-ldflags.patch \ +" + +SRC_URI[md5sum] = "eac3ba3f62cd4dea2da353aeddd353a8" +SRC_URI[sha256sum] = "6d6c46fecb1c532a892616b4445c73b71730e8790d5630f60269fd9cbee0eb2d" + +do_compile() { + oe_runmake \ + CC="${CC} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/libnl3 -L${STAGING_LIBDIR}" \ + all +} + +do_install() { + oe_runmake 'BUILD_ROOT=${D}' install +} diff --git a/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch b/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch new file mode 100644 index 00000000000..d0d203eadb2 --- /dev/null +++ b/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch @@ -0,0 +1,19 @@ +Use HAVE_WORKING_SNPRINTF to check for snprintf() + +Upstream-Status: Pending + +Signed-off-by: Khem Raj + +Index: libesmtp-1.0.6/missing.h +=================================================================== +--- libesmtp-1.0.6.orig/missing.h ++++ libesmtp-1.0.6/missing.h +@@ -43,7 +43,7 @@ int strncasecmp (const char *a, const ch + void *memrchr (const void *a, int c, size_t len); + #endif + +-#ifndef HAVE_SNPRINTF ++#ifndef HAVE_WORKING_SNPRINTF + #include + int snprintf(char *s, size_t n, const char *format, ...); + #endif diff --git a/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb b/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb index 8b2b99f1fcc..71c5d940b7f 100644 --- a/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb +++ b/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb @@ -4,12 +4,14 @@ DESCRIPTION = "LibESMTP is a library to manage posting \ preconfigured Mail Transport Agent (MTA) such as Exim or PostFix." HOMEPAGE = "http://www.stafford.uklinux.net/libesmtp/" LICENSE = "LGPLv2+" -SECTION = "libs/network" +SECTION = "libs" DEPENDS = "openssl" SRC_URI = "http://www.stafford.uklinux.net/libesmtp/libesmtp-${PV}.tar.bz2 \ - file://include-topdir.patch" + file://include-topdir.patch \ + file://snprintf.patch \ + " SRC_URI[md5sum] = "bf3915e627fd8f35524a8fdfeed979c8" SRC_URI[sha256sum] = "d0a61a5c52d99fa7ce7d00ed0a07e341dbda67101dbed1ab0cdae3f37db4eb0b" diff --git a/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch b/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch new file mode 100644 index 00000000000..8ab094fa7e0 --- /dev/null +++ b/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch @@ -0,0 +1,13 @@ +--- a/wscript 2015-11-18 12:43:33.000000000 +0100 ++++ b/wscript 2015-11-18 12:46:25.000000000 +0100 +@@ -58,9 +58,7 @@ + if conf.env.standalone_ldb: + conf.CHECK_XSLTPROC_MANPAGES() + +- # we need this for the ldap backend +- if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'): +- conf.env.ENABLE_LDAP_BACKEND = True ++ conf.env.ENABLE_LDAP_BACKEND = False + + # we don't want any libraries or modules to rely on runtime + # resolution of symbols diff --git a/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch b/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch new file mode 100755 index 00000000000..fdd312c0adc --- /dev/null +++ b/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch @@ -0,0 +1,58 @@ +Some modules such as dynamic library maybe cann't be imported while cross compile, +we just check whether does the module exist. + +Signed-off-by: Bian Naimeng + +Index: ldb-1.1.26/buildtools/wafsamba/samba_bundled.py +=================================================================== +--- ldb-1.1.26.orig/buildtools/wafsamba/samba_bundled.py ++++ ldb-1.1.26/buildtools/wafsamba/samba_bundled.py +@@ -2,6 +2,7 @@ + + import sys + import Build, Options, Logs ++import imp, os + from Configure import conf + from samba_utils import TO_LIST + +@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li + # versions + minversion = minimum_library_version(conf, libname, minversion) + +- try: +- m = __import__(modulename) +- except ImportError: +- found = False +- else: ++ # Find module in PYTHONPATH ++ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]]) ++ if stuff: + try: +- version = m.__version__ +- except AttributeError: ++ m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2]) ++ except ImportError: + found = False ++ ++ if conf.env.CROSS_COMPILE: ++ # Some modules such as dynamic library maybe cann't be imported ++ # while cross compile, we just check whether the module exist ++ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1])) ++ found = True + else: +- found = tuplize_version(version) >= tuplize_version(minversion) ++ try: ++ version = m.__version__ ++ except AttributeError: ++ found = False ++ else: ++ found = tuplize_version(version) >= tuplize_version(minversion) ++ finally: ++ if stuff[0]: ++ stuff[0].close() ++ else: ++ found = False ++ + if not found and not conf.LIB_MAY_BE_BUNDLED(libname): + Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion)) + sys.exit(1) diff --git a/meta-networking/recipes-support/libldb/libldb/ldb-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libldb/libldb/ldb-Add-configure-options-for-packages.patch new file mode 100644 index 00000000000..93bd4578e1a --- /dev/null +++ b/meta-networking/recipes-support/libldb/libldb/ldb-Add-configure-options-for-packages.patch @@ -0,0 +1,177 @@ +From 49dde22e798fd7f39fd59250036c0ae1fe2b9152 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Wed, 21 Sep 2016 10:06:39 +0800 +Subject: [PATCH] ldb: Add configure options for packages + +Add configure options for the following packages: + - acl + - attr + - libaio + - libbsd + - libcap + - valgrind + +Upstream-Status: Inappropriate [oe deterministic build specific] + +Signed-off-by: Jackie Huang +--- + lib/replace/system/wscript_configure | 6 ++- + lib/replace/wscript | 85 ++++++++++++++++++++++++++++-------- + wscript | 7 +++ + 3 files changed, 80 insertions(+), 18 deletions(-) + +diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure +index 2035474..10f9ae7 100644 +--- a/lib/replace/system/wscript_configure ++++ b/lib/replace/system/wscript_configure +@@ -1,6 +1,10 @@ + #!/usr/bin/env python + +-conf.CHECK_HEADERS('sys/capability.h') ++import Options ++ ++if Options.options.enable_libcap: ++ conf.CHECK_HEADERS('sys/capability.h') ++ + conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r') + + # solaris varients of getXXent_r +diff --git a/lib/replace/wscript b/lib/replace/wscript +index 145300d..8218fa5 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -23,6 +23,41 @@ def set_options(opt): + opt.PRIVATE_EXTENSION_DEFAULT('') + opt.RECURSE('buildtools/wafsamba') + ++ opt.add_option('--with-acl', ++ help=("Enable use of acl"), ++ action="store_true", dest='enable_acl') ++ opt.add_option('--without-acl', ++ help=("Disable use of acl"), ++ action="store_false", dest='enable_acl', default=False) ++ ++ opt.add_option('--with-attr', ++ help=("Enable use of attr"), ++ action="store_true", dest='enable_attr') ++ opt.add_option('--without-attr', ++ help=("Disable use of attr"), ++ action="store_false", dest='enable_attr', default=False) ++ ++ opt.add_option('--with-libaio', ++ help=("Enable use of libaio"), ++ action="store_true", dest='enable_libaio') ++ opt.add_option('--without-libaio', ++ help=("Disable use of libaio"), ++ action="store_false", dest='enable_libaio', default=False) ++ ++ opt.add_option('--with-libbsd', ++ help=("Enable use of libbsd"), ++ action="store_true", dest='enable_libbsd') ++ opt.add_option('--without-libbsd', ++ help=("Disable use of libbsd"), ++ action="store_false", dest='enable_libbsd', default=False) ++ ++ opt.add_option('--with-libcap', ++ help=("Enable use of libcap"), ++ action="store_true", dest='enable_libcap') ++ opt.add_option('--without-libcap', ++ help=("Disable use of libcap"), ++ action="store_false", dest='enable_libcap', default=False) ++ + @Utils.run_once + def configure(conf): + conf.RECURSE('buildtools/wafsamba') +@@ -32,12 +67,25 @@ def configure(conf): + conf.DEFINE('HAVE_LIBREPLACE', 1) + conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1) + +- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h') +- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h') ++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h') ++ conf.CHECK_HEADERS('compat.h ctype.h dustat.h') + conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h') +- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h') +- conf.CHECK_HEADERS('shadow.h sys/acl.h') +- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h') ++ conf.CHECK_HEADERS('locale.h ndir.h pwd.h') ++ conf.CHECK_HEADERS('shadow.h') ++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h') ++ ++ if Options.options.enable_acl: ++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h') ++ ++ if Options.options.enable_attr: ++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h') ++ ++ if Options.options.enable_libaio: ++ conf.CHECK_HEADERS('libaio.h') ++ ++ if Options.options.enable_libcap: ++ conf.CHECK_HEADERS('sys/capability.h') ++ + conf.CHECK_HEADERS('port.h') + conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') + conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') +@@ -73,7 +121,9 @@ def configure(conf): + + conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') + +- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ if Options.options.enable_valgrind: ++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ + conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') + conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') + conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') +@@ -248,17 +298,18 @@ def configure(conf): + + conf.CHECK_FUNCS('prctl dirname basename') + +- # libbsd on some platforms provides strlcpy and strlcat +- if not conf.CHECK_FUNCS('strlcpy strlcat'): +- conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', +- checklibc=True) +- if not conf.CHECK_FUNCS('getpeereid'): +- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') +- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): +- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') +- +- if not conf.CHECK_FUNCS('closefrom'): +- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') ++ if Options.options.enable_libbsd: ++ # libbsd on some platforms provides strlcpy and strlcat ++ if not conf.CHECK_FUNCS('strlcpy strlcat'): ++ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', ++ checklibc=True) ++ if not conf.CHECK_FUNCS('getpeereid'): ++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') ++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): ++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') ++ ++ if not conf.CHECK_FUNCS('closefrom'): ++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') + + conf.CHECK_CODE(''' + struct ucred cred; +diff --git a/wscript b/wscript +index 2af8571..059408b 100755 +--- a/wscript ++++ b/wscript +@@ -29,6 +29,13 @@ def set_options(opt): + opt.RECURSE('lib/replace') + opt.tool_options('python') # options for disabling pyc or pyo compilation + ++ opt.add_option('--with-valgrind', ++ help=("enable use of valgrind"), ++ action="store_true", dest='enable_valgrind') ++ opt.add_option('--without-valgrind', ++ help=("disable use of valgrind"), ++ action="store_false", dest='enable_valgrind', default=False) ++ + def configure(conf): + conf.RECURSE('lib/tdb') + conf.RECURSE('lib/tevent') +-- +2.8.3 + diff --git a/meta-networking/recipes-support/libldb/libldb_1.1.29.bb b/meta-networking/recipes-support/libldb/libldb_1.1.29.bb new file mode 100644 index 00000000000..a90919ba42b --- /dev/null +++ b/meta-networking/recipes-support/libldb/libldb_1.1.29.bb @@ -0,0 +1,63 @@ +SUMMARY = "Hierarchical, reference counted memory pool system with destructors" +HOMEPAGE = "http://ldb.samba.org" +SECTION = "libs" +LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+" + +DEPENDS += "libtdb libtalloc libtevent popt" +RDEPENDS_pyldb += "python" + +SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \ + file://do-not-import-target-module-while-cross-compile.patch \ + file://ldb-Add-configure-options-for-packages.patch \ + " + +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ +" +PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" +PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr" +PACKAGECONFIG[ldap] = ",,openldap" +PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio" +PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd" +PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap" +PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind" + +SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://avoid-openldap-unless-wanted.patch', d)}" + +LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9adade \ + file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ + file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" + +SRC_URI[md5sum] = "9c90abfb94c1e2a693399392cf4cddb9" +SRC_URI[sha256sum] = "59d84f9a5b799f519ba7b2685bb46f5a26f1bbf05b7a144b2f5e017d01d80f97" + +inherit waf-samba + +S = "${WORKDIR}/ldb-${PV}" + +EXTRA_OECONF += "--disable-rpath \ + --disable-rpath-install \ + --bundled-libraries=NONE \ + --builtin-libraries=replace \ + --with-modulesdir=${libdir}/ldb/modules \ + --with-privatelibdir=${libdir}/ldb \ + --with-libiconv=${STAGING_DIR_HOST}${prefix}\ + " + +PACKAGES =+ "pyldb pyldb-dbg pyldb-dev" + +NOAUTOPACKAGEDEBUG = "1" + +FILES_${PN} += "${libdir}/ldb/*" +FILES_${PN}-dbg += "${bindir}/.debug/* \ + ${libdir}/.debug/* \ + ${libdir}/ldb/.debug/* \ + ${libdir}/ldb/modules/ldb/.debug/*" + +FILES_pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \ + ${libdir}/libpyldb-util.so.* \ + " +FILES_pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \ + ${libdir}/.debug/libpyldb-util.so.*" +FILES_pyldb-dev = "${libdir}/libpyldb-util.so" diff --git a/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch b/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch new file mode 100644 index 00000000000..26b5e250cb8 --- /dev/null +++ b/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch @@ -0,0 +1,38 @@ +From ed4422979b221c8613ca02eb5c57cb80009366d1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 18 Mar 2017 10:13:24 -0700 +Subject: [PATCH 1/2] Fix comparison types + +Fixes +error: comparison between pointer and integer ('char *' and 'int') + +Signed-off-by: Khem Raj +--- + clients/memflush.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/clients/memflush.cc b/clients/memflush.cc +index 8bd0dbf..71545ea 100644 +--- a/clients/memflush.cc ++++ b/clients/memflush.cc +@@ -39,7 +39,7 @@ int main(int argc, char *argv[]) + { + options_parse(argc, argv); + +- if (opt_servers == false) ++ if (opt_servers == NULL) + { + char *temp; + +@@ -48,7 +48,7 @@ int main(int argc, char *argv[]) + opt_servers= strdup(temp); + } + +- if (opt_servers == false) ++ if (opt_servers == NULL) + { + std::cerr << "No Servers provided" << std::endl; + exit(EXIT_FAILURE); +-- +2.12.0 + diff --git a/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch b/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch new file mode 100644 index 00000000000..06febc5b13e --- /dev/null +++ b/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch @@ -0,0 +1,28 @@ +From fa0fe001a5373c1ef9ff2175555b14fc07399e1b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 18 Mar 2017 10:01:44 -0700 +Subject: [PATCH] configure.ac: Do not configure build-aux + +Fixes +configure: error: cannot find install-sh, install.sh, or shtool + +Signed-off-by: Khem Raj +--- + configure.ac | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 17b7351..0263112 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -17,7 +17,6 @@ AC_INIT([libmemcached],VERSION_NUMBER,[http://libmemcached.org/]) + AC_PROG_CC([cc gcc clang]) + AC_PROG_CXX([c++ g++ clang++]) + +-AC_CONFIG_AUX_DIR([build-aux]) + AC_CONFIG_MACRO_DIR([m4]) + + AC_CANONICAL_HOST +-- +2.12.0 + diff --git a/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch b/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch new file mode 100644 index 00000000000..e1e1be8c68f --- /dev/null +++ b/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch @@ -0,0 +1,30 @@ +From e95609e4ae40a794ed198924505fd22d7d86a124 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 18 Mar 2017 10:16:14 -0700 +Subject: [PATCH 2/2] POSIX_SPAWN_USEVFORK is not linux specific but glibc + specific + +Fixes +cmdline.cc:206:12: error: use of undeclared identifier 'POSIX_SPAWN_USEVFORK' + +Signed-off-by: Khem Raj +--- + libtest/cmdline.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libtest/cmdline.cc b/libtest/cmdline.cc +index 29a22de..34f0a89 100644 +--- a/libtest/cmdline.cc ++++ b/libtest/cmdline.cc +@@ -201,7 +201,7 @@ Application::error_t Application::run(const char *args[]) + + fatal_assert(posix_spawnattr_setsigmask(&spawnattr, &mask) == 0); + +-#if defined(POSIX_SPAWN_USEVFORK) || defined(__linux__) ++#if defined(POSIX_SPAWN_USEVFORK) || defined(__GLIBC__) + // Use USEVFORK on linux + flags |= POSIX_SPAWN_USEVFORK; + #endif +-- +2.12.0 + diff --git a/meta-networking/recipes-support/libmemcached/libmemcached.inc b/meta-networking/recipes-support/libmemcached/libmemcached.inc index 50ef4d60625..e86f832f8d4 100644 --- a/meta-networking/recipes-support/libmemcached/libmemcached.inc +++ b/meta-networking/recipes-support/libmemcached/libmemcached.inc @@ -1,11 +1,13 @@ DESCRIPTION = "open source C/C++ client library and tools for the memcached server" DEPENDS = "libevent util-linux" +SECTION = "libdevel" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=865490941c91ba790f0ea78dec93bd60" SRC_URI = "http://launchpad.net/libmemcached/1.0/${PV}/+download/libmemcached-${PV}.tar.gz" TARGET_LDFLAGS += "-luuid" +TARGET_CFLAGS += "-D__USE_GNU -D_GNU_SOURCE" PACKAGECONFIG ??= "" PACKAGECONFIG[sasl] = "--enable-sasl,--disable-sasl,cyrus-sasl" diff --git a/meta-networking/recipes-support/libmemcached/libmemcached_1.0.15.bb b/meta-networking/recipes-support/libmemcached/libmemcached_1.0.15.bb deleted file mode 100644 index 18232b4ceb2..00000000000 --- a/meta-networking/recipes-support/libmemcached/libmemcached_1.0.15.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libmemcached.inc - -SRC_URI += "file://crosscompile.patch" - -SRC_URI[md5sum] = "616297a1aedefc52b3f6922eda5d559a" -SRC_URI[sha256sum] = "dd7e9560029835bddf761a5b4c2339d9e5c7374558659b6c11b2c95e7d3a4325" diff --git a/meta-networking/recipes-support/libmemcached/libmemcached_1.0.18.bb b/meta-networking/recipes-support/libmemcached/libmemcached_1.0.18.bb new file mode 100644 index 00000000000..56778c04837 --- /dev/null +++ b/meta-networking/recipes-support/libmemcached/libmemcached_1.0.18.bb @@ -0,0 +1,10 @@ +require libmemcached.inc + +SRC_URI += "\ + file://crosscompile.patch \ + file://0001-configure.ac-Do-not-configure-build-aux.patch \ + file://0001-Fix-comparison-types.patch \ + file://0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch \ + " +SRC_URI[md5sum] = "b3958716b4e53ddc5992e6c49d97e819" +SRC_URI[sha256sum] = "e22c0bb032fde08f53de9ffbc5a128233041d9f33b5de022c0978a2149885f82" diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch b/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch new file mode 100644 index 00000000000..a3ee9ccd979 --- /dev/null +++ b/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch @@ -0,0 +1,20 @@ +--- a/lib/replace/wscript 2015-11-13 16:04:04.000000000 +0100 ++++ b/lib/replace/wscript 2015-11-13 16:23:20.000000000 +0100 +@@ -636,8 +636,6 @@ + if not bld.CONFIG_SET('HAVE_INET_ATON'): REPLACE_SOURCE += ' inet_aton.c' + if not bld.CONFIG_SET('HAVE_INET_NTOP'): REPLACE_SOURCE += ' inet_ntop.c' + if not bld.CONFIG_SET('HAVE_INET_PTON'): REPLACE_SOURCE += ' inet_pton.c' +- if not bld.CONFIG_SET('HAVE_GETXATTR') or bld.CONFIG_SET('XATTR_ADDITIONAL_OPTIONS'): +- REPLACE_SOURCE += ' xattr.c' + + bld.SAMBA_LIBRARY('replace', + source=REPLACE_SOURCE, +@@ -648,7 +646,7 @@ + # at the moment: + # hide_symbols=bld.BUILTIN_LIBRARY('replace'), + private_library=True, +- deps='crypt dl nsl socket rt attr' + extra_libs) ++ deps='crypt dl nsl socket rt ' + extra_libs) + + bld.SAMBA_SUBSYSTEM('replace-test', + source='''test/testsuite.c test/strptime.c diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/talloc-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libtalloc/libtalloc/talloc-Add-configure-options-for-packages.patch new file mode 100644 index 00000000000..46b2405cbdd --- /dev/null +++ b/meta-networking/recipes-support/libtalloc/libtalloc/talloc-Add-configure-options-for-packages.patch @@ -0,0 +1,177 @@ +From efc1b02144f23fdf84dbc5ff15307815e0f2a425 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Wed, 14 Sep 2016 11:11:35 +0800 +Subject: [PATCH] talloc: Add configure options for packages + +Add configure options for the following packages: + - acl + - attr + - libaio + - libbsd + - libcap + - valgrind + +Upstream-Status: Inappropriate [oe deterministic build specific] + +Signed-off-by: Jackie Huang +--- + lib/replace/system/wscript_configure | 6 ++- + lib/replace/wscript | 85 ++++++++++++++++++++++++++++-------- + wscript | 7 ++- + 3 files changed, 79 insertions(+), 19 deletions(-) + +diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure +index 2035474..10f9ae7 100644 +--- a/lib/replace/system/wscript_configure ++++ b/lib/replace/system/wscript_configure +@@ -1,6 +1,10 @@ + #!/usr/bin/env python + +-conf.CHECK_HEADERS('sys/capability.h') ++import Options ++ ++if Options.options.enable_libcap: ++ conf.CHECK_HEADERS('sys/capability.h') ++ + conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r') + + # solaris varients of getXXent_r +diff --git a/lib/replace/wscript b/lib/replace/wscript +index fc43e1a..12d2a70 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -23,6 +23,41 @@ def set_options(opt): + opt.PRIVATE_EXTENSION_DEFAULT('') + opt.RECURSE('buildtools/wafsamba') + ++ opt.add_option('--with-acl', ++ help=("Enable use of acl"), ++ action="store_true", dest='enable_acl') ++ opt.add_option('--without-acl', ++ help=("Disable use of acl"), ++ action="store_false", dest='enable_acl', default=False) ++ ++ opt.add_option('--with-attr', ++ help=("Enable use of attr"), ++ action="store_true", dest='enable_attr') ++ opt.add_option('--without-attr', ++ help=("Disable use of attr"), ++ action="store_false", dest='enable_attr', default=False) ++ ++ opt.add_option('--with-libaio', ++ help=("Enable use of libaio"), ++ action="store_true", dest='enable_libaio') ++ opt.add_option('--without-libaio', ++ help=("Disable use of libaio"), ++ action="store_false", dest='enable_libaio', default=False) ++ ++ opt.add_option('--with-libbsd', ++ help=("Enable use of libbsd"), ++ action="store_true", dest='enable_libbsd') ++ opt.add_option('--without-libbsd', ++ help=("Disable use of libbsd"), ++ action="store_false", dest='enable_libbsd', default=False) ++ ++ opt.add_option('--with-libcap', ++ help=("Enable use of libcap"), ++ action="store_true", dest='enable_libcap') ++ opt.add_option('--without-libcap', ++ help=("Disable use of libcap"), ++ action="store_false", dest='enable_libcap', default=False) ++ + @Utils.run_once + def configure(conf): + conf.RECURSE('buildtools/wafsamba') +@@ -32,12 +67,25 @@ def configure(conf): + conf.DEFINE('HAVE_LIBREPLACE', 1) + conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1) + +- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h') +- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h') ++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h') ++ conf.CHECK_HEADERS('compat.h ctype.h dustat.h') + conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h') +- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h') +- conf.CHECK_HEADERS('shadow.h sys/acl.h') +- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h') ++ conf.CHECK_HEADERS('locale.h ndir.h pwd.h') ++ conf.CHECK_HEADERS('shadow.h') ++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h') ++ ++ if Options.options.enable_acl: ++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h') ++ ++ if Options.options.enable_attr: ++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h') ++ ++ if Options.options.enable_libaio: ++ conf.CHECK_HEADERS('libaio.h') ++ ++ if Options.options.enable_libcap: ++ conf.CHECK_HEADERS('sys/capability.h') ++ + conf.CHECK_HEADERS('port.h') + conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') + conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') +@@ -73,7 +121,9 @@ def configure(conf): + + conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') + +- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ if Options.options.enable_valgrind: ++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ + conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') + conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') + conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') +@@ -248,17 +298,18 @@ def configure(conf): + + conf.CHECK_FUNCS('prctl dirname basename') + +- # libbsd on some platforms provides strlcpy and strlcat +- if not conf.CHECK_FUNCS('strlcpy strlcat'): +- conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', +- checklibc=True) +- if not conf.CHECK_FUNCS('getpeereid'): +- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') +- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): +- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') +- +- if not conf.CHECK_FUNCS('closefrom'): +- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') ++ if Options.options.enable_libbsd: ++ # libbsd on some platforms provides strlcpy and strlcat ++ if not conf.CHECK_FUNCS('strlcpy strlcat'): ++ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', ++ checklibc=True) ++ if not conf.CHECK_FUNCS('getpeereid'): ++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') ++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): ++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') ++ ++ if not conf.CHECK_FUNCS('closefrom'): ++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') + + conf.CHECK_CODE(''' + struct ucred cred; +diff --git a/wscript b/wscript +index 41f3be7..556c1c8 100644 +--- a/wscript ++++ b/wscript +@@ -35,7 +35,12 @@ def set_options(opt): + opt.add_option('--disable-python', + help=("disable the pytalloc module"), + action="store_true", dest='disable_python', default=False) +- ++ opt.add_option('--with-valgrind', ++ help=("enable use of valgrind"), ++ action="store_true", dest='enable_valgrind') ++ opt.add_option('--without-valgrind', ++ help=("disable use of valgrind"), ++ action="store_false", dest='enable_valgrind', default=False) + + def configure(conf): + conf.RECURSE('lib/replace') +-- +2.8.3 + diff --git a/meta-networking/recipes-support/libtalloc/libtalloc_2.1.9.bb b/meta-networking/recipes-support/libtalloc/libtalloc_2.1.9.bb new file mode 100644 index 00000000000..d80af50d20f --- /dev/null +++ b/meta-networking/recipes-support/libtalloc/libtalloc_2.1.9.bb @@ -0,0 +1,49 @@ +SUMMARY = "Hierarchical, reference counted memory pool system with destructors" +HOMEPAGE = "http://talloc.samba.org" +SECTION = "libs" +LICENSE = "LGPL-3.0+ & GPL-3.0+" +LIC_FILES_CHKSUM = "file://talloc.h;beginline=3;endline=27;md5=a301712782cad6dd6d5228bfa7825249 \ + file://pytalloc.h;beginline=1;endline=18;md5=2c498cc6f2263672483237b20f46b43d" + + +SRC_URI = "https://samba.org/ftp/talloc/talloc-${PV}.tar.gz \ + file://talloc-Add-configure-options-for-packages.patch \ +" +SRC_URI[md5sum] = "19ba14eba97d79a169fa92ea824d2b9e" +SRC_URI[sha256sum] = "f0aad4cb88a3322207c82136ddc07bed48a37c2c21f82962d6c5ccb422711062" + +inherit waf-samba + +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ +" +PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" +PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr" +PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio" +PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd" +PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap" +PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind" + +SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}" + +S = "${WORKDIR}/talloc-${PV}" + +EXTRA_OECONF += "--disable-rpath \ + --disable-rpath-install \ + --bundled-libraries=NONE \ + --builtin-libraries=replace \ + --disable-silent-rules \ + --with-libiconv=${STAGING_DIR_HOST}${prefix}\ + " + +PACKAGES += "pytalloc pytalloc-dbg pytalloc-dev" + +FILES_pytalloc = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \ + ${libdir}/libpytalloc-util.so.2 \ + ${libdir}/libpytalloc-util.so.2.1.1 \ + " +FILES_pytalloc-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \ + ${libdir}/.debug/libpytalloc-util.so.2.1.1" +FILES_pytalloc-dev = "${libdir}/libpytalloc-util.so" +RDEPENDS_pytalloc = "python" diff --git a/meta-networking/recipes-support/libtdb/libtdb/do-not-check-xsltproc-manpages.patch b/meta-networking/recipes-support/libtdb/libtdb/do-not-check-xsltproc-manpages.patch new file mode 100644 index 00000000000..bcc45c9fc3b --- /dev/null +++ b/meta-networking/recipes-support/libtdb/libtdb/do-not-check-xsltproc-manpages.patch @@ -0,0 +1,15 @@ +Don't check manpages for xsltproc. + +Signed-off-by: Bian Naimeng + +--- tdb-1.3.0.orig/wscript 2015-04-22 09:52:32.366000222 +0900 ++++ tdb-1.3.0/wscript 2015-04-22 09:51:57.720000205 +0900 +@@ -90,7 +90,7 @@ def configure(conf): + not conf.env.disable_tdb_mutex_locking): + conf.define('USE_TDB_MUTEX_LOCKING', 1) + +- conf.CHECK_XSLTPROC_MANPAGES() ++ conf.find_program('xsltproc', var='XSLTPROC') + + if not conf.env.disable_python: + # also disable if we don't have the python libs installed diff --git a/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch new file mode 100644 index 00000000000..272921e568a --- /dev/null +++ b/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch @@ -0,0 +1,184 @@ +From 24911f36bcb00412e5dc4cd11fda139e09d58798 Mon Sep 17 00:00:00 2001 +From: Huang Qiyu +Date: Tue, 1 Aug 2017 03:12:09 +0900 +Subject: [PATCH] From 10ac5e5fdda44adcc2a159b6f9a2d51a51361057 Mon Sep 17 + 00:00:00 2001 From: Jackie Huang Date: Wed, 21 + Sep 2016 10:46:19 +0800 Subject: [PATCH] tdb: Add configure options for + packages + +Add configure options for the following packages: + - acl + - attr + - libaio + - libbsd + - libcap + - valgrind + +Upstream-Status: Inappropriate [oe deterministic build specific] + +Signed-off-by: Jackie Huang + +Update for libtdb_1.3.14. + +Signed-off-by: Huang Qiyu +--- + lib/replace/system/wscript_configure | 6 ++- + lib/replace/wscript | 85 ++++++++++++++++++++++++++++-------- + wscript | 7 ++- + 3 files changed, 79 insertions(+), 19 deletions(-) + +diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure +index 2035474..10f9ae7 100644 +--- a/lib/replace/system/wscript_configure ++++ b/lib/replace/system/wscript_configure +@@ -1,6 +1,10 @@ + #!/usr/bin/env python + +-conf.CHECK_HEADERS('sys/capability.h') ++import Options ++ ++if Options.options.enable_libcap: ++ conf.CHECK_HEADERS('sys/capability.h') ++ + conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r') + + # solaris varients of getXXent_r +diff --git a/lib/replace/wscript b/lib/replace/wscript +index 7c50e1d..15df5c3 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -23,6 +23,41 @@ def set_options(opt): + opt.PRIVATE_EXTENSION_DEFAULT('') + opt.RECURSE('buildtools/wafsamba') + ++ opt.add_option('--with-acl', ++ help=("Enable use of acl"), ++ action="store_true", dest='enable_acl') ++ opt.add_option('--without-acl', ++ help=("Disable use of acl"), ++ action="store_false", dest='enable_acl', default=False) ++ ++ opt.add_option('--with-attr', ++ help=("Enable use of attr"), ++ action="store_true", dest='enable_attr') ++ opt.add_option('--without-attr', ++ help=("Disable use of attr"), ++ action="store_false", dest='enable_attr', default=False) ++ ++ opt.add_option('--with-libaio', ++ help=("Enable use of libaio"), ++ action="store_true", dest='enable_libaio') ++ opt.add_option('--without-libaio', ++ help=("Disable use of libaio"), ++ action="store_false", dest='enable_libaio', default=False) ++ ++ opt.add_option('--with-libbsd', ++ help=("Enable use of libbsd"), ++ action="store_true", dest='enable_libbsd') ++ opt.add_option('--without-libbsd', ++ help=("Disable use of libbsd"), ++ action="store_false", dest='enable_libbsd', default=False) ++ ++ opt.add_option('--with-libcap', ++ help=("Enable use of libcap"), ++ action="store_true", dest='enable_libcap') ++ opt.add_option('--without-libcap', ++ help=("Disable use of libcap"), ++ action="store_false", dest='enable_libcap', default=False) ++ + @Utils.run_once + def configure(conf): + conf.RECURSE('buildtools/wafsamba') +@@ -32,12 +67,25 @@ def configure(conf): + conf.DEFINE('HAVE_LIBREPLACE', 1) + conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1) + +- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h') +- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h') ++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h') ++ conf.CHECK_HEADERS('compat.h ctype.h dustat.h') + conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h') +- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h') +- conf.CHECK_HEADERS('shadow.h sys/acl.h') +- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h') ++ conf.CHECK_HEADERS('locale.h ndir.h pwd.h') ++ conf.CHECK_HEADERS('shadow.h') ++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h') ++ ++ if Options.options.enable_acl: ++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h') ++ ++ if Options.options.enable_attr: ++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h') ++ ++ if Options.options.enable_libaio: ++ conf.CHECK_HEADERS('libaio.h') ++ ++ if Options.options.enable_libcap: ++ conf.CHECK_HEADERS('sys/capability.h') ++ + conf.CHECK_HEADERS('port.h') + conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') + conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') +@@ -73,7 +121,9 @@ def configure(conf): + + conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') + +- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ if Options.options.enable_valgrind: ++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ + conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') + conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') + conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') +@@ -251,17 +301,18 @@ def configure(conf): + + conf.CHECK_FUNCS('prctl dirname basename') + +- # libbsd on some platforms provides strlcpy and strlcat +- if not conf.CHECK_FUNCS('strlcpy strlcat'): +- conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', +- checklibc=True) +- if not conf.CHECK_FUNCS('getpeereid'): +- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') +- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): +- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') +- +- if not conf.CHECK_FUNCS('closefrom'): +- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') ++ if Options.options.enable_libbsd: ++ # libbsd on some platforms provides strlcpy and strlcat ++ if not conf.CHECK_FUNCS('strlcpy strlcat'): ++ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', ++ checklibc=True) ++ if not conf.CHECK_FUNCS('getpeereid'): ++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') ++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): ++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') ++ ++ if not conf.CHECK_FUNCS('closefrom'): ++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') + + conf.CHECK_CODE(''' + struct ucred cred; +diff --git a/wscript b/wscript +index 1c9655a..8c20d3b 100644 +--- a/wscript ++++ b/wscript +@@ -62,7 +62,12 @@ def set_options(opt): + help=("Disable the use of pthread robust mutexes"), + action="store_true", dest='disable_tdb_mutex_locking', + default=False) +- ++ opt.add_option('--with-valgrind', ++ help=("enable use of valgrind"), ++ action="store_true", dest='enable_valgrind') ++ opt.add_option('--without-valgrind', ++ help=("disable use of valgrind"), ++ action="store_false", dest='enable_valgrind', default=False) + + def configure(conf): + conf.env.disable_tdb_mutex_locking = getattr(Options.options, +-- +2.7.4 + diff --git a/meta-networking/recipes-support/libtdb/libtdb_1.3.14.bb b/meta-networking/recipes-support/libtdb/libtdb_1.3.14.bb new file mode 100644 index 00000000000..3122b93ba38 --- /dev/null +++ b/meta-networking/recipes-support/libtdb/libtdb_1.3.14.bb @@ -0,0 +1,44 @@ +SUMMARY = "The tdb library" +HOMEPAGE = "http://tdb.samba.org/" +SECTION = "libs" +LICENSE = "LGPL-3.0+ & GPL-3.0+" + +LIC_FILES_CHKSUM = "file://tools/tdbdump.c;endline=18;md5=b59cd45aa8624578126a8c98f48018c4 \ + file://include/tdb.h;endline=27;md5=f5bb544641d3081821bcc1dd58310be6" + +SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \ + file://do-not-check-xsltproc-manpages.patch \ + file://tdb-Add-configure-options-for-packages.patch \ +" + +SRC_URI[md5sum] = "dd23f2ba8ca2bfdcb833bc79d5b5ac6f" +SRC_URI[sha256sum] = "3a7d4bb79229460df530c7e1c7067ba9fb9d370aa61fff537fdc2bdf918acbe9" + +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ +" +PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" +PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr" +PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio" +PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd" +PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap" +PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind" + +S = "${WORKDIR}/tdb-${PV}" + +inherit waf-samba + +EXTRA_OECONF += "--disable-rpath \ + --bundled-libraries=NONE \ + --builtin-libraries=replace \ + --with-libiconv=${STAGING_DIR_HOST}${prefix}\ + " + +PACKAGES += "tdb-tools python-tdb python-tdb-dbg" + +FILES_${PN} = "${libdir}/*.so.*" +FILES_tdb-tools = "${bindir}/*" +FILES_python-tdb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*" +FILES_python-tdb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug/*" +RDEPENDS_python-tdb = "python" diff --git a/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch b/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch new file mode 100644 index 00000000000..2fc55239c3a --- /dev/null +++ b/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch @@ -0,0 +1,20 @@ +--- a/lib/replace/wscript 2015-11-18 15:40:19.000000000 +0100 ++++ b/lib/replace/wscript 2015-11-18 15:48:09.000000000 +0100 +@@ -618,8 +618,6 @@ + if not bld.CONFIG_SET('HAVE_INET_ATON'): REPLACE_SOURCE += ' inet_aton.c' + if not bld.CONFIG_SET('HAVE_INET_NTOP'): REPLACE_SOURCE += ' inet_ntop.c' + if not bld.CONFIG_SET('HAVE_INET_PTON'): REPLACE_SOURCE += ' inet_pton.c' +- if not bld.CONFIG_SET('HAVE_GETXATTR') or bld.CONFIG_SET('XATTR_ADDITIONAL_OPTIONS'): +- REPLACE_SOURCE += ' xattr.c' + + bld.SAMBA_LIBRARY('replace', + source=REPLACE_SOURCE, +@@ -630,7 +628,7 @@ + # at the moment: + # hide_symbols=bld.BUILTIN_LIBRARY('replace'), + private_library=True, +- deps='crypt dl nsl socket rt attr' + extra_libs) ++ deps='crypt dl nsl socket rt ' + extra_libs) + + bld.SAMBA_SUBSYSTEM('replace-test', + source='''test/testsuite.c test/strptime.c diff --git a/meta-networking/recipes-support/libtevent/libtevent/tevent-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libtevent/libtevent/tevent-Add-configure-options-for-packages.patch new file mode 100644 index 00000000000..ddb8e4e23b6 --- /dev/null +++ b/meta-networking/recipes-support/libtevent/libtevent/tevent-Add-configure-options-for-packages.patch @@ -0,0 +1,180 @@ +From c00f6d35bdc06dffb54daa815e57b44210a5de04 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Wed, 21 Sep 2016 09:57:49 +0800 +Subject: [PATCH] tevent: Add configure options for packages + +Add configure options for the following packages: + - acl + - attr + - libaio + - libbsd + - libcap + - valgrind + +Upstream-Status: Inappropriate [oe deterministic build specific] + +Signed-off-by: Jackie Huang +--- + lib/replace/system/wscript_configure | 6 ++- + lib/replace/wscript | 85 ++++++++++++++++++++++++++++-------- + wscript | 7 ++- + 3 files changed, 79 insertions(+), 19 deletions(-) + mode change 100755 => 100644 wscript + +diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure +index 2035474..10f9ae7 100644 +--- a/lib/replace/system/wscript_configure ++++ b/lib/replace/system/wscript_configure +@@ -1,6 +1,10 @@ + #!/usr/bin/env python + +-conf.CHECK_HEADERS('sys/capability.h') ++import Options ++ ++if Options.options.enable_libcap: ++ conf.CHECK_HEADERS('sys/capability.h') ++ + conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r') + + # solaris varients of getXXent_r +diff --git a/lib/replace/wscript b/lib/replace/wscript +index fc43e1a..12d2a70 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -23,6 +23,41 @@ def set_options(opt): + opt.PRIVATE_EXTENSION_DEFAULT('') + opt.RECURSE('buildtools/wafsamba') + ++ opt.add_option('--with-acl', ++ help=("Enable use of acl"), ++ action="store_true", dest='enable_acl') ++ opt.add_option('--without-acl', ++ help=("Disable use of acl"), ++ action="store_false", dest='enable_acl', default=False) ++ ++ opt.add_option('--with-attr', ++ help=("Enable use of attr"), ++ action="store_true", dest='enable_attr') ++ opt.add_option('--without-attr', ++ help=("Disable use of attr"), ++ action="store_false", dest='enable_attr', default=False) ++ ++ opt.add_option('--with-libaio', ++ help=("Enable use of libaio"), ++ action="store_true", dest='enable_libaio') ++ opt.add_option('--without-libaio', ++ help=("Disable use of libaio"), ++ action="store_false", dest='enable_libaio', default=False) ++ ++ opt.add_option('--with-libbsd', ++ help=("Enable use of libbsd"), ++ action="store_true", dest='enable_libbsd') ++ opt.add_option('--without-libbsd', ++ help=("Disable use of libbsd"), ++ action="store_false", dest='enable_libbsd', default=False) ++ ++ opt.add_option('--with-libcap', ++ help=("Enable use of libcap"), ++ action="store_true", dest='enable_libcap') ++ opt.add_option('--without-libcap', ++ help=("Disable use of libcap"), ++ action="store_false", dest='enable_libcap', default=False) ++ + @Utils.run_once + def configure(conf): + conf.RECURSE('buildtools/wafsamba') +@@ -32,12 +67,25 @@ def configure(conf): + conf.DEFINE('HAVE_LIBREPLACE', 1) + conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1) + +- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h') +- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h') ++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h') ++ conf.CHECK_HEADERS('compat.h ctype.h dustat.h') + conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h') +- conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h') +- conf.CHECK_HEADERS('shadow.h sys/acl.h') +- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h') ++ conf.CHECK_HEADERS('locale.h ndir.h pwd.h') ++ conf.CHECK_HEADERS('shadow.h') ++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h') ++ ++ if Options.options.enable_acl: ++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h') ++ ++ if Options.options.enable_attr: ++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h') ++ ++ if Options.options.enable_libaio: ++ conf.CHECK_HEADERS('libaio.h') ++ ++ if Options.options.enable_libcap: ++ conf.CHECK_HEADERS('sys/capability.h') ++ + conf.CHECK_HEADERS('port.h') + conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h') + conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') +@@ -73,7 +121,9 @@ def configure(conf): + + conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H') + +- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ if Options.options.enable_valgrind: ++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h') ++ + conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h') + conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h') + conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h') +@@ -248,17 +298,18 @@ def configure(conf): + + conf.CHECK_FUNCS('prctl dirname basename') + +- # libbsd on some platforms provides strlcpy and strlcat +- if not conf.CHECK_FUNCS('strlcpy strlcat'): +- conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', +- checklibc=True) +- if not conf.CHECK_FUNCS('getpeereid'): +- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') +- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): +- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') +- +- if not conf.CHECK_FUNCS('closefrom'): +- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') ++ if Options.options.enable_libbsd: ++ # libbsd on some platforms provides strlcpy and strlcat ++ if not conf.CHECK_FUNCS('strlcpy strlcat'): ++ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', ++ checklibc=True) ++ if not conf.CHECK_FUNCS('getpeereid'): ++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') ++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): ++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') ++ ++ if not conf.CHECK_FUNCS('closefrom'): ++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') + + conf.CHECK_CODE(''' + struct ucred cred; +diff --git a/wscript b/wscript +old mode 100755 +new mode 100644 +index 71b9475..50793db +--- a/wscript ++++ b/wscript +@@ -26,7 +26,12 @@ def set_options(opt): + opt.add_option('--disable-python', + help=("disable the pytevent module"), + action="store_true", dest='disable_python', default=False) +- ++ opt.add_option('--with-valgrind', ++ help=("enable use of valgrind"), ++ action="store_true", dest='enable_valgrind') ++ opt.add_option('--without-valgrind', ++ help=("disable use of valgrind"), ++ action="store_false", dest='enable_valgrind', default=False) + + def configure(conf): + conf.RECURSE('lib/replace') +-- +2.8.3 + diff --git a/meta-networking/recipes-support/libtevent/libtevent_0.9.31.bb b/meta-networking/recipes-support/libtevent/libtevent_0.9.31.bb new file mode 100644 index 00000000000..ad711e730e8 --- /dev/null +++ b/meta-networking/recipes-support/libtevent/libtevent_0.9.31.bb @@ -0,0 +1,44 @@ +SUMMARY = "Hierarchical, reference counted memory pool system with destructors" +HOMEPAGE = "http://tevent.samba.org" +SECTION = "libs" +LICENSE = "LGPLv3+" + +DEPENDS += "libtalloc" +RDEPENDS_python-tevent = "python" + +SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \ + file://tevent-Add-configure-options-for-packages.patch \ +" +LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a" + +SRC_URI[md5sum] = "5453847664ae6bc4ec0153e59ac635b9" +SRC_URI[sha256sum] = "4a13f2256ad804c860e84068258bd0f8be31cf0c79aa8f3019fa32f6928c2bfc" + +inherit waf-samba + +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ +" +PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" +PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr" +PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio" +PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd" +PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap" +PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind" + +SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}" + +S = "${WORKDIR}/tevent-${PV}" + +EXTRA_OECONF += "--disable-rpath \ + --bundled-libraries=NONE \ + --builtin-libraries=replace \ + --with-libiconv=${STAGING_DIR_HOST}${prefix}\ + --without-gettext \ + " + +PACKAGES += "python-tevent python-tevent-dbg" + +FILES_python-tevent = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*" +FILES_python-tevent-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug" diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0001-fix-compile-error-with-linux-kernel-v4.8.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0001-fix-compile-error-with-linux-kernel-v4.8.patch new file mode 100644 index 00000000000..583a6ca60ba --- /dev/null +++ b/meta-networking/recipes-support/linux-atm/linux-atm/0001-fix-compile-error-with-linux-kernel-v4.8.patch @@ -0,0 +1,74 @@ +From 7cdafc0dee8054f82777ed3bf6d4c8b5582d09ad Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Tue, 18 Oct 2016 07:56:02 +0000 +Subject: [PATCH] fix compile error with linux kernel v4.8 + +In src/maint/zntune.c, the glibc time.h is included before linux +time.h, so when compile the zntune.c, it break down by errors: + + redefinition of 'struct timespec' 'struct timeval' + 'struct timezone' 'struct itimerval' + +We should exclude the linux time.h by disable linux/atm_zatm.h and +move some useful definition in linux/atm_zatm.h to zntune.c to resolve +it. + +Upstream-status: Pending + +Signed-off-by: Dengke Du +--- + src/include/atm_zatm.h | 26 ++++++++++++++++++++++++++ + src/maint/zntune.c | 3 +-- + 2 files changed, 27 insertions(+), 2 deletions(-) + create mode 100644 src/include/atm_zatm.h + +diff --git a/src/include/atm_zatm.h b/src/include/atm_zatm.h +new file mode 100644 +index 0000000..7d64f4d +--- /dev/null ++++ b/src/include/atm_zatm.h +@@ -0,0 +1,26 @@ ++#include ++#include ++ ++#define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc) ++ /* get pool statistics */ ++#define ZATM_GETPOOLZ _IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc) ++ /* get statistics and zero */ ++#define ZATM_SETPOOL _IOW('a',ATMIOC_SARPRV+3,struct atmif_sioc) ++ ++struct zatm_pool_info { ++ int ref_count; /* free buffer pool usage counters */ ++ int low_water,high_water; /* refill parameters */ ++ int rqa_count,rqu_count; /* queue condition counters */ ++ int offset,next_off; /* alignment optimizations: offset */ ++ int next_cnt,next_thres; /* repetition counter and threshold */ ++}; /* set pool parameters */ ++ ++struct zatm_pool_req { ++ int pool_num; /* pool number */ ++ struct zatm_pool_info info; /* actual information */ ++}; ++ ++#define ZATM_OAM_POOL 0 /* free buffer pool for OAM cells */ ++#define ZATM_AAL0_POOL 1 /* free buffer pool for AAL0 cells */ ++#define ZATM_AAL5_POOL_BASE 2 /* first AAL5 free buffer pool */ ++#define ZATM_LAST_POOL ZATM_AAL5_POOL_BASE+10 /* max. 64 kB */ +diff --git a/src/maint/zntune.c b/src/maint/zntune.c +index 62d62ab..bb93eab 100644 +--- a/src/maint/zntune.c ++++ b/src/maint/zntune.c +@@ -13,9 +13,8 @@ + #include + #include + #include ++#include + #include /* for struct timeval, although it's not used */ +-#include +- + + static void usage(const char *name) + { +-- +2.9.0 + diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0001-ttcp-Add-printf-format-string.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0001-ttcp-Add-printf-format-string.patch new file mode 100644 index 00000000000..87e7dc3c697 --- /dev/null +++ b/meta-networking/recipes-support/linux-atm/linux-atm/0001-ttcp-Add-printf-format-string.patch @@ -0,0 +1,34 @@ +From b83fd54584fabd5d24f6645b4a3cf345c9d2020d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 Jun 2017 16:11:59 -0700 +Subject: [PATCH 1/3] ttcp: Add printf format string + +Fixes compiler warnings when format security is enabled + +| ../../../linux-atm-2.5.2/src/test/ttcp.c:666:21: error: format not a string literal and no format arguments [-Werror=format-security] +| fprintf(stderr, Usage); +| ^~~~~ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/test/ttcp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/test/ttcp.c b/src/test/ttcp.c +index acb9185..337cee5 100644 +--- a/src/test/ttcp.c ++++ b/src/test/ttcp.c +@@ -663,7 +663,7 @@ int no_check = 0; + exit(0); + + usage: +- fprintf(stderr, Usage); ++ fprintf(stderr, "%s", Usage); + exit(1); + } + +-- +2.13.1 + diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch new file mode 100644 index 00000000000..ce061231cac --- /dev/null +++ b/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch @@ -0,0 +1,30 @@ +From 27fa80dc8045e71c30dd2abea835206d5c8f6c71 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 Jun 2017 16:18:56 -0700 +Subject: [PATCH 2/3] sigd: Replace on_exit() API with atexit() + +on_exit is not universally available + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/sigd/atmsigd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/sigd/atmsigd.c b/src/sigd/atmsigd.c +index 52e41c7..b766606 100644 +--- a/src/sigd/atmsigd.c ++++ b/src/sigd/atmsigd.c +@@ -517,7 +517,7 @@ int main(int argc,char **argv) + exit(0); + } + } +- (void) on_exit(trace_on_exit,NULL); ++ atexit(trace_on_exit); + poll_loop(); + close_all(); + for (sig = entities; sig; sig = sig->next) stop_saal(&sig->saal); +-- +2.13.1 + diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch new file mode 100644 index 00000000000..0302286dc0e --- /dev/null +++ b/meta-networking/recipes-support/linux-atm/linux-atm/0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch @@ -0,0 +1,37 @@ +From fe954b2fb17d813aaab3e926cee76144314a115a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 Jun 2017 16:22:55 -0700 +Subject: [PATCH 3/3] mpoad: Drop old hack to compile with very old glibc + +Use poll.h instead of sys/poll.h + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/mpoad/io.c | 9 +-------- + 1 file changed, 1 insertion(+), 8 deletions(-) + +diff --git a/src/mpoad/io.c b/src/mpoad/io.c +index 69900c2..8d1433f 100644 +--- a/src/mpoad/io.c ++++ b/src/mpoad/io.c +@@ -10,14 +10,7 @@ + #include + #include + #include /* for OPEN_MAX */ +-#if __GLIBC__ >= 2 +-#include +-#else /* ugly hack to make it compile on RH 4.2 - WA */ +-#include +-#include +-#define SYS_poll 168 +-_syscall3(int,poll,struct pollfd *,ufds,unsigned int,nfds,int,timeout); +-#endif ++#include + #include + #include + #include +-- +2.13.1 + diff --git a/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb b/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb index 0a9bd8c72b8..9fce4fba639 100644 --- a/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb +++ b/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb @@ -5,9 +5,16 @@ LICENSE = "GPL-2.0 & LGPL-2.0" DEPENDS = "virtual/kernel flex flex-native" +PACKAGE_ARCH = "${MACHINE_ARCH}" + SRC_URI = "http://nchc.dl.sourceforge.net/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ file://link-with-ldflags.patch \ - file://install-from-buildir.patch" + file://install-from-buildir.patch \ + file://0001-fix-compile-error-with-linux-kernel-v4.8.patch \ + file://0001-ttcp-Add-printf-format-string.patch \ + file://0002-sigd-Replace-on_exit-API-with-atexit.patch \ + file://0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch \ +" SRC_URI[md5sum] = "d49499368c3cf15f73a05d9bce8824a8" SRC_URI[sha256sum] = "9645481a2b16476b59220aa2d6bc5bc41043f291326c9b37581018fbd16dd53a" @@ -19,4 +26,7 @@ file://COPYING.LGPL;md5=6e29c688d912da12b66b73e32b03d812" inherit autotools pkgconfig -FILES_${PN} += "${base_libdir}/firmware" +# The firmware is explicitly put under /lib when installed. +# + +FILES_${PN} += "/lib/firmware" diff --git a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.16.bb b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.16.bb deleted file mode 100644 index c07b3c6e917..00000000000 --- a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.16.bb +++ /dev/null @@ -1,62 +0,0 @@ -SUMMARY = "The Linux Kernel Stream Control Transmission Protocol (lksctp) project" -HOMEPAGE = "http://lksctp.org" -SECTION = "libs" -LICENSE = "LGPLv2.1 & GPLv2" - -LIC_FILES_CHKSUM = " \ - file://COPYING.lib;md5=0a1b79af951c42a9c8573533fbba9a92 \ - file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e \ -" - -SRC_URI = "${SOURCEFORGE_MIRROR}/lksctp/${BP}.tar.gz \ - file://run-ptest \ - file://v4test.sh \ - file://v6test.sh \ - " - -SRC_URI[md5sum] = "708bb0b5a6806ad6e8d13c55b067518e" -SRC_URI[sha256sum] = "0903dd526b7f30a89d5031aa2c82757612becc38ed7bc6e4f972f8deae351f26" - -#| arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc -march=armv5te -marm -mthumb-interwork --sysroot=/home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/qemuarm -shared -fPIC -DPIC .libs/bindx.o .libs/connectx.o .libs/peeloff.o .libs/opt_info.o .libs/addrs.o .libs/sendmsg.o .libs/recvmsg.o -march=armv5te -marm -mthumb-interwork --sysroot=/home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/qemuarm -O2 -Wl,--version-script=/home/jenkins/oe/world/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/lksctp-tools/1.0.16-r0/lksctp-tools-1.0.16/src/lib/Versions.map -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-soname -Wl,libsctp.so.1 -o .libs/libsctp.so.1.0.16 -#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.0/ld: error: symbol sctp_connectx has undefined version -#| collect2: error: ld returned 1 exit status -#| make[4]: *** [libsctp.la] Error 1 -PNBLACKLIST[lksctp-tools] ?= "${@base_contains('DISTRO_FEATURES', 'ld-is-gold', "BROKEN: fails to link against sctp_connectx symbol", '', d)}" - -S = "${WORKDIR}/${BP}" - -BBCLASSEXTEND = "native" - -inherit autotools pkgconfig binconfig ptest - -do_install_ptest () { - install -m 0755 ${WORKDIR}/v4test.sh ${D}${PTEST_PATH} - install -m 0755 ${WORKDIR}/v6test.sh ${D}${PTEST_PATH} - for testcase in `find ${B}/src/apps/.libs ${B}/src/func_tests/.libs -maxdepth 1 -type f -executable`; do - install $testcase ${D}${PTEST_PATH} - done -} - -SOLIBVERSION="${PV}" -SOLIBMAJORVERSION="1" - -PACKAGES =+ "${PN}-withsctp ${PN}-utils" - -FILES_${PN} = " \ - ${libdir}/libsctp.so.${SOLIBVERSION} \ - ${libdir}/libsctp.so.${SOLIBMAJORVERSION} \ -" - -FILES_${PN}-withsctp = " \ - ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBVERSION} \ - ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBMAJORVERSION} \ -" - -FILES_${PN}-dev += " \ - ${libdir}/libsctp.so \ - ${libdir}/lksctp-tools/libwithsctp.so \ - ${datadir}/lksctp-tools/*.c \ - ${datadir}/lksctp-tools/*.h \ -" - -FILES_${PN}-utils = "${bindir}/*" diff --git a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb new file mode 100644 index 00000000000..11c43ff0f61 --- /dev/null +++ b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb @@ -0,0 +1,65 @@ +SUMMARY = "The Linux Kernel Stream Control Transmission Protocol (lksctp) project" +HOMEPAGE = "http://lksctp.org" +SECTION = "net" +LICENSE = "LGPLv2.1 & GPLv2" + +LIC_FILES_CHKSUM = " \ + file://COPYING.lib;md5=0a1b79af951c42a9c8573533fbba9a92 \ + file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e \ +" + +SRC_URI = "${SOURCEFORGE_MIRROR}/lksctp/${BP}.tar.gz \ + file://run-ptest \ + file://v4test.sh \ + file://v6test.sh \ +" + +SRC_URI[md5sum] = "68e9b8fa4d4e331029b247b72d46d7a5" +SRC_URI[sha256sum] = "1aeb204cdb2befc94d9eb3037d1609c9d1d2cd5379d6dd2c0a8ca9b10533aa15" + +#| arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc -march=armv5te -marm -mthumb-interwork --sysroot=/home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/qemuarm -shared -fPIC -DPIC .libs/bindx.o .libs/connectx.o .libs/peeloff.o .libs/opt_info.o .libs/addrs.o .libs/sendmsg.o .libs/recvmsg.o -march=armv5te -marm -mthumb-interwork --sysroot=/home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/qemuarm -O2 -Wl,--version-script=/home/jenkins/oe/world/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/lksctp-tools/1.0.16-r0/lksctp-tools-1.0.16/src/lib/Versions.map -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-soname -Wl,libsctp.so.1 -o .libs/libsctp.so.1.0.16 +#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.0/ld: error: symbol sctp_connectx has undefined version +#| collect2: error: ld returned 1 exit status +#| make[4]: *** [libsctp.la] Error 1 +PNBLACKLIST[lksctp-tools] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "BROKEN: fails to link against sctp_connectx symbol", '', d)}" + +S = "${WORKDIR}/${BP}" + +BBCLASSEXTEND = "native" + +inherit autotools pkgconfig binconfig ptest + +do_install_ptest () { + install -m 0755 ${WORKDIR}/v4test.sh ${D}${PTEST_PATH} + install -m 0755 ${WORKDIR}/v6test.sh ${D}${PTEST_PATH} + for testcase in `find ${B}/src/apps/.libs ${B}/src/func_tests/.libs -maxdepth 1 -type f -executable`; do + install $testcase ${D}${PTEST_PATH} + done +} + +SOLIBVERSION="${PV}" +SOLIBMAJORVERSION="1" + +PACKAGES =+ "${PN}-withsctp ${PN}-utils" + +FILES_${PN} = " \ + ${libdir}/libsctp.so.${SOLIBVERSION} \ + ${libdir}/libsctp.so.${SOLIBMAJORVERSION} \ +" + +FILES_${PN}-withsctp = " \ + ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBVERSION} \ + ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBMAJORVERSION} \ +" + +FILES_${PN}-dev += " \ + ${libdir}/libsctp.so \ + ${libdir}/lksctp-tools/libwithsctp.so \ + ${datadir}/lksctp-tools/*.c \ + ${datadir}/lksctp-tools/*.h \ +" + +FILES_${PN}-utils = "${bindir}/*" + +RRECOMMENDS_${PN}-utils += "kernel-module-sctp" +RRECOMMENDS_${PN}-ptest += "kernel-module-sctp" diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-build-errors-with-clang.patch b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-build-errors-with-clang.patch new file mode 100644 index 00000000000..8e906f7ce08 --- /dev/null +++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-build-errors-with-clang.patch @@ -0,0 +1,34 @@ +From 5f9e80acb0a1ac399839bf160e43f6120c4b5128 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 18 Oct 2016 23:49:09 +0000 +Subject: [PATCH] Fix build errors with clang + +| ../../../../../../../workspace/sources/lowpan-tools/src/coordinator.c:313:50: error: format specifies type 'unsigned char' but the argument has type 'int' [-Werror,-Wformat] +| fprintf(stderr, "Opt: %c (%hhx)\n", (char)opt, opt); +| ~~~~ ^~~ +| %x +| 1 error generated. + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/coordinator.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/coordinator.c b/src/coordinator.c +index c139aae..f0de6d2 100644 +--- a/src/coordinator.c ++++ b/src/coordinator.c +@@ -310,7 +310,7 @@ int main(int argc, char **argv) + #else + opt = getopt(argc, argv, "l:f:d:m:n:i:s:p:c:hv"); + #endif +- fprintf(stderr, "Opt: %c (%hhx)\n", opt, opt); ++ fprintf(stderr, "Opt: %c (%hhx)\n", opt, (unsigned char)opt); + if (opt == -1) + break; + +-- +1.9.1 + diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch new file mode 100644 index 00000000000..1453b75d567 --- /dev/null +++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch @@ -0,0 +1,32 @@ +From a36afac485745cf980fba1809526f2025cb4d101 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 23 Apr 2017 00:16:45 -0700 +Subject: [PATCH] Remove newline from format line + +Fixes + +error: '__builtin___snprintf_chk' output truncated before the last format character [-Werror=format-truncation=] + "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", + ^ + +Signed-off-by: Khem Raj +--- + addrdb/addrdb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/addrdb/addrdb.c b/addrdb/addrdb.c +index 4bb7f79..05d53f3 100644 +--- a/addrdb/addrdb.c ++++ b/addrdb/addrdb.c +@@ -178,7 +178,7 @@ int addrdb_dump_leases(const char *lease_file) + continue; + } + snprintf(hwaddr_buf, sizeof(hwaddr_buf), +- "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", ++ "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", + lease->hwaddr[0], lease->hwaddr[1], + lease->hwaddr[2], lease->hwaddr[3], + lease->hwaddr[4], lease->hwaddr[5], +-- +2.12.2 + diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch new file mode 100644 index 00000000000..0a81a22526e --- /dev/null +++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch @@ -0,0 +1,44 @@ +From ab725a3faaeead90ae3c63cbcd370af087c413a5 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Mon, 27 Mar 2017 17:55:06 -0700 +Subject: [PATCH] addrdb/coord-config-parse.y: add missing include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The %union definition uses the time_t structure. In order to use this +structure, the header has to be included. Otherwise, the build +breaks with some C libraries, such as musl: + +In file included from coord-config-lex.l:23:0: +coord-config-parse.y:107:2: error: unknown type name ‘time_t’ + time_t timestamp; + ^ + +This patch includes using the '%code requires' directive of +Yacc. + +Signed-off-by: Thomas Petazzoni +Signed-off-by: Khem Raj +--- + addrdb/coord-config-parse.y | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/addrdb/coord-config-parse.y b/addrdb/coord-config-parse.y +index 2e10a88..85ee058 100644 +--- a/addrdb/coord-config-parse.y ++++ b/addrdb/coord-config-parse.y +@@ -102,6 +102,10 @@ + + %} + ++%code requires { ++#include ++} ++ + %union { + unsigned long number; + time_t timestamp; +-- +2.12.1 + diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch new file mode 100644 index 00000000000..68393067d0d --- /dev/null +++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch @@ -0,0 +1,27 @@ +From ad088233608ba2205511da4f270f8ba29844b84c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 8 Apr 2017 09:02:02 -0700 +Subject: [PATCH] src/iz.c: Undef dprintf before redefining + +Clang is picky and warns about macros redefinition + +Signed-off-by: Khem Raj +--- + src/iz.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/iz.c b/src/iz.c +index 32be1a8..886f0a5 100644 +--- a/src/iz.c ++++ b/src/iz.c +@@ -60,6 +60,7 @@ static int iz_seq = 0; + /* Parsed options */ + static int iz_debug = 0; + ++#undef dprintf + #define dprintf(lvl, fmt...) \ + do { \ + if (iz_debug >= lvl) \ +-- +2.12.2 + diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb b/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb index ca10262290e..be73f8ae4b4 100644 --- a/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb +++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb @@ -1,15 +1,20 @@ SUMMARY = "Utilities for managing the Linux LoWPAN stack" DESCRIPTION = "This is a set of utils to manage the Linux LoWPAN stack. \ The LoWPAN stack aims for IEEE 802.15.4-2003 (and for lesser extent IEEE 802.15.4-2006) compatibility." - +SECTION = "net" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -DEPENDS = "libnl python" +DEPENDS = "flex-native bison-native libnl python" PV = "0.3.1+git${SRCPV}" SRC_URI = "git://git.code.sf.net/p/linux-zigbee/linux-zigbee \ - file://no-help2man.patch" + file://no-help2man.patch \ + file://0001-Fix-build-errors-with-clang.patch \ + file://0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch \ + file://0001-src-iz.c-Undef-dprintf-before-redefining.patch \ + file://0001-Remove-newline-from-format-line.patch \ + " SRCREV = "38f42dbfce9e13629263db3bd3b81f14c69bb733" S = "${WORKDIR}/git" @@ -18,8 +23,10 @@ inherit autotools python-dir pkgconfig CACHED_CONFIGUREVARS += "am_cv_python_pythondir=${PYTHON_SITEPACKAGES_DIR}/lowpan-tools" +CFLAGS += "-Wno-initializer-overrides" + do_install_append() { - rmdir ${D}${localstatedir}/run + rmdir ${D}${localstatedir}/run } FILES_${PN}-dbg += "${libexecdir}/lowpan-tools/.debug/" diff --git a/meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb b/meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb index b97e9d1fc5a..a90177f19ab 100644 --- a/meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb +++ b/meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb @@ -3,7 +3,7 @@ DESCRIPTION = "A GNU/Linux utility for viewing/manipulating the MAC address of n HOMEPAGE = "http://www.alobbs.com/macchanger" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - +SECTION = "net" SRC_URI = "${GNU_MIRROR}/macchanger/${BPN}-${PV}.tar.gz" diff --git a/meta-networking/recipes-support/memcached/memcached/configure.patch b/meta-networking/recipes-support/memcached/memcached/configure.patch deleted file mode 100644 index 7001a0ed655..00000000000 --- a/meta-networking/recipes-support/memcached/memcached/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: memcached-1.4.17/configure.ac -=================================================================== ---- memcached-1.4.17.orig/configure.ac 2013-12-20 21:44:49.000000000 +0000 -+++ memcached-1.4.17/configure.ac 2014-07-18 07:17:00.593499483 +0000 -@@ -4,7 +4,7 @@ - AC_INIT(memcached, VERSION_NUMBER, memcached@googlegroups.com) - AC_CANONICAL_SYSTEM - AC_CONFIG_SRCDIR(memcached.c) --AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -+AM_INIT_AUTOMAKE([foreign]) - AM_CONFIG_HEADER(config.h) - - AC_PROG_CC diff --git a/meta-networking/recipes-support/memcached/memcached_1.4.17.bb b/meta-networking/recipes-support/memcached/memcached_1.4.17.bb deleted file mode 100644 index 4d93f041e42..00000000000 --- a/meta-networking/recipes-support/memcached/memcached_1.4.17.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "A high-performance memory object caching system" -DESCRIPTION = "\ - memcached optimizes specific high-load serving applications that are designed \ - to take advantage of its versatile no-locking memory access system. Clients \ - are available in several different programming languages, to suit the needs \ - of the specific application. Traditionally this has been used in mod_perl \ - apps to avoid storing large chunks of data in Apache memory, and to share \ - this burden across several machines." - -HOMEPAGE = "http://memcached.org/" -LICENSE = "BSD-3-Clause" - -LIC_FILES_CHKSUM = "file://COPYING;md5=7e5ded7363d335e1bb18013ca08046ff" - -inherit autotools - -DEPENDS += "libevent" -RDEPENDS_${PN} += "perl perl-module-posix perl-module-autoloader \ - perl-module-tie-hash bash \ - " - -SRC_URI = "http://www.memcached.org/files/${BP}.tar.gz \ - file://configure.patch \ - file://memcached-add-hugetlbfs-check.patch" - -# set the same COMPATIBLE_HOST as libhugetlbfs -COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64|arm).*-linux' - -SRC_URI[md5sum] = "46402dfbd7faadf6182283dbbd18b1a6" -SRC_URI[sha256sum] = "d9173ef6d99ba798c982ea4566cb4f0e64eb23859fdbf9926a89999d8cdc0458" - -python __anonymous () { - endianness = d.getVar('SITEINFO_ENDIANNESS', True) - if endianness == 'le': - d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=little") - else: - d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=big") -} - -PACKAGECONFIG ??= "" -PACKAGECONFIG[hugetlbfs] = "--enable-hugetlbfs, --disable-hugetlbfs, libhugetlbfs" - -inherit update-rc.d - -INITSCRIPT_NAME = "memcached" -INITSCRIPT_PARAMS = "defaults" - -do_install_append() { - install -D -m 755 ${S}/scripts/memcached-init ${D}${sysconfdir}/init.d/memcached - mkdir -p ${D}/usr/share/memcached/scripts - install -m 755 ${S}/scripts/memcached-tool ${D}/usr/share/memcached/scripts - install -m 755 ${S}/scripts/start-memcached ${D}/usr/share/memcached/scripts -} diff --git a/meta-networking/recipes-support/memcached/memcached_1.5.0.bb b/meta-networking/recipes-support/memcached/memcached_1.5.0.bb new file mode 100644 index 00000000000..fd3d171f0c0 --- /dev/null +++ b/meta-networking/recipes-support/memcached/memcached_1.5.0.bb @@ -0,0 +1,52 @@ +SUMMARY = "A high-performance memory object caching system" +DESCRIPTION = "\ + memcached optimizes specific high-load serving applications that are designed \ + to take advantage of its versatile no-locking memory access system. Clients \ + are available in several different programming languages, to suit the needs \ + of the specific application. Traditionally this has been used in mod_perl \ + apps to avoid storing large chunks of data in Apache memory, and to share \ + this burden across several machines." +SECTION = "web" +HOMEPAGE = "http://memcached.org/" +LICENSE = "BSD-3-Clause" + +LIC_FILES_CHKSUM = "file://COPYING;md5=7e5ded7363d335e1bb18013ca08046ff" + +inherit autotools + +DEPENDS += "libevent" +RDEPENDS_${PN} += "perl perl-module-posix perl-module-autoloader \ + perl-module-tie-hash bash \ + " + +SRC_URI = "http://www.memcached.org/files/${BP}.tar.gz \ + file://memcached-add-hugetlbfs-check.patch \ + " +SRC_URI[md5sum] = "81326513f60d7ba482f8131975cd55ae" +SRC_URI[sha256sum] = "c001f812024bb461b5e4d7d0506daab63dff9614eea26f46536c3b7e1e601c32" + +# set the same COMPATIBLE_HOST as libhugetlbfs +COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64|arm).*-linux' + +python __anonymous () { + endianness = d.getVar('SITEINFO_ENDIANNESS') + if endianness == 'le': + d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=little") + else: + d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=big") +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG[hugetlbfs] = "--enable-hugetlbfs, --disable-hugetlbfs, libhugetlbfs" + +inherit update-rc.d + +INITSCRIPT_NAME = "memcached" +INITSCRIPT_PARAMS = "defaults" + +do_install_append() { + install -D -m 755 ${S}/scripts/memcached-init ${D}${sysconfdir}/init.d/memcached + mkdir -p ${D}/usr/share/memcached/scripts + install -m 755 ${S}/scripts/memcached-tool ${D}/usr/share/memcached/scripts + install -m 755 ${S}/scripts/start-memcached ${D}/usr/share/memcached/scripts +} diff --git a/meta-networking/recipes-support/mtr/mtr_0.86.bb b/meta-networking/recipes-support/mtr/mtr_0.86.bb deleted file mode 100644 index a60bd347e70..00000000000 --- a/meta-networking/recipes-support/mtr/mtr_0.86.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Combined traceroute and ping utility" -DESCRIPTION = "mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool." -HOMEPAGE = "http://www.bitwizard.nl/mtr/" -DEPENDS = "ncurses" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ - file://mtr.c;beginline=5;endline=16;md5=af1fafbbfa1bfd48af839f4bb3221106" - -SRC_URI = "ftp://ftp.bitwizard.nl/mtr/mtr-${PV}.tar.gz" - -SRC_URI[md5sum] = "8d63592c9d4579ef20cf491b41843eb2" -SRC_URI[sha256sum] = "c5d948920b641cc35f8b380fc356ddfe07cce6a9c6474afe242fc58113f28c06" - -inherit autotools - -EXTRA_OECONF = "--without-gtk" - diff --git a/meta-networking/recipes-support/mtr/mtr_0.87.bb b/meta-networking/recipes-support/mtr/mtr_0.87.bb new file mode 100644 index 00000000000..9d3275e2d28 --- /dev/null +++ b/meta-networking/recipes-support/mtr/mtr_0.87.bb @@ -0,0 +1,27 @@ +SUMMARY = "Combined traceroute and ping utility" +DESCRIPTION = "mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool." +HOMEPAGE = "http://www.bitwizard.nl/mtr/" +SECTION = "net" +DEPENDS = "ncurses" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://ui/mtr.c;beginline=5;endline=16;md5=af1fafbbfa1bfd48af839f4bb3221106" + +PV .= "+git${SRCPV}" + +SRCREV = "e6d0a7e93129e8023654ebf58dfa8135d1b1af56" +SRC_URI = "git://github.com/traviscross/mtr" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--without-gtk" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +PACKAGES += "${PN}-bash-completions" + +FILES_${PN}-bash-completions = "${datadir}/bash-completion/" diff --git a/meta-networking/recipes-support/nbd/nbd_3.11.bb b/meta-networking/recipes-support/nbd/nbd_3.11.bb new file mode 100644 index 00000000000..2ad75bda6bc --- /dev/null +++ b/meta-networking/recipes-support/nbd/nbd_3.11.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Network Block Device" +HOMEPAGE = "http://nbd.sourceforge.net" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "glib-2.0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "73d11644a28b9f335292cdb3bdc4b74b" +SRC_URI[sha256sum] = "14420f74cb16dc609a9302ed1efd653064bed7a8357e9d73daabc33608e3f2a0" + +inherit autotools pkgconfig + +PACKAGES = "${PN}-client ${PN}-server ${PN}-dbg ${PN}-trdump ${PN}-doc" + +FILES_${PN}-client = "${sbindir}/${BPN}-client" +FILES_${PN}-server = "${bindir}/${BPN}-server" +FILES_${PN}-trdump = "${bindir}/${BPN}-trdump" diff --git a/meta-networking/recipes-support/ncp/libowfat_0.31.bb b/meta-networking/recipes-support/ncp/libowfat_0.31.bb new file mode 100644 index 00000000000..4b072f7e7d3 --- /dev/null +++ b/meta-networking/recipes-support/ncp/libowfat_0.31.bb @@ -0,0 +1,27 @@ +SUMMARY = "reimplement libdjb" +DESCRIPTION = "libowfat is a library of general purpose APIs extracted from Dan \ +Bernstein's software (libdjb), reimplemented and covered by the GNU \ +General Public License Version 2 (no later versions)." +HOMEPAGE = "http://www.fefe.de/libowfat" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" + +SRC_URI = "https://www.fefe.de/${BPN}/${BP}.tar.xz" +SRC_URI[md5sum] = "120798fab86cfd72dc6b12284d248dd0" +SRC_URI[sha256sum] = "d1e4ac1cfccbb7dc51d77d96398e6302d229ba7538158826c84cb4254c7e8a12" + +EXTRA_OEMAKE = "\ + DIET= \ + CC='${BUILD_CC} ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}' \ + CCC='${CC}' CFLAGS='${CFLAGS} -I.' CFLAGS_OPT='${CFLAGS} -I.' \ +" + +do_install() { + make install \ + DESTDIR=${D} \ + INCLUDEDIR=${includedir}/${BPN} \ + LIBDIR=${libdir} \ + MAN3DIR=${mandir}/man3 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb new file mode 100644 index 00000000000..f42223b1f8f --- /dev/null +++ b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb @@ -0,0 +1,31 @@ +SUMMARY = "a fast file copy tool for LANs" +DESCRIPTION = "ncp is a utility for copying files in a LAN. It has absolutely no \ +security or integrity checking, no throttling, no features, except \ +one: you don't have to type the coordinates of your peer." +HOMEPAGE = "http://www.fefe.de/ncp" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +DEPENDS = "libowfat" + +SRC_URI = "https://dl.fefe.de/${BP}.tar.bz2" +SRC_URI[md5sum] = "421c4855bd3148b7d0a4342942b4bf13" +SRC_URI[sha256sum] = "6cfa72edd5f7717bf7a4a93ccc74c4abd89892360e2e0bb095a73c24b9359b88" + +EXTRA_OEMAKE = "\ + DIET= \ + DEBUG=nostrip \ + CC='${CC}' CFLAGS='${CFLAGS} -I${STAGING_INCDIR}/libowfat' LDFLAGS='${LDFLAGS}' \ +" + +do_install() { + install -d -m0755 ${D}${bindir} ${D}${mandir}/man1 + + install -m0755 ncp ${D}${bindir} + ln -sf ncp ${D}${bindir}/npoll + ln -sf ncp ${D}${bindir}/npush + + install -m0644 ncp.1 npush.1 ${D}${mandir}/man1 + ln -sf npush.1 ${D}${mandir}/man1/npoll.1 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-networking/recipes-support/ndisc6/ndisc6/0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch b/meta-networking/recipes-support/ndisc6/ndisc6/0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch new file mode 100644 index 00000000000..eeae5326d90 --- /dev/null +++ b/meta-networking/recipes-support/ndisc6/ndisc6/0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch @@ -0,0 +1,34 @@ +From 1ee2c998933c4a3d7e7b386352cbdb12f270774c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 6 Sep 2017 20:50:48 -0700 +Subject: [PATCH] autogen: Do not symlink gettext.h from build host + +This will create a dependency on build host having gettext +installed which may not always be the case. + +Signed-off-by: Khem Raj +--- +Upstream-Status: Inappropriate [Cross-compile specific] + autogen.sh | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/autogen.sh b/autogen.sh +index 3371011..bbc7add 100755 +--- a/autogen.sh ++++ b/autogen.sh +@@ -25,12 +25,6 @@ echo "Running autoreconf ..." + autoreconf -sfi + unlink po/Makevars.template + +-for d in /usr /usr/local /opt/gettext /usr/pkg $HOME ; do +- if test -f $d/share/gettext/gettext.h ; then +- ln -sf $d/share/gettext/gettext.h include/gettext.h +- fi +-done +- + test -f "include/gettext.h" || { + echo "Error: can't find convenience C header." + echo "Please put a link to it by hand as include/gettext.h" +-- +2.14.1 + diff --git a/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch b/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch new file mode 100644 index 00000000000..dc58b5b79ee --- /dev/null +++ b/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch @@ -0,0 +1,124 @@ +From 3a7d5396e633e6c02a4583be7faf3d79d0d33748 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 31 Aug 2017 11:14:41 -0700 +Subject: [PATCH 1/2] replace VLAIS with malloc/free pair + +Makes it compatible with non-gnu compilers + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + src/trace-icmp.c | 7 +++++-- + src/trace-tcp.c | 14 ++++++++++---- + src/trace-udp.c | 7 +++++-- + 3 files changed, 20 insertions(+), 8 deletions(-) + +diff --git a/src/trace-icmp.c b/src/trace-icmp.c +index 842938e..c76cb54 100644 +--- a/src/trace-icmp.c ++++ b/src/trace-icmp.c +@@ -43,16 +43,19 @@ send_echo_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port) + struct + { + struct icmp6_hdr ih; +- uint8_t payload[plen - sizeof (struct icmp6_hdr)]; ++ uint8_t *payload; + } packet; + memset (&packet, 0, plen); ++ packet.payload = malloc(plen - sizeof (struct icmp6_hdr)); + + packet.ih.icmp6_type = ICMP6_ECHO_REQUEST; + packet.ih.icmp6_id = htons (getpid ()); + packet.ih.icmp6_seq = htons ((ttl << 8) | (n & 0xff)); + (void)port; + +- return send_payload (fd, &packet.ih, plen, ttl); ++ ssize_t ret = send_payload (fd, &packet.ih, plen, ttl); ++ free(packet.payload); ++ return ret; + } + + +diff --git a/src/trace-tcp.c b/src/trace-tcp.c +index 940f918..62d22ff 100644 +--- a/src/trace-tcp.c ++++ b/src/trace-tcp.c +@@ -54,10 +54,11 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port) + struct + { + struct tcphdr th; +- uint8_t payload[plen - sizeof (struct tcphdr)]; ++ uint8_t *payload; + } packet; + + memset (&packet, 0, sizeof (packet)); ++ packet.payload = malloc(plen - sizeof (struct tcphdr)); + packet.th.th_sport = sport; + packet.th.th_dport = port; + packet.th.th_seq = htonl ((ttl << 24) | (n << 16) | (uint16_t)getpid ()); +@@ -65,7 +66,9 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port) + packet.th.th_flags = TH_SYN | (ecn ? (TH_ECE | TH_CWR) : 0); + packet.th.th_win = htons (TCP_WINDOW); + +- return send_payload (fd, &packet, plen, ttl); ++ ssize_t ret = send_payload (fd, &packet, plen, ttl); ++ free(packet.payload); ++ return ret; + } + + +@@ -131,10 +134,11 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port) + struct + { + struct tcphdr th; +- uint8_t payload[plen - sizeof (struct tcphdr)]; ++ uint8_t *payload; + } packet; + + memset (&packet, 0, sizeof (packet)); ++ packet.payload = malloc(plen - sizeof (struct tcphdr)); + packet.th.th_sport = sport; + packet.th.th_dport = port; + packet.th.th_ack = htonl ((ttl << 24) | (n << 16) | (uint16_t)getpid ()); +@@ -142,7 +146,9 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port) + packet.th.th_flags = TH_ACK; + packet.th.th_win = htons (TCP_WINDOW); + +- return send_payload (fd, &packet, plen, ttl); ++ ssize_t ret = send_payload (fd, &packet, plen, ttl); ++ free(packet.payload); ++ return ret; + } + + +diff --git a/src/trace-udp.c b/src/trace-udp.c +index 4adde6b..a6cbb07 100644 +--- a/src/trace-udp.c ++++ b/src/trace-udp.c +@@ -46,9 +46,10 @@ send_udp_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port) + struct + { + struct udphdr uh; +- uint8_t payload[plen - sizeof (struct udphdr)]; ++ uint8_t *payload; + } packet; + memset (&packet, 0, plen); ++ packet.payload = malloc(plen - sizeof (struct udphdr)); + + (void)n; + packet.uh.uh_sport = sport; +@@ -61,7 +62,9 @@ send_udp_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port) + /*if (plen > sizeof (struct udphdr)) + packet.payload[0] = (uint8_t)ttl;*/ + +- return send_payload (fd, &packet, plen, ttl); ++ ssize_t ret = send_payload (fd, &packet, plen, ttl); ++ free(packet.payload); ++ return ret; + } + + +-- +2.14.1 + diff --git a/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch b/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch new file mode 100644 index 00000000000..3cc2ba80c2e --- /dev/null +++ b/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch @@ -0,0 +1,30 @@ +From 2a50154fbce38fd36be7e14f5cd4a8b03c65c72f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 31 Aug 2017 11:15:37 -0700 +Subject: [PATCH 2/2] Do not undef _GNU_SOURCE + +There are functions from tcp.h which are under _GNU_SOURCE +in musl + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + src/trace-tcp.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/trace-tcp.c b/src/trace-tcp.c +index 62d22ff..380008e 100644 +--- a/src/trace-tcp.c ++++ b/src/trace-tcp.c +@@ -21,7 +21,6 @@ + # include + #endif + +-#undef _GNU_SOURCE + #define _DEFAULT_SOURCE 1 + + #include +-- +2.14.1 + diff --git a/meta-networking/recipes-support/ndisc6/ndisc6_1.0.2.bb b/meta-networking/recipes-support/ndisc6/ndisc6_1.0.2.bb deleted file mode 100644 index a0e37e17a68..00000000000 --- a/meta-networking/recipes-support/ndisc6/ndisc6_1.0.2.bb +++ /dev/null @@ -1,59 +0,0 @@ -SECTION = "console/network" -DESCRIPTION = "This package includes some useful diagnostics tools for \ -IPv6 networks, including ndisc6, rdisc6, tcptraceroute6 and traceroute6." -SECTION = "console/network" -HOMEPAGE = "http://www.remlab.net/ndisc6/" -LICENSE = "GPL-2.0" - -# The tcptraceroute6 and tracert6 commands depend on rltraceroute6 to -# perform the actual trace operation. -RDEPENDS_${PN}-tcptraceroute6 = "${PN}-rltraceroute6" -RDEPENDS_${PN}-tracert6 = "${PN}-rltraceroute6" -RDEPENDS_${PN}-misc += "perl" - -SRC_URI = "http://www.remlab.net/files/ndisc6/ndisc6-${PV}.tar.bz2 \ -" -SRC_URI[md5sum] = "50cb4c19606cf6ff2b7388e71832f579" -SRC_URI[sha256sum] = "6acec8a0cb9efa3ac98456f46c3016aeec0598b0c7557c95242b5228ad62ca7a" - -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -inherit autotools gettext - -ALLOW_EMPTY_${PN} = "1" - -# Split into seperate packages since we normal don't want them all -# The main package is left empty and therefore not created. -PACKAGES += "${PN}-ndisc6 ${PN}-tcpspray6 ${PN}-rdisc6 \ - ${PN}-tcptraceroute6 ${PN}-rltraceroute6 \ - ${PN}-tracert6 ${PN}-rdnssd ${PN}-misc" -FILES_${PN} = "" -FILES_${PN}-ndisc6 = "${bindir}/ndisc6" -FILES_${PN}-tcpspray6 = "${bindir}/tcpspray6" -FILES_${PN}-rdisc6 = "${bindir}/rdisc6" -FILES_${PN}-tcptraceroute6 = "${bindir}/tcptraceroute6" -FILES_${PN}-rltraceroute6 = "${bindir}/rltraceroute6" -FILES_${PN}-tracert6 = "${bindir}/tracert6" -FILES_${PN}-rdnssd = "${sbindir}/rdnssd ${sysconfdir}/rdnssd" -FILES_${PN}-misc = "${bindir}/dnssort ${bindir}/name2addr ${bindir}/tcpspray ${bindir}/addr2name" - -DESCRIPTION_${PN}-ndisc6 = "ICMPv6 Neighbor Discovery tool. \ -Performs IPv6 neighbor discovery in userland. Replaces arping from the \ -IPv4 world." -DESCRIPTION_${PN}-rdisc6 = "ICMPv6 Router Discovery tool. \ -Queries IPv6 routers on the network for advertised prefixes. Can be used \ -to detect rogue IPv6 routers, monitor legitimate IPv6 routers." -DESCRITPION_${PN}-tcpspray6 = "Performs bandwidth measurements of TCP \ -sessions between the local system and a remote echo server in either IPv6 \ -or IPv4." - -DESCRITPION_${PN}-rdnssd = "Daemon to autoconfigure the list of DNS \ -servers through slateless IPv6 autoconfiguration." - -do_install_append () { - rm -rf ${D}${localstatedir} - # Enable SUID bit for applications that need it - chmod 4555 ${D}${bindir}/rltraceroute6 - chmod 4555 ${D}${bindir}/ndisc6 - chmod 4555 ${D}${bindir}/rdisc6 -} diff --git a/meta-networking/recipes-support/ndisc6/ndisc6_git.bb b/meta-networking/recipes-support/ndisc6/ndisc6_git.bb new file mode 100644 index 00000000000..48a83b8305f --- /dev/null +++ b/meta-networking/recipes-support/ndisc6/ndisc6_git.bb @@ -0,0 +1,72 @@ +DESCRIPTION = "This package includes some useful diagnostics tools for \ +IPv6 networks, including ndisc6, rdisc6, tcptraceroute6 and traceroute6." +SECTION = "net" +HOMEPAGE = "http://www.remlab.net/ndisc6/" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +PV = "1.0.4+git${SRCPV}" +SRCREV = "4c794b5512d23c649def1f94a684225dcbb6ac3e" +SRC_URI = "git://git.remlab.net/git/ndisc6.git;protocol=http \ + file://0001-replace-VLAIS-with-malloc-free-pair.patch \ + file://0002-Do-not-undef-_GNU_SOURCE.patch \ + file://0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools gettext + +EXTRA_OECONF += "PERL=${USRBINPATH}/perl" + +LDFLAGS += "-fuse-ld=gold" +TOOLCHAIN = "gcc" + +do_configure_prepend() { + cp ${STAGING_DATADIR_NATIVE}/gettext/gettext.h ${S}/include + ${S}/autogen.sh +} + +do_install_append () { + rm -rf ${D}${localstatedir} + # Enable SUID bit for applications that need it + chmod 4555 ${D}${bindir}/rltraceroute6 + chmod 4555 ${D}${bindir}/ndisc6 + chmod 4555 ${D}${bindir}/rdisc6 +} +ALLOW_EMPTY_${PN} = "1" + +# Split into seperate packages since we normal don't want them all +# The main package is left empty and therefore not created. +PACKAGES += "${PN}-ndisc6 ${PN}-tcpspray6 ${PN}-rdisc6 \ + ${PN}-tcptraceroute6 ${PN}-rltraceroute6 \ + ${PN}-tracert6 ${PN}-rdnssd ${PN}-misc" +FILES_${PN} = "" +FILES_${PN}-ndisc6 = "${bindir}/ndisc6" +FILES_${PN}-tcpspray6 = "${bindir}/tcpspray6" +FILES_${PN}-rdisc6 = "${bindir}/rdisc6" +FILES_${PN}-tcptraceroute6 = "${bindir}/tcptraceroute6" +FILES_${PN}-rltraceroute6 = "${bindir}/rltraceroute6" +FILES_${PN}-tracert6 = "${bindir}/tracert6" +FILES_${PN}-rdnssd = "${sbindir}/rdnssd ${sysconfdir}/rdnssd" +FILES_${PN}-misc = "${bindir}/dnssort ${bindir}/name2addr ${bindir}/tcpspray ${bindir}/addr2name" + +DESCRIPTION_${PN}-ndisc6 = "ICMPv6 Neighbor Discovery tool. \ +Performs IPv6 neighbor discovery in userland. Replaces arping from the \ +IPv4 world." +DESCRIPTION_${PN}-rdisc6 = "ICMPv6 Router Discovery tool. \ +Queries IPv6 routers on the network for advertised prefixes. Can be used \ +to detect rogue IPv6 routers, monitor legitimate IPv6 routers." +DESCRITPION_${PN}-tcpspray6 = "Performs bandwidth measurements of TCP \ +sessions between the local system and a remote echo server in either IPv6 \ +or IPv4." + +DESCRITPION_${PN}-rdnssd = "Daemon to autoconfigure the list of DNS \ +servers through slateless IPv6 autoconfiguration." + +# The tcptraceroute6 and tracert6 commands depend on rltraceroute6 to +# perform the actual trace operation. +RDEPENDS_${PN}-tcptraceroute6 = "${PN}-rltraceroute6" +RDEPENDS_${PN}-tracert6 = "${PN}-rltraceroute6" +RDEPENDS_${PN}-misc += "perl" + diff --git a/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch b/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch new file mode 100644 index 00000000000..0966b658088 --- /dev/null +++ b/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch @@ -0,0 +1,379 @@ +From ccd166b73eaae4dd1e1785c63ceb9b303568ed46 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 21 Mar 2017 11:30:49 -0700 +Subject: [PATCH] bundle own base64 encode/decode functions + +Not all libc implementations provide it. +as an aside libresolv is no longer needed + +Signed-off-by: Khem Raj +--- + Makefile | 4 +- + base64.c | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + netcat.c | 2 + + socks.c | 3 + + 4 files changed, 320 insertions(+), 2 deletions(-) + create mode 100644 base64.c + +Index: netcat-openbsd-1.105/Makefile +=================================================================== +--- netcat-openbsd-1.105.orig/Makefile ++++ netcat-openbsd-1.105/Makefile +@@ -1,9 +1,9 @@ + # $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $ + + PROG= nc +-SRCS= netcat.c atomicio.c socks.c ++SRCS= netcat.c atomicio.c socks.c base64.c + +-LIBS= `pkg-config --libs libbsd` -lresolv ++LIBS= `pkg-config --libs libbsd` + OBJS= $(SRCS:.c=.o) + CFLAGS= -g -O2 + LDFLAGS= -Wl,--no-add-needed +Index: netcat-openbsd-1.105/base64.c +=================================================================== +--- /dev/null ++++ netcat-openbsd-1.105/base64.c +@@ -0,0 +1,313 @@ ++/* ++ * Copyright (c) 1996-1999 by Internet Software Consortium. ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS ++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE ++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++/* ++ * Portions Copyright (c) 1995 by International Business Machines, Inc. ++ * ++ * International Business Machines, Inc. (hereinafter called IBM) grants ++ * permission under its copyrights to use, copy, modify, and distribute this ++ * Software with or without fee, provided that the above copyright notice and ++ * all paragraphs of this notice appear in all copies, and that the name of IBM ++ * not be used in connection with the marketing of any product incorporating ++ * the Software or modifications thereof, without specific, written prior ++ * permission. ++ * ++ * To the extent it has a right to do so, IBM grants an immunity from suit ++ * under its patents, if any, for the use, sale or manufacture of products to ++ * the extent that such products are used for performing Domain Name System ++ * dynamic updates in TCP/IP networks by means of the Software. No immunity is ++ * granted for any product per se or for any other function of any product. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES, ++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, ++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN ++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES. ++ */ ++ ++#if !defined(LINT) && !defined(CODECENTER) ++static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $"; ++#endif /* not lint */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#define Assert(Cond) if (!(Cond)) abort() ++ ++static const char Base64[] = ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ++static const char Pad64 = '='; ++ ++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt) ++ The following encoding technique is taken from RFC 1521 by Borenstein ++ and Freed. It is reproduced here in a slightly edited form for ++ convenience. ++ ++ A 65-character subset of US-ASCII is used, enabling 6 bits to be ++ represented per printable character. (The extra 65th character, "=", ++ is used to signify a special processing function.) ++ ++ The encoding process represents 24-bit groups of input bits as output ++ strings of 4 encoded characters. Proceeding from left to right, a ++ 24-bit input group is formed by concatenating 3 8-bit input groups. ++ These 24 bits are then treated as 4 concatenated 6-bit groups, each ++ of which is translated into a single digit in the base64 alphabet. ++ ++ Each 6-bit group is used as an index into an array of 64 printable ++ characters. The character referenced by the index is placed in the ++ output string. ++ ++ Table 1: The Base64 Alphabet ++ ++ Value Encoding Value Encoding Value Encoding Value Encoding ++ 0 A 17 R 34 i 51 z ++ 1 B 18 S 35 j 52 0 ++ 2 C 19 T 36 k 53 1 ++ 3 D 20 U 37 l 54 2 ++ 4 E 21 V 38 m 55 3 ++ 5 F 22 W 39 n 56 4 ++ 6 G 23 X 40 o 57 5 ++ 7 H 24 Y 41 p 58 6 ++ 8 I 25 Z 42 q 59 7 ++ 9 J 26 a 43 r 60 8 ++ 10 K 27 b 44 s 61 9 ++ 11 L 28 c 45 t 62 + ++ 12 M 29 d 46 u 63 / ++ 13 N 30 e 47 v ++ 14 O 31 f 48 w (pad) = ++ 15 P 32 g 49 x ++ 16 Q 33 h 50 y ++ ++ Special processing is performed if fewer than 24 bits are available ++ at the end of the data being encoded. A full encoding quantum is ++ always completed at the end of a quantity. When fewer than 24 input ++ bits are available in an input group, zero bits are added (on the ++ right) to form an integral number of 6-bit groups. Padding at the ++ end of the data is performed using the '=' character. ++ ++ Since all base64 input is an integral number of octets, only the ++ ------------------------------------------------- ++ following cases can arise: ++ ++ (1) the final quantum of encoding input is an integral ++ multiple of 24 bits; here, the final unit of encoded ++ output will be an integral multiple of 4 characters ++ with no "=" padding, ++ (2) the final quantum of encoding input is exactly 8 bits; ++ here, the final unit of encoded output will be two ++ characters followed by two "=" padding characters, or ++ (3) the final quantum of encoding input is exactly 16 bits; ++ here, the final unit of encoded output will be three ++ characters followed by one "=" padding character. ++ */ ++ ++int ++b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) { ++ size_t datalength = 0; ++ u_char input[3]; ++ u_char output[4]; ++ size_t i; ++ ++ while (2 < srclength) { ++ input[0] = *src++; ++ input[1] = *src++; ++ input[2] = *src++; ++ srclength -= 3; ++ ++ output[0] = input[0] >> 2; ++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); ++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); ++ output[3] = input[2] & 0x3f; ++ Assert(output[0] < 64); ++ Assert(output[1] < 64); ++ Assert(output[2] < 64); ++ Assert(output[3] < 64); ++ ++ if (datalength + 4 > targsize) ++ return (-1); ++ target[datalength++] = Base64[output[0]]; ++ target[datalength++] = Base64[output[1]]; ++ target[datalength++] = Base64[output[2]]; ++ target[datalength++] = Base64[output[3]]; ++ } ++ ++ /* Now we worry about padding. */ ++ if (0 != srclength) { ++ /* Get what's left. */ ++ input[0] = input[1] = input[2] = '\0'; ++ for (i = 0; i < srclength; i++) ++ input[i] = *src++; ++ ++ output[0] = input[0] >> 2; ++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); ++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); ++ Assert(output[0] < 64); ++ Assert(output[1] < 64); ++ Assert(output[2] < 64); ++ ++ if (datalength + 4 > targsize) ++ return (-1); ++ target[datalength++] = Base64[output[0]]; ++ target[datalength++] = Base64[output[1]]; ++ if (srclength == 1) ++ target[datalength++] = Pad64; ++ else ++ target[datalength++] = Base64[output[2]]; ++ target[datalength++] = Pad64; ++ } ++ if (datalength >= targsize) ++ return (-1); ++ target[datalength] = '\0'; /* Returned value doesn't count \0. */ ++ return (datalength); ++} ++//libresolv_hidden_def (b64_ntop) ++ ++/* skips all whitespace anywhere. ++ converts characters, four at a time, starting at (or after) ++ src from base - 64 numbers into three 8 bit bytes in the target area. ++ it returns the number of data bytes stored at the target, or -1 on error. ++ */ ++ ++int ++b64_pton(char const *src, u_char *target, size_t targsize) { ++ int tarindex, state, ch; ++ char *pos; ++ ++ state = 0; ++ tarindex = 0; ++ ++ while ((ch = *src++) != '\0') { ++ if (isspace(ch)) /* Skip whitespace anywhere. */ ++ continue; ++ ++ if (ch == Pad64) ++ break; ++ ++ pos = strchr(Base64, ch); ++ if (pos == 0) /* A non-base64 character. */ ++ return (-1); ++ ++ switch (state) { ++ case 0: ++ if (target) { ++ if ((size_t)tarindex >= targsize) ++ return (-1); ++ target[tarindex] = (pos - Base64) << 2; ++ } ++ state = 1; ++ break; ++ case 1: ++ if (target) { ++ if ((size_t)tarindex + 1 >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64) >> 4; ++ target[tarindex+1] = ((pos - Base64) & 0x0f) ++ << 4 ; ++ } ++ tarindex++; ++ state = 2; ++ break; ++ case 2: ++ if (target) { ++ if ((size_t)tarindex + 1 >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64) >> 2; ++ target[tarindex+1] = ((pos - Base64) & 0x03) ++ << 6; ++ } ++ tarindex++; ++ state = 3; ++ break; ++ case 3: ++ if (target) { ++ if ((size_t)tarindex >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64); ++ } ++ tarindex++; ++ state = 0; ++ break; ++ default: ++ abort(); ++ } ++ } ++ ++ /* ++ * We are done decoding Base-64 chars. Let's see if we ended ++ * on a byte boundary, and/or with erroneous trailing characters. ++ */ ++ ++ if (ch == Pad64) { /* We got a pad char. */ ++ ch = *src++; /* Skip it, get next. */ ++ switch (state) { ++ case 0: /* Invalid = in first position */ ++ case 1: /* Invalid = in second position */ ++ return (-1); ++ ++ case 2: /* Valid, means one byte of info */ ++ /* Skip any number of spaces. */ ++ for ((void)NULL; ch != '\0'; ch = *src++) ++ if (!isspace(ch)) ++ break; ++ /* Make sure there is another trailing = sign. */ ++ if (ch != Pad64) ++ return (-1); ++ ch = *src++; /* Skip the = */ ++ /* Fall through to "single trailing =" case. */ ++ /* FALLTHROUGH */ ++ ++ case 3: /* Valid, means two bytes of info */ ++ /* ++ * We know this char is an =. Is there anything but ++ * whitespace after it? ++ */ ++ for ((void)NULL; ch != '\0'; ch = *src++) ++ if (!isspace(ch)) ++ return (-1); ++ ++ /* ++ * Now make sure for cases 2 and 3 that the "extra" ++ * bits that slopped past the last full byte were ++ * zeros. If we don't check them, they become a ++ * subliminal channel. ++ */ ++ if (target && target[tarindex] != 0) ++ return (-1); ++ } ++ } else { ++ /* ++ * We ended by seeing the end of the string. Make sure we ++ * have no partial bytes lying around. ++ */ ++ if (state != 0) ++ return (-1); ++ } ++ ++ return (tarindex); ++} +Index: netcat-openbsd-1.105/netcat.c +=================================================================== +--- netcat-openbsd-1.105.orig/netcat.c ++++ netcat-openbsd-1.105/netcat.c +@@ -169,6 +169,9 @@ static int connect_with_timeout(int fd, + socklen_t salen, int ctimeout); + static void quit(); + ++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); ++int b64_pton(char const *src, u_char *target, size_t targsize); ++ + int + main(int argc, char *argv[]) + { +Index: netcat-openbsd-1.105/socks.c +=================================================================== +--- netcat-openbsd-1.105.orig/socks.c ++++ netcat-openbsd-1.105/socks.c +@@ -53,6 +53,9 @@ + #define SOCKS_DOMAIN 3 + #define SOCKS_IPV6 4 + ++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); ++int b64_pton(char const *src, u_char *target, size_t targsize); ++ + int remote_connect(const char *, const char *, struct addrinfo); + int socks_connect(const char *, const char *, struct addrinfo, + const char *, const char *, struct addrinfo, int, diff --git a/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb b/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb index 4237dc4c519..9d7420f8c29 100644 --- a/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb +++ b/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb @@ -2,26 +2,42 @@ require netcat.inc SUMMARY = "OpenBSD Netcat" HOMEPAGE = "http://ftp.debian.org" LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee6bbaacb5db5f2973818f0902c3ae6f" DEPENDS += "glib-2.0 libbsd" +do_patch[depends] = "quilt-native:do_populate_sysroot" SRC_URI = "${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \ - ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz;name=netcat-patch" + ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz;name=netcat-patch;subdir=${BP} \ + file://0001-bundle-own-base64-encode-decode-functions.patch \ + " SRC_URI[netcat.md5sum] = "7e67b22f1ad41a1b7effbb59ff28fca1" SRC_URI[netcat.sha256sum] = "40653fe66c1516876b61b07e093d826e2a5463c5d994f1b7e6ce328f3edb211e" SRC_URI[netcat-patch.md5sum] = "e914f8eb7eda5c75c679dd77787ac76b" SRC_URI[netcat-patch.sha256sum] = "eee759327ffea293e81d0dde67921b7fcfcad279ffd7a2c9d037bbc8f882b363" -S = "${WORKDIR}/${BPN}-${PV}" +inherit pkgconfig + +EXTRA_OEMAKE += "'LDFLAGS=${LDFLAGS}'" do_configure[noexec] = "1" netcat_do_patch() { cd ${S} - while read line; do patch -p1 < ${WORKDIR}/debian/patches/$line; done < ${WORKDIR}/debian/patches/series + quilt pop -a || true + if [ -d ${S}/.pc-netcat ]; then + rm -rf ${S}/.pc + mv ${S}/.pc-netcat ${S}/.pc + QUILT_PATCHES=${S}/debian/patches quilt pop -a + rm -rf ${S}/.pc ${S}/debian + fi + QUILT_PATCHES=${S}/debian/patches quilt push -a + mv ${S}/.pc ${S}/.pc-netcat } +do_unpack[cleandirs] += "${S}" + python do_patch() { bb.build.exec_func('netcat_do_patch', d) bb.build.exec_func('patch_do_patch', d) @@ -37,4 +53,4 @@ do_install() { install -d ${D}${bindir} install -m 755 ${S}/nc ${D}${bindir}/nc.${BPN} } -ALTERNATIVE_PRIORITY = "50" +ALTERNATIVE_PRIORITY = "60" diff --git a/meta-networking/recipes-support/netcat/netcat.inc b/meta-networking/recipes-support/netcat/netcat.inc index 6c815d97e6d..15441645b09 100644 --- a/meta-networking/recipes-support/netcat/netcat.inc +++ b/meta-networking/recipes-support/netcat/netcat.inc @@ -1,5 +1,15 @@ -SECTION = "console/network" -inherit update-alternatives gettext +SUMMARY = "GNU Netcat" +HOMEPAGE = "http://netcat.sourceforge.net" +DESCRIPTION = "A simple Unix utility which reads and writes data across network \ +connections using TCP or UDP protocol. It is designed to be a reliable \ +'back-end' tool that can be used directly or easily driven by other \ +programs and scripts. At the same time it is a feature-rich network \ +debugging and exploration tool, since it can create almost any kind of \ +connection you would need and has several interesting built-in \ +capabilities." + +SECTION = "net" +inherit update-alternatives gettext pkgconfig ALTERNATIVE_${PN} = "nc" diff --git a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb index 8710c364623..d961af542c7 100644 --- a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb +++ b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb @@ -1,6 +1,4 @@ require netcat.inc -SUMMARY = "GNU Netcat" -HOMEPAGE = "http://netcat.sourceforge.net" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" diff --git a/meta-networking/recipes-support/netcf/gnulib_git.bb b/meta-networking/recipes-support/netcf/gnulib_git.bb deleted file mode 100644 index 1da6c83ede1..00000000000 --- a/meta-networking/recipes-support/netcf/gnulib_git.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "The GNU portability library" -DESCRIPTION = "A collection of software subroutines which are designed to \ -be usable on many operating systems. The goal of the project \ -is to make it easy for free software authors to make their \ -software run on many operating systems. Since source is designed \ -to be copied from gnulib, it is not a library per-se, as much \ -as a collection of portable idioms to be used in other projects." - -HOMEPAGE = "http://www.gnu.org/software/gnulib/" -SECTION = "libs" -LICENSE = "LGPLv2+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=e4cf3810f33a067ea7ccd2cd889fed21" -SRCREV = "24379a9217fa4bd62685795aaaa010fd90ced9e3" -SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \ -" -S = "${WORKDIR}/git" - -do_install () { - cd ${S} - git checkout master - git clone ${S} ${D}/${datadir}/gnulib -} - -do_patch[noexec] = "1" -do_configure[noexec] = "1" -do_compile[noexec] = "1" -do_package[noexec] = "1" -do_packagedata[noexec] = "1" -do_package_write_ipk[noexec] = "1" -do_package_write_deb[noexec] = "1" -do_package_write_rpm[noexec] = "1" diff --git a/meta-networking/recipes-support/netcf/netcf_0.2.8.bb b/meta-networking/recipes-support/netcf/netcf_0.2.8.bb new file mode 100644 index 00000000000..9a6f60ea226 --- /dev/null +++ b/meta-networking/recipes-support/netcf/netcf_0.2.8.bb @@ -0,0 +1,71 @@ +SUMMARY = "netcf" +DESCRIPTION = "netcf is a cross-platform network configuration library." +HOMEPAGE = "https://pagure.io/netcf" +SECTION = "libs" +LICENSE = "LGPLv2.1" + +LIC_FILES_CHKSUM = "file://COPYING;md5=fb919cc88dbe06ec0b0bd50e001ccf1f" + +SRCREV = "2c5d4255857531bc09d91dcd02e86545f29004d4" +PV .= "+git${SRCPV}" + +SRC_URI = "git://pagure.io/netcf.git;protocol=https \ +" + +DEPENDS += "augeas libnl libxslt libxml2 gnulib" + +S = "${WORKDIR}/git" + +inherit gettext autotools pkgconfig systemd + +EXTRA_OECONF_append_class-target = " --with-driver=redhat" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "--with-sysinit=systemd,--with-sysinit=initscripts," + +EXTRA_AUTORECONF += "-I ${S}/gnulib/m4" + +do_configure_prepend() { + currdir=`pwd` + cd ${S} + + # avoid bootstrap cloning gnulib on every configure + # the dir starts out empty from the pkg, but unconditionally blow it + # away so if we reconfigure due to gnulib sysroot sig changes, we will + # get the newer gnulib content into the build here. + rm -rf ${S}/.gnulib + cp -rf ${STAGING_DATADIR}/gnulib ${S}/.gnulib + + # --force to avoid errors on reconfigure e.g if recipes changed we depend on + # | bootstrap: running: libtoolize --quiet + # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite + # | ... + ./bootstrap --force --no-git --gnulib-srcdir=.gnulib + + cd $currdir +} + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + if [ -d "${D}${libdir}/systemd/system" ]; then + if [ "${systemd_unitdir}" != "${libdir}/systemd" ] ; then + mv ${D}${libdir}/systemd/system/* ${D}${systemd_unitdir}/system/ + rm -rf ${D}${libdir}/systemd/ + fi + elif [ "${systemd_unitdir}" != "${nonarch_libdir}/systemd" ] ; then + mv ${D}${nonarch_libdir}/systemd/system/* ${D}${systemd_unitdir}/system/ + rm -rf ${D}${nonarch_libdir}/systemd/ + fi + else + mv ${D}${sysconfdir}/rc.d/init.d/ ${D}${sysconfdir} + rm -rf ${D}${sysconfdir}/rc.d/ + fi +} + +FILES_${PN} += " \ + ${libdir} \ + ${nonarch_libdir} \ + " + +SYSTEMD_SERVICE_${PN} = "netcf-transaction.service" diff --git a/meta-networking/recipes-support/netcf/netcf_git.bb b/meta-networking/recipes-support/netcf/netcf_git.bb deleted file mode 100644 index 979e45b6077..00000000000 --- a/meta-networking/recipes-support/netcf/netcf_git.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "netcf" -DESCRIPTION = "netcf is a cross-platform network configuration library." -HOMEPAGE = "https://fedorahosted.org/netcf/" -SECTION = "console/tools" -LICENSE = "LGPLv2.1" - -LIC_FILES_CHKSUM = "file://COPYING;md5=bbb461211a33b134d42ed5ee802b37ff" - -SRCREV = "b8a19dc860b38c97c42115d8a559b78853452a4b" -PV = "0.2.3+git${SRCPV}" - -SRC_URI = "git://git.fedorahosted.org/netcf.git;protocol=git \ -" - -DEPENDS += "augeas libnl libxslt libxml2 gnulib" - -S = "${WORKDIR}/git" - -inherit gettext autotools-brokensep pkgconfig - -EXTRA_OECONF_append_class-target = " --with-driver=redhat" -do_configure_prepend() { - cd ${S} - rm -f .gitmodules - ./bootstrap --gnulib-srcdir=${STAGING_DATADIR}/gnulib -} - -do_install_append() { - mv ${D}${sysconfdir}/rc.d/init.d/ ${D}${sysconfdir} - rm -rf ${D}${sysconfdir}/rc.d/ -} diff --git a/meta-networking/recipes-support/netperf/netperf_2.6.0.bb b/meta-networking/recipes-support/netperf/netperf_2.6.0.bb deleted file mode 100644 index ffa77d7bb9a..00000000000 --- a/meta-networking/recipes-support/netperf/netperf_2.6.0.bb +++ /dev/null @@ -1,66 +0,0 @@ -SUMMARY = "A networking benchmarking tool" -DESCRIPTION = "Network performance benchmark including tests for TCP, UDP, sockets, ATM and more." -SECTION = "console/network" -HOMEPAGE = "http://www.netperf.org/" -LICENSE = "netperf" -LICENSE_FLAGS = "non-commercial" - - -SRC_URI="ftp://ftp.netperf.org/netperf/netperf-${PV}.tar.bz2 \ - file://cpu_set.patch \ - file://vfork.patch \ - file://init" -SRC_URI[md5sum] = "9654ffdfd4c4f2c93ce3733cd9ed9236" -SRC_URI[sha256sum] = "cd8dac710d4273d29f70e8dbd09353a6362ac58a11926e0822233c0cb230323a" - -LIC_FILES_CHKSUM = "file://COPYING;md5=a0ab17253e7a3f318da85382c7d5d5d6" - -inherit update-rc.d autotools - -S = "${WORKDIR}/netperf-${PV}" - -# cpu_set.patch plus _GNU_SOURCE makes src/netlib.c compile with CPU_ macros -CFLAGS_append = " -DDO_UNIX -DDO_IPV6 -D_GNU_SOURCE" - -# set the "_FILE_OFFSET_BITS" preprocessor symbol to 64 to support files -# larger than 2GB -CFLAGS_append = "${@base_contains('DISTRO_FEATURES', 'largefile', \ - ' -D_FILE_OFFSET_BITS=64', '', d)}" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[sctp] = "--enable-sctp,--disable-sctp,lksctp-tools," - -# autotools.bbclass attends to include m4 files with path depth <= 2 by -# "find ${S} -maxdepth 2 -name \*.m4", so move m4 files from m4/m4. -do_configure_prepend() { - test -d ${S}/m4/m4 && mv -f ${S}/m4/m4 ${S}/m4-files -} - -do_install() { - sed -e 's#/usr/sbin/#${sbindir}/#g' -i ${WORKDIR}/init - - install -d ${D}${sbindir} ${D}${bindir} ${D}${sysconfdir}/init.d - install -m 4755 src/netperf ${D}${bindir} - install -m 4755 src/netserver ${D}${sbindir} - install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/netperf - - # man - install -d ${D}${mandir}/man1/ - install -m 0644 ${S}/doc/netserver.man ${D}${mandir}/man1/netserver.1 - install -m 0644 ${S}/doc/netperf.man ${D}${mandir}/man1/netperf.1 - - # move scripts to examples directory - install -d ${D}${docdir}/netperf/examples - install -m 0644 ${S}/doc/examples/*_script ${D}${docdir}/netperf/examples/ - - # docs .. - install -m 0644 ${S}/COPYING ${D}${docdir}/netperf - install -m 0644 ${S}/Release_Notes ${D}${docdir}/netperf - install -m 0644 ${S}/README ${D}${docdir}/netperf - install -m 0644 ${S}/doc/netperf_old.ps ${D}${docdir}/netperf -} - -RRECOMMENDS_${PN} += "${@base_contains('PACKAGECONFIG', 'sctp', 'kernel-module-sctp', '', d)}" - -INITSCRIPT_NAME="netperf" -INITSCRIPT_PARAMS="defaults" diff --git a/meta-networking/recipes-support/netperf/netperf_git.bb b/meta-networking/recipes-support/netperf/netperf_git.bb new file mode 100644 index 00000000000..f0e0f9cf1f0 --- /dev/null +++ b/meta-networking/recipes-support/netperf/netperf_git.bb @@ -0,0 +1,66 @@ +SUMMARY = "A networking benchmarking tool" +DESCRIPTION = "Network performance benchmark including tests for TCP, UDP, sockets, ATM and more." +SECTION = "net" +HOMEPAGE = "http://www.netperf.org/" +LICENSE = "netperf" +LICENSE_FLAGS = "non-commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=a0ab17253e7a3f318da85382c7d5d5d6" + +PV = "2.7.0+git${SRCPV}" + +SRC_URI="git://github.com/HewlettPackard/netperf.git \ + file://cpu_set.patch \ + file://vfork.patch \ + file://init" + +SRCREV = "f482bab49fcedee46fc5b755da127f608325cd13" + +S = "${WORKDIR}/git" + +inherit update-rc.d autotools + +# cpu_set.patch plus _GNU_SOURCE makes src/netlib.c compile with CPU_ macros +CFLAGS_append = " -DDO_UNIX -DDO_IPV6 -D_GNU_SOURCE" + +# set the "_FILE_OFFSET_BITS" preprocessor symbol to 64 to support files +# larger than 2GB +CFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', \ + ' -D_FILE_OFFSET_BITS=64', '', d)}" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[sctp] = "--enable-sctp,--disable-sctp,lksctp-tools," + +# autotools.bbclass attends to include m4 files with path depth <= 2 by +# "find ${S} -maxdepth 2 -name \*.m4", so move m4 files from m4/m4. +do_configure_prepend() { + test -d ${S}/m4/m4 && mv -f ${S}/m4/m4 ${S}/m4-files +} + +do_install() { + sed -e 's#/usr/sbin/#${sbindir}/#g' -i ${WORKDIR}/init + + install -d ${D}${sbindir} ${D}${bindir} ${D}${sysconfdir}/init.d + install -m 4755 src/netperf ${D}${bindir} + install -m 4755 src/netserver ${D}${sbindir} + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/netperf + + # man + install -d ${D}${mandir}/man1/ + install -m 0644 ${S}/doc/netserver.man ${D}${mandir}/man1/netserver.1 + install -m 0644 ${S}/doc/netperf.man ${D}${mandir}/man1/netperf.1 + + # move scripts to examples directory + install -d ${D}${docdir}/netperf/examples + install -m 0644 ${S}/doc/examples/*_script ${D}${docdir}/netperf/examples/ + + # docs .. + install -m 0644 ${S}/COPYING ${D}${docdir}/netperf + install -m 0644 ${S}/Release_Notes ${D}${docdir}/netperf + install -m 0644 ${S}/README ${D}${docdir}/netperf + install -m 0644 ${S}/doc/netperf_old.ps ${D}${docdir}/netperf +} + +RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'sctp', 'kernel-module-sctp', '', d)}" + +INITSCRIPT_NAME="netperf" +INITSCRIPT_PARAMS="defaults" diff --git a/meta-networking/recipes-support/nis/files/ypbind-yocto.init b/meta-networking/recipes-support/nis/files/ypbind-yocto.init deleted file mode 100644 index 5f50a530e75..00000000000 --- a/meta-networking/recipes-support/nis/files/ypbind-yocto.init +++ /dev/null @@ -1,99 +0,0 @@ -#! /bin/sh -# Copyright (c) 2004 Author: Thorsten Kukuk -# -# /etc/init.d/ypbind -# -# and symbolic its link -# -# /usr/sbin/rcypbind -# -# System startup script for the ypbind daemon -# -### BEGIN INIT INFO -# Provides: ypbind -# Required-Start: $remote_fs $portmap -# Should-Start: ypserv slpd -# Required-Stop: portmap -# Default-Start: 3 5 -# Default-Stop: 0 1 2 6 -# Short-Description: Start ypbind (necessary for a NIS client) -# Description: ypbind finds the server for NIS domains and maintains -# the NIS binding information. -### END INIT INFO - -YPBIND_BIN=/usr/sbin/ypbind -pidfile=/var/run/ypbind.pid - -[ -f /etc/default/ypbind ] && . /etc/default/ypbind - -case "$1" in - start) - echo -n "Starting ypbind" - ## If the domainname is not set, skip starting of ypbind - ## and return with "program not configured" - /bin/ypdomainname &> /dev/null - if [ $? -ne 0 -o -z "`/bin/ypdomainname 2>/dev/null`" ]; then - if [ -f /etc/defaultdomain ]; then - XDOMAINNAME=`cat /etc/defaultdomain` - /bin/ypdomainname "$XDOMAINNAME" - fi - /bin/ypdomainname &> /dev/null - if [ $? -ne 0 -o -z "`/bin/ypdomainname 2>/dev/null`" ]; then - # Tell the user this has skipped - echo -n " . . . . . . . . . . No domainname set" - # service is not configured - exit 1 - fi - fi - - ## If we don't have a /etc/yp.conf file, skip starting of - ## ypbind and return with "program not configured" - ## if you add the -broadcast Option later, comment this out. - if [ ! -f /etc/yp.conf -a "$YPBIND_BROADCAST" != "yes" ] ; then - # Tell the user this has skipped - echo -n " . . . . . . . . . . ${attn}/etc/yp.conf not found${norm}" - # service is not configured - exit 1 - fi - - # evaluate the OPTIONS for ypbind-mt - OPTIONS="" - test "$YPBIND_LOCAL_ONLY" = "yes" && OPTIONS="-local-only $OPTIONS" - test "$YPBIND_BROADCAST" = "yes" && OPTIONS="-broadcast $OPTIONS" - test "$YPBIND_BROKEN_SERVER" = "yes" && OPTIONS="-broken-server $OPTIONS" - - start-stop-daemon --start --quiet --pidfile $pidfile --exec $YPBIND_BIN -- $YPBIND_OPTIONS $OPTIONS - if [ $? -eq 0 ]; then - notfound=1 - for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do - ypwhich &>/dev/null && { notfound=0 ; break; }; - echo -n " ." - sleep 1; - done - if [ $notfound -eq 1 ]; then - echo -n " ${warn}No NIS server found${norm}"; - fi - else - exit 1 - fi - ;; - stop) - echo -n "Shutting down ypbind" - start-stop-daemon --stop --quiet --pidfile $pidfile - # Remove static data, else glibc will continue to use NIS - rm -f /var/yp/binding/* /var/run/ypbind.pid - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - reload | force-reload) - echo -n "Reload service ypbind" - start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile - ;; - *) - echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" - exit 1 - ;; -esac diff --git a/meta-networking/recipes-support/nis/files/ypbind.init b/meta-networking/recipes-support/nis/files/ypbind.init new file mode 100644 index 00000000000..669c19ca08d --- /dev/null +++ b/meta-networking/recipes-support/nis/files/ypbind.init @@ -0,0 +1,107 @@ +#! /bin/sh +# Copyright (c) 2004 Author: Thorsten Kukuk +# +# /etc/init.d/ypbind +# +# and symbolic its link +# +# /usr/sbin/rcypbind +# +# System startup script for the ypbind daemon +# +### BEGIN INIT INFO +# Provides: ypbind +# Required-Start: $remote_fs $portmap +# Should-Start: ypserv slpd +# Required-Stop: portmap +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Start ypbind (necessary for a NIS client) +# Description: ypbind finds the server for NIS domains and maintains +# the NIS binding information. +### END INIT INFO + +# Need to use status function +. /etc/init.d/functions + +YPBIND_BIN=/usr/sbin/ypbind +pidfile=/var/run/ypbind.pid +YPDOMAINNAME_bin=/usr/bin/ypdomainname + +[ -f /etc/default/ypbind ] && . /etc/default/ypbind + +case "$1" in + start) + echo -n "Starting ypbind" + ## If the domainname is not set, skip starting of ypbind + ## and return with "program not configured" + $YPDOMAINNAME_bin >/dev/null 2>&1 + if [ $? -ne 0 -o -z "`$YPDOMAINNAME_bin 2>/dev/null`" ]; then + if [ -f /etc/defaultdomain ]; then + XDOMAINNAME=`cat /etc/defaultdomain` + $YPDOMAINNAME_bin "$XDOMAINNAME" + fi + $YPDOMAINNAME_bin >/dev/null 2>&1 + if [ $? -ne 0 -o -z "`$YPDOMAINNAME_bin 2>/dev/null`" ]; then + # Tell the user this has skipped + echo -n " . . . . . . . . . . No domainname set" + # service is not configured + exit 1 + fi + fi + + ## If we don't have a /etc/yp.conf file, skip starting of + ## ypbind and return with "program not configured" + ## if you add the -broadcast Option later, comment this out. + if [ ! -f /etc/yp.conf -a "$YPBIND_BROADCAST" != "yes" ] ; then + # Tell the user this has skipped + echo -n " . . . . . . . . . . ${attn}/etc/yp.conf not found${norm}" + # service is not configured + exit 1 + fi + + # evaluate the OPTIONS for ypbind-mt + OPTIONS="" + test "$YPBIND_LOCAL_ONLY" = "yes" && OPTIONS="-local-only $OPTIONS" + test "$YPBIND_BROADCAST" = "yes" && OPTIONS="-broadcast $OPTIONS" + test "$YPBIND_BROKEN_SERVER" = "yes" && OPTIONS="-broken-server $OPTIONS" + + start-stop-daemon --start --quiet --pidfile $pidfile --exec $YPBIND_BIN -- $YPBIND_OPTIONS $OPTIONS + if [ $? -eq 0 ]; then + notfound=1 + for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do + ypwhich >/dev/null 2>&1 && { notfound=0 ; break; }; + echo -n " ." + sleep 1; + done + if [ $notfound -eq 1 ]; then + echo -n " ${warn}No NIS server found${norm}"; + fi + else + exit 1 + fi + ;; + stop) + echo -n "Shutting down ypbind" + start-stop-daemon --stop --quiet --pidfile $pidfile + # Remove static data, else glibc will continue to use NIS + rm -f /var/yp/binding/* /var/run/ypbind.pid + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + reload | force-reload) + echo -n "Reload service ypbind" + start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile + ;; + status) + echo -n "Checking for ypbind: " + status $YPBIND_BIN + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac diff --git a/meta-networking/recipes-support/nis/nis.inc b/meta-networking/recipes-support/nis/nis.inc index eaff9496156..e027a1c6f80 100644 --- a/meta-networking/recipes-support/nis/nis.inc +++ b/meta-networking/recipes-support/nis/nis.inc @@ -5,7 +5,7 @@ # the rpcsvc functionality is not present in uclibc DESCRIPTION = "NIS Server and Tools" HOMEPAGE = "http://www.linux-nis.org/nis/" -SECTION = "console/network" +SECTION = "net" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" @@ -25,7 +25,7 @@ do_install() { # so force the package to be skipped here (this will cause a # 'nothing provides' error) python () { - os = bb.data.getVar("TARGET_OS", d, 1) + os = d.getVar("TARGET_OS", True) if os == "linux-uclibc": raise bb.parse.SkipPackage("NIS functionality requires rpcsvc/yp.h, uClibC does not provide this") } diff --git a/meta-networking/recipes-support/nis/yp-tools/0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch b/meta-networking/recipes-support/nis/yp-tools/0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch new file mode 100644 index 00000000000..3d4d4f278d4 --- /dev/null +++ b/meta-networking/recipes-support/nis/yp-tools/0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch @@ -0,0 +1,28 @@ +From 420cb6927553bbca5b49b7681cf208e6df6e4d7c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 8 Sep 2017 08:42:45 -0700 +Subject: [PATCH 1/2] ypbind3_binding_dup.c: Include string.h for strdup + declaration + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + lib/ypbind3_binding_dup.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/ypbind3_binding_dup.c b/lib/ypbind3_binding_dup.c +index ce4aadf..8199c0b 100644 +--- a/lib/ypbind3_binding_dup.c ++++ b/lib/ypbind3_binding_dup.c +@@ -19,6 +19,7 @@ + + #if defined(HAVE_YPBIND3) + ++#include + #include + #include "internal.h" + +-- +2.14.1 + diff --git a/meta-networking/recipes-support/nis/yp-tools/0002-yp_dump_bindings.c-Include-string.h-for-memset.patch b/meta-networking/recipes-support/nis/yp-tools/0002-yp_dump_bindings.c-Include-string.h-for-memset.patch new file mode 100644 index 00000000000..0562e58afb8 --- /dev/null +++ b/meta-networking/recipes-support/nis/yp-tools/0002-yp_dump_bindings.c-Include-string.h-for-memset.patch @@ -0,0 +1,30 @@ +From 03ccabb6264c008430c4b1739351df5a63829f8e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 8 Sep 2017 08:52:32 -0700 +Subject: [PATCH 2/2] yp_dump_bindings.c: Include string.h for memset + +Fixes +error: implicitly declaring library function 'memset' + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + src/yp_dump_binding.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/yp_dump_binding.c b/src/yp_dump_binding.c +index a5ab920..d75e2c2 100644 +--- a/src/yp_dump_binding.c ++++ b/src/yp_dump_binding.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.14.1 + diff --git a/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch b/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch deleted file mode 100644 index 9ef569f153f..00000000000 --- a/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch +++ /dev/null @@ -1,110 +0,0 @@ -From a1ef10d63b0ea34c788d5432e94c72b00ae55e04 Mon Sep 17 00:00:00 2001 -From: Joe MacDonald -Date: Fri, 27 Feb 2015 12:04:10 -0500 -Subject: [PATCH] ipv4/ipv6: Provide an in-place version of mapv4v6addr.h - -mapv4v6addr.h isn't always available, depending on your build, but -nis-hosts.c only needs it for a single, inline function. So drop a copy -here rather than playing games with the include path that would -potentially lead to cross-compilation issues. - -Upstream-status: Inappropriate [embedded specific] - -Signed-off-by: Joe MacDonald ---- - nss_nis6/mapv4v6addr.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ - nss_nis6/nis-hosts.c | 2 +- - 2 files changed, 70 insertions(+), 1 deletion(-) - create mode 100644 nss_nis6/mapv4v6addr.h - -diff --git a/nss_nis6/mapv4v6addr.h b/nss_nis6/mapv4v6addr.h -new file mode 100644 -index 0000000..7f85f7d ---- /dev/null -+++ b/nss_nis6/mapv4v6addr.h -@@ -0,0 +1,69 @@ -+/* -+ * ++Copyright++ 1985, 1988, 1993 -+ * - -+ * Copyright (c) 1985, 1988, 1993 -+ * The Regents of the University of California. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 4. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ * - -+ * Portions Copyright (c) 1993 by Digital Equipment Corporation. -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies, and that -+ * the name of Digital Equipment Corporation not be used in advertising or -+ * publicity pertaining to distribution of the document or software without -+ * specific, written prior permission. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL -+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT -+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL -+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -+ * SOFTWARE. -+ * - -+ * --Copyright-- -+ */ -+ -+#include -+#include -+ -+static void -+map_v4v6_address (const char *src, char *dst) -+{ -+ u_char *p = (u_char *) dst; -+ int i; -+ -+ /* Move the IPv4 part to the right position. */ -+ memcpy (dst + 12, src, INADDRSZ); -+ -+ /* Mark this ipv6 addr as a mapped ipv4. */ -+ for (i = 0; i < 10; i++) -+ *p++ = 0x00; -+ *p++ = 0xff; -+ *p = 0xff; -+} -diff --git a/nss_nis6/nis-hosts.c b/nss_nis6/nis-hosts.c -index af99c74..96d8fa1 100644 ---- a/nss_nis6/nis-hosts.c -+++ b/nss_nis6/nis-hosts.c -@@ -36,7 +36,7 @@ - #include "nss-nis6.h" - - /* Get implementation for some internal functions. */ --#include -+#include "mapv4v6addr.h" - - #define ENTNAME hostent - #define DATABASE "hosts" --- -1.9.1 - diff --git a/meta-networking/recipes-support/nis/yp-tools_3.3.bb b/meta-networking/recipes-support/nis/yp-tools_3.3.bb deleted file mode 100644 index b89f0b84aae..00000000000 --- a/meta-networking/recipes-support/nis/yp-tools_3.3.bb +++ /dev/null @@ -1,48 +0,0 @@ -# This package builds tools to manage NIS -# The source package is utils/net/NIS/yp-tools -# -require nis.inc - -SUMMARY = "NIS client programs" -DESCRIPTION = " \ -Network Information Service tools. \ -This package contains ypcat, ypmatch, ypset, \ -ypwhich, yppasswd, domainname, nisdomainname \ -and ypdomainname. \ -" - -PNBLACKLIST[yp-tools] ?= "BROKEN: fails to build for qemuarm." - -SRC_URI = "http://www.linux-nis.org/download/yp-tools/${BP}.tar.bz2 \ - file://domainname.service \ - file://yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch \ -" -SRC_URI[md5sum] = "acebeecc11a73fb8097503670344834c" -SRC_URI[sha256sum] = "812be817df3d4c25813552be336c6c6ad5aedaf65611b81af3ad9f98fb3c2e50" - -DEPENDS = "libtirpc" - -inherit autotools systemd -SYSTEMD_SERVICE_${PN} = "domainname.service" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" - -CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true" - -EXTRA_OECONF = " \ - --disable-rpath \ - --libdir=${libdir}/yp-nis/ \ - --includedir=${includedir}/yp-nis/ \ - " - -FILES_${PN} += " ${libdir}/yp-nis/*.so.*.* ${libdir}/yp-nis/pkgconfig/" -FILES_${PN}-dbg += " ${libdir}/yp-nis/.debug" -FILES_${PN}-dev += " ${libdir}/yp-nis/*.so ${libdir}/yp-nis/*.so.[12] ${libdir}/yp-nis/*.la" -FILES_${PN}-staticdev += " ${libdir}/yp-nis/*.a" - -do_install_append() { - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/domainname.service ${D}${systemd_unitdir}/system -} diff --git a/meta-networking/recipes-support/nis/yp-tools_4.2.2.bb b/meta-networking/recipes-support/nis/yp-tools_4.2.2.bb new file mode 100644 index 00000000000..9ac973812c9 --- /dev/null +++ b/meta-networking/recipes-support/nis/yp-tools_4.2.2.bb @@ -0,0 +1,46 @@ +# This package builds tools to manage NIS +# The source package is utils/net/NIS/yp-tools +# +require nis.inc + +SUMMARY = "NIS client programs" +DESCRIPTION = " \ +Network Information Service tools. \ +This package contains ypcat, ypmatch, ypset, \ +ypwhich, yppasswd, domainname, nisdomainname \ +and ypdomainname. \ +" + +SRC_URI = "http://www.linux-nis.org/download/yp-tools/${BP}.tar.bz2 \ + file://domainname.service \ + file://0001-ypbind3_binding_dup.c-Include-string.h-for-strdup-de.patch \ + file://0002-yp_dump_bindings.c-Include-string.h-for-memset.patch \ + " +SRC_URI[md5sum] = "fb4a8bffb44ae5d3390351d67f320ef3" +SRC_URI[sha256sum] = "137f19a986382b275bf4a2b1a69eb26689d6f4ac056ddaa21784d6b80eb98faa" + +DEPENDS = "libtirpc libnsl2" + +inherit autotools systemd +SYSTEMD_SERVICE_${PN} = "domainname.service" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" + +CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true" + +EXTRA_OECONF = " \ + --disable-rpath --disable-domainname \ + " +CFLAGS_append_libc-musl = " -Wno-error=cpp" + +FILES_${PN} += " ${libdir}/yp-nis/*.so.*.* ${libdir}/yp-nis/pkgconfig/" +FILES_${PN}-dbg += " ${libdir}/yp-nis/.debug" +FILES_${PN}-dev += " ${libdir}/yp-nis/*.so ${libdir}/yp-nis/*.so.[12] ${libdir}/yp-nis/*.la" +FILES_${PN}-staticdev += " ${libdir}/yp-nis/*.a" + +do_install_append() { + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/domainname.service ${D}${systemd_unitdir}/system +} diff --git a/meta-networking/recipes-support/nis/ypbind-mt/0001-dns_hosts-Fix-build-with-musl.patch b/meta-networking/recipes-support/nis/ypbind-mt/0001-dns_hosts-Fix-build-with-musl.patch new file mode 100644 index 00000000000..643b0a9405a --- /dev/null +++ b/meta-networking/recipes-support/nis/ypbind-mt/0001-dns_hosts-Fix-build-with-musl.patch @@ -0,0 +1,67 @@ +From 5452961750275b1e3f7c95e9528338f0ee0357ad Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 14 Sep 2017 09:17:35 -0700 +Subject: [PATCH] dns_hosts: Fix build with musl + +Add NETDB_* defines which are not available in musl +remove need for sys/cdefs.h by remove __P +Add _GNU_SOURCE for missing u_char definition + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + lib/Makefile.am | 2 +- + lib/dns_hosts.c | 9 ++++++++- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/lib/Makefile.am b/lib/Makefile.am +index 977a8db..35cb5b3 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -8,7 +8,7 @@ + noinst_LIBRARIES = libcompat.a + noinst_HEADERS = ypbind3_binding.h + +-AM_CFLAGS = -D_REENTRANT=1 @WARNFLAGS@ ++AM_CFLAGS = -D_GNU_SOURCE -D_REENTRANT=1 @WARNFLAGS@ + AM_CPPFLAGS = -I$(srcdir) @TIRPC_CFLAGS@ @NSL_CFLAGS@ -DLOCALEDIR=\"$(localedir)\" + + libcompat_a_SOURCES = dns_hosts.c res_options.h ypbind3_binding_dup.c \ +diff --git a/lib/dns_hosts.c b/lib/dns_hosts.c +index fd421fd..6067879 100644 +--- a/lib/dns_hosts.c ++++ b/lib/dns_hosts.c +@@ -64,6 +64,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -84,6 +85,12 @@ extern struct hostent *_gethtbyaddr(const char *, int, int); + #ifndef LOG_AUTH + # define LOG_AUTH 0 + #endif ++#ifndef NETDB_SUCCESS ++# define NETDB_SUCCESS 0 ++#endif ++#ifndef NETDB_INTERNAL ++# define NETDB_INTERNAL -1 ++#endif + + #define MULTI_PTRS_ARE_ALIASES 1 /* XXX - experimental */ + +@@ -101,7 +108,7 @@ static char hostbuf[8*1024]; + static struct in_addr host_addr; + + #ifdef RESOLVSORT +-static void addrsort __P((char **, int)); ++static void addrsort (char **, int); + #endif + + #if PACKETSZ > 1024 +-- +2.14.1 + diff --git a/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb b/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb deleted file mode 100644 index d25ef5c754e..00000000000 --- a/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb +++ /dev/null @@ -1,56 +0,0 @@ -# This package builds the NIS ypbind daemon -# The source package is utils/net/NIS/ypbind-mt -# -require nis.inc - -DESCRIPTION = " \ -Multithreaded NIS bind service (ypbind-mt). \ -ypbind-mt is a complete new implementation of a NIS \ -binding daemon for Linux. It has the following \ -features. Supports ypbind protocol V1 and V2. \ -Uses threads for better response. Supports multiple \ -domain bindings. Supports /var/yp/binding/* file \ -for Linux libc 4/5 and glibc 2.x. Supports a list \ -of known secure NIS server (/etc/yp.conf) Binds to \ -the server which answered as first. \ -\ -This is the final IPv4-only version of ypbind-mt. \ -" -HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html" -DEPENDS = " \ - yp-tools \ - ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ - " -# ypbind-mt now provides all the functionality of ypbind -# and is used in place of it. -PROVIDES += "ypbind" - -SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \ - file://ypbind-yocto.init \ - file://ypbind.service \ -" -SRC_URI[md5sum] = "094088c0e282fa7f3b3dd6cc51d0a4e1" -SRC_URI[sha256sum] = "1930ce19f6ccfe10400f3497b31867f71690d2bcd3f5b575199fa915559b7746" - -inherit systemd update-rc.d - -SYSTEMD_SERVICE_${PN} = "ypbind.service" -INITSCRIPT_NAME = "ypbind" -INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ." - -CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true" - -do_install_append () { - install -d ${D}${sysconfdir}/init.d - install -d ${D}${sysconfdir}/rcS.d - - install -m 0755 ${WORKDIR}/ypbind-yocto.init ${D}${sysconfdir}/init.d/ypbind - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system -} - - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb b/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb deleted file mode 100644 index 4f8bf4853fc..00000000000 --- a/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb +++ /dev/null @@ -1,53 +0,0 @@ -# This package builds the NIS ypbind daemon -# The source package is utils/net/NIS/ypbind-mt -# -require nis.inc - -DESCRIPTION = " \ -Multithreaded NIS bind service (ypbind-mt). \ -ypbind-mt is a complete new implementation of a NIS \ -binding daemon for Linux. It has the following \ -features. Supports ypbind protocol V1 and V2. \ -Uses threads for better response. Supports multiple \ -domain bindings. Supports /var/yp/binding/* file \ -for Linux libc 4/5 and glibc 2.x. Supports a list \ -of known secure NIS server (/etc/yp.conf) Binds to \ -the server which answered as first. \ -" -HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html" -DEPENDS = "yp-tools" -PROVIDES += "ypbind" - -PNBLACKLIST[ypbind-mt] ?= "BROKEN: Depends on broken yp-tools" - -SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \ - file://ypbind-yocto.init \ - file://ypbind.service \ -" -SRC_URI[md5sum] = "54e2040d8266ae7d302d081ca310c8a8" -SRC_URI[sha256sum] = "dc2f7d97c94dcab0acfdcd115cd8b464eb8c427e4bb0fe68404ae7465f517cd3" - -inherit systemd update-rc.d - -SYSTEMD_SERVICE_${PN} = "ypbind.service" -INITSCRIPT_NAME = "ypbind" -INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ." - -CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true" - -EXTRA_OECONF = "PKG_CONFIG_PATH='${STAGING_LIBDIR}/yp-nis/pkgconfig/'" - -do_install_append () { - install -d ${D}${sysconfdir}/init.d - install -d ${D}${sysconfdir}/rcS.d - - install -m 0755 ${WORKDIR}/ypbind-yocto.init ${D}${sysconfdir}/init.d/ypbind - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system -} - - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb b/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb new file mode 100644 index 00000000000..9822f455ec2 --- /dev/null +++ b/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb @@ -0,0 +1,62 @@ +# This package builds the NIS ypbind daemon +# The source package is utils/net/NIS/ypbind-mt +# +require nis.inc + +DESCRIPTION = " \ +Multithreaded NIS bind service (ypbind-mt). \ +ypbind-mt is a complete new implementation of a NIS \ +binding daemon for Linux. It has the following \ +features. Supports ypbind protocol V1 and V2. \ +Uses threads for better response. Supports multiple \ +domain bindings. Supports /var/yp/binding/* file \ +for Linux libc 4/5 and glibc 2.x. Supports a list \ +of known secure NIS server (/etc/yp.conf) Binds to \ +the server which answered as first. \ +\ +This is the final IPv4-only version of ypbind-mt. \ +" +HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html" +DEPENDS = " \ + yp-tools \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + " +DEPENDS_append_libc-musl = " bsd-headers nss" +RDEPENDS_${PN} += "yp-tools" + +# ypbind-mt now provides all the functionality of ypbind +# and is used in place of it. +PROVIDES += "ypbind" + +SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \ + file://ypbind.init \ + file://ypbind.service \ + file://0001-dns_hosts-Fix-build-with-musl.patch \ + " +SRC_URI[md5sum] = "1aeccd0d11c064d5d59c56941bca682b" +SRC_URI[sha256sum] = "a2e1fa8fc992a12b289c229e00e38c20d59070c3bcf08babf40c692515c340e0" + +inherit systemd update-rc.d + +SYSTEMD_SERVICE_${PN} = "ypbind.service" +INITSCRIPT_NAME = "ypbind" +INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ." + +CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true" + +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/nss3" + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/rcS.d + + install -m 0755 ${WORKDIR}/ypbind.init ${D}${sysconfdir}/init.d/ypbind + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system +} + + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-networking/recipes-support/ntimed/ntimed/use-ldflags.patch b/meta-networking/recipes-support/ntimed/ntimed/use-ldflags.patch new file mode 100644 index 00000000000..87a7778d987 --- /dev/null +++ b/meta-networking/recipes-support/ntimed/ntimed/use-ldflags.patch @@ -0,0 +1,16 @@ +Obey LDFLAGS. + +Signed-off-by: Christopher Larson +Upstream-Status: Pending + +--- Ntimed.orig/configure 2015-05-30 11:57:59.927796993 -0700 ++++ Ntimed/configure 2015-05-30 11:58:26.143948894 -0700 +@@ -142,7 +142,7 @@ + + echo + echo "ntimed-client: ${l}" +- echo " \${CC} \${CFLAGS} -o ntimed-client ${l} -lm" ++ echo " \${CC} \${CFLAGS} -o ntimed-client ${l} \${LDFLAGS} -lm" + echo + echo "clean:" + echo " rm -f ${l} ntimed-client" diff --git a/meta-networking/recipes-support/ntimed/ntimed_git.bb b/meta-networking/recipes-support/ntimed/ntimed_git.bb new file mode 100644 index 00000000000..527ea33b559 --- /dev/null +++ b/meta-networking/recipes-support/ntimed/ntimed_git.bb @@ -0,0 +1,40 @@ +SUMMARY = "Network time synchronization software, NTPD replacement" +DESCRIPTION = "This is a preview/early-access/alpha/buzzword-of-the-times \ +release of a new FOSS project written to gradually take over the world of \ +networked timekeeping." +HOMEPAGE = "https://github.com/bsdphk/Ntimed" +SECTION = "net" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://main.c;startline=2;endline=24;md5=eda11d21005319bb76cbb6f911f0f66d" + +SRC_URI = "git://github.com/bsdphk/Ntimed \ + file://use-ldflags.patch" + +PV = "0.0+git${SRCPV}" +SRCREV = "db0abbb4c80f2ecef6bc5d9639bca5bea28532a2" + +S = "${WORKDIR}/git" + +# use adjtimex on musl +CFLAGS_append_libc-musl = " -Dntp_adjtime=adjtimex" + +EXTRA_OEMAKE = "\ + 'CC=${CC}' \ + 'CFLAGS=${CFLAGS}' \ + 'LDFLAGS=${LDFLAGS}' \ +" + +do_configure () { + sh ${S}/configure +} + +do_install () { + install -D -m 0755 ntimed-client ${D}${sbindir}/ntimed-client +} + +ALLOW_EMPTY_${PN} = "1" +RDEPENDS_${PN} += "ntimed-client" + +PACKAGE_BEFORE_PN += "ntimed-client" +FILES_ntimed-client = "${sbindir}/ntimed-client" diff --git a/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch b/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch new file mode 100644 index 00000000000..81ffeec21ba --- /dev/null +++ b/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch @@ -0,0 +1,26 @@ +From 6543f3e2d5fe214e2fc6c050289bf1ae73b18724 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 30 Aug 2017 13:56:24 -0700 +Subject: [PATCH] nDPI: Include sys/types.h + +Needed for uint_t types + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + nDPI/src/include/ipq_api.h | 1 + + 1 file changed, 1 insertion(+) + +Index: ntop-5.0.1/nDPI/src/include/ipq_api.h +=================================================================== +--- ntop-5.0.1.orig/nDPI/src/include/ipq_api.h ++++ ntop-5.0.1/nDPI/src/include/ipq_api.h +@@ -24,6 +24,7 @@ + #ifndef __IPOQUE_API_INCLUDE_FILE__ + #define __IPOQUE_API_INCLUDE_FILE__ + ++#include + + #if defined(HAVE_NTOP) && defined(WIN32) + #include diff --git a/meta-networking/recipes-support/ntop/ntop/ntop.service b/meta-networking/recipes-support/ntop/ntop/ntop.service new file mode 100644 index 00000000000..1ead2a0c5f2 --- /dev/null +++ b/meta-networking/recipes-support/ntop/ntop/ntop.service @@ -0,0 +1,15 @@ +[Unit] +Description=A network traffic probe similar to the UNIX top command +Requires=network.target + +ConditionPathExists=@SYSCONFDIR@/ntop.conf +After=syslog.target network.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@LIBEXECDIR@/ntop-helper start +ExecStop=@LIBEXECDIR@/ntop-helper stop + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch b/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch new file mode 100644 index 00000000000..392cb082b70 --- /dev/null +++ b/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch @@ -0,0 +1,164 @@ +1)add --with-pcap-config option to use libpcap's pcap-config +2)add AC_CHECK_LIB if user didn't specify PCAP_ROOT and pcap-config + put it before host check to make cross-compiling easier. + pcap doesn't need extra include and libs so it is fine. +3)remove old rrd configure code but use pkg-config to config rrd + rrdtool should have the pkg-config file installed. +4)fix python-config +5)change AC_TRY_RUN to AC_COMPILE_IFELSE for pthread_rwlock_t checking +6)fix a net-snmp-config bug + +Upstream-Status: Pending + +Signed-off-by: Yao Zhao +--- +diff --git a/configure.in b/configure.in +index 0c7c0a5..cad40be 100644 +--- a/configure.in ++++ b/configure.in +@@ -230,14 +230,14 @@ dnl> + AC_ARG_WITH(void, + [ +-External-source-locations:-------------------------------------------------+]) + +-AC_ARG_WITH( rrd-home, +- [ --with-rrd-home=DIR Usually /usr/local/rrdtool-1.2.x], +- RRD_HOME="$withval", +- RRD_HOME=/usr/local/rrdtool-1.2.19) + AC_ARG_WITH( pcap-root, + [ --with-pcap-root=DIR LBNL pcap located in DIR], + PCAP_ROOT="$withval", + PCAP_ROOT=) ++AC_ARG_WITH( pcap-config, ++ [ --with-pcap-config=path/pcap-config where to find pcap-config], ++ PCAP_CONFIG="$withval", ++ PCAP_CONFIG=) + AC_ARG_WITH( gdbm-root, + [ --with-gdbm-root=DIR gdbm located in DIR], + GDBM_DIRECTORY="$withval", +@@ -556,6 +556,7 @@ if test ".${PCAPRING_DIR}" != .; then + else + + TMP_ROOT=${HOME}/PF_RING/userland/libpcap/ ++FOUND_PCAP=1 + if test ".${PCAP_ROOT}" == . && + test -d ${TMP_ROOT} && + test -r ${TMP_ROOT}/libpcap.a; then +@@ -563,6 +564,18 @@ if test ".${PCAP_ROOT}" == . && + CORELIBS="${CORELIBS} -L${TMP_ROOT} -L${HOME}/PF_RING/userland/lib -lpfring -lpcap " + INCS="${INCS} -I ${PCAP_ROOT}" + AC_MSG_RESULT([found in $PCAP_ROOT]) ++elif test -n "${PCAP_CONFIG}" && test -x "${PCAP_CONFIG}"; then ++ CORELIBS="${CORELIBS} $(${PCAP_CONFIG} --libs)" ++ INCS="${INCS} $(${PCAP_CONFIG} --cflags)" ++ AC_DEFINE_UNQUOTED(HAVE_LIBPCAP, 1, [have libpcap ]) ++ AC_MSG_RESULT([found pcap-config: $PCAP_CONFIG, libs:$(${PCAP_CONFIG} --libs) cflags:$(${PCAP_CONFIG} --cflags)]) ++else ++ AC_CHECK_LIB(pcap, pcap_lookupdev, , ++ [FOUND_PCAP=]) ++fi ++ ++if test -n "$FOUND_PCAP"; then ++ : + elif test ".${PCAP_ROOT}" != .; then + if test -d $PCAP_ROOT && + test -r $PCAP_ROOT/lib/libpcap.a && +@@ -880,44 +893,11 @@ AC_CHECK_LIB([z], [zlibVersion], [], [ + exit -1 + ]) + +-# RRD +-if test -d "$RRD_HOME"; then +- AC_MSG_RESULT(checking for RRD home... yes) +-else +- RRD_HOME=/usr/local/rrdtool +- if test -d "$RRD_HOME"; then +- AC_MSG_RESULT(Checking rrdtool in $RRD_HOME) +- else +- RRD_HOME=/usr/local +- fi +-fi +- +-RRD_LIB="-L${RRD_HOME}/lib -lrrd_th" +- +-if test -f "$RRD_HOME/lib/librrd_th.so"; then +- AC_MSG_RESULT(checking for rrdtool... yes) +-else +- if test -f "$RRD_HOME/lib/librrd_th.dylib"; then # OSX +- AC_MSG_RESULT(checking for rrdtool... yes) +- else +- if test -f "$RRD_HOME/lib/librrd_th.a"; then +- AC_MSG_RESULT(checking for rrdtool... yes) +- else +- AC_CHECK_LIB([rrd_th], [main]) +- if test ".${ac_cv_lib_rrd_th_main}" != ".yes"; then +- AC_MSG_ERROR(Unable to find RRD at $RRD_HOME: please use --with-rrd-home=DIR); +- AC_MSG_ERROR(RRD source can be downloaded from http://www.rrdtool.org/); +- else +- RRD_LIB= +- fi +- fi +- fi +-fi +- +-RRD_INC= +-if test -d "${RRD_HOME}/include"; then +- RRD_INC="-I${RRD_HOME}/include" +-fi ++PKG_CHECK_MODULES( [RRD], [librrd] ) ++AC_SUBST(RRD_CFLAGS) ++AC_SUBST(RRD_LIBS) ++RRD_INC=$RRD_FLAGS ++RRD_LIB=$RRD_LIBS + + dnl> The failed recheck stuff below is courtesy of Chris Turbeville [turbo@verio.net] + dnl> Chris developed this for Solaris 9, confirming work I had done earlier for FreeBSD +@@ -1041,7 +1021,7 @@ AC_CHECK_HEADERS([sched.h sys/sched.h]) + AC_CHECK_HEADERS([pthread.h]) + + AC_MSG_CHECKING([if r/w locks are supported]) +-AC_TRY_RUN([ ++AC_COMPILE_IFELSE([ + #include + + int main() +@@ -1443,15 +1423,15 @@ dnl> NET-SNMP + dnl> + if test ".${ac_disable_snmp}" != ".yes"; then + AC_CHECK_TOOL(NETSNMP, net-snmp-config) +- if test "x$ac_cv_prog_ac_ct_NETSNMP" = "xnet-snmp-config"; then ++ if test -n "$NETSNMP"; then + AC_DEFINE_UNQUOTED(HAVE_SNMP, 1, [SNMP is supported]) +- SNMPLIBS="`net-snmp-config --libs`" ++ SNMPLIBS="`$NETSNMP --libs`" + SNMPLIBS="`echo ${SNMPLIBS}|sed -e s,'-R../lib',,g`" + echo "net-snmp libs: ${SNMPLIBS}" + LIBS="${LIBS} ${SNMPLIBS}" + dnl remove unecessary path + LIBS=`echo ${LIBS}|sed -e s,'-R../lib',,g` +- INCS="${INCS} `net-snmp-config --cflags`" ++ INCS="${INCS} `$NETSNMP --cflags`" + else + AC_MSG_RESULT(NETSNMP is not present: SNMP support is disabled) + fi +@@ -1464,10 +1444,9 @@ SAVED_LIBS=$LIBS + dnl> + dnl> PYTHON + dnl> +- AC_CHECK_TOOL(PYTHON, python-config) +- PYTHON_CONFIG="" ++ AC_CHECK_TOOL(PYTHON_CONFIG, python-config) + +- if test "x$ac_cv_prog_ac_ct_PYTHON" != "xpython-config"; then ++ if test -z "$PYTHON_CONFIG"; then + if test -f "/etc/debian_version"; then + AC_MSG_RESULT(Please install python-dev and rerun configure) + exit 1 +@@ -1481,8 +1460,6 @@ dnl> + PYTHON_CONFIG="python-config" + fi + fi +- else +- PYTHON_CONFIG="python-config" + fi + + if test "x$PYTHON_CONFIG" != "x"; then diff --git a/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch b/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch new file mode 100644 index 00000000000..269138df93a --- /dev/null +++ b/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch @@ -0,0 +1,21 @@ +Check net-snmp-config's existence in case user specified the +ac_cv_prog_NETSNMP to avoid HAVE_SNMP defined if the specified +net-snmp-config doesn't exist. + +Upstream-Status: Inappropriate [Embedded specific] + +Signed-off-by: Yao Zhao +--- +diff --git a/configure.in b/configure.in +index 6f3e88f..8ddf017 100755 +--- a/configure.in ++++ b/configure.in +@@ -1423,7 +1423,7 @@ dnl> NET-SNMP + dnl> + if test ".${ac_disable_snmp}" != ".yes"; then + AC_CHECK_TOOL(NETSNMP, net-snmp-config) +- if test -n "$NETSNMP"; then ++ if test -n "$NETSNMP" -a -e "$NETSNMP"; then + AC_DEFINE_UNQUOTED(HAVE_SNMP, 1, [SNMP is supported]) + SNMPLIBS="`$NETSNMP --libs`" + SNMPLIBS="`echo ${SNMPLIBS}|sed -e s,'-R../lib',,g`" diff --git a/meta-networking/recipes-support/ntop/ntop/ntop_init.patch b/meta-networking/recipes-support/ntop/ntop/ntop_init.patch new file mode 100644 index 00000000000..e7684c1b4cc --- /dev/null +++ b/meta-networking/recipes-support/ntop/ntop/ntop_init.patch @@ -0,0 +1,228 @@ +Modify ntop.init to WRLinux 5.0 style. + +Fix a small problem that when ntop not running, +/etc/init.d/ntop stop will return 1 + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Yao Zhao +--- + packages/RedHat/ntop.init | 102 +++++++++----------------------------------- + 1 files changed, 21 insertions(+), 81 deletions(-) + +diff --git a/packages/RedHat/ntop.init b/packages/RedHat/ntop.init +index 40d49f1..a189c59 100755 +--- a/packages/RedHat/ntop.init ++++ b/packages/RedHat/ntop.init +@@ -10,19 +10,9 @@ + # You have set the admin password - read docs/1STRUN.txt + # You have created /etc/ntop.conf with appropriate parameters. + +-# To identify an interface to ntop, use the following flags +-# in /etc/sysconfig/network-scripts/ifcfg-ethx +- +-# NTOP="yes" <--- means for ntop to use this interface +-# NTOPCONFIG="yes" <--- means for ntop to configure this interface +- + # Note that if you give a -i parameter in either /etc/ntop.conf or + # the command line, the scan is NOT performed. + +-# However, when it comes to the configuration step, with NTOPCONFIG="yes" +-# the interface is configured regardless of how the interface list was +-# specified. +- + # + # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + # +@@ -107,11 +97,7 @@ ntopusesyslog="local3" + invoked=$0 + + # Source function library. +-. /etc/rc.d/init.d/functions +- +-# Source networking configuration. +-. /etc/sysconfig/network +- ++. /etc/init.d/functions + + # Basic sanity checks... + if ! [ -x $prog ]; then +@@ -124,16 +110,6 @@ if ! [ -x $prog ]; then + exit 1 + fi + +-if [ ${NETWORKING} = "no" ]; then +- echo "" +- echo "ERROR -" +- echo " Networking is not up!" +- echo "" +- echo "Aborting..." +- echo "" +- exit 1 +-fi +- + if ! [ -f ${conf} ]; then + echo "" + echo "ERROR -" +@@ -180,8 +156,8 @@ fi + if [ "${debug}" = "y" ]; then echo "DEBUG: parm file temp is ${parmfile}"; fi + + cmd=`echo \ +- @${conf} \ + -i tbd \ ++ @${conf} \ + $extra $@` + + echo ${cmd} | awk ' \ +@@ -305,42 +281,6 @@ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Configuration + + # Build list of interfaces, e.g eth0 eth1 eth1:1 + # (Yeah, we'll have to convert that to eth0,eth1,eth1:1 later +-if [ ".${ntopinterface}" = ".tbd" ]; then +- +- ntopinterface="" +- iflist=`ip link show | \ +- awk '/^[0-9]*:\ eth/ { printf("%s ", substr($2, 1, length($2)-1)) }'` +- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Scanning all interfaces $iflist" +- if [ "${debug}" = "y" ]; then echo "DEBUG: Interface candidates are ${iflist}"; fi +- +- for eth in $iflist; do +- +- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp]=['\"]?[Yy][Ee][Ss]['\"]?" \ +- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then +- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntop=yes, skipping" +- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth not ntop=yes"; fi +- continue +- fi +- +- ntopinterface="${ntopinterface} $eth" +- +- ip=`ip addr show $eth | \ +- awk '/inet/ { printf("%s", substr($2, 1, index($2, "/")-1)) }'` +- +- if [ ".$ip" = "." ]; then +- is="is unnumbered interface" +- else +- is="has IP address $ip" +- fi +- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is ntop=yes, ${is}" +- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth ntop=yes, ${is}"; fi +- +- done +- +-else +- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Skipping interface scan - list in parms" +-fi +- + if [ "x${ntopinterface}" = "x" ]; then + ntopinterface="none" + fi +@@ -462,12 +402,6 @@ config_interfaces () { + if="${if},${eth}" + fi + +- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp][Cc].*=['\"]?[Yy][Ee][Ss]['\"]?" \ +- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then +- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntopconfigure=yes, skipping" +- continue +- fi +- + logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Configuring $eth" + if [ "${debug}" = "y" ]; then echo "DEBUG: Configuring $eth"; fi + +@@ -527,7 +461,7 @@ start () { + show_extra + config_interfaces + +- cmd=`echo $prog \ ++ cmd=`echo \ + @${conf} \ + -i $if \ + $extra $@` +@@ -541,7 +475,7 @@ start () { + if [ ".${ldlibpath}" != "." ]; then + export LD_LIBRARY_PATH="${ldlibpath}" + fi +- daemon ${cmd} ++ start-stop-daemon --start --quiet --exec $prog -- ${cmd} + RETVAL=$? + + [ $RETVAL = 0 ] && touch /var/lock/subsys/${name}${instance} +@@ -551,6 +485,7 @@ start () { + stop () { + # stop daemon + ++ NOT_RUNNING=1 + RETVAL=1 + echo -n $"Stopping ${name}${instance}: " + logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Stopping: ${name}${instance}" +@@ -563,13 +498,14 @@ stop () { + if [ $rc = 0 ]; then + logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Sending SIGTERM to ${pid}" + if [ "${debug}" = "y" ]; then echo "Sending SIGTERM to ${pid}"; fi +- kill -s SIGTERM ${pid} ++ kill -TERM ${pid} 2>&1 > /dev/null + RETVAL=$? + rm -f ${ntopdbfilepath}/ntop.pid + else + logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unable to find process ${pid} ... will kill by name" + if [ "${debug}" = "y" ]; then echo "Unable to find process ${pid} ... will kill by name"; fi + fi ++ NOT_RUNNING=0 + else + + logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unable to find ${ntopdbfilepath}/ntop.pid file ... will kill by name" +@@ -577,15 +513,16 @@ stop () { + + fi + +- echo +- + if [ $RETVAL != 0 ]; then + pids=`ps axf | grep '\/usr\/bin\/ntop' | awk '{ printf(" %s", $1) }; END { print "" }'` +- if [ "${pids}" != " " ]; then ++ if [ "${pids}" != "" ]; then + logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Sending SIGTERM to ${prog}...${pids}" + if [ "${debug}" = "y" ]; then echo "Sending SIGTERM to ${prog}...${pids}"; fi +- kill -INT ${pids} ++ kill -TERM ${pids} > /dev/null 2>&1 + RETVAL=$? ++ NOT_RUNNING=0 ++ else ++ NOT_RUNNING=1 + fi + fi + +@@ -597,13 +534,9 @@ stop () { + if [ "${debug}" = "y" ]; then echo "DEBUG: Unconfiguring interfaces"; fi + + for eth in ${ntopinterface}; do +- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp][Cc].*=['\"]?[Yy][Ee][Ss]['\"]?" \ +- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then +- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntopconfigure=yes, skipping" +- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth is not ntopconfigure=yes"; fi +- continue ++ if [ "$eth" = "none" ]; then ++ continue + fi +- + logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unconfiguring $eth" + if [ "${debug}" = "y" ]; then echo "DEBUG: Unconfiguring $eth"; fi + +@@ -623,6 +556,13 @@ stop () { + if [ "${debug}" = "y" ]; then echo "DEBUG: Interfaces are unconfigured"; fi + fi + ++ if [ $NOT_RUNNING -eq 1 -o $RETVAL -eq 0 ]; then ++ echo " [ OK ]" ++ RETVAL=0 ++ else ++ echo " [ FAILED ]" ++ fi ++ + return $RETVAL + } + +-- +1.7.5.4 + diff --git a/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch b/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch new file mode 100644 index 00000000000..9f57ca42550 --- /dev/null +++ b/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch @@ -0,0 +1,19 @@ +change osName to version as it prints out "ntop Version". + +Upstream-Status: Pending + +Signed-off-by: Yao Zhao +--- +diff --git a/webInterface.c b/webInterface.c +index 5622e69..8cb7a67 100644 +--- a/webInterface.c ++++ b/webInterface.c +@@ -5816,7 +5816,7 @@ static void printNtopConfigInfoData(int textPrintFlag, UserPref *pref) { + printInfoSectionTitle(textPrintFlag, "Basic Information"); + + safe_snprintf(__FILE__, __LINE__, formatBuf, sizeof(formatBuf), "%s (%d bit)", +- osName, sizeof(long) == 8 ? 64 : 32); ++ version, sizeof(long) == 8 ? 64 : 32); + printFeatureConfigInfo(textPrintFlag, "ntop Version", formatBuf); + + #ifndef WIN32 diff --git a/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch b/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch new file mode 100644 index 00000000000..2b001c13e86 --- /dev/null +++ b/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch @@ -0,0 +1,32 @@ +[PATCH] replace 'inline' with 'static inline' for gcc 5.x + +gcc 5.x defaults to -std=gnu11 instead of -std=gnu89 which change +the semantics for inline functions and the standalone 'inline' +causes error with "gcc5 -g -o0" + +Replace inline with static inline to be compatible with both gcc 4 +and 5. + +Upstream-status: Pending + +Signed-off-by: Roy Li +--- + nDPI/src/lib/protocols/ssl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/nDPI/src/lib/protocols/ssl.c b/nDPI/src/lib/protocols/ssl.c +index 245b8c3..72beda9 100644 +--- a/nDPI/src/lib/protocols/ssl.c ++++ b/nDPI/src/lib/protocols/ssl.c +@@ -39,7 +39,7 @@ static void ipoque_int_ssl_add_connection(struct ipoque_detection_module_struct + + #ifdef HAVE_NTOP + #ifndef WIN32 +-inline int min(int a, int b) { return(a < b ? a : b); } ++static inline int min(int a, int b) { return(a < b ? a : b); } + #endif + + static void stripCertificateTrailer(char *buffer, int buffer_len) { +-- +1.9.1 + diff --git a/meta-networking/recipes-support/ntop/ntop_5.0.1.bb b/meta-networking/recipes-support/ntop/ntop_5.0.1.bb new file mode 100644 index 00000000000..298fbec61b8 --- /dev/null +++ b/meta-networking/recipes-support/ntop/ntop_5.0.1.bb @@ -0,0 +1,137 @@ +SUMMARY = "ntop is network top" +DESCRIPTION = "ntop is a network traffic probe that shows the network usage, \ +similar to what the popular top Unix command does." + +SECTION = "console/network" + +LICENSE = "GPLv2+ & GPLv3 & OpenSSL" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://LICENSE-OpenSSL.txt;md5=a409f902e447ddd889cffa0c70e7c7c2 \ + " + +SRC_URI = "${SOURCEFORGE_MIRROR}/ntop/ntop-${PV}.tar.gz \ + file://ntop_configure_in.patch \ + file://ntop_init.patch \ + file://ntop_webInterface.patch \ + file://ntop_configure_in_net_snmp_config_exist.patch \ + file://ntop.service \ + file://use-static-inline.patch \ + file://0001-nDPI-Include-sys-types.h.patch \ + " +SRC_URI[md5sum] = "01710b6925a8a5ffe1a41b8b512ebd69" +SRC_URI[sha256sum] = "7e8e84cb14d2173beaca4d4cb991a14d84a4bef84ec37b2276bc363f45c52ef8" + +inherit autotools-brokensep useradd pythonnative pkgconfig systemd + +DEPENDS = "geoip rrdtool python zlib libpcap gdbm" + +PACKAGECONFIG ??= "openssl snmp plugins" +PACKAGECONFIG[openssl] = "--with-ssl, --without-ssl, openssl, openssl" +PACKAGECONFIG[snmp] = "--enable-snmp=yes NETSNMP=${STAGING_BINDIR_CROSS}/net-snmp-config, \ +--disable-snmp,net-snmp," +PACKAGECONFIG[plugins] = "--enable-plugins=yes, --disable-plugins, ," + +EXTRA_OECONF += "ac_cv_file_aclocal_m4=yes ac_cv_file_depcomp=no" + +do_configure() { + cp ${STAGING_DATADIR_NATIVE}/aclocal/libtool.m4 libtool.m4.in + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/nDPI + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/nDPI + cat acinclude.m4.in acinclude.m4.ntop libtool.m4.in > acinclude.m4 + cp 3rd_party/* ./ + + # config nDPI + cd nDPI + ./configure ${CONFIGUREOPTS} --with-pic + cd .. + + sed -i -e 's:^CFG_DBFILE_DIR=$localstatedir/ntop:CFG_DBFILE_DIR=$localstatedir/lib/ntop:' ${S}/configure.in + + # fix the CFLAGS, CPPFLAGS, LDFLAGS, remove the host include + sed -i \ + -e 's:\(^CFLAGS="\$.*\) -I/usr/local/include -I/opt/local/include":\1":' \ + -e 's:\(^CPPFLAGS="\$.*\) -I/usr/local/include -I/opt/local/include":\1":' \ + -e 's:\(^LDFLAGS="\$.*\) -L/usr/local/lib -L/opt/local/lib":\1":' \ + ${S}/configure.in + + # replace the DISTRO RELEASE in configure.in which are host's + # with our release, although those doesn't affect functionality + sed -i -e \ + '/DEFINEOS="LINUX"/{N;s/DISTRO=.*/DISTRO="${DISTRO}"/;N;s/RELEASE=.*/RELEASE="${DISTRO_VERSION}"/;}' \ + ${S}/configure.in + + # osName in original configure.in should be ${TARGET_SYS} + # which will show in ntop's "show configuration" + sed -i -e \ + 's:^osName=.*:osName=${TARGET_SYS}:' \ + ${S}/configure.in + + # rename configureextra to configureextra_rename to avoid + # configure.in to guess host OS and pull in more configure, non needed + # which will cause some cross-compiling failure on specific host + # e.g. SUSE(SLED...) + test ! -f configureextra || mv -f configureextra configureextra_rename + + # make sure configure finds python includdirs/libs with these envs + export BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + STAGING_INCDIR=${STAGING_INCDIR} \ + STAGING_LIBDIR=${STAGING_LIBDIR} + + autotools_do_configure +} + +do_compile_prepend() { + cd nDPI + oe_runmake + cd .. +} + +do_install_append() { + # remove the empty dirs + rm -rf ${D}${libdir}/plugins + + install -D -m 0755 ${S}/packages/RedHat/ntop.init \ + ${D}${sysconfdir}/init.d/ntop + install -D -m 0644 ${S}/packages/RedHat/ntop.conf.sample \ + ${D}${sysconfdir}/ntop.conf + + # change ntop dir in ntop.conf + # don't use the -P as the ntop.init didn't support it + sed -i -e "s:^--db-file-path /usr/share/ntop:--db-file-path /var/lib/ntop:" \ + -e "s:^#? -P /var/ntop:#? -P /var/lib/ntop:" \ + ${D}${sysconfdir}/ntop.conf + + # For systemd + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -D -m 0755 ${S}/packages/RedHat/ntop.init ${D}${libexecdir}/ntop-helper + install -D -m 0644 ${WORKDIR}/ntop.service ${D}${systemd_system_unitdir}/ntop.service + sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + ${D}${systemd_system_unitdir}/ntop.service + fi + + # Fix host-user-contaminated issue + chown -R root:root ${D} + + chown -R ntop.ntop ${D}${datadir}/ntop + chown -R ntop:ntop ${D}${localstatedir}/lib/ntop +} + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "-M -g ntop -r -d ${localstatedir}/lib/ntop \ +-s /usr/sbin/nologin -c 'ntop' ntop" +GROUPADD_PARAM_${PN} = "-r ntop" + +SYSTEMD_SERVICE_${PN} = "ntop.service" +SYSTEMD_AUTO_ENABLE = "disable" + +FILES_${PN}_append = "${libdir}/ntop/plugins ${libdir}/libntop-*.so \ + ${libdir}/libntopreport-*.so ${libdir}/lib*-${PV}.so" +FILES_${PN}-dev = "${includedir} ${libdir}/libntop.so \ + ${libdir}/libntopreport.so \ + ${libdir}/libnetflowPlugin.so ${libdir}/libsflowPlugin.so \ + ${libdir}/librrdPlugin.so \ + ${libdir}/*.a ${libdir}/libntopreport.a ${libdir}/*.la" + diff --git a/meta-networking/recipes-support/ntp/ntp/ntp-4.2.8-ntp-keygen-no-openssl.patch b/meta-networking/recipes-support/ntp/ntp/ntp-4.2.8-ntp-keygen-no-openssl.patch deleted file mode 100644 index 9b9af63ca30..00000000000 --- a/meta-networking/recipes-support/ntp/ntp/ntp-4.2.8-ntp-keygen-no-openssl.patch +++ /dev/null @@ -1,168 +0,0 @@ -Fix ntp-keygen build without OpenSSL - -Patch borrowed from Gentoo, originally from upstream -Signed-off-by: Paul Eggleton -Upstream-Status: Backport - -Upstream commit: -http://bk1.ntp.org/ntp-stable/?PAGE=patch&REV=5497b345z5MNTuNvJWuqPSje25NQTg -Gentoo bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=533238 - -Signed-off-by: Markos Chandras -Index: ntp-4.2.8/Makefile.am -=================================================================== ---- ntp-4.2.8.orig/Makefile.am -+++ ntp-4.2.8/Makefile.am -@@ -2,7 +2,10 @@ ACLOCAL_AMFLAGS = -I sntp/m4 -I sntp/lib - - NULL = - -+# moved sntp first to get libtool and libevent built. -+ - SUBDIRS = \ -+ sntp \ - scripts \ - include \ - libntp \ -@@ -17,7 +20,6 @@ SUBDIRS = \ - clockstuff \ - kernel \ - util \ -- sntp \ - tests \ - $(NULL) - -@@ -64,7 +66,6 @@ BUILT_SOURCES = \ - .gcc-warning \ - 'libtool \ - html/.datecheck \ -- sntp/built-sources-only \ - $(srcdir)/COPYRIGHT \ - $(srcdir)/.checkChangeLog \ - $(NULL) -Index: ntp-4.2.8/configure.ac -=================================================================== ---- ntp-4.2.8.orig/configure.ac -+++ ntp-4.2.8/configure.ac -@@ -102,7 +102,7 @@ esac - enable_nls=no - LIBOPTS_CHECK_NOBUILD([sntp/libopts]) - --NTP_ENABLE_LOCAL_LIBEVENT -+NTP_LIBEVENT_CHECK_NOBUILD([2], [sntp/libevent]) - - NTP_LIBNTP - -@@ -771,6 +771,10 @@ esac - - #### - -+AC_CHECK_FUNCS([arc4random_buf]) -+ -+#### -+ - saved_LIBS="$LIBS" - LIBS="$LIBS $LDADD_LIBNTP" - AC_CHECK_FUNCS([daemon]) -Index: ntp-4.2.8/libntp/ntp_crypto_rnd.c -=================================================================== ---- ntp-4.2.8.orig/libntp/ntp_crypto_rnd.c -+++ ntp-4.2.8/libntp/ntp_crypto_rnd.c -@@ -24,6 +24,21 @@ - int crypto_rand_init = 0; - #endif - -+#ifndef HAVE_ARC4RANDOM_BUF -+static void -+arc4random_buf(void *buf, size_t nbytes); -+ -+void -+evutil_secure_rng_get_bytes(void *buf, size_t nbytes); -+ -+static void -+arc4random_buf(void *buf, size_t nbytes) -+{ -+ evutil_secure_rng_get_bytes(buf, nbytes); -+ return; -+} -+#endif -+ - /* - * As of late 2014, here's how we plan to provide cryptographic-quality - * random numbers: -Index: ntp-4.2.8/sntp/configure.ac -=================================================================== ---- ntp-4.2.8.orig/sntp/configure.ac -+++ ntp-4.2.8/sntp/configure.ac -@@ -97,11 +97,14 @@ esac - enable_nls=no - LIBOPTS_CHECK - --AM_COND_IF( -- [BUILD_SNTP], -- [NTP_LIBEVENT_CHECK], -- [NTP_LIBEVENT_CHECK_NOBUILD] --) -+# From when we only used libevent for sntp: -+#AM_COND_IF( -+# [BUILD_SNTP], -+# [NTP_LIBEVENT_CHECK], -+# [NTP_LIBEVENT_CHECK_NOBUILD] -+#) -+ -+NTP_LIBEVENT_CHECK([2]) - - # Checks for libraries. - -Index: ntp-4.2.8/sntp/m4/ntp_libevent.m4 -=================================================================== ---- ntp-4.2.8.orig/sntp/m4/ntp_libevent.m4 -+++ ntp-4.2.8/sntp/m4/ntp_libevent.m4 -@@ -1,4 +1,25 @@ --dnl NTP_ENABLE_LOCAL_LIBEVENT -*- Autoconf -*- -+# SYNOPSIS -*- Autoconf -*- -+# -+# NTP_ENABLE_LOCAL_LIBEVENT -+# NTP_LIBEVENT_CHECK([MINVERSION [, DIR]]) -+# NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]]) -+# -+# DESCRIPTION -+# -+# AUTHOR -+# -+# Harlan Stenn -+# -+# LICENSE -+# -+# This file is Copyright (c) 2014 Network Time Foundation -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice, -+# author attribution and this notice are preserved. This file is offered -+# as-is, without any warranty. -+ -+dnl NTP_ENABLE_LOCAL_LIBEVENT - dnl - dnl Provide only the --enable-local-libevent command-line option. - dnl -@@ -29,7 +50,7 @@ dnl If NOBUILD is provided as the 3rd ar - dnl but DO NOT invoke DIR/configure if we are going to use our bundled - dnl version. This may be the case for nested packages. - dnl --dnl provide --enable-local-libevent . -+dnl provides --enable-local-libevent . - dnl - dnl Examples: - dnl -Index: ntp-4.2.8/util/Makefile.am -=================================================================== ---- ntp-4.2.8.orig/util/Makefile.am -+++ ntp-4.2.8/util/Makefile.am -@@ -19,6 +19,7 @@ AM_LDFLAGS = $(LDFLAGS_NTP) - LDADD= ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(PTHREAD_LIBS) - tg2_LDADD= ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) - ntp_keygen_LDADD = version.o $(LIBOPTS_LDADD) ../libntp/libntp.a -+ntp_keygen_LDADD += $(LDADD_LIBEVENT) - ntp_keygen_LDADD += $(LDADD_LIBNTP) $(PTHREAD_LIBS) $(LDADD_NTP) $(LIBM) - ntp_keygen_SOURCES = ntp-keygen.c ntp-keygen-opts.c ntp-keygen-opts.h - diff --git a/meta-networking/recipes-support/ntp/ntp_4.2.8.bb b/meta-networking/recipes-support/ntp/ntp_4.2.8.bb deleted file mode 100644 index e802ee700b0..00000000000 --- a/meta-networking/recipes-support/ntp/ntp_4.2.8.bb +++ /dev/null @@ -1,156 +0,0 @@ -SUMMARY = "Network Time Protocol daemon and utilities" -DESCRIPTION = "The Network Time Protocol (NTP) is used to \ -synchronize the time of a computer client or server to \ -another server or reference time source, such as a radio \ -or satellite receiver or modem." -HOMEPAGE = "http://support.ntp.org" -SECTION = "console/network" -LICENSE = "NTP" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ebe123f74017224947c78d472407c10f" - -DEPENDS = "pps-tools libevent" - -SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \ - file://ntp-4.2.4_p6-nano.patch \ - file://ntpd \ - file://ntp.conf \ - file://ntpdate \ - file://ntpdate.default \ - file://ntpdate.service \ - file://ntpd.service \ - file://sntp.service \ - file://sntp \ - file://ntpd.list \ - file://ntp-4.2.8-ntp-keygen-no-openssl.patch \ -" - -SRC_URI[md5sum] = "6972a626be6150db8cfbd0b63d8719e7" -SRC_URI[sha256sum] = "2e920df8b6a5a410567a73767fa458c00c7f0acec3213e69ed0134414a50d8ee" - -inherit autotools update-rc.d useradd systemd pkgconfig - -# The ac_cv_header_readline_history is to stop ntpdc depending on either -# readline or curses -EXTRA_OECONF += "--with-net-snmp-config=no \ - --without-ntpsnmpd \ - ac_cv_header_readline_history_h=no \ - --with-yielding_select=yes \ - --with-locfile=redhat \ - " -CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED" - -USERADD_PACKAGES = "${PN}" -NTP_USER_HOME ?= "/var/lib/ntp" -USERADD_PARAM_${PN} = "--system --home-dir ${NTP_USER_HOME} \ - --no-create-home \ - --shell /bin/false --user-group ntp" - -# NB: debug is default-enabled by NTP; keep it default-enabled here. -PACKAGECONFIG ??= "cap debug" -PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \ - --with-openssl-incdir=${STAGING_INCDIR} \ - --with-crypto, \ - --without-openssl --without-crypto, \ - openssl" -PACKAGECONFIG[cap] = "--enable-linuxcaps,--disable-linuxcaps,libcap" -PACKAGECONFIG[readline] = "--with-lineeditlibs,--without-lineeditlibs,readline" -PACKAGECONFIG[debug] = "--enable-debugging,--disable-debugging" - -do_install_append() { - install -d ${D}${sysconfdir}/init.d - install -m 644 ${WORKDIR}/ntp.conf ${D}${sysconfdir} - install -m 755 ${WORKDIR}/ntpd ${D}${sysconfdir}/init.d - install -d ${D}${bindir} - install -m 755 ${WORKDIR}/ntpdate ${D}${bindir}/ntpdate-sync - - install -m 755 -d ${D}${NTP_USER_HOME} - chown ntp:ntp ${D}${NTP_USER_HOME} - - # Fix hardcoded paths in scripts - sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync - sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync - sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync - sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync - sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${bindir}/ntpdate-sync - sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/ntptrace - sed -i '/use/i use warnings;' ${D}${sbindir}/ntptrace - sed -i '1s,#!.*perl,#! ${bindir}/env perl,' ${D}${sbindir}/ntp-wait - sed -i '/use/i use warnings;' ${D}${sbindir}/ntp-wait - sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/calc_tickadj - sed -i '/use/i use warnings;' ${D}${sbindir}/calc_tickadj - - install -d ${D}/${sysconfdir}/default - install -m 644 ${WORKDIR}/ntpdate.default ${D}${sysconfdir}/default/ntpdate - install -m 0644 ${WORKDIR}/sntp ${D}${sysconfdir}/default/ - - install -d ${D}/${sysconfdir}/network/if-up.d - ln -s ${bindir}/ntpdate-sync ${D}/${sysconfdir}/network/if-up.d - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/ntpdate.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/ntpd.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/sntp.service ${D}${systemd_unitdir}/system/ - - install -d ${D}${systemd_unitdir}/ntp-units.d - install -m 0644 ${WORKDIR}/ntpd.list ${D}${systemd_unitdir}/ntp-units.d/60-ntpd.list -} - -PACKAGES += "ntpdate sntp ${PN}-tickadj ${PN}-utils" -# NOTE: you don't need ntpdate, use "ntpd -q -g -x" - -# ntp originally includes tickadj. It's split off for inclusion in small firmware images on platforms -# with wonky clocks (e.g. OpenSlug) -RDEPENDS_${PN} = "${PN}-tickadj" -# Handle move from bin to utils package -RPROVIDES_${PN}-utils = "${PN}-bin" -RREPLACES_${PN}-utils = "${PN}-bin" -RCONFLICTS_${PN}-utils = "${PN}-bin" - -SYSTEMD_PACKAGES = "${PN} ntpdate sntp" -SYSTEMD_SERVICE_${PN} = "ntpd.service" -SYSTEMD_SERVICE_ntpdate = "ntpdate.service" -SYSTEMD_SERVICE_sntp = "sntp.service" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" - -RPROVIDES_ntpdate += "ntpdate-systemd" -RREPLACES_ntpdate += "ntpdate-systemd" -RCONFLICTS_ntpdate += "ntpdate-systemd" - -RSUGGESTS_${PN} = "iana-etc" - -FILES_${PN} = "${sbindir}/ntpd ${sysconfdir}/ntp.conf ${sysconfdir}/init.d/ntpd ${libdir} \ - ${NTP_USER_HOME} \ - ${systemd_unitdir}/ntp-units.d/60-ntpd.list \ -" -FILES_${PN}-tickadj = "${sbindir}/tickadj" -FILES_${PN}-utils = "${sbindir} ${datadir}/ntp/lib" -RDEPENDS_${PN}-utils += "perl" -FILES_ntpdate = "${sbindir}/ntpdate \ - ${sysconfdir}/network/if-up.d/ntpdate-sync \ - ${bindir}/ntpdate-sync \ - ${sysconfdir}/default/ntpdate \ - ${systemd_unitdir}/system/ntpdate.service \ -" -FILES_sntp = "${sbindir}/sntp \ - ${sysconfdir}/default/sntp \ - ${systemd_unitdir}/system/sntp.service \ - " - -CONFFILES_${PN} = "${sysconfdir}/ntp.conf" -CONFFILES_ntpdate = "${sysconfdir}/default/ntpdate" - -INITSCRIPT_NAME = "ntpd" -# No dependencies, so just go in at the standard level (20) -INITSCRIPT_PARAMS = "defaults" - -pkg_postinst_ntpdate() { - if ! grep -q -s ntpdate $D/var/spool/cron/root; then - echo "adding crontab" - test -d $D/var/spool/cron || mkdir -p $D/var/spool/cron - echo "30 * * * * ${bindir}/ntpdate-sync silent" >> $D/var/spool/cron/root - fi -} - diff --git a/meta-networking/recipes-support/ntp/ntp_4.2.8p10.bb b/meta-networking/recipes-support/ntp/ntp_4.2.8p10.bb new file mode 100644 index 00000000000..719c60b97e0 --- /dev/null +++ b/meta-networking/recipes-support/ntp/ntp_4.2.8p10.bb @@ -0,0 +1,170 @@ +SUMMARY = "Network Time Protocol daemon and utilities" +DESCRIPTION = "The Network Time Protocol (NTP) is used to \ +synchronize the time of a computer client or server to \ +another server or reference time source, such as a radio \ +or satellite receiver or modem." +HOMEPAGE = "http://support.ntp.org" +SECTION = "net" +LICENSE = "NTP" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=e877a1d567a6a58996d2b66e3e387003" + +DEPENDS = "libevent" + +SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \ + file://ntp-4.2.4_p6-nano.patch \ + file://ntpd \ + file://ntp.conf \ + file://ntpdate \ + file://ntpdate.default \ + file://ntpdate.service \ + file://ntpd.service \ + file://sntp.service \ + file://sntp \ + file://ntpd.list \ +" + +SRC_URI[md5sum] = "745384ed0dedb3f66b33fe84d66466f9" +SRC_URI[sha256sum] = "ddd2366e64219b9efa0f7438e06800d0db394ac5c88e13c17b70d0dcdf99b99f" + +inherit autotools update-rc.d useradd systemd pkgconfig + +# The ac_cv_header_readline_history is to stop ntpdc depending on either +# readline or curses +EXTRA_OECONF += "--with-net-snmp-config=no \ + --without-ntpsnmpd \ + ac_cv_header_readline_history_h=no \ + --with-yielding_select=yes \ + --with-locfile=redhat \ + --without-rpath \ + " +CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED" + +USERADD_PACKAGES = "${PN}" +NTP_USER_HOME ?= "/var/lib/ntp" +USERADD_PARAM_${PN} = "--system --home-dir ${NTP_USER_HOME} \ + --no-create-home \ + --shell /bin/false --user-group ntp" + +# NB: debug is default-enabled by NTP; keep it default-enabled here. +PACKAGECONFIG ??= "cap debug refclocks openssl \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \ + --with-openssl-incdir=${STAGING_INCDIR} \ + --with-crypto, \ + --without-openssl --without-crypto, \ + openssl" +PACKAGECONFIG[cap] = "--enable-linuxcaps,--disable-linuxcaps,libcap" +PACKAGECONFIG[readline] = "--with-lineeditlibs,--without-lineeditlibs,readline" +PACKAGECONFIG[refclocks] = "--enable-all-clocks,--disable-all-clocks,pps-tools" +PACKAGECONFIG[debug] = "--enable-debugging,--disable-debugging" +PACKAGECONFIG[mdns] = "ac_cv_header_dns_sd_h=yes,ac_cv_header_dns_sd_h=no,mdns" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +do_install_append() { + install -d ${D}${sysconfdir}/init.d + install -m 644 ${WORKDIR}/ntp.conf ${D}${sysconfdir} + install -m 755 ${WORKDIR}/ntpd ${D}${sysconfdir}/init.d + install -d ${D}${bindir} + install -m 755 ${WORKDIR}/ntpdate ${D}${bindir}/ntpdate-sync + + install -m 755 -d ${D}${NTP_USER_HOME} + chown ntp:ntp ${D}${NTP_USER_HOME} + + # Fix hardcoded paths in scripts + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync + sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${bindir}/ntpdate-sync + sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/ntptrace + sed -i '/use/i use warnings;' ${D}${sbindir}/ntptrace + sed -i '1s,#!.*perl,#! ${bindir}/env perl,' ${D}${sbindir}/ntp-wait + sed -i '/use/i use warnings;' ${D}${sbindir}/ntp-wait + sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/calc_tickadj + sed -i '/use/i use warnings;' ${D}${sbindir}/calc_tickadj + + install -d ${D}/${sysconfdir}/default + install -m 644 ${WORKDIR}/ntpdate.default ${D}${sysconfdir}/default/ntpdate + install -m 0644 ${WORKDIR}/sntp ${D}${sysconfdir}/default/ + + install -d ${D}/${sysconfdir}/network/if-up.d + ln -s ${bindir}/ntpdate-sync ${D}/${sysconfdir}/network/if-up.d + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/ntpdate.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/ntpd.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/sntp.service ${D}${systemd_unitdir}/system/ + + install -d ${D}${systemd_unitdir}/ntp-units.d + install -m 0644 ${WORKDIR}/ntpd.list ${D}${systemd_unitdir}/ntp-units.d/60-ntpd.list + + # Remove an empty libexecdir. + rmdir --ignore-fail-on-non-empty ${D}${libexecdir} +} + +PACKAGES += "ntpdate sntp ${PN}-tickadj ${PN}-utils" +# NOTE: you don't need ntpdate, use "ntpd -q -g -x" + +# ntp originally includes tickadj. It's split off for inclusion in small firmware images on platforms +# with wonky clocks (e.g. OpenSlug) +RDEPENDS_${PN} = "${PN}-tickadj" +# Handle move from bin to utils package +RPROVIDES_${PN}-utils = "${PN}-bin" +RREPLACES_${PN}-utils = "${PN}-bin" +RCONFLICTS_${PN}-utils = "${PN}-bin" + +SYSTEMD_PACKAGES = "${PN} ntpdate sntp" +SYSTEMD_SERVICE_${PN} = "ntpd.service" +SYSTEMD_SERVICE_ntpdate = "ntpdate.service" +SYSTEMD_SERVICE_sntp = "sntp.service" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" + +RPROVIDES_ntpdate += "ntpdate-systemd" +RREPLACES_ntpdate += "ntpdate-systemd" +RCONFLICTS_ntpdate += "ntpdate-systemd" + +RSUGGESTS_${PN} = "iana-etc" + +FILES_${PN} = "${sbindir}/ntpd.ntp ${sysconfdir}/ntp.conf ${sysconfdir}/init.d/ntpd ${libdir} \ + ${NTP_USER_HOME} \ + ${systemd_unitdir}/ntp-units.d/60-ntpd.list ${libexecdir}\ +" +FILES_${PN}-tickadj = "${sbindir}/tickadj" +FILES_${PN}-utils = "${sbindir} ${datadir}/ntp/lib" +RDEPENDS_${PN}-utils += "perl" +FILES_ntpdate = "${sbindir}/ntpdate \ + ${sysconfdir}/network/if-up.d/ntpdate-sync \ + ${bindir}/ntpdate-sync \ + ${sysconfdir}/default/ntpdate \ + ${systemd_unitdir}/system/ntpdate.service \ +" +FILES_sntp = "${sbindir}/sntp \ + ${sysconfdir}/default/sntp \ + ${systemd_unitdir}/system/sntp.service \ + " + +CONFFILES_${PN} = "${sysconfdir}/ntp.conf" +CONFFILES_ntpdate = "${sysconfdir}/default/ntpdate" + +INITSCRIPT_NAME = "ntpd" +# No dependencies, so just go in at the standard level (20) +INITSCRIPT_PARAMS = "defaults" + +pkg_postinst_ntpdate() { + if ! grep -q -s ntpdate $D/var/spool/cron/root; then + echo "adding crontab" + test -d $D/var/spool/cron || mkdir -p $D/var/spool/cron + echo "30 * * * * ${bindir}/ntpdate-sync silent" >> $D/var/spool/cron/root + fi +} + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN} = "ntpd" +ALTERNATIVE_LINK_NAME[ntpd] = "${sbindir}/ntpd" diff --git a/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb b/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb index a275238a3b3..9430add487c 100644 --- a/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb +++ b/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb @@ -20,10 +20,10 @@ SRC_URI[sha256sum] = "c6e33810ccce67260f8d5d627f60e429d44f532365c58ed5673d035e2a S = "${WORKDIR}" do_compile () { - ${CC} ${CFLAGS} -o nuttcp nuttcp-${PV}.c + ${CC} ${CFLAGS} ${LDFLAGS} -o nuttcp nuttcp-${PV}.c } do_install () { - install -d ${D}${bindir} - install -m 0755 nuttcp ${D}${bindir} + install -d ${D}${bindir} + install -m 0755 nuttcp ${D}${bindir} } diff --git a/meta-networking/recipes-support/open-isns/open-isns_0.97.bb b/meta-networking/recipes-support/open-isns/open-isns_0.97.bb new file mode 100644 index 00000000000..420ef5be004 --- /dev/null +++ b/meta-networking/recipes-support/open-isns/open-isns_0.97.bb @@ -0,0 +1,36 @@ +# Copyright (C) 2016 Joe MacDonald +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "iSNS daemon and utility programs" +DESCRIPTION = "This is a partial implementation of RFC4171, the Internet \ +Storage Name Service (iSNS). The distribution includes the iSNS server, \ +supporting persisten storage of registrations, isnsadm, a command line \ +utility for managing nodes, and isnsdd, a corresponding discovery daemon." +HOMEPAGE = "http://github.com/gonzoleeman/open-isns/" +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785" +SECTION = "net" + +DEPENDS = "openssl systemd" + +SRC_URI = " \ + git://github.com/open-iscsi/open-isns \ +" + +SRCREV ?= "09954404e948e41eb0fce8e28836018b4ce3d20d" + +S = "${WORKDIR}/git" + +inherit systemd autotools-brokensep distro_features_check +# depends on systemd +REQUIRED_DISTRO_FEATURES = "systemd" + +EXTRA_OECONF = " --prefix=${prefix} --enable-shared" +EXTRA_OEMAKE += "SYSTEMDDIR=${D}${systemd_unitdir}/system" + +do_install_append () { + oe_runmake INCDIR=${D}${includedir}/libisns/ install_hdrs + oe_runmake LIBDIR=${D}${libdir} install_lib +} + +FILES_${PN} += "${libdir} ${systemd_unitdir}" diff --git a/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch b/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch new file mode 100644 index 00000000000..25057fbce50 --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch @@ -0,0 +1,618 @@ +From 8b51a6bf5a4829d8add535a098c0c06a049a9958 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 22:50:57 -0700 +Subject: [PATCH] lanserv: Rename struct parameter printf for namespace + collision + +This comes to fore when we use hardening flags where printf +is treated as macro and gets replaced with printf_chk + +Fixes errors like + +error: no member named '__printf_chk' in 'struct emu_out_s' + +Signed-off-by: Khem Raj +--- + lanserv/OpenIPMI/serv.h | 2 +- + lanserv/emu_cmd.c | 132 ++++++++++++++++++++++++------------------------ + lanserv/ipmi_sim.c | 10 ++-- + 3 files changed, 72 insertions(+), 72 deletions(-) + +diff --git a/lanserv/OpenIPMI/serv.h b/lanserv/OpenIPMI/serv.h +index d12d63a..8555c85 100644 +--- a/lanserv/OpenIPMI/serv.h ++++ b/lanserv/OpenIPMI/serv.h +@@ -522,7 +522,7 @@ uint8_t ipmb_checksum(uint8_t *data, int size, uint8_t start); + typedef struct emu_data_s emu_data_t; + typedef struct emu_out_s + { +- void (*printf)(struct emu_out_s *out, char *format, ...); ++ void (*eprintf)(struct emu_out_s *out, char *format, ...); + void *data; + } emu_out_t; + +diff --git a/lanserv/emu_cmd.c b/lanserv/emu_cmd.c +index ca44032..54b6f7b 100644 +--- a/lanserv/emu_cmd.c ++++ b/lanserv/emu_cmd.c +@@ -76,7 +76,7 @@ emu_get_uchar(emu_out_t *out, char **toks, unsigned char *val, char *errstr, + if (empty_ok) + return ENOSPC; + if (errstr) +- out->printf(out, "**No %s given\n", errstr); ++ out->eprintf(out, "**No %s given\n", errstr); + return EINVAL; + } + if (str[0] == '\'') { +@@ -86,7 +86,7 @@ emu_get_uchar(emu_out_t *out, char **toks, unsigned char *val, char *errstr, + *val = strtoul(str, &tmpstr, 0); + if (*tmpstr != '\0') { + if (errstr) +- out->printf(out, "**Invalid %s given\n", errstr); ++ out->eprintf(out, "**Invalid %s given\n", errstr); + return EINVAL; + } + +@@ -108,7 +108,7 @@ emu_get_uchar_with_vals(emu_out_t *out, char **toks, + if (empty_ok) + return ENOSPC; + if (errstr) +- out->printf(out, "**No %s given\n", errstr); ++ out->eprintf(out, "**No %s given\n", errstr); + return EINVAL; + } + if (str[0] == '\'') { +@@ -131,7 +131,7 @@ emu_get_uchar_with_vals(emu_out_t *out, char **toks, + *val = strtoul(str, &tmpstr, 0); + if (*tmpstr != '\0') { + if (errstr) +- out->printf(out, "**Invalid %s given\n", errstr); ++ out->eprintf(out, "**Invalid %s given\n", errstr); + return EINVAL; + } + out: +@@ -150,12 +150,12 @@ emu_get_bitmask(emu_out_t *out, char **toks, uint16_t *val, char *errstr, + if (empty_ok) + return ENOSPC; + if (errstr) +- out->printf(out, "**No %s given\n", errstr); ++ out->eprintf(out, "**No %s given\n", errstr); + return EINVAL; + } + if (strlen(str) != size) { + if (errstr) +- out->printf(out, "**invalid number of bits in %s\n", errstr); ++ out->eprintf(out, "**invalid number of bits in %s\n", errstr); + return EINVAL; + } + *val = 0; +@@ -166,7 +166,7 @@ emu_get_bitmask(emu_out_t *out, char **toks, uint16_t *val, char *errstr, + *val |= 1 << i; + } else { + if (errstr) +- out->printf(out, "**Invalid bit value '%c' in %s\n", str[j], ++ out->eprintf(out, "**Invalid bit value '%c' in %s\n", str[j], + errstr); + return EINVAL; + } +@@ -184,13 +184,13 @@ emu_get_uint(emu_out_t *out, char **toks, unsigned int *val, char *errstr) + str = mystrtok(NULL, " \t\n", toks); + if (!str) { + if (errstr) +- out->printf(out, "**No %s given\n", errstr); ++ out->eprintf(out, "**No %s given\n", errstr); + return EINVAL; + } + *val = strtoul(str, &tmpstr, 0); + if (*tmpstr != '\0') { + if (errstr) +- out->printf(out, "**Invalid %s given\n", errstr); ++ out->eprintf(out, "**Invalid %s given\n", errstr); + return EINVAL; + } + +@@ -206,7 +206,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr, + + if (!tok) { + if (errstr) +- out->printf(out, "**No %s given\n", errstr); ++ out->eprintf(out, "**No %s given\n", errstr); + return EINVAL; + } + if (*tok == '"') { +@@ -215,7 +215,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr, + tok++; + end = strlen(tok) - 1; + if (tok[end] != '"') { +- out->printf(out, "**ASCII %s doesn't end in '\"'", errstr); ++ out->eprintf(out, "**ASCII %s doesn't end in '\"'", errstr); + return EINVAL; + } + if (end > (len - 1)) +@@ -228,7 +228,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr, + char c[3]; + /* HEX pw */ + if (strlen(tok) != 32) { +- out->printf(out, "**HEX %s not 32 HEX characters long", errstr); ++ out->eprintf(out, "**HEX %s not 32 HEX characters long", errstr); + return EINVAL; + } + c[2] = '\0'; +@@ -239,7 +239,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr, + tok++; + data[i] = strtoul(c, &end, 16); + if (*end != '\0') { +- out->printf(out, "**Invalid HEX character in %s", errstr); ++ out->eprintf(out, "**Invalid HEX character in %s", errstr); + return -1; + } + } +@@ -263,12 +263,12 @@ read_command_file(emu_out_t *out, emu_data_t *emu, const char *command_file) + + buffer = malloc(INPUT_BUFFER_SIZE); + if (!buffer) { +- out->printf(out, "Could not allocate buffer memory\n"); ++ out->eprintf(out, "Could not allocate buffer memory\n"); + rv = ENOMEM; + goto out; + } + while (fgets(buffer+pos, INPUT_BUFFER_SIZE-pos, f)) { +- out->printf(out, "%s", buffer+pos); ++ out->eprintf(out, "%s", buffer+pos); + if (buffer[pos] == '#') + continue; + pos = strlen(buffer); +@@ -318,7 +318,7 @@ sel_enable(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_mc_enable_sel(mc, max_records, flags); + if (rv) +- out->printf(out, "**Unable to enable sel, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to enable sel, error 0x%x\n", rv); + return rv; + } + +@@ -343,9 +343,9 @@ sel_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_mc_add_to_sel(mc, record_type, data, &r); + if (rv) +- out->printf(out, "**Unable to add to sel, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to add to sel, error 0x%x\n", rv); + else +- out->printf(out, "Added record %d\n", r); ++ out->eprintf(out, "Added record %d\n", r); + return rv; + } + +@@ -361,14 +361,14 @@ main_sdr_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + if (rv == ENOSPC) + break; + if (rv) { +- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i); ++ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i); + return rv; + } + } + + rv = ipmi_mc_add_main_sdr(mc, data, i); + if (rv) +- out->printf(out, "**Unable to add to sdr, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to add to sdr, error 0x%x\n", rv); + return rv; + } + +@@ -389,14 +389,14 @@ device_sdr_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + if (rv == ENOSPC) + break; + if (rv) { +- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i); ++ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i); + return rv; + } + } + + rv = ipmi_mc_add_device_sdr(mc, lun, data, i); + if (rv) +- out->printf(out, "**Unable to add to sdr, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to add to sdr, error 0x%x\n", rv); + return rv; + } + +@@ -439,7 +439,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + while (tok) { + if (strcmp(tok, "poll") == 0) { + if (handler) { +- out->printf(out, "**poll given twice in sensor\n", tok); ++ out->eprintf(out, "**poll given twice in sensor\n", tok); + return -1; + } + +@@ -449,27 +449,27 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + tok = mystrtok(NULL, " \t\n", toks); + if (!tok) { +- out->printf(out, "**No polled sensor handler given\n", tok); ++ out->eprintf(out, "**No polled sensor handler given\n", tok); + return -1; + } + + handler = ipmi_sensor_find_handler(tok); + if (!handler) { +- out->printf(out, "**Invalid sensor handler: %s\n", tok); ++ out->eprintf(out, "**Invalid sensor handler: %s\n", tok); + return -1; + } + + rv = handler->init(mc, lun, num, toks, handler->cb_data, &rcb_data, + &errstr); + if (rv) { +- out->printf(out, "**Error initializing sensor handler: %s\n", ++ out->eprintf(out, "**Error initializing sensor handler: %s\n", + errstr); + return rv; + } + } else if (strcmp(tok, "event-only") == 0) { + event_only = 1; + } else { +- out->printf(out, "**Unknown sensor option: %s\n", tok); ++ out->eprintf(out, "**Unknown sensor option: %s\n", tok); + return -1; + } + +@@ -477,7 +477,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + } + + if (handler && event_only) { +- out->printf(out, "**An event-only sensor cannot be polled\n"); ++ out->eprintf(out, "**An event-only sensor cannot be polled\n"); + return -1; + } + +@@ -488,7 +488,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + if (!rv && handler->postinit) { + rv = handler->postinit(rcb_data, &errstr); + if (rv) { +- out->printf(out, "**Error in sensor handler postinit: %s\n", ++ out->eprintf(out, "**Error in sensor handler postinit: %s\n", + errstr); + } + } +@@ -496,7 +496,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + rv = ipmi_mc_add_sensor(mc, lun, num, type, code, event_only); + } + if (rv) +- out->printf(out, "**Unable to add to sensor, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to add to sensor, error 0x%x\n", rv); + return rv; + } + +@@ -532,7 +532,7 @@ sensor_set_bit(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_mc_sensor_set_bit(mc, lun, num, bit, value, gen_event); + if (rv) +- out->printf(out, "**Unable to set sensor bit, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set sensor bit, error 0x%x\n", rv); + return rv; + } + +@@ -563,7 +563,7 @@ sensor_set_bit_clr_rest(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char ** + + rv = ipmi_mc_sensor_set_bit_clr_rest(mc, lun, num, bit, gen_event); + if (rv) +- out->printf(out, "**Unable to set sensor bit, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set sensor bit, error 0x%x\n", rv); + return rv; + } + +@@ -594,7 +594,7 @@ sensor_set_value(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_mc_sensor_set_value(mc, lun, num, value, gen_event); + if (rv) +- out->printf(out, "**Unable to set sensor value, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set sensor value, error 0x%x\n", rv); + return rv; + } + +@@ -637,7 +637,7 @@ sensor_set_hysteresis(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **to + rv = ipmi_mc_sensor_set_hysteresis(mc, lun, num, support, positive, + negative); + if (rv) +- out->printf(out, "**Unable to set sensor hysteresis, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set sensor hysteresis, error 0x%x\n", rv); + return rv; + } + +@@ -682,7 +682,7 @@ sensor_set_threshold(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **tok + rv = ipmi_mc_sensor_set_threshold(mc, lun, num, support, + enabled, 1, thresholds); + if (rv) +- out->printf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv); + return rv; + } + +@@ -759,7 +759,7 @@ sensor_set_event_support(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char * + assert_support, deassert_support, + assert_enabled, deassert_enabled); + if (rv) +- out->printf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv); + return rv; + } + +@@ -819,7 +819,7 @@ mc_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + else if (strcmp("persist_sdr", tok) == 0) + flags |= IPMI_MC_PERSIST_SDR; + else { +- out->printf(out, "**Invalid MC flag: %s\n", tok); ++ out->eprintf(out, "**Invalid MC flag: %s\n", tok); + return -1; + } + } +@@ -833,7 +833,7 @@ mc_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + device_revision, major_fw_rev, minor_fw_rev, + device_support, mfg_id, product_id, flags); + if (rv) +- out->printf(out, "**Unable to add the MC, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to add the MC, error 0x%x\n", rv); + return rv; + } + +@@ -890,7 +890,7 @@ mc_set_power(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_mc_set_power(mc, power, gen_int); + if (rv) +- out->printf(out, "**Unable to set power, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set power, error 0x%x\n", rv); + return rv; + } + +@@ -916,7 +916,7 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + tok = mystrtok(NULL, " \t\n", toks); + if (!tok) { +- out->printf(out, "**No FRU data type given"); ++ out->eprintf(out, "**No FRU data type given"); + return -1; + } + if (strcmp(tok, "file") == 0) { +@@ -929,13 +929,13 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = get_delim_str(toks, &frufn, &errstr); + if (rv) { +- out->printf(out, "**Error with FRU filename: %d", strerror(rv)); ++ out->eprintf(out, "**Error with FRU filename: %d", strerror(rv)); + return rv; + } + rv = ipmi_mc_add_fru_file(mc, devid, length, file_offset, + (void *) frufn); + if (rv) +- out->printf(out, "**Unable to add FRU file, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to add FRU file, error 0x%x\n", rv); + + } else if (strcmp(tok, "data") == 0) { + for (i=0; iprintf(out, "**Error 0x%x in data byte %d\n", rv, i); ++ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i); + return rv; + } + } + + rv = emu_get_uchar(out, toks, &data[i], "data byte", 1); + if (rv != ENOSPC) { +- out->printf(out, "**Error: input data too long for FRU\n", rv, i); ++ out->eprintf(out, "**Error: input data too long for FRU\n", rv, i); + return EINVAL; + } + +@@ -958,9 +958,9 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_mc_add_fru_data(mc, devid, length, NULL, data); + if (rv) +- out->printf(out, "**Unable to add FRU data, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to add FRU data, error 0x%x\n", rv); + } else { +- out->printf(out, "**FRU type not given, need file or data\n"); ++ out->eprintf(out, "**FRU type not given, need file or data\n"); + rv = EINVAL; + } + return rv; +@@ -981,28 +981,28 @@ mc_dump_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_mc_get_fru_data_len(mc, devid, &length); + if (rv) { +- out->printf(out, "**Unable to dump FRU data, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to dump FRU data, error 0x%x\n", rv); + goto out; + } + + data = malloc(length); + if (!data) { +- out->printf(out, "**Unable to dump FRU data, out of memory\n", rv); ++ out->eprintf(out, "**Unable to dump FRU data, out of memory\n", rv); + goto out; + } + + rv = ipmi_mc_get_fru_data(mc, devid, length, data); + if (rv) { +- out->printf(out, "**Unable to dump FRU data, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to dump FRU data, error 0x%x\n", rv); + goto out; + } + + for (i=0; i 0) && ((i % 8) == 0)) +- out->printf(out, "\n"); +- out->printf(out, " 0x%2.2x", data[i]); ++ out->eprintf(out, "\n"); ++ out->eprintf(out, " 0x%2.2x", data[i]); + } +- out->printf(out, "\n"); ++ out->eprintf(out, "\n"); + + out: + if (data) +@@ -1021,7 +1021,7 @@ mc_setbmc(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + return rv; + rv = ipmi_emu_set_bmc_mc(emu, ipmb); + if (rv) +- out->printf(out, "**Invalid IPMB address\n"); ++ out->eprintf(out, "**Invalid IPMB address\n"); + return rv; + } + +@@ -1032,7 +1032,7 @@ atca_enable(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_emu_atca_enable(emu); + if (rv) +- out->printf(out, "**Unable to enable ATCA mode, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to enable ATCA mode, error 0x%x\n", rv); + return rv; + } + +@@ -1056,7 +1056,7 @@ atca_set_site(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_emu_atca_set_site(emu, hw_address, site_type, site_number); + if (rv) +- out->printf(out, "**Unable to set site type, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set site type, error 0x%x\n", rv); + return rv; + } + +@@ -1072,7 +1072,7 @@ mc_set_num_leds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + rv = ipmi_mc_set_num_leds(mc, count); + if (rv) +- out->printf(out, "**Unable to set number of LEDs, error 0x%x\n", rv); ++ out->eprintf(out, "**Unable to set number of LEDs, error 0x%x\n", rv); + return rv; + } + +@@ -1085,7 +1085,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + err = get_delim_str(toks, &filename, &errstr); + if (err) { +- out->printf(out, "Could not get include filename: %s\n", errstr); ++ out->eprintf(out, "Could not get include filename: %s\n", errstr); + return err; + } + +@@ -1097,7 +1097,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + { + char *nf = malloc(strlen(BASE_CONF_STR) + strlen(filename) + 2); + if (!nf) { +- out->printf(out, "Out of memory in include\n", errstr); ++ out->eprintf(out, "Out of memory in include\n", errstr); + goto out_err; + } + strcpy(nf, BASE_CONF_STR); +@@ -1107,7 +1107,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + filename = nf; + err = read_command_file(out, emu, filename); + if (err) { +- out->printf(out, "Could not read include file %s\n", filename); ++ out->eprintf(out, "Could not read include file %s\n", filename); + } + } + +@@ -1147,7 +1147,7 @@ debug_cmd(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + } else if (strcmp(tok, "sol") == 0) { + level |= DEBUG_SOL; + } else { +- out->printf(out, "Invalid debug level '%s', options are 'raw' and 'msg'\n", ++ out->eprintf(out, "Invalid debug level '%s', options are 'raw' and 'msg'\n", + tok); + return EINVAL; + } +@@ -1168,7 +1168,7 @@ persist_cmd(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + } else if (strcmp(tok, "off") == 0) { + persist_enable = 0; + } else { +- out->printf(out, "Invalid persist vale '%s', options are 'on' and 'off'\n", ++ out->eprintf(out, "Invalid persist vale '%s', options are 'on' and 'off'\n", + tok); + return EINVAL; + } +@@ -1194,18 +1194,18 @@ do_define(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks) + + name = mystrtok(NULL, " \t\n", toks); + if (!name) { +- out->printf(out, "No variable name given for define\n"); ++ out->eprintf(out, "No variable name given for define\n"); + return EINVAL; + } + err = get_delim_str(toks, &value, &errstr); + if (err) { +- out->printf(out, "Could not get variable %s value: %s\n", name, errstr); ++ out->eprintf(out, "Could not get variable %s value: %s\n", name, errstr); + return err; + } + err = add_variable(name, value); + if (err) { + free(value); +- out->printf(out, "Out of memory setting variable %s\n", name); ++ out->eprintf(out, "Out of memory setting variable %s\n", name); + return err; + } + return 0; +@@ -1301,7 +1301,7 @@ ipmi_emu_cmd(emu_out_t *out, emu_data_t *emu, char *cmd_str) + return rv; + rv = ipmi_emu_get_mc_by_addr(emu, ipmb, &mc); + if (rv) { +- out->printf(out, "**Invalid MC address\n"); ++ out->eprintf(out, "**Invalid MC address\n"); + return rv; + } + } +@@ -1312,7 +1312,7 @@ ipmi_emu_cmd(emu_out_t *out, emu_data_t *emu, char *cmd_str) + } + } + +- out->printf(out, "**Unknown command: %s\n", cmd); ++ out->eprintf(out, "**Unknown command: %s\n", cmd); + + out: + return rv; +diff --git a/lanserv/ipmi_sim.c b/lanserv/ipmi_sim.c +index 9472cce..30c4f27 100644 +--- a/lanserv/ipmi_sim.c ++++ b/lanserv/ipmi_sim.c +@@ -607,8 +607,8 @@ isim_log(sys_data_t *sys, int logtype, msg_t *msg, const char *format, + + con = data->consoles; + while (con) { +- con->out.printf(&con->out, "%s", str); +- con->out.printf(&con->out, "\n"); ++ con->out.eprintf(&con->out, "%s", str); ++ con->out.eprintf(&con->out, "\n"); + con = con->next; + } + #if HAVE_SYSLOG +@@ -956,7 +956,7 @@ console_bind_ready(int fd, void *cb_data, os_hnd_fd_id_t *id) + newcon->shutdown_on_close = 0; + newcon->telnet = 1; + newcon->tn_pos = 0; +- newcon->out.printf = emu_printf; ++ newcon->out.eprintf = emu_printf; + newcon->out.data = newcon; + + setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); +@@ -1463,10 +1463,10 @@ main(int argc, const char *argv[]) + stdio_console.telnet = 0; + stdio_console.tn_pos = 0; + if (nostdio) { +- stdio_console.out.printf = dummy_printf; ++ stdio_console.out.eprintf = dummy_printf; + stdio_console.out.data = &stdio_console; + } else { +- stdio_console.out.printf = emu_printf; ++ stdio_console.out.eprintf = emu_printf; + stdio_console.out.data = &stdio_console; + } + stdio_console.next = NULL; +-- +2.14.1 + diff --git a/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch b/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch new file mode 100644 index 00000000000..d4e02be4508 --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch @@ -0,0 +1,25 @@ +Do not install pyc and pyo for python module + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Yi Zhao +--- + swig/python/Makefile.am | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/swig/python/Makefile.am b/swig/python/Makefile.am +index da95a81..97a62bf 100644 +--- a/swig/python/Makefile.am ++++ b/swig/python/Makefile.am +@@ -33,8 +33,6 @@ CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc + install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo + $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR) + $(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)" +- $(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)" +- $(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)" + if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \ + $(INSTALL) -d $(DESTDIR)$(bindir); \ + $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\ +-- +1.9.1 + diff --git a/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch b/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch new file mode 100644 index 00000000000..9a568b2b224 --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch @@ -0,0 +1,22 @@ +Author: Aws Ismail +Date: Thu Jun 7 16:00:13 2012 -0400 + + This patch fixes the error during the install stage when + creating a symbolic link for opeipmish in openipmi/cmdlang + + Upstream-Status: Pending + + Signed-off-by: Aws Ismail + +diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am +index 92d6e83..f6039f9 100644 +--- a/cmdlang/Makefile.am ++++ b/cmdlang/Makefile.am +@@ -36,6 +36,7 @@ CLEANFILES = libOpenIPMIcmdlang.map + # compatability. + install-data-local: + rm -f $(DESTDIR)$(bindir)/ipmish ++ mkdir -p $(DESTDIR)$(bindir)/ + $(LN_S) openipmish $(DESTDIR)$(bindir)/ipmish + + uninstall-local: diff --git a/meta-networking/recipes-support/openipmi/files/include_sys_types.patch b/meta-networking/recipes-support/openipmi/files/include_sys_types.patch new file mode 100644 index 00000000000..58ec5d88343 --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/include_sys_types.patch @@ -0,0 +1,17 @@ +include sys/types.h for u_int32_t + +ui.c:340:5: error: unknown type name 'u_int32_t'; did you mean 'uint32_t'? + u_int32_t addr; + ^~~~~~~~~ +Index: OpenIPMI-2.0.22/ui/ui.c +=================================================================== +--- OpenIPMI-2.0.22.orig/ui/ui.c ++++ OpenIPMI-2.0.22/ui/ui.c +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + #include + + #include diff --git a/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch b/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch new file mode 100644 index 00000000000..51a398ba531 --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch @@ -0,0 +1,41 @@ +Subject: [PATCH] ipmi-init: fix the arguments + +The functions success/failure/warning defined in /etc/init.d/functions +(provided by initscripts) only accepts numeric argument as return code, +not a string. + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Jackie Huang +--- + ipmi.init | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/ipmi.init b/ipmi.init +index 2ebcd94..d8161c5 100644 +--- a/ipmi.init ++++ b/ipmi.init +@@ -45,17 +45,17 @@ elif [ -r /etc/init.d/functions ]; then + case "$ACTION" in + success) + echo -n $* +- success "$*" ++ success 0 + echo + ;; + failure) + echo -n $* +- failure "$*" ++ failure 1 + echo + ;; + warning) + echo -n $* +- warning "$*" ++ warning 0 + echo + ;; + *) +-- +1.9.1 + diff --git a/meta-networking/recipes-support/openipmi/files/ipmi.service b/meta-networking/recipes-support/openipmi/files/ipmi.service new file mode 100644 index 00000000000..6fe1378191d --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/ipmi.service @@ -0,0 +1,12 @@ +[Unit] +Description=IPMI Driver +After=network.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@LIBEXECDIR@/openipmi-helper start +ExecStop=@LIBEXECDIR@/openipmi-helper stop-all + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/openipmi/files/openipmi-helper b/meta-networking/recipes-support/openipmi/files/openipmi-helper new file mode 100755 index 00000000000..4cebfb9c6ae --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/openipmi-helper @@ -0,0 +1,512 @@ +#!/bin/sh +############################################################################# +# +# ipmi: OpenIPMI Driver helper script +# +# Authors: Jan Safranek +# +# Based on IPMI init script by: +# Matt Domsch +# Chris Poblete +# +# Status return code bits +# no bits set = no errors +# bit 0 set = minimum modules aren't loaded +# bit 1 set = requested feature module isn't loaded +# bit 2 set = /dev/ipmi0 (or /dev/imb if using that instead) doesn't exist +# bit 3 set = /dev/watchdog doesn't exist +# bit 4 set = lockfile doesn't exist +# bit 5 set = modules are loaded even when asked to be unloaded + +CONFIGFILE=/etc/sysconfig/ipmi +# source config info +[ -r ${CONFIGFILE} ] && . ${CONFIGFILE} + +############################################################################# +# GLOBALS +############################################################################# +MODULE_NAME="ipmi" +INTF_NUM=0 + +IPMI_SMB_MODULE_NAME="ipmi_smb" +IPMI_SI_MODULE_NAME="ipmi_si" +kernel=`uname -r | cut -d. -f1-2` +if [ "${kernel}" == "2.4" ]; then + IPMI_SMB_MODULE_NAME="ipmi_smb_intf" + IPMI_SI_MODULE_NAME="ipmi_si_drv" +fi + +MODULES_INTERFACES="" +[ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf" +[ "${IPMI_IMB}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_imb" + +MODULES_FEATURES="" +[ "${IPMI_WATCHDOG}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_watchdog" +[ "${IPMI_POWEROFF}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_poweroff" + +MODULES_HW="" +[ "${IPMI_SI}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SI_MODULE_NAME}" +[ "${IPMI_SMB}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SMB_MODULE_NAME}" + +MODULES_BASE="ipmi_msghandler" +MODULES="${MODULES_INTERFACES} ${MODULES_FEATURES} ${MODULES_HW} ${MODULES_BASE}" + +RETVAL=0 +LOCKFILE=/var/lock/subsys/ipmi +DEV_IPMI_TIMEOUT=150 + +UDEV_EXISTS=0 +if [ -e /sbin/udev -o -e /sbin/udevd ]; then + UDEV_EXISTS=1 +fi + +############################################################################# +# NOTES: +# * /dev/ipmi0 is unconditionally deleted here on ipmi_devintf unload, +# because SLES9 and RHEL4 kernels don't send a message for udev to delete +# it for us. +# +############################################################################# + +modules_loaded_verbose() +{ + OnePlusLoaded=0 + OnePlusUnloaded=0 + for m in $@; do + if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then + echo "$m module loaded." + OnePlusLoaded=1 + else + echo "$m module not loaded." + OnePlusUnloaded=1 + fi + done +} + +modules_loaded() +{ + OnePlusLoaded=0 + OnePlusUnloaded=0 + for m in $@; do + if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then + OnePlusLoaded=1 + else + OnePlusUnloaded=1 + fi + done +} + +device_node_exists () +{ + if [ -e "$1" ]; then + echo "$1 exists." + return 1 + fi + echo "$1 does not exist." + return 0 +} + +minimum_modules_loaded() +{ + rc_base=1 + rc_hw=1 + modules_loaded_verbose "${MODULES_BASE}" + [ ${OnePlusLoaded} -eq 0 ] && rc_base=0 + + modules_loaded_verbose "${MODULES_HW}" + [ ${OnePlusLoaded} -eq 0 ] && rc_hw=0 + + return $((rc_base && rc_hw)) +} + +############################################################################# + +load_si() +{ + if [ "${IPMI_SI}" = "yes" ]; then + modprobe ${IPMI_SI_MODULE_NAME} > /dev/null 2>&1 + modules_loaded ${IPMI_SI_MODULE_NAME} + [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1)) + fi +} + +load_smb() +{ + if [ "${IPMI_SMB}" = "yes" ]; then + modprobe ${IPMI_SMB_MODULE_NAME} > /dev/null 2>&1 + modules_loaded ${IPMI_SMB_MODULE_NAME} + [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1)) + fi +} + +load_hw_modules() +{ + load_si + load_smb +} + +start_watchdog_common() +{ + load_hw_modules + modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} > /dev/null 2>&1 + modules_loaded ipmi_watchdog + [ ${OnePlusUnloaded} -ne 0 ] && + RETVAL=$((RETVAL | 2)) && + echo "Watchdog startup failed: cannot load ipmi_watchdog module" && + return + if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then + mknod -m 0600 /dev/watchdog c 10 130 + [ $? -ne 0 ] && + RETVAL=$((RETVAL | 8)) && + echo "Watchdog startup failed: cannot create /dev/watchdog" && + return + fi +} + +start_watchdog_quiet() +{ + [ "${IPMI_WATCHDOG}" != "yes" ] && + return + start_watchdog_common +} + +start_watchdog() +{ + [ "${IPMI_WATCHDOG}" != "yes" ] && + RETVAL=$((RETVAL | 2)) && + echo "Watchdog not configured" && + return + start_watchdog_common +} + +stop_watchdog() +{ + modprobe -q -r ipmi_watchdog > /dev/null 2>&1 + modules_loaded ipmi_watchdog + if [ ${OnePlusLoaded} -ne 0 ]; then + RETVAL=$((RETVAL | 32)) + echo "Watchog shutdown failed: cannot unload ipmi_watchdog module" + else + if [ "${IPMI_WATCHDOG}" = "yes" ]; then + [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog + fi + fi +} + +stop_watchdog_quiet() +{ + modprobe -q -r ipmi_watchdog > /dev/null 2>&1 + modules_loaded ipmi_watchdog + if [ ${OnePlusLoaded} -ne 0 ]; then + RETVAL=$((RETVAL | 32)) + else + if [ "${IPMI_WATCHDOG}" = "yes" ]; then + [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog + fi + fi +} + +start_powercontrol_common() +{ + local poweroff_opts="" + load_hw_modules + if [ "${IPMI_POWERCYCLE}" == "yes" ]; then + modinfo ipmi_poweroff 2>/dev/null | grep poweroff_control > /dev/null 2>&1 && \ + poweroff_opts="poweroff_control=2" + modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \ + poweroff_opts="poweroff_powercycle=1" + fi + modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1 + modules_loaded ipmi_poweroff + [ ${OnePlusUnloaded} -ne 0 ] && + RETVAL=$((RETVAL | 2)) && + echo "Powercontroll startup failed: cannot load ipmi_poweroff module" && + return +} + +start_powercontrol_quiet() +{ + [ "${IPMI_POWEROFF}" != "yes" ] && + return + start_powercontrol_common +} + +start_powercontrol() +{ + [ "${IPMI_POWEROFF}" != "yes" ] && + RETVAL=$((RETVAL | 2)) && + echo "Powercontroll not configured" && + return + start_powercontrol_common +} + +stop_powercontrol() +{ + modprobe -q -r ipmi_poweroff > /dev/null 2>&1 + modules_loaded ipmi_poweroff + if [ ${OnePlusLoaded} -ne 0 ]; then + RETVAL=$((RETVAL | 32)) + echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module" + fi +} + +stop_powercontrol_quiet() +{ + modprobe -q -r ipmi_poweroff > /dev/null 2>&1 + modules_loaded ipmi_poweroff + [ ${OnePlusLoaded} -ne 0 ] && RETVAL=$((RETVAL | 32)) +} + +############################################################################# +unload_all_ipmi_modules() +{ + stop_watchdog_quiet + stop_powercontrol_quiet + for m in ${MODULES}; do + modprobe -q -r ${m} > /dev/null 2>&1 + done + # delete interface node ONLY if ipmi_devintf is unloaded + [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] && + rm -f "/dev/ipmi${INTF_NUM}" +} + +unload_ipmi_modules_leave_features() +{ + for m in ${MODULES_INTERFACES}; do + modprobe -q -r ${m} > /dev/null 2>&1 + done + # delete interface node ONLY if ipmi_devintf is unloaded + [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] && + rm -f "/dev/ipmi${INTF_NUM}" + lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1 + if [ "$?" -ne "0" ]; then + stop_watchdog_quiet + stop_powercontrol_quiet + for m in ${MODULES}; do + modprobe -q -r ${m} > /dev/null 2>&1 + done + fi +} + +############################################################################# +load_ipmi_modules () +{ + local locdelay + modprobe ipmi_msghandler > /dev/null 2>&1 + modules_loaded ipmi_msghandler + [ ${OnePlusLoaded} -ne 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return + load_hw_modules + [ $((RETVAL & 1)) -eq 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return + + if [ "${DEV_IPMI}" = "yes" ]; then + modprobe ipmi_devintf > /dev/null 2>&1 + modules_loaded ipmi_devintf + RETVAL=$((RETVAL & ~2)) + [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) + if [ ${OnePlusLoaded} -eq 1 ]; then + if [ ${UDEV_EXISTS} -eq 0 ]; then + DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'` + rm -f /dev/ipmi${INTF_NUM} + mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4)) + fi + + # udev can take several seconds to create /dev/ipmi0, + # but it happens asynchronously, so delay here + locdelay=${DEV_IPMI_TIMEOUT} + while [ ! -e /dev/ipmi${INTF_NUM} -a ${locdelay} -gt 0 ]; do + locdelay=$((locdelay - 1)) + sleep 0.1 + done + fi + fi + + if [ "${IPMI_IMB}" = "yes" ]; then + modprobe ipmi_imb > /dev/null 2>&1 + modules_loaded ipmi_imb + RETVAL=$((RETVAL & ~2)) + [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) + if [ ${OnePlusLoaded} -eq 1 ]; then + DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'` + rm -f /dev/imb + mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4)) + fi + fi + + # Per Corey Minyard, essentially no one uses ipmi_radisys + # and we don't want to encourage its further use + # so it won't be handled here. + return +} + +############################################################################# +start() +{ + load_ipmi_modules + if [ ${RETVAL} -eq 0 ]; then + touch ${LOCKFILE} + else + if [ $((RETVAL & 1)) -eq 1 ]; then + echo "Startup failed." + else + touch ${LOCKFILE} && echo "Warning!?" + fi + fi + start_watchdog_quiet + start_powercontrol_quiet +} + +############################################################################# +stop() +{ + unload_ipmi_modules_leave_features + modules_loaded ${MODULES_INTERFACES} + if [ ${OnePlusLoaded} -ne 0 ]; then + RETVAL=$((RETVAL | 32)) + echo "Shutdown failed, something may be in use" + else + rm -f ${LOCKFILE} + fi +} + +stop_all() +{ + unload_all_ipmi_modules + modules_loaded ${MODULES} + if [ ${OnePlusLoaded} -ne 0 ]; then + RETVAL=$((RETVAL | 32)) + echo "Shutdown failed, something may be in use" + else + rm -f ${LOCKFILE} + fi +} + +############################################################################# +restart() +{ + stop_all + RETVAL=0 + start +} + +############################################################################# + +reload() +{ + stop_all + RETVAL=0 + start +} + +############################################################################# + +status_all() +{ + minimum_modules_loaded + [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) + + modules_loaded_verbose ${MODULES_FEATURES} ${MODULES_INTERFACES} + [ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2)) + + if [ "${DEV_IPMI}" = "yes" ]; then + device_node_exists /dev/ipmi${INTF_NUM} + [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) + fi + + if [ "${IPMI_IMB}" = "yes" ]; then + device_node_exists /dev/imb + [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) + fi + + if [ "${IPMI_WATCHDOG}" = "yes" ]; then + device_node_exists /dev/watchdog + [ $? -eq 0 ] && RETVAL=$((RETVAL | 8)) + fi + + [ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16)) +} + +status() +{ + minimum_modules_loaded + [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) + + if [ "${DEV_IPMI}" = "yes" ]; then + modules_loaded_verbose ipmi_devintf + [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) + + device_node_exists /dev/ipmi${INTF_NUM} + [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) + fi + + if [ "${IPMI_IMB}" = "yes" ]; then + device_node_exists /dev/imb + [ $? -eq 0 ] && RETVAL=$((RETVAL | 4)) + fi +} + +status_watchdog() +{ + minimum_modules_loaded + [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) + + modules_loaded_verbose ipmi_watchdog + [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) + + device_node_exists /dev/watchdog + [ $? -eq 0 ] && RETVAL=$((RETVAL | 8)) +} + +status_powercontrol() +{ + minimum_modules_loaded + [ $? -eq 0 ] && RETVAL=$((RETVAL | 1)) + + modules_loaded_verbose ipmi_powercontrol + [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2)) +} + +############################################################################# +usage () +{ + echo $"Usage: $0 {start|stop|status" 1>&2 + echo $" restart|condrestart|try-restart|reload|force-reload" 1>&2 + echo $" start-watchdog|stop-watchdog|status-watchdog" 1>&2 + echo $" start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2 + echo $" stop-all|status-all}" 1>&2 + RETVAL=2 +} + +condrestart () +{ + [ -e ${LOCKFILE} ] && restart +} + +############################################################################# +# MAIN +############################################################################# +case "$1" in + start) start ;; + stop) stop ;; + restart) restart ;; + force-reload) reload ;; + reload) reload ;; + status) status ;; + status-all) status_all ;; + condrestart) condrestart ;; + try-restart) condrestart ;; + start-watchdog) start_watchdog ;; + stop-watchdog) stop_watchdog ;; + status-watchdog) status_watchdog ;; + start-powercontrol) start_powercontrol ;; + stop-powercontrol) stop_powercontrol ;; + status-powercontrol) status_powercontrol ;; + stop-all) stop_all ;; + *) usage ;; +esac + +exit ${RETVAL} + +############################################################################# +# end of file +############################################################################# + diff --git a/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch b/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch new file mode 100644 index 00000000000..1fa68f9bac2 --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch @@ -0,0 +1,26 @@ +Author: Aws Ismail +Date: Thu Jun 7 12:28:34 2012 -0400 + + This patch was carried over from WRL4.3 (openipmi v2.0.16) + + It was updated for openipmi v2.0.19 + + Disable making openipmigui man page since we don't need it + + Upstream-Status: Pending + + Signed-off-by: Aws Ismail + Signed-off-by: Yi Zhao + +diff --git a/man/Makefile.am b/man/Makefile.am +index 632f55b..5ce79f5 100644 +--- a/man/Makefile.am ++++ b/man/Makefile.am +@@ -1,6 +1,6 @@ + + man_MANS = ipmi_ui.1 openipmicmd.1 openipmish.1 ipmi_cmdlang.7 \ +- openipmigui.1 openipmi_conparms.7 solterm.1 rmcp_ping.1 \ ++ openipmi_conparms.7 solterm.1 rmcp_ping.1 \ + openipmi_eventd.1 + + EXTRA_DIST = $(man_MANS) diff --git a/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch b/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch new file mode 100644 index 00000000000..83485a9e608 --- /dev/null +++ b/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch @@ -0,0 +1,50 @@ +From aa0dc0783a6ff5fb56c914b640836223e3c192bb Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Mon, 29 Dec 2014 18:16:04 +0800 +Subject: [PATCH] remove host path from la_LDFLAGS + +Upstream-Status: Inappropriate [ cross compile specific ] + +Signed-off-by: Jackie Huang +--- + cmdlang/Makefile.am | 2 +- + glib/Makefile.am | 4 ++-- + tcl/Makefile.am | 2 +- + unix/Makefile.am | 4 ++-- + 4 files changed, 6 insertions(+), 6 deletions(-) + +Index: OpenIPMI-2.0.24/cmdlang/Makefile.am +=================================================================== +--- OpenIPMI-2.0.24.orig/cmdlang/Makefile.am ++++ OpenIPMI-2.0.24/cmdlang/Makefile.am +@@ -15,8 +15,7 @@ libOpenIPMIcmdlang_la_SOURCES = cmdlang. + libOpenIPMIcmdlang_la_LIBADD = -lm \ + $(top_builddir)/utils/libOpenIPMIutils.la \ + $(top_builddir)/lib/libOpenIPMI.la +-libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ +- -L$(libdir) ++libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) + + bin_PROGRAMS = openipmish + +Index: OpenIPMI-2.0.24/unix/Makefile.am +=================================================================== +--- OpenIPMI-2.0.24.orig/unix/Makefile.am ++++ OpenIPMI-2.0.24/unix/Makefile.am +@@ -10,14 +10,12 @@ lib_LTLIBRARIES = libOpenIPMIposix.la li + libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c + libOpenIPMIpthread_la_LIBADD = -lpthread $(GDBM_LIB) \ + $(top_builddir)/utils/libOpenIPMIutils.la $(RT_LIB) +-libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ +- -L$(libdir) ++libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) + + libOpenIPMIposix_la_SOURCES = posix_os_hnd.c selector.c + libOpenIPMIposix_la_LIBADD = $(top_builddir)/utils/libOpenIPMIutils.la \ + $(GDBM_LIB) $(RT_LIB) +-libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \ +- -L$(libdir) ++libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) + + noinst_HEADERS = heap.h + diff --git a/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb b/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb new file mode 100644 index 00000000000..a4f63c5f4df --- /dev/null +++ b/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb @@ -0,0 +1,110 @@ +SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools" +DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \ +to allow full access to all IPMI information on a server \ +and to abstract it to a level that will make it easy to use" + +HOMEPAGE = "http://openipmi.sourceforge.net" + +DEPENDS = " \ + glib-2.0 \ + ncurses \ + net-snmp \ + openssl \ + popt \ + python \ + swig-native \ + " + +LICENSE = "GPLv2 & LGPLv2.1 & BSD" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ + file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \ + " + +SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \ + file://fix-symlink-install-error-in-cmdlang.patch \ + file://openipmi-no-openipmigui-man.patch \ + file://openipmi-remove-host-path-from-la_LDFLAGS.patch \ + file://ipmi-init-fix-the-arguments.patch \ + file://do-not-install-pyc-and-pyo.patch \ + file://include_sys_types.patch \ + file://openipmi-helper \ + file://ipmi.service \ + file://0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch \ + " + +S = "${WORKDIR}/OpenIPMI-${PV}" +SRC_URI[md5sum] = "58f9542cbfcb5fe250b77cf88345e1ec" +SRC_URI[sha256sum] = "bca39a27071278a8b74610181ede8df51e155e5e9031bc8eaa3699d1720292b4" + +inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd + +EXTRA_OECONF = "--disable-static \ + --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \ + --with-python='${STAGING_BINDIR_NATIVE}/python-native/python' \ + --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \ + --with-glibver=2.0" + +PACKAGECONFIG ??= "gdbm" +PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm," + +PACKAGES += "${PN}-perl ${PN}-python" + +FILES_${PN}-perl = " \ + ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \ + ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \ + " + +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" + +FILES_${PN}-dbg += " \ + ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \ + ${PYTHON_SITEPACKAGES_DIR}/.debug \ + " + +do_configure () { + + # Let's perform regular configuration first then handle perl issues. + autotools_do_configure + + perl_ver=`perl -V:version | cut -d\' -f 2` + + # Force openipmi perl bindings to be compiled using perl-native instead of + # the host's perl. Set the proper install directory for the resulting + # openipmi.pm and openipmi.so + for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do + echo "SAL: i = $i" + echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE" + echo "SAL: libdir = $libdir" + sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i + sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i + done +} + +do_install_append () { + echo "SAL: D = $D" + echo "SAL: libdir = $libdir" + install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d + install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi + install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi + # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory + # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv. + if [ -d ${D}${libdir}/perl5 ] + then + mv ${D}${libdir}/perl5 ${D}${libdir}/perl + fi + + # for systemd + install -d ${D}${systemd_unitdir}/system + install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system + sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service + install -d ${D}${libexecdir} + install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir} +} + +INITSCRIPT_NAME = "ipmi" +INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ." + +SYSTEMD_SERVICE_${PN} = "ipmi.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf b/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf index 4a3dc4a4606..1205806d52a 100644 --- a/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf +++ b/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf @@ -1 +1 @@ -d /var/run/openvpn 0755 root root - +d @LOCALSTATEDIR@/run/openvpn 0755 root root - diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.3.6.bb b/meta-networking/recipes-support/openvpn/openvpn_2.3.6.bb deleted file mode 100644 index 08f30b50f5b..00000000000 --- a/meta-networking/recipes-support/openvpn/openvpn_2.3.6.bb +++ /dev/null @@ -1,67 +0,0 @@ -SUMMARY = "A full-featured SSL VPN solution via tun device." -HOMEPAGE = "http://openvpn.sourceforge.net" -SECTION = "console/network" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=5aac200199fde47501876cba7263cb0c" -DEPENDS = "lzo openssl iproute2 ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" - -inherit autotools systemd - -SRC_URI = "http://swupdate.openvpn.org/community/releases/openvpn-${PV}.tar.gz \ - file://openvpn \ - file://openvpn@.service \ - file://openvpn-volatile.conf" - -SRC_URI[md5sum] = "6ca03fe0fd093e0d01601abee808835c" -SRC_URI[sha256sum] = "7baed2ff39c12e1a1a289ec0b46fcc49ff094ca58b8d8d5f29b36ac649ee5b26" - -SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service" -SYSTEMD_AUTO_ENABLE = "disable" - -CFLAGS += "-fno-inline" - -# I want openvpn to be able to read password from file (hrw) -EXTRA_OECONF += "--enable-password-save --enable-iproute2" -EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}" - -# Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host. -EXTRA_OECONF += "IPROUTE=/sbin/ip" - -do_install_append() { - install -d ${D}/${sysconfdir}/init.d - install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d - - install -d ${D}/${sysconfdir}/openvpn - install -d ${D}/${sysconfdir}/openvpn/sample - install -m 755 ${S}/sample/sample-config-files/loopback-server ${D}${sysconfdir}/openvpn/sample/loopback-server.conf - install -m 755 ${S}/sample/sample-config-files/loopback-client ${D}${sysconfdir}/openvpn/sample/loopback-client.conf - install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys - install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys - - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}/${systemd_unitdir}/system - install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system - install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-server.service - install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-client.service - - install -d ${D}/${localstatedir} - install -d ${D}/${localstatedir}/lib - install -d -m 710 ${D}/${localstatedir}/lib/openvpn - install -d -m 755 ${D}/${localstatedir}/run/ - install -d -m 755 ${D}/${localstatedir}/run/openvpn - - install -d ${D}${sysconfdir}/tmpfiles.d - install -m 0644 ${WORKDIR}/openvpn-volatile.conf ${D}${sysconfdir}/tmpfiles.d/openvpn.conf - fi -} - -PACKAGES =+ " ${PN}-sample " - -RRECOMMENDS_${PN} = "kernel-module-tun" - -FILES_${PN}-dbg += "${libdir}/openvpn/plugins/.debug" -FILES_${PN} += "${systemd_unitdir}/system/openvpn@.service \ - /run" -FILES_${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \ - ${systemd_unitdir}/system/openvpn@loopback-client.service \ - ${sysconfdir}/openvpn/sample/" diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.4.3.bb b/meta-networking/recipes-support/openvpn/openvpn_2.4.3.bb new file mode 100644 index 00000000000..90097f32a76 --- /dev/null +++ b/meta-networking/recipes-support/openvpn/openvpn_2.4.3.bb @@ -0,0 +1,67 @@ +SUMMARY = "A full-featured SSL VPN solution via tun device." +HOMEPAGE = "http://openvpn.sourceforge.net" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=e9b64491ec98eb6c6493ac5e4118f107" +DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +inherit autotools systemd + +SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \ + file://openvpn \ + file://openvpn@.service \ + file://openvpn-volatile.conf" + +SRC_URI[md5sum] = "e1929f82aff40f3d105e5f72aacff9c1" +SRC_URI[sha256sum] = "cee3d3ca462960a50a67c0ebd186e01b6d13db70275205663695152c9aca8579" + +SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service" +SYSTEMD_AUTO_ENABLE = "disable" + +CFLAGS += "-fno-inline" + +# I want openvpn to be able to read password from file (hrw) +EXTRA_OECONF += "--enable-iproute2" +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}" + +# Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host. +EXTRA_OECONF += "IPROUTE=${base_sbindir}/ip" + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d + + install -d ${D}/${sysconfdir}/openvpn + install -d ${D}/${sysconfdir}/openvpn/sample + install -m 755 ${S}/sample/sample-config-files/loopback-server ${D}${sysconfdir}/openvpn/sample/loopback-server.conf + install -m 755 ${S}/sample/sample-config-files/loopback-client ${D}${sysconfdir}/openvpn/sample/loopback-client.conf + install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys + install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-server.service + install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-client.service + + install -d ${D}/${localstatedir} + install -d ${D}/${localstatedir}/lib + install -d -m 710 ${D}/${localstatedir}/lib/openvpn + + install -d ${D}${sysconfdir}/tmpfiles.d + install -m 0644 ${WORKDIR}/openvpn-volatile.conf ${D}${sysconfdir}/tmpfiles.d/openvpn.conf + sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/tmpfiles.d/openvpn.conf + fi +} + +PACKAGES =+ " ${PN}-sample " + +RRECOMMENDS_${PN} = "kernel-module-tun" + +FILES_${PN}-dbg += "${libdir}/openvpn/plugins/.debug" +FILES_${PN} += "${systemd_unitdir}/system/openvpn@.service \ + ${sysconfdir}/tmpfiles.d \ + " +FILES_${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \ + ${systemd_unitdir}/system/openvpn@loopback-client.service \ + ${sysconfdir}/openvpn/sample/" diff --git a/meta-networking/recipes-support/phytool/phytool.bb b/meta-networking/recipes-support/phytool/phytool.bb new file mode 100644 index 00000000000..4ed3ed1e404 --- /dev/null +++ b/meta-networking/recipes-support/phytool/phytool.bb @@ -0,0 +1,15 @@ +SUMMARY = "PHY interface tool for Linux" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0" + +PV = "1.0.1+git${SRCPV}" +SRCREV = "3149bfdb4f513e2f0da0a7d0bc5d0873578696f2" +SRC_URI = "git://github.com/wkz/phytool.git" + +S = "${WORKDIR}/git" + +# The Makefile has "$PREFIX/bin" hardcoded into it, hence not using $bindir here +do_install() { + install -d ${D}${prefix}/bin + oe_runmake 'DESTDIR=${D}' 'PREFIX=${prefix}' install +} diff --git a/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch b/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch new file mode 100644 index 00000000000..eb549ded9df --- /dev/null +++ b/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch @@ -0,0 +1,28 @@ +From f3e04281bad361249a8dad0cde150a801d720f67 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 18:46:52 -0700 +Subject: [PATCH] configure: Dont use uname to determine target OS + +Helps with cross-compiling + +Signed-off-by: Khem Raj +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 6c35a72..f9714e2 100755 +--- a/configure ++++ b/configure +@@ -31,7 +31,7 @@ + #DEFS += -DSCOPED_ACL + # + +-OS=`uname` ++OS="Linux" + CFG=config.mk + TMP=`mktemp /tmp/XXXXXX` + BUGREPORT_URL="https://github.com/troglobit/pimd/issues" +-- +2.13.3 + diff --git a/meta-networking/recipes-support/pimd/pimd_2.1.8.bb b/meta-networking/recipes-support/pimd/pimd_2.1.8.bb deleted file mode 100644 index f0323618ddb..00000000000 --- a/meta-networking/recipes-support/pimd/pimd_2.1.8.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "pimd is a lightweight stand-alone PIM-SM v2 multicast routing daemon." -HOMEPAGE = "http://troglobit.com/pimd.html" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=94f108f91fab720d62425770b70dd790" - -SRC_URI = "ftp://troglobit.com/pimd/${BP}.tar.bz2" -SRC_URI[md5sum] = "a12448bc7c9bfcebf51a13ebf1ffa962" -SRC_URI[sha256sum] = "01016940543a0a6131d4e6c91b595d47e187012c59a298eec14c3dbc38564b3a" - -CFLAGS += "-I ${S}/include " - -do_install() { - unset datadir - unset mandir - oe_runmake 'DESTDIR=${D}' install -} - diff --git a/meta-networking/recipes-support/pimd/pimd_2.3.2.bb b/meta-networking/recipes-support/pimd/pimd_2.3.2.bb new file mode 100644 index 00000000000..2faa7cb1ced --- /dev/null +++ b/meta-networking/recipes-support/pimd/pimd_2.3.2.bb @@ -0,0 +1,20 @@ +SUMMARY = "pimd is a lightweight stand-alone PIM-SM v2 multicast routing daemon." +HOMEPAGE = "http://troglobit.com/pimd.html" +SECTION = "net" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=94f108f91fab720d62425770b70dd790" + +SRC_URI = "ftp://ftp.troglobit.com/pimd/${BP}.tar.gz \ + file://0001-configure-Dont-use-uname-to-determine-target-OS.patch \ + " +SRC_URI[md5sum] = "a3c03e40540980b2c06e265a17988e60" +SRC_URI[sha256sum] = "c77a9812751f114490a28a6839b16aac8b020c8d9fd6aa22bf3880c054e19f1d" + +EXTRA_OECONF_append_libc-musl = " --embedded-libc" + +inherit autotools-brokensep + +do_configure() { + oe_runconf +} + diff --git a/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch b/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch new file mode 100644 index 00000000000..f8eb3ae67a4 --- /dev/null +++ b/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch @@ -0,0 +1,33 @@ +From 40848547abf592c8d29b85ef1346001514944435 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 Jun 2017 10:14:20 -0700 +Subject: [PATCH] Fix build with format string checks + +Fixes +| ruli_addr.c:418:5: error: format not a string literal and no format arguments [-Werror=format-security] +| return fprintf(out, inet_ntoa(addr->ipv4)); +| ^~~~~~ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/ruli_addr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ruli_addr.c b/src/ruli_addr.c +index 00d5d0d..f1eabae 100644 +--- a/src/ruli_addr.c ++++ b/src/ruli_addr.c +@@ -415,7 +415,7 @@ int ruli_in_print(FILE *out, const _ruli_addr *addr, int family) + { + switch (family) { + case PF_INET: +- return fprintf(out, inet_ntoa(addr->ipv4)); ++ return fprintf(out, "%s", inet_ntoa(addr->ipv4)); + + case PF_INET6: + return ruli_inet6_print(out, &addr->ipv6); +-- +2.13.1 + diff --git a/meta-networking/recipes-support/ruli/files/0001-src-ruli_addr.c-Add-missing-format-string.patch b/meta-networking/recipes-support/ruli/files/0001-src-ruli_addr.c-Add-missing-format-string.patch new file mode 100644 index 00000000000..9044415ffbe --- /dev/null +++ b/meta-networking/recipes-support/ruli/files/0001-src-ruli_addr.c-Add-missing-format-string.patch @@ -0,0 +1,35 @@ +From d3fb471f53712e710fb5777b1b0851c46b7be64c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 25 Jun 2017 01:23:03 -0700 +Subject: [PATCH] src/ruli_addr.c: Add missing format string + +fixes + +| ruli_addr.c: In function 'ruli_in_snprint': +| ruli_addr.c:491:5: error: format not a string literal and no format arguments [-Werror=format-security] +| return snprintf(buf, size, inet_ntoa(addr->ipv4)); +| ^~~~~~ + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + src/ruli_addr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ruli_addr.c b/src/ruli_addr.c +index f1eabae..5f1fd4f 100644 +--- a/src/ruli_addr.c ++++ b/src/ruli_addr.c +@@ -488,7 +488,7 @@ int ruli_in_snprint(char *buf, size_t size, const _ruli_addr *addr, int family) + { + switch (family) { + case PF_INET: +- return snprintf(buf, size, inet_ntoa(addr->ipv4)); ++ return snprintf(buf, size, "%s", inet_ntoa(addr->ipv4)); + + case PF_INET6: + return ruli_inet6_snprint(buf, size, &addr->ipv6); +-- +2.13.1 + diff --git a/meta-networking/recipes-support/ruli/files/Makefile.patch b/meta-networking/recipes-support/ruli/files/Makefile.patch new file mode 100644 index 00000000000..60789a3d56f --- /dev/null +++ b/meta-networking/recipes-support/ruli/files/Makefile.patch @@ -0,0 +1,122 @@ +diff -Naur patch.org/ruli-0.36/Makefile patch.new/ruli-0.36/Makefile +--- ruli-0.36/Makefile 2015-09-10 15:14:13.952262350 -0400 ++++ ruli-0.36/Makefile 2015-09-10 15:14:38.628261620 -0400 +@@ -7,17 +7,17 @@ + .PHONY: default + default: + $(MAKE) -C src +- $(MAKE) -C sample ++# $(MAKE) -C sample + + .PHONY: clean + clean: + $(MAKE) -C src clean +- $(MAKE) -C sample clean ++# $(MAKE) -C sample clean + + .PHONY: install + install: + $(MAKE) -C src install +- $(MAKE) -C sample install ++# $(MAKE) -C sample install + + .PHONY: dpkg + dpkg: + +===================================================================== + +diff -Naur patch.org/git/src/Makefile patch.new/git/src/Makefile +--- ruli-0.36/src/Makefile 2005-06-13 12:34:53.000000000 -0400 ++++ ruli-0.36/src/Makefile 2015-09-11 09:46:06.290287347 -0400 +@@ -18,9 +18,9 @@ + # + # Debian packaging likes this: OOP_BASE_DIR = /usr + # +-OOP_BASE_DIR = /usr/local/oop +-OOP_INCLUDE_DIR = $(OOP_BASE_DIR)/include +-OOP_LIB_DIR = $(OOP_BASE_DIR)/lib ++#OOP_BASE_DIR = /usr/local/oop ++OOP_INCLUDE_DIR = ${PKG_CONFIG_SYSROOT_DIR}/$(includedir)/ ++#OOP_LIB_DIR = $(OOP_BASE_DIR)/lib + + # + # INSTALL_BASE_DIR indicates where RULI +@@ -30,11 +30,11 @@ + # + # Debian packaging likes this: INSTALL_BASE_DIR = $(DESTDIR)/usr + # +-INSTALL_BASE_DIR = ../install/ruli +-INSTALL_INCLUDE_DIR = $(INSTALL_BASE_DIR)/include +-INSTALL_LIB_DIR = $(INSTALL_BASE_DIR)/lib +-INSTALL_MAN_DIR = $(INSTALL_BASE_DIR)/share/man +-INSTALL_MAN3_DIR = $(INSTALL_MAN_DIR)/man3 ++#INSTALL_BASE_DIR = ../install/ruli ++#INSTALL_INCLUDE_DIR = $(INSTALL_BASE_DIR)/include ++#INSTALL_LIB_DIR = $(INSTALL_BASE_DIR)/lib ++#INSTALL_MAN_DIR = $(INSTALL_BASE_DIR)/share/man ++#INSTALL_MAN3_DIR = $(INSTALL_MAN_DIR)/man3 + + # SunOS, Linux + PLATFORM=$(shell uname) +@@ -45,7 +45,7 @@ + + WARN = -pedantic -ansi -Wshadow -Wpointer-arith -Wcast-qual \ + -Wcast-align -Wwrite-strings -Wredundant-decls +-CC = gcc ++#CC = gcc + + # gcc-specific options (not valid for g++) + ifeq ($(CC),gcc) +@@ -58,7 +58,7 @@ + FLAGS = $(DEBUG) -O2 -pipe -Wall -g -shared -D_REENTRANT \ + $(DEFINE_SOLARIS) -I. -I$(OOP_INCLUDE_DIR) + SOFT_CFLAGS = $(WARN) $(FLAGS) +-CFLAGS = $(WARN) -Werror $(FLAGS) ++CFLAGS = $(WARN) $(FLAGS) + LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \ + ruli_addr.o ruli_sock.o ruli_txt.o ruli_msg.o ruli_fsm.o \ + ruli_res.o ruli_parse.o ruli_host.o ruli_srv.o ruli_conf.o \ +@@ -66,7 +66,7 @@ + ruli_getaddrinfo.o + SHAREDOBJ = $(LIBOBJ:%.o=%.os) + SONAME = libruli.so.4 +-LDFLAGS = -L$(OOP_LIB_DIR) ++#LDFLAGS = -L$(OOP_LIB_DIR) + + COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c + SHARED_COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(SHARED) $(CFLAGS) -o $@ -c +@@ -89,19 +89,19 @@ + strip: ruli + strip $(SONAME) libruli.a + +-.PHONY: install +-install: ruli +- mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_MAN3_DIR) +- cp $(SONAME) libruli.a $(INSTALL_LIB_DIR) +- cp *.h $(INSTALL_INCLUDE_DIR) +- cp ../doc/man/*.3 $(INSTALL_MAN3_DIR) +- cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so +- @echo +- @echo "REMINDER:" +- @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:" +- @echo "# echo $(INSTALL_LIB_DIR) >> /etc/ld.so.conf" +- @echo "# ldconfig" +- @echo ++#.PHONY: install ++#install: ruli ++# mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_MAN3_DIR) ++# cp $(SONAME) libruli.a $(INSTALL_LIB_DIR) ++# cp *.h $(INSTALL_INCLUDE_DIR) ++# cp ../doc/man/*.3 $(INSTALL_MAN3_DIR) ++# cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so ++# @echo ++# @echo "REMINDER:" ++# @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:" ++# @echo "# echo $(INSTALL_LIB_DIR) >> /etc/ld.so.conf" ++# @echo "# ldconfig" ++# @echo + + .PHONY: ruli + ruli: $(SONAME) libruli.a + + diff --git a/meta-networking/recipes-support/ruli/ruli_0.36.bb b/meta-networking/recipes-support/ruli/ruli_0.36.bb new file mode 100644 index 00000000000..885796d2a59 --- /dev/null +++ b/meta-networking/recipes-support/ruli/ruli_0.36.bb @@ -0,0 +1,25 @@ +SUMMARY = "RULI stands for Resolver User Layer Interface It's a library built on top of an asynchronous DNS stub resolver" + +HOMEPAGE = "http://www.nongnu.org/ruli/" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +DEPENDS = "liboop" + +SRC_URI = "http://download.savannah.gnu.org/releases/ruli/ruli_${PV}.orig.tar.gz \ + file://Makefile.patch \ + file://0001-Fix-build-with-format-string-checks.patch \ + file://0001-src-ruli_addr.c-Add-missing-format-string.patch \ + " + +SRC_URI[md5sum] = "e73fbfdeadddb68a703a70cea5271468" +SRC_URI[sha256sum] = "11d32def5b514748fbd9ea8c88049ae99e1bb358efc74eb91a4d268a3999dbfa" + +do_install1() { + install -d ${D}${includedir}/ruli + install -d ${D}${libdir} + install -m 0644 ${S}/src/ruli*.h ${D}${includedir}/ruli + install -m 0644 ${S}/src/libruli.so ${D}${libdir} + install -m 0644 ${S}/src/libruli.so.4 ${D}${libdir} +} diff --git a/meta-networking/recipes-support/smcroute/smcroute_2.0.0.bb b/meta-networking/recipes-support/smcroute/smcroute_2.0.0.bb index c206cb92427..9b6fc2f38a3 100644 --- a/meta-networking/recipes-support/smcroute/smcroute_2.0.0.bb +++ b/meta-networking/recipes-support/smcroute/smcroute_2.0.0.bb @@ -1,7 +1,7 @@ SUMMARY = "Static Multicast Routing Daemon" DESCRIPTION = "SMCRoute is a daemon and command line tool to manipulate the multicast routing table in the UNIX kernel." HOMEPAGE = "http://troglobit.github.io/smcroute.html" -SECTION = "console/network" +SECTION = "net" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4" diff --git a/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb b/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb index 0eaa7ca4cfc..0531ffe640d 100644 --- a/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb +++ b/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb @@ -1,10 +1,11 @@ SUMMARY = "ssmping is a tool for checking whether one can receive SSM from a given host" HOMEPAGE = "http://www.venaas.no/multicast/ssmping/" +SECTION = "net" LICENSE = "ISC" LIC_FILES_CHKSUM = "file://asmping.c;beginline=2;endline=11;md5=1ca8d1a1ca931e5cfe604ebf20a78b71" SRC_URI = "http://www.venaas.no/multicast/ssmping/${BP}.tar.gz \ - file://0001-Makefile-tweak-install-dir.patch \ + file://0001-Makefile-tweak-install-dir.patch \ " SRC_URI[md5sum] = "ad8e3d13f6d72918f73be7e7975d7fad" SRC_URI[sha256sum] = "22103a37eaa28489169a0927bc01e0596c3485fc4d29fc8456c07fd2c70fca6d" @@ -12,5 +13,5 @@ SRC_URI[sha256sum] = "22103a37eaa28489169a0927bc01e0596c3485fc4d29fc8456c07fd2c7 CFLAGS += "-D_GNU_SOURCE " do_install() { - oe_runmake 'DESTDIR=${D}' 'PREFIX=${prefix}' install + oe_runmake 'DESTDIR=${D}' 'PREFIX=${prefix}' install } diff --git a/meta-networking/recipes-support/ssmtp/ssmtp/build-ouside_srcdir.patch b/meta-networking/recipes-support/ssmtp/ssmtp/build-ouside_srcdir.patch new file mode 100644 index 00000000000..d53cff249fb --- /dev/null +++ b/meta-networking/recipes-support/ssmtp/ssmtp/build-ouside_srcdir.patch @@ -0,0 +1,17 @@ +help compile when S != B + +Signed-off-by: Khem Raj +Upstream-Status: Pending +Index: ssmtp-2.64/Makefile.in +=================================================================== +--- ssmtp-2.64.orig/Makefile.in ++++ ssmtp-2.64/Makefile.in +@@ -24,7 +24,7 @@ INSTALLED_REVALIASES_FILE=$(REVALIASES_F + # Programs + GEN_CONFIG=$(srcdir)/generate_config + +-SRCS=ssmtp.c arpadate.c base64.c xgethostname.c @SRCS@ ++SRCS=$(srcdir)/ssmtp.c $(srcdir)/arpadate.c $(srcdir)/base64.c $(srcdir)/xgethostname.c @SRCS@ + + OBJS=$(SRCS:.c=.o) + diff --git a/meta-networking/recipes-support/ssmtp/ssmtp/use-DESTDIR.patch b/meta-networking/recipes-support/ssmtp/ssmtp/use-DESTDIR.patch new file mode 100644 index 00000000000..26d8527610a --- /dev/null +++ b/meta-networking/recipes-support/ssmtp/ssmtp/use-DESTDIR.patch @@ -0,0 +1,74 @@ +Use DESTDIR during install/uninstall, this helps +with cross or staged builds. Additionally pass LDFLAGS +during linking. + +Signed-off-by: Khem Raj +Upstream-Status: Pending + + +Index: ssmtp-2.64/Makefile.in +=================================================================== +--- ssmtp-2.64.orig/Makefile.in ++++ ssmtp-2.64/Makefile.in +@@ -46,40 +46,40 @@ all: ssmtp + + .PHONY: install + install: ssmtp $(GEN_CONFIG) +- $(INSTALL) -d -m 755 $(bindir) +- $(INSTALL) -s -m 755 ssmtp $(bindir)/ssmtp +- $(INSTALL) -d -m 755 $(mandir) +- $(INSTALL) -m 644 $(srcdir)/ssmtp.8 $(mandir)/ssmtp.8 +- $(INSTALL) -d -m 755 $(SSMTPCONFDIR) +- $(INSTALL) -m 644 $(srcdir)/revaliases $(INSTALLED_REVALIASES_FILE) +- $(GEN_CONFIG) $(INSTALLED_CONFIGURATION_FILE) ++ $(INSTALL) -d -m 755 $(DESTDIR)$(bindir) ++ $(INSTALL) -m 755 ssmtp $(DESTDIR)$(bindir)/ssmtp ++ $(INSTALL) -d -m 755 $(DESTDIR)$(mandir) ++ $(INSTALL) -m 644 $(srcdir)/ssmtp.8 $(DESTDIR)$(mandir)/ssmtp.8 ++ $(INSTALL) -d -m 755 $(DESTDIR)$(SSMTPCONFDIR) ++ $(INSTALL) -m 644 $(srcdir)/revaliases $(DESTDIR)$(INSTALLED_REVALIASES_FILE) ++ $(GEN_CONFIG) $(DESTDIR)$(INSTALLED_CONFIGURATION_FILE) + + + .PHONY: install-sendmail + install-sendmail: install +- $(RM) $(bindir)/sendmail +- $(LN_S) ssmtp $(bindir)/sendmail +- $(INSTALL) -d -m 755 $(libexecdir) +- $(RM) $(libexecdir)/sendmail +- $(LN_S) sendmail /lib/sendmail +- $(RM) $(mandir)/sendmail.8 +- $(LN_S) ssmtp.8 $(mandir)/sendmail.8 ++ $(RM) $(DESTDIR)$(bindir)/sendmail ++ $(LN_S) ssmtp $(DESTDIR)$(bindir)/sendmail ++ $(INSTALL) -d -m 755 $(DESTDIR)$(libexecdir) ++ $(RM) $(DESTDIR)$(libexecdir)/sendmail ++ $(LN_S) sendmail $(DESTDIR)/lib/sendmail ++ $(RM) $(DESTDIR)$(mandir)/sendmail.8 ++ $(LN_S) ssmtp.8 $(DESTDIR)$(mandir)/sendmail.8 + + .PHONY: uninstall + uninstall: +- $(RM) $(bindir)/ssmtp +- $(RM) $(mandir)/ssmtp.8 +- $(RM) $(CONFIGURATION_FILE) $(REVALIASES_FILE) +- $(RM) -r $(SSMTPCONFDIR) ++ $(RM) $(DESTDIR)$(bindir)/ssmtp ++ $(RM) $(DESTDIR)$(mandir)/ssmtp.8 ++ $(RM) $(DESTDIR)$(CONFIGURATION_FILE) $(DESTDIR)$(REVALIASES_FILE) ++ $(RM) -r $(DESTDIR)$(SSMTPCONFDIR) + + .PHONY: uninstall-sendmail + uninstall-sendmail: uninstall +- $(RM) $(bindir)/sendmail /lib/sendmail +- $(RM) $(mandir)/sendmail.8 ++ $(RM) $(DESTDIR)$(bindir)/sendmail $(DESTDIR)/lib/sendmail ++ $(RM) $(DESTDIR)$(mandir)/sendmail.8 + + # Binaries: + ssmtp: $(OBJS) +- $(CC) -o ssmtp $(OBJS) @LIBS@ $(CFLAGS) ++ $(CC) -o ssmtp $(OBJS) @LIBS@ $(CFLAGS) $(LDFLAGS) + + .PHONY: clean + clean: diff --git a/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb b/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb new file mode 100644 index 00000000000..9d4864d79a6 --- /dev/null +++ b/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb @@ -0,0 +1,31 @@ +SUMMARY = "extremely simple MTA to get mail off the system to a mail hub" +HOMEPAGE = "http://packages.qa.debian.org/s/ssmtp.html" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e" + +SRC_URI = "\ + ${DEBIAN_MIRROR}/main/s/${BPN}/${BPN}_${PV}.orig.tar.bz2 \ + file://build-ouside_srcdir.patch \ + file://use-DESTDIR.patch \ + " + +EXTRA_OECONF += "--mandir=${mandir}" + +EXTRA_OEMAKE = "GEN_CONFIG='/bin/true'" + +SRC_URI[md5sum] = "65b4e0df4934a6cd08c506cabcbe584f" +SRC_URI[sha256sum] = "22c37dc90c871e8e052b2cab0ad219d010fa938608cd66b21c8f3c759046fa36" + +inherit autotools pkgconfig + +DEPENDS += "openssl inetutils" + +do_install_append () { + install -d ${D}${mandir}/ + mv ${D}${exec_prefix}/man/* ${D}${mandir}/ + rmdir ${D}${exec_prefix}/man + ln -s ssmtp ${D}${sbindir}/sendmail + ln -s ssmtp ${D}${sbindir}/newaliases + ln -s ssmtp ${D}${sbindir}/mailq +} diff --git a/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch b/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch new file mode 100644 index 00000000000..7ebc398180d --- /dev/null +++ b/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch @@ -0,0 +1,26 @@ +From 2a3ab04bbdc4624792886aa51579eadb427ef99e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 07:42:11 -0700 +Subject: [PATCH] memory.h: Include stdint.h for uintptr_t + +Signed-off-by: Khem Raj +--- + src/libstrongswan/utils/utils/memory.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/libstrongswan/utils/utils/memory.h b/src/libstrongswan/utils/utils/memory.h +index b978e7c..55aaaf5 100644 +--- a/src/libstrongswan/utils/utils/memory.h ++++ b/src/libstrongswan/utils/utils/memory.h +@@ -22,6 +22,8 @@ + #ifndef MEMORY_H_ + #define MEMORY_H_ + ++#include ++ + /** + * Helper function that compares two binary blobs for equality + */ +-- +2.13.2 + diff --git a/meta-networking/recipes-support/strongswan/strongswan_5.2.1.bb b/meta-networking/recipes-support/strongswan/strongswan_5.2.1.bb deleted file mode 100644 index 6b913190c2c..00000000000 --- a/meta-networking/recipes-support/strongswan/strongswan_5.2.1.bb +++ /dev/null @@ -1,45 +0,0 @@ -DESCRIPTION = "strongSwan is an OpenSource IPsec implementation for the \ -Linux operating system." -SUMMARY = "strongSwan is an OpenSource IPsec implementation" -HOMEPAGE = "http://www.strongswan.org" -SECTION = "console/network" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "gmp openssl flex-native flex bison-native" - -SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \ - file://fix-funtion-parameter.patch \ -" - -SRC_URI[md5sum] = "dd3717c0aa59ab4591ca1812941ebb82" -SRC_URI[sha256sum] = "ea51ab33b5bb39fecaf10668833a9936583b42145948ae9da1ab98f74e939215" - -EXTRA_OECONF = "--enable-gmp \ - --enable-openssl \ - --without-lib-prefix \ -" - -EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" - -PACKAGECONFIG ??= "sqlite3 curl \ - ${@base_contains('DISTRO_FEATURES', 'ldap', 'ldap', '', d)} \ -" -PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3," -PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap," -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl," -PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4," -PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5," - -inherit autotools systemd pkgconfig - -RRECOMMENDS_${PN} = "kernel-module-ipsec" - -FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS} ${libdir}/ipsec/plugins/*.so" -FILES_${PN}-dbg += "${libdir}/ipsec/.debug ${libdir}/ipsec/plugins/.debug ${libexecdir}/ipsec/.debug" -FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la ${libdir}/ipsec/plugins/*.la" -FILES_${PN}-staticdev += "${libdir}/ipsec/*.a ${libdir}/ipsec/plugins/*.a" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "${BPN}.service" diff --git a/meta-networking/recipes-support/strongswan/strongswan_5.5.3.bb b/meta-networking/recipes-support/strongswan/strongswan_5.5.3.bb new file mode 100644 index 00000000000..3fb56bcfe7a --- /dev/null +++ b/meta-networking/recipes-support/strongswan/strongswan_5.5.3.bb @@ -0,0 +1,131 @@ +DESCRIPTION = "strongSwan is an OpenSource IPsec implementation for the \ +Linux operating system." +SUMMARY = "strongSwan is an OpenSource IPsec implementation" +HOMEPAGE = "http://www.strongswan.org" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "gmp openssl flex-native flex bison-native" + +SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \ + file://fix-funtion-parameter.patch \ + file://0001-memory.h-Include-stdint.h-for-uintptr_t.patch \ + " + +SRC_URI[md5sum] = "4afffe3c219bb2e04f09510905af836b" +SRC_URI[sha256sum] = "c5ea54b199174708de11af9b8f4ecf28b5b0743d4bc0e380e741f25b28c0f8d4" + +EXTRA_OECONF = " \ + --without-lib-prefix \ +" + +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" + + +PACKAGECONFIG ??= "charon curl gmp openssl stroke sqlite3 \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ldap', d)} \ +" +PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni" +PACKAGECONFIG[charon] = "--enable-charon,--disable-charon," +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,${PN}-plugin-curl" +PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp,${PN}-plugin-gmp" +PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap,${PN}-plugin-ldap" +PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,${PN}-plugin-mysql" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl,${PN}-plugin-openssl" +PACKAGECONFIG[scep] = "--enable-scepclient,--disable-scepclient," +PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4,${PN}-plugin-soup" +PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3,${PN}-plugin-sqlite" +PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke,,${PN}-plugin-stroke" +PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc" + +# requires swanctl +PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd," + +inherit autotools systemd pkgconfig + +RRECOMMENDS_${PN} = "kernel-module-ipsec" + +FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS}" +FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/ipsec/.debug ${libexecdir}/ipsec/.debug" +FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la" +FILES_${PN}-staticdev += "${libdir}/ipsec/*.a" + +CONFFILES_${PN} = "${sysconfdir}/*.conf ${sysconfdir}/ipsec.d/*.conf ${sysconfdir}/strongswan.d/*.conf" + +PACKAGES += "${PN}-plugins" +ALLOW_EMPTY_${PN}-plugins = "1" + +PACKAGES_DYNAMIC += "^${PN}-plugin-.*$" +NOAUTOPACKAGEDEBUG = "1" + +python split_strongswan_plugins () { + sysconfdir = d.expand('${sysconfdir}/strongswan.d/charon') + libdir = d.expand('${libdir}/ipsec/plugins') + dbglibdir = os.path.join(libdir, '.debug') + + def add_plugin_conf(f, pkg, file_regex, output_pattern, modulename): + dvar = d.getVar('PKGD', True) + oldfiles = d.getVar('CONFFILES_' + pkg, True) + newfile = '/' + os.path.relpath(f, dvar) + + if not oldfiles: + d.setVar('CONFFILES_' + pkg, newfile) + else: + d.setVar('CONFFILES_' + pkg, oldfiles + " " + newfile) + + split_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True) + do_split_packages(d, sysconfdir, '(.*)\.conf', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True, hook=add_plugin_conf) + + split_dbg_packages = do_split_packages(d, dbglibdir, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s-dbg', 'strongSwan %s plugin - Debugging files', prepend=True, extra_depends='${PN}-dbg') + split_dev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.la', '${PN}-plugin-%s-dev', 'strongSwan %s plugin - Development files', prepend=True, extra_depends='${PN}-dev') + split_staticdev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.a', '${PN}-plugin-%s-staticdev', 'strongSwan %s plugin - Development files (Static Libraries)', prepend=True, extra_depends='${PN}-staticdev') + + if split_packages: + pn = d.getVar('PN', True) + d.setVar('RRECOMMENDS_' + pn + '-plugins', ' '.join(split_packages)) + d.appendVar('RRECOMMENDS_' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages)) + d.appendVar('RRECOMMENDS_' + pn + '-dev', ' ' + ' '.join(split_dev_packages)) + d.appendVar('RRECOMMENDS_' + pn + '-staticdev', ' ' + ' '.join(split_staticdev_packages)) +} + +PACKAGESPLITFUNCS_prepend = "split_strongswan_plugins " + +# Install some default plugins based on default strongSwan ./configure options +# See https://wiki.strongswan.org/projects/strongswan/wiki/Pluginlist +RDEPENDS_${PN} += "\ + ${PN}-plugin-aes \ + ${PN}-plugin-attr \ + ${PN}-plugin-cmac \ + ${PN}-plugin-constraints \ + ${PN}-plugin-des \ + ${PN}-plugin-dnskey \ + ${PN}-plugin-hmac \ + ${PN}-plugin-kernel-netlink \ + ${PN}-plugin-md5 \ + ${PN}-plugin-nonce \ + ${PN}-plugin-pem \ + ${PN}-plugin-pgp \ + ${PN}-plugin-pkcs1 \ + ${PN}-plugin-pkcs7 \ + ${PN}-plugin-pkcs8 \ + ${PN}-plugin-pkcs12 \ + ${PN}-plugin-pubkey \ + ${PN}-plugin-random \ + ${PN}-plugin-rc2 \ + ${PN}-plugin-resolve \ + ${PN}-plugin-revocation \ + ${PN}-plugin-sha1 \ + ${PN}-plugin-sha2 \ + ${PN}-plugin-socket-default \ + ${PN}-plugin-sshkey \ + ${PN}-plugin-updown \ + ${PN}-plugin-vici \ + ${PN}-plugin-x509 \ + ${PN}-plugin-xauth-generic \ + ${PN}-plugin-xcbc \ + " + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}-swanctl.service', '${BPN}.service', d)}" diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.10.bb b/meta-networking/recipes-support/stunnel/stunnel_5.10.bb deleted file mode 100644 index 5753198ba03..00000000000 --- a/meta-networking/recipes-support/stunnel/stunnel_5.10.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Program for providing universal TLS/SSL tunneling service" -DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server." -SECTION = "net" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=866cdc7459d91e092b174388fab8d283" -DEPENDS = "openssl zlib tcp-wrappers" - -RDEPENDS_${PN} += "perl" - -SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz" - -SRC_URI[md5sum] = "a0edda805eb7d6ea600a230fb0979ea1" -SRC_URI[sha256sum] = "032bfc1854f8a0b9e452343c36ec6b52c7e0daef0863423c6b13a61a7c92eb23" - -inherit autotools - -EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES','systemd','systemd','',d)}" -PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.35.bb b/meta-networking/recipes-support/stunnel/stunnel_5.35.bb new file mode 100644 index 00000000000..efe9d9e578f --- /dev/null +++ b/meta-networking/recipes-support/stunnel/stunnel_5.35.bb @@ -0,0 +1,22 @@ +SUMMARY = "Program for providing universal TLS/SSL tunneling service" +HOMEPAGE = "http://www.stunnel.org/" +DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server." +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=866cdc7459d91e092b174388fab8d283" +DEPENDS = "openssl zlib tcp-wrappers" + +RDEPENDS_${PN} += "perl" + +SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz" + +SRC_URI[md5sum] = "9079f5fafbccaf88b7d92b227d78249a" +SRC_URI[sha256sum] = "ffa386ae4c825f35f35157c285e7402a6d58779ad8c3822f74a9d355b54aba1d" + +inherit autotools + +EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)}" +PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/add-ptest.patch b/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/add-ptest.patch deleted file mode 100644 index 358f6050f67..00000000000 --- a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/add-ptest.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 7b259580800e259d232229dc89f97058b56e2fe8 Mon Sep 17 00:00:00 2001 -From: "Hongjun.Yang" -Date: Wed, 22 Oct 2014 10:02:48 +0800 -Subject: [PATCH] Add ptest for tcpdump - -Upstream-Status: Pending - -Signed-off-by: Hongjun.Yang ---- - Makefile.in | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/Makefile.in b/Makefile.in -index 8c35a45..4fb8ae6 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -428,9 +428,17 @@ distclean: - tests/failure-outputs.txt - rm -rf autom4te.cache tests/DIFF tests/NEW - --check: tcpdump -+buildtest-TESTS: tcpdump -+ -+runtest-PTEST: - (cd tests && ./TESTrun.sh) - -+install-ptest: -+ cp -r tests $(DESTDIR) -+ cp -r config.h $(DESTDIR) -+ install -m 0755 Makefile $(DESTDIR) -+ ln -sf /usr/sbin/tcpdump $(DESTDIR)/tcpdump -+ - tags: $(TAGFILES) - ctags -wtd $(TAGFILES) - --- -1.9.1 - diff --git a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/configure.patch b/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/configure.patch deleted file mode 100644 index 3697420fd34..00000000000 --- a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/configure.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- - aclocal.m4 | 1 - - configure.in | 1 + - 2 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/aclocal.m4 b/aclocal.m4 -index 40b5866..0c662b0 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -40,7 +40,6 @@ dnl - AC_DEFUN(AC_LBL_C_INIT_BEFORE_CC, - [AC_PREREQ(2.50) - AC_BEFORE([$0], [AC_LBL_C_INIT]) -- AC_BEFORE([$0], [AC_PROG_CC]) - AC_BEFORE([$0], [AC_LBL_FIXINCLUDES]) - AC_BEFORE([$0], [AC_LBL_DEVEL]) - AC_ARG_WITH(gcc, [ --without-gcc don't use gcc]) -diff --git a/configure.in b/configure.in -index 11257c9..7f9591c 100644 ---- a/configure.in -+++ b/configure.in -@@ -19,6 +19,7 @@ AC_REVISION($Revision: 1.204 $) - AC_PREREQ(2.50) - AC_INIT(tcpdump.c) - -+AC_PROG_CC - AC_CANONICAL_HOST - - AC_LBL_C_INIT_BEFORE_CC(V_CCOPT, V_INCLS) diff --git a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/tcpdump-configure-dlpi.patch b/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/tcpdump-configure-dlpi.patch deleted file mode 100644 index 50e2d543996..00000000000 --- a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/tcpdump-configure-dlpi.patch +++ /dev/null @@ -1,31 +0,0 @@ -[PATCH] tcpdump: cross-compiling not check dlpi. - -For cross-compiling on Linux platforms, we do not need to check libdlpi -since it is only placed on Solaris. -Also, checking libdlpi in native /lib would cause do_qa_configure fail. - -Upstream-Status: Pending. - -Signed-off-by: Xin Ouyang ---- - configure.in | 4 +++- - 1 files changed, 3 insertions(+), 1 deletions(-) - -diff --git a/configure.in b/configure.in -index 7f9591c..ca277c0 100644 ---- a/configure.in -+++ b/configure.in -@@ -716,7 +716,9 @@ don't.]) - fi - - # libdlpi is needed for Solaris 11 and later. --AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi" LDFLAGS="-L/lib $LDFLAGS", ,-L/lib) -+if test "$cross_compiling" != yes; then -+ AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi" LDFLAGS="-L/lib $LDFLAGS", ,-L/lib) -+fi - - dnl portability macros for getaddrinfo/getnameinfo - dnl --- -1.7.5.4 - diff --git a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/tcpdump-cross-getaddrinfo.patch b/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/tcpdump-cross-getaddrinfo.patch deleted file mode 100644 index b414b72e9d8..00000000000 --- a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/tcpdump-cross-getaddrinfo.patch +++ /dev/null @@ -1,23 +0,0 @@ -Fix getaddinfo check when cross compiling - -Upstream-Status: Pending. - -AC_TRY_RUN defaults to td_cv_buggygetaddrinfo=yes when -cross-compiling. So this change indicates that we -are cross-compiling. - -Signed-of-by: Aws Ismail - -diff --git a/configure.in b/configure.in -index ca277c0..283035e 100644 ---- a/configure.in -+++ b/configure.in -@@ -434,7 +434,7 @@ main() - ], - td_cv_buggygetaddrinfo=no, - td_cv_buggygetaddrinfo=yes, -- td_cv_buggygetaddrinfo=yes)]) -+ td_cv_buggygetaddrinfo=cross)]) - if test "$td_cv_buggygetaddrinfo" = no; then - AC_MSG_RESULT(good) - else diff --git a/meta-networking/recipes-support/tcpdump/tcpdump/add-ptest.patch b/meta-networking/recipes-support/tcpdump/tcpdump/add-ptest.patch new file mode 100644 index 00000000000..196cec7f20c --- /dev/null +++ b/meta-networking/recipes-support/tcpdump/tcpdump/add-ptest.patch @@ -0,0 +1,35 @@ +From 7b259580800e259d232229dc89f97058b56e2fe8 Mon Sep 17 00:00:00 2001 +From: "Hongjun.Yang" +Date: Wed, 22 Oct 2014 10:02:48 +0800 +Subject: [PATCH] Add ptest for tcpdump + +Upstream-Status: Pending + +Signed-off-by: Hongjun.Yang +--- + Makefile.in | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +Index: tcpdump-4.9.0/Makefile.in +=================================================================== +--- tcpdump-4.9.0.orig/Makefile.in ++++ tcpdump-4.9.0/Makefile.in +@@ -436,9 +436,17 @@ distclean: + tests/failure-outputs.txt + rm -rf autom4te.cache tests/DIFF tests/NEW + +-check: tcpdump ++buildtest-TESTS: tcpdump ++ ++runtest-PTEST: + (cd tests && ./TESTrun.sh) + ++install-ptest: ++ cp -r tests $(DESTDIR) ++ cp -r config.h $(DESTDIR) ++ install -m 0755 Makefile $(DESTDIR) ++ ln -sf /usr/sbin/tcpdump $(DESTDIR)/tcpdump ++ + extags: $(TAGFILES) + ctags $(TAGFILES) + diff --git a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/run-ptest b/meta-networking/recipes-support/tcpdump/tcpdump/run-ptest similarity index 100% rename from meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/run-ptest rename to meta-networking/recipes-support/tcpdump/tcpdump/run-ptest diff --git a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/unnecessary-to-check-libpcap.patch b/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch similarity index 100% rename from meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/unnecessary-to-check-libpcap.patch rename to meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch diff --git a/meta-networking/recipes-support/tcpdump/tcpdump_4.6.1.bb b/meta-networking/recipes-support/tcpdump/tcpdump_4.6.1.bb deleted file mode 100644 index 1fdaf308d81..00000000000 --- a/meta-networking/recipes-support/tcpdump/tcpdump_4.6.1.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "A sophisticated network protocol analyzer" -HOMEPAGE = "http://www.tcpdump.org/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867" -SECTION = "console/network" -DEPENDS = "libpcap" - -SRC_URI = " \ - http://www.tcpdump.org/release/${BP}.tar.gz \ - file://configure.patch \ - file://unnecessary-to-check-libpcap.patch \ - file://tcpdump-configure-dlpi.patch \ - file://tcpdump-cross-getaddrinfo.patch \ - file://add-ptest.patch \ - file://run-ptest \ -" -SRC_URI[md5sum] = "dab267ec30216a069747d10314079ec7" -SRC_URI[sha256sum] = "4c88c2a9aeb4047074f344fc9b2b6577b219972d359e192f6d12ccf983a13fd7" -export LIBS=" -lpcap" - -inherit autotools-brokensep ptest -CACHED_CONFIGUREVARS = "ac_cv_linux_vers=${ac_cv_linux_vers=2}" - -PACKAGECONFIG ??= "openssl ipv6" -PACKAGECONFIG[openssl] = "--with-crypto=yes, --without-openssl --without-crypto, openssl" -PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6," - -EXTRA_AUTORECONF += " -I m4" - -do_configure_prepend() { - mkdir -p ${S}/m4 - if [ -f aclocal.m4 ]; then - mv aclocal.m4 ${S}/m4 - fi - # AC_CHECK_LIB(dlpi.. was looking to host /lib - sed -i 's:-L/lib::g' ./configure.in -} -do_configure_append() { - sed -i 's:-L/usr/lib::' ./Makefile - sed -i 's:-Wl,-rpath,${STAGING_LIBDIR}::' ./Makefile - sed -i 's:-I/usr/include::' ./Makefile -} - -do_install_append() { - # tcpdump 4.0.0 installs a copy to /usr/sbin/tcpdump.4.0.0 - rm -f ${D}${sbindir}/tcpdump.${PV} -} - -do_compile_ptest() { - oe_runmake buildtest-TESTS -} diff --git a/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb b/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb new file mode 100644 index 00000000000..d38540e34d8 --- /dev/null +++ b/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb @@ -0,0 +1,51 @@ +SUMMARY = "A sophisticated network protocol analyzer" +HOMEPAGE = "http://www.tcpdump.org/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867" +SECTION = "net" +DEPENDS = "libpcap" + +SRC_URI = " \ + http://www.tcpdump.org/release/${BP}.tar.gz \ + file://unnecessary-to-check-libpcap.patch \ + file://add-ptest.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "9bbc1ee33dab61302411b02dd0515576" +SRC_URI[sha256sum] = "798b3536a29832ce0cbb07fafb1ce5097c95e308a6f592d14052e1ef1505fe79" + +export LIBS=" -lpcap" + +inherit autotools-brokensep ptest +CACHED_CONFIGUREVARS = "ac_cv_linux_vers=${ac_cv_linux_vers=2}" + +PACKAGECONFIG ??= "openssl" +PACKAGECONFIG[openssl] = "--with-crypto=yes, --without-openssl --without-crypto, openssl" +PACKAGECONFIG[smi] = "--with-smi, --without-smi,libsmi" +PACKAGECONFIG[libcap-ng] = "--with-cap-ng=yes,--with-cap-ng=no,libcap-ng" + +EXTRA_AUTORECONF += " -I m4" + +do_configure_prepend() { + mkdir -p ${S}/m4 + if [ -f aclocal.m4 ]; then + mv aclocal.m4 ${S}/m4 + fi + # AC_CHECK_LIB(dlpi.. was looking to host /lib + sed -i 's:-L/lib::g' ./configure.in +} +do_configure_append() { + sed -i 's:-L/usr/lib::' ./Makefile + sed -i 's:-Wl,-rpath,${STAGING_LIBDIR}::' ./Makefile + sed -i 's:-I/usr/include::' ./Makefile +} + +do_install_append() { + # tcpdump 4.0.0 installs a copy to /usr/sbin/tcpdump.4.0.0 + rm -f ${D}${sbindir}/tcpdump.${PV} +} + +do_compile_ptest() { + oe_runmake buildtest-TESTS +} diff --git a/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb index 203d143b5d7..e65739a5c7a 100644 --- a/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb +++ b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb @@ -1,7 +1,7 @@ SUMMARY = "tcpslice" DESCRIPTION = "A tool for extracting parts of a tcpdump packet trace." HOMEPAGE = "http://www.tcpdump.org/related.html" -SECTION = "console/network" +SECTION = "net" LICENSE = "BSD-4-Clause" LIC_FILES_CHKSUM = "file://tcpslice.c;endline=20;md5=99519e2e5234d1662a4ce16baa62c64e" @@ -22,14 +22,15 @@ DEPENDS += "libpcap" # cross-compilation options to configure! # do_configure () { - oe_runconf \ - --srcdir="." \ - ac_cv_build=${BUILD_SYS} \ - ac_cv_host=${HOST_SYS} \ - ac_cv_target=${HOST_SYS} + oe_runconf \ + --srcdir="." \ + ac_cv_build=${BUILD_SYS} \ + ac_cv_host=${HOST_SYS} \ + ac_cv_target=${HOST_SYS} } -do_install_prepend () { - mkdir -p ${D}/usr/sbin +do_install () { + mkdir -p ${D}/usr/sbin + install -c -m 555 tcpslice ${D}/usr/sbin } diff --git a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-cross-compile.patch b/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-cross-compile.patch deleted file mode 100755 index a856b1809ae..00000000000 --- a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-cross-compile.patch +++ /dev/null @@ -1,92 +0,0 @@ -Uptream-Status: Pending - -Signed-off-by: Zongchun Yu - ---- a/configure.ac -+++ b/configure.ac -@@ -402,7 +402,6 @@ - - dnl 0.9.6 (which is still thinks it is 0.9.5 due to a bug) introduces an important - dnl fix for OSX. See: http://tcpreplay.synfin.net/trac/ticket/167 --libpcap_version_096=no - AC_RUN_IFELSE(AC_LANG_PROGRAM([[ - #include - #include -@@ -419,11 +418,12 @@ - exit(0); - - exit(1); --]]), [ -- libpcap_version_096=yes --]) -+]]), -+ [libpcap_version_096=yes], -+ [libpcap_version_096=no], -+ [libpcap_version_096=yes] -+) - --libpcap_ver8=no - AC_RUN_IFELSE(AC_LANG_PROGRAM([[ - #include - #include -@@ -444,13 +444,12 @@ - exit(0); - - exit(1); --]]), [ -- libpcap_ver8=yes --], [ -- libpcap_ver8=no --]) -+]]), -+ [libpcap_ver8=yes], -+ [libpcap_ver8=no], -+ [libpcap_ver8=yes] -+) - --libpcap_ver7=no - AC_RUN_IFELSE(AC_LANG_PROGRAM([[ - #include - #include -@@ -469,11 +468,11 @@ - exit(0); - - exit(1); --]]), [ -- libpcap_ver7=yes --], [ -- libpcap_ver7=no --]) -+]]), -+ [libpcap_ver7=yes], -+ [libpcap_ver7=no], -+ [libpcap_ver7=yes] -+) - - if test x$libpcap_ver8 = xyes ; then - AC_MSG_RESULT(>= 0.8.0) -@@ -761,8 +760,8 @@ - - have_bpf=no - dnl Check for BSD's BPF --AC_MSG_CHECKING(for BPF device sending support) --AC_TRY_RUN([ -+AC_CACHE_CHECK([for BPF device sending support], ac_cv_have_bpf, -+[AC_TRY_RUN([ - #include - #include - #include -@@ -796,8 +795,11 @@ - [Do we have BPF device support?]) - AC_MSG_RESULT(yes) - have_bpf=yes --],[ -- AC_MSG_RESULT(no) -+], -+[AC_MSG_RESULT(no)], -+[AC_MSG_ERROR([cross-compiling, -+ presetting ac_cv_have_bpf=(yes|no) will help])] -+) - ]) - - diff --git a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-fix-unable-to-link-libpcap-issue.patch b/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-fix-unable-to-link-libpcap-issue.patch deleted file mode 100644 index 5f36c68c9bd..00000000000 --- a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-fix-unable-to-link-libpcap-issue.patch +++ /dev/null @@ -1,17 +0,0 @@ -Uptream-Status: Pending - -Signed-off-by: Zongchun Yu - -Index: tcpreplay-3.4.4/configure.ac -=================================================================== ---- tcpreplay-3.4.4.orig/configure.ac -+++ tcpreplay-3.4.4/configure.ac -@@ -389,7 +389,7 @@ CFLAGS="$CFLAGS -I$LPCAPINCDIR" - AC_SEARCH_LIBS([pcap_close], [pcap], - LPCAPLIB="$LIBS", - AC_ERROR([Unable to link libpcap in ${foundpcap}]), -- -lnl) -+ -lnl-3) - - AC_SUBST(LPCAPINC) - AC_SUBST(LPCAPLIB) diff --git a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-improve-search-for-libpcap.patch b/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-improve-search-for-libpcap.patch deleted file mode 100644 index 50f024c67b5..00000000000 --- a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-improve-search-for-libpcap.patch +++ /dev/null @@ -1,33 +0,0 @@ -tcpreplay: improve search for libpcap - -Add a test which will find libpcap if $testdir/.. is a sysroot. - -Upstream-Status: Pending - -Signed-off-by: Joe Slater - - ---- a/configure.ac -+++ b/configure.ac -@@ -350,14 +350,20 @@ for testdir in $trypcapdir /usr/local /o - if test -f "${testdir}/include/pcap.h" -a $foundpcap = no ; then - LPCAPINC="${testdir}/include/pcap.h" - LPCAPINCDIR="${testdir}/include" -+ # If testdir/.. is a sysroot, then sDir should point to where the libraries are. -+ sDir=$(readlink -m ${testdir}/../${libdir}) - if test $dynamic_link = yes; then -- if test -f "${testdir}/lib64/libpcap${shrext_cmds}" ; then -+ if test -f "${sDir}/libpcap${shrext_cmds}" ; then -+ LPCAPLIB="-L${sDir} -lpcap" -+ elif test -f "${testdir}/lib64/libpcap${shrext_cmds}" ; then - LPCAPLIB="-L${testdir}/lib64 -lpcap" - elif test -f "${testdir}/lib/libpcap${shrext_cmds}" ; then - LPCAPLIB="-L${testdir}/lib -lpcap" - else - AC_ERROR([Unable to find libpcap in ${testdir}]) - fi -+ elif test -f "${sDir}/libpcap.${libext}" ; then -+ LPCAPLIB="${sDir}/libpcap.${libext}" - elif test -f "${testdir}/lib64/libpcap.${libext}" ; then - LPCAPLIB="${testdir}/lib64/libpcap.${libext}" - elif test -f "${testdir}/lib/libpcap.${libext}" ; then diff --git a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-no-bfp-support.patch b/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-no-bfp-support.patch deleted file mode 100644 index 3c11c922bdf..00000000000 --- a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-no-bfp-support.patch +++ /dev/null @@ -1,15 +0,0 @@ -Uptream-Status: Pending - -Signed-off-by: Zongchun Yu - ---- a/configure.ac -+++ b/configure.ac -@@ -758,6 +758,8 @@ - AC_MSG_RESULT(no) - ]) - -+ac_cv_have_bpf=no -+ - have_bpf=no - dnl Check for BSD's BPF - AC_CACHE_CHECK([for BPF device sending support], ac_cv_have_bpf, diff --git a/meta-networking/recipes-support/tcpreplay/tcpreplay_3.4.4.bb b/meta-networking/recipes-support/tcpreplay/tcpreplay_3.4.4.bb deleted file mode 100644 index 9ecb695fdef..00000000000 --- a/meta-networking/recipes-support/tcpreplay/tcpreplay_3.4.4.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Use previously captured traffic to test network devices" - -HOMEPAGE = "http://tcpreplay.synfin.net/" -SECTION = "console/network" - -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=c33cccf72cc1603e8a72a84811ae3ac8" - -SRC_URI = "http://prdownloads.sourceforge.net/tcpreplay/${PV}/tcpreplay-${PV}.tar.gz \ - file://tcpreplay-3.4.4-cross-compile.patch \ - file://tcpreplay-3.4.4-no-bfp-support.patch \ - file://tcpreplay-3.4.4-fix-unable-to-link-libpcap-issue.patch \ - file://tcpreplay-3.4.4-improve-search-for-libpcap.patch \ - " -SRC_URI[md5sum] = "22725feb9b2590809f9350308ec65180" -SRC_URI[sha256sum] = "7a809c58ddec86407fd6e5597ac883d7874a19bea81d716bb2b1c6e3b0e7b58f" - -DEPENDS = "libpcap" - -EXTRA_OECONF += "--with-libpcap=${STAGING_DIR_HOST}/usr" - -inherit siteinfo autotools-brokensep - diff --git a/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb b/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb new file mode 100644 index 00000000000..681ef02bb44 --- /dev/null +++ b/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb @@ -0,0 +1,19 @@ +SUMMARY = "Use previously captured traffic to test network devices" + +HOMEPAGE = "http://tcpreplay.synfin.net/" +SECTION = "net" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=890b830b22fd632e9ffd996df20338f8" + +SRC_URI = "https://github.com/appneta/tcpreplay/releases/download/v${PV}/tcpreplay-${PV}.tar.gz" + +SRC_URI[md5sum] = "3e65d5b872e441c6a0038191a3dc7ce9" +SRC_URI[sha256sum] = "043756c532dab93e2be33a517ef46b1341f7239278a1045ae670041dd8a4531d" + +DEPENDS = "libpcap" + +EXTRA_OECONF += "--with-libpcap=${STAGING_DIR_HOST}/usr" + +inherit siteinfo autotools-brokensep + diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch b/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch new file mode 100644 index 00000000000..01d0236be5c --- /dev/null +++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch @@ -0,0 +1,37 @@ +--- a/configure.ac 2016-01-01 17:42:27.000000000 +0100 ++++ b/configure.ac 2017-04-20 14:03:37.238254471 +0200 +@@ -284,24 +284,12 @@ + AC_SUBST(LIBS) + AC_SUBST(ADDITIONAL_OBJECTS) + +-# Check for asciidoc +-AC_PATH_PROG(A2X, a2x, no) +-AM_CONDITIONAL(HAVE_A2X, test "x$A2X" != "xno") +-if test x"$A2X" = x"no"; then +- AC_MSG_ERROR([Test for asciidoc failed. See the file 'INSTALL' for help.]) +-fi +- + AC_CONFIG_FILES([ + Makefile + src/Makefile + data/Makefile + data/templates/Makefile + etc/Makefile +-docs/Makefile +-docs/man5/Makefile +-docs/man5/tinyproxy.conf.txt +-docs/man8/Makefile +-docs/man8/tinyproxy.txt + m4macros/Makefile + tests/Makefile + tests/scripts/Makefile +--- a/Makefile.am 2016-01-01 17:42:27.000000000 +0100 ++++ b/Makefile.am 2017-04-20 14:03:53.842822997 +0200 +@@ -2,7 +2,6 @@ + src \ + data \ + etc \ +- docs \ + m4macros \ + tests + diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service b/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service new file mode 100644 index 00000000000..ea079f95566 --- /dev/null +++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service @@ -0,0 +1,14 @@ +[Unit] +Description=Tinyproxy, Lightweight http(s) proxy daemon +RequiresMountsFor=/var + +[Service] +Group=tinyproxy +ExecStartPre=/bin/mkdir -p /var/log/tinyproxy +ExecStartPre=/bin/chown -R nobody.tinyproxy /var/log/tinyproxy +ExecStartPre=/bin/mkdir -p /var/run/tinyproxy +ExecStartPre=/bin/chown -R nobody.tinyproxy /var/run/tinyproxy +ExecStart=/usr/sbin/tinyproxy -d + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb new file mode 100644 index 00000000000..e8025c4b578 --- /dev/null +++ b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb @@ -0,0 +1,38 @@ +SUMMARY = "Lightweight http(s) proxy daemon" +HOMEPAGE = "https://tinyproxy.github.io/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.gz \ + file://disable-documentation.patch \ + file://tinyproxy.service" + +SRC_URI[md5sum] = "3b60f7d08e0821ed1a3e2cf1e5778cac" +SRC_URI[sha256sum] = "8234c879a129feee61efa98bac14a1a3e46e5cf08f01696a216940872aa70faf" + +EXTRA_OECONF += " \ + --enable-filter \ + --enable-transparent \ + --disable-regexcheck \ + --enable-reverse \ + --enable-upstream \ + --enable-xtinyproxy \ + " + +inherit autotools systemd useradd + +#User specific +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "nobody" +GROUPADD_PARAM_${PN} = "--system tinyproxy" + +SYSTEMD_PACKAGES += "${BPN}" +SYSTEMD_SERVICE_${PN} = "tinyproxy.service" +SYSTEMD_AUTO_ENABLE_${PN} = "enable" + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/tinyproxy.service ${D}${systemd_system_unitdir} + fi +} diff --git a/meta-networking/recipes-support/tnftp/tnftp_20130505.bb b/meta-networking/recipes-support/tnftp/tnftp_20130505.bb deleted file mode 100644 index eda9d5c0f0f..00000000000 --- a/meta-networking/recipes-support/tnftp/tnftp_20130505.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "Enhanced NetBSD ftp client" -DESCRIPTION = "tnftp (formerly known as lukemftp) is a port of the NetBSD FTP client \ -to other systems. It offers many enhancements over the traditional \ -BSD FTP client, including command-line editing, command-line fetches \ -of FTP and HTTP URLs (including via proxies), command-line uploads of \ -FTP URLs, context-sensitive word completion, dynamic progress bar, \ -IPv6 support, modification time preservation, paging of local and \ -remote files, passive mode support (with fallback to active mode), \ -SOCKS support, TIS FWTK gate-ftp server support, and transfer rate \ -throttling." - -SECTION = "console/network" -LICENSE = "BSD-4-Clause" - -DEPENDS = "ncurses" - -SRC_URI = "ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/${BPN}-${PV}.tar.gz \ - file://tnftp-autotools.patch \ - " - -inherit autotools update-alternatives pkgconfig - -ALTERNATIVE_PRIORITY = "100" - -ALTERNATIVE_${PN} = "ftp" -ALTERNATIVE_LINK_NAME_${PN} = "${bindir}/ftp" -ALTERNATIVE_TARGET_${PN} = "${bindir}/tnftp" - -FILES_${PN} = "${bindir}/tnftp" - -LIC_FILES_CHKSUM = "file://COPYING;md5=6d6796cb166a9bb050958241dad9479e" -SRC_URI[md5sum] = "66e218d02ec7d9fc39ab70ba2900305a" -SRC_URI[sha256sum] = "6f650e25f6fd51538f677b789b49379f367ae9f1dee74c94cfe24d92abc2cffb" - -PACKAGECONFIG ?= "openssl" -PACKAGECONFIG[openssl] = "--enable-ssl, --disable-ssl --with-ssl=no, openssl" diff --git a/meta-networking/recipes-support/tnftp/tnftp_20151004.bb b/meta-networking/recipes-support/tnftp/tnftp_20151004.bb new file mode 100644 index 00000000000..83ad11b0e91 --- /dev/null +++ b/meta-networking/recipes-support/tnftp/tnftp_20151004.bb @@ -0,0 +1,39 @@ +SUMMARY = "Enhanced NetBSD ftp client" +DESCRIPTION = "tnftp (formerly known as lukemftp) is a port of the NetBSD FTP client \ +to other systems. It offers many enhancements over the traditional \ +BSD FTP client, including command-line editing, command-line fetches \ +of FTP and HTTP URLs (including via proxies), command-line uploads of \ +FTP URLs, context-sensitive word completion, dynamic progress bar, \ +IPv6 support, modification time preservation, paging of local and \ +remote files, passive mode support (with fallback to active mode), \ +SOCKS support, TIS FWTK gate-ftp server support, and transfer rate \ +throttling." + +SECTION = "net" +LICENSE = "BSD-4-Clause" + +DEPENDS = "ncurses" + +SRC_URI = "ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/${BPN}-${PV}.tar.gz \ + file://tnftp-autotools.patch \ +" + +inherit autotools update-alternatives pkgconfig + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN} = "ftp" +ALTERNATIVE_LINK_NAME_${PN} = "${bindir}/ftp" +ALTERNATIVE_TARGET_${PN} = "${bindir}/tnftp" + +FILES_${PN} = "${bindir}/tnftp" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6d6796cb166a9bb050958241dad9479e" +SRC_URI[md5sum] = "a49fbe752318d5a7893f900046ea00d5" +SRC_URI[sha256sum] = "c94a8a49d3f4aec1965feea831d4d5bf6f90c65fd8381ee0863d11a5029a43a0" + +PACKAGECONFIG ?= "openssl \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG[openssl] = "--enable-ssl, --disable-ssl --with-ssl=no, openssl" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta-networking/recipes-support/traceroute/traceroute_2.0.21.bb b/meta-networking/recipes-support/traceroute/traceroute_2.0.21.bb deleted file mode 100644 index 7bdbe16175f..00000000000 --- a/meta-networking/recipes-support/traceroute/traceroute_2.0.21.bb +++ /dev/null @@ -1,45 +0,0 @@ -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=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -inherit update-alternatives - -SRC_URI = "${SOURCEFORGE_MIRROR}/traceroute/traceroute/${BP}/${BP}.tar.gz \ - file://filter-out-the-patches-from-subdirs.patch \ -" - -SRC_URI[md5sum] = "79289adabd6f3ebf9160fc0815ab3150" -SRC_URI[sha256sum] = "f7ac93ef30b13a587292b8d6a7e2538a65bc978a3a576eab238c392b884e96e0" - -EXTRA_OEMAKE = "VPATH=${STAGING_LIBDIR}" - -do_compile() { - export LDFLAGS="${TARGET_LDFLAGS} -L${S}/libsupp" - oe_runmake "env=yes" -} - -do_install() { - install -d ${D}${bindir} - install -m755 ${BPN}/${BPN} ${D}${bindir} - - install -m755 wrappers/tcptraceroute ${D}${bindir} - - install -d ${D}${mandir} - install -p -m644 ${BPN}/${BPN}.8 ${D}${mandir} - ln -s ${BPN}.8 ${D}${mandir}/${BPN}6.8 - ln -s ${BPN}.8 ${D}${mandir}/tcptraceroute.8 - -} - -ALTERNATIVE_PRIORITY = "60" -ALTERNATIVE_${PN} = "traceroute" -ALTERNATIVE_LINK_NAME[traceroute] = "${bindir}/traceroute" diff --git a/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb b/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb new file mode 100644 index 00000000000..8f17d3fdbeb --- /dev/null +++ b/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb @@ -0,0 +1,45 @@ +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 = "net" +HOMEPAGE = "http://traceroute.sourceforge.net/" +LICENSE = "GPL-2.0+ & LGPL-2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +inherit update-alternatives + +SRC_URI = "${SOURCEFORGE_MIRROR}/traceroute/traceroute/${BP}/${BP}.tar.gz \ + file://filter-out-the-patches-from-subdirs.patch \ +" + +SRC_URI[md5sum] = "84d329d67abc3fb83fc8cb12aeaddaba" +SRC_URI[sha256sum] = "3669d22a34d3f38ed50caba18cd525ba55c5c00d5465f2d20d7472e5d81603b6" + +EXTRA_OEMAKE = "VPATH=${STAGING_LIBDIR}" + +do_compile() { + export LDFLAGS="${TARGET_LDFLAGS} -L${S}/libsupp" + oe_runmake "env=yes" +} + +do_install() { + install -d ${D}${bindir} + install -m755 ${BPN}/${BPN} ${D}${bindir} + + install -m755 wrappers/tcptraceroute ${D}${bindir} + + install -d ${D}${mandir}/man8 + install -p -m644 ${BPN}/${BPN}.8 ${D}${mandir}/man8 + ln -s ${BPN}.8 ${D}${mandir}/man8/${BPN}6.8 + ln -s ${BPN}.8 ${D}${mandir}/man8/tcptraceroute.8 + +} + +ALTERNATIVE_PRIORITY = "60" +ALTERNATIVE_${PN} = "traceroute" +ALTERNATIVE_LINK_NAME[traceroute] = "${bindir}/traceroute" diff --git a/meta-networking/recipes-support/tunctl/tunctl.inc b/meta-networking/recipes-support/tunctl/tunctl.inc index e95cfa523d7..1c11823dd5b 100644 --- a/meta-networking/recipes-support/tunctl/tunctl.inc +++ b/meta-networking/recipes-support/tunctl/tunctl.inc @@ -3,7 +3,9 @@ SECTION = "net" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://tunctl.c;beginline=1;endline=4;md5=ff3a09996bc5fff6bc5d4e0b4c28f999" -SRC_URI = "${SOURCEFORGE_MIRROR}/tunctl/tunctl-${PV}.tar.gz" +SRC_URI = "${SOURCEFORGE_MIRROR}/tunctl/tunctl-${PV}.tar.gz \ + file://makefile-add-ldflags.patch \ + " do_compile() { oe_runmake tunctl diff --git a/meta-networking/recipes-support/tunctl/tunctl/makefile-add-ldflags.patch b/meta-networking/recipes-support/tunctl/tunctl/makefile-add-ldflags.patch new file mode 100644 index 00000000000..c96f538d2dd --- /dev/null +++ b/meta-networking/recipes-support/tunctl/tunctl/makefile-add-ldflags.patch @@ -0,0 +1,19 @@ +Add LDFLAGS variable to Makefile, make sure the extra linker flags can be passed. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/Makefile b/Makefile +index a0aa7f6..d6ce2c7 100644 +--- a/Makefile ++++ b/Makefile +@@ -14,7 +14,7 @@ MAN_DIR ?= /usr/share/man/man$(MANS) + all : $(BIN) $(MAN) + + $(BIN) : $(BIN).c +- $(CC) $(CFLAGS) -o $(BIN) $(BIN).c ++ $(CC) $(CFLAGS) ${LDFLAGS} -o $(BIN) $(BIN).c + + $(MAN) : $(PACKAGE).sgml + docbook2man $(PACKAGE).sgml diff --git a/meta-networking/recipes-support/uftp/uftp_4.9.3.bb b/meta-networking/recipes-support/uftp/uftp_4.9.3.bb new file mode 100644 index 00000000000..1166f9a8db6 --- /dev/null +++ b/meta-networking/recipes-support/uftp/uftp_4.9.3.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Encrypted UDP based FTP with multicast" +HOMEPAGE = "https://sourceforge.net/projects/uftp-multicast" +SECTION = "libs/network" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz" +SRC_URI[md5sum] = "231d6ba7820d89a712fe7d727ab0f8e6" +SRC_URI[sha256sum] = "9e9215af0315257c6cc4f40fbc6161057e861be1fff10a38a5564f699e99c78f" + +DEPENDS = "openssl" + +do_install () { + oe_runmake install DESTDIR=${D} +} diff --git a/meta-networking/recipes-support/wireshark/files/Do-not-set-CC_FOR_BUILD-flags.patch b/meta-networking/recipes-support/wireshark/files/Do-not-set-CC_FOR_BUILD-flags.patch deleted file mode 100644 index 64a08add793..00000000000 --- a/meta-networking/recipes-support/wireshark/files/Do-not-set-CC_FOR_BUILD-flags.patch +++ /dev/null @@ -1,46 +0,0 @@ -[PATCH] Do not set CC_FOR_BUILD flags - -Upstream-status: Pending - -AC_WIRESHARK_COMPILER_FLAGS_CHECK() is checking which options CC is supported, -and put the supported options into CFLAGS, but it should not put them into -CFLAGS_FOR_BUILD. since CC and BUILD_CC can be different, CFLAGS_FOR_BUILD is -used by BUILD_CC - -BUILD_CC is used to generated host tools, do not use the gcc's optimised options, -do not effect the running of host tools. so do not set CC_FOR_BUILD flags. - -Signed-off-by: Roy.Li ---- - acinclude.m4 | 8 -------- - 1 file changed, 8 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index 136fc27..8d3d360 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -1755,10 +1755,6 @@ if test "x$ac_supports_gcc_flags" = "xyes" ; then - # just the new option. - # - CFLAGS="$CFLAGS_saved $GCC_OPTION" -- # -- # Add it to the flags we use when building build tools. -- # -- CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD $GCC_OPTION" - ], - [ - AC_MSG_RESULT(yes) -@@ -1771,10 +1767,6 @@ if test "x$ac_supports_gcc_flags" = "xyes" ; then - # just the new option. - # - CFLAGS="$CFLAGS_saved $GCC_OPTION" -- # -- # Add it to the flags we use when building build tools. -- # -- CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD $GCC_OPTION" - fi - ], - [ --- -1.9.1 - diff --git a/meta-networking/recipes-support/wireshark/wireshark_1.12.4.bb b/meta-networking/recipes-support/wireshark/wireshark_1.12.4.bb deleted file mode 100644 index 683321657b3..00000000000 --- a/meta-networking/recipes-support/wireshark/wireshark_1.12.4.bb +++ /dev/null @@ -1,57 +0,0 @@ -DESCRIPTION = "wireshark - a popular network protocol analyzer" -HOMEPAGE = "http://www.wireshark.org" -SECTION = "network" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://README.linux;md5=631e077455b7972172eb149195e065b0" - -DEPENDS = "perl-native pcre expat glib-2.0 sbc" - -SRC_URI = " \ - http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-${PV}.tar.bz2 \ - file://Do-not-set-CC_FOR_BUILD-flags.patch \ -" - -PE = "1" - -SRC_URI[md5sum] = "acfa156fd35cb66c867b1ace992e4b5b" -SRC_URI[sha256sum] = "de804e98e252e4b795d28d6ac2d48d7f5aacd9b046ee44d44266983795ebc312" - -inherit autotools pkgconfig - -ARM_INSTRUCTION_SET = "arm" - -# Works with either gtk+ or gtk3. -WHICH_GTK = "gtk3" - -PACKAGECONFIG ??= "libcap gnutls libnl" -PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "x11", "${WHICH_GTK} graphics", "", d)}" -PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}" - -PACKAGECONFIG[libcap] = "--with-libcap=${STAGING_DIR_HOST}, --with-libcap=no, libcap" -PACKAGECONFIG[libsmi] = "--with-libsmi=yes, --with-libsmi=no, libsmi" -PACKAGECONFIG[libnl] = "--with-libnl=yes, --with-libnl=no, libnl" -PACKAGECONFIG[portaudio] = "--with-portaudio=yes, --with-portaudio=no, portaudio-v19" -PACKAGECONFIG[gtk2] = "--with-gtk2=yes, --with-gtk2=no, gtk+" -PACKAGECONFIG[gtk3] = "--with-gtk3=yes, --with-gtk3=no, gtk+3" -PACKAGECONFIG[graphics] = "--enable-wireshark, --disable-wireshark," -PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6," -PACKAGECONFIG[gnutls] = "--with-gnutls=yes, --with-gnutls=no, gnutls" -PACKAGECONFIG[gcrypt] = "--with-gcrypt=yes, --with-gcrypt=no, libgcrypt" -PACKAGECONFIG[krb5] = "--with-krb5=yes, --with-krb5=no, krb5" -PACKAGECONFIG[lua] = "--with-lua=yes, --with-lua=no, lua" -PACKAGECONFIG[zlib] = "--with-zlib=yes, --with-zlib=no, zlib" -PACKAGECONFIG[geoip] = "--with-geoip=yes, --with-geoip=no, geoip" - -# these next two options require addional layers -PACKAGECONFIG[adns] = "--with-adns=yes, --with-adns=no, adns" -PACKAGECONFIG[c-ares] = "--with-c-ares=yes, --with-c-ares=no, c-ares" - -EXTRA_OECONF += "--with-qt=no --enable-usr-local=no --enable-tshark --with-pcap=no --enable-pcap-ng-default" - -do_configure_prepend() { - # force to use fallback - sed -i -e '/^glib_prefix/s/=.*$/=""/' ${S}/aclocal-flags -} - -ALLOW_EMPTY_${PN} = "1" -INHIBIT_PACKAGE_DEBUG_SPLIT = "1" diff --git a/meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb b/meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb new file mode 100644 index 00000000000..5358ba07f7f --- /dev/null +++ b/meta-networking/recipes-support/wireshark/wireshark_2.2.10.bb @@ -0,0 +1,71 @@ +DESCRIPTION = "wireshark - a popular network protocol analyzer" +HOMEPAGE = "http://www.wireshark.org" +SECTION = "net" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77" + +DEPENDS = "pcre expat glib-2.0 glib-2.0-native" + +SRC_URI = "https://2.na.dl.wireshark.org/src/all-versions/${BP}.tar.bz2" + +PE = "1" + +SRC_URI[md5sum] = "ae3a1a43a6e3687f44a738fd15d78021" +SRC_URI[sha256sum] = "8574a5e1fdec7affae640924bd46c1aed1bd866e02632fa5625e1450e4a50707" + +inherit autotools pkgconfig perlnative + +ARM_INSTRUCTION_SET = "arm" + +PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc" +PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk2 graphics", "", d)}" +#PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "gtk3", "", d)}" + +PACKAGECONFIG[libcap] = "--with-libcap=${STAGING_LIBDIR}, --with-libcap=no --enable-pcap-ng-default , libcap" +PACKAGECONFIG[libpcap] = "--with-pcap=${STAGING_LIBDIR} --with-pcap-remote, --with-pcap=no --enable-pcap-ng-default , libpcap" +PACKAGECONFIG[libsmi] = "--with-libsmi=yes, --with-libsmi=no, libsmi" +PACKAGECONFIG[libnl] = "--with-libnl=yes, --with-libnl=no, libnl" +PACKAGECONFIG[portaudio] = "--with-portaudio=yes, --with-portaudio=no, portaudio-v19" +PACKAGECONFIG[gtk2] = "--with-gtk=2, , gtk+" +PACKAGECONFIG[gtk3] = "--with-gtk=3, , gtk+3" +PACKAGECONFIG[graphics] = "--enable-wireshark, --with-gtk=no --disable-wireshark," +PACKAGECONFIG[gnutls] = "--with-gnutls=yes, --with-gnutls=no, gnutls" +PACKAGECONFIG[gcrypt] = "--with-gcrypt=yes, --with-gcrypt=no, libgcrypt" +PACKAGECONFIG[ssl] = "--with-ssl=yes, --with-ssl=no, openssl" +PACKAGECONFIG[krb5] = "--with-krb5=yes, --with-krb5=no, krb5" +PACKAGECONFIG[lua] = "--with-lua=yes, --with-lua=no, lua" +PACKAGECONFIG[zlib] = "--with-zlib=yes, --with-zlib=no, zlib" +PACKAGECONFIG[geoip] = "--with-geoip=yes, --with-geoip=no, geoip" +PACKAGECONFIG[plugins] = "--with-plugins=yes, --with-plugins=no" +PACKAGECONFIG[sbc] = "--with-sbc=yes, --with-sbc=no, sbc" + +PACKAGECONFIG[libssh] = "--with-ssh=yes, --with-ssh=no, libssh2" + + +# these next two options require addional layers +PACKAGECONFIG[c-ares] = "--with-c-ares=yes, --with-c-ares=no, c-ares" + +EXTRA_OECONF += "--with-qt=no --enable-tshark --enable-rawshark" + +# Currently wireshark does not install header files +do_install_append () { + + install -d ${D}/${includedir}/${BPN} + install -d ${D}/${includedir}/${BPN}/epan + install -d ${D}/${includedir}/${BPN}/epan/crypt + install -d ${D}/${includedir}/${BPN}/epan/dfilter + install -d ${D}/${includedir}/${BPN}/epan/dissectors + install -d ${D}/${includedir}/${BPN}/epan/ftypes + install -d ${D}/${includedir}/${BPN}/epan/wmem + + install config.h ${D}/${includedir}/${BPN} + install ${S}/register.h ${D}/${includedir}/${BPN} + install -D ${S}/epan/*.h ${D}/${includedir}/${BPN}/epan + install -D ${S}/epan/crypt/*.h ${D}/${includedir}/${BPN}/epan/crypt + install -D ${S}/epan/dfilter/*.h ${D}/${includedir}/${BPN}/epan/dfilter + install -D ${S}/epan/dissectors/*.h ${D}/${includedir}/${BPN}/epan/dissectors + install -D ${S}/epan/ftypes/*.h ${D}/${includedir}/${BPN}/epan/ftypes + install -D ${S}/epan/wmem/*.h ${D}/${includedir}/${BPN}/epan/wmem +} + +FILES_${PN} += "${datadir}*" diff --git a/meta-oe/classes/breakpad.bbclass b/meta-oe/classes/breakpad.bbclass index b3abf278d61..36f11ff4808 100644 --- a/meta-oe/classes/breakpad.bbclass +++ b/meta-oe/classes/breakpad.bbclass @@ -10,11 +10,11 @@ CXXFLAGS += "-I${STAGING_DIR_TARGET}${includedir}/breakpad " BREAKPAD_BIN ?= "" python () { - breakpad_bin = d.getVar("BREAKPAD_BIN", True) + breakpad_bin = d.getVar("BREAKPAD_BIN") if not breakpad_bin: - PN = d.getVar("PN", True) - FILE = os.path.basename(d.getVar("FILE", True)) + PN = d.getVar("PN") + FILE = os.path.basename(d.getVar("FILE")) bb.error("To build %s, see breakpad.bbclass for instructions on \ setting up your Breakpad configuration" % PN) raise ValueError('BREAKPAD_BIN not defined in %s' % PN) diff --git a/meta-oe/classes/dos2unix.bbclass b/meta-oe/classes/dos2unix.bbclass new file mode 100644 index 00000000000..1bad998dde8 --- /dev/null +++ b/meta-oe/classes/dos2unix.bbclass @@ -0,0 +1,14 @@ +# Class for use to convert all CRLF line terminators to LF +# provided that some projects are being developed/maintained +# on Windows so they have different line terminators(CRLF) vs +# on Linux(LF), which can cause annoying patching errors during +# git push/checkout processes. + +do_convert_crlf_to_lf[depends] += "dos2unix-native:do_populate_sysroot" + +# Convert CRLF line terminators to LF +do_convert_crlf_to_lf () { + find ${S} -type f -exec dos2unix {} \; +} + +addtask convert_crlf_to_lf after do_unpack before do_patch diff --git a/meta-oe/classes/gitpkgv.bbclass b/meta-oe/classes/gitpkgv.bbclass index 7bdc538939c..2d9680a35c7 100644 --- a/meta-oe/classes/gitpkgv.bbclass +++ b/meta-oe/classes/gitpkgv.bbclass @@ -52,20 +52,27 @@ def get_git_pkgv(d, use_tags): import bb from pipes import quote - src_uri = d.getVar('SRC_URI', 1).split() + src_uri = d.getVar('SRC_URI').split() fetcher = bb.fetch2.Fetch(src_uri, d) ud = fetcher.ud # # If SRCREV_FORMAT is set respect it for tags # - format = d.getVar('SRCREV_FORMAT', True) + format = d.getVar('SRCREV_FORMAT') if not format: - format = 'default' + names = [] + for url in ud.values(): + if url.type == 'git' or url.type == 'gitsm': + names.extend(url.revisions.keys()) + if len(names) > 0: + format = '_'.join(names) + else: + format = 'default' found = False for url in ud.values(): - if url.type == 'git': + if url.type == 'git' or url.type == 'gitsm': for name, rev in url.revisions.items(): if not os.path.exists(url.localpath): return None @@ -87,11 +94,13 @@ def get_git_pkgv(d, use_tags): if commits != "": oe.path.remove(rev_file, recurse=False) - open(rev_file, "w").write("%d\n" % int(commits)) + with open(rev_file, "w") as f: + f.write("%d\n" % int(commits)) else: commits = "0" else: - commits = open(rev_file, "r").readline(128).strip() + with open(rev_file, "r") as f: + commits = f.readline(128).strip() if use_tags: try: @@ -101,9 +110,9 @@ def get_git_pkgv(d, use_tags): d, quiet=True).strip() ver = gitpkgv_drop_tag_prefix(output) except Exception: - ver = "0.0-%s-g%s" % (commits, rev[:7]) + ver = "0.0-%s-g%s" % (commits, vars['rev'][:7]) else: - ver = "%s+%s" % (commits, rev[:7]) + ver = "%s+%s" % (commits, vars['rev'][:7]) format = format.replace(name, ver) diff --git a/meta-oe/classes/gitver.bbclass b/meta-oe/classes/gitver.bbclass index e7b5155ee00..380374ab27b 100644 --- a/meta-oe/classes/gitver.bbclass +++ b/meta-oe/classes/gitver.bbclass @@ -13,37 +13,45 @@ def git_drop_tag_prefix(version): return version GIT_TAGADJUST = "git_drop_tag_prefix(version)" -GITVER = "${@get_git_pv('${S}', d, tagadjust=lambda version:${GIT_TAGADJUST})}" -GITSHA = "${@get_git_hash('${S}', d)}" +GITVER = "${@get_git_pv(d, tagadjust=lambda version:${GIT_TAGADJUST})}" +GITSHA = "${@get_git_hash(d)}" def gitrev_run(cmd, path): (output, error) = bb.process.run(cmd, cwd=path) return output.rstrip() -def get_git_pv(path, d, tagadjust=None): +def get_git_pv(d, tagadjust=None): import os - import bb.process - gitdir = os.path.abspath(os.path.join(d.getVar("S", True), ".git")) + srcdir = d.getVar("EXTERNALSRC") or d.getVar("S") + gitdir = os.path.abspath(os.path.join(srcdir, ".git")) try: ver = gitrev_run("git describe --tags", gitdir) - except Exception, exc: - bb.fatal(str(exc)) - - if not ver: + except: try: ver = gitrev_run("git rev-parse --short HEAD", gitdir) - except Exception, exc: - bb.fatal(str(exc)) + if ver: + return "0.0+%s" % ver + else: + return "0.0" - if ver: - return "0.0+%s" % ver - else: - return "0.0" - else: - if tagadjust: - ver = tagadjust(ver) - return ver + except Exception as exc: + raise bb.parse.SkipPackage(str(exc)) + + if ver and tagadjust: + ver = tagadjust(ver) + return ver + +def get_git_hash(d): + import os + + srcdir = d.getVar("EXTERNALSRC") or d.getVar("S") + gitdir = os.path.abspath(os.path.join(srcdir, ".git")) + try: + rev = gitrev_run("git rev-list HEAD -1") + return rev[:7] + except Exception as exc: + bb.fatal(str(exc)) def mark_recipe_dependencies(path, d): from bb.parse import mark_dependency @@ -71,5 +79,6 @@ def mark_recipe_dependencies(path, d): mark_dependency(d, tagdir) python () { - mark_recipe_dependencies(d.getVar("S", True), d) + srcdir = d.getVar("EXTERNALSRC") or d.getVar("S") + mark_recipe_dependencies(srcdir, d) } diff --git a/meta-oe/classes/machine_kernel_pr.bbclass b/meta-oe/classes/machine_kernel_pr.bbclass index 463b64d8e27..e48bd017f95 100644 --- a/meta-oe/classes/machine_kernel_pr.bbclass +++ b/meta-oe/classes/machine_kernel_pr.bbclass @@ -1,6 +1,6 @@ python __anonymous () { - machine_kernel_pr = d.getVar('MACHINE_KERNEL_PR', True) + machine_kernel_pr = d.getVar('MACHINE_KERNEL_PR') if machine_kernel_pr: d.setVar('PR', machine_kernel_pr) diff --git a/meta-oe/classes/meson.bbclass b/meta-oe/classes/meson.bbclass new file mode 100644 index 00000000000..a09bc240d33 --- /dev/null +++ b/meta-oe/classes/meson.bbclass @@ -0,0 +1,106 @@ +inherit python3native + +DEPENDS_append = " meson-native ninja-native" + +# As Meson enforces out-of-tree builds we can just use cleandirs +B = "${WORKDIR}/build" +do_configure[cleandirs] = "${B}" + +# Where the meson.build build configuration is +MESON_SOURCEPATH = "${S}" + +# These variables in the environment override the *native* tools, not the cross. +export CPPFLAGS = "${BUILD_CPPFLAGS}" +export CC = "${BUILD_CC}" +export CFLAGS = "${BUILD_CFLAGS}" +export CXX = "${BUILD_CXX}" +export CXXFLAGS = "${BUILD_CXXFLAGS}" +export LD = "${BUILD_LD}" +export LDFLAGS = "${BUILD_LDFLAGS}" +export AR = "${BUILD_AR}" +export PKG_CONFIG = "pkg-config-native" + +def noprefix(var, d): + return d.getVar(var, True).replace(d.getVar('prefix', True) + '/', '', 1) + +MESONOPTS = " --prefix ${prefix} \ + --bindir ${@noprefix('bindir', d)} \ + --sbindir ${@noprefix('sbindir', d)} \ + --datadir ${@noprefix('datadir', d)} \ + --libdir ${@noprefix('libdir', d)} \ + --libexecdir ${@noprefix('libexecdir', d)} \ + --includedir ${@noprefix('includedir', d)} \ + --mandir ${@noprefix('mandir', d)} \ + --infodir ${@noprefix('infodir', d)} \ + --sysconfdir ${sysconfdir} \ + --localstatedir ${localstatedir} \ + --sharedstatedir ${sharedstatedir}" + +MESON_C_ARGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS}" +MESON_LINK_ARGS = "${MESON_C_ARGS} ${LDFLAGS}" + +MESON_HOST_ENDIAN = "${@bb.utils.contains('SITEINFO_ENDIANNESS', 'be', 'big', 'little', d)}" +MESON_TARGET_ENDIAN = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'big', 'little', d)}" + +EXTRA_OEMESON += "${PACKAGECONFIG_CONFARGS}" + +MESON_CROSS_FILE = "" +MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross" + +def meson_array(var, d): + return "', '".join(d.getVar(var, True).split()).join(("'", "'")) + +addtask write_config before do_configure +do_write_config[vardeps] += "MESON_C_ARGS TOOLCHAIN_OPTIONS" +do_write_config() { + # This needs to be Py to split the args into single-element lists + cat >${WORKDIR}/meson.cross < by - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/meta-oe/licenses/ManishSingh b/meta-oe/licenses/ManishSingh new file mode 100644 index 00000000000..0243ddff48d --- /dev/null +++ b/meta-oe/licenses/ManishSingh @@ -0,0 +1,19 @@ +Copyright (C) 2002 Manish Singh + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Manish Singh not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Manish Singh makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +MANISH SINGH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL MANISH SINGH BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/meta-oe/licenses/QWTv1.0 b/meta-oe/licenses/QWTv1.0 new file mode 100644 index 00000000000..9c01f7e2120 --- /dev/null +++ b/meta-oe/licenses/QWTv1.0 @@ -0,0 +1,543 @@ + Qwt License + Version 1.0, January 1, 2003 + +The Qwt library and included programs are provided under the terms +of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) with the following +exceptions: + + 1. Widgets that are subclassed from Qwt widgets do not + constitute a derivative work. + + 2. Static linking of applications and widgets to the + Qwt library does not constitute a derivative work + and does not require the author to provide source + code for the application or widget, use the shared + Qwt libraries, or link their applications or + widgets against a user-supplied version of Qwt. + + If you link the application or widget to a modified + version of Qwt, then the changes to Qwt must be + provided under the terms of the LGPL in sections + 1, 2, and 4. + + 3. You do not have to provide a copy of the Qwt license + with programs that are linked to the Qwt library, nor + do you have to identify the Qwt license in your + program or documentation as required by section 6 + of the LGPL. + + + However, programs must still identify their use of Qwt. + The following example statement can be included in user + documentation to satisfy this requirement: + + [program/widget] is based in part on the work of + the Qwt project (http://qwt.sf.net). + +---------------------------------------------------------------------- + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/meta-oe/licenses/TLWG b/meta-oe/licenses/TLWG new file mode 100644 index 00000000000..a124184ad06 --- /dev/null +++ b/meta-oe/licenses/TLWG @@ -0,0 +1,150 @@ +This package collects Thai scalable fonts available in free licenses, and +maintains and distributes them under GNU General Public License with +original authors' permissions. + +Some fonts cannot be GPL, because they are based on fonts with different +licenses. See the list of such fonts at the end of this file. + +Copyright: + + - Kinnari: + + Copyright (C) 1999 Db Type. All Rights Reserved. + Copyright (C) 2007 National Electronics and Computer Technology Center. + All Rights Reserved. + + - Garuda: + + Generated by NECTEC for Public Domain. + Modified under GNU General Public License by TLWG. + + - Norasi: + + Copyright (C) 1999, The National Font Project (v.beta). + Yannis Haralambous, Virach Sornlertlamvanich and Anutara Tantraporn. + All rights reserved. + Modified under GNU General Public License, with creators' permission, + by Thai Linux Working Group (TLWG). + + - Loma: + + Copyright (C) 2003, NECTEC. All rights reserved. + + - TlwgMono: + + Copyright (C) 2003 Poonlap Veerathanabutr + + - Tlwg Typewriter: + + Copyright (C) 2003, 2004 Poonlap Veerathanabutr + + - Tlwg Typist: + + Tlwg Typist, based on Poonlap Veerathanabutr's Tlwg Typewriter. + + Copyright (C) 2005-2006 Theppitak Karoonboonyanan. Tlwg Typewriter, + Free Thai Pseudo Monospace outline font. + + Copyright (C) 2003, 2004 Poonlap Veerathanabutr + + - Purisa: + + Copyright (C) 2003, 2004 Poonlap Veerathanabutr + , GPL license + + - Sawasdee: + + Copyright (C) 2007 Pol Udomwittayanukul . + All rights reserved. + + - Umpush: + + Copyright (C) 2003 NECTEC. All rights reserved. + Copyright (c) 2007 Widhaya Trisarnwadhana . + All rights reserved. + +License: + + This font is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + This font is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this font; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + As a special exception, if you create a document which uses this font, + and embed this font or unaltered portions of this font into the + document, this font does not by itself cause the resulting document + to be covered by the GNU General Public License. This exception does + not however invalidate any other reasons why the document might be + covered by the GNU General Public License. If you modify this font, + you may extend this exception to your version of the font, but you + are not obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + +See included GPL file for the GNU General Public License (GPL) terms. + + +* Non-GPL Fonts: + +- Waree: + +Copyright: + + Copyright (C) 2003 by Bitstream, Inc. All Rights Reserved. + TLWG changes are in public domain. + + Bitstream Vera is a trademark of Bitstream, Inc. + +License: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of the fonts accompanying this license ("Fonts") and associated + documentation files (the "Font Software"), to reproduce and distribute + the Font Software, including without limitation the rights to use, + copy, merge, publish, distribute, and/or sell copies of the Font + Software, and to permit persons to whom the Font Software is furnished + to do so, subject to the following conditions: + + The above copyright and trademark notices and this permission notice + shall be included in all copies of one or more of the Font Software + typefaces. + + The Font Software may be modified, altered, or added to, and in + particular the designs of glyphs or characters in the Fonts may be + modified and additional glyphs or characters may be added to the + Fonts, only if the fonts are renamed to names not containing either + the words "Bitstream" or the word "Vera". + + This License becomes null and void to the extent applicable to Fonts + or Font Software that has been modified and is distributed under the + "Bitstream Vera" names. + + The Font Software may be sold as part of a larger software package + but no copy of one or more of the Font Software typefaces may be sold + by itself. + + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL + BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT + SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + + Except as contained in this notice, the names of Gnome, the Gnome + Foundation, and Bitstream Inc., shall not be used in advertising or + otherwise to promote the sale, use or other dealings in this Font + Software without prior written authorization from the Gnome Foundation + or Bitstream Inc., respectively. For further information, contact: + fonts at gnome dot org. + diff --git a/meta-oe/licenses/X11 b/meta-oe/licenses/X11 new file mode 100644 index 00000000000..da3e406240e --- /dev/null +++ b/meta-oe/licenses/X11 @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2008 Alex Graveley + * Copyright (C) 2010 Ulrik Sverdrup + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ diff --git a/meta-oe/licenses/flite b/meta-oe/licenses/flite new file mode 100644 index 00000000000..51e67fd785d --- /dev/null +++ b/meta-oe/licenses/flite @@ -0,0 +1,32 @@ +/*************************************************************************/ +/* */ +/* Language Technologies Institute */ +/* Carnegie Mellon University */ +/* Copyright (c) 1999-2009 */ +/* All Rights Reserved. */ +/* */ +/* Permission is hereby granted, free of charge, to use and distribute */ +/* this software and its documentation without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of this work, and to */ +/* permit persons to whom this work is furnished to do so, subject to */ +/* the following conditions: */ +/* 1. The code must retain the above copyright notice, this list of */ +/* conditions and the following disclaimer. */ +/* 2. Any modifications must be clearly marked as such. */ +/* 3. Original authors' names are not deleted. */ +/* 4. The authors' names are not used to endorse or promote products */ +/* derived from this software without specific prior written */ +/* permission. */ +/* */ +/* CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK */ +/* DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING */ +/* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT */ +/* SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE */ +/* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES */ +/* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN */ +/* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ +/* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF */ +/* THIS SOFTWARE. */ +/* */ +/*************************************************************************/ diff --git a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb b/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb new file mode 100644 index 00000000000..8888b226780 --- /dev/null +++ b/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb @@ -0,0 +1,29 @@ +SUMMARY = "Analyze Suspend" +DESCRIPTION = "analyze-suspend is a tool for system developers to visualize \ +the activity between suspend and resume, allowing them to identify \ +inefficiencies and bottlenecks." +HOMEPAGE = "https://01.org/suspendresume" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" + +# Apart from the listed RDEPENDS, analyze-suspend depends on some features +# provided by the kernel. These options are: +# - CONFIG_PM_DEBUG=y +# - CONFIG_PM_SLEEP_DEBUG=y +# - CONFIG_FTRACE=y +# - CONFIG_FUNCTION_TRACER=y +# - CONFIG_FUNCTION_GRAPH_TRACER=y + +RDEPENDS_${PN} += "python-core python-datetime python-stringold" + +PV = "3.2+gitr${SRCPV}" +SRCREV = "c669e002a2e7504f21e277ad248fa81033926391" +SRC_URI = "git://github.com/01org/suspendresume.git;protocol=https" +S = "${WORKDIR}/git" + +do_install() { + install -Dm 0755 analyze_suspend.py ${D}${bindir}/analyze_suspend.py + install -Dm 0644 README ${D}${docdir}/analyze-suspend/README +} + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch b/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch new file mode 100644 index 00000000000..6a5350c37c6 --- /dev/null +++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch @@ -0,0 +1,81 @@ +dhrystone: fix compilation problems + +This patch fixes two compilation errors with original +dhrystone sources: +* Redefinition of times() with wrong return type + - Fixed by commenting out the unnecessary redefinition +* Undefined identifier HZ + - Originally HZ was supposed to be the clock frequency + value for times() + - For Linux, the frequency should come from sysconf + - This patch defines global varible HZ and initializes + it from sysconf + +Additionally, this patch adds a simple Makefile. + +Upstream-status: Pending + +Sign-off-by: Kimmo Surakka +Signed-off-by: Jose Alarcon +--- + +diff -Naur dhry.orig/dhry_1.c dhry/dhry_1.c +--- dhry.orig/dhry_1.c 2015-07-20 14:25:58.059945353 +0300 ++++ dhry/dhry_1.c 2015-07-20 12:43:25.318945353 +0300 +@@ -45,11 +45,15 @@ + + #ifdef TIMES + struct tms time_info; +-extern int times (); ++/* extern int times (); */ + /* see library function "times" */ + #define Too_Small_Time 120 + /* Measurements should last at least about 2 seconds */ + #endif ++#ifndef HZ ++#include /* sysconf */ ++ long HZ; ++#endif + #ifdef TIME + extern long time(); + /* see library function "time" */ +@@ -84,6 +88,9 @@ + + /* Initializations */ + ++#ifndef HZ ++ HZ = sysconf(_SC_CLK_TCK); ++#endif + Next_Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type)); + Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type)); + +diff -Naur dhry.orig/dhry.h dhry/dhry.h +--- dhry.orig/dhry.h 2015-07-20 14:25:58.054945353 +0300 ++++ dhry/dhry.h 2015-07-20 12:42:59.903945353 +0300 +@@ -420,4 +420,6 @@ + } variant; + } Rec_Type, *Rec_Pointer; + +- ++#ifndef HZ ++ extern long HZ; ++#endif +diff -Naur dhry.orig/Makefile dhry/Makefile +--- dhry.orig/Makefile 1970-01-01 02:00:00.000000000 +0200 ++++ dhry/Makefile 2015-07-20 14:10:45.832945353 +0300 +@@ -0,0 +1,15 @@ ++CC=gcc ++ ++all: dhry ++ ++dhry: dhry_1.o dhry_2.o ++ $(CC) $(LDFLAGS) -o $@ $^ $(LOADLIBES) $(LDLIBS) ++ ++dhry_1.o: dhry_1.c dhry.h ++ ++dhry_2.o: dhry_2.c dhry.h ++ ++clean: ++ rm -f *.o *~ ++ ++.PHONY: all clean diff --git a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb new file mode 100644 index 00000000000..17e8c700cad --- /dev/null +++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb @@ -0,0 +1,26 @@ +SUMMARY = "Dhrystone CPU benchmark" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851" + +SRC_URI = "http://www.netlib.org/benchmark/dhry-c;downloadfilename=dhry-c.shar \ + file://dhrystone.patch" +SRC_URI[md5sum] = "75aa5909c174eed98c134be2f56307da" +SRC_URI[sha256sum] = "038a7e9169787125c3451a6c941f3aca5db2d2f3863871afcdce154ef17f4e3e" + +# Need to override Makefile variables +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_unpack() { + [ -d ${S} ] || mkdir -p ${S} + cd ${S} + sh ${DL_DIR}/dhry-c.shar +} +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/dhry ${D}${bindir} +} + +# Prevent procedure merging as required by dhrystone.c: +CFLAGS += "-fno-lto" + +LDFLAGS += "-fno-lto" diff --git a/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb b/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb deleted file mode 100644 index 016b1f21adb..00000000000 --- a/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Filesystem and hardware benchmark and stress tool" -DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \ -stress/hardware verification. It has support for a number of I/O engines, \ -I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \ -and much more. It can work on block devices as well as files. fio accepts \ -job descriptions in a simple-to-understand text format. Several example job \ -files are included. fio displays all sorts of I/O performance information." -HOMEPAGE = "http://freecode.com/projects/fio" -SECTION = "console/tests" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" - -DEPENDS = "libaio" - -# rev for v2.2.6 -SRCREV = "f52c9691bc8c285f3445235c69acdfd6de7f9b82" -SRC_URI = "git://git.kernel.dk/fio.git" - -S = "${WORKDIR}/git" - -EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'" - -do_install() { - oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir} - install -d ${D}/${docdir}/${PN} - cp -a ${S}/examples ${D}/${docdir}/${PN}/ -} diff --git a/meta-oe/recipes-benchmark/fio/fio_2.9.bb b/meta-oe/recipes-benchmark/fio/fio_2.9.bb new file mode 100644 index 00000000000..67b513fa0b7 --- /dev/null +++ b/meta-oe/recipes-benchmark/fio/fio_2.9.bb @@ -0,0 +1,41 @@ +SUMMARY = "Filesystem and hardware benchmark and stress tool" +DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \ +stress/hardware verification. It has support for a number of I/O engines, \ +I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \ +and much more. It can work on block devices as well as files. fio accepts \ +job descriptions in a simple-to-understand text format. Several example job \ +files are included. fio displays all sorts of I/O performance information." +HOMEPAGE = "http://freecode.com/projects/fio" +SECTION = "console/tests" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +DEPENDS = "libaio zlib" + +PACKAGECONFIG_NUMA = "numa" +# ARM does not currently support NUMA +PACKAGECONFIG_NUMA_arm = "" + +PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}" +PACKAGECONFIG[numa] = ",--disable-numa,numactl" + +# rev for v2.9 +SRCREV = "fe8d0f4c54f0c308c9a02a4e3c2f5084e8bf5461" +SRC_URI = "git://git.kernel.dk/fio.git" + +S = "${WORKDIR}/git" + +# avoids build breaks when using no-static-libs.inc +DISABLE_STATIC = "" + +EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'" + +do_configure() { + ./configure ${EXTRA_OECONF} +} + +do_install() { + oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir} + install -d ${D}/${docdir}/${PN} + cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/ +} diff --git a/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch b/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch new file mode 100644 index 00000000000..cdf09faec8e --- /dev/null +++ b/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch @@ -0,0 +1,31 @@ +From 35e9f80518d666db5f9c62e8072ffbc307b4af4f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Aug 2017 08:30:01 -0700 +Subject: [PATCH] Fix clang warnings + +../src/native-state-drm.cpp:334:20: error: cannot pass object of non-trivial type 'std::__cxx11::basic_string' through variadic function; call will abort at runtime [-Wnon-pod-varargs] + dev_path); + ^ +1 error generated. + +Signed-off-by: Khem Raj +--- + src/native-state-drm.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/native-state-drm.cpp b/src/native-state-drm.cpp +index dc2b323..62566ee 100644 +--- a/src/native-state-drm.cpp ++++ b/src/native-state-drm.cpp +@@ -331,7 +331,7 @@ static int open_using_udev_scan() + if (!valid_fd(fd)) { + // %m is GLIBC specific... Maybe use strerror here... + Log::error("Tried to use '%s' but failed.\nReason : %m", +- dev_path); ++ dev_path.c_str()); + } + else + Log::debug("Success!\n"); +-- +2.14.1 + diff --git a/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch b/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch new file mode 100644 index 00000000000..fde82381d5b --- /dev/null +++ b/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch @@ -0,0 +1,13 @@ +Index: git/wscript +=================================================================== +--- git.orig/wscript 2016-07-29 13:15:44.954249796 -0500 ++++ git/wscript 2016-07-29 15:52:06.196768865 -0500 +@@ -90,7 +90,7 @@ + ctx.check_cxx(lib = lib, uselib_store = uselib) + + # Check required functions +- req_funcs = [('memset', 'string.h', []) ,('sqrt', 'math.h', ['m'])] ++ req_funcs = [('memset', 'string.h', [])] + for func, header, uselib in req_funcs: + ctx.check_cxx(function_name = func, header_name = header, + uselib = uselib, mandatory = True) diff --git a/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch b/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch new file mode 100644 index 00000000000..72b8debe564 --- /dev/null +++ b/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch @@ -0,0 +1,43 @@ +From: Otavio Salvador +Subject: [PATCH] build: Check packages to be used by the enabled flavors +Organization: O.S. Systems Software LTDA. + +The packages shouldn't be dynamically detected otherwise the build +predictability is lost. We now have all packages as mandatory but +dependent of the flavors which use them. + +Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/8] + +Signed-off-by: Otavio Salvador +--- + wscript | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/wscript b/wscript +index cab62a3..e7eaed0 100644 +--- a/wscript ++++ b/wscript +@@ -121,13 +121,17 @@ def configure(ctx): + ('mirclient','mirclient', '0.13', list_contains(ctx.options.flavors, 'mir')), + ('wayland-client','wayland-client', None, list_contains(ctx.options.flavors, 'wayland')), + ('wayland-egl','wayland-egl', None, list_contains(ctx.options.flavors, 'wayland'))] +- for (pkg, uselib, atleast, mandatory) in opt_pkgs: ++ for (pkg, uselib, atleast, check) in opt_pkgs: ++ # Check packages required by the flavors ++ if not check: ++ continue ++ + if atleast is None: + ctx.check_cfg(package = pkg, uselib_store = uselib, +- args = '--cflags --libs', mandatory = mandatory) ++ args = '--cflags --libs', mandatory = True) + else: + ctx.check_cfg(package = pkg, uselib_store = uselib, atleast_version=atleast, +- args = '--cflags --libs', mandatory = mandatory) ++ args = '--cflags --libs', mandatory = True) + + + # Prepend CXX flags so that they can be overriden by the +-- +2.4.6 + diff --git a/meta-oe/recipes-benchmark/glmark2/glmark2_2014.03.bb b/meta-oe/recipes-benchmark/glmark2/glmark2_2014.03.bb deleted file mode 100644 index 708b6d2ea72..00000000000 --- a/meta-oe/recipes-benchmark/glmark2/glmark2_2014.03.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "OpenGL (ES) 2.0 benchmark" -DESCRIPTION = "glmark2 is a benchmark for OpenGL (ES) 2.0. \ -It uses only the subset of the OpenGL 2.0 API that is compatible with OpenGL ES 2.0." -HOMEPAGE = "https://launchpad.net/glmark2" -BUGTRACKER = "https://bugs.launchpad.net/glmark2" - -LICENSE = "GPLv3+ & SGIv1" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552" - -DEPENDS = "libpng12 jpeg virtual/libx11" - -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BP}.tar.gz" - -SRC_URI[md5sum] = "739859cf57d4c8a23452c43e84f66e56" -SRC_URI[sha256sum] = "bded41aaf918ce062d9b81e42cc5be943e6a80bc4ff9d046983b96102c3df6b5" - -inherit waf pkgconfig distro_features_check - -PACKAGECONFIG ?= "gl gles2" - -PACKAGECONFIG[gl] = ",,virtual/libgl" -PACKAGECONFIG[gles2] = ",,virtual/libgles2" - -python __anonymous() { - packageconfig = (d.getVar("PACKAGECONFIG", True) or "").split() - flavors = [] - if "gles2" in packageconfig: - flavors.append("x11-glesv2") - if "gl" in packageconfig: - flavors.append("x11-gl") - if flavors: - d.appendVar("EXTRA_OECONF", " --with-flavors=%s" % ",".join(flavors)) -} diff --git a/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb new file mode 100644 index 00000000000..b72ced06ad3 --- /dev/null +++ b/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb @@ -0,0 +1,62 @@ +SUMMARY = "OpenGL (ES) 2.0 benchmark" +DESCRIPTION = "glmark2 is a benchmark for OpenGL (ES) 2.0. \ +It uses only the subset of the OpenGL 2.0 API that is compatible with OpenGL ES 2.0." +HOMEPAGE = "https://launchpad.net/glmark2" +BUGTRACKER = "https://bugs.launchpad.net/glmark2" + +LICENSE = "GPLv3+ & SGIv1" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552" + +DEPENDS = "libpng jpeg udev" + +PV = "2017.07+${SRCPV}" + +COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '.*-linux*', 'null', d)}" + +SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https \ + file://build-Check-packages-to-be-used-by-the-enabled-flavo.patch \ + file://Fix-configure-for-sqrt-check.patch \ + file://0001-Fix-clang-warnings.patch \ + " +SRCREV = "ed20c633f1926d1dd78e3e89043c85a81302cbe6" + +S = "${WORKDIR}/git" + +inherit waf pkgconfig distro_features_check + +REQUIRED_DISTRO_FEATURES += "opengl" + +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl x11-gles2', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gl wayland-gles2', '', d)} \ + drm-gl drm-gles2" + +# Enable C++11 features +CXXFLAGS += "-std=c++11" + +PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11" +PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11" +PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm" +PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm" +PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland" +PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland" + +python __anonymous() { + packageconfig = (d.getVar("PACKAGECONFIG") or "").split() + flavors = [] + if "x11-gles2" in packageconfig: + flavors.append("x11-glesv2") + if "x11-gl" in packageconfig: + flavors.append("x11-gl") + if "wayland-gles2" in packageconfig: + flavors.append("wayland-glesv2") + if "wayland-gl" in packageconfig: + flavors.append("wayland-gl") + if "drm-gles2" in packageconfig: + flavors.append("drm-glesv2") + if "drm-gl" in packageconfig: + flavors.append("drm-gl") + if flavors: + d.appendVar("EXTRA_OECONF", " --with-flavors=%s" % ",".join(flavors)) +} + diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3/parallelism.patch b/meta-oe/recipes-benchmark/iozone3/iozone3/parallelism.patch new file mode 100644 index 00000000000..d5622ed2cf0 --- /dev/null +++ b/meta-oe/recipes-benchmark/iozone3/iozone3/parallelism.patch @@ -0,0 +1,97 @@ +remove libasync.o and libbif.o from deps + +there are no implicit rules to build them and they get wrong CFLAGS +when compiled with implicit rule. + +They are built as part of iozone_linux.o target anyway + +Only fixed linux targets for now + +Signed-off-by: Khem Raj +Upstream-Status: Pending + + + +--- current/makefile.org 2016-12-06 02:19:10.367911020 +0000 ++++ current/makefile 2016-12-06 02:21:38.767911020 +0000 +@@ -167,7 +167,7 @@ + # + # GNU 'C' compiler Linux build with threads, largefiles, async I/O + # +-linux: iozone_linux.o libasync.o libbif.o fileop_linux.o pit_server.o ++linux: iozone_linux.o fileop_linux.o pit_server.o + $(CC) -O3 $(LDFLAGS) iozone_linux.o libasync.o libbif.o -lpthread \ + -lrt -o iozone + $(CC) -O3 -Dlinux fileop_linux.o -o fileop +@@ -176,7 +176,7 @@ + # + # GNU 'C' compiler Linux build for powerpc chip with threads, largefiles, async I/O + # +-linux-powerpc: iozone_linux-powerpc.o libbif.o libasync.o fileop_linux-ppc.o pit_server.o ++linux-powerpc: iozone_linux-powerpc.o fileop_linux-ppc.o pit_server.o + $(CC) -O3 $(LDFLAGS) iozone_linux-powerpc.o libasync.o \ + libbif.o -lpthread -lrt -o iozone + $(CC) -O3 -Dlinux fileop_linux-ppc.o -o fileop +@@ -184,7 +184,7 @@ + # + # GNU 'C' compiler Linux build for sparc chip with threads, largefiles, async I/O + # +-linux-sparc: iozone_linux-sparc.o libbif.o libasync.o fileop_linux.o pit_server.o ++linux-sparc: iozone_linux-sparc.o fileop_linux.o pit_server.o + $(CC) -O3 $(LDFLAGS) iozone_linux-sparc.o libasync.o libbif.o \ + -lpthread -lrt -o iozone + $(CC) -O3 -Dlinux fileop_linux.o -o fileop +@@ -193,7 +193,7 @@ + # + # GNU 'C' compiler Linux build with threads, largefiles, async I/O + # +-linux-ia64: iozone_linux-ia64.o libbif.o libasync.o fileop_linux-ia64.o pit_server.o ++linux-ia64: iozone_linux-ia64.o fileop_linux-ia64.o pit_server.o + $(CC) -O3 $(LDFLAGS) iozone_linux-ia64.o libbif.o libasync.o \ + -lrt -lpthread -o iozone + $(CC) -O3 -Dlinux fileop_linux-ia64.o -o fileop +@@ -202,7 +202,7 @@ + # + # GNU 'C' compiler Linux build for powerpc chip with threads, largefiles, async I/O + # +-linux-powerpc64: iozone_linux-powerpc64.o libbif.o libasync.o fileop_linux-ppc64.o pit_server-linux-powerpc64.o ++linux-powerpc64: iozone_linux-powerpc64.o fileop_linux-ppc64.o pit_server-linux-powerpc64.o + $(CC) -O3 -Dunix -DHAVE_ANSIC_C -DSHARED_MEM -DASYNC_IO \ + -D_LARGEFILE64_SOURCE -Dlinux \ + iozone_linux-powerpc64.o libasync.o libbif.o -lpthread \ +@@ -213,7 +213,7 @@ + # + # GNU 'C' compiler Linux build with threads, largefiles, async I/O + # +-linux-arm: iozone_linux-arm.o libbif.o libasync.o fileop_linux-arm.o pit_server.o ++linux-arm: iozone_linux-arm.o fileop_linux-arm.o pit_server.o + $(CC) -O3 $(LDFLAGS) iozone_linux-arm.o libbif.o libasync.o \ + -lrt -lpthread -o iozone + $(CC) -O3 -Dlinux fileop_linux-arm.o -o fileop +@@ -222,7 +222,7 @@ + # + # GNU 'C' compiler Linux build with threads, largefiles, async I/O + # +-linux-AMD64: iozone_linux-AMD64.o libbif.o libasync.o fileop_linux-AMD64.o pit_server.o ++linux-AMD64: iozone_linux-AMD64.o fileop_linux-AMD64.o pit_server.o + $(CC) -O3 $(LDFLAGS) iozone_linux-AMD64.o libbif.o libasync.o \ + -lrt -lpthread -o iozone + $(CC) -O3 -Dlinux fileop_linux-AMD64.o -o fileop +@@ -231,7 +231,7 @@ + # + # GNU 'C' compiler Linux build with S/390, threads, largfiles, async I/O + # +-linux-S390: iozone_linux-s390.o libbif.o libasync.o fileop_linux-s390.o pit_server.o ++linux-S390: iozone_linux-s390.o fileop_linux-s390.o pit_server.o + $(CC) -O2 $(LDFLAGS) -lpthread -lrt iozone_linux-s390.o \ + libbif.o libasync.o -o iozone + $(CC) -O3 -Dlinux fileop_linux-s390.o -o fileop +@@ -240,7 +240,7 @@ + # + # GNU 'C' compiler Linux build with S/390, threads, largfiles, async I/O + # +-linux-S390X: iozone_linux-s390x.o libbif.o libasync.o fileop_linux-s390x.o pit_server.o ++linux-S390X: iozone_linux-s390x.o fileop_linux-s390x.o pit_server.o + $(CC) -O2 $(LDFLAGS) -lpthread -lrt iozone_linux-s390x.o \ + libbif.o libasync.o -o iozone + $(CC) -O3 -Dlinux fileop_linux-s390x.o -o fileop diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb b/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb deleted file mode 100644 index 14373b9e018..00000000000 --- a/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb +++ /dev/null @@ -1,114 +0,0 @@ -SUMMARY = "Filesystem and Disk Benchmarking Tool" -HOMEPAGE = "http://www.iozone.org/" -AUTHOR = "Don Capps , William D. Norcott " -SECTION = "console/tests" -LICENSE = "iozone3" -LIC_FILES_CHKSUM = "file://iozone.c;beginline=266;endline=270;md5=ab42a6185fd0443978871f11a007ac0b" - -SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \ - file://copyright.txt \ -" -SRC_URI[md5sum] = "a40dcda593f5841d0aaffe9f21172020" -SRC_URI[sha256sum] = "9f60e854d7bc5bc3de15355cf5621e15098bd744a26845d11730b3060f4a5fff" - -S = "${WORKDIR}/${BPN}_${PV}/src/current/" - -# -# All other arches can use the default OEMAKE except those -# explicitly listed below. Another, the iozone3 Makefile -# needs to be told about the cross-compiler explicitly here. -# -EXTRA_OEMAKE_powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'" -EXTRA_OEMAKE_powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'" -EXTRA_OEMAKE_arm = "linux-arm CC='${CC}' GCC='${CC}'" -EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'" - -TARGET_CC_ARCH += "${LDFLAGS}" - -do_install() { - install -d ${D}${bindir} \ - ${D}${mandir}/man1 \ - ${D}${datadir}/doc/${BPN}/examples - - install -m 0755 ${S}/iozone ${D}${bindir} - install -m 0755 ${S}/fileop ${D}${bindir} - install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/iozone.1 ${D}${mandir}/man1/ - install -m 0644 ${WORKDIR}/copyright.txt ${D}${datadir}/doc/${BPN}/ - - install -m 0644 ${S}/*.dem ${D}${datadir}/doc/${BPN}/examples - install -m 0644 ${S}/client_list ${D}${datadir}/doc/${BPN}/examples - install -m 0644 ${S}/Gnuplot.txt ${D}${datadir}/doc/${BPN}/examples - - install -m 0755 ${S}/Generate_Graphs ${D}${datadir}/doc/${BPN}/examples - install -m 0755 ${S}/gengnuplot.sh ${D}${datadir}/doc/${BPN}/examples - install -m 0755 ${S}/report.pl ${D}${datadir}/doc/${BPN}/examples - - install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Iozone_ps.gz ${D}${datadir}/doc/${BPN}/ - install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/IOzone_msword_98.pdf ${D}${datadir}/doc/${BPN}/ - install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Run_rules.doc ${D}${datadir}/doc/${BPN}/ -} - -FILES_${PN} += "${datadir}/doc/${PN}/copyright.txt" - -# LICENSE: -# -# Copyright 1991, 1992, 1994, 1998, 1999, 2002 William D. Norcott -# -# License to freely use and distribute this software is hereby granted -# by the author, subject to the condition that this copyright notice -# remains intact. The author retains the exclusive right to publish -# derivative works based on this work, including, but not limited to -# revised versions of this work. -# - -# -# Below is author reply to question about distributing iozone3 in -# OpenEmbedded: -# -# ======================================================================== -# -# Marcin, -# -# Re-distribution is permitted as long as the copyright is -# maintained and the source code is not changed. I do not -# see a problem with your mods to enable fileop for Linux-arm, -# as these mods have been returned to the Iozone folks, -# and they have been accepted for inclusion in the next -# release :-) -# -# Thank you for your contribution, -# Don Capps -# -# ----- Original Message ----- -# From: "Marcin Juszkiewicz" -# To: "Don Capps" ; "William D. Norcott" -# -# Sent: Sunday, October 29, 2006 4:55 PM -# Subject: iozone3 263 patch for arm and License question -# -# -# > Morning -# > -# > I want to include iozone3 in OpenEmbedded [1] metadata to give it for -# > other developers. Currently OE is used to build few distributions for -# > misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of -# > machines (PDA, settopbox, devboards, desktops, thin clients, routers). -# > -# > According to your distribution of derivations is forbidden. Packaging -# > iozone3 in OpenEmbedded will not involve any source code changes. But -# > when I was building it for ARM I discovered that fileop binary was not -# > built - so I created patch for it (attached). Not yet tested it on target -# > device. -# > -# > Thus, I seek your written permission via e-mail to distribute a package of -# > the unmodified source code and also a package of the pre-compiled binary. -# > Your copyright statement will be included in the package. -# > -# > -# > 1. http://www.openembedded.org/ -# > -# > Regards -# > -- -# > JID: hrw-jabber.org -# > OpenEmbedded developer/consultant - diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb b/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb new file mode 100644 index 00000000000..2864a4d7ffa --- /dev/null +++ b/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb @@ -0,0 +1,117 @@ +SUMMARY = "Filesystem and Disk Benchmarking Tool" +HOMEPAGE = "http://www.iozone.org/" +AUTHOR = "Don Capps , William D. Norcott " +SECTION = "console/tests" +LICENSE = "iozone3" +LIC_FILES_CHKSUM = "file://iozone.c;beginline=37;endline=48;md5=7331260091868dcad0f9edea735b5f4b \ + file://iozone.c;beginline=260;endline=266;md5=77f9ee51e45b57a7e7519c4fa0b4f00b \ +" +SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \ + file://parallelism.patch \ + file://copyright.txt \ +" +SRC_URI[md5sum] = "c924e5e46fb1cf8145f420e8e57eb954" +SRC_URI[sha256sum] = "2e3d72916e7d7340a7c505fc0c3d28553fcc5ff2daf41d811368e55bd4e6a293" + +S = "${WORKDIR}/${BPN}_${PV}/src/current/" + +# +# All other arches can use the default OEMAKE except those +# explicitly listed below. Another, the iozone3 Makefile +# needs to be told about the cross-compiler explicitly here. +# +EXTRA_OEMAKE_powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'" +EXTRA_OEMAKE_powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'" +EXTRA_OEMAKE_x86-64 = "linux-AMD64 CC='${CC}' GCC='${CC}'" +EXTRA_OEMAKE_arm = "linux-arm CC='${CC}' GCC='${CC}'" +EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install() { + install -d ${D}${bindir} \ + ${D}${mandir}/man1 \ + ${D}${datadir}/doc/${BPN}/examples + + install -m 0755 ${S}/iozone ${D}${bindir} + install -m 0755 ${S}/fileop ${D}${bindir} + install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/iozone.1 ${D}${mandir}/man1/ + install -m 0644 ${WORKDIR}/copyright.txt ${D}${datadir}/doc/${BPN}/ + + install -m 0644 ${S}/*.dem ${D}${datadir}/doc/${BPN}/examples + install -m 0644 ${S}/client_list ${D}${datadir}/doc/${BPN}/examples + install -m 0644 ${S}/Gnuplot.txt ${D}${datadir}/doc/${BPN}/examples + + install -m 0755 ${S}/Generate_Graphs ${D}${datadir}/doc/${BPN}/examples + install -m 0755 ${S}/gengnuplot.sh ${D}${datadir}/doc/${BPN}/examples + install -m 0755 ${S}/report.pl ${D}${datadir}/doc/${BPN}/examples + + install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Iozone_ps.gz ${D}${datadir}/doc/${BPN}/ + install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/IOzone_msword_98.pdf ${D}${datadir}/doc/${BPN}/ + install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Run_rules.doc ${D}${datadir}/doc/${BPN}/ +} + +FILES_${PN} += "${datadir}/doc/${PN}/copyright.txt" + +# LICENSE: +# +# Copyright 1991, 1992, 1994, 1998, 1999, 2002 William D. Norcott +# +# License to freely use and distribute this software is hereby granted +# by the author, subject to the condition that this copyright notice +# remains intact. The author retains the exclusive right to publish +# derivative works based on this work, including, but not limited to +# revised versions of this work. +# + +# +# Below is author reply to question about distributing iozone3 in +# OpenEmbedded: +# +# ======================================================================== +# +# Marcin, +# +# Re-distribution is permitted as long as the copyright is +# maintained and the source code is not changed. I do not +# see a problem with your mods to enable fileop for Linux-arm, +# as these mods have been returned to the Iozone folks, +# and they have been accepted for inclusion in the next +# release :-) +# +# Thank you for your contribution, +# Don Capps +# +# ----- Original Message ----- +# From: "Marcin Juszkiewicz" +# To: "Don Capps" ; "William D. Norcott" +# +# Sent: Sunday, October 29, 2006 4:55 PM +# Subject: iozone3 263 patch for arm and License question +# +# +# > Morning +# > +# > I want to include iozone3 in OpenEmbedded [1] metadata to give it for +# > other developers. Currently OE is used to build few distributions for +# > misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of +# > machines (PDA, settopbox, devboards, desktops, thin clients, routers). +# > +# > According to your distribution of derivations is forbidden. Packaging +# > iozone3 in OpenEmbedded will not involve any source code changes. But +# > when I was building it for ARM I discovered that fileop binary was not +# > built - so I created patch for it (attached). Not yet tested it on target +# > device. +# > +# > Thus, I seek your written permission via e-mail to distribute a package of +# > the unmodified source code and also a package of the pre-compiled binary. +# > Your copyright statement will be included in the package. +# > +# > +# > 1. http://www.openembedded.org/ +# > +# > Regards +# > -- +# > JID: hrw-jabber.org +# > OpenEmbedded developer/consultant + diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch deleted file mode 100644 index e8a029790b3..00000000000 --- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch +++ /dev/null @@ -1,52 +0,0 @@ -iperf: fix out of tree configuration - -The configure step uses a package header to check for support of types/declares, -this package header encapsulates all the required system header for providing -the needed resources. When configured from an out of tree directory the package -header is not found due to the hard path. -We now make the path for package header relative to our 'srcdir' so it is -found appropriately. - -Signed-off-by: Awais Belal ---- -diff --git a/configure.ac b/configure.ac -index 2b3fd20..d420f9e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -176,8 +176,8 @@ dnl Check for system services - - dnl check for multicast - if test "$ac_cv_multicast" != no; then -- AC_CHECK_TYPES(struct ip_mreq,,,[#include "compat/headers_slim.h"]) -- AC_CHECK_DECLS(IP_ADD_MEMBERSHIP,,,[#include "compat/headers_slim.h"]) -+ AC_CHECK_TYPES(struct ip_mreq,,,[#include "${srcdir}/compat/headers_slim.h"]) -+ AC_CHECK_DECLS(IP_ADD_MEMBERSHIP,,,[#include "${srcdir}/compat/headers_slim.h"]) - AC_MSG_CHECKING(for multicast support) - ac_cv_multicast=no - if test "$ac_cv_have_decl_IP_ADD_MEMBERSHIP" = yes; then -@@ -193,9 +193,9 @@ fi - - dnl check for IPv6 - if test "$ac_cv_have_ipv6" != no; then -- AC_CHECK_TYPES(struct sockaddr_storage,,,[#include "compat/headers_slim.h"]) -- AC_CHECK_TYPES(struct sockaddr_in6,,,[#include "compat/headers_slim.h"]) -- AC_CHECK_DECLS(AF_INET6,,,[#include "compat/headers_slim.h"]) -+ AC_CHECK_TYPES(struct sockaddr_storage,,,[#include "${srcdir}/compat/headers_slim.h"]) -+ AC_CHECK_TYPES(struct sockaddr_in6,,,[#include "${srcdir}/compat/headers_slim.h"]) -+ AC_CHECK_DECLS(AF_INET6,,,[#include "${srcdir}/compat/headers_slim.h"]) - AC_MSG_CHECKING(for IPv6 headers and structures) - ac_cv_have_ipv6=no - if test "$ac_cv_type_struct_sockaddr_storage" = yes; then -@@ -211,9 +211,9 @@ fi - - if test "$ac_cv_have_ipv6" = yes; then - if test "$ac_cv_multicast" = yes; then -- AC_CHECK_TYPES(struct ipv6_mreq,,,[#include "compat/headers_slim.h"]) -- AC_CHECK_DECLS(IPV6_ADD_MEMBERSHIP,,,[#include "compat/headers_slim.h"]) -- AC_CHECK_DECLS(IPV6_MULTICAST_HOPS,,,[#include "compat/headers_slim.h"]) -+ AC_CHECK_TYPES(struct ipv6_mreq,,,[#include "${srcdir}/compat/headers_slim.h"]) -+ AC_CHECK_DECLS(IPV6_ADD_MEMBERSHIP,,,[#include "${srcdir}/compat/headers_slim.h"]) -+ AC_CHECK_DECLS(IPV6_MULTICAST_HOPS,,,[#include "${srcdir}/compat/headers_slim.h"]) - AC_MSG_CHECKING(for IPv6 multicast support) - ac_cv_have_ipv6_multicast=no - if test "$ac_cv_type_struct_ipv6_mreq" = yes; then diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch deleted file mode 100755 index 12e8f463116..00000000000 --- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch +++ /dev/null @@ -1,8 +0,0 @@ -diff --git iperf-2.0.5/man/Makefile.am iperf-2.0.5/man/Makefile.am - index ed97bc6..728873f 100644 ---- iperf-2.0.5/man/Makefile.am -+++ iperf-2.0.5/man/Makefile.am -@@ -1,2 +1 @@ --man_MANS = iperf.1 --dist_man_MANS = $(man_MANS) -+dist_man_MANS = iperf.1 diff --git a/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb b/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb deleted file mode 100644 index 20adc0db935..00000000000 --- a/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics" -HOMEPAGE = "http://dast.nlanr.net/Projects/Iperf/" -SECTION = "console/network" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=e8478eae9f479e39bc34975193360298" - -SRC_URI = " ${SOURCEFORGE_MIRROR}/iperf/${BP}.tar.gz \ - file://iperf-2.0.5_ManPage.patch \ - file://0001-fix-out-of-tree-config.patch \ - " - -SRC_URI[md5sum] = "44b5536b67719f4250faed632a3cd016" -SRC_URI[sha256sum] = "636b4eff0431cea80667ea85a67ce4c68698760a9837e1e9d13096d20362265b" - -S = "${WORKDIR}/${PN}-${PV}" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--exec-prefix=${STAGING_DIR_HOST}${layout_exec_prefix}" diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3/0001-include-stdint.h-for-various-std-c99-int-types.patch b/meta-oe/recipes-benchmark/iperf3/iperf3/0001-include-stdint.h-for-various-std-c99-int-types.patch new file mode 100644 index 00000000000..ae362080000 --- /dev/null +++ b/meta-oe/recipes-benchmark/iperf3/iperf3/0001-include-stdint.h-for-various-std-c99-int-types.patch @@ -0,0 +1,39 @@ +From be653711fb92d2430b3ecc546b4e3ad927d19ec5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 12:59:42 -0700 +Subject: [PATCH 1/2] include stdint.h for various std c99 int types + +Signed-off-by: Khem Raj +--- + src/cjson.h | 2 ++ + src/timer.h | 1 + + 2 files changed, 3 insertions(+) + +diff --git a/src/cjson.h b/src/cjson.h +index fb8cd3b..69cd272 100644 +--- a/src/cjson.h ++++ b/src/cjson.h +@@ -23,6 +23,8 @@ + #ifndef cJSON__h + #define cJSON__h + ++#include ++ + #ifdef __cplusplus + extern "C" + { +diff --git a/src/timer.h b/src/timer.h +index 0f9c5eb..0b195be 100644 +--- a/src/timer.h ++++ b/src/timer.h +@@ -31,6 +31,7 @@ + #define __TIMER_H + + #include ++#include + + /* TimerClientData is an opaque value that tags along with a timer. The + ** client can use it for whatever, and it gets passed to the callback when +-- +2.13.3 + diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch b/meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch new file mode 100644 index 00000000000..06eb41ac0ea --- /dev/null +++ b/meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch @@ -0,0 +1,31 @@ +From 6db0e28f906bc3784019dfb5bb011237a8034fda Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 13:00:16 -0700 +Subject: [PATCH 2/2] Remove -pg from profile_CFLAGS + +musl fails to link with missing gcrt1.o + +Signed-off-by: Khem Raj +--- + src/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 23b0c72..6268145 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -49,9 +49,9 @@ iperf3_LDFLAGS = -g + iperf3_profile_SOURCES = main.c \ + $(libiperf_la_SOURCES) + +-iperf3_profile_CFLAGS = -pg -g ++iperf3_profile_CFLAGS = -g + iperf3_profile_LDADD = libiperf.la +-iperf3_profile_LDFLAGS = -pg -g ++iperf3_profile_LDFLAGS = -g + + # Specify the sources and various flags for the test cases + t_timer_SOURCES = t_timer.c +-- +2.13.3 + diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch b/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch index a27b61e01ff..06c394e5c53 100644 --- a/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch +++ b/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch @@ -2,18 +2,16 @@ Pass the 'foreign' option to automake to enable iperf3 to build. Upstream-Status: Inappropriate [configuration] -Signed-off-by: Ben Shelton ---- +Signed-off-by: Chunrong Guo -diff -rupN iperf-3.0.10.old/configure.ac iperf-3.0.10/configure.ac ---- iperf-3.0.10.old/configure.ac 2014-12-16 13:39:58.000000000 -0600 -+++ iperf-3.0.10/configure.ac 2014-12-29 15:09:27.534992643 -0600 -@@ -32,7 +32,7 @@ AC_CONFIG_AUX_DIR(config) +--- a/configure.ac 2015-10-19 02:49:30.471867352 -0500 ++++ b/configure.ac 2015-10-19 02:46:36.207873572 -0500 +@@ -33,7 +33,7 @@ # Initialize the automake system -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([foreign]) - AM_MAINTAINER_MODE - AM_CONFIG_HEADER(src/config.h) + AM_CONFIG_HEADER(src/iperf_config.h) + diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3/fix-examples.patch b/meta-oe/recipes-benchmark/iperf3/iperf3/fix-examples.patch deleted file mode 100644 index 445570dd4ce..00000000000 --- a/meta-oe/recipes-benchmark/iperf3/iperf3/fix-examples.patch +++ /dev/null @@ -1,107 +0,0 @@ -The Makefiles for the examples only work properly when the build is -done in the same directory as the source. Fix this in Makefile.am and -run bootstrap.sh to regenerate Makefile.in. - -Upstream-Status: Pending [iperf-dev@googlegroups.com] - -Signed-off-by: Ben Shelton ---- - -diff -rupN iperf-3.0.10.old/examples/Makefile.am iperf-3.0.10/examples/Makefile.am ---- iperf-3.0.10.old/examples/Makefile.am 2014-12-16 13:39:58.000000000 -0600 -+++ iperf-3.0.10/examples/Makefile.am 2014-12-29 17:12:02.238979626 -0600 -@@ -2,11 +2,13 @@ noinst_PROGRAMS = mic mis # Build, but - - mic_SOURCES = mic.c - mic_CFLAGS = -g --mic_LDADD = ../src/libiperf.la -+mic_LDADD = $(top_builddir)/src/libiperf.la - mic_LDFLAGS = -g -+mic_CPPFLAGS = -I$(top_srcdir)/src - - mis_SOURCES = mis.c - mis_CFLAGS = -g --mis_LDADD = ../src/libiperf.la -+mis_LDADD = $(top_builddir)/src/libiperf.la - mis_LDFLAGS = -g -+mis_CPPFLAGS = -I$(top_srcdir)/src - -diff -rupN iperf-3.0.10.old/examples/Makefile.in iperf-3.0.10/examples/Makefile.in ---- iperf-3.0.10.old/examples/Makefile.in 2014-12-16 13:39:58.000000000 -0600 -+++ iperf-3.0.10/examples/Makefile.in 2014-12-29 17:12:07.518979616 -0600 -@@ -94,7 +94,7 @@ CONFIG_CLEAN_VPATH_FILES = - PROGRAMS = $(noinst_PROGRAMS) - am_mic_OBJECTS = mic-mic.$(OBJEXT) - mic_OBJECTS = $(am_mic_OBJECTS) --mic_DEPENDENCIES = ../src/libiperf.la -+mic_DEPENDENCIES = $(top_builddir)/src/libiperf.la - AM_V_lt = $(am__v_lt_@AM_V@) - am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) - am__v_lt_0 = --silent -@@ -104,7 +104,7 @@ mic_LINK = $(LIBTOOL) $(AM_V_lt) --tag=C - $(mic_LDFLAGS) $(LDFLAGS) -o $@ - am_mis_OBJECTS = mis-mis.$(OBJEXT) - mis_OBJECTS = $(am_mis_OBJECTS) --mis_DEPENDENCIES = ../src/libiperf.la -+mis_DEPENDENCIES = $(top_builddir)/src/libiperf.la - mis_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(mis_CFLAGS) $(CFLAGS) \ - $(mis_LDFLAGS) $(LDFLAGS) -o $@ -@@ -286,12 +286,14 @@ top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - mic_SOURCES = mic.c - mic_CFLAGS = -g --mic_LDADD = ../src/libiperf.la -+mic_LDADD = $(top_builddir)/src/libiperf.la - mic_LDFLAGS = -g -+mic_CPPFLAGS = -I$(top_srcdir)/src - mis_SOURCES = mis.c - mis_CFLAGS = -g --mis_LDADD = ../src/libiperf.la -+mis_LDADD = $(top_builddir)/src/libiperf.la - mis_LDFLAGS = -g -+mis_CPPFLAGS = -I$(top_srcdir)/src - all: all-am - - .SUFFIXES: -@@ -375,32 +377,32 @@ distclean-compile: - @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - - mic-mic.o: mic.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -MT mic-mic.o -MD -MP -MF $(DEPDIR)/mic-mic.Tpo -c -o mic-mic.o `test -f 'mic.c' || echo '$(srcdir)/'`mic.c -+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mic_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -MT mic-mic.o -MD -MP -MF $(DEPDIR)/mic-mic.Tpo -c -o mic-mic.o `test -f 'mic.c' || echo '$(srcdir)/'`mic.c - @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mic-mic.Tpo $(DEPDIR)/mic-mic.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mic.c' object='mic-mic.o' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -c -o mic-mic.o `test -f 'mic.c' || echo '$(srcdir)/'`mic.c -+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mic_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -c -o mic-mic.o `test -f 'mic.c' || echo '$(srcdir)/'`mic.c - - mic-mic.obj: mic.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -MT mic-mic.obj -MD -MP -MF $(DEPDIR)/mic-mic.Tpo -c -o mic-mic.obj `if test -f 'mic.c'; then $(CYGPATH_W) 'mic.c'; else $(CYGPATH_W) '$(srcdir)/mic.c'; fi` -+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mic_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -MT mic-mic.obj -MD -MP -MF $(DEPDIR)/mic-mic.Tpo -c -o mic-mic.obj `if test -f 'mic.c'; then $(CYGPATH_W) 'mic.c'; else $(CYGPATH_W) '$(srcdir)/mic.c'; fi` - @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mic-mic.Tpo $(DEPDIR)/mic-mic.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mic.c' object='mic-mic.obj' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -c -o mic-mic.obj `if test -f 'mic.c'; then $(CYGPATH_W) 'mic.c'; else $(CYGPATH_W) '$(srcdir)/mic.c'; fi` -+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mic_CPPFLAGS) $(CPPFLAGS) $(mic_CFLAGS) $(CFLAGS) -c -o mic-mic.obj `if test -f 'mic.c'; then $(CYGPATH_W) 'mic.c'; else $(CYGPATH_W) '$(srcdir)/mic.c'; fi` - - mis-mis.o: mis.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -MT mis-mis.o -MD -MP -MF $(DEPDIR)/mis-mis.Tpo -c -o mis-mis.o `test -f 'mis.c' || echo '$(srcdir)/'`mis.c -+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mis_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -MT mis-mis.o -MD -MP -MF $(DEPDIR)/mis-mis.Tpo -c -o mis-mis.o `test -f 'mis.c' || echo '$(srcdir)/'`mis.c - @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mis-mis.Tpo $(DEPDIR)/mis-mis.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mis.c' object='mis-mis.o' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -c -o mis-mis.o `test -f 'mis.c' || echo '$(srcdir)/'`mis.c -+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mis_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -c -o mis-mis.o `test -f 'mis.c' || echo '$(srcdir)/'`mis.c - - mis-mis.obj: mis.c --@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -MT mis-mis.obj -MD -MP -MF $(DEPDIR)/mis-mis.Tpo -c -o mis-mis.obj `if test -f 'mis.c'; then $(CYGPATH_W) 'mis.c'; else $(CYGPATH_W) '$(srcdir)/mis.c'; fi` -+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mis_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -MT mis-mis.obj -MD -MP -MF $(DEPDIR)/mis-mis.Tpo -c -o mis-mis.obj `if test -f 'mis.c'; then $(CYGPATH_W) 'mis.c'; else $(CYGPATH_W) '$(srcdir)/mis.c'; fi` - @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mis-mis.Tpo $(DEPDIR)/mis-mis.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mis.c' object='mis-mis.obj' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -c -o mis-mis.obj `if test -f 'mis.c'; then $(CYGPATH_W) 'mis.c'; else $(CYGPATH_W) '$(srcdir)/mis.c'; fi` -+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mis_CPPFLAGS) $(CPPFLAGS) $(mis_CFLAGS) $(CFLAGS) -c -o mis-mis.obj `if test -f 'mis.c'; then $(CYGPATH_W) 'mis.c'; else $(CYGPATH_W) '$(srcdir)/mis.c'; fi` - - mostlyclean-libtool: - -rm -f *.lo diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb new file mode 100644 index 00000000000..4d1b0c4370a --- /dev/null +++ b/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb @@ -0,0 +1,34 @@ +SUMMARY = "Network benchmark tool" +DESCRIPTION = "\ +iperf is a tool for active measurements of the maximum achievable bandwidth \ +on IP networks. It supports tuning of various parameters related to timing, \ +protocols, and buffers. For each test it reports the bandwidth, loss, and \ +other parameters." +HOMEPAGE = "http://software.es.net/iperf/" +SECTION = "console/network" +BUGTRACKER = "https://github.com/esnet/iperf/issues" +AUTHOR = "ESNET , Lawrence Berkeley National Laboratory " +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d098223e44bdd19585315ee75cd9d2d7" + +DEPENDS = "openssl" + +SRC_URI = "git://github.com/esnet/iperf.git \ + file://automake-foreign.patch \ + file://0001-include-stdint.h-for-various-std-c99-int-types.patch \ + file://0002-Remove-pg-from-profile_CFLAGS.patch \ + " + +SRCREV = "88d907f7fb58bfab5d086c5da60c922e1c582c92" + +S = "${WORKDIR}/git" + +inherit autotools + +PACKAGECONFIG[lksctp] = "ac_cv_header_netinet_sctp_h=yes,ac_cv_header_netinet_sctp_h=no,lksctp-tools" + +CFLAGS += "-D_GNU_SOURCE" + +EXTRA_OECONF = "--with-openssl=${RECIPE_SYSROOT}" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb deleted file mode 100644 index b4d2b6193d7..00000000000 --- a/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "Network benchmark tool" -DESCRIPTION = "\ -iperf is a tool for active measurements of the maximum achievable bandwidth \ -on IP networks. It supports tuning of various parameters related to timing, \ -protocols, and buffers. For each test it reports the bandwidth, loss, and \ -other parameters." -HOMEPAGE = "http://software.es.net/iperf/" -SECTION = "console/network" -BUGTRACKER = "https://github.com/esnet/iperf/issues" -AUTHOR = "ESNET , Lawrence Berkeley National Laboratory " -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ab59a0c3a4bc3954d1ece68ea19d77a4" - -SRC_URI = "\ - git://github.com/esnet/iperf.git;branch=3.0-STABLE \ - file://automake-foreign.patch \ - file://fix-examples.patch \ -" - -PV = "3.0.10+gitr${SRCPV}" -SRCREV = "de420cc741dd8967ebc57f80b7712556442de81b" - -S = "${WORKDIR}/git" - -inherit autotools -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb b/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb new file mode 100644 index 00000000000..f534c73b54b --- /dev/null +++ b/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb @@ -0,0 +1,17 @@ +SUMMARY = "Tests to compare standard functions of different libc implementations" +DESCRIPTION = "libc-bench is a set of time- and memory-efficiency tests to compare \ +implementations of various C/POSIX standard library functions." +HOMEPAGE = "http://www.etalabs.net/libc-bench.html" +SECTION = "console/utils" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://Makefile;md5=e12f113da27dfe9cfb6c2c537da8d8df" + +SRC_URI = "http://www.etalabs.net/releases/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "f763de90f95fe68e4e03e5b6f49698ac" +SRC_URI[sha256sum] = "6825260aa5f15f4fbc7957ec578e9c859cbbe210e025ec74c4a0d05677523794" + +do_install () { + install -d ${D}${bindir} + install -m 0755 ${B}/libc-bench ${D}${bindir} +} diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Extend-arm32-support-to-include-BE-variants.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Extend-arm32-support-to-include-BE-variants.patch deleted file mode 100644 index f6147cbf359..00000000000 --- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Extend-arm32-support-to-include-BE-variants.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 5af6dec8764375ca4f13bd9fed96af090228351a Mon Sep 17 00:00:00 2001 -From: "Gary S. Robertson" -Date: Mon, 11 Aug 2014 11:06:04 -0500 -Subject: [libhugetlbfs][PATCH] Extend arm32 support to include BE variants - -This patch applies the same technique used by Koen Kool in the following patch -which was accepted by the libhugetlbfs project: - -[0a4f6] Add aarch64_be_support 2014-03-31 10:52:37 - -It modifies the libhugetlbfs Makefile to mark all 32-bit arm architectures -as supported by the libhugetlbfs build. Builds and successful functional -tests have been performed for armv7a LE and BE runtime platforms. - -This patch replaces and renders obsolete the following patch: -arm32-support.patch submitted by: Chunrong Guo - -Signed-off-by: Gary S. Robertson ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 91502e1..ba79607 100644 ---- a/Makefile -+++ b/Makefile -@@ -59,7 +59,7 @@ ELF32 = elf32ppclinux - TMPLIB32 = lib - CPPFLAGS += -DPPC_NO_SEGMENTS - else --ifeq ($(ARCH),armv7l) -+ifneq (,$(findstring arm,$(ARCH))) - CC32 = $(CC) - TMPLIB32 = lib - ELF32 += armelf_linux_eabi --- -1.7.9.5 - diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Makefile-Recognize-all-ix86-arches.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Makefile-Recognize-all-ix86-arches.patch deleted file mode 100644 index 2718275112e..00000000000 --- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Makefile-Recognize-all-ix86-arches.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a0166583ba5f7b6a6d2de434f633126fb12c9d29 Mon Sep 17 00:00:00 2001 -From: "Gary S. Robertson" -Date: Wed, 24 Sep 2014 15:27:31 -0500 -Subject: [PATCH] Makefile: Recognize all ix86 arches - -In a non-native build scenario, the makefile -only recognized i386 or x86_64 arches. Added support -to recognize i486, i586, i686. - -Upstream Status: Accepted by libhugetlbfs project - -Signed-off-by: Gary S. Robertson ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 91502e1..0bfaee8 100644 ---- a/Makefile -+++ b/Makefile -@@ -71,7 +71,7 @@ ELF64 = aarch64elf - TMPLIB64 = lib64 - CUSTOM_LDSCRIPTS = no - else --ifeq ($(ARCH),i386) -+ifneq (,$(filter i386 i486 i586 i686,$(ARCH))) - CC32 = $(CC) - ELF32 = elf_i386 - TMPLIB32 = lib --- -1.7.9.5 - diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-aarch64-fix-cross-compilation.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-aarch64-fix-cross-compilation.patch deleted file mode 100644 index 215ae728d4a..00000000000 --- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-aarch64-fix-cross-compilation.patch +++ /dev/null @@ -1,34 +0,0 @@ -Subject: [PATCH] aarch64: fix cross compilation - -This patch allow to override CC and use it for aarch64 case like -the other architectures. - -Signed-off-by: Fathi Boudra - -Upstream-Status: Submitted ---- - Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 91502e1..5aa1e12 100644 ---- a/Makefile -+++ b/Makefile -@@ -33,7 +33,7 @@ CFLAGS += -Wall -fPIC - CPPFLAGS += -D__LIBHUGETLBFS__ - - ARCH = $(shell uname -m | sed -e s/i.86/i386/) --CC = gcc -+CC ?= gcc - - CUSTOM_LDSCRIPTS = yes - -@@ -66,7 +66,7 @@ ELF32 += armelf_linux_eabi - CUSTOM_LDSCRIPTS = no - else - ifneq (,$(findstring aarch64,$(ARCH))) --CC64 = gcc -+CC64 = $(CC) - ELF64 = aarch64elf - TMPLIB64 = lib64 - CUSTOM_LDSCRIPTS = no diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch deleted file mode 100644 index 0b8d0e4d540..00000000000 --- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch +++ /dev/null @@ -1,39 +0,0 @@ -Upstream-Status: Inappropriate [oe-core specific] - -libhugetlbfs depends on perl, and perl installs a directory 'perl' -and make a symlink 'perl5' to it. So just install perl libs in -libhugetlbfs to directory 'perl' instead of 'perl5'. This can avoid -the following error: -| CalledProcessError: Command 'tar -cf - -C .../perl/5.14.3-r1/sysroot-destdir -| -ps . | tar -xf - -C .../tmp/sysroots/t4240qds' -| returned non-zero exit status 2 with output -| tar: ./usr/lib/perl5: Cannot create symlink to `perl': File exists -| tar: Exiting with failure status due to previous errors - - -Signed-off-by: Ting Liu - ---- a/Makefileold 2013-10-11 23:07:31.759421318 -0500 -+++ b/Makefile 2013-10-11 23:08:01.935571122 -0500 -@@ -173,17 +173,17 @@ - DOCDIR = $(PREFIX)/share/doc/libhugetlbfs - - ifdef CC32 --PMDIR = $(PREFIX)/lib/perl5/TLBC -+PMDIR = $(PREFIX)/lib/perl/TLBC - endif - - ifdef CC64 - ifeq ($(ARCH),x86_64) --PMDIR = $(PREFIX)/lib/perl5/TLBC -+PMDIR = $(PREFIX)/lib/perl/TLBC - else - ifeq ($(ARCH),aarch64) --PMDIR = $(PREFIX)/lib/perl5/TLBC -+PMDIR = $(PREFIX)/lib/perl/TLBC - else --PMDIR = $(PREFIX)/lib64/perl5/TLBC -+PMDIR = $(PREFIX)/lib64/perl/TLBC - endif - endif - endif diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-ld.hugetlbfs-arm-arches-fix-page-size-and-text-offse.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-ld.hugetlbfs-arm-arches-fix-page-size-and-text-offse.patch deleted file mode 100644 index 4e5b7bbbbc8..00000000000 --- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-ld.hugetlbfs-arm-arches-fix-page-size-and-text-offse.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 1ab6f7f9b34fc745451140fc21db6763dffc5785 Mon Sep 17 00:00:00 2001 -From: "Gary S. Robertson" -Date: Thu, 25 Sep 2014 14:57:06 -0500 -Subject: [PATCH] ld.hugetlbfs: arm arches - fix page size and text offset - setup - -There's 3 issues fixed: -* typo on MB variable (MB -> $MB) -* some linker variants are missing (linux and big endian) - - armelfb_linux_eabi - - aarch64elfb - - aarch64linux - - aarch64linuxb -* text segment offset was not specified for armv7 BE - -NOTE: This patch replaces and makes obsolete the following previously - submitted patch: - - aarch64: fix page size not properly computed - by: Fathi Boudra - -Upstream Status: Accepted at libhugetlbfs project - -Signed-off-by: Gary S. Robertson ---- - ld.hugetlbfs | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/ld.hugetlbfs b/ld.hugetlbfs -index df446dd..4417442 100755 ---- a/ld.hugetlbfs -+++ b/ld.hugetlbfs -@@ -87,7 +87,7 @@ elf32ppclinux|elf64ppc) HPAGE_SIZE=$((16*$MB)) SLICE_SIZE=$((256*$MB)) ;; - elf64lppc) HPAGE_SIZE=$((16*$MB)) SLICE_SIZE=$((256*$MB)) ;; - elf_i386|elf_x86_64) HPAGE_SIZE=$((4*$MB)) SLICE_SIZE=$HPAGE_SIZE ;; - elf_s390|elf64_s390) HPAGE_SIZE=$((1*$MB)) SLICE_SIZE=$HPAGE_SIZE ;; --armelf_linux_eabi|aarch64elf) HPAGE_SIZE=$((2*MB)) SLICE_SIZE=$HPAGE_SIZE ;; -+armelf*_linux_eabi|aarch64elf*|aarch64linux*) HPAGE_SIZE=$((2*$MB)) SLICE_SIZE=$HPAGE_SIZE ;; - esac - - if [ "$HTLB_ALIGN" == "slice" ]; then -@@ -96,9 +96,9 @@ if [ "$HTLB_ALIGN" == "slice" ]; then - - # targeting the ARM platform one needs to explicitly set the text segment offset - # otherwise it will be NULL. -- if [ "$EMU" == "armelf_linux_eabi" ]; then -- HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" -- fi -+ case "$EMU" in -+ armelf*_linux_eabi) HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" ;; -+ esac - fi - - ${LD} "${args[@]}" ${HTLBOPTS} --- -1.7.9.5 - diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-replace-lib-lib64-hardcoded-values-by-LIBDIR32-LIBDI.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-replace-lib-lib64-hardcoded-values-by-LIBDIR32-LIBDI.patch deleted file mode 100644 index 9e2a5e58df0..00000000000 --- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-replace-lib-lib64-hardcoded-values-by-LIBDIR32-LIBDI.patch +++ /dev/null @@ -1,29 +0,0 @@ -Subject: [PATCH 1/1] Replace lib/lib64 hardcoded values by LIBDIR32/LIBDIR64 - variables - -Signed-off-by: Fathi Boudra - -Upstream-Status: Submitted ---- - Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 91502e1..682c0db 100644 ---- a/Makefile -+++ b/Makefile -@@ -181,9 +181,9 @@ BINDIR = $(PREFIX)/share/libhugetlbfs - EXEDIR = $(PREFIX)/bin - DOCDIR = $(PREFIX)/share/doc/libhugetlbfs - ifdef CC32 --PMDIR = $(PREFIX)/lib/perl5/TLBC -+PMDIR = $(LIBDIR32)/perl5/TLBC - else --PMDIR = $(PREFIX)/lib64/perl5/TLBC -+PMDIR = $(LIBDIR64)/perl5/TLBC - endif - MANDIR1 = $(PREFIX)/share/man/man1 - MANDIR3 = $(PREFIX)/share/man/man3 --- -1.9.2 - diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch new file mode 100644 index 00000000000..ce6974d7c1e --- /dev/null +++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch @@ -0,0 +1,92 @@ +From 3c6f8d0e3c0694f79244ec6ad5ad9ba3ca26bc0a Mon Sep 17 00:00:00 2001 +From: Yang Shi +Date: Mon, 7 Dec 2015 14:12:13 -0800 +Subject: [PATCH] Force text segment alignment to 0x08000000 for i386 with gold + linker + +Upstream-Status: Backport + +When build libhugetlbfs tests with gold linker for i386, the below error occurs: + +i586-oe-linux-gcc -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu +-Wl,--as-needed +--sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -I.. +-O2 +-Wall -g -o obj32/linkhuge_rw.o -c linkhuge_rw.c +| i586-oe-linux-gcc -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu +-Wl,--as-needed +--sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 +-B./obj32 +-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -ldl +-L../obj32 +-o obj32/linkhuge_rw -Wl,--no-as-needed -lpthread -ldl -lhugetlbfs_privutils +-Wl,--hugetlbfs-align obj32/linkhuge_rw.o obj32/testutils.o +| i586-oe-linux-ld: internal error in do_write, at +/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-oe-linux/binutils-cross-i586/2.25-r0/git/gold/output.cc:464 +| collect2: error: ld returned 1 exit status + +But, it works well with GNU linker. --hugetlbfs-align flag passes +"-zcommon-page-size=$SLICE_SIZE -zmax-page-size=$SLICE_SIZE", that are supported by gold linker too. +But, it looks gold linker deal with them in a different way from gnu linker for i586. + +The readelf shows the below result with GNU linker: + +Elf file type is EXEC (Executable file) +Entry point 0x8048fbd +There are 8 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + PHDR 0x000034 0x08000034 0x08000034 0x00100 0x00100 R E 0x4 + INTERP 0x048134 0x08048134 0x08048134 0x00013 0x00013 R 0x1 + [Requesting program interpreter: /lib/ld-linux.so.2] + LOAD 0x000000 0x08000000 0x08000000 0x5a5bc 0x5a5bc R E 0x400000 + LOAD 0x05a5bc 0x0845a5bc 0x0845a5bc 0x1028c 0x202cc RW 0x400000 + DYNAMIC 0x05a5d0 0x0845a5d0 0x0845a5d0 0x000e8 0x000e8 RW 0x4 + NOTE 0x048148 0x08048148 0x08048148 0x00044 0x00044 R 0x4 + GNU_EH_FRAME 0x059e5c 0x08059e5c 0x08059e5c 0x0009c 0x0009c R 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10 + +"--relax" linker option doesn't solve this problem. +Forced textsegment alignment to 0x08000000 with gold linker, the build will pass and +readelf shows the same result with GNU linker: + +Elf file type is EXEC (Executable file) +Entry point 0x8048fbd +There are 8 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + PHDR 0x000034 0x08000034 0x08000034 0x00100 0x00100 R E 0x4 + INTERP 0x048134 0x08048134 0x08048134 0x00013 0x00013 R 0x1 + [Requesting program interpreter: /lib/ld-linux.so.2] + LOAD 0x000000 0x08000000 0x08000000 0x5a5bc 0x5a5bc R E 0x400000 + LOAD 0x05a5bc 0x0845a5bc 0x0845a5bc 0x1028c 0x202cc RW 0x400000 + DYNAMIC 0x05a5d0 0x0845a5d0 0x0845a5d0 0x000e8 0x000e8 RW 0x4 + NOTE 0x048148 0x08048148 0x08048148 0x00044 0x00044 R 0x4 + GNU_EH_FRAME 0x059e5c 0x08059e5c 0x08059e5c 0x0009c 0x0009c R 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10 + +The fix just have impact on hugelink_rw test case, which needs --hugetlbfs-align flag. + +Signed-off-by: Yang Shi +Signed-off-by: Eric B Munson +--- + ld.hugetlbfs | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ld.hugetlbfs b/ld.hugetlbfs +index 4417442..32bc6fb 100755 +--- a/ld.hugetlbfs ++++ b/ld.hugetlbfs +@@ -98,6 +98,7 @@ if [ "$HTLB_ALIGN" == "slice" ]; then + # otherwise it will be NULL. + case "$EMU" in + armelf*_linux_eabi) HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" ;; ++ elf_i386) HTLBOPTS="$HTLBOPTS -Ttext-segment=0x08000000" ;; + esac + fi + +-- +2.0.2 + diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch deleted file mode 100644 index 676fa8a7aff..00000000000 --- a/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch +++ /dev/null @@ -1,75 +0,0 @@ -Upstream-Status: Inappropriate [oe-core specific] - - -fix the below error: - ERROR: QA Issue: libhugetlbfs: Files/directories were installed but not shipped - /usr/lib64 - /usr/lib64/libhugetlbfs.so - /usr/lib64/libhugetlbfs.a - /usr/lib64/libhugetlbfs_privutils.so - /usr/lib64/perl5 - /usr/lib64/perl5/TLBC - /usr/lib64/perl5/TLBC/PerfCollect.pm - /usr/lib64/perl5/TLBC/Report.pm - /usr/lib64/perl5/TLBC/DataCollect.pm - /usr/lib64/perl5/TLBC/OpCollect.pm -$<50>ERROR: QA run found fatal errors. Please consider fixing them. - - -Signed-off-by: Guo Chunrong - ---- a/Makefile 2013-09-23 02:28:57.340566998 -0500 -+++ b/Makefile 2013-09-23 02:31:05.344569896 -0500 -@@ -33,7 +33,6 @@ - CPPFLAGS += -D__LIBHUGETLBFS__ -DPPC_NO_SEGMENTS - - ARCH = $(shell uname -m | sed -e s/i.86/i386/) --CC = gcc - - CUSTOM_LDSCRIPTS = yes - -@@ -59,9 +58,9 @@ - CUSTOM_LDSCRIPTS = no - else - ifeq ($(ARCH),aarch64) --CC64 = gcc -+CC64 = $(CC) - ELF64 = aarch64elf --TMPLIB64 = lib64 -+TMPLIB64 = lib - CUSTOM_LDSCRIPTS = no - else - ifeq ($(ARCH),i386) -@@ -72,7 +71,7 @@ - ifeq ($(ARCH),x86_64) - CC64 = $(CC) -m64 - ELF64 = elf_x86_64 --TMPLIB64 = lib64 -+TMPLIB64 = lib - TMPLIB32 = lib - ifneq ($(BUILDTYPE),NATIVEONLY) - CC32 = $(CC) -m32 -@@ -172,11 +171,23 @@ - BINDIR = $(PREFIX)/share/libhugetlbfs - EXEDIR = $(PREFIX)/bin - DOCDIR = $(PREFIX)/share/doc/libhugetlbfs -+ - ifdef CC32 - PMDIR = $(PREFIX)/lib/perl5/TLBC -+endif -+ -+ifdef CC64 -+ifeq ($(ARCH),x86_64) -+PMDIR = $(PREFIX)/lib/perl5/TLBC -+else -+ifeq ($(ARCH),aarch64) -+PMDIR = $(PREFIX)/lib/perl5/TLBC - else - PMDIR = $(PREFIX)/lib64/perl5/TLBC - endif -+endif -+endif -+ - MANDIR1 = $(PREFIX)/share/man/man1 - MANDIR3 = $(PREFIX)/share/man/man3 - MANDIR7 = $(PREFIX)/share/man/man7 diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch new file mode 100644 index 00000000000..15664884bf8 --- /dev/null +++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch @@ -0,0 +1,40 @@ +From 889e52753d30179ba4ac940023cb4ed561436ab8 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Tue, 4 Nov 2014 00:49:11 -0800 +Subject: [PATCH] libhugetlbfs/elf_i386: avoid search host library path for cross compilation + +Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Jackie Huang +--- + ldscripts/elf_i386.xB | 1 - + ldscripts/elf_i386.xBDT | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/ldscripts/elf_i386.xB b/ldscripts/elf_i386.xB +index 43fe51c..eae0fa8 100644 +--- a/ldscripts/elf_i386.xB ++++ b/ldscripts/elf_i386.xB +@@ -3,7 +3,6 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386", + "elf32-i386") + OUTPUT_ARCH(i386) + ENTRY(_start) +-SEARCH_DIR("/usr/i486-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); + INPUT(-lhugetlbfs); + /* Do we need any of these for elf? + __DYNAMIC = 0; */ +diff --git a/ldscripts/elf_i386.xBDT b/ldscripts/elf_i386.xBDT +index d72aebe..3bac1b1 100644 +--- a/ldscripts/elf_i386.xBDT ++++ b/ldscripts/elf_i386.xBDT +@@ -3,7 +3,6 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386", + "elf32-i386") + OUTPUT_ARCH(i386) + ENTRY(_start) +-SEARCH_DIR("/usr/i486-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); + INPUT(-lhugetlbfs); + /* Do we need any of these for elf? + __DYNAMIC = 0; */ +-- +1.7.9.5 + diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb index 6fe5dce910c..a63494a62dc 100644 --- a/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb +++ b/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb @@ -1,30 +1,29 @@ SUMMARY = "A library which provides easy access to huge pages of memory" +HOMEPAGE = "https://github.com/libhugetlbfs/libhugetlbfs" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1" DEPENDS = "sysfsutils perl" -RDEPENDS_${PN} += "bash perl python python-io python-lang python-subprocess python-resource" +RDEPENDS_${PN} += "bash perl python python-io python-lang python-subprocess python-resource ${PN}-perl" RDEPENDS_${PN}-tests += "bash" -PV = "2.18" +PV = "2.20" PE = "1" -SRCREV = "ea3f6b273f535aab38cefae30030774457bbbfe6" -SRC_URI = "git://git.code.sf.net/p/libhugetlbfs/code \ +SRCREV = "e44180072b796c0e28e53c4d01ef6279caaa2a99" +SRC_URI = " \ + git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \ file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \ file://libhugetlbfs-avoid-search-host-library-path-for-cros.patch \ file://tests-Makefile-install-static-4G-edge-testcases.patch \ file://0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch \ - file://0001-aarch64-fix-cross-compilation.patch \ - file://0001-ld.hugetlbfs-arm-arches-fix-page-size-and-text-offse.patch \ - file://0001-replace-lib-lib64-hardcoded-values-by-LIBDIR32-LIBDI.patch \ - file://0001-Extend-arm32-support-to-include-BE-variants.patch \ - file://0001-Makefile-Recognize-all-ix86-arches.patch \ + file://libhugetlbfs-elf_i386-avoid-search-host-library-path.patch \ + file://Force-text-segment-alignment-to-0x08000000-for-i386-.patch \ " S = "${WORKDIR}/git" -COMPATIBLE_HOST = "(i586|x86_64|powerpc|powerpc64|aarch64|arm).*-linux*" +COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64|aarch64|arm).*-linux*" LIBARGS = "LIB32=${baselib} LIB64=${baselib}" LIBHUGETLBFS_ARCH = "${TARGET_ARCH}" @@ -34,16 +33,24 @@ EXTRA_OEMAKE = "'ARCH=${LIBHUGETLBFS_ARCH}' 'OPT=${CFLAGS}' 'CC=${CC}' ${LIBARGS PARALLEL_MAKE = "" CFLAGS += "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -g0" +export HUGETLB_LDSCRIPT_PATH="${S}/ldscripts" + TARGET_CC_ARCH += "${LDFLAGS}" #The CUSTOM_LDSCRIPTS doesn't work with the gold linker +inherit cpan-base do_configure() { - if [ "${@base_contains('DISTRO_FEATURES', 'ld-is-gold', 'ld-is-gold', '', d)}" = "ld-is-gold" ] ; then + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then sed -i 's/CUSTOM_LDSCRIPTS = yes/CUSTOM_LDSCRIPTS = no/' Makefile fi # fixup perl module directory hardcoded to perl5 sed -i 's/perl5/perl/g' Makefile + + # fixup to install perl module under $(LIBDIR)/perl/${@get_perl_version(d)}/TLBC + # to avoid below error + # Can't locate TLBC/OpCollect.pm in @INC + sed -i '/^PMDIR/ s:perl:perl/${@get_perl_version(d)}:g' Makefile } do_install() { diff --git a/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb b/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb new file mode 100644 index 00000000000..aed95cdaa47 --- /dev/null +++ b/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "LINPACK Benchmarks are a measure of a system's floating point computing power" +SUMMARY = "LINPACK is a software library for performing numerical linear algebra on digital computers" + +LICENSE = "PD" +LIC_FILES_CHKSUM ="file://${WORKDIR}/linpacknew.c;beginline=1;endline=23;md5=aa025e3bc44190c71e4c5e3b084fed87" + +SRC_URI = "http://www.netlib.org/benchmark/linpackc.new;downloadfilename=linpacknew.c" +SRC_URI[md5sum] = "1c5d0b6a31264685d2e651c920e3cdf4" +SRC_URI[sha256sum] = "a63f2ec86512959f1fd926bfafb85905b2d7b7402942ffae3af374d48745e97e" + +S = "${WORKDIR}" + +do_compile () { + ${CC} ${CFLAGS} ${LDFLAGS} -o linpack linpacknew.c -lm +} + +do_install () { + install -Dm 0755 linpack ${D}${bindir}/linpack +} + diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch b/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch new file mode 100644 index 00000000000..20791bf239a --- /dev/null +++ b/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch @@ -0,0 +1,29 @@ +From 31d58ed7e6552781f415501e96d7cc74f83b910d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 18:08:51 -0700 +Subject: [PATCH 1/2] Check for musl define guard before redefining socklen_t + +musl uses __DEFINED_socklen_t so check for that as well +along with HAVE_socklen_t + +Signed-off-by: Khem Raj +--- + src/bench.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/bench.h b/src/bench.h +index 597d068..2ebdf5a 100644 +--- a/src/bench.h ++++ b/src/bench.h +@@ -77,7 +77,7 @@ typedef long long int64; + #endif /* HAVE_int64_t */ + #endif /* HAVE_int64 */ + +-#ifndef HAVE_socklen_t ++#if !defined(HAVE_socklen_t) && !defined(__DEFINED_socklen_t) + typedef int socklen_t; + #endif + +-- +2.13.2 + diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-lat_http.c-Add-printf-format.patch b/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-lat_http.c-Add-printf-format.patch new file mode 100644 index 00000000000..18ed43d0650 --- /dev/null +++ b/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-lat_http.c-Add-printf-format.patch @@ -0,0 +1,26 @@ +From 6faa6acdf20aa6f738eed1483b7dceed94286adb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 14:39:10 -0700 +Subject: [PATCH] lat_http.c: Add printf format + +Signed-off-by: Khem Raj +--- + src/lat_http.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lat_http.c b/src/lat_http.c +index c630d59..28d04f7 100644 +--- a/src/lat_http.c ++++ b/src/lat_http.c +@@ -27,7 +27,7 @@ http(char *server, char *file, int prog) + sock = tcp_connect(server, prog, SOCKOPT_REUSE); + sprintf(buf, "GET /%s HTTP/1.0\r\n\r\n\n", file); + if (debug) { +- printf(buf); ++ printf("%s", buf); + } + write(sock, buf, strlen(buf)); + while ((n = read(sock, buf, XFERSIZE)) > 0) { +-- +2.13.2 + diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch b/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch new file mode 100644 index 00000000000..d5c8f5f2f02 --- /dev/null +++ b/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch @@ -0,0 +1,76 @@ +From 76f3a9abc2ff96155425ef97d8c5520cfbc8fe6a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 18:09:46 -0700 +Subject: [PATCH 2/2] build: Adjust CFLAGS/LDFLAGS to append values passed from + env + +For musl we have to pass additional arguments via cflags and ldflags +to link in librirpc, make room for those changes to take effect + +Signed-off-by: Khem Raj +--- + scripts/build | 2 +- + src/Makefile | 14 +++++++------- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/scripts/build b/scripts/build +index 34a1371..3786741 100755 +--- a/scripts/build ++++ b/scripts/build +@@ -18,7 +18,7 @@ done + + trap 'rm -f ${BASE}$$.s ${BASE}$$.c ${BASE}$$.o ${BASE}$$; exit 1' 1 2 15 + +-LDLIBS=-lm ++LDLIBS+=-lm + + # check for HP-UX's ANSI compiler + echo "main(int ac, char *av[]) { int i; }" > ${BASE}$$.c +diff --git a/src/Makefile b/src/Makefile +index d9efd54..96467d7 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -112,8 +112,8 @@ LIBOBJS= $O/lib_tcp.o $O/lib_udp.o $O/lib_unix.o $O/lib_timing.o \ + $O/lib_sched.o + + lmbench: $(UTILS) +- @env CFLAGS=-O MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="$(CC)" OS="$(OS)" ../scripts/build all +- -@env CFLAGS=-O MAKE="$(MAKE)" MAKEFLAGS="k$(MAKEFLAGS)" CC="$(CC)" OS="$(OS)" ../scripts/build opt ++ @env CFLAGS+=-O MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="$(CC)" OS="$(OS)" ../scripts/build all ++ -@env CFLAGS+=-O MAKE="$(MAKE)" MAKEFLAGS="k$(MAKEFLAGS)" CC="$(CC)" OS="$(OS)" ../scripts/build opt + + results: lmbench + @env OS="${OS}" ../scripts/config-run +@@ -137,7 +137,7 @@ os: lmbench + @env OS="${OS}" BENCHMARK_HARDWARE=NO BENCHMARK_OS=YES ../scripts/results + + install: lmbench +- @env CFLAGS=-O MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="${CC}" OS="${OS}" ../scripts/build install-target ++ @env CFLAGS+=-O MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="${CC}" OS="${OS}" ../scripts/build install-target + + install-target: + if [ ! -d $(BASE) ]; then mkdir $(BASE); fi +@@ -155,16 +155,16 @@ all: $(EXES) $O/lmbench + opt: $(OPT_EXES) + asm: $(ASMS) + $(ASMS): +- $(CC) -S $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ `basename $@ .s`.c ++ $(CC) -S $(CFLAGS) $(CPPFLAGS) -o $@ `basename $@ .s`.c $(LDFLAGS) + + Wall: +- @env CFLAGS="-g -O -Wall" MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="${CC}" OS="${OS}" ../scripts/build all opt ++ @env CFLAGS+="-g -O -Wall" MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="${CC}" OS="${OS}" ../scripts/build all opt + + debug: +- @env CFLAGS="-g -O -DDEBUG" MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="${CC}" OS="${OS}" ../scripts/build all opt ++ @env CFLAGS+="-g -O -DDEBUG" MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="${CC}" OS="${OS}" ../scripts/build all opt + + assembler: +- @env CFLAGS=-O MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="${CC}" OS="${OS}" ../scripts/build asm ++ @env CFLAGS+=-O MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="${CC}" OS="${OS}" ../scripts/build asm + + + tag: +-- +2.13.2 + diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch new file mode 100644 index 00000000000..2d8a2468a94 --- /dev/null +++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch @@ -0,0 +1,79 @@ +[PATCH] avoid gcc optimize-away the loops + +Upstream-Status: pending + +Change expression used in do_integer_mul and do_uint64_mul +benchmarks so GCC doesn't optimize-away the loops, other +things are same: +- TEN(r *= s;); r -= t; ++ i = 0; ++ while ( i++ < 10) ++ r *= s; ++ r -= t; + +and TEN is macro: + #define TEN(a) a a a a a a a a a a + +Signed-off-by: Roy Li +--- + src/lat_ops.c | 30 +++++++++++++++++++++++++----- + 1 file changed, 25 insertions(+), 5 deletions(-) + +diff --git a/src/lat_ops.c b/src/lat_ops.c +index d343ff3..457072b 100644 +--- a/src/lat_ops.c ++++ b/src/lat_ops.c +@@ -126,11 +126,23 @@ do_integer_mul(iter_t iterations, void* cookie) + struct _state *pState = (struct _state*)cookie; + register int r = pState->N + 37431; + register int s = pState->N + 4; +- register int t = r * s * s * s * s * s * s * s * s * s * s - r; ++ register int t = r; ++ int i = 0; ++ ++ while ( i++ < 10) ++ t *= s; ++ t -= r; + + while (iterations-- > 0) { +- TEN(r *= s;); r -= t; +- TEN(r *= s;); r -= t; ++ i = 0; ++ while ( i++ < 10) ++ r *= s; ++ r -= t; ++ ++ i = 0; ++ while ( i++ < 10) ++ r *= s; ++ r -= t; + } + use_int(r); + } +@@ -207,13 +219,21 @@ do_int64_mul(iter_t iterations, void* cookie) + register int64 r = (int64)pState->N + 37420; + register int64 s = (int64)pState->N + 4; + register int64 t; ++ int i = 0; + + r += (int64)(pState->N + 6)<<32; + t = r * s * s * s * s * s * s * s * s * s * s - r; + + while (iterations-- > 0) { +- TEN(r *= s;); r -= t; +- TEN(r *= s;); r -= t; ++ i = 0; ++ while ( i++ < 10) ++ r *= s; ++ r -= t; ++ ++ i = 0; ++ while ( i++ < 10) ++ r *= s; ++ r -= t; + } + use_int((int)r); + } +-- +2.8.1 + diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb b/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb index 24cd0b0eaf3..03b3721ca80 100644 --- a/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb +++ b/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb @@ -7,6 +7,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ inherit autotools-brokensep +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDLIBS_append_libc-musl = " -ltirpc " + PR = "r2" SRC_URI = "${SOURCEFORGE_MIRROR}/lmbench/lmbench-${PV}.tgz \ @@ -18,12 +22,16 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/lmbench/lmbench-${PV}.tgz \ file://use-base_libdir-instead-of-hardcoded-lib.patch \ file://lmbench_result_html_report.patch \ file://fix-lmbench-memory-check-failure.patch \ -" + file://0001-avoid-gcc-optimize-away-the-loops.patch \ + file://0001-lat_http.c-Add-printf-format.patch \ + file://0001-Check-for-musl-define-guard-before-redefining-sockle.patch \ + file://0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch \ + " SRC_URI[md5sum] = "b3351a3294db66a72e2864a199d37cbf" SRC_URI[sha256sum] = "cbd5777d15f44eab7666dcac418054c3c09df99826961a397d9acf43d8a2a551" EXTRA_OEMAKE = 'CC="${CC}" AR="${AR}" RANLIB="${RANLIB}" CFLAGS="${CFLAGS}" \ - LDFLAGS="${LDFLAGS}" LD="${LD}" OS="${TARGET_SYS}" \ + LDFLAGS="${LDFLAGS}" LDLIBS="${LDLIBS}" LD="${LD}" OS="${TARGET_SYS}" \ TARGET="${TARGET_OS}" BASE="${prefix}" MANDIR="${mandir}"' do_configure() { @@ -31,7 +39,9 @@ do_configure() { } do_compile () { - . ${CONFIG_SITE} + for CONFIG_SITE_ITEM in $CONFIG_SITE; do + . $CONFIG_SITE_ITEM + done if [ X"$ac_cv_uint" = X"yes" ]; then CFLAGS="${CFLAGS} -DHAVE_uint" fi @@ -46,7 +56,7 @@ do_install () { echo "d root root 0755 ${localstatedir}/run/${BPN} none" \ > ${D}${sysconfdir}/default/volatiles/99_lmbench - if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/tmpfiles.d echo "d /run/${BPN} - - - -" \ > ${D}${sysconfdir}/tmpfiles.d/lmbench.conf diff --git a/meta-oe/recipes-benchmark/memtester/memtester_4.1.3.bb b/meta-oe/recipes-benchmark/memtester/memtester_4.1.3.bb deleted file mode 100644 index 74e704b7b3c..00000000000 --- a/meta-oe/recipes-benchmark/memtester/memtester_4.1.3.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Utility to test for faulty memory subsystem" -HOMEPAGE = "http://pyropus.ca/software/memtester/" -SECTION = "console/utils" -LICENSE = "GPLv2" - -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" - -SRC_URI = "http://pyropus.ca/software/memtester/old-versions/memtester-${PV}.tar.gz" -SRC_URI += "file://Makefile.patch" - -SRC_URI[md5sum] = "e562451620cf5343016950462bc0dc38" -SRC_URI[sha256sum] = "ac56f0b6d6d6e58bcf2a3fa7f2c9b29894f5177871f21115a1906c535106acf6" - -do_compile () { - echo '${CC} ${CFLAGS} -DPOSIX -c' > conf-cc - echo '${CC} ${LDFLAGS}' > conf-ld - oe_runmake -} - -do_install () { - install -d ${D}${bindir} - install -d ${D}${mandir}/man8 - install -m 0755 memtester ${D}${bindir}/ - install -m 0755 memtester.8 ${D}${mandir}/man8/ -} diff --git a/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb b/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb new file mode 100644 index 00000000000..0964c048749 --- /dev/null +++ b/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "Utility to test for faulty memory subsystem" +HOMEPAGE = "http://pyropus.ca/software/memtester/" +SECTION = "console/utils" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +SRC_URI = "http://pyropus.ca/software/memtester/old-versions/${BP}.tar.gz" +SRC_URI += "file://Makefile.patch" + +SRC_URI[md5sum] = "598f41b7308e1f736164bca3ab84ddbe" +SRC_URI[sha256sum] = "f9dfe2fd737c38fad6535bbab327da9a21f7ce4ea6f18c7b3339adef6bf5fd88" + +do_compile () { + echo '${CC} ${CFLAGS} -DPOSIX -c' > conf-cc + echo '${CC} ${LDFLAGS}' > conf-ld + oe_runmake +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${mandir}/man8 + install -m 0755 memtester ${D}${bindir}/ + install -m 0755 memtester.8 ${D}${mandir}/man8/ +} diff --git a/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb b/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb index 2eedd7e3133..da2cb4b327d 100644 --- a/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb +++ b/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb @@ -1,3 +1,4 @@ +SUMMARY = "A CPU benchmark utility" DESCRIPTION = "BYTE Magazine's native benchmarks (also called BYTEmark) \ designed to expose the capabilities of a system's CPU, FPU, \ and memory system." @@ -6,13 +7,15 @@ LICENSE = "nbench-byte" LIC_FILES_CHKSUM = "file://README;beginline=57;endline=66;md5=020ef579f8fa5746b7e307a54707834f" SECTION = "console/utils" -SRC_URI = "http://www.tux.org/~mayer/linux/${BP}.tar.gz \ +SRC_URI = "https://fossies.org/linux/misc/${BP}.tar.gz \ file://nbench_32bits.patch \ file://Makefile-add-more-dependencies-to-pointer.h.patch" SRC_URI[md5sum] = "285dfab361080759d477ea1fe7d3093a" SRC_URI[sha256sum] = "723dd073f80e9969639eb577d2af4b540fc29716b6eafdac488d8f5aed9101ac" +EXTRA_OEMAKE = "-e MAKEFLAGS=" + TARGET_CC_ARCH += "${CFLAGS} ${LDFLAGS}" do_compile() { oe_runmake diff --git a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_5.2.1.bb b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_5.2.1.bb deleted file mode 100644 index ef9f7352d53..00000000000 --- a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_5.2.1.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Phoronix Test Suite" -DESCRIPTION = "The Phoronix Test Suite is designed to carry out both qualitative \ -and quantitative benchmarks in a clean, reproducible, and easy-to-use manner." -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SECTION = "console/tests" - -SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz" -SRC_URI[md5sum] = "51e52d883710dc516c5494bd1c377219" -SRC_URI[sha256sum] = "1186f460691e2fe7a07df5edb8d8ed1ac0c65327512e646da2b2e3a60dda6cd9" -S = "${WORKDIR}/phoronix-test-suite" - -do_install() { - DESTDIR=${D} ./install-sh ${exec_prefix} -} - -RDEPENDS_${PN} = "php-cli" -FILES_${PN} += " \ - ${datadir}/phoronix-test-suite \ - ${datadir}/appdata/phoronix-test-suite.appdata.xml \ - ${datadir}/icons/hicolor/48x48/apps/phoronix-test-suite.png \ - ${datadir}/icons/hicolor/64x64/mimetypes/application-x-openbenchmarking.png \ - ${datadir}/mime/packages/openbenchmarking-mime.xml \ -" diff --git a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb new file mode 100644 index 00000000000..3ccd5db4497 --- /dev/null +++ b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.4.0.bb @@ -0,0 +1,36 @@ +SUMMARY = "Phoronix Test Suite" +DESCRIPTION = "The Phoronix Test Suite is designed to carry out both qualitative \ +and quantitative benchmarks in a clean, reproducible, and easy-to-use manner." +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +SECTION = "console/tests" + +SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz" +SRC_URI[md5sum] = "86fa3eede43ffff88992fe21368b11b7" +SRC_URI[sha256sum] = "de9aec3ef4f980581756fd0bf7b30dd1ccb20e7aae637078a587606bf75a6b67" + +S = "${WORKDIR}/phoronix-test-suite" + +inherit systemd allarch + +do_install() { + DESTDIR=${D} ./install-sh ${exec_prefix} + + if [ "${systemd_unitdir}" != "/usr/lib/systemd" ]; then + install -d ${D}/${systemd_unitdir}/system/ + mv ${D}/usr/lib/systemd/system/* ${D}/${systemd_unitdir}/system/ + rm -rf ${D}/usr/lib/ + fi +} + +SYSTEMD_SERVICE_${PN} = "phoromatic-client.service phoromatic-server.service" +RDEPENDS_${PN} += "bash python php-cli" + +FILES_${PN} += " \ + ${datadir}/phoronix-test-suite \ + ${datadir}/appdata/phoronix-test-suite.appdata.xml \ + ${datadir}/icons/hicolor/48x48/apps/phoronix-test-suite.png \ + ${datadir}/icons/hicolor/64x64/mimetypes/application-x-openbenchmarking.png \ + ${datadir}/mime/packages/openbenchmarking-mime.xml \ + ${systemd_unitdir}/* \ +" diff --git a/meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb b/meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb new file mode 100644 index 00000000000..708c71f4ff0 --- /dev/null +++ b/meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb @@ -0,0 +1,26 @@ +SUMMARY = "System performance benchmark" +HOMEPAGE = "http://github.com/akopytov/sysbench" +SECTION = "console/tests" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit autotools + +# The project has moved from Sourceforge to Launchpad, to Github. Use the source tarball from +# Launchpad until the next release is available from Github. +SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+files/${BPN}_${PV}.orig.tar.gz" + +SRC_URI[md5sum] = "3a6d54fdd3fe002328e4458206392b9d" +SRC_URI[sha256sum] = "83fa7464193e012c91254e595a89894d8e35b4a38324b52a5974777e3823ea9e" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)}" +PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," +PACKAGECONFIG[aio] = "--enable-aio,--disable-aio,libaio," +PACKAGECONFIG[mysql] = "--with-mysql \ + --with-mysql-includes=${STAGING_INCDIR}/mysql \ + --with-mysql-libs=${STAGING_LIBDIR}, \ + --without-mysql,mysql5" + +do_configure_prepend() { + touch ${S}/NEWS ${S}/AUTHORS +} diff --git a/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb b/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb index ae7887d3c62..8cb59da737c 100644 --- a/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb +++ b/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb @@ -6,14 +6,28 @@ HOMEPAGE = "https://github.com/ssvb/tinymembench/wiki" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://main.c;endline=22;md5=879b9bbb60851454885b5fa47eb6b345" -PV = "0.3.9+git${SRCPV}" +PV = "0.4.0+git${SRCPV}" -SRCREV = "95e68477588d41187b2d2e52ecf6be0e7eb06b8d" +SRCREV = "2c789849709d837b4bd114c11ed2d9bdc65afbc6" SRC_URI = "git://github.com/ssvb/tinymembench.git" S = "${WORKDIR}/git" +TARGET_CC_ARCH += "${LDFLAGS}" + do_install() { install -d ${D}${bindir} install -m755 tinymembench ${D}${bindir}/ } + +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:66: Error: instruction not supported in Thumb16 mode -- `subs r1,r1,#16' +#| {standard input}:69: Error: instruction not supported in Thumb16 mode -- `subs r1,r1,#16' +#| {standard input}:82: Error: selected processor does not support Thumb mode `mla r3,r4,r3,r5' +#| {standard input}:82: Error: unshifted register required -- `and r8,r7,r3,lsr#16' +ARM_INSTRUCTION_SET = "arm" +# +# Does not work for 64bit mips. +# +COMPATIBLE_HOST = "^(?!mips64).*" diff --git a/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch b/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch new file mode 100644 index 00000000000..5aebb956c18 --- /dev/null +++ b/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch @@ -0,0 +1,30 @@ +From 5429ab90eb33eb243fa7b9cd247e0490d72b9da5 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador +Date: Wed, 9 Sep 2015 15:04:45 +0000 +Subject: [PATCH] Drop 'inline' of crc32 function to fix build using GCC 5.2 +Organization: O.S. Systems Software LTDA. + +Upstream-Status: Pending + +Signed-off-by: Otavio Salvador +--- + crc32.h | 1 - + crc32.o | Bin 748 -> 2056 bytes + 2 files changed, 1 deletion(-) + +diff --git a/crc32.h b/crc32.h +index 62b3433..8fc62b6 100644 +--- a/crc32.h ++++ b/crc32.h +@@ -18,7 +18,6 @@ + #ifndef CRC32_H + #define CRC32_H + +-inline + unsigned long crc32( const void* const buffer, + unsigned long length, + unsigned long crc); + +-- +2.1.4 + diff --git a/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Specify-printf-formats.patch b/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Specify-printf-formats.patch new file mode 100644 index 00000000000..cfd34f02a02 --- /dev/null +++ b/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Specify-printf-formats.patch @@ -0,0 +1,49 @@ +From b08e61ef64eece23ce8ffa2784cd3c4f70b6169e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 Jun 2017 08:08:56 -0700 +Subject: [PATCH] Specify printf formats + +Fixes +tiotest.c:555:4: error: format not a string literal and no format arguments [-Werror=format-security] + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + tiotest.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tiotest.c b/tiotest.c +index 6b3d0c3..3e6166a 100644 +--- a/tiotest.c ++++ b/tiotest.c +@@ -91,7 +91,7 @@ inline void checkIntZero(int value, char *mess) + { + if (value <= 0) + { +- printf(mess); ++ printf("%s",mess); + printf("Try 'tiotest -h' for more information.\n"); + exit(1); + } +@@ -101,7 +101,7 @@ inline void checkLong(long value, char *mess) + { + if (value < 0) + { +- printf(mess); ++ printf("%s", mess); + printf("Try 'tiotest -h' for more information\n"); + exit(1); + } +@@ -552,7 +552,7 @@ void do_test( ThreadTest *test, int testCase, int sequential, + if(args.debugLevel > 4) + { + printf("Created %d threads\n", i); +- fprintf(stderr, debugMessage); ++ fprintf(stderr, "%s", debugMessage); + fflush(stderr); + } + +-- +2.13.1 + diff --git a/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb b/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb index 3267de2a050..427ce67d61e 100644 --- a/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb +++ b/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb @@ -9,6 +9,8 @@ SRC_URI = "\ http://sourceforge.net/projects/tiobench/files/tiobench/${PV}/${BP}.tar.gz \ file://tiobench-makefile.patch \ file://avoid-glibc-clashes.patch \ + file://0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch \ + file://0001-Specify-printf-formats.patch \ " SRC_URI[md5sum] = "bf485bf820e693c79e6bd2a38702a128" SRC_URI[sha256sum] = "8ad011059a35ac70cdb5e3d3999ceee44a8e8e9078926844b0685b7ea9db2bcc" diff --git a/meta-oe/recipes-benchmark/whetstone/whetstone_1.2.bb b/meta-oe/recipes-benchmark/whetstone/whetstone_1.2.bb new file mode 100644 index 00000000000..8fad04e365e --- /dev/null +++ b/meta-oe/recipes-benchmark/whetstone/whetstone_1.2.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Whetstone benchmark is a synthetic benchmark for evaluating the performance of computers" +SUMMARY = "CPU benchmark to measure floating point performance" + +LICENSE = "PD" +LIC_FILES_CHKSUM ="file://${WORKDIR}/whetstone.c;beginline=1;endline=52;md5=c795edc15e7e1d92ca8f88ad718449f5" + +SRC_URI = "http://www.netlib.org/benchmark/whetstone.c" +SRC_URI[md5sum] = "d8eb2cd7104bb5a12d614ac6d3f1f9fb" +SRC_URI[sha256sum] = "333e4ceca042c146f63eec605573d16ae8b07166cbc44a17bec1ea97c6f1efbf" + +S = "${WORKDIR}" + +do_compile () { + ${CC} ${CFLAGS} ${LDFLAGS} -Ofast -o whetstone whetstone.c -lm +} + +do_install () { + install -Dm 0755 whetstone ${D}${bindir}/whetstone +} + diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/COPYING b/meta-oe/recipes-bsp/pointercal/pointercal/COPYING new file mode 100644 index 00000000000..63f52938109 --- /dev/null +++ b/meta-oe/recipes-bsp/pointercal/pointercal/COPYING @@ -0,0 +1,2 @@ +This is a blank COPYING file, and should be filled in by original author in future. + diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/pointercal b/meta-oe/recipes-bsp/pointercal/pointercal/pointercal new file mode 100644 index 00000000000..e69de29bb2d diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/qemuarm/pointercal b/meta-oe/recipes-bsp/pointercal/pointercal/qemuarm/pointercal new file mode 100644 index 00000000000..abd84ca4b50 --- /dev/null +++ b/meta-oe/recipes-bsp/pointercal/pointercal/qemuarm/pointercal @@ -0,0 +1 @@ +8313 4 -8526 7 8334 -82604 65536 diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal b/meta-oe/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal new file mode 100644 index 00000000000..abd84ca4b50 --- /dev/null +++ b/meta-oe/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal @@ -0,0 +1 @@ +8313 4 -8526 7 8334 -82604 65536 diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal b/meta-oe/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal new file mode 100644 index 00000000000..abd84ca4b50 --- /dev/null +++ b/meta-oe/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal @@ -0,0 +1 @@ +8313 4 -8526 7 8334 -82604 65536 diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/qemumips/pointercal b/meta-oe/recipes-bsp/pointercal/pointercal/qemumips/pointercal new file mode 100644 index 00000000000..abd84ca4b50 --- /dev/null +++ b/meta-oe/recipes-bsp/pointercal/pointercal/qemumips/pointercal @@ -0,0 +1 @@ +8313 4 -8526 7 8334 -82604 65536 diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/qemuppc/pointercal b/meta-oe/recipes-bsp/pointercal/pointercal/qemuppc/pointercal new file mode 100644 index 00000000000..c2d6e37bf0c Binary files /dev/null and b/meta-oe/recipes-bsp/pointercal/pointercal/qemuppc/pointercal differ diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal b/meta-oe/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal new file mode 100644 index 00000000000..640053d393c --- /dev/null +++ b/meta-oe/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal @@ -0,0 +1 @@ +1280 0 1002 0 960 328 65536 diff --git a/meta-oe/recipes-bsp/pointercal/pointercal/qemux86/pointercal b/meta-oe/recipes-bsp/pointercal/pointercal/qemux86/pointercal new file mode 100644 index 00000000000..640053d393c --- /dev/null +++ b/meta-oe/recipes-bsp/pointercal/pointercal/qemux86/pointercal @@ -0,0 +1 @@ +1280 0 1002 0 960 328 65536 diff --git a/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb b/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb new file mode 100644 index 00000000000..fcfd0386d9f --- /dev/null +++ b/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "Touchscreen calibration data" +SECTION = "base" +PR = "r11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=4b5fcfc87fb615860d398b5e38685edf" + +SRC_URI = "file://pointercal \ + file://COPYING" + +S = "${WORKDIR}" + +do_install() { + # Only install file if it has a contents + if [ -s ${S}/pointercal ]; then + install -d ${D}${sysconfdir}/ + install -m 0644 ${S}/pointercal ${D}${sysconfdir}/ + fi +} + +ALLOW_EMPTY_${PN} = "1" +PACKAGE_ARCH = "${MACHINE_ARCH}" +INHIBIT_DEFAULT_DEPS = "1" diff --git a/meta-oe/recipes-connectivity/daq/daq_2.0.2.bb b/meta-oe/recipes-connectivity/daq/daq_2.0.2.bb deleted file mode 100644 index 4cf3f1ceb54..00000000000 --- a/meta-oe/recipes-connectivity/daq/daq_2.0.2.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "The dump DAQ test the various inline mode features " -HOMEPAGE = "http://www.snort.org" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=f9ce51a65dd738dc1ae631d8b21c40e0" - -PARALLEL_MAKE = "" - -DEPENDS = "libpcap libpcre libdnet" - -SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \ - file://disable-run-test-program-while-cross-compiling.patch " - -# these 2 create undeclared dependency on libdnet and libnetfilter-queue from meta-networking -# this error from test-dependencies script: -# daq/daq/latest lost dependency on libdnet libmnl libnetfilter-queue libnfnetlink -# -# never look to /usr/local lib while cross compiling - -EXTRA_OECONF = "--disable-nfq-module --disable-ipq-module --includedir=${includedir} \ - --with-libpcap-includes=${STAGING_INCDIR} --with-dnet-includes=${STAGING_LIBDIR}" - -SRC_URI[md5sum] = "865bf9b750a2a2ca632591a3c70b0ea0" -SRC_URI[sha256sum] = "d65d1e67c4994e02c3142c49a648642e780b7e3d942b4a51f605309beac269a8" - -inherit autotools diff --git a/meta-oe/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch b/meta-oe/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch deleted file mode 100644 index 12a6cba6009..00000000000 --- a/meta-oe/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch +++ /dev/null @@ -1,29 +0,0 @@ -Upstream-Status:Inappropriate [embedded specific] - -fix the below error: -configure: error: cannot run test program while cross compiling - -Signed-off-by: Chunrong Guo - ---- a/m4/sf.m4old 2013-08-30 04:08:18.768409680 -0500 -+++ b/m4/sf.m4 2013-08-30 04:09:24.591367890 -0500 -@@ -135,19 +135,6 @@ - exit 1 - fi - AC_MSG_CHECKING([for libpcap version >= $1]) -- AC_RUN_IFELSE( -- [AC_LANG_PROGRAM( -- [[ -- #include -- #include -- extern char pcap_version[]; -- ]], -- [[ -- if (strcmp(pcap_version, $1) < 0) -- return 1; -- ]])], -- [libpcap_version_1x="yes"], -- [libpcap_version_1x="no"]) - if test "x$libpcap_version_1x" = "xno"; then - AC_MSG_RESULT(no) - echo diff --git a/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb b/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb index 0dac7cba339..44411751e0e 100644 --- a/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb +++ b/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb @@ -1,6 +1,6 @@ SUMMARY = "GNU All Mobile Managment Utilities" SECTION = "console/network" -DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev" +DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev libgudev unixodbc" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf" HOMEPAGE = "http://www.gammu.org/" @@ -53,3 +53,16 @@ FILES_libgammu = "${libdir}/libGammu.so.*" FILES_libgsmsd = "${libdir}/libgsmsd.so.*" FILES_python-${PN} = "${PYTHON_SITEPACKAGES_DIR}/gammu/*.??" +RDEPENDS_${PN} += "bash" +RDEPENDS_${PN}-dev += "bash" + +# Fails to build with thumb-1 (qemuarm) +# gammu-1.32.0/libgammu/service/sms/gsmems.c:542:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275 +# | } +# | ^ +# | Please submit a full bug report, +# | with preprocessed source if appropriate. +# | See for instructions. +# | make[2]: *** [libgammu/CMakeFiles/libGammu.dir/service/sms/gsmems.o] Error 1 +# | make[2]: *** Waiting for unfinished jobs.... +ARM_INSTRUCTION_SET = "arm" diff --git a/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb b/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb deleted file mode 100644 index acae8689d5c..00000000000 --- a/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Cellphone tools and driver software" -SECTION = "console/network" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" - -SRC_URI = "http://www.gnokii.org/download/gnokii/gnokii-${PV}.tar.bz2" - -DEPENDS = "glib-2.0" -X11DEPENDS = " libxpm gtk+" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" -PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" -PACKAGECONFIG[libical] = "--enable-libical,--disable-libical,libical" -PACKAGECONFIG[pcsc-lite] = "--enable-libpcsclite,--disable-libpcsclite,pcsc-lite" -PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" -PACKAGECONFIG[usb] = "--enable-libusb,--disable-libusb,virtual/libusb0" -PACKAGECONFIG[x11] = ",--without-x,${X11DEPENDS}" - -inherit autotools pkgconfig - -PACKAGES += "libgnokii libgnokii-dev" - -EXTRA_OECONF = "--disable-smsd" - -FILES_${PN} = "${bindir} ${sbindir}" -FILES_libgnokii-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la \ - ${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig \ - /lib/*.a /lib/*.o ${datadir}/aclocal" -FILES_${PN}-dev = "" -FILES_libgnokii = "${libdir}/libgnokii.so.*" - -SRC_URI[md5sum] = "d9627f4a1152d3ea7806df4532850d5f" -SRC_URI[sha256sum] = "8f5a083b05c1a66a3402ca5cd80084e14c2c0632c991bb53b03c78e9adb02501" diff --git a/meta-oe/recipes-connectivity/gnuradio/gnuradio/0001-buildsys-don-t-add-usr-include-and-usr-lib-to-config.patch b/meta-oe/recipes-connectivity/gnuradio/gnuradio/0001-buildsys-don-t-add-usr-include-and-usr-lib-to-config.patch deleted file mode 100644 index 7caaf51e652..00000000000 --- a/meta-oe/recipes-connectivity/gnuradio/gnuradio/0001-buildsys-don-t-add-usr-include-and-usr-lib-to-config.patch +++ /dev/null @@ -1,58 +0,0 @@ -From a130153ae84d8bb5914879cef94df09f06825c10 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Sat, 18 Jun 2011 11:25:36 +0200 -Subject: [PATCH] buildsys: don't add /usr/include and /usr/lib to configure tests for libusb - -Signed-off-by: Koen Kooi ---- - config/usrp_libusb.m4 | 13 ------------- - 1 files changed, 0 insertions(+), 13 deletions(-) - -diff --git a/config/usrp_libusb.m4 b/config/usrp_libusb.m4 -index cc3410f..b421820 100644 ---- a/config/usrp_libusb.m4 -+++ b/config/usrp_libusb.m4 -@@ -117,10 +117,6 @@ AC_DEFUN([USRP_LIBUSB], [ - dnl configured to find this header. - AC_LANG_PUSH(C) - save_CPPFLAGS="$CPPFLAGS" -- if test x$USB_INCLUDEDIR != x; then -- USB_INCLUDES="-I$USB_INCLUDEDIR" -- CPPFLAGS="$USB_INCLUDES" -- fi - AC_MSG_CHECKING([$libusb_name for header $usb_header]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #include "$usb_header" -@@ -172,9 +168,6 @@ AC_DEFUN([USRP_LIBUSB], [ - *) - AC_LANG_PUSH(C) - save_CPPFLAGS="$CPPFLAGS" -- if test x$USB_INCLUDEDIR != x; then -- CPPFLAGS="$USB_INCLUDES" -- fi - save_LIBS="$LIBS" - LIBS="$USB_LIBS" - AC_MSG_CHECKING([$libusb_name for symbol usb_debug in library $usb_lib_name]) -@@ -217,9 +210,6 @@ AC_DEFUN([USRP_LIBUSB], [ - dnl final error checking, mostly to create #define's - AC_LANG_PUSH(C) - save_CPPFLAGS="$CPPFLAGS" -- if test x$USB_INCLUDEDIR != x; then -- CPPFLAGS="$USB_INCLUDES" -- fi - dnl Check for the header. - AC_CHECK_HEADERS([$usb_header], [], [libusbok=no]) - CPPFLAGS="$save_CPPFLAGS" -@@ -231,9 +221,6 @@ AC_DEFUN([USRP_LIBUSB], [ - dnl check for the library (again) - AC_LANG_PUSH(C) - save_CPPFLAGS="$CPPFLAGS" -- if test x$USB_INCLUDEDIR != x; then -- CPPFLAGS="$USB_INCLUDES" -- fi - save_LIBS="$LIBS" - LIBS="$USB_LIBS" - AC_CHECK_LIB([$usb_lib_name], [$usb_lib_func], [], [ --- -1.6.6.1 - diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd-2.2/defconfig b/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig similarity index 100% rename from meta-oe/recipes-connectivity/hostapd/hostapd-2.2/defconfig rename to meta-oe/recipes-connectivity/hostapd/hostapd/defconfig diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd-2.2/hostapd.service b/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd.service similarity index 100% rename from meta-oe/recipes-connectivity/hostapd/hostapd-2.2/hostapd.service rename to meta-oe/recipes-connectivity/hostapd/hostapd/hostapd.service diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd-2.2/init b/meta-oe/recipes-connectivity/hostapd/hostapd/init similarity index 100% rename from meta-oe/recipes-connectivity/hostapd/hostapd-2.2/init rename to meta-oe/recipes-connectivity/hostapd/hostapd/init diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch new file mode 100644 index 00000000000..694da8fb6d2 --- /dev/null +++ b/meta-oe/recipes-connectivity/hostapd/hostapd/key-replay-cve-multiple.patch @@ -0,0 +1,984 @@ +The WPA2 four-way handshake protocol is vulnerable to replay attacks which can +result in unauthenticated clients gaining access to the network. + +Backport a number of patches from upstream to fix this. + +CVE: CVE-2017-13077 +CVE: CVE-2017-13078 +CVE: CVE-2017-13079 +CVE: CVE-2017-13080 +CVE: CVE-2017-13081 +CVE: CVE-2017-13082 +CVE: CVE-2017-13086 +CVE: CVE-2017-13087 +CVE: CVE-2017-13088 + +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From cf4cab804c7afd5c45505528a8d16e46163243a2 Mon Sep 17 00:00:00 2001 +From: Mathy Vanhoef +Date: Fri, 14 Jul 2017 15:15:35 +0200 +Subject: [PATCH 1/8] hostapd: Avoid key reinstallation in FT handshake + +Do not reinstall TK to the driver during Reassociation Response frame +processing if the first attempt of setting the TK succeeded. This avoids +issues related to clearing the TX/RX PN that could result in reusing +same PN values for transmitted frames (e.g., due to CCM nonce reuse and +also hitting replay protection on the receiver) and accepting replayed +frames on RX side. + +This issue was introduced by the commit +0e84c25434e6a1f283c7b4e62e483729085b78d2 ('FT: Fix PTK configuration in +authenticator') which allowed wpa_ft_install_ptk() to be called multiple +times with the same PTK. While the second configuration attempt is +needed with some drivers, it must be done only if the first attempt +failed. + +Signed-off-by: Mathy Vanhoef +--- + src/ap/ieee802_11.c | 16 +++++++++++++--- + src/ap/wpa_auth.c | 11 +++++++++++ + src/ap/wpa_auth.h | 3 ++- + src/ap/wpa_auth_ft.c | 10 ++++++++++ + src/ap/wpa_auth_i.h | 1 + + 5 files changed, 37 insertions(+), 4 deletions(-) + +diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c +index 4e04169..333035f 100644 +--- a/src/ap/ieee802_11.c ++++ b/src/ap/ieee802_11.c +@@ -1841,6 +1841,7 @@ static int add_associated_sta(struct hostapd_data *hapd, + { + struct ieee80211_ht_capabilities ht_cap; + struct ieee80211_vht_capabilities vht_cap; ++ int set = 1; + + /* + * Remove the STA entry to ensure the STA PS state gets cleared and +@@ -1848,9 +1849,18 @@ static int add_associated_sta(struct hostapd_data *hapd, + * FT-over-the-DS, where a station re-associates back to the same AP but + * skips the authentication flow, or if working with a driver that + * does not support full AP client state. ++ * ++ * Skip this if the STA has already completed FT reassociation and the ++ * TK has been configured since the TX/RX PN must not be reset to 0 for ++ * the same key. + */ +- if (!sta->added_unassoc) ++ if (!sta->added_unassoc && ++ (!(sta->flags & WLAN_STA_AUTHORIZED) || ++ !wpa_auth_sta_ft_tk_already_set(sta->wpa_sm))) { + hostapd_drv_sta_remove(hapd, sta->addr); ++ wpa_auth_sm_event(sta->wpa_sm, WPA_DRV_STA_REMOVED); ++ set = 0; ++ } + + #ifdef CONFIG_IEEE80211N + if (sta->flags & WLAN_STA_HT) +@@ -1873,11 +1883,11 @@ static int add_associated_sta(struct hostapd_data *hapd, + sta->flags & WLAN_STA_VHT ? &vht_cap : NULL, + sta->flags | WLAN_STA_ASSOC, sta->qosinfo, + sta->vht_opmode, sta->p2p_ie ? 1 : 0, +- sta->added_unassoc)) { ++ set)) { + hostapd_logger(hapd, sta->addr, + HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_NOTICE, + "Could not %s STA to kernel driver", +- sta->added_unassoc ? "set" : "add"); ++ set ? "set" : "add"); + + if (sta->added_unassoc) { + hostapd_drv_sta_remove(hapd, sta->addr); +diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c +index 3587086..707971d 100644 +--- a/src/ap/wpa_auth.c ++++ b/src/ap/wpa_auth.c +@@ -1745,6 +1745,9 @@ int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event) + #else /* CONFIG_IEEE80211R */ + break; + #endif /* CONFIG_IEEE80211R */ ++ case WPA_DRV_STA_REMOVED: ++ sm->tk_already_set = FALSE; ++ return 0; + } + + #ifdef CONFIG_IEEE80211R +@@ -3250,6 +3253,14 @@ int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm) + } + + ++int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm) ++{ ++ if (!sm || !wpa_key_mgmt_ft(sm->wpa_key_mgmt)) ++ return 0; ++ return sm->tk_already_set; ++} ++ ++ + int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm, + struct rsn_pmksa_cache_entry *entry) + { +diff --git a/src/ap/wpa_auth.h b/src/ap/wpa_auth.h +index 0de8d97..97461b0 100644 +--- a/src/ap/wpa_auth.h ++++ b/src/ap/wpa_auth.h +@@ -267,7 +267,7 @@ void wpa_receive(struct wpa_authenticator *wpa_auth, + u8 *data, size_t data_len); + enum wpa_event { + WPA_AUTH, WPA_ASSOC, WPA_DISASSOC, WPA_DEAUTH, WPA_REAUTH, +- WPA_REAUTH_EAPOL, WPA_ASSOC_FT ++ WPA_REAUTH_EAPOL, WPA_ASSOC_FT, WPA_DRV_STA_REMOVED + }; + void wpa_remove_ptk(struct wpa_state_machine *sm); + int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event); +@@ -280,6 +280,7 @@ int wpa_auth_pairwise_set(struct wpa_state_machine *sm); + int wpa_auth_get_pairwise(struct wpa_state_machine *sm); + int wpa_auth_sta_key_mgmt(struct wpa_state_machine *sm); + int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm); ++int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm); + int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm, + struct rsn_pmksa_cache_entry *entry); + struct rsn_pmksa_cache_entry * +diff --git a/src/ap/wpa_auth_ft.c b/src/ap/wpa_auth_ft.c +index 42242a5..e63b99a 100644 +--- a/src/ap/wpa_auth_ft.c ++++ b/src/ap/wpa_auth_ft.c +@@ -780,6 +780,14 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm) + return; + } + ++ if (sm->tk_already_set) { ++ /* Must avoid TK reconfiguration to prevent clearing of TX/RX ++ * PN in the driver */ ++ wpa_printf(MSG_DEBUG, ++ "FT: Do not re-install same PTK to the driver"); ++ return; ++ } ++ + /* FIX: add STA entry to kernel/driver here? The set_key will fail + * most likely without this.. At the moment, STA entry is added only + * after association has been completed. This function will be called +@@ -792,6 +800,7 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm) + + /* FIX: MLME-SetProtection.Request(TA, Tx_Rx) */ + sm->pairwise_set = TRUE; ++ sm->tk_already_set = TRUE; + } + + +@@ -898,6 +907,7 @@ static int wpa_ft_process_auth_req(struct wpa_state_machine *sm, + + sm->pairwise = pairwise; + sm->PTK_valid = TRUE; ++ sm->tk_already_set = FALSE; + wpa_ft_install_ptk(sm); + + buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) + +diff --git a/src/ap/wpa_auth_i.h b/src/ap/wpa_auth_i.h +index 72b7eb3..7fd8f05 100644 +--- a/src/ap/wpa_auth_i.h ++++ b/src/ap/wpa_auth_i.h +@@ -65,6 +65,7 @@ struct wpa_state_machine { + struct wpa_ptk PTK; + Boolean PTK_valid; + Boolean pairwise_set; ++ Boolean tk_already_set; + int keycount; + Boolean Pair; + struct wpa_key_replay_counter { +-- +2.7.4 + +From 927f891007c402fefd1ff384645b3f07597c3ede Mon Sep 17 00:00:00 2001 +From: Mathy Vanhoef +Date: Wed, 12 Jul 2017 16:03:24 +0200 +Subject: [PATCH 2/8] Prevent reinstallation of an already in-use group key + +Track the current GTK and IGTK that is in use and when receiving a +(possibly retransmitted) Group Message 1 or WNM-Sleep Mode Response, do +not install the given key if it is already in use. This prevents an +attacker from trying to trick the client into resetting or lowering the +sequence counter associated to the group key. + +Signed-off-by: Mathy Vanhoef +--- + src/common/wpa_common.h | 11 +++++ + src/rsn_supp/wpa.c | 116 ++++++++++++++++++++++++++++++------------------ + src/rsn_supp/wpa_i.h | 4 ++ + 3 files changed, 87 insertions(+), 44 deletions(-) + +diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h +index af1d0f0..d200285 100644 +--- a/src/common/wpa_common.h ++++ b/src/common/wpa_common.h +@@ -217,6 +217,17 @@ struct wpa_ptk { + size_t tk_len; + }; + ++struct wpa_gtk { ++ u8 gtk[WPA_GTK_MAX_LEN]; ++ size_t gtk_len; ++}; ++ ++#ifdef CONFIG_IEEE80211W ++struct wpa_igtk { ++ u8 igtk[WPA_IGTK_MAX_LEN]; ++ size_t igtk_len; ++}; ++#endif /* CONFIG_IEEE80211W */ + + /* WPA IE version 1 + * 00-50-f2:1 (OUI:OUI type) +diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c +index 3c47879..95bd7be 100644 +--- a/src/rsn_supp/wpa.c ++++ b/src/rsn_supp/wpa.c +@@ -714,6 +714,15 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, + const u8 *_gtk = gd->gtk; + u8 gtk_buf[32]; + ++ /* Detect possible key reinstallation */ ++ if (sm->gtk.gtk_len == (size_t) gd->gtk_len && ++ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) { ++ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, ++ "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)", ++ gd->keyidx, gd->tx, gd->gtk_len); ++ return 0; ++ } ++ + wpa_hexdump_key(MSG_DEBUG, "WPA: Group Key", gd->gtk, gd->gtk_len); + wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, + "WPA: Installing GTK to the driver (keyidx=%d tx=%d len=%d)", +@@ -748,6 +757,9 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, + } + os_memset(gtk_buf, 0, sizeof(gtk_buf)); + ++ sm->gtk.gtk_len = gd->gtk_len; ++ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); ++ + return 0; + } + +@@ -854,6 +866,48 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, + } + + ++#ifdef CONFIG_IEEE80211W ++static int wpa_supplicant_install_igtk(struct wpa_sm *sm, ++ const struct wpa_igtk_kde *igtk) ++{ ++ size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher); ++ u16 keyidx = WPA_GET_LE16(igtk->keyid); ++ ++ /* Detect possible key reinstallation */ ++ if (sm->igtk.igtk_len == len && ++ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) { ++ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, ++ "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)", ++ keyidx); ++ return 0; ++ } ++ ++ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, ++ "WPA: IGTK keyid %d pn %02x%02x%02x%02x%02x%02x", ++ keyidx, MAC2STR(igtk->pn)); ++ wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", igtk->igtk, len); ++ if (keyidx > 4095) { ++ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, ++ "WPA: Invalid IGTK KeyID %d", keyidx); ++ return -1; ++ } ++ if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), ++ broadcast_ether_addr, ++ keyidx, 0, igtk->pn, sizeof(igtk->pn), ++ igtk->igtk, len) < 0) { ++ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, ++ "WPA: Failed to configure IGTK to the driver"); ++ return -1; ++ } ++ ++ sm->igtk.igtk_len = len; ++ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); ++ ++ return 0; ++} ++#endif /* CONFIG_IEEE80211W */ ++ ++ + static int ieee80211w_set_keys(struct wpa_sm *sm, + struct wpa_eapol_ie_parse *ie) + { +@@ -864,30 +918,14 @@ static int ieee80211w_set_keys(struct wpa_sm *sm, + if (ie->igtk) { + size_t len; + const struct wpa_igtk_kde *igtk; +- u16 keyidx; ++ + len = wpa_cipher_key_len(sm->mgmt_group_cipher); + if (ie->igtk_len != WPA_IGTK_KDE_PREFIX_LEN + len) + return -1; ++ + igtk = (const struct wpa_igtk_kde *) ie->igtk; +- keyidx = WPA_GET_LE16(igtk->keyid); +- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: IGTK keyid %d " +- "pn %02x%02x%02x%02x%02x%02x", +- keyidx, MAC2STR(igtk->pn)); +- wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", +- igtk->igtk, len); +- if (keyidx > 4095) { +- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, +- "WPA: Invalid IGTK KeyID %d", keyidx); +- return -1; +- } +- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), +- broadcast_ether_addr, +- keyidx, 0, igtk->pn, sizeof(igtk->pn), +- igtk->igtk, len) < 0) { +- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, +- "WPA: Failed to configure IGTK to the driver"); ++ if (wpa_supplicant_install_igtk(sm, igtk) < 0) + return -1; +- } + } + + return 0; +@@ -2307,7 +2345,7 @@ void wpa_sm_deinit(struct wpa_sm *sm) + */ + void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) + { +- int clear_ptk = 1; ++ int clear_keys = 1; + + if (sm == NULL) + return; +@@ -2333,11 +2371,11 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) + /* Prepare for the next transition */ + wpa_ft_prepare_auth_request(sm, NULL); + +- clear_ptk = 0; ++ clear_keys = 0; + } + #endif /* CONFIG_IEEE80211R */ + +- if (clear_ptk) { ++ if (clear_keys) { + /* + * IEEE 802.11, 8.4.10: Delete PTK SA on (re)association if + * this is not part of a Fast BSS Transition. +@@ -2347,6 +2385,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) + os_memset(&sm->ptk, 0, sizeof(sm->ptk)); + sm->tptk_set = 0; + os_memset(&sm->tptk, 0, sizeof(sm->tptk)); ++ os_memset(&sm->gtk, 0, sizeof(sm->gtk)); ++#ifdef CONFIG_IEEE80211W ++ os_memset(&sm->igtk, 0, sizeof(sm->igtk)); ++#endif /* CONFIG_IEEE80211W */ + } + + #ifdef CONFIG_TDLS +@@ -2877,6 +2919,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm) + os_memset(sm->pmk, 0, sizeof(sm->pmk)); + os_memset(&sm->ptk, 0, sizeof(sm->ptk)); + os_memset(&sm->tptk, 0, sizeof(sm->tptk)); ++ os_memset(&sm->gtk, 0, sizeof(sm->gtk)); ++#ifdef CONFIG_IEEE80211W ++ os_memset(&sm->igtk, 0, sizeof(sm->igtk)); ++#endif /* CONFIG_IEEE80211W */ + #ifdef CONFIG_IEEE80211R + os_memset(sm->xxkey, 0, sizeof(sm->xxkey)); + os_memset(sm->pmk_r0, 0, sizeof(sm->pmk_r0)); +@@ -2949,29 +2995,11 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) + os_memset(&gd, 0, sizeof(gd)); + #ifdef CONFIG_IEEE80211W + } else if (subelem_id == WNM_SLEEP_SUBELEM_IGTK) { +- struct wpa_igtk_kde igd; +- u16 keyidx; +- +- os_memset(&igd, 0, sizeof(igd)); +- keylen = wpa_cipher_key_len(sm->mgmt_group_cipher); +- os_memcpy(igd.keyid, buf + 2, 2); +- os_memcpy(igd.pn, buf + 4, 6); +- +- keyidx = WPA_GET_LE16(igd.keyid); +- os_memcpy(igd.igtk, buf + 10, keylen); +- +- wpa_hexdump_key(MSG_DEBUG, "Install IGTK (WNM SLEEP)", +- igd.igtk, keylen); +- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), +- broadcast_ether_addr, +- keyidx, 0, igd.pn, sizeof(igd.pn), +- igd.igtk, keylen) < 0) { +- wpa_printf(MSG_DEBUG, "Failed to install the IGTK in " +- "WNM mode"); +- os_memset(&igd, 0, sizeof(igd)); ++ const struct wpa_igtk_kde *igtk; ++ ++ igtk = (const struct wpa_igtk_kde *) (buf + 2); ++ if (wpa_supplicant_install_igtk(sm, igtk) < 0) + return -1; +- } +- os_memset(&igd, 0, sizeof(igd)); + #endif /* CONFIG_IEEE80211W */ + } else { + wpa_printf(MSG_DEBUG, "Unknown element id"); +diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h +index f653ba6..afc9e37 100644 +--- a/src/rsn_supp/wpa_i.h ++++ b/src/rsn_supp/wpa_i.h +@@ -31,6 +31,10 @@ struct wpa_sm { + u8 rx_replay_counter[WPA_REPLAY_COUNTER_LEN]; + int rx_replay_counter_set; + u8 request_counter[WPA_REPLAY_COUNTER_LEN]; ++ struct wpa_gtk gtk; ++#ifdef CONFIG_IEEE80211W ++ struct wpa_igtk igtk; ++#endif /* CONFIG_IEEE80211W */ + + struct eapol_sm *eapol; /* EAPOL state machine from upper level code */ + +-- +2.7.4 + +From 8280294e74846ea342389a0cd17215050fa5afe8 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Sun, 1 Oct 2017 12:12:24 +0300 +Subject: [PATCH 3/8] Extend protection of GTK/IGTK reinstallation of WNM-Sleep + Mode cases + +This extends the protection to track last configured GTK/IGTK value +separately from EAPOL-Key frames and WNM-Sleep Mode frames to cover a +corner case where these two different mechanisms may get used when the +GTK/IGTK has changed and tracking a single value is not sufficient to +detect a possible key reconfiguration. + +Signed-off-by: Jouni Malinen +--- + src/rsn_supp/wpa.c | 53 +++++++++++++++++++++++++++++++++++++--------------- + src/rsn_supp/wpa_i.h | 2 ++ + 2 files changed, 40 insertions(+), 15 deletions(-) + +diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c +index 95bd7be..7a2c68d 100644 +--- a/src/rsn_supp/wpa.c ++++ b/src/rsn_supp/wpa.c +@@ -709,14 +709,17 @@ struct wpa_gtk_data { + + static int wpa_supplicant_install_gtk(struct wpa_sm *sm, + const struct wpa_gtk_data *gd, +- const u8 *key_rsc) ++ const u8 *key_rsc, int wnm_sleep) + { + const u8 *_gtk = gd->gtk; + u8 gtk_buf[32]; + + /* Detect possible key reinstallation */ +- if (sm->gtk.gtk_len == (size_t) gd->gtk_len && +- os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) { ++ if ((sm->gtk.gtk_len == (size_t) gd->gtk_len && ++ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) || ++ (sm->gtk_wnm_sleep.gtk_len == (size_t) gd->gtk_len && ++ os_memcmp(sm->gtk_wnm_sleep.gtk, gd->gtk, ++ sm->gtk_wnm_sleep.gtk_len) == 0)) { + wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, + "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)", + gd->keyidx, gd->tx, gd->gtk_len); +@@ -757,8 +760,14 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, + } + os_memset(gtk_buf, 0, sizeof(gtk_buf)); + +- sm->gtk.gtk_len = gd->gtk_len; +- os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); ++ if (wnm_sleep) { ++ sm->gtk_wnm_sleep.gtk_len = gd->gtk_len; ++ os_memcpy(sm->gtk_wnm_sleep.gtk, gd->gtk, ++ sm->gtk_wnm_sleep.gtk_len); ++ } else { ++ sm->gtk.gtk_len = gd->gtk_len; ++ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); ++ } + + return 0; + } +@@ -852,7 +861,7 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, + (wpa_supplicant_check_group_cipher(sm, sm->group_cipher, + gtk_len, gtk_len, + &gd.key_rsc_len, &gd.alg) || +- wpa_supplicant_install_gtk(sm, &gd, key_rsc))) { ++ wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0))) { + wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, + "RSN: Failed to install GTK"); + os_memset(&gd, 0, sizeof(gd)); +@@ -868,14 +877,18 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, + + #ifdef CONFIG_IEEE80211W + static int wpa_supplicant_install_igtk(struct wpa_sm *sm, +- const struct wpa_igtk_kde *igtk) ++ const struct wpa_igtk_kde *igtk, ++ int wnm_sleep) + { + size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher); + u16 keyidx = WPA_GET_LE16(igtk->keyid); + + /* Detect possible key reinstallation */ +- if (sm->igtk.igtk_len == len && +- os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) { ++ if ((sm->igtk.igtk_len == len && ++ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) || ++ (sm->igtk_wnm_sleep.igtk_len == len && ++ os_memcmp(sm->igtk_wnm_sleep.igtk, igtk->igtk, ++ sm->igtk_wnm_sleep.igtk_len) == 0)) { + wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, + "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)", + keyidx); +@@ -900,8 +913,14 @@ static int wpa_supplicant_install_igtk(struct wpa_sm *sm, + return -1; + } + +- sm->igtk.igtk_len = len; +- os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); ++ if (wnm_sleep) { ++ sm->igtk_wnm_sleep.igtk_len = len; ++ os_memcpy(sm->igtk_wnm_sleep.igtk, igtk->igtk, ++ sm->igtk_wnm_sleep.igtk_len); ++ } else { ++ sm->igtk.igtk_len = len; ++ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); ++ } + + return 0; + } +@@ -924,7 +943,7 @@ static int ieee80211w_set_keys(struct wpa_sm *sm, + return -1; + + igtk = (const struct wpa_igtk_kde *) ie->igtk; +- if (wpa_supplicant_install_igtk(sm, igtk) < 0) ++ if (wpa_supplicant_install_igtk(sm, igtk, 0) < 0) + return -1; + } + +@@ -1574,7 +1593,7 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm, + if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc)) + key_rsc = null_rsc; + +- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc) || ++ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0) || + wpa_supplicant_send_2_of_2(sm, key, ver, key_info) < 0) + goto failed; + os_memset(&gd, 0, sizeof(gd)); +@@ -2386,8 +2405,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) + sm->tptk_set = 0; + os_memset(&sm->tptk, 0, sizeof(sm->tptk)); + os_memset(&sm->gtk, 0, sizeof(sm->gtk)); ++ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep)); + #ifdef CONFIG_IEEE80211W + os_memset(&sm->igtk, 0, sizeof(sm->igtk)); ++ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep)); + #endif /* CONFIG_IEEE80211W */ + } + +@@ -2920,8 +2941,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm) + os_memset(&sm->ptk, 0, sizeof(sm->ptk)); + os_memset(&sm->tptk, 0, sizeof(sm->tptk)); + os_memset(&sm->gtk, 0, sizeof(sm->gtk)); ++ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep)); + #ifdef CONFIG_IEEE80211W + os_memset(&sm->igtk, 0, sizeof(sm->igtk)); ++ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep)); + #endif /* CONFIG_IEEE80211W */ + #ifdef CONFIG_IEEE80211R + os_memset(sm->xxkey, 0, sizeof(sm->xxkey)); +@@ -2986,7 +3009,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) + + wpa_hexdump_key(MSG_DEBUG, "Install GTK (WNM SLEEP)", + gd.gtk, gd.gtk_len); +- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc)) { ++ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 1)) { + os_memset(&gd, 0, sizeof(gd)); + wpa_printf(MSG_DEBUG, "Failed to install the GTK in " + "WNM mode"); +@@ -2998,7 +3021,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) + const struct wpa_igtk_kde *igtk; + + igtk = (const struct wpa_igtk_kde *) (buf + 2); +- if (wpa_supplicant_install_igtk(sm, igtk) < 0) ++ if (wpa_supplicant_install_igtk(sm, igtk, 1) < 0) + return -1; + #endif /* CONFIG_IEEE80211W */ + } else { +diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h +index afc9e37..9a54631 100644 +--- a/src/rsn_supp/wpa_i.h ++++ b/src/rsn_supp/wpa_i.h +@@ -32,8 +32,10 @@ struct wpa_sm { + int rx_replay_counter_set; + u8 request_counter[WPA_REPLAY_COUNTER_LEN]; + struct wpa_gtk gtk; ++ struct wpa_gtk gtk_wnm_sleep; + #ifdef CONFIG_IEEE80211W + struct wpa_igtk igtk; ++ struct wpa_igtk igtk_wnm_sleep; + #endif /* CONFIG_IEEE80211W */ + + struct eapol_sm *eapol; /* EAPOL state machine from upper level code */ +-- +2.7.4 + +From 8f82bc94e8697a9d47fa8774dfdaaede1084912c Mon Sep 17 00:00:00 2001 +From: Mathy Vanhoef +Date: Fri, 29 Sep 2017 04:22:51 +0200 +Subject: [PATCH 4/8] Prevent installation of an all-zero TK + +Properly track whether a PTK has already been installed to the driver +and the TK part cleared from memory. This prevents an attacker from +trying to trick the client into installing an all-zero TK. + +This fixes the earlier fix in commit +ad00d64e7d8827b3cebd665a0ceb08adabf15e1e ('Fix TK configuration to the +driver in EAPOL-Key 3/4 retry case') which did not take into account +possibility of an extra message 1/4 showing up between retries of +message 3/4. + +Signed-off-by: Mathy Vanhoef +--- + src/common/wpa_common.h | 1 + + src/rsn_supp/wpa.c | 5 ++--- + src/rsn_supp/wpa_i.h | 1 - + 3 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h +index d200285..1021ccb 100644 +--- a/src/common/wpa_common.h ++++ b/src/common/wpa_common.h +@@ -215,6 +215,7 @@ struct wpa_ptk { + size_t kck_len; + size_t kek_len; + size_t tk_len; ++ int installed; /* 1 if key has already been installed to driver */ + }; + + struct wpa_gtk { +diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c +index 7a2c68d..0550a41 100644 +--- a/src/rsn_supp/wpa.c ++++ b/src/rsn_supp/wpa.c +@@ -510,7 +510,6 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm, + os_memset(buf, 0, sizeof(buf)); + } + sm->tptk_set = 1; +- sm->tk_to_set = 1; + + kde = sm->assoc_wpa_ie; + kde_len = sm->assoc_wpa_ie_len; +@@ -615,7 +614,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm, + enum wpa_alg alg; + const u8 *key_rsc; + +- if (!sm->tk_to_set) { ++ if (sm->ptk.installed) { + wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, + "WPA: Do not re-install same PTK to the driver"); + return 0; +@@ -659,7 +658,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm, + + /* TK is not needed anymore in supplicant */ + os_memset(sm->ptk.tk, 0, WPA_TK_MAX_LEN); +- sm->tk_to_set = 0; ++ sm->ptk.installed = 1; + + if (sm->wpa_ptk_rekey) { + eloop_cancel_timeout(wpa_sm_rekey_ptk, sm, NULL); +diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h +index 9a54631..41f371f 100644 +--- a/src/rsn_supp/wpa_i.h ++++ b/src/rsn_supp/wpa_i.h +@@ -24,7 +24,6 @@ struct wpa_sm { + struct wpa_ptk ptk, tptk; + int ptk_set, tptk_set; + unsigned int msg_3_of_4_ok:1; +- unsigned int tk_to_set:1; + u8 snonce[WPA_NONCE_LEN]; + u8 anonce[WPA_NONCE_LEN]; /* ANonce from the last 1/4 msg */ + int renew_snonce; +-- +2.7.4 + +From 12fac09b437a1dc8a0f253e265934a8aaf4d2f8b Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Sun, 1 Oct 2017 12:32:57 +0300 +Subject: [PATCH 5/8] Fix PTK rekeying to generate a new ANonce + +The Authenticator state machine path for PTK rekeying ended up bypassing +the AUTHENTICATION2 state where a new ANonce is generated when going +directly to the PTKSTART state since there is no need to try to +determine the PMK again in such a case. This is far from ideal since the +new PTK would depend on a new nonce only from the supplicant. + +Fix this by generating a new ANonce when moving to the PTKSTART state +for the purpose of starting new 4-way handshake to rekey PTK. + +Signed-off-by: Jouni Malinen +--- + src/ap/wpa_auth.c | 24 +++++++++++++++++++++--- + 1 file changed, 21 insertions(+), 3 deletions(-) + +diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c +index 707971d..bf10cc1 100644 +--- a/src/ap/wpa_auth.c ++++ b/src/ap/wpa_auth.c +@@ -1901,6 +1901,21 @@ SM_STATE(WPA_PTK, AUTHENTICATION2) + } + + ++static int wpa_auth_sm_ptk_update(struct wpa_state_machine *sm) ++{ ++ if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) { ++ wpa_printf(MSG_ERROR, ++ "WPA: Failed to get random data for ANonce"); ++ sm->Disconnect = TRUE; ++ return -1; ++ } ++ wpa_hexdump(MSG_DEBUG, "WPA: Assign new ANonce", sm->ANonce, ++ WPA_NONCE_LEN); ++ sm->TimeoutCtr = 0; ++ return 0; ++} ++ ++ + SM_STATE(WPA_PTK, INITPMK) + { + u8 msk[2 * PMK_LEN]; +@@ -2458,9 +2473,12 @@ SM_STEP(WPA_PTK) + SM_ENTER(WPA_PTK, AUTHENTICATION); + else if (sm->ReAuthenticationRequest) + SM_ENTER(WPA_PTK, AUTHENTICATION2); +- else if (sm->PTKRequest) +- SM_ENTER(WPA_PTK, PTKSTART); +- else switch (sm->wpa_ptk_state) { ++ else if (sm->PTKRequest) { ++ if (wpa_auth_sm_ptk_update(sm) < 0) ++ SM_ENTER(WPA_PTK, DISCONNECTED); ++ else ++ SM_ENTER(WPA_PTK, PTKSTART); ++ } else switch (sm->wpa_ptk_state) { + case WPA_PTK_INITIALIZE: + break; + case WPA_PTK_DISCONNECT: +-- +2.7.4 + +From 6c4bed4f47d1960ec04981a9d50e5076aea5223d Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Fri, 22 Sep 2017 11:03:15 +0300 +Subject: [PATCH 6/8] TDLS: Reject TPK-TK reconfiguration + +Do not try to reconfigure the same TPK-TK to the driver after it has +been successfully configured. This is an explicit check to avoid issues +related to resetting the TX/RX packet number. There was already a check +for this for TPK M2 (retries of that message are ignored completely), so +that behavior does not get modified. + +For TPK M3, the TPK-TK could have been reconfigured, but that was +followed by immediate teardown of the link due to an issue in updating +the STA entry. Furthermore, for TDLS with any real security (i.e., +ignoring open/WEP), the TPK message exchange is protected on the AP path +and simple replay attacks are not feasible. + +As an additional corner case, make sure the local nonce gets updated if +the peer uses a very unlikely "random nonce" of all zeros. + +Signed-off-by: Jouni Malinen +--- + src/rsn_supp/tdls.c | 38 ++++++++++++++++++++++++++++++++++++-- + 1 file changed, 36 insertions(+), 2 deletions(-) + +diff --git a/src/rsn_supp/tdls.c b/src/rsn_supp/tdls.c +index e424168..9eb9738 100644 +--- a/src/rsn_supp/tdls.c ++++ b/src/rsn_supp/tdls.c +@@ -112,6 +112,7 @@ struct wpa_tdls_peer { + u8 tk[16]; /* TPK-TK; assuming only CCMP will be used */ + } tpk; + int tpk_set; ++ int tk_set; /* TPK-TK configured to the driver */ + int tpk_success; + int tpk_in_progress; + +@@ -192,6 +193,20 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer) + u8 rsc[6]; + enum wpa_alg alg; + ++ if (peer->tk_set) { ++ /* ++ * This same TPK-TK has already been configured to the driver ++ * and this new configuration attempt (likely due to an ++ * unexpected retransmitted frame) would result in clearing ++ * the TX/RX sequence number which can break security, so must ++ * not allow that to happen. ++ */ ++ wpa_printf(MSG_INFO, "TDLS: TPK-TK for the peer " MACSTR ++ " has already been configured to the driver - do not reconfigure", ++ MAC2STR(peer->addr)); ++ return -1; ++ } ++ + os_memset(rsc, 0, 6); + + switch (peer->cipher) { +@@ -209,12 +224,15 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer) + return -1; + } + ++ wpa_printf(MSG_DEBUG, "TDLS: Configure pairwise key for peer " MACSTR, ++ MAC2STR(peer->addr)); + if (wpa_sm_set_key(sm, alg, peer->addr, -1, 1, + rsc, sizeof(rsc), peer->tpk.tk, key_len) < 0) { + wpa_printf(MSG_WARNING, "TDLS: Failed to set TPK to the " + "driver"); + return -1; + } ++ peer->tk_set = 1; + return 0; + } + +@@ -696,7 +714,7 @@ static void wpa_tdls_peer_clear(struct wpa_sm *sm, struct wpa_tdls_peer *peer) + peer->cipher = 0; + peer->qos_info = 0; + peer->wmm_capable = 0; +- peer->tpk_set = peer->tpk_success = 0; ++ peer->tk_set = peer->tpk_set = peer->tpk_success = 0; + peer->chan_switch_enabled = 0; + os_memset(&peer->tpk, 0, sizeof(peer->tpk)); + os_memset(peer->inonce, 0, WPA_NONCE_LEN); +@@ -1159,6 +1177,7 @@ skip_rsnie: + wpa_tdls_peer_free(sm, peer); + return -1; + } ++ peer->tk_set = 0; /* A new nonce results in a new TK */ + wpa_hexdump(MSG_DEBUG, "TDLS: Initiator Nonce for TPK handshake", + peer->inonce, WPA_NONCE_LEN); + os_memcpy(ftie->Snonce, peer->inonce, WPA_NONCE_LEN); +@@ -1751,6 +1770,19 @@ static int wpa_tdls_addset_peer(struct wpa_sm *sm, struct wpa_tdls_peer *peer, + } + + ++static int tdls_nonce_set(const u8 *nonce) ++{ ++ int i; ++ ++ for (i = 0; i < WPA_NONCE_LEN; i++) { ++ if (nonce[i]) ++ return 1; ++ } ++ ++ return 0; ++} ++ ++ + static int wpa_tdls_process_tpk_m1(struct wpa_sm *sm, const u8 *src_addr, + const u8 *buf, size_t len) + { +@@ -2004,7 +2036,8 @@ skip_rsn: + peer->rsnie_i_len = kde.rsn_ie_len; + peer->cipher = cipher; + +- if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0) { ++ if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0 || ++ !tdls_nonce_set(peer->inonce)) { + /* + * There is no point in updating the RNonce for every obtained + * TPK M1 frame (e.g., retransmission due to timeout) with the +@@ -2020,6 +2053,7 @@ skip_rsn: + "TDLS: Failed to get random data for responder nonce"); + goto error; + } ++ peer->tk_set = 0; /* A new nonce results in a new TK */ + } + + #if 0 +-- +2.7.4 + +Note: [PATCH 7/8] only applies to wpa_supplicant + +From b372ab0b7daea719749194dc554b26e6367603f2 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Fri, 22 Sep 2017 12:06:37 +0300 +Subject: [PATCH 8/8] FT: Do not allow multiple Reassociation Response frames + +The driver is expected to not report a second association event without +the station having explicitly request a new association. As such, this +case should not be reachable. However, since reconfiguring the same +pairwise or group keys to the driver could result in nonce reuse issues, +be extra careful here and do an additional state check to avoid this +even if the local driver ends up somehow accepting an unexpected +Reassociation Response frame. + +Signed-off-by: Jouni Malinen +--- + src/rsn_supp/wpa.c | 3 +++ + src/rsn_supp/wpa_ft.c | 8 ++++++++ + src/rsn_supp/wpa_i.h | 1 + + 3 files changed, 12 insertions(+) + +diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c +index 0550a41..2a53c6f 100644 +--- a/src/rsn_supp/wpa.c ++++ b/src/rsn_supp/wpa.c +@@ -2440,6 +2440,9 @@ void wpa_sm_notify_disassoc(struct wpa_sm *sm) + #ifdef CONFIG_TDLS + wpa_tdls_disassoc(sm); + #endif /* CONFIG_TDLS */ ++#ifdef CONFIG_IEEE80211R ++ sm->ft_reassoc_completed = 0; ++#endif /* CONFIG_IEEE80211R */ + + /* Keys are not needed in the WPA state machine anymore */ + wpa_sm_drop_sa(sm); +diff --git a/src/rsn_supp/wpa_ft.c b/src/rsn_supp/wpa_ft.c +index 205793e..d45bb45 100644 +--- a/src/rsn_supp/wpa_ft.c ++++ b/src/rsn_supp/wpa_ft.c +@@ -153,6 +153,7 @@ static u8 * wpa_ft_gen_req_ies(struct wpa_sm *sm, size_t *len, + u16 capab; + + sm->ft_completed = 0; ++ sm->ft_reassoc_completed = 0; + + buf_len = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) + + 2 + sm->r0kh_id_len + ric_ies_len + 100; +@@ -681,6 +682,11 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies, + return -1; + } + ++ if (sm->ft_reassoc_completed) { ++ wpa_printf(MSG_DEBUG, "FT: Reassociation has already been completed for this FT protocol instance - ignore unexpected retransmission"); ++ return 0; ++ } ++ + if (wpa_ft_parse_ies(ies, ies_len, &parse) < 0) { + wpa_printf(MSG_DEBUG, "FT: Failed to parse IEs"); + return -1; +@@ -781,6 +787,8 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies, + return -1; + } + ++ sm->ft_reassoc_completed = 1; ++ + if (wpa_ft_process_gtk_subelem(sm, parse.gtk, parse.gtk_len) < 0) + return -1; + +diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h +index 41f371f..56f88dc 100644 +--- a/src/rsn_supp/wpa_i.h ++++ b/src/rsn_supp/wpa_i.h +@@ -128,6 +128,7 @@ struct wpa_sm { + size_t r0kh_id_len; + u8 r1kh_id[FT_R1KH_ID_LEN]; + int ft_completed; ++ int ft_reassoc_completed; + int over_the_ds_in_progress; + u8 target_ap[ETH_ALEN]; /* over-the-DS target AP */ + int set_ptk_after_assoc; +-- +2.7.4 diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd_2.2.bb b/meta-oe/recipes-connectivity/hostapd/hostapd_2.2.bb deleted file mode 100644 index b75f2b9a7e1..00000000000 --- a/meta-oe/recipes-connectivity/hostapd/hostapd_2.2.bb +++ /dev/null @@ -1,48 +0,0 @@ -HOMEPAGE = "http://hostap.epitest.fi" -SECTION = "kernel/userland" -LICENSE = "GPLv2 | BSD" -LIC_FILES_CHKSUM = "file://README;md5=0854a4da34ac3990770794d771fac7fd" -DEPENDS = "libnl openssl" -SUMMARY = "User space daemon for extended IEEE 802.11 management" - -inherit update-rc.d systemd -INITSCRIPT_NAME = "hostapd" - -SYSTEMD_SERVICE_${PN} = "hostapd.service" -SYSTEMD_AUTO_ENABLE_${PN} = "disable" - -DEFAULT_PREFERENCE = "-1" - -SRC_URI = " \ - http://hostap.epitest.fi/releases/hostapd-${PV}.tar.gz \ - file://defconfig \ - file://init \ - file://hostapd.service \ -" - -S = "${WORKDIR}/hostapd-${PV}/hostapd" - - -do_configure() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config -} - -do_compile() { - export CFLAGS="-MMD -O2 -Wall -g -I${STAGING_INCDIR}/libnl3" - make -} - -do_install() { - install -d ${D}${sbindir} ${D}${sysconfdir}/init.d ${D}${systemd_unitdir}/system/ - install -m 0644 ${S}/hostapd.conf ${D}${sysconfdir} - install -m 0755 ${S}/hostapd ${D}${sbindir} - install -m 0755 ${S}/hostapd_cli ${D}${sbindir} - install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hostapd - install -m 0644 ${WORKDIR}/hostapd.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/hostapd.service -} - -CONFFILES_${PN} += "${sysconfdir}/hostapd.conf" - -SRC_URI[md5sum] = "23c1f78a693c3288802d516adb7fd289" -SRC_URI[sha256sum] = "f15b6bcb434378860ea5b88dffed7f54d8cb71fff2146de0f006977a5e25a882" diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb b/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb new file mode 100644 index 00000000000..c3a1eadfd8d --- /dev/null +++ b/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb @@ -0,0 +1,48 @@ +HOMEPAGE = "http://w1.fi/hostapd/" +SECTION = "kernel/userland" +LICENSE = "GPLv2 | BSD" +LIC_FILES_CHKSUM = "file://${B}/README;md5=8aa4e8c78b59b12016c4cb2d0a8db350" +DEPENDS = "libnl openssl" +SUMMARY = "User space daemon for extended IEEE 802.11 management" + +inherit update-rc.d systemd +INITSCRIPT_NAME = "hostapd" + +SYSTEMD_SERVICE_${PN} = "hostapd.service" +SYSTEMD_AUTO_ENABLE_${PN} = "disable" + +SRC_URI = " \ + http://w1.fi/releases/hostapd-${PV}.tar.gz \ + file://defconfig \ + file://init \ + file://hostapd.service \ + file://key-replay-cve-multiple.patch \ +" + +S = "${WORKDIR}/hostapd-${PV}" +B = "${WORKDIR}/hostapd-${PV}/hostapd" + +do_configure() { + install -m 0644 ${WORKDIR}/defconfig ${B}/.config +} + +do_compile() { + export CFLAGS="-MMD -O2 -Wall -g -I${STAGING_INCDIR}/libnl3" + make +} + +do_install() { + install -d ${D}${sbindir} ${D}${sysconfdir}/init.d ${D}${systemd_unitdir}/system/ + install -m 0644 ${B}/hostapd.conf ${D}${sysconfdir} + install -m 0755 ${B}/hostapd ${D}${sbindir} + install -m 0755 ${B}/hostapd_cli ${D}${sbindir} + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hostapd + install -m 0644 ${WORKDIR}/hostapd.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/hostapd.service +} + +CONFFILES_${PN} += "${sysconfdir}/hostapd.conf" + +SRC_URI[md5sum] = "eaa56dce9bd8f1d195eb62596eab34c7" +SRC_URI[sha256sum] = "01526b90c1d23bec4b0f052039cc4456c2fd19347b4d830d1d58a0a6aea7117d" + diff --git a/meta-oe/recipes-connectivity/irssi/irssi_0.8.16-rc1.bb b/meta-oe/recipes-connectivity/irssi/irssi_0.8.16-rc1.bb deleted file mode 100644 index 54d881d1c9f..00000000000 --- a/meta-oe/recipes-connectivity/irssi/irssi_0.8.16-rc1.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "ncurses IRC client" -DESCRIPTION = "Irssi is an ncurses IRC client" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8" - -DEPENDS = "glib-2.0 ncurses openssl" - -REALPV = "0.8.16-rc1" -PV = "0.8.15+${REALPV}" - -SRC_URI = "http://irssi.org/files/irssi-${REALPV}.tar.gz" - -SRC_URI[md5sum] = "769fec4df8e633c583c411ccd2cd563a" -SRC_URI[sha256sum] = "bb6c0125db30b697f80837941c17372b7484c64d57a6920b8bfa7ee3def92de3" - -S = "${WORKDIR}/irssi-${REALPV}" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--enable-ssl \ - --with-ncurses=${STAGING_EXECPREFIXDIR} \ -" diff --git a/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb b/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb new file mode 100644 index 00000000000..10b04bb5246 --- /dev/null +++ b/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb @@ -0,0 +1,18 @@ +SUMMARY = "ncurses IRC client" +DESCRIPTION = "Irssi is an ncurses IRC client" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8" + +DEPENDS = "glib-2.0 ncurses openssl" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz" +SRC_URI[md5sum] = "46d4ac2a7ab472e5dc800e5d7bd9a879" +SRC_URI[sha256sum] = "b85c07dbafe178213eccdc69f5f8f0ac024dea01c67244668f91ec1c06b986ca" + +inherit autotools pkgconfig + +EXTRA_OECONF += "--with-textui \ + --with-proxy \ + --with-bot \ + --with-perl=no \ + --enable-true-color" diff --git a/meta-oe/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch b/meta-oe/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch deleted file mode 100644 index e64dd0ad91a..00000000000 --- a/meta-oe/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 5310abba864cfe3a8b65af130729447604190b29 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 29 Nov 2011 17:03:27 +0100 -Subject: [PATCH] iw: version.sh: don't use git describe for versioning - -It will detect top-level git repositories like the Angstrom setup-scripts and break. - -Upstream-Status: Unknown - -Signed-off-by: Koen Kooi ---- - version.sh | 16 +--------------- - 1 file changed, 1 insertion(+), 15 deletions(-) - -diff --git a/version.sh b/version.sh -index 11d124b..5d423c4 100755 ---- a/version.sh -+++ b/version.sh -@@ -3,21 +3,7 @@ - VERSION="3.15" - OUT="$1" - --if [ -d .git ] && head=`git rev-parse --verify HEAD 2>/dev/null`; then -- git update-index --refresh --unmerged > /dev/null -- descr=$(git describe) -- -- # on git builds check that the version number above -- # is correct... -- [ "${descr%%-*}" = "v$VERSION" ] || exit 2 -- -- v="${descr#v}" -- if git diff-index --name-only HEAD | read dummy ; then -- v="$v"-dirty -- fi --else -- v="$VERSION" --fi -+v="$VERSION" - - echo '#include "iw.h"' > "$OUT" - echo "const char iw_version[] = \"$v\";" >> "$OUT" --- -1.7.7.3 diff --git a/meta-oe/recipes-connectivity/iw/iw_3.15.bb b/meta-oe/recipes-connectivity/iw/iw_3.15.bb deleted file mode 100644 index 7800e905eea..00000000000 --- a/meta-oe/recipes-connectivity/iw/iw_3.15.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "nl80211 based CLI configuration utility for wireless devices" -DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \ -wireless devices. It supports almost all new drivers that have been added \ -to the kernel recently. " -HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw" -SECTION = "base" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774" - -DEPENDS = "libnl pkgconfig" - -SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \ - file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \ -" - -SRC_URI[md5sum] = "ebb16e6c29b075e3a58b99552583fd79" -SRC_URI[sha256sum] = "1223ebab68dc337f16ed80c45af37b78f112ea091e919eafe96a4cbd63942081" - -EXTRA_OEMAKE = "" - -do_install() { - oe_runmake DESTDIR=${D} install -} diff --git a/meta-oe/recipes-connectivity/krb5/krb5/0001-Return-only-new-keys-in-randkey-CVE-2014-5351.patch b/meta-oe/recipes-connectivity/krb5/krb5/0001-Return-only-new-keys-in-randkey-CVE-2014-5351.patch deleted file mode 100644 index 08526610aa0..00000000000 --- a/meta-oe/recipes-connectivity/krb5/krb5/0001-Return-only-new-keys-in-randkey-CVE-2014-5351.patch +++ /dev/null @@ -1,92 +0,0 @@ -From af0ed4df4dfae762ab5fb605f5a0c8f59cb4f6ca Mon Sep 17 00:00:00 2001 -From: Greg Hudson -Date: Thu, 21 Aug 2014 13:52:07 -0400 -Subject: [PATCH] Return only new keys in randkey [CVE-2014-5351] - -In kadmind's randkey operation, if a client specifies the keepold -flag, do not include the preserved old keys in the response. - -CVE-2014-5351: - -An authenticated remote attacker can retrieve the current keys for a -service principal when generating a new set of keys for that -principal. The attacker needs to be authenticated as a user who has -the elevated privilege for randomizing the keys of other principals. - -Normally, when a Kerberos administrator randomizes the keys of a -service principal, kadmind returns only the new keys. This prevents -an administrator who lacks legitimate privileged access to a service -from forging tickets to authenticate to that service. If the -"keepold" flag to the kadmin randkey RPC operation is true, kadmind -retains the old keys in the KDC database as intended, but also -unexpectedly returns the old keys to the client, which exposes the -service to ticket forgery attacks from the administrator. - -A mitigating factor is that legitimate clients of the affected service -will start failing to authenticate to the service once they begin to -receive service tickets encrypted in the new keys. The affected -service will be unable to decrypt the newly issued tickets, possibly -alerting the legitimate administrator of the affected service. - -CVSSv2: AV:N/AC:H/Au:S/C:P/I:N/A:N/E:POC/RL:OF/RC:C - -[tlyu@mit.edu: CVE description and CVSS score] - -ticket: 8018 (new) -target_version: 1.13 -tags: pullup - -Upstream-Status: Backport ---- - src/lib/kadm5/srv/svr_principal.c | 21 ++++++++++++++++++--- - 1 files changed, 18 insertions(+), 3 deletions(-) - -diff --git a/lib/kadm5/srv/svr_principal.c b/lib/kadm5/srv/svr_principal.c -index 5d358bd..d4e74cc 100644 ---- a/lib/kadm5/srv/svr_principal.c -+++ b/lib/kadm5/srv/svr_principal.c -@@ -344,6 +344,20 @@ check_1_6_dummy(kadm5_principal_ent_t entry, long mask, - *passptr = NULL; - } - -+/* Return the number of keys with the newest kvno. Assumes that all key data -+ * with the newest kvno are at the front of the key data array. */ -+static int -+count_new_keys(int n_key_data, krb5_key_data *key_data) -+{ -+ int n; -+ -+ for (n = 1; n < n_key_data; n++) { -+ if (key_data[n - 1].key_data_kvno != key_data[n].key_data_kvno) -+ return n; -+ } -+ return n_key_data; -+} -+ - kadm5_ret_t - kadm5_create_principal(void *server_handle, - kadm5_principal_ent_t entry, long mask, -@@ -1593,7 +1607,7 @@ kadm5_randkey_principal_3(void *server_handle, - osa_princ_ent_rec adb; - krb5_int32 now; - kadm5_policy_ent_rec pol; -- int ret, last_pwd; -+ int ret, last_pwd, n_new_keys; - krb5_boolean have_pol = FALSE; - kadm5_server_handle_t handle = server_handle; - krb5_keyblock *act_mkey; -@@ -1686,8 +1700,9 @@ kadm5_randkey_principal_3(void *server_handle, - kdb->fail_auth_count = 0; - - if (keyblocks) { -- ret = decrypt_key_data(handle->context, -- kdb->n_key_data, kdb->key_data, -+ /* Return only the new keys added by krb5_dbe_crk. */ -+ n_new_keys = count_new_keys(kdb->n_key_data, kdb->key_data); -+ ret = decrypt_key_data(handle->context, n_new_keys, kdb->key_data, - keyblocks, n_keys); - if (ret) - goto done; --- -1.7.4.1 - diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2017-11462.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2017-11462.patch new file mode 100644 index 00000000000..4b82f02977a --- /dev/null +++ b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2017-11462.patch @@ -0,0 +1,419 @@ +From 56f7b1bc95a2a3eeb420e069e7655fb181ade5cf Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Fri, 14 Jul 2017 13:02:46 -0400 +Subject: [PATCH] Preserve GSS context on init/accept failure + +After gss_init_sec_context() or gss_accept_sec_context() has created a +context, don't delete the mechglue context on failures from subsequent +calls, even if the mechanism deletes the mech-specific context (which +is allowed by RFC 2744 but not preferred). Check for union contexts +with no mechanism context in each GSS function which accepts a +gss_ctx_id_t. + +CVE-2017-11462: + +RFC 2744 permits a GSS-API implementation to delete an existing +security context on a second or subsequent call to +gss_init_sec_context() or gss_accept_sec_context() if the call results +in an error. This API behavior has been found to be dangerous, +leading to the possibility of memory errors in some callers. For +safety, GSS-API implementations should instead preserve existing +security contexts on error until the caller deletes them. + +All versions of MIT krb5 prior to this change may delete acceptor +contexts on error. Versions 1.13.4 through 1.13.7, 1.14.1 through +1.14.5, and 1.15 through 1.15.1 may also delete initiator contexts on +error. + +ticket: 8598 (new) +target_version: 1.15-next +target_version: 1.14-next +tags: pullup + +Upstream-Status: Backport +CVE: CVE-2017-11462 + +Signed-off-by: Catalin Enache +--- + src/lib/gssapi/mechglue/g_accept_sec_context.c | 22 +++++++++++++++------- + src/lib/gssapi/mechglue/g_complete_auth_token.c | 2 ++ + src/lib/gssapi/mechglue/g_context_time.c | 2 ++ + src/lib/gssapi/mechglue/g_delete_sec_context.c | 14 ++++++++------ + src/lib/gssapi/mechglue/g_exp_sec_context.c | 2 ++ + src/lib/gssapi/mechglue/g_init_sec_context.c | 19 +++++++++++-------- + src/lib/gssapi/mechglue/g_inq_context.c | 2 ++ + src/lib/gssapi/mechglue/g_prf.c | 2 ++ + src/lib/gssapi/mechglue/g_process_context.c | 2 ++ + src/lib/gssapi/mechglue/g_seal.c | 4 ++++ + src/lib/gssapi/mechglue/g_sign.c | 2 ++ + src/lib/gssapi/mechglue/g_unseal.c | 2 ++ + src/lib/gssapi/mechglue/g_unwrap_aead.c | 2 ++ + src/lib/gssapi/mechglue/g_unwrap_iov.c | 4 ++++ + src/lib/gssapi/mechglue/g_verify.c | 2 ++ + src/lib/gssapi/mechglue/g_wrap_aead.c | 2 ++ + src/lib/gssapi/mechglue/g_wrap_iov.c | 8 ++++++++ + 17 files changed, 72 insertions(+), 21 deletions(-) + +diff --git a/src/lib/gssapi/mechglue/g_accept_sec_context.c b/src/lib/gssapi/mechglue/g_accept_sec_context.c +index ddaf874..f28e2b1 100644 +--- a/src/lib/gssapi/mechglue/g_accept_sec_context.c ++++ b/src/lib/gssapi/mechglue/g_accept_sec_context.c +@@ -216,6 +216,8 @@ gss_cred_id_t * d_cred; + } else { + union_ctx_id = (gss_union_ctx_id_t)*context_handle; + selected_mech = union_ctx_id->mech_type; ++ if (union_ctx_id->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + } + + /* Now create a new context if we didn't get one. */ +@@ -234,9 +236,6 @@ gss_cred_id_t * d_cred; + free(union_ctx_id); + return (status); + } +- +- /* set the new context handle to caller's data */ +- *context_handle = (gss_ctx_id_t)union_ctx_id; + } + + /* +@@ -277,8 +276,10 @@ gss_cred_id_t * d_cred; + d_cred ? &tmp_d_cred : NULL); + + /* If there's more work to do, keep going... */ +- if (status == GSS_S_CONTINUE_NEEDED) ++ if (status == GSS_S_CONTINUE_NEEDED) { ++ *context_handle = (gss_ctx_id_t)union_ctx_id; + return GSS_S_CONTINUE_NEEDED; ++ } + + /* if the call failed, return with failure */ + if (status != GSS_S_COMPLETE) { +@@ -364,14 +365,22 @@ gss_cred_id_t * d_cred; + *mech_type = gssint_get_public_oid(actual_mech); + if (ret_flags != NULL) + *ret_flags = temp_ret_flags; +- return (status); ++ *context_handle = (gss_ctx_id_t)union_ctx_id; ++ return GSS_S_COMPLETE; + } else { + + status = GSS_S_BAD_MECH; + } + + error_out: +- if (union_ctx_id) { ++ /* ++ * RFC 2744 5.1 requires that we not create a context on a failed first ++ * call to accept, and recommends that on a failed subsequent call we ++ * make the caller responsible for calling gss_delete_sec_context. ++ * Even if the mech deleted its context, keep the union context around ++ * for the caller to delete. ++ */ ++ if (union_ctx_id && *context_handle == GSS_C_NO_CONTEXT) { + if (union_ctx_id->mech_type) { + if (union_ctx_id->mech_type->elements) + free(union_ctx_id->mech_type->elements); +@@ -384,7 +393,6 @@ error_out: + GSS_C_NO_BUFFER); + } + free(union_ctx_id); +- *context_handle = GSS_C_NO_CONTEXT; + } + + if (src_name) +diff --git a/src/lib/gssapi/mechglue/g_complete_auth_token.c b/src/lib/gssapi/mechglue/g_complete_auth_token.c +index 9181551..4bcb47e 100644 +--- a/src/lib/gssapi/mechglue/g_complete_auth_token.c ++++ b/src/lib/gssapi/mechglue/g_complete_auth_token.c +@@ -52,6 +52,8 @@ gss_complete_auth_token (OM_uint32 *minor_status, + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech != NULL) { +diff --git a/src/lib/gssapi/mechglue/g_context_time.c b/src/lib/gssapi/mechglue/g_context_time.c +index 2ff8d09..c947e76 100644 +--- a/src/lib/gssapi/mechglue/g_context_time.c ++++ b/src/lib/gssapi/mechglue/g_context_time.c +@@ -58,6 +58,8 @@ OM_uint32 * time_rec; + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +diff --git a/src/lib/gssapi/mechglue/g_delete_sec_context.c b/src/lib/gssapi/mechglue/g_delete_sec_context.c +index 4bf0dec..574ff02 100644 +--- a/src/lib/gssapi/mechglue/g_delete_sec_context.c ++++ b/src/lib/gssapi/mechglue/g_delete_sec_context.c +@@ -87,12 +87,14 @@ gss_buffer_t output_token; + if (GSSINT_CHK_LOOP(ctx)) + return (GSS_S_CALL_INACCESSIBLE_READ | GSS_S_NO_CONTEXT); + +- status = gssint_delete_internal_sec_context(minor_status, +- ctx->mech_type, +- &ctx->internal_ctx_id, +- output_token); +- if (status) +- return status; ++ if (ctx->internal_ctx_id != GSS_C_NO_CONTEXT) { ++ status = gssint_delete_internal_sec_context(minor_status, ++ ctx->mech_type, ++ &ctx->internal_ctx_id, ++ output_token); ++ if (status) ++ return status; ++ } + + /* now free up the space for the union context structure */ + free(ctx->mech_type->elements); +diff --git a/src/lib/gssapi/mechglue/g_exp_sec_context.c b/src/lib/gssapi/mechglue/g_exp_sec_context.c +index b637452..1d7990b 100644 +--- a/src/lib/gssapi/mechglue/g_exp_sec_context.c ++++ b/src/lib/gssapi/mechglue/g_exp_sec_context.c +@@ -95,6 +95,8 @@ gss_buffer_t interprocess_token; + */ + + ctx = (gss_union_ctx_id_t) *context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + if (!mech) + return GSS_S_BAD_MECH; +diff --git a/src/lib/gssapi/mechglue/g_init_sec_context.c b/src/lib/gssapi/mechglue/g_init_sec_context.c +index 9f154b8..e2df1ce 100644 +--- a/src/lib/gssapi/mechglue/g_init_sec_context.c ++++ b/src/lib/gssapi/mechglue/g_init_sec_context.c +@@ -192,8 +192,13 @@ OM_uint32 * time_rec; + + /* copy the supplied context handle */ + union_ctx_id->internal_ctx_id = GSS_C_NO_CONTEXT; +- } else ++ } else { + union_ctx_id = (gss_union_ctx_id_t)*context_handle; ++ if (union_ctx_id->internal_ctx_id == GSS_C_NO_CONTEXT) { ++ status = GSS_S_NO_CONTEXT; ++ goto end; ++ } ++ } + + /* + * get the appropriate cred handle from the union cred struct. +@@ -224,15 +229,13 @@ OM_uint32 * time_rec; + + if (status != GSS_S_COMPLETE && status != GSS_S_CONTINUE_NEEDED) { + /* +- * The spec says the preferred method is to delete all context info on +- * the first call to init, and on all subsequent calls make the caller +- * responsible for calling gss_delete_sec_context. However, if the +- * mechanism decided to delete the internal context, we should also +- * delete the union context. ++ * RFC 2744 5.19 requires that we not create a context on a failed ++ * first call to init, and recommends that on a failed subsequent call ++ * we make the caller responsible for calling gss_delete_sec_context. ++ * Even if the mech deleted its context, keep the union context around ++ * for the caller to delete. + */ + map_error(minor_status, mech); +- if (union_ctx_id->internal_ctx_id == GSS_C_NO_CONTEXT) +- *context_handle = GSS_C_NO_CONTEXT; + if (*context_handle == GSS_C_NO_CONTEXT) { + free(union_ctx_id->mech_type->elements); + free(union_ctx_id->mech_type); +diff --git a/src/lib/gssapi/mechglue/g_inq_context.c b/src/lib/gssapi/mechglue/g_inq_context.c +index 6f1c71e..6c0d98d 100644 +--- a/src/lib/gssapi/mechglue/g_inq_context.c ++++ b/src/lib/gssapi/mechglue/g_inq_context.c +@@ -104,6 +104,8 @@ gss_inquire_context( + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (!mech || !mech->gss_inquire_context || !mech->gss_display_name || +diff --git a/src/lib/gssapi/mechglue/g_prf.c b/src/lib/gssapi/mechglue/g_prf.c +index fcca3e4..9e168ad 100644 +--- a/src/lib/gssapi/mechglue/g_prf.c ++++ b/src/lib/gssapi/mechglue/g_prf.c +@@ -59,6 +59,8 @@ gss_pseudo_random (OM_uint32 *minor_status, + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech != NULL) { +diff --git a/src/lib/gssapi/mechglue/g_process_context.c b/src/lib/gssapi/mechglue/g_process_context.c +index bc260ae..3968b5d 100644 +--- a/src/lib/gssapi/mechglue/g_process_context.c ++++ b/src/lib/gssapi/mechglue/g_process_context.c +@@ -61,6 +61,8 @@ gss_buffer_t token_buffer; + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +diff --git a/src/lib/gssapi/mechglue/g_seal.c b/src/lib/gssapi/mechglue/g_seal.c +index f17241c..3db1ee0 100644 +--- a/src/lib/gssapi/mechglue/g_seal.c ++++ b/src/lib/gssapi/mechglue/g_seal.c +@@ -92,6 +92,8 @@ gss_wrap( OM_uint32 *minor_status, + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +@@ -226,6 +228,8 @@ gss_wrap_size_limit(OM_uint32 *minor_status, + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (!mech) +diff --git a/src/lib/gssapi/mechglue/g_sign.c b/src/lib/gssapi/mechglue/g_sign.c +index 86d641a..03fbd8c 100644 +--- a/src/lib/gssapi/mechglue/g_sign.c ++++ b/src/lib/gssapi/mechglue/g_sign.c +@@ -94,6 +94,8 @@ gss_buffer_t msg_token; + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +diff --git a/src/lib/gssapi/mechglue/g_unseal.c b/src/lib/gssapi/mechglue/g_unseal.c +index 3e8053c..c208635 100644 +--- a/src/lib/gssapi/mechglue/g_unseal.c ++++ b/src/lib/gssapi/mechglue/g_unseal.c +@@ -76,6 +76,8 @@ gss_qop_t * qop_state; + * call it. + */ + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +diff --git a/src/lib/gssapi/mechglue/g_unwrap_aead.c b/src/lib/gssapi/mechglue/g_unwrap_aead.c +index e78bff2..0682bd8 100644 +--- a/src/lib/gssapi/mechglue/g_unwrap_aead.c ++++ b/src/lib/gssapi/mechglue/g_unwrap_aead.c +@@ -186,6 +186,8 @@ gss_qop_t *qop_state; + * call it. + */ + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (!mech) +diff --git a/src/lib/gssapi/mechglue/g_unwrap_iov.c b/src/lib/gssapi/mechglue/g_unwrap_iov.c +index c0dd314..599be2c 100644 +--- a/src/lib/gssapi/mechglue/g_unwrap_iov.c ++++ b/src/lib/gssapi/mechglue/g_unwrap_iov.c +@@ -89,6 +89,8 @@ int iov_count; + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +@@ -128,6 +130,8 @@ gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, + + /* Select the approprate underlying mechanism routine and call it. */ + ctx = (gss_union_ctx_id_t)context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; + mech = gssint_get_mechanism(ctx->mech_type); + if (mech == NULL) + return GSS_S_BAD_MECH; +diff --git a/src/lib/gssapi/mechglue/g_verify.c b/src/lib/gssapi/mechglue/g_verify.c +index 1578ae1..8996fce 100644 +--- a/src/lib/gssapi/mechglue/g_verify.c ++++ b/src/lib/gssapi/mechglue/g_verify.c +@@ -65,6 +65,8 @@ gss_qop_t * qop_state; + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +diff --git a/src/lib/gssapi/mechglue/g_wrap_aead.c b/src/lib/gssapi/mechglue/g_wrap_aead.c +index 96cdf3c..7fe3b7b 100644 +--- a/src/lib/gssapi/mechglue/g_wrap_aead.c ++++ b/src/lib/gssapi/mechglue/g_wrap_aead.c +@@ -256,6 +256,8 @@ gss_buffer_t output_message_buffer; + * call it. + */ + ctx = (gss_union_ctx_id_t)context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + if (!mech) + return (GSS_S_BAD_MECH); +diff --git a/src/lib/gssapi/mechglue/g_wrap_iov.c b/src/lib/gssapi/mechglue/g_wrap_iov.c +index 40cd98f..14447c4 100644 +--- a/src/lib/gssapi/mechglue/g_wrap_iov.c ++++ b/src/lib/gssapi/mechglue/g_wrap_iov.c +@@ -93,6 +93,8 @@ int iov_count; + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +@@ -151,6 +153,8 @@ int iov_count; + */ + + ctx = (gss_union_ctx_id_t) context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); + mech = gssint_get_mechanism (ctx->mech_type); + + if (mech) { +@@ -190,6 +194,8 @@ gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, + + /* Select the approprate underlying mechanism routine and call it. */ + ctx = (gss_union_ctx_id_t)context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; + mech = gssint_get_mechanism(ctx->mech_type); + if (mech == NULL) + return GSS_S_BAD_MECH; +@@ -218,6 +224,8 @@ gss_get_mic_iov_length(OM_uint32 *minor_status, gss_ctx_id_t context_handle, + + /* Select the approprate underlying mechanism routine and call it. */ + ctx = (gss_union_ctx_id_t)context_handle; ++ if (ctx->internal_ctx_id == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; + mech = gssint_get_mechanism(ctx->mech_type); + if (mech == NULL) + return GSS_S_BAD_MECH; +-- +2.10.2 + diff --git a/meta-oe/recipes-connectivity/krb5/krb5/fix-CVE-2017-11368.patch b/meta-oe/recipes-connectivity/krb5/krb5/fix-CVE-2017-11368.patch new file mode 100644 index 00000000000..a2eb7bc0277 --- /dev/null +++ b/meta-oe/recipes-connectivity/krb5/krb5/fix-CVE-2017-11368.patch @@ -0,0 +1,116 @@ +Upstream-Status: Backport [https://github.com/krb5/krb5/commit/ffb35baac6981f9e8914f8f3bffd37f284b85970] + +Backport patch to fix CVE-2017-11368. + +Signed-off-by: Kai Kang +--- +From ffb35baac6981f9e8914f8f3bffd37f284b85970 Mon Sep 17 00:00:00 2001 +From: Greg Hudson +Date: Thu, 13 Jul 2017 12:14:20 -0400 +Subject: [PATCH] Prevent KDC unset status assertion failures + +Assign status values if S4U2Self padata fails to decode, if an +S4U2Proxy request uses invalid KDC options, or if an S4U2Proxy request +uses an evidence ticket which does not match the canonicalized request +server principal name. Reported by Samuel Cabrero. + +If a status value is not assigned during KDC processing, default to +"UNKNOWN_REASON" rather than failing an assertion. This change will +prevent future denial of service bugs due to similar mistakes, and +will allow us to omit assigning status values for unlikely errors such +as small memory allocation failures. + +CVE-2017-11368: + +In MIT krb5 1.7 and later, an authenticated attacker can cause an +assertion failure in krb5kdc by sending an invalid S4U2Self or +S4U2Proxy request. + + CVSSv3 Vector: AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H/E:H/RL:O/RC:C + +ticket: 8599 (new) +target_version: 1.15-next +target_version: 1.14-next +tags: pullup +--- + src/kdc/do_as_req.c | 4 ++-- + src/kdc/do_tgs_req.c | 3 ++- + src/kdc/kdc_util.c | 10 ++++++++-- + 3 files changed, 12 insertions(+), 5 deletions(-) + +diff --git a/src/kdc/do_as_req.c b/src/kdc/do_as_req.c +index 2d3ad13..9b256c8 100644 +--- a/src/kdc/do_as_req.c ++++ b/src/kdc/do_as_req.c +@@ -366,8 +366,8 @@ finish_process_as_req(struct as_req_state *state, krb5_error_code errcode) + did_log = 1; + + egress: +- if (errcode != 0) +- assert (state->status != 0); ++ if (errcode != 0 && state->status == NULL) ++ state->status = "UNKNOWN_REASON"; + + au_state->status = state->status; + au_state->reply = &state->reply; +diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c +index cdc79ad..d8d6719 100644 +--- a/src/kdc/do_tgs_req.c ++++ b/src/kdc/do_tgs_req.c +@@ -823,7 +823,8 @@ process_tgs_req(struct server_handle *handle, krb5_data *pkt, + free(reply.enc_part.ciphertext.data); + + cleanup: +- assert(status != NULL); ++ if (status == NULL) ++ status = "UNKNOWN_REASON"; + if (reply_key) + krb5_free_keyblock(kdc_context, reply_key); + if (errcode) +diff --git a/src/kdc/kdc_util.c b/src/kdc/kdc_util.c +index 778a629..b710aef 100644 +--- a/src/kdc/kdc_util.c ++++ b/src/kdc/kdc_util.c +@@ -1220,8 +1220,10 @@ kdc_process_for_user(kdc_realm_t *kdc_active_realm, + req_data.data = (char *)pa_data->contents; + + code = decode_krb5_pa_for_user(&req_data, &for_user); +- if (code) ++ if (code) { ++ *status = "DECODE_PA_FOR_USER"; + return code; ++ } + + code = verify_for_user_checksum(kdc_context, tgs_session, for_user); + if (code) { +@@ -1320,8 +1322,10 @@ kdc_process_s4u_x509_user(krb5_context context, + req_data.data = (char *)pa_data->contents; + + code = decode_krb5_pa_s4u_x509_user(&req_data, s4u_x509_user); +- if (code) ++ if (code) { ++ *status = "DECODE_PA_S4U_X509_USER"; + return code; ++ } + + code = verify_s4u_x509_user_checksum(context, + tgs_subkey ? tgs_subkey : +@@ -1624,6 +1628,7 @@ kdc_process_s4u2proxy_req(kdc_realm_t *kdc_active_realm, + * that is validated previously in validate_tgs_request(). + */ + if (request->kdc_options & (NON_TGT_OPTION | KDC_OPT_ENC_TKT_IN_SKEY)) { ++ *status = "INVALID_S4U2PROXY_OPTIONS"; + return KRB5KDC_ERR_BADOPTION; + } + +@@ -1631,6 +1636,7 @@ kdc_process_s4u2proxy_req(kdc_realm_t *kdc_active_realm, + if (!krb5_principal_compare(kdc_context, + server->princ, /* after canon */ + server_princ)) { ++ *status = "EVIDENCE_TICKET_MISMATCH"; + return KRB5KDC_ERR_SERVER_NOMATCH; + } + +-- +2.10.1 + diff --git a/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service b/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service new file mode 100644 index 00000000000..1b4271643e0 --- /dev/null +++ b/meta-oe/recipes-connectivity/krb5/krb5/krb5-admin-server.service @@ -0,0 +1,14 @@ +[Unit] +Description=MIT Kerberos KDC administrative daemon +After=syslog.target network.target +ConditionPathExists=/etc/krb5.conf + +[Service] +Type=forking +ExecStartPre=/bin/sh -c "test ! -f /var/log/kadmind.log || test ! -x /sbin/restorecon || /sbin/restorecon -F /var/log/kadmind.log" +ExecStart=/usr/sbin/kadmind +SuccessExitStatus=1 2 SIGKILL +TimeoutStopSec=30 + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service b/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service new file mode 100644 index 00000000000..d5e5a957943 --- /dev/null +++ b/meta-oe/recipes-connectivity/krb5/krb5/krb5-kdc.service @@ -0,0 +1,13 @@ +[Unit] +Description=MIT Kerberos KDC +After=syslog.target network.target +ConditionPathExists=/etc/krb5.conf + +[Service] +Type=forking +ExecStart=/usr/sbin/krb5kdc +SuccessExitStatus=1 2 SIGKILL +TimeoutStopSec=30 + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.12.2.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.12.2.bb deleted file mode 100644 index c492496b64d..00000000000 --- a/meta-oe/recipes-connectivity/krb5/krb5_1.12.2.bb +++ /dev/null @@ -1,80 +0,0 @@ -SUMMARY = "A network authentication protocol" -DESCRIPTION = "Kerberos is a system for authenticating users and services on a network. \ - Kerberos is a trusted third-party service. That means that there is a \ - third party (the Kerberos server) that is trusted by all the entities on \ - the network (users and services, usually called "principals"). \ - . \ - This is the MIT reference implementation of Kerberos V5. \ - . \ - This package contains the Kerberos key server (KDC). The KDC manages all \ - authentication credentials for a Kerberos realm, holds the master keys \ - for the realm, and responds to authentication requests. This package \ - should be installed on both master and slave KDCs." - -HOMEPAGE = "http://web.mit.edu/Kerberos/" -SECTION = "console/network" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=450c80c6258ce03387bd09df37638ebc" -DEPENDS = "ncurses util-linux e2fsprogs e2fsprogs-native" - -inherit autotools-brokensep binconfig perlnative - -SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" -SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}-signed.tar \ - file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \ - file://0001-Return-only-new-keys-in-randkey-CVE-2014-5351.patch \ - file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \ - file://crosscompile_nm.patch \ - file://etc/init.d/krb5-kdc \ - file://etc/init.d/krb5-admin-server \ - file://etc/default/krb5-kdc \ - file://etc/default/krb5-admin-server \ -" -SRC_URI[md5sum] = "357f1312b7720a0a591e22db0f7829fe" -SRC_URI[sha256sum] = "09bd180107b5c2b3b7378c57c023fb02a103d4cac39d6f2dd600275d7a4f3744" - -S = "${WORKDIR}/${BP}/src/" - -PACKAGECONFIG ??= "openssl" -PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit" -PACKAGECONFIG[openssl] = "--with-pkinit-crypto-impl=openssl,,openssl" -PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils" -PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" -PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" - -EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath" -CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \ - ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \ - ac_cv_file__etc_TIMEZONE=no" - -CFLAGS_append += "-DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et" -LDFLAGS_append += "-lpthread" - -FILES_${PN} += "${datadir}/gnats" -FILES_${PN}-doc += "${datadir}/examples" -FILES_${PN}-dbg += "${libdir}/krb5/plugins/*/.debug" - -# As this recipe doesn't inherit update-rc.d, we need to add this dependency here -RDEPENDS_${PN} += "initscripts-functions" - -krb5_do_unpack() { - # ${P}-signed.tar contains ${P}.tar.gz.asc and ${P}.tar.gz - tar xzf ${WORKDIR}/${BP}.tar.gz -C ${WORKDIR}/ -} - -python do_unpack() { - bb.build.exec_func('base_do_unpack', d) - bb.build.exec_func('krb5_do_unpack', d) -} - -do_configure() { - gnu-configize --force - autoreconf - oe_runconf -} - -do_install_append() { - mkdir -p ${D}/etc/init.d ${D}/etc/default - install -m 0755 ${WORKDIR}/etc/init.d/* ${D}/etc/init.d - install -m 0644 ${WORKDIR}/etc/default/* ${D}/etc/default -} diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.15.1.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.15.1.bb new file mode 100644 index 00000000000..e75e8613876 --- /dev/null +++ b/meta-oe/recipes-connectivity/krb5/krb5_1.15.1.bb @@ -0,0 +1,184 @@ +SUMMARY = "A network authentication protocol" +DESCRIPTION = "Kerberos is a system for authenticating users and services on a network. \ + Kerberos is a trusted third-party service. That means that there is a \ + third party (the Kerberos server) that is trusted by all the entities on \ + the network (users and services, usually called "principals"). \ + . \ + This is the MIT reference implementation of Kerberos V5. \ + . \ + This package contains the Kerberos key server (KDC). The KDC manages all \ + authentication credentials for a Kerberos realm, holds the master keys \ + for the realm, and responds to authentication requests. This package \ + should be installed on both master and slave KDCs." + +HOMEPAGE = "http://web.mit.edu/Kerberos/" +SECTION = "console/network" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=3e12b8a065cca25dfdcac734fb3ec0b9" +DEPENDS = "ncurses util-linux e2fsprogs e2fsprogs-native" + +inherit autotools-brokensep binconfig perlnative systemd update-rc.d + +SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" +SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \ + file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \ + file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \ + file://crosscompile_nm.patch \ + file://etc/init.d/krb5-kdc \ + file://etc/init.d/krb5-admin-server \ + file://etc/default/krb5-kdc \ + file://etc/default/krb5-admin-server \ + file://krb5-kdc.service \ + file://krb5-admin-server.service \ + file://fix-CVE-2017-11368.patch;striplevel=2 \ + file://CVE-2017-11462.patch;striplevel=2 \ +" +SRC_URI[md5sum] = "8022f3a1cde8463e44fd35ef42731f85" +SRC_URI[sha256sum] = "437c8831ddd5fde2a993fef425dedb48468109bb3d3261ef838295045a89eb45" + +CVE_PRODUCT = "kerberos" + +S = "${WORKDIR}/${BP}/src" + +PACKAGECONFIG ??= "openssl" +PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit" +PACKAGECONFIG[openssl] = "--with-pkinit-crypto-impl=openssl,,openssl" +PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils" +PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" +PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" + +EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath" +CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \ + ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \ + ac_cv_file__etc_TIMEZONE=no" + +CFLAGS_append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et" +LDFLAGS_append = " -pthread" + +do_configure() { + gnu-configize --force + autoreconf + oe_runconf +} + +do_install_append() { + rm -rf ${D}/${localstatedir}/run + rm -f ${D}${bindir}/sclient + rm -f ${D}${bindir}/sim_client + rm -f ${D}${bindir}/uuclient + rm -f ${D}${sbindir}/krb5-send-pr + rm -f ${D}${sbindir}/sim_server + rm -f ${D}${sbindir}/sserver + rm -f ${D}${sbindir}/uuserver + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + mkdir -p ${D}/${sysconfdir}/init.d ${D}/${sysconfdir}/default + install -m 0755 ${WORKDIR}/etc/init.d/* ${D}/${sysconfdir}/init.d + install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default + + mkdir -p ${D}/${sysconfdir}/default/volatiles + echo "d root root 0755 ${localstatedir}/run/krb5kdc none" \ + > ${D}${sysconfdir}/default/volatiles/87_krb5 + fi + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/krb5kdc - - - -" \ + > ${D}${sysconfdir}/tmpfiles.d/krb5.conf + + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/krb5-admin-server.service ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/krb5-kdc.service ${D}${systemd_system_unitdir} + fi +} + +PACKAGES =+ "${PN}-admin-server \ + ${PN}-gss-samples \ + ${PN}-k5tls \ + ${PN}-kdc \ + ${PN}-kdc-ldap \ + ${PN}-kpropd \ + ${PN}-otp \ + ${PN}-pkinit \ + ${PN}-user \ + libgssapi-krb5 \ + libgssrpc \ + libk5crypto \ + libkadm5clnt-mit \ + libkadm5srv-mit \ + libkdb5 \ + libkrad \ + libkrb5 \ + libkrb5support \ + libverto" + +FILES_${PN} = "${libdir}/krb5/plugins/preauth/test.so" +FILES_${PN}-doc += "${datadir}/examples" +FILES_${PN}-dbg += "${libdir}/krb5/plugins/*/.debug" + +FILES_${PN}-admin-server = "${sbindir}/kadmin.local \ + ${sbindir}/kadmind \ + ${sbindir}/kprop \ + ${sysconfdir}/default/krb5-admin-server \ + ${sysconfdir}/init.d/krb5-admin-server \ + ${systemd_system_unitdir}/krb5-admin-server.service" + +FILES_${PN}-gss-samples = "${bindir}/gss-client \ + ${sbindir}/gss-server" + +FILES_${PN}-k5tls = "${libdir}/krb5/plugins/tls/k5tls.so" + +FILES_${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \ + ${localstatedir}/krb5kdc \ + ${sbindir}/kdb5_util \ + ${sbindir}/kproplog \ + ${sbindir}/krb5kdc \ + ${sysconfdir}/default/krb5-kdc \ + ${sysconfdir}/default/volatiles/87_krb5 \ + ${sysconfdir}/init.d/krb5-kdc \ + ${sysconfdir}/tmpfiles.d/krb5.conf \ + ${systemd_system_unitdir}/krb5-kdc.service" + +FILES_${PN}-kdc-ldap = "${libdir}/krb5/libkdb_ldap${SOLIBS} \ + ${libdir}/krb5/plugins/kdb/kldap.so \ + ${sbindir}/kdb5_ldap_util" + +FILES_${PN}-kpropd = "${sbindir}/kpropd" +FILES_${PN}-otp = "${libdir}/krb5/plugins/preauth/otp.so" +FILES_${PN}-pkinit = "${libdir}/krb5/plugins/preauth/pkinit.so" +FILES_${PN}-user = "${bindir}/k*" + +FILES_libgssapi-krb5 = "${libdir}/libgssapi_krb5${SOLIBS}" +FILES_libgssrpc = "${libdir}/libgssrpc${SOLIBS}" +FILES_libk5crypto = "${libdir}/libk5crypto${SOLIBS}" +FILES_libkadm5clnt-mit = "${libdir}/libkadm5clnt_mit${SOLIBS}" +FILES_libkadm5srv-mit = "${libdir}/libkadm5srv_mit${SOLIBS}" +FILES_libkdb5 = "${libdir}/libkdb5${SOLIBS}" +FILES_libkrad = "${libdir}/libkrad${SOLIBS}" +FILES_libkrb5 = "${libdir}/libkrb5${SOLIBS} \ + ${libdir}/krb5/plugins/authdata \ + ${libdir}/krb5/plugins/libkrb5" +FILES_libkrb5support = "${libdir}/libkrb5support${SOLIBS}" +FILES_libverto = "${libdir}/libverto${SOLIBS}" + +RDEPENDS_${PN}-kadmin-server = "${PN}-kdc" +RDEPENDS_${PN}-kpropd = "${PN}-kdc" + +INITSCRIPT_PACKAGES = "${PN}-admin-server ${PN}-kdc" +INITSCRIPT_NAME_${PN}-admin-server = "krb5-admin-server" +INITSCRIPT_NAME_${PN}-kdc = "krb5-kdc" + +SYSTEMD_PACKAGES = "${PN}-admin-server ${PN}-kdc" +SYSTEMD_SERVICE_${PN}-admin-server = "krb5-admin-server.service" +SYSTEMD_SERVICE_${PN}-kdc = "krb5-kdc.service" + +pkg_postinst_${PN}-kdc () { + if [ -z "$D" ]; then + if command -v systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/krb5.conf + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + fi +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-connectivity/libev/libev_4.24.bb b/meta-oe/recipes-connectivity/libev/libev_4.24.bb new file mode 100644 index 00000000000..5e0f3a5ed92 --- /dev/null +++ b/meta-oe/recipes-connectivity/libev/libev_4.24.bb @@ -0,0 +1,22 @@ +SUMMARY = "A full-featured and high-performance event loop that is loosely \ +modelled after libevent." +HOMEPAGE = "http://software.schmorp.de/pkg/libev.html" +LICENSE = "BSD-2-Clause | GPL-2.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d6ad416afd040c90698edcdf1cbee347" + +SRC_URI = "http://dist.schmorp.de/libev/Attic/${BP}.tar.gz" + +SRC_URI[md5sum] = "94459a5a22db041dec6f98424d6efe54" +SRC_URI[sha256sum] = "973593d3479abdf657674a55afe5f78624b0e440614e2b8cb3a07f16d4d7f821" + +S = "${WORKDIR}/${PN}-${PV}" + +inherit autotools + +EXTRA_OECONF += "--with-pic" + +do_install_append() { + # Avoid conflicting with libevent. The provided compatibility layer is + # still basic so drop it for now. + rm ${D}${includedir}/event.h +} diff --git a/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch b/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch new file mode 100644 index 00000000000..679a8b597ad --- /dev/null +++ b/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch @@ -0,0 +1,38 @@ +Fix configure error in large file checks on 64-bit architectures + + configure:17888: checking for native large file support + configure:17891: error: in `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/core2-64-oe-linux/libimobiledevice/1.1.4-r0/libimobiledevice-1.1.4': + configure:17893: error: cannot run test program while cross compiling + +configure.ac was using AC_SYS_LARGEFILE macro as is typical, but then +there was an extra runtime check added beyond that: +check if off_t is 8 bytes (64 bits) long. +If that runtime check passed, _FILE_OFFSET_BITS was defined as 64. + +Runtime checks need to go away for cross compiling, and luckily this extra +check was not serving any useful purpose. Note that off_t was *already* +64 bits, *without* setting _FILE_OFFSET_BITS, which makes _FILE_OFFSET_BITS +unneeded for large file support. + +If AC_SYS_LARGEFILE macro sets ac_cv_sys_file_offset_bits=no, +just leave _FILE_OFFSET_BITS undefined! + +--- libimobiledevice-1.1.4/configure.ac.old 2015-07-15 01:38:50.900143927 -0700 ++++ libimobiledevice-1.1.4/configure.ac 2015-07-15 01:39:13.300144430 -0700 +@@ -174,16 +174,6 @@ + if test "$enable_largefile" != no; then + if test "$ac_cv_sys_file_offset_bits" != 'no'; then + LFS_CFLAGS="$LFS_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" +- else +- AC_MSG_CHECKING(for native large file support) +- AC_RUN_IFELSE([AC_LANG_SOURCE([#include +- int main (int argc, char **argv) +- { +- exit(!(sizeof(off_t) == 8)); +- }])], +- [ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64) +- AC_MSG_RESULT(yes)], +- [AC_MSG_RESULT(no)]) + fi + if test "$ac_cv_sys_large_files" != 'no'; then + LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES=1" diff --git a/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch b/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch new file mode 100644 index 00000000000..9a7895fd413 --- /dev/null +++ b/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch @@ -0,0 +1,31 @@ +Fix link error with gcc 5 toolchains + + afc.c:258: error: undefined reference to 'debug_buffer' + collect2: error: ld returned 1 exit status + +debug.h header was declaring things inline without providing a definition. +Files that included this header then failed to link against the corresponding +external symbol in debug.c, because the linker took the 'inline' keyword +seriously rather than ignoring it. + +--- libimobiledevice-1.1.4/src/debug.h.orig 2015-10-03 16:24:08.758740386 -0700 ++++ libimobiledevice-1.1.4/src/debug.h 2015-10-03 16:24:22.706740355 -0700 +@@ -44,14 +44,14 @@ + #define debug_plist(a) + #endif + +-LIBIMOBILEDEVICE_INTERNAL inline void debug_info_real(const char *func, ++LIBIMOBILEDEVICE_INTERNAL void debug_info_real(const char *func, + const char *file, + int line, + const char *format, ...); + +-LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer(const char *data, const int length); +-LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer_to_file(const char *file, const char *data, const int length); +-LIBIMOBILEDEVICE_INTERNAL inline void debug_plist_real(const char *func, ++LIBIMOBILEDEVICE_INTERNAL void debug_buffer(const char *data, const int length); ++LIBIMOBILEDEVICE_INTERNAL void debug_buffer_to_file(const char *file, const char *data, const int length); ++LIBIMOBILEDEVICE_INTERNAL void debug_plist_real(const char *func, + const char *file, + int line, + plist_t plist); diff --git a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb index 5256ce0d295..32aca96fd07 100644 --- a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb +++ b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb @@ -5,17 +5,14 @@ LIC_FILES_CHKSUM = "\ file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \ " -#| configure:17888: checking for native large file support -#| configure:17891: error: in `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/core2-64-oe-linux/libimobiledevice/1.1.4-r0/libimobiledevice-1.1.4': -#| configure:17893: error: cannot run test program while cross compiling -PNBLACKLIST[libimobiledevice] ?= "cannot run test program while cross compiling" - HOMEPAGE ="http://www.libimobiledevice.org/" DEPENDS = "libplist usbmuxd libtasn1 gnutls libgcrypt" SRC_URI = " \ http://www.libimobiledevice.org/downloads/libimobiledevice-${PV}.tar.bz2 \ + file://configure-fix-largefile.patch \ + file://inline-without-definition.patch \ " SRC_URI[md5sum] = "3f28cbc6a2e30d34685049c0abde5183" diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch b/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch new file mode 100644 index 00000000000..92e657c00a0 --- /dev/null +++ b/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch @@ -0,0 +1,73 @@ +Check for clang compiler since we need to disable +unused-function warning for clang, at same time +pass werror when checking for compiler options if +werror is enabled so spurious options do not get +enabled. Only the ones that are supported by given +compiler are accepted. + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +Index: libmbim-1.14.0/m4/compiler-warnings.m4 +=================================================================== +--- libmbim-1.14.0.orig/m4/compiler-warnings.m4 ++++ libmbim-1.14.0/m4/compiler-warnings.m4 +@@ -2,10 +2,30 @@ AC_DEFUN([LIBMBIM_COMPILER_WARNINGS], + [AC_ARG_ENABLE(more-warnings, + AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]), + set_more_warnings="$enableval",set_more_warnings=error) ++ ++# Clang throws a lot of warnings when it does not understand a flag. Disable ++# this warning for now so other warnings are visible. ++AC_MSG_CHECKING([if compiling with clang]) ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ ++#ifndef __clang__ ++ not clang ++#endif ++ ]])], ++ [CLANG=yes], ++ [CLANG=no] ++) ++AC_MSG_RESULT([$CLANG]) ++AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function]) ++CFLAGS="$CFLAGS $CLANG_FLAGS" ++LDFLAGS="$LDFLAGS $CLANG_FLAGS" ++ + AC_MSG_CHECKING(for more warnings) + if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + AC_MSG_RESULT(yes) + CFLAGS="-Wall -std=gnu89 $CFLAGS" ++ if test "x$set_more_warnings" = xerror; then ++ WERROR="-Werror" ++ fi + + for option in -Wmissing-declarations -Wmissing-prototypes \ + -Wdeclaration-after-statement -Wstrict-prototypes \ +@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_war + -Wmissing-include-dirs -Waggregate-return \ + -Wformat-security; do + SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS $option" ++ CFLAGS="$CFLAGS $option $WERROR" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + if test $has_option = no; then + CFLAGS="$SAVE_CFLAGS" ++ else ++ CFLAGS="$SAVE_CFLAGS $option" + fi + AC_MSG_RESULT($has_option) + unset has_option + unset SAVE_CFLAGS + done ++ CFLAGS="$CFLAGS $WERROR" + unset option +- if test "x$set_more_warnings" = xerror; then +- CFLAGS="$CFLAGS -Werror" +- fi ++ unset WERROR + else + AC_MSG_RESULT(no) + fi diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.12.2.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.12.2.bb deleted file mode 100644 index 4364bb0e026..00000000000 --- a/meta-oe/recipes-connectivity/libmbim/libmbim_1.12.2.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol" -DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -DEPENDS = "glib-2.0 udev" - -inherit autotools pkgconfig - -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "921fb5ab3f13f1e00833e009d8f3b4f6" -SRC_URI[sha256sum] = "949351d3e3d69b81e40a49f1d187944c26149e0647a415f0227ccdc112047b29" diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb new file mode 100644 index 00000000000..f89ef9d5700 --- /dev/null +++ b/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol" +DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +DEPENDS = "glib-2.0 glib-2.0-native libgudev" + +inherit autotools pkgconfig bash-completion + +SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ + file://clang.patch \ +" +SRC_URI[md5sum] = "2ed809e65c85353d3ab59e372890e549" +SRC_URI[sha256sum] = "ca8d52a95a18cbabae8f15f83f1572316e888b6504f946e6645d24405127ab5b" diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb index de63c72f52c..798b1707d7c 100644 --- a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb +++ b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb @@ -39,23 +39,20 @@ inherit autotools pkgconfig lib_package EXTRA_OECONF += "--disable-rpath" PACKAGECONFIG ?= "\ - ${@base_contains('DISTRO_FEATURES', 'largefile$', 'largefile', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'largefile$', 'largefile', '', d)} \ " PACKAGECONFIG[doxygen] = "--enable-doxygen,--disable-doxygen" PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile" PACKAGECONFIG[mtpz] = "--enable-mtpz,--disable-mtpz,libgcrypt" -PACKAGES =+ "libmtp-common libmtp-runtime mtp-tools" +PACKAGES =+ "libmtp-common libmtp-runtime" RDEPENDS_${PN} += "libmtp-common" -RRECOMMENDS_${PN} += "libmtp-runtime mtp-tools" -FILES_${PN}-dbg += "${base_libdir}/udev/.debug/*" -PKG_${PN}-bin = "mtp-tools" -SUMMARY_${PN}-bin = "Tools for communicating with MTP devices" -DESCRIPTION_${PN}-bin = "${DESCRIPTION}\nThis package contains tools for communicating with MTP devices." -FILES_libmtp-common = "${base_libdir}/udev/rules.d/*" +RRECOMMENDS_${PN} += "libmtp-runtime ${PN}-bin" +FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug/*" +FILES_libmtp-common = "${nonarch_base_libdir}/udev/rules.d/*" SUMMARY_libmtp-common = "The udev rules file for MTP devices" -FILES_libmtp-runtime = "${base_libdir}/udev/mtp-probe" +FILES_libmtp-runtime = "${nonarch_base_libdir}/udev/mtp-probe" DEPENDS_libmtp-runtime = "libmtp-common" SUMMARY_libmtp-runtime = "mtp-probe, used for the MTP udev rules" DESCRIPTION_libmtp-runtime = "This package provides mtp-probe, a program to probe newly connected device interfaces from userspace to determine if they are MTP devices, used for udev rules." diff --git a/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch b/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch new file mode 100644 index 00000000000..15aa94e2cc8 --- /dev/null +++ b/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch @@ -0,0 +1,25 @@ +From 94e9a082d76414f82794b0c9817d0c24e3868275 Mon Sep 17 00:00:00 2001 +From: Kylie McClain +Date: Sat, 21 May 2016 21:24:36 -0400 +Subject: [PATCH] ndptool: Fix compilation on musl libc + +FD_ZERO, fd_set, etc are defined within sys/select.h on musl. + +Signed-off-by: Kylie McClain +Signed-off-by: Jiri Pirko +--- + utils/ndptool.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/utils/ndptool.c b/utils/ndptool.c +index 1d96f4c..96479fa 100644 +--- a/utils/ndptool.c ++++ b/utils/ndptool.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + enum verbosity_level { + VERB1, diff --git a/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb b/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb new file mode 100644 index 00000000000..5148798abe1 --- /dev/null +++ b/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb @@ -0,0 +1,13 @@ +SUMMARY = "Library for IPv6 Neighbor Discovery Protocol" +HOMEPAGE = "http://libndp.org/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/jpirko/libndp \ + file://0001-include-sys-select.h-for-fd_-definitions.patch \ + " +# tag for v1.6 +SRCREV = "2f721c4ff519f38f46695a60d9f9d88f35bf3c1d" +S = "${WORKDIR}/git" + +inherit autotools diff --git a/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch b/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch new file mode 100644 index 00000000000..98008dba947 --- /dev/null +++ b/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch @@ -0,0 +1,58 @@ +From ffd7fab744a9ad2893169a8fb6244074604d5d0d Mon Sep 17 00:00:00 2001 +From: rofl0r +Date: Tue, 12 Aug 2014 21:51:39 +0200 +Subject: [PATCH] Support musl libc, remove support for glibc < 2.1 + +Upstream-Status: Backport + +The workarounds for glibc < 2.1 (was released february 1999) break the +build with musl libc. + +It is very unlikely that 2.0 or earlier is still in use, and if so, +1) that's a big security hole +2) code wouldnt compile anyway since noone tested build in the last decade +3) user of it wouldn't expect anyway to get bleeding edge sw built on it, + so he would just use the latest version that works for him. + +Closes #52 + +Signed-off-by: rofl0r +Signed-off-by: Ming Liu +--- + libnet/src/libnet_link_linux.c | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/src/libnet_link_linux.c b/src/libnet_link_linux.c +index 054458d..3c6df3c 100644 +--- a/src/libnet_link_linux.c ++++ b/src/libnet_link_linux.c +@@ -30,26 +30,15 @@ + #include + + #include +-#if (__GLIBC__) + #include + #include +-#else +-#include +-#include +-#endif + + #if (HAVE_PACKET_SOCKET) + #ifndef SOL_PACKET + #define SOL_PACKET 263 + #endif /* SOL_PACKET */ +-#if __GLIBC__ >= 2 && __GLIBC_MINOR >= 1 + #include + #include /* the L2 protocols */ +-#else +-#include +-#include +-#include /* The L2 protocols */ +-#endif + #endif /* HAVE_PACKET_SOCKET */ + + #include "../include/libnet.h" +-- +1.9.1 + diff --git a/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb b/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb index a558e8096c3..dfc20496046 100644 --- a/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb +++ b/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb @@ -8,7 +8,9 @@ DEPENDS = "libpcap" # There are major API changes beween libnet v1.0 and libnet v1.1 PROVIDES = "libnet-1.2rc2" -SRC_URI = "${SOURCEFORGE_MIRROR}/libnet-dev/${BPN}-${PV}.tar.gz" +SRC_URI = "${SOURCEFORGE_MIRROR}/libnet-dev/${BPN}-${PV}.tar.gz \ + file://0001-Support-musl-libc-remove-support-for-glibc-2.1.patch \ + " SRC_URI[md5sum] = "f051e6e5bdecddb90f77c701c2ca1804" SRC_URI[sha256sum] = "72c380785ad44183005e654b47cc12485ee0228d7fa6b0a87109ff7614be4a63" diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch b/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch new file mode 100644 index 00000000000..4047ffbf238 --- /dev/null +++ b/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch @@ -0,0 +1,84 @@ +From 4cfb728804157e8f3c69e11ba4df449d8f76388f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Oct 2016 04:42:26 +0000 +Subject: [PATCH] Detect clang + +Check for clang compiler since we need to disable +unused-function warning for clang, at same time +pass werror when checking for compiler options if +werror is enabled so spurious options do not get +enabled. Only the ones that are supported by given +compiler are accepted. + +Signed-off-by: Khem Raj +Upstream-Status: Pending +--- + m4/compiler-warnings.m4 | 29 +++++++++++++++++++++++++---- + 1 file changed, 25 insertions(+), 4 deletions(-) + +diff --git a/m4/compiler-warnings.m4 b/m4/compiler-warnings.m4 +index de4a8b0..e4ba718 100644 +--- a/m4/compiler-warnings.m4 ++++ b/m4/compiler-warnings.m4 +@@ -2,10 +2,30 @@ AC_DEFUN([LIBQMI_COMPILER_WARNINGS], + [AC_ARG_ENABLE(more-warnings, + AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]), + set_more_warnings="$enableval",set_more_warnings=error) ++ ++# Clang throws a lot of warnings when it does not understand a flag. Disable ++# this warning for now so other warnings are visible. ++AC_MSG_CHECKING([if compiling with clang]) ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ ++#ifndef __clang__ ++ not clang ++#endif ++ ]])], ++ [CLANG=yes], ++ [CLANG=no] ++) ++AC_MSG_RESULT([$CLANG]) ++AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function]) ++CFLAGS="$CFLAGS $CLANG_FLAGS" ++LDFLAGS="$LDFLAGS $CLANG_FLAGS" ++ + AC_MSG_CHECKING(for more warnings) + if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + AC_MSG_RESULT(yes) + CFLAGS="-Wall -std=gnu89 $CFLAGS" ++ if test "x$set_more_warnings" = xerror; then ++ WERROR="-Werror" ++ fi + + for option in -Wmissing-declarations -Wmissing-prototypes \ + -Wdeclaration-after-statement -Wstrict-prototypes \ +@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + -Wmissing-include-dirs -Waggregate-return \ + -Wformat-security; do + SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS $option" ++ CFLAGS="$CFLAGS $option $WERROR" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + if test $has_option = no; then + CFLAGS="$SAVE_CFLAGS" ++ else ++ CFLAGS="$SAVE_CFLAGS $option" + fi + AC_MSG_RESULT($has_option) + unset has_option + unset SAVE_CFLAGS + done ++ CFLAGS="$CFLAGS $WERROR" + unset option +- if test "x$set_more_warnings" = xerror; then +- CFLAGS="$CFLAGS -Werror" +- fi ++ unset WERROR + else + AC_MSG_RESULT(no) + fi +-- +1.9.1 + diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.12.2.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.12.2.bb deleted file mode 100644 index 789692b581c..00000000000 --- a/meta-oe/recipes-connectivity/libqmi/libqmi_1.12.2.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol" -DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -DEPENDS = "glib-2.0" - -inherit autotools pkgconfig - -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "5b3b6b37a57e2fa828fd4cb6f86d7a9f" -SRC_URI[sha256sum] = "d1661d73b510482b29b93b7e396756c433d35360b3d44c72afa7921339a98624" diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.16.0.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.16.0.bb new file mode 100644 index 00000000000..80c26c05cec --- /dev/null +++ b/meta-oe/recipes-connectivity/libqmi/libqmi_1.16.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol" +DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +DEPENDS = "glib-2.0 libgudev libmbim glib-2.0-native" + +inherit autotools pkgconfig bash-completion + +SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-Detect-clang.patch \ + " +SRC_URI[md5sum] = "4970c110f160b33637a3515004c637b2" +SRC_URI[sha256sum] = "7ab6bb47fd23bf4d3fa17424e40ea5552d08b19e5ee4f125f21f316c8086ba2a" diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch b/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch new file mode 100644 index 00000000000..4d0979710c5 --- /dev/null +++ b/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch @@ -0,0 +1,30 @@ +From c9859a38a58996b8767a30e14febc03845f66f95 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 1 Jul 2017 13:10:53 -0700 +Subject: [PATCH] Define 64bit atomic helpers for ppc 32-bit + +Signed-off-by: Khem Raj +--- + src/atomic64.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/atomic64.c b/src/atomic64.c +index f841b39b..35c7c9d8 100644 +--- a/src/atomic64.c ++++ b/src/atomic64.c +@@ -18,10 +18,10 @@ + #include + + /* +- * only need these on MIPS, since it lacks hardware 64-bit atomics, ++ * only need these on MIPS & PPC32, since it lacks hardware 64-bit atomics, + * unlike x86 and ARM. + */ +-#if defined(__mips__) || defined(__mipsel__) ++#if defined(__mips__) || defined(__mipsel__) || defined(__powerpc__) + + static void __spin_lock(volatile int *lock) { + while (__sync_lock_test_and_set(lock, 1)) +-- +2.13.2 + diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch b/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch new file mode 100644 index 00000000000..84e0772a796 --- /dev/null +++ b/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch @@ -0,0 +1,263 @@ +From d7b6df5808e7bef5930b61a82e880699a9f9e208 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Jun 2017 15:39:19 -0700 +Subject: [PATCH] implement 64bit atomic for mips + +GCC does not provide 64bit atomics for mips32 + +Signed-off-by: Khem Raj +--- + src/Makefile.am | 1 + + src/atomic64.c | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 229 insertions(+) + create mode 100644 src/atomic64.c + +diff --git a/src/Makefile.am b/src/Makefile.am +index 99aaace0..cbbbbee9 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -27,6 +27,7 @@ libtorrent_la_LIBADD = \ + utils/libsub_utils.la + + libtorrent_la_SOURCES = \ ++ atomic64.c \ + globals.cc \ + globals.h \ + manager.cc \ +diff --git a/src/atomic64.c b/src/atomic64.c +new file mode 100644 +index 00000000..f841b39b +--- /dev/null ++++ b/src/atomic64.c +@@ -0,0 +1,228 @@ ++/*===----- atomic64.c - Support functions for 64-bit atomic operations.-----=== ++ * ++ * The LLVM Compiler Infrastructure ++ * ++ * This file is dual licensed under the MIT and the University of Illinois Open ++ * Source Licenses. See LICENSE.TXT for details. ++ * ++ *===-----------------------------------------------------------------------=== ++ * ++ * atomic64.c defines a set of functions for performing atomic accesses on ++ * 64-bit memory locations. It also implements spinlock synchronization ++ * operations. ++ * ++ *===-----------------------------------------------------------------------=== ++ */ ++ ++#include ++#include ++ ++/* ++ * only need these on MIPS, since it lacks hardware 64-bit atomics, ++ * unlike x86 and ARM. ++ */ ++#if defined(__mips__) || defined(__mipsel__) ++ ++static void __spin_lock(volatile int *lock) { ++ while (__sync_lock_test_and_set(lock, 1)) ++ while (*lock) {} ++} ++ ++static void __spin_unlock(volatile int *lock) { ++ __sync_lock_release(lock); ++} ++ ++/* ++ * Make sure the lock is on its own cache line to prevent false sharing. ++ * Put it inside a struct that is aligned and padded to the typical MIPS ++ * cacheline which is 32 bytes. ++ */ ++static struct { ++ int lock; ++ char pad[32 - sizeof(int)]; ++} __attribute__((aligned (32))) lock = { 0 }; ++ ++ ++uint64_t __sync_fetch_and_add_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr; ++ *ptr = ret + val; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_fetch_and_sub_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr; ++ *ptr = ret - val; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_fetch_and_and_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr; ++ *ptr = ret & val; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_fetch_and_or_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr; ++ *ptr = ret | val; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_fetch_and_xor_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr; ++ *ptr = ret ^ val; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_add_and_fetch_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr + val; ++ *ptr = ret; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_sub_and_fetch_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr - val; ++ *ptr = ret; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_and_and_fetch_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr & val; ++ *ptr = ret; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_or_and_fetch_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr | val; ++ *ptr = ret; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_xor_and_fetch_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr ^ val; ++ *ptr = ret; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++bool __sync_bool_compare_and_swap_8(volatile uint64_t *ptr, ++ uint64_t oldval, uint64_t newval) { ++ bool ret = false; ++ ++ __spin_lock(&lock.lock); ++ ++ if (*ptr == oldval) { ++ *ptr = newval; ++ ret = true; ++ } ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_val_compare_and_swap_8(volatile uint64_t *ptr, ++ uint64_t oldval, uint64_t newval) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr; ++ if (ret == oldval) ++ *ptr = newval; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++uint64_t __sync_lock_test_and_set_8(volatile uint64_t *ptr, uint64_t val) { ++ uint64_t ret; ++ ++ __spin_lock(&lock.lock); ++ ++ ret = *ptr; ++ *ptr = val; ++ ++ __spin_unlock(&lock.lock); ++ ++ return ret; ++} ++ ++void __sync_lock_release_8(volatile uint64_t *ptr) { ++ __spin_lock(&lock.lock); ++ ++ *ptr = 0; ++ ++ __spin_unlock(&lock.lock); ++} ++ ++#endif +-- +2.13.2 + diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.13.3.bb b/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.13.3.bb deleted file mode 100644 index 4af3a6a6a6c..00000000000 --- a/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.13.3.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "libTorrent is a BitTorrent library written in C++ for *nix, \ -with a focus on high performance and good code." -HOMEPAGE = "http://libtorrent.rakshasa.no/" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" - -DEPENDS = "libsigc++-2.0 openssl cppunit" - -SRC_URI = "http://libtorrent.rakshasa.no/downloads/${BP}.tar.gz \ - file://don-t-run-code-while-configuring-package.patch \ -" - -SRC_URI[md5sum] = "e94f6c590bb02aaf4d58618f738a85f2" -SRC_URI[sha256sum] = "34317d6783b7f8d0805274c9467475b5432a246c0de8e28fc16e3b0b43f35677" - -inherit autotools pkgconfig - diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb new file mode 100644 index 00000000000..92e65289a9a --- /dev/null +++ b/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "libTorrent is a BitTorrent library written in C++ for *nix, \ +with a focus on high performance and good code." +HOMEPAGE = "http://libtorrent.rakshasa.no/" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +DEPENDS = "zlib libsigc++-2.0 openssl cppunit" + +SRC_URI = "git://github.com/rakshasa/libtorrent \ + file://don-t-run-code-while-configuring-package.patch \ + file://0001-implement-64bit-atomic-for-mips.patch \ + file://0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch \ + " +SRCREV = "c167c5a9e0bcf0df23ae5efd91396aae0e37eb87" + +PV = "0.13.6+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--with-zlib=${STAGING_EXECPREFIXDIR}" + +do_configure_prepend() { + (cd ${S}; ./autogen.sh; cd -) +} diff --git a/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb b/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb new file mode 100644 index 00000000000..0a5846bb8bc --- /dev/null +++ b/meta-oe/recipes-connectivity/libuv/libuv_1.11.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "A multi-platform support library with a focus on asynchronous I/O" +HOMEPAGE = "https://github.com/libuv/libuv" +BUGTRACKER = "https://github.com/libuv/libuv/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=bb5ea0d651f4c3519327171906045775" + +SRC_URI = "https://github.com/libuv/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz" + +SRC_URI[md5sum] = "15550a9f5f45f7f32ae2d9bb0a21a2a7" +SRC_URI[sha256sum] = "6ec7eec6ecc24b1a8ffedebedb2fe9313fffb5410de89aaf784dd01080411c7a" + +inherit autotools + +do_configure() { + ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh" + oe_runconf +} + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb new file mode 100644 index 00000000000..9354799871d --- /dev/null +++ b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_2.1.0.bb @@ -0,0 +1,28 @@ +SUMMARY = "Canonical libwebsockets.org websocket library" +HOMEPAGE = "https://libwebsockets.org/" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3393a657830d4a118c5a6ed35ba53d0" + +DEPENDS = "zlib" + +SRC_URI = "https://github.com/warmcat/libwebsockets/archive/v${PV}.tar.gz" + +SRC_URI[md5sum] = "4df3be57dee43aeebd54a3ed56568f50" +SRC_URI[sha256sum] = "bcc96aaa609daae4d3f7ab1ee480126709ef4f6a8bf9c85de40aae48e38cce66" + +inherit cmake pkgconfig + +PACKAGECONFIG ?= "libuv client server http2 ssl" +PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON," +PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF," +PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF," +PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev" +PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv" +PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON," +PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl" +PACKAGECONFIG[testapps] = "-DLWS_WITHOUT_TESTAPPS=OFF,-DLWS_WITHOUT_TESTAPPS=ON," + +PACKAGES =+ "${PN}-testapps" + +FILES_${PN}-dev += "${libdir}/cmake" +FILES_${PN}-testapps += "${datadir}/libwebsockets-test-server/*" diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch new file mode 100644 index 00000000000..96163f6542a --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch @@ -0,0 +1,26 @@ +From b36cafdbcbe2193f5b669e703c608e19e23f80a3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Jul 2017 11:16:42 -0700 +Subject: [PATCH 3/4] include missing time.h for time_t + +Signed-off-by: Khem Raj +--- + util.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util.h b/util.h +index e912f19..3c634c1 100644 +--- a/util.h ++++ b/util.h +@@ -22,7 +22,7 @@ + + #include "ddt.h" + #include "ether.h" +- ++#include + /** + * Table of human readable strings, one for each port state. + */ +-- +2.13.3 + diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch new file mode 100644 index 00000000000..e699275148a --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch @@ -0,0 +1,36 @@ +From 3cd28aa771934d9165ff0d7e19932cde65de3e52 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Jul 2017 11:16:57 -0700 +Subject: [PATCH 4/4] Adjust include header sequence to avoid duplicate + definitions on musl + +Signed-off-by: Khem Raj +--- + raw.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/raw.c b/raw.c +index f51c829..494ea7f 100644 +--- a/raw.c ++++ b/raw.c +@@ -18,8 +18,6 @@ + */ + #include + #include +-#include +-#include + #include + #include + #include +@@ -32,6 +30,8 @@ + #include + #include + ++#include ++#include + #include + #include + #include +-- +2.13.3 + diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch new file mode 100644 index 00000000000..02dbb234658 --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch @@ -0,0 +1,29 @@ +From 8a4cad5e2f2cbb6a34bdc6e877fe499502b8c4c8 Mon Sep 17 00:00:00 2001 +From: Marcel Ziswiler +Date: Fri, 23 Dec 2016 18:12:29 +0100 +Subject: [PATCH] linuxptp: no incdefs using host headers + +Avoid using host headers via incdefs.sh shell script. + +Signed-off-by: Marcel Ziswiler +--- + + makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/makefile b/makefile +index 8cdbd15..85174b8 100644 +--- a/makefile ++++ b/makefile +@@ -33,7 +33,7 @@ OBJECTS = $(OBJ) hwstamp_ctl.o phc2sys.o phc_ctl.o pmc.o pmc_common.o \ + SRC = $(OBJECTS:.o=.c) + DEPEND = $(OBJECTS:.o=.d) + srcdir := $(dir $(lastword $(MAKEFILE_LIST))) +-incdefs := $(shell $(srcdir)/incdefs.sh) ++#incdefs := $(shell $(srcdir)/incdefs.sh) + version := $(shell $(srcdir)/version.sh $(srcdir)) + VPATH = $(srcdir) + +-- +2.9.3 + diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.4.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.4.bb deleted file mode 100644 index 4ee0c8873b0..00000000000 --- a/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.4.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \ - file://build-Allow-CC-and-prefix-to-be-overriden.patch" - -SRC_URI[md5sum] = "a37ad2b2ef7d1ebc4d64a66d3fe55cdf" -SRC_URI[sha256sum] = "6cfd5291fb7394cc9f25458927874a203971b66b76d1c9d6568e007d0cbd81f2" - -EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \ - EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_ONESTEP_SYNC ${CFLAGS}'" - -do_install () { - install -d ${D}/${bindir} - install -p ${S}/ptp4l ${D}/${bindir} - install -p ${S}/pmc ${D}/${bindir} - install -p ${S}/phc2sys ${D}/${bindir} - install -p ${S}/hwstamp_ctl ${D}/${bindir} -} diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb new file mode 100644 index 00000000000..c7b8b2933c7 --- /dev/null +++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \ + file://build-Allow-CC-and-prefix-to-be-overriden.patch \ + file://no-incdefs-using-host-headers.patch \ + file://0003-include-missing-time.h-for-time_t.patch \ + file://0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch \ + " + +SRC_URI[md5sum] = "5688cdfe57932273e1dbf35b3b97b9a0" +SRC_URI[sha256sum] = "fa8e00f6ec73cefa7bb313dce7f60dfe5eb9e2bde3353594e9ac18edc93e5165" + +EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \ + EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'" + +do_install () { + install -d ${D}/${bindir} + install -p ${S}/ptp4l ${D}/${bindir} + install -p ${S}/pmc ${D}/${bindir} + install -p ${S}/phc2sys ${D}/${bindir} + install -p ${S}/hwstamp_ctl ${D}/${bindir} +} diff --git a/meta-oe/recipes-connectivity/lirc/lirc.inc b/meta-oe/recipes-connectivity/lirc/lirc.inc deleted file mode 100644 index 57a1f7ddf8e..00000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc.inc +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION = "LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls." -DESCRIPTION_append_lirc = " This package contains the lirc daemon, libraries and tools." -DESCRIPTION_append_lirc-exec = " This package contains a daemon that runs programs on IR signals." -DESCRIPTION_append_lirc-remotes = " This package contains some config files for remotes." -DESCRIPTION_append_lirc-nslu2example = " This package contains a working config for RC5 remotes and a modified NSLU2." -HOMEPAGE = "http://www.lirc.org" -SECTION = "console/network" -LICENSE = "GPLv2" -DEPENDS = "alsa-lib libftdi libusb1" -PRIORITY = "optional" - -SRC_URI = "http://prdownloads.sourceforge.net/lirc/lirc-${PV}.tar.bz2" - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" diff --git a/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch b/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch new file mode 100644 index 00000000000..4feea803460 --- /dev/null +++ b/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch @@ -0,0 +1,101 @@ +Index: lirc-0.9.4d/daemons/lircrcd.cpp +=================================================================== +--- lirc-0.9.4d.orig/daemons/lircrcd.cpp ++++ lirc-0.9.4d/daemons/lircrcd.cpp +@@ -29,10 +29,12 @@ + #include + #include + #include ++#include + #include + + #include "lirc_client.h" + #include "lirc/lirc_log.h" ++#include "lirc/curl_poll.h" + + #define MAX_CLIENTS 100 + #define WHITE_SPACE " \t" +Index: lirc-0.9.4d/lib/curl_poll.c +=================================================================== +--- lirc-0.9.4d.orig/lib/curl_poll.c ++++ lirc-0.9.4d/lib/curl_poll.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #include "lirc_log.h" + #include "curl_poll.h" +@@ -67,7 +68,7 @@ static const logchannel_t logchannel = L + + #ifdef HAVE_POLL_FINE + +-int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms) ++int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms) + { + return poll(ufds, nfds, timeout_ms); + } +@@ -112,7 +113,7 @@ static int verify_sock(int s) + } + + +-int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms) ++int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms) + { + struct timeval pending_tv; + struct timeval* ptimeout; +Index: lirc-0.9.4d/lib/curl_poll.h +=================================================================== +--- lirc-0.9.4d.orig/lib/curl_poll.h ++++ lirc-0.9.4d/lib/curl_poll.h +@@ -1,5 +1,5 @@ +-#ifndef _POLL_H +-#define _POLL_H ++#ifndef _LIB_CURL_POLL_H ++#define _LIB_CURL_POLL_H + /*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | +@@ -29,13 +29,9 @@ + extern "C" { + #endif + +-#ifdef HAVE_SYS_POLL_H +-#include +-#else + #include +-#endif + +-int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms); ++int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms); + + #ifdef __cplusplus + } +Index: lirc-0.9.4d/lib/lirc/curl_poll.h +=================================================================== +--- lirc-0.9.4d.orig/lib/lirc/curl_poll.h ++++ lirc-0.9.4d/lib/lirc/curl_poll.h +@@ -1,5 +1,5 @@ +-#ifndef _POLL_H +-#define _POLL_H ++#ifndef _LIRC_CURL_POLL_H ++#define _LIRC_CURL_POLL_H + /*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | +@@ -29,13 +29,9 @@ + extern "C" { + #endif + +-#ifdef HAVE_SYS_POLL_H +-#include +-#else + #include +-#endif + +-int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms); ++int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms); + + #ifdef __cplusplus + } diff --git a/meta-oe/recipes-connectivity/lirc/lirc_0.9.2.bb b/meta-oe/recipes-connectivity/lirc/lirc_0.9.2.bb deleted file mode 100644 index 11b532a6195..00000000000 --- a/meta-oe/recipes-connectivity/lirc/lirc_0.9.2.bb +++ /dev/null @@ -1,66 +0,0 @@ -require lirc.inc - -SRC_URI += " \ - file://lircd.service \ - file://lircd.init \ - file://lircexec.init \ - file://lircd.conf \ - file://lirc_options.conf \ - file://lirc.tmpfiles \ -" -#file://0001-Adaptation-for-STM-configuration.patch \ -# -SRC_URI[md5sum] = "3afc84e79c0839823cc20e7a710dd06d" -SRC_URI[sha256sum] = "4e3f948fcdee6dce009171143f0cb7cd7be48593dd58138db4101a41f651a1dd" - -SYSTEMD_PACKAGES = "lirc" -SYSTEMD_SERVICE_${PN} = "lircd.service lircmd.service" -SYSTEMD_AUTO_ENABLE_lirc = "enable" - -inherit autotools pkgconfig systemd pythonnative - -PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" - -#EXTRA_OEMAKE = 'SUBDIRS="lib daemons tools"' -do_install_append() { - install -m 0755 -d ${D}${sysconfdir} - install -m 0755 -d ${D}${sysconfdir}/lirc - install -m 0755 -d ${D}${systemd_unitdir}/system - install -m 0755 -d ${D}${libdir}/tmpfiles.d - install -m 0644 ${WORKDIR}/lircd.conf ${D}${sysconfdir}/lirc/ - install -m 0644 ${WORKDIR}/lirc_options.conf ${D}${sysconfdir}/lirc/ - install -m 0644 ${WORKDIR}/lircd.service ${D}${systemd_unitdir}/system/ - install -m 0755 ${WORKDIR}/lircexec.init ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/lirc.tmpfiles ${D}${libdir}/tmpfiles.d/lirc.conf - rm -rf ${D}${libdir}/lirc/plugins/*.la - rmdir ${D}/var/run/lirc ${D}/var/run -} - -PACKAGES =+ "${PN}-contrib ${PN}-exec ${PN}-plugins ${PN}-python" - -RDEPENDS_${PN}-exec = "${PN}" -RDEPENDS_${PN}-python = "python" - -RRECOMMENDS_lirc = "${PN}-exec ${PN}-plugins" - -FILES_${PN}-plugins = "${libdir}/lirc/plugins/*.so ${datadir}/lirc/configs" -FILES_${PN}-contrib = "${datadir}/lirc/contrib" -FILES_${PN}-exec = "${bindir}/irexec ${sysconfdir}/lircexec" -FILES_${PN} += "${systemd_unitdir}/system/lircexec.init" -FILES_${PN} += "${systemd_unitdir}/system/lircd.service" -FILES_${PN} += "${systemd_unitdir}/system/lircd.socket" -FILES_${PN} += "${libdir}/tmpfiles.d/lirc.conf" -FILES_${PN}-dbg += "${libdir}/lirc/plugins/.debug" -FILES_${PN}-python += "${libdir}/python*/site-packages" - - -INITSCRIPT_PACKAGES = "lirc lirc-exec" -INITSCRIPT_NAME_lirc-exec = "lircexec" -INITSCRIPT_PARAMS_lirc-exec = "defaults 21" - -# this is for distributions that don't use udev -pkg_postinst_${PN}_append() { - if [ ! -c $D/dev/lirc -a ! -f /sbin/udevd ]; then mknod $D/dev/lirc c 61 0; fi -} diff --git a/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb b/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb new file mode 100644 index 00000000000..b13163debb6 --- /dev/null +++ b/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb @@ -0,0 +1,87 @@ +DESCRIPTION = "LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls." +DESCRIPTION_append_lirc = " This package contains the lirc daemon, libraries and tools." +DESCRIPTION_append_lirc-exec = " This package contains a daemon that runs programs on IR signals." +DESCRIPTION_append_lirc-remotes = " This package contains some config files for remotes." +DESCRIPTION_append_lirc-nslu2example = " This package contains a working config for RC5 remotes and a modified NSLU2." +HOMEPAGE = "http://www.lirc.org" +SECTION = "console/network" +LICENSE = "GPLv2" +DEPENDS = "libxslt-native alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19" + + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "http://prdownloads.sourceforge.net/lirc/lirc-${PV}.tar.bz2 \ + file://pollfd.patch \ + file://lircd.service \ + file://lircd.init \ + file://lircexec.init \ + file://lircd.conf \ + file://lirc_options.conf \ + file://lirc.tmpfiles \ +" +SRC_URI[md5sum] = "0d11679cbdd94a5a6da00a8e7231b4bf" +SRC_URI[sha256sum] = "c68f18c35b489b865c0a741d119b136e8702191538cd3551b977a7af6c4e41ab" + +SYSTEMD_PACKAGES = "lirc lirc-exec" +SYSTEMD_SERVICE_${PN} = "lircd.service lircmd.service lircd-setup.service lircd-uinput.service" +SYSTEMD_SERVICE_${PN}-exec = "irexec.service" +SYSTEMD_AUTO_ENABLE_lirc = "enable" +SYSTEMD_AUTO_ENABLE_lirc-exec = "enable" + +inherit autotools pkgconfig systemd python3native + +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd" +PACKAGECONFIG[x11] = "--with-x,--with-x=no,libx11," + +PACKAGECONFIG ?= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', '', d)} \ +" +CACHED_CONFIGUREVARS = "HAVE_WORKING_POLL=yes" + +#EXTRA_OEMAKE = 'SUBDIRS="lib daemons tools"' +do_install_append() { + install -m 0755 -d ${D}${sysconfdir} + install -m 0755 -d ${D}${sysconfdir}/lirc + install -m 0755 -d ${D}${systemd_unitdir}/system + install -m 0755 -d ${D}${libdir}/tmpfiles.d + install -m 0644 ${WORKDIR}/lircd.conf ${D}${sysconfdir}/lirc/ + install -m 0644 ${WORKDIR}/lirc_options.conf ${D}${sysconfdir}/lirc/ + install -m 0644 ${WORKDIR}/lircd.service ${D}${systemd_unitdir}/system/ + install -m 0755 ${WORKDIR}/lircexec.init ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/lirc.tmpfiles ${D}${libdir}/tmpfiles.d/lirc.conf + rm -rf ${D}${libdir}/lirc/plugins/*.la + rmdir ${D}/var/run/lirc ${D}/var/run + chown -R root:root ${D}${datadir}/lirc/contrib +} + +PACKAGES =+ "${PN}-contrib ${PN}-exec ${PN}-plugins ${PN}-python" + +RDEPENDS_${PN} = "bash" +RDEPENDS_${PN}-exec = "${PN}" +RDEPENDS_${PN}-python = "python" + +RRECOMMENDS_lirc = "${PN}-exec ${PN}-plugins" + +FILES_${PN}-plugins = "${libdir}/lirc/plugins/*.so ${datadir}/lirc/configs" +FILES_${PN}-contrib = "${datadir}/lirc/contrib" +FILES_${PN}-exec = "${bindir}/irexec ${sysconfdir}/lircexec ${systemd_unitdir}/system/irexec.service" +FILES_${PN} += "${systemd_unitdir}/system/lircexec.init" +FILES_${PN} += "${systemd_unitdir}/system/lircd.service" +FILES_${PN} += "${systemd_unitdir}/system/lircd.socket" +FILES_${PN} += "${libdir}/tmpfiles.d/lirc.conf" +FILES_${PN}-dbg += "${libdir}/lirc/plugins/.debug" +FILES_${PN}-python += "${libdir}/python*/site-packages" + + +INITSCRIPT_PACKAGES = "lirc lirc-exec" +INITSCRIPT_NAME_lirc-exec = "lircexec" +INITSCRIPT_PARAMS_lirc-exec = "defaults 21" + +# this is for distributions that don't use udev +pkg_postinst_${PN}_append() { + if [ ! -c $D/dev/lirc -a ! -f /sbin/udevd ]; then mknod $D/dev/lirc c 61 0; fi +} + +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb index e5124190952..4f1430b9ec6 100644 --- a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb +++ b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb @@ -15,6 +15,7 @@ SRC_URI += "file://04-use-pkg-config-for-gnutls.patch \ SRC_URI[archive.md5sum] = "55339ca42494690c3942ee1465a96937" SRC_URI[archive.sha256sum] = "95a93f5d009b71ea8193d994aa11f311bc330a3efe1b7cd74dc48f11c7f929e3" +GNOME_COMPRESS_TYPE="bz2" EXTRA_OECONF = "--with-ssl=openssl" diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch b/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch new file mode 100644 index 00000000000..a3fb0f3eb86 --- /dev/null +++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager/enum-conversion.patch @@ -0,0 +1,21 @@ +Fixes errors found bt Clang + +| ../../ModemManager-1.6.4/src/mm-bearer-qmi.c:774:50: error: implicit conversion from enumeration type 'MMBearerStatus' to different enumeration type 'MMBearerConnectionStatus' [-Werror,-Wenum-conversion] +| MMBearerConnectionStatus bearer_status = mm_base_bearer_get_status (MM_BASE_BEARER (self)); +| ~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +| 1 error generated. + + +Index: ModemManager-1.6.4/src/mm-bearer-qmi.c +=================================================================== +--- ModemManager-1.6.4.orig/src/mm-bearer-qmi.c ++++ ModemManager-1.6.4/src/mm-bearer-qmi.c +@@ -771,7 +771,7 @@ packet_service_status_indication_cb (Qmi + &connection_status, + NULL, + NULL)) { +- MMBearerConnectionStatus bearer_status = mm_base_bearer_get_status (MM_BASE_BEARER (self)); ++ MMBearerConnectionStatus bearer_status = (MMBearerConnectionStatus)mm_base_bearer_get_status (MM_BASE_BEARER (self)); + + if (connection_status == QMI_WDS_CONNECTION_STATUS_DISCONNECTED && + bearer_status != MM_BEARER_CONNECTION_STATUS_DISCONNECTED && diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.4.2.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.4.2.bb deleted file mode 100644 index 6dfd0e256fb..00000000000 --- a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.4.2.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "ModemManager is a daemon controlling broadband devices/connections" -DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -inherit autotools gettext gtk-doc systemd - -DEPENDS = "glib-2.0 libmbim libqmi polkit udev dbus-glib" - -SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz" -SRC_URI[md5sum] = "fe74eaa9a77e51e552b4356b4c7195cb" -SRC_URI[sha256sum] = "07d332fbe6f45f788f740810951e04042aaf023bd5ecf8ef0b3a06e37703585d" - -S = "${WORKDIR}/ModemManager-${PV}" - -FILES_${PN} += " \ - ${datadir}/icons \ - ${datadir}/polkit-1 \ - ${libdir}/ModemManager \ - ${systemd_unitdir}/system \ -" - -FILES_${PN}-dev += " \ - ${datadir}/dbus-1 \ - ${libdir}/ModemManager/*.la \ -" - -FILES_${PN}-staticdev += " \ - ${libdir}/ModemManager/*.a \ -" - -FILES_${PN}-dbg += "${libdir}/ModemManager/.debug" - -SYSTEMD_SERVICE_${PN} = "ModemManager.service" -# no need to start on boot - dbus will start on demand -SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb new file mode 100644 index 00000000000..e60cd4b741e --- /dev/null +++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.6.4.bb @@ -0,0 +1,51 @@ +SUMMARY = "ModemManager is a daemon controlling broadband devices/connections" +DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/" +LICENSE = "GPL-2.0 & LGPL-2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +inherit gnomebase gettext systemd vala gobject-introspection bash-completion + +DEPENDS = "glib-2.0 libgudev dbus-glib intltool-native" + +SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \ + file://enum-conversion.patch \ +" +SRC_URI[md5sum] = "06488186c7dd53f8104183b86f7a1568" +SRC_URI[sha256sum] = "cdd5b4cb1e4d7643643a28ccbfc4bb354bfa9cb89a77ea160ebdf7926171c668" + +S = "${WORKDIR}/ModemManager-${PV}" + +PACKAGECONFIG ??= "mbim qmi polkit \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ +" + +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,," +PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit" +# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol. +PACKAGECONFIG[mbim] = "--with-mbim,--enable-mbim=no,libmbim" +# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol. +PACKAGECONFIG[qmi] = "--with-qmi,--without-qmi,libqmi" + +FILES_${PN} += " \ + ${datadir}/icons \ + ${datadir}/polkit-1 \ + ${datadir}/dbus-1 \ + ${libdir}/ModemManager \ + ${systemd_unitdir}/system \ +" + +FILES_${PN}-dev += " \ + ${libdir}/ModemManager/*.la \ +" + +FILES_${PN}-staticdev += " \ + ${libdir}/ModemManager/*.a \ +" + +FILES_${PN}-dbg += "${libdir}/ModemManager/.debug" + +SYSTEMD_SERVICE_${PN} = "ModemManager.service" diff --git a/meta-oe/recipes-connectivity/mosh/mosh_1.2.4.bb b/meta-oe/recipes-connectivity/mosh/mosh_1.2.4.bb deleted file mode 100644 index 5a8e336b993..00000000000 --- a/meta-oe/recipes-connectivity/mosh/mosh_1.2.4.bb +++ /dev/null @@ -1,38 +0,0 @@ -# NOTE: mosh-server requires a UTF-8 locale, but there's no way to add -# an explicit dependency for this so you need to ensure this is in your -# image yourself when you install mosh-server. - -SUMMARY = "Remote shell supporting roaming and high-latency connections" -DESCRIPTION = "Remote terminal application that allows roaming, supports \ -intermittent connectivity, and provides intelligent local echo and line \ -editing of user keystrokes. Mosh is a replacement for SSH. It's more \ -robust and responsive, especially over Wi-Fi, cellular, and \ -long-distance links." -HOMEPAGE = "http://mosh.mit.edu" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl" - -SRC_URI = "http://mosh.mit.edu/mosh-${PV}.tar.gz" - -SRC_URI[md5sum] = "c2d918f4d91fdc32546e2e089f9281b2" -SRC_URI[sha256sum] = "e74d0d323226046e402dd469a176075fc2013b69b0e67cea49762c957175df46" - -inherit autotools - -PACKAGE_BEFORE_PN += "${PN}-server" -FILES_${PN}-server = "${bindir}/mosh-server" - -NEEDED_PERL_MODULES = "\ - perl-module-socket \ - perl-module-getopt-long \ - perl-module-errno \ - perl-module-io-socket-inet \ - perl-module-posix \ -" - -# mosh uses SSH to authenticate and the client uses OpenSSH-specific features -RDEPENDS_${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}" -# The server seemed not to work with dropbear either -RDEPENDS_${PN}-server += "openssh-sshd ${NEEDED_PERL_MODULES}" diff --git a/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb b/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb new file mode 100644 index 00000000000..9fc8435ee69 --- /dev/null +++ b/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb @@ -0,0 +1,46 @@ +# NOTE: mosh-server requires a UTF-8 locale, but there's no way to add +# an explicit dependency for this so you need to ensure this is in your +# image yourself when you install mosh-server. + +SUMMARY = "Remote shell supporting roaming and high-latency connections" +DESCRIPTION = "Remote terminal application that allows roaming, supports \ +intermittent connectivity, and provides intelligent local echo and line \ +editing of user keystrokes. Mosh is a replacement for SSH. It's more \ +robust and responsive, especially over Wi-Fi, cellular, and \ +long-distance links." +HOMEPAGE = "http://mosh.mit.edu" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter" + +SRC_URI = "http://mosh.mit.edu/mosh-${PV}.tar.gz" +SRC_URI[md5sum] = "d961276995936953bf2d5a794068b076" +SRC_URI[sha256sum] = "320e12f461e55d71566597976bd9440ba6c5265fa68fbf614c6f1c8401f93376" + +inherit autotools pkgconfig + +PACKAGE_BEFORE_PN += "${PN}-server" +FILES_${PN}-server = "${bindir}/mosh-server" + +NEEDED_PERL_MODULES = "\ + perl-module-socket \ + perl-module-getopt-long \ + perl-module-errno \ + perl-module-io-socket-inet \ + perl-module-posix \ +" + +# mosh uses SSH to authenticate and the client uses OpenSSH-specific features +RDEPENDS_${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}" +# The server seemed not to work with dropbear either +RDEPENDS_${PN}-server += "openssh-sshd ${NEEDED_PERL_MODULES}" + +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:2100: Error: instruction not supported in Thumb16 mode -- `adds r4,r4,r4' +#| {standard input}:2101: Error: instruction not supported in Thumb16 mode -- `adcs r5,r5,r5' +#| {standard input}:2102: Error: instruction not supported in Thumb16 mode -- `adcs r6,r6,r6' +#| {standard input}:2103: Error: instruction not supported in Thumb16 mode -- `adcs r7,r7,r7' +#| {standard input}:2104: Error: selected processor does not support Thumb mode `it cs' +ARM_INSTRUCTION_SET = "arm" diff --git a/meta-oe/recipes-connectivity/mosquitto/files/build.patch b/meta-oe/recipes-connectivity/mosquitto/files/build.patch new file mode 100644 index 00000000000..0d0912b7ad6 --- /dev/null +++ b/meta-oe/recipes-connectivity/mosquitto/files/build.patch @@ -0,0 +1,94 @@ +From ebd7c8e548e9b8e096ee4c390173db9a701f2604 Mon Sep 17 00:00:00 2001 +From: Bruno Bottazzini +Date: Wed, 23 Mar 2016 11:18:26 -0300 +Subject: [PATCH] build + +Disable stripping and allow easily overriding prefix + +Upstream-Status: Pending + +Signed-off-by: Bruno Bottazzini +--- + client/Makefile | 4 ++-- + config.mk | 2 +- + lib/Makefile | 2 +- + lib/cpp/Makefile | 2 +- + src/Makefile | 4 ++-- + 5 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/client/Makefile b/client/Makefile +index bd65355..4e5a640 100644 +--- a/client/Makefile ++++ b/client/Makefile +@@ -24,8 +24,8 @@ client_shared.o : client_shared.c client + + install : all + $(INSTALL) -d ${DESTDIR}$(prefix)/bin +- $(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} mosquitto_pub ${DESTDIR}${prefix}/bin/mosquitto_pub +- $(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} mosquitto_sub ${DESTDIR}${prefix}/bin/mosquitto_sub ++ $(INSTALL) mosquitto_pub ${DESTDIR}${prefix}/bin/mosquitto_pub ++ $(INSTALL) mosquitto_sub ${DESTDIR}${prefix}/bin/mosquitto_sub + + uninstall : + -rm -f ${DESTDIR}${prefix}/bin/mosquitto_pub +diff --git a/config.mk b/config.mk +index c0f175f..3427b83 100644 +--- a/config.mk ++++ b/config.mk +@@ -241,7 +241,7 @@ ifeq ($(WITH_DOCS),yes) + endif + + INSTALL?=install +-prefix=/usr/local ++prefix?=/usr + mandir=${prefix}/share/man + localedir=${prefix}/share/locale + STRIP?=strip +diff --git a/lib/Makefile b/lib/Makefile +index 825fcea..9b7c05c 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -25,7 +25,7 @@ all : libmosquitto.so.${SOVERSION} libmo + + install : all + $(INSTALL) -d ${DESTDIR}$(prefix)/lib${LIB_SUFFIX}/ +- $(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} libmosquitto.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquitto.so.${SOVERSION} ++ $(INSTALL) libmosquitto.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquitto.so.${SOVERSION} + ln -sf libmosquitto.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquitto.so + $(INSTALL) -d ${DESTDIR}${prefix}/include/ + $(INSTALL) mosquitto.h ${DESTDIR}${prefix}/include/mosquitto.h +diff --git a/lib/cpp/Makefile b/lib/cpp/Makefile +index 8b627d3..cdb2923 100644 +--- a/lib/cpp/Makefile ++++ b/lib/cpp/Makefile +@@ -10,7 +10,7 @@ all : libmosquittopp.so.${SOVERSION} + + install : all + $(INSTALL) -d ${DESTDIR}$(prefix)/lib${LIB_SUFFIX}/ +- $(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} libmosquittopp.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so.${SOVERSION} ++ $(INSTALL) libmosquittopp.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so.${SOVERSION} + ln -sf libmosquittopp.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so + $(INSTALL) -d ${DESTDIR}${prefix}/include/ + $(INSTALL) mosquittopp.h ${DESTDIR}${prefix}/include/mosquittopp.h +diff --git a/src/Makefile b/src/Makefile +index 2cfb7d4..9a97644 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -103,12 +103,12 @@ mosquitto_passwd.o : mosquitto_passwd.c + + install : all + $(INSTALL) -d ${DESTDIR}$(prefix)/sbin +- $(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} mosquitto ${DESTDIR}${prefix}/sbin/mosquitto ++ $(INSTALL) mosquitto ${DESTDIR}${prefix}/sbin/mosquitto + $(INSTALL) -d ${DESTDIR}$(prefix)/include + $(INSTALL) mosquitto_plugin.h ${DESTDIR}${prefix}/include/mosquitto_plugin.h + ifeq ($(WITH_TLS),yes) + $(INSTALL) -d ${DESTDIR}$(prefix)/bin +- $(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} mosquitto_passwd ${DESTDIR}${prefix}/bin/mosquitto_passwd ++ $(INSTALL) mosquitto_passwd ${DESTDIR}${prefix}/bin/mosquitto_passwd + endif + + uninstall : +-- +2.7.1 + diff --git a/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init new file mode 100644 index 00000000000..d2a27b27328 --- /dev/null +++ b/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.init @@ -0,0 +1,89 @@ +#! /bin/sh + +# Based on the Debian initscript for mosquitto + +### BEGIN INIT INFO +# Provides: mosquitto +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: mosquitto MQTT v3.1 message broker +# Description: +# This is a message broker that supports version 3.1 of the MQ Telemetry +# Transport (MQTT) protocol. +# +# MQTT provides a method of carrying out messaging using a publish/subscribe +# model. It is lightweight, both in terms of bandwidth usage and ease of +# implementation. This makes it particularly useful at the edge of the network +# where a sensor or other simple device may be implemented using an arduino for +# example. +### END INIT INFO + +set -e + +PIDFILE=@LOCALSTATEDIR@/run/mosquitto.pid +DAEMON=@SBINDIR@/mosquitto + +# start and stop the mosquitto MQTT message broker + +test -x ${DAEMON} || exit 0 + +umask 022 + +. @SYSCONFDIR@/init.d/functions + +export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@" + +case "$1" in + start) + echo "Starting Mosquitto message broker" "mosquitto" + if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then + exit 0 + else + exit 1 + fi + ;; + stop) + echo "Stopping Mosquitto message broker" "mosquitto" + if start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE}; then + rm -f ${PIDFILE} + exit 0 + else + exit 1 + fi + ;; + + + reload|force-reload) + if [ -f ${PIDFILE} ] ; then + echo "Reloading configuration for mosquitto" + pid=`cat ${PIDFILE}` + kill -HUP $pid + else + echo "mosquitto does not seem to be running" + fi + ;; + + restart) + echo "Restarting Mosquitto message broker" "mosquitto" + if start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile ${PIDFILE}; then + rm -f ${PIDFILE} + fi + if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then + exit 0 + else + exit 1 + fi + ;; + + status) + status ${DAEMON} && exit 0 || exit $? + ;; + + *) + echo "Usage: $0 {start|stop|reload|force-reload|restart|status}" + exit 1 +esac + +exit 0 diff --git a/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service b/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service new file mode 100644 index 00000000000..25f68fae056 --- /dev/null +++ b/meta-oe/recipes-connectivity/mosquitto/files/mosquitto.service @@ -0,0 +1,15 @@ +[Unit] +Description=Mosquitto - lightweight server implementation of the MQTT and MQTT-SN protocols +ConditionPathExists=/etc/mosquitto/mosquitto.conf +After=network.target + +[Service] +Type=simple +ExecStartPre=/bin/rm -f /var/run/mosquitto.pid +ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf +ExecReload=/bin/kill -HUP $MAINPID +PIDFile=/var/run/mosquitto.pid +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb b/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb new file mode 100644 index 00000000000..7554248e48d --- /dev/null +++ b/meta-oe/recipes-connectivity/mosquitto/mosquitto_1.4.14.bb @@ -0,0 +1,80 @@ +SUMMARY = "Open source MQTT v3.1/3.1.1 implemention" +DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker that implements the MQ Telemetry Transport protocol version 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. " +HOMEPAGE = "http://mosquitto.org/" +SECTION = "console/network" +LICENSE = "EPL-1.0 | EDL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62ddc846179e908dc0c8efec4a42ef20 \ + file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \ + file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \ + file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \ +" + +SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \ + file://build.patch \ + file://mosquitto.service \ + file://mosquitto.init \ +" + +SRC_URI[md5sum] = "6b0966e93f118bc71ad7b61600a6c2d3" +SRC_URI[sha256sum] = "156b1fa731d12baad4b8b22f7b6a8af50ba881fc711b81e9919ec103cf2942d1" + +inherit systemd update-rc.d useradd + +PACKAGECONFIG ??= "ssl uuid" + +PACKAGECONFIG[dns-srv] = ",,c-ares" +PACKAGECONFIG[ssl] = ",,openssl" +PACKAGECONFIG[uuid] = ",,util-linux" +EXTRA_OEMAKE = "${@bb.utils.contains('PACKAGECONFIG', 'dns-srv', 'WITH_SRV=yes', 'WITH_SRV=no', d)} \ + WITH_DOCS=no \ + ${@bb.utils.contains('PACKAGECONFIG', 'ssl', 'WITH_TLS=yes WITH_TLS_PSK=yes', 'WITH_TLS=no WITH_TLS_PSK=no', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'uuid', 'WITH_UUID=yes', 'WITH_UUID=no', d)}" + +export LIB_SUFFIX="${@d.getVar('baselib', True).replace('lib', '')}" + +do_compile() { + oe_runmake PREFIX=${prefix} +} + +do_install() { + oe_runmake install DESTDIR=${D} + install -d ${D}${libdir} + install -m 0644 lib/libmosquitto.a ${D}${libdir}/ + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/mosquitto.service ${D}${systemd_unitdir}/system/ + + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto + sed -i -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ + -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + ${D}${sysconfdir}/init.d/mosquitto +} + +PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients" + +FILES_${PN} = "${sbindir}/mosquitto \ + ${bindir}/mosquitto_passwd \ + ${sysconfdir}/mosquitto \ + ${sysconfdir}/init.d \ + ${systemd_unitdir}/system/mosquitto.service \ +" + +FILES_libmosquitto1 = "${libdir}/libmosquitto.so.1" + +FILES_libmosquittopp1 = "${libdir}/libmosquittopp.so.1" + +FILES_${PN}-clients = "${bindir}/mosquitto_pub \ + ${bindir}/mosquitto_sub \ +" + +SYSTEMD_SERVICE_${PN} = "mosquitto.service" + +INITSCRIPT_NAME = "mosquitto" +INITSCRIPT_PARAMS = "defaults 30" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false \ + --user-group mosquitto" diff --git a/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch b/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch deleted file mode 100644 index e356e9b25bf..00000000000 --- a/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 10427a19302e871daeeb245581e930dc58195492 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Thu, 27 Feb 2014 12:59:03 +0100 -Subject: [PATCH] configure.ac: Check only for libsystemd not libsystemd-login - -* they were merged into libsystemd in systemd-209 - -Upstream-Status: Pending (it would need to be conditional on systemd version for upstream to accept this) - -Signed-off-by: Martin Jansa ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index cc66e9b..3fe958e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -283,7 +283,7 @@ AS_IF([! (echo "$with_session_tracking" | grep -q -E "^(systemd|consolekit|no)$" - AM_CONDITIONAL(SESSION_TRACKING_CK, test "$with_session_tracking" = "consolekit") - AM_CONDITIONAL(SESSION_TRACKING_SYSTEMD, test "xwith_session_tracking" = "systemd") - if test "$with_session_tracking" = "systemd"; then -- PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login]) -+ PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd]) - AC_SUBST(SYSTEMD_LOGIN_CFLAGS) - AC_SUBST(SYSTEMD_LOGIN_LIBS) - fi --- -1.9.0 - diff --git a/meta-oe/recipes-connectivity/networkmanager/networkmanager_0.9.8.10.bb b/meta-oe/recipes-connectivity/networkmanager/networkmanager_0.9.8.10.bb deleted file mode 100644 index 8d37c980e02..00000000000 --- a/meta-oe/recipes-connectivity/networkmanager/networkmanager_0.9.8.10.bb +++ /dev/null @@ -1,111 +0,0 @@ -SUMMARY = "NetworkManager" -SECTION = "net/misc" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b" - -DEPENDS = "libnl dbus dbus-glib udev wireless-tools nss util-linux ppp" - -inherit gnome gettext systemd - -SRC_URI = " \ - ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \ - file://0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch \ - file://0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch \ -" -SRC_URI[md5sum] = "aad2558887e25417c52eb2deaade2f85" -SRC_URI[sha256sum] = "064d27223d3824859df12e1fb25b787fec1c68bbc864dc52a0289b9211c4c972" - - -S = "${WORKDIR}/NetworkManager-${PV}" - -EXTRA_OECONF = " \ - --enable-ifupdown \ - --disable-ifcfg-rh \ - --disable-ifnet \ - --disable-ifcfg-suse \ - --with-netconfig \ - --with-crypto=nss \ - --disable-more-warnings \ - --with-dhclient=${base_sbindir}/dhclient \ - --with-iptables=${sbindir}/iptables \ - --with-tests \ - --with-dnsmasq=${bindir}/dnsmasq \ -" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES','systemd','systemd','consolekit',d)}" -PACKAGECONFIG[systemd] = " \ - --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \ - --without-systemdsystemunitdir, \ - polkit \ -" -# consolekit is not picked by shlibs, so add it to RDEPENDS too -PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit" -PACKAGECONFIG[concheck] = "--enable-concheck,--disable-concheck,libsoup-2.4" - -# Work around dbus permission problems since we lack a proper at_console -do_install_prepend() { - sed -i 's:deny send_destination:allow send_destination:g' ${S}/src/org.freedesktop.NetworkManager.conf - sed -i 's:deny send_destination:allow send_destination:g' ${S}/callouts/nm-dispatcher.conf - sed -i 's:deny send_destination:allow send_destination:g' ${S}/callouts/nm-dhcp-client.conf - sed -i 's:deny send_destination:allow send_destination:g' ${S}/callouts/nm-avahi-autoipd.conf -} - -do_install_append () { - install -d ${D}${sysconfdir}/dbus-1/event.d - # Additional test binaries - install -d ${D}${bindir} - install -m 0755 ${B}/test/.libs/libnm* ${D}${bindir} - - # Install an empty VPN folder as nm-connection-editor will happily segfault without it :o. - # With or without VPN support built in ;). - install -d ${D}${sysconfdir}/NetworkManager/VPN - - rm -rf "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" -} - -PACKAGES =+ "libnmutil libnmglib libnmglib-vpn ${PN}-tests ${PN}-bash-completion" - -FILES_libnmutil += "${libdir}/libnm-util.so.*" -FILES_libnmglib += "${libdir}/libnm-glib.so.*" -FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*" - -FILES_${PN} += " \ - ${libexecdir} \ - ${libdir}/pppd/*/nm-pppd-plugin.so \ - ${libdir}/NetworkManager/*.so \ - ${datadir}/polkit-1 \ - ${datadir}/dbus-1 \ - ${base_libdir}/udev/* \ - ${systemd_unitdir}/system/NetworkManager-wait-online.service \ -" - -RRECOMMENDS_${PN} += "iptables dnsmasq" -RCONFLICTS_${PN} = "connman" -RDEPENDS_${PN} = " \ - wpa-supplicant \ - dhcp-client \ - ${@base_contains('COMBINED_FEATURES', '3gmodem', 'ppp', '', d)} \ -" - -FILES_${PN}-dbg += " \ - ${libdir}/NetworkManager/.debug/ \ - ${libdir}/pppd/*/.debug/ \ -" - -FILES_${PN}-dev += " \ - ${datadir}/NetworkManager/gdb-cmd \ - ${libdir}/pppd/*/*.la \ - ${libdir}/NetworkManager/*.la \ -" - -FILES_${PN}-tests = " \ - ${bindir}/nm-tool \ - ${bindir}/libnm-glib-test \ - ${bindir}/nm-online \ -" - -FILES_${PN}-bash-completion = "${datadir}/bash-completion" - -SYSTEMD_SERVICE_${PN} = "NetworkManager.service" diff --git a/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch b/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch new file mode 100644 index 00000000000..e2c4e9ff6cd --- /dev/null +++ b/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch @@ -0,0 +1,20 @@ +Submitted By: Armin K. +Date: 2012-07-06 +Initial Package Version: 0.4.6 +Upstream Status: Unknown +Origin: Self +Description: Some build fixes. + +Index: obex-data-server-0.4.6/src/ods-obex.c +=================================================================== +--- obex-data-server-0.4.6.orig/src/ods-obex.c ++++ obex-data-server-0.4.6/src/ods-obex.c +@@ -412,7 +412,7 @@ ods_obex_setup_usbtransport (OdsObexCont + goto err; + } + +- interfaces_num = OBEX_FindInterfaces(obex_context->obex_handle, &obex_intf); ++ interfaces_num = OBEX_EnumerateInterfaces(obex_context->obex_handle); + if (intf_num >= interfaces_num) { + g_set_error (error, ODS_ERROR, ODS_ERROR_FAILED, "Invalid interface number"); + goto err; diff --git a/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb b/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb index afe6106890f..e10b89c367e 100644 --- a/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb +++ b/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb @@ -2,14 +2,15 @@ DESCRIPTION = "obex-data-server is a D-Bus service providing high-level OBEX cli LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "gtk+ bluez4 dbus-glib imagemagick openobex" -RCONFLICTS_${PN} = "bluez5" +DEPENDS = "gtk+ dbus-glib dbus-glib-native imagemagick openobex" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}" -SRC_URI = "http://tadas.dailyda.com/software/obex-data-server-${PV}.tar.gz" +SRC_URI = "http://tadas.dailyda.com/software/obex-data-server-${PV}.tar.gz \ + file://obex-data-server-0.4.6-build-fixes-1.patch \ +" SRC_URI[md5sum] = "961ca5db6fe9c97024e133cc6203cc4d" SRC_URI[sha256sum] = "b399465ddbd6d0217abedd9411d9d74a820effa0a6a142adc448268d3920094f" inherit autotools-brokensep pkgconfig FILES_${PN} += "${datadir}/dbus-1/" - diff --git a/meta-oe/recipes-connectivity/obex/openobex-1.5/disable-cable-test.patch b/meta-oe/recipes-connectivity/obex/openobex-1.5/disable-cable-test.patch deleted file mode 100644 index 95b636dd8fc..00000000000 --- a/meta-oe/recipes-connectivity/obex/openobex-1.5/disable-cable-test.patch +++ /dev/null @@ -1,16 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- openobex-1.2/apps/Makefile.am~disable-cable-test -+++ openobex-1.2/apps/Makefile.am -@@ -6,7 +6,7 @@ - obex_io.c obex_io.h \ - obex_put_common.c obex_put_common.h - --bin_PROGRAMS = irxfer obex_tcp irobex_palm3 obex_test -+bin_PROGRAMS = irxfer obex_tcp irobex_palm3 - - obex_test_SOURCES = \ - obex_test.c obex_test.h \ diff --git a/meta-oe/recipes-connectivity/obex/openobex-1.5/libusb_crosscompile_check.patch b/meta-oe/recipes-connectivity/obex/openobex-1.5/libusb_crosscompile_check.patch deleted file mode 100644 index 1177dfeac92..00000000000 --- a/meta-oe/recipes-connectivity/obex/openobex-1.5/libusb_crosscompile_check.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- /tmp/acinclude.m4 2009-04-12 10:32:15.000000000 +0200 -+++ openobex-1.5/acinclude.m4 2009-04-12 10:32:38.000000000 +0200 -@@ -158,7 +158,7 @@ - ;; - *) - PKG_CHECK_MODULES(USB, libusb, usb_lib_found=yes, AC_MSG_RESULT(no)) -- AC_CHECK_FILE(${prefix}/lib/pkgconfig/libusb.pc, REQUIRES="libusb") -+ REQUIRES="libusb" - ;; - esac - AC_SUBST(USB_CFLAGS) diff --git a/meta-oe/recipes-connectivity/obex/openobex-1.5/separate_builddir.patch b/meta-oe/recipes-connectivity/obex/openobex-1.5/separate_builddir.patch deleted file mode 100644 index 8abf8ae2421..00000000000 --- a/meta-oe/recipes-connectivity/obex/openobex-1.5/separate_builddir.patch +++ /dev/null @@ -1,16 +0,0 @@ -Fix detection of IrDA failing with B!=S - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton - ---- a/acinclude.m4 2014-05-24 14:05:41.757796816 +0100 -+++ b/acinclude.m4 2014-05-24 14:03:06.556795536 +0100 -@@ -54,6 +54,7 @@ - ]) - - AC_DEFUN([AC_PATH_IRDA_LINUX], [ -+ CPPFLAGS="${CPPFLAGS} -I${srcdir}" - AC_CACHE_CHECK([for IrDA support], irda_found, [ - AC_TRY_COMPILE([ - #include diff --git a/meta-oe/recipes-connectivity/obex/openobex_1.5.bb b/meta-oe/recipes-connectivity/obex/openobex_1.5.bb deleted file mode 100644 index b07779dd561..00000000000 --- a/meta-oe/recipes-connectivity/obex/openobex_1.5.bb +++ /dev/null @@ -1,33 +0,0 @@ -DESCRIPTION = "The Openobex project is an open source implementation of the \ -Object Exchange (OBEX) protocol." -HOMEPAGE = "http://openobex.triq.net" -SECTION = "libs" -DEPENDS = "virtual/libusb0 bluez4" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ - file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ -" - -SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/openobex-${PV}.tar.gz \ - file://disable-cable-test.patch \ - file://libusb_crosscompile_check.patch \ - file://separate_builddir.patch" - -SRC_URI[md5sum] = "0d83dc86445a46a1b9750107ba7ab65c" -SRC_URI[sha256sum] = "e602047570799a47ecb028420bda8f2cef41310e5a99d084de10aa9422935e65" - -inherit autotools binconfig pkgconfig - -EXTRA_OECONF = "--enable-apps --enable-syslog" - -do_install_append() { - install -d ${D}${datadir}/aclocal - install -m 0644 ${S}/openobex.m4 ${D}${datadir}/aclocal -} - -PACKAGES += "openobex-apps" -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${bindir}/openobex-config" -FILES_${PN}-apps = "${bindir}/*" -DEBIAN_NOAUTONAME_${PN}-apps = "1" - diff --git a/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb b/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb new file mode 100644 index 00000000000..2db48f3418f --- /dev/null +++ b/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "The Openobex project is an open source implementation of the \ +Object Exchange (OBEX) protocol." +HOMEPAGE = "http://openobex.triq.net" +SECTION = "libs" +DEPENDS = "virtual/libusb0" +DEPENDS_append_class-target = " ${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}" + +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \ +" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}-Source.tar.gz \ +" + +SRC_URI[md5sum] = "f6e0b6cb7dcfd731460a7e9a91429a3a" +SRC_URI[sha256sum] = "158860aaea52f0fce0c8e4b64550daaae06df2689e05834697b7e8c7d73dd4fc" + +inherit cmake pkgconfig + +S = "${WORKDIR}/${BP}-Source" + +EXTRA_OECONF = " -DCMAKE_SKIP_RPATH=ON " +EXTRA_OECMAKE += "-DBUILD_DOCUMENTATION=OFF" + +#--enable-apps --enable-syslog + +do_install_append () { + rmdir ${D}${bindir} +} + +PACKAGES =+ "openobex-apps" +FILES_${PN}-apps = "${bindir}/*" +FILES_${PN} += "${libdir}/lib*.so.*" +FILES_${PN}-dev += "${bindir}/openobex-config ${libdir}/cmake" +DEBIAN_NOAUTONAME_${PN}-apps = "1" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch b/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch new file mode 100644 index 00000000000..1f6de87c8de --- /dev/null +++ b/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch @@ -0,0 +1,66 @@ +From b8dc608dad7d9fc3a4c16acd0327d97b81c23b95 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 15 Nov 2016 01:32:31 +0000 +Subject: [PATCH] apps/CMakeLists.txt: Explicitly link libbfb and libmulticobex + +Transitive linking is disabled now for multicobex and +obexftp, This ends up with linking errors for apps, therefore +they are required to be added to link line explicitly. + +Signed-off-by: Khem Raj +--- + apps/CMakeLists.txt | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +Index: obexftp-0.24.2-Source/apps/CMakeLists.txt +=================================================================== +--- obexftp-0.24.2-Source.orig/apps/CMakeLists.txt ++++ obexftp-0.24.2-Source/apps/CMakeLists.txt +@@ -5,14 +5,23 @@ add_definitions( -DVERSION="${obexftp_VE + add_definitions ( -DHAVE_USB ) + + add_executable ( obexftp_app obexftp.c ) +-target_link_libraries ( obexftp_app obexftp ) ++target_link_libraries ( obexftp_app ++ PRIVATE multicobex ++ PRIVATE bfb ++ obexftp ++) + set_target_properties ( obexftp_app PROPERTIES + OUTPUT_NAME obexftp + ) + + + add_executable ( obexftpd_app obexftpd.c ) +-target_link_libraries ( obexftpd_app obexftp openobex ) ++target_link_libraries ( obexftpd_app ++ PRIVATE multicobex ++ PRIVATE bfb ++ obexftp ++ openobex ++) + set_target_properties ( obexftpd_app PROPERTIES + OUTPUT_NAME obexftpd + ) +Index: obexftp-0.24.2-Source/fuse/CMakeLists.txt +=================================================================== +--- obexftp-0.24.2-Source.orig/fuse/CMakeLists.txt ++++ obexftp-0.24.2-Source/fuse/CMakeLists.txt +@@ -13,6 +13,8 @@ if ( Fuse_FOUND ) + ) + + target_link_libraries ( obexfs ++ PRIVATE multicobex ++ PRIVATE bfb + obexftp + ${Fuse_LIBRARIES} + ${EXPAT_LIBRARIES} +@@ -23,6 +25,8 @@ if ( Fuse_FOUND ) + ) + + target_link_libraries ( obexautofs ++ PRIVATE multicobex ++ PRIVATE bfb + obexftp + ${Fuse_LIBRARIES} + ) diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch b/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch new file mode 100644 index 00000000000..84b143bf517 --- /dev/null +++ b/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch @@ -0,0 +1,24 @@ +Index: obexftp-0.24.2-Source/CMakeLists.txt +=================================================================== +--- obexftp-0.24.2-Source.orig/CMakeLists.txt ++++ obexftp-0.24.2-Source/CMakeLists.txt +@@ -58,9 +58,17 @@ add_subdirectory ( bfb ) + add_subdirectory ( multicobex ) + add_subdirectory ( obexftp ) + add_subdirectory ( apps ) +-add_subdirectory ( fuse ) +-add_subdirectory ( swig ) + add_subdirectory ( doc ) ++ ++option ( ENABLE_FUSE "Build the obexftp fuse module" OFF ) ++if ( ENABLE_FUSE ) ++ add_subdirectory ( fuse ) ++endif ( ENABLE_FUSE ) ++ ++option ( ENABLE_SWIG "Build the obexftp swig module" OFF ) ++if ( ENABLE_SWIG ) ++ add_subdirectory ( swig ) ++endif ( ENABLE_SWIG ) + #examples + + set ( prefix "${CMAKE_INSTALL_PREFIX}" ) diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp_0.23.bb b/meta-oe/recipes-connectivity/obexftp/obexftp_0.23.bb deleted file mode 100644 index b6bdfb7e436..00000000000 --- a/meta-oe/recipes-connectivity/obexftp/obexftp_0.23.bb +++ /dev/null @@ -1,16 +0,0 @@ -DESCRIPTION = "A tool for transfer files to/from any OBEX enabled device" -LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -DEPENDS += "openobex" - -SRC_URI = "http://sourceforge.net/projects/openobex/files/obexftp/${PV}/obexftp-${PV}.tar.bz2 \ - file://Remove_some_printf_in_obexftpd.patch " - -SRC_URI[md5sum] = "f20762061b68bc921e80be4aebc349eb" -SRC_URI[sha256sum] = "44a74ff288d38c0f75354d6bc2efe7d6dec10112eaff2e7b10e292b0d2105b36" - -inherit autotools pkgconfig - -EXTRA_OECONF += "--disable-tcl --disable-perl --disable-python --disable-ruby" - diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb b/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb new file mode 100644 index 00000000000..489861cb7bc --- /dev/null +++ b/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "A tool for transfer files to/from any OBEX enabled device" +LICENSE = "GPLv2 & PD & LGPLv2.1" +LIC_FILES_CHKSUM = "file://LGPL-2.1.txt;md5=4fbd65380cdd255951079008b364516c \ + file://GPL-2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://License.txt;md5=fcbddc3c1debed80dd80da2d3e5f0dc1 \ + " + +DEPENDS += "openobex obexftp-native" +SRC_URI = "http://downloads.sourceforge.net/openobex/${BP}-Source.tar.gz \ + file://Remove_some_printf_in_obexftpd.patch \ + file://0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch \ + file://make_fuse_swig_optional.patch \ +" +SRC_URI[md5sum] = "157a9d1b2ed220203f7084db906de73c" +SRC_URI[sha256sum] = "d40fb48e0a0eea997b3e582774b29f793919a625d54b87182e31a3f3d1c989a3" + +inherit cmake pkgconfig + +PACKAGECONFIG ?= "" +# fuse support will need meta-filesystems layer +PACKAGECONFIG[fuse] = "-DENABLE_FUSE=ON,-DENABLE_FUSE=OFF,fuse" +PACKAGECONFIG[swig] = "-DENABLE_SWIG=ON,-DENABLE_SWIG=OFF,swig" + +DEPENDS_remove_class-native = "fuse-native" + +S = "${WORKDIR}/${BP}-Source" + +EXTRA_OECMAKE += "-DCMAKE_SKIP_RPATH=ON \ + -DENABLE_PERL=OFF -DENABLE_PYTHON=OFF \ + -DENABLE_RUBY=OFF -DENABLE_TCL=OFF \ +" + +do_compile_class-native () { + oe_runmake crctable +} + +do_install_class-native () { + install -D -m 0755 ${B}/bfb/crctable ${D}${bindir}/crctable +} + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb b/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb new file mode 100644 index 00000000000..317f9728bf8 --- /dev/null +++ b/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb @@ -0,0 +1,37 @@ +# Copyright (C) 2014-2015 Freescale Semiconductor +# Released under the MIT license (see COPYING.MIT for the terms) + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SUMMARY = "Set of Bluetooth related tools for inclusion in images" +DESCRIPTION = "Includes bluetooth specific tools for this version of BlueZ.\ +These tools are used at runtime. \ +Supports BlueZ4 and BlueZ5." + +inherit packagegroup +inherit bluetooth + +RDEPENDS_bluez4 = " \ + obexftp \ +" + +RDEPENDS_bluez5 = " \ + bluez5-noinst-tools \ + bluez5-obex \ + bluez5-testtools \ + libasound-module-bluez \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', \ + 'pulseaudio-module-bluetooth-discover \ + pulseaudio-module-bluetooth-policy \ + pulseaudio-module-bluez5-discover \ + pulseaudio-module-bluez5-device \ + pulseaudio-module-switch-on-connect \ + pulseaudio-module-loopback', \ + '', d)} \ +" + +# Install bluez4 tools or bluez5 tools depending on what is specified in the distro. +# Otherwise install nothing. +RDEPENDS_${PN} = "${RDEPENDS_${BLUEZ}}" diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch b/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch new file mode 100644 index 00000000000..a31bfaa749f --- /dev/null +++ b/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch @@ -0,0 +1,25 @@ +Disable building some things we don't need + +Upstream-Status: Inappropriate [config] + +Signed-off-by: Paul Eggleton + +--- + Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 33bd2d0..84262bd 100644 +--- a/Makefile ++++ b/Makefile +@@ -115,7 +115,8 @@ LDFLAGS_AS = -shared -Wl,-soname,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -lpthread + + all: build + +-build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET} ${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS} ++build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET} ++#${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS} + + clean: + rm -rf ${blddir}/* +-- diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb new file mode 100644 index 00000000000..fec380ce6f1 --- /dev/null +++ b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols" +DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)." +HOMEPAGE = "http://www.eclipse.org/paho/" +SECTION = "console/network" +LICENSE = "EPL-1.0 | EDL-1.0" + +LIC_FILES_CHKSUM = " \ + file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \ + file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \ + file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \ + file://about.html;md5=dcde438d73cf42393da9d40fabc0c9bc \ +" + +SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http" + +SRCREV = "e8d34da24ad807f5e698b327d67591fd4b4bfa7e" + +DEPENDS = "openssl" + +S = "${WORKDIR}/git" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install() { + install -d ${D}${libdir} + oe_libinstall -C build/output -so libpaho-mqtt3a ${D}${libdir} + oe_libinstall -C build/output -so libpaho-mqtt3as ${D}${libdir} + oe_libinstall -C build/output -so libpaho-mqtt3c ${D}${libdir} + oe_libinstall -C build/output -so libpaho-mqtt3cs ${D}${libdir} + install -d ${D}${includedir} + install -m 644 src/MQTTAsync.h ${D}${includedir} + install -m 644 src/MQTTClient.h ${D}${includedir} + install -m 644 src/MQTTClientPersistence.h ${D}${includedir} +} + diff --git a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch b/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch new file mode 100644 index 00000000000..8bb7e5a1887 --- /dev/null +++ b/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch @@ -0,0 +1,25 @@ +From f7ad9a4471cee2324f216a0d82ba8097ec746c56 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 15 Jul 2017 11:48:12 -0700 +Subject: [PATCH] Include limits.h for PATH_MAX + +Signed-off-by: Khem Raj +--- + src/pnstat.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/pnstat.c b/src/pnstat.c +index 661a5bc..76068e6 100644 +--- a/src/pnstat.c ++++ b/src/pnstat.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + + struct fd + { +-- +2.13.3 + diff --git a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb b/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb index 55899639138..3c599950fe8 100644 --- a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb +++ b/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb @@ -2,7 +2,9 @@ SUMMARY = "This small package provides a few command line tools for Linux Phonet HOMEPAGE = "" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SRC_URI = "git://gitorious.org/meego-cellular/phonet-utils.git;branch=master" +SRC_URI = "git://gitorious.org/meego-cellular/phonet-utils.git;branch=master \ + file://0001-Include-limits.h-for-PATH_MAX.patch \ + " PR = "r2" S = "${WORKDIR}/git" SRCREV = "4acfa720fd37d178a048fc2be17180137d4a70ea" diff --git a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.6.0.bb b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.6.0.bb deleted file mode 100644 index cd68ba41f0a..00000000000 --- a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.6.0.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker" -HOMEPAGE = "https://github.com/alanxz/rabbitmq-c" -LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=6b7424f9db80cfb11fdd5c980b583f53" -LICENSE = "MIT" - -SRC_URI = "https://github.com/alanxz/${BPN}/releases/download/v${PV}/${BP}.tar.gz" -SRC_URI[md5sum] = "80b350ce0de3f44cbd7b501bbbd8daf3" -SRC_URI[sha256sum] = "3a89349880582c24d81d52ee42a93a0633dc366a4cc96174512af88c32509dc2" - -DEPENDS = "popt openssl" - -EXTRA_OECONF = "--disable-examples --enable-tools --disable-docs" - -inherit autotools pkgconfig - -PACKAGE_BEFORE_PN += "${PN}-tools" -FILES_${PN}-tools = "${bindir}" diff --git a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb new file mode 100644 index 00000000000..e9846fdea5a --- /dev/null +++ b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker" +HOMEPAGE = "https://github.com/alanxz/rabbitmq-c" +LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=6b7424f9db80cfb11fdd5c980b583f53" +LICENSE = "MIT" + +SRC_URI = "git://github.com/alanxz/rabbitmq-c.git" +SRCREV = "4dde30ce8d984edda540349f57eb7995a87ba9de" + +S = "${WORKDIR}/git" + +DEPENDS = "popt openssl" + +EXTRA_OECONF = "--disable-examples --enable-tools --disable-docs" + +inherit autotools pkgconfig + +PACKAGE_BEFORE_PN += "${PN}-tools" +FILES_${PN}-tools = "${bindir}" diff --git a/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.9.3.bb b/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.9.3.bb deleted file mode 100644 index eb0a39af5cc..00000000000 --- a/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.9.3.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Torrent client" -HOMEPAGE = "http://libtorrent.rakshasa.no/" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS = "libsigc++-2.0 curl cppunit libtorrent ncurses" - -SRC_URI = "http://libtorrent.rakshasa.no/downloads/${BP}.tar.gz \ - file://don-t-run-code-while-configuring-package.patch \ -" - -SRC_URI[md5sum] = "0bf2f262faa8c8c8d3b11ce286ea2bf2" -SRC_URI[sha256sum] = "9e93ca41beb1afe74ad7ad8013e0d53ae3586c9b0e97263d722f721535cc7310" - -inherit autotools pkgconfig diff --git a/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb b/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb new file mode 100644 index 00000000000..c731cf7079a --- /dev/null +++ b/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "Torrent client" +HOMEPAGE = "http://libtorrent.rakshasa.no/" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "libsigc++-2.0 curl cppunit libtorrent ncurses" + +SRC_URI = "git://github.com/rakshasa/rtorrent \ + file://don-t-run-code-while-configuring-package.patch \ +" +SRCREV = "226e670decf92e7adaa845a6982aca4f164ea740" + +PV = "0.9.6+git${SRCPV}" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" + +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +inherit autotools pkgconfig + +do_configure_prepend() { + (cd ${S}; ./autogen.sh; cd -) +} diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_221618_precise-64bit-prototype.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_221618_precise-64bit-prototype.patch deleted file mode 100644 index 31108f2e89a..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_221618_precise-64bit-prototype.patch +++ /dev/null @@ -1,20 +0,0 @@ -Description: 64 bit fix for libsmbclient -Author: Christian Perrier -Bug-Debian: http://bugs.debian.org/221618 -Forwarded: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=221618#27 - -Index: samba/source3/include/libsmbclient.h -=================================================================== ---- samba.orig/source3/include/libsmbclient.h -+++ samba/source3/include/libsmbclient.h -@@ -79,6 +79,10 @@ - #include - #include - -+ /* Debian bug #221618 */ -+#define _LARGEFILE64_SOURCE -+#define _FILE_OFFSET_BITS 64 -+ - #define SMBC_BASE_FD 10000 /* smallest file descriptor returned */ - - #define SMBC_WORKGROUP 1 diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_387266_upstream_4104_mention-kerberos-in-smbspool-manpage.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_387266_upstream_4104_mention-kerberos-in-smbspool-manpage.patch deleted file mode 100644 index d9cc633d483..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_387266_upstream_4104_mention-kerberos-in-smbspool-manpage.patch +++ /dev/null @@ -1,34 +0,0 @@ -Description: Add mention about some user for user information in smbspool manpage -Author: Christian Perrier -Bug-Debian: http://bugs.debian.org/387266 -Forwarded: yes -Bug: https://bugzilla.samba.org/show_bug.cgi?id=4104 - -Index: samba/docs-xml/manpages-3/smbspool.8.xml -=================================================================== ---- samba.orig/docs-xml/manpages-3/smbspool.8.xml -+++ samba/docs-xml/manpages-3/smbspool.8.xml -@@ -73,7 +73,9 @@ - - - The user argument (argv[2]) contains the -- print user's name and is presently not used by smbspool. -+ print user's name and is presently not used by smbspool -+ except in Kerberos environments to access the user's -+ ticket cache. - - - The title argument (argv[3]) contains the -Index: samba/docs/manpages/smbspool.8 -=================================================================== ---- samba.orig/docs/manpages/smbspool.8 -+++ samba/docs/manpages/smbspool.8 -@@ -114,7 +114,7 @@ - .sp -1 - .IP \(bu 2.3 - .\} --The user argument (argv[2]) contains the print user\*(Aqs name and is presently not used by smbspool\&. -+The user argument (argv[2]) contains the print user\*(Aqs name and is presently not used by smbspool except in Kerberos environments to access the user\'s ticket cache\&. - .RE - .sp - .RS 4 diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_598313_upstream_7499-nss_wins-dont-clobber-daemons-logs.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_598313_upstream_7499-nss_wins-dont-clobber-daemons-logs.patch deleted file mode 100644 index dcd94e425e4..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_598313_upstream_7499-nss_wins-dont-clobber-daemons-logs.patch +++ /dev/null @@ -1,47 +0,0 @@ -Description: nss_wins stop clobbering other daemon's log -Author: Christian Perrier ,Buchan Milne -Bug-Debian: http://bugs.debian.org/598313 -Forwarded: yes -Bug: https://bugzilla.samba.org/show_bug.cgi?id=7499 - -Index: samba/lib/util/debug.c -=================================================================== ---- samba.orig/lib/util/debug.c -+++ samba/lib/util/debug.c -@@ -474,15 +474,17 @@ - - if (state.logtype == DEBUG_FILE) { - #ifdef WITH_SYSLOG -- const char *p = strrchr_m( prog_name,'/' ); -- if (p) -- prog_name = p + 1; -+ if (prog_name) { -+ const char *p = strrchr_m( prog_name,'/' ); -+ if (p) -+ prog_name = p + 1; - #ifdef LOG_DAEMON -- openlog( prog_name, LOG_PID, SYSLOG_FACILITY ); -+ openlog( prog_name, LOG_PID, SYSLOG_FACILITY ); - #else -- /* for old systems that have no facility codes. */ -- openlog( prog_name, LOG_PID ); -+ /* for old systems that have no facility codes. */ -+ openlog( prog_name, LOG_PID ); - #endif -+ } - #endif - } - } -Index: samba/nsswitch/wins.c -=================================================================== ---- samba.orig/nsswitch/wins.c -+++ samba/nsswitch/wins.c -@@ -52,7 +52,7 @@ - lp_set_cmdline("log level", "0"); - - TimeInit(); -- setup_logging("nss_wins",False); -+ setup_logging(NULL,False); - lp_load(get_dyn_CONFIGFILE(),True,False,False,True); - load_interfaces(); - } diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_601406_fix-perl-path-in-example.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_601406_fix-perl-path-in-example.patch deleted file mode 100644 index ba8b1f42559..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_601406_fix-perl-path-in-example.patch +++ /dev/null @@ -1,15 +0,0 @@ -Description: Fix path to perl binary in example file -Author: Christian Perrier -Bug-Debian: http://bugs.debian.org/601406 -Forwarded: not-needed - -Index: samba/examples/misc/wall.perl -=================================================================== ---- samba.orig/examples/misc/wall.perl -+++ samba/examples/misc/wall.perl -@@ -1,4 +1,4 @@ --#!/usr/local/bin/perl -+#!/usr/bin/perl - # - #@(#) smb-wall.pl Description: - #@(#) A perl script which allows you to announce whatever you choose to diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_604768_upstream_7826_drop-using-samba-link.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_604768_upstream_7826_drop-using-samba-link.patch deleted file mode 100644 index 0c54b6b0b72..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_604768_upstream_7826_drop-using-samba-link.patch +++ /dev/null @@ -1,21 +0,0 @@ -Description: Drop Using Samba link in HTML documentation summary -Author: Christian Perrier -Bug-Debian: http://bugs.debian.org/604768 -Forwarded: yes -Bug: https://bugzilla.samba.org/show_bug.cgi?id=7826 - -Index: samba/docs/htmldocs/index.html -=================================================================== ---- samba.orig/docs/htmldocs/index.html -+++ samba/docs/htmldocs/index.html -@@ -23,10 +23,6 @@ - This book provides example configurations, it documents key aspects of Microsoft Windows networking, provides in-depth insight into the important configuration of Samba-3, and helps to put all of these into a useful framework. - - -- Using Samba, 2nd Edition -- Using Samba, Second Edition is a comprehensive guide to Samba administration. It covers all versions of Samba from 2.0 to 2.2, including selected features from an alpha version of 3.0, as well as the SWAT graphical configuration tool. Updated for Windows 2000, ME, and XP, the book also explores Samba's new role as a primary domain controller and domain member server, its support for the use of Windows NT/2000/XP authentication and filesystem security on the host Unix system, and accessing shared files and printers from Unix clients. -- -- - Man pages - The Samba man pages in HTML. - diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_604768_upstream_7826_fix-WHATSNEW-link.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_604768_upstream_7826_fix-WHATSNEW-link.patch deleted file mode 100644 index c7dd043fbed..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/bug_604768_upstream_7826_fix-WHATSNEW-link.patch +++ /dev/null @@ -1,18 +0,0 @@ -Description: Fix WHATSNEW.txt link in HTML documentation summary to fit Debian files organization -Author: Christian Perrier -Bug-Debian: http://bugs.debian.org/604768 -Forwarded: not-needed - -Index: samba/docs/htmldocs/index.html -=================================================================== ---- samba.orig/docs/htmldocs/index.html -+++ samba/docs/htmldocs/index.html -@@ -27,7 +27,7 @@ - The Samba man pages in HTML. - - -- WHATSNEW -+ WHATSNEW - Samba Release Notes. - - diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-disable-core_pattern-cross-check.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-disable-core_pattern-cross-check.patch deleted file mode 100644 index 2d96189732e..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-disable-core_pattern-cross-check.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- samba-3.6.8/source3/configure.orig 2012-10-01 16:28:17.559074996 -0300 -+++ samba-3.6.8/source3/configure 2012-10-01 16:39:07.747700087 -0300 -@@ -16718,7 +16718,7 @@ - ################################################# - # Check to see if core dump directory is defined in linux - # with /proc/sys/kernel/core_pattern -- -+if false; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /proc/sys/kernel/core_pattern" >&5 - $as_echo_n "checking for /proc/sys/kernel/core_pattern... " >&6; } - if ${ac_cv_file__proc_sys_kernel_core_pattern+:} false; then : -@@ -16739,7 +16739,7 @@ - $as_echo "#define HAVE_SYS_KERNEL_PROC_CORE_PATTERN 1" >>confdefs.h - - fi -- -+fi - - ############################# - # check if building with gpfs diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-disable-getaddrinfo-cross.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-disable-getaddrinfo-cross.patch deleted file mode 100644 index 84ecd498f59..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-disable-getaddrinfo-cross.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- samba-3.6.6/source3/configure.orig 2012-10-01 15:50:15.371574883 -0300 -+++ samba-3.6.6/source3/configure 2012-10-01 15:50:35.563699659 -0300 -@@ -13302,7 +13302,7 @@ - # getaddrinfo is broken on some AIX systems - # see bug 5910, use our replacements if we detect - # a broken system. -- if test "$cross_compiling" = yes; then : -+ if test "$cross_compiling" = foo; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - as_fn_error "cannot run test program while cross compiling diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-libunwind.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-libunwind.patch deleted file mode 100644 index 9a2cb00eba5..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/configure-libunwind.patch +++ /dev/null @@ -1,82 +0,0 @@ -samba: add --enable-libunwind option - -Upstream-Status: Pending - -This let the end user explicitly enable/disable libunwind support. ---- - configure | 28 ++++++++++++++++++++++++++-- - 1 file changed, 26 insertions(+), 2 deletions(-) - -diff -urpN a/source3/configure b/source3/configure ---- a/source3/configure -+++ b/source3/configure -@@ -1007,6 +1007,7 @@ with_included_iniparser - with_static_modules - with_shared_modules - enable_dmalloc -+enable_libunwind - ' - ac_precious_vars='build_alias - host_alias -@@ -1670,6 +1671,7 @@ Optional Features: - --enable-avahi Enable Avahi support (default=auto) - --enable-pthreadpool Enable pthreads pool helper support (default=no) - --enable-dmalloc Enable heap debugging [default=no] -+ --enable-libunwind Enable libunwind support if available (default=no) - - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -@@ -16458,7 +16460,7 @@ done - - - # Find a method of generating a stack trace --for ac_header in execinfo.h libexc.h libunwind.h -+for ac_header in execinfo.h libexc.h - do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` - ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -@@ -16684,6 +16686,13 @@ fi - - LIBS="$save_LIBS" - -+# Check whether --enable-libunwind was given. -+if test "${enable_libunwind+set}" = set; then : -+ enableval=$enable_libunwind; -+fi -+ -+if test "x$enable_libunwind" != xno -+then - # Note that all the libunwind symbols in the API are defined to internal - # platform-specific version, so we must include libunwind.h before checking - # any of them. -@@ -16691,6 +16700,21 @@ LIBS="$save_LIBS" - $as_echo_n "checking for libunwind... " >&6; } - save_LIBS=$LIBS - -+# Check for libunwind.h present -+for ac_header in libunwind.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+ -+done -+ - UNWIND_ARCH="unknown" - if test x"$UNAME_I" != x"unknown"; then - UNWIND_ARCH="$UNAME_I" -@@ -16877,7 +16901,7 @@ fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi -- -+fi - - - for ac_func in _dup _dup2 _opendir _readdir _seekdir _telldir _closedir diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/documentation.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/documentation.patch deleted file mode 100644 index 73111fed727..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/documentation.patch +++ /dev/null @@ -1,302 +0,0 @@ -Description: Remove documentation parts that do not apply to Debian -Author: Christian Perrier -Forwarded: not-needed - -Index: experimental/docs/manpages/swat.8 -=================================================================== ---- experimental.orig/docs/manpages/swat.8 -+++ experimental/docs/manpages/swat.8 -@@ -120,86 +120,6 @@ - .RS 4 - Print a summary of command line options\&. - .RE --.SH "INSTALLATION" --.PP --Swat is included as binary package with most distributions\&. The package manager in this case takes care of the installation and configuration\&. This section is only for those who have compiled swat from scratch\&. --.PP --After you compile SWAT you need to run --make install --to install the --swat --binary and the various help files and images\&. A default install would put these in: --.sp --.RS 4 --.ie n \{\ --\h'-04'\(bu\h'+03'\c --.\} --.el \{\ --.sp -1 --.IP \(bu 2.3 --.\} --/usr/local/samba/sbin/swat --.RE --.sp --.RS 4 --.ie n \{\ --\h'-04'\(bu\h'+03'\c --.\} --.el \{\ --.sp -1 --.IP \(bu 2.3 --.\} --/usr/local/samba/swat/images/* --.RE --.sp --.RS 4 --.ie n \{\ --\h'-04'\(bu\h'+03'\c --.\} --.el \{\ --.sp -1 --.IP \(bu 2.3 --.\} --/usr/local/samba/swat/help/* --.RE --.sp --.RE --.SS "Inetd Installation" --.PP --You need to edit your --/etc/inetd\&.conf --and --/etc/services --to enable SWAT to be launched via --inetd\&. --.PP --In --/etc/services --you need to add a line like this: --.PP --swat 901/tcp --.PP --Note for NIS/YP and LDAP users \- you may need to rebuild the NIS service maps rather than alter your local --/etc/services --file\&. --.PP --the choice of port number isn\*(Aqt really important except that it should be less than 1024 and not currently used (using a number above 1024 presents an obscure security hole depending on the implementation details of your --inetd --daemon)\&. --.PP --In --/etc/inetd\&.conf --you should add a line like this: --.PP --swat stream tcp nowait\&.400 root /usr/local/samba/sbin/swat swat --.PP --Once you have edited --/etc/services --and --/etc/inetd\&.conf --you need to send a HUP signal to inetd\&. To do this use --kill \-1 PID --where PID is the process ID of the inetd daemon\&. - .SH "LAUNCHING" - .PP - To launch SWAT just run your favorite web browser and point it at "http://localhost:901/"\&. -@@ -217,14 +137,11 @@ - This file must contain a mapping of service name (e\&.g\&., swat) to service port (e\&.g\&., 901) and protocol type (e\&.g\&., tcp)\&. - .RE - .PP --/usr/local/samba/lib/smb\&.conf -+/etc/samba/smb\&.conf - .RS 4 - This is the default location of the - \fBsmb.conf\fR(5) --server configuration file that swat edits\&. Other common places that systems install this file are --/usr/samba/lib/smb\&.conf --and --/etc/smb\&.conf\&. This file describes all the services the server is to make available to clients\&. -+server configuration file that swat edits\&. This file describes all the services the server is to make available to clients\&. - .RE - .SH "WARNINGS" - .PP -Index: experimental/docs/manpages/nmbd.8 -=================================================================== ---- experimental.orig/docs/manpages/nmbd.8 -+++ experimental/docs/manpages/nmbd.8 -@@ -115,10 +115,7 @@ - to answer any name queries\&. Adding a line to this file affects name NetBIOS resolution from this host - \fIONLY\fR\&. - .sp --The default path to this file is compiled into Samba as part of the build process\&. Common defaults are --/usr/local/samba/lib/lmhosts, --/usr/samba/lib/lmhosts --or -+The default path to this file is - /etc/samba/lmhosts\&. See the - \fBlmhosts\fR(5) - man page for details on the contents of this file\&. -@@ -187,14 +184,11 @@ - inetd, this file must contain a mapping of service name (e\&.g\&., netbios\-ssn) to service port (e\&.g\&., 139) and protocol type (e\&.g\&., tcp)\&. - .RE - .PP --/usr/local/samba/lib/smb\&.conf -+/etc/samba/smb\&.conf - .RS 4 - This is the default location of the - \fBsmb.conf\fR(5) --server configuration file\&. Other common places that systems install this file are --/usr/samba/lib/smb\&.conf --and --/etc/samba/smb\&.conf\&. -+server configuration file\&. - .sp - When run as a WINS server (see the - \m[blue]\fBwins support\fR\m[] -@@ -238,10 +232,8 @@ - will accept SIGHUP, which will cause it to dump out its namelists into the file - namelist\&.debug - in the --/usr/local/samba/var/locks --directory (or the --var/locks --directory configured under wherever Samba was configured to install itself)\&. This will also cause -+/var/run/samba -+directory\&. This will also cause - nmbd - to dump out its server database in the - log\&.nmb -Index: experimental/docs/manpages/smbd.8 -=================================================================== ---- experimental.orig/docs/manpages/smbd.8 -+++ experimental/docs/manpages/smbd.8 -@@ -169,14 +169,11 @@ - inetd, this file must contain a mapping of service name (e\&.g\&., netbios\-ssn) to service port (e\&.g\&., 139) and protocol type (e\&.g\&., tcp)\&. - .RE - .PP --/usr/local/samba/lib/smb\&.conf -+/etc/samba/smb\&.conf - .RS 4 - This is the default location of the - \fBsmb.conf\fR(5) --server configuration file\&. Other common places that systems install this file are --/usr/samba/lib/smb\&.conf --and --/etc/samba/smb\&.conf\&. -+server configuration file\&. - .sp - This file describes all the services the server is to make available to clients\&. See - \fBsmb.conf\fR(5) -Index: experimental/docs/manpages/lmhosts.5 -=================================================================== ---- experimental.orig/docs/manpages/lmhosts.5 -+++ experimental/docs/manpages/lmhosts.5 -@@ -96,10 +96,8 @@ - file\&. - .SH "FILES" - .PP --lmhosts is loaded from the configuration directory\&. This is usually --/etc/samba --or --/usr/local/samba/lib\&. -+lmhosts is loaded from the configuration directory\&. This is -+/etc/samba\&. - .SH "VERSION" - .PP - This man page is correct for version 3 of the Samba suite\&. -Index: experimental/docs/manpages/ntlm_auth.1 -=================================================================== ---- experimental.orig/docs/manpages/ntlm_auth.1 -+++ experimental/docs/manpages/ntlm_auth.1 -@@ -43,7 +43,7 @@ - Some of these commands also require access to the directory - winbindd_privileged - in --$LOCKDIR\&. This should be done either by running this command as root or providing group access to the -+/var/run/samba\F[]\&. This should be done either by running this command as root or providing group access to the - winbindd_privileged - directory\&. For security reasons, this directory should not be world\-accessable\&. - .SH "OPTIONS" -@@ -69,7 +69,7 @@ - Requires access to the directory - winbindd_privileged - in --$LOCKDIR\&. The protocol used is described here: -+/var/run/samba\&. The protocol used is described here: - http://devel\&.squid\-cache\&.org/ntlm/squid_helper_protocol\&.html\&. This protocol has been extended to allow the NTLMSSP Negotiate packet to be included as an argument to the - YR - command\&. (Thus avoiding loss of information in the protocol exchange)\&. -@@ -92,7 +92,7 @@ - Requires access to the directory - winbindd_privileged - in --$LOCKDIR\&. -+/var/run/samba\&. - .RE - .PP - gss\-spnego\-client -Index: experimental/docs/manpages/tdbbackup.8 -=================================================================== ---- experimental.orig/docs/manpages/tdbbackup.8 -+++ experimental/docs/manpages/tdbbackup.8 -@@ -77,7 +77,7 @@ - .\} - - secrets\&.tdb --\- usual location is in the /usr/local/samba/private directory, or on some systems in /etc/samba\&. -+\- usual location is in the /var/lib/samba directory\&. - .RE - .sp - .RS 4 -@@ -90,7 +90,7 @@ - .\} - - passdb\&.tdb --\- usual location is in the /usr/local/samba/private directory, or on some systems in /etc/samba\&. -+\- usual location is in the /var/lib/samba directory\&. - .RE - .sp - .RS 4 -@@ -103,7 +103,7 @@ - .\} - - *\&.tdb --located in the /usr/local/samba/var directory or on some systems in the /var/cache or /var/lib/samba directories\&. -+located in the /var/lib/samba and /var/run/samba directories\&. - .RE - .SH "VERSION" - .PP -Index: experimental/docs/manpages/winbindd.8 -=================================================================== ---- experimental.orig/docs/manpages/winbindd.8 -+++ experimental/docs/manpages/winbindd.8 -@@ -539,16 +539,16 @@ - file are owned by root\&. - .RE - .PP --$LOCKDIR/winbindd_privileged/pipe -+/var/run/samba/winbindd_privileged/pipe - .RS 4 - The UNIX pipe over which \*(Aqprivileged\*(Aq clients communicate with the - winbindd - program\&. For security reasons, access to some winbindd functions \- like those needed by the - ntlm_auth --utility \- is restricted\&. By default, only users in the \*(Aqroot\*(Aq group will get this access, however the administrator may change the group permissions on $LOCKDIR/winbindd_privileged to allow programs like \*(Aqsquid\*(Aq to use ntlm_auth\&. Note that the winbind client will only attempt to connect to the winbindd daemon if both the --$LOCKDIR/winbindd_privileged -+utility \- is restricted\&. By default, only users in the \'root\' group will get this access, however the administrator may change the group permissions on /var/run/samba/winbindd_privileged to allow programs like \'squid\' to use ntlm_auth\&. Note that the winbind client will only attempt to connect to the winbindd daemon if both the -+/var/run/samba/winbindd_privileged - directory and --$LOCKDIR/winbindd_privileged/pipe -+/var/run/samba/winbindd_privileged/pipe - file are owned by root\&. - .RE - .PP -@@ -557,15 +557,12 @@ - Implementation of name service switch library\&. - .RE - .PP --$LOCKDIR/winbindd_idmap\&.tdb -+/var/run/samba/winbindd_idmap\&.tdb - .RS 4 --Storage for the Windows NT rid to UNIX user/group id mapping\&. The lock directory is specified when Samba is initially compiled using the --\fI\-\-with\-lockdir\fR --option\&. This directory is by default --/usr/local/samba/var/locks\&. -+Storage for the Windows NT rid to UNIX user/group id mapping\&. - .RE - .PP --$LOCKDIR/winbindd_cache\&.tdb -+/var/run/samba/winbindd_cache\&.tdb - .RS 4 - Storage for cached user and group information\&. - .RE diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/documentation2.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/documentation2.patch deleted file mode 100644 index af8da32d50c..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/documentation2.patch +++ /dev/null @@ -1,314 +0,0 @@ -Description: Remove documentation parts that do not apply to Debian -Author: Christian Perrier -Bug: https://bugzilla.samba.org/show_bug.cgi?id=8789 -Forwarded: yes - -Index: samba/docs-xml/manpages-3/nmbd.8.xml -=================================================================== ---- samba.orig/docs-xml/manpages-3/nmbd.8.xml -+++ samba/docs-xml/manpages-3/nmbd.8.xml -@@ -266,7 +266,6 @@ - 8, smb.conf - 5, smbclient - 1, testparm -- 1, testprns - 1, and the Internet - RFC's rfc1001.txt, rfc1002.txt. - In addition the CIFS (formerly SMB) specification is available -Index: samba/docs-xml/manpages-3/samba.7.xml -=================================================================== ---- samba.orig/docs-xml/manpages-3/samba.7.xml -+++ samba/docs-xml/manpages-3/samba.7.xml -@@ -76,16 +76,6 @@ - - - -- testprns -- 1 -- The testprns -- utility supports testing printer names defined -- in your printcap file used -- by Samba. -- -- -- -- - smbstatus - 1 - The smbstatus -@@ -125,7 +115,8 @@ - 1 - The smbsh command is - a program that allows you to run a unix shell with -- with an overloaded VFS. -+ with an overloaded VFS. Note that, it is not installed by -+ the current samba package. - - - -Index: samba/docs-xml/manpages-3/smb.conf.5.xml -=================================================================== ---- samba.orig/docs-xml/manpages-3/smb.conf.5.xml -+++ samba/docs-xml/manpages-3/smb.conf.5.xml -@@ -856,7 +856,6 @@ - 8, smbclient - 1, nmblookup - 1, testparm -- 1, testprns - 1. - - -Index: samba/docs-xml/manpages-3/smbd.8.xml -=================================================================== ---- samba.orig/docs-xml/manpages-3/smbd.8.xml -+++ samba/docs-xml/manpages-3/smbd.8.xml -@@ -417,7 +417,6 @@ - 8, smb.conf - 5, smbclient - 1, testparm -- 1, testprns - 1, and the - Internet RFC's rfc1001.txt, rfc1002.txt. - In addition the CIFS (formerly SMB) specification is available -Index: samba/docs-xml/using_samba/appd.xml -=================================================================== ---- samba.orig/docs-xml/using_samba/appd.xml -+++ samba/docs-xml/using_samba/appd.xml -@@ -296,7 +296,7 @@ - - - The smbsh --smbsh program program lets you use a remote Windows share on your Samba server as if the share was a regular Unix directory. When it's run, it provides an extra directory tree under /smb. Subdirectories of /smb are servers, and subdirectories of the servers are their individual disk and printer shares. Commands run by smbsh treat the /smb filesystem as if it were local to Unix. This means that you don't need smbmount in your kernel to mount Windows filesystems the way you mount with NFS filesystems. However, you do need to configure Samba with the --with-smbwrappers option to enable smbsh. -+smbsh program program (not available in this samba package) lets you use a remote Windows share on your Samba server as if the share was a regular Unix directory. When it's run, it provides an extra directory tree under /smb. Subdirectories of /smb are servers, and subdirectories of the servers are their individual disk and printer shares. Commands run by smbsh treat the /smb filesystem as if it were local to Unix. This means that you don't need smbmount in your kernel to mount Windows filesystems the way you mount with NFS filesystems. However, you do need to configure Samba with the --with-smbwrappers option to enable smbsh. - - - -@@ -1320,24 +1320,6 @@ - - - -- -- -- -- --testprns -- -- --Thetestprns program --printersnameschecking testprns program checks a specified printer name against the system printer capabilities (printcap) file. Its command line is: -- -- --testprns printername [printcapname] -- -- --If the printcapname isn't specified, Samba attempts to use one located in the smb.conf file. If one isn't specified there, Samba will try /etc/printcap. If that fails, the program will generate an error. -- -- -- - - - -Index: samba/docs-xml/using_samba/ch01.xml -=================================================================== ---- samba.orig/docs-xml/using_samba/ch01.xml -+++ samba/docs-xml/using_samba/ch01.xml -@@ -1375,12 +1375,6 @@ - - - --testprns --A program that tests whether various printers are recognized by the smbd daemon -- -- -- -- - Each significant release of Samba goes through a significant exposure test before it's announced. In addition, it is quickly updated afterward if problems or unwanted side-effects are found. The latest stable distribution as of this writing is Samba 2.0.5, the long-awaited production version of Samba 2.0. This book focuses on the functionality supported in Samba 2.0, as opposed to the older 1.9.x versions of Samba, which are now obsolete. - - -Index: samba/docs-xml/using_samba/ch07.xml -=================================================================== ---- samba.orig/docs-xml/using_samba/ch07.xml -+++ samba/docs-xml/using_samba/ch07.xml -@@ -306,7 +306,7 @@ - public: true - - --Second, try the command testprns printername. This is a simple program that verifies that the specified printer is available in your printcap file. If your printcap file is not in the usual place, you can specify its full pathname as the second argument to the testprns command: -+Second, try the command testprns printername. Note: This command is not available in this package. This is a simple program that verifies that the specified printer is available in your printcap file. If your printcap file is not in the usual place, you can specify its full pathname as the second argument to the testprns command: - - - # testprns lp /etc/printcap -Index: samba/docs/htmldocs/manpages/nmbd.8.html -=================================================================== ---- samba.orig/docs/htmldocs/manpages/nmbd.8.html -+++ samba/docs/htmldocs/manpages/nmbd.8.html -@@ -131,7 +131,7 @@ - transient problems to be diagnosed, whilst still running - at a normally low log level.

VERSION

This man page is correct for version 3 of - the Samba suite.

SEE ALSO

-- inetd(8), smbd(8), smb.conf(5), smbclient(1), testparm(1), testprns(1), and the Internet -+ inetd(8), smbd(8), smb.conf(5), smbclient(1), testparm(1), and the Internet - RFC's rfc1001.txt, rfc1002.txt. - In addition the CIFS (formerly SMB) specification is available - as a link from the Web page -Index: samba/docs/htmldocs/manpages/samba.7.html -=================================================================== ---- samba.orig/docs/htmldocs/manpages/samba.7.html -+++ samba/docs/htmldocs/manpages/samba.7.html -@@ -17,10 +17,7 @@ - servers (such as Windows NT), and can also be used - to allow a UNIX box to print to a printer attached to - any SMB server (such as a PC running Windows NT).

testparm(1)

The testparm -- utility is a simple syntax checker for Samba's smb.conf(5) configuration file.

testprns(1)

The testprns -- utility supports testing printer names defined -- in your printcap file used -- by Samba.

smbstatus(1)

The smbstatus -+ utility is a simple syntax checker for Samba's smb.conf(5) configuration file.

smbstatus(1)

The smbstatus - tool provides access to information about the - current connections to smbd.

nmblookup(1)

The nmblookup - tools allows NetBIOS name queries to be made -@@ -29,7 +26,8 @@ - password hashes on Samba and Windows NT servers.

smbcacls(1)

The smbcacls command is - a tool to set ACL's on remote CIFS servers.

smbsh(1)

The smbsh command is - a program that allows you to run a unix shell with -- with an overloaded VFS.

smbtree(1)

The smbtree command -+ with an overloaded VFS. Note that, it is not installed by -+ the current samba package.

smbtree(1)

The smbtree command - is a text-based network neighborhood tool.

smbtar(1)

The smbtar can make - backups of data on CIFS/SMB servers.

smbspool(8)

smbspool is a - helper utility for printing on printers connected -Index: samba/docs/htmldocs/manpages/smb.conf.5.html -=================================================================== ---- samba.orig/docs/htmldocs/manpages/smb.conf.5.html -+++ samba/docs/htmldocs/manpages/smb.conf.5.html -@@ -6964,7 +6964,7 @@ - care when designing these sections. In particular, ensure that the permissions on spool directories are - correct. -

VERSION

This man page is correct for version 3 of the Samba suite.

AUTHOR

- The original Samba software and related utilities were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar to the way the Linux kernel is developed. -

-Index: samba/docs/htmldocs/manpages/smbd.8.html -=================================================================== ---- samba.orig/docs/htmldocs/manpages/smbd.8.html -+++ samba/docs/htmldocs/manpages/smbd.8.html -@@ -147,7 +147,7 @@ - smbd is in a state of waiting for an incoming SMB before - issuing them. It is possible to make the signal handlers safe - by un-blocking the signals before the select call and re-blocking -- them after, however this would affect performance.

SEE ALSO

hosts_access(5), inetd(8), nmbd(8), smb.conf(5), smbclient(1), testparm(1), testprns(1), and the -+ them after, however this would affect performance.

SEE ALSO

hosts_access(5), inetd(8), nmbd(8), smb.conf(5), smbclient(1), testparm(1), and the - Internet RFC's rfc1001.txt, rfc1002.txt. - In addition the CIFS (formerly SMB) specification is available - as a link from the Web page -Index: samba/docs/manpages/nmbd.8 -=================================================================== ---- samba.orig/docs/manpages/nmbd.8 -+++ samba/docs/manpages/nmbd.8 -@@ -252,8 +252,7 @@ - \fBsmbd\fR(8), - \fBsmb.conf\fR(5), - \fBsmbclient\fR(1), --\fBtestparm\fR(1), --\fBtestprns\fR(1), and the Internet RFC\*(Aqs -+\fBtestparm\fR(1), and the Internet RFC\*(Aqs - rfc1001\&.txt, - rfc1002\&.txt\&. In addition the CIFS (formerly SMB) specification is available as a link from the Web page - http://samba\&.org/cifs/\&. -Index: samba/docs/manpages/samba.7 -=================================================================== ---- samba.orig/docs/manpages/samba.7 -+++ samba/docs/manpages/samba.7 -@@ -60,15 +60,6 @@ - configuration file\&. - .RE - .PP --\fBtestprns\fR(1) --.RS 4 --The --testprns --utility supports testing printer names defined in your --printcap --file used by Samba\&. --.RE --.PP - \fBsmbstatus\fR(1) - .RS 4 - The -@@ -102,7 +93,7 @@ - .RS 4 - The - smbsh --command is a program that allows you to run a unix shell with with an overloaded VFS\&. -+command is a program that allows you to run a unix shell with with an overloaded VFS. Note that, it is not installed by the current samba package\&. - .RE - .PP - \fBsmbtree\fR(1) -Index: samba/docs/manpages/smb.conf.5 -=================================================================== ---- samba.orig/docs/manpages/smb.conf.5 -+++ samba/docs/manpages/smb.conf.5 -@@ -11021,8 +11021,7 @@ - \fBnmbd\fR(8), - \fBsmbclient\fR(1), - \fBnmblookup\fR(1), --\fBtestparm\fR(1), --\fBtestprns\fR(1)\&. -+\fBtestparm\fR(1)\&. - .SH "AUTHOR" - .PP - The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&. -Index: samba/docs/manpages/smbd.8 -=================================================================== ---- samba.orig/docs/manpages/smbd.8 -+++ samba/docs/manpages/smbd.8 -@@ -370,8 +370,7 @@ - \fBnmbd\fR(8), - \fBsmb.conf\fR(5), - \fBsmbclient\fR(1), --\fBtestparm\fR(1), --\fBtestprns\fR(1), and the Internet RFC\*(Aqs -+\fBtestparm\fR(1), and the Internet RFC\*(Aqs - rfc1001\&.txt, - rfc1002\&.txt\&. In addition the CIFS (formerly SMB) specification is available as a link from the Web page - http://samba\&.org/cifs/\&. -Index: samba/examples/tridge/smb.conf -=================================================================== ---- samba.orig/examples/tridge/smb.conf -+++ samba/examples/tridge/smb.conf -@@ -31,14 +31,6 @@ - print ok = yes - print command = xmenu -heading "%s" OK& - --[testprn] -- comment = Test printer -- path = /tmp -- user = susan -- print ok = yes -- print command = cp %s /tmp/smb.%U.prn -- lpq command = cat /tmp/xxyz -- - [amd] - comment = amd area - path = /mount -Index: samba/swat/lang/tr/help/welcome.html -=================================================================== ---- samba.orig/swat/lang/tr/help/welcome.html -+++ samba/swat/lang/tr/help/welcome.html -@@ -40,7 +40,6 @@ -

    -
  • smbstatus - Samba gözlemcisi -
  • testparm - ayar dosyasını kontrol eder --
  • testprns - yazıcı ayarlarını kontrol eder -
  • nmblookup - NetBIOS isim sorgulama aracı -
-
  • Kitaplar -@@ -66,4 +65,4 @@ - - EÄŸer SWAT'ın bu sürümü ile ilgili konuları tartışmak istiyorsanız, lütfen - samba eposta listesine üye olun. -- -\ No newline at end of file -+ diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/dont-build-VFS-examples.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/dont-build-VFS-examples.patch deleted file mode 100644 index beff7db676b..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/dont-build-VFS-examples.patch +++ /dev/null @@ -1,31 +0,0 @@ -Description: Do not build VFS examples -Author: Christian Perrier -Forwarded: not-needed - -Index: samba/source3/Makefile.in -=================================================================== ---- samba.orig/source3/Makefile.in -+++ samba/source3/Makefile.in -@@ -1616,8 +1616,7 @@ - - - everything:: all libtalloc libsmbclient libnetapi debug2html smbfilter talloctort replacetort smbconftort modules torture \ -- $(EVERYTHING_PROGS) \ -- vfs_examples -+ $(EVERYTHING_PROGS) - - .SUFFIXES: - .SUFFIXES: .c .o .lo -@@ -3552,12 +3551,3 @@ - bin/ndrdump4: $(BINARY_PREREQS) - $(MAKE) -f Makefile-smbtorture4 bin/ndrdump4 - --.PHONY: vfs_examples -- --vfs_examples: -- ( \ -- cd ../examples/VFS && \ -- ./configure && \ -- make clean && \ -- make \ -- ) diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/fhs-filespaths.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/fhs-filespaths.patch deleted file mode 100644 index e7c6b9995ec..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/fhs-filespaths.patch +++ /dev/null @@ -1,65 +0,0 @@ -Description: Prepare the sources to better respect FHS - This patch was historically very long but most parts have - been integrated upstream. - . - The last remaining bit is the location of "private files - We historically have them in /var/lib/samba while upstream - has them in /etc/samba - . - We need to provide a migraiton path and go back to the "normal" - file layout -Author: Eloy A. Paris -Bug-Debian: http://bugs.debian.org/49011 -Forwarded: not-needed - - -Index: samba/source3/passdb/pdb_tdb.c -=================================================================== ---- samba.orig/source3/passdb/pdb_tdb.c -+++ samba/source3/passdb/pdb_tdb.c -@@ -1260,7 +1260,7 @@ - /* save the path for later */ - - if (!location) { -- if (asprintf(&tdbfile, "%s/%s", lp_private_dir(), -+ if (asprintf(&tdbfile, "%s/%s", lp_statedir(), - PASSDB_FILE_NAME) < 0) { - return NT_STATUS_NO_MEMORY; - } -Index: samba/source3/passdb/secrets.c -=================================================================== ---- samba.orig/source3/passdb/secrets.c -+++ samba/source3/passdb/secrets.c -@@ -64,7 +64,7 @@ - return True; - - fname = talloc_asprintf(talloc_tos(), "%s/secrets.tdb", -- lp_private_dir()); -+ lp_statedir()); - if (fname == NULL) { - return false; - } -Index: samba/docs/manpages/smb.conf.5 -=================================================================== ---- samba.orig/docs/manpages/smb.conf.5 -+++ samba/docs/manpages/smb.conf.5 -@@ -7167,7 +7167,7 @@ - .\} - tdbsam - \- The TDB based password storage backend\&. Takes a path to the TDB as an optional argument (defaults to passdb\&.tdb in the --\m[blue]\fBprivate dir\fR\m[] -+\m[blue]\fBstate directory\fR\m[] - directory\&. - .RE - .sp -@@ -8038,9 +8038,7 @@ - .PP - .RS 4 - This parameters defines the directory smbd will use for storing such files as --smbpasswd --and --secrets\&.tdb\&. -+smbpasswd\&. secrets\&.tdb is stored in state directory on Debian systems\&. - .sp - Default: - \fI\fIprivate dir\fR\fR\fI = \fR\fI${prefix}/private\fR\fI \fR diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/installswat.sh.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/installswat.sh.patch deleted file mode 100644 index 3f08e493ade..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/installswat.sh.patch +++ /dev/null @@ -1,23 +0,0 @@ -Description: Do not install the Using Samba book when installing SWAT - Using Samba is packaged in samba-doc, however upstream also - installs it in SWAT install dirs -Author: Christian Perrier -Forwarded: not-needed - -Index: experimental/source3/script/installswat.sh -=================================================================== ---- experimental.orig/source3/script/installswat.sh -+++ experimental/source3/script/installswat.sh -@@ -198,7 +198,11 @@ - - # Install/ remove Using Samba book (but only if it is there) - --if [ "x$BOOKDIR" != "x" -a -f $SRCDIR../docs/htmldocs/using_samba/toc.html ]; then -+# Under Debian we don't actually install the book. The book is part of -+# the samba-doc package, so we just provide a symlink that points to -+# where the book is actually installed. The symlink is created in -+# debian/rules. -+if /bin/false; then - - # Create directories - diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/libutil_drop_AI_ADDRCONFIG.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/libutil_drop_AI_ADDRCONFIG.patch deleted file mode 100644 index d3473ea402f..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/libutil_drop_AI_ADDRCONFIG.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 185cd4c79492a7de5988f9407d764cdb3a0e2e10 Mon Sep 17 00:00:00 2001 -From: Simo Sorce -Date: Wed, 11 May 2011 17:50:07 -0400 -Subject: [PATCH] libutil: use AI_ADDRCONFIG only when AI_NUMERIC is not defined - -This flag prevents startup w/o ip addresses assigned to any interface. -If AI_NUMERIC is passed it should be safe to avoid it. - -Signed-off-by: Andreas Schneider ---- - lib/util/util_net.c | 16 +++++++++++----- - 1 files changed, 11 insertions(+), 5 deletions(-) - -Index: samba/lib/util/util_net.c -=================================================================== ---- samba.orig/lib/util/util_net.c -+++ samba/lib/util/util_net.c -@@ -64,10 +64,9 @@ - ppres); - - if (ret) { -- DEBUG(3,("interpret_string_addr_internal: getaddrinfo failed " -- "for name %s [%s]\n", -- str, -- gai_strerror(ret) )); -+ DEBUG(3, ("interpret_string_addr_internal: " -+ "getaddrinfo failed for name %s (flags %d) [%s]\n", -+ str, flags, gai_strerror(ret))); - return false; - } - return true; -@@ -88,6 +87,7 @@ - #if defined(HAVE_IPV6) - char addr[INET6_ADDRSTRLEN]; - unsigned int scope_id = 0; -+ int int_flags; - - if (strchr_m(str, ':')) { - char *p = strchr_m(str, '%'); -@@ -108,7 +108,13 @@ - - zero_sockaddr(pss); - -- if (!interpret_string_addr_internal(&res, str, flags|AI_ADDRCONFIG)) { -+ if (flags & AI_NUMERICHOST) { -+ int_flags = flags; -+ } else { -+ int_flags = flags|AI_ADDRCONFIG; -+ } -+ -+ if (!interpret_string_addr_internal(&res, str, int_flags)) { - return false; - } - if (!res) { diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/only_export_public_symbols.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/only_export_public_symbols.patch deleted file mode 100644 index f4fbd56a157..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/only_export_public_symbols.patch +++ /dev/null @@ -1,21 +0,0 @@ -Description: only export public symbols - Force usage of the symbols list when linking shared libraries. Otherwise, - private symbols get exported in libsmbclient and libwbclient. -Forwarded: no -Author: Ivo De Decker -Last-Update: 2012-06-27 - ---- samba-3.6.6.orig/source3/Makefile.in -+++ samba-3.6.6/source3/Makefile.in -@@ -28,8 +28,9 @@ SHLD=@SHLD@ - LIB_PATH_VAR=@LIB_PATH_VAR@ - - ## Dynamic shared libraries build settings --DSO_EXPORTS_CMD=-Wl,--version-script,$(srcdir)/exports/`basename $@ | sed 's:\.@SHLIBEXT@[\.0-9]*$$:.@SYMSEXT@:'` --DSO_EXPORTS=@DSO_EXPORTS@ -+# force using syms file -+DSO_EXPORTS=-Wl,--version-script,$(srcdir)/exports/`basename $@ | sed 's:\.@SHLIBEXT@[\.0-9]*$$:.@SYMSEXT@:'` -+#DSO_EXPORTS=@DSO_EXPORTS@ - SHLD_DSO = $(SHLD) $(LDSHFLAGS) $(DSO_EXPORTS) -o $@ - - # The MODULE_EXPORTS variable contains the platform-specific linker flags diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/pam-examples.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/pam-examples.patch deleted file mode 100644 index 9b36e14e3c1..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/pam-examples.patch +++ /dev/null @@ -1,17 +0,0 @@ -Description: Fix examples directory location in pam_smbpass README -Author: Christian Perrier -Forwarded: not-needed - -Index: experimental/source3/pam_smbpass/README -=================================================================== ---- experimental.orig/source3/pam_smbpass/README -+++ experimental/source3/pam_smbpass/README -@@ -37,7 +37,7 @@ - smbconf= - specify an alternate path to the smb.conf - file. - --See the samples/ directory for example PAM configurations using this -+See the examples/ directory for example PAM configurations using this - module. - - Thanks go to the following people: diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/shadow_copy2_backport.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/shadow_copy2_backport.patch deleted file mode 100644 index dbd10489fab..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/shadow_copy2_backport.patch +++ /dev/null @@ -1,2101 +0,0 @@ -Description: Backport new shadow_copy2 implementation from master - The shadow_copy2 vfs module in samba 3.6 doesn't work if wide links is - disabled. This problem is fixed by a rewrite in the master branch. - This patch is a backport of this new version to samba 3.6. - It is based on these commits in the upstream samba git: - dc461cade5becec21f8d1f2bb74fcf1a977a5ec2 - 617b63658b02957422359a76fd8b8e4748d228ee -Author: Ivo De Decker -Origin: upstream -Bug: https://bugzilla.samba.org/show_bug.cgi?id=7287 -Forwarded: not-needed -Last-Update: 2012-05-27 - ---- samba-3.6.5.orig/source3/modules/vfs_shadow_copy2.c -+++ samba-3.6.5/source3/modules/vfs_shadow_copy2.c -@@ -1,32 +1,29 @@ --/* -- * implementation of an Shadow Copy module - version 2 -+/* -+ * Third attempt at a shadow copy module - * -- * Copyright (C) Andrew Tridgell 2007 -- * Copyright (C) Ed Plese 2009 -+ * Copyright (C) Andrew Tridgell 2007 (portions taken from shadow_copy2) -+ * Copyright (C) Ed Plese 2009 -+ * Copyright (C) Volker Lendecke 2011 -+ * Copyright (C) Christian Ambach 2011 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. -- * -+ * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. -- * -+ * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - --#include "includes.h" --#include "smbd/smbd.h" --#include "system/filesys.h" --#include "ntioctl.h" -- - /* - -- This is a 2nd implemetation of a shadow copy module for exposing -+ This is a 3rd implemetation of a shadow copy module for exposing - snapshots to windows clients as shadow copies. This version has the - following features: - -@@ -96,243 +93,169 @@ - The following command would generate a correctly formatted directory name - for use with the default parameters: - date -u +@GMT-%Y.%m.%d-%H.%M.%S -- - */ - --static int vfs_shadow_copy2_debug_level = DBGC_VFS; -- --#undef DBGC_CLASS --#define DBGC_CLASS vfs_shadow_copy2_debug_level -+#include "includes.h" -+#include "system/filesys.h" -+#include "include/ntioctl.h" -+#include "smbd/proto.h" -+#include -+#include "util_tdb.h" - - #define GMT_NAME_LEN 24 /* length of a @GMT- name */ --#define SHADOW_COPY2_GMT_FORMAT "@GMT-%Y.%m.%d-%H.%M.%S" -- --#define SHADOW_COPY2_DEFAULT_SORT NULL --#define SHADOW_COPY2_DEFAULT_FORMAT "@GMT-%Y.%m.%d-%H.%M.%S" --#define SHADOW_COPY2_DEFAULT_LOCALTIME false -+#define GMT_FORMAT "@GMT-%Y.%m.%d-%H.%M.%S" - --/* -- make very sure it is one of our special names -- */ --static inline bool shadow_copy2_match_name(const char *name, const char **gmt_start) -+static bool shadow_copy2_find_slashes(TALLOC_CTX *mem_ctx, const char *str, -+ size_t **poffsets, -+ unsigned *pnum_offsets) - { -- unsigned year, month, day, hr, min, sec; -+ unsigned num_offsets; -+ size_t *offsets; - const char *p; -- if (gmt_start) { -- (*gmt_start) = NULL; -- } -- p = strstr_m(name, "@GMT-"); -- if (p == NULL) return false; -- if (p > name && p[-1] != '/') return False; -- if (sscanf(p, "@GMT-%04u.%02u.%02u-%02u.%02u.%02u", &year, &month, -- &day, &hr, &min, &sec) != 6) { -- return False; -- } -- if (p[24] != 0 && p[24] != '/') { -- return False; -- } -- if (gmt_start) { -- (*gmt_start) = p; -- } -- return True; --} - --static char *shadow_copy2_snapshot_to_gmt(TALLOC_CTX *mem_ctx, -- vfs_handle_struct *handle, const char *name) --{ -- struct tm timestamp; -- time_t timestamp_t; -- char gmt[GMT_NAME_LEN + 1]; -- const char *fmt; -+ num_offsets = 0; - -- fmt = lp_parm_const_string(SNUM(handle->conn), "shadow", -- "format", SHADOW_COPY2_DEFAULT_FORMAT); -+ p = str; -+ while ((p = strchr(p, '/')) != NULL) { -+ num_offsets += 1; -+ p += 1; -+ } - -- ZERO_STRUCT(timestamp); -- if (strptime(name, fmt, ×tamp) == NULL) { -- DEBUG(10, ("shadow_copy2_snapshot_to_gmt: no match %s: %s\n", -- fmt, name)); -- return NULL; -+ offsets = talloc_array(mem_ctx, size_t, num_offsets); -+ if (offsets == NULL) { -+ return false; - } - -- DEBUG(10, ("shadow_copy2_snapshot_to_gmt: match %s: %s\n", fmt, name)); -- if (lp_parm_bool(SNUM(handle->conn), "shadow", "localtime", -- SHADOW_COPY2_DEFAULT_LOCALTIME)) -- { -- timestamp.tm_isdst = -1; -- timestamp_t = mktime(×tamp); -- gmtime_r(×tamp_t, ×tamp); -+ p = str; -+ num_offsets = 0; -+ while ((p = strchr(p, '/')) != NULL) { -+ offsets[num_offsets] = p-str; -+ num_offsets += 1; -+ p += 1; - } -- strftime(gmt, sizeof(gmt), SHADOW_COPY2_GMT_FORMAT, ×tamp); - -- return talloc_strdup(mem_ctx, gmt); -+ *poffsets = offsets; -+ *pnum_offsets = num_offsets; -+ return true; - } - --/* -- shadow copy paths can also come into the server in this form: -- -- /foo/bar/@GMT-XXXXX/some/file -- -- This function normalises the filename to be of the form: -- -- @GMT-XXXX/foo/bar/some/file -- */ --static const char *shadow_copy2_normalise_path(TALLOC_CTX *mem_ctx, const char *path, const char *gmt_start) -+static char *shadow_copy2_insert_string(TALLOC_CTX *mem_ctx, -+ struct vfs_handle_struct *handle, -+ time_t snapshot) - { -- char *pcopy; -- char buf[GMT_NAME_LEN]; -- size_t prefix_len; -+ struct tm snap_tm; -+ fstring gmt; -+ size_t gmt_len; - -- if (path == gmt_start) { -- return path; -+ if (localtime_r(&snapshot, &snap_tm) == 0) { -+ DEBUG(10, ("gmtime_r failed\n")); -+ return NULL; - } -- -- prefix_len = gmt_start - path - 1; -- -- DEBUG(10, ("path=%s, gmt_start=%s, prefix_len=%d\n", path, gmt_start, -- (int)prefix_len)); -- -- /* -- * We've got a/b/c/@GMT-YYYY.MM.DD-HH.MM.SS/d/e. convert to -- * @GMT-YYYY.MM.DD-HH.MM.SS/a/b/c/d/e before further -- * processing. As many VFS calls provide a const char *, -- * unfortunately we have to make a copy. -- */ -- -- pcopy = talloc_strdup(talloc_tos(), path); -- if (pcopy == NULL) { -+ gmt_len = strftime(gmt, sizeof(gmt), -+ lp_parm_const_string(SNUM(handle->conn), "shadow", -+ "format", GMT_FORMAT), -+ &snap_tm); -+ if (gmt_len == 0) { -+ DEBUG(10, ("strftime failed\n")); - return NULL; - } -- -- gmt_start = pcopy + prefix_len; -- -- /* -- * Copy away "@GMT-YYYY.MM.DD-HH.MM.SS" -- */ -- memcpy(buf, gmt_start+1, GMT_NAME_LEN); -- -- /* -- * Make space for it including a trailing / -- */ -- memmove(pcopy + GMT_NAME_LEN + 1, pcopy, prefix_len); -- -- /* -- * Move in "@GMT-YYYY.MM.DD-HH.MM.SS/" at the beginning again -- */ -- memcpy(pcopy, buf, GMT_NAME_LEN); -- pcopy[GMT_NAME_LEN] = '/'; -- -- DEBUG(10, ("shadow_copy2_normalise_path: %s -> %s\n", path, pcopy)); -- -- return pcopy; -+ return talloc_asprintf(talloc_tos(), "/%s/%s", -+ lp_parm_const_string( -+ SNUM(handle->conn), "shadow", "snapdir", -+ ".snapshots"), -+ gmt); - } - --/* -- convert a name to the shadow directory -- */ -+static bool shadow_copy2_strip_snapshot(TALLOC_CTX *mem_ctx, -+ struct vfs_handle_struct *handle, -+ const char *name, -+ time_t *ptimestamp, -+ char **pstripped) -+{ -+ struct tm tm; -+ time_t timestamp; -+ const char *p; -+ char *q; -+ char *stripped; -+ size_t rest_len, dst_len; - --#define _SHADOW2_NEXT(op, args, rtype, eret, extra) do { \ -- const char *name = fname; \ -- const char *gmt_start; \ -- if (shadow_copy2_match_name(fname, &gmt_start)) { \ -- char *name2; \ -- rtype ret; \ -- name2 = convert_shadow2_name(handle, fname, gmt_start); \ -- if (name2 == NULL) { \ -- errno = EINVAL; \ -- return eret; \ -- } \ -- name = name2; \ -- ret = SMB_VFS_NEXT_ ## op args; \ -- talloc_free(name2); \ -- if (ret != eret) extra; \ -- return ret; \ -- } else { \ -- return SMB_VFS_NEXT_ ## op args; \ -- } \ --} while (0) -- --#define _SHADOW2_NEXT_SMB_FNAME(op, args, rtype, eret, extra) do { \ -- const char *gmt_start; \ -- if (shadow_copy2_match_name(smb_fname->base_name, &gmt_start)) { \ -- char *name2; \ -- char *smb_base_name_tmp = NULL; \ -- rtype ret; \ -- name2 = convert_shadow2_name(handle, smb_fname->base_name, gmt_start); \ -- if (name2 == NULL) { \ -- errno = EINVAL; \ -- return eret; \ -- } \ -- smb_base_name_tmp = smb_fname->base_name; \ -- smb_fname->base_name = name2; \ -- ret = SMB_VFS_NEXT_ ## op args; \ -- smb_fname->base_name = smb_base_name_tmp; \ -- talloc_free(name2); \ -- if (ret != eret) extra; \ -- return ret; \ -- } else { \ -- return SMB_VFS_NEXT_ ## op args; \ -- } \ --} while (0) -+ p = strstr_m(name, "@GMT-"); -+ if (p == NULL) { -+ goto no_snapshot; -+ } -+ if ((p > name) && (p[-1] != '/')) { -+ goto no_snapshot; -+ } -+ q = strptime(p, GMT_FORMAT, &tm); -+ if (q == NULL) { -+ goto no_snapshot; -+ } -+ tm.tm_isdst = -1; -+ timestamp = mktime(&tm); -+ if (timestamp == (time_t)-1) { -+ goto no_snapshot; -+ } -+ if ((p == name) && (q[0] == '\0')) { -+ if (pstripped != NULL) { -+ stripped = talloc_strdup(mem_ctx, ""); -+ if (stripped == NULL) { -+ return false; -+ } -+ *pstripped = stripped; -+ } -+ *ptimestamp = timestamp; -+ return true; -+ } -+ if (q[0] != '/') { -+ goto no_snapshot; -+ } -+ q += 1; - --/* -- convert a name to the shadow directory: NTSTATUS-specific handling -- */ -+ rest_len = strlen(q); -+ dst_len = (p-name) + rest_len; -+ -+ if (lp_parm_bool(SNUM(handle->conn), "shadow", "snapdirseverywhere", -+ false)) { -+ char *insert; -+ bool have_insert; -+ insert = shadow_copy2_insert_string(talloc_tos(), handle, -+ timestamp); -+ if (insert == NULL) { -+ errno = ENOMEM; -+ return false; -+ } - --#define _SHADOW2_NTSTATUS_NEXT(op, args, eret, extra) do { \ -- const char *name = fname; \ -- const char *gmt_start; \ -- if (shadow_copy2_match_name(fname, &gmt_start)) { \ -- char *name2; \ -- NTSTATUS ret; \ -- name2 = convert_shadow2_name(handle, fname, gmt_start); \ -- if (name2 == NULL) { \ -- errno = EINVAL; \ -- return eret; \ -- } \ -- name = name2; \ -- ret = SMB_VFS_NEXT_ ## op args; \ -- talloc_free(name2); \ -- if (!NT_STATUS_EQUAL(ret, eret)) extra; \ -- return ret; \ -- } else { \ -- return SMB_VFS_NEXT_ ## op args; \ -- } \ --} while (0) -- --#define SHADOW2_NTSTATUS_NEXT(op, args, eret) _SHADOW2_NTSTATUS_NEXT(op, args, eret, ) -- --#define SHADOW2_NEXT(op, args, rtype, eret) _SHADOW2_NEXT(op, args, rtype, eret, ) -- --#define SHADOW2_NEXT_SMB_FNAME(op, args, rtype, eret) _SHADOW2_NEXT_SMB_FNAME(op, args, rtype, eret, ) -- --#define SHADOW2_NEXT2(op, args) do { \ -- const char *gmt_start1, *gmt_start2; \ -- if (shadow_copy2_match_name(oldname, &gmt_start1) || \ -- shadow_copy2_match_name(newname, &gmt_start2)) { \ -- errno = EROFS; \ -- return -1; \ -- } else { \ -- return SMB_VFS_NEXT_ ## op args; \ -- } \ --} while (0) -- --#define SHADOW2_NEXT2_SMB_FNAME(op, args) do { \ -- const char *gmt_start1, *gmt_start2; \ -- if (shadow_copy2_match_name(smb_fname_src->base_name, &gmt_start1) || \ -- shadow_copy2_match_name(smb_fname_dst->base_name, &gmt_start2)) { \ -- errno = EROFS; \ -- return -1; \ -- } else { \ -- return SMB_VFS_NEXT_ ## op args; \ -- } \ --} while (0) -+ have_insert = (strstr(name, insert+1) != NULL); -+ TALLOC_FREE(insert); -+ if (have_insert) { -+ goto no_snapshot; -+ } -+ } - -+ if (pstripped != NULL) { -+ stripped = talloc_array(mem_ctx, char, dst_len+1); -+ if (stripped == NULL) { -+ errno = ENOMEM; -+ return false; -+ } -+ if (p > name) { -+ memcpy(stripped, name, p-name); -+ } -+ if (rest_len > 0) { -+ memcpy(stripped + (p-name), q, rest_len); -+ } -+ stripped[dst_len] = '\0'; -+ *pstripped = stripped; -+ } -+ *ptimestamp = timestamp; -+ return true; -+no_snapshot: -+ *ptimestamp = 0; -+ return true; -+} - --/* -- find the mount point of a filesystem -- */ --static char *find_mount_point(TALLOC_CTX *mem_ctx, vfs_handle_struct *handle) -+static char *shadow_copy2_find_mount_point(TALLOC_CTX *mem_ctx, -+ vfs_handle_struct *handle) - { - char *path = talloc_strdup(mem_ctx, handle->conn->connectpath); - dev_t dev; -@@ -358,164 +281,152 @@ static char *find_mount_point(TALLOC_CTX - } - } - -- return path; -+ return path; - } - --/* -- work out the location of the snapshot for this share -- */ --static const char *shadow_copy2_find_snapdir(TALLOC_CTX *mem_ctx, vfs_handle_struct *handle) --{ -- const char *snapdir; -- char *mount_point; -- const char *ret; -- -- snapdir = lp_parm_const_string(SNUM(handle->conn), "shadow", "snapdir", NULL); -- if (snapdir == NULL) { -- return NULL; -- } -- /* if its an absolute path, we're done */ -- if (*snapdir == '/') { -- return snapdir; -+static char *shadow_copy2_convert(TALLOC_CTX *mem_ctx, -+ struct vfs_handle_struct *handle, -+ const char *name, time_t timestamp) -+{ -+ struct smb_filename converted_fname; -+ char *result = NULL; -+ size_t *slashes = NULL; -+ unsigned num_slashes; -+ char *path = NULL; -+ size_t pathlen; -+ char *insert = NULL; -+ char *converted = NULL; -+ size_t insertlen; -+ int i, saved_errno; -+ size_t min_offset; -+ -+ path = talloc_asprintf(mem_ctx, "%s/%s", handle->conn->connectpath, -+ name); -+ if (path == NULL) { -+ errno = ENOMEM; -+ goto fail; -+ } -+ pathlen = talloc_get_size(path)-1; -+ -+ DEBUG(10, ("converting %s\n", path)); -+ -+ if (!shadow_copy2_find_slashes(talloc_tos(), path, -+ &slashes, &num_slashes)) { -+ goto fail; -+ } -+ insert = shadow_copy2_insert_string(talloc_tos(), handle, timestamp); -+ if (insert == NULL) { -+ goto fail; -+ } -+ insertlen = talloc_get_size(insert)-1; -+ converted = talloc_array(mem_ctx, char, pathlen + insertlen + 1); -+ if (converted == NULL) { -+ goto fail; -+ } -+ -+ if (path[pathlen-1] != '/') { -+ /* -+ * Append a fake slash to find the snapshot root -+ */ -+ size_t *tmp; -+ tmp = talloc_realloc(talloc_tos(), slashes, -+ size_t, num_slashes+1); -+ if (tmp == NULL) { -+ goto fail; -+ } -+ slashes = tmp; -+ slashes[num_slashes] = pathlen; -+ num_slashes += 1; - } - -- /* other its relative to the filesystem mount point */ -- mount_point = find_mount_point(mem_ctx, handle); -- if (mount_point == NULL) { -- return NULL; -- } -+ min_offset = 0; - -- ret = talloc_asprintf(mem_ctx, "%s/%s", mount_point, snapdir); -- talloc_free(mount_point); -- return ret; --} -- --/* -- work out the location of the base directory for snapshots of this share -- */ --static const char *shadow_copy2_find_basedir(TALLOC_CTX *mem_ctx, vfs_handle_struct *handle) --{ -- const char *basedir = lp_parm_const_string(SNUM(handle->conn), "shadow", "basedir", NULL); -+ if (!lp_parm_bool(SNUM(handle->conn), "shadow", "crossmountpoints", -+ false)) { -+ char *mount_point; - -- /* other its the filesystem mount point */ -- if (basedir == NULL) { -- basedir = find_mount_point(mem_ctx, handle); -+ mount_point = shadow_copy2_find_mount_point(talloc_tos(), -+ handle); -+ if (mount_point == NULL) { -+ goto fail; -+ } -+ min_offset = strlen(mount_point); -+ TALLOC_FREE(mount_point); - } - -- return basedir; --} -+ memcpy(converted, path, pathlen+1); -+ converted[pathlen+insertlen] = '\0'; - --/* -- convert a filename from a share relative path, to a path in the -- snapshot directory -- */ --static char *convert_shadow2_name(vfs_handle_struct *handle, const char *fname, const char *gmt_path) --{ -- TALLOC_CTX *tmp_ctx = talloc_new(handle->data); -- const char *snapdir, *relpath, *baseoffset, *basedir; -- size_t baselen; -- char *ret, *prefix; -+ ZERO_STRUCT(converted_fname); -+ converted_fname.base_name = converted; - -- struct tm timestamp; -- time_t timestamp_t; -- char snapshot[MAXPATHLEN]; -- const char *fmt; -+ for (i = num_slashes-1; i>=0; i--) { -+ int ret; -+ size_t offset; - -- fmt = lp_parm_const_string(SNUM(handle->conn), "shadow", -- "format", SHADOW_COPY2_DEFAULT_FORMAT); -+ offset = slashes[i]; - -- snapdir = shadow_copy2_find_snapdir(tmp_ctx, handle); -- if (snapdir == NULL) { -- DEBUG(2,("no snapdir found for share at %s\n", handle->conn->connectpath)); -- talloc_free(tmp_ctx); -- return NULL; -- } -- -- basedir = shadow_copy2_find_basedir(tmp_ctx, handle); -- if (basedir == NULL) { -- DEBUG(2,("no basedir found for share at %s\n", handle->conn->connectpath)); -- talloc_free(tmp_ctx); -- return NULL; -- } -- -- prefix = talloc_asprintf(tmp_ctx, "%s/@GMT-", snapdir); -- if (strncmp(fname, prefix, (talloc_get_size(prefix)-1)) == 0) { -- /* this looks like as we have already normalized it, leave it untouched*/ -- talloc_free(tmp_ctx); -- return talloc_strdup(handle->data, fname); -- } -- -- if (strncmp(fname, "@GMT-", 5) != 0) { -- fname = shadow_copy2_normalise_path(tmp_ctx, fname, gmt_path); -- if (fname == NULL) { -- talloc_free(tmp_ctx); -- return NULL; -+ if (offset < min_offset) { -+ errno = ENOENT; -+ goto fail; - } -- } - -- ZERO_STRUCT(timestamp); -- relpath = strptime(fname, SHADOW_COPY2_GMT_FORMAT, ×tamp); -- if (relpath == NULL) { -- talloc_free(tmp_ctx); -- return NULL; -- } -+ memcpy(converted+offset, insert, insertlen); - -- /* relpath is the remaining portion of the path after the @GMT-xxx */ -- -- if (lp_parm_bool(SNUM(handle->conn), "shadow", "localtime", -- SHADOW_COPY2_DEFAULT_LOCALTIME)) -- { -- timestamp_t = timegm(×tamp); -- localtime_r(×tamp_t, ×tamp); -+ offset += insertlen; -+ memcpy(converted+offset, path + slashes[i], -+ pathlen - slashes[i]); -+ -+ ret = SMB_VFS_NEXT_LSTAT(handle, &converted_fname); -+ -+ DEBUG(10, ("Trying %s: %d (%s)\n", converted, -+ ret, ret == 0 ? "ok" : strerror(errno))); -+ if (ret == 0) { -+ /* success */ -+ break; -+ } -+ if (errno == ENOTDIR) { -+ /* -+ * This is a valid condition: We appended the -+ * .snaphots/@GMT.. to a file name. Just try -+ * with the upper levels. -+ */ -+ continue; -+ } -+ if (errno != ENOENT) { -+ /* Other problem than "not found" */ -+ goto fail; -+ } - } - -- strftime(snapshot, MAXPATHLEN, fmt, ×tamp); -- -- baselen = strlen(basedir); -- baseoffset = handle->conn->connectpath + baselen; -- -- /* some sanity checks */ -- if (strncmp(basedir, handle->conn->connectpath, baselen) != 0 || -- (handle->conn->connectpath[baselen] != 0 && handle->conn->connectpath[baselen] != '/')) { -- DEBUG(0,("convert_shadow2_name: basedir %s is not a parent of %s\n", -- basedir, handle->conn->connectpath)); -- talloc_free(tmp_ctx); -- return NULL; -+ if (i >= 0) { -+ /* -+ * Found something -+ */ -+ DEBUG(10, ("Found %s\n", converted)); -+ result = converted; -+ converted = NULL; -+ } else { -+ errno = ENOENT; - } -- -- if (*relpath == '/') relpath++; -- if (*baseoffset == '/') baseoffset++; -- -- ret = talloc_asprintf(handle->data, "%s/%s/%s/%s", -- snapdir, -- snapshot, -- baseoffset, -- relpath); -- DEBUG(6,("convert_shadow2_name: '%s' -> '%s'\n", fname, ret)); -- talloc_free(tmp_ctx); -- return ret; --} -- -- --/* -- simple string hash -- */ --static uint32 string_hash(const char *s) --{ -- uint32 n = 0; -- while (*s) { -- n = ((n << 5) + n) ^ (uint32)(*s++); -- } -- return n; -+fail: -+ saved_errno = errno; -+ TALLOC_FREE(converted); -+ TALLOC_FREE(insert); -+ TALLOC_FREE(slashes); -+ TALLOC_FREE(path); -+ errno = saved_errno; -+ return result; - } - - /* - modify a sbuf return to ensure that inodes in the shadow directory - are different from those in the main directory - */ --static void convert_sbuf(vfs_handle_struct *handle, const char *fname, SMB_STRUCT_STAT *sbuf) -+static void convert_sbuf(vfs_handle_struct *handle, const char *fname, -+ SMB_STRUCT_STAT *sbuf) - { -- if (lp_parm_bool(SNUM(handle->conn), "shadow", "fixinodes", False)) { -+ if (lp_parm_bool(SNUM(handle->conn), "shadow", "fixinodes", False)) { - /* some snapshot systems, like GPFS, return the name - device:inode for the snapshot files as the current - files. That breaks the 'restore' button in the shadow copy -@@ -526,7 +437,10 @@ static void convert_sbuf(vfs_handle_stru - number collision, but I can't see a better approach - without significant VFS changes - */ -- uint32_t shash = string_hash(fname) & 0xFF000000; -+ uint32_t shash; -+ TDB_DATA data = string_tdb_data(fname); -+ -+ shash = tdb_jenkins_hash(&data) & 0xFF000000; - if (shash == 0) { - shash = 1; - } -@@ -534,303 +448,594 @@ static void convert_sbuf(vfs_handle_stru - } - } - -+static SMB_STRUCT_DIR *shadow_copy2_opendir(vfs_handle_struct *handle, -+ const char *fname, -+ const char *mask, -+ uint32 attr) -+{ -+ time_t timestamp; -+ char *stripped; -+ SMB_STRUCT_DIR *ret; -+ int saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return NULL; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_OPENDIR(handle, fname, mask, attr); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return NULL; -+ } -+ ret = SMB_VFS_NEXT_OPENDIR(handle, conv, mask, attr); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ - static int shadow_copy2_rename(vfs_handle_struct *handle, - const struct smb_filename *smb_fname_src, - const struct smb_filename *smb_fname_dst) - { -- if (shadow_copy2_match_name(smb_fname_src->base_name, NULL)) { -+ time_t timestamp_src, timestamp_dst; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ smb_fname_src->base_name, -+ ×tamp_src, NULL)) { -+ return -1; -+ } -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ smb_fname_dst->base_name, -+ ×tamp_dst, NULL)) { -+ return -1; -+ } -+ if (timestamp_src != 0) { - errno = EXDEV; - return -1; - } -- SHADOW2_NEXT2_SMB_FNAME(RENAME, -- (handle, smb_fname_src, smb_fname_dst)); -+ if (timestamp_dst != 0) { -+ errno = EROFS; -+ return -1; -+ } -+ return SMB_VFS_NEXT_RENAME(handle, smb_fname_src, smb_fname_dst); - } - - static int shadow_copy2_symlink(vfs_handle_struct *handle, - const char *oldname, const char *newname) - { -- SHADOW2_NEXT2(SYMLINK, (handle, oldname, newname)); --} -+ time_t timestamp_old, timestamp_new; - --static int shadow_copy2_link(vfs_handle_struct *handle, -- const char *oldname, const char *newname) --{ -- SHADOW2_NEXT2(LINK, (handle, oldname, newname)); -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, oldname, -+ ×tamp_old, NULL)) { -+ return -1; -+ } -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, newname, -+ ×tamp_new, NULL)) { -+ return -1; -+ } -+ if ((timestamp_old != 0) || (timestamp_new != 0)) { -+ errno = EROFS; -+ return -1; -+ } -+ return SMB_VFS_NEXT_SYMLINK(handle, oldname, newname); - } - --static int shadow_copy2_open(vfs_handle_struct *handle, -- struct smb_filename *smb_fname, files_struct *fsp, -- int flags, mode_t mode) -+static int shadow_copy2_link(vfs_handle_struct *handle, -+ const char *oldname, const char *newname) - { -- SHADOW2_NEXT_SMB_FNAME(OPEN, -- (handle, smb_fname, fsp, flags, mode), -- int, -1); --} -+ time_t timestamp_old, timestamp_new; - --static SMB_STRUCT_DIR *shadow_copy2_opendir(vfs_handle_struct *handle, -- const char *fname, const char *mask, uint32 attr) --{ -- SHADOW2_NEXT(OPENDIR, (handle, name, mask, attr), SMB_STRUCT_DIR *, NULL); -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, oldname, -+ ×tamp_old, NULL)) { -+ return -1; -+ } -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, newname, -+ ×tamp_new, NULL)) { -+ return -1; -+ } -+ if ((timestamp_old != 0) || (timestamp_new != 0)) { -+ errno = EROFS; -+ return -1; -+ } -+ return SMB_VFS_NEXT_LINK(handle, oldname, newname); - } - - static int shadow_copy2_stat(vfs_handle_struct *handle, - struct smb_filename *smb_fname) - { -- _SHADOW2_NEXT_SMB_FNAME(STAT, (handle, smb_fname), int, -1, -- convert_sbuf(handle, smb_fname->base_name, -- &smb_fname->st)); -+ time_t timestamp; -+ char *stripped, *tmp; -+ int ret, saved_errno; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ smb_fname->base_name, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_STAT(handle, smb_fname); -+ } -+ -+ tmp = smb_fname->base_name; -+ smb_fname->base_name = shadow_copy2_convert( -+ talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ -+ if (smb_fname->base_name == NULL) { -+ smb_fname->base_name = tmp; -+ return -1; -+ } -+ -+ ret = SMB_VFS_NEXT_STAT(handle, smb_fname); -+ saved_errno = errno; -+ -+ TALLOC_FREE(smb_fname->base_name); -+ smb_fname->base_name = tmp; -+ -+ if (ret == 0) { -+ convert_sbuf(handle, smb_fname->base_name, &smb_fname->st); -+ } -+ errno = saved_errno; -+ return ret; - } - - static int shadow_copy2_lstat(vfs_handle_struct *handle, - struct smb_filename *smb_fname) - { -- _SHADOW2_NEXT_SMB_FNAME(LSTAT, (handle, smb_fname), int, -1, -- convert_sbuf(handle, smb_fname->base_name, -- &smb_fname->st)); -+ time_t timestamp; -+ char *stripped, *tmp; -+ int ret, saved_errno; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ smb_fname->base_name, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_LSTAT(handle, smb_fname); -+ } -+ -+ tmp = smb_fname->base_name; -+ smb_fname->base_name = shadow_copy2_convert( -+ talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ -+ if (smb_fname->base_name == NULL) { -+ smb_fname->base_name = tmp; -+ return -1; -+ } -+ -+ ret = SMB_VFS_NEXT_LSTAT(handle, smb_fname); -+ saved_errno = errno; -+ -+ TALLOC_FREE(smb_fname->base_name); -+ smb_fname->base_name = tmp; -+ -+ if (ret == 0) { -+ convert_sbuf(handle, smb_fname->base_name, &smb_fname->st); -+ } -+ errno = saved_errno; -+ return ret; - } - --static int shadow_copy2_fstat(vfs_handle_struct *handle, files_struct *fsp, SMB_STRUCT_STAT *sbuf) -+static int shadow_copy2_fstat(vfs_handle_struct *handle, files_struct *fsp, -+ SMB_STRUCT_STAT *sbuf) - { -- int ret = SMB_VFS_NEXT_FSTAT(handle, fsp, sbuf); -- if (ret == 0 && shadow_copy2_match_name(fsp->fsp_name->base_name, NULL)) { -+ time_t timestamp; -+ int ret; -+ -+ ret = SMB_VFS_NEXT_FSTAT(handle, fsp, sbuf); -+ if (ret == -1) { -+ return ret; -+ } -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ fsp->fsp_name->base_name, -+ ×tamp, NULL)) { -+ return 0; -+ } -+ if (timestamp != 0) { - convert_sbuf(handle, fsp->fsp_name->base_name, sbuf); - } -+ return 0; -+} -+ -+static int shadow_copy2_open(vfs_handle_struct *handle, -+ struct smb_filename *smb_fname, files_struct *fsp, -+ int flags, mode_t mode) -+{ -+ time_t timestamp; -+ char *stripped, *tmp; -+ int ret, saved_errno; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ smb_fname->base_name, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode); -+ } -+ -+ tmp = smb_fname->base_name; -+ smb_fname->base_name = shadow_copy2_convert( -+ talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ -+ if (smb_fname->base_name == NULL) { -+ smb_fname->base_name = tmp; -+ return -1; -+ } -+ -+ ret = SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode); -+ saved_errno = errno; -+ -+ TALLOC_FREE(smb_fname->base_name); -+ smb_fname->base_name = tmp; -+ -+ errno = saved_errno; - return ret; - } - - static int shadow_copy2_unlink(vfs_handle_struct *handle, -- const struct smb_filename *smb_fname_in) -+ const struct smb_filename *smb_fname) - { -- struct smb_filename *smb_fname = NULL; -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ struct smb_filename *conv; - NTSTATUS status; - -- status = copy_smb_filename(talloc_tos(), smb_fname_in, &smb_fname); -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ smb_fname->base_name, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_UNLINK(handle, smb_fname); -+ } -+ status = copy_smb_filename(talloc_tos(), smb_fname, &conv); - if (!NT_STATUS_IS_OK(status)) { -- errno = map_errno_from_nt_status(status); -+ errno = ENOMEM; - return -1; - } -- -- SHADOW2_NEXT_SMB_FNAME(UNLINK, (handle, smb_fname), int, -1); -+ conv->base_name = shadow_copy2_convert( -+ conv, handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv->base_name == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_UNLINK(handle, conv); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; - } - --static int shadow_copy2_chmod(vfs_handle_struct *handle, -- const char *fname, mode_t mode) -+static int shadow_copy2_chmod(vfs_handle_struct *handle, const char *fname, -+ mode_t mode) - { -- SHADOW2_NEXT(CHMOD, (handle, name, mode), int, -1); -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_CHMOD(handle, fname, mode); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_CHMOD(handle, conv, mode); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; - } - --static int shadow_copy2_chown(vfs_handle_struct *handle, -- const char *fname, uid_t uid, gid_t gid) -+static int shadow_copy2_chown(vfs_handle_struct *handle, const char *fname, -+ uid_t uid, gid_t gid) - { -- SHADOW2_NEXT(CHOWN, (handle, name, uid, gid), int, -1); -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_CHOWN(handle, fname, uid, gid); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_CHOWN(handle, conv, uid, gid); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; - } - - static int shadow_copy2_chdir(vfs_handle_struct *handle, -- const char *fname) -+ const char *fname) - { -- SHADOW2_NEXT(CHDIR, (handle, name), int, -1); -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_CHDIR(handle, fname); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_CHDIR(handle, conv); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; - } - - static int shadow_copy2_ntimes(vfs_handle_struct *handle, -- const struct smb_filename *smb_fname_in, -+ const struct smb_filename *smb_fname, - struct smb_file_time *ft) - { -- struct smb_filename *smb_fname = NULL; -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ struct smb_filename *conv; - NTSTATUS status; - -- status = copy_smb_filename(talloc_tos(), smb_fname_in, &smb_fname); -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ smb_fname->base_name, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_NTIMES(handle, smb_fname, ft); -+ } -+ status = copy_smb_filename(talloc_tos(), smb_fname, &conv); - if (!NT_STATUS_IS_OK(status)) { -- errno = map_errno_from_nt_status(status); -+ errno = ENOMEM; - return -1; - } -- -- SHADOW2_NEXT_SMB_FNAME(NTIMES, (handle, smb_fname, ft), int, -1); -+ conv->base_name = shadow_copy2_convert( -+ conv, handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv->base_name == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_NTIMES(handle, conv, ft); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; - } - - static int shadow_copy2_readlink(vfs_handle_struct *handle, - const char *fname, char *buf, size_t bufsiz) - { -- SHADOW2_NEXT(READLINK, (handle, name, buf, bufsiz), int, -1); --} -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; - --static int shadow_copy2_mknod(vfs_handle_struct *handle, -- const char *fname, mode_t mode, SMB_DEV_T dev) --{ -- SHADOW2_NEXT(MKNOD, (handle, name, mode, dev), int, -1); -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_READLINK(handle, fname, buf, bufsiz); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_READLINK(handle, conv, buf, bufsiz); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; - } - --static char *shadow_copy2_realpath(vfs_handle_struct *handle, -- const char *fname) -+static int shadow_copy2_mknod(vfs_handle_struct *handle, -+ const char *fname, mode_t mode, SMB_DEV_T dev) - { -- const char *gmt; -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; - -- if (shadow_copy2_match_name(fname, &gmt) -- && (gmt[GMT_NAME_LEN] == '\0')) { -- char *copy; -- -- copy = talloc_strdup(talloc_tos(), fname); -- if (copy == NULL) { -- errno = ENOMEM; -- return NULL; -- } -- -- copy[gmt - fname] = '.'; -- copy[gmt - fname + 1] = '\0'; -- -- DEBUG(10, ("calling NEXT_REALPATH with %s\n", copy)); -- SHADOW2_NEXT(REALPATH, (handle, name), char *, -- NULL); -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_MKNOD(handle, fname, mode, dev); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; - } -- SHADOW2_NEXT(REALPATH, (handle, name), char *, NULL); -+ ret = SMB_VFS_NEXT_MKNOD(handle, conv, mode, dev); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; - } - --static const char *shadow_copy2_connectpath(struct vfs_handle_struct *handle, -- const char *fname) -+static char *shadow_copy2_realpath(vfs_handle_struct *handle, -+ const char *fname) - { -- TALLOC_CTX *tmp_ctx; -- const char *snapdir, *baseoffset, *basedir, *gmt_start; -- size_t baselen; -- char *ret; -+ time_t timestamp; -+ char *stripped = NULL; -+ char *tmp = NULL; -+ char *result = NULL; -+ char *inserted = NULL; -+ char *inserted_to, *inserted_end; -+ int saved_errno; - -- DEBUG(10, ("shadow_copy2_connectpath called with %s\n", fname)); -- -- if (!shadow_copy2_match_name(fname, &gmt_start)) { -- return handle->conn->connectpath; -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ goto done; - } -- -- /* -- * We have to create a real temporary context because we have -- * to put our result on talloc_tos(). Thus we can't use a -- * talloc_stackframe() here. -- */ -- tmp_ctx = talloc_new(talloc_tos()); -- -- fname = shadow_copy2_normalise_path(tmp_ctx, fname, gmt_start); -- if (fname == NULL) { -- TALLOC_FREE(tmp_ctx); -- return NULL; -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_REALPATH(handle, fname); - } - -- snapdir = shadow_copy2_find_snapdir(tmp_ctx, handle); -- if (snapdir == NULL) { -- DEBUG(2,("no snapdir found for share at %s\n", -- handle->conn->connectpath)); -- TALLOC_FREE(tmp_ctx); -- return NULL; -+ tmp = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ if (tmp == NULL) { -+ goto done; - } - -- basedir = shadow_copy2_find_basedir(tmp_ctx, handle); -- if (basedir == NULL) { -- DEBUG(2,("no basedir found for share at %s\n", -- handle->conn->connectpath)); -- TALLOC_FREE(tmp_ctx); -- return NULL; -+ result = SMB_VFS_NEXT_REALPATH(handle, tmp); -+ if (result == NULL) { -+ goto done; - } - -- baselen = strlen(basedir); -- baseoffset = handle->conn->connectpath + baselen; -- -- /* some sanity checks */ -- if (strncmp(basedir, handle->conn->connectpath, baselen) != 0 || -- (handle->conn->connectpath[baselen] != 0 -- && handle->conn->connectpath[baselen] != '/')) { -- DEBUG(0,("shadow_copy2_connectpath: basedir %s is not a " -- "parent of %s\n", basedir, -- handle->conn->connectpath)); -- TALLOC_FREE(tmp_ctx); -+ /* -+ * Take away what we've inserted. This removes the @GMT-thingy -+ * completely, but will give a path under the share root. -+ */ -+ inserted = shadow_copy2_insert_string(talloc_tos(), handle, timestamp); -+ if (inserted == NULL) { -+ goto done; -+ } -+ inserted_to = strstr_m(result, inserted); -+ if (inserted_to == NULL) { -+ DEBUG(2, ("SMB_VFS_NEXT_REALPATH removed %s\n", inserted)); -+ goto done; -+ } -+ inserted_end = inserted_to + talloc_get_size(inserted) - 1; -+ memmove(inserted_to, inserted_end, strlen(inserted_end)+1); -+ -+done: -+ saved_errno = errno; -+ TALLOC_FREE(inserted); -+ TALLOC_FREE(tmp); -+ TALLOC_FREE(stripped); -+ errno = saved_errno; -+ return result; -+} -+ -+static char *have_snapdir(struct vfs_handle_struct *handle, -+ const char *path) -+{ -+ struct smb_filename smb_fname; -+ int ret; -+ -+ ZERO_STRUCT(smb_fname); -+ smb_fname.base_name = talloc_asprintf( -+ talloc_tos(), "%s/%s", path, -+ lp_parm_const_string(SNUM(handle->conn), "shadow", "snapdir", -+ ".snapshots")); -+ if (smb_fname.base_name == NULL) { - return NULL; - } - -- if (*baseoffset == '/') baseoffset++; -- -- ret = talloc_asprintf(talloc_tos(), "%s/%.*s/%s", -- snapdir, -- GMT_NAME_LEN, fname, -- baseoffset); -- DEBUG(6,("shadow_copy2_connectpath: '%s' -> '%s'\n", fname, ret)); -- TALLOC_FREE(tmp_ctx); -- return ret; --} -- --static NTSTATUS shadow_copy2_get_nt_acl(vfs_handle_struct *handle, -- const char *fname, uint32 security_info, -- struct security_descriptor **ppdesc) --{ -- SHADOW2_NTSTATUS_NEXT(GET_NT_ACL, (handle, name, security_info, ppdesc), NT_STATUS_ACCESS_DENIED); -+ ret = SMB_VFS_NEXT_STAT(handle, &smb_fname); -+ if ((ret == 0) && (S_ISDIR(smb_fname.st.st_ex_mode))) { -+ return smb_fname.base_name; -+ } -+ TALLOC_FREE(smb_fname.base_name); -+ return NULL; - } - --static int shadow_copy2_mkdir(vfs_handle_struct *handle, const char *fname, mode_t mode) -+static char *shadow_copy2_find_snapdir(TALLOC_CTX *mem_ctx, -+ struct vfs_handle_struct *handle, -+ struct smb_filename *smb_fname) - { -- SHADOW2_NEXT(MKDIR, (handle, name, mode), int, -1); --} -+ char *path, *p; -+ char *snapdir; - --static int shadow_copy2_rmdir(vfs_handle_struct *handle, const char *fname) --{ -- SHADOW2_NEXT(RMDIR, (handle, name), int, -1); --} -+ path = talloc_asprintf(mem_ctx, "%s/%s", -+ handle->conn->connectpath, -+ smb_fname->base_name); -+ if (path == NULL) { -+ return NULL; -+ } - --static int shadow_copy2_chflags(vfs_handle_struct *handle, const char *fname, -- unsigned int flags) --{ -- SHADOW2_NEXT(CHFLAGS, (handle, name, flags), int, -1); --} -+ snapdir = have_snapdir(handle, path); -+ if (snapdir != NULL) { -+ TALLOC_FREE(path); -+ return snapdir; -+ } - --static ssize_t shadow_copy2_getxattr(vfs_handle_struct *handle, -- const char *fname, const char *aname, void *value, size_t size) --{ -- SHADOW2_NEXT(GETXATTR, (handle, name, aname, value, size), ssize_t, -1); --} -+ while ((p = strrchr(path, '/')) && (p > path)) { - --static ssize_t shadow_copy2_lgetxattr(vfs_handle_struct *handle, -- const char *fname, const char *aname, void *value, size_t size) --{ -- SHADOW2_NEXT(LGETXATTR, (handle, name, aname, value, size), ssize_t, -1); --} -+ p[0] = '\0'; - --static ssize_t shadow_copy2_listxattr(struct vfs_handle_struct *handle, const char *fname, -- char *list, size_t size) --{ -- SHADOW2_NEXT(LISTXATTR, (handle, name, list, size), ssize_t, -1); -+ snapdir = have_snapdir(handle, path); -+ if (snapdir != NULL) { -+ TALLOC_FREE(path); -+ return snapdir; -+ } -+ } -+ TALLOC_FREE(path); -+ return NULL; - } - --static int shadow_copy2_removexattr(struct vfs_handle_struct *handle, const char *fname, -- const char *aname) -+static bool shadow_copy2_snapshot_to_gmt(TALLOC_CTX *mem_ctx, -+ vfs_handle_struct *handle, -+ const char *name, -+ char *gmt, size_t gmt_len) - { -- SHADOW2_NEXT(REMOVEXATTR, (handle, name, aname), int, -1); --} -+ struct tm timestamp; -+ time_t timestamp_t; -+ const char *fmt; - --static int shadow_copy2_lremovexattr(struct vfs_handle_struct *handle, const char *fname, -- const char *aname) --{ -- SHADOW2_NEXT(LREMOVEXATTR, (handle, name, aname), int, -1); --} -+ fmt = lp_parm_const_string(SNUM(handle->conn), "shadow", -+ "format", GMT_FORMAT); - --static int shadow_copy2_setxattr(struct vfs_handle_struct *handle, const char *fname, -- const char *aname, const void *value, size_t size, int flags) --{ -- SHADOW2_NEXT(SETXATTR, (handle, name, aname, value, size, flags), int, -1); --} -+ ZERO_STRUCT(timestamp); -+ if (strptime(name, fmt, ×tamp) == NULL) { -+ DEBUG(10, ("shadow_copy2_snapshot_to_gmt: no match %s: %s\n", -+ fmt, name)); -+ return false; -+ } - --static int shadow_copy2_lsetxattr(struct vfs_handle_struct *handle, const char *fname, -- const char *aname, const void *value, size_t size, int flags) --{ -- SHADOW2_NEXT(LSETXATTR, (handle, name, aname, value, size, flags), int, -1); --} -+ DEBUG(10, ("shadow_copy2_snapshot_to_gmt: match %s: %s\n", fmt, name)); - --static int shadow_copy2_chmod_acl(vfs_handle_struct *handle, -- const char *fname, mode_t mode) --{ -- SHADOW2_NEXT(CHMOD_ACL, (handle, name, mode), int, -1); -+ if (lp_parm_bool(SNUM(handle->conn), "shadow", "localtime", false)) { -+ timestamp.tm_isdst = -1; -+ timestamp_t = mktime(×tamp); -+ gmtime_r(×tamp_t, ×tamp); -+ } -+ strftime(gmt, gmt_len, GMT_FORMAT, ×tamp); -+ return true; - } - - static int shadow_copy2_label_cmp_asc(const void *x, const void *y) - { -- return strncmp((char *)x, (char *)y, sizeof(SHADOW_COPY_LABEL)); -+ return strncmp((const char *)x, (const char *)y, sizeof(SHADOW_COPY_LABEL)); - } - - static int shadow_copy2_label_cmp_desc(const void *x, const void *y) - { -- return -strncmp((char *)x, (char *)y, sizeof(SHADOW_COPY_LABEL)); -+ return -strncmp((const char *)x, (const char *)y, sizeof(SHADOW_COPY_LABEL)); - } - - /* -@@ -843,7 +1048,7 @@ static void shadow_copy2_sort_data(vfs_h - const char *sort; - - sort = lp_parm_const_string(SNUM(handle->conn), "shadow", -- "sort", SHADOW_COPY2_DEFAULT_SORT); -+ "sort", "desc"); - if (sort == NULL) { - return; - } -@@ -867,18 +1072,17 @@ static void shadow_copy2_sort_data(vfs_h - return; - } - --static int shadow_copy2_get_shadow_copy2_data(vfs_handle_struct *handle, -- files_struct *fsp, -- struct shadow_copy_data *shadow_copy2_data, -- bool labels) -+static int shadow_copy2_get_shadow_copy_data( -+ vfs_handle_struct *handle, files_struct *fsp, -+ struct shadow_copy_data *shadow_copy2_data, -+ bool labels) - { - SMB_STRUCT_DIR *p; - const char *snapdir; - SMB_STRUCT_DIRENT *d; -- TALLOC_CTX *tmp_ctx = talloc_new(handle->data); -- char *snapshot; -+ TALLOC_CTX *tmp_ctx = talloc_stackframe(); - -- snapdir = shadow_copy2_find_snapdir(tmp_ctx, handle); -+ snapdir = shadow_copy2_find_snapdir(tmp_ctx, handle, fsp->fsp_name); - if (snapdir == NULL) { - DEBUG(0,("shadow:snapdir not found for %s in get_shadow_copy_data\n", - handle->conn->connectpath)); -@@ -901,16 +1105,23 @@ static int shadow_copy2_get_shadow_copy2 - shadow_copy2_data->labels = NULL; - - while ((d = SMB_VFS_NEXT_READDIR(handle, p, NULL))) { -+ char snapshot[GMT_NAME_LEN+1]; - SHADOW_COPY_LABEL *tlabels; - -- /* ignore names not of the right form in the snapshot directory */ -- snapshot = shadow_copy2_snapshot_to_gmt(tmp_ctx, handle, -- d->d_name); -- DEBUG(6,("shadow_copy2_get_shadow_copy2_data: %s -> %s\n", -- d->d_name, snapshot)); -- if (!snapshot) { -+ /* -+ * ignore names not of the right form in the snapshot -+ * directory -+ */ -+ if (!shadow_copy2_snapshot_to_gmt( -+ tmp_ctx, handle, d->d_name, -+ snapshot, sizeof(snapshot))) { -+ -+ DEBUG(6, ("shadow_copy2_get_shadow_copy_data: " -+ "ignoring %s\n", d->d_name)); - continue; - } -+ DEBUG(6,("shadow_copy2_get_shadow_copy_data: %s -> %s\n", -+ d->d_name, snapshot)); - - if (!labels) { - /* the caller doesn't want the labels */ -@@ -920,7 +1131,8 @@ static int shadow_copy2_get_shadow_copy2 - - tlabels = talloc_realloc(shadow_copy2_data, - shadow_copy2_data->labels, -- SHADOW_COPY_LABEL, shadow_copy2_data->num_volumes+1); -+ SHADOW_COPY_LABEL, -+ shadow_copy2_data->num_volumes+1); - if (tlabels == NULL) { - DEBUG(0,("shadow_copy2: out of memory\n")); - SMB_VFS_NEXT_CLOSEDIR(handle, p); -@@ -930,7 +1142,6 @@ static int shadow_copy2_get_shadow_copy2 - - strlcpy(tlabels[shadow_copy2_data->num_volumes], snapshot, - sizeof(*tlabels)); -- talloc_free(snapshot); - - shadow_copy2_data->num_volumes++; - shadow_copy2_data->labels = tlabels; -@@ -944,59 +1155,455 @@ static int shadow_copy2_get_shadow_copy2 - return 0; - } - --static struct vfs_fn_pointers vfs_shadow_copy2_fns = { -- .opendir = shadow_copy2_opendir, -- .mkdir = shadow_copy2_mkdir, -- .rmdir = shadow_copy2_rmdir, -- .chflags = shadow_copy2_chflags, -- .getxattr = shadow_copy2_getxattr, -- .lgetxattr = shadow_copy2_lgetxattr, -- .listxattr = shadow_copy2_listxattr, -- .removexattr = shadow_copy2_removexattr, -- .lremovexattr = shadow_copy2_lremovexattr, -- .setxattr = shadow_copy2_setxattr, -- .lsetxattr = shadow_copy2_lsetxattr, -- .open_fn = shadow_copy2_open, -- .rename = shadow_copy2_rename, -- .stat = shadow_copy2_stat, -- .lstat = shadow_copy2_lstat, -- .fstat = shadow_copy2_fstat, -- .unlink = shadow_copy2_unlink, -- .chmod = shadow_copy2_chmod, -- .chown = shadow_copy2_chown, -- .chdir = shadow_copy2_chdir, -- .ntimes = shadow_copy2_ntimes, -- .symlink = shadow_copy2_symlink, -- .vfs_readlink = shadow_copy2_readlink, -- .link = shadow_copy2_link, -- .mknod = shadow_copy2_mknod, -- .realpath = shadow_copy2_realpath, -- .connectpath = shadow_copy2_connectpath, -- .get_nt_acl = shadow_copy2_get_nt_acl, -- .chmod_acl = shadow_copy2_chmod_acl, -- .get_shadow_copy_data = shadow_copy2_get_shadow_copy2_data, --}; -+static NTSTATUS shadow_copy2_fget_nt_acl(vfs_handle_struct *handle, -+ struct files_struct *fsp, -+ uint32 security_info, -+ struct security_descriptor **ppdesc) -+{ -+ time_t timestamp; -+ char *stripped; -+ NTSTATUS status; -+ char *conv; - --NTSTATUS vfs_shadow_copy2_init(void); --NTSTATUS vfs_shadow_copy2_init(void) -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, -+ fsp->fsp_name->base_name, -+ ×tamp, &stripped)) { -+ return map_nt_error_from_unix(errno); -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_FGET_NT_ACL(handle, fsp, security_info, -+ ppdesc); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return map_nt_error_from_unix(errno); -+ } -+ status = SMB_VFS_NEXT_GET_NT_ACL(handle, conv, security_info, ppdesc); -+ TALLOC_FREE(conv); -+ return status; -+} -+ -+static NTSTATUS shadow_copy2_get_nt_acl(vfs_handle_struct *handle, -+ const char *fname, -+ uint32 security_info, -+ struct security_descriptor **ppdesc) - { -- NTSTATUS ret; -+ time_t timestamp; -+ char *stripped; -+ NTSTATUS status; -+ char *conv; - -- ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "shadow_copy2", -- &vfs_shadow_copy2_fns); -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return map_nt_error_from_unix(errno); -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_GET_NT_ACL(handle, fname, security_info, -+ ppdesc); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return map_nt_error_from_unix(errno); -+ } -+ status = SMB_VFS_NEXT_GET_NT_ACL(handle, conv, security_info, ppdesc); -+ TALLOC_FREE(conv); -+ return status; -+} - -- if (!NT_STATUS_IS_OK(ret)) -- return ret; -+static int shadow_copy2_mkdir(vfs_handle_struct *handle, -+ const char *fname, mode_t mode) -+{ -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; - -- vfs_shadow_copy2_debug_level = debug_add_class("shadow_copy2"); -- if (vfs_shadow_copy2_debug_level == -1) { -- vfs_shadow_copy2_debug_level = DBGC_VFS; -- DEBUG(0, ("%s: Couldn't register custom debugging class!\n", -- "vfs_shadow_copy2_init")); -- } else { -- DEBUG(10, ("%s: Debug class number of '%s': %d\n", -- "vfs_shadow_copy2_init","shadow_copy2",vfs_shadow_copy2_debug_level)); -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_MKDIR(handle, fname, mode); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_MKDIR(handle, conv, mode); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static int shadow_copy2_rmdir(vfs_handle_struct *handle, const char *fname) -+{ -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; - } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_RMDIR(handle, fname); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_RMDIR(handle, conv); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static int shadow_copy2_chflags(vfs_handle_struct *handle, const char *fname, -+ unsigned int flags) -+{ -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; - -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_CHFLAGS(handle, fname, flags); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_CHFLAGS(handle, conv, flags); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; - return ret; - } -+ -+static ssize_t shadow_copy2_getxattr(vfs_handle_struct *handle, -+ const char *fname, const char *aname, -+ void *value, size_t size) -+{ -+ time_t timestamp; -+ char *stripped; -+ ssize_t ret; -+ int saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_GETXATTR(handle, fname, aname, value, -+ size); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_GETXATTR(handle, conv, aname, value, size); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static ssize_t shadow_copy2_lgetxattr(vfs_handle_struct *handle, -+ const char *fname, const char *aname, -+ void *value, size_t size) -+{ -+ time_t timestamp; -+ char *stripped; -+ ssize_t ret; -+ int saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_LGETXATTR(handle, fname, aname, value, -+ size); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_LGETXATTR(handle, conv, aname, value, size); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static ssize_t shadow_copy2_listxattr(struct vfs_handle_struct *handle, -+ const char *fname, -+ char *list, size_t size) -+{ -+ time_t timestamp; -+ char *stripped; -+ ssize_t ret; -+ int saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_LISTXATTR(handle, fname, list, size); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_LISTXATTR(handle, conv, list, size); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static int shadow_copy2_removexattr(vfs_handle_struct *handle, -+ const char *fname, const char *aname) -+{ -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_REMOVEXATTR(handle, fname, aname); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_REMOVEXATTR(handle, conv, aname); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static int shadow_copy2_lremovexattr(vfs_handle_struct *handle, -+ const char *fname, const char *aname) -+{ -+ time_t timestamp; -+ char *stripped; -+ int ret, saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_LREMOVEXATTR(handle, fname, aname); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_LREMOVEXATTR(handle, conv, aname); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static int shadow_copy2_setxattr(struct vfs_handle_struct *handle, -+ const char *fname, -+ const char *aname, const void *value, -+ size_t size, int flags) -+{ -+ time_t timestamp; -+ char *stripped; -+ ssize_t ret; -+ int saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_SETXATTR(handle, fname, aname, value, size, -+ flags); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_SETXATTR(handle, conv, aname, value, size, flags); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static int shadow_copy2_lsetxattr(struct vfs_handle_struct *handle, -+ const char *fname, -+ const char *aname, const void *value, -+ size_t size, int flags) -+{ -+ time_t timestamp; -+ char *stripped; -+ ssize_t ret; -+ int saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_LSETXATTR(handle, fname, aname, value, -+ size, flags); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_LSETXATTR(handle, conv, aname, value, size, flags); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static int shadow_copy2_chmod_acl(vfs_handle_struct *handle, -+ const char *fname, mode_t mode) -+{ -+ time_t timestamp; -+ char *stripped; -+ ssize_t ret; -+ int saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, fname, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_CHMOD_ACL(handle, fname, mode); -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_CHMOD_ACL(handle, conv, mode); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+static int shadow_copy2_get_real_filename(struct vfs_handle_struct *handle, -+ const char *path, -+ const char *name, -+ TALLOC_CTX *mem_ctx, -+ char **found_name) -+{ -+ time_t timestamp; -+ char *stripped; -+ ssize_t ret; -+ int saved_errno; -+ char *conv; -+ -+ if (!shadow_copy2_strip_snapshot(talloc_tos(), handle, path, -+ ×tamp, &stripped)) { -+ return -1; -+ } -+ if (timestamp == 0) { -+ return SMB_VFS_NEXT_GET_REAL_FILENAME(handle, path, name, -+ mem_ctx, found_name); -+ } -+ if (stripped[0] == '\0') { -+ *found_name = talloc_strdup(mem_ctx, name); -+ if (*found_name == NULL) { -+ errno = ENOMEM; -+ return -1; -+ } -+ return 0; -+ } -+ conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); -+ TALLOC_FREE(stripped); -+ if (conv == NULL) { -+ return -1; -+ } -+ ret = SMB_VFS_NEXT_GET_REAL_FILENAME(handle, conv, name, -+ mem_ctx, found_name); -+ saved_errno = errno; -+ TALLOC_FREE(conv); -+ errno = saved_errno; -+ return ret; -+} -+ -+ -+static struct vfs_fn_pointers vfs_shadow_copy2_fns = { -+ .opendir = shadow_copy2_opendir, -+ .rename = shadow_copy2_rename, -+ .link = shadow_copy2_link, -+ .symlink = shadow_copy2_symlink, -+ .stat = shadow_copy2_stat, -+ .lstat = shadow_copy2_lstat, -+ .fstat = shadow_copy2_fstat, -+ .open_fn = shadow_copy2_open, -+ .unlink = shadow_copy2_unlink, -+ .chmod = shadow_copy2_chmod, -+ .chown = shadow_copy2_chown, -+ .chdir = shadow_copy2_chdir, -+ .ntimes = shadow_copy2_ntimes, -+ .vfs_readlink = shadow_copy2_readlink, -+ .mknod = shadow_copy2_mknod, -+ .realpath = shadow_copy2_realpath, -+ .get_nt_acl = shadow_copy2_get_nt_acl, -+ .fget_nt_acl = shadow_copy2_fget_nt_acl, -+ .get_shadow_copy_data = shadow_copy2_get_shadow_copy_data, -+ .mkdir = shadow_copy2_mkdir, -+ .rmdir = shadow_copy2_rmdir, -+ .getxattr = shadow_copy2_getxattr, -+ .lgetxattr = shadow_copy2_lgetxattr, -+ .listxattr = shadow_copy2_listxattr, -+ .removexattr = shadow_copy2_removexattr, -+ .lremovexattr = shadow_copy2_lremovexattr, -+ .setxattr = shadow_copy2_setxattr, -+ .lsetxattr = shadow_copy2_lsetxattr, -+ .chmod_acl = shadow_copy2_chmod_acl, -+ .chflags = shadow_copy2_chflags, -+ .get_real_filename = shadow_copy2_get_real_filename, -+}; -+ -+NTSTATUS vfs_shadow_copy2_init(void); -+NTSTATUS vfs_shadow_copy2_init(void) -+{ -+ return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, -+ "shadow_copy2", &vfs_shadow_copy2_fns); -+} diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbclient-pager.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbclient-pager.patch deleted file mode 100644 index 429f2cec46a..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbclient-pager.patch +++ /dev/null @@ -1,18 +0,0 @@ -Description: Use the pager alternative as pager is PAGER is undefined -Author: Steve Langasek -Bug-Debian: http://bugs.debian.org/135603 -Forwarded: not-needed - -Index: experimental/source3/include/local.h -=================================================================== ---- experimental.orig/source3/include/local.h -+++ experimental/source3/include/local.h -@@ -127,7 +127,7 @@ - /* the default pager to use for the client "more" command. Users can - override this with the PAGER environment variable */ - #ifndef PAGER --#define PAGER "more" -+#define PAGER "/usr/bin/pager" - #endif - - /* the size of the uid cache used to reduce valid user checks */ diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbtar-bashism.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbtar-bashism.patch deleted file mode 100644 index 27a47cb51c5..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbtar-bashism.patch +++ /dev/null @@ -1,19 +0,0 @@ -Description: Avoid using bashism in smbtar -Author: Jelmer Vernooij -Bug-Debian: http://bugs.debian.org/486056 -Forwarded: yes -Bug: https://bugzilla.samba.org/show_bug.cgi?id=8924 - -Index: experimental/source3/script/smbtar -=================================================================== ---- experimental.orig/source3/script/smbtar -+++ experimental/source3/script/smbtar -@@ -151,7 +151,7 @@ - if [ -z "$verbose" ]; then - echo "server is $server" - # echo "share is $service" -- echo "share is $service\\$cdcmd" -+ printf "share is %s\\%s\n" "$service" "$cdcmd" - echo "tar args is $tarargs" - # echo "password is $password" # passwords should never be sent to screen - echo "tape is $tapefile" diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbtorture-manpage.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbtorture-manpage.patch deleted file mode 100644 index 59930b5e5f8..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/smbtorture-manpage.patch +++ /dev/null @@ -1,94 +0,0 @@ -Description: Provide a manpage for smbtorture -Author: Christian Perrier -Bug: https://bugzilla.samba.org/show_bug.cgi?id=8930 -Forwarded: yes -Bug-Debian: http://bugs.debian.org/528735 - -Index: samba/docs/manpages/smbtorture.1 -=================================================================== ---- /dev/null -+++ samba/docs/manpages/smbtorture.1 -@@ -0,0 +1,83 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.9. -+.TH smbtorture "1" "May 2012" "samba test suite" "User Commands" -+.SH NAME -+smbtorture \- samba test suite. -+.SH SYNOPSIS -+.B smbtorture -+\fI//server/share TEST1 TEST2 \fR... -+.SH DESCRIPTION -+smbtorture is the original samba3 test suite. It is nowadays recommended to use samba4 torture. -+.HP -+\fB\-d\fR debuglevel -+.HP -+\fB\-U\fR user%pass -+.TP -+\fB\-k\fR -+use kerberos -+.HP -+\fB\-N\fR numprocs -+.HP -+\fB\-n\fR my_netbios_name -+.HP -+\fB\-W\fR workgroup -+.HP -+\fB\-o\fR num_operations -+.HP -+\fB\-O\fR socket_options -+.HP -+\fB\-m\fR maximum protocol -+.HP -+\fB\-L\fR use oplocks -+.TP -+\fB\-c\fR CLIENT.TXT -+specify client load file for NBENCH -+.HP -+\fB\-A\fR showall -+.HP -+\fB\-p\fR port -+.HP -+\fB\-s\fR seed -+.TP -+\fB\-b\fR unclist_filename -+specify multiple shares for multiple connections -+.PP -+tests are: FDPASS LOCK1 LOCK2 LOCK3 LOCK4 LOCK5 LOCK6 LOCK7 LOCK8 LOCK9 UNLINK BROWSE ATTR TRANS2 MAXFID TORTURE RANDOMIPC NEGNOWAIT NBENCH NBENCH2 OPLOCK1 OPLOCK2 OPLOCK3 OPLOCK4 DIR DIR1 DIR\-CREATETIME DENY1 DENY2 TCON TCONDEV RW1 RW2 RW3 RW\-SIGNING OPEN POSIX POSIX\-APPEND ASYNC\-ECHO UID\-REGRESSION\-TEST SHORTNAME\-TEST ADDRCHANGE OPENATTR XCOPY RENAME DELETE DELETE\-LN PROPERTIES MANGLE MANGLE1 W2K TRANS2SCAN NTTRANSSCAN UTABLE CASETABLE ERRMAPEXTRACT PIPE_NUMBER TCON2 IOCTL CHKPATH FDSESS EATEST SESSSETUP_BENCH CHAIN1 CHAIN2 WINDOWS\-WRITE CLI_ECHO GETADDRINFO TLDAP STREAMERROR NOTIFY\-BENCH BAD\-NBT\-SESSION SMB\-ANY\-CONNECT LOCAL\-SUBSTITUTE LOCAL\-GENCACHE LOCAL\-TALLOC\-DICT LOCAL\-BASE64 LOCAL\-RBTREE LOCAL\-MEMCACHE LOCAL\-STREAM\-NAME LOCAL\-WBCLIENT LOCAL\-string_to_sid LOCAL\-binary_to_sid LOCAL\-DBTRANS LOCAL\-TEVENT\-SELECT -+default test is ALL -+.PP -+Usage: smbtorture //server/share TEST1 TEST2 ... -+.HP -+\fB\-d\fR debuglevel -+.HP -+\fB\-U\fR user%pass -+.TP -+\fB\-k\fR -+use kerberos -+.HP -+\fB\-N\fR numprocs -+.HP -+\fB\-n\fR my_netbios_name -+.HP -+\fB\-W\fR workgroup -+.HP -+\fB\-o\fR num_operations -+.HP -+\fB\-O\fR socket_options -+.HP -+\fB\-m\fR maximum protocol -+.HP -+\fB\-L\fR use oplocks -+.TP -+\fB\-c\fR CLIENT.TXT -+specify client load file for NBENCH -+.HP -+\fB\-A\fR showall -+.HP -+\fB\-p\fR port -+.HP -+\fB\-s\fR seed -+.TP -+\fB\-b\fR unclist_filename -+specify multiple shares for multiple connections -+.PP -+tests are: FDPASS LOCK1 LOCK2 LOCK3 LOCK4 LOCK5 LOCK6 LOCK7 LOCK8 LOCK9 UNLINK BROWSE ATTR TRANS2 MAXFID TORTURE RANDOMIPC NEGNOWAIT NBENCH NBENCH2 OPLOCK1 OPLOCK2 OPLOCK3 OPLOCK4 DIR DIR1 DIR\-CREATETIME DENY1 DENY2 TCON TCONDEV RW1 RW2 RW3 RW\-SIGNING OPEN POSIX POSIX\-APPEND ASYNC\-ECHO UID\-REGRESSION\-TEST SHORTNAME\-TEST ADDRCHANGE OPENATTR XCOPY RENAME DELETE DELETE\-LN PROPERTIES MANGLE MANGLE1 W2K TRANS2SCAN NTTRANSSCAN UTABLE CASETABLE ERRMAPEXTRACT PIPE_NUMBER TCON2 IOCTL CHKPATH FDSESS EATEST SESSSETUP_BENCH CHAIN1 CHAIN2 WINDOWS\-WRITE CLI_ECHO GETADDRINFO TLDAP STREAMERROR NOTIFY\-BENCH BAD\-NBT\-SESSION SMB\-ANY\-CONNECT LOCAL\-SUBSTITUTE LOCAL\-GENCACHE LOCAL\-TALLOC\-DICT LOCAL\-BASE64 LOCAL\-RBTREE LOCAL\-MEMCACHE LOCAL\-STREAM\-NAME LOCAL\-WBCLIENT LOCAL\-string_to_sid LOCAL\-binary_to_sid LOCAL\-DBTRANS LOCAL\-TEVENT\-SELECT -+default test is ALL diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/undefined-symbols.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/undefined-symbols.patch deleted file mode 100644 index 5babc1e3844..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/undefined-symbols.patch +++ /dev/null @@ -1,24 +0,0 @@ -Description: Fix missing symbols - Fix missing symbols in libsmbclient (and libnss_wins), and add - -Wl,-z,defs to the libsmbclient link options to prevent future - instances of undefined symbols. - . - This should be forwarded upstream once there's a configure test - for it. -Author: Steve Langasek -Bug-Debian: http://bugs.debian.org/281181 -Forwarded: no - -Index: experimental/source3/Makefile.in -=================================================================== ---- experimental.orig/source3/Makefile.in -+++ experimental/source3/Makefile.in -@@ -2594,7 +2594,7 @@ - - $(LIBSMBCLIENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) $(LIBSMBCLIENT_SYMS) $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT) - @echo Linking shared library $@ -- @$(SHLD_DSO) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) \ -+ @$(SHLD_DSO) -Wl,-z,defs $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) \ - $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBS) \ - $(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) $(ZLIB_LIBS) $(PTHREAD_LDFLAGS) \ - @SONAMEFLAG@`basename $@` diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/usershare.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/usershare.patch deleted file mode 100644 index 3673db751a6..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/usershare.patch +++ /dev/null @@ -1,38 +0,0 @@ -Description: Enable net usershares by default at build time - Enable net usershares by default at build time, with a limit of - 100, and update the corresponding documentation. -Author: Mathias Gug , -Author: Steve Langasek -Bug-Debian: http://bugs.debian.org/443230 -Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/samba/+bug/128548 -Forwarded: not-needed - -Index: experimental/docs/manpages/net.8 -=================================================================== ---- experimental.orig/docs/manpages/net.8 -+++ experimental/docs/manpages/net.8 -@@ -800,9 +800,9 @@ - .RE - .SS "USERSHARE" - .PP --Starting with version 3\&.0\&.23, a Samba server now supports the ability for non\-root users to add user defined shares to be exported using the "net usershare" commands\&. -+Starting with version 3\&.0\&.23, a Samba server now supports the ability for non\-root users to add user-defined shares to be exported using the "net usershare" commands\&. - .PP --To set this up, first set up your smb\&.conf by adding to the [global] section: usershare path = /usr/local/samba/lib/usershares Next create the directory /usr/local/samba/lib/usershares, change the owner to root and set the group owner to the UNIX group who should have the ability to create usershares, for example a group called "serverops"\&. Set the permissions on /usr/local/samba/lib/usershares to 01770\&. (Owner and group all access, no access for others, plus the sticky bit, which means that a file in that directory can be renamed or deleted only by the owner of the file)\&. Finally, tell smbd how many usershares you will allow by adding to the [global] section of smb\&.conf a line such as : usershare max shares = 100\&. To allow 100 usershare definitions\&. Now, members of the UNIX group "serverops" can create user defined shares on demand using the commands below\&. -+Members of the UNIX group "sambashare" can create user-defined shares on demand using the commands below\&. - .PP - The usershare commands are: - .RS 4 -Index: experimental/source3/param/loadparm.c -=================================================================== ---- experimental.orig/source3/param/loadparm.c -+++ experimental/source3/param/loadparm.c -@@ -5461,7 +5461,7 @@ - string_set(&Globals.szUsersharePath, s); - SAFE_FREE(s); - string_set(&Globals.szUsershareTemplateShare, ""); -- Globals.iUsershareMaxShares = 0; -+ Globals.iUsershareMaxShares = 100; - /* By default disallow sharing of directories not owned by the sharer. */ - Globals.bUsershareOwnerOnly = True; - /* By default disallow guest access to usershares. */ diff --git a/meta-oe/recipes-connectivity/samba/samba-3.6.24/waf-as-source.patch b/meta-oe/recipes-connectivity/samba/samba-3.6.24/waf-as-source.patch deleted file mode 100644 index 985ed5af1f3..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-3.6.24/waf-as-source.patch +++ /dev/null @@ -1,18534 +0,0 @@ -Description: Include waf as an extracted source directory, rather than as a one-in-a-file script. -Author: Jelmer Vernooij -Bug-Debian: http://bugs.debian.org/654499 -Forwarded: yes -Bug: https://bugzilla.samba.org/show_bug.cgi?id=8923 - -diff --git a/buildtools/README b/buildtools/README -new file mode 100644 -index 0000000..eab0382 ---- /dev/null -+++ b/buildtools/README -@@ -0,0 +1,12 @@ -+See http://code.google.com/p/waf/ for more information on waf -+ -+You can get a svn copy of the upstream source with: -+ -+ svn checkout http://waf.googlecode.com/svn/trunk/ waf-read-only -+ -+Samba currently uses waf 1.5, which can be found at: -+ -+ http://waf.googlecode.com/svn/branches/waf-1.5 -+ -+To update the current copy of waf, use the update-waf.sh script in this -+directory. -diff --git a/buildtools/bin/README b/buildtools/bin/README -deleted file mode 100644 -index 9ef8a1f..0000000 ---- a/buildtools/bin/README -+++ /dev/null -@@ -1,16 +0,0 @@ --This copy of waf-svn is taken from the git mirror of waf --at: -- -- git://git.samba.org/tridge/waf-svn.git -- --using the waf-samba branch -- --It was built using the command: -- -- ./waf-light --zip-type=gz --make-waf -- --See http://code.google.com/p/waf/ for more information on waf -- --You can get a svn copy of the upstream source with: -- -- svn checkout http://waf.googlecode.com/svn/trunk/ waf-read-only -diff --git a/buildtools/update-waf.sh b/buildtools/update-waf.sh -new file mode 100755 -index 0000000..bb3a4bf ---- /dev/null -+++ b/buildtools/update-waf.sh -@@ -0,0 +1,13 @@ -+#!/bin/sh -+# Update our copy of waf -+ -+TARGETDIR="`dirname $0`" -+WORKDIR="`mktemp -d`" -+ -+mkdir -p "$WORKDIR" -+ -+svn checkout http://waf.googlecode.com/svn/branches/waf-1.5/wafadmin "$WORKDIR/wafadmin" -+ -+rsync -C -avz --delete "$WORKDIR/wafadmin/" "$TARGETDIR/wafadmin/" -+ -+rm -rf "$WORKDIR" -diff --git a/buildtools/wafadmin/3rdparty/ParallelDebug.py b/buildtools/wafadmin/3rdparty/ParallelDebug.py -new file mode 100644 -index 0000000..9d0493e ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/ParallelDebug.py -@@ -0,0 +1,299 @@ -+#! /usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2007-2010 (ita) -+ -+""" -+debugging helpers for parallel compilation, outputs -+a svg file in the build directory -+""" -+ -+import os, time, sys, threading -+try: from Queue import Queue -+except: from queue import Queue -+import Runner, Options, Utils, Task, Logs -+from Constants import * -+ -+#import random -+#random.seed(100) -+ -+def set_options(opt): -+ opt.add_option('--dtitle', action='store', default='Parallel build representation for %r' % ' '.join(sys.argv), -+ help='title for the svg diagram', dest='dtitle') -+ opt.add_option('--dwidth', action='store', type='int', help='diagram width', default=1000, dest='dwidth') -+ opt.add_option('--dtime', action='store', type='float', help='recording interval in seconds', default=0.009, dest='dtime') -+ opt.add_option('--dband', action='store', type='int', help='band width', default=22, dest='dband') -+ opt.add_option('--dmaxtime', action='store', type='float', help='maximum time, for drawing fair comparisons', default=0, dest='dmaxtime') -+ -+# red #ff4d4d -+# green #4da74d -+# lila #a751ff -+ -+color2code = { -+ 'GREEN' : '#4da74d', -+ 'YELLOW' : '#fefe44', -+ 'PINK' : '#a751ff', -+ 'RED' : '#cc1d1d', -+ 'BLUE' : '#6687bb', -+ 'CYAN' : '#34e2e2', -+ -+} -+ -+mp = {} -+info = [] # list of (text,color) -+ -+def map_to_color(name): -+ if name in mp: -+ return mp[name] -+ try: -+ cls = Task.TaskBase.classes[name] -+ except KeyError: -+ return color2code['RED'] -+ if cls.color in mp: -+ return mp[cls.color] -+ if cls.color in color2code: -+ return color2code[cls.color] -+ return color2code['RED'] -+ -+def loop(self): -+ while 1: -+ tsk=Runner.TaskConsumer.ready.get() -+ tsk.master.set_running(1, id(threading.currentThread()), tsk) -+ Runner.process_task(tsk) -+ tsk.master.set_running(-1, id(threading.currentThread()), tsk) -+Runner.TaskConsumer.loop = loop -+ -+ -+old_start = Runner.Parallel.start -+def do_start(self): -+ print Options.options -+ try: -+ Options.options.dband -+ except AttributeError: -+ raise ValueError('use def options(opt): opt.load("parallel_debug")!') -+ -+ self.taskinfo = Queue() -+ old_start(self) -+ process_colors(self) -+Runner.Parallel.start = do_start -+ -+def set_running(self, by, i, tsk): -+ self.taskinfo.put( (i, id(tsk), time.time(), tsk.__class__.__name__, self.processed, self.count, by) ) -+Runner.Parallel.set_running = set_running -+ -+def name2class(name): -+ return name.replace(' ', '_').replace('.', '_') -+ -+def process_colors(producer): -+ # first, cast the parameters -+ tmp = [] -+ try: -+ while True: -+ tup = producer.taskinfo.get(False) -+ tmp.append(list(tup)) -+ except: -+ pass -+ -+ try: -+ ini = float(tmp[0][2]) -+ except: -+ return -+ -+ if not info: -+ seen = [] -+ for x in tmp: -+ name = x[3] -+ if not name in seen: -+ seen.append(name) -+ else: -+ continue -+ -+ info.append((name, map_to_color(name))) -+ info.sort(key=lambda x: x[0]) -+ -+ thread_count = 0 -+ acc = [] -+ for x in tmp: -+ thread_count += x[6] -+ acc.append("%d %d %f %r %d %d %d" % (x[0], x[1], x[2] - ini, x[3], x[4], x[5], thread_count)) -+ f = open('pdebug.dat', 'w') -+ #Utils.write('\n'.join(acc)) -+ f.write('\n'.join(acc)) -+ -+ tmp = [lst[:2] + [float(lst[2]) - ini] + lst[3:] for lst in tmp] -+ -+ st = {} -+ for l in tmp: -+ if not l[0] in st: -+ st[l[0]] = len(st.keys()) -+ tmp = [ [st[lst[0]]] + lst[1:] for lst in tmp ] -+ THREAD_AMOUNT = len(st.keys()) -+ -+ st = {} -+ for l in tmp: -+ if not l[1] in st: -+ st[l[1]] = len(st.keys()) -+ tmp = [ [lst[0]] + [st[lst[1]]] + lst[2:] for lst in tmp ] -+ -+ -+ BAND = Options.options.dband -+ -+ seen = {} -+ acc = [] -+ for x in range(len(tmp)): -+ line = tmp[x] -+ id = line[1] -+ -+ if id in seen: -+ continue -+ seen[id] = True -+ -+ begin = line[2] -+ thread_id = line[0] -+ for y in range(x + 1, len(tmp)): -+ line = tmp[y] -+ if line[1] == id: -+ end = line[2] -+ #print id, thread_id, begin, end -+ #acc.append( ( 10*thread_id, 10*(thread_id+1), 10*begin, 10*end ) ) -+ acc.append( (BAND * begin, BAND*thread_id, BAND*end - BAND*begin, BAND, line[3]) ) -+ break -+ -+ if Options.options.dmaxtime < 0.1: -+ gwidth = 1 -+ for x in tmp: -+ m = BAND * x[2] -+ if m > gwidth: -+ gwidth = m -+ else: -+ gwidth = BAND * Options.options.dmaxtime -+ -+ ratio = float(Options.options.dwidth) / gwidth -+ gwidth = Options.options.dwidth -+ -+ gheight = BAND * (THREAD_AMOUNT + len(info) + 1.5) -+ -+ out = [] -+ -+ out.append(""" -+ -+ -+ -+ -+ -+ -+ -+ -+\n -+ -+""" % (0, 0, gwidth + 4, gheight + 4, 0, 0, gwidth + 4, gheight + 4)) -+ -+ # main title -+ if Options.options.dtitle: -+ out.append("""%s -+""" % (gwidth/2, gheight - 5, Options.options.dtitle)) -+ -+ # the rectangles -+ groups = {} -+ for (x, y, w, h, clsname) in acc: -+ try: -+ groups[clsname].append((x, y, w, h)) -+ except: -+ groups[clsname] = [(x, y, w, h)] -+ -+ for cls in groups: -+ -+ out.append("\n" % name2class(cls)) -+ -+ for (x, y, w, h) in groups[cls]: -+ out.append(""" \n""" % (2 + x*ratio, 2 + y, w*ratio, h, map_to_color(cls))) -+ -+ out.append("\n") -+ -+ # output the caption -+ cnt = THREAD_AMOUNT -+ -+ for (text, color) in info: -+ # caption box -+ b = BAND/2 -+ out.append("""\n""" % (name2class(text), 2 + BAND, 5 + (cnt + 0.5) * BAND, b, b, color)) -+ -+ # caption text -+ out.append("""%s\n""" % (2 + 2 * BAND, 5 + (cnt + 0.5) * BAND + 10, text)) -+ cnt += 1 -+ -+ out.append(""" -+ -+ -+ -+""") -+ -+ out.append("\n") -+ -+ #node = producer.bld.path.make_node('pdebug.svg') -+ f = open('pdebug.svg', 'w') -+ f.write("".join(out)) -+ -+ -diff --git a/buildtools/wafadmin/3rdparty/batched_cc.py b/buildtools/wafadmin/3rdparty/batched_cc.py -new file mode 100644 -index 0000000..8e31074 ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/batched_cc.py -@@ -0,0 +1,183 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+""" -+Batched builds - compile faster -+instead of compiling object files one by one, c/c++ compilers are often able to compile at once: -+cc -c ../file1.c ../file2.c ../file3.c -+ -+Files are output on the directory where the compiler is called, and dependencies are more difficult -+to track (do not run the command on all source files if only one file changes) -+ -+As such, we do as if the files were compiled one by one, but no command is actually run: -+replace each cc/cpp Task by a TaskSlave -+A new task called TaskMaster collects the signatures from each slave and finds out the command-line -+to run. -+ -+To set this up, the method ccroot::create_task is replaced by a new version, to enable batched builds -+it is only necessary to import this module in the configuration (no other change required) -+""" -+ -+MAX_BATCH = 50 -+MAXPARALLEL = False -+ -+EXT_C = ['.c', '.cc', '.cpp', '.cxx'] -+ -+import os, threading -+import TaskGen, Task, ccroot, Build, Logs -+from TaskGen import extension, feature, before -+from Constants import * -+ -+cc_str = '${CC} ${CCFLAGS} ${CPPFLAGS} ${_CCINCFLAGS} ${_CCDEFFLAGS} -c ${SRCLST}' -+cc_fun = Task.compile_fun_noshell('batched_cc', cc_str)[0] -+ -+cxx_str = '${CXX} ${CXXFLAGS} ${CPPFLAGS} ${_CXXINCFLAGS} ${_CXXDEFFLAGS} -c ${SRCLST}' -+cxx_fun = Task.compile_fun_noshell('batched_cxx', cxx_str)[0] -+ -+count = 70000 -+class batch_task(Task.Task): -+ color = 'RED' -+ -+ after = 'cc cxx' -+ before = 'cc_link cxx_link static_link' -+ -+ def __str__(self): -+ return '(batch compilation for %d slaves)\n' % len(self.slaves) -+ -+ def __init__(self, *k, **kw): -+ Task.Task.__init__(self, *k, **kw) -+ self.slaves = [] -+ self.inputs = [] -+ self.hasrun = 0 -+ -+ global count -+ count += 1 -+ self.idx = count -+ -+ def add_slave(self, slave): -+ self.slaves.append(slave) -+ self.set_run_after(slave) -+ -+ def runnable_status(self): -+ for t in self.run_after: -+ if not t.hasrun: -+ return ASK_LATER -+ -+ for t in self.slaves: -+ #if t.executed: -+ if t.hasrun != SKIPPED: -+ return RUN_ME -+ -+ return SKIP_ME -+ -+ def run(self): -+ outputs = [] -+ self.outputs = [] -+ -+ srclst = [] -+ slaves = [] -+ for t in self.slaves: -+ if t.hasrun != SKIPPED: -+ slaves.append(t) -+ srclst.append(t.inputs[0].abspath(self.env)) -+ -+ self.env.SRCLST = srclst -+ self.cwd = slaves[0].inputs[0].parent.abspath(self.env) -+ -+ env = self.env -+ app = env.append_unique -+ cpppath_st = env['CPPPATH_ST'] -+ env._CCINCFLAGS = env.CXXINCFLAGS = [] -+ -+ # local flags come first -+ # set the user-defined includes paths -+ for i in env['INC_PATHS']: -+ app('_CCINCFLAGS', cpppath_st % i.abspath()) -+ app('_CXXINCFLAGS', cpppath_st % i.abspath()) -+ app('_CCINCFLAGS', cpppath_st % i.abspath(env)) -+ app('_CXXINCFLAGS', cpppath_st % i.abspath(env)) -+ -+ # set the library include paths -+ for i in env['CPPPATH']: -+ app('_CCINCFLAGS', cpppath_st % i) -+ app('_CXXINCFLAGS', cpppath_st % i) -+ -+ if self.slaves[0].__class__.__name__ == 'cc': -+ ret = cc_fun(self) -+ else: -+ ret = cxx_fun(self) -+ -+ if ret: -+ return ret -+ -+ for t in slaves: -+ t.old_post_run() -+ -+from TaskGen import extension, feature, after -+ -+import cc, cxx -+def wrap(fun): -+ def foo(self, node): -+ # we cannot control the extension, this sucks -+ self.obj_ext = '.o' -+ -+ task = fun(self, node) -+ if not getattr(self, 'masters', None): -+ self.masters = {} -+ self.allmasters = [] -+ -+ if not node.parent.id in self.masters: -+ m = self.masters[node.parent.id] = self.master = self.create_task('batch') -+ self.allmasters.append(m) -+ else: -+ m = self.masters[node.parent.id] -+ if len(m.slaves) > MAX_BATCH: -+ m = self.masters[node.parent.id] = self.master = self.create_task('batch') -+ self.allmasters.append(m) -+ -+ m.add_slave(task) -+ return task -+ return foo -+ -+c_hook = wrap(cc.c_hook) -+extension(cc.EXT_CC)(c_hook) -+ -+cxx_hook = wrap(cxx.cxx_hook) -+extension(cxx.EXT_CXX)(cxx_hook) -+ -+ -+@feature('cprogram', 'cshlib', 'cstaticlib') -+@after('apply_link') -+def link_after_masters(self): -+ if getattr(self, 'allmasters', None): -+ for m in self.allmasters: -+ self.link_task.set_run_after(m) -+ -+for c in ['cc', 'cxx']: -+ t = Task.TaskBase.classes[c] -+ def run(self): -+ pass -+ -+ def post_run(self): -+ #self.executed=1 -+ pass -+ -+ def can_retrieve_cache(self): -+ if self.old_can_retrieve_cache(): -+ for m in self.generator.allmasters: -+ try: -+ m.slaves.remove(self) -+ except ValueError: -+ pass #this task wasn't included in that master -+ return 1 -+ else: -+ return None -+ -+ setattr(t, 'oldrun', t.__dict__['run']) -+ setattr(t, 'run', run) -+ setattr(t, 'old_post_run', t.post_run) -+ setattr(t, 'post_run', post_run) -+ setattr(t, 'old_can_retrieve_cache', t.can_retrieve_cache) -+ setattr(t, 'can_retrieve_cache', can_retrieve_cache) -+ -diff --git a/buildtools/wafadmin/3rdparty/boost.py b/buildtools/wafadmin/3rdparty/boost.py -new file mode 100644 -index 0000000..e690a4e ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/boost.py -@@ -0,0 +1,343 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# -+# partially based on boost.py written by Gernot Vormayr -+# written by Ruediger Sonderfeld , 2008 -+# modified by Bjoern Michaelsen, 2008 -+# modified by Luca Fossati, 2008 -+# rewritten for waf 1.5.1, Thomas Nagy, 2008 -+# -+#def set_options(opt): -+# opt.tool_options('boost') -+# # ... -+# -+#def configure(conf): -+# # ... (e.g. conf.check_tool('g++')) -+# conf.check_tool('boost') -+# conf.check_boost(lib='signals filesystem', static='onlystatic', score_version=(-1000, 1000), tag_minscore=1000) -+# -+#def build(bld): -+# bld(source='main.c', target='bar', uselib="BOOST BOOST_SYSTEM") -+# -+#ISSUES: -+# * find_includes should be called only once! -+# * support mandatory -+ -+######## boost update ########### -+## ITA: * the method get_boost_version_number does work -+## * the rest of the code has not really been tried -+# * make certain a demo is provided (in demos/adv for example) -+ -+# TODO: bad and underdocumented code -> boost.py will be removed in waf 1.6 to be rewritten later -+ -+import os.path, glob, types, re, sys -+import Configure, config_c, Options, Utils, Logs -+from Logs import warn, debug -+from Configure import conf -+ -+boost_code = ''' -+#include -+#include -+int main() { std::cout << BOOST_VERSION << std::endl; } -+''' -+ -+boost_libpath = ['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/sw/lib', '/lib'] -+boost_cpppath = ['/usr/include', '/usr/local/include', '/opt/local/include', '/sw/include'] -+ -+STATIC_NOSTATIC = 'nostatic' -+STATIC_BOTH = 'both' -+STATIC_ONLYSTATIC = 'onlystatic' -+ -+is_versiontag = re.compile('^\d+_\d+_?\d*$') -+is_threadingtag = re.compile('^mt$') -+is_abitag = re.compile('^[sgydpn]+$') -+is_toolsettag = re.compile('^(acc|borland|como|cw|dmc|darwin|gcc|hp_cxx|intel|kylix|vc|mgw|qcc|sun|vacpp)\d*$') -+is_pythontag=re.compile('^py[0-9]{2}$') -+ -+def set_options(opt): -+ opt.add_option('--boost-includes', type='string', default='', dest='boostincludes', help='path to the boost directory where the includes are e.g. /usr/local/include/boost-1_35') -+ opt.add_option('--boost-libs', type='string', default='', dest='boostlibs', help='path to the directory where the boost libs are e.g. /usr/local/lib') -+ -+def string_to_version(s): -+ version = s.split('.') -+ if len(version) < 3: return 0 -+ return int(version[0])*100000 + int(version[1])*100 + int(version[2]) -+ -+def version_string(version): -+ major = version / 100000 -+ minor = version / 100 % 1000 -+ minor_minor = version % 100 -+ if minor_minor == 0: -+ return "%d_%d" % (major, minor) -+ else: -+ return "%d_%d_%d" % (major, minor, minor_minor) -+ -+def libfiles(lib, pattern, lib_paths): -+ result = [] -+ for lib_path in lib_paths: -+ libname = pattern % ('boost_%s[!_]*' % lib) -+ result += glob.glob(os.path.join(lib_path, libname)) -+ return result -+ -+@conf -+def get_boost_version_number(self, dir): -+ """silently retrieve the boost version number""" -+ try: -+ return self.run_c_code(compiler='cxx', code=boost_code, includes=dir, execute=1, env=self.env.copy(), type='cprogram', compile_mode='cxx', compile_filename='test.cpp') -+ except Configure.ConfigurationError, e: -+ return -1 -+ -+def set_default(kw, var, val): -+ if not var in kw: -+ kw[var] = val -+ -+def tags_score(tags, kw): -+ """ -+ checks library tags -+ -+ see http://www.boost.org/doc/libs/1_35_0/more/getting_started/unix-variants.html 6.1 -+ """ -+ score = 0 -+ needed_tags = { -+ 'threading': kw['tag_threading'], -+ 'abi': kw['tag_abi'], -+ 'toolset': kw['tag_toolset'], -+ 'version': kw['tag_version'], -+ 'python': kw['tag_python'] -+ } -+ -+ if kw['tag_toolset'] is None: -+ v = kw['env'] -+ toolset = v['CXX_NAME'] -+ if v['CXX_VERSION']: -+ version_no = v['CXX_VERSION'].split('.') -+ toolset += version_no[0] -+ if len(version_no) > 1: -+ toolset += version_no[1] -+ needed_tags['toolset'] = toolset -+ -+ found_tags = {} -+ for tag in tags: -+ if is_versiontag.match(tag): found_tags['version'] = tag -+ if is_threadingtag.match(tag): found_tags['threading'] = tag -+ if is_abitag.match(tag): found_tags['abi'] = tag -+ if is_toolsettag.match(tag): found_tags['toolset'] = tag -+ if is_pythontag.match(tag): found_tags['python'] = tag -+ -+ for tagname in needed_tags.iterkeys(): -+ if needed_tags[tagname] is not None and tagname in found_tags: -+ if re.compile(needed_tags[tagname]).match(found_tags[tagname]): -+ score += kw['score_' + tagname][0] -+ else: -+ score += kw['score_' + tagname][1] -+ return score -+ -+@conf -+def validate_boost(self, kw): -+ ver = kw.get('version', '') -+ -+ for x in 'min_version max_version version'.split(): -+ set_default(kw, x, ver) -+ -+ set_default(kw, 'lib', '') -+ kw['lib'] = Utils.to_list(kw['lib']) -+ -+ set_default(kw, 'env', self.env) -+ -+ set_default(kw, 'libpath', boost_libpath) -+ set_default(kw, 'cpppath', boost_cpppath) -+ -+ for x in 'tag_threading tag_version tag_toolset'.split(): -+ set_default(kw, x, None) -+ set_default(kw, 'tag_abi', '^[^d]*$') -+ -+ set_default(kw, 'python', str(sys.version_info[0]) + str(sys.version_info[1]) ) -+ set_default(kw, 'tag_python', '^py' + kw['python'] + '$') -+ -+ set_default(kw, 'score_threading', (10, -10)) -+ set_default(kw, 'score_abi', (10, -10)) -+ set_default(kw, 'score_python', (10,-10)) -+ set_default(kw, 'score_toolset', (1, -1)) -+ set_default(kw, 'score_version', (100, -100)) -+ -+ set_default(kw, 'score_min', 0) -+ set_default(kw, 'static', STATIC_NOSTATIC) -+ set_default(kw, 'found_includes', False) -+ set_default(kw, 'min_score', 0) -+ -+ set_default(kw, 'errmsg', 'not found') -+ set_default(kw, 'okmsg', 'ok') -+ -+@conf -+def find_boost_includes(self, kw): -+ """ -+ check every path in kw['cpppath'] for subdir -+ that either starts with boost- or is named boost. -+ -+ Then the version is checked and selected accordingly to -+ min_version/max_version. The highest possible version number is -+ selected! -+ -+ If no versiontag is set the versiontag is set accordingly to the -+ selected library and CPPPATH_BOOST is set. -+ """ -+ boostPath = getattr(Options.options, 'boostincludes', '') -+ if boostPath: -+ boostPath = [os.path.normpath(os.path.expandvars(os.path.expanduser(boostPath)))] -+ else: -+ boostPath = Utils.to_list(kw['cpppath']) -+ -+ min_version = string_to_version(kw.get('min_version', '')) -+ max_version = string_to_version(kw.get('max_version', '')) or (sys.maxint - 1) -+ -+ version = 0 -+ for include_path in boostPath: -+ boost_paths = [p for p in glob.glob(os.path.join(include_path, 'boost*')) if os.path.isdir(p)] -+ debug('BOOST Paths: %r' % boost_paths) -+ for path in boost_paths: -+ pathname = os.path.split(path)[-1] -+ ret = -1 -+ if pathname == 'boost': -+ path = include_path -+ ret = self.get_boost_version_number(path) -+ elif pathname.startswith('boost-'): -+ ret = self.get_boost_version_number(path) -+ ret = int(ret) -+ -+ if ret != -1 and ret >= min_version and ret <= max_version and ret > version: -+ boost_path = path -+ version = ret -+ if not version: -+ self.fatal('boost headers not found! (required version min: %s max: %s)' -+ % (kw['min_version'], kw['max_version'])) -+ return False -+ -+ found_version = version_string(version) -+ versiontag = '^' + found_version + '$' -+ if kw['tag_version'] is None: -+ kw['tag_version'] = versiontag -+ elif kw['tag_version'] != versiontag: -+ warn('boost header version %r and tag_version %r do not match!' % (versiontag, kw['tag_version'])) -+ env = self.env -+ env['CPPPATH_BOOST'] = boost_path -+ env['BOOST_VERSION'] = found_version -+ self.found_includes = 1 -+ ret = 'Version %s (%s)' % (found_version, boost_path) -+ return ret -+ -+@conf -+def find_boost_library(self, lib, kw): -+ -+ def find_library_from_list(lib, files): -+ lib_pattern = re.compile('.*boost_(.*?)\..*') -+ result = (None, None) -+ resultscore = kw['min_score'] - 1 -+ for file in files: -+ m = lib_pattern.search(file, 1) -+ if m: -+ libname = m.group(1) -+ libtags = libname.split('-')[1:] -+ currentscore = tags_score(libtags, kw) -+ if currentscore > resultscore: -+ result = (libname, file) -+ resultscore = currentscore -+ return result -+ -+ lib_paths = getattr(Options.options, 'boostlibs', '') -+ if lib_paths: -+ lib_paths = [os.path.normpath(os.path.expandvars(os.path.expanduser(lib_paths)))] -+ else: -+ lib_paths = Utils.to_list(kw['libpath']) -+ -+ v = kw.get('env', self.env) -+ -+ (libname, file) = (None, None) -+ if kw['static'] in [STATIC_NOSTATIC, STATIC_BOTH]: -+ st_env_prefix = 'LIB' -+ files = libfiles(lib, v['shlib_PATTERN'], lib_paths) -+ (libname, file) = find_library_from_list(lib, files) -+ if libname is None and kw['static'] in [STATIC_ONLYSTATIC, STATIC_BOTH]: -+ st_env_prefix = 'STATICLIB' -+ staticLibPattern = v['staticlib_PATTERN'] -+ if self.env['CC_NAME'] == 'msvc': -+ staticLibPattern = 'lib' + staticLibPattern -+ files = libfiles(lib, staticLibPattern, lib_paths) -+ (libname, file) = find_library_from_list(lib, files) -+ if libname is not None: -+ v['LIBPATH_BOOST_' + lib.upper()] = [os.path.split(file)[0]] -+ if self.env['CC_NAME'] == 'msvc' and os.path.splitext(file)[1] == '.lib': -+ v[st_env_prefix + '_BOOST_' + lib.upper()] = ['libboost_'+libname] -+ else: -+ v[st_env_prefix + '_BOOST_' + lib.upper()] = ['boost_'+libname] -+ return -+ self.fatal('lib boost_' + lib + ' not found!') -+ -+@conf -+def check_boost(self, *k, **kw): -+ """ -+ This should be the main entry point -+ -+- min_version -+- max_version -+- version -+- include_path -+- lib_path -+- lib -+- toolsettag - None or a regexp -+- threadingtag - None or a regexp -+- abitag - None or a regexp -+- versiontag - WARNING: you should rather use version or min_version/max_version -+- static - look for static libs (values: -+ 'nostatic' or STATIC_NOSTATIC - ignore static libs (default) -+ 'both' or STATIC_BOTH - find static libs, too -+ 'onlystatic' or STATIC_ONLYSTATIC - find only static libs -+- score_version -+- score_abi -+- scores_threading -+- score_toolset -+ * the scores are tuples (match_score, nomatch_score) -+ match_score is the added to the score if the tag is matched -+ nomatch_score is added when a tag is found and does not match -+- min_score -+ """ -+ -+ if not self.env['CXX']: -+ self.fatal('load a c++ compiler tool first, for example conf.check_tool("g++")') -+ self.validate_boost(kw) -+ ret = None -+ try: -+ if not kw.get('found_includes', None): -+ self.check_message_1(kw.get('msg_includes', 'boost headers')) -+ ret = self.find_boost_includes(kw) -+ -+ except Configure.ConfigurationError, e: -+ if 'errmsg' in kw: -+ self.check_message_2(kw['errmsg'], 'YELLOW') -+ if 'mandatory' in kw: -+ if Logs.verbose > 1: -+ raise -+ else: -+ self.fatal('the configuration failed (see %r)' % self.log.name) -+ else: -+ if 'okmsg' in kw: -+ self.check_message_2(kw.get('okmsg_includes', ret)) -+ -+ for lib in kw['lib']: -+ self.check_message_1('library boost_'+lib) -+ try: -+ self.find_boost_library(lib, kw) -+ except Configure.ConfigurationError, e: -+ ret = False -+ if 'errmsg' in kw: -+ self.check_message_2(kw['errmsg'], 'YELLOW') -+ if 'mandatory' in kw: -+ if Logs.verbose > 1: -+ raise -+ else: -+ self.fatal('the configuration failed (see %r)' % self.log.name) -+ else: -+ if 'okmsg' in kw: -+ self.check_message_2(kw['okmsg']) -+ -+ return ret -+ -diff --git a/buildtools/wafadmin/3rdparty/fluid.py b/buildtools/wafadmin/3rdparty/fluid.py -new file mode 100644 -index 0000000..117edef ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/fluid.py -@@ -0,0 +1,27 @@ -+#!/usr/bin/python -+# encoding: utf-8 -+# Grygoriy Fuchedzhy 2009 -+ -+""" -+Compile fluid files (fltk graphic library). Use the 'fluid' feature in conjuction with the 'cxx' feature. -+""" -+ -+import Task -+from TaskGen import extension -+ -+Task.simple_task_type('fluid', '${FLUID} -c -o ${TGT[0].abspath(env)} -h ${TGT[1].abspath(env)} ${SRC}', 'BLUE', shell=False, ext_out='.cxx') -+ -+@extension('.fl') -+def fluid(self, node): -+ """add the .fl to the source list; the cxx file generated will be compiled when possible""" -+ cpp = node.change_ext('.cpp') -+ hpp = node.change_ext('.hpp') -+ self.create_task('fluid', node, [cpp, hpp]) -+ -+ if 'cxx' in self.features: -+ self.allnodes.append(cpp) -+ -+def detect(conf): -+ fluid = conf.find_program('fluid', var='FLUID', mandatory=True) -+ conf.check_cfg(path='fltk-config', package='', args='--cxxflags --ldflags', uselib_store='FLTK', mandatory=True) -+ -diff --git a/buildtools/wafadmin/3rdparty/gccdeps.py b/buildtools/wafadmin/3rdparty/gccdeps.py -new file mode 100644 -index 0000000..6600c9c ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/gccdeps.py -@@ -0,0 +1,128 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2008-2010 (ita) -+ -+""" -+Execute the tasks with gcc -MD, read the dependencies from the .d file -+and prepare the dependency calculation for the next run -+""" -+ -+import os, re, threading -+import Task, Logs, Utils, preproc -+from TaskGen import before, after, feature -+ -+lock = threading.Lock() -+ -+preprocessor_flag = '-MD' -+ -+@feature('cc') -+@before('apply_core') -+def add_mmd_cc(self): -+ if self.env.get_flat('CCFLAGS').find(preprocessor_flag) < 0: -+ self.env.append_value('CCFLAGS', preprocessor_flag) -+ -+@feature('cxx') -+@before('apply_core') -+def add_mmd_cxx(self): -+ if self.env.get_flat('CXXFLAGS').find(preprocessor_flag) < 0: -+ self.env.append_value('CXXFLAGS', preprocessor_flag) -+ -+def scan(self): -+ "the scanner does not do anything initially" -+ nodes = self.generator.bld.node_deps.get(self.unique_id(), []) -+ names = [] -+ return (nodes, names) -+ -+re_o = re.compile("\.o$") -+re_src = re.compile("^(\.\.)[\\/](.*)$") -+ -+def post_run(self): -+ # The following code is executed by threads, it is not safe, so a lock is needed... -+ -+ if getattr(self, 'cached', None): -+ return Task.Task.post_run(self) -+ -+ name = self.outputs[0].abspath(self.env) -+ name = re_o.sub('.d', name) -+ txt = Utils.readf(name) -+ #os.unlink(name) -+ -+ txt = txt.replace('\\\n', '') -+ -+ lst = txt.strip().split(':') -+ val = ":".join(lst[1:]) -+ val = val.split() -+ -+ nodes = [] -+ bld = self.generator.bld -+ -+ f = re.compile("^("+self.env.variant()+"|\.\.)[\\/](.*)$") -+ for x in val: -+ if os.path.isabs(x): -+ -+ if not preproc.go_absolute: -+ continue -+ -+ lock.acquire() -+ try: -+ node = bld.root.find_resource(x) -+ finally: -+ lock.release() -+ else: -+ g = re.search(re_src, x) -+ if g: -+ x = g.group(2) -+ lock.acquire() -+ try: -+ node = bld.bldnode.parent.find_resource(x) -+ finally: -+ lock.release() -+ else: -+ g = re.search(f, x) -+ if g: -+ x = g.group(2) -+ lock.acquire() -+ try: -+ node = bld.srcnode.find_resource(x) -+ finally: -+ lock.release() -+ -+ if id(node) == id(self.inputs[0]): -+ # ignore the source file, it is already in the dependencies -+ # this way, successful config tests may be retrieved from the cache -+ continue -+ -+ if not node: -+ raise ValueError('could not find %r for %r' % (x, self)) -+ else: -+ nodes.append(node) -+ -+ Logs.debug('deps: real scanner for %s returned %s' % (str(self), str(nodes))) -+ -+ bld.node_deps[self.unique_id()] = nodes -+ bld.raw_deps[self.unique_id()] = [] -+ -+ try: -+ del self.cache_sig -+ except: -+ pass -+ -+ Task.Task.post_run(self) -+ -+import Constants, Utils -+def sig_implicit_deps(self): -+ try: -+ return Task.Task.sig_implicit_deps(self) -+ except Utils.WafError: -+ return Constants.SIG_NIL -+ -+for name in 'cc cxx'.split(): -+ try: -+ cls = Task.TaskBase.classes[name] -+ except KeyError: -+ pass -+ else: -+ cls.post_run = post_run -+ cls.scan = scan -+ cls.sig_implicit_deps = sig_implicit_deps -+ -diff --git a/buildtools/wafadmin/3rdparty/go.py b/buildtools/wafadmin/3rdparty/go.py -new file mode 100644 -index 0000000..2d8df0d ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/go.py -@@ -0,0 +1,111 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# go.py - Waf tool for the Go programming language -+# By: Tom Wambold -+ -+import platform, os -+ -+import Task -+import Utils -+from TaskGen import feature, extension, after -+ -+Task.simple_task_type('gocompile', '${GOC} ${GOCFLAGS} -o ${TGT} ${SRC}', shell=False) -+Task.simple_task_type('gopack', '${GOP} grc ${TGT} ${SRC}', shell=False) -+Task.simple_task_type('golink', '${GOL} ${GOLFLAGS} -o ${TGT} ${SRC}', shell=False) -+ -+def detect(conf): -+ -+ def set_def(var, val): -+ if not conf.env[var]: -+ conf.env[var] = val -+ -+ goarch = os.getenv("GOARCH") -+ -+ if goarch == '386': -+ set_def('GO_PLATFORM', 'i386') -+ elif goarch == 'amd64': -+ set_def('GO_PLATFORM', 'x86_64') -+ elif goarch == 'arm': -+ set_def('GO_PLATFORM', 'arm') -+ else: -+ set_def('GO_PLATFORM', platform.machine()) -+ -+ if conf.env.GO_PLATFORM == 'x86_64': -+ set_def('GO_COMPILER', '6g') -+ set_def('GO_LINKER', '6l') -+ set_def('GO_EXTENSION', '.6') -+ elif conf.env.GO_PLATFORM in ['i386', 'i486', 'i586', 'i686']: -+ set_def('GO_COMPILER', '8g') -+ set_def('GO_LINKER', '8l') -+ set_def('GO_EXTENSION', '.8') -+ elif conf.env.GO_PLATFORM == 'arm': -+ set_def('GO_COMPILER', '5g') -+ set_def('GO_LINKER', '5l') -+ set_def('GO_EXTENSION', '.5') -+ -+ if not (conf.env.GO_COMPILER or conf.env.GO_LINKER or conf.env.GO_EXTENSION): -+ raise conf.fatal('Unsupported platform ' + platform.machine()) -+ -+ set_def('GO_PACK', 'gopack') -+ set_def('GO_PACK_EXTENSION', '.a') -+ -+ conf.find_program(conf.env.GO_COMPILER, var='GOC', mandatory=True) -+ conf.find_program(conf.env.GO_LINKER, var='GOL', mandatory=True) -+ conf.find_program(conf.env.GO_PACK, var='GOP', mandatory=True) -+ conf.find_program('cgo', var='CGO', mandatory=True) -+ -+@extension('.go') -+def compile_go(self, node): -+ try: -+ self.go_nodes.append(node) -+ except AttributeError: -+ self.go_nodes = [node] -+ -+@feature('go') -+@after('apply_core') -+def apply_compile_go(self): -+ try: -+ nodes = self.go_nodes -+ except AttributeError: -+ self.go_compile_task = None -+ else: -+ self.go_compile_task = self.create_task('gocompile', -+ nodes, -+ [self.path.find_or_declare(self.target + self.env.GO_EXTENSION)]) -+ -+@feature('gopackage', 'goprogram') -+@after('apply_compile_go') -+def apply_goinc(self): -+ if not getattr(self, 'go_compile_task', None): -+ return -+ -+ names = self.to_list(getattr(self, 'uselib_local', [])) -+ for name in names: -+ obj = self.name_to_obj(name) -+ if not obj: -+ raise Utils.WafError('object %r was not found in uselib_local ' -+ '(required by %r)' % (lib_name, self.name)) -+ obj.post() -+ self.go_compile_task.set_run_after(obj.go_package_task) -+ self.go_compile_task.dep_nodes.extend(obj.go_package_task.outputs) -+ self.env.append_unique('GOCFLAGS', '-I' + obj.path.abspath(obj.env)) -+ self.env.append_unique('GOLFLAGS', '-L' + obj.path.abspath(obj.env)) -+ -+@feature('gopackage') -+@after('apply_goinc') -+def apply_gopackage(self): -+ self.go_package_task = self.create_task('gopack', -+ self.go_compile_task.outputs[0], -+ self.path.find_or_declare(self.target + self.env.GO_PACK_EXTENSION)) -+ self.go_package_task.set_run_after(self.go_compile_task) -+ self.go_package_task.dep_nodes.extend(self.go_compile_task.outputs) -+ -+@feature('goprogram') -+@after('apply_goinc') -+def apply_golink(self): -+ self.go_link_task = self.create_task('golink', -+ self.go_compile_task.outputs[0], -+ self.path.find_or_declare(self.target)) -+ self.go_link_task.set_run_after(self.go_compile_task) -+ self.go_link_task.dep_nodes.extend(self.go_compile_task.outputs) -+ -diff --git a/buildtools/wafadmin/3rdparty/lru_cache.py b/buildtools/wafadmin/3rdparty/lru_cache.py -new file mode 100644 -index 0000000..5b00abc ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/lru_cache.py -@@ -0,0 +1,97 @@ -+#! /usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy 2011 -+ -+import os, shutil, re -+import Options, Build, Logs -+ -+""" -+Apply a least recently used policy to the Waf cache. -+ -+For performance reasons, it is called after the build is complete. -+ -+We assume that the the folders are written atomically -+ -+Do export WAFCACHE=/tmp/foo-xyz where xyz represents the cache size in megabytes -+If missing, the default cache size will be set to 10GB -+""" -+ -+re_num = re.compile('[a-zA-Z_]+(\d+)') -+ -+CACHESIZE = 10*1024*1024*1024 # in bytes -+CLEANRATIO = 0.8 -+DIRSIZE = 4096 -+ -+def compile(self): -+ if Options.cache_global and not Options.options.nocache: -+ try: -+ os.makedirs(Options.cache_global) -+ except: -+ pass -+ -+ try: -+ self.raw_compile() -+ finally: -+ if Options.cache_global and not Options.options.nocache: -+ self.sweep() -+ -+def sweep(self): -+ global CACHESIZE -+ CACHEDIR = Options.cache_global -+ -+ # get the cache max size from the WAFCACHE filename -+ re_num = re.compile('[a-zA-Z_]+(\d+)') -+ val = re_num.sub('\\1', os.path.basename(Options.cache_global)) -+ try: -+ CACHESIZE = int(val) -+ except: -+ pass -+ -+ # map folder names to timestamps -+ flist = {} -+ for x in os.listdir(CACHEDIR): -+ j = os.path.join(CACHEDIR, x) -+ if os.path.isdir(j) and len(x) == 32: # dir names are md5 hexdigests -+ flist[x] = [os.stat(j).st_mtime, 0] -+ -+ for (x, v) in flist.items(): -+ cnt = DIRSIZE # each entry takes 4kB -+ d = os.path.join(CACHEDIR, x) -+ for k in os.listdir(d): -+ cnt += os.stat(os.path.join(d, k)).st_size -+ flist[x][1] = cnt -+ -+ total = sum([x[1] for x in flist.values()]) -+ Logs.debug('lru: Cache size is %r' % total) -+ -+ if total >= CACHESIZE: -+ Logs.debug('lru: Trimming the cache since %r > %r' % (total, CACHESIZE)) -+ -+ # make a list to sort the folders by timestamp -+ lst = [(p, v[0], v[1]) for (p, v) in flist.items()] -+ lst.sort(key=lambda x: x[1]) # sort by timestamp -+ lst.reverse() -+ -+ while total >= CACHESIZE * CLEANRATIO: -+ (k, t, s) = lst.pop() -+ p = os.path.join(CACHEDIR, k) -+ v = p + '.del' -+ try: -+ os.rename(p, v) -+ except: -+ # someone already did it -+ pass -+ else: -+ try: -+ shutil.rmtree(v) -+ except: -+ # this should not happen, but who knows? -+ Logs.warn('If you ever see this message, report it (%r)' % v) -+ total -= s -+ del flist[k] -+ Logs.debug('lru: Total at the end %r' % total) -+ -+Build.BuildContext.raw_compile = Build.BuildContext.compile -+Build.BuildContext.compile = compile -+Build.BuildContext.sweep = sweep -+ -diff --git a/buildtools/wafadmin/3rdparty/paranoid.py b/buildtools/wafadmin/3rdparty/paranoid.py -new file mode 100644 -index 0000000..ead64ea ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/paranoid.py -@@ -0,0 +1,35 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# ita 2010 -+ -+import Logs, Utils, Build, Task -+ -+def say(txt): -+ Logs.warn("^o^: %s" % txt) -+ -+try: -+ ret = Utils.cmd_output('which cowsay 2> /dev/null').strip() -+except Exception, e: -+ pass -+else: -+ def say(txt): -+ f = Utils.cmd_output([ret, txt]) -+ Utils.pprint('PINK', f) -+ -+say('you make the errors, we detect them') -+ -+def check_task_classes(self): -+ for x in Task.TaskBase.classes: -+ if isinstance(x, Task.Task): -+ if not getattr(cls, 'ext_in', None) or getattr(cls, 'before', None): -+ say('class %s has no precedence constraints (ext_in/before)') -+ if not getattr(cls, 'ext_out', None) or getattr(cls, 'after', None): -+ say('class %s has no precedence constraints (ext_out/after)') -+ -+comp = Build.BuildContext.compile -+def compile(self): -+ if not getattr(self, 'magic', None): -+ check_task_classes(self) -+ return comp(self) -+Build.BuildContext.compile = compile -+ -diff --git a/buildtools/wafadmin/3rdparty/swig.py b/buildtools/wafadmin/3rdparty/swig.py -new file mode 100644 -index 0000000..c0a4108 ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/swig.py -@@ -0,0 +1,190 @@ -+#! /usr/bin/env python -+# encoding: UTF-8 -+# Petar Forai -+# Thomas Nagy 2008 -+ -+import re -+import Task, Utils, Logs -+from TaskGen import extension -+from Configure import conf -+import preproc -+ -+""" -+Welcome in the hell of adding tasks dynamically -+ -+swig interface files may be created at runtime, the module name may be unknown in advance -+ -+rev 5859 is much more simple -+""" -+ -+SWIG_EXTS = ['.swig', '.i'] -+ -+swig_str = '${SWIG} ${SWIGFLAGS} ${_CCINCFLAGS} ${_CXXINCFLAGS} ${_CCDEFFLAGS} ${_CXXDEFFLAGS} ${SRC}' -+cls = Task.simple_task_type('swig', swig_str, color='BLUE', ext_in='.i .h', ext_out='.o .c .cxx', shell=False) -+ -+def runnable_status(self): -+ for t in self.run_after: -+ if not t.hasrun: -+ return ASK_LATER -+ -+ if not getattr(self, 'init_outputs', None): -+ self.init_outputs = True -+ if not getattr(self, 'module', None): -+ # search the module name -+ txt = self.inputs[0].read(self.env) -+ m = re_module.search(txt) -+ if not m: -+ raise ValueError("could not find the swig module name") -+ self.module = m.group(1) -+ -+ swig_c(self) -+ -+ # add the language-specific output files as nodes -+ # call funs in the dict swig_langs -+ for x in self.env['SWIGFLAGS']: -+ # obtain the language -+ x = x[1:] -+ try: -+ fun = swig_langs[x] -+ except KeyError: -+ pass -+ else: -+ fun(self) -+ -+ return Task.Task.runnable_status(self) -+setattr(cls, 'runnable_status', runnable_status) -+ -+re_module = re.compile('%module(?:\s*\(.*\))?\s+(.+)', re.M) -+ -+re_1 = re.compile(r'^%module.*?\s+([\w]+)\s*?$', re.M) -+re_2 = re.compile('%include "(.*)"', re.M) -+re_3 = re.compile('#include "(.*)"', re.M) -+ -+def scan(self): -+ "scan for swig dependencies, climb the .i files" -+ env = self.env -+ -+ lst_src = [] -+ -+ seen = [] -+ to_see = [self.inputs[0]] -+ -+ while to_see: -+ node = to_see.pop(0) -+ if node.id in seen: -+ continue -+ seen.append(node.id) -+ lst_src.append(node) -+ -+ # read the file -+ code = node.read(env) -+ code = preproc.re_nl.sub('', code) -+ code = preproc.re_cpp.sub(preproc.repl, code) -+ -+ # find .i files and project headers -+ names = re_2.findall(code) + re_3.findall(code) -+ for n in names: -+ for d in self.generator.env.INC_PATHS + [node.parent]: -+ u = d.find_resource(n) -+ if u: -+ to_see.append(u) -+ break -+ else: -+ Logs.warn('could not find %r' % n) -+ -+ # list of nodes this one depends on, and module name if present -+ if Logs.verbose: -+ Logs.debug('deps: deps for %s: %s' % (str(self), str(lst_src))) -+ return (lst_src, []) -+cls.scan = scan -+ -+# provide additional language processing -+swig_langs = {} -+def swig(fun): -+ swig_langs[fun.__name__.replace('swig_', '')] = fun -+ -+def swig_c(self): -+ ext = '.swigwrap_%d.c' % self.generator.idx -+ flags = self.env['SWIGFLAGS'] -+ if '-c++' in flags: -+ ext += 'xx' -+ out_node = self.inputs[0].parent.find_or_declare(self.module + ext) -+ -+ try: -+ if '-c++' in flags: -+ fun = self.generator.cxx_hook -+ else: -+ fun = self.generator.c_hook -+ except AttributeError: -+ raise Utils.WafError('No c%s compiler was found to process swig files' % ('-c++' in flags and '++' or '')) -+ -+ task = fun(out_node) -+ task.set_run_after(self) -+ -+ ge = self.generator.bld.generator -+ ge.outstanding.insert(0, task) -+ ge.total += 1 -+ -+ try: -+ ltask = self.generator.link_task -+ except AttributeError: -+ pass -+ else: -+ ltask.inputs.append(task.outputs[0]) -+ -+ self.outputs.append(out_node) -+ -+ if not '-o' in self.env['SWIGFLAGS']: -+ self.env.append_value('SWIGFLAGS', '-o') -+ self.env.append_value('SWIGFLAGS', self.outputs[0].abspath(self.env)) -+ -+@swig -+def swig_python(tsk): -+ tsk.set_outputs(tsk.inputs[0].parent.find_or_declare(tsk.module + '.py')) -+ -+@swig -+def swig_ocaml(tsk): -+ tsk.set_outputs(tsk.inputs[0].parent.find_or_declare(tsk.module + '.ml')) -+ tsk.set_outputs(tsk.inputs[0].parent.find_or_declare(tsk.module + '.mli')) -+ -+@extension(SWIG_EXTS) -+def i_file(self, node): -+ # the task instance -+ tsk = self.create_task('swig') -+ tsk.set_inputs(node) -+ tsk.module = getattr(self, 'swig_module', None) -+ -+ flags = self.to_list(getattr(self, 'swig_flags', [])) -+ self.env.append_value('SWIGFLAGS', flags) -+ -+ if not '-outdir' in flags: -+ flags.append('-outdir') -+ flags.append(node.parent.abspath(self.env)) -+ -+@conf -+def check_swig_version(conf, minver=None): -+ """Check for a minimum swig version like conf.check_swig_version('1.3.28') -+ or conf.check_swig_version((1,3,28)) """ -+ reg_swig = re.compile(r'SWIG Version\s(.*)', re.M) -+ -+ swig_out = Utils.cmd_output('%s -version' % conf.env['SWIG']) -+ -+ swigver = [int(s) for s in reg_swig.findall(swig_out)[0].split('.')] -+ if isinstance(minver, basestring): -+ minver = [int(s) for s in minver.split(".")] -+ if isinstance(minver, tuple): -+ minver = [int(s) for s in minver] -+ result = (minver is None) or (minver[:3] <= swigver[:3]) -+ swigver_full = '.'.join(map(str, swigver)) -+ if result: -+ conf.env['SWIG_VERSION'] = swigver_full -+ minver_str = '.'.join(map(str, minver)) -+ if minver is None: -+ conf.check_message_custom('swig version', '', swigver_full) -+ else: -+ conf.check_message('swig version', '>= %s' % (minver_str,), result, option=swigver_full) -+ return result -+ -+def detect(conf): -+ swig = conf.find_program('swig', var='SWIG', mandatory=True) -+ -diff --git a/buildtools/wafadmin/3rdparty/valadoc.py b/buildtools/wafadmin/3rdparty/valadoc.py -new file mode 100644 -index 0000000..d0a9fe8 ---- /dev/null -+++ b/buildtools/wafadmin/3rdparty/valadoc.py -@@ -0,0 +1,113 @@ -+#! /usr/bin/env python -+# encoding: UTF-8 -+# Nicolas Joseph 2009 -+ -+from fnmatch import fnmatchcase -+import os, os.path, re, stat -+import Task, Utils, Node, Constants -+from TaskGen import feature, extension, after -+from Logs import debug, warn, error -+ -+VALADOC_STR = '${VALADOC}' -+ -+class valadoc_task(Task.Task): -+ -+ vars = ['VALADOC', 'VALADOCFLAGS'] -+ color = 'BLUE' -+ after = 'cxx_link cc_link' -+ quiet = True -+ -+ output_dir = '' -+ doclet = '' -+ package_name = '' -+ package_version = '' -+ files = [] -+ protected = True -+ private = False -+ inherit = False -+ deps = False -+ enable_non_null_experimental = False -+ force = False -+ -+ def runnable_status(self): -+ return True -+ -+ def run(self): -+ if self.env['VALADOC']: -+ if not self.env['VALADOCFLAGS']: -+ self.env['VALADOCFLAGS'] = '' -+ cmd = [Utils.subst_vars(VALADOC_STR, self.env)] -+ cmd.append ('-o %s' % self.output_dir) -+ if getattr(self, 'doclet', None): -+ cmd.append ('--doclet %s' % self.doclet) -+ cmd.append ('--package-name %s' % self.package_name) -+ if getattr(self, 'version', None): -+ cmd.append ('--package-version %s' % self.package_version) -+ if getattr(self, 'packages', None): -+ for package in self.packages: -+ cmd.append ('--pkg %s' % package) -+ if getattr(self, 'vapi_dirs', None): -+ for vapi_dir in self.vapi_dirs: -+ cmd.append ('--vapidir %s' % vapi_dir) -+ if not getattr(self, 'protected', None): -+ cmd.append ('--no-protected') -+ if getattr(self, 'private', None): -+ cmd.append ('--private') -+ if getattr(self, 'inherit', None): -+ cmd.append ('--inherit') -+ if getattr(self, 'deps', None): -+ cmd.append ('--deps') -+ if getattr(self, 'enable_non_null_experimental', None): -+ cmd.append ('--enable-non-null-experimental') -+ if getattr(self, 'force', None): -+ cmd.append ('--force') -+ cmd.append (' '.join ([x.relpath_gen (self.generator.bld.bldnode) for x in self.files])) -+ return self.generator.bld.exec_command(' '.join(cmd)) -+ else: -+ error ('You must install valadoc for generate the API documentation') -+ return -1 -+ -+@feature('valadoc') -+def process_valadoc(self): -+ task = getattr(self, 'task', None) -+ if not task: -+ task = self.create_task('valadoc') -+ self.task = task -+ if getattr(self, 'output_dir', None): -+ task.output_dir = self.output_dir -+ else: -+ Utils.WafError('no output directory') -+ if getattr(self, 'doclet', None): -+ task.doclet = self.doclet -+ else: -+ Utils.WafError('no doclet directory') -+ if getattr(self, 'package_name', None): -+ task.package_name = self.package_name -+ else: -+ Utils.WafError('no package name') -+ if getattr(self, 'package_version', None): -+ task.package_version = self.package_version -+ if getattr(self, 'packages', None): -+ task.packages = Utils.to_list(self.packages) -+ if getattr(self, 'vapi_dirs', None): -+ task.vapi_dirs = Utils.to_list(self.vapi_dirs) -+ if getattr(self, 'files', None): -+ task.files = self.files -+ else: -+ Utils.WafError('no input file') -+ if getattr(self, 'protected', None): -+ task.protected = self.protected -+ if getattr(self, 'private', None): -+ task.private = self.private -+ if getattr(self, 'inherit', None): -+ task.inherit = self.inherit -+ if getattr(self, 'deps', None): -+ task.deps = self.deps -+ if getattr(self, 'enable_non_null_experimental', None): -+ task.enable_non_null_experimental = self.enable_non_null_experimental -+ if getattr(self, 'force', None): -+ task.force = self.force -+ -+def detect(conf): -+ conf.find_program('valadoc', var='VALADOC', mandatory=False) -+ -diff --git a/buildtools/wafadmin/Build.py b/buildtools/wafadmin/Build.py -new file mode 100644 -index 0000000..8e7c72c ---- /dev/null -+++ b/buildtools/wafadmin/Build.py -@@ -0,0 +1,1033 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005 (ita) -+ -+""" -+Dependency tree holder -+ -+The class Build holds all the info related to a build: -+* file system representation (tree of Node instances) -+* various cached objects (task signatures, file scan results, ..) -+ -+There is only one Build object at a time (bld singleton) -+""" -+ -+import os, sys, errno, re, glob, gc, datetime, shutil -+try: import cPickle -+except: import pickle as cPickle -+import Runner, TaskGen, Node, Scripting, Utils, Environment, Task, Logs, Options -+from Logs import debug, error, info -+from Constants import * -+ -+SAVED_ATTRS = 'root srcnode bldnode node_sigs node_deps raw_deps task_sigs id_nodes'.split() -+"Build class members to save" -+ -+bld = None -+"singleton - safe to use when Waf is not used as a library" -+ -+class BuildError(Utils.WafError): -+ def __init__(self, b=None, t=[]): -+ self.bld = b -+ self.tasks = t -+ self.ret = 1 -+ Utils.WafError.__init__(self, self.format_error()) -+ -+ def format_error(self): -+ lst = ['Build failed:'] -+ for tsk in self.tasks: -+ txt = tsk.format_error() -+ if txt: lst.append(txt) -+ sep = ' ' -+ if len(lst) > 2: -+ sep = '\n' -+ return sep.join(lst) -+ -+def group_method(fun): -+ """ -+ sets a build context method to execute after the current group has finished executing -+ this is useful for installing build files: -+ * calling install_files/install_as will fail if called too early -+ * people do not want to define install method in their task classes -+ -+ TODO: try it -+ """ -+ def f(*k, **kw): -+ if not k[0].is_install: -+ return False -+ -+ postpone = True -+ if 'postpone' in kw: -+ postpone = kw['postpone'] -+ del kw['postpone'] -+ -+ # TODO waf 1.6 in theory there should be no reference to the TaskManager internals here -+ if postpone: -+ m = k[0].task_manager -+ if not m.groups: m.add_group() -+ m.groups[m.current_group].post_funs.append((fun, k, kw)) -+ if not 'cwd' in kw: -+ kw['cwd'] = k[0].path -+ else: -+ fun(*k, **kw) -+ return f -+ -+class BuildContext(Utils.Context): -+ "holds the dependency tree" -+ def __init__(self): -+ -+ # not a singleton, but provided for compatibility -+ global bld -+ bld = self -+ -+ self.task_manager = Task.TaskManager() -+ -+ # instead of hashing the nodes, we assign them a unique id when they are created -+ self.id_nodes = 0 -+ self.idx = {} -+ -+ # map names to environments, the 'default' must be defined -+ self.all_envs = {} -+ -+ # ======================================= # -+ # code for reading the scripts -+ -+ # project build directory - do not reset() from load_dirs() -+ self.bdir = '' -+ -+ # the current directory from which the code is run -+ # the folder changes everytime a wscript is read -+ self.path = None -+ -+ # Manual dependencies. -+ self.deps_man = Utils.DefaultDict(list) -+ -+ # ======================================= # -+ # cache variables -+ -+ # local cache for absolute paths - cache_node_abspath[variant][node] -+ self.cache_node_abspath = {} -+ -+ # list of folders that are already scanned -+ # so that we do not need to stat them one more time -+ self.cache_scanned_folders = {} -+ -+ # list of targets to uninstall for removing the empty folders after uninstalling -+ self.uninstall = [] -+ -+ # ======================================= # -+ # tasks and objects -+ -+ # build dir variants (release, debug, ..) -+ for v in 'cache_node_abspath task_sigs node_deps raw_deps node_sigs'.split(): -+ var = {} -+ setattr(self, v, var) -+ -+ self.cache_dir_contents = {} -+ -+ self.all_task_gen = [] -+ self.task_gen_cache_names = {} -+ self.cache_sig_vars = {} -+ self.log = None -+ -+ self.root = None -+ self.srcnode = None -+ self.bldnode = None -+ -+ # bind the build context to the nodes in use -+ # this means better encapsulation and no build context singleton -+ class node_class(Node.Node): -+ pass -+ self.node_class = node_class -+ self.node_class.__module__ = "Node" -+ self.node_class.__name__ = "Nodu" -+ self.node_class.bld = self -+ -+ self.is_install = None -+ -+ def __copy__(self): -+ "nodes are not supposed to be copied" -+ raise Utils.WafError('build contexts are not supposed to be cloned') -+ -+ def load(self): -+ "load the cache from the disk" -+ try: -+ env = Environment.Environment(os.path.join(self.cachedir, 'build.config.py')) -+ except (IOError, OSError): -+ pass -+ else: -+ if env['version'] < HEXVERSION: -+ raise Utils.WafError('Version mismatch! reconfigure the project') -+ for t in env['tools']: -+ self.setup(**t) -+ -+ try: -+ gc.disable() -+ f = data = None -+ -+ Node.Nodu = self.node_class -+ -+ try: -+ f = open(os.path.join(self.bdir, DBFILE), 'rb') -+ except (IOError, EOFError): -+ # handle missing file/empty file -+ pass -+ -+ try: -+ if f: data = cPickle.load(f) -+ except AttributeError: -+ # handle file of an old Waf version -+ # that has an attribute which no longer exist -+ # (e.g. AttributeError: 'module' object has no attribute 'BuildDTO') -+ if Logs.verbose > 1: raise -+ -+ if data: -+ for x in SAVED_ATTRS: setattr(self, x, data[x]) -+ else: -+ debug('build: Build cache loading failed') -+ -+ finally: -+ if f: f.close() -+ gc.enable() -+ -+ def save(self): -+ "store the cache on disk, see self.load" -+ gc.disable() -+ self.root.__class__.bld = None -+ -+ # some people are very nervous with ctrl+c so we have to make a temporary file -+ Node.Nodu = self.node_class -+ db = os.path.join(self.bdir, DBFILE) -+ file = open(db + '.tmp', 'wb') -+ data = {} -+ for x in SAVED_ATTRS: data[x] = getattr(self, x) -+ cPickle.dump(data, file, -1) -+ file.close() -+ -+ # do not use shutil.move -+ try: os.unlink(db) -+ except OSError: pass -+ os.rename(db + '.tmp', db) -+ self.root.__class__.bld = self -+ gc.enable() -+ -+ # ======================================= # -+ -+ def clean(self): -+ debug('build: clean called') -+ -+ # does not clean files created during the configuration -+ precious = set([]) -+ for env in self.all_envs.values(): -+ for x in env[CFG_FILES]: -+ node = self.srcnode.find_resource(x) -+ if node: -+ precious.add(node.id) -+ -+ def clean_rec(node): -+ for x in list(node.childs.keys()): -+ nd = node.childs[x] -+ -+ tp = nd.id & 3 -+ if tp == Node.DIR: -+ clean_rec(nd) -+ elif tp == Node.BUILD: -+ if nd.id in precious: continue -+ for env in self.all_envs.values(): -+ try: os.remove(nd.abspath(env)) -+ except OSError: pass -+ node.childs.__delitem__(x) -+ -+ clean_rec(self.srcnode) -+ -+ for v in 'node_sigs node_deps task_sigs raw_deps cache_node_abspath'.split(): -+ setattr(self, v, {}) -+ -+ def compile(self): -+ """The cache file is not written if nothing was build at all (build is up to date)""" -+ debug('build: compile called') -+ -+ """ -+ import cProfile, pstats -+ cProfile.run("import Build\nBuild.bld.flush()", 'profi.txt') -+ p = pstats.Stats('profi.txt') -+ p.sort_stats('cumulative').print_stats(80) -+ """ -+ self.flush() -+ #""" -+ -+ self.generator = Runner.Parallel(self, Options.options.jobs) -+ -+ def dw(on=True): -+ if Options.options.progress_bar: -+ if on: sys.stderr.write(Logs.colors.cursor_on) -+ else: sys.stderr.write(Logs.colors.cursor_off) -+ -+ debug('build: executor starting') -+ -+ back = os.getcwd() -+ os.chdir(self.bldnode.abspath()) -+ -+ try: -+ try: -+ dw(on=False) -+ self.generator.start() -+ except KeyboardInterrupt: -+ dw() -+ # if self.generator.processed != 1: TODO -+ self.save() -+ raise -+ except Exception: -+ dw() -+ # do not store anything, for something bad happened -+ raise -+ else: -+ dw() -+ #if self.generator.processed != 1: TODO -+ self.save() -+ -+ if self.generator.error: -+ raise BuildError(self, self.task_manager.tasks_done) -+ -+ finally: -+ os.chdir(back) -+ -+ def install(self): -+ "this function is called for both install and uninstall" -+ debug('build: install called') -+ -+ self.flush() -+ -+ # remove empty folders after uninstalling -+ if self.is_install < 0: -+ lst = [] -+ for x in self.uninstall: -+ dir = os.path.dirname(x) -+ if not dir in lst: lst.append(dir) -+ lst.sort() -+ lst.reverse() -+ -+ nlst = [] -+ for y in lst: -+ x = y -+ while len(x) > 4: -+ if not x in nlst: nlst.append(x) -+ x = os.path.dirname(x) -+ -+ nlst.sort() -+ nlst.reverse() -+ for x in nlst: -+ try: os.rmdir(x) -+ except OSError: pass -+ -+ def new_task_gen(self, *k, **kw): -+ if self.task_gen_cache_names: -+ self.task_gen_cache_names = {} -+ -+ kw['bld'] = self -+ if len(k) == 0: -+ ret = TaskGen.task_gen(*k, **kw) -+ else: -+ cls_name = k[0] -+ -+ try: cls = TaskGen.task_gen.classes[cls_name] -+ except KeyError: raise Utils.WscriptError('%s is not a valid task generator -> %s' % -+ (cls_name, [x for x in TaskGen.task_gen.classes])) -+ ret = cls(*k, **kw) -+ return ret -+ -+ def __call__(self, *k, **kw): -+ if self.task_gen_cache_names: -+ self.task_gen_cache_names = {} -+ -+ kw['bld'] = self -+ return TaskGen.task_gen(*k, **kw) -+ -+ def load_envs(self): -+ try: -+ lst = Utils.listdir(self.cachedir) -+ except OSError, e: -+ if e.errno == errno.ENOENT: -+ raise Utils.WafError('The project was not configured: run "waf configure" first!') -+ else: -+ raise -+ -+ if not lst: -+ raise Utils.WafError('The cache directory is empty: reconfigure the project') -+ -+ for file in lst: -+ if file.endswith(CACHE_SUFFIX): -+ env = Environment.Environment(os.path.join(self.cachedir, file)) -+ name = file[:-len(CACHE_SUFFIX)] -+ -+ self.all_envs[name] = env -+ -+ self.init_variants() -+ -+ for env in self.all_envs.values(): -+ for f in env[CFG_FILES]: -+ newnode = self.path.find_or_declare(f) -+ try: -+ hash = Utils.h_file(newnode.abspath(env)) -+ except (IOError, AttributeError): -+ error("cannot find "+f) -+ hash = SIG_NIL -+ self.node_sigs[env.variant()][newnode.id] = hash -+ -+ # TODO: hmmm, these nodes are removed from the tree when calling rescan() -+ self.bldnode = self.root.find_dir(self.bldnode.abspath()) -+ self.path = self.srcnode = self.root.find_dir(self.srcnode.abspath()) -+ self.cwd = self.bldnode.abspath() -+ -+ def setup(self, tool, tooldir=None, funs=None): -+ "setup tools for build process" -+ if isinstance(tool, list): -+ for i in tool: self.setup(i, tooldir) -+ return -+ -+ if not tooldir: tooldir = Options.tooldir -+ -+ module = Utils.load_tool(tool, tooldir) -+ if hasattr(module, "setup"): module.setup(self) -+ -+ def init_variants(self): -+ debug('build: init variants') -+ -+ lstvariants = [] -+ for env in self.all_envs.values(): -+ if not env.variant() in lstvariants: -+ lstvariants.append(env.variant()) -+ self.lst_variants = lstvariants -+ -+ debug('build: list of variants is %r', lstvariants) -+ -+ for name in lstvariants+[0]: -+ for v in 'node_sigs cache_node_abspath'.split(): -+ var = getattr(self, v) -+ if not name in var: -+ var[name] = {} -+ -+ # ======================================= # -+ # node and folder handling -+ -+ # this should be the main entry point -+ def load_dirs(self, srcdir, blddir, load_cache=1): -+ "this functions should be the start of everything" -+ -+ assert(os.path.isabs(srcdir)) -+ assert(os.path.isabs(blddir)) -+ -+ self.cachedir = os.path.join(blddir, CACHE_DIR) -+ -+ if srcdir == blddir: -+ raise Utils.WafError("build dir must be different from srcdir: %s <-> %s " % (srcdir, blddir)) -+ -+ self.bdir = blddir -+ -+ # try to load the cache file, if it does not exist, nothing happens -+ self.load() -+ -+ if not self.root: -+ Node.Nodu = self.node_class -+ self.root = Node.Nodu('', None, Node.DIR) -+ -+ if not self.srcnode: -+ self.srcnode = self.root.ensure_dir_node_from_path(srcdir) -+ debug('build: srcnode is %s and srcdir %s', self.srcnode.name, srcdir) -+ -+ self.path = self.srcnode -+ -+ # create this build dir if necessary -+ try: os.makedirs(blddir) -+ except OSError: pass -+ -+ if not self.bldnode: -+ self.bldnode = self.root.ensure_dir_node_from_path(blddir) -+ -+ self.init_variants() -+ -+ def rescan(self, src_dir_node): -+ """ -+ look the contents of a (folder)node and update its list of childs -+ -+ The intent is to perform the following steps -+ * remove the nodes for the files that have disappeared -+ * remove the signatures for the build files that have disappeared -+ * cache the results of os.listdir -+ * create the build folder equivalent (mkdir) for each variant -+ src/bar -> build/default/src/bar, build/release/src/bar -+ -+ when a folder in the source directory is removed, we do not check recursively -+ to remove the unused nodes. To do that, call 'waf clean' and build again. -+ """ -+ -+ # do not rescan over and over again -+ # TODO use a single variable in waf 1.6 -+ if self.cache_scanned_folders.get(src_dir_node.id, None): return -+ self.cache_scanned_folders[src_dir_node.id] = True -+ -+ # TODO remove in waf 1.6 -+ if hasattr(self, 'repository'): self.repository(src_dir_node) -+ -+ if not src_dir_node.name and sys.platform == 'win32': -+ # the root has no name, contains drive letters, and cannot be listed -+ return -+ -+ -+ # first, take the case of the source directory -+ parent_path = src_dir_node.abspath() -+ try: -+ lst = set(Utils.listdir(parent_path)) -+ except OSError: -+ lst = set([]) -+ -+ # TODO move this at the bottom -+ self.cache_dir_contents[src_dir_node.id] = lst -+ -+ # hash the existing source files, remove the others -+ cache = self.node_sigs[0] -+ for x in src_dir_node.childs.values(): -+ if x.id & 3 != Node.FILE: continue -+ if x.name in lst: -+ try: -+ cache[x.id] = Utils.h_file(x.abspath()) -+ except IOError: -+ raise Utils.WafError('The file %s is not readable or has become a dir' % x.abspath()) -+ else: -+ try: del cache[x.id] -+ except KeyError: pass -+ -+ del src_dir_node.childs[x.name] -+ -+ -+ # first obtain the differences between srcnode and src_dir_node -+ h1 = self.srcnode.height() -+ h2 = src_dir_node.height() -+ -+ lst = [] -+ child = src_dir_node -+ while h2 > h1: -+ lst.append(child.name) -+ child = child.parent -+ h2 -= 1 -+ lst.reverse() -+ -+ # list the files in the build dirs -+ try: -+ for variant in self.lst_variants: -+ sub_path = os.path.join(self.bldnode.abspath(), variant , *lst) -+ self.listdir_bld(src_dir_node, sub_path, variant) -+ except OSError: -+ -+ # listdir failed, remove the build node signatures for all variants -+ for node in src_dir_node.childs.values(): -+ if node.id & 3 != Node.BUILD: -+ continue -+ -+ for dct in self.node_sigs.values(): -+ if node.id in dct: -+ dct.__delitem__(node.id) -+ -+ # the policy is to avoid removing nodes representing directories -+ src_dir_node.childs.__delitem__(node.name) -+ -+ for variant in self.lst_variants: -+ sub_path = os.path.join(self.bldnode.abspath(), variant , *lst) -+ try: -+ os.makedirs(sub_path) -+ except OSError: -+ pass -+ -+ # ======================================= # -+ def listdir_src(self, parent_node): -+ """do not use, kept for compatibility""" -+ pass -+ -+ def remove_node(self, node): -+ """do not use, kept for compatibility""" -+ pass -+ -+ def listdir_bld(self, parent_node, path, variant): -+ """in this method we do not add timestamps but we remove them -+ when the files no longer exist (file removed in the build dir)""" -+ -+ i_existing_nodes = [x for x in parent_node.childs.values() if x.id & 3 == Node.BUILD] -+ -+ lst = set(Utils.listdir(path)) -+ node_names = set([x.name for x in i_existing_nodes]) -+ remove_names = node_names - lst -+ -+ # remove the stamps of the build nodes that no longer exist on the filesystem -+ ids_to_remove = [x.id for x in i_existing_nodes if x.name in remove_names] -+ cache = self.node_sigs[variant] -+ for nid in ids_to_remove: -+ if nid in cache: -+ cache.__delitem__(nid) -+ -+ def get_env(self): -+ return self.env_of_name('default') -+ def set_env(self, name, val): -+ self.all_envs[name] = val -+ -+ env = property(get_env, set_env) -+ -+ def add_manual_dependency(self, path, value): -+ if isinstance(path, Node.Node): -+ node = path -+ elif os.path.isabs(path): -+ node = self.root.find_resource(path) -+ else: -+ node = self.path.find_resource(path) -+ self.deps_man[node.id].append(value) -+ -+ def launch_node(self): -+ """return the launch directory as a node""" -+ # p_ln is kind of private, but public in case if -+ try: -+ return self.p_ln -+ except AttributeError: -+ self.p_ln = self.root.find_dir(Options.launch_dir) -+ return self.p_ln -+ -+ def glob(self, pattern, relative=True): -+ "files matching the pattern, seen from the current folder" -+ path = self.path.abspath() -+ files = [self.root.find_resource(x) for x in glob.glob(path+os.sep+pattern)] -+ if relative: -+ files = [x.path_to_parent(self.path) for x in files if x] -+ else: -+ files = [x.abspath() for x in files if x] -+ return files -+ -+ ## the following methods are candidates for the stable apis ## -+ -+ def add_group(self, *k): -+ self.task_manager.add_group(*k) -+ -+ def set_group(self, *k, **kw): -+ self.task_manager.set_group(*k, **kw) -+ -+ def hash_env_vars(self, env, vars_lst): -+ """hash environment variables -+ ['CXX', ..] -> [env['CXX'], ..] -> md5()""" -+ -+ # ccroot objects use the same environment for building the .o at once -+ # the same environment and the same variables are used -+ -+ idx = str(id(env)) + str(vars_lst) -+ try: return self.cache_sig_vars[idx] -+ except KeyError: pass -+ -+ lst = [str(env[a]) for a in vars_lst] -+ ret = Utils.h_list(lst) -+ debug('envhash: %r %r', ret, lst) -+ -+ # next time -+ self.cache_sig_vars[idx] = ret -+ return ret -+ -+ def name_to_obj(self, name, env): -+ """retrieve a task generator from its name or its target name -+ remember that names must be unique""" -+ cache = self.task_gen_cache_names -+ if not cache: -+ # create the index lazily -+ for x in self.all_task_gen: -+ vt = x.env.variant() + '_' -+ if x.name: -+ cache[vt + x.name] = x -+ else: -+ if isinstance(x.target, str): -+ target = x.target -+ else: -+ target = ' '.join(x.target) -+ v = vt + target -+ if not cache.get(v, None): -+ cache[v] = x -+ return cache.get(env.variant() + '_' + name, None) -+ -+ def flush(self, all=1): -+ """tell the task generators to create the tasks""" -+ -+ self.ini = datetime.datetime.now() -+ # force the initialization of the mapping name->object in flush -+ # name_to_obj can be used in userland scripts, in that case beware of incomplete mapping -+ self.task_gen_cache_names = {} -+ self.name_to_obj('', self.env) -+ -+ debug('build: delayed operation TaskGen.flush() called') -+ -+ if Options.options.compile_targets: -+ debug('task_gen: posting objects %r listed in compile_targets', Options.options.compile_targets) -+ -+ mana = self.task_manager -+ to_post = [] -+ min_grp = 0 -+ -+ # ensure the target names exist, fail before any post() -+ target_objects = Utils.DefaultDict(list) -+ for target_name in Options.options.compile_targets.split(','): -+ # trim target_name (handle cases when the user added spaces to targets) -+ target_name = target_name.strip() -+ for env in self.all_envs.values(): -+ tg = self.name_to_obj(target_name, env) -+ if tg: -+ target_objects[target_name].append(tg) -+ -+ m = mana.group_idx(tg) -+ if m > min_grp: -+ min_grp = m -+ to_post = [tg] -+ elif m == min_grp: -+ to_post.append(tg) -+ -+ if not target_name in target_objects and all: -+ raise Utils.WafError("target '%s' does not exist" % target_name) -+ -+ debug('group: Forcing up to group %s for target %s', mana.group_name(min_grp), Options.options.compile_targets) -+ -+ # post all the task generators in previous groups -+ for i in xrange(len(mana.groups)): -+ mana.current_group = i -+ if i == min_grp: -+ break -+ g = mana.groups[i] -+ debug('group: Forcing group %s', mana.group_name(g)) -+ for t in g.tasks_gen: -+ debug('group: Posting %s', t.name or t.target) -+ t.post() -+ -+ # then post the task generators listed in compile_targets in the last group -+ for t in to_post: -+ t.post() -+ -+ else: -+ debug('task_gen: posting objects (normal)') -+ ln = self.launch_node() -+ # if the build is started from the build directory, do as if it was started from the top-level -+ # for the pretty-printing (Node.py), the two lines below cannot be moved to Build::launch_node -+ if ln.is_child_of(self.bldnode) or not ln.is_child_of(self.srcnode): -+ ln = self.srcnode -+ -+ # if the project file is located under the source directory, build all targets by default -+ # else 'waf configure build' does nothing -+ proj_node = self.root.find_dir(os.path.split(Utils.g_module.root_path)[0]) -+ if proj_node.id != self.srcnode.id: -+ ln = self.srcnode -+ -+ for i in xrange(len(self.task_manager.groups)): -+ g = self.task_manager.groups[i] -+ self.task_manager.current_group = i -+ if Logs.verbose: -+ groups = [x for x in self.task_manager.groups_names if id(self.task_manager.groups_names[x]) == id(g)] -+ name = groups and groups[0] or 'unnamed' -+ Logs.debug('group: group', name) -+ for tg in g.tasks_gen: -+ if not tg.path.is_child_of(ln): -+ continue -+ if Logs.verbose: -+ Logs.debug('group: %s' % tg) -+ tg.post() -+ -+ def env_of_name(self, name): -+ try: -+ return self.all_envs[name] -+ except KeyError: -+ error('no such environment: '+name) -+ return None -+ -+ def progress_line(self, state, total, col1, col2): -+ n = len(str(total)) -+ -+ Utils.rot_idx += 1 -+ ind = Utils.rot_chr[Utils.rot_idx % 4] -+ -+ ini = self.ini -+ -+ pc = (100.*state)/total -+ eta = Utils.get_elapsed_time(ini) -+ fs = "[%%%dd/%%%dd][%%s%%2d%%%%%%s][%s][" % (n, n, ind) -+ left = fs % (state, total, col1, pc, col2) -+ right = '][%s%s%s]' % (col1, eta, col2) -+ -+ cols = Utils.get_term_cols() - len(left) - len(right) + 2*len(col1) + 2*len(col2) -+ if cols < 7: cols = 7 -+ -+ ratio = int((cols*state)/total) - 1 -+ -+ bar = ('='*ratio+'>').ljust(cols) -+ msg = Utils.indicator % (left, bar, right) -+ -+ return msg -+ -+ -+ # do_install is not used anywhere -+ def do_install(self, src, tgt, chmod=O644): -+ """returns true if the file was effectively installed or uninstalled, false otherwise""" -+ if self.is_install > 0: -+ if not Options.options.force: -+ # check if the file is already there to avoid a copy -+ try: -+ st1 = os.stat(tgt) -+ st2 = os.stat(src) -+ except OSError: -+ pass -+ else: -+ # same size and identical timestamps -> make no copy -+ if st1.st_mtime >= st2.st_mtime and st1.st_size == st2.st_size: -+ return False -+ -+ srclbl = src.replace(self.srcnode.abspath(None)+os.sep, '') -+ info("* installing %s as %s" % (srclbl, tgt)) -+ -+ # following is for shared libs and stale inodes (-_-) -+ try: os.remove(tgt) -+ except OSError: pass -+ -+ try: -+ shutil.copy2(src, tgt) -+ os.chmod(tgt, chmod) -+ except IOError: -+ try: -+ os.stat(src) -+ except (OSError, IOError): -+ error('File %r does not exist' % src) -+ raise Utils.WafError('Could not install the file %r' % tgt) -+ return True -+ -+ elif self.is_install < 0: -+ info("* uninstalling %s" % tgt) -+ -+ self.uninstall.append(tgt) -+ -+ try: -+ os.remove(tgt) -+ except OSError, e: -+ if e.errno != errno.ENOENT: -+ if not getattr(self, 'uninstall_error', None): -+ self.uninstall_error = True -+ Logs.warn('build: some files could not be uninstalled (retry with -vv to list them)') -+ if Logs.verbose > 1: -+ Logs.warn('could not remove %s (error code %r)' % (e.filename, e.errno)) -+ return True -+ -+ red = re.compile(r"^([A-Za-z]:)?[/\\\\]*") -+ def get_install_path(self, path, env=None): -+ "installation path prefixed by the destdir, the variables like in '${PREFIX}/bin' are substituted" -+ if not env: env = self.env -+ destdir = env.get_destdir() -+ path = path.replace('/', os.sep) -+ destpath = Utils.subst_vars(path, env) -+ if destdir: -+ destpath = os.path.join(destdir, self.red.sub('', destpath)) -+ return destpath -+ -+ def install_dir(self, path, env=None): -+ """ -+ create empty folders for the installation (very rarely used) -+ """ -+ if env: -+ assert isinstance(env, Environment.Environment), "invalid parameter" -+ else: -+ env = self.env -+ -+ if not path: -+ return [] -+ -+ destpath = self.get_install_path(path, env) -+ -+ if self.is_install > 0: -+ info('* creating %s' % destpath) -+ Utils.check_dir(destpath) -+ elif self.is_install < 0: -+ info('* removing %s' % destpath) -+ self.uninstall.append(destpath + '/xxx') # yes, ugly -+ -+ def install_files(self, path, files, env=None, chmod=O644, relative_trick=False, cwd=None): -+ """To install files only after they have been built, put the calls in a method named -+ post_build on the top-level wscript -+ -+ The files must be a list and contain paths as strings or as Nodes -+ -+ The relative_trick flag can be set to install folders, use bld.path.ant_glob() with it -+ """ -+ if env: -+ assert isinstance(env, Environment.Environment), "invalid parameter" -+ else: -+ env = self.env -+ -+ if not path: return [] -+ -+ if not cwd: -+ cwd = self.path -+ -+ if isinstance(files, str) and '*' in files: -+ gl = cwd.abspath() + os.sep + files -+ lst = glob.glob(gl) -+ else: -+ lst = Utils.to_list(files) -+ -+ if not getattr(lst, '__iter__', False): -+ lst = [lst] -+ -+ destpath = self.get_install_path(path, env) -+ -+ Utils.check_dir(destpath) -+ -+ installed_files = [] -+ for filename in lst: -+ if isinstance(filename, str) and os.path.isabs(filename): -+ alst = Utils.split_path(filename) -+ destfile = os.path.join(destpath, alst[-1]) -+ else: -+ if isinstance(filename, Node.Node): -+ nd = filename -+ else: -+ nd = cwd.find_resource(filename) -+ if not nd: -+ raise Utils.WafError("Unable to install the file %r (not found in %s)" % (filename, cwd)) -+ -+ if relative_trick: -+ destfile = os.path.join(destpath, filename) -+ Utils.check_dir(os.path.dirname(destfile)) -+ else: -+ destfile = os.path.join(destpath, nd.name) -+ -+ filename = nd.abspath(env) -+ -+ if self.do_install(filename, destfile, chmod): -+ installed_files.append(destfile) -+ return installed_files -+ -+ def install_as(self, path, srcfile, env=None, chmod=O644, cwd=None): -+ """ -+ srcfile may be a string or a Node representing the file to install -+ -+ returns True if the file was effectively installed, False otherwise -+ """ -+ if env: -+ assert isinstance(env, Environment.Environment), "invalid parameter" -+ else: -+ env = self.env -+ -+ if not path: -+ raise Utils.WafError("where do you want to install %r? (%r?)" % (srcfile, path)) -+ -+ if not cwd: -+ cwd = self.path -+ -+ destpath = self.get_install_path(path, env) -+ -+ dir, name = os.path.split(destpath) -+ Utils.check_dir(dir) -+ -+ # the source path -+ if isinstance(srcfile, Node.Node): -+ src = srcfile.abspath(env) -+ else: -+ src = srcfile -+ if not os.path.isabs(srcfile): -+ node = cwd.find_resource(srcfile) -+ if not node: -+ raise Utils.WafError("Unable to install the file %r (not found in %s)" % (srcfile, cwd)) -+ src = node.abspath(env) -+ -+ return self.do_install(src, destpath, chmod) -+ -+ def symlink_as(self, path, src, env=None, cwd=None): -+ """example: bld.symlink_as('${PREFIX}/lib/libfoo.so', 'libfoo.so.1.2.3') """ -+ -+ if sys.platform == 'win32': -+ # well, this *cannot* work -+ return -+ -+ if not path: -+ raise Utils.WafError("where do you want to install %r? (%r?)" % (src, path)) -+ -+ tgt = self.get_install_path(path, env) -+ -+ dir, name = os.path.split(tgt) -+ Utils.check_dir(dir) -+ -+ if self.is_install > 0: -+ link = False -+ if not os.path.islink(tgt): -+ link = True -+ elif os.readlink(tgt) != src: -+ link = True -+ -+ if link: -+ try: os.remove(tgt) -+ except OSError: pass -+ -+ info('* symlink %s (-> %s)' % (tgt, src)) -+ os.symlink(src, tgt) -+ return 0 -+ -+ else: # UNINSTALL -+ try: -+ info('* removing %s' % (tgt)) -+ os.remove(tgt) -+ return 0 -+ except OSError: -+ return 1 -+ -+ def exec_command(self, cmd, **kw): -+ # 'runner' zone is printed out for waf -v, see wafadmin/Options.py -+ debug('runner: system command -> %s', cmd) -+ if self.log: -+ self.log.write('%s\n' % cmd) -+ kw['log'] = self.log -+ try: -+ if not kw.get('cwd', None): -+ kw['cwd'] = self.cwd -+ except AttributeError: -+ self.cwd = kw['cwd'] = self.bldnode.abspath() -+ return Utils.exec_command(cmd, **kw) -+ -+ def printout(self, s): -+ f = self.log or sys.stderr -+ f.write(s) -+ f.flush() -+ -+ def add_subdirs(self, dirs): -+ self.recurse(dirs, 'build') -+ -+ def pre_recurse(self, name_or_mod, path, nexdir): -+ if not hasattr(self, 'oldpath'): -+ self.oldpath = [] -+ self.oldpath.append(self.path) -+ self.path = self.root.find_dir(nexdir) -+ return {'bld': self, 'ctx': self} -+ -+ def post_recurse(self, name_or_mod, path, nexdir): -+ self.path = self.oldpath.pop() -+ -+ ###### user-defined behaviour -+ -+ def pre_build(self): -+ if hasattr(self, 'pre_funs'): -+ for m in self.pre_funs: -+ m(self) -+ -+ def post_build(self): -+ if hasattr(self, 'post_funs'): -+ for m in self.post_funs: -+ m(self) -+ -+ def add_pre_fun(self, meth): -+ try: self.pre_funs.append(meth) -+ except AttributeError: self.pre_funs = [meth] -+ -+ def add_post_fun(self, meth): -+ try: self.post_funs.append(meth) -+ except AttributeError: self.post_funs = [meth] -+ -+ def use_the_magic(self): -+ Task.algotype = Task.MAXPARALLEL -+ Task.file_deps = Task.extract_deps -+ self.magic = True -+ -+ install_as = group_method(install_as) -+ install_files = group_method(install_files) -+ symlink_as = group_method(symlink_as) -+ -diff --git a/buildtools/wafadmin/Configure.py b/buildtools/wafadmin/Configure.py -new file mode 100644 -index 0000000..35b4e51 ---- /dev/null -+++ b/buildtools/wafadmin/Configure.py -@@ -0,0 +1,444 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005-2008 (ita) -+ -+""" -+Configuration system -+ -+A configuration instance is created when "waf configure" is called, it is used to: -+* create data dictionaries (Environment instances) -+* store the list of modules to import -+ -+The old model (copied from Scons) was to store logic (mapping file extensions to functions) -+along with the data. In Waf a way was found to separate that logic by adding an indirection -+layer (storing the names in the Environment instances) -+ -+In the new model, the logic is more object-oriented, and the user scripts provide the -+logic. The data files (Environments) must contain configuration data only (flags, ..). -+ -+Note: the c/c++ related code is in the module config_c -+""" -+ -+import os, shlex, sys, time -+try: import cPickle -+except ImportError: import pickle as cPickle -+import Environment, Utils, Options, Logs -+from Logs import warn -+from Constants import * -+ -+try: -+ from urllib import request -+except: -+ from urllib import urlopen -+else: -+ urlopen = request.urlopen -+ -+conf_template = '''# project %(app)s configured on %(now)s by -+# waf %(wafver)s (abi %(abi)s, python %(pyver)x on %(systype)s) -+# using %(args)s -+# -+''' -+ -+class ConfigurationError(Utils.WscriptError): -+ pass -+ -+autoconfig = False -+"reconfigure the project automatically" -+ -+def find_file(filename, path_list): -+ """find a file in a list of paths -+ @param filename: name of the file to search for -+ @param path_list: list of directories to search -+ @return: the first occurrence filename or '' if filename could not be found -+""" -+ for directory in Utils.to_list(path_list): -+ if os.path.exists(os.path.join(directory, filename)): -+ return directory -+ return '' -+ -+def find_program_impl(env, filename, path_list=[], var=None, environ=None): -+ """find a program in folders path_lst, and sets env[var] -+ @param env: environment -+ @param filename: name of the program to search for -+ @param path_list: list of directories to search for filename -+ @param var: environment value to be checked for in env or os.environ -+ @return: either the value that is referenced with [var] in env or os.environ -+ or the first occurrence filename or '' if filename could not be found -+""" -+ -+ if not environ: -+ environ = os.environ -+ -+ try: path_list = path_list.split() -+ except AttributeError: pass -+ -+ if var: -+ if env[var]: return env[var] -+ if var in environ: env[var] = environ[var] -+ -+ if not path_list: path_list = environ.get('PATH', '').split(os.pathsep) -+ -+ ext = (Options.platform == 'win32') and '.exe,.com,.bat,.cmd' or '' -+ for y in [filename+x for x in ext.split(',')]: -+ for directory in path_list: -+ x = os.path.join(directory, y) -+ if os.path.isfile(x): -+ if var: env[var] = x -+ return x -+ return '' -+ -+class ConfigurationContext(Utils.Context): -+ tests = {} -+ error_handlers = [] -+ def __init__(self, env=None, blddir='', srcdir=''): -+ self.env = None -+ self.envname = '' -+ -+ self.environ = dict(os.environ) -+ -+ self.line_just = 40 -+ -+ self.blddir = blddir -+ self.srcdir = srcdir -+ self.all_envs = {} -+ -+ # curdir: necessary for recursion -+ self.cwd = self.curdir = os.getcwd() -+ -+ self.tools = [] # tools loaded in the configuration, and that will be loaded when building -+ -+ self.setenv(DEFAULT) -+ -+ self.lastprog = '' -+ -+ self.hash = 0 -+ self.files = [] -+ -+ self.tool_cache = [] -+ -+ if self.blddir: -+ self.post_init() -+ -+ def post_init(self): -+ -+ self.cachedir = os.path.join(self.blddir, CACHE_DIR) -+ -+ path = os.path.join(self.blddir, WAF_CONFIG_LOG) -+ try: os.unlink(path) -+ except (OSError, IOError): pass -+ -+ try: -+ self.log = open(path, 'w') -+ except (OSError, IOError): -+ self.fatal('could not open %r for writing' % path) -+ -+ app = Utils.g_module.APPNAME -+ if app: -+ ver = getattr(Utils.g_module, 'VERSION', '') -+ if ver: -+ app = "%s (%s)" % (app, ver) -+ -+ now = time.ctime() -+ pyver = sys.hexversion -+ systype = sys.platform -+ args = " ".join(sys.argv) -+ wafver = WAFVERSION -+ abi = ABI -+ self.log.write(conf_template % vars()) -+ -+ def __del__(self): -+ """cleanup function: close config.log""" -+ -+ # may be ran by the gc, not always after initialization -+ if hasattr(self, 'log') and self.log: -+ self.log.close() -+ -+ def fatal(self, msg): -+ raise ConfigurationError(msg) -+ -+ def check_tool(self, input, tooldir=None, funs=None): -+ "load a waf tool" -+ -+ tools = Utils.to_list(input) -+ if tooldir: tooldir = Utils.to_list(tooldir) -+ for tool in tools: -+ tool = tool.replace('++', 'xx') -+ if tool == 'java': tool = 'javaw' -+ if tool.lower() == 'unittest': tool = 'unittestw' -+ # avoid loading the same tool more than once with the same functions -+ # used by composite projects -+ -+ mag = (tool, id(self.env), funs) -+ if mag in self.tool_cache: -+ continue -+ self.tool_cache.append(mag) -+ -+ module = None -+ try: -+ module = Utils.load_tool(tool, tooldir) -+ except Exception, e: -+ ex = e -+ if Options.options.download: -+ _3rdparty = os.path.normpath(Options.tooldir[0] + os.sep + '..' + os.sep + '3rdparty') -+ -+ # try to download the tool from the repository then -+ # the default is set to false -+ for x in Utils.to_list(Options.remote_repo): -+ for sub in ['branches/waf-%s/wafadmin/3rdparty' % WAFVERSION, 'trunk/wafadmin/3rdparty']: -+ url = '/'.join((x, sub, tool + '.py')) -+ try: -+ web = urlopen(url) -+ if web.getcode() != 200: -+ continue -+ except Exception, e: -+ # on python3 urlopen throws an exception -+ continue -+ else: -+ loc = None -+ try: -+ loc = open(_3rdparty + os.sep + tool + '.py', 'wb') -+ loc.write(web.read()) -+ web.close() -+ finally: -+ if loc: -+ loc.close() -+ Logs.warn('downloaded %s from %s' % (tool, url)) -+ try: -+ module = Utils.load_tool(tool, tooldir) -+ except: -+ Logs.warn('module %s from %s is unusable' % (tool, url)) -+ try: -+ os.unlink(_3rdparty + os.sep + tool + '.py') -+ except: -+ pass -+ continue -+ else: -+ break -+ -+ if not module: -+ Logs.error('Could not load the tool %r or download a suitable replacement from the repository (sys.path %r)\n%s' % (tool, sys.path, e)) -+ raise ex -+ else: -+ Logs.error('Could not load the tool %r in %r (try the --download option?):\n%s' % (tool, sys.path, e)) -+ raise ex -+ -+ if funs is not None: -+ self.eval_rules(funs) -+ else: -+ func = getattr(module, 'detect', None) -+ if func: -+ if type(func) is type(find_file): func(self) -+ else: self.eval_rules(func) -+ -+ self.tools.append({'tool':tool, 'tooldir':tooldir, 'funs':funs}) -+ -+ def sub_config(self, k): -+ "executes the configure function of a wscript module" -+ self.recurse(k, name='configure') -+ -+ def pre_recurse(self, name_or_mod, path, nexdir): -+ return {'conf': self, 'ctx': self} -+ -+ def post_recurse(self, name_or_mod, path, nexdir): -+ if not autoconfig: -+ return -+ self.hash = hash((self.hash, getattr(name_or_mod, 'waf_hash_val', name_or_mod))) -+ self.files.append(path) -+ -+ def store(self, file=''): -+ "save the config results into the cache file" -+ if not os.path.isdir(self.cachedir): -+ os.makedirs(self.cachedir) -+ -+ if not file: -+ file = open(os.path.join(self.cachedir, 'build.config.py'), 'w') -+ file.write('version = 0x%x\n' % HEXVERSION) -+ file.write('tools = %r\n' % self.tools) -+ file.close() -+ -+ if not self.all_envs: -+ self.fatal('nothing to store in the configuration context!') -+ for key in self.all_envs: -+ tmpenv = self.all_envs[key] -+ tmpenv.store(os.path.join(self.cachedir, key + CACHE_SUFFIX)) -+ -+ def set_env_name(self, name, env): -+ "add a new environment called name" -+ self.all_envs[name] = env -+ return env -+ -+ def retrieve(self, name, fromenv=None): -+ "retrieve an environment called name" -+ try: -+ env = self.all_envs[name] -+ except KeyError: -+ env = Environment.Environment() -+ env['PREFIX'] = os.path.abspath(os.path.expanduser(Options.options.prefix)) -+ self.all_envs[name] = env -+ else: -+ if fromenv: warn("The environment %s may have been configured already" % name) -+ return env -+ -+ def setenv(self, name): -+ "enable the environment called name" -+ self.env = self.retrieve(name) -+ self.envname = name -+ -+ def add_os_flags(self, var, dest=None): -+ # do not use 'get' to make certain the variable is not defined -+ try: self.env.append_value(dest or var, Utils.to_list(self.environ[var])) -+ except KeyError: pass -+ -+ def check_message_1(self, sr): -+ self.line_just = max(self.line_just, len(sr)) -+ for x in ('\n', self.line_just * '-', '\n', sr, '\n'): -+ self.log.write(x) -+ Utils.pprint('NORMAL', "%s :" % sr.ljust(self.line_just), sep='') -+ -+ def check_message_2(self, sr, color='GREEN'): -+ self.log.write(sr) -+ self.log.write('\n') -+ Utils.pprint(color, sr) -+ -+ def check_message(self, th, msg, state, option=''): -+ sr = 'Checking for %s %s' % (th, msg) -+ self.check_message_1(sr) -+ p = self.check_message_2 -+ if state: p('ok ' + str(option)) -+ else: p('not found', 'YELLOW') -+ -+ # FIXME remove in waf 1.6 -+ # the parameter 'option' is not used (kept for compatibility) -+ def check_message_custom(self, th, msg, custom, option='', color='PINK'): -+ sr = 'Checking for %s %s' % (th, msg) -+ self.check_message_1(sr) -+ self.check_message_2(custom, color) -+ -+ def msg(self, msg, result, color=None): -+ """Prints a configuration message 'Checking for xxx: ok'""" -+ self.start_msg('Checking for ' + msg) -+ -+ if not isinstance(color, str): -+ color = result and 'GREEN' or 'YELLOW' -+ -+ self.end_msg(result, color) -+ -+ def start_msg(self, msg): -+ try: -+ if self.in_msg: -+ return -+ except: -+ self.in_msg = 0 -+ self.in_msg += 1 -+ -+ self.line_just = max(self.line_just, len(msg)) -+ for x in ('\n', self.line_just * '-', '\n', msg, '\n'): -+ self.log.write(x) -+ Utils.pprint('NORMAL', "%s :" % msg.ljust(self.line_just), sep='') -+ -+ def end_msg(self, result, color): -+ self.in_msg -= 1 -+ if self.in_msg: -+ return -+ -+ if not color: -+ color = 'GREEN' -+ if result == True: -+ msg = 'ok' -+ elif result == False: -+ msg = 'not found' -+ color = 'YELLOW' -+ else: -+ msg = str(result) -+ -+ self.log.write(msg) -+ self.log.write('\n') -+ Utils.pprint(color, msg) -+ -+ def find_program(self, filename, path_list=[], var=None, mandatory=False): -+ "wrapper that adds a configuration message" -+ -+ ret = None -+ if var: -+ if self.env[var]: -+ ret = self.env[var] -+ elif var in os.environ: -+ ret = os.environ[var] -+ -+ if not isinstance(filename, list): filename = [filename] -+ if not ret: -+ for x in filename: -+ ret = find_program_impl(self.env, x, path_list, var, environ=self.environ) -+ if ret: break -+ -+ self.check_message_1('Checking for program %s' % ' or '.join(filename)) -+ self.log.write(' find program=%r paths=%r var=%r\n -> %r\n' % (filename, path_list, var, ret)) -+ if ret: -+ Utils.pprint('GREEN', str(ret)) -+ else: -+ Utils.pprint('YELLOW', 'not found') -+ if mandatory: -+ self.fatal('The program %r is required' % filename) -+ -+ if var: -+ self.env[var] = ret -+ return ret -+ -+ def cmd_to_list(self, cmd): -+ "commands may be written in pseudo shell like 'ccache g++'" -+ if isinstance(cmd, str) and cmd.find(' '): -+ try: -+ os.stat(cmd) -+ except OSError: -+ return shlex.split(cmd) -+ else: -+ return [cmd] -+ return cmd -+ -+ def __getattr__(self, name): -+ r = self.__class__.__dict__.get(name, None) -+ if r: return r -+ if name and name.startswith('require_'): -+ -+ for k in ['check_', 'find_']: -+ n = name.replace('require_', k) -+ ret = self.__class__.__dict__.get(n, None) -+ if ret: -+ def run(*k, **kw): -+ r = ret(self, *k, **kw) -+ if not r: -+ self.fatal('requirement failure') -+ return r -+ return run -+ self.fatal('No such method %r' % name) -+ -+ def eval_rules(self, rules): -+ self.rules = Utils.to_list(rules) -+ for x in self.rules: -+ f = getattr(self, x) -+ if not f: self.fatal("No such method '%s'." % x) -+ try: -+ f() -+ except Exception, e: -+ ret = self.err_handler(x, e) -+ if ret == BREAK: -+ break -+ elif ret == CONTINUE: -+ continue -+ else: -+ self.fatal(e) -+ -+ def err_handler(self, fun, error): -+ pass -+ -+def conf(f): -+ "decorator: attach new configuration functions" -+ setattr(ConfigurationContext, f.__name__, f) -+ return f -+ -+def conftest(f): -+ "decorator: attach new configuration tests (registered as strings)" -+ ConfigurationContext.tests[f.__name__] = f -+ return conf(f) -+ -+ -diff --git a/buildtools/wafadmin/Constants.py b/buildtools/wafadmin/Constants.py -new file mode 100644 -index 0000000..e67dda6 ---- /dev/null -+++ b/buildtools/wafadmin/Constants.py -@@ -0,0 +1,76 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Yinon dot me gmail 2008 -+ -+""" -+these constants are somewhat public, try not to mess them -+ -+maintainer: the version number is updated from the top-level wscript file -+""" -+ -+# do not touch these three lines, they are updated automatically -+HEXVERSION=0x105019 -+WAFVERSION="1.5.19" -+WAFREVISION = "9709M" -+ABI = 7 -+ -+# permissions -+O644 = 420 -+O755 = 493 -+ -+MAXJOBS = 99999999 -+ -+CACHE_DIR = 'c4che' -+CACHE_SUFFIX = '.cache.py' -+DBFILE = '.wafpickle-%d' % ABI -+WSCRIPT_FILE = 'wscript' -+WSCRIPT_BUILD_FILE = 'wscript_build' -+WAF_CONFIG_LOG = 'config.log' -+WAF_CONFIG_H = 'config.h' -+ -+SIG_NIL = 'iluvcuteoverload' -+ -+VARIANT = '_VARIANT_' -+DEFAULT = 'default' -+ -+SRCDIR = 'srcdir' -+BLDDIR = 'blddir' -+APPNAME = 'APPNAME' -+VERSION = 'VERSION' -+ -+DEFINES = 'defines' -+UNDEFINED = () -+ -+BREAK = "break" -+CONTINUE = "continue" -+ -+# task scheduler options -+JOBCONTROL = "JOBCONTROL" -+MAXPARALLEL = "MAXPARALLEL" -+NORMAL = "NORMAL" -+ -+# task state -+NOT_RUN = 0 -+MISSING = 1 -+CRASHED = 2 -+EXCEPTION = 3 -+SKIPPED = 8 -+SUCCESS = 9 -+ -+ASK_LATER = -1 -+SKIP_ME = -2 -+RUN_ME = -3 -+ -+ -+LOG_FORMAT = "%(asctime)s %(c1)s%(zone)s%(c2)s %(message)s" -+HOUR_FORMAT = "%H:%M:%S" -+ -+TEST_OK = True -+ -+CFG_FILES = 'cfg_files' -+ -+# positive '->' install -+# negative '<-' uninstall -+INSTALL = 1337 -+UNINSTALL = -1337 -+ -diff --git a/buildtools/wafadmin/Environment.py b/buildtools/wafadmin/Environment.py -new file mode 100644 -index 0000000..52c83b4 ---- /dev/null -+++ b/buildtools/wafadmin/Environment.py -@@ -0,0 +1,210 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005 (ita) -+ -+"""Environment representation -+ -+There is one gotcha: getitem returns [] if the contents evals to False -+This means env['foo'] = {}; print env['foo'] will print [] not {} -+""" -+ -+import os, copy, re -+import Logs, Options, Utils -+from Constants import * -+re_imp = re.compile('^(#)*?([^#=]*?)\ =\ (.*?)$', re.M) -+ -+class Environment(object): -+ """A safe-to-use dictionary, but do not attach functions to it please (break cPickle) -+ An environment instance can be stored into a file and loaded easily -+ """ -+ __slots__ = ("table", "parent") -+ def __init__(self, filename=None): -+ self.table = {} -+ #self.parent = None -+ -+ if filename: -+ self.load(filename) -+ -+ def __contains__(self, key): -+ if key in self.table: return True -+ try: return self.parent.__contains__(key) -+ except AttributeError: return False # parent may not exist -+ -+ def __str__(self): -+ keys = set() -+ cur = self -+ while cur: -+ keys.update(cur.table.keys()) -+ cur = getattr(cur, 'parent', None) -+ keys = list(keys) -+ keys.sort() -+ return "\n".join(["%r %r" % (x, self.__getitem__(x)) for x in keys]) -+ -+ def __getitem__(self, key): -+ try: -+ while 1: -+ x = self.table.get(key, None) -+ if not x is None: -+ return x -+ self = self.parent -+ except AttributeError: -+ return [] -+ -+ def __setitem__(self, key, value): -+ self.table[key] = value -+ -+ def __delitem__(self, key): -+ del self.table[key] -+ -+ def pop(self, key, *args): -+ if len(args): -+ return self.table.pop(key, *args) -+ return self.table.pop(key) -+ -+ def set_variant(self, name): -+ self.table[VARIANT] = name -+ -+ def variant(self): -+ try: -+ while 1: -+ x = self.table.get(VARIANT, None) -+ if not x is None: -+ return x -+ self = self.parent -+ except AttributeError: -+ return DEFAULT -+ -+ def copy(self): -+ # TODO waf 1.6 rename this method derive, #368 -+ newenv = Environment() -+ newenv.parent = self -+ return newenv -+ -+ def detach(self): -+ """TODO try it -+ modifying the original env will not change the copy""" -+ tbl = self.get_merged_dict() -+ try: -+ delattr(self, 'parent') -+ except AttributeError: -+ pass -+ else: -+ keys = tbl.keys() -+ for x in keys: -+ tbl[x] = copy.deepcopy(tbl[x]) -+ self.table = tbl -+ -+ def get_flat(self, key): -+ s = self[key] -+ if isinstance(s, str): return s -+ return ' '.join(s) -+ -+ def _get_list_value_for_modification(self, key): -+ """Gets a value that must be a list for further modification. The -+ list may be modified inplace and there is no need to -+ "self.table[var] = value" afterwards. -+ """ -+ try: -+ value = self.table[key] -+ except KeyError: -+ try: value = self.parent[key] -+ except AttributeError: value = [] -+ if isinstance(value, list): -+ value = value[:] -+ else: -+ value = [value] -+ else: -+ if not isinstance(value, list): -+ value = [value] -+ self.table[key] = value -+ return value -+ -+ def append_value(self, var, value): -+ current_value = self._get_list_value_for_modification(var) -+ -+ if isinstance(value, list): -+ current_value.extend(value) -+ else: -+ current_value.append(value) -+ -+ def prepend_value(self, var, value): -+ current_value = self._get_list_value_for_modification(var) -+ -+ if isinstance(value, list): -+ current_value = value + current_value -+ # a new list: update the dictionary entry -+ self.table[var] = current_value -+ else: -+ current_value.insert(0, value) -+ -+ # prepend unique would be ambiguous -+ def append_unique(self, var, value): -+ current_value = self._get_list_value_for_modification(var) -+ -+ if isinstance(value, list): -+ for value_item in value: -+ if value_item not in current_value: -+ current_value.append(value_item) -+ else: -+ if value not in current_value: -+ current_value.append(value) -+ -+ def get_merged_dict(self): -+ """compute a merged table""" -+ table_list = [] -+ env = self -+ while 1: -+ table_list.insert(0, env.table) -+ try: env = env.parent -+ except AttributeError: break -+ merged_table = {} -+ for table in table_list: -+ merged_table.update(table) -+ return merged_table -+ -+ def store(self, filename): -+ "Write the variables into a file" -+ file = open(filename, 'w') -+ merged_table = self.get_merged_dict() -+ keys = list(merged_table.keys()) -+ keys.sort() -+ for k in keys: file.write('%s = %r\n' % (k, merged_table[k])) -+ file.close() -+ -+ def load(self, filename): -+ "Retrieve the variables from a file" -+ tbl = self.table -+ code = Utils.readf(filename) -+ for m in re_imp.finditer(code): -+ g = m.group -+ tbl[g(2)] = eval(g(3)) -+ Logs.debug('env: %s', self.table) -+ -+ def get_destdir(self): -+ "return the destdir, useful for installing" -+ if self.__getitem__('NOINSTALL'): return '' -+ return Options.options.destdir -+ -+ def update(self, d): -+ for k, v in d.iteritems(): -+ self[k] = v -+ -+ -+ def __getattr__(self, name): -+ if name in self.__slots__: -+ return object.__getattr__(self, name) -+ else: -+ return self[name] -+ -+ def __setattr__(self, name, value): -+ if name in self.__slots__: -+ object.__setattr__(self, name, value) -+ else: -+ self[name] = value -+ -+ def __delattr__(self, name): -+ if name in self.__slots__: -+ object.__delattr__(self, name) -+ else: -+ del self[name] -+ -diff --git a/buildtools/wafadmin/Logs.py b/buildtools/wafadmin/Logs.py -new file mode 100644 -index 0000000..c160b37 ---- /dev/null -+++ b/buildtools/wafadmin/Logs.py -@@ -0,0 +1,134 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005 (ita) -+ -+import ansiterm -+import os, re, logging, traceback, sys -+from Constants import * -+ -+zones = '' -+verbose = 0 -+ -+colors_lst = { -+'USE' : True, -+'BOLD' :'\x1b[01;1m', -+'RED' :'\x1b[01;31m', -+'GREEN' :'\x1b[32m', -+'YELLOW':'\x1b[33m', -+'PINK' :'\x1b[35m', -+'BLUE' :'\x1b[01;34m', -+'CYAN' :'\x1b[36m', -+'NORMAL':'\x1b[0m', -+'cursor_on' :'\x1b[?25h', -+'cursor_off' :'\x1b[?25l', -+} -+ -+got_tty = False -+term = os.environ.get('TERM', 'dumb') -+if not term in ['dumb', 'emacs']: -+ try: -+ got_tty = sys.stderr.isatty() or (sys.platform == 'win32' and term in ['xterm', 'msys']) -+ except AttributeError: -+ pass -+ -+import Utils -+ -+if not got_tty or 'NOCOLOR' in os.environ: -+ colors_lst['USE'] = False -+ -+# test -+#if sys.platform == 'win32': -+# colors_lst['USE'] = True -+ -+def get_color(cl): -+ if not colors_lst['USE']: return '' -+ return colors_lst.get(cl, '') -+ -+class foo(object): -+ def __getattr__(self, a): -+ return get_color(a) -+ def __call__(self, a): -+ return get_color(a) -+ -+colors = foo() -+ -+re_log = re.compile(r'(\w+): (.*)', re.M) -+class log_filter(logging.Filter): -+ def __init__(self, name=None): -+ pass -+ -+ def filter(self, rec): -+ rec.c1 = colors.PINK -+ rec.c2 = colors.NORMAL -+ rec.zone = rec.module -+ if rec.levelno >= logging.INFO: -+ if rec.levelno >= logging.ERROR: -+ rec.c1 = colors.RED -+ elif rec.levelno >= logging.WARNING: -+ rec.c1 = colors.YELLOW -+ else: -+ rec.c1 = colors.GREEN -+ return True -+ -+ zone = '' -+ m = re_log.match(rec.msg) -+ if m: -+ zone = rec.zone = m.group(1) -+ rec.msg = m.group(2) -+ -+ if zones: -+ return getattr(rec, 'zone', '') in zones or '*' in zones -+ elif not verbose > 2: -+ return False -+ return True -+ -+class formatter(logging.Formatter): -+ def __init__(self): -+ logging.Formatter.__init__(self, LOG_FORMAT, HOUR_FORMAT) -+ -+ def format(self, rec): -+ if rec.levelno >= logging.WARNING or rec.levelno == logging.INFO: -+ try: -+ return '%s%s%s' % (rec.c1, rec.msg.decode('utf-8'), rec.c2) -+ except: -+ return rec.c1+rec.msg+rec.c2 -+ return logging.Formatter.format(self, rec) -+ -+def debug(*k, **kw): -+ if verbose: -+ k = list(k) -+ k[0] = k[0].replace('\n', ' ') -+ logging.debug(*k, **kw) -+ -+def error(*k, **kw): -+ logging.error(*k, **kw) -+ if verbose > 1: -+ if isinstance(k[0], Utils.WafError): -+ st = k[0].stack -+ else: -+ st = traceback.extract_stack() -+ if st: -+ st = st[:-1] -+ buf = [] -+ for filename, lineno, name, line in st: -+ buf.append(' File "%s", line %d, in %s' % (filename, lineno, name)) -+ if line: -+ buf.append(' %s' % line.strip()) -+ if buf: logging.error("\n".join(buf)) -+ -+warn = logging.warn -+info = logging.info -+ -+def init_log(): -+ log = logging.getLogger() -+ log.handlers = [] -+ log.filters = [] -+ hdlr = logging.StreamHandler() -+ hdlr.setFormatter(formatter()) -+ log.addHandler(hdlr) -+ log.addFilter(log_filter()) -+ log.setLevel(logging.DEBUG) -+ -+# may be initialized more than once -+init_log() -+ -diff --git a/buildtools/wafadmin/Node.py b/buildtools/wafadmin/Node.py -new file mode 100644 -index 0000000..236dd0d ---- /dev/null -+++ b/buildtools/wafadmin/Node.py -@@ -0,0 +1,695 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005 (ita) -+ -+""" -+Node: filesystem structure, contains lists of nodes -+ -+IMPORTANT: -+1. Each file/folder is represented by exactly one node. -+ -+2. Most would-be class properties are stored in Build: nodes to depend on, signature, flags, .. -+unused class members increase the .wafpickle file size sensibly with lots of objects. -+ -+3. The build is launched from the top of the build dir (for example, in _build_/). -+ -+4. Node should not be instantiated directly. -+Each instance of Build.BuildContext has a Node subclass. -+(aka: 'Nodu', see BuildContext initializer) -+The BuildContext is referenced here as self.__class__.bld -+Its Node class is referenced here as self.__class__ -+ -+The public and advertised apis are the following: -+${TGT} -> dir/to/file.ext -+${TGT[0].base()} -> dir/to/file -+${TGT[0].dir(env)} -> dir/to -+${TGT[0].file()} -> file.ext -+${TGT[0].file_base()} -> file -+${TGT[0].suffix()} -> .ext -+${TGT[0].abspath(env)} -> /path/to/dir/to/file.ext -+ -+""" -+ -+import os, sys, fnmatch, re, stat -+import Utils, Constants -+ -+UNDEFINED = 0 -+DIR = 1 -+FILE = 2 -+BUILD = 3 -+ -+type_to_string = {UNDEFINED: "unk", DIR: "dir", FILE: "src", BUILD: "bld"} -+ -+# These fnmatch expressions are used by default to prune the directory tree -+# while doing the recursive traversal in the find_iter method of the Node class. -+prune_pats = '.git .bzr .hg .svn _MTN _darcs CVS SCCS'.split() -+ -+# These fnmatch expressions are used by default to exclude files and dirs -+# while doing the recursive traversal in the find_iter method of the Node class. -+exclude_pats = prune_pats + '*~ #*# .#* %*% ._* .gitignore .cvsignore vssver.scc .DS_Store'.split() -+ -+# These Utils.jar_regexp expressions are used by default to exclude files and dirs and also prune the directory tree -+# while doing the recursive traversal in the ant_glob method of the Node class. -+exclude_regs = ''' -+**/*~ -+**/#*# -+**/.#* -+**/%*% -+**/._* -+**/CVS -+**/CVS/** -+**/.cvsignore -+**/SCCS -+**/SCCS/** -+**/vssver.scc -+**/.svn -+**/.svn/** -+**/.git -+**/.git/** -+**/.gitignore -+**/.bzr -+**/.bzr/** -+**/.hg -+**/.hg/** -+**/_MTN -+**/_MTN/** -+**/_darcs -+**/_darcs/** -+**/.DS_Store''' -+ -+class Node(object): -+ __slots__ = ("name", "parent", "id", "childs") -+ def __init__(self, name, parent, node_type = UNDEFINED): -+ self.name = name -+ self.parent = parent -+ -+ # assumption: one build object at a time -+ self.__class__.bld.id_nodes += 4 -+ self.id = self.__class__.bld.id_nodes + node_type -+ -+ if node_type == DIR: self.childs = {} -+ -+ # We do not want to add another type attribute (memory) -+ # use the id to find out: type = id & 3 -+ # for setting: new type = type + x - type & 3 -+ -+ if parent and name in parent.childs: -+ raise Utils.WafError('node %s exists in the parent files %r already' % (name, parent)) -+ -+ if parent: parent.childs[name] = self -+ -+ def __setstate__(self, data): -+ if len(data) == 4: -+ (self.parent, self.name, self.id, self.childs) = data -+ else: -+ (self.parent, self.name, self.id) = data -+ -+ def __getstate__(self): -+ if getattr(self, 'childs', None) is None: -+ return (self.parent, self.name, self.id) -+ else: -+ return (self.parent, self.name, self.id, self.childs) -+ -+ def __str__(self): -+ if not self.parent: return '' -+ return "%s://%s" % (type_to_string[self.id & 3], self.abspath()) -+ -+ def __repr__(self): -+ return self.__str__() -+ -+ def __hash__(self): -+ "expensive, make certain it is not used" -+ raise Utils.WafError('nodes, you are doing it wrong') -+ -+ def __copy__(self): -+ "nodes are not supposed to be copied" -+ raise Utils.WafError('nodes are not supposed to be cloned') -+ -+ def get_type(self): -+ return self.id & 3 -+ -+ def set_type(self, t): -+ "dangerous, you are not supposed to use this" -+ self.id = self.id + t - self.id & 3 -+ -+ def dirs(self): -+ return [x for x in self.childs.values() if x.id & 3 == DIR] -+ -+ def files(self): -+ return [x for x in self.childs.values() if x.id & 3 == FILE] -+ -+ def get_dir(self, name, default=None): -+ node = self.childs.get(name, None) -+ if not node or node.id & 3 != DIR: return default -+ return node -+ -+ def get_file(self, name, default=None): -+ node = self.childs.get(name, None) -+ if not node or node.id & 3 != FILE: return default -+ return node -+ -+ def get_build(self, name, default=None): -+ node = self.childs.get(name, None) -+ if not node or node.id & 3 != BUILD: return default -+ return node -+ -+ def find_resource(self, lst): -+ "Find an existing input file: either a build node declared previously or a source node" -+ if isinstance(lst, str): -+ lst = Utils.split_path(lst) -+ -+ if len(lst) == 1: -+ parent = self -+ else: -+ parent = self.find_dir(lst[:-1]) -+ if not parent: return None -+ self.__class__.bld.rescan(parent) -+ -+ name = lst[-1] -+ node = parent.childs.get(name, None) -+ if node: -+ tp = node.id & 3 -+ if tp == FILE or tp == BUILD: -+ return node -+ else: -+ return None -+ -+ tree = self.__class__.bld -+ if not name in tree.cache_dir_contents[parent.id]: -+ return None -+ -+ path = parent.abspath() + os.sep + name -+ try: -+ st = Utils.h_file(path) -+ except IOError: -+ return None -+ -+ child = self.__class__(name, parent, FILE) -+ tree.node_sigs[0][child.id] = st -+ return child -+ -+ def find_or_declare(self, lst): -+ "Used for declaring a build node representing a file being built" -+ if isinstance(lst, str): -+ lst = Utils.split_path(lst) -+ -+ if len(lst) == 1: -+ parent = self -+ else: -+ parent = self.find_dir(lst[:-1]) -+ if not parent: return None -+ self.__class__.bld.rescan(parent) -+ -+ name = lst[-1] -+ node = parent.childs.get(name, None) -+ if node: -+ tp = node.id & 3 -+ if tp != BUILD: -+ raise Utils.WafError('find_or_declare found a source file where a build file was expected %r' % '/'.join(lst)) -+ return node -+ node = self.__class__(name, parent, BUILD) -+ return node -+ -+ def find_dir(self, lst): -+ "search a folder in the filesystem" -+ -+ if isinstance(lst, str): -+ lst = Utils.split_path(lst) -+ -+ current = self -+ for name in lst: -+ self.__class__.bld.rescan(current) -+ prev = current -+ -+ if not current.parent and name == current.name: -+ continue -+ elif not name: -+ continue -+ elif name == '.': -+ continue -+ elif name == '..': -+ current = current.parent or current -+ else: -+ current = prev.childs.get(name, None) -+ if current is None: -+ dir_cont = self.__class__.bld.cache_dir_contents -+ if prev.id in dir_cont and name in dir_cont[prev.id]: -+ if not prev.name: -+ if os.sep == '/': -+ # cygwin //machine/share -+ dirname = os.sep + name -+ else: -+ # windows c: -+ dirname = name -+ else: -+ # regular path -+ dirname = prev.abspath() + os.sep + name -+ if not os.path.isdir(dirname): -+ return None -+ current = self.__class__(name, prev, DIR) -+ elif (not prev.name and len(name) == 2 and name[1] == ':') or name.startswith('\\\\'): -+ # drive letter or \\ path for windows -+ current = self.__class__(name, prev, DIR) -+ else: -+ return None -+ else: -+ if current.id & 3 != DIR: -+ return None -+ return current -+ -+ def ensure_dir_node_from_path(self, lst): -+ "used very rarely, force the construction of a branch of node instance for representing folders" -+ -+ if isinstance(lst, str): -+ lst = Utils.split_path(lst) -+ -+ current = self -+ for name in lst: -+ if not name: -+ continue -+ elif name == '.': -+ continue -+ elif name == '..': -+ current = current.parent or current -+ else: -+ prev = current -+ current = prev.childs.get(name, None) -+ if current is None: -+ current = self.__class__(name, prev, DIR) -+ return current -+ -+ def exclusive_build_node(self, path): -+ """ -+ create a hierarchy in the build dir (no source folders) for ill-behaving compilers -+ the node is not hashed, so you must do it manually -+ -+ after declaring such a node, find_dir and find_resource should work as expected -+ """ -+ lst = Utils.split_path(path) -+ name = lst[-1] -+ if len(lst) > 1: -+ parent = None -+ try: -+ parent = self.find_dir(lst[:-1]) -+ except OSError: -+ pass -+ if not parent: -+ parent = self.ensure_dir_node_from_path(lst[:-1]) -+ self.__class__.bld.rescan(parent) -+ else: -+ try: -+ self.__class__.bld.rescan(parent) -+ except OSError: -+ pass -+ else: -+ parent = self -+ -+ node = parent.childs.get(name, None) -+ if not node: -+ node = self.__class__(name, parent, BUILD) -+ -+ return node -+ -+ def path_to_parent(self, parent): -+ "path relative to a direct ancestor, as string" -+ lst = [] -+ p = self -+ h1 = parent.height() -+ h2 = p.height() -+ while h2 > h1: -+ h2 -= 1 -+ lst.append(p.name) -+ p = p.parent -+ if lst: -+ lst.reverse() -+ ret = os.path.join(*lst) -+ else: -+ ret = '' -+ return ret -+ -+ def find_ancestor(self, node): -+ "find a common ancestor for two nodes - for the shortest path in hierarchy" -+ dist = self.height() - node.height() -+ if dist < 0: return node.find_ancestor(self) -+ # now the real code -+ cand = self -+ while dist > 0: -+ cand = cand.parent -+ dist -= 1 -+ if cand == node: return cand -+ cursor = node -+ while cand.parent: -+ cand = cand.parent -+ cursor = cursor.parent -+ if cand == cursor: return cand -+ -+ def relpath_gen(self, from_node): -+ "string representing a relative path between self to another node" -+ -+ if self == from_node: return '.' -+ if from_node.parent == self: return '..' -+ -+ # up_path is '../../../' and down_path is 'dir/subdir/subdir/file' -+ ancestor = self.find_ancestor(from_node) -+ lst = [] -+ cand = self -+ while not cand.id == ancestor.id: -+ lst.append(cand.name) -+ cand = cand.parent -+ cand = from_node -+ while not cand.id == ancestor.id: -+ lst.append('..') -+ cand = cand.parent -+ lst.reverse() -+ return os.sep.join(lst) -+ -+ def nice_path(self, env=None): -+ "printed in the console, open files easily from the launch directory" -+ tree = self.__class__.bld -+ ln = tree.launch_node() -+ -+ if self.id & 3 == FILE: return self.relpath_gen(ln) -+ else: return os.path.join(tree.bldnode.relpath_gen(ln), env.variant(), self.relpath_gen(tree.srcnode)) -+ -+ def is_child_of(self, node): -+ "does this node belong to the subtree node" -+ p = self -+ diff = self.height() - node.height() -+ while diff > 0: -+ diff -= 1 -+ p = p.parent -+ return p.id == node.id -+ -+ def variant(self, env): -+ "variant, or output directory for this node, a source has for variant 0" -+ if not env: return 0 -+ elif self.id & 3 == FILE: return 0 -+ else: return env.variant() -+ -+ def height(self): -+ "amount of parents" -+ # README a cache can be added here if necessary -+ d = self -+ val = -1 -+ while d: -+ d = d.parent -+ val += 1 -+ return val -+ -+ # helpers for building things -+ -+ def abspath(self, env=None): -+ """ -+ absolute path -+ @param env [Environment]: -+ * obligatory for build nodes: build/variant/src/dir/bar.o -+ * optional for dirs: get either src/dir or build/variant/src/dir -+ * excluded for source nodes: src/dir/bar.c -+ -+ Instead of computing the absolute path each time again, -+ store the already-computed absolute paths in one of (variants+1) dictionaries: -+ bld.cache_node_abspath[0] holds absolute paths for source nodes. -+ bld.cache_node_abspath[variant] holds the absolute path for the build nodes -+ which reside in the variant given by env. -+ """ -+ ## absolute path - hot zone, so do not touch -+ -+ # less expensive -+ variant = (env and (self.id & 3 != FILE) and env.variant()) or 0 -+ -+ ret = self.__class__.bld.cache_node_abspath[variant].get(self.id, None) -+ if ret: return ret -+ -+ if not variant: -+ # source directory -+ if not self.parent: -+ val = os.sep == '/' and os.sep or '' -+ elif not self.parent.name: # root -+ val = (os.sep == '/' and os.sep or '') + self.name -+ else: -+ val = self.parent.abspath() + os.sep + self.name -+ else: -+ # build directory -+ val = os.sep.join((self.__class__.bld.bldnode.abspath(), variant, self.path_to_parent(self.__class__.bld.srcnode))) -+ self.__class__.bld.cache_node_abspath[variant][self.id] = val -+ return val -+ -+ def change_ext(self, ext): -+ "node of the same path, but with a different extension - hot zone so do not touch" -+ name = self.name -+ k = name.rfind('.') -+ if k >= 0: -+ name = name[:k] + ext -+ else: -+ name = name + ext -+ -+ return self.parent.find_or_declare([name]) -+ -+ def src_dir(self, env): -+ "src path without the file name" -+ return self.parent.srcpath(env) -+ -+ def bld_dir(self, env): -+ "build path without the file name" -+ return self.parent.bldpath(env) -+ -+ def bld_base(self, env): -+ "build path without the extension: src/dir/foo(.cpp)" -+ s = os.path.splitext(self.name)[0] -+ return os.path.join(self.bld_dir(env), s) -+ -+ def bldpath(self, env=None): -+ "path seen from the build dir default/src/foo.cpp" -+ if self.id & 3 == FILE: -+ return self.relpath_gen(self.__class__.bld.bldnode) -+ p = self.path_to_parent(self.__class__.bld.srcnode) -+ if p is not '': -+ return env.variant() + os.sep + p -+ return env.variant() -+ -+ def srcpath(self, env=None): -+ "path in the srcdir from the build dir ../src/foo.cpp" -+ if self.id & 3 == BUILD: -+ return self.bldpath(env) -+ return self.relpath_gen(self.__class__.bld.bldnode) -+ -+ def read(self, env): -+ "get the contents of a file, it is not used anywhere for the moment" -+ return Utils.readf(self.abspath(env)) -+ -+ def dir(self, env): -+ "scons-like" -+ return self.parent.abspath(env) -+ -+ def file(self): -+ "scons-like" -+ return self.name -+ -+ def file_base(self): -+ "scons-like" -+ return os.path.splitext(self.name)[0] -+ -+ def suffix(self): -+ "scons-like - hot zone so do not touch" -+ k = max(0, self.name.rfind('.')) -+ return self.name[k:] -+ -+ def find_iter_impl(self, src=True, bld=True, dir=True, accept_name=None, is_prune=None, maxdepth=25): -+ """find nodes in the filesystem hierarchy, try to instanciate the nodes passively; same gotcha as ant_glob""" -+ bld_ctx = self.__class__.bld -+ bld_ctx.rescan(self) -+ for name in bld_ctx.cache_dir_contents[self.id]: -+ if accept_name(self, name): -+ node = self.find_resource(name) -+ if node: -+ if src and node.id & 3 == FILE: -+ yield node -+ else: -+ node = self.find_dir(name) -+ if node and node.id != bld_ctx.bldnode.id: -+ if dir: -+ yield node -+ if not is_prune(self, name): -+ if maxdepth: -+ for k in node.find_iter_impl(src, bld, dir, accept_name, is_prune, maxdepth=maxdepth - 1): -+ yield k -+ else: -+ if not is_prune(self, name): -+ node = self.find_resource(name) -+ if not node: -+ # not a file, it is a dir -+ node = self.find_dir(name) -+ if node and node.id != bld_ctx.bldnode.id: -+ if maxdepth: -+ for k in node.find_iter_impl(src, bld, dir, accept_name, is_prune, maxdepth=maxdepth - 1): -+ yield k -+ -+ if bld: -+ for node in self.childs.values(): -+ if node.id == bld_ctx.bldnode.id: -+ continue -+ if node.id & 3 == BUILD: -+ if accept_name(self, node.name): -+ yield node -+ raise StopIteration -+ -+ def find_iter(self, in_pat=['*'], ex_pat=exclude_pats, prune_pat=prune_pats, src=True, bld=True, dir=False, maxdepth=25, flat=False): -+ """find nodes recursively, this returns everything but folders by default; same gotcha as ant_glob""" -+ -+ if not (src or bld or dir): -+ raise StopIteration -+ -+ if self.id & 3 != DIR: -+ raise StopIteration -+ -+ in_pat = Utils.to_list(in_pat) -+ ex_pat = Utils.to_list(ex_pat) -+ prune_pat = Utils.to_list(prune_pat) -+ -+ def accept_name(node, name): -+ for pat in ex_pat: -+ if fnmatch.fnmatchcase(name, pat): -+ return False -+ for pat in in_pat: -+ if fnmatch.fnmatchcase(name, pat): -+ return True -+ return False -+ -+ def is_prune(node, name): -+ for pat in prune_pat: -+ if fnmatch.fnmatchcase(name, pat): -+ return True -+ return False -+ -+ ret = self.find_iter_impl(src, bld, dir, accept_name, is_prune, maxdepth=maxdepth) -+ if flat: -+ return " ".join([x.relpath_gen(self) for x in ret]) -+ -+ return ret -+ -+ def ant_glob(self, *k, **kw): -+ """ -+ known gotcha: will enumerate the files, but only if the folder exists in the source directory -+ """ -+ -+ src=kw.get('src', 1) -+ bld=kw.get('bld', 0) -+ dir=kw.get('dir', 0) -+ excl = kw.get('excl', exclude_regs) -+ incl = k and k[0] or kw.get('incl', '**') -+ -+ def to_pat(s): -+ lst = Utils.to_list(s) -+ ret = [] -+ for x in lst: -+ x = x.replace('//', '/') -+ if x.endswith('/'): -+ x += '**' -+ lst2 = x.split('/') -+ accu = [] -+ for k in lst2: -+ if k == '**': -+ accu.append(k) -+ else: -+ k = k.replace('.', '[.]').replace('*', '.*').replace('?', '.') -+ k = '^%s$' % k -+ #print "pattern", k -+ accu.append(re.compile(k)) -+ ret.append(accu) -+ return ret -+ -+ def filtre(name, nn): -+ ret = [] -+ for lst in nn: -+ if not lst: -+ pass -+ elif lst[0] == '**': -+ ret.append(lst) -+ if len(lst) > 1: -+ if lst[1].match(name): -+ ret.append(lst[2:]) -+ else: -+ ret.append([]) -+ elif lst[0].match(name): -+ ret.append(lst[1:]) -+ return ret -+ -+ def accept(name, pats): -+ nacc = filtre(name, pats[0]) -+ nrej = filtre(name, pats[1]) -+ if [] in nrej: -+ nacc = [] -+ return [nacc, nrej] -+ -+ def ant_iter(nodi, maxdepth=25, pats=[]): -+ nodi.__class__.bld.rescan(nodi) -+ tmp = list(nodi.__class__.bld.cache_dir_contents[nodi.id]) -+ tmp.sort() -+ for name in tmp: -+ npats = accept(name, pats) -+ if npats and npats[0]: -+ accepted = [] in npats[0] -+ #print accepted, nodi, name -+ -+ node = nodi.find_resource(name) -+ if node and accepted: -+ if src and node.id & 3 == FILE: -+ yield node -+ else: -+ node = nodi.find_dir(name) -+ if node and node.id != nodi.__class__.bld.bldnode.id: -+ if accepted and dir: -+ yield node -+ if maxdepth: -+ for k in ant_iter(node, maxdepth=maxdepth - 1, pats=npats): -+ yield k -+ if bld: -+ for node in nodi.childs.values(): -+ if node.id == nodi.__class__.bld.bldnode.id: -+ continue -+ if node.id & 3 == BUILD: -+ npats = accept(node.name, pats) -+ if npats and npats[0] and [] in npats[0]: -+ yield node -+ raise StopIteration -+ -+ ret = [x for x in ant_iter(self, pats=[to_pat(incl), to_pat(excl)])] -+ -+ if kw.get('flat', True): -+ return " ".join([x.relpath_gen(self) for x in ret]) -+ -+ return ret -+ -+ def update_build_dir(self, env=None): -+ -+ if not env: -+ for env in bld.all_envs: -+ self.update_build_dir(env) -+ return -+ -+ path = self.abspath(env) -+ -+ lst = Utils.listdir(path) -+ try: -+ self.__class__.bld.cache_dir_contents[self.id].update(lst) -+ except KeyError: -+ self.__class__.bld.cache_dir_contents[self.id] = set(lst) -+ self.__class__.bld.cache_scanned_folders[self.id] = True -+ -+ for k in lst: -+ npath = path + os.sep + k -+ st = os.stat(npath) -+ if stat.S_ISREG(st[stat.ST_MODE]): -+ ick = self.find_or_declare(k) -+ if not (ick.id in self.__class__.bld.node_sigs[env.variant()]): -+ self.__class__.bld.node_sigs[env.variant()][ick.id] = Constants.SIG_NIL -+ elif stat.S_ISDIR(st[stat.ST_MODE]): -+ child = self.find_dir(k) -+ if not child: -+ child = self.ensure_dir_node_from_path(k) -+ child.update_build_dir(env) -+ -+ -+class Nodu(Node): -+ pass -+ -diff --git a/buildtools/wafadmin/Options.py b/buildtools/wafadmin/Options.py -new file mode 100644 -index 0000000..c9ddcfe ---- /dev/null -+++ b/buildtools/wafadmin/Options.py -@@ -0,0 +1,288 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Scott Newton, 2005 (scottn) -+# Thomas Nagy, 2006 (ita) -+ -+"Custom command-line options" -+ -+import os, sys, imp, types, tempfile, optparse -+import Logs, Utils -+from Constants import * -+ -+cmds = 'distclean configure build install clean uninstall check dist distcheck'.split() -+ -+# TODO remove in waf 1.6 the following two -+commands = {} -+is_install = False -+ -+options = {} -+arg_line = [] -+launch_dir = '' -+tooldir = '' -+lockfile = os.environ.get('WAFLOCK', '.lock-wscript') -+try: cache_global = os.path.abspath(os.environ['WAFCACHE']) -+except KeyError: cache_global = '' -+platform = Utils.unversioned_sys_platform() -+conf_file = 'conf-runs-%s-%d.pickle' % (platform, ABI) -+ -+remote_repo = ['http://waf.googlecode.com/svn/'] -+"""remote directory for the plugins""" -+ -+ -+# Such a command-line should work: JOBS=4 PREFIX=/opt/ DESTDIR=/tmp/ahoj/ waf configure -+default_prefix = os.environ.get('PREFIX') -+if not default_prefix: -+ if platform == 'win32': -+ d = tempfile.gettempdir() -+ default_prefix = d[0].upper() + d[1:] -+ # win32 preserves the case, but gettempdir does not -+ else: default_prefix = '/usr/local/' -+ -+default_jobs = os.environ.get('JOBS', -1) -+if default_jobs < 1: -+ try: -+ if 'SC_NPROCESSORS_ONLN' in os.sysconf_names: -+ default_jobs = os.sysconf('SC_NPROCESSORS_ONLN') -+ else: -+ default_jobs = int(Utils.cmd_output(['sysctl', '-n', 'hw.ncpu'])) -+ except: -+ if os.name == 'java': # platform.system() == 'Java' -+ from java.lang import Runtime -+ default_jobs = Runtime.getRuntime().availableProcessors() -+ else: -+ # environment var defined on win32 -+ default_jobs = int(os.environ.get('NUMBER_OF_PROCESSORS', 1)) -+ -+default_destdir = os.environ.get('DESTDIR', '') -+ -+def get_usage(self): -+ cmds_str = [] -+ module = Utils.g_module -+ if module: -+ # create the help messages for commands -+ tbl = module.__dict__ -+ keys = list(tbl.keys()) -+ keys.sort() -+ -+ if 'build' in tbl: -+ if not module.build.__doc__: -+ module.build.__doc__ = 'builds the project' -+ if 'configure' in tbl: -+ if not module.configure.__doc__: -+ module.configure.__doc__ = 'configures the project' -+ -+ ban = ['set_options', 'init', 'shutdown'] -+ -+ optlst = [x for x in keys if not x in ban -+ and type(tbl[x]) is type(parse_args_impl) -+ and tbl[x].__doc__ -+ and not x.startswith('_')] -+ -+ just = max([len(x) for x in optlst]) -+ -+ for x in optlst: -+ cmds_str.append(' %s: %s' % (x.ljust(just), tbl[x].__doc__)) -+ ret = '\n'.join(cmds_str) -+ else: -+ ret = ' '.join(cmds) -+ return '''waf [command] [options] -+ -+Main commands (example: ./waf build -j4) -+%s -+''' % ret -+ -+ -+setattr(optparse.OptionParser, 'get_usage', get_usage) -+ -+def create_parser(module=None): -+ Logs.debug('options: create_parser is called') -+ parser = optparse.OptionParser(conflict_handler="resolve", version = 'waf %s (%s)' % (WAFVERSION, WAFREVISION)) -+ -+ parser.formatter.width = Utils.get_term_cols() -+ p = parser.add_option -+ -+ p('-j', '--jobs', -+ type = 'int', -+ default = default_jobs, -+ help = 'amount of parallel jobs (%r)' % default_jobs, -+ dest = 'jobs') -+ -+ p('-k', '--keep', -+ action = 'store_true', -+ default = False, -+ help = 'keep running happily on independent task groups', -+ dest = 'keep') -+ -+ p('-v', '--verbose', -+ action = 'count', -+ default = 0, -+ help = 'verbosity level -v -vv or -vvv [default: 0]', -+ dest = 'verbose') -+ -+ p('--nocache', -+ action = 'store_true', -+ default = False, -+ help = 'ignore the WAFCACHE (if set)', -+ dest = 'nocache') -+ -+ p('--zones', -+ action = 'store', -+ default = '', -+ help = 'debugging zones (task_gen, deps, tasks, etc)', -+ dest = 'zones') -+ -+ p('-p', '--progress', -+ action = 'count', -+ default = 0, -+ help = '-p: progress bar; -pp: ide output', -+ dest = 'progress_bar') -+ -+ p('--targets', -+ action = 'store', -+ default = '', -+ help = 'build given task generators, e.g. "target1,target2"', -+ dest = 'compile_targets') -+ -+ gr = optparse.OptionGroup(parser, 'configuration options') -+ parser.add_option_group(gr) -+ gr.add_option('-b', '--blddir', -+ action = 'store', -+ default = '', -+ help = 'out dir for the project (configuration)', -+ dest = 'blddir') -+ gr.add_option('-s', '--srcdir', -+ action = 'store', -+ default = '', -+ help = 'top dir for the project (configuration)', -+ dest = 'srcdir') -+ gr.add_option('--prefix', -+ help = 'installation prefix (configuration) [default: %r]' % default_prefix, -+ default = default_prefix, -+ dest = 'prefix') -+ -+ gr.add_option('--download', -+ action = 'store_true', -+ default = False, -+ help = 'try to download the tools if missing', -+ dest = 'download') -+ -+ gr = optparse.OptionGroup(parser, 'installation options') -+ parser.add_option_group(gr) -+ gr.add_option('--destdir', -+ help = 'installation root [default: %r]' % default_destdir, -+ default = default_destdir, -+ dest = 'destdir') -+ gr.add_option('-f', '--force', -+ action = 'store_true', -+ default = False, -+ help = 'force file installation', -+ dest = 'force') -+ -+ return parser -+ -+def parse_args_impl(parser, _args=None): -+ global options, commands, arg_line -+ (options, args) = parser.parse_args(args=_args) -+ -+ arg_line = args -+ #arg_line = args[:] # copy -+ -+ # By default, 'waf' is equivalent to 'waf build' -+ commands = {} -+ for var in cmds: commands[var] = 0 -+ if not args: -+ commands['build'] = 1 -+ args.append('build') -+ -+ # Parse the command arguments -+ for arg in args: -+ commands[arg] = True -+ -+ # the check thing depends on the build -+ if 'check' in args: -+ idx = args.index('check') -+ try: -+ bidx = args.index('build') -+ if bidx > idx: -+ raise ValueError('build before check') -+ except ValueError, e: -+ args.insert(idx, 'build') -+ -+ if args[0] != 'init': -+ args.insert(0, 'init') -+ -+ # TODO -k => -j0 -+ if options.keep: options.jobs = 1 -+ if options.jobs < 1: options.jobs = 1 -+ -+ if 'install' in sys.argv or 'uninstall' in sys.argv: -+ # absolute path only if set -+ options.destdir = options.destdir and os.path.abspath(os.path.expanduser(options.destdir)) -+ -+ Logs.verbose = options.verbose -+ Logs.init_log() -+ -+ if options.zones: -+ Logs.zones = options.zones.split(',') -+ if not Logs.verbose: Logs.verbose = 1 -+ elif Logs.verbose > 0: -+ Logs.zones = ['runner'] -+ if Logs.verbose > 2: -+ Logs.zones = ['*'] -+ -+# TODO waf 1.6 -+# 1. rename the class to OptionsContext -+# 2. instead of a class attribute, use a module (static 'parser') -+# 3. parse_args_impl was made in times when we did not know about binding new methods to classes -+ -+class Handler(Utils.Context): -+ """loads wscript modules in folders for adding options -+ This class should be named 'OptionsContext' -+ A method named 'recurse' is bound when used by the module Scripting""" -+ -+ parser = None -+ # make it possible to access the reference, like Build.bld -+ -+ def __init__(self, module=None): -+ self.parser = create_parser(module) -+ self.cwd = os.getcwd() -+ Handler.parser = self -+ -+ def add_option(self, *k, **kw): -+ self.parser.add_option(*k, **kw) -+ -+ def add_option_group(self, *k, **kw): -+ return self.parser.add_option_group(*k, **kw) -+ -+ def get_option_group(self, opt_str): -+ return self.parser.get_option_group(opt_str) -+ -+ def sub_options(self, *k, **kw): -+ if not k: raise Utils.WscriptError('folder expected') -+ self.recurse(k[0], name='set_options') -+ -+ def tool_options(self, *k, **kw): -+ Utils.python_24_guard() -+ -+ if not k[0]: -+ raise Utils.WscriptError('invalid tool_options call %r %r' % (k, kw)) -+ tools = Utils.to_list(k[0]) -+ -+ # TODO waf 1.6 remove the global variable tooldir -+ path = Utils.to_list(kw.get('tdir', kw.get('tooldir', tooldir))) -+ -+ for tool in tools: -+ tool = tool.replace('++', 'xx') -+ if tool == 'java': tool = 'javaw' -+ if tool.lower() == 'unittest': tool = 'unittestw' -+ module = Utils.load_tool(tool, path) -+ try: -+ fun = module.set_options -+ except AttributeError: -+ pass -+ else: -+ fun(kw.get('option_group', self)) -+ -+ def parse_args(self, args=None): -+ parse_args_impl(self.parser, args) -+ -diff --git a/buildtools/wafadmin/Runner.py b/buildtools/wafadmin/Runner.py -new file mode 100644 -index 0000000..94db0fb ---- /dev/null -+++ b/buildtools/wafadmin/Runner.py -@@ -0,0 +1,236 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005-2008 (ita) -+ -+"Execute the tasks" -+ -+import os, sys, random, time, threading, traceback -+try: from Queue import Queue -+except ImportError: from queue import Queue -+import Build, Utils, Logs, Options -+from Logs import debug, error -+from Constants import * -+ -+GAP = 15 -+ -+run_old = threading.Thread.run -+def run(*args, **kwargs): -+ try: -+ run_old(*args, **kwargs) -+ except (KeyboardInterrupt, SystemExit): -+ raise -+ except: -+ sys.excepthook(*sys.exc_info()) -+threading.Thread.run = run -+ -+def process_task(tsk): -+ -+ m = tsk.master -+ if m.stop: -+ m.out.put(tsk) -+ return -+ -+ try: -+ tsk.generator.bld.printout(tsk.display()) -+ if tsk.__class__.stat: ret = tsk.__class__.stat(tsk) -+ # actual call to task's run() function -+ else: ret = tsk.call_run() -+ except Exception, e: -+ tsk.err_msg = Utils.ex_stack() -+ tsk.hasrun = EXCEPTION -+ -+ # TODO cleanup -+ m.error_handler(tsk) -+ m.out.put(tsk) -+ return -+ -+ if ret: -+ tsk.err_code = ret -+ tsk.hasrun = CRASHED -+ else: -+ try: -+ tsk.post_run() -+ except Utils.WafError: -+ pass -+ except Exception: -+ tsk.err_msg = Utils.ex_stack() -+ tsk.hasrun = EXCEPTION -+ else: -+ tsk.hasrun = SUCCESS -+ if tsk.hasrun != SUCCESS: -+ m.error_handler(tsk) -+ -+ m.out.put(tsk) -+ -+class TaskConsumer(threading.Thread): -+ ready = Queue(0) -+ consumers = [] -+ -+ def __init__(self): -+ threading.Thread.__init__(self) -+ self.setDaemon(1) -+ self.start() -+ -+ def run(self): -+ try: -+ self.loop() -+ except: -+ pass -+ -+ def loop(self): -+ while 1: -+ tsk = TaskConsumer.ready.get() -+ process_task(tsk) -+ -+class Parallel(object): -+ """ -+ keep the consumer threads busy, and avoid consuming cpu cycles -+ when no more tasks can be added (end of the build, etc) -+ """ -+ def __init__(self, bld, j=2): -+ -+ # number of consumers -+ self.numjobs = j -+ -+ self.manager = bld.task_manager -+ self.manager.current_group = 0 -+ -+ self.total = self.manager.total() -+ -+ # tasks waiting to be processed - IMPORTANT -+ self.outstanding = [] -+ self.maxjobs = MAXJOBS -+ -+ # tasks that are awaiting for another task to complete -+ self.frozen = [] -+ -+ # tasks returned by the consumers -+ self.out = Queue(0) -+ -+ self.count = 0 # tasks not in the producer area -+ -+ self.processed = 1 # progress indicator -+ -+ self.stop = False # error condition to stop the build -+ self.error = False # error flag -+ -+ def get_next(self): -+ "override this method to schedule the tasks in a particular order" -+ if not self.outstanding: -+ return None -+ return self.outstanding.pop(0) -+ -+ def postpone(self, tsk): -+ "override this method to schedule the tasks in a particular order" -+ # TODO consider using a deque instead -+ if random.randint(0, 1): -+ self.frozen.insert(0, tsk) -+ else: -+ self.frozen.append(tsk) -+ -+ def refill_task_list(self): -+ "called to set the next group of tasks" -+ -+ while self.count > self.numjobs + GAP or self.count >= self.maxjobs: -+ self.get_out() -+ -+ while not self.outstanding: -+ if self.count: -+ self.get_out() -+ -+ if self.frozen: -+ self.outstanding += self.frozen -+ self.frozen = [] -+ elif not self.count: -+ (jobs, tmp) = self.manager.get_next_set() -+ if jobs != None: self.maxjobs = jobs -+ if tmp: self.outstanding += tmp -+ break -+ -+ def get_out(self): -+ "the tasks that are put to execute are all collected using get_out" -+ ret = self.out.get() -+ self.manager.add_finished(ret) -+ if not self.stop and getattr(ret, 'more_tasks', None): -+ self.outstanding += ret.more_tasks -+ self.total += len(ret.more_tasks) -+ self.count -= 1 -+ -+ def error_handler(self, tsk): -+ "by default, errors make the build stop (not thread safe so be careful)" -+ if not Options.options.keep: -+ self.stop = True -+ self.error = True -+ -+ def start(self): -+ "execute the tasks" -+ -+ if TaskConsumer.consumers: -+ # the worker pool is usually loaded lazily (see below) -+ # in case it is re-used with a different value of numjobs: -+ while len(TaskConsumer.consumers) < self.numjobs: -+ TaskConsumer.consumers.append(TaskConsumer()) -+ -+ while not self.stop: -+ -+ self.refill_task_list() -+ -+ # consider the next task -+ tsk = self.get_next() -+ if not tsk: -+ if self.count: -+ # tasks may add new ones after they are run -+ continue -+ else: -+ # no tasks to run, no tasks running, time to exit -+ break -+ -+ if tsk.hasrun: -+ # if the task is marked as "run", just skip it -+ self.processed += 1 -+ self.manager.add_finished(tsk) -+ continue -+ -+ try: -+ st = tsk.runnable_status() -+ except Exception, e: -+ self.processed += 1 -+ if self.stop and not Options.options.keep: -+ tsk.hasrun = SKIPPED -+ self.manager.add_finished(tsk) -+ continue -+ self.error_handler(tsk) -+ self.manager.add_finished(tsk) -+ tsk.hasrun = EXCEPTION -+ tsk.err_msg = Utils.ex_stack() -+ continue -+ -+ if st == ASK_LATER: -+ self.postpone(tsk) -+ elif st == SKIP_ME: -+ self.processed += 1 -+ tsk.hasrun = SKIPPED -+ self.manager.add_finished(tsk) -+ else: -+ # run me: put the task in ready queue -+ tsk.position = (self.processed, self.total) -+ self.count += 1 -+ tsk.master = self -+ self.processed += 1 -+ -+ if self.numjobs == 1: -+ process_task(tsk) -+ else: -+ TaskConsumer.ready.put(tsk) -+ # create the consumer threads only if there is something to consume -+ if not TaskConsumer.consumers: -+ TaskConsumer.consumers = [TaskConsumer() for i in xrange(self.numjobs)] -+ -+ # self.count represents the tasks that have been made available to the consumer threads -+ # collect all the tasks after an error else the message may be incomplete -+ while self.error and self.count: -+ self.get_out() -+ -+ #print loop -+ assert (self.count == 0 or self.stop) -+ -diff --git a/buildtools/wafadmin/Scripting.py b/buildtools/wafadmin/Scripting.py -new file mode 100644 -index 0000000..d975bd9 ---- /dev/null -+++ b/buildtools/wafadmin/Scripting.py -@@ -0,0 +1,586 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005 (ita) -+ -+"Module called for configuring, compiling and installing targets" -+ -+import os, sys, shutil, traceback, datetime, inspect, errno -+ -+import Utils, Configure, Build, Logs, Options, Environment, Task -+from Logs import error, warn, info -+from Constants import * -+ -+g_gz = 'bz2' -+commands = [] -+ -+def prepare_impl(t, cwd, ver, wafdir): -+ Options.tooldir = [t] -+ Options.launch_dir = cwd -+ -+ # some command-line options can be processed immediately -+ if '--version' in sys.argv: -+ opt_obj = Options.Handler() -+ opt_obj.curdir = cwd -+ opt_obj.parse_args() -+ sys.exit(0) -+ -+ # now find the wscript file -+ msg1 = 'Waf: Please run waf from a directory containing a file named "%s" or run distclean' % WSCRIPT_FILE -+ -+ # in theory projects can be configured in an autotool-like manner: -+ # mkdir build && cd build && ../waf configure && ../waf -+ build_dir_override = None -+ candidate = None -+ -+ lst = os.listdir(cwd) -+ -+ search_for_candidate = True -+ if WSCRIPT_FILE in lst: -+ candidate = cwd -+ -+ elif 'configure' in sys.argv and not WSCRIPT_BUILD_FILE in lst: -+ # autotool-like configuration -+ calldir = os.path.abspath(os.path.dirname(sys.argv[0])) -+ if WSCRIPT_FILE in os.listdir(calldir): -+ candidate = calldir -+ search_for_candidate = False -+ else: -+ error('arg[0] directory does not contain a wscript file') -+ sys.exit(1) -+ build_dir_override = cwd -+ -+ # climb up to find a script if it is not found -+ while search_for_candidate: -+ if len(cwd) <= 3: -+ break # stop at / or c: -+ dirlst = os.listdir(cwd) -+ if WSCRIPT_FILE in dirlst: -+ candidate = cwd -+ if 'configure' in sys.argv and candidate: -+ break -+ if Options.lockfile in dirlst: -+ env = Environment.Environment() -+ try: -+ env.load(os.path.join(cwd, Options.lockfile)) -+ except: -+ error('could not load %r' % Options.lockfile) -+ try: -+ os.stat(env['cwd']) -+ except: -+ candidate = cwd -+ else: -+ candidate = env['cwd'] -+ break -+ cwd = os.path.dirname(cwd) # climb up -+ -+ if not candidate: -+ # check if the user only wanted to display the help -+ if '-h' in sys.argv or '--help' in sys.argv: -+ warn('No wscript file found: the help message may be incomplete') -+ opt_obj = Options.Handler() -+ opt_obj.curdir = cwd -+ opt_obj.parse_args() -+ else: -+ error(msg1) -+ sys.exit(0) -+ -+ # We have found wscript, but there is no guarantee that it is valid -+ try: -+ os.chdir(candidate) -+ except OSError: -+ raise Utils.WafError("the folder %r is unreadable" % candidate) -+ -+ # define the main module containing the functions init, shutdown, .. -+ Utils.set_main_module(os.path.join(candidate, WSCRIPT_FILE)) -+ -+ if build_dir_override: -+ d = getattr(Utils.g_module, BLDDIR, None) -+ if d: -+ # test if user has set the blddir in wscript. -+ msg = ' Overriding build directory %s with %s' % (d, build_dir_override) -+ warn(msg) -+ Utils.g_module.blddir = build_dir_override -+ -+ # bind a few methods and classes by default -+ -+ def set_def(obj, name=''): -+ n = name or obj.__name__ -+ if not n in Utils.g_module.__dict__: -+ setattr(Utils.g_module, n, obj) -+ -+ for k in [dist, distclean, distcheck, clean, install, uninstall]: -+ set_def(k) -+ -+ set_def(Configure.ConfigurationContext, 'configure_context') -+ -+ for k in ['build', 'clean', 'install', 'uninstall']: -+ set_def(Build.BuildContext, k + '_context') -+ -+ # now parse the options from the user wscript file -+ opt_obj = Options.Handler(Utils.g_module) -+ opt_obj.curdir = candidate -+ try: -+ f = Utils.g_module.set_options -+ except AttributeError: -+ pass -+ else: -+ opt_obj.sub_options(['']) -+ opt_obj.parse_args() -+ -+ if not 'init' in Utils.g_module.__dict__: -+ Utils.g_module.init = Utils.nada -+ if not 'shutdown' in Utils.g_module.__dict__: -+ Utils.g_module.shutdown = Utils.nada -+ -+ main() -+ -+def prepare(t, cwd, ver, wafdir): -+ if WAFVERSION != ver: -+ msg = 'Version mismatch: waf %s <> wafadmin %s (wafdir %s)' % (ver, WAFVERSION, wafdir) -+ print('\033[91mError: %s\033[0m' % msg) -+ sys.exit(1) -+ -+ #""" -+ try: -+ prepare_impl(t, cwd, ver, wafdir) -+ except Utils.WafError, e: -+ error(str(e)) -+ sys.exit(1) -+ except KeyboardInterrupt: -+ Utils.pprint('RED', 'Interrupted') -+ sys.exit(68) -+ """ -+ import cProfile, pstats -+ cProfile.runctx("import Scripting; Scripting.prepare_impl(t, cwd, ver, wafdir)", {}, -+ {'t': t, 'cwd':cwd, 'ver':ver, 'wafdir':wafdir}, -+ 'profi.txt') -+ p = pstats.Stats('profi.txt') -+ p.sort_stats('time').print_stats(45) -+ #""" -+ -+def main(): -+ global commands -+ commands = Options.arg_line[:] -+ -+ while commands: -+ x = commands.pop(0) -+ -+ ini = datetime.datetime.now() -+ if x == 'configure': -+ fun = configure -+ elif x == 'build': -+ fun = build -+ else: -+ fun = getattr(Utils.g_module, x, None) -+ -+ if not fun: -+ raise Utils.WscriptError('No such command %r' % x) -+ -+ ctx = getattr(Utils.g_module, x + '_context', Utils.Context)() -+ -+ if x in ['init', 'shutdown', 'dist', 'distclean', 'distcheck']: -+ # compatibility TODO remove in waf 1.6 -+ try: -+ fun(ctx) -+ except TypeError: -+ fun() -+ else: -+ fun(ctx) -+ -+ ela = '' -+ if not Options.options.progress_bar: -+ ela = ' (%s)' % Utils.get_elapsed_time(ini) -+ -+ if x != 'init' and x != 'shutdown': -+ info('%r finished successfully%s' % (x, ela)) -+ -+ if not commands and x != 'shutdown': -+ commands.append('shutdown') -+ -+def configure(conf): -+ -+ src = getattr(Options.options, SRCDIR, None) -+ if not src: src = getattr(Utils.g_module, SRCDIR, None) -+ if not src: src = getattr(Utils.g_module, 'top', None) -+ if not src: -+ src = '.' -+ incomplete_src = 1 -+ src = os.path.abspath(src) -+ -+ bld = getattr(Options.options, BLDDIR, None) -+ if not bld: bld = getattr(Utils.g_module, BLDDIR, None) -+ if not bld: bld = getattr(Utils.g_module, 'out', None) -+ if not bld: -+ bld = 'build' -+ incomplete_bld = 1 -+ if bld == '.': -+ raise Utils.WafError('Setting blddir="." may cause distclean problems') -+ bld = os.path.abspath(bld) -+ -+ try: os.makedirs(bld) -+ except OSError: pass -+ -+ # It is not possible to compile specific targets in the configuration -+ # this may cause configuration errors if autoconfig is set -+ targets = Options.options.compile_targets -+ Options.options.compile_targets = None -+ Options.is_install = False -+ -+ conf.srcdir = src -+ conf.blddir = bld -+ conf.post_init() -+ -+ if 'incomplete_src' in vars(): -+ conf.check_message_1('Setting srcdir to') -+ conf.check_message_2(src) -+ if 'incomplete_bld' in vars(): -+ conf.check_message_1('Setting blddir to') -+ conf.check_message_2(bld) -+ -+ # calling to main wscript's configure() -+ conf.sub_config(['']) -+ -+ conf.store() -+ -+ # this will write a configure lock so that subsequent builds will -+ # consider the current path as the root directory (see prepare_impl). -+ # to remove: use 'waf distclean' -+ env = Environment.Environment() -+ env[BLDDIR] = bld -+ env[SRCDIR] = src -+ env['argv'] = sys.argv -+ env['commands'] = Options.commands -+ env['options'] = Options.options.__dict__ -+ -+ # conf.hash & conf.files hold wscript files paths and hash -+ # (used only by Configure.autoconfig) -+ env['hash'] = conf.hash -+ env['files'] = conf.files -+ env['environ'] = dict(conf.environ) -+ env['cwd'] = os.path.split(Utils.g_module.root_path)[0] -+ -+ if Utils.g_module.root_path != src: -+ # in case the source dir is somewhere else -+ env.store(os.path.join(src, Options.lockfile)) -+ -+ env.store(Options.lockfile) -+ -+ Options.options.compile_targets = targets -+ -+def clean(bld): -+ '''removes the build files''' -+ try: -+ proj = Environment.Environment(Options.lockfile) -+ except IOError: -+ raise Utils.WafError('Nothing to clean (project not configured)') -+ -+ bld.load_dirs(proj[SRCDIR], proj[BLDDIR]) -+ bld.load_envs() -+ -+ bld.is_install = 0 # False -+ -+ # read the scripts - and set the path to the wscript path (useful for srcdir='/foo/bar') -+ bld.add_subdirs([os.path.split(Utils.g_module.root_path)[0]]) -+ -+ try: -+ bld.clean() -+ finally: -+ bld.save() -+ -+def check_configured(bld): -+ if not Configure.autoconfig: -+ return bld -+ -+ conf_cls = getattr(Utils.g_module, 'configure_context', Utils.Context) -+ bld_cls = getattr(Utils.g_module, 'build_context', Utils.Context) -+ -+ def reconf(proj): -+ back = (Options.commands, Options.options.__dict__, Logs.zones, Logs.verbose) -+ -+ Options.commands = proj['commands'] -+ Options.options.__dict__ = proj['options'] -+ conf = conf_cls() -+ conf.environ = proj['environ'] -+ configure(conf) -+ -+ (Options.commands, Options.options.__dict__, Logs.zones, Logs.verbose) = back -+ -+ try: -+ proj = Environment.Environment(Options.lockfile) -+ except IOError: -+ conf = conf_cls() -+ configure(conf) -+ else: -+ try: -+ bld = bld_cls() -+ bld.load_dirs(proj[SRCDIR], proj[BLDDIR]) -+ bld.load_envs() -+ except Utils.WafError: -+ reconf(proj) -+ return bld_cls() -+ -+ try: -+ proj = Environment.Environment(Options.lockfile) -+ except IOError: -+ raise Utils.WafError('Auto-config: project does not configure (bug)') -+ -+ h = 0 -+ try: -+ for file in proj['files']: -+ if file.endswith('configure'): -+ h = hash((h, Utils.readf(file))) -+ else: -+ mod = Utils.load_module(file) -+ h = hash((h, mod.waf_hash_val)) -+ except (OSError, IOError): -+ warn('Reconfiguring the project: a file is unavailable') -+ reconf(proj) -+ else: -+ if (h != proj['hash']): -+ warn('Reconfiguring the project: the configuration has changed') -+ reconf(proj) -+ -+ return bld_cls() -+ -+def install(bld): -+ '''installs the build files''' -+ bld = check_configured(bld) -+ -+ Options.commands['install'] = True -+ Options.commands['uninstall'] = False -+ Options.is_install = True -+ -+ bld.is_install = INSTALL -+ -+ build_impl(bld) -+ bld.install() -+ -+def uninstall(bld): -+ '''removes the installed files''' -+ Options.commands['install'] = False -+ Options.commands['uninstall'] = True -+ Options.is_install = True -+ -+ bld.is_install = UNINSTALL -+ -+ try: -+ def runnable_status(self): -+ return SKIP_ME -+ setattr(Task.Task, 'runnable_status_back', Task.Task.runnable_status) -+ setattr(Task.Task, 'runnable_status', runnable_status) -+ -+ build_impl(bld) -+ bld.install() -+ finally: -+ setattr(Task.Task, 'runnable_status', Task.Task.runnable_status_back) -+ -+def build(bld): -+ bld = check_configured(bld) -+ -+ Options.commands['install'] = False -+ Options.commands['uninstall'] = False -+ Options.is_install = False -+ -+ bld.is_install = 0 # False -+ -+ return build_impl(bld) -+ -+def build_impl(bld): -+ # compile the project and/or install the files -+ try: -+ proj = Environment.Environment(Options.lockfile) -+ except IOError: -+ raise Utils.WafError("Project not configured (run 'waf configure' first)") -+ -+ bld.load_dirs(proj[SRCDIR], proj[BLDDIR]) -+ bld.load_envs() -+ -+ info("Waf: Entering directory `%s'" % bld.bldnode.abspath()) -+ bld.add_subdirs([os.path.split(Utils.g_module.root_path)[0]]) -+ -+ # execute something immediately before the build starts -+ bld.pre_build() -+ -+ try: -+ bld.compile() -+ finally: -+ if Options.options.progress_bar: print('') -+ info("Waf: Leaving directory `%s'" % bld.bldnode.abspath()) -+ -+ # execute something immediately after a successful build -+ bld.post_build() -+ -+ bld.install() -+ -+excludes = '.bzr .bzrignore .git .gitignore .svn CVS .cvsignore .arch-ids {arch} SCCS BitKeeper .hg _MTN _darcs Makefile Makefile.in config.log .gitattributes .hgignore .hgtags'.split() -+dist_exts = '~ .rej .orig .pyc .pyo .bak .tar.bz2 tar.gz .zip .swp'.split() -+def dont_dist(name, src, build_dir): -+ global excludes, dist_exts -+ -+ if (name.startswith(',,') -+ or name.startswith('++') -+ or name.startswith('.waf') -+ or (src == '.' and name == Options.lockfile) -+ or name in excludes -+ or name == build_dir -+ ): -+ return True -+ -+ for ext in dist_exts: -+ if name.endswith(ext): -+ return True -+ -+ return False -+ -+# like shutil.copytree -+# exclude files and to raise exceptions immediately -+def copytree(src, dst, build_dir): -+ names = os.listdir(src) -+ os.makedirs(dst) -+ for name in names: -+ srcname = os.path.join(src, name) -+ dstname = os.path.join(dst, name) -+ -+ if dont_dist(name, src, build_dir): -+ continue -+ -+ if os.path.isdir(srcname): -+ copytree(srcname, dstname, build_dir) -+ else: -+ shutil.copy2(srcname, dstname) -+ -+# TODO in waf 1.6, change this method if "srcdir == blddir" is allowed -+def distclean(ctx=None): -+ '''removes the build directory''' -+ global commands -+ lst = os.listdir('.') -+ for f in lst: -+ if f == Options.lockfile: -+ try: -+ proj = Environment.Environment(f) -+ except: -+ Logs.warn('could not read %r' % f) -+ continue -+ -+ try: -+ shutil.rmtree(proj[BLDDIR]) -+ except IOError: -+ pass -+ except OSError, e: -+ if e.errno != errno.ENOENT: -+ Logs.warn('project %r cannot be removed' % proj[BLDDIR]) -+ -+ try: -+ os.remove(f) -+ except OSError, e: -+ if e.errno != errno.ENOENT: -+ Logs.warn('file %r cannot be removed' % f) -+ -+ # remove the local waf cache -+ if not commands and f.startswith('.waf'): -+ shutil.rmtree(f, ignore_errors=True) -+ -+# FIXME waf 1.6 a unique ctx parameter, and remove the optional appname and version -+def dist(appname='', version=''): -+ '''makes a tarball for redistributing the sources''' -+ # return return (distdirname, tarballname) -+ import tarfile -+ -+ if not appname: appname = Utils.g_module.APPNAME -+ if not version: version = Utils.g_module.VERSION -+ -+ tmp_folder = appname + '-' + version -+ if g_gz in ['gz', 'bz2']: -+ arch_name = tmp_folder + '.tar.' + g_gz -+ else: -+ arch_name = tmp_folder + '.' + 'zip' -+ -+ # remove the previous dir -+ try: -+ shutil.rmtree(tmp_folder) -+ except (OSError, IOError): -+ pass -+ -+ # remove the previous archive -+ try: -+ os.remove(arch_name) -+ except (OSError, IOError): -+ pass -+ -+ # copy the files into the temporary folder -+ blddir = getattr(Utils.g_module, BLDDIR, None) -+ if not blddir: -+ blddir = getattr(Utils.g_module, 'out', None) -+ copytree('.', tmp_folder, blddir) -+ -+ # undocumented hook for additional cleanup -+ dist_hook = getattr(Utils.g_module, 'dist_hook', None) -+ if dist_hook: -+ back = os.getcwd() -+ os.chdir(tmp_folder) -+ try: -+ dist_hook() -+ finally: -+ # go back to the root directory -+ os.chdir(back) -+ -+ if g_gz in ['gz', 'bz2']: -+ tar = tarfile.open(arch_name, 'w:' + g_gz) -+ tar.add(tmp_folder) -+ tar.close() -+ else: -+ Utils.zip_folder(tmp_folder, arch_name, tmp_folder) -+ -+ try: from hashlib import sha1 as sha -+ except ImportError: from sha import sha -+ try: -+ digest = " (sha=%r)" % sha(Utils.readf(arch_name)).hexdigest() -+ except: -+ digest = '' -+ -+ info('New archive created: %s%s' % (arch_name, digest)) -+ -+ if os.path.exists(tmp_folder): shutil.rmtree(tmp_folder) -+ return arch_name -+ -+# FIXME waf 1.6 a unique ctx parameter, and remove the optional appname and version -+def distcheck(appname='', version='', subdir=''): -+ '''checks if the sources compile (tarball from 'dist')''' -+ import tempfile, tarfile -+ -+ if not appname: appname = Utils.g_module.APPNAME -+ if not version: version = Utils.g_module.VERSION -+ -+ waf = os.path.abspath(sys.argv[0]) -+ tarball = dist(appname, version) -+ -+ path = appname + '-' + version -+ -+ # remove any previous instance -+ if os.path.exists(path): -+ shutil.rmtree(path) -+ -+ t = tarfile.open(tarball) -+ for x in t: t.extract(x) -+ t.close() -+ -+ # build_path is the directory for the waf invocation -+ if subdir: -+ build_path = os.path.join(path, subdir) -+ else: -+ build_path = path -+ -+ instdir = tempfile.mkdtemp('.inst', '%s-%s' % (appname, version)) -+ ret = Utils.pproc.Popen([waf, 'configure', 'build', 'install', 'uninstall', '--destdir=' + instdir], cwd=build_path).wait() -+ if ret: -+ raise Utils.WafError('distcheck failed with code %i' % ret) -+ -+ if os.path.exists(instdir): -+ raise Utils.WafError('distcheck succeeded, but files were left in %s' % instdir) -+ -+ shutil.rmtree(path) -+ -+# FIXME remove in Waf 1.6 (kept for compatibility) -+def add_subdir(dir, bld): -+ bld.recurse(dir, 'build') -+ -diff --git a/buildtools/wafadmin/Task.py b/buildtools/wafadmin/Task.py -new file mode 100644 -index 0000000..5cda2ec ---- /dev/null -+++ b/buildtools/wafadmin/Task.py -@@ -0,0 +1,1200 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005-2008 (ita) -+ -+""" -+Running tasks in parallel is a simple problem, but in practice it is more complicated: -+* dependencies discovered during the build (dynamic task creation) -+* dependencies discovered after files are compiled -+* the amount of tasks and dependencies (graph size) can be huge -+ -+This is why the dependency management is split on three different levels: -+1. groups of tasks that run all after another group of tasks -+2. groups of tasks that can be run in parallel -+3. tasks that can run in parallel, but with possible unknown ad-hoc dependencies -+ -+The point #1 represents a strict sequential order between groups of tasks, for example a compiler is produced -+and used to compile the rest, whereas #2 and #3 represent partial order constraints where #2 applies to the kind of task -+and #3 applies to the task instances. -+ -+#1 is held by the task manager: ordered list of TaskGroups (see bld.add_group) -+#2 is held by the task groups and the task types: precedence after/before (topological sort), -+ and the constraints extracted from file extensions -+#3 is held by the tasks individually (attribute run_after), -+ and the scheduler (Runner.py) use Task::runnable_status to reorder the tasks -+ -+-- -+ -+To try, use something like this in your code: -+import Constants, Task -+Task.algotype = Constants.MAXPARALLEL -+ -+-- -+ -+There are two concepts with the tasks (individual units of change): -+* dependency (if 1 is recompiled, recompile 2) -+* order (run 2 after 1) -+ -+example 1: if t1 depends on t2 and t2 depends on t3 it is not necessary to make t1 depend on t3 (dependency is transitive) -+example 2: if t1 depends on a node produced by t2, it is not immediately obvious that t1 must run after t2 (order is not obvious) -+ -+The role of the Task Manager is to give the tasks in order (groups of task that may be run in parallel one after the other) -+ -+""" -+ -+import os, shutil, sys, re, random, datetime, tempfile, shlex -+from Utils import md5 -+import Build, Runner, Utils, Node, Logs, Options -+from Logs import debug, warn, error -+from Constants import * -+ -+algotype = NORMAL -+#algotype = JOBCONTROL -+#algotype = MAXPARALLEL -+ -+COMPILE_TEMPLATE_SHELL = ''' -+def f(task): -+ env = task.env -+ wd = getattr(task, 'cwd', None) -+ p = env.get_flat -+ cmd = \'\'\' %s \'\'\' % s -+ return task.exec_command(cmd, cwd=wd) -+''' -+ -+COMPILE_TEMPLATE_NOSHELL = ''' -+def f(task): -+ env = task.env -+ wd = getattr(task, 'cwd', None) -+ def to_list(xx): -+ if isinstance(xx, str): return [xx] -+ return xx -+ lst = [] -+ %s -+ lst = [x for x in lst if x] -+ return task.exec_command(lst, cwd=wd) -+''' -+ -+ -+""" -+Enable different kind of dependency algorithms: -+1 make groups: first compile all cpps and then compile all links (NORMAL) -+2 parallelize all (each link task run after its dependencies) (MAXPARALLEL) -+3 like 1 but provide additional constraints for the parallelization (MAXJOBS) -+ -+In theory 1. will be faster than 2 for waf, but might be slower for builds -+The scheme 2 will not allow for running tasks one by one so it can cause disk thrashing on huge builds -+""" -+ -+file_deps = Utils.nada -+""" -+Additional dependency pre-check may be added by replacing the function file_deps. -+e.g. extract_outputs, extract_deps below. -+""" -+ -+class TaskManager(object): -+ """The manager is attached to the build object, it holds a list of TaskGroup""" -+ def __init__(self): -+ self.groups = [] -+ self.tasks_done = [] -+ self.current_group = 0 -+ self.groups_names = {} -+ -+ def group_name(self, g): -+ """name for the group g (utility)""" -+ if not isinstance(g, TaskGroup): -+ g = self.groups[g] -+ for x in self.groups_names: -+ if id(self.groups_names[x]) == id(g): -+ return x -+ return '' -+ -+ def group_idx(self, tg): -+ """group the task generator tg is in""" -+ se = id(tg) -+ for i in range(len(self.groups)): -+ g = self.groups[i] -+ for t in g.tasks_gen: -+ if id(t) == se: -+ return i -+ return None -+ -+ def get_next_set(self): -+ """return the next set of tasks to execute -+ the first parameter is the maximum amount of parallelization that may occur""" -+ ret = None -+ while not ret and self.current_group < len(self.groups): -+ ret = self.groups[self.current_group].get_next_set() -+ if ret: return ret -+ else: -+ self.groups[self.current_group].process_install() -+ self.current_group += 1 -+ return (None, None) -+ -+ def add_group(self, name=None, set=True): -+ #if self.groups and not self.groups[0].tasks: -+ # error('add_group: an empty group is already present') -+ g = TaskGroup() -+ -+ if name and name in self.groups_names: -+ error('add_group: name %s already present' % name) -+ self.groups_names[name] = g -+ self.groups.append(g) -+ if set: -+ self.current_group = len(self.groups) - 1 -+ -+ def set_group(self, idx): -+ if isinstance(idx, str): -+ g = self.groups_names[idx] -+ for x in xrange(len(self.groups)): -+ if id(g) == id(self.groups[x]): -+ self.current_group = x -+ else: -+ self.current_group = idx -+ -+ def add_task_gen(self, tgen): -+ if not self.groups: self.add_group() -+ self.groups[self.current_group].tasks_gen.append(tgen) -+ -+ def add_task(self, task): -+ if not self.groups: self.add_group() -+ self.groups[self.current_group].tasks.append(task) -+ -+ def total(self): -+ total = 0 -+ if not self.groups: return 0 -+ for group in self.groups: -+ total += len(group.tasks) -+ return total -+ -+ def add_finished(self, tsk): -+ self.tasks_done.append(tsk) -+ bld = tsk.generator.bld -+ if bld.is_install: -+ f = None -+ if 'install' in tsk.__dict__: -+ f = tsk.__dict__['install'] -+ # install=0 to prevent installation -+ if f: f(tsk) -+ else: -+ tsk.install() -+ -+class TaskGroup(object): -+ "the compilation of one group does not begin until the previous group has finished (in the manager)" -+ def __init__(self): -+ self.tasks = [] # this list will be consumed -+ self.tasks_gen = [] -+ -+ self.cstr_groups = Utils.DefaultDict(list) # tasks having equivalent constraints -+ self.cstr_order = Utils.DefaultDict(set) # partial order between the cstr groups -+ self.temp_tasks = [] # tasks put on hold -+ self.ready = 0 -+ self.post_funs = [] -+ -+ def reset(self): -+ "clears the state of the object (put back the tasks into self.tasks)" -+ for x in self.cstr_groups: -+ self.tasks += self.cstr_groups[x] -+ self.tasks = self.temp_tasks + self.tasks -+ self.temp_tasks = [] -+ self.cstr_groups = Utils.DefaultDict(list) -+ self.cstr_order = Utils.DefaultDict(set) -+ self.ready = 0 -+ -+ def process_install(self): -+ for (f, k, kw) in self.post_funs: -+ f(*k, **kw) -+ -+ def prepare(self): -+ "prepare the scheduling" -+ self.ready = 1 -+ file_deps(self.tasks) -+ self.make_cstr_groups() -+ self.extract_constraints() -+ -+ def get_next_set(self): -+ "next list of tasks to execute using max job settings, returns (maxjobs, task_list)" -+ global algotype -+ if algotype == NORMAL: -+ tasks = self.tasks_in_parallel() -+ maxj = MAXJOBS -+ elif algotype == JOBCONTROL: -+ (maxj, tasks) = self.tasks_by_max_jobs() -+ elif algotype == MAXPARALLEL: -+ tasks = self.tasks_with_inner_constraints() -+ maxj = MAXJOBS -+ else: -+ raise Utils.WafError("unknown algorithm type %s" % (algotype)) -+ -+ if not tasks: return () -+ return (maxj, tasks) -+ -+ def make_cstr_groups(self): -+ "unite the tasks that have similar constraints" -+ self.cstr_groups = Utils.DefaultDict(list) -+ for x in self.tasks: -+ h = x.hash_constraints() -+ self.cstr_groups[h].append(x) -+ -+ def set_order(self, a, b): -+ self.cstr_order[a].add(b) -+ -+ def compare_exts(self, t1, t2): -+ "extension production" -+ x = "ext_in" -+ y = "ext_out" -+ in_ = t1.attr(x, ()) -+ out_ = t2.attr(y, ()) -+ for k in in_: -+ if k in out_: -+ return -1 -+ in_ = t2.attr(x, ()) -+ out_ = t1.attr(y, ()) -+ for k in in_: -+ if k in out_: -+ return 1 -+ return 0 -+ -+ def compare_partial(self, t1, t2): -+ "partial relations after/before" -+ m = "after" -+ n = "before" -+ name = t2.__class__.__name__ -+ if name in Utils.to_list(t1.attr(m, ())): return -1 -+ elif name in Utils.to_list(t1.attr(n, ())): return 1 -+ name = t1.__class__.__name__ -+ if name in Utils.to_list(t2.attr(m, ())): return 1 -+ elif name in Utils.to_list(t2.attr(n, ())): return -1 -+ return 0 -+ -+ def extract_constraints(self): -+ "extract the parallelization constraints from the tasks with different constraints" -+ keys = self.cstr_groups.keys() -+ max = len(keys) -+ # hopefully the length of this list is short -+ for i in xrange(max): -+ t1 = self.cstr_groups[keys[i]][0] -+ for j in xrange(i + 1, max): -+ t2 = self.cstr_groups[keys[j]][0] -+ -+ # add the constraints based on the comparisons -+ val = (self.compare_exts(t1, t2) -+ or self.compare_partial(t1, t2) -+ ) -+ if val > 0: -+ self.set_order(keys[i], keys[j]) -+ elif val < 0: -+ self.set_order(keys[j], keys[i]) -+ -+ def tasks_in_parallel(self): -+ "(NORMAL) next list of tasks that may be executed in parallel" -+ -+ if not self.ready: self.prepare() -+ -+ keys = self.cstr_groups.keys() -+ -+ unconnected = [] -+ remainder = [] -+ -+ for u in keys: -+ for k in self.cstr_order.values(): -+ if u in k: -+ remainder.append(u) -+ break -+ else: -+ unconnected.append(u) -+ -+ toreturn = [] -+ for y in unconnected: -+ toreturn.extend(self.cstr_groups[y]) -+ -+ # remove stuff only after -+ for y in unconnected: -+ try: self.cstr_order.__delitem__(y) -+ except KeyError: pass -+ self.cstr_groups.__delitem__(y) -+ -+ if not toreturn and remainder: -+ raise Utils.WafError("circular order constraint detected %r" % remainder) -+ -+ return toreturn -+ -+ def tasks_by_max_jobs(self): -+ "(JOBCONTROL) returns the tasks that can run in parallel with the max amount of jobs" -+ if not self.ready: self.prepare() -+ if not self.temp_tasks: self.temp_tasks = self.tasks_in_parallel() -+ if not self.temp_tasks: return (None, None) -+ -+ maxjobs = MAXJOBS -+ ret = [] -+ remaining = [] -+ for t in self.temp_tasks: -+ m = getattr(t, "maxjobs", getattr(self.__class__, "maxjobs", MAXJOBS)) -+ if m > maxjobs: -+ remaining.append(t) -+ elif m < maxjobs: -+ remaining += ret -+ ret = [t] -+ maxjobs = m -+ else: -+ ret.append(t) -+ self.temp_tasks = remaining -+ return (maxjobs, ret) -+ -+ def tasks_with_inner_constraints(self): -+ """(MAXPARALLEL) returns all tasks in this group, but add the constraints on each task instance -+ as an optimization, it might be desirable to discard the tasks which do not have to run""" -+ if not self.ready: self.prepare() -+ -+ if getattr(self, "done", None): return None -+ -+ for p in self.cstr_order: -+ for v in self.cstr_order[p]: -+ for m in self.cstr_groups[p]: -+ for n in self.cstr_groups[v]: -+ n.set_run_after(m) -+ self.cstr_order = Utils.DefaultDict(set) -+ self.cstr_groups = Utils.DefaultDict(list) -+ self.done = 1 -+ return self.tasks[:] # make a copy -+ -+class store_task_type(type): -+ "store the task types that have a name ending in _task into a map (remember the existing task types)" -+ def __init__(cls, name, bases, dict): -+ super(store_task_type, cls).__init__(name, bases, dict) -+ name = cls.__name__ -+ -+ if name.endswith('_task'): -+ name = name.replace('_task', '') -+ if name != 'TaskBase': -+ TaskBase.classes[name] = cls -+ -+class TaskBase(object): -+ """Base class for all Waf tasks -+ -+ The most important methods are (by usual order of call): -+ 1 runnable_status: ask the task if it should be run, skipped, or if we have to ask later -+ 2 __str__: string to display to the user -+ 3 run: execute the task -+ 4 post_run: after the task is run, update the cache about the task -+ -+ This class should be seen as an interface, it provides the very minimum necessary for the scheduler -+ so it does not do much. -+ -+ For illustration purposes, TaskBase instances try to execute self.fun (if provided) -+ """ -+ -+ __metaclass__ = store_task_type -+ -+ color = "GREEN" -+ maxjobs = MAXJOBS -+ classes = {} -+ stat = None -+ -+ def __init__(self, *k, **kw): -+ self.hasrun = NOT_RUN -+ -+ try: -+ self.generator = kw['generator'] -+ except KeyError: -+ self.generator = self -+ self.bld = Build.bld -+ -+ if kw.get('normal', 1): -+ self.generator.bld.task_manager.add_task(self) -+ -+ def __repr__(self): -+ "used for debugging" -+ return '\n\t{task: %s %s}' % (self.__class__.__name__, str(getattr(self, "fun", ""))) -+ -+ def __str__(self): -+ "string to display to the user" -+ if hasattr(self, 'fun'): -+ return 'executing: %s\n' % self.fun.__name__ -+ return self.__class__.__name__ + '\n' -+ -+ def exec_command(self, *k, **kw): -+ "use this for executing commands from tasks" -+ # TODO in waf 1.6, eliminate bld.exec_command, and move the cwd processing to here -+ if self.env['env']: -+ kw['env'] = self.env['env'] -+ return self.generator.bld.exec_command(*k, **kw) -+ -+ def runnable_status(self): -+ "RUN_ME SKIP_ME or ASK_LATER" -+ return RUN_ME -+ -+ def can_retrieve_cache(self): -+ return False -+ -+ def call_run(self): -+ if self.can_retrieve_cache(): -+ return 0 -+ return self.run() -+ -+ def run(self): -+ "called if the task must run" -+ if hasattr(self, 'fun'): -+ return self.fun(self) -+ return 0 -+ -+ def post_run(self): -+ "update the dependency tree (node stats)" -+ pass -+ -+ def display(self): -+ "print either the description (using __str__) or the progress bar or the ide output" -+ col1 = Logs.colors(self.color) -+ col2 = Logs.colors.NORMAL -+ -+ if Options.options.progress_bar == 1: -+ return self.generator.bld.progress_line(self.position[0], self.position[1], col1, col2) -+ -+ if Options.options.progress_bar == 2: -+ ela = Utils.get_elapsed_time(self.generator.bld.ini) -+ try: -+ ins = ','.join([n.name for n in self.inputs]) -+ except AttributeError: -+ ins = '' -+ try: -+ outs = ','.join([n.name for n in self.outputs]) -+ except AttributeError: -+ outs = '' -+ return '|Total %s|Current %s|Inputs %s|Outputs %s|Time %s|\n' % (self.position[1], self.position[0], ins, outs, ela) -+ -+ total = self.position[1] -+ n = len(str(total)) -+ fs = '[%%%dd/%%%dd] %%s%%s%%s' % (n, n) -+ return fs % (self.position[0], self.position[1], col1, str(self), col2) -+ -+ def attr(self, att, default=None): -+ "retrieve an attribute from the instance or from the class (microoptimization here)" -+ ret = getattr(self, att, self) -+ if ret is self: return getattr(self.__class__, att, default) -+ return ret -+ -+ def hash_constraints(self): -+ "identify a task type for all the constraints relevant for the scheduler: precedence, file production" -+ a = self.attr -+ sum = hash((self.__class__.__name__, -+ str(a('before', '')), -+ str(a('after', '')), -+ str(a('ext_in', '')), -+ str(a('ext_out', '')), -+ self.__class__.maxjobs)) -+ return sum -+ -+ def format_error(self): -+ "error message to display to the user (when a build fails)" -+ if getattr(self, "err_msg", None): -+ return self.err_msg -+ elif self.hasrun == CRASHED: -+ try: -+ return " -> task failed (err #%d): %r" % (self.err_code, self) -+ except AttributeError: -+ return " -> task failed: %r" % self -+ elif self.hasrun == MISSING: -+ return " -> missing files: %r" % self -+ else: -+ return '' -+ -+ def install(self): -+ """ -+ installation is performed by looking at the task attributes: -+ * install_path: installation path like "${PREFIX}/bin" -+ * filename: install the first node in the outputs as a file with a particular name, be certain to give os.sep -+ * chmod: permissions -+ """ -+ bld = self.generator.bld -+ d = self.attr('install') -+ -+ if self.attr('install_path'): -+ lst = [a.relpath_gen(bld.srcnode) for a in self.outputs] -+ perm = self.attr('chmod', O644) -+ if self.attr('src'): -+ # if src is given, install the sources too -+ lst += [a.relpath_gen(bld.srcnode) for a in self.inputs] -+ if self.attr('filename'): -+ dir = self.install_path.rstrip(os.sep) + os.sep + self.attr('filename') -+ bld.install_as(dir, lst[0], self.env, perm) -+ else: -+ bld.install_files(self.install_path, lst, self.env, perm) -+ -+class Task(TaskBase): -+ """The parent class is quite limited, in this version: -+ * file system interaction: input and output nodes -+ * persistence: do not re-execute tasks that have already run -+ * caching: same files can be saved and retrieved from a cache directory -+ * dependencies: -+ implicit, like .c files depending on .h files -+ explicit, like the input nodes or the dep_nodes -+ environment variables, like the CXXFLAGS in self.env -+ """ -+ vars = [] -+ def __init__(self, env, **kw): -+ TaskBase.__init__(self, **kw) -+ self.env = env -+ -+ # inputs and outputs are nodes -+ # use setters when possible -+ self.inputs = [] -+ self.outputs = [] -+ -+ self.dep_nodes = [] -+ self.run_after = [] -+ -+ # Additionally, you may define the following -+ #self.dep_vars = 'PREFIX DATADIR' -+ -+ def __str__(self): -+ "string to display to the user" -+ env = self.env -+ src_str = ' '.join([a.nice_path(env) for a in self.inputs]) -+ tgt_str = ' '.join([a.nice_path(env) for a in self.outputs]) -+ if self.outputs: sep = ' -> ' -+ else: sep = '' -+ return '%s: %s%s%s\n' % (self.__class__.__name__.replace('_task', ''), src_str, sep, tgt_str) -+ -+ def __repr__(self): -+ return "".join(['\n\t{task: ', self.__class__.__name__, " ", ",".join([x.name for x in self.inputs]), " -> ", ",".join([x.name for x in self.outputs]), '}']) -+ -+ def unique_id(self): -+ "get a unique id: hash the node paths, the variant, the class, the function" -+ try: -+ return self.uid -+ except AttributeError: -+ "this is not a real hot zone, but we want to avoid surprizes here" -+ m = md5() -+ up = m.update -+ up(self.__class__.__name__) -+ up(self.env.variant()) -+ p = None -+ for x in self.inputs + self.outputs: -+ if p != x.parent.id: -+ p = x.parent.id -+ up(x.parent.abspath()) -+ up(x.name) -+ self.uid = m.digest() -+ return self.uid -+ -+ def set_inputs(self, inp): -+ if isinstance(inp, list): self.inputs += inp -+ else: self.inputs.append(inp) -+ -+ def set_outputs(self, out): -+ if isinstance(out, list): self.outputs += out -+ else: self.outputs.append(out) -+ -+ def set_run_after(self, task): -+ "set (scheduler) order on another task" -+ # TODO: handle list or object -+ assert isinstance(task, TaskBase) -+ self.run_after.append(task) -+ -+ def add_file_dependency(self, filename): -+ "TODO user-provided file dependencies" -+ node = self.generator.bld.path.find_resource(filename) -+ self.dep_nodes.append(node) -+ -+ def signature(self): -+ # compute the result one time, and suppose the scan_signature will give the good result -+ try: return self.cache_sig[0] -+ except AttributeError: pass -+ -+ self.m = md5() -+ -+ # explicit deps -+ exp_sig = self.sig_explicit_deps() -+ -+ # env vars -+ var_sig = self.sig_vars() -+ -+ # implicit deps -+ -+ imp_sig = SIG_NIL -+ if self.scan: -+ try: -+ imp_sig = self.sig_implicit_deps() -+ except ValueError: -+ return self.signature() -+ -+ # we now have the signature (first element) and the details (for debugging) -+ ret = self.m.digest() -+ self.cache_sig = (ret, exp_sig, imp_sig, var_sig) -+ return ret -+ -+ def runnable_status(self): -+ "SKIP_ME RUN_ME or ASK_LATER" -+ #return 0 # benchmarking -+ -+ if self.inputs and (not self.outputs): -+ if not getattr(self.__class__, 'quiet', None): -+ warn("invalid task (no inputs OR outputs): override in a Task subclass or set the attribute 'quiet' %r" % self) -+ -+ for t in self.run_after: -+ if not t.hasrun: -+ return ASK_LATER -+ -+ env = self.env -+ bld = self.generator.bld -+ -+ # first compute the signature -+ new_sig = self.signature() -+ -+ # compare the signature to a signature computed previously -+ key = self.unique_id() -+ try: -+ prev_sig = bld.task_sigs[key][0] -+ except KeyError: -+ debug("task: task %r must run as it was never run before or the task code changed", self) -+ return RUN_ME -+ -+ # compare the signatures of the outputs -+ for node in self.outputs: -+ variant = node.variant(env) -+ try: -+ if bld.node_sigs[variant][node.id] != new_sig: -+ return RUN_ME -+ except KeyError: -+ debug("task: task %r must run as the output nodes do not exist", self) -+ return RUN_ME -+ -+ # debug if asked to -+ if Logs.verbose: self.debug_why(bld.task_sigs[key]) -+ -+ if new_sig != prev_sig: -+ return RUN_ME -+ return SKIP_ME -+ -+ def post_run(self): -+ "called after a successful task run" -+ bld = self.generator.bld -+ env = self.env -+ sig = self.signature() -+ ssig = sig.encode('hex') -+ -+ variant = env.variant() -+ for node in self.outputs: -+ # check if the node exists .. -+ try: -+ os.stat(node.abspath(env)) -+ except OSError: -+ self.hasrun = MISSING -+ self.err_msg = '-> missing file: %r' % node.abspath(env) -+ raise Utils.WafError -+ -+ # important, store the signature for the next run -+ bld.node_sigs[variant][node.id] = sig -+ bld.task_sigs[self.unique_id()] = self.cache_sig -+ -+ # file caching, if possible -+ # try to avoid data corruption as much as possible -+ if not Options.cache_global or Options.options.nocache or not self.outputs: -+ return None -+ -+ if getattr(self, 'cached', None): -+ return None -+ -+ dname = os.path.join(Options.cache_global, ssig) -+ tmpdir = tempfile.mkdtemp(prefix=Options.cache_global + os.sep + 'waf') -+ -+ try: -+ shutil.rmtree(dname) -+ except: -+ pass -+ -+ try: -+ i = 0 -+ for node in self.outputs: -+ variant = node.variant(env) -+ dest = os.path.join(tmpdir, str(i) + node.name) -+ shutil.copy2(node.abspath(env), dest) -+ i += 1 -+ except (OSError, IOError): -+ try: -+ shutil.rmtree(tmpdir) -+ except: -+ pass -+ else: -+ try: -+ os.rename(tmpdir, dname) -+ except OSError: -+ try: -+ shutil.rmtree(tmpdir) -+ except: -+ pass -+ else: -+ try: -+ os.chmod(dname, O755) -+ except: -+ pass -+ -+ def can_retrieve_cache(self): -+ """ -+ Retrieve build nodes from the cache -+ update the file timestamps to help cleaning the least used entries from the cache -+ additionally, set an attribute 'cached' to avoid re-creating the same cache files -+ -+ suppose there are files in cache/dir1/file1 and cache/dir2/file2 -+ first, read the timestamp of dir1 -+ then try to copy the files -+ then look at the timestamp again, if it has changed, the data may have been corrupt (cache update by another process) -+ should an exception occur, ignore the data -+ """ -+ if not Options.cache_global or Options.options.nocache or not self.outputs: -+ return None -+ -+ env = self.env -+ sig = self.signature() -+ ssig = sig.encode('hex') -+ -+ # first try to access the cache folder for the task -+ dname = os.path.join(Options.cache_global, ssig) -+ try: -+ t1 = os.stat(dname).st_mtime -+ except OSError: -+ return None -+ -+ i = 0 -+ for node in self.outputs: -+ variant = node.variant(env) -+ -+ orig = os.path.join(dname, str(i) + node.name) -+ try: -+ shutil.copy2(orig, node.abspath(env)) -+ # mark the cache file as used recently (modified) -+ os.utime(orig, None) -+ except (OSError, IOError): -+ debug('task: failed retrieving file') -+ return None -+ i += 1 -+ -+ # is it the same folder? -+ try: -+ t2 = os.stat(dname).st_mtime -+ except OSError: -+ return None -+ -+ if t1 != t2: -+ return None -+ -+ for node in self.outputs: -+ self.generator.bld.node_sigs[variant][node.id] = sig -+ if Options.options.progress_bar < 1: -+ self.generator.bld.printout('restoring from cache %r\n' % node.bldpath(env)) -+ -+ self.cached = True -+ return 1 -+ -+ def debug_why(self, old_sigs): -+ "explains why a task is run" -+ -+ new_sigs = self.cache_sig -+ def v(x): -+ return x.encode('hex') -+ -+ debug("Task %r", self) -+ msgs = ['Task must run', '* Source file or manual dependency', '* Implicit dependency', '* Environment variable'] -+ tmp = 'task: -> %s: %s %s' -+ for x in xrange(len(msgs)): -+ if (new_sigs[x] != old_sigs[x]): -+ debug(tmp, msgs[x], v(old_sigs[x]), v(new_sigs[x])) -+ -+ def sig_explicit_deps(self): -+ bld = self.generator.bld -+ up = self.m.update -+ -+ # the inputs -+ for x in self.inputs + getattr(self, 'dep_nodes', []): -+ if not x.parent.id in bld.cache_scanned_folders: -+ bld.rescan(x.parent) -+ -+ variant = x.variant(self.env) -+ try: -+ up(bld.node_sigs[variant][x.id]) -+ except KeyError: -+ raise Utils.WafError('Missing node signature for %r (required by %r)' % (x, self)) -+ -+ # manual dependencies, they can slow down the builds -+ if bld.deps_man: -+ additional_deps = bld.deps_man -+ for x in self.inputs + self.outputs: -+ try: -+ d = additional_deps[x.id] -+ except KeyError: -+ continue -+ -+ for v in d: -+ if isinstance(v, Node.Node): -+ bld.rescan(v.parent) -+ variant = v.variant(self.env) -+ try: -+ v = bld.node_sigs[variant][v.id] -+ except KeyError: -+ raise Utils.WafError('Missing node signature for %r (required by %r)' % (v, self)) -+ elif hasattr(v, '__call__'): -+ v = v() # dependency is a function, call it -+ up(v) -+ -+ for x in self.dep_nodes: -+ v = bld.node_sigs[x.variant(self.env)][x.id] -+ up(v) -+ -+ return self.m.digest() -+ -+ def sig_vars(self): -+ bld = self.generator.bld -+ env = self.env -+ -+ # dependencies on the environment vars -+ act_sig = bld.hash_env_vars(env, self.__class__.vars) -+ self.m.update(act_sig) -+ -+ # additional variable dependencies, if provided -+ dep_vars = getattr(self, 'dep_vars', None) -+ if dep_vars: -+ self.m.update(bld.hash_env_vars(env, dep_vars)) -+ -+ return self.m.digest() -+ -+ #def scan(self, node): -+ # """this method returns a tuple containing: -+ # * a list of nodes corresponding to real files -+ # * a list of names for files not found in path_lst -+ # the input parameters may have more parameters that the ones used below -+ # """ -+ # return ((), ()) -+ scan = None -+ -+ # compute the signature, recompute it if there is no match in the cache -+ def sig_implicit_deps(self): -+ "the signature obtained may not be the one if the files have changed, we do it in two steps" -+ -+ bld = self.generator.bld -+ -+ # get the task signatures from previous runs -+ key = self.unique_id() -+ prev_sigs = bld.task_sigs.get(key, ()) -+ if prev_sigs: -+ try: -+ # for issue #379 -+ if prev_sigs[2] == self.compute_sig_implicit_deps(): -+ return prev_sigs[2] -+ except (KeyError, OSError): -+ pass -+ del bld.task_sigs[key] -+ raise ValueError('rescan') -+ -+ # no previous run or the signature of the dependencies has changed, rescan the dependencies -+ (nodes, names) = self.scan() -+ if Logs.verbose: -+ debug('deps: scanner for %s returned %s %s', str(self), str(nodes), str(names)) -+ -+ # store the dependencies in the cache -+ bld.node_deps[key] = nodes -+ bld.raw_deps[key] = names -+ -+ # recompute the signature and return it -+ try: -+ sig = self.compute_sig_implicit_deps() -+ except KeyError: -+ try: -+ nodes = [] -+ for k in bld.node_deps.get(self.unique_id(), []): -+ if k.id & 3 == 2: # Node.FILE: -+ if not k.id in bld.node_sigs[0]: -+ nodes.append(k) -+ else: -+ if not k.id in bld.node_sigs[self.env.variant()]: -+ nodes.append(k) -+ except: -+ nodes = '?' -+ raise Utils.WafError('Missing node signature for %r (for implicit dependencies %r)' % (nodes, self)) -+ -+ return sig -+ -+ def compute_sig_implicit_deps(self): -+ """it is intended for .cpp and inferred .h files -+ there is a single list (no tree traversal) -+ this is the hot spot so ... do not touch""" -+ upd = self.m.update -+ -+ bld = self.generator.bld -+ tstamp = bld.node_sigs -+ env = self.env -+ -+ for k in bld.node_deps.get(self.unique_id(), []): -+ # unlikely but necessary if it happens -+ if not k.parent.id in bld.cache_scanned_folders: -+ # if the parent folder is removed, an OSError may be thrown -+ bld.rescan(k.parent) -+ -+ # if the parent folder is removed, a KeyError will be thrown -+ if k.id & 3 == 2: # Node.FILE: -+ upd(tstamp[0][k.id]) -+ else: -+ upd(tstamp[env.variant()][k.id]) -+ -+ return self.m.digest() -+ -+def funex(c): -+ dc = {} -+ exec(c, dc) -+ return dc['f'] -+ -+reg_act = re.compile(r"(?P\\)|(?P\$\$)|(?P\$\{(?P\w+)(?P.*?)\})", re.M) -+def compile_fun_shell(name, line): -+ """Compiles a string (once) into a function, eg: -+ simple_task_type('c++', '${CXX} -o ${TGT[0]} ${SRC} -I ${SRC[0].parent.bldpath()}') -+ -+ The env variables (CXX, ..) on the task must not hold dicts (order) -+ The reserved keywords TGT and SRC represent the task input and output nodes -+ -+ quick test: -+ bld(source='wscript', rule='echo "foo\\${SRC[0].name}\\bar"') -+ """ -+ -+ extr = [] -+ def repl(match): -+ g = match.group -+ if g('dollar'): return "$" -+ elif g('backslash'): return '\\\\' -+ elif g('subst'): extr.append((g('var'), g('code'))); return "%s" -+ return None -+ -+ line = reg_act.sub(repl, line) or line -+ -+ parm = [] -+ dvars = [] -+ app = parm.append -+ for (var, meth) in extr: -+ if var == 'SRC': -+ if meth: app('task.inputs%s' % meth) -+ else: app('" ".join([a.srcpath(env) for a in task.inputs])') -+ elif var == 'TGT': -+ if meth: app('task.outputs%s' % meth) -+ else: app('" ".join([a.bldpath(env) for a in task.outputs])') -+ else: -+ if not var in dvars: dvars.append(var) -+ app("p('%s')" % var) -+ if parm: parm = "%% (%s) " % (',\n\t\t'.join(parm)) -+ else: parm = '' -+ -+ c = COMPILE_TEMPLATE_SHELL % (line, parm) -+ -+ debug('action: %s', c) -+ return (funex(c), dvars) -+ -+def compile_fun_noshell(name, line): -+ -+ extr = [] -+ def repl(match): -+ g = match.group -+ if g('dollar'): return "$" -+ elif g('subst'): extr.append((g('var'), g('code'))); return "<<|@|>>" -+ return None -+ -+ line2 = reg_act.sub(repl, line) -+ params = line2.split('<<|@|>>') -+ -+ buf = [] -+ dvars = [] -+ app = buf.append -+ for x in xrange(len(extr)): -+ params[x] = params[x].strip() -+ if params[x]: -+ app("lst.extend(%r)" % params[x].split()) -+ (var, meth) = extr[x] -+ if var == 'SRC': -+ if meth: app('lst.append(task.inputs%s)' % meth) -+ else: app("lst.extend([a.srcpath(env) for a in task.inputs])") -+ elif var == 'TGT': -+ if meth: app('lst.append(task.outputs%s)' % meth) -+ else: app("lst.extend([a.bldpath(env) for a in task.outputs])") -+ else: -+ app('lst.extend(to_list(env[%r]))' % var) -+ if not var in dvars: dvars.append(var) -+ -+ if params[-1]: -+ app("lst.extend(%r)" % shlex.split(params[-1])) -+ -+ fun = COMPILE_TEMPLATE_NOSHELL % "\n\t".join(buf) -+ debug('action: %s', fun) -+ return (funex(fun), dvars) -+ -+def compile_fun(name, line, shell=None): -+ "commands can be launched by the shell or not" -+ if line.find('<') > 0 or line.find('>') > 0 or line.find('&&') > 0: -+ shell = True -+ #else: -+ # shell = False -+ -+ if shell is None: -+ if sys.platform == 'win32': -+ shell = False -+ else: -+ shell = True -+ -+ if shell: -+ return compile_fun_shell(name, line) -+ else: -+ return compile_fun_noshell(name, line) -+ -+def simple_task_type(name, line, color='GREEN', vars=[], ext_in=[], ext_out=[], before=[], after=[], shell=None): -+ """return a new Task subclass with the function run compiled from the line given""" -+ (fun, dvars) = compile_fun(name, line, shell) -+ fun.code = line -+ return task_type_from_func(name, fun, vars or dvars, color, ext_in, ext_out, before, after) -+ -+def task_type_from_func(name, func, vars=[], color='GREEN', ext_in=[], ext_out=[], before=[], after=[]): -+ """return a new Task subclass with the function run compiled from the line given""" -+ params = { -+ 'run': func, -+ 'vars': vars, -+ 'color': color, -+ 'name': name, -+ 'ext_in': Utils.to_list(ext_in), -+ 'ext_out': Utils.to_list(ext_out), -+ 'before': Utils.to_list(before), -+ 'after': Utils.to_list(after), -+ } -+ -+ cls = type(Task)(name, (Task,), params) -+ TaskBase.classes[name] = cls -+ return cls -+ -+def always_run(cls): -+ """Set all task instances of this class to be executed whenever a build is started -+ The task signature is calculated, but the result of the comparation between -+ task signatures is bypassed -+ """ -+ old = cls.runnable_status -+ def always(self): -+ ret = old(self) -+ if ret == SKIP_ME: -+ return RUN_ME -+ return ret -+ cls.runnable_status = always -+ -+def update_outputs(cls): -+ """When a command is always run, it is possible that the output only change -+ sometimes. By default the build node have as a hash the signature of the task -+ which may not change. With this, the output nodes (produced) are hashed, -+ and the hashes are set to the build nodes -+ -+ This may avoid unnecessary recompilations, but it uses more resources -+ (hashing the output files) so it is not used by default -+ """ -+ old_post_run = cls.post_run -+ def post_run(self): -+ old_post_run(self) -+ bld = self.generator.bld -+ for output in self.outputs: -+ bld.node_sigs[self.env.variant()][output.id] = Utils.h_file(output.abspath(self.env)) -+ bld.task_sigs[output.id] = self.unique_id() -+ cls.post_run = post_run -+ -+ old_runnable_status = cls.runnable_status -+ def runnable_status(self): -+ status = old_runnable_status(self) -+ if status != RUN_ME: -+ return status -+ -+ uid = self.unique_id() -+ try: -+ bld = self.outputs[0].__class__.bld -+ new_sig = self.signature() -+ prev_sig = bld.task_sigs[uid][0] -+ if prev_sig == new_sig: -+ for x in self.outputs: -+ if not x.id in bld.node_sigs[self.env.variant()]: -+ return RUN_ME -+ if bld.task_sigs[x.id] != uid: # ensure the outputs are associated with *this* task -+ return RUN_ME -+ return SKIP_ME -+ except KeyError: -+ pass -+ except IndexError: -+ pass -+ return RUN_ME -+ cls.runnable_status = runnable_status -+ -+def extract_outputs(tasks): -+ """file_deps: Infer additional dependencies from task input and output nodes -+ """ -+ v = {} -+ for x in tasks: -+ try: -+ (ins, outs) = v[x.env.variant()] -+ except KeyError: -+ ins = {} -+ outs = {} -+ v[x.env.variant()] = (ins, outs) -+ -+ for a in getattr(x, 'inputs', []): -+ try: ins[a.id].append(x) -+ except KeyError: ins[a.id] = [x] -+ for a in getattr(x, 'outputs', []): -+ try: outs[a.id].append(x) -+ except KeyError: outs[a.id] = [x] -+ -+ for (ins, outs) in v.values(): -+ links = set(ins.iterkeys()).intersection(outs.iterkeys()) -+ for k in links: -+ for a in ins[k]: -+ for b in outs[k]: -+ a.set_run_after(b) -+ -+def extract_deps(tasks): -+ """file_deps: Infer additional dependencies from task input and output nodes and from implicit dependencies -+ returned by the scanners - that will only work if all tasks are created -+ -+ this is aimed at people who have pathological builds and who do not care enough -+ to implement the build dependencies properly -+ -+ with two loops over the list of tasks, do not expect this to be really fast -+ """ -+ -+ # first reuse the function above -+ extract_outputs(tasks) -+ -+ # map the output nodes to the tasks producing them -+ out_to_task = {} -+ for x in tasks: -+ v = x.env.variant() -+ try: -+ lst = x.outputs -+ except AttributeError: -+ pass -+ else: -+ for node in lst: -+ out_to_task[(v, node.id)] = x -+ -+ # map the dependencies found to the tasks compiled -+ dep_to_task = {} -+ for x in tasks: -+ try: -+ x.signature() -+ except: # this is on purpose -+ pass -+ -+ v = x.env.variant() -+ key = x.unique_id() -+ for k in x.generator.bld.node_deps.get(x.unique_id(), []): -+ try: dep_to_task[(v, k.id)].append(x) -+ except KeyError: dep_to_task[(v, k.id)] = [x] -+ -+ # now get the intersection -+ deps = set(dep_to_task.keys()).intersection(set(out_to_task.keys())) -+ -+ # and add the dependencies from task to task -+ for idx in deps: -+ for k in dep_to_task[idx]: -+ k.set_run_after(out_to_task[idx]) -+ -+ # cleanup, remove the signatures -+ for x in tasks: -+ try: -+ delattr(x, 'cache_sig') -+ except AttributeError: -+ pass -+ -diff --git a/buildtools/wafadmin/TaskGen.py b/buildtools/wafadmin/TaskGen.py -new file mode 100644 -index 0000000..ae1834a ---- /dev/null -+++ b/buildtools/wafadmin/TaskGen.py -@@ -0,0 +1,612 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005-2008 (ita) -+ -+""" -+The class task_gen encapsulates the creation of task objects (low-level code) -+The instances can have various parameters, but the creation of task nodes (Task.py) -+is delayed. To achieve this, various methods are called from the method "apply" -+ -+The class task_gen contains lots of methods, and a configuration table: -+* the methods to call (self.meths) can be specified dynamically (removing, adding, ..) -+* the order of the methods (self.prec or by default task_gen.prec) is configurable -+* new methods can be inserted dynamically without pasting old code -+ -+Additionally, task_gen provides the method apply_core -+* file extensions are mapped to methods: def meth(self, name_or_node) -+* if a mapping is not found in self.mappings, it is searched in task_gen.mappings -+* when called, the functions may modify self.allnodes to re-add source to process -+* the mappings can map an extension or a filename (see the code below) -+ -+WARNING: subclasses must reimplement the clone method -+""" -+ -+import os, traceback, copy -+import Build, Task, Utils, Logs, Options -+from Logs import debug, error, warn -+from Constants import * -+ -+typos = { -+'sources':'source', -+'targets':'target', -+'include':'includes', -+'define':'defines', -+'importpath':'importpaths', -+'install_var':'install_path', -+'install_subdir':'install_path', -+'inst_var':'install_path', -+'inst_dir':'install_path', -+'feature':'features', -+} -+ -+class register_obj(type): -+ """no decorators for classes, so we use a metaclass -+ we store into task_gen.classes the classes that inherit task_gen -+ and whose names end in '_taskgen' -+ """ -+ def __init__(cls, name, bases, dict): -+ super(register_obj, cls).__init__(name, bases, dict) -+ name = cls.__name__ -+ suffix = '_taskgen' -+ if name.endswith(suffix): -+ task_gen.classes[name.replace(suffix, '')] = cls -+ -+class task_gen(object): -+ """ -+ Most methods are of the form 'def meth(self):' without any parameters -+ there are many of them, and they do many different things: -+ * task creation -+ * task results installation -+ * environment modification -+ * attribute addition/removal -+ -+ The inheritance approach is complicated -+ * mixing several languages at once -+ * subclassing is needed even for small changes -+ * inserting new methods is complicated -+ -+ This new class uses a configuration table: -+ * adding new methods easily -+ * obtaining the order in which to call the methods -+ * postponing the method calls (post() -> apply) -+ -+ Additionally, a 'traits' static attribute is provided: -+ * this list contains methods -+ * the methods can remove or add methods from self.meths -+ Example1: the attribute 'staticlib' is set on an instance -+ a method set in the list of traits is executed when the -+ instance is posted, it finds that flag and adds another method for execution -+ Example2: a method set in the list of traits finds the msvc -+ compiler (from self.env['MSVC']==1); more methods are added to self.meths -+ """ -+ -+ __metaclass__ = register_obj -+ mappings = {} -+ mapped = {} -+ prec = Utils.DefaultDict(list) -+ traits = Utils.DefaultDict(set) -+ classes = {} -+ -+ def __init__(self, *kw, **kwargs): -+ self.prec = Utils.DefaultDict(list) -+ "map precedence of function names to call" -+ # so we will have to play with directed acyclic graphs -+ # detect cycles, etc -+ -+ self.source = '' -+ self.target = '' -+ -+ # list of methods to execute - does not touch it by hand unless you know -+ self.meths = [] -+ -+ # list of mappings extension -> function -+ self.mappings = {} -+ -+ # list of features (see the documentation on traits) -+ self.features = list(kw) -+ -+ # not always a good idea -+ self.tasks = [] -+ -+ self.default_chmod = O644 -+ self.default_install_path = None -+ -+ # kind of private, beware of what you put in it, also, the contents are consumed -+ self.allnodes = [] -+ -+ self.bld = kwargs.get('bld', Build.bld) -+ self.env = self.bld.env.copy() -+ -+ self.path = self.bld.path # emulate chdir when reading scripts -+ self.name = '' # give a name to the target (static+shlib with the same targetname ambiguity) -+ -+ # provide a unique id -+ self.idx = self.bld.idx[self.path.id] = self.bld.idx.get(self.path.id, 0) + 1 -+ -+ for key, val in kwargs.iteritems(): -+ setattr(self, key, val) -+ -+ self.bld.task_manager.add_task_gen(self) -+ self.bld.all_task_gen.append(self) -+ -+ def __str__(self): -+ return ("" -+ % (self.name or self.target, self.__class__.__name__, str(self.path))) -+ -+ def __setattr__(self, name, attr): -+ real = typos.get(name, name) -+ if real != name: -+ warn('typo %s -> %s' % (name, real)) -+ if Logs.verbose > 0: -+ traceback.print_stack() -+ object.__setattr__(self, real, attr) -+ -+ def to_list(self, value): -+ "helper: returns a list" -+ if isinstance(value, str): return value.split() -+ else: return value -+ -+ def apply(self): -+ "order the methods to execute using self.prec or task_gen.prec" -+ keys = set(self.meths) -+ -+ # add the methods listed in the features -+ self.features = Utils.to_list(self.features) -+ for x in self.features + ['*']: -+ st = task_gen.traits[x] -+ if not st: -+ warn('feature %r does not exist - bind at least one method to it' % x) -+ keys.update(st) -+ -+ # copy the precedence table -+ prec = {} -+ prec_tbl = self.prec or task_gen.prec -+ for x in prec_tbl: -+ if x in keys: -+ prec[x] = prec_tbl[x] -+ -+ # elements disconnected -+ tmp = [] -+ for a in keys: -+ for x in prec.values(): -+ if a in x: break -+ else: -+ tmp.append(a) -+ -+ # topological sort -+ out = [] -+ while tmp: -+ e = tmp.pop() -+ if e in keys: out.append(e) -+ try: -+ nlst = prec[e] -+ except KeyError: -+ pass -+ else: -+ del prec[e] -+ for x in nlst: -+ for y in prec: -+ if x in prec[y]: -+ break -+ else: -+ tmp.append(x) -+ -+ if prec: raise Utils.WafError("graph has a cycle %s" % str(prec)) -+ out.reverse() -+ self.meths = out -+ -+ # then we run the methods in order -+ debug('task_gen: posting %s %d', self, id(self)) -+ for x in out: -+ try: -+ v = getattr(self, x) -+ except AttributeError: -+ raise Utils.WafError("tried to retrieve %s which is not a valid method" % x) -+ debug('task_gen: -> %s (%d)', x, id(self)) -+ v() -+ -+ def post(self): -+ "runs the code to create the tasks, do not subclass" -+ if not self.name: -+ if isinstance(self.target, list): -+ self.name = ' '.join(self.target) -+ else: -+ self.name = self.target -+ -+ if getattr(self, 'posted', None): -+ #error("OBJECT ALREADY POSTED" + str( self)) -+ return -+ -+ self.apply() -+ self.posted = True -+ debug('task_gen: posted %s', self.name) -+ -+ def get_hook(self, ext): -+ try: return self.mappings[ext] -+ except KeyError: -+ try: return task_gen.mappings[ext] -+ except KeyError: return None -+ -+ # TODO waf 1.6: always set the environment -+ # TODO waf 1.6: create_task(self, name, inputs, outputs) -+ def create_task(self, name, src=None, tgt=None, env=None): -+ env = env or self.env -+ task = Task.TaskBase.classes[name](env.copy(), generator=self) -+ if src: -+ task.set_inputs(src) -+ if tgt: -+ task.set_outputs(tgt) -+ self.tasks.append(task) -+ return task -+ -+ def name_to_obj(self, name): -+ return self.bld.name_to_obj(name, self.env) -+ -+ def find_sources_in_dirs(self, dirnames, excludes=[], exts=[]): -+ """ -+ The attributes "excludes" and "exts" must be lists to avoid the confusion -+ find_sources_in_dirs('a', 'b', 'c') <-> find_sources_in_dirs('a b c') -+ -+ do not use absolute paths -+ do not use paths outside of the source tree -+ the files or folder beginning by . are not returned -+ -+ # TODO: remove in Waf 1.6 -+ """ -+ -+ err_msg = "'%s' attribute must be a list" -+ if not isinstance(excludes, list): -+ raise Utils.WscriptError(err_msg % 'excludes') -+ if not isinstance(exts, list): -+ raise Utils.WscriptError(err_msg % 'exts') -+ -+ lst = [] -+ -+ #make sure dirnames is a list helps with dirnames with spaces -+ dirnames = self.to_list(dirnames) -+ -+ ext_lst = exts or list(self.mappings.keys()) + list(task_gen.mappings.keys()) -+ -+ for name in dirnames: -+ anode = self.path.find_dir(name) -+ -+ if not anode or not anode.is_child_of(self.bld.srcnode): -+ raise Utils.WscriptError("Unable to use '%s' - either because it's not a relative path" \ -+ ", or it's not child of '%s'." % (name, self.bld.srcnode)) -+ -+ self.bld.rescan(anode) -+ for name in self.bld.cache_dir_contents[anode.id]: -+ -+ # ignore hidden files -+ if name.startswith('.'): -+ continue -+ -+ (base, ext) = os.path.splitext(name) -+ if ext in ext_lst and not name in lst and not name in excludes: -+ lst.append((anode.relpath_gen(self.path) or '.') + os.path.sep + name) -+ -+ lst.sort() -+ self.source = self.to_list(self.source) -+ if not self.source: self.source = lst -+ else: self.source += lst -+ -+ def clone(self, env): -+ """when creating a clone in a task generator method, -+ make sure to set posted=False on the clone -+ else the other task generator will not create its tasks""" -+ newobj = task_gen(bld=self.bld) -+ for x in self.__dict__: -+ if x in ['env', 'bld']: -+ continue -+ elif x in ["path", "features"]: -+ setattr(newobj, x, getattr(self, x)) -+ else: -+ setattr(newobj, x, copy.copy(getattr(self, x))) -+ -+ newobj.__class__ = self.__class__ -+ if isinstance(env, str): -+ newobj.env = self.bld.all_envs[env].copy() -+ else: -+ newobj.env = env.copy() -+ -+ return newobj -+ -+ def get_inst_path(self): -+ return getattr(self, '_install_path', getattr(self, 'default_install_path', '')) -+ -+ def set_inst_path(self, val): -+ self._install_path = val -+ -+ install_path = property(get_inst_path, set_inst_path) -+ -+ -+ def get_chmod(self): -+ return getattr(self, '_chmod', getattr(self, 'default_chmod', O644)) -+ -+ def set_chmod(self, val): -+ self._chmod = val -+ -+ chmod = property(get_chmod, set_chmod) -+ -+def declare_extension(var, func): -+ try: -+ for x in Utils.to_list(var): -+ task_gen.mappings[x] = func -+ except: -+ raise Utils.WscriptError('declare_extension takes either a list or a string %r' % var) -+ task_gen.mapped[func.__name__] = func -+ -+def declare_order(*k): -+ assert(len(k) > 1) -+ n = len(k) - 1 -+ for i in xrange(n): -+ f1 = k[i] -+ f2 = k[i+1] -+ if not f1 in task_gen.prec[f2]: -+ task_gen.prec[f2].append(f1) -+ -+def declare_chain(name='', action='', ext_in='', ext_out='', reentrant=True, color='BLUE', -+ install=0, before=[], after=[], decider=None, rule=None, scan=None): -+ """ -+ see Tools/flex.py for an example -+ while i do not like such wrappers, some people really do -+ """ -+ -+ action = action or rule -+ if isinstance(action, str): -+ act = Task.simple_task_type(name, action, color=color) -+ else: -+ act = Task.task_type_from_func(name, action, color=color) -+ act.ext_in = tuple(Utils.to_list(ext_in)) -+ act.ext_out = tuple(Utils.to_list(ext_out)) -+ act.before = Utils.to_list(before) -+ act.after = Utils.to_list(after) -+ act.scan = scan -+ -+ def x_file(self, node): -+ if decider: -+ ext = decider(self, node) -+ else: -+ ext = ext_out -+ -+ if isinstance(ext, str): -+ out_source = node.change_ext(ext) -+ if reentrant: -+ self.allnodes.append(out_source) -+ elif isinstance(ext, list): -+ out_source = [node.change_ext(x) for x in ext] -+ if reentrant: -+ for i in xrange((reentrant is True) and len(out_source) or reentrant): -+ self.allnodes.append(out_source[i]) -+ else: -+ # XXX: useless: it will fail on Utils.to_list above... -+ raise Utils.WafError("do not know how to process %s" % str(ext)) -+ -+ tsk = self.create_task(name, node, out_source) -+ -+ if node.__class__.bld.is_install: -+ tsk.install = install -+ -+ declare_extension(act.ext_in, x_file) -+ return x_file -+ -+def bind_feature(name, methods): -+ lst = Utils.to_list(methods) -+ task_gen.traits[name].update(lst) -+ -+""" -+All the following decorators are registration decorators, i.e add an attribute to current class -+ (task_gen and its derivatives), with same name as func, which points to func itself. -+For example: -+ @taskgen -+ def sayHi(self): -+ print("hi") -+Now taskgen.sayHi() may be called -+ -+If python were really smart, it could infer itself the order of methods by looking at the -+attributes. A prerequisite for execution is to have the attribute set before. -+Intelligent compilers binding aspect-oriented programming and parallelization, what a nice topic for studies. -+""" -+def taskgen(func): -+ """ -+ register a method as a task generator method -+ """ -+ setattr(task_gen, func.__name__, func) -+ return func -+ -+def feature(*k): -+ """ -+ declare a task generator method that will be executed when the -+ object attribute 'feature' contains the corresponding key(s) -+ """ -+ def deco(func): -+ setattr(task_gen, func.__name__, func) -+ for name in k: -+ task_gen.traits[name].update([func.__name__]) -+ return func -+ return deco -+ -+def before(*k): -+ """ -+ declare a task generator method which will be executed -+ before the functions of given name(s) -+ """ -+ def deco(func): -+ setattr(task_gen, func.__name__, func) -+ for fun_name in k: -+ if not func.__name__ in task_gen.prec[fun_name]: -+ task_gen.prec[fun_name].append(func.__name__) -+ return func -+ return deco -+ -+def after(*k): -+ """ -+ declare a task generator method which will be executed -+ after the functions of given name(s) -+ """ -+ def deco(func): -+ setattr(task_gen, func.__name__, func) -+ for fun_name in k: -+ if not fun_name in task_gen.prec[func.__name__]: -+ task_gen.prec[func.__name__].append(fun_name) -+ return func -+ return deco -+ -+def extension(var): -+ """ -+ declare a task generator method which will be invoked during -+ the processing of source files for the extension given -+ """ -+ def deco(func): -+ setattr(task_gen, func.__name__, func) -+ try: -+ for x in Utils.to_list(var): -+ task_gen.mappings[x] = func -+ except: -+ raise Utils.WafError('extension takes either a list or a string %r' % var) -+ task_gen.mapped[func.__name__] = func -+ return func -+ return deco -+ -+# TODO make certain the decorators may be used here -+ -+def apply_core(self): -+ """Process the attribute source -+ transform the names into file nodes -+ try to process the files by name first, later by extension""" -+ # get the list of folders to use by the scanners -+ # all our objects share the same include paths anyway -+ find_resource = self.path.find_resource -+ -+ for filename in self.to_list(self.source): -+ # if self.mappings or task_gen.mappings contains a file of the same name -+ x = self.get_hook(filename) -+ if x: -+ x(self, filename) -+ else: -+ node = find_resource(filename) -+ if not node: raise Utils.WafError("source not found: '%s' in '%s'" % (filename, str(self.path))) -+ self.allnodes.append(node) -+ -+ for node in self.allnodes: -+ # self.mappings or task_gen.mappings map the file extension to a function -+ x = self.get_hook(node.suffix()) -+ -+ if not x: -+ raise Utils.WafError("Cannot guess how to process %s (got mappings %r in %r) -> try conf.check_tool(..)?" % \ -+ (str(node), self.__class__.mappings.keys(), self.__class__)) -+ x(self, node) -+feature('*')(apply_core) -+ -+def exec_rule(self): -+ """Process the attribute rule, when provided the method apply_core will be disabled -+ """ -+ if not getattr(self, 'rule', None): -+ return -+ -+ # someone may have removed it already -+ try: -+ self.meths.remove('apply_core') -+ except ValueError: -+ pass -+ -+ # get the function and the variables -+ func = self.rule -+ -+ vars2 = [] -+ if isinstance(func, str): -+ # use the shell by default for user-defined commands -+ (func, vars2) = Task.compile_fun('', self.rule, shell=getattr(self, 'shell', True)) -+ func.code = self.rule -+ -+ # create the task class -+ name = getattr(self, 'name', None) or self.target or self.rule -+ if not isinstance(name, str): -+ name = str(self.idx) -+ cls = Task.task_type_from_func(name, func, getattr(self, 'vars', vars2)) -+ cls.color = getattr(self, 'color', 'BLUE') -+ -+ # now create one instance -+ tsk = self.create_task(name) -+ -+ dep_vars = getattr(self, 'dep_vars', ['ruledeps']) -+ if dep_vars: -+ tsk.dep_vars = dep_vars -+ if isinstance(self.rule, str): -+ tsk.env.ruledeps = self.rule -+ else: -+ # only works if the function is in a global module such as a waf tool -+ tsk.env.ruledeps = Utils.h_fun(self.rule) -+ -+ # we assume that the user knows that without inputs or outputs -+ #if not getattr(self, 'target', None) and not getattr(self, 'source', None): -+ # cls.quiet = True -+ -+ if getattr(self, 'target', None): -+ cls.quiet = True -+ tsk.outputs = [self.path.find_or_declare(x) for x in self.to_list(self.target)] -+ -+ if getattr(self, 'source', None): -+ cls.quiet = True -+ tsk.inputs = [] -+ for x in self.to_list(self.source): -+ y = self.path.find_resource(x) -+ if not y: -+ raise Utils.WafError('input file %r could not be found (%r)' % (x, self.path.abspath())) -+ tsk.inputs.append(y) -+ -+ if self.allnodes: -+ tsk.inputs.extend(self.allnodes) -+ -+ if getattr(self, 'scan', None): -+ cls.scan = self.scan -+ -+ if getattr(self, 'install_path', None): -+ tsk.install_path = self.install_path -+ -+ if getattr(self, 'cwd', None): -+ tsk.cwd = self.cwd -+ -+ if getattr(self, 'on_results', None): -+ Task.update_outputs(cls) -+ -+ if getattr(self, 'always', None): -+ Task.always_run(cls) -+ -+ for x in ['after', 'before', 'ext_in', 'ext_out']: -+ setattr(cls, x, getattr(self, x, [])) -+feature('*')(exec_rule) -+before('apply_core')(exec_rule) -+ -+def sequence_order(self): -+ """ -+ add a strict sequential constraint between the tasks generated by task generators -+ it uses the fact that task generators are posted in order -+ it will not post objects which belong to other folders -+ there is also an awesome trick for executing the method in last position -+ -+ to use: -+ bld(features='javac seq') -+ bld(features='jar seq') -+ -+ to start a new sequence, set the attribute seq_start, for example: -+ obj.seq_start = True -+ """ -+ if self.meths and self.meths[-1] != 'sequence_order': -+ self.meths.append('sequence_order') -+ return -+ -+ if getattr(self, 'seq_start', None): -+ return -+ -+ # all the tasks previously declared must be run before these -+ if getattr(self.bld, 'prev', None): -+ self.bld.prev.post() -+ for x in self.bld.prev.tasks: -+ for y in self.tasks: -+ y.set_run_after(x) -+ -+ self.bld.prev = self -+ -+feature('seq')(sequence_order) -+ -diff --git a/buildtools/wafadmin/Tools/__init__.py b/buildtools/wafadmin/Tools/__init__.py -new file mode 100644 -index 0000000..bc6ca23 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/__init__.py -@@ -0,0 +1,4 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -diff --git a/buildtools/wafadmin/Tools/ar.py b/buildtools/wafadmin/Tools/ar.py -new file mode 100644 -index 0000000..af9b17f ---- /dev/null -+++ b/buildtools/wafadmin/Tools/ar.py -@@ -0,0 +1,36 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006-2008 (ita) -+# Ralf Habacker, 2006 (rh) -+ -+"ar and ranlib" -+ -+import os, sys -+import Task, Utils -+from Configure import conftest -+ -+ar_str = '${AR} ${ARFLAGS} ${AR_TGT_F}${TGT} ${AR_SRC_F}${SRC}' -+cls = Task.simple_task_type('static_link', ar_str, color='YELLOW', ext_in='.o', ext_out='.bin', shell=False) -+cls.maxjobs = 1 -+cls.install = Utils.nada -+ -+# remove the output in case it already exists -+old = cls.run -+def wrap(self): -+ try: os.remove(self.outputs[0].abspath(self.env)) -+ except OSError: pass -+ return old(self) -+setattr(cls, 'run', wrap) -+ -+def detect(conf): -+ conf.find_program('ar', var='AR') -+ conf.find_program('ranlib', var='RANLIB') -+ conf.env.ARFLAGS = 'rcs' -+ -+@conftest -+def find_ar(conf): -+ v = conf.env -+ conf.check_tool('ar') -+ if not v['AR']: conf.fatal('ar is required for static libraries - not found') -+ -+ -diff --git a/buildtools/wafadmin/Tools/bison.py b/buildtools/wafadmin/Tools/bison.py -new file mode 100644 -index 0000000..49c6051 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/bison.py -@@ -0,0 +1,38 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# John O'Meara, 2006 -+# Thomas Nagy 2009 -+ -+"Bison processing" -+ -+import Task -+from TaskGen import extension -+ -+bison = '${BISON} ${BISONFLAGS} ${SRC[0].abspath()} -o ${TGT[0].name}' -+cls = Task.simple_task_type('bison', bison, 'GREEN', ext_in='.yc .y .yy', ext_out='.c .cxx .h .l', shell=False) -+ -+@extension(['.y', '.yc', '.yy']) -+def big_bison(self, node): -+ """when it becomes complicated (unlike flex), the old recipes work better (cwd)""" -+ has_h = '-d' in self.env['BISONFLAGS'] -+ -+ outs = [] -+ if node.name.endswith('.yc'): -+ outs.append(node.change_ext('.tab.cc')) -+ if has_h: -+ outs.append(node.change_ext('.tab.hh')) -+ else: -+ outs.append(node.change_ext('.tab.c')) -+ if has_h: -+ outs.append(node.change_ext('.tab.h')) -+ -+ tsk = self.create_task('bison', node, outs) -+ tsk.cwd = node.bld_dir(tsk.env) -+ -+ # and the c/cxx file must be compiled too -+ self.allnodes.append(outs[0]) -+ -+def detect(conf): -+ bison = conf.find_program('bison', var='BISON', mandatory=True) -+ conf.env['BISONFLAGS'] = '-d' -+ -diff --git a/buildtools/wafadmin/Tools/cc.py b/buildtools/wafadmin/Tools/cc.py -new file mode 100644 -index 0000000..903a1c5 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/cc.py -@@ -0,0 +1,100 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+"Base for c programs/libraries" -+ -+import os -+import TaskGen, Build, Utils, Task -+from Logs import debug -+import ccroot -+from TaskGen import feature, before, extension, after -+ -+g_cc_flag_vars = [ -+'CCDEPS', 'FRAMEWORK', 'FRAMEWORKPATH', -+'STATICLIB', 'LIB', 'LIBPATH', 'LINKFLAGS', 'RPATH', -+'CCFLAGS', 'CPPPATH', 'CPPFLAGS', 'CCDEFINES'] -+ -+EXT_CC = ['.c'] -+ -+g_cc_type_vars = ['CCFLAGS', 'LINKFLAGS'] -+ -+# TODO remove in waf 1.6 -+class cc_taskgen(ccroot.ccroot_abstract): -+ pass -+ -+@feature('cc') -+@before('apply_type_vars') -+@after('default_cc') -+def init_cc(self): -+ self.p_flag_vars = set(self.p_flag_vars).union(g_cc_flag_vars) -+ self.p_type_vars = set(self.p_type_vars).union(g_cc_type_vars) -+ -+ if not self.env['CC_NAME']: -+ raise Utils.WafError("At least one compiler (gcc, ..) must be selected") -+ -+@feature('cc') -+@after('apply_incpaths') -+def apply_obj_vars_cc(self): -+ """after apply_incpaths for INC_PATHS""" -+ env = self.env -+ app = env.append_unique -+ cpppath_st = env['CPPPATH_ST'] -+ -+ # local flags come first -+ # set the user-defined includes paths -+ for i in env['INC_PATHS']: -+ app('_CCINCFLAGS', cpppath_st % i.bldpath(env)) -+ app('_CCINCFLAGS', cpppath_st % i.srcpath(env)) -+ -+ # set the library include paths -+ for i in env['CPPPATH']: -+ app('_CCINCFLAGS', cpppath_st % i) -+ -+@feature('cc') -+@after('apply_lib_vars') -+def apply_defines_cc(self): -+ """after uselib is set for CCDEFINES""" -+ self.defines = getattr(self, 'defines', []) -+ lst = self.to_list(self.defines) + self.to_list(self.env['CCDEFINES']) -+ milst = [] -+ -+ # now process the local defines -+ for defi in lst: -+ if not defi in milst: -+ milst.append(defi) -+ -+ # CCDEFINES_ -+ libs = self.to_list(self.uselib) -+ for l in libs: -+ val = self.env['CCDEFINES_'+l] -+ if val: milst += val -+ self.env['DEFLINES'] = ["%s %s" % (x[0], Utils.trimquotes('='.join(x[1:]))) for x in [y.split('=') for y in milst]] -+ y = self.env['CCDEFINES_ST'] -+ self.env.append_unique('_CCDEFFLAGS', [y%x for x in milst]) -+ -+@extension(EXT_CC) -+def c_hook(self, node): -+ # create the compilation task: cpp or cc -+ if getattr(self, 'obj_ext', None): -+ obj_ext = self.obj_ext -+ else: -+ obj_ext = '_%d.o' % self.idx -+ -+ task = self.create_task('cc', node, node.change_ext(obj_ext)) -+ try: -+ self.compiled_tasks.append(task) -+ except AttributeError: -+ raise Utils.WafError('Have you forgotten to set the feature "cc" on %s?' % str(self)) -+ return task -+ -+cc_str = '${CC} ${CCFLAGS} ${CPPFLAGS} ${_CCINCFLAGS} ${_CCDEFFLAGS} ${CC_SRC_F}${SRC} ${CC_TGT_F}${TGT}' -+cls = Task.simple_task_type('cc', cc_str, 'GREEN', ext_out='.o', ext_in='.c', shell=False) -+cls.scan = ccroot.scan -+cls.vars.append('CCDEPS') -+ -+link_str = '${LINK_CC} ${CCLNK_SRC_F}${SRC} ${CCLNK_TGT_F}${TGT[0].abspath(env)} ${LINKFLAGS}' -+cls = Task.simple_task_type('cc_link', link_str, color='YELLOW', ext_in='.o', ext_out='.bin', shell=False) -+cls.maxjobs = 1 -+cls.install = Utils.nada -+ -diff --git a/buildtools/wafadmin/Tools/ccroot.py b/buildtools/wafadmin/Tools/ccroot.py -new file mode 100644 -index 0000000..f54c82f ---- /dev/null -+++ b/buildtools/wafadmin/Tools/ccroot.py -@@ -0,0 +1,629 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005-2008 (ita) -+ -+"base for all c/c++ programs and libraries" -+ -+import os, sys, re -+import TaskGen, Task, Utils, preproc, Logs, Build, Options -+from Logs import error, debug, warn -+from Utils import md5 -+from TaskGen import taskgen, after, before, feature -+from Constants import * -+from Configure import conftest -+try: -+ from cStringIO import StringIO -+except ImportError: -+ from io import StringIO -+ -+import config_c # <- necessary for the configuration, do not touch -+ -+USE_TOP_LEVEL = False -+ -+def get_cc_version(conf, cc, gcc=False, icc=False): -+ -+ cmd = cc + ['-dM', '-E', '-'] -+ try: -+ p = Utils.pproc.Popen(cmd, stdin=Utils.pproc.PIPE, stdout=Utils.pproc.PIPE, stderr=Utils.pproc.PIPE) -+ p.stdin.write('\n') -+ out = p.communicate()[0] -+ except: -+ conf.fatal('could not determine the compiler version %r' % cmd) -+ -+ # PY3K: do not touch -+ out = str(out) -+ -+ if gcc: -+ if out.find('__INTEL_COMPILER') >= 0: -+ conf.fatal('The intel compiler pretends to be gcc') -+ if out.find('__GNUC__') < 0: -+ conf.fatal('Could not determine the compiler type') -+ -+ if icc and out.find('__INTEL_COMPILER') < 0: -+ conf.fatal('Not icc/icpc') -+ -+ k = {} -+ if icc or gcc: -+ out = out.split('\n') -+ import shlex -+ -+ for line in out: -+ lst = shlex.split(line) -+ if len(lst)>2: -+ key = lst[1] -+ val = lst[2] -+ k[key] = val -+ -+ def isD(var): -+ return var in k -+ -+ def isT(var): -+ return var in k and k[var] != '0' -+ -+ # Some documentation is available at http://predef.sourceforge.net -+ # The names given to DEST_OS must match what Utils.unversioned_sys_platform() returns. -+ mp1 = { -+ '__linux__' : 'linux', -+ '__GNU__' : 'gnu', -+ '__FreeBSD__' : 'freebsd', -+ '__NetBSD__' : 'netbsd', -+ '__OpenBSD__' : 'openbsd', -+ '__sun' : 'sunos', -+ '__hpux' : 'hpux', -+ '__sgi' : 'irix', -+ '_AIX' : 'aix', -+ '__CYGWIN__' : 'cygwin', -+ '__MSYS__' : 'msys', -+ '_UWIN' : 'uwin', -+ '_WIN64' : 'win32', -+ '_WIN32' : 'win32', -+ '__POWERPC__' : 'powerpc', -+ } -+ -+ for i in mp1: -+ if isD(i): -+ conf.env.DEST_OS = mp1[i] -+ break -+ else: -+ if isD('__APPLE__') and isD('__MACH__'): -+ conf.env.DEST_OS = 'darwin' -+ elif isD('__unix__'): # unix must be tested last as it's a generic fallback -+ conf.env.DEST_OS = 'generic' -+ -+ if isD('__ELF__'): -+ conf.env.DEST_BINFMT = 'elf' -+ elif isD('__WINNT__') or isD('__CYGWIN__'): -+ conf.env.DEST_BINFMT = 'pe' -+ elif isD('__APPLE__'): -+ conf.env.DEST_BINFMT = 'mac-o' -+ -+ mp2 = { -+ '__x86_64__' : 'x86_64', -+ '__i386__' : 'x86', -+ '__ia64__' : 'ia', -+ '__mips__' : 'mips', -+ '__sparc__' : 'sparc', -+ '__alpha__' : 'alpha', -+ '__arm__' : 'arm', -+ '__hppa__' : 'hppa', -+ '__powerpc__' : 'powerpc', -+ } -+ for i in mp2: -+ if isD(i): -+ conf.env.DEST_CPU = mp2[i] -+ break -+ -+ debug('ccroot: dest platform: ' + ' '.join([conf.env[x] or '?' for x in ('DEST_OS', 'DEST_BINFMT', 'DEST_CPU')])) -+ conf.env['CC_VERSION'] = (k['__GNUC__'], k['__GNUC_MINOR__'], k['__GNUC_PATCHLEVEL__']) -+ return k -+ -+class DEBUG_LEVELS: -+ """Will disappear in waf 1.6""" -+ ULTRADEBUG = "ultradebug" -+ DEBUG = "debug" -+ RELEASE = "release" -+ OPTIMIZED = "optimized" -+ CUSTOM = "custom" -+ -+ ALL = [ULTRADEBUG, DEBUG, RELEASE, OPTIMIZED, CUSTOM] -+ -+def scan(self): -+ "look for .h the .cpp need" -+ debug('ccroot: _scan_preprocessor(self, node, env, path_lst)') -+ -+ # TODO waf 1.6 - assume the default input has exactly one file -+ -+ if len(self.inputs) == 1: -+ node = self.inputs[0] -+ (nodes, names) = preproc.get_deps(node, self.env, nodepaths = self.env['INC_PATHS']) -+ if Logs.verbose: -+ debug('deps: deps for %s: %r; unresolved %r', str(node), nodes, names) -+ return (nodes, names) -+ -+ all_nodes = [] -+ all_names = [] -+ seen = set() -+ for node in self.inputs: -+ (nodes, names) = preproc.get_deps(node, self.env, nodepaths = self.env['INC_PATHS']) -+ if Logs.verbose: -+ debug('deps: deps for %s: %r; unresolved %r', str(node), nodes, names) -+ for x in nodes: -+ if id(x) in seen: continue -+ seen.add(id(x)) -+ all_nodes.append(x) -+ for x in names: -+ if not x in all_names: -+ all_names.append(x) -+ return (all_nodes, all_names) -+ -+class ccroot_abstract(TaskGen.task_gen): -+ "Parent class for programs and libraries in languages c, c++ and moc (Qt)" -+ def __init__(self, *k, **kw): -+ # COMPAT remove in waf 1.6 TODO -+ if len(k) > 1: -+ k = list(k) -+ if k[1][0] != 'c': -+ k[1] = 'c' + k[1] -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+def get_target_name(self): -+ tp = 'program' -+ for x in self.features: -+ if x in ['cshlib', 'cstaticlib']: -+ tp = x.lstrip('c') -+ -+ pattern = self.env[tp + '_PATTERN'] -+ if not pattern: pattern = '%s' -+ -+ dir, name = os.path.split(self.target) -+ -+ if self.env.DEST_BINFMT == 'pe' and getattr(self, 'vnum', None) and 'cshlib' in self.features: -+ # include the version in the dll file name, -+ # the import lib file name stays unversionned. -+ name = name + '-' + self.vnum.split('.')[0] -+ -+ return os.path.join(dir, pattern % name) -+ -+@feature('cc', 'cxx') -+@before('apply_core') -+def default_cc(self): -+ """compiled_tasks attribute must be set before the '.c->.o' tasks can be created""" -+ Utils.def_attrs(self, -+ includes = '', -+ defines= '', -+ rpaths = '', -+ uselib = '', -+ uselib_local = '', -+ add_objects = '', -+ p_flag_vars = [], -+ p_type_vars = [], -+ compiled_tasks = [], -+ link_task = None) -+ -+ # The only thing we need for cross-compilation is DEST_BINFMT. -+ # At some point, we may reach a case where DEST_BINFMT is not enough, but for now it's sufficient. -+ # Currently, cross-compilation is auto-detected only for the gnu and intel compilers. -+ if not self.env.DEST_BINFMT: -+ # Infer the binary format from the os name. -+ self.env.DEST_BINFMT = Utils.unversioned_sys_platform_to_binary_format( -+ self.env.DEST_OS or Utils.unversioned_sys_platform()) -+ -+ if not self.env.BINDIR: self.env.BINDIR = Utils.subst_vars('${PREFIX}/bin', self.env) -+ if not self.env.LIBDIR: self.env.LIBDIR = Utils.subst_vars('${PREFIX}/lib${LIB_EXT}', self.env) -+ -+@feature('cprogram', 'dprogram', 'cstaticlib', 'dstaticlib', 'cshlib', 'dshlib') -+def apply_verif(self): -+ """no particular order, used for diagnostic""" -+ if not (self.source or getattr(self, 'add_objects', None) or getattr(self, 'uselib_local', None) or getattr(self, 'obj_files', None)): -+ raise Utils.WafError('no source files specified for %s' % self) -+ if not self.target: -+ raise Utils.WafError('no target for %s' % self) -+ -+# TODO reference the d programs, shlibs in d.py, not here -+ -+@feature('cprogram', 'dprogram') -+@after('default_cc') -+@before('apply_core') -+def vars_target_cprogram(self): -+ self.default_install_path = self.env.BINDIR -+ self.default_chmod = O755 -+ -+@after('default_cc') -+@feature('cshlib', 'dshlib') -+@before('apply_core') -+def vars_target_cshlib(self): -+ if self.env.DEST_BINFMT == 'pe': -+ # set execute bit on libs to avoid 'permission denied' (issue 283) -+ self.default_chmod = O755 -+ self.default_install_path = self.env.BINDIR -+ else: -+ self.default_install_path = self.env.LIBDIR -+ -+@feature('cprogram', 'dprogram', 'cstaticlib', 'dstaticlib', 'cshlib', 'dshlib') -+@after('apply_link', 'vars_target_cprogram', 'vars_target_cshlib') -+def default_link_install(self): -+ """you may kill this method to inject your own installation for the first element -+ any other install should only process its own nodes and not those from the others""" -+ if self.install_path: -+ self.bld.install_files(self.install_path, self.link_task.outputs[0], env=self.env, chmod=self.chmod) -+ -+@feature('cc', 'cxx') -+@after('apply_type_vars', 'apply_lib_vars', 'apply_core') -+def apply_incpaths(self): -+ """used by the scanner -+ after processing the uselib for CPPPATH -+ after apply_core because some processing may add include paths -+ """ -+ lst = [] -+ # TODO move the uselib processing out of here -+ for lib in self.to_list(self.uselib): -+ for path in self.env['CPPPATH_' + lib]: -+ if not path in lst: -+ lst.append(path) -+ if preproc.go_absolute: -+ for path in preproc.standard_includes: -+ if not path in lst: -+ lst.append(path) -+ -+ for path in self.to_list(self.includes): -+ if not path in lst: -+ if preproc.go_absolute or not os.path.isabs(path): -+ lst.append(path) -+ else: -+ self.env.prepend_value('CPPPATH', path) -+ -+ for path in lst: -+ node = None -+ if os.path.isabs(path): -+ if preproc.go_absolute: -+ node = self.bld.root.find_dir(path) -+ elif path[0] == '#': -+ node = self.bld.srcnode -+ if len(path) > 1: -+ node = node.find_dir(path[1:]) -+ else: -+ node = self.path.find_dir(path) -+ -+ if node: -+ self.env.append_value('INC_PATHS', node) -+ -+ # TODO WAF 1.6 -+ if USE_TOP_LEVEL: -+ self.env.append_value('INC_PATHS', self.bld.srcnode) -+ -+@feature('cc', 'cxx') -+@after('init_cc', 'init_cxx') -+@before('apply_lib_vars') -+def apply_type_vars(self): -+ """before apply_lib_vars because we modify uselib -+ after init_cc and init_cxx because web need p_type_vars -+ """ -+ for x in self.features: -+ if not x in ['cprogram', 'cstaticlib', 'cshlib']: -+ continue -+ x = x.lstrip('c') -+ -+ # if the type defines uselib to add, add them -+ st = self.env[x + '_USELIB'] -+ if st: self.uselib = self.uselib + ' ' + st -+ -+ # each compiler defines variables like 'shlib_CXXFLAGS', 'shlib_LINKFLAGS', etc -+ # so when we make a task generator of the type shlib, CXXFLAGS are modified accordingly -+ for var in self.p_type_vars: -+ compvar = '%s_%s' % (x, var) -+ #print compvar -+ value = self.env[compvar] -+ if value: self.env.append_value(var, value) -+ -+@feature('cprogram', 'cshlib', 'cstaticlib') -+@after('apply_core') -+def apply_link(self): -+ """executes after apply_core for collecting 'compiled_tasks' -+ use a custom linker if specified (self.link='name-of-custom-link-task')""" -+ link = getattr(self, 'link', None) -+ if not link: -+ if 'cstaticlib' in self.features: link = 'static_link' -+ elif 'cxx' in self.features: link = 'cxx_link' -+ else: link = 'cc_link' -+ -+ tsk = self.create_task(link) -+ outputs = [t.outputs[0] for t in self.compiled_tasks] -+ tsk.set_inputs(outputs) -+ tsk.set_outputs(self.path.find_or_declare(get_target_name(self))) -+ -+ self.link_task = tsk -+ -+@feature('cc', 'cxx') -+@after('apply_link', 'init_cc', 'init_cxx', 'apply_core') -+def apply_lib_vars(self): -+ """after apply_link because of 'link_task' -+ after default_cc because of the attribute 'uselib'""" -+ -+ # after 'apply_core' in case if 'cc' if there is no link -+ -+ env = self.env -+ -+ # 1. the case of the libs defined in the project (visit ancestors first) -+ # the ancestors external libraries (uselib) will be prepended -+ self.uselib = self.to_list(self.uselib) -+ names = self.to_list(self.uselib_local) -+ -+ seen = set([]) -+ tmp = Utils.deque(names) # consume a copy of the list of names -+ while tmp: -+ lib_name = tmp.popleft() -+ # visit dependencies only once -+ if lib_name in seen: -+ continue -+ -+ y = self.name_to_obj(lib_name) -+ if not y: -+ raise Utils.WafError('object %r was not found in uselib_local (required by %r)' % (lib_name, self.name)) -+ y.post() -+ seen.add(lib_name) -+ -+ # object has ancestors to process (shared libraries): add them to the end of the list -+ if getattr(y, 'uselib_local', None): -+ lst = y.to_list(y.uselib_local) -+ if 'cshlib' in y.features or 'cprogram' in y.features: -+ lst = [x for x in lst if not 'cstaticlib' in self.name_to_obj(x).features] -+ tmp.extend(lst) -+ -+ # link task and flags -+ if getattr(y, 'link_task', None): -+ -+ link_name = y.target[y.target.rfind(os.sep) + 1:] -+ if 'cstaticlib' in y.features: -+ env.append_value('STATICLIB', link_name) -+ elif 'cshlib' in y.features or 'cprogram' in y.features: -+ # WARNING some linkers can link against programs -+ env.append_value('LIB', link_name) -+ -+ # the order -+ self.link_task.set_run_after(y.link_task) -+ -+ # for the recompilation -+ dep_nodes = getattr(self.link_task, 'dep_nodes', []) -+ self.link_task.dep_nodes = dep_nodes + y.link_task.outputs -+ -+ # add the link path too -+ tmp_path = y.link_task.outputs[0].parent.bldpath(self.env) -+ if not tmp_path in env['LIBPATH']: env.prepend_value('LIBPATH', tmp_path) -+ -+ # add ancestors uselib too - but only propagate those that have no staticlib -+ for v in self.to_list(y.uselib): -+ if not env['STATICLIB_' + v]: -+ if not v in self.uselib: -+ self.uselib.insert(0, v) -+ -+ # if the library task generator provides 'export_incdirs', add to the include path -+ # the export_incdirs must be a list of paths relative to the other library -+ if getattr(y, 'export_incdirs', None): -+ for x in self.to_list(y.export_incdirs): -+ node = y.path.find_dir(x) -+ if not node: -+ raise Utils.WafError('object %r: invalid folder %r in export_incdirs' % (y.target, x)) -+ self.env.append_unique('INC_PATHS', node) -+ -+ # 2. the case of the libs defined outside -+ for x in self.uselib: -+ for v in self.p_flag_vars: -+ val = self.env[v + '_' + x] -+ if val: self.env.append_value(v, val) -+ -+@feature('cprogram', 'cstaticlib', 'cshlib') -+@after('init_cc', 'init_cxx', 'apply_link') -+def apply_objdeps(self): -+ "add the .o files produced by some other object files in the same manner as uselib_local" -+ if not getattr(self, 'add_objects', None): return -+ -+ seen = [] -+ names = self.to_list(self.add_objects) -+ while names: -+ x = names[0] -+ -+ # visit dependencies only once -+ if x in seen: -+ names = names[1:] -+ continue -+ -+ # object does not exist ? -+ y = self.name_to_obj(x) -+ if not y: -+ raise Utils.WafError('object %r was not found in uselib_local (required by add_objects %r)' % (x, self.name)) -+ -+ # object has ancestors to process first ? update the list of names -+ if getattr(y, 'add_objects', None): -+ added = 0 -+ lst = y.to_list(y.add_objects) -+ lst.reverse() -+ for u in lst: -+ if u in seen: continue -+ added = 1 -+ names = [u]+names -+ if added: continue # list of names modified, loop -+ -+ # safe to process the current object -+ y.post() -+ seen.append(x) -+ -+ for t in y.compiled_tasks: -+ self.link_task.inputs.extend(t.outputs) -+ -+@feature('cprogram', 'cshlib', 'cstaticlib') -+@after('apply_lib_vars') -+def apply_obj_vars(self): -+ """after apply_lib_vars for uselib""" -+ v = self.env -+ lib_st = v['LIB_ST'] -+ staticlib_st = v['STATICLIB_ST'] -+ libpath_st = v['LIBPATH_ST'] -+ staticlibpath_st = v['STATICLIBPATH_ST'] -+ rpath_st = v['RPATH_ST'] -+ -+ app = v.append_unique -+ -+ if v['FULLSTATIC']: -+ v.append_value('LINKFLAGS', v['FULLSTATIC_MARKER']) -+ -+ for i in v['RPATH']: -+ if i and rpath_st: -+ app('LINKFLAGS', rpath_st % i) -+ -+ for i in v['LIBPATH']: -+ app('LINKFLAGS', libpath_st % i) -+ app('LINKFLAGS', staticlibpath_st % i) -+ -+ if v['STATICLIB']: -+ v.append_value('LINKFLAGS', v['STATICLIB_MARKER']) -+ k = [(staticlib_st % i) for i in v['STATICLIB']] -+ app('LINKFLAGS', k) -+ -+ # fully static binaries ? -+ if not v['FULLSTATIC']: -+ if v['STATICLIB'] or v['LIB']: -+ v.append_value('LINKFLAGS', v['SHLIB_MARKER']) -+ -+ app('LINKFLAGS', [lib_st % i for i in v['LIB']]) -+ -+@after('apply_link') -+def process_obj_files(self): -+ if not hasattr(self, 'obj_files'): return -+ for x in self.obj_files: -+ node = self.path.find_resource(x) -+ self.link_task.inputs.append(node) -+ -+@taskgen -+def add_obj_file(self, file): -+ """Small example on how to link object files as if they were source -+ obj = bld.create_obj('cc') -+ obj.add_obj_file('foo.o')""" -+ if not hasattr(self, 'obj_files'): self.obj_files = [] -+ if not 'process_obj_files' in self.meths: self.meths.append('process_obj_files') -+ self.obj_files.append(file) -+ -+c_attrs = { -+'cxxflag' : 'CXXFLAGS', -+'cflag' : 'CCFLAGS', -+'ccflag' : 'CCFLAGS', -+'linkflag' : 'LINKFLAGS', -+'ldflag' : 'LINKFLAGS', -+'lib' : 'LIB', -+'libpath' : 'LIBPATH', -+'staticlib': 'STATICLIB', -+'staticlibpath': 'STATICLIBPATH', -+'rpath' : 'RPATH', -+'framework' : 'FRAMEWORK', -+'frameworkpath' : 'FRAMEWORKPATH' -+} -+ -+@feature('cc', 'cxx') -+@before('init_cxx', 'init_cc') -+@before('apply_lib_vars', 'apply_obj_vars', 'apply_incpaths', 'init_cc') -+def add_extra_flags(self): -+ """case and plural insensitive -+ before apply_obj_vars for processing the library attributes -+ """ -+ for x in self.__dict__.keys(): -+ y = x.lower() -+ if y[-1] == 's': -+ y = y[:-1] -+ if c_attrs.get(y, None): -+ self.env.append_unique(c_attrs[y], getattr(self, x)) -+ -+# ============ the code above must not know anything about import libs ========== -+ -+@feature('cshlib') -+@after('apply_link', 'default_cc') -+@before('apply_lib_vars', 'apply_objdeps', 'default_link_install') -+def apply_implib(self): -+ """On mswindows, handle dlls and their import libs -+ the .dll.a is the import lib and it is required for linking so it is installed too -+ """ -+ if not self.env.DEST_BINFMT == 'pe': -+ return -+ -+ self.meths.remove('default_link_install') -+ -+ bindir = self.install_path -+ if not bindir: return -+ -+ # install the dll in the bin dir -+ dll = self.link_task.outputs[0] -+ self.bld.install_files(bindir, dll, self.env, self.chmod) -+ -+ # add linker flags to generate the import lib -+ implib = self.env['implib_PATTERN'] % os.path.split(self.target)[1] -+ -+ implib = dll.parent.find_or_declare(implib) -+ self.link_task.outputs.append(implib) -+ self.bld.install_as('${LIBDIR}/%s' % implib.name, implib, self.env) -+ -+ self.env.append_value('LINKFLAGS', (self.env['IMPLIB_ST'] % implib.bldpath(self.env)).split()) -+ -+# ============ the code above must not know anything about vnum processing on unix platforms ========= -+ -+@feature('cshlib') -+@after('apply_link') -+@before('apply_lib_vars', 'default_link_install') -+def apply_vnum(self): -+ """ -+ libfoo.so is installed as libfoo.so.1.2.3 -+ """ -+ if not getattr(self, 'vnum', '') or not 'cshlib' in self.features or os.name != 'posix' or self.env.DEST_BINFMT not in ('elf', 'mac-o'): -+ return -+ -+ self.meths.remove('default_link_install') -+ -+ link = self.link_task -+ nums = self.vnum.split('.') -+ node = link.outputs[0] -+ -+ libname = node.name -+ if libname.endswith('.dylib'): -+ name3 = libname.replace('.dylib', '.%s.dylib' % self.vnum) -+ name2 = libname.replace('.dylib', '.%s.dylib' % nums[0]) -+ else: -+ name3 = libname + '.' + self.vnum -+ name2 = libname + '.' + nums[0] -+ -+ if self.env.SONAME_ST: -+ v = self.env.SONAME_ST % name2 -+ self.env.append_value('LINKFLAGS', v.split()) -+ -+ bld = self.bld -+ nums = self.vnum.split('.') -+ -+ path = self.install_path -+ if not path: return -+ -+ bld.install_as(path + os.sep + name3, node, env=self.env) -+ bld.symlink_as(path + os.sep + name2, name3) -+ bld.symlink_as(path + os.sep + libname, name3) -+ -+ # the following task is just to enable execution from the build dir :-/ -+ self.create_task('vnum', node, [node.parent.find_or_declare(name2), node.parent.find_or_declare(name3)]) -+ -+def exec_vnum_link(self): -+ for x in self.outputs: -+ path = x.abspath(self.env) -+ try: -+ os.remove(path) -+ except OSError: -+ pass -+ -+ try: -+ os.symlink(self.inputs[0].name, path) -+ except OSError: -+ return 1 -+ -+cls = Task.task_type_from_func('vnum', func=exec_vnum_link, ext_in='.bin', color='CYAN') -+cls.quiet = 1 -+ -+# ============ the --as-needed flag should added during the configuration, not at runtime ========= -+ -+@conftest -+def add_as_needed(conf): -+ if conf.env.DEST_BINFMT == 'elf' and 'gcc' in (conf.env.CXX_NAME, conf.env.CC_NAME): -+ conf.env.append_unique('LINKFLAGS', '--as-needed') -+ -diff --git a/buildtools/wafadmin/Tools/compiler_cc.py b/buildtools/wafadmin/Tools/compiler_cc.py -new file mode 100644 -index 0000000..0421503 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/compiler_cc.py -@@ -0,0 +1,67 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Matthias Jahn jahn dôt matthias ât freenet dôt de, 2007 (pmarat) -+ -+import os, sys, imp, types, ccroot -+import optparse -+import Utils, Configure, Options -+from Logs import debug -+ -+c_compiler = { -+ 'win32': ['msvc', 'gcc'], -+ 'cygwin': ['gcc'], -+ 'darwin': ['gcc'], -+ 'aix': ['xlc', 'gcc'], -+ 'linux': ['gcc', 'icc', 'suncc'], -+ 'sunos': ['gcc', 'suncc'], -+ 'irix': ['gcc'], -+ 'hpux': ['gcc'], -+ 'gnu': ['gcc'], -+ 'default': ['gcc'] -+} -+ -+def __list_possible_compiler(platform): -+ try: -+ return c_compiler[platform] -+ except KeyError: -+ return c_compiler["default"] -+ -+def detect(conf): -+ """ -+ for each compiler for the platform, try to configure the compiler -+ in theory the tools should raise a configuration error if the compiler -+ pretends to be something it is not (setting CC=icc and trying to configure gcc) -+ """ -+ try: test_for_compiler = Options.options.check_c_compiler -+ except AttributeError: conf.fatal("Add set_options(opt): opt.tool_options('compiler_cc')") -+ orig = conf.env -+ for compiler in test_for_compiler.split(): -+ conf.env = orig.copy() -+ try: -+ conf.check_tool(compiler) -+ except Configure.ConfigurationError, e: -+ debug('compiler_cc: %r' % e) -+ else: -+ if conf.env['CC']: -+ orig.table = conf.env.get_merged_dict() -+ conf.env = orig -+ conf.check_message(compiler, '', True) -+ conf.env['COMPILER_CC'] = compiler -+ break -+ conf.check_message(compiler, '', False) -+ break -+ else: -+ conf.fatal('could not configure a c compiler!') -+ -+def set_options(opt): -+ build_platform = Utils.unversioned_sys_platform() -+ possible_compiler_list = __list_possible_compiler(build_platform) -+ test_for_compiler = ' '.join(possible_compiler_list) -+ cc_compiler_opts = opt.add_option_group("C Compiler Options") -+ cc_compiler_opts.add_option('--check-c-compiler', default="%s" % test_for_compiler, -+ help='On this platform (%s) the following C-Compiler will be checked by default: "%s"' % (build_platform, test_for_compiler), -+ dest="check_c_compiler") -+ -+ for c_compiler in test_for_compiler.split(): -+ opt.tool_options('%s' % c_compiler, option_group=cc_compiler_opts) -+ -diff --git a/buildtools/wafadmin/Tools/compiler_cxx.py b/buildtools/wafadmin/Tools/compiler_cxx.py -new file mode 100644 -index 0000000..5308ea9 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/compiler_cxx.py -@@ -0,0 +1,62 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Matthias Jahn jahn dôt matthias ât freenet dôt de 2007 (pmarat) -+ -+import os, sys, imp, types, ccroot -+import optparse -+import Utils, Configure, Options -+from Logs import debug -+ -+cxx_compiler = { -+'win32': ['msvc', 'g++'], -+'cygwin': ['g++'], -+'darwin': ['g++'], -+'aix': ['xlc++', 'g++'], -+'linux': ['g++', 'icpc', 'sunc++'], -+'sunos': ['g++', 'sunc++'], -+'irix': ['g++'], -+'hpux': ['g++'], -+'gnu': ['g++'], -+'default': ['g++'] -+} -+ -+def __list_possible_compiler(platform): -+ try: -+ return cxx_compiler[platform] -+ except KeyError: -+ return cxx_compiler["default"] -+ -+def detect(conf): -+ try: test_for_compiler = Options.options.check_cxx_compiler -+ except AttributeError: raise Configure.ConfigurationError("Add set_options(opt): opt.tool_options('compiler_cxx')") -+ orig = conf.env -+ for compiler in test_for_compiler.split(): -+ try: -+ conf.env = orig.copy() -+ conf.check_tool(compiler) -+ except Configure.ConfigurationError, e: -+ debug('compiler_cxx: %r' % e) -+ else: -+ if conf.env['CXX']: -+ orig.table = conf.env.get_merged_dict() -+ conf.env = orig -+ conf.check_message(compiler, '', True) -+ conf.env['COMPILER_CXX'] = compiler -+ break -+ conf.check_message(compiler, '', False) -+ break -+ else: -+ conf.fatal('could not configure a cxx compiler!') -+ -+def set_options(opt): -+ build_platform = Utils.unversioned_sys_platform() -+ possible_compiler_list = __list_possible_compiler(build_platform) -+ test_for_compiler = ' '.join(possible_compiler_list) -+ cxx_compiler_opts = opt.add_option_group('C++ Compiler Options') -+ cxx_compiler_opts.add_option('--check-cxx-compiler', default="%s" % test_for_compiler, -+ help='On this platform (%s) the following C++ Compiler will be checked by default: "%s"' % (build_platform, test_for_compiler), -+ dest="check_cxx_compiler") -+ -+ for cxx_compiler in test_for_compiler.split(): -+ opt.tool_options('%s' % cxx_compiler, option_group=cxx_compiler_opts) -+ -diff --git a/buildtools/wafadmin/Tools/compiler_d.py b/buildtools/wafadmin/Tools/compiler_d.py -new file mode 100644 -index 0000000..1ea5efa ---- /dev/null -+++ b/buildtools/wafadmin/Tools/compiler_d.py -@@ -0,0 +1,33 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Carlos Rafael Giani, 2007 (dv) -+ -+import os, sys, imp, types -+import Utils, Configure, Options -+ -+def detect(conf): -+ if getattr(Options.options, 'check_dmd_first', None): -+ test_for_compiler = ['dmd', 'gdc'] -+ else: -+ test_for_compiler = ['gdc', 'dmd'] -+ -+ for d_compiler in test_for_compiler: -+ try: -+ conf.check_tool(d_compiler) -+ except: -+ pass -+ else: -+ break -+ else: -+ conf.fatal('no suitable d compiler was found') -+ -+def set_options(opt): -+ d_compiler_opts = opt.add_option_group('D Compiler Options') -+ d_compiler_opts.add_option('--check-dmd-first', action='store_true', -+ help='checks for the gdc compiler before dmd (default is the other way round)', -+ dest='check_dmd_first', -+ default=False) -+ -+ for d_compiler in ['gdc', 'dmd']: -+ opt.tool_options('%s' % d_compiler, option_group=d_compiler_opts) -+ -diff --git a/buildtools/wafadmin/Tools/config_c.py b/buildtools/wafadmin/Tools/config_c.py -new file mode 100644 -index 0000000..a32d8aa ---- /dev/null -+++ b/buildtools/wafadmin/Tools/config_c.py -@@ -0,0 +1,736 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005-2008 (ita) -+ -+""" -+c/c++ configuration routines -+""" -+ -+import os, imp, sys, shlex, shutil -+from Utils import md5 -+import Build, Utils, Configure, Task, Options, Logs, TaskGen -+from Constants import * -+from Configure import conf, conftest -+ -+cfg_ver = { -+ 'atleast-version': '>=', -+ 'exact-version': '==', -+ 'max-version': '<=', -+} -+ -+SNIP1 = ''' -+ int main() { -+ void *p; -+ p=(void*)(%s); -+ return 0; -+} -+''' -+ -+SNIP2 = ''' -+int main() { -+ if ((%(type_name)s *) 0) return 0; -+ if (sizeof (%(type_name)s)) return 0; -+} -+''' -+ -+SNIP3 = ''' -+int main() { -+ return 0; -+} -+''' -+ -+def parse_flags(line, uselib, env): -+ """pkg-config still has bugs on some platforms, and there are many -config programs, parsing flags is necessary :-/""" -+ -+ lst = shlex.split(line) -+ while lst: -+ x = lst.pop(0) -+ st = x[:2] -+ ot = x[2:] -+ app = env.append_value -+ if st == '-I' or st == '/I': -+ if not ot: ot = lst.pop(0) -+ app('CPPPATH_' + uselib, ot) -+ elif st == '-D': -+ if not ot: ot = lst.pop(0) -+ app('CXXDEFINES_' + uselib, ot) -+ app('CCDEFINES_' + uselib, ot) -+ elif st == '-l': -+ if not ot: ot = lst.pop(0) -+ app('LIB_' + uselib, ot) -+ elif st == '-L': -+ if not ot: ot = lst.pop(0) -+ app('LIBPATH_' + uselib, ot) -+ elif x == '-pthread' or x.startswith('+'): -+ app('CCFLAGS_' + uselib, x) -+ app('CXXFLAGS_' + uselib, x) -+ app('LINKFLAGS_' + uselib, x) -+ elif x == '-framework': -+ app('FRAMEWORK_' + uselib, lst.pop(0)) -+ elif x.startswith('-F'): -+ app('FRAMEWORKPATH_' + uselib, x[2:]) -+ elif x.startswith('-std'): -+ app('CCFLAGS_' + uselib, x) -+ app('CXXFLAGS_' + uselib, x) -+ app('LINKFLAGS_' + uselib, x) -+ elif x.startswith('-Wl'): -+ app('LINKFLAGS_' + uselib, x) -+ elif x.startswith('-m') or x.startswith('-f'): -+ app('CCFLAGS_' + uselib, x) -+ app('CXXFLAGS_' + uselib, x) -+ -+@conf -+def ret_msg(self, f, kw): -+ """execute a function, when provided""" -+ if isinstance(f, str): -+ return f -+ return f(kw) -+ -+@conf -+def validate_cfg(self, kw): -+ if not 'path' in kw: -+ kw['path'] = 'pkg-config --errors-to-stdout --print-errors' -+ -+ # pkg-config version -+ if 'atleast_pkgconfig_version' in kw: -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for pkg-config version >= %s' % kw['atleast_pkgconfig_version'] -+ return -+ -+ # pkg-config --modversion -+ if 'modversion' in kw: -+ return -+ -+ if 'variables' in kw: -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for %s variables' % kw['package'] -+ return -+ -+ # checking for the version of a module, for the moment, one thing at a time -+ for x in cfg_ver.keys(): -+ y = x.replace('-', '_') -+ if y in kw: -+ if not 'package' in kw: -+ raise ValueError('%s requires a package' % x) -+ -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for %s %s %s' % (kw['package'], cfg_ver[x], kw[y]) -+ return -+ -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for %s' % (kw['package'] or kw['path']) -+ if not 'okmsg' in kw: -+ kw['okmsg'] = 'yes' -+ if not 'errmsg' in kw: -+ kw['errmsg'] = 'not found' -+ -+@conf -+def cmd_and_log(self, cmd, kw): -+ Logs.debug('runner: %s\n' % cmd) -+ if self.log: -+ self.log.write('%s\n' % cmd) -+ -+ try: -+ p = Utils.pproc.Popen(cmd, stdout=Utils.pproc.PIPE, stderr=Utils.pproc.PIPE, shell=True) -+ (out, err) = p.communicate() -+ except OSError, e: -+ self.log.write('error %r' % e) -+ self.fatal(str(e)) -+ -+ # placeholder, don't touch -+ out = str(out) -+ err = str(err) -+ -+ if self.log: -+ self.log.write(out) -+ self.log.write(err) -+ -+ if p.returncode: -+ if not kw.get('errmsg', ''): -+ if kw.get('mandatory', False): -+ kw['errmsg'] = out.strip() -+ else: -+ kw['errmsg'] = 'no' -+ self.fatal('fail') -+ return out -+ -+@conf -+def exec_cfg(self, kw): -+ -+ # pkg-config version -+ if 'atleast_pkgconfig_version' in kw: -+ cmd = '%s --atleast-pkgconfig-version=%s' % (kw['path'], kw['atleast_pkgconfig_version']) -+ self.cmd_and_log(cmd, kw) -+ if not 'okmsg' in kw: -+ kw['okmsg'] = 'yes' -+ return -+ -+ # checking for the version of a module -+ for x in cfg_ver: -+ y = x.replace('-', '_') -+ if y in kw: -+ self.cmd_and_log('%s --%s=%s %s' % (kw['path'], x, kw[y], kw['package']), kw) -+ if not 'okmsg' in kw: -+ kw['okmsg'] = 'yes' -+ self.define(self.have_define(kw.get('uselib_store', kw['package'])), 1, 0) -+ break -+ -+ # retrieving the version of a module -+ if 'modversion' in kw: -+ version = self.cmd_and_log('%s --modversion %s' % (kw['path'], kw['modversion']), kw).strip() -+ self.define('%s_VERSION' % Utils.quote_define_name(kw.get('uselib_store', kw['modversion'])), version) -+ return version -+ -+ # retrieving variables of a module -+ if 'variables' in kw: -+ env = kw.get('env', self.env) -+ uselib = kw.get('uselib_store', kw['package'].upper()) -+ vars = Utils.to_list(kw['variables']) -+ for v in vars: -+ val = self.cmd_and_log('%s --variable=%s %s' % (kw['path'], v, kw['package']), kw).strip() -+ var = '%s_%s' % (uselib, v) -+ env[var] = val -+ if not 'okmsg' in kw: -+ kw['okmsg'] = 'yes' -+ return -+ -+ lst = [kw['path']] -+ -+ -+ defi = kw.get('define_variable', None) -+ if not defi: -+ defi = self.env.PKG_CONFIG_DEFINES or {} -+ for key, val in defi.iteritems(): -+ lst.append('--define-variable=%s=%s' % (key, val)) -+ -+ lst.append(kw.get('args', '')) -+ lst.append(kw['package']) -+ -+ # so we assume the command-line will output flags to be parsed afterwards -+ cmd = ' '.join(lst) -+ ret = self.cmd_and_log(cmd, kw) -+ if not 'okmsg' in kw: -+ kw['okmsg'] = 'yes' -+ -+ self.define(self.have_define(kw.get('uselib_store', kw['package'])), 1, 0) -+ parse_flags(ret, kw.get('uselib_store', kw['package'].upper()), kw.get('env', self.env)) -+ return ret -+ -+@conf -+def check_cfg(self, *k, **kw): -+ """ -+ for pkg-config mostly, but also all the -config tools -+ conf.check_cfg(path='mpicc', args='--showme:compile --showme:link', package='', uselib_store='OPEN_MPI') -+ conf.check_cfg(package='dbus-1', variables='system_bus_default_address session_bus_services_dir') -+ """ -+ -+ self.validate_cfg(kw) -+ if 'msg' in kw: -+ self.check_message_1(kw['msg']) -+ ret = None -+ try: -+ ret = self.exec_cfg(kw) -+ except Configure.ConfigurationError, e: -+ if 'errmsg' in kw: -+ self.check_message_2(kw['errmsg'], 'YELLOW') -+ if 'mandatory' in kw and kw['mandatory']: -+ if Logs.verbose > 1: -+ raise -+ else: -+ self.fatal('the configuration failed (see %r)' % self.log.name) -+ else: -+ kw['success'] = ret -+ if 'okmsg' in kw: -+ self.check_message_2(self.ret_msg(kw['okmsg'], kw)) -+ -+ return ret -+ -+# the idea is the following: now that we are certain -+# that all the code here is only for c or c++, it is -+# easy to put all the logic in one function -+# -+# this should prevent code duplication (ita) -+ -+# env: an optional environment (modified -> provide a copy) -+# compiler: cc or cxx - it tries to guess what is best -+# type: cprogram, cshlib, cstaticlib -+# code: a c code to execute -+# uselib_store: where to add the variables -+# uselib: parameters to use for building -+# define: define to set, like FOO in #define FOO, if not set, add /* #undef FOO */ -+# execute: True or False - will return the result of the execution -+ -+@conf -+def validate_c(self, kw): -+ """validate the parameters for the test method""" -+ -+ if not 'env' in kw: -+ kw['env'] = self.env.copy() -+ -+ env = kw['env'] -+ if not 'compiler' in kw: -+ kw['compiler'] = 'cc' -+ if env['CXX_NAME'] and Task.TaskBase.classes.get('cxx', None): -+ kw['compiler'] = 'cxx' -+ if not self.env['CXX']: -+ self.fatal('a c++ compiler is required') -+ else: -+ if not self.env['CC']: -+ self.fatal('a c compiler is required') -+ -+ if not 'type' in kw: -+ kw['type'] = 'cprogram' -+ -+ assert not(kw['type'] != 'cprogram' and kw.get('execute', 0)), 'can only execute programs' -+ -+ -+ #if kw['type'] != 'program' and kw.get('execute', 0): -+ # raise ValueError, 'can only execute programs' -+ -+ def to_header(dct): -+ if 'header_name' in dct: -+ dct = Utils.to_list(dct['header_name']) -+ return ''.join(['#include <%s>\n' % x for x in dct]) -+ return '' -+ -+ # set the file name -+ if not 'compile_mode' in kw: -+ kw['compile_mode'] = (kw['compiler'] == 'cxx') and 'cxx' or 'cc' -+ -+ if not 'compile_filename' in kw: -+ kw['compile_filename'] = 'test.c' + ((kw['compile_mode'] == 'cxx') and 'pp' or '') -+ -+ #OSX -+ if 'framework_name' in kw: -+ try: TaskGen.task_gen.create_task_macapp -+ except AttributeError: self.fatal('frameworks require the osx tool') -+ -+ fwkname = kw['framework_name'] -+ if not 'uselib_store' in kw: -+ kw['uselib_store'] = fwkname.upper() -+ -+ if not kw.get('no_header', False): -+ if not 'header_name' in kw: -+ kw['header_name'] = [] -+ fwk = '%s/%s.h' % (fwkname, fwkname) -+ if kw.get('remove_dot_h', None): -+ fwk = fwk[:-2] -+ kw['header_name'] = Utils.to_list(kw['header_name']) + [fwk] -+ -+ kw['msg'] = 'Checking for framework %s' % fwkname -+ kw['framework'] = fwkname -+ #kw['frameworkpath'] = set it yourself -+ -+ if 'function_name' in kw: -+ fu = kw['function_name'] -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for function %s' % fu -+ kw['code'] = to_header(kw) + SNIP1 % fu -+ if not 'uselib_store' in kw: -+ kw['uselib_store'] = fu.upper() -+ if not 'define_name' in kw: -+ kw['define_name'] = self.have_define(fu) -+ -+ elif 'type_name' in kw: -+ tu = kw['type_name'] -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for type %s' % tu -+ if not 'header_name' in kw: -+ kw['header_name'] = 'stdint.h' -+ kw['code'] = to_header(kw) + SNIP2 % {'type_name' : tu} -+ if not 'define_name' in kw: -+ kw['define_name'] = self.have_define(tu.upper()) -+ -+ elif 'header_name' in kw: -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for header %s' % kw['header_name'] -+ -+ l = Utils.to_list(kw['header_name']) -+ assert len(l)>0, 'list of headers in header_name is empty' -+ -+ kw['code'] = to_header(kw) + SNIP3 -+ -+ if not 'uselib_store' in kw: -+ kw['uselib_store'] = l[0].upper() -+ -+ if not 'define_name' in kw: -+ kw['define_name'] = self.have_define(l[0]) -+ -+ if 'lib' in kw: -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for library %s' % kw['lib'] -+ if not 'uselib_store' in kw: -+ kw['uselib_store'] = kw['lib'].upper() -+ -+ if 'staticlib' in kw: -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for static library %s' % kw['staticlib'] -+ if not 'uselib_store' in kw: -+ kw['uselib_store'] = kw['staticlib'].upper() -+ -+ if 'fragment' in kw: -+ # an additional code fragment may be provided to replace the predefined code -+ # in custom headers -+ kw['code'] = kw['fragment'] -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for custom code' -+ if not 'errmsg' in kw: -+ kw['errmsg'] = 'no' -+ -+ for (flagsname,flagstype) in [('cxxflags','compiler'), ('cflags','compiler'), ('linkflags','linker')]: -+ if flagsname in kw: -+ if not 'msg' in kw: -+ kw['msg'] = 'Checking for %s flags %s' % (flagstype, kw[flagsname]) -+ if not 'errmsg' in kw: -+ kw['errmsg'] = 'no' -+ -+ if not 'execute' in kw: -+ kw['execute'] = False -+ -+ if not 'errmsg' in kw: -+ kw['errmsg'] = 'not found' -+ -+ if not 'okmsg' in kw: -+ kw['okmsg'] = 'yes' -+ -+ if not 'code' in kw: -+ kw['code'] = SNIP3 -+ -+ if not kw.get('success'): kw['success'] = None -+ -+ assert 'msg' in kw, 'invalid parameters, read http://freehackers.org/~tnagy/wafbook/single.html#config_helpers_c' -+ -+@conf -+def post_check(self, *k, **kw): -+ "set the variables after a test was run successfully" -+ -+ is_success = False -+ if kw['execute']: -+ if kw['success'] is not None: -+ is_success = True -+ else: -+ is_success = (kw['success'] == 0) -+ -+ if 'define_name' in kw: -+ if 'header_name' in kw or 'function_name' in kw or 'type_name' in kw or 'fragment' in kw: -+ if kw['execute']: -+ key = kw['success'] -+ if isinstance(key, str): -+ if key: -+ self.define(kw['define_name'], key, quote=kw.get('quote', 1)) -+ else: -+ self.define_cond(kw['define_name'], True) -+ else: -+ self.define_cond(kw['define_name'], False) -+ else: -+ self.define_cond(kw['define_name'], is_success) -+ -+ if is_success and 'uselib_store' in kw: -+ import cc, cxx -+ for k in set(cc.g_cc_flag_vars).union(cxx.g_cxx_flag_vars): -+ lk = k.lower() -+ # inconsistency: includes -> CPPPATH -+ if k == 'CPPPATH': lk = 'includes' -+ if k == 'CXXDEFINES': lk = 'defines' -+ if k == 'CCDEFINES': lk = 'defines' -+ if lk in kw: -+ val = kw[lk] -+ # remove trailing slash -+ if isinstance(val, str): -+ val = val.rstrip(os.path.sep) -+ self.env.append_unique(k + '_' + kw['uselib_store'], val) -+ -+@conf -+def check(self, *k, **kw): -+ # so this will be the generic function -+ # it will be safer to use check_cxx or check_cc -+ self.validate_c(kw) -+ self.check_message_1(kw['msg']) -+ ret = None -+ try: -+ ret = self.run_c_code(*k, **kw) -+ except Configure.ConfigurationError, e: -+ self.check_message_2(kw['errmsg'], 'YELLOW') -+ if 'mandatory' in kw and kw['mandatory']: -+ if Logs.verbose > 1: -+ raise -+ else: -+ self.fatal('the configuration failed (see %r)' % self.log.name) -+ else: -+ kw['success'] = ret -+ self.check_message_2(self.ret_msg(kw['okmsg'], kw)) -+ -+ self.post_check(*k, **kw) -+ if not kw.get('execute', False): -+ return ret == 0 -+ return ret -+ -+@conf -+def run_c_code(self, *k, **kw): -+ test_f_name = kw['compile_filename'] -+ -+ k = 0 -+ while k < 10000: -+ # make certain to use a fresh folder - necessary for win32 -+ dir = os.path.join(self.blddir, '.conf_check_%d' % k) -+ -+ # if the folder already exists, remove it -+ try: -+ shutil.rmtree(dir) -+ except OSError: -+ pass -+ -+ try: -+ os.stat(dir) -+ except OSError: -+ break -+ -+ k += 1 -+ -+ try: -+ os.makedirs(dir) -+ except: -+ self.fatal('cannot create a configuration test folder %r' % dir) -+ -+ try: -+ os.stat(dir) -+ except: -+ self.fatal('cannot use the configuration test folder %r' % dir) -+ -+ bdir = os.path.join(dir, 'testbuild') -+ -+ if not os.path.exists(bdir): -+ os.makedirs(bdir) -+ -+ env = kw['env'] -+ -+ dest = open(os.path.join(dir, test_f_name), 'w') -+ dest.write(kw['code']) -+ dest.close() -+ -+ back = os.path.abspath('.') -+ -+ bld = Build.BuildContext() -+ bld.log = self.log -+ bld.all_envs.update(self.all_envs) -+ bld.all_envs['default'] = env -+ bld.lst_variants = bld.all_envs.keys() -+ bld.load_dirs(dir, bdir) -+ -+ os.chdir(dir) -+ -+ bld.rescan(bld.srcnode) -+ -+ if not 'features' in kw: -+ # conf.check(features='cc cprogram pyext', ...) -+ kw['features'] = [kw['compile_mode'], kw['type']] # "cprogram cc" -+ -+ o = bld(features=kw['features'], source=test_f_name, target='testprog') -+ -+ for k, v in kw.iteritems(): -+ setattr(o, k, v) -+ -+ self.log.write("==>\n%s\n<==\n" % kw['code']) -+ -+ # compile the program -+ try: -+ bld.compile() -+ except Utils.WafError: -+ ret = Utils.ex_stack() -+ else: -+ ret = 0 -+ -+ # chdir before returning -+ os.chdir(back) -+ -+ if ret: -+ self.log.write('command returned %r' % ret) -+ self.fatal(str(ret)) -+ -+ # if we need to run the program, try to get its result -+ # keep the name of the program to execute -+ if kw['execute']: -+ lastprog = o.link_task.outputs[0].abspath(env) -+ -+ args = Utils.to_list(kw.get('exec_args', [])) -+ proc = Utils.pproc.Popen([lastprog] + args, stdout=Utils.pproc.PIPE, stderr=Utils.pproc.PIPE) -+ (out, err) = proc.communicate() -+ w = self.log.write -+ w(str(out)) -+ w('\n') -+ w(str(err)) -+ w('\n') -+ w('returncode %r' % proc.returncode) -+ w('\n') -+ if proc.returncode: -+ self.fatal(Utils.ex_stack()) -+ ret = out -+ -+ return ret -+ -+@conf -+def check_cxx(self, *k, **kw): -+ kw['compiler'] = 'cxx' -+ return self.check(*k, **kw) -+ -+@conf -+def check_cc(self, *k, **kw): -+ kw['compiler'] = 'cc' -+ return self.check(*k, **kw) -+ -+@conf -+def define(self, define, value, quote=1): -+ """store a single define and its state into an internal list for later -+ writing to a config header file. Value can only be -+ a string or int; other types not supported. String -+ values will appear properly quoted in the generated -+ header file.""" -+ assert define and isinstance(define, str) -+ -+ # ordered_dict is for writing the configuration header in order -+ tbl = self.env[DEFINES] or Utils.ordered_dict() -+ -+ # the user forgot to tell if the value is quoted or not -+ if isinstance(value, str): -+ if quote: -+ tbl[define] = '"%s"' % repr('"'+value)[2:-1].replace('"', '\\"') -+ else: -+ tbl[define] = value -+ elif isinstance(value, int): -+ tbl[define] = value -+ else: -+ raise TypeError('define %r -> %r must be a string or an int' % (define, value)) -+ -+ # add later to make reconfiguring faster -+ self.env[DEFINES] = tbl -+ self.env[define] = value # <- not certain this is necessary -+ -+@conf -+def undefine(self, define): -+ """store a single define and its state into an internal list -+ for later writing to a config header file""" -+ assert define and isinstance(define, str) -+ -+ tbl = self.env[DEFINES] or Utils.ordered_dict() -+ -+ value = UNDEFINED -+ tbl[define] = value -+ -+ # add later to make reconfiguring faster -+ self.env[DEFINES] = tbl -+ self.env[define] = value -+ -+@conf -+def define_cond(self, name, value): -+ """Conditionally define a name. -+ Formally equivalent to: if value: define(name, 1) else: undefine(name)""" -+ if value: -+ self.define(name, 1) -+ else: -+ self.undefine(name) -+ -+@conf -+def is_defined(self, key): -+ defines = self.env[DEFINES] -+ if not defines: -+ return False -+ try: -+ value = defines[key] -+ except KeyError: -+ return False -+ else: -+ return value != UNDEFINED -+ -+@conf -+def get_define(self, define): -+ "get the value of a previously stored define" -+ try: return self.env[DEFINES][define] -+ except KeyError: return None -+ -+@conf -+def have_define(self, name): -+ "prefix the define with 'HAVE_' and make sure it has valid characters." -+ return self.__dict__.get('HAVE_PAT', 'HAVE_%s') % Utils.quote_define_name(name) -+ -+@conf -+def write_config_header(self, configfile='', env='', guard='', top=False): -+ "save the defines into a file" -+ if not configfile: configfile = WAF_CONFIG_H -+ waf_guard = guard or '_%s_WAF' % Utils.quote_define_name(configfile) -+ -+ # configfile -> absolute path -+ # there is a good reason to concatenate first and to split afterwards -+ if not env: env = self.env -+ if top: -+ diff = '' -+ else: -+ diff = Utils.diff_path(self.srcdir, self.curdir) -+ full = os.sep.join([self.blddir, env.variant(), diff, configfile]) -+ full = os.path.normpath(full) -+ (dir, base) = os.path.split(full) -+ -+ try: os.makedirs(dir) -+ except: pass -+ -+ dest = open(full, 'w') -+ dest.write('/* Configuration header created by Waf - do not edit */\n') -+ dest.write('#ifndef %s\n#define %s\n\n' % (waf_guard, waf_guard)) -+ -+ dest.write(self.get_config_header()) -+ -+ # config files are not removed on "waf clean" -+ env.append_unique(CFG_FILES, os.path.join(diff, configfile)) -+ -+ dest.write('\n#endif /* %s */\n' % waf_guard) -+ dest.close() -+ -+@conf -+def get_config_header(self): -+ """Fill-in the contents of the config header. Override when you need to write your own config header.""" -+ config_header = [] -+ -+ tbl = self.env[DEFINES] or Utils.ordered_dict() -+ for key in tbl.allkeys: -+ value = tbl[key] -+ if value is None: -+ config_header.append('#define %s' % key) -+ elif value is UNDEFINED: -+ config_header.append('/* #undef %s */' % key) -+ else: -+ config_header.append('#define %s %s' % (key, value)) -+ return "\n".join(config_header) -+ -+@conftest -+def find_cpp(conf): -+ v = conf.env -+ cpp = [] -+ if v['CPP']: cpp = v['CPP'] -+ elif 'CPP' in conf.environ: cpp = conf.environ['CPP'] -+ if not cpp: cpp = conf.find_program('cpp', var='CPP') -+ #if not cpp: cpp = v['CC'] -+ #if not cpp: cpp = v['CXX'] -+ v['CPP'] = cpp -+ -+@conftest -+def cc_add_flags(conf): -+ conf.add_os_flags('CFLAGS', 'CCFLAGS') -+ conf.add_os_flags('CPPFLAGS') -+ -+@conftest -+def cxx_add_flags(conf): -+ conf.add_os_flags('CXXFLAGS') -+ conf.add_os_flags('CPPFLAGS') -+ -+@conftest -+def link_add_flags(conf): -+ conf.add_os_flags('LINKFLAGS') -+ conf.add_os_flags('LDFLAGS', 'LINKFLAGS') -+ -+@conftest -+def cc_load_tools(conf): -+ conf.check_tool('cc') -+ -+@conftest -+def cxx_load_tools(conf): -+ conf.check_tool('cxx') -+ -diff --git a/buildtools/wafadmin/Tools/cs.py b/buildtools/wafadmin/Tools/cs.py -new file mode 100644 -index 0000000..4354485 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/cs.py -@@ -0,0 +1,68 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+"C# support" -+ -+import TaskGen, Utils, Task, Options -+from Logs import error -+from TaskGen import before, after, taskgen, feature -+ -+flag_vars= ['FLAGS', 'ASSEMBLIES'] -+ -+@feature('cs') -+def init_cs(self): -+ Utils.def_attrs(self, -+ flags = '', -+ assemblies = '', -+ resources = '', -+ uselib = '') -+ -+@feature('cs') -+@after('init_cs') -+def apply_uselib_cs(self): -+ if not self.uselib: -+ return -+ global flag_vars -+ for var in self.to_list(self.uselib): -+ for v in self.flag_vars: -+ val = self.env[v+'_'+var] -+ if val: self.env.append_value(v, val) -+ -+@feature('cs') -+@after('apply_uselib_cs') -+@before('apply_core') -+def apply_cs(self): -+ try: self.meths.remove('apply_core') -+ except ValueError: pass -+ -+ # process the flags for the assemblies -+ for i in self.to_list(self.assemblies) + self.env['ASSEMBLIES']: -+ self.env.append_unique('_ASSEMBLIES', '/r:'+i) -+ -+ # process the flags for the resources -+ for i in self.to_list(self.resources): -+ self.env.append_unique('_RESOURCES', '/resource:'+i) -+ -+ # what kind of assembly are we generating? -+ self.env['_TYPE'] = getattr(self, 'type', 'exe') -+ -+ # additional flags -+ self.env.append_unique('_FLAGS', self.to_list(self.flags)) -+ self.env.append_unique('_FLAGS', self.env.FLAGS) -+ -+ # process the sources -+ nodes = [self.path.find_resource(i) for i in self.to_list(self.source)] -+ self.create_task('mcs', nodes, self.path.find_or_declare(self.target)) -+ -+Task.simple_task_type('mcs', '${MCS} ${SRC} /target:${_TYPE} /out:${TGT} ${_FLAGS} ${_ASSEMBLIES} ${_RESOURCES}', color='YELLOW') -+ -+def detect(conf): -+ csc = getattr(Options.options, 'cscbinary', None) -+ if csc: -+ conf.env.MCS = csc -+ conf.find_program(['gmcs', 'mcs'], var='MCS') -+ -+def set_options(opt): -+ opt.add_option('--with-csc-binary', type='string', dest='cscbinary') -+ -diff --git a/buildtools/wafadmin/Tools/cxx.py b/buildtools/wafadmin/Tools/cxx.py -new file mode 100644 -index 0000000..719b821 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/cxx.py -@@ -0,0 +1,104 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005 (ita) -+ -+"Base for c++ programs and libraries" -+ -+import TaskGen, Task, Utils -+from Logs import debug -+import ccroot # <- do not remove -+from TaskGen import feature, before, extension, after -+ -+g_cxx_flag_vars = [ -+'CXXDEPS', 'FRAMEWORK', 'FRAMEWORKPATH', -+'STATICLIB', 'LIB', 'LIBPATH', 'LINKFLAGS', 'RPATH', -+'CXXFLAGS', 'CCFLAGS', 'CPPPATH', 'CPPFLAGS', 'CXXDEFINES'] -+"main cpp variables" -+ -+EXT_CXX = ['.cpp', '.cc', '.cxx', '.C', '.c++'] -+ -+g_cxx_type_vars=['CXXFLAGS', 'LINKFLAGS'] -+ -+# TODO remove in waf 1.6 -+class cxx_taskgen(ccroot.ccroot_abstract): -+ pass -+ -+@feature('cxx') -+@before('apply_type_vars') -+@after('default_cc') -+def init_cxx(self): -+ if not 'cc' in self.features: -+ self.mappings['.c'] = TaskGen.task_gen.mappings['.cxx'] -+ -+ self.p_flag_vars = set(self.p_flag_vars).union(g_cxx_flag_vars) -+ self.p_type_vars = set(self.p_type_vars).union(g_cxx_type_vars) -+ -+ if not self.env['CXX_NAME']: -+ raise Utils.WafError("At least one compiler (g++, ..) must be selected") -+ -+@feature('cxx') -+@after('apply_incpaths') -+def apply_obj_vars_cxx(self): -+ """after apply_incpaths for INC_PATHS""" -+ env = self.env -+ app = env.append_unique -+ cxxpath_st = env['CPPPATH_ST'] -+ -+ # local flags come first -+ # set the user-defined includes paths -+ for i in env['INC_PATHS']: -+ app('_CXXINCFLAGS', cxxpath_st % i.bldpath(env)) -+ app('_CXXINCFLAGS', cxxpath_st % i.srcpath(env)) -+ -+ # set the library include paths -+ for i in env['CPPPATH']: -+ app('_CXXINCFLAGS', cxxpath_st % i) -+ -+@feature('cxx') -+@after('apply_lib_vars') -+def apply_defines_cxx(self): -+ """after uselib is set for CXXDEFINES""" -+ self.defines = getattr(self, 'defines', []) -+ lst = self.to_list(self.defines) + self.to_list(self.env['CXXDEFINES']) -+ milst = [] -+ -+ # now process the local defines -+ for defi in lst: -+ if not defi in milst: -+ milst.append(defi) -+ -+ # CXXDEFINES_USELIB -+ libs = self.to_list(self.uselib) -+ for l in libs: -+ val = self.env['CXXDEFINES_'+l] -+ if val: milst += self.to_list(val) -+ -+ self.env['DEFLINES'] = ["%s %s" % (x[0], Utils.trimquotes('='.join(x[1:]))) for x in [y.split('=') for y in milst]] -+ y = self.env['CXXDEFINES_ST'] -+ self.env.append_unique('_CXXDEFFLAGS', [y%x for x in milst]) -+ -+@extension(EXT_CXX) -+def cxx_hook(self, node): -+ # create the compilation task: cpp or cc -+ if getattr(self, 'obj_ext', None): -+ obj_ext = self.obj_ext -+ else: -+ obj_ext = '_%d.o' % self.idx -+ -+ task = self.create_task('cxx', node, node.change_ext(obj_ext)) -+ try: -+ self.compiled_tasks.append(task) -+ except AttributeError: -+ raise Utils.WafError('Have you forgotten to set the feature "cxx" on %s?' % str(self)) -+ return task -+ -+cxx_str = '${CXX} ${CXXFLAGS} ${CPPFLAGS} ${_CXXINCFLAGS} ${_CXXDEFFLAGS} ${CXX_SRC_F}${SRC} ${CXX_TGT_F}${TGT}' -+cls = Task.simple_task_type('cxx', cxx_str, color='GREEN', ext_out='.o', ext_in='.cxx', shell=False) -+cls.scan = ccroot.scan -+cls.vars.append('CXXDEPS') -+ -+link_str = '${LINK_CXX} ${CXXLNK_SRC_F}${SRC} ${CXXLNK_TGT_F}${TGT[0].abspath(env)} ${LINKFLAGS}' -+cls = Task.simple_task_type('cxx_link', link_str, color='YELLOW', ext_in='.o', ext_out='.bin', shell=False) -+cls.maxjobs = 1 -+cls.install = Utils.nada -+ -diff --git a/buildtools/wafadmin/Tools/d.py b/buildtools/wafadmin/Tools/d.py -new file mode 100644 -index 0000000..1a22821 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/d.py -@@ -0,0 +1,535 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Carlos Rafael Giani, 2007 (dv) -+# Thomas Nagy, 2007-2008 (ita) -+ -+import os, sys, re, optparse -+import ccroot # <- leave this -+import TaskGen, Utils, Task, Configure, Logs, Build -+from Logs import debug, error -+from TaskGen import taskgen, feature, after, before, extension -+from Configure import conftest -+ -+EXT_D = ['.d', '.di', '.D'] -+D_METHS = ['apply_core', 'apply_vnum', 'apply_objdeps'] # additional d methods -+ -+DLIB = """ -+version(D_Version2) { -+ import std.stdio; -+ int main() { -+ writefln("phobos2"); -+ return 0; -+ } -+} else { -+ version(Tango) { -+ import tango.stdc.stdio; -+ int main() { -+ printf("tango"); -+ return 0; -+ } -+ } else { -+ import std.stdio; -+ int main() { -+ writefln("phobos1"); -+ return 0; -+ } -+ } -+} -+""" -+ -+def filter_comments(filename): -+ txt = Utils.readf(filename) -+ i = 0 -+ buf = [] -+ max = len(txt) -+ begin = 0 -+ while i < max: -+ c = txt[i] -+ if c == '"' or c == "'": # skip a string or character literal -+ buf.append(txt[begin:i]) -+ delim = c -+ i += 1 -+ while i < max: -+ c = txt[i] -+ if c == delim: break -+ elif c == '\\': # skip the character following backslash -+ i += 1 -+ i += 1 -+ i += 1 -+ begin = i -+ elif c == '/': # try to replace a comment with whitespace -+ buf.append(txt[begin:i]) -+ i += 1 -+ if i == max: break -+ c = txt[i] -+ if c == '+': # eat nesting /+ +/ comment -+ i += 1 -+ nesting = 1 -+ c = None -+ while i < max: -+ prev = c -+ c = txt[i] -+ if prev == '/' and c == '+': -+ nesting += 1 -+ c = None -+ elif prev == '+' and c == '/': -+ nesting -= 1 -+ if nesting == 0: break -+ c = None -+ i += 1 -+ elif c == '*': # eat /* */ comment -+ i += 1 -+ c = None -+ while i < max: -+ prev = c -+ c = txt[i] -+ if prev == '*' and c == '/': break -+ i += 1 -+ elif c == '/': # eat // comment -+ i += 1 -+ while i < max and txt[i] != '\n': -+ i += 1 -+ else: # no comment -+ begin = i - 1 -+ continue -+ i += 1 -+ begin = i -+ buf.append(' ') -+ else: -+ i += 1 -+ buf.append(txt[begin:]) -+ return buf -+ -+class d_parser(object): -+ def __init__(self, env, incpaths): -+ #self.code = '' -+ #self.module = '' -+ #self.imports = [] -+ -+ self.allnames = [] -+ -+ self.re_module = re.compile("module\s+([^;]+)") -+ self.re_import = re.compile("import\s+([^;]+)") -+ self.re_import_bindings = re.compile("([^:]+):(.*)") -+ self.re_import_alias = re.compile("[^=]+=(.+)") -+ -+ self.env = env -+ -+ self.nodes = [] -+ self.names = [] -+ -+ self.incpaths = incpaths -+ -+ def tryfind(self, filename): -+ found = 0 -+ for n in self.incpaths: -+ found = n.find_resource(filename.replace('.', '/') + '.d') -+ if found: -+ self.nodes.append(found) -+ self.waiting.append(found) -+ break -+ if not found: -+ if not filename in self.names: -+ self.names.append(filename) -+ -+ def get_strings(self, code): -+ #self.imports = [] -+ self.module = '' -+ lst = [] -+ -+ # get the module name (if present) -+ -+ mod_name = self.re_module.search(code) -+ if mod_name: -+ self.module = re.sub('\s+', '', mod_name.group(1)) # strip all whitespaces -+ -+ # go through the code, have a look at all import occurrences -+ -+ # first, lets look at anything beginning with "import" and ending with ";" -+ import_iterator = self.re_import.finditer(code) -+ if import_iterator: -+ for import_match in import_iterator: -+ import_match_str = re.sub('\s+', '', import_match.group(1)) # strip all whitespaces -+ -+ # does this end with an import bindings declaration? -+ # (import bindings always terminate the list of imports) -+ bindings_match = self.re_import_bindings.match(import_match_str) -+ if bindings_match: -+ import_match_str = bindings_match.group(1) -+ # if so, extract the part before the ":" (since the module declaration(s) is/are located there) -+ -+ # split the matching string into a bunch of strings, separated by a comma -+ matches = import_match_str.split(',') -+ -+ for match in matches: -+ alias_match = self.re_import_alias.match(match) -+ if alias_match: -+ # is this an alias declaration? (alias = module name) if so, extract the module name -+ match = alias_match.group(1) -+ -+ lst.append(match) -+ return lst -+ -+ def start(self, node): -+ self.waiting = [node] -+ # while the stack is not empty, add the dependencies -+ while self.waiting: -+ nd = self.waiting.pop(0) -+ self.iter(nd) -+ -+ def iter(self, node): -+ path = node.abspath(self.env) # obtain the absolute path -+ code = "".join(filter_comments(path)) # read the file and filter the comments -+ names = self.get_strings(code) # obtain the import strings -+ for x in names: -+ # optimization -+ if x in self.allnames: continue -+ self.allnames.append(x) -+ -+ # for each name, see if it is like a node or not -+ self.tryfind(x) -+ -+def scan(self): -+ "look for .d/.di the .d source need" -+ env = self.env -+ gruik = d_parser(env, env['INC_PATHS']) -+ gruik.start(self.inputs[0]) -+ -+ if Logs.verbose: -+ debug('deps: nodes found for %s: %s %s' % (str(self.inputs[0]), str(gruik.nodes), str(gruik.names))) -+ #debug("deps found for %s: %s" % (str(node), str(gruik.deps)), 'deps') -+ return (gruik.nodes, gruik.names) -+ -+def get_target_name(self): -+ "for d programs and libs" -+ v = self.env -+ tp = 'program' -+ for x in self.features: -+ if x in ['dshlib', 'dstaticlib']: -+ tp = x.lstrip('d') -+ return v['D_%s_PATTERN' % tp] % self.target -+ -+d_params = { -+'dflags': '', -+'importpaths':'', -+'libs':'', -+'libpaths':'', -+'generate_headers':False, -+} -+ -+@feature('d') -+@before('apply_type_vars') -+def init_d(self): -+ for x in d_params: -+ setattr(self, x, getattr(self, x, d_params[x])) -+ -+class d_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+ # COMPAT -+ if len(k) > 1: -+ self.features.append('d' + k[1]) -+ -+# okay, we borrow a few methods from ccroot -+TaskGen.bind_feature('d', D_METHS) -+ -+@feature('d') -+@before('apply_d_libs') -+def init_d(self): -+ Utils.def_attrs(self, -+ dflags='', -+ importpaths='', -+ libs='', -+ libpaths='', -+ uselib='', -+ uselib_local='', -+ generate_headers=False, # set to true if you want .di files as well as .o -+ compiled_tasks=[], -+ add_objects=[], -+ link_task=None) -+ -+@feature('d') -+@after('apply_d_link', 'init_d') -+@before('apply_vnum', 'apply_d_vars') -+def apply_d_libs(self): -+ """after apply_link because of 'link_task' -+ after default_cc because of the attribute 'uselib'""" -+ env = self.env -+ -+ # 1. the case of the libs defined in the project (visit ancestors first) -+ # the ancestors external libraries (uselib) will be prepended -+ self.uselib = self.to_list(self.uselib) -+ names = self.to_list(self.uselib_local) -+ -+ seen = set([]) -+ tmp = Utils.deque(names) # consume a copy of the list of names -+ while tmp: -+ lib_name = tmp.popleft() -+ # visit dependencies only once -+ if lib_name in seen: -+ continue -+ -+ y = self.name_to_obj(lib_name) -+ if not y: -+ raise Utils.WafError('object %r was not found in uselib_local (required by %r)' % (lib_name, self.name)) -+ y.post() -+ seen.add(lib_name) -+ -+ # object has ancestors to process (shared libraries): add them to the end of the list -+ if getattr(y, 'uselib_local', None): -+ lst = y.to_list(y.uselib_local) -+ if 'dshlib' in y.features or 'dprogram' in y.features: -+ lst = [x for x in lst if not 'dstaticlib' in self.name_to_obj(x).features] -+ tmp.extend(lst) -+ -+ # link task and flags -+ if getattr(y, 'link_task', None): -+ -+ link_name = y.target[y.target.rfind(os.sep) + 1:] -+ if 'dstaticlib' in y.features or 'dshlib' in y.features: -+ env.append_unique('DLINKFLAGS', env.DLIB_ST % link_name) -+ env.append_unique('DLINKFLAGS', env.DLIBPATH_ST % y.link_task.outputs[0].parent.bldpath(env)) -+ -+ # the order -+ self.link_task.set_run_after(y.link_task) -+ -+ # for the recompilation -+ dep_nodes = getattr(self.link_task, 'dep_nodes', []) -+ self.link_task.dep_nodes = dep_nodes + y.link_task.outputs -+ -+ # add ancestors uselib too - but only propagate those that have no staticlib -+ for v in self.to_list(y.uselib): -+ if not v in self.uselib: -+ self.uselib.insert(0, v) -+ -+ # if the library task generator provides 'export_incdirs', add to the include path -+ # the export_incdirs must be a list of paths relative to the other library -+ if getattr(y, 'export_incdirs', None): -+ for x in self.to_list(y.export_incdirs): -+ node = y.path.find_dir(x) -+ if not node: -+ raise Utils.WafError('object %r: invalid folder %r in export_incdirs' % (y.target, x)) -+ self.env.append_unique('INC_PATHS', node) -+ -+@feature('dprogram', 'dshlib', 'dstaticlib') -+@after('apply_core') -+def apply_d_link(self): -+ link = getattr(self, 'link', None) -+ if not link: -+ if 'dstaticlib' in self.features: link = 'static_link' -+ else: link = 'd_link' -+ -+ outputs = [t.outputs[0] for t in self.compiled_tasks] -+ self.link_task = self.create_task(link, outputs, self.path.find_or_declare(get_target_name(self))) -+ -+@feature('d') -+@after('apply_core') -+def apply_d_vars(self): -+ env = self.env -+ dpath_st = env['DPATH_ST'] -+ lib_st = env['DLIB_ST'] -+ libpath_st = env['DLIBPATH_ST'] -+ -+ importpaths = self.to_list(self.importpaths) -+ libpaths = [] -+ libs = [] -+ uselib = self.to_list(self.uselib) -+ -+ for i in uselib: -+ if env['DFLAGS_' + i]: -+ env.append_unique('DFLAGS', env['DFLAGS_' + i]) -+ -+ for x in self.features: -+ if not x in ['dprogram', 'dstaticlib', 'dshlib']: -+ continue -+ x.lstrip('d') -+ d_shlib_dflags = env['D_' + x + '_DFLAGS'] -+ if d_shlib_dflags: -+ env.append_unique('DFLAGS', d_shlib_dflags) -+ -+ # add import paths -+ for i in uselib: -+ if env['DPATH_' + i]: -+ for entry in self.to_list(env['DPATH_' + i]): -+ if not entry in importpaths: -+ importpaths.append(entry) -+ -+ # now process the import paths -+ for path in importpaths: -+ if os.path.isabs(path): -+ env.append_unique('_DIMPORTFLAGS', dpath_st % path) -+ else: -+ node = self.path.find_dir(path) -+ self.env.append_unique('INC_PATHS', node) -+ env.append_unique('_DIMPORTFLAGS', dpath_st % node.srcpath(env)) -+ env.append_unique('_DIMPORTFLAGS', dpath_st % node.bldpath(env)) -+ -+ # add library paths -+ for i in uselib: -+ if env['LIBPATH_' + i]: -+ for entry in self.to_list(env['LIBPATH_' + i]): -+ if not entry in libpaths: -+ libpaths.append(entry) -+ libpaths = self.to_list(self.libpaths) + libpaths -+ -+ # now process the library paths -+ # apply same path manipulation as used with import paths -+ for path in libpaths: -+ if not os.path.isabs(path): -+ node = self.path.find_resource(path) -+ if not node: -+ raise Utils.WafError('could not find libpath %r from %r' % (path, self)) -+ path = node.abspath(self.env) -+ -+ env.append_unique('DLINKFLAGS', libpath_st % path) -+ -+ # add libraries -+ for i in uselib: -+ if env['LIB_' + i]: -+ for entry in self.to_list(env['LIB_' + i]): -+ if not entry in libs: -+ libs.append(entry) -+ libs.extend(self.to_list(self.libs)) -+ -+ # process user flags -+ for flag in self.to_list(self.dflags): -+ env.append_unique('DFLAGS', flag) -+ -+ # now process the libraries -+ for lib in libs: -+ env.append_unique('DLINKFLAGS', lib_st % lib) -+ -+ # add linker flags -+ for i in uselib: -+ dlinkflags = env['DLINKFLAGS_' + i] -+ if dlinkflags: -+ for linkflag in dlinkflags: -+ env.append_unique('DLINKFLAGS', linkflag) -+ -+@feature('dshlib') -+@after('apply_d_vars') -+def add_shlib_d_flags(self): -+ for linkflag in self.env['D_shlib_LINKFLAGS']: -+ self.env.append_unique('DLINKFLAGS', linkflag) -+ -+@extension(EXT_D) -+def d_hook(self, node): -+ # create the compilation task: cpp or cc -+ task = self.create_task(self.generate_headers and 'd_with_header' or 'd') -+ try: obj_ext = self.obj_ext -+ except AttributeError: obj_ext = '_%d.o' % self.idx -+ -+ task.inputs = [node] -+ task.outputs = [node.change_ext(obj_ext)] -+ self.compiled_tasks.append(task) -+ -+ if self.generate_headers: -+ header_node = node.change_ext(self.env['DHEADER_ext']) -+ task.outputs += [header_node] -+ -+d_str = '${D_COMPILER} ${DFLAGS} ${_DIMPORTFLAGS} ${D_SRC_F}${SRC} ${D_TGT_F}${TGT}' -+d_with_header_str = '${D_COMPILER} ${DFLAGS} ${_DIMPORTFLAGS} \ -+${D_HDR_F}${TGT[1].bldpath(env)} \ -+${D_SRC_F}${SRC} \ -+${D_TGT_F}${TGT[0].bldpath(env)}' -+link_str = '${D_LINKER} ${DLNK_SRC_F}${SRC} ${DLNK_TGT_F}${TGT} ${DLINKFLAGS}' -+ -+def override_exec(cls): -+ """stupid dmd wants -of stuck to the file name""" -+ old_exec = cls.exec_command -+ def exec_command(self, *k, **kw): -+ if isinstance(k[0], list): -+ lst = k[0] -+ for i in xrange(len(lst)): -+ if lst[i] == '-of': -+ del lst[i] -+ lst[i] = '-of' + lst[i] -+ break -+ return old_exec(self, *k, **kw) -+ cls.exec_command = exec_command -+ -+cls = Task.simple_task_type('d', d_str, 'GREEN', before='static_link d_link', shell=False) -+cls.scan = scan -+override_exec(cls) -+ -+cls = Task.simple_task_type('d_with_header', d_with_header_str, 'GREEN', before='static_link d_link', shell=False) -+override_exec(cls) -+ -+cls = Task.simple_task_type('d_link', link_str, color='YELLOW', shell=False) -+override_exec(cls) -+ -+# for feature request #104 -+@taskgen -+def generate_header(self, filename, install_path): -+ if not hasattr(self, 'header_lst'): self.header_lst = [] -+ self.meths.append('process_header') -+ self.header_lst.append([filename, install_path]) -+ -+@before('apply_core') -+def process_header(self): -+ env = self.env -+ for i in getattr(self, 'header_lst', []): -+ node = self.path.find_resource(i[0]) -+ -+ if not node: -+ raise Utils.WafError('file not found on d obj '+i[0]) -+ -+ task = self.create_task('d_header') -+ task.set_inputs(node) -+ task.set_outputs(node.change_ext('.di')) -+ -+d_header_str = '${D_COMPILER} ${D_HEADER} ${SRC}' -+Task.simple_task_type('d_header', d_header_str, color='BLUE', shell=False) -+ -+@conftest -+def d_platform_flags(conf): -+ v = conf.env -+ binfmt = v.DEST_BINFMT or Utils.unversioned_sys_platform_to_binary_format( -+ v.DEST_OS or Utils.unversioned_sys_platform()) -+ if binfmt == 'pe': -+ v['D_program_PATTERN'] = '%s.exe' -+ v['D_shlib_PATTERN'] = 'lib%s.dll' -+ v['D_staticlib_PATTERN'] = 'lib%s.a' -+ else: -+ v['D_program_PATTERN'] = '%s' -+ v['D_shlib_PATTERN'] = 'lib%s.so' -+ v['D_staticlib_PATTERN'] = 'lib%s.a' -+ -+@conftest -+def check_dlibrary(conf): -+ ret = conf.check_cc(features='d dprogram', fragment=DLIB, mandatory=True, compile_filename='test.d', execute=True) -+ conf.env.DLIBRARY = ret.strip() -+ -+# quick test # -+if __name__ == "__main__": -+ #Logs.verbose = 2 -+ -+ try: arg = sys.argv[1] -+ except IndexError: arg = "file.d" -+ -+ print("".join(filter_comments(arg))) -+ # TODO -+ paths = ['.'] -+ -+ #gruik = filter() -+ #gruik.start(arg) -+ -+ #code = "".join(gruik.buf) -+ -+ #print "we have found the following code" -+ #print code -+ -+ #print "now parsing" -+ #print "-------------------------------------------" -+ """ -+ parser_ = d_parser() -+ parser_.start(arg) -+ -+ print "module: %s" % parser_.module -+ print "imports: ", -+ for imp in parser_.imports: -+ print imp + " ", -+ print -+""" -+ -diff --git a/buildtools/wafadmin/Tools/dbus.py b/buildtools/wafadmin/Tools/dbus.py -new file mode 100644 -index 0000000..3179999 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/dbus.py -@@ -0,0 +1,34 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Ali Sabil, 2007 -+ -+import Task, Utils -+from TaskGen import taskgen, before, after, feature -+ -+@taskgen -+def add_dbus_file(self, filename, prefix, mode): -+ if not hasattr(self, 'dbus_lst'): -+ self.dbus_lst = [] -+ self.meths.append('process_dbus') -+ self.dbus_lst.append([filename, prefix, mode]) -+ -+@before('apply_core') -+def process_dbus(self): -+ for filename, prefix, mode in getattr(self, 'dbus_lst', []): -+ node = self.path.find_resource(filename) -+ -+ if not node: -+ raise Utils.WafError('file not found ' + filename) -+ -+ tsk = self.create_task('dbus_binding_tool', node, node.change_ext('.h')) -+ -+ tsk.env.DBUS_BINDING_TOOL_PREFIX = prefix -+ tsk.env.DBUS_BINDING_TOOL_MODE = mode -+ -+Task.simple_task_type('dbus_binding_tool', -+ '${DBUS_BINDING_TOOL} --prefix=${DBUS_BINDING_TOOL_PREFIX} --mode=${DBUS_BINDING_TOOL_MODE} --output=${TGT} ${SRC}', -+ color='BLUE', before='cc') -+ -+def detect(conf): -+ dbus_binding_tool = conf.find_program('dbus-binding-tool', var='DBUS_BINDING_TOOL') -+ -diff --git a/buildtools/wafadmin/Tools/dmd.py b/buildtools/wafadmin/Tools/dmd.py -new file mode 100644 -index 0000000..9c74908 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/dmd.py -@@ -0,0 +1,64 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Carlos Rafael Giani, 2007 (dv) -+# Thomas Nagy, 2008 (ita) -+ -+import sys -+import Utils, ar -+from Configure import conftest -+ -+@conftest -+def find_dmd(conf): -+ conf.find_program(['dmd', 'ldc'], var='D_COMPILER', mandatory=True) -+ -+@conftest -+def common_flags_ldc(conf): -+ v = conf.env -+ v['DFLAGS'] = ['-d-version=Posix'] -+ v['DLINKFLAGS'] = [] -+ v['D_shlib_DFLAGS'] = ['-relocation-model=pic'] -+ -+@conftest -+def common_flags_dmd(conf): -+ v = conf.env -+ -+ # _DFLAGS _DIMPORTFLAGS -+ -+ # Compiler is dmd so 'gdc' part will be ignored, just -+ # ensure key is there, so wscript can append flags to it -+ v['DFLAGS'] = ['-version=Posix'] -+ -+ v['D_SRC_F'] = '' -+ v['D_TGT_F'] = ['-c', '-of'] -+ v['DPATH_ST'] = '-I%s' # template for adding import paths -+ -+ # linker -+ v['D_LINKER'] = v['D_COMPILER'] -+ v['DLNK_SRC_F'] = '' -+ v['DLNK_TGT_F'] = '-of' -+ -+ v['DLIB_ST'] = '-L-l%s' # template for adding libs -+ v['DLIBPATH_ST'] = '-L-L%s' # template for adding libpaths -+ -+ # linker debug levels -+ v['DFLAGS_OPTIMIZED'] = ['-O'] -+ v['DFLAGS_DEBUG'] = ['-g', '-debug'] -+ v['DFLAGS_ULTRADEBUG'] = ['-g', '-debug'] -+ v['DLINKFLAGS'] = ['-quiet'] -+ -+ v['D_shlib_DFLAGS'] = ['-fPIC'] -+ v['D_shlib_LINKFLAGS'] = ['-L-shared'] -+ -+ v['DHEADER_ext'] = '.di' -+ v['D_HDR_F'] = ['-H', '-Hf'] -+ -+def detect(conf): -+ conf.find_dmd() -+ conf.check_tool('ar') -+ conf.check_tool('d') -+ conf.common_flags_dmd() -+ conf.d_platform_flags() -+ -+ if conf.env.D_COMPILER.find('ldc') > -1: -+ conf.common_flags_ldc() -+ -diff --git a/buildtools/wafadmin/Tools/flex.py b/buildtools/wafadmin/Tools/flex.py -new file mode 100644 -index 0000000..5ce9f22 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/flex.py -@@ -0,0 +1,25 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# John O'Meara, 2006 -+# Thomas Nagy, 2006-2008 -+ -+"Flex processing" -+ -+import TaskGen -+ -+def decide_ext(self, node): -+ if 'cxx' in self.features: return '.lex.cc' -+ else: return '.lex.c' -+ -+TaskGen.declare_chain( -+ name = 'flex', -+ rule = '${FLEX} -o${TGT} ${FLEXFLAGS} ${SRC}', -+ ext_in = '.l', -+ ext_out = '.c .cxx', -+ decider = decide_ext -+) -+ -+def detect(conf): -+ conf.find_program('flex', var='FLEX', mandatory=True) -+ conf.env['FLEXFLAGS'] = '' -+ -diff --git a/buildtools/wafadmin/Tools/gas.py b/buildtools/wafadmin/Tools/gas.py -new file mode 100644 -index 0000000..c983b0a ---- /dev/null -+++ b/buildtools/wafadmin/Tools/gas.py -@@ -0,0 +1,38 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2008 (ita) -+ -+"as and gas" -+ -+import os, sys -+import Task -+from TaskGen import extension, taskgen, after, before -+ -+EXT_ASM = ['.s', '.S', '.asm', '.ASM', '.spp', '.SPP'] -+ -+as_str = '${AS} ${ASFLAGS} ${_ASINCFLAGS} ${SRC} -o ${TGT}' -+Task.simple_task_type('asm', as_str, 'PINK', ext_out='.o', shell=False) -+ -+@extension(EXT_ASM) -+def asm_hook(self, node): -+ # create the compilation task: cpp or cc -+ try: obj_ext = self.obj_ext -+ except AttributeError: obj_ext = '_%d.o' % self.idx -+ -+ task = self.create_task('asm', node, node.change_ext(obj_ext)) -+ self.compiled_tasks.append(task) -+ self.meths.append('asm_incflags') -+ -+@after('apply_obj_vars_cc') -+@after('apply_obj_vars_cxx') -+@before('apply_link') -+def asm_incflags(self): -+ self.env.append_value('_ASINCFLAGS', self.env.ASINCFLAGS) -+ var = ('cxx' in self.features) and 'CXX' or 'CC' -+ self.env.append_value('_ASINCFLAGS', self.env['_%sINCFLAGS' % var]) -+ -+def detect(conf): -+ conf.find_program(['gas', 'as'], var='AS') -+ if not conf.env.AS: conf.env.AS = conf.env.CC -+ #conf.env.ASFLAGS = ['-c'] <- may be necesary for .S files -+ -diff --git a/buildtools/wafadmin/Tools/gcc.py b/buildtools/wafadmin/Tools/gcc.py -new file mode 100644 -index 0000000..420b44f ---- /dev/null -+++ b/buildtools/wafadmin/Tools/gcc.py -@@ -0,0 +1,135 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006-2008 (ita) -+# Ralf Habacker, 2006 (rh) -+# Yinon Ehrlich, 2009 -+ -+import os, sys -+import Configure, Options, Utils -+import ccroot, ar -+from Configure import conftest -+ -+@conftest -+def find_gcc(conf): -+ cc = conf.find_program(['gcc', 'cc'], var='CC', mandatory=True) -+ cc = conf.cmd_to_list(cc) -+ ccroot.get_cc_version(conf, cc, gcc=True) -+ conf.env.CC_NAME = 'gcc' -+ conf.env.CC = cc -+ -+@conftest -+def gcc_common_flags(conf): -+ v = conf.env -+ -+ # CPPFLAGS CCDEFINES _CCINCFLAGS _CCDEFFLAGS -+ -+ v['CCFLAGS_DEBUG'] = ['-g'] -+ -+ v['CCFLAGS_RELEASE'] = ['-O2'] -+ -+ v['CC_SRC_F'] = '' -+ v['CC_TGT_F'] = ['-c', '-o', ''] # shell hack for -MD -+ v['CPPPATH_ST'] = '-I%s' # template for adding include paths -+ -+ # linker -+ if not v['LINK_CC']: v['LINK_CC'] = v['CC'] -+ v['CCLNK_SRC_F'] = '' -+ v['CCLNK_TGT_F'] = ['-o', ''] # shell hack for -MD -+ -+ v['LIB_ST'] = '-l%s' # template for adding libs -+ v['LIBPATH_ST'] = '-L%s' # template for adding libpaths -+ v['STATICLIB_ST'] = '-l%s' -+ v['STATICLIBPATH_ST'] = '-L%s' -+ v['RPATH_ST'] = '-Wl,-rpath,%s' -+ v['CCDEFINES_ST'] = '-D%s' -+ -+ v['SONAME_ST'] = '-Wl,-h,%s' -+ v['SHLIB_MARKER'] = '-Wl,-Bdynamic' -+ v['STATICLIB_MARKER'] = '-Wl,-Bstatic' -+ v['FULLSTATIC_MARKER'] = '-static' -+ -+ # program -+ v['program_PATTERN'] = '%s' -+ -+ # shared library -+ v['shlib_CCFLAGS'] = ['-fPIC', '-DPIC'] # avoid using -DPIC, -fPIC aleady defines the __PIC__ macro -+ v['shlib_LINKFLAGS'] = ['-shared'] -+ v['shlib_PATTERN'] = 'lib%s.so' -+ -+ # static lib -+ v['staticlib_LINKFLAGS'] = ['-Wl,-Bstatic'] -+ v['staticlib_PATTERN'] = 'lib%s.a' -+ -+ # osx stuff -+ v['LINKFLAGS_MACBUNDLE'] = ['-bundle', '-undefined', 'dynamic_lookup'] -+ v['CCFLAGS_MACBUNDLE'] = ['-fPIC'] -+ v['macbundle_PATTERN'] = '%s.bundle' -+ -+@conftest -+def gcc_modifier_win32(conf): -+ v = conf.env -+ v['program_PATTERN'] = '%s.exe' -+ -+ v['shlib_PATTERN'] = '%s.dll' -+ v['implib_PATTERN'] = 'lib%s.dll.a' -+ v['IMPLIB_ST'] = '-Wl,--out-implib,%s' -+ -+ dest_arch = v['DEST_CPU'] -+ v['shlib_CCFLAGS'] = ['-DPIC'] -+ -+ v.append_value('shlib_CCFLAGS', '-DDLL_EXPORT') # TODO adding nonstandard defines like this DLL_EXPORT is not a good idea -+ -+ # Auto-import is enabled by default even without this option, -+ # but enabling it explicitly has the nice effect of suppressing the rather boring, debug-level messages -+ # that the linker emits otherwise. -+ v.append_value('LINKFLAGS', '-Wl,--enable-auto-import') -+ -+@conftest -+def gcc_modifier_cygwin(conf): -+ gcc_modifier_win32(conf) -+ v = conf.env -+ v['shlib_PATTERN'] = 'cyg%s.dll' -+ v.append_value('shlib_LINKFLAGS', '-Wl,--enable-auto-image-base') -+ -+@conftest -+def gcc_modifier_darwin(conf): -+ v = conf.env -+ v['shlib_CCFLAGS'] = ['-fPIC', '-compatibility_version', '1', '-current_version', '1'] -+ v['shlib_LINKFLAGS'] = ['-dynamiclib'] -+ v['shlib_PATTERN'] = 'lib%s.dylib' -+ -+ v['staticlib_LINKFLAGS'] = [] -+ -+ v['SHLIB_MARKER'] = '' -+ v['STATICLIB_MARKER'] = '' -+ v['SONAME_ST'] = '' -+ -+@conftest -+def gcc_modifier_aix(conf): -+ v = conf.env -+ v['program_LINKFLAGS'] = ['-Wl,-brtl'] -+ -+ v['shlib_LINKFLAGS'] = ['-shared','-Wl,-brtl,-bexpfull'] -+ -+ v['SHLIB_MARKER'] = '' -+ -+@conftest -+def gcc_modifier_platform(conf): -+ # * set configurations specific for a platform. -+ # * the destination platform is detected automatically by looking at the macros the compiler predefines, -+ # and if it's not recognised, it fallbacks to sys.platform. -+ dest_os = conf.env['DEST_OS'] or Utils.unversioned_sys_platform() -+ gcc_modifier_func = globals().get('gcc_modifier_' + dest_os) -+ if gcc_modifier_func: -+ gcc_modifier_func(conf) -+ -+def detect(conf): -+ conf.find_gcc() -+ conf.find_cpp() -+ conf.find_ar() -+ conf.gcc_common_flags() -+ conf.gcc_modifier_platform() -+ conf.cc_load_tools() -+ conf.cc_add_flags() -+ conf.link_add_flags() -+ -diff --git a/buildtools/wafadmin/Tools/gdc.py b/buildtools/wafadmin/Tools/gdc.py -new file mode 100644 -index 0000000..4d2a321 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/gdc.py -@@ -0,0 +1,52 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Carlos Rafael Giani, 2007 (dv) -+ -+import sys -+import Utils, ar -+from Configure import conftest -+ -+@conftest -+def find_gdc(conf): -+ conf.find_program('gdc', var='D_COMPILER', mandatory=True) -+ -+@conftest -+def common_flags_gdc(conf): -+ v = conf.env -+ -+ # _DFLAGS _DIMPORTFLAGS -+ -+ # for mory info about the meaning of this dict see dmd.py -+ v['DFLAGS'] = [] -+ -+ v['D_SRC_F'] = '' -+ v['D_TGT_F'] = ['-c', '-o', ''] -+ v['DPATH_ST'] = '-I%s' # template for adding import paths -+ -+ # linker -+ v['D_LINKER'] = v['D_COMPILER'] -+ v['DLNK_SRC_F'] = '' -+ v['DLNK_TGT_F'] = ['-o', ''] -+ -+ v['DLIB_ST'] = '-l%s' # template for adding libs -+ v['DLIBPATH_ST'] = '-L%s' # template for adding libpaths -+ -+ # debug levels -+ v['DLINKFLAGS'] = [] -+ v['DFLAGS_OPTIMIZED'] = ['-O3'] -+ v['DFLAGS_DEBUG'] = ['-O0'] -+ v['DFLAGS_ULTRADEBUG'] = ['-O0'] -+ -+ v['D_shlib_DFLAGS'] = [] -+ v['D_shlib_LINKFLAGS'] = ['-shared'] -+ -+ v['DHEADER_ext'] = '.di' -+ v['D_HDR_F'] = '-fintfc -fintfc-file=' -+ -+def detect(conf): -+ conf.find_gdc() -+ conf.check_tool('ar') -+ conf.check_tool('d') -+ conf.common_flags_gdc() -+ conf.d_platform_flags() -+ -diff --git a/buildtools/wafadmin/Tools/glib2.py b/buildtools/wafadmin/Tools/glib2.py -new file mode 100644 -index 0000000..042d612 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/glib2.py -@@ -0,0 +1,164 @@ -+#! /usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006-2008 (ita) -+ -+"GLib2 support" -+ -+import Task, Utils -+from TaskGen import taskgen, before, after, feature -+ -+# -+# glib-genmarshal -+# -+ -+@taskgen -+def add_marshal_file(self, filename, prefix): -+ if not hasattr(self, 'marshal_list'): -+ self.marshal_list = [] -+ self.meths.append('process_marshal') -+ self.marshal_list.append((filename, prefix)) -+ -+@before('apply_core') -+def process_marshal(self): -+ for f, prefix in getattr(self, 'marshal_list', []): -+ node = self.path.find_resource(f) -+ -+ if not node: -+ raise Utils.WafError('file not found %r' % f) -+ -+ h_node = node.change_ext('.h') -+ c_node = node.change_ext('.c') -+ -+ task = self.create_task('glib_genmarshal', node, [h_node, c_node]) -+ task.env.GLIB_GENMARSHAL_PREFIX = prefix -+ self.allnodes.append(c_node) -+ -+def genmarshal_func(self): -+ -+ bld = self.inputs[0].__class__.bld -+ -+ get = self.env.get_flat -+ cmd1 = "%s %s --prefix=%s --header > %s" % ( -+ get('GLIB_GENMARSHAL'), -+ self.inputs[0].srcpath(self.env), -+ get('GLIB_GENMARSHAL_PREFIX'), -+ self.outputs[0].abspath(self.env) -+ ) -+ -+ ret = bld.exec_command(cmd1) -+ if ret: return ret -+ -+ #print self.outputs[1].abspath(self.env) -+ f = open(self.outputs[1].abspath(self.env), 'wb') -+ c = '''#include "%s"\n''' % self.outputs[0].name -+ f.write(c) -+ f.close() -+ -+ cmd2 = "%s %s --prefix=%s --body >> %s" % ( -+ get('GLIB_GENMARSHAL'), -+ self.inputs[0].srcpath(self.env), -+ get('GLIB_GENMARSHAL_PREFIX'), -+ self.outputs[1].abspath(self.env) -+ ) -+ ret = Utils.exec_command(cmd2) -+ if ret: return ret -+ -+# -+# glib-mkenums -+# -+ -+@taskgen -+def add_enums_from_template(self, source='', target='', template='', comments=''): -+ if not hasattr(self, 'enums_list'): -+ self.enums_list = [] -+ self.meths.append('process_enums') -+ self.enums_list.append({'source': source, -+ 'target': target, -+ 'template': template, -+ 'file-head': '', -+ 'file-prod': '', -+ 'file-tail': '', -+ 'enum-prod': '', -+ 'value-head': '', -+ 'value-prod': '', -+ 'value-tail': '', -+ 'comments': comments}) -+ -+@taskgen -+def add_enums(self, source='', target='', -+ file_head='', file_prod='', file_tail='', enum_prod='', -+ value_head='', value_prod='', value_tail='', comments=''): -+ if not hasattr(self, 'enums_list'): -+ self.enums_list = [] -+ self.meths.append('process_enums') -+ self.enums_list.append({'source': source, -+ 'template': '', -+ 'target': target, -+ 'file-head': file_head, -+ 'file-prod': file_prod, -+ 'file-tail': file_tail, -+ 'enum-prod': enum_prod, -+ 'value-head': value_head, -+ 'value-prod': value_prod, -+ 'value-tail': value_tail, -+ 'comments': comments}) -+ -+@before('apply_core') -+def process_enums(self): -+ for enum in getattr(self, 'enums_list', []): -+ task = self.create_task('glib_mkenums') -+ env = task.env -+ -+ inputs = [] -+ -+ # process the source -+ source_list = self.to_list(enum['source']) -+ if not source_list: -+ raise Utils.WafError('missing source ' + str(enum)) -+ source_list = [self.path.find_resource(k) for k in source_list] -+ inputs += source_list -+ env['GLIB_MKENUMS_SOURCE'] = [k.srcpath(env) for k in source_list] -+ -+ # find the target -+ if not enum['target']: -+ raise Utils.WafError('missing target ' + str(enum)) -+ tgt_node = self.path.find_or_declare(enum['target']) -+ if tgt_node.name.endswith('.c'): -+ self.allnodes.append(tgt_node) -+ env['GLIB_MKENUMS_TARGET'] = tgt_node.abspath(env) -+ -+ -+ options = [] -+ -+ if enum['template']: # template, if provided -+ template_node = self.path.find_resource(enum['template']) -+ options.append('--template %s' % (template_node.abspath(env))) -+ inputs.append(template_node) -+ params = {'file-head' : '--fhead', -+ 'file-prod' : '--fprod', -+ 'file-tail' : '--ftail', -+ 'enum-prod' : '--eprod', -+ 'value-head' : '--vhead', -+ 'value-prod' : '--vprod', -+ 'value-tail' : '--vtail', -+ 'comments': '--comments'} -+ for param, option in params.iteritems(): -+ if enum[param]: -+ options.append('%s %r' % (option, enum[param])) -+ -+ env['GLIB_MKENUMS_OPTIONS'] = ' '.join(options) -+ -+ # update the task instance -+ task.set_inputs(inputs) -+ task.set_outputs(tgt_node) -+ -+Task.task_type_from_func('glib_genmarshal', func=genmarshal_func, vars=['GLIB_GENMARSHAL_PREFIX', 'GLIB_GENMARSHAL'], -+ color='BLUE', before='cc cxx') -+Task.simple_task_type('glib_mkenums', -+ '${GLIB_MKENUMS} ${GLIB_MKENUMS_OPTIONS} ${GLIB_MKENUMS_SOURCE} > ${GLIB_MKENUMS_TARGET}', -+ color='PINK', before='cc cxx') -+ -+def detect(conf): -+ glib_genmarshal = conf.find_program('glib-genmarshal', var='GLIB_GENMARSHAL') -+ mk_enums_tool = conf.find_program('glib-mkenums', var='GLIB_MKENUMS') -+ -diff --git a/buildtools/wafadmin/Tools/gnome.py b/buildtools/wafadmin/Tools/gnome.py -new file mode 100644 -index 0000000..c098a41 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/gnome.py -@@ -0,0 +1,223 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006-2008 (ita) -+ -+"Gnome support" -+ -+import os, re -+import TaskGen, Utils, Runner, Task, Build, Options, Logs -+import cc -+from Logs import error -+from TaskGen import taskgen, before, after, feature -+ -+n1_regexp = re.compile('(.*)', re.M) -+n2_regexp = re.compile('(.*)', re.M) -+ -+def postinstall_schemas(prog_name): -+ if Build.bld.is_install: -+ dir = Build.bld.get_install_path('${PREFIX}/etc/gconf/schemas/%s.schemas' % prog_name) -+ if not Options.options.destdir: -+ # add the gconf schema -+ Utils.pprint('YELLOW', 'Installing GConf schema') -+ command = 'gconftool-2 --install-schema-file=%s 1> /dev/null' % dir -+ ret = Utils.exec_command(command) -+ else: -+ Utils.pprint('YELLOW', 'GConf schema not installed. After install, run this:') -+ Utils.pprint('YELLOW', 'gconftool-2 --install-schema-file=%s' % dir) -+ -+def postinstall_icons(): -+ dir = Build.bld.get_install_path('${DATADIR}/icons/hicolor') -+ if Build.bld.is_install: -+ if not Options.options.destdir: -+ # update the pixmap cache directory -+ Utils.pprint('YELLOW', "Updating Gtk icon cache.") -+ command = 'gtk-update-icon-cache -q -f -t %s' % dir -+ ret = Utils.exec_command(command) -+ else: -+ Utils.pprint('YELLOW', 'Icon cache not updated. After install, run this:') -+ Utils.pprint('YELLOW', 'gtk-update-icon-cache -q -f -t %s' % dir) -+ -+def postinstall_scrollkeeper(prog_name): -+ if Build.bld.is_install: -+ # now the scrollkeeper update if we can write to the log file -+ if os.access('/var/log/scrollkeeper.log', os.W_OK): -+ dir1 = Build.bld.get_install_path('${PREFIX}/var/scrollkeeper') -+ dir2 = Build.bld.get_install_path('${DATADIR}/omf/%s' % prog_name) -+ command = 'scrollkeeper-update -q -p %s -o %s' % (dir1, dir2) -+ ret = Utils.exec_command(command) -+ -+def postinstall(prog_name='myapp', schemas=1, icons=1, scrollkeeper=1): -+ if schemas: postinstall_schemas(prog_name) -+ if icons: postinstall_icons() -+ if scrollkeeper: postinstall_scrollkeeper(prog_name) -+ -+# OBSOLETE -+class gnome_doc_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('gnome_doc') -+def init_gnome_doc(self): -+ self.default_install_path = '${PREFIX}/share' -+ -+@feature('gnome_doc') -+@after('init_gnome_doc') -+def apply_gnome_doc(self): -+ self.env['APPNAME'] = self.doc_module -+ lst = self.to_list(self.doc_linguas) -+ bld = self.bld -+ lst.append('C') -+ -+ for x in lst: -+ if not x == 'C': -+ tsk = self.create_task('xml2po') -+ node = self.path.find_resource(x+'/'+x+'.po') -+ src = self.path.find_resource('C/%s.xml' % self.doc_module) -+ out = self.path.find_or_declare('%s/%s.xml' % (x, self.doc_module)) -+ tsk.set_inputs([node, src]) -+ tsk.set_outputs(out) -+ else: -+ out = self.path.find_resource('%s/%s.xml' % (x, self.doc_module)) -+ -+ tsk2 = self.create_task('xsltproc2po') -+ out2 = self.path.find_or_declare('%s/%s-%s.omf' % (x, self.doc_module, x)) -+ tsk2.set_outputs(out2) -+ node = self.path.find_resource(self.doc_module+".omf.in") -+ tsk2.inputs = [node, out] -+ -+ tsk2.run_after.append(tsk) -+ -+ if bld.is_install: -+ path = self.install_path + '/gnome/help/%s/%s' % (self.doc_module, x) -+ bld.install_files(self.install_path + '/omf', out2, env=self.env) -+ for y in self.to_list(self.doc_figures): -+ try: -+ os.stat(self.path.abspath() + '/' + x + '/' + y) -+ bld.install_as(path + '/' + y, self.path.abspath() + '/' + x + '/' + y) -+ except: -+ bld.install_as(path + '/' + y, self.path.abspath() + '/C/' + y) -+ bld.install_as(path + '/%s.xml' % self.doc_module, out.abspath(self.env)) -+ if x == 'C': -+ xmls = self.to_list(self.doc_includes) -+ xmls.append(self.doc_entities) -+ for z in xmls: -+ out = self.path.find_resource('%s/%s' % (x, z)) -+ bld.install_as(path + '/%s' % z, out.abspath(self.env)) -+ -+# OBSOLETE -+class xml_to_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('xml_to') -+def init_xml_to(self): -+ Utils.def_attrs(self, -+ source = 'xmlfile', -+ xslt = 'xlsltfile', -+ target = 'hey', -+ default_install_path = '${PREFIX}', -+ task_created = None) -+ -+@feature('xml_to') -+@after('init_xml_to') -+def apply_xml_to(self): -+ xmlfile = self.path.find_resource(self.source) -+ xsltfile = self.path.find_resource(self.xslt) -+ tsk = self.create_task('xmlto', [xmlfile, xsltfile], xmlfile.change_ext('html')) -+ tsk.install_path = self.install_path -+ -+def sgml_scan(self): -+ node = self.inputs[0] -+ -+ env = self.env -+ variant = node.variant(env) -+ -+ fi = open(node.abspath(env), 'r') -+ content = fi.read() -+ fi.close() -+ -+ # we should use a sgml parser :-/ -+ name = n1_regexp.findall(content)[0] -+ num = n2_regexp.findall(content)[0] -+ -+ doc_name = name+'.'+num -+ -+ if not self.outputs: -+ self.outputs = [self.generator.path.find_or_declare(doc_name)] -+ -+ return ([], [doc_name]) -+ -+class gnome_sgml2man_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('gnome_sgml2man') -+def apply_gnome_sgml2man(self): -+ """ -+ we could make it more complicated, but for now we just scan the document each time -+ """ -+ assert(getattr(self, 'appname', None)) -+ -+ def install_result(task): -+ out = task.outputs[0] -+ name = out.name -+ ext = name[-1] -+ env = task.env -+ self.bld.install_files('${DATADIR}/man/man%s/' % ext, out, env) -+ -+ self.bld.rescan(self.path) -+ for name in self.bld.cache_dir_contents[self.path.id]: -+ base, ext = os.path.splitext(name) -+ if ext != '.sgml': continue -+ -+ task = self.create_task('sgml2man') -+ task.set_inputs(self.path.find_resource(name)) -+ task.task_generator = self -+ if self.bld.is_install: task.install = install_result -+ # no outputs, the scanner does it -+ # no caching for now, this is not a time-critical feature -+ # in the future the scanner can be used to do more things (find dependencies, etc) -+ task.scan() -+ -+cls = Task.simple_task_type('sgml2man', '${SGML2MAN} -o ${TGT[0].bld_dir(env)} ${SRC} > /dev/null', color='BLUE') -+cls.scan = sgml_scan -+cls.quiet = 1 -+ -+Task.simple_task_type('xmlto', '${XMLTO} html -m ${SRC[1].abspath(env)} ${SRC[0].abspath(env)}') -+ -+Task.simple_task_type('xml2po', '${XML2PO} ${XML2POFLAGS} ${SRC} > ${TGT}', color='BLUE') -+ -+# how do you expect someone to understand this?! -+xslt_magic = """${XSLTPROC2PO} -o ${TGT[0].abspath(env)} \ -+--stringparam db2omf.basename ${APPNAME} \ -+--stringparam db2omf.format docbook \ -+--stringparam db2omf.lang ${TGT[0].abspath(env)[:-4].split('-')[-1]} \ -+--stringparam db2omf.dtd '-//OASIS//DTD DocBook XML V4.3//EN' \ -+--stringparam db2omf.omf_dir ${PREFIX}/share/omf \ -+--stringparam db2omf.help_dir ${PREFIX}/share/gnome/help \ -+--stringparam db2omf.omf_in ${SRC[0].abspath(env)} \ -+--stringparam db2omf.scrollkeeper_cl ${SCROLLKEEPER_DATADIR}/Templates/C/scrollkeeper_cl.xml \ -+${DB2OMF} ${SRC[1].abspath(env)}""" -+ -+#--stringparam db2omf.dtd '-//OASIS//DTD DocBook XML V4.3//EN' \ -+Task.simple_task_type('xsltproc2po', xslt_magic, color='BLUE') -+ -+def detect(conf): -+ conf.check_tool('gnu_dirs glib2 dbus') -+ sgml2man = conf.find_program('docbook2man', var='SGML2MAN') -+ -+ def getstr(varname): -+ return getattr(Options.options, varname, '') -+ -+ # addefine also sets the variable to the env -+ conf.define('GNOMELOCALEDIR', os.path.join(conf.env['DATADIR'], 'locale')) -+ -+ xml2po = conf.find_program('xml2po', var='XML2PO') -+ xsltproc2po = conf.find_program('xsltproc', var='XSLTPROC2PO') -+ conf.env['XML2POFLAGS'] = '-e -p' -+ conf.env['SCROLLKEEPER_DATADIR'] = Utils.cmd_output("scrollkeeper-config --pkgdatadir", silent=1).strip() -+ conf.env['DB2OMF'] = Utils.cmd_output("/usr/bin/pkg-config --variable db2omf gnome-doc-utils", silent=1).strip() -+ -+def set_options(opt): -+ opt.add_option('--want-rpath', type='int', default=1, dest='want_rpath', help='set rpath to 1 or 0 [Default 1]') -+ -diff --git a/buildtools/wafadmin/Tools/gnu_dirs.py b/buildtools/wafadmin/Tools/gnu_dirs.py -new file mode 100644 -index 0000000..856e4a7 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/gnu_dirs.py -@@ -0,0 +1,111 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Ali Sabil, 2007 -+ -+""" -+To use this module do not forget to call -+opt.tool_options('gnu_dirs') -+AND -+conf.check_tool('gnu_dirs') -+ -+Add options for the standard GNU directories, this tool will add the options -+found in autotools, and will update the environment with the following -+installation variables: -+ -+ * PREFIX : architecture-independent files [/usr/local] -+ * EXEC_PREFIX : architecture-dependent files [PREFIX] -+ * BINDIR : user executables [EXEC_PREFIX/bin] -+ * SBINDIR : user executables [EXEC_PREFIX/sbin] -+ * LIBEXECDIR : program executables [EXEC_PREFIX/libexec] -+ * SYSCONFDIR : read-only single-machine data [PREFIX/etc] -+ * SHAREDSTATEDIR : modifiable architecture-independent data [PREFIX/com] -+ * LOCALSTATEDIR : modifiable single-machine data [PREFIX/var] -+ * LIBDIR : object code libraries [EXEC_PREFIX/lib] -+ * INCLUDEDIR : C header files [PREFIX/include] -+ * OLDINCLUDEDIR : C header files for non-gcc [/usr/include] -+ * DATAROOTDIR : read-only arch.-independent data root [PREFIX/share] -+ * DATADIR : read-only architecture-independent data [DATAROOTDIR] -+ * INFODIR : info documentation [DATAROOTDIR/info] -+ * LOCALEDIR : locale-dependent data [DATAROOTDIR/locale] -+ * MANDIR : man documentation [DATAROOTDIR/man] -+ * DOCDIR : documentation root [DATAROOTDIR/doc/telepathy-glib] -+ * HTMLDIR : html documentation [DOCDIR] -+ * DVIDIR : dvi documentation [DOCDIR] -+ * PDFDIR : pdf documentation [DOCDIR] -+ * PSDIR : ps documentation [DOCDIR] -+""" -+ -+import Utils, Options -+ -+_options = [x.split(', ') for x in ''' -+bindir, user executables, ${EXEC_PREFIX}/bin -+sbindir, system admin executables, ${EXEC_PREFIX}/sbin -+libexecdir, program executables, ${EXEC_PREFIX}/libexec -+sysconfdir, read-only single-machine data, ${PREFIX}/etc -+sharedstatedir, modifiable architecture-independent data, ${PREFIX}/com -+localstatedir, modifiable single-machine data, ${PREFIX}/var -+libdir, object code libraries, ${EXEC_PREFIX}/lib -+includedir, C header files, ${PREFIX}/include -+oldincludedir, C header files for non-gcc, /usr/include -+datarootdir, read-only arch.-independent data root, ${PREFIX}/share -+datadir, read-only architecture-independent data, ${DATAROOTDIR} -+infodir, info documentation, ${DATAROOTDIR}/info -+localedir, locale-dependent data, ${DATAROOTDIR}/locale -+mandir, man documentation, ${DATAROOTDIR}/man -+docdir, documentation root, ${DATAROOTDIR}/doc/${PACKAGE} -+htmldir, html documentation, ${DOCDIR} -+dvidir, dvi documentation, ${DOCDIR} -+pdfdir, pdf documentation, ${DOCDIR} -+psdir, ps documentation, ${DOCDIR} -+'''.split('\n') if x] -+ -+def detect(conf): -+ def get_param(varname, default): -+ return getattr(Options.options, varname, '') or default -+ -+ env = conf.env -+ env['EXEC_PREFIX'] = get_param('EXEC_PREFIX', env['PREFIX']) -+ env['PACKAGE'] = Utils.g_module.APPNAME -+ -+ complete = False -+ iter = 0 -+ while not complete and iter < len(_options) + 1: -+ iter += 1 -+ complete = True -+ for name, help, default in _options: -+ name = name.upper() -+ if not env[name]: -+ try: -+ env[name] = Utils.subst_vars(get_param(name, default), env) -+ except TypeError: -+ complete = False -+ if not complete: -+ lst = [name for name, _, _ in _options if not env[name.upper()]] -+ raise Utils.WafError('Variable substitution failure %r' % lst) -+ -+def set_options(opt): -+ -+ inst_dir = opt.add_option_group('Installation directories', -+'By default, "waf install" will put the files in\ -+ "/usr/local/bin", "/usr/local/lib" etc. An installation prefix other\ -+ than "/usr/local" can be given using "--prefix", for example "--prefix=$HOME"') -+ -+ for k in ('--prefix', '--destdir'): -+ option = opt.parser.get_option(k) -+ if option: -+ opt.parser.remove_option(k) -+ inst_dir.add_option(option) -+ -+ inst_dir.add_option('--exec-prefix', -+ help = 'installation prefix [Default: ${PREFIX}]', -+ default = '', -+ dest = 'EXEC_PREFIX') -+ -+ dirs_options = opt.add_option_group('Pre-defined installation directories', '') -+ -+ for name, help, default in _options: -+ option_name = '--' + name -+ str_default = default -+ str_help = '%s [Default: %s]' % (help, str_default) -+ dirs_options.add_option(option_name, help=str_help, default='', dest=name.upper()) -+ -diff --git a/buildtools/wafadmin/Tools/gob2.py b/buildtools/wafadmin/Tools/gob2.py -new file mode 100644 -index 0000000..00aaa32 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/gob2.py -@@ -0,0 +1,18 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Ali Sabil, 2007 -+ -+import TaskGen -+ -+TaskGen.declare_chain( -+ name = 'gob2', -+ rule = '${GOB2} -o ${TGT[0].bld_dir(env)} ${GOB2FLAGS} ${SRC}', -+ ext_in = '.gob', -+ ext_out = '.c' -+) -+ -+def detect(conf): -+ gob2 = conf.find_program('gob2', var='GOB2', mandatory=True) -+ conf.env['GOB2'] = gob2 -+ conf.env['GOB2FLAGS'] = '' -+ -diff --git a/buildtools/wafadmin/Tools/gxx.py b/buildtools/wafadmin/Tools/gxx.py -new file mode 100644 -index 0000000..8f4a0bf ---- /dev/null -+++ b/buildtools/wafadmin/Tools/gxx.py -@@ -0,0 +1,133 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+# Ralf Habacker, 2006 (rh) -+# Yinon Ehrlich, 2009 -+ -+import os, sys -+import Configure, Options, Utils -+import ccroot, ar -+from Configure import conftest -+ -+@conftest -+def find_gxx(conf): -+ cxx = conf.find_program(['g++', 'c++'], var='CXX', mandatory=True) -+ cxx = conf.cmd_to_list(cxx) -+ ccroot.get_cc_version(conf, cxx, gcc=True) -+ conf.env.CXX_NAME = 'gcc' -+ conf.env.CXX = cxx -+ -+@conftest -+def gxx_common_flags(conf): -+ v = conf.env -+ -+ # CPPFLAGS CXXDEFINES _CXXINCFLAGS _CXXDEFFLAGS -+ v['CXXFLAGS_DEBUG'] = ['-g'] -+ v['CXXFLAGS_RELEASE'] = ['-O2'] -+ -+ v['CXX_SRC_F'] = '' -+ v['CXX_TGT_F'] = ['-c', '-o', ''] # shell hack for -MD -+ v['CPPPATH_ST'] = '-I%s' # template for adding include paths -+ -+ # linker -+ if not v['LINK_CXX']: v['LINK_CXX'] = v['CXX'] -+ v['CXXLNK_SRC_F'] = '' -+ v['CXXLNK_TGT_F'] = ['-o', ''] # shell hack for -MD -+ -+ v['LIB_ST'] = '-l%s' # template for adding libs -+ v['LIBPATH_ST'] = '-L%s' # template for adding libpaths -+ v['STATICLIB_ST'] = '-l%s' -+ v['STATICLIBPATH_ST'] = '-L%s' -+ v['RPATH_ST'] = '-Wl,-rpath,%s' -+ v['CXXDEFINES_ST'] = '-D%s' -+ -+ v['SONAME_ST'] = '-Wl,-h,%s' -+ v['SHLIB_MARKER'] = '-Wl,-Bdynamic' -+ v['STATICLIB_MARKER'] = '-Wl,-Bstatic' -+ v['FULLSTATIC_MARKER'] = '-static' -+ -+ # program -+ v['program_PATTERN'] = '%s' -+ -+ # shared library -+ v['shlib_CXXFLAGS'] = ['-fPIC', '-DPIC'] # avoid using -DPIC, -fPIC aleady defines the __PIC__ macro -+ v['shlib_LINKFLAGS'] = ['-shared'] -+ v['shlib_PATTERN'] = 'lib%s.so' -+ -+ # static lib -+ v['staticlib_LINKFLAGS'] = ['-Wl,-Bstatic'] -+ v['staticlib_PATTERN'] = 'lib%s.a' -+ -+ # osx stuff -+ v['LINKFLAGS_MACBUNDLE'] = ['-bundle', '-undefined', 'dynamic_lookup'] -+ v['CCFLAGS_MACBUNDLE'] = ['-fPIC'] -+ v['macbundle_PATTERN'] = '%s.bundle' -+ -+@conftest -+def gxx_modifier_win32(conf): -+ v = conf.env -+ v['program_PATTERN'] = '%s.exe' -+ -+ v['shlib_PATTERN'] = '%s.dll' -+ v['implib_PATTERN'] = 'lib%s.dll.a' -+ v['IMPLIB_ST'] = '-Wl,--out-implib,%s' -+ -+ dest_arch = v['DEST_CPU'] -+ v['shlib_CXXFLAGS'] = [] -+ -+ v.append_value('shlib_CXXFLAGS', '-DDLL_EXPORT') # TODO adding nonstandard defines like this DLL_EXPORT is not a good idea -+ -+ # Auto-import is enabled by default even without this option, -+ # but enabling it explicitly has the nice effect of suppressing the rather boring, debug-level messages -+ # that the linker emits otherwise. -+ v.append_value('LINKFLAGS', '-Wl,--enable-auto-import') -+ -+@conftest -+def gxx_modifier_cygwin(conf): -+ gxx_modifier_win32(conf) -+ v = conf.env -+ v['shlib_PATTERN'] = 'cyg%s.dll' -+ v.append_value('shlib_LINKFLAGS', '-Wl,--enable-auto-image-base') -+ -+@conftest -+def gxx_modifier_darwin(conf): -+ v = conf.env -+ v['shlib_CXXFLAGS'] = ['-fPIC', '-compatibility_version', '1', '-current_version', '1'] -+ v['shlib_LINKFLAGS'] = ['-dynamiclib'] -+ v['shlib_PATTERN'] = 'lib%s.dylib' -+ -+ v['staticlib_LINKFLAGS'] = [] -+ -+ v['SHLIB_MARKER'] = '' -+ v['STATICLIB_MARKER'] = '' -+ v['SONAME_ST'] = '' -+ -+@conftest -+def gxx_modifier_aix(conf): -+ v = conf.env -+ v['program_LINKFLAGS'] = ['-Wl,-brtl'] -+ -+ v['shlib_LINKFLAGS'] = ['-shared', '-Wl,-brtl,-bexpfull'] -+ -+ v['SHLIB_MARKER'] = '' -+ -+@conftest -+def gxx_modifier_platform(conf): -+ # * set configurations specific for a platform. -+ # * the destination platform is detected automatically by looking at the macros the compiler predefines, -+ # and if it's not recognised, it fallbacks to sys.platform. -+ dest_os = conf.env['DEST_OS'] or Utils.unversioned_sys_platform() -+ gxx_modifier_func = globals().get('gxx_modifier_' + dest_os) -+ if gxx_modifier_func: -+ gxx_modifier_func(conf) -+ -+def detect(conf): -+ conf.find_gxx() -+ conf.find_cpp() -+ conf.find_ar() -+ conf.gxx_common_flags() -+ conf.gxx_modifier_platform() -+ conf.cxx_load_tools() -+ conf.cxx_add_flags() -+ conf.link_add_flags() -+ -diff --git a/buildtools/wafadmin/Tools/icc.py b/buildtools/wafadmin/Tools/icc.py -new file mode 100644 -index 0000000..9c9a926 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/icc.py -@@ -0,0 +1,37 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Stian Selnes, 2008 -+# Thomas Nagy 2009 -+ -+import os, sys -+import Configure, Options, Utils -+import ccroot, ar, gcc -+from Configure import conftest -+ -+@conftest -+def find_icc(conf): -+ if sys.platform == 'cygwin': -+ conf.fatal('The Intel compiler does not work on Cygwin') -+ -+ v = conf.env -+ cc = None -+ if v['CC']: cc = v['CC'] -+ elif 'CC' in conf.environ: cc = conf.environ['CC'] -+ if not cc: cc = conf.find_program('icc', var='CC') -+ if not cc: cc = conf.find_program('ICL', var='CC') -+ if not cc: conf.fatal('Intel C Compiler (icc) was not found') -+ cc = conf.cmd_to_list(cc) -+ -+ ccroot.get_cc_version(conf, cc, icc=True) -+ v['CC'] = cc -+ v['CC_NAME'] = 'icc' -+ -+detect = ''' -+find_icc -+find_ar -+gcc_common_flags -+gcc_modifier_platform -+cc_load_tools -+cc_add_flags -+link_add_flags -+''' -diff --git a/buildtools/wafadmin/Tools/icpc.py b/buildtools/wafadmin/Tools/icpc.py -new file mode 100644 -index 0000000..7d79c57 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/icpc.py -@@ -0,0 +1,35 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy 2009 -+ -+import os, sys -+import Configure, Options, Utils -+import ccroot, ar, gxx -+from Configure import conftest -+ -+@conftest -+def find_icpc(conf): -+ if sys.platform == 'cygwin': -+ conf.fatal('The Intel compiler does not work on Cygwin') -+ -+ v = conf.env -+ cxx = None -+ if v['CXX']: cxx = v['CXX'] -+ elif 'CXX' in conf.environ: cxx = conf.environ['CXX'] -+ if not cxx: cxx = conf.find_program('icpc', var='CXX') -+ if not cxx: conf.fatal('Intel C++ Compiler (icpc) was not found') -+ cxx = conf.cmd_to_list(cxx) -+ -+ ccroot.get_cc_version(conf, cxx, icc=True) -+ v['CXX'] = cxx -+ v['CXX_NAME'] = 'icc' -+ -+detect = ''' -+find_icpc -+find_ar -+gxx_common_flags -+gxx_modifier_platform -+cxx_load_tools -+cxx_add_flags -+link_add_flags -+''' -diff --git a/buildtools/wafadmin/Tools/intltool.py b/buildtools/wafadmin/Tools/intltool.py -new file mode 100644 -index 0000000..deb8f4a ---- /dev/null -+++ b/buildtools/wafadmin/Tools/intltool.py -@@ -0,0 +1,139 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+"intltool support" -+ -+import os, re -+import Configure, TaskGen, Task, Utils, Runner, Options, Build, config_c -+from TaskGen import feature, before, taskgen -+from Logs import error -+ -+""" -+Usage: -+ -+bld(features='intltool_in', source='a.po b.po', podir='po', cache='.intlcache', flags='') -+ -+""" -+ -+class intltool_in_taskgen(TaskGen.task_gen): -+ """deprecated""" -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@before('apply_core') -+@feature('intltool_in') -+def iapply_intltool_in_f(self): -+ try: self.meths.remove('apply_core') -+ except ValueError: pass -+ -+ for i in self.to_list(self.source): -+ node = self.path.find_resource(i) -+ -+ podir = getattr(self, 'podir', 'po') -+ podirnode = self.path.find_dir(podir) -+ if not podirnode: -+ error("could not find the podir %r" % podir) -+ continue -+ -+ cache = getattr(self, 'intlcache', '.intlcache') -+ self.env['INTLCACHE'] = os.path.join(self.path.bldpath(self.env), podir, cache) -+ self.env['INTLPODIR'] = podirnode.srcpath(self.env) -+ self.env['INTLFLAGS'] = getattr(self, 'flags', ['-q', '-u', '-c']) -+ -+ task = self.create_task('intltool', node, node.change_ext('')) -+ task.install_path = self.install_path -+ -+class intltool_po_taskgen(TaskGen.task_gen): -+ """deprecated""" -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+ -+@feature('intltool_po') -+def apply_intltool_po(self): -+ try: self.meths.remove('apply_core') -+ except ValueError: pass -+ -+ self.default_install_path = '${LOCALEDIR}' -+ appname = getattr(self, 'appname', 'set_your_app_name') -+ podir = getattr(self, 'podir', '') -+ -+ def install_translation(task): -+ out = task.outputs[0] -+ filename = out.name -+ (langname, ext) = os.path.splitext(filename) -+ inst_file = langname + os.sep + 'LC_MESSAGES' + os.sep + appname + '.mo' -+ self.bld.install_as(os.path.join(self.install_path, inst_file), out, self.env, self.chmod) -+ -+ linguas = self.path.find_resource(os.path.join(podir, 'LINGUAS')) -+ if linguas: -+ # scan LINGUAS file for locales to process -+ file = open(linguas.abspath()) -+ langs = [] -+ for line in file.readlines(): -+ # ignore lines containing comments -+ if not line.startswith('#'): -+ langs += line.split() -+ file.close() -+ re_linguas = re.compile('[-a-zA-Z_@.]+') -+ for lang in langs: -+ # Make sure that we only process lines which contain locales -+ if re_linguas.match(lang): -+ node = self.path.find_resource(os.path.join(podir, re_linguas.match(lang).group() + '.po')) -+ task = self.create_task('po') -+ task.set_inputs(node) -+ task.set_outputs(node.change_ext('.mo')) -+ if self.bld.is_install: task.install = install_translation -+ else: -+ Utils.pprint('RED', "Error no LINGUAS file found in po directory") -+ -+Task.simple_task_type('po', '${POCOM} -o ${TGT} ${SRC}', color='BLUE', shell=False) -+Task.simple_task_type('intltool', -+ '${INTLTOOL} ${INTLFLAGS} ${INTLCACHE} ${INTLPODIR} ${SRC} ${TGT}', -+ color='BLUE', after="cc_link cxx_link", shell=False) -+ -+def detect(conf): -+ pocom = conf.find_program('msgfmt') -+ if not pocom: -+ # if msgfmt should not be mandatory, catch the thrown exception in your wscript -+ conf.fatal('The program msgfmt (gettext) is mandatory!') -+ conf.env['POCOM'] = pocom -+ -+ # NOTE: it is possible to set INTLTOOL in the environment, but it must not have spaces in it -+ -+ intltool = conf.find_program('intltool-merge', var='INTLTOOL') -+ if not intltool: -+ # if intltool-merge should not be mandatory, catch the thrown exception in your wscript -+ if Options.platform == 'win32': -+ perl = conf.find_program('perl', var='PERL') -+ if not perl: -+ conf.fatal('The program perl (required by intltool) could not be found') -+ -+ intltooldir = Configure.find_file('intltool-merge', os.environ['PATH'].split(os.pathsep)) -+ if not intltooldir: -+ conf.fatal('The program intltool-merge (intltool, gettext-devel) is mandatory!') -+ -+ conf.env['INTLTOOL'] = Utils.to_list(conf.env['PERL']) + [intltooldir + os.sep + 'intltool-merge'] -+ conf.check_message('intltool', '', True, ' '.join(conf.env['INTLTOOL'])) -+ else: -+ conf.fatal('The program intltool-merge (intltool, gettext-devel) is mandatory!') -+ -+ def getstr(varname): -+ return getattr(Options.options, varname, '') -+ -+ prefix = conf.env['PREFIX'] -+ datadir = getstr('datadir') -+ if not datadir: datadir = os.path.join(prefix,'share') -+ -+ conf.define('LOCALEDIR', os.path.join(datadir, 'locale')) -+ conf.define('DATADIR', datadir) -+ -+ if conf.env['CC'] or conf.env['CXX']: -+ # Define to 1 if is present -+ conf.check(header_name='locale.h') -+ -+def set_options(opt): -+ opt.add_option('--want-rpath', type='int', default=1, dest='want_rpath', help='set rpath to 1 or 0 [Default 1]') -+ opt.add_option('--datadir', type='string', default='', dest='datadir', help='read-only application data') -+ -diff --git a/buildtools/wafadmin/Tools/javaw.py b/buildtools/wafadmin/Tools/javaw.py -new file mode 100644 -index 0000000..301ebc4 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/javaw.py -@@ -0,0 +1,255 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006-2008 (ita) -+ -+""" -+Java support -+ -+Javac is one of the few compilers that behaves very badly: -+* it outputs files where it wants to (-d is only for the package root) -+* it recompiles files silently behind your back -+* it outputs an undefined amount of files (inner classes) -+ -+Fortunately, the convention makes it possible to use the build dir without -+too many problems for the moment -+ -+Inner classes must be located and cleaned when a problem arise, -+for the moment waf does not track the production of inner classes. -+ -+Adding all the files to a task and executing it if any of the input files -+change is only annoying for the compilation times -+ -+Compilation can be run using Jython[1] rather than regular Python. Instead of -+running one of the following commands: -+ ./waf configure -+ python waf configure -+You would have to run: -+ java -jar /path/to/jython.jar waf configure -+ -+[1] http://www.jython.org/ -+""" -+ -+import os, re -+from Configure import conf -+import TaskGen, Task, Utils, Options, Build -+from TaskGen import feature, before, taskgen -+ -+class_check_source = ''' -+public class Test { -+ public static void main(String[] argv) { -+ Class lib; -+ if (argv.length < 1) { -+ System.err.println("Missing argument"); -+ System.exit(77); -+ } -+ try { -+ lib = Class.forName(argv[0]); -+ } catch (ClassNotFoundException e) { -+ System.err.println("ClassNotFoundException"); -+ System.exit(1); -+ } -+ lib = null; -+ System.exit(0); -+ } -+} -+''' -+ -+@feature('jar') -+@before('apply_core') -+def jar_files(self): -+ basedir = getattr(self, 'basedir', '.') -+ destfile = getattr(self, 'destfile', 'test.jar') -+ jaropts = getattr(self, 'jaropts', []) -+ jarcreate = getattr(self, 'jarcreate', 'cf') -+ -+ dir = self.path.find_dir(basedir) -+ if not dir: raise -+ -+ jaropts.append('-C') -+ jaropts.append(dir.abspath(self.env)) -+ jaropts.append('.') -+ -+ out = self.path.find_or_declare(destfile) -+ -+ tsk = self.create_task('jar_create') -+ tsk.set_outputs(out) -+ tsk.inputs = [x for x in dir.find_iter(src=0, bld=1) if x.id != out.id] -+ tsk.env['JAROPTS'] = jaropts -+ tsk.env['JARCREATE'] = jarcreate -+ -+@feature('javac') -+@before('apply_core') -+def apply_java(self): -+ Utils.def_attrs(self, jarname='', jaropts='', classpath='', -+ sourcepath='.', srcdir='.', source_re='**/*.java', -+ jar_mf_attributes={}, jar_mf_classpath=[]) -+ -+ if getattr(self, 'source_root', None): -+ # old stuff -+ self.srcdir = self.source_root -+ -+ -+ nodes_lst = [] -+ -+ if not self.classpath: -+ if not self.env['CLASSPATH']: -+ self.env['CLASSPATH'] = '..' + os.pathsep + '.' -+ else: -+ self.env['CLASSPATH'] = self.classpath -+ -+ srcdir_node = self.path.find_dir(self.srcdir) -+ if not srcdir_node: -+ raise Utils.WafError('could not find srcdir %r' % self.srcdir) -+ -+ src_nodes = [x for x in srcdir_node.ant_glob(self.source_re, flat=False)] -+ bld_nodes = [x.change_ext('.class') for x in src_nodes] -+ -+ self.env['OUTDIR'] = [srcdir_node.bldpath(self.env)] -+ -+ tsk = self.create_task('javac') -+ tsk.set_inputs(src_nodes) -+ tsk.set_outputs(bld_nodes) -+ -+ if getattr(self, 'compat', None): -+ tsk.env.append_value('JAVACFLAGS', ['-source', self.compat]) -+ -+ if hasattr(self, 'sourcepath'): -+ fold = [self.path.find_dir(x) for x in self.to_list(self.sourcepath)] -+ names = os.pathsep.join([x.srcpath() for x in fold]) -+ else: -+ names = srcdir_node.srcpath() -+ -+ if names: -+ tsk.env.append_value('JAVACFLAGS', ['-sourcepath', names]) -+ -+ if self.jarname: -+ jtsk = self.create_task('jar_create', bld_nodes, self.path.find_or_declare(self.jarname)) -+ jtsk.set_run_after(tsk) -+ -+ if not self.env.JAROPTS: -+ if self.jaropts: -+ self.env.JAROPTS = self.jaropts -+ else: -+ dirs = '.' -+ self.env.JAROPTS = ['-C', ''.join(self.env['OUTDIR']), dirs] -+ -+Task.simple_task_type('jar_create', '${JAR} ${JARCREATE} ${TGT} ${JAROPTS}', color='GREEN', shell=False) -+cls = Task.simple_task_type('javac', '${JAVAC} -classpath ${CLASSPATH} -d ${OUTDIR} ${JAVACFLAGS} ${SRC}', shell=False) -+cls.color = 'BLUE' -+def post_run_javac(self): -+ """this is for cleaning the folder -+ javac creates single files for inner classes -+ but it is not possible to know which inner classes in advance""" -+ -+ par = {} -+ for x in self.inputs: -+ par[x.parent.id] = x.parent -+ -+ inner = {} -+ for k in par.values(): -+ path = k.abspath(self.env) -+ lst = os.listdir(path) -+ -+ for u in lst: -+ if u.find('$') >= 0: -+ inner_class_node = k.find_or_declare(u) -+ inner[inner_class_node.id] = inner_class_node -+ -+ to_add = set(inner.keys()) - set([x.id for x in self.outputs]) -+ for x in to_add: -+ self.outputs.append(inner[x]) -+ -+ self.cached = True # disable the cache here - inner classes are a problem -+ return Task.Task.post_run(self) -+cls.post_run = post_run_javac -+ -+def detect(conf): -+ # If JAVA_PATH is set, we prepend it to the path list -+ java_path = conf.environ['PATH'].split(os.pathsep) -+ v = conf.env -+ -+ if 'JAVA_HOME' in conf.environ: -+ java_path = [os.path.join(conf.environ['JAVA_HOME'], 'bin')] + java_path -+ conf.env['JAVA_HOME'] = [conf.environ['JAVA_HOME']] -+ -+ for x in 'javac java jar'.split(): -+ conf.find_program(x, var=x.upper(), path_list=java_path) -+ conf.env[x.upper()] = conf.cmd_to_list(conf.env[x.upper()]) -+ v['JAVA_EXT'] = ['.java'] -+ -+ if 'CLASSPATH' in conf.environ: -+ v['CLASSPATH'] = conf.environ['CLASSPATH'] -+ -+ if not v['JAR']: conf.fatal('jar is required for making java packages') -+ if not v['JAVAC']: conf.fatal('javac is required for compiling java classes') -+ v['JARCREATE'] = 'cf' # can use cvf -+ -+@conf -+def check_java_class(self, classname, with_classpath=None): -+ """Check if the specified java class is installed""" -+ -+ import shutil -+ -+ javatestdir = '.waf-javatest' -+ -+ classpath = javatestdir -+ if self.env['CLASSPATH']: -+ classpath += os.pathsep + self.env['CLASSPATH'] -+ if isinstance(with_classpath, str): -+ classpath += os.pathsep + with_classpath -+ -+ shutil.rmtree(javatestdir, True) -+ os.mkdir(javatestdir) -+ -+ java_file = open(os.path.join(javatestdir, 'Test.java'), 'w') -+ java_file.write(class_check_source) -+ java_file.close() -+ -+ # Compile the source -+ Utils.exec_command(self.env['JAVAC'] + [os.path.join(javatestdir, 'Test.java')], shell=False) -+ -+ # Try to run the app -+ cmd = self.env['JAVA'] + ['-cp', classpath, 'Test', classname] -+ self.log.write("%s\n" % str(cmd)) -+ found = Utils.exec_command(cmd, shell=False, log=self.log) -+ -+ self.check_message('Java class %s' % classname, "", not found) -+ -+ shutil.rmtree(javatestdir, True) -+ -+ return found -+ -+@conf -+def check_jni_headers(conf): -+ """ -+ Check for jni headers and libraries -+ -+ On success the environment variable xxx_JAVA is added for uselib -+ """ -+ -+ if not conf.env.CC_NAME and not conf.env.CXX_NAME: -+ conf.fatal('load a compiler first (gcc, g++, ..)') -+ -+ if not conf.env.JAVA_HOME: -+ conf.fatal('set JAVA_HOME in the system environment') -+ -+ # jni requires the jvm -+ javaHome = conf.env['JAVA_HOME'][0] -+ -+ b = Build.BuildContext() -+ b.load_dirs(conf.srcdir, conf.blddir) -+ dir = b.root.find_dir(conf.env.JAVA_HOME[0] + '/include') -+ f = dir.ant_glob('**/(jni|jni_md).h', flat=False) -+ incDirs = [x.parent.abspath() for x in f] -+ -+ dir = b.root.find_dir(conf.env.JAVA_HOME[0]) -+ f = dir.ant_glob('**/*jvm.(so|dll)', flat=False) -+ libDirs = [x.parent.abspath() for x in f] or [javaHome] -+ -+ for i, d in enumerate(libDirs): -+ if conf.check(header_name='jni.h', define_name='HAVE_JNI_H', lib='jvm', -+ libpath=d, includes=incDirs, uselib_store='JAVA', uselib='JAVA'): -+ break -+ else: -+ conf.fatal('could not find lib jvm in %r (see config.log)' % libDirs) -+ -diff --git a/buildtools/wafadmin/Tools/kde4.py b/buildtools/wafadmin/Tools/kde4.py -new file mode 100644 -index 0000000..f480929 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/kde4.py -@@ -0,0 +1,74 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+import os, sys, re -+import Options, TaskGen, Task, Utils -+from TaskGen import taskgen, feature, after -+ -+class msgfmt_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('msgfmt') -+def init_msgfmt(self): -+ #langs = '' # for example "foo/fr foo/br" -+ self.default_install_path = '${KDE4_LOCALE_INSTALL_DIR}' -+ -+@feature('msgfmt') -+@after('init_msgfmt') -+def apply_msgfmt(self): -+ for lang in self.to_list(self.langs): -+ node = self.path.find_resource(lang+'.po') -+ task = self.create_task('msgfmt', node, node.change_ext('.mo')) -+ -+ if not self.bld.is_install: continue -+ langname = lang.split('/') -+ langname = langname[-1] -+ task.install_path = self.install_path + os.sep + langname + os.sep + 'LC_MESSAGES' -+ task.filename = getattr(self, 'appname', 'set_your_appname') + '.mo' -+ task.chmod = self.chmod -+ -+def detect(conf): -+ kdeconfig = conf.find_program('kde4-config') -+ if not kdeconfig: -+ conf.fatal('we need kde4-config') -+ prefix = Utils.cmd_output('%s --prefix' % kdeconfig, silent=True).strip() -+ file = '%s/share/apps/cmake/modules/KDELibsDependencies.cmake' % prefix -+ try: os.stat(file) -+ except OSError: -+ file = '%s/share/kde4/apps/cmake/modules/KDELibsDependencies.cmake' % prefix -+ try: os.stat(file) -+ except OSError: conf.fatal('could not open %s' % file) -+ -+ try: -+ txt = Utils.readf(file) -+ except (OSError, IOError): -+ conf.fatal('could not read %s' % file) -+ -+ txt = txt.replace('\\\n', '\n') -+ fu = re.compile('#(.*)\n') -+ txt = fu.sub('', txt) -+ -+ setregexp = re.compile('([sS][eE][tT]\s*\()\s*([^\s]+)\s+\"([^"]+)\"\)') -+ found = setregexp.findall(txt) -+ -+ for (_, key, val) in found: -+ #print key, val -+ conf.env[key] = val -+ -+ # well well, i could just write an interpreter for cmake files -+ conf.env['LIB_KDECORE']='kdecore' -+ conf.env['LIB_KDEUI'] ='kdeui' -+ conf.env['LIB_KIO'] ='kio' -+ conf.env['LIB_KHTML'] ='khtml' -+ conf.env['LIB_KPARTS'] ='kparts' -+ -+ conf.env['LIBPATH_KDECORE'] = conf.env['KDE4_LIB_INSTALL_DIR'] -+ conf.env['CPPPATH_KDECORE'] = conf.env['KDE4_INCLUDE_INSTALL_DIR'] -+ conf.env.append_value('CPPPATH_KDECORE', conf.env['KDE4_INCLUDE_INSTALL_DIR']+"/KDE") -+ -+ conf.env['MSGFMT'] = conf.find_program('msgfmt') -+ -+Task.simple_task_type('msgfmt', '${MSGFMT} ${SRC} -o ${TGT}', color='BLUE', shell=False) -+ -diff --git a/buildtools/wafadmin/Tools/libtool.py b/buildtools/wafadmin/Tools/libtool.py -new file mode 100644 -index 0000000..47fa906 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/libtool.py -@@ -0,0 +1,330 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Matthias Jahn, 2008, jahn matthias ath freenet punto de -+# Thomas Nagy, 2008 (ita) -+ -+import sys, re, os, optparse -+ -+import TaskGen, Task, Utils, preproc -+from Logs import error, debug, warn -+from TaskGen import taskgen, after, before, feature -+ -+REVISION="0.1.3" -+ -+""" -+if you want to use the code here, you must use something like this: -+obj = obj.create(...) -+obj.features.append("libtool") -+obj.vnum = "1.2.3" # optional, but versioned libraries are common -+""" -+ -+# fake libtool files -+fakelibtool_vardeps = ['CXX', 'PREFIX'] -+def fakelibtool_build(task): -+ # Writes a .la file, used by libtool -+ env = task.env -+ dest = open(task.outputs[0].abspath(env), 'w') -+ sname = task.inputs[0].name -+ fu = dest.write -+ fu("# Generated by ltmain.sh - GNU libtool 1.5.18 - (pwn3d by BKsys II code name WAF)\n") -+ if env['vnum']: -+ nums = env['vnum'].split('.') -+ libname = task.inputs[0].name -+ name3 = libname+'.'+env['vnum'] -+ name2 = libname+'.'+nums[0] -+ name1 = libname -+ fu("dlname='%s'\n" % name2) -+ strn = " ".join([name3, name2, name1]) -+ fu("library_names='%s'\n" % (strn) ) -+ else: -+ fu("dlname='%s'\n" % sname) -+ fu("library_names='%s %s %s'\n" % (sname, sname, sname) ) -+ fu("old_library=''\n") -+ vars = ' '.join(env['libtoolvars']+env['LINKFLAGS']) -+ fu("dependency_libs='%s'\n" % vars) -+ fu("current=0\n") -+ fu("age=0\nrevision=0\ninstalled=yes\nshouldnotlink=no\n") -+ fu("dlopen=''\ndlpreopen=''\n") -+ fu("libdir='%s/lib'\n" % env['PREFIX']) -+ dest.close() -+ return 0 -+ -+def read_la_file(path): -+ sp = re.compile(r'^([^=]+)=\'(.*)\'$') -+ dc={} -+ file = open(path, "r") -+ for line in file.readlines(): -+ try: -+ #print sp.split(line.strip()) -+ _, left, right, _ = sp.split(line.strip()) -+ dc[left]=right -+ except ValueError: -+ pass -+ file.close() -+ return dc -+ -+@feature("libtool") -+@after('apply_link') -+def apply_link_libtool(self): -+ if self.type != 'program': -+ linktask = self.link_task -+ self.latask = self.create_task('fakelibtool', linktask.outputs, linktask.outputs[0].change_ext('.la')) -+ -+ if self.bld.is_install: -+ self.bld.install_files('${PREFIX}/lib', linktask.outputs[0], self.env) -+ -+@feature("libtool") -+@before('apply_core') -+def apply_libtool(self): -+ self.env['vnum']=self.vnum -+ -+ paths=[] -+ libs=[] -+ libtool_files=[] -+ libtool_vars=[] -+ -+ for l in self.env['LINKFLAGS']: -+ if l[:2]=='-L': -+ paths.append(l[2:]) -+ elif l[:2]=='-l': -+ libs.append(l[2:]) -+ -+ for l in libs: -+ for p in paths: -+ dict = read_la_file(p+'/lib'+l+'.la') -+ linkflags2 = dict.get('dependency_libs', '') -+ for v in linkflags2.split(): -+ if v.endswith('.la'): -+ libtool_files.append(v) -+ libtool_vars.append(v) -+ continue -+ self.env.append_unique('LINKFLAGS', v) -+ break -+ -+ self.env['libtoolvars']=libtool_vars -+ -+ while libtool_files: -+ file = libtool_files.pop() -+ dict = read_la_file(file) -+ for v in dict['dependency_libs'].split(): -+ if v[-3:] == '.la': -+ libtool_files.append(v) -+ continue -+ self.env.append_unique('LINKFLAGS', v) -+ -+Task.task_type_from_func('fakelibtool', vars=fakelibtool_vardeps, func=fakelibtool_build, color='BLUE', after="cc_link cxx_link static_link") -+ -+class libtool_la_file: -+ def __init__ (self, la_filename): -+ self.__la_filename = la_filename -+ #remove path and .la suffix -+ self.linkname = str(os.path.split(la_filename)[-1])[:-3] -+ if self.linkname.startswith("lib"): -+ self.linkname = self.linkname[3:] -+ # The name that we can dlopen(3). -+ self.dlname = None -+ # Names of this library -+ self.library_names = None -+ # The name of the static archive. -+ self.old_library = None -+ # Libraries that this one depends upon. -+ self.dependency_libs = None -+ # Version information for libIlmImf. -+ self.current = None -+ self.age = None -+ self.revision = None -+ # Is this an already installed library? -+ self.installed = None -+ # Should we warn about portability when linking against -modules? -+ self.shouldnotlink = None -+ # Files to dlopen/dlpreopen -+ self.dlopen = None -+ self.dlpreopen = None -+ # Directory that this library needs to be installed in: -+ self.libdir = '/usr/lib' -+ if not self.__parse(): -+ raise ValueError("file %s not found!!" %(la_filename)) -+ -+ def __parse(self): -+ "Retrieve the variables from a file" -+ if not os.path.isfile(self.__la_filename): return 0 -+ la_file=open(self.__la_filename, 'r') -+ for line in la_file: -+ ln = line.strip() -+ if not ln: continue -+ if ln[0]=='#': continue -+ (key, value) = str(ln).split('=', 1) -+ key = key.strip() -+ value = value.strip() -+ if value == "no": value = False -+ elif value == "yes": value = True -+ else: -+ try: value = int(value) -+ except ValueError: value = value.strip("'") -+ setattr(self, key, value) -+ la_file.close() -+ return 1 -+ -+ def get_libs(self): -+ """return linkflags for this lib""" -+ libs = [] -+ if self.dependency_libs: -+ libs = str(self.dependency_libs).strip().split() -+ if libs == None: -+ libs = [] -+ # add la lib and libdir -+ libs.insert(0, "-l%s" % self.linkname.strip()) -+ libs.insert(0, "-L%s" % self.libdir.strip()) -+ return libs -+ -+ def __str__(self): -+ return '''\ -+dlname = "%(dlname)s" -+library_names = "%(library_names)s" -+old_library = "%(old_library)s" -+dependency_libs = "%(dependency_libs)s" -+version = %(current)s.%(age)s.%(revision)s -+installed = "%(installed)s" -+shouldnotlink = "%(shouldnotlink)s" -+dlopen = "%(dlopen)s" -+dlpreopen = "%(dlpreopen)s" -+libdir = "%(libdir)s"''' % self.__dict__ -+ -+class libtool_config: -+ def __init__ (self, la_filename): -+ self.__libtool_la_file = libtool_la_file(la_filename) -+ tmp = self.__libtool_la_file -+ self.__version = [int(tmp.current), int(tmp.age), int(tmp.revision)] -+ self.__sub_la_files = [] -+ self.__sub_la_files.append(la_filename) -+ self.__libs = None -+ -+ def __cmp__(self, other): -+ """make it compareable with X.Y.Z versions (Y and Z are optional)""" -+ if not other: -+ return 1 -+ othervers = [int(s) for s in str(other).split(".")] -+ selfvers = self.__version -+ return cmp(selfvers, othervers) -+ -+ def __str__(self): -+ return "\n".join([ -+ str(self.__libtool_la_file), -+ ' '.join(self.__libtool_la_file.get_libs()), -+ '* New getlibs:', -+ ' '.join(self.get_libs()) -+ ]) -+ -+ def __get_la_libs(self, la_filename): -+ return libtool_la_file(la_filename).get_libs() -+ -+ def get_libs(self): -+ """return the complete uniqe linkflags that do not -+ contain .la files anymore""" -+ libs_list = list(self.__libtool_la_file.get_libs()) -+ libs_map = {} -+ while len(libs_list) > 0: -+ entry = libs_list.pop(0) -+ if entry: -+ if str(entry).endswith(".la"): -+ ## prevents duplicate .la checks -+ if entry not in self.__sub_la_files: -+ self.__sub_la_files.append(entry) -+ libs_list.extend(self.__get_la_libs(entry)) -+ else: -+ libs_map[entry]=1 -+ self.__libs = libs_map.keys() -+ return self.__libs -+ -+ def get_libs_only_L(self): -+ if not self.__libs: self.get_libs() -+ libs = self.__libs -+ libs = [s for s in libs if str(s).startswith('-L')] -+ return libs -+ -+ def get_libs_only_l(self): -+ if not self.__libs: self.get_libs() -+ libs = self.__libs -+ libs = [s for s in libs if str(s).startswith('-l')] -+ return libs -+ -+ def get_libs_only_other(self): -+ if not self.__libs: self.get_libs() -+ libs = self.__libs -+ libs = [s for s in libs if not(str(s).startswith('-L')or str(s).startswith('-l'))] -+ return libs -+ -+def useCmdLine(): -+ """parse cmdline args and control build""" -+ usage = '''Usage: %prog [options] PathToFile.la -+example: %prog --atleast-version=2.0.0 /usr/lib/libIlmImf.la -+nor: %prog --libs /usr/lib/libamarok.la''' -+ parser = optparse.OptionParser(usage) -+ a = parser.add_option -+ a("--version", dest = "versionNumber", -+ action = "store_true", default = False, -+ help = "output version of libtool-config" -+ ) -+ a("--debug", dest = "debug", -+ action = "store_true", default = False, -+ help = "enable debug" -+ ) -+ a("--libs", dest = "libs", -+ action = "store_true", default = False, -+ help = "output all linker flags" -+ ) -+ a("--libs-only-l", dest = "libs_only_l", -+ action = "store_true", default = False, -+ help = "output -l flags" -+ ) -+ a("--libs-only-L", dest = "libs_only_L", -+ action = "store_true", default = False, -+ help = "output -L flags" -+ ) -+ a("--libs-only-other", dest = "libs_only_other", -+ action = "store_true", default = False, -+ help = "output other libs (e.g. -pthread)" -+ ) -+ a("--atleast-version", dest = "atleast_version", -+ default=None, -+ help = "return 0 if the module is at least version ATLEAST_VERSION" -+ ) -+ a("--exact-version", dest = "exact_version", -+ default=None, -+ help = "return 0 if the module is exactly version EXACT_VERSION" -+ ) -+ a("--max-version", dest = "max_version", -+ default=None, -+ help = "return 0 if the module is at no newer than version MAX_VERSION" -+ ) -+ -+ (options, args) = parser.parse_args() -+ if len(args) != 1 and not options.versionNumber: -+ parser.error("incorrect number of arguments") -+ if options.versionNumber: -+ print("libtool-config version %s" % REVISION) -+ return 0 -+ ltf = libtool_config(args[0]) -+ if options.debug: -+ print(ltf) -+ if options.atleast_version: -+ if ltf >= options.atleast_version: return 0 -+ sys.exit(1) -+ if options.exact_version: -+ if ltf == options.exact_version: return 0 -+ sys.exit(1) -+ if options.max_version: -+ if ltf <= options.max_version: return 0 -+ sys.exit(1) -+ -+ def p(x): -+ print(" ".join(x)) -+ if options.libs: p(ltf.get_libs()) -+ elif options.libs_only_l: p(ltf.get_libs_only_l()) -+ elif options.libs_only_L: p(ltf.get_libs_only_L()) -+ elif options.libs_only_other: p(ltf.get_libs_only_other()) -+ return 0 -+ -+if __name__ == '__main__': -+ useCmdLine() -+ -diff --git a/buildtools/wafadmin/Tools/lua.py b/buildtools/wafadmin/Tools/lua.py -new file mode 100644 -index 0000000..5b181e1 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/lua.py -@@ -0,0 +1,25 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Sebastian Schlingmann, 2008 -+# Thomas Nagy, 2008 (ita) -+ -+import TaskGen -+from TaskGen import taskgen, feature -+from Constants import * -+ -+TaskGen.declare_chain( -+ name = 'luac', -+ rule = '${LUAC} -s -o ${TGT} ${SRC}', -+ ext_in = '.lua', -+ ext_out = '.luac', -+ reentrant = False, -+ install = 'LUADIR', # env variable -+) -+ -+@feature('lua') -+def init_lua(self): -+ self.default_chmod = O755 -+ -+def detect(conf): -+ conf.find_program('luac', var='LUAC', mandatory = True) -+ -diff --git a/buildtools/wafadmin/Tools/misc.py b/buildtools/wafadmin/Tools/misc.py -new file mode 100644 -index 0000000..9903ee4 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/misc.py -@@ -0,0 +1,430 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+""" -+Custom objects: -+ - execute a function everytime -+ - copy a file somewhere else -+""" -+ -+import shutil, re, os -+import TaskGen, Node, Task, Utils, Build, Constants -+from TaskGen import feature, taskgen, after, before -+from Logs import debug -+ -+def copy_func(tsk): -+ "Make a file copy. This might be used to make other kinds of file processing (even calling a compiler is possible)" -+ env = tsk.env -+ infile = tsk.inputs[0].abspath(env) -+ outfile = tsk.outputs[0].abspath(env) -+ try: -+ shutil.copy2(infile, outfile) -+ except (OSError, IOError): -+ return 1 -+ else: -+ if tsk.chmod: os.chmod(outfile, tsk.chmod) -+ return 0 -+ -+def action_process_file_func(tsk): -+ "Ask the function attached to the task to process it" -+ if not tsk.fun: raise Utils.WafError('task must have a function attached to it for copy_func to work!') -+ return tsk.fun(tsk) -+ -+class cmd_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('cmd') -+def apply_cmd(self): -+ "call a command everytime" -+ if not self.fun: raise Utils.WafError('cmdobj needs a function!') -+ tsk = Task.TaskBase() -+ tsk.fun = self.fun -+ tsk.env = self.env -+ self.tasks.append(tsk) -+ tsk.install_path = self.install_path -+ -+class copy_taskgen(TaskGen.task_gen): -+ "By default, make a file copy, if fun is provided, fun will make the copy (or call a compiler, etc)" -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('copy') -+@before('apply_core') -+def apply_copy(self): -+ Utils.def_attrs(self, fun=copy_func) -+ self.default_install_path = 0 -+ -+ lst = self.to_list(self.source) -+ self.meths.remove('apply_core') -+ -+ for filename in lst: -+ node = self.path.find_resource(filename) -+ if not node: raise Utils.WafError('cannot find input file %s for processing' % filename) -+ -+ target = self.target -+ if not target or len(lst)>1: target = node.name -+ -+ # TODO the file path may be incorrect -+ newnode = self.path.find_or_declare(target) -+ -+ tsk = self.create_task('copy', node, newnode) -+ tsk.fun = self.fun -+ tsk.chmod = self.chmod -+ tsk.install_path = self.install_path -+ -+ if not tsk.env: -+ tsk.debug() -+ raise Utils.WafError('task without an environment') -+ -+def subst_func(tsk): -+ "Substitutes variables in a .in file" -+ -+ m4_re = re.compile('@(\w+)@', re.M) -+ -+ env = tsk.env -+ infile = tsk.inputs[0].abspath(env) -+ outfile = tsk.outputs[0].abspath(env) -+ -+ code = Utils.readf(infile) -+ -+ # replace all % by %% to prevent errors by % signs in the input file while string formatting -+ code = code.replace('%', '%%') -+ -+ s = m4_re.sub(r'%(\1)s', code) -+ -+ di = tsk.dict or {} -+ if not di: -+ names = m4_re.findall(code) -+ for i in names: -+ di[i] = env.get_flat(i) or env.get_flat(i.upper()) -+ -+ file = open(outfile, 'w') -+ file.write(s % di) -+ file.close() -+ if tsk.chmod: os.chmod(outfile, tsk.chmod) -+ -+class subst_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('subst') -+@before('apply_core') -+def apply_subst(self): -+ Utils.def_attrs(self, fun=subst_func) -+ self.default_install_path = 0 -+ lst = self.to_list(self.source) -+ self.meths.remove('apply_core') -+ -+ self.dict = getattr(self, 'dict', {}) -+ -+ for filename in lst: -+ node = self.path.find_resource(filename) -+ if not node: raise Utils.WafError('cannot find input file %s for processing' % filename) -+ -+ if self.target: -+ newnode = self.path.find_or_declare(self.target) -+ else: -+ newnode = node.change_ext('') -+ -+ try: -+ self.dict = self.dict.get_merged_dict() -+ except AttributeError: -+ pass -+ -+ if self.dict and not self.env['DICT_HASH']: -+ self.env = self.env.copy() -+ keys = list(self.dict.keys()) -+ keys.sort() -+ lst = [self.dict[x] for x in keys] -+ self.env['DICT_HASH'] = str(Utils.h_list(lst)) -+ -+ tsk = self.create_task('copy', node, newnode) -+ tsk.fun = self.fun -+ tsk.dict = self.dict -+ tsk.dep_vars = ['DICT_HASH'] -+ tsk.install_path = self.install_path -+ tsk.chmod = self.chmod -+ -+ if not tsk.env: -+ tsk.debug() -+ raise Utils.WafError('task without an environment') -+ -+#################### -+## command-output #### -+#################### -+ -+class cmd_arg(object): -+ """command-output arguments for representing files or folders""" -+ def __init__(self, name, template='%s'): -+ self.name = name -+ self.template = template -+ self.node = None -+ -+class input_file(cmd_arg): -+ def find_node(self, base_path): -+ assert isinstance(base_path, Node.Node) -+ self.node = base_path.find_resource(self.name) -+ if self.node is None: -+ raise Utils.WafError("Input file %s not found in " % (self.name, base_path)) -+ -+ def get_path(self, env, absolute): -+ if absolute: -+ return self.template % self.node.abspath(env) -+ else: -+ return self.template % self.node.srcpath(env) -+ -+class output_file(cmd_arg): -+ def find_node(self, base_path): -+ assert isinstance(base_path, Node.Node) -+ self.node = base_path.find_or_declare(self.name) -+ if self.node is None: -+ raise Utils.WafError("Output file %s not found in " % (self.name, base_path)) -+ -+ def get_path(self, env, absolute): -+ if absolute: -+ return self.template % self.node.abspath(env) -+ else: -+ return self.template % self.node.bldpath(env) -+ -+class cmd_dir_arg(cmd_arg): -+ def find_node(self, base_path): -+ assert isinstance(base_path, Node.Node) -+ self.node = base_path.find_dir(self.name) -+ if self.node is None: -+ raise Utils.WafError("Directory %s not found in " % (self.name, base_path)) -+ -+class input_dir(cmd_dir_arg): -+ def get_path(self, dummy_env, dummy_absolute): -+ return self.template % self.node.abspath() -+ -+class output_dir(cmd_dir_arg): -+ def get_path(self, env, dummy_absolute): -+ return self.template % self.node.abspath(env) -+ -+ -+class command_output(Task.Task): -+ color = "BLUE" -+ def __init__(self, env, command, command_node, command_args, stdin, stdout, cwd, os_env, stderr): -+ Task.Task.__init__(self, env, normal=1) -+ assert isinstance(command, (str, Node.Node)) -+ self.command = command -+ self.command_args = command_args -+ self.stdin = stdin -+ self.stdout = stdout -+ self.cwd = cwd -+ self.os_env = os_env -+ self.stderr = stderr -+ -+ if command_node is not None: self.dep_nodes = [command_node] -+ self.dep_vars = [] # additional environment variables to look -+ -+ def run(self): -+ task = self -+ #assert len(task.inputs) > 0 -+ -+ def input_path(node, template): -+ if task.cwd is None: -+ return template % node.bldpath(task.env) -+ else: -+ return template % node.abspath() -+ def output_path(node, template): -+ fun = node.abspath -+ if task.cwd is None: fun = node.bldpath -+ return template % fun(task.env) -+ -+ if isinstance(task.command, Node.Node): -+ argv = [input_path(task.command, '%s')] -+ else: -+ argv = [task.command] -+ -+ for arg in task.command_args: -+ if isinstance(arg, str): -+ argv.append(arg) -+ else: -+ assert isinstance(arg, cmd_arg) -+ argv.append(arg.get_path(task.env, (task.cwd is not None))) -+ -+ if task.stdin: -+ stdin = open(input_path(task.stdin, '%s')) -+ else: -+ stdin = None -+ -+ if task.stdout: -+ stdout = open(output_path(task.stdout, '%s'), "w") -+ else: -+ stdout = None -+ -+ if task.stderr: -+ stderr = open(output_path(task.stderr, '%s'), "w") -+ else: -+ stderr = None -+ -+ if task.cwd is None: -+ cwd = ('None (actually %r)' % os.getcwd()) -+ else: -+ cwd = repr(task.cwd) -+ debug("command-output: cwd=%s, stdin=%r, stdout=%r, argv=%r" % -+ (cwd, stdin, stdout, argv)) -+ -+ if task.os_env is None: -+ os_env = os.environ -+ else: -+ os_env = task.os_env -+ command = Utils.pproc.Popen(argv, stdin=stdin, stdout=stdout, stderr=stderr, cwd=task.cwd, env=os_env) -+ return command.wait() -+ -+class cmd_output_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('command-output') -+def init_cmd_output(self): -+ Utils.def_attrs(self, -+ stdin = None, -+ stdout = None, -+ stderr = None, -+ # the command to execute -+ command = None, -+ -+ # whether it is an external command; otherwise it is assumed -+ # to be an executable binary or script that lives in the -+ # source or build tree. -+ command_is_external = False, -+ -+ # extra parameters (argv) to pass to the command (excluding -+ # the command itself) -+ argv = [], -+ -+ # dependencies to other objects -> this is probably not what you want (ita) -+ # values must be 'task_gen' instances (not names!) -+ dependencies = [], -+ -+ # dependencies on env variable contents -+ dep_vars = [], -+ -+ # input files that are implicit, i.e. they are not -+ # stdin, nor are they mentioned explicitly in argv -+ hidden_inputs = [], -+ -+ # output files that are implicit, i.e. they are not -+ # stdout, nor are they mentioned explicitly in argv -+ hidden_outputs = [], -+ -+ # change the subprocess to this cwd (must use obj.input_dir() or output_dir() here) -+ cwd = None, -+ -+ # OS environment variables to pass to the subprocess -+ # if None, use the default environment variables unchanged -+ os_env = None) -+ -+@feature('command-output') -+@after('init_cmd_output') -+def apply_cmd_output(self): -+ if self.command is None: -+ raise Utils.WafError("command-output missing command") -+ if self.command_is_external: -+ cmd = self.command -+ cmd_node = None -+ else: -+ cmd_node = self.path.find_resource(self.command) -+ assert cmd_node is not None, ('''Could not find command '%s' in source tree. -+Hint: if this is an external command, -+use command_is_external=True''') % (self.command,) -+ cmd = cmd_node -+ -+ if self.cwd is None: -+ cwd = None -+ else: -+ assert isinstance(cwd, CmdDirArg) -+ self.cwd.find_node(self.path) -+ -+ args = [] -+ inputs = [] -+ outputs = [] -+ -+ for arg in self.argv: -+ if isinstance(arg, cmd_arg): -+ arg.find_node(self.path) -+ if isinstance(arg, input_file): -+ inputs.append(arg.node) -+ if isinstance(arg, output_file): -+ outputs.append(arg.node) -+ -+ if self.stdout is None: -+ stdout = None -+ else: -+ assert isinstance(self.stdout, str) -+ stdout = self.path.find_or_declare(self.stdout) -+ if stdout is None: -+ raise Utils.WafError("File %s not found" % (self.stdout,)) -+ outputs.append(stdout) -+ -+ if self.stderr is None: -+ stderr = None -+ else: -+ assert isinstance(self.stderr, str) -+ stderr = self.path.find_or_declare(self.stderr) -+ if stderr is None: -+ raise Utils.WafError("File %s not found" % (self.stderr,)) -+ outputs.append(stderr) -+ -+ if self.stdin is None: -+ stdin = None -+ else: -+ assert isinstance(self.stdin, str) -+ stdin = self.path.find_resource(self.stdin) -+ if stdin is None: -+ raise Utils.WafError("File %s not found" % (self.stdin,)) -+ inputs.append(stdin) -+ -+ for hidden_input in self.to_list(self.hidden_inputs): -+ node = self.path.find_resource(hidden_input) -+ if node is None: -+ raise Utils.WafError("File %s not found in dir %s" % (hidden_input, self.path)) -+ inputs.append(node) -+ -+ for hidden_output in self.to_list(self.hidden_outputs): -+ node = self.path.find_or_declare(hidden_output) -+ if node is None: -+ raise Utils.WafError("File %s not found in dir %s" % (hidden_output, self.path)) -+ outputs.append(node) -+ -+ if not (inputs or getattr(self, 'no_inputs', None)): -+ raise Utils.WafError('command-output objects must have at least one input file or give self.no_inputs') -+ if not (outputs or getattr(self, 'no_outputs', None)): -+ raise Utils.WafError('command-output objects must have at least one output file or give self.no_outputs') -+ -+ task = command_output(self.env, cmd, cmd_node, self.argv, stdin, stdout, cwd, self.os_env, stderr) -+ Utils.copy_attrs(self, task, 'before after ext_in ext_out', only_if_set=True) -+ self.tasks.append(task) -+ -+ task.inputs = inputs -+ task.outputs = outputs -+ task.dep_vars = self.to_list(self.dep_vars) -+ -+ for dep in self.dependencies: -+ assert dep is not self -+ dep.post() -+ for dep_task in dep.tasks: -+ task.set_run_after(dep_task) -+ -+ if not task.inputs: -+ # the case for svnversion, always run, and update the output nodes -+ task.runnable_status = type(Task.TaskBase.run)(runnable_status, task, task.__class__) # always run -+ task.post_run = type(Task.TaskBase.run)(post_run, task, task.__class__) -+ -+ # TODO the case with no outputs? -+ -+def post_run(self): -+ for x in self.outputs: -+ h = Utils.h_file(x.abspath(self.env)) -+ self.generator.bld.node_sigs[self.env.variant()][x.id] = h -+ -+def runnable_status(self): -+ return Constants.RUN_ME -+ -+Task.task_type_from_func('copy', vars=[], func=action_process_file_func) -+TaskGen.task_gen.classes['command-output'] = cmd_output_taskgen -+ -diff --git a/buildtools/wafadmin/Tools/msvc.py b/buildtools/wafadmin/Tools/msvc.py -new file mode 100644 -index 0000000..4fde8b1 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/msvc.py -@@ -0,0 +1,797 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Carlos Rafael Giani, 2006 (dv) -+# Tamas Pal, 2007 (folti) -+# Nicolas Mercier, 2009 -+# Microsoft Visual C++/Intel C++ compiler support - beta, needs more testing -+ -+# usage: -+# -+# conf.env['MSVC_VERSIONS'] = ['msvc 9.0', 'msvc 8.0', 'wsdk 7.0', 'intel 11', 'PocketPC 9.0', 'Smartphone 8.0'] -+# conf.env['MSVC_TARGETS'] = ['x64'] -+# conf.check_tool('msvc') -+# OR conf.check_tool('msvc', funs='no_autodetect') -+# conf.check_lib_msvc('gdi32') -+# conf.check_libs_msvc('kernel32 user32', mandatory=true) -+# ... -+# obj.uselib = 'KERNEL32 USER32 GDI32' -+# -+# platforms and targets will be tested in the order they appear; -+# the first good configuration will be used -+# supported platforms : -+# ia64, x64, x86, x86_amd64, x86_ia64 -+ -+# compilers supported : -+# msvc => Visual Studio, versions 7.1 (2003), 8,0 (2005), 9.0 (2008) -+# wsdk => Windows SDK, versions 6.0, 6.1, 7.0 -+# icl => Intel compiler, versions 9,10,11 -+# Smartphone => Compiler/SDK for Smartphone devices (armv4/v4i) -+# PocketPC => Compiler/SDK for PocketPC devices (armv4/v4i) -+ -+ -+import os, sys, re, string, optparse -+import Utils, TaskGen, Runner, Configure, Task, Options -+from Logs import debug, info, warn, error -+from TaskGen import after, before, feature -+ -+from Configure import conftest, conf -+import ccroot, cc, cxx, ar, winres -+from libtool import read_la_file -+ -+try: -+ import _winreg -+except: -+ import winreg as _winreg -+ -+pproc = Utils.pproc -+ -+# importlibs provided by MSVC/Platform SDK. Do NOT search them.... -+g_msvc_systemlibs = """ -+aclui activeds ad1 adptif adsiid advapi32 asycfilt authz bhsupp bits bufferoverflowu cabinet -+cap certadm certidl ciuuid clusapi comctl32 comdlg32 comsupp comsuppd comsuppw comsuppwd comsvcs -+credui crypt32 cryptnet cryptui d3d8thk daouuid dbgeng dbghelp dciman32 ddao35 ddao35d -+ddao35u ddao35ud delayimp dhcpcsvc dhcpsapi dlcapi dnsapi dsprop dsuiext dtchelp -+faultrep fcachdll fci fdi framedyd framedyn gdi32 gdiplus glauxglu32 gpedit gpmuuid -+gtrts32w gtrtst32hlink htmlhelp httpapi icm32 icmui imagehlp imm32 iphlpapi iprop -+kernel32 ksguid ksproxy ksuser libcmt libcmtd libcpmt libcpmtd loadperf lz32 mapi -+mapi32 mgmtapi minidump mmc mobsync mpr mprapi mqoa mqrt msacm32 mscms mscoree -+msdasc msimg32 msrating mstask msvcmrt msvcurt msvcurtd mswsock msxml2 mtx mtxdm -+netapi32 nmapinmsupp npptools ntdsapi ntdsbcli ntmsapi ntquery odbc32 odbcbcp -+odbccp32 oldnames ole32 oleacc oleaut32 oledb oledlgolepro32 opends60 opengl32 -+osptk parser pdh penter pgobootrun pgort powrprof psapi ptrustm ptrustmd ptrustu -+ptrustud qosname rasapi32 rasdlg rassapi resutils riched20 rpcndr rpcns4 rpcrt4 rtm -+rtutils runtmchk scarddlg scrnsave scrnsavw secur32 sensapi setupapi sfc shell32 -+shfolder shlwapi sisbkup snmpapi sporder srclient sti strsafe svcguid tapi32 thunk32 -+traffic unicows url urlmon user32 userenv usp10 uuid uxtheme vcomp vcompd vdmdbg -+version vfw32 wbemuuid webpost wiaguid wininet winmm winscard winspool winstrm -+wintrust wldap32 wmiutils wow32 ws2_32 wsnmp32 wsock32 wst wtsapi32 xaswitch xolehlp -+""".split() -+ -+ -+all_msvc_platforms = [ ('x64', 'amd64'), ('x86', 'x86'), ('ia64', 'ia64'), ('x86_amd64', 'amd64'), ('x86_ia64', 'ia64') ] -+all_wince_platforms = [ ('armv4', 'arm'), ('armv4i', 'arm'), ('mipsii', 'mips'), ('mipsii_fp', 'mips'), ('mipsiv', 'mips'), ('mipsiv_fp', 'mips'), ('sh4', 'sh'), ('x86', 'cex86') ] -+all_icl_platforms = [ ('intel64', 'amd64'), ('em64t', 'amd64'), ('ia32', 'x86'), ('Itanium', 'ia64')] -+ -+def setup_msvc(conf, versions): -+ platforms = Utils.to_list(conf.env['MSVC_TARGETS']) or [i for i,j in all_msvc_platforms+all_icl_platforms+all_wince_platforms] -+ desired_versions = conf.env['MSVC_VERSIONS'] or [v for v,_ in versions][::-1] -+ versiondict = dict(versions) -+ -+ for version in desired_versions: -+ try: -+ targets = dict(versiondict [version]) -+ for target in platforms: -+ try: -+ arch,(p1,p2,p3) = targets[target] -+ compiler,revision = version.split() -+ return compiler,revision,p1,p2,p3 -+ except KeyError: continue -+ except KeyError: continue -+ conf.fatal('msvc: Impossible to find a valid architecture for building (in setup_msvc)') -+ -+@conf -+def get_msvc_version(conf, compiler, version, target, vcvars): -+ debug('msvc: get_msvc_version: %r %r %r', compiler, version, target) -+ batfile = os.path.join(conf.blddir, 'waf-print-msvc.bat') -+ f = open(batfile, 'w') -+ f.write("""@echo off -+set INCLUDE= -+set LIB= -+call "%s" %s -+echo PATH=%%PATH%% -+echo INCLUDE=%%INCLUDE%% -+echo LIB=%%LIB%% -+""" % (vcvars,target)) -+ f.close() -+ sout = Utils.cmd_output(['cmd', '/E:on', '/V:on', '/C', batfile]) -+ lines = sout.splitlines() -+ -+ for x in ('Setting environment', 'Setting SDK environment', 'Intel(R) C++ Compiler'): -+ if lines[0].find(x) != -1: -+ break -+ else: -+ debug('msvc: get_msvc_version: %r %r %r -> not found', compiler, version, target) -+ conf.fatal('msvc: Impossible to find a valid architecture for building (in get_msvc_version)') -+ -+ for line in lines[1:]: -+ if line.startswith('PATH='): -+ path = line[5:] -+ MSVC_PATH = path.split(';') -+ elif line.startswith('INCLUDE='): -+ MSVC_INCDIR = [i for i in line[8:].split(';') if i] -+ elif line.startswith('LIB='): -+ MSVC_LIBDIR = [i for i in line[4:].split(';') if i] -+ -+ # Check if the compiler is usable at all. -+ # The detection may return 64-bit versions even on 32-bit systems, and these would fail to run. -+ env = {} -+ env.update(os.environ) -+ env.update(PATH = path) -+ compiler_name, linker_name, lib_name = _get_prog_names(conf, compiler) -+ cxx = conf.find_program(compiler_name, path_list=MSVC_PATH) -+ # delete CL if exists. because it could contain parameters wich can change cl's behaviour rather catastrophically. -+ if env.has_key('CL'): -+ del(env['CL']) -+ -+ try: -+ p = pproc.Popen([cxx, '/help'], env=env, stdout=pproc.PIPE, stderr=pproc.PIPE) -+ out, err = p.communicate() -+ if p.returncode != 0: -+ raise Exception('return code: %r: %r' % (p.returncode, err)) -+ except Exception, e: -+ debug('msvc: get_msvc_version: %r %r %r -> failure', compiler, version, target) -+ debug(str(e)) -+ conf.fatal('msvc: cannot run the compiler (in get_msvc_version)') -+ else: -+ debug('msvc: get_msvc_version: %r %r %r -> OK', compiler, version, target) -+ -+ return (MSVC_PATH, MSVC_INCDIR, MSVC_LIBDIR) -+ -+@conf -+def gather_wsdk_versions(conf, versions): -+ version_pattern = re.compile('^v..?.?\...?.?') -+ try: -+ all_versions = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Wow6432node\\Microsoft\\Microsoft SDKs\\Windows') -+ except WindowsError: -+ try: -+ all_versions = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows') -+ except WindowsError: -+ return -+ index = 0 -+ while 1: -+ try: -+ version = _winreg.EnumKey(all_versions, index) -+ except WindowsError: -+ break -+ index = index + 1 -+ if not version_pattern.match(version): -+ continue -+ try: -+ msvc_version = _winreg.OpenKey(all_versions, version) -+ path,type = _winreg.QueryValueEx(msvc_version,'InstallationFolder') -+ except WindowsError: -+ continue -+ if os.path.isfile(os.path.join(path, 'bin', 'SetEnv.cmd')): -+ targets = [] -+ for target,arch in all_msvc_platforms: -+ try: -+ targets.append((target, (arch, conf.get_msvc_version('wsdk', version, '/'+target, os.path.join(path, 'bin', 'SetEnv.cmd'))))) -+ except Configure.ConfigurationError: -+ pass -+ versions.append(('wsdk ' + version[1:], targets)) -+ -+@conf -+def gather_msvc_versions(conf, versions): -+ # checks SmartPhones SDKs -+ try: -+ ce_sdk = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Wow6432node\\Microsoft\\Windows CE Tools\\SDKs') -+ except WindowsError: -+ try: -+ ce_sdk = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Windows CE Tools\\SDKs') -+ except WindowsError: -+ ce_sdk = '' -+ if ce_sdk: -+ supported_wince_platforms = [] -+ ce_index = 0 -+ while 1: -+ try: -+ sdk_device = _winreg.EnumKey(ce_sdk, ce_index) -+ except WindowsError: -+ break -+ ce_index = ce_index + 1 -+ sdk = _winreg.OpenKey(ce_sdk, sdk_device) -+ path,type = _winreg.QueryValueEx(sdk, 'SDKRootDir') -+ path=str(path) -+ path,device = os.path.split(path) -+ if not device: -+ path,device = os.path.split(path) -+ for arch,compiler in all_wince_platforms: -+ platforms = [] -+ if os.path.isdir(os.path.join(path, device, 'Lib', arch)): -+ platforms.append((arch, compiler, os.path.join(path, device, 'Include', arch), os.path.join(path, device, 'Lib', arch))) -+ if platforms: -+ supported_wince_platforms.append((device, platforms)) -+ # checks MSVC -+ version_pattern = re.compile('^..?\...?') -+ for vcver,vcvar in [('VCExpress','exp'), ('VisualStudio','')]: -+ try: -+ all_versions = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Wow6432node\\Microsoft\\'+vcver) -+ except WindowsError: -+ try: -+ all_versions = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\'+vcver) -+ except WindowsError: -+ continue -+ index = 0 -+ while 1: -+ try: -+ version = _winreg.EnumKey(all_versions, index) -+ except WindowsError: -+ break -+ index = index + 1 -+ if not version_pattern.match(version): -+ continue -+ try: -+ msvc_version = _winreg.OpenKey(all_versions, version + "\\Setup\\VS") -+ path,type = _winreg.QueryValueEx(msvc_version, 'ProductDir') -+ path=str(path) -+ targets = [] -+ if ce_sdk: -+ for device,platforms in supported_wince_platforms: -+ cetargets = [] -+ for platform,compiler,include,lib in platforms: -+ winCEpath = os.path.join(path, 'VC', 'ce') -+ if os.path.isdir(winCEpath): -+ common_bindirs,_1,_2 = conf.get_msvc_version('msvc', version, 'x86', os.path.join(path, 'Common7', 'Tools', 'vsvars32.bat')) -+ if os.path.isdir(os.path.join(winCEpath, 'lib', platform)): -+ bindirs = [os.path.join(winCEpath, 'bin', compiler), os.path.join(winCEpath, 'bin', 'x86_'+compiler)] + common_bindirs -+ incdirs = [include, os.path.join(winCEpath, 'include'), os.path.join(winCEpath, 'atlmfc', 'include')] -+ libdirs = [lib, os.path.join(winCEpath, 'lib', platform), os.path.join(winCEpath, 'atlmfc', 'lib', platform)] -+ cetargets.append((platform, (platform, (bindirs,incdirs,libdirs)))) -+ versions.append((device+' '+version, cetargets)) -+ if os.path.isfile(os.path.join(path, 'VC', 'vcvarsall.bat')): -+ for target,realtarget in all_msvc_platforms[::-1]: -+ try: -+ targets.append((target, (realtarget, conf.get_msvc_version('msvc', version, target, os.path.join(path, 'VC', 'vcvarsall.bat'))))) -+ except: -+ pass -+ elif os.path.isfile(os.path.join(path, 'Common7', 'Tools', 'vsvars32.bat')): -+ try: -+ targets.append(('x86', ('x86', conf.get_msvc_version('msvc', version, 'x86', os.path.join(path, 'Common7', 'Tools', 'vsvars32.bat'))))) -+ except Configure.ConfigurationError: -+ pass -+ versions.append(('msvc '+version, targets)) -+ -+ except WindowsError: -+ continue -+ -+@conf -+def gather_icl_versions(conf, versions): -+ version_pattern = re.compile('^...?.?\....?.?') -+ try: -+ all_versions = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Wow6432node\\Intel\\Compilers\\C++') -+ except WindowsError: -+ try: -+ all_versions = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Intel\\Compilers\\C++') -+ except WindowsError: -+ return -+ index = 0 -+ while 1: -+ try: -+ version = _winreg.EnumKey(all_versions, index) -+ except WindowsError: -+ break -+ index = index + 1 -+ if not version_pattern.match(version): -+ continue -+ targets = [] -+ for target,arch in all_icl_platforms: -+ try: -+ icl_version = _winreg.OpenKey(all_versions, version+'\\'+target) -+ path,type = _winreg.QueryValueEx(icl_version,'ProductDir') -+ if os.path.isfile(os.path.join(path, 'bin', 'iclvars.bat')): -+ try: -+ targets.append((target, (arch, conf.get_msvc_version('intel', version, target, os.path.join(path, 'bin', 'iclvars.bat'))))) -+ except Configure.ConfigurationError: -+ pass -+ except WindowsError: -+ continue -+ major = version[0:2] -+ versions.append(('intel ' + major, targets)) -+ -+@conf -+def get_msvc_versions(conf): -+ if not conf.env.MSVC_INSTALLED_VERSIONS: -+ lst = [] -+ conf.gather_msvc_versions(lst) -+ conf.gather_wsdk_versions(lst) -+ conf.gather_icl_versions(lst) -+ conf.env.MSVC_INSTALLED_VERSIONS = lst -+ return conf.env.MSVC_INSTALLED_VERSIONS -+ -+@conf -+def print_all_msvc_detected(conf): -+ for version,targets in conf.env['MSVC_INSTALLED_VERSIONS']: -+ info(version) -+ for target,l in targets: -+ info("\t"+target) -+ -+def detect_msvc(conf): -+ versions = get_msvc_versions(conf) -+ return setup_msvc(conf, versions) -+ -+@conf -+def find_lt_names_msvc(self, libname, is_static=False): -+ """ -+ Win32/MSVC specific code to glean out information from libtool la files. -+ this function is not attached to the task_gen class -+ """ -+ lt_names=[ -+ 'lib%s.la' % libname, -+ '%s.la' % libname, -+ ] -+ -+ for path in self.env['LIBPATH']: -+ for la in lt_names: -+ laf=os.path.join(path,la) -+ dll=None -+ if os.path.exists(laf): -+ ltdict=read_la_file(laf) -+ lt_libdir=None -+ if ltdict.get('libdir', ''): -+ lt_libdir = ltdict['libdir'] -+ if not is_static and ltdict.get('library_names', ''): -+ dllnames=ltdict['library_names'].split() -+ dll=dllnames[0].lower() -+ dll=re.sub('\.dll$', '', dll) -+ return (lt_libdir, dll, False) -+ elif ltdict.get('old_library', ''): -+ olib=ltdict['old_library'] -+ if os.path.exists(os.path.join(path,olib)): -+ return (path, olib, True) -+ elif lt_libdir != '' and os.path.exists(os.path.join(lt_libdir,olib)): -+ return (lt_libdir, olib, True) -+ else: -+ return (None, olib, True) -+ else: -+ raise Utils.WafError('invalid libtool object file: %s' % laf) -+ return (None, None, None) -+ -+@conf -+def libname_msvc(self, libname, is_static=False, mandatory=False): -+ lib = libname.lower() -+ lib = re.sub('\.lib$','',lib) -+ -+ if lib in g_msvc_systemlibs: -+ return lib -+ -+ lib=re.sub('^lib','',lib) -+ -+ if lib == 'm': -+ return None -+ -+ (lt_path, lt_libname, lt_static) = self.find_lt_names_msvc(lib, is_static) -+ -+ if lt_path != None and lt_libname != None: -+ if lt_static == True: -+ # file existance check has been made by find_lt_names -+ return os.path.join(lt_path,lt_libname) -+ -+ if lt_path != None: -+ _libpaths=[lt_path] + self.env['LIBPATH'] -+ else: -+ _libpaths=self.env['LIBPATH'] -+ -+ static_libs=[ -+ 'lib%ss.lib' % lib, -+ 'lib%s.lib' % lib, -+ '%ss.lib' % lib, -+ '%s.lib' %lib, -+ ] -+ -+ dynamic_libs=[ -+ 'lib%s.dll.lib' % lib, -+ 'lib%s.dll.a' % lib, -+ '%s.dll.lib' % lib, -+ '%s.dll.a' % lib, -+ 'lib%s_d.lib' % lib, -+ '%s_d.lib' % lib, -+ '%s.lib' %lib, -+ ] -+ -+ libnames=static_libs -+ if not is_static: -+ libnames=dynamic_libs + static_libs -+ -+ for path in _libpaths: -+ for libn in libnames: -+ if os.path.exists(os.path.join(path, libn)): -+ debug('msvc: lib found: %s', os.path.join(path,libn)) -+ return re.sub('\.lib$', '',libn) -+ -+ #if no lib can be found, just return the libname as msvc expects it -+ if mandatory: -+ self.fatal("The library %r could not be found" % libname) -+ return re.sub('\.lib$', '', libname) -+ -+@conf -+def check_lib_msvc(self, libname, is_static=False, uselib_store=None, mandatory=False): -+ "This is the api to use" -+ libn = self.libname_msvc(libname, is_static, mandatory) -+ -+ if not uselib_store: -+ uselib_store = libname.upper() -+ -+ # Note: ideally we should be able to place the lib in the right env var, either STATICLIB or LIB, -+ # but we don't distinguish static libs from shared libs. -+ # This is ok since msvc doesn't have any special linker flag to select static libs (no env['STATICLIB_MARKER']) -+ if False and is_static: # disabled -+ self.env['STATICLIB_' + uselib_store] = [libn] -+ else: -+ self.env['LIB_' + uselib_store] = [libn] -+ -+@conf -+def check_libs_msvc(self, libnames, is_static=False, mandatory=False): -+ for libname in Utils.to_list(libnames): -+ self.check_lib_msvc(libname, is_static, mandatory=mandatory) -+ -+@conftest -+def no_autodetect(conf): -+ conf.eval_rules(detect.replace('autodetect', '')) -+ -+ -+detect = ''' -+autodetect -+find_msvc -+msvc_common_flags -+cc_load_tools -+cxx_load_tools -+cc_add_flags -+cxx_add_flags -+link_add_flags -+''' -+ -+@conftest -+def autodetect(conf): -+ v = conf.env -+ compiler, version, path, includes, libdirs = detect_msvc(conf) -+ v['PATH'] = path -+ v['CPPPATH'] = includes -+ v['LIBPATH'] = libdirs -+ v['MSVC_COMPILER'] = compiler -+ -+def _get_prog_names(conf, compiler): -+ if compiler=='intel': -+ compiler_name = 'ICL' -+ linker_name = 'XILINK' -+ lib_name = 'XILIB' -+ else: -+ # assumes CL.exe -+ compiler_name = 'CL' -+ linker_name = 'LINK' -+ lib_name = 'LIB' -+ return compiler_name, linker_name, lib_name -+ -+@conftest -+def find_msvc(conf): -+ # due to path format limitations, limit operation only to native Win32. Yeah it sucks. -+ if sys.platform != 'win32': -+ conf.fatal('MSVC module only works under native Win32 Python! cygwin is not supported yet') -+ -+ v = conf.env -+ -+ compiler, version, path, includes, libdirs = detect_msvc(conf) -+ -+ compiler_name, linker_name, lib_name = _get_prog_names(conf, compiler) -+ has_msvc_manifest = (compiler == 'msvc' and float(version) >= 8) or (compiler == 'wsdk' and float(version) >= 6) or (compiler == 'intel' and float(version) >= 11) -+ -+ # compiler -+ cxx = None -+ if v.CXX: cxx = v.CXX -+ elif 'CXX' in conf.environ: cxx = conf.environ['CXX'] -+ if not cxx: cxx = conf.find_program(compiler_name, var='CXX', path_list=path, mandatory=True) -+ cxx = conf.cmd_to_list(cxx) -+ -+ # before setting anything, check if the compiler is really msvc -+ env = dict(conf.environ) -+ env.update(PATH = ';'.join(path)) -+ if not Utils.cmd_output([cxx, '/nologo', '/?'], silent=True, env=env): -+ conf.fatal('the msvc compiler could not be identified') -+ -+ link = v.LINK_CXX -+ if not link: -+ link = conf.find_program(linker_name, path_list=path, mandatory=True) -+ ar = v.AR -+ if not ar: -+ ar = conf.find_program(lib_name, path_list=path, mandatory=True) -+ -+ # manifest tool. Not required for VS 2003 and below. Must have for VS 2005 and later -+ mt = v.MT -+ if has_msvc_manifest: -+ mt = conf.find_program('MT', path_list=path, mandatory=True) -+ -+ # no more possibility of failure means the data state will be consistent -+ # we may store the data safely now -+ -+ v.MSVC_MANIFEST = has_msvc_manifest -+ v.PATH = path -+ v.CPPPATH = includes -+ v.LIBPATH = libdirs -+ -+ # c/c++ compiler -+ v.CC = v.CXX = cxx -+ v.CC_NAME = v.CXX_NAME = 'msvc' -+ -+ v.LINK = v.LINK_CXX = link -+ if not v.LINK_CC: -+ v.LINK_CC = v.LINK_CXX -+ -+ v.AR = ar -+ v.MT = mt -+ v.MTFLAGS = v.ARFLAGS = ['/NOLOGO'] -+ -+ -+ conf.check_tool('winres') -+ -+ if not conf.env.WINRC: -+ warn('Resource compiler not found. Compiling resource file is disabled') -+ -+ # environment flags -+ try: v.prepend_value('CPPPATH', conf.environ['INCLUDE']) -+ except KeyError: pass -+ try: v.prepend_value('LIBPATH', conf.environ['LIB']) -+ except KeyError: pass -+ -+@conftest -+def msvc_common_flags(conf): -+ v = conf.env -+ -+ v['CPPFLAGS'] = ['/W3', '/nologo'] -+ -+ v['CCDEFINES_ST'] = '/D%s' -+ v['CXXDEFINES_ST'] = '/D%s' -+ -+ # TODO just use _WIN32, which defined by the compiler itself! -+ v['CCDEFINES'] = ['WIN32'] # avoid using this, any compiler predefines the _WIN32 marcro anyway -+ v['CXXDEFINES'] = ['WIN32'] # avoid using this, any compiler predefines the _WIN32 marcro anyway -+ -+ v['_CCINCFLAGS'] = [] -+ v['_CCDEFFLAGS'] = [] -+ v['_CXXINCFLAGS'] = [] -+ v['_CXXDEFFLAGS'] = [] -+ -+ v['CC_SRC_F'] = '' -+ v['CC_TGT_F'] = ['/c', '/Fo'] -+ v['CXX_SRC_F'] = '' -+ v['CXX_TGT_F'] = ['/c', '/Fo'] -+ -+ v['CPPPATH_ST'] = '/I%s' # template for adding include paths -+ -+ v['AR_TGT_F'] = v['CCLNK_TGT_F'] = v['CXXLNK_TGT_F'] = '/OUT:' -+ -+ # Subsystem specific flags -+ v['CPPFLAGS_CONSOLE'] = ['/SUBSYSTEM:CONSOLE'] -+ v['CPPFLAGS_NATIVE'] = ['/SUBSYSTEM:NATIVE'] -+ v['CPPFLAGS_POSIX'] = ['/SUBSYSTEM:POSIX'] -+ v['CPPFLAGS_WINDOWS'] = ['/SUBSYSTEM:WINDOWS'] -+ v['CPPFLAGS_WINDOWSCE'] = ['/SUBSYSTEM:WINDOWSCE'] -+ -+ # CRT specific flags -+ v['CPPFLAGS_CRT_MULTITHREADED'] = ['/MT'] -+ v['CPPFLAGS_CRT_MULTITHREADED_DLL'] = ['/MD'] -+ -+ # TODO these are defined by the compiler itself! -+ v['CPPDEFINES_CRT_MULTITHREADED'] = ['_MT'] # this is defined by the compiler itself! -+ v['CPPDEFINES_CRT_MULTITHREADED_DLL'] = ['_MT', '_DLL'] # these are defined by the compiler itself! -+ -+ v['CPPFLAGS_CRT_MULTITHREADED_DBG'] = ['/MTd'] -+ v['CPPFLAGS_CRT_MULTITHREADED_DLL_DBG'] = ['/MDd'] -+ -+ # TODO these are defined by the compiler itself! -+ v['CPPDEFINES_CRT_MULTITHREADED_DBG'] = ['_DEBUG', '_MT'] # these are defined by the compiler itself! -+ v['CPPDEFINES_CRT_MULTITHREADED_DLL_DBG'] = ['_DEBUG', '_MT', '_DLL'] # these are defined by the compiler itself! -+ -+ # compiler debug levels -+ v['CCFLAGS'] = ['/TC'] -+ v['CCFLAGS_OPTIMIZED'] = ['/O2', '/DNDEBUG'] -+ v['CCFLAGS_RELEASE'] = ['/O2', '/DNDEBUG'] -+ v['CCFLAGS_DEBUG'] = ['/Od', '/RTC1', '/ZI'] -+ v['CCFLAGS_ULTRADEBUG'] = ['/Od', '/RTC1', '/ZI'] -+ -+ v['CXXFLAGS'] = ['/TP', '/EHsc'] -+ v['CXXFLAGS_OPTIMIZED'] = ['/O2', '/DNDEBUG'] -+ v['CXXFLAGS_RELEASE'] = ['/O2', '/DNDEBUG'] -+ -+ v['CXXFLAGS_DEBUG'] = ['/Od', '/RTC1', '/ZI'] -+ v['CXXFLAGS_ULTRADEBUG'] = ['/Od', '/RTC1', '/ZI'] -+ -+ # linker -+ v['LIB'] = [] -+ -+ v['LIB_ST'] = '%s.lib' # template for adding libs -+ v['LIBPATH_ST'] = '/LIBPATH:%s' # template for adding libpaths -+ v['STATICLIB_ST'] = 'lib%s.lib' # Note: to be able to distinguish between a static lib and a dll import lib, it's a good pratice to name the static lib 'lib%s.lib' and the dll import lib '%s.lib' -+ v['STATICLIBPATH_ST'] = '/LIBPATH:%s' -+ -+ v['LINKFLAGS'] = ['/NOLOGO'] -+ if v['MSVC_MANIFEST']: -+ v.append_value('LINKFLAGS', '/MANIFEST') -+ v['LINKFLAGS_DEBUG'] = ['/DEBUG'] -+ v['LINKFLAGS_ULTRADEBUG'] = ['/DEBUG'] -+ -+ # shared library -+ v['shlib_CCFLAGS'] = [''] -+ v['shlib_CXXFLAGS'] = [''] -+ v['shlib_LINKFLAGS']= ['/DLL'] -+ v['shlib_PATTERN'] = '%s.dll' -+ v['implib_PATTERN'] = '%s.lib' -+ v['IMPLIB_ST'] = '/IMPLIB:%s' -+ -+ # static library -+ v['staticlib_LINKFLAGS'] = [''] -+ v['staticlib_PATTERN'] = 'lib%s.lib' # Note: to be able to distinguish between a static lib and a dll import lib, it's a good pratice to name the static lib 'lib%s.lib' and the dll import lib '%s.lib' -+ -+ # program -+ v['program_PATTERN'] = '%s.exe' -+ -+ -+####################################################################################################### -+##### conf above, build below -+ -+@after('apply_link') -+@feature('cc', 'cxx') -+def apply_flags_msvc(self): -+ if self.env.CC_NAME != 'msvc' or not self.link_task: -+ return -+ -+ subsystem = getattr(self, 'subsystem', '') -+ if subsystem: -+ subsystem = '/subsystem:%s' % subsystem -+ flags = 'cstaticlib' in self.features and 'ARFLAGS' or 'LINKFLAGS' -+ self.env.append_value(flags, subsystem) -+ -+ if getattr(self, 'link_task', None) and not 'cstaticlib' in self.features: -+ for f in self.env.LINKFLAGS: -+ d = f.lower() -+ if d[1:] == 'debug': -+ pdbnode = self.link_task.outputs[0].change_ext('.pdb') -+ pdbfile = pdbnode.bldpath(self.env) -+ self.link_task.outputs.append(pdbnode) -+ self.bld.install_files(self.install_path, [pdbnode], env=self.env) -+ break -+ -+@feature('cprogram', 'cshlib', 'cstaticlib') -+@after('apply_lib_vars') -+@before('apply_obj_vars') -+def apply_obj_vars_msvc(self): -+ if self.env['CC_NAME'] != 'msvc': -+ return -+ -+ try: -+ self.meths.remove('apply_obj_vars') -+ except ValueError: -+ pass -+ -+ libpaths = getattr(self, 'libpaths', []) -+ if not libpaths: self.libpaths = libpaths -+ -+ env = self.env -+ app = env.append_unique -+ -+ cpppath_st = env['CPPPATH_ST'] -+ lib_st = env['LIB_ST'] -+ staticlib_st = env['STATICLIB_ST'] -+ libpath_st = env['LIBPATH_ST'] -+ staticlibpath_st = env['STATICLIBPATH_ST'] -+ -+ for i in env['LIBPATH']: -+ app('LINKFLAGS', libpath_st % i) -+ if not libpaths.count(i): -+ libpaths.append(i) -+ -+ for i in env['LIBPATH']: -+ app('LINKFLAGS', staticlibpath_st % i) -+ if not libpaths.count(i): -+ libpaths.append(i) -+ -+ # i doubt that anyone will make a fully static binary anyway -+ if not env['FULLSTATIC']: -+ if env['STATICLIB'] or env['LIB']: -+ app('LINKFLAGS', env['SHLIB_MARKER']) # TODO does SHLIB_MARKER work? -+ -+ for i in env['STATICLIB']: -+ app('LINKFLAGS', staticlib_st % i) -+ -+ for i in env['LIB']: -+ app('LINKFLAGS', lib_st % i) -+ -+# split the manifest file processing from the link task, like for the rc processing -+ -+@feature('cprogram', 'cshlib') -+@after('apply_link') -+def apply_manifest(self): -+ """Special linker for MSVC with support for embedding manifests into DLL's -+ and executables compiled by Visual Studio 2005 or probably later. Without -+ the manifest file, the binaries are unusable. -+ See: http://msdn2.microsoft.com/en-us/library/ms235542(VS.80).aspx""" -+ -+ if self.env.CC_NAME == 'msvc' and self.env.MSVC_MANIFEST: -+ out_node = self.link_task.outputs[0] -+ man_node = out_node.parent.find_or_declare(out_node.name + '.manifest') -+ self.link_task.outputs.append(man_node) -+ self.link_task.do_manifest = True -+ -+def exec_mf(self): -+ env = self.env -+ mtool = env['MT'] -+ if not mtool: -+ return 0 -+ -+ self.do_manifest = False -+ -+ outfile = self.outputs[0].bldpath(env) -+ -+ manifest = None -+ for out_node in self.outputs: -+ if out_node.name.endswith('.manifest'): -+ manifest = out_node.bldpath(env) -+ break -+ if manifest is None: -+ # Should never get here. If we do, it means the manifest file was -+ # never added to the outputs list, thus we don't have a manifest file -+ # to embed, so we just return. -+ return 0 -+ -+ # embedding mode. Different for EXE's and DLL's. -+ # see: http://msdn2.microsoft.com/en-us/library/ms235591(VS.80).aspx -+ mode = '' -+ if 'cprogram' in self.generator.features: -+ mode = '1' -+ elif 'cshlib' in self.generator.features: -+ mode = '2' -+ -+ debug('msvc: embedding manifest') -+ #flags = ' '.join(env['MTFLAGS'] or []) -+ -+ lst = [] -+ lst.extend([env['MT']]) -+ lst.extend(Utils.to_list(env['MTFLAGS'])) -+ lst.extend(Utils.to_list("-manifest")) -+ lst.extend(Utils.to_list(manifest)) -+ lst.extend(Utils.to_list("-outputresource:%s;%s" % (outfile, mode))) -+ -+ #cmd='%s %s -manifest "%s" -outputresource:"%s";#%s' % (mtool, flags, -+ # manifest, outfile, mode) -+ lst = [lst] -+ return self.exec_command(*lst) -+ -+########## stupid evil command modification: concatenate the tokens /Fx, /doc, and /x: with the next token -+ -+def exec_command_msvc(self, *k, **kw): -+ "instead of quoting all the paths and keep using the shell, we can just join the options msvc is interested in" -+ if self.env['CC_NAME'] == 'msvc': -+ if isinstance(k[0], list): -+ lst = [] -+ carry = '' -+ for a in k[0]: -+ if len(a) == 3 and a.startswith('/F') or a == '/doc' or a[-1] == ':': -+ carry = a -+ else: -+ lst.append(carry + a) -+ carry = '' -+ k = [lst] -+ -+ env = dict(os.environ) -+ env.update(PATH = ';'.join(self.env['PATH'])) -+ kw['env'] = env -+ -+ ret = self.generator.bld.exec_command(*k, **kw) -+ if ret: return ret -+ if getattr(self, 'do_manifest', None): -+ ret = exec_mf(self) -+ return ret -+ -+for k in 'cc cxx winrc cc_link cxx_link static_link qxx'.split(): -+ cls = Task.TaskBase.classes.get(k, None) -+ if cls: -+ cls.exec_command = exec_command_msvc -+ -diff --git a/buildtools/wafadmin/Tools/nasm.py b/buildtools/wafadmin/Tools/nasm.py -new file mode 100644 -index 0000000..b99c3c7 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/nasm.py -@@ -0,0 +1,49 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2008 -+ -+""" -+Nasm processing -+""" -+ -+import os -+import TaskGen, Task, Utils -+from TaskGen import taskgen, before, extension -+ -+nasm_str = '${NASM} ${NASM_FLAGS} ${NASM_INCLUDES} ${SRC} -o ${TGT}' -+ -+EXT_NASM = ['.s', '.S', '.asm', '.ASM', '.spp', '.SPP'] -+ -+@before('apply_link') -+def apply_nasm_vars(self): -+ -+ # flags -+ if hasattr(self, 'nasm_flags'): -+ for flag in self.to_list(self.nasm_flags): -+ self.env.append_value('NASM_FLAGS', flag) -+ -+ # includes - well, if we suppose it works with c processing -+ if hasattr(self, 'includes'): -+ for inc in self.to_list(self.includes): -+ node = self.path.find_dir(inc) -+ if not node: -+ raise Utils.WafError('cannot find the dir' + inc) -+ self.env.append_value('NASM_INCLUDES', '-I%s' % node.srcpath(self.env)) -+ self.env.append_value('NASM_INCLUDES', '-I%s' % node.bldpath(self.env)) -+ -+@extension(EXT_NASM) -+def nasm_file(self, node): -+ try: obj_ext = self.obj_ext -+ except AttributeError: obj_ext = '_%d.o' % self.idx -+ -+ task = self.create_task('nasm', node, node.change_ext(obj_ext)) -+ self.compiled_tasks.append(task) -+ -+ self.meths.append('apply_nasm_vars') -+ -+# create our action here -+Task.simple_task_type('nasm', nasm_str, color='BLUE', ext_out='.o', shell=False) -+ -+def detect(conf): -+ nasm = conf.find_program(['nasm', 'yasm'], var='NASM', mandatory=True) -+ -diff --git a/buildtools/wafadmin/Tools/ocaml.py b/buildtools/wafadmin/Tools/ocaml.py -new file mode 100644 -index 0000000..20c9269 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/ocaml.py -@@ -0,0 +1,298 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+"ocaml support" -+ -+import os, re -+import TaskGen, Utils, Task, Build -+from Logs import error -+from TaskGen import taskgen, feature, before, after, extension -+ -+EXT_MLL = ['.mll'] -+EXT_MLY = ['.mly'] -+EXT_MLI = ['.mli'] -+EXT_MLC = ['.c'] -+EXT_ML = ['.ml'] -+ -+open_re = re.compile('^\s*open\s+([a-zA-Z]+)(;;){0,1}$', re.M) -+foo = re.compile(r"""(\(\*)|(\*\))|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^()*"'\\]*)""", re.M) -+def filter_comments(txt): -+ meh = [0] -+ def repl(m): -+ if m.group(1): meh[0] += 1 -+ elif m.group(2): meh[0] -= 1 -+ elif not meh[0]: return m.group(0) -+ return '' -+ return foo.sub(repl, txt) -+ -+def scan(self): -+ node = self.inputs[0] -+ code = filter_comments(node.read(self.env)) -+ -+ global open_re -+ names = [] -+ import_iterator = open_re.finditer(code) -+ if import_iterator: -+ for import_match in import_iterator: -+ names.append(import_match.group(1)) -+ found_lst = [] -+ raw_lst = [] -+ for name in names: -+ nd = None -+ for x in self.incpaths: -+ nd = x.find_resource(name.lower()+'.ml') -+ if not nd: nd = x.find_resource(name+'.ml') -+ if nd: -+ found_lst.append(nd) -+ break -+ else: -+ raw_lst.append(name) -+ -+ return (found_lst, raw_lst) -+ -+native_lst=['native', 'all', 'c_object'] -+bytecode_lst=['bytecode', 'all'] -+class ocaml_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('ocaml') -+def init_ml(self): -+ Utils.def_attrs(self, -+ type = 'all', -+ incpaths_lst = [], -+ bld_incpaths_lst = [], -+ mlltasks = [], -+ mlytasks = [], -+ mlitasks = [], -+ native_tasks = [], -+ bytecode_tasks = [], -+ linktasks = [], -+ bytecode_env = None, -+ native_env = None, -+ compiled_tasks = [], -+ includes = '', -+ uselib = '', -+ are_deps_set = 0) -+ -+@feature('ocaml') -+@after('init_ml') -+def init_envs_ml(self): -+ -+ self.islibrary = getattr(self, 'islibrary', False) -+ -+ global native_lst, bytecode_lst -+ self.native_env = None -+ if self.type in native_lst: -+ self.native_env = self.env.copy() -+ if self.islibrary: self.native_env['OCALINKFLAGS'] = '-a' -+ -+ self.bytecode_env = None -+ if self.type in bytecode_lst: -+ self.bytecode_env = self.env.copy() -+ if self.islibrary: self.bytecode_env['OCALINKFLAGS'] = '-a' -+ -+ if self.type == 'c_object': -+ self.native_env.append_unique('OCALINKFLAGS_OPT', '-output-obj') -+ -+@feature('ocaml') -+@before('apply_vars_ml') -+@after('init_envs_ml') -+def apply_incpaths_ml(self): -+ inc_lst = self.includes.split() -+ lst = self.incpaths_lst -+ for dir in inc_lst: -+ node = self.path.find_dir(dir) -+ if not node: -+ error("node not found: " + str(dir)) -+ continue -+ self.bld.rescan(node) -+ if not node in lst: lst.append(node) -+ self.bld_incpaths_lst.append(node) -+ # now the nodes are added to self.incpaths_lst -+ -+@feature('ocaml') -+@before('apply_core') -+def apply_vars_ml(self): -+ for i in self.incpaths_lst: -+ if self.bytecode_env: -+ app = self.bytecode_env.append_value -+ app('OCAMLPATH', '-I') -+ app('OCAMLPATH', i.srcpath(self.env)) -+ app('OCAMLPATH', '-I') -+ app('OCAMLPATH', i.bldpath(self.env)) -+ -+ if self.native_env: -+ app = self.native_env.append_value -+ app('OCAMLPATH', '-I') -+ app('OCAMLPATH', i.bldpath(self.env)) -+ app('OCAMLPATH', '-I') -+ app('OCAMLPATH', i.srcpath(self.env)) -+ -+ varnames = ['INCLUDES', 'OCAMLFLAGS', 'OCALINKFLAGS', 'OCALINKFLAGS_OPT'] -+ for name in self.uselib.split(): -+ for vname in varnames: -+ cnt = self.env[vname+'_'+name] -+ if cnt: -+ if self.bytecode_env: self.bytecode_env.append_value(vname, cnt) -+ if self.native_env: self.native_env.append_value(vname, cnt) -+ -+@feature('ocaml') -+@after('apply_core') -+def apply_link_ml(self): -+ -+ if self.bytecode_env: -+ ext = self.islibrary and '.cma' or '.run' -+ -+ linktask = self.create_task('ocalink') -+ linktask.bytecode = 1 -+ linktask.set_outputs(self.path.find_or_declare(self.target + ext)) -+ linktask.obj = self -+ linktask.env = self.bytecode_env -+ self.linktasks.append(linktask) -+ -+ if self.native_env: -+ if self.type == 'c_object': ext = '.o' -+ elif self.islibrary: ext = '.cmxa' -+ else: ext = '' -+ -+ linktask = self.create_task('ocalinkx') -+ linktask.set_outputs(self.path.find_or_declare(self.target + ext)) -+ linktask.obj = self -+ linktask.env = self.native_env -+ self.linktasks.append(linktask) -+ -+ # we produce a .o file to be used by gcc -+ self.compiled_tasks.append(linktask) -+ -+@extension(EXT_MLL) -+def mll_hook(self, node): -+ mll_task = self.create_task('ocamllex', node, node.change_ext('.ml'), env=self.native_env) -+ self.mlltasks.append(mll_task) -+ -+ self.allnodes.append(mll_task.outputs[0]) -+ -+@extension(EXT_MLY) -+def mly_hook(self, node): -+ mly_task = self.create_task('ocamlyacc', node, [node.change_ext('.ml'), node.change_ext('.mli')], env=self.native_env) -+ self.mlytasks.append(mly_task) -+ self.allnodes.append(mly_task.outputs[0]) -+ -+ task = self.create_task('ocamlcmi', mly_task.outputs[1], mly_task.outputs[1].change_ext('.cmi'), env=self.native_env) -+ -+@extension(EXT_MLI) -+def mli_hook(self, node): -+ task = self.create_task('ocamlcmi', node, node.change_ext('.cmi'), env=self.native_env) -+ self.mlitasks.append(task) -+ -+@extension(EXT_MLC) -+def mlc_hook(self, node): -+ task = self.create_task('ocamlcc', node, node.change_ext('.o'), env=self.native_env) -+ self.compiled_tasks.append(task) -+ -+@extension(EXT_ML) -+def ml_hook(self, node): -+ if self.native_env: -+ task = self.create_task('ocamlx', node, node.change_ext('.cmx'), env=self.native_env) -+ task.obj = self -+ task.incpaths = self.bld_incpaths_lst -+ self.native_tasks.append(task) -+ -+ if self.bytecode_env: -+ task = self.create_task('ocaml', node, node.change_ext('.cmo'), env=self.bytecode_env) -+ task.obj = self -+ task.bytecode = 1 -+ task.incpaths = self.bld_incpaths_lst -+ self.bytecode_tasks.append(task) -+ -+def compile_may_start(self): -+ if not getattr(self, 'flag_deps', ''): -+ self.flag_deps = 1 -+ -+ # the evil part is that we can only compute the dependencies after the -+ # source files can be read (this means actually producing the source files) -+ if getattr(self, 'bytecode', ''): alltasks = self.obj.bytecode_tasks -+ else: alltasks = self.obj.native_tasks -+ -+ self.signature() # ensure that files are scanned - unfortunately -+ tree = self.generator.bld -+ env = self.env -+ for node in self.inputs: -+ lst = tree.node_deps[self.unique_id()] -+ for depnode in lst: -+ for t in alltasks: -+ if t == self: continue -+ if depnode in t.inputs: -+ self.set_run_after(t) -+ -+ # TODO necessary to get the signature right - for now -+ delattr(self, 'cache_sig') -+ self.signature() -+ -+ return Task.Task.runnable_status(self) -+ -+b = Task.simple_task_type -+cls = b('ocamlx', '${OCAMLOPT} ${OCAMLPATH} ${OCAMLFLAGS} ${INCLUDES} -c -o ${TGT} ${SRC}', color='GREEN', shell=False) -+cls.runnable_status = compile_may_start -+cls.scan = scan -+ -+b = Task.simple_task_type -+cls = b('ocaml', '${OCAMLC} ${OCAMLPATH} ${OCAMLFLAGS} ${INCLUDES} -c -o ${TGT} ${SRC}', color='GREEN', shell=False) -+cls.runnable_status = compile_may_start -+cls.scan = scan -+ -+ -+b('ocamlcmi', '${OCAMLC} ${OCAMLPATH} ${INCLUDES} -o ${TGT} -c ${SRC}', color='BLUE', before="ocaml ocamlcc ocamlx") -+b('ocamlcc', 'cd ${TGT[0].bld_dir(env)} && ${OCAMLOPT} ${OCAMLFLAGS} ${OCAMLPATH} ${INCLUDES} -c ${SRC[0].abspath(env)}', color='GREEN') -+ -+b('ocamllex', '${OCAMLLEX} ${SRC} -o ${TGT}', color='BLUE', before="ocamlcmi ocaml ocamlcc") -+b('ocamlyacc', '${OCAMLYACC} -b ${TGT[0].bld_base(env)} ${SRC}', color='BLUE', before="ocamlcmi ocaml ocamlcc") -+ -+ -+def link_may_start(self): -+ if not getattr(self, 'order', ''): -+ -+ # now reorder the inputs given the task dependencies -+ if getattr(self, 'bytecode', 0): alltasks = self.obj.bytecode_tasks -+ else: alltasks = self.obj.native_tasks -+ -+ # this part is difficult, we do not have a total order on the tasks -+ # if the dependencies are wrong, this may not stop -+ seen = [] -+ pendant = []+alltasks -+ while pendant: -+ task = pendant.pop(0) -+ if task in seen: continue -+ for x in task.run_after: -+ if not x in seen: -+ pendant.append(task) -+ break -+ else: -+ seen.append(task) -+ self.inputs = [x.outputs[0] for x in seen] -+ self.order = 1 -+ return Task.Task.runnable_status(self) -+ -+act = b('ocalink', '${OCAMLC} -o ${TGT} ${INCLUDES} ${OCALINKFLAGS} ${SRC}', color='YELLOW', after="ocaml ocamlcc") -+act.runnable_status = link_may_start -+act = b('ocalinkx', '${OCAMLOPT} -o ${TGT} ${INCLUDES} ${OCALINKFLAGS_OPT} ${SRC}', color='YELLOW', after="ocamlx ocamlcc") -+act.runnable_status = link_may_start -+ -+def detect(conf): -+ opt = conf.find_program('ocamlopt', var='OCAMLOPT') -+ occ = conf.find_program('ocamlc', var='OCAMLC') -+ if (not opt) or (not occ): -+ conf.fatal('The objective caml compiler was not found:\ninstall it or make it available in your PATH') -+ -+ v = conf.env -+ v['OCAMLC'] = occ -+ v['OCAMLOPT'] = opt -+ v['OCAMLLEX'] = conf.find_program('ocamllex', var='OCAMLLEX') -+ v['OCAMLYACC'] = conf.find_program('ocamlyacc', var='OCAMLYACC') -+ v['OCAMLFLAGS'] = '' -+ v['OCAMLLIB'] = Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep -+ v['LIBPATH_OCAML'] = Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep -+ v['CPPPATH_OCAML'] = Utils.cmd_output(conf.env['OCAMLC']+' -where').strip()+os.sep -+ v['LIB_OCAML'] = 'camlrun' -+ -diff --git a/buildtools/wafadmin/Tools/osx.py b/buildtools/wafadmin/Tools/osx.py -new file mode 100644 -index 0000000..561eca4 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/osx.py -@@ -0,0 +1,188 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy 2008 -+ -+"""MacOSX related tools -+ -+To compile an executable into a Mac application bundle (a .app), set its 'mac_app' attribute -+ obj.mac_app = True -+ -+To make a bundled shared library (a .bundle), set the 'mac_bundle' attribute: -+ obj.mac_bundle = True -+""" -+ -+import os, shutil, sys, platform -+import TaskGen, Task, Build, Options, Utils -+from TaskGen import taskgen, feature, after, before -+from Logs import error, debug -+ -+# plist template -+app_info = ''' -+ -+ -+ -+ -+ CFBundlePackageType -+ APPL -+ CFBundleGetInfoString -+ Created by Waf -+ CFBundleSignature -+ ???? -+ NOTE -+ THIS IS A GENERATED FILE, DO NOT MODIFY -+ CFBundleExecutable -+ %s -+ -+ -+''' -+ -+# see WAF issue 285 -+# and also http://trac.macports.org/ticket/17059 -+@feature('cc', 'cxx') -+@before('apply_lib_vars') -+def set_macosx_deployment_target(self): -+ if self.env['MACOSX_DEPLOYMENT_TARGET']: -+ os.environ['MACOSX_DEPLOYMENT_TARGET'] = self.env['MACOSX_DEPLOYMENT_TARGET'] -+ elif 'MACOSX_DEPLOYMENT_TARGET' not in os.environ: -+ if sys.platform == 'darwin': -+ os.environ['MACOSX_DEPLOYMENT_TARGET'] = '.'.join(platform.mac_ver()[0].split('.')[:2]) -+ -+@feature('cc', 'cxx') -+@after('apply_lib_vars') -+def apply_framework(self): -+ for x in self.to_list(self.env['FRAMEWORKPATH']): -+ frameworkpath_st = '-F%s' -+ self.env.append_unique('CXXFLAGS', frameworkpath_st % x) -+ self.env.append_unique('CCFLAGS', frameworkpath_st % x) -+ self.env.append_unique('LINKFLAGS', frameworkpath_st % x) -+ -+ for x in self.to_list(self.env['FRAMEWORK']): -+ self.env.append_value('LINKFLAGS', ['-framework', x]) -+ -+@taskgen -+def create_bundle_dirs(self, name, out): -+ bld = self.bld -+ dir = out.parent.get_dir(name) -+ -+ if not dir: -+ dir = out.__class__(name, out.parent, 1) -+ bld.rescan(dir) -+ contents = out.__class__('Contents', dir, 1) -+ bld.rescan(contents) -+ macos = out.__class__('MacOS', contents, 1) -+ bld.rescan(macos) -+ return dir -+ -+def bundle_name_for_output(out): -+ name = out.name -+ k = name.rfind('.') -+ if k >= 0: -+ name = name[:k] + '.app' -+ else: -+ name = name + '.app' -+ return name -+ -+@taskgen -+@after('apply_link') -+@feature('cprogram') -+def create_task_macapp(self): -+ """Use env['MACAPP'] to force *all* executables to be transformed into Mac applications -+ or use obj.mac_app = True to build specific targets as Mac apps""" -+ if self.env['MACAPP'] or getattr(self, 'mac_app', False): -+ apptask = self.create_task('macapp') -+ apptask.set_inputs(self.link_task.outputs) -+ -+ out = self.link_task.outputs[0] -+ -+ name = bundle_name_for_output(out) -+ dir = self.create_bundle_dirs(name, out) -+ -+ n1 = dir.find_or_declare(['Contents', 'MacOS', out.name]) -+ -+ apptask.set_outputs([n1]) -+ apptask.chmod = 0755 -+ apptask.install_path = os.path.join(self.install_path, name, 'Contents', 'MacOS') -+ self.apptask = apptask -+ -+@after('apply_link') -+@feature('cprogram') -+def create_task_macplist(self): -+ """Use env['MACAPP'] to force *all* executables to be transformed into Mac applications -+ or use obj.mac_app = True to build specific targets as Mac apps""" -+ if self.env['MACAPP'] or getattr(self, 'mac_app', False): -+ # check if the user specified a plist before using our template -+ if not getattr(self, 'mac_plist', False): -+ self.mac_plist = app_info -+ -+ plisttask = self.create_task('macplist') -+ plisttask.set_inputs(self.link_task.outputs) -+ -+ out = self.link_task.outputs[0] -+ self.mac_plist = self.mac_plist % (out.name) -+ -+ name = bundle_name_for_output(out) -+ dir = self.create_bundle_dirs(name, out) -+ -+ n1 = dir.find_or_declare(['Contents', 'Info.plist']) -+ -+ plisttask.set_outputs([n1]) -+ plisttask.mac_plist = self.mac_plist -+ plisttask.install_path = os.path.join(self.install_path, name, 'Contents') -+ self.plisttask = plisttask -+ -+@after('apply_link') -+@feature('cshlib') -+def apply_link_osx(self): -+ name = self.link_task.outputs[0].name -+ if not self.install_path: -+ return -+ if getattr(self, 'vnum', None): -+ name = name.replace('.dylib', '.%s.dylib' % self.vnum) -+ -+ path = os.path.join(Utils.subst_vars(self.install_path, self.env), name) -+ if '-dynamiclib' in self.env['LINKFLAGS']: -+ self.env.append_value('LINKFLAGS', '-install_name') -+ self.env.append_value('LINKFLAGS', path) -+ -+@before('apply_link', 'apply_lib_vars') -+@feature('cc', 'cxx') -+def apply_bundle(self): -+ """use env['MACBUNDLE'] to force all shlibs into mac bundles -+ or use obj.mac_bundle = True for specific targets only""" -+ if not ('cshlib' in self.features or 'shlib' in self.features): return -+ if self.env['MACBUNDLE'] or getattr(self, 'mac_bundle', False): -+ self.env['shlib_PATTERN'] = self.env['macbundle_PATTERN'] -+ uselib = self.uselib = self.to_list(self.uselib) -+ if not 'MACBUNDLE' in uselib: uselib.append('MACBUNDLE') -+ -+@after('apply_link') -+@feature('cshlib') -+def apply_bundle_remove_dynamiclib(self): -+ if self.env['MACBUNDLE'] or getattr(self, 'mac_bundle', False): -+ if not getattr(self, 'vnum', None): -+ try: -+ self.env['LINKFLAGS'].remove('-dynamiclib') -+ self.env['LINKFLAGS'].remove('-single_module') -+ except ValueError: -+ pass -+ -+# TODO REMOVE IN 1.6 (global variable) -+app_dirs = ['Contents', 'Contents/MacOS', 'Contents/Resources'] -+ -+def app_build(task): -+ env = task.env -+ shutil.copy2(task.inputs[0].srcpath(env), task.outputs[0].abspath(env)) -+ -+ return 0 -+ -+def plist_build(task): -+ env = task.env -+ f = open(task.outputs[0].abspath(env), "w") -+ f.write(task.mac_plist) -+ f.close() -+ -+ return 0 -+ -+Task.task_type_from_func('macapp', vars=[], func=app_build, after="cxx_link cc_link static_link") -+Task.task_type_from_func('macplist', vars=[], func=plist_build, after="cxx_link cc_link static_link") -+ -diff --git a/buildtools/wafadmin/Tools/perl.py b/buildtools/wafadmin/Tools/perl.py -new file mode 100644 -index 0000000..a6787a8 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/perl.py -@@ -0,0 +1,109 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# andersg at 0x63.nu 2007 -+ -+import os -+import Task, Options, Utils -+from Configure import conf -+from TaskGen import extension, taskgen, feature, before -+ -+xsubpp_str = '${PERL} ${XSUBPP} -noprototypes -typemap ${EXTUTILS_TYPEMAP} ${SRC} > ${TGT}' -+EXT_XS = ['.xs'] -+ -+@before('apply_incpaths', 'apply_type_vars', 'apply_lib_vars') -+@feature('perlext') -+def init_perlext(self): -+ self.uselib = self.to_list(getattr(self, 'uselib', '')) -+ if not 'PERL' in self.uselib: self.uselib.append('PERL') -+ if not 'PERLEXT' in self.uselib: self.uselib.append('PERLEXT') -+ self.env['shlib_PATTERN'] = self.env['perlext_PATTERN'] -+ -+@extension(EXT_XS) -+def xsubpp_file(self, node): -+ outnode = node.change_ext('.c') -+ self.create_task('xsubpp', node, outnode) -+ self.allnodes.append(outnode) -+ -+Task.simple_task_type('xsubpp', xsubpp_str, color='BLUE', before='cc cxx', shell=False) -+ -+@conf -+def check_perl_version(conf, minver=None): -+ """ -+ Checks if perl is installed. -+ -+ If installed the variable PERL will be set in environment. -+ -+ Perl binary can be overridden by --with-perl-binary config variable -+ -+ """ -+ -+ if getattr(Options.options, 'perlbinary', None): -+ conf.env.PERL = Options.options.perlbinary -+ else: -+ conf.find_program('perl', var='PERL', mandatory=True) -+ -+ try: -+ version = Utils.cmd_output([conf.env.PERL, '-e', 'printf "%vd",$^V']) -+ except: -+ conf.fatal('could not determine the perl version') -+ -+ conf.env.PERL_VERSION = version -+ cver = '' -+ if minver: -+ try: -+ ver = tuple(map(int, version.split('.'))) -+ except: -+ conf.fatal('unsupported perl version %r' % version) -+ if ver < minver: -+ conf.fatal('perl is too old') -+ -+ cver = '.'.join(map(str,minver)) -+ conf.check_message('perl', cver, True, version) -+ -+@conf -+def check_perl_module(conf, module): -+ """ -+ Check if specified perlmodule is installed. -+ -+ Minimum version can be specified by specifying it after modulename -+ like this: -+ -+ conf.check_perl_module("Some::Module 2.92") -+ """ -+ cmd = [conf.env['PERL'], '-e', 'use %s' % module] -+ r = Utils.pproc.call(cmd, stdout=Utils.pproc.PIPE, stderr=Utils.pproc.PIPE) == 0 -+ conf.check_message("perl module %s" % module, "", r) -+ return r -+ -+@conf -+def check_perl_ext_devel(conf): -+ """ -+ Check for configuration needed to build perl extensions. -+ -+ Sets different xxx_PERLEXT variables in the environment. -+ -+ Also sets the ARCHDIR_PERL variable useful as installation path, -+ which can be overridden by --with-perl-archdir -+ """ -+ if not conf.env.PERL: -+ conf.fatal('perl detection is required first') -+ -+ def read_out(cmd): -+ return Utils.to_list(Utils.cmd_output([conf.env.PERL, '-MConfig', '-e', cmd])) -+ -+ conf.env.LINKFLAGS_PERLEXT = read_out('print $Config{lddlflags}') -+ conf.env.CPPPATH_PERLEXT = read_out('print "$Config{archlib}/CORE"') -+ conf.env.CCFLAGS_PERLEXT = read_out('print "$Config{ccflags} $Config{cccdlflags}"') -+ conf.env.XSUBPP = read_out('print "$Config{privlib}/ExtUtils/xsubpp$Config{exe_ext}"') -+ conf.env.EXTUTILS_TYPEMAP = read_out('print "$Config{privlib}/ExtUtils/typemap"') -+ conf.env.perlext_PATTERN = '%s.' + read_out('print $Config{dlext}')[0] -+ -+ if getattr(Options.options, 'perlarchdir', None): -+ conf.env.ARCHDIR_PERL = Options.options.perlarchdir -+ else: -+ conf.env.ARCHDIR_PERL = read_out('print $Config{sitearch}')[0] -+ -+def set_options(opt): -+ opt.add_option("--with-perl-binary", type="string", dest="perlbinary", help = 'Specify alternate perl binary', default=None) -+ opt.add_option("--with-perl-archdir", type="string", dest="perlarchdir", help = 'Specify directory where to install arch specific files', default=None) -+ -diff --git a/buildtools/wafadmin/Tools/preproc.py b/buildtools/wafadmin/Tools/preproc.py -new file mode 100644 -index 0000000..5055456 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/preproc.py -@@ -0,0 +1,836 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006-2009 (ita) -+ -+""" -+C/C++ preprocessor for finding dependencies -+ -+Reasons for using the Waf preprocessor by default -+1. Some c/c++ extensions (Qt) require a custom preprocessor for obtaining the dependencies (.moc files) -+2. Not all compilers provide .d files for obtaining the dependencies (portability) -+3. A naive file scanner will not catch the constructs such as "#include foo()" -+4. A naive file scanner will catch unnecessary dependencies (change an unused header -> recompile everything) -+ -+Regarding the speed concerns: -+a. the preprocessing is performed only when files must be compiled -+b. the macros are evaluated only for #if/#elif/#include -+c. the time penalty is about 10% -+d. system headers are not scanned -+ -+Now if you do not want the Waf preprocessor, the tool "gccdeps" uses the .d files produced -+during the compilation to track the dependencies (useful when used with the boost libraries). -+It only works with gcc though, and it cannot be used with Qt builds. A dumb -+file scanner will be added in the future, so we will have most bahaviours. -+""" -+# TODO: more varargs, pragma once -+# TODO: dumb file scanner tracking all includes -+ -+import re, sys, os, string -+import Logs, Build, Utils -+from Logs import debug, error -+import traceback -+ -+class PreprocError(Utils.WafError): -+ pass -+ -+POPFILE = '-' -+ -+ -+recursion_limit = 5000 -+"do not loop too much on header inclusion" -+ -+go_absolute = 0 -+"set to 1 to track headers on files in /usr/include - else absolute paths are ignored" -+ -+standard_includes = ['/usr/include'] -+if sys.platform == "win32": -+ standard_includes = [] -+ -+use_trigraphs = 0 -+'apply the trigraph rules first' -+ -+strict_quotes = 0 -+"Keep <> for system includes (do not search for those includes)" -+ -+g_optrans = { -+'not':'!', -+'and':'&&', -+'bitand':'&', -+'and_eq':'&=', -+'or':'||', -+'bitor':'|', -+'or_eq':'|=', -+'xor':'^', -+'xor_eq':'^=', -+'compl':'~', -+} -+"these ops are for c++, to reset, set an empty dict" -+ -+# ignore #warning and #error -+re_lines = re.compile(\ -+ '^[ \t]*(#|%:)[ \t]*(ifdef|ifndef|if|else|elif|endif|include|import|define|undef|pragma)[ \t]*(.*)\r*$', -+ re.IGNORECASE | re.MULTILINE) -+ -+re_mac = re.compile("^[a-zA-Z_]\w*") -+re_fun = re.compile('^[a-zA-Z_][a-zA-Z0-9_]*[(]') -+re_pragma_once = re.compile('^\s*once\s*', re.IGNORECASE) -+re_nl = re.compile('\\\\\r*\n', re.MULTILINE) -+re_cpp = re.compile( -+ r"""(/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)|//[^\n]*|("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|.[^/"'\\]*)""", -+ re.MULTILINE) -+trig_def = [('??'+a, b) for a, b in zip("=-/!'()<>", r'#~\|^[]{}')] -+chr_esc = {'0':0, 'a':7, 'b':8, 't':9, 'n':10, 'f':11, 'v':12, 'r':13, '\\':92, "'":39} -+ -+NUM = 'i' -+OP = 'O' -+IDENT = 'T' -+STR = 's' -+CHAR = 'c' -+ -+tok_types = [NUM, STR, IDENT, OP] -+exp_types = [ -+ r"""0[xX](?P[a-fA-F0-9]+)(?P[uUlL]*)|L*?'(?P(\\.|[^\\'])+)'|(?P\d+)[Ee](?P[+-]*?\d+)(?P[fFlL]*)|(?P\d*\.\d+)([Ee](?P[+-]*?\d+))?(?P[fFlL]*)|(?P\d+\.\d*)([Ee](?P[+-]*?\d+))?(?P[fFlL]*)|(?P0*)(?P\d+)(?P[uUlL]*)""", -+ r'L?"([^"\\]|\\.)*"', -+ r'[a-zA-Z_]\w*', -+ r'%:%:|<<=|>>=|\.\.\.|<<|<%|<:|<=|>>|>=|\+\+|\+=|--|->|-=|\*=|/=|%:|%=|%>|==|&&|&=|\|\||\|=|\^=|:>|!=|##|[\(\)\{\}\[\]<>\?\|\^\*\+&=:!#;,%/\-\?\~\.]', -+] -+re_clexer = re.compile('|'.join(["(?P<%s>%s)" % (name, part) for name, part in zip(tok_types, exp_types)]), re.M) -+ -+accepted = 'a' -+ignored = 'i' -+undefined = 'u' -+skipped = 's' -+ -+def repl(m): -+ if m.group(1): -+ return ' ' -+ s = m.group(2) -+ if s is None: -+ return '' -+ return s -+ -+def filter_comments(filename): -+ # return a list of tuples : keyword, line -+ code = Utils.readf(filename) -+ if use_trigraphs: -+ for (a, b) in trig_def: code = code.split(a).join(b) -+ code = re_nl.sub('', code) -+ code = re_cpp.sub(repl, code) -+ return [(m.group(2), m.group(3)) for m in re.finditer(re_lines, code)] -+ -+prec = {} -+# op -> number, needed for such expressions: #if 1 && 2 != 0 -+ops = ['* / %', '+ -', '<< >>', '< <= >= >', '== !=', '& | ^', '&& ||', ','] -+for x in range(len(ops)): -+ syms = ops[x] -+ for u in syms.split(): -+ prec[u] = x -+ -+def reduce_nums(val_1, val_2, val_op): -+ """apply arithmetic rules and try to return an integer result""" -+ #print val_1, val_2, val_op -+ -+ # now perform the operation, make certain a and b are numeric -+ try: a = 0 + val_1 -+ except TypeError: a = int(val_1) -+ try: b = 0 + val_2 -+ except TypeError: b = int(val_2) -+ -+ d = val_op -+ if d == '%': c = a%b -+ elif d=='+': c = a+b -+ elif d=='-': c = a-b -+ elif d=='*': c = a*b -+ elif d=='/': c = a/b -+ elif d=='^': c = a^b -+ elif d=='|': c = a|b -+ elif d=='||': c = int(a or b) -+ elif d=='&': c = a&b -+ elif d=='&&': c = int(a and b) -+ elif d=='==': c = int(a == b) -+ elif d=='!=': c = int(a != b) -+ elif d=='<=': c = int(a <= b) -+ elif d=='<': c = int(a < b) -+ elif d=='>': c = int(a > b) -+ elif d=='>=': c = int(a >= b) -+ elif d=='^': c = int(a^b) -+ elif d=='<<': c = a<>': c = a>>b -+ else: c = 0 -+ return c -+ -+def get_num(lst): -+ if not lst: raise PreprocError("empty list for get_num") -+ (p, v) = lst[0] -+ if p == OP: -+ if v == '(': -+ count_par = 1 -+ i = 1 -+ while i < len(lst): -+ (p, v) = lst[i] -+ -+ if p == OP: -+ if v == ')': -+ count_par -= 1 -+ if count_par == 0: -+ break -+ elif v == '(': -+ count_par += 1 -+ i += 1 -+ else: -+ raise PreprocError("rparen expected %r" % lst) -+ -+ (num, _) = get_term(lst[1:i]) -+ return (num, lst[i+1:]) -+ -+ elif v == '+': -+ return get_num(lst[1:]) -+ elif v == '-': -+ num, lst = get_num(lst[1:]) -+ return (reduce_nums('-1', num, '*'), lst) -+ elif v == '!': -+ num, lst = get_num(lst[1:]) -+ return (int(not int(num)), lst) -+ elif v == '~': -+ return (~ int(num), lst) -+ else: -+ raise PreprocError("invalid op token %r for get_num" % lst) -+ elif p == NUM: -+ return v, lst[1:] -+ elif p == IDENT: -+ # all macros should have been replaced, remaining identifiers eval to 0 -+ return 0, lst[1:] -+ else: -+ raise PreprocError("invalid token %r for get_num" % lst) -+ -+def get_term(lst): -+ if not lst: raise PreprocError("empty list for get_term") -+ num, lst = get_num(lst) -+ if not lst: -+ return (num, []) -+ (p, v) = lst[0] -+ if p == OP: -+ if v == '&&' and not num: -+ return (num, []) -+ elif v == '||' and num: -+ return (num, []) -+ elif v == ',': -+ # skip -+ return get_term(lst[1:]) -+ elif v == '?': -+ count_par = 0 -+ i = 1 -+ while i < len(lst): -+ (p, v) = lst[i] -+ -+ if p == OP: -+ if v == ')': -+ count_par -= 1 -+ elif v == '(': -+ count_par += 1 -+ elif v == ':': -+ if count_par == 0: -+ break -+ i += 1 -+ else: -+ raise PreprocError("rparen expected %r" % lst) -+ -+ if int(num): -+ return get_term(lst[1:i]) -+ else: -+ return get_term(lst[i+1:]) -+ -+ else: -+ num2, lst = get_num(lst[1:]) -+ -+ if not lst: -+ # no more tokens to process -+ num2 = reduce_nums(num, num2, v) -+ return get_term([(NUM, num2)] + lst) -+ -+ # operator precedence -+ p2, v2 = lst[0] -+ if p2 != OP: -+ raise PreprocError("op expected %r" % lst) -+ -+ if prec[v2] >= prec[v]: -+ num2 = reduce_nums(num, num2, v) -+ return get_term([(NUM, num2)] + lst) -+ else: -+ num3, lst = get_num(lst[1:]) -+ num3 = reduce_nums(num2, num3, v2) -+ return get_term([(NUM, num), (p, v), (NUM, num3)] + lst) -+ -+ -+ raise PreprocError("cannot reduce %r" % lst) -+ -+def reduce_eval(lst): -+ """take a list of tokens and output true or false (#if/#elif conditions)""" -+ num, lst = get_term(lst) -+ return (NUM, num) -+ -+def stringize(lst): -+ """use for converting a list of tokens to a string""" -+ lst = [str(v2) for (p2, v2) in lst] -+ return "".join(lst) -+ -+def paste_tokens(t1, t2): -+ """ -+ here is what we can paste: -+ a ## b -> ab -+ > ## = -> >= -+ a ## 2 -> a2 -+ """ -+ p1 = None -+ if t1[0] == OP and t2[0] == OP: -+ p1 = OP -+ elif t1[0] == IDENT and (t2[0] == IDENT or t2[0] == NUM): -+ p1 = IDENT -+ elif t1[0] == NUM and t2[0] == NUM: -+ p1 = NUM -+ if not p1: -+ raise PreprocError('tokens do not make a valid paste %r and %r' % (t1, t2)) -+ return (p1, t1[1] + t2[1]) -+ -+def reduce_tokens(lst, defs, ban=[]): -+ """replace the tokens in lst, using the macros provided in defs, and a list of macros that cannot be re-applied""" -+ i = 0 -+ -+ while i < len(lst): -+ (p, v) = lst[i] -+ -+ if p == IDENT and v == "defined": -+ del lst[i] -+ if i < len(lst): -+ (p2, v2) = lst[i] -+ if p2 == IDENT: -+ if v2 in defs: -+ lst[i] = (NUM, 1) -+ else: -+ lst[i] = (NUM, 0) -+ elif p2 == OP and v2 == '(': -+ del lst[i] -+ (p2, v2) = lst[i] -+ del lst[i] # remove the ident, and change the ) for the value -+ if v2 in defs: -+ lst[i] = (NUM, 1) -+ else: -+ lst[i] = (NUM, 0) -+ else: -+ raise PreprocError("invalid define expression %r" % lst) -+ -+ elif p == IDENT and v in defs: -+ -+ if isinstance(defs[v], str): -+ a, b = extract_macro(defs[v]) -+ defs[v] = b -+ macro_def = defs[v] -+ to_add = macro_def[1] -+ -+ if isinstance(macro_def[0], list): -+ # macro without arguments -+ del lst[i] -+ for x in xrange(len(to_add)): -+ lst.insert(i, to_add[x]) -+ i += 1 -+ else: -+ # collect the arguments for the funcall -+ -+ args = [] -+ del lst[i] -+ -+ if i >= len(lst): -+ raise PreprocError("expected '(' after %r (got nothing)" % v) -+ -+ (p2, v2) = lst[i] -+ if p2 != OP or v2 != '(': -+ raise PreprocError("expected '(' after %r" % v) -+ -+ del lst[i] -+ -+ one_param = [] -+ count_paren = 0 -+ while i < len(lst): -+ p2, v2 = lst[i] -+ -+ del lst[i] -+ if p2 == OP and count_paren == 0: -+ if v2 == '(': -+ one_param.append((p2, v2)) -+ count_paren += 1 -+ elif v2 == ')': -+ if one_param: args.append(one_param) -+ break -+ elif v2 == ',': -+ if not one_param: raise PreprocError("empty param in funcall %s" % p) -+ args.append(one_param) -+ one_param = [] -+ else: -+ one_param.append((p2, v2)) -+ else: -+ one_param.append((p2, v2)) -+ if v2 == '(': count_paren += 1 -+ elif v2 == ')': count_paren -= 1 -+ else: -+ raise PreprocError('malformed macro') -+ -+ # substitute the arguments within the define expression -+ accu = [] -+ arg_table = macro_def[0] -+ j = 0 -+ while j < len(to_add): -+ (p2, v2) = to_add[j] -+ -+ if p2 == OP and v2 == '#': -+ # stringize is for arguments only -+ if j+1 < len(to_add) and to_add[j+1][0] == IDENT and to_add[j+1][1] in arg_table: -+ toks = args[arg_table[to_add[j+1][1]]] -+ accu.append((STR, stringize(toks))) -+ j += 1 -+ else: -+ accu.append((p2, v2)) -+ elif p2 == OP and v2 == '##': -+ # token pasting, how can man invent such a complicated system? -+ if accu and j+1 < len(to_add): -+ # we have at least two tokens -+ -+ t1 = accu[-1] -+ -+ if to_add[j+1][0] == IDENT and to_add[j+1][1] in arg_table: -+ toks = args[arg_table[to_add[j+1][1]]] -+ -+ if toks: -+ accu[-1] = paste_tokens(t1, toks[0]) #(IDENT, accu[-1][1] + toks[0][1]) -+ accu.extend(toks[1:]) -+ else: -+ # error, case "a##" -+ accu.append((p2, v2)) -+ accu.extend(toks) -+ elif to_add[j+1][0] == IDENT and to_add[j+1][1] == '__VA_ARGS__': -+ # TODO not sure -+ # first collect the tokens -+ va_toks = [] -+ st = len(macro_def[0]) -+ pt = len(args) -+ for x in args[pt-st+1:]: -+ va_toks.extend(x) -+ va_toks.append((OP, ',')) -+ if va_toks: va_toks.pop() # extra comma -+ if len(accu)>1: -+ (p3, v3) = accu[-1] -+ (p4, v4) = accu[-2] -+ if v3 == '##': -+ # remove the token paste -+ accu.pop() -+ if v4 == ',' and pt < st: -+ # remove the comma -+ accu.pop() -+ accu += va_toks -+ else: -+ accu[-1] = paste_tokens(t1, to_add[j+1]) -+ -+ j += 1 -+ else: -+ # invalid paste, case "##a" or "b##" -+ accu.append((p2, v2)) -+ -+ elif p2 == IDENT and v2 in arg_table: -+ toks = args[arg_table[v2]] -+ reduce_tokens(toks, defs, ban+[v]) -+ accu.extend(toks) -+ else: -+ accu.append((p2, v2)) -+ -+ j += 1 -+ -+ -+ reduce_tokens(accu, defs, ban+[v]) -+ -+ for x in xrange(len(accu)-1, -1, -1): -+ lst.insert(i, accu[x]) -+ -+ i += 1 -+ -+ -+def eval_macro(lst, adefs): -+ """reduce the tokens from the list lst, and try to return a 0/1 result""" -+ reduce_tokens(lst, adefs, []) -+ if not lst: raise PreprocError("missing tokens to evaluate") -+ (p, v) = reduce_eval(lst) -+ return int(v) != 0 -+ -+def extract_macro(txt): -+ """process a macro definition from "#define f(x, y) x * y" into a function or a simple macro without arguments""" -+ t = tokenize(txt) -+ if re_fun.search(txt): -+ p, name = t[0] -+ -+ p, v = t[1] -+ if p != OP: raise PreprocError("expected open parenthesis") -+ -+ i = 1 -+ pindex = 0 -+ params = {} -+ prev = '(' -+ -+ while 1: -+ i += 1 -+ p, v = t[i] -+ -+ if prev == '(': -+ if p == IDENT: -+ params[v] = pindex -+ pindex += 1 -+ prev = p -+ elif p == OP and v == ')': -+ break -+ else: -+ raise PreprocError("unexpected token (3)") -+ elif prev == IDENT: -+ if p == OP and v == ',': -+ prev = v -+ elif p == OP and v == ')': -+ break -+ else: -+ raise PreprocError("comma or ... expected") -+ elif prev == ',': -+ if p == IDENT: -+ params[v] = pindex -+ pindex += 1 -+ prev = p -+ elif p == OP and v == '...': -+ raise PreprocError("not implemented (1)") -+ else: -+ raise PreprocError("comma or ... expected (2)") -+ elif prev == '...': -+ raise PreprocError("not implemented (2)") -+ else: -+ raise PreprocError("unexpected else") -+ -+ #~ print (name, [params, t[i+1:]]) -+ return (name, [params, t[i+1:]]) -+ else: -+ (p, v) = t[0] -+ return (v, [[], t[1:]]) -+ -+re_include = re.compile('^\s*(<(?P.*)>|"(?P.*)")') -+def extract_include(txt, defs): -+ """process a line in the form "#include foo" to return a string representing the file""" -+ m = re_include.search(txt) -+ if m: -+ if m.group('a'): return '<', m.group('a') -+ if m.group('b'): return '"', m.group('b') -+ -+ # perform preprocessing and look at the result, it must match an include -+ toks = tokenize(txt) -+ reduce_tokens(toks, defs, ['waf_include']) -+ -+ if not toks: -+ raise PreprocError("could not parse include %s" % txt) -+ -+ if len(toks) == 1: -+ if toks[0][0] == STR: -+ return '"', toks[0][1] -+ else: -+ if toks[0][1] == '<' and toks[-1][1] == '>': -+ return stringize(toks).lstrip('<').rstrip('>') -+ -+ raise PreprocError("could not parse include %s." % txt) -+ -+def parse_char(txt): -+ if not txt: raise PreprocError("attempted to parse a null char") -+ if txt[0] != '\\': -+ return ord(txt) -+ c = txt[1] -+ if c == 'x': -+ if len(txt) == 4 and txt[3] in string.hexdigits: return int(txt[2:], 16) -+ return int(txt[2:], 16) -+ elif c.isdigit(): -+ if c == '0' and len(txt)==2: return 0 -+ for i in 3, 2, 1: -+ if len(txt) > i and txt[1:1+i].isdigit(): -+ return (1+i, int(txt[1:1+i], 8)) -+ else: -+ try: return chr_esc[c] -+ except KeyError: raise PreprocError("could not parse char literal '%s'" % txt) -+ -+@Utils.run_once -+def tokenize(s): -+ """convert a string into a list of tokens (shlex.split does not apply to c/c++/d)""" -+ ret = [] -+ for match in re_clexer.finditer(s): -+ m = match.group -+ for name in tok_types: -+ v = m(name) -+ if v: -+ if name == IDENT: -+ try: v = g_optrans[v]; name = OP -+ except KeyError: -+ # c++ specific -+ if v.lower() == "true": -+ v = 1 -+ name = NUM -+ elif v.lower() == "false": -+ v = 0 -+ name = NUM -+ elif name == NUM: -+ if m('oct'): v = int(v, 8) -+ elif m('hex'): v = int(m('hex'), 16) -+ elif m('n0'): v = m('n0') -+ else: -+ v = m('char') -+ if v: v = parse_char(v) -+ else: v = m('n2') or m('n4') -+ elif name == OP: -+ if v == '%:': v = '#' -+ elif v == '%:%:': v = '##' -+ elif name == STR: -+ # remove the quotes around the string -+ v = v[1:-1] -+ ret.append((name, v)) -+ break -+ return ret -+ -+@Utils.run_once -+def define_name(line): -+ return re_mac.match(line).group(0) -+ -+class c_parser(object): -+ def __init__(self, nodepaths=None, defines=None): -+ #self.lines = txt.split('\n') -+ self.lines = [] -+ -+ if defines is None: -+ self.defs = {} -+ else: -+ self.defs = dict(defines) # make a copy -+ self.state = [] -+ -+ self.env = None # needed for the variant when searching for files -+ -+ self.count_files = 0 -+ self.currentnode_stack = [] -+ -+ self.nodepaths = nodepaths or [] -+ -+ self.nodes = [] -+ self.names = [] -+ -+ # file added -+ self.curfile = '' -+ self.ban_includes = set([]) -+ -+ def cached_find_resource(self, node, filename): -+ try: -+ nd = node.bld.cache_nd -+ except: -+ nd = node.bld.cache_nd = {} -+ -+ tup = (node.id, filename) -+ try: -+ return nd[tup] -+ except KeyError: -+ ret = node.find_resource(filename) -+ nd[tup] = ret -+ return ret -+ -+ def tryfind(self, filename): -+ self.curfile = filename -+ -+ # for msvc it should be a for loop on the whole stack -+ found = self.cached_find_resource(self.currentnode_stack[-1], filename) -+ -+ for n in self.nodepaths: -+ if found: -+ break -+ found = self.cached_find_resource(n, filename) -+ -+ if found: -+ self.nodes.append(found) -+ if filename[-4:] != '.moc': -+ self.addlines(found) -+ else: -+ if not filename in self.names: -+ self.names.append(filename) -+ return found -+ -+ def addlines(self, node): -+ -+ self.currentnode_stack.append(node.parent) -+ filepath = node.abspath(self.env) -+ -+ self.count_files += 1 -+ if self.count_files > recursion_limit: raise PreprocError("recursion limit exceeded") -+ pc = self.parse_cache -+ debug('preproc: reading file %r', filepath) -+ try: -+ lns = pc[filepath] -+ except KeyError: -+ pass -+ else: -+ self.lines.extend(lns) -+ return -+ -+ try: -+ lines = filter_comments(filepath) -+ lines.append((POPFILE, '')) -+ lines.reverse() -+ pc[filepath] = lines # cache the lines filtered -+ self.lines.extend(lines) -+ except IOError: -+ raise PreprocError("could not read the file %s" % filepath) -+ except Exception: -+ if Logs.verbose > 0: -+ error("parsing %s failed" % filepath) -+ traceback.print_exc() -+ -+ def start(self, node, env): -+ debug('preproc: scanning %s (in %s)', node.name, node.parent.name) -+ -+ self.env = env -+ variant = node.variant(env) -+ bld = node.__class__.bld -+ try: -+ self.parse_cache = bld.parse_cache -+ except AttributeError: -+ bld.parse_cache = {} -+ self.parse_cache = bld.parse_cache -+ -+ self.addlines(node) -+ if env['DEFLINES']: -+ lst = [('define', x) for x in env['DEFLINES']] -+ lst.reverse() -+ self.lines.extend(lst) -+ -+ while self.lines: -+ (kind, line) = self.lines.pop() -+ if kind == POPFILE: -+ self.currentnode_stack.pop() -+ continue -+ try: -+ self.process_line(kind, line) -+ except Exception, e: -+ if Logs.verbose: -+ debug('preproc: line parsing failed (%s): %s %s', e, line, Utils.ex_stack()) -+ -+ def process_line(self, token, line): -+ """ -+ WARNING: a new state must be added for if* because the endif -+ """ -+ ve = Logs.verbose -+ if ve: debug('preproc: line is %s - %s state is %s', token, line, self.state) -+ state = self.state -+ -+ # make certain we define the state if we are about to enter in an if block -+ if token in ['ifdef', 'ifndef', 'if']: -+ state.append(undefined) -+ elif token == 'endif': -+ state.pop() -+ -+ # skip lines when in a dead 'if' branch, wait for the endif -+ if not token in ['else', 'elif', 'endif']: -+ if skipped in self.state or ignored in self.state: -+ return -+ -+ if token == 'if': -+ ret = eval_macro(tokenize(line), self.defs) -+ if ret: state[-1] = accepted -+ else: state[-1] = ignored -+ elif token == 'ifdef': -+ m = re_mac.match(line) -+ if m and m.group(0) in self.defs: state[-1] = accepted -+ else: state[-1] = ignored -+ elif token == 'ifndef': -+ m = re_mac.match(line) -+ if m and m.group(0) in self.defs: state[-1] = ignored -+ else: state[-1] = accepted -+ elif token == 'include' or token == 'import': -+ (kind, inc) = extract_include(line, self.defs) -+ if inc in self.ban_includes: return -+ if token == 'import': self.ban_includes.add(inc) -+ if ve: debug('preproc: include found %s (%s) ', inc, kind) -+ if kind == '"' or not strict_quotes: -+ self.tryfind(inc) -+ elif token == 'elif': -+ if state[-1] == accepted: -+ state[-1] = skipped -+ elif state[-1] == ignored: -+ if eval_macro(tokenize(line), self.defs): -+ state[-1] = accepted -+ elif token == 'else': -+ if state[-1] == accepted: state[-1] = skipped -+ elif state[-1] == ignored: state[-1] = accepted -+ elif token == 'define': -+ try: -+ self.defs[define_name(line)] = line -+ except: -+ raise PreprocError("invalid define line %s" % line) -+ elif token == 'undef': -+ m = re_mac.match(line) -+ if m and m.group(0) in self.defs: -+ self.defs.__delitem__(m.group(0)) -+ #print "undef %s" % name -+ elif token == 'pragma': -+ if re_pragma_once.match(line.lower()): -+ self.ban_includes.add(self.curfile) -+ -+def get_deps(node, env, nodepaths=[]): -+ """ -+ Get the dependencies using a c/c++ preprocessor, this is required for finding dependencies of the kind -+ #include some_macro() -+ """ -+ -+ gruik = c_parser(nodepaths) -+ gruik.start(node, env) -+ return (gruik.nodes, gruik.names) -+ -+#################### dumb dependency scanner -+ -+re_inc = re.compile(\ -+ '^[ \t]*(#|%:)[ \t]*(include)[ \t]*(.*)\r*$', -+ re.IGNORECASE | re.MULTILINE) -+ -+def lines_includes(filename): -+ code = Utils.readf(filename) -+ if use_trigraphs: -+ for (a, b) in trig_def: code = code.split(a).join(b) -+ code = re_nl.sub('', code) -+ code = re_cpp.sub(repl, code) -+ return [(m.group(2), m.group(3)) for m in re.finditer(re_inc, code)] -+ -+def get_deps_simple(node, env, nodepaths=[], defines={}): -+ """ -+ Get the dependencies by just looking recursively at the #include statements -+ """ -+ -+ nodes = [] -+ names = [] -+ -+ def find_deps(node): -+ lst = lines_includes(node.abspath(env)) -+ -+ for (_, line) in lst: -+ (t, filename) = extract_include(line, defines) -+ if filename in names: -+ continue -+ -+ if filename.endswith('.moc'): -+ names.append(filename) -+ -+ found = None -+ for n in nodepaths: -+ if found: -+ break -+ found = n.find_resource(filename) -+ -+ if not found: -+ if not filename in names: -+ names.append(filename) -+ elif not found in nodes: -+ nodes.append(found) -+ find_deps(node) -+ -+ find_deps(node) -+ return (nodes, names) -+ -+ -diff --git a/buildtools/wafadmin/Tools/python.py b/buildtools/wafadmin/Tools/python.py -new file mode 100644 -index 0000000..4f73081 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/python.py -@@ -0,0 +1,413 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2007 (ita) -+# Gustavo Carneiro (gjc), 2007 -+ -+"Python support" -+ -+import os, sys -+import TaskGen, Utils, Utils, Runner, Options, Build -+from Logs import debug, warn, info -+from TaskGen import extension, taskgen, before, after, feature -+from Configure import conf -+ -+EXT_PY = ['.py'] -+FRAG_2 = ''' -+#include "Python.h" -+#ifdef __cplusplus -+extern "C" { -+#endif -+ void Py_Initialize(void); -+ void Py_Finalize(void); -+#ifdef __cplusplus -+} -+#endif -+int main() -+{ -+ Py_Initialize(); -+ Py_Finalize(); -+ return 0; -+} -+''' -+ -+@feature('pyext') -+@before('apply_incpaths', 'apply_lib_vars', 'apply_type_vars', 'apply_bundle') -+@after('vars_target_cshlib') -+def init_pyext(self): -+ self.default_install_path = '${PYTHONARCHDIR}' -+ self.uselib = self.to_list(getattr(self, 'uselib', '')) -+ if not 'PYEXT' in self.uselib: -+ self.uselib.append('PYEXT') -+ self.env['MACBUNDLE'] = True -+ -+@before('apply_link', 'apply_lib_vars', 'apply_type_vars') -+@after('apply_bundle') -+@feature('pyext') -+def pyext_shlib_ext(self): -+ # override shlib_PATTERN set by the osx module -+ self.env['shlib_PATTERN'] = self.env['pyext_PATTERN'] -+ -+@before('apply_incpaths', 'apply_lib_vars', 'apply_type_vars') -+@feature('pyembed') -+def init_pyembed(self): -+ self.uselib = self.to_list(getattr(self, 'uselib', '')) -+ if not 'PYEMBED' in self.uselib: -+ self.uselib.append('PYEMBED') -+ -+@extension(EXT_PY) -+def process_py(self, node): -+ if not (self.bld.is_install and self.install_path): -+ return -+ def inst_py(ctx): -+ install_pyfile(self, node) -+ self.bld.add_post_fun(inst_py) -+ -+def install_pyfile(self, node): -+ path = self.bld.get_install_path(self.install_path + os.sep + node.name, self.env) -+ -+ self.bld.install_files(self.install_path, [node], self.env, self.chmod, postpone=False) -+ if self.bld.is_install < 0: -+ info("* removing byte compiled python files") -+ for x in 'co': -+ try: -+ os.remove(path + x) -+ except OSError: -+ pass -+ -+ if self.bld.is_install > 0: -+ if self.env['PYC'] or self.env['PYO']: -+ info("* byte compiling %r" % path) -+ -+ if self.env['PYC']: -+ program = (""" -+import sys, py_compile -+for pyfile in sys.argv[1:]: -+ py_compile.compile(pyfile, pyfile + 'c') -+""") -+ argv = [self.env['PYTHON'], '-c', program, path] -+ ret = Utils.pproc.Popen(argv).wait() -+ if ret: -+ raise Utils.WafError('bytecode compilation failed %r' % path) -+ -+ if self.env['PYO']: -+ program = (""" -+import sys, py_compile -+for pyfile in sys.argv[1:]: -+ py_compile.compile(pyfile, pyfile + 'o') -+""") -+ argv = [self.env['PYTHON'], self.env['PYFLAGS_OPT'], '-c', program, path] -+ ret = Utils.pproc.Popen(argv).wait() -+ if ret: -+ raise Utils.WafError('bytecode compilation failed %r' % path) -+ -+# COMPAT -+class py_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@before('apply_core') -+@after('vars_target_cprogram', 'vars_target_cshlib') -+@feature('py') -+def init_py(self): -+ self.default_install_path = '${PYTHONDIR}' -+ -+def _get_python_variables(python_exe, variables, imports=['import sys']): -+ """Run a python interpreter and print some variables""" -+ program = list(imports) -+ program.append('') -+ for v in variables: -+ program.append("print(repr(%s))" % v) -+ os_env = dict(os.environ) -+ try: -+ del os_env['MACOSX_DEPLOYMENT_TARGET'] # see comments in the OSX tool -+ except KeyError: -+ pass -+ proc = Utils.pproc.Popen([python_exe, "-c", '\n'.join(program)], stdout=Utils.pproc.PIPE, env=os_env) -+ output = proc.communicate()[0].split("\n") # do not touch, python3 -+ if proc.returncode: -+ if Options.options.verbose: -+ warn("Python program to extract python configuration variables failed:\n%s" -+ % '\n'.join(["line %03i: %s" % (lineno+1, line) for lineno, line in enumerate(program)])) -+ raise RuntimeError -+ return_values = [] -+ for s in output: -+ s = s.strip() -+ if not s: -+ continue -+ if s == 'None': -+ return_values.append(None) -+ elif s[0] == "'" and s[-1] == "'": -+ return_values.append(s[1:-1]) -+ elif s[0].isdigit(): -+ return_values.append(int(s)) -+ else: break -+ return return_values -+ -+@conf -+def check_python_headers(conf, mandatory=True): -+ """Check for headers and libraries necessary to extend or embed python. -+ -+ On success the environment variables xxx_PYEXT and xxx_PYEMBED are added for uselib -+ -+ PYEXT: for compiling python extensions -+ PYEMBED: for embedding a python interpreter""" -+ -+ if not conf.env['CC_NAME'] and not conf.env['CXX_NAME']: -+ conf.fatal('load a compiler first (gcc, g++, ..)') -+ -+ if not conf.env['PYTHON_VERSION']: -+ conf.check_python_version() -+ -+ env = conf.env -+ python = env['PYTHON'] -+ if not python: -+ conf.fatal('could not find the python executable') -+ -+ ## On Mac OSX we need to use mac bundles for python plugins -+ if Options.platform == 'darwin': -+ conf.check_tool('osx') -+ -+ try: -+ # Get some python configuration variables using distutils -+ v = 'prefix SO SYSLIBS LDFLAGS SHLIBS LIBDIR LIBPL INCLUDEPY Py_ENABLE_SHARED MACOSX_DEPLOYMENT_TARGET'.split() -+ (python_prefix, python_SO, python_SYSLIBS, python_LDFLAGS, python_SHLIBS, -+ python_LIBDIR, python_LIBPL, INCLUDEPY, Py_ENABLE_SHARED, -+ python_MACOSX_DEPLOYMENT_TARGET) = \ -+ _get_python_variables(python, ["get_config_var('%s')" % x for x in v], -+ ['from distutils.sysconfig import get_config_var']) -+ except RuntimeError: -+ conf.fatal("Python development headers not found (-v for details).") -+ -+ conf.log.write("""Configuration returned from %r: -+python_prefix = %r -+python_SO = %r -+python_SYSLIBS = %r -+python_LDFLAGS = %r -+python_SHLIBS = %r -+python_LIBDIR = %r -+python_LIBPL = %r -+INCLUDEPY = %r -+Py_ENABLE_SHARED = %r -+MACOSX_DEPLOYMENT_TARGET = %r -+""" % (python, python_prefix, python_SO, python_SYSLIBS, python_LDFLAGS, python_SHLIBS, -+ python_LIBDIR, python_LIBPL, INCLUDEPY, Py_ENABLE_SHARED, python_MACOSX_DEPLOYMENT_TARGET)) -+ -+ if python_MACOSX_DEPLOYMENT_TARGET: -+ conf.env['MACOSX_DEPLOYMENT_TARGET'] = python_MACOSX_DEPLOYMENT_TARGET -+ conf.environ['MACOSX_DEPLOYMENT_TARGET'] = python_MACOSX_DEPLOYMENT_TARGET -+ -+ env['pyext_PATTERN'] = '%s'+python_SO -+ -+ # Check for python libraries for embedding -+ if python_SYSLIBS is not None: -+ for lib in python_SYSLIBS.split(): -+ if lib.startswith('-l'): -+ lib = lib[2:] # strip '-l' -+ env.append_value('LIB_PYEMBED', lib) -+ -+ if python_SHLIBS is not None: -+ for lib in python_SHLIBS.split(): -+ if lib.startswith('-l'): -+ env.append_value('LIB_PYEMBED', lib[2:]) # strip '-l' -+ else: -+ env.append_value('LINKFLAGS_PYEMBED', lib) -+ -+ if Options.platform != 'darwin' and python_LDFLAGS: -+ env.append_value('LINKFLAGS_PYEMBED', python_LDFLAGS.split()) -+ -+ result = False -+ name = 'python' + env['PYTHON_VERSION'] -+ -+ if python_LIBDIR is not None: -+ path = [python_LIBDIR] -+ conf.log.write("\n\n# Trying LIBDIR: %r\n" % path) -+ result = conf.check(lib=name, uselib='PYEMBED', libpath=path) -+ -+ if not result and python_LIBPL is not None: -+ conf.log.write("\n\n# try again with -L$python_LIBPL (some systems don't install the python library in $prefix/lib)\n") -+ path = [python_LIBPL] -+ result = conf.check(lib=name, uselib='PYEMBED', libpath=path) -+ -+ if not result: -+ conf.log.write("\n\n# try again with -L$prefix/libs, and pythonXY name rather than pythonX.Y (win32)\n") -+ path = [os.path.join(python_prefix, "libs")] -+ name = 'python' + env['PYTHON_VERSION'].replace('.', '') -+ result = conf.check(lib=name, uselib='PYEMBED', libpath=path) -+ -+ if result: -+ env['LIBPATH_PYEMBED'] = path -+ env.append_value('LIB_PYEMBED', name) -+ else: -+ conf.log.write("\n\n### LIB NOT FOUND\n") -+ -+ # under certain conditions, python extensions must link to -+ # python libraries, not just python embedding programs. -+ if (sys.platform == 'win32' or sys.platform.startswith('os2') -+ or sys.platform == 'darwin' or Py_ENABLE_SHARED): -+ env['LIBPATH_PYEXT'] = env['LIBPATH_PYEMBED'] -+ env['LIB_PYEXT'] = env['LIB_PYEMBED'] -+ -+ # We check that pythonX.Y-config exists, and if it exists we -+ # use it to get only the includes, else fall back to distutils. -+ python_config = conf.find_program( -+ 'python%s-config' % ('.'.join(env['PYTHON_VERSION'].split('.')[:2])), -+ var='PYTHON_CONFIG') -+ if not python_config: -+ python_config = conf.find_program( -+ 'python-config-%s' % ('.'.join(env['PYTHON_VERSION'].split('.')[:2])), -+ var='PYTHON_CONFIG') -+ -+ includes = [] -+ if python_config: -+ for incstr in Utils.cmd_output("%s %s --includes" % (python, python_config)).strip().split(): -+ # strip the -I or /I -+ if (incstr.startswith('-I') -+ or incstr.startswith('/I')): -+ incstr = incstr[2:] -+ # append include path, unless already given -+ if incstr not in includes: -+ includes.append(incstr) -+ conf.log.write("Include path for Python extensions " -+ "(found via python-config --includes): %r\n" % (includes,)) -+ env['CPPPATH_PYEXT'] = includes -+ env['CPPPATH_PYEMBED'] = includes -+ else: -+ conf.log.write("Include path for Python extensions " -+ "(found via distutils module): %r\n" % (INCLUDEPY,)) -+ env['CPPPATH_PYEXT'] = [INCLUDEPY] -+ env['CPPPATH_PYEMBED'] = [INCLUDEPY] -+ -+ # Code using the Python API needs to be compiled with -fno-strict-aliasing -+ if env['CC_NAME'] == 'gcc': -+ env.append_value('CCFLAGS_PYEMBED', '-fno-strict-aliasing') -+ env.append_value('CCFLAGS_PYEXT', '-fno-strict-aliasing') -+ if env['CXX_NAME'] == 'gcc': -+ env.append_value('CXXFLAGS_PYEMBED', '-fno-strict-aliasing') -+ env.append_value('CXXFLAGS_PYEXT', '-fno-strict-aliasing') -+ -+ # See if it compiles -+ conf.check(define_name='HAVE_PYTHON_H', -+ uselib='PYEMBED', fragment=FRAG_2, -+ errmsg='Could not find the python development headers', mandatory=mandatory) -+ -+@conf -+def check_python_version(conf, minver=None): -+ """ -+ Check if the python interpreter is found matching a given minimum version. -+ minver should be a tuple, eg. to check for python >= 2.4.2 pass (2,4,2) as minver. -+ -+ If successful, PYTHON_VERSION is defined as 'MAJOR.MINOR' -+ (eg. '2.4') of the actual python version found, and PYTHONDIR is -+ defined, pointing to the site-packages directory appropriate for -+ this python version, where modules/packages/extensions should be -+ installed. -+ """ -+ assert minver is None or isinstance(minver, tuple) -+ python = conf.env['PYTHON'] -+ if not python: -+ conf.fatal('could not find the python executable') -+ -+ # Get python version string -+ cmd = [python, "-c", "import sys\nfor x in sys.version_info: print(str(x))"] -+ debug('python: Running python command %r' % cmd) -+ proc = Utils.pproc.Popen(cmd, stdout=Utils.pproc.PIPE) -+ lines = proc.communicate()[0].split() -+ assert len(lines) == 5, "found %i lines, expected 5: %r" % (len(lines), lines) -+ pyver_tuple = (int(lines[0]), int(lines[1]), int(lines[2]), lines[3], int(lines[4])) -+ -+ # compare python version with the minimum required -+ result = (minver is None) or (pyver_tuple >= minver) -+ -+ if result: -+ # define useful environment variables -+ pyver = '.'.join([str(x) for x in pyver_tuple[:2]]) -+ conf.env['PYTHON_VERSION'] = pyver -+ -+ if 'PYTHONDIR' in conf.environ: -+ pydir = conf.environ['PYTHONDIR'] -+ else: -+ if sys.platform == 'win32': -+ (python_LIBDEST, pydir) = \ -+ _get_python_variables(python, -+ ["get_config_var('LIBDEST')", -+ "get_python_lib(standard_lib=0, prefix=%r)" % conf.env['PREFIX']], -+ ['from distutils.sysconfig import get_config_var, get_python_lib']) -+ else: -+ python_LIBDEST = None -+ (pydir,) = \ -+ _get_python_variables(python, -+ ["get_python_lib(standard_lib=0, prefix=%r)" % conf.env['PREFIX']], -+ ['from distutils.sysconfig import get_config_var, get_python_lib']) -+ if python_LIBDEST is None: -+ if conf.env['LIBDIR']: -+ python_LIBDEST = os.path.join(conf.env['LIBDIR'], "python" + pyver) -+ else: -+ python_LIBDEST = os.path.join(conf.env['PREFIX'], "lib", "python" + pyver) -+ -+ if 'PYTHONARCHDIR' in conf.environ: -+ pyarchdir = conf.environ['PYTHONARCHDIR'] -+ else: -+ (pyarchdir,) = _get_python_variables(python, -+ ["get_python_lib(plat_specific=1, standard_lib=0, prefix=%r)" % conf.env['PREFIX']], -+ ['from distutils.sysconfig import get_config_var, get_python_lib']) -+ if not pyarchdir: -+ pyarchdir = pydir -+ -+ if hasattr(conf, 'define'): # conf.define is added by the C tool, so may not exist -+ conf.define('PYTHONDIR', pydir) -+ conf.define('PYTHONARCHDIR', pyarchdir) -+ -+ conf.env['PYTHONDIR'] = pydir -+ -+ # Feedback -+ pyver_full = '.'.join(map(str, pyver_tuple[:3])) -+ if minver is None: -+ conf.check_message_custom('Python version', '', pyver_full) -+ else: -+ minver_str = '.'.join(map(str, minver)) -+ conf.check_message('Python version', ">= %s" % minver_str, result, option=pyver_full) -+ -+ if not result: -+ conf.fatal('The python version is too old (%r)' % pyver_full) -+ -+@conf -+def check_python_module(conf, module_name): -+ """ -+ Check if the selected python interpreter can import the given python module. -+ """ -+ result = not Utils.pproc.Popen([conf.env['PYTHON'], "-c", "import %s" % module_name], -+ stderr=Utils.pproc.PIPE, stdout=Utils.pproc.PIPE).wait() -+ conf.check_message('Python module', module_name, result) -+ if not result: -+ conf.fatal('Could not find the python module %r' % module_name) -+ -+def detect(conf): -+ -+ if not conf.env.PYTHON: -+ conf.env.PYTHON = sys.executable -+ -+ python = conf.find_program('python', var='PYTHON') -+ if not python: -+ conf.fatal('Could not find the path of the python executable') -+ -+ v = conf.env -+ -+ v['PYCMD'] = '"import sys, py_compile;py_compile.compile(sys.argv[1], sys.argv[2])"' -+ v['PYFLAGS'] = '' -+ v['PYFLAGS_OPT'] = '-O' -+ -+ v['PYC'] = getattr(Options.options, 'pyc', 1) -+ v['PYO'] = getattr(Options.options, 'pyo', 1) -+ -+def set_options(opt): -+ opt.add_option('--nopyc', -+ action='store_false', -+ default=1, -+ help = 'Do not install bytecode compiled .pyc files (configuration) [Default:install]', -+ dest = 'pyc') -+ opt.add_option('--nopyo', -+ action='store_false', -+ default=1, -+ help='Do not install optimised compiled .pyo files (configuration) [Default:install]', -+ dest='pyo') -+ -diff --git a/buildtools/wafadmin/Tools/qt4.py b/buildtools/wafadmin/Tools/qt4.py -new file mode 100644 -index 0000000..84d121a ---- /dev/null -+++ b/buildtools/wafadmin/Tools/qt4.py -@@ -0,0 +1,505 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+""" -+Qt4 support -+ -+If QT4_ROOT is given (absolute path), the configuration will look in it first -+ -+This module also demonstrates how to add tasks dynamically (when the build has started) -+""" -+ -+try: -+ from xml.sax import make_parser -+ from xml.sax.handler import ContentHandler -+except ImportError: -+ has_xml = False -+ ContentHandler = object -+else: -+ has_xml = True -+ -+import os, sys -+import ccroot, cxx -+import TaskGen, Task, Utils, Runner, Options, Node, Configure -+from TaskGen import taskgen, feature, after, extension -+from Logs import error -+from Constants import * -+ -+MOC_H = ['.h', '.hpp', '.hxx', '.hh'] -+EXT_RCC = ['.qrc'] -+EXT_UI = ['.ui'] -+EXT_QT4 = ['.cpp', '.cc', '.cxx', '.C'] -+ -+class qxx_task(Task.Task): -+ "A cpp task that may create a moc task dynamically" -+ -+ before = ['cxx_link', 'static_link'] -+ -+ def __init__(self, *k, **kw): -+ Task.Task.__init__(self, *k, **kw) -+ self.moc_done = 0 -+ -+ def scan(self): -+ (nodes, names) = ccroot.scan(self) -+ # for some reasons (variants) the moc node may end in the list of node deps -+ for x in nodes: -+ if x.name.endswith('.moc'): -+ nodes.remove(x) -+ names.append(x.relpath_gen(self.inputs[0].parent)) -+ return (nodes, names) -+ -+ def runnable_status(self): -+ if self.moc_done: -+ # if there is a moc task, delay the computation of the file signature -+ for t in self.run_after: -+ if not t.hasrun: -+ return ASK_LATER -+ # the moc file enters in the dependency calculation -+ # so we need to recompute the signature when the moc file is present -+ self.signature() -+ return Task.Task.runnable_status(self) -+ else: -+ # yes, really, there are people who generate cxx files -+ for t in self.run_after: -+ if not t.hasrun: -+ return ASK_LATER -+ self.add_moc_tasks() -+ return ASK_LATER -+ -+ def add_moc_tasks(self): -+ -+ node = self.inputs[0] -+ tree = node.__class__.bld -+ -+ try: -+ # compute the signature once to know if there is a moc file to create -+ self.signature() -+ except KeyError: -+ # the moc file may be referenced somewhere else -+ pass -+ else: -+ # remove the signature, it must be recomputed with the moc task -+ delattr(self, 'cache_sig') -+ -+ moctasks=[] -+ mocfiles=[] -+ variant = node.variant(self.env) -+ try: -+ tmp_lst = tree.raw_deps[self.unique_id()] -+ tree.raw_deps[self.unique_id()] = [] -+ except KeyError: -+ tmp_lst = [] -+ for d in tmp_lst: -+ if not d.endswith('.moc'): continue -+ # paranoid check -+ if d in mocfiles: -+ error("paranoia owns") -+ continue -+ -+ # process that base.moc only once -+ mocfiles.append(d) -+ -+ # find the extension (performed only when the .cpp has changes) -+ base2 = d[:-4] -+ for path in [node.parent] + self.generator.env['INC_PATHS']: -+ tree.rescan(path) -+ vals = getattr(Options.options, 'qt_header_ext', '') or MOC_H -+ for ex in vals: -+ h_node = path.find_resource(base2 + ex) -+ if h_node: -+ break -+ else: -+ continue -+ break -+ else: -+ raise Utils.WafError("no header found for %s which is a moc file" % str(d)) -+ -+ m_node = h_node.change_ext('.moc') -+ tree.node_deps[(self.inputs[0].parent.id, self.env.variant(), m_node.name)] = h_node -+ -+ # create the task -+ task = Task.TaskBase.classes['moc'](self.env, normal=0) -+ task.set_inputs(h_node) -+ task.set_outputs(m_node) -+ -+ generator = tree.generator -+ generator.outstanding.insert(0, task) -+ generator.total += 1 -+ -+ moctasks.append(task) -+ -+ # remove raw deps except the moc files to save space (optimization) -+ tmp_lst = tree.raw_deps[self.unique_id()] = mocfiles -+ -+ # look at the file inputs, it is set right above -+ lst = tree.node_deps.get(self.unique_id(), ()) -+ for d in lst: -+ name = d.name -+ if name.endswith('.moc'): -+ task = Task.TaskBase.classes['moc'](self.env, normal=0) -+ task.set_inputs(tree.node_deps[(self.inputs[0].parent.id, self.env.variant(), name)]) # 1st element in a tuple -+ task.set_outputs(d) -+ -+ generator = tree.generator -+ generator.outstanding.insert(0, task) -+ generator.total += 1 -+ -+ moctasks.append(task) -+ -+ # simple scheduler dependency: run the moc task before others -+ self.run_after = moctasks -+ self.moc_done = 1 -+ -+ run = Task.TaskBase.classes['cxx'].__dict__['run'] -+ -+def translation_update(task): -+ outs = [a.abspath(task.env) for a in task.outputs] -+ outs = " ".join(outs) -+ lupdate = task.env['QT_LUPDATE'] -+ -+ for x in task.inputs: -+ file = x.abspath(task.env) -+ cmd = "%s %s -ts %s" % (lupdate, file, outs) -+ Utils.pprint('BLUE', cmd) -+ task.generator.bld.exec_command(cmd) -+ -+class XMLHandler(ContentHandler): -+ def __init__(self): -+ self.buf = [] -+ self.files = [] -+ def startElement(self, name, attrs): -+ if name == 'file': -+ self.buf = [] -+ def endElement(self, name): -+ if name == 'file': -+ self.files.append(''.join(self.buf)) -+ def characters(self, cars): -+ self.buf.append(cars) -+ -+def scan(self): -+ "add the dependency on the files referenced in the qrc" -+ node = self.inputs[0] -+ parser = make_parser() -+ curHandler = XMLHandler() -+ parser.setContentHandler(curHandler) -+ fi = open(self.inputs[0].abspath(self.env)) -+ parser.parse(fi) -+ fi.close() -+ -+ nodes = [] -+ names = [] -+ root = self.inputs[0].parent -+ for x in curHandler.files: -+ nd = root.find_resource(x) -+ if nd: nodes.append(nd) -+ else: names.append(x) -+ -+ return (nodes, names) -+ -+@extension(EXT_RCC) -+def create_rcc_task(self, node): -+ "hook for rcc files" -+ rcnode = node.change_ext('_rc.cpp') -+ rcctask = self.create_task('rcc', node, rcnode) -+ cpptask = self.create_task('cxx', rcnode, rcnode.change_ext('.o')) -+ self.compiled_tasks.append(cpptask) -+ return cpptask -+ -+@extension(EXT_UI) -+def create_uic_task(self, node): -+ "hook for uic tasks" -+ uictask = self.create_task('ui4', node) -+ uictask.outputs = [self.path.find_or_declare(self.env['ui_PATTERN'] % node.name[:-3])] -+ return uictask -+ -+class qt4_taskgen(cxx.cxx_taskgen): -+ def __init__(self, *k, **kw): -+ cxx.cxx_taskgen.__init__(self, *k, **kw) -+ self.features.append('qt4') -+ -+@extension('.ts') -+def add_lang(self, node): -+ """add all the .ts file into self.lang""" -+ self.lang = self.to_list(getattr(self, 'lang', [])) + [node] -+ -+@feature('qt4') -+@after('apply_link') -+def apply_qt4(self): -+ if getattr(self, 'lang', None): -+ update = getattr(self, 'update', None) -+ lst=[] -+ trans=[] -+ for l in self.to_list(self.lang): -+ -+ if not isinstance(l, Node.Node): -+ l = self.path.find_resource(l+'.ts') -+ -+ t = self.create_task('ts2qm', l, l.change_ext('.qm')) -+ lst.append(t.outputs[0]) -+ -+ if update: -+ trans.append(t.inputs[0]) -+ -+ trans_qt4 = getattr(Options.options, 'trans_qt4', False) -+ if update and trans_qt4: -+ # we need the cpp files given, except the rcc task we create after -+ # FIXME may be broken -+ u = Task.TaskCmd(translation_update, self.env, 2) -+ u.inputs = [a.inputs[0] for a in self.compiled_tasks] -+ u.outputs = trans -+ -+ if getattr(self, 'langname', None): -+ t = Task.TaskBase.classes['qm2rcc'](self.env) -+ t.set_inputs(lst) -+ t.set_outputs(self.path.find_or_declare(self.langname+'.qrc')) -+ t.path = self.path -+ k = create_rcc_task(self, t.outputs[0]) -+ self.link_task.inputs.append(k.outputs[0]) -+ -+ self.env.append_value('MOC_FLAGS', self.env._CXXDEFFLAGS) -+ self.env.append_value('MOC_FLAGS', self.env._CXXINCFLAGS) -+ -+@extension(EXT_QT4) -+def cxx_hook(self, node): -+ # create the compilation task: cpp or cc -+ try: obj_ext = self.obj_ext -+ except AttributeError: obj_ext = '_%d.o' % self.idx -+ -+ task = self.create_task('qxx', node, node.change_ext(obj_ext)) -+ self.compiled_tasks.append(task) -+ return task -+ -+def process_qm2rcc(task): -+ outfile = task.outputs[0].abspath(task.env) -+ f = open(outfile, 'w') -+ f.write('\n\n') -+ for k in task.inputs: -+ f.write(' ') -+ #f.write(k.name) -+ f.write(k.path_to_parent(task.path)) -+ f.write('\n') -+ f.write('\n') -+ f.close() -+ -+b = Task.simple_task_type -+b('moc', '${QT_MOC} ${MOC_FLAGS} ${SRC} ${MOC_ST} ${TGT}', color='BLUE', vars=['QT_MOC', 'MOC_FLAGS'], shell=False) -+cls = b('rcc', '${QT_RCC} -name ${SRC[0].name} ${SRC[0].abspath(env)} ${RCC_ST} -o ${TGT}', color='BLUE', before='cxx moc qxx_task', after="qm2rcc", shell=False) -+cls.scan = scan -+b('ui4', '${QT_UIC} ${SRC} -o ${TGT}', color='BLUE', before='cxx moc qxx_task', shell=False) -+b('ts2qm', '${QT_LRELEASE} ${QT_LRELEASE_FLAGS} ${SRC} -qm ${TGT}', color='BLUE', before='qm2rcc', shell=False) -+ -+Task.task_type_from_func('qm2rcc', vars=[], func=process_qm2rcc, color='BLUE', before='rcc', after='ts2qm') -+ -+def detect_qt4(conf): -+ env = conf.env -+ opt = Options.options -+ -+ qtdir = getattr(opt, 'qtdir', '') -+ qtbin = getattr(opt, 'qtbin', '') -+ qtlibs = getattr(opt, 'qtlibs', '') -+ useframework = getattr(opt, 'use_qt4_osxframework', True) -+ -+ paths = [] -+ -+ # the path to qmake has been given explicitely -+ if qtbin: -+ paths = [qtbin] -+ -+ # the qt directory has been given - we deduce the qt binary path -+ if not qtdir: -+ qtdir = conf.environ.get('QT4_ROOT', '') -+ qtbin = os.path.join(qtdir, 'bin') -+ paths = [qtbin] -+ -+ # no qtdir, look in the path and in /usr/local/Trolltech -+ if not qtdir: -+ paths = os.environ.get('PATH', '').split(os.pathsep) -+ paths.append('/usr/share/qt4/bin/') -+ try: -+ lst = os.listdir('/usr/local/Trolltech/') -+ except OSError: -+ pass -+ else: -+ if lst: -+ lst.sort() -+ lst.reverse() -+ -+ # keep the highest version -+ qtdir = '/usr/local/Trolltech/%s/' % lst[0] -+ qtbin = os.path.join(qtdir, 'bin') -+ paths.append(qtbin) -+ -+ # at the end, try to find qmake in the paths given -+ # keep the one with the highest version -+ cand = None -+ prev_ver = ['4', '0', '0'] -+ for qmk in ['qmake-qt4', 'qmake4', 'qmake']: -+ qmake = conf.find_program(qmk, path_list=paths) -+ if qmake: -+ try: -+ version = Utils.cmd_output([qmake, '-query', 'QT_VERSION']).strip() -+ except ValueError: -+ pass -+ else: -+ if version: -+ new_ver = version.split('.') -+ if new_ver > prev_ver: -+ cand = qmake -+ prev_ver = new_ver -+ if cand: -+ qmake = cand -+ else: -+ conf.fatal('could not find qmake for qt4') -+ -+ conf.env.QMAKE = qmake -+ qtincludes = Utils.cmd_output([qmake, '-query', 'QT_INSTALL_HEADERS']).strip() -+ qtdir = Utils.cmd_output([qmake, '-query', 'QT_INSTALL_PREFIX']).strip() + os.sep -+ qtbin = Utils.cmd_output([qmake, '-query', 'QT_INSTALL_BINS']).strip() + os.sep -+ -+ if not qtlibs: -+ try: -+ qtlibs = Utils.cmd_output([qmake, '-query', 'QT_INSTALL_LIBS']).strip() + os.sep -+ except ValueError: -+ qtlibs = os.path.join(qtdir, 'lib') -+ -+ def find_bin(lst, var): -+ for f in lst: -+ ret = conf.find_program(f, path_list=paths) -+ if ret: -+ env[var]=ret -+ break -+ -+ vars = "QtCore QtGui QtUiTools QtNetwork QtOpenGL QtSql QtSvg QtTest QtXml QtWebKit Qt3Support".split() -+ -+ find_bin(['uic-qt3', 'uic3'], 'QT_UIC3') -+ find_bin(['uic-qt4', 'uic'], 'QT_UIC') -+ if not env['QT_UIC']: -+ conf.fatal('cannot find the uic compiler for qt4') -+ -+ try: -+ version = Utils.cmd_output(env['QT_UIC'] + " -version 2>&1").strip() -+ except ValueError: -+ conf.fatal('your uic compiler is for qt3, add uic for qt4 to your path') -+ -+ version = version.replace('Qt User Interface Compiler ','') -+ version = version.replace('User Interface Compiler for Qt', '') -+ if version.find(" 3.") != -1: -+ conf.check_message('uic version', '(too old)', 0, option='(%s)'%version) -+ sys.exit(1) -+ conf.check_message('uic version', '', 1, option='(%s)'%version) -+ -+ find_bin(['moc-qt4', 'moc'], 'QT_MOC') -+ find_bin(['rcc'], 'QT_RCC') -+ find_bin(['lrelease-qt4', 'lrelease'], 'QT_LRELEASE') -+ find_bin(['lupdate-qt4', 'lupdate'], 'QT_LUPDATE') -+ -+ env['UIC3_ST']= '%s -o %s' -+ env['UIC_ST'] = '%s -o %s' -+ env['MOC_ST'] = '-o' -+ env['ui_PATTERN'] = 'ui_%s.h' -+ env['QT_LRELEASE_FLAGS'] = ['-silent'] -+ -+ vars_debug = [a+'_debug' for a in vars] -+ -+ try: -+ conf.find_program('pkg-config', var='pkgconfig', path_list=paths, mandatory=True) -+ -+ except Configure.ConfigurationError: -+ -+ for lib in vars_debug+vars: -+ uselib = lib.upper() -+ -+ d = (lib.find('_debug') > 0) and 'd' or '' -+ -+ # original author seems to prefer static to shared libraries -+ for (pat, kind) in ((conf.env.staticlib_PATTERN, 'STATIC'), (conf.env.shlib_PATTERN, '')): -+ -+ conf.check_message_1('Checking for %s %s' % (lib, kind)) -+ -+ for ext in ['', '4']: -+ path = os.path.join(qtlibs, pat % (lib + d + ext)) -+ if os.path.exists(path): -+ env.append_unique(kind + 'LIB_' + uselib, lib + d + ext) -+ conf.check_message_2('ok ' + path, 'GREEN') -+ break -+ path = os.path.join(qtbin, pat % (lib + d + ext)) -+ if os.path.exists(path): -+ env.append_unique(kind + 'LIB_' + uselib, lib + d + ext) -+ conf.check_message_2('ok ' + path, 'GREEN') -+ break -+ else: -+ conf.check_message_2('not found', 'YELLOW') -+ continue -+ break -+ -+ env.append_unique('LIBPATH_' + uselib, qtlibs) -+ env.append_unique('CPPPATH_' + uselib, qtincludes) -+ env.append_unique('CPPPATH_' + uselib, qtincludes + os.sep + lib) -+ else: -+ for i in vars_debug+vars: -+ try: -+ conf.check_cfg(package=i, args='--cflags --libs --silence-errors', path=conf.env.pkgconfig) -+ except ValueError: -+ pass -+ -+ # the libpaths are set nicely, unfortunately they make really long command-lines -+ # remove the qtcore ones from qtgui, etc -+ def process_lib(vars_, coreval): -+ for d in vars_: -+ var = d.upper() -+ if var == 'QTCORE': continue -+ -+ value = env['LIBPATH_'+var] -+ if value: -+ core = env[coreval] -+ accu = [] -+ for lib in value: -+ if lib in core: continue -+ accu.append(lib) -+ env['LIBPATH_'+var] = accu -+ -+ process_lib(vars, 'LIBPATH_QTCORE') -+ process_lib(vars_debug, 'LIBPATH_QTCORE_DEBUG') -+ -+ # rpath if wanted -+ want_rpath = getattr(Options.options, 'want_rpath', 1) -+ if want_rpath: -+ def process_rpath(vars_, coreval): -+ for d in vars_: -+ var = d.upper() -+ value = env['LIBPATH_'+var] -+ if value: -+ core = env[coreval] -+ accu = [] -+ for lib in value: -+ if var != 'QTCORE': -+ if lib in core: -+ continue -+ accu.append('-Wl,--rpath='+lib) -+ env['RPATH_'+var] = accu -+ process_rpath(vars, 'LIBPATH_QTCORE') -+ process_rpath(vars_debug, 'LIBPATH_QTCORE_DEBUG') -+ -+ env['QTLOCALE'] = str(env['PREFIX'])+'/share/locale' -+ -+def detect(conf): -+ detect_qt4(conf) -+ -+def set_options(opt): -+ opt.add_option('--want-rpath', type='int', default=1, dest='want_rpath', help='set rpath to 1 or 0 [Default 1]') -+ -+ opt.add_option('--header-ext', -+ type='string', -+ default='', -+ help='header extension for moc files', -+ dest='qt_header_ext') -+ -+ for i in 'qtdir qtbin qtlibs'.split(): -+ opt.add_option('--'+i, type='string', default='', dest=i) -+ -+ if sys.platform == "darwin": -+ opt.add_option('--no-qt4-framework', action="store_false", help='do not use the framework version of Qt4 in OS X', dest='use_qt4_osxframework',default=True) -+ -+ opt.add_option('--translate', action="store_true", help="collect translation strings", dest="trans_qt4", default=False) -+ -diff --git a/buildtools/wafadmin/Tools/ruby.py b/buildtools/wafadmin/Tools/ruby.py -new file mode 100644 -index 0000000..d3b7569 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/ruby.py -@@ -0,0 +1,120 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# daniel.svensson at purplescout.se 2008 -+ -+import os -+import Task, Options, Utils -+from TaskGen import before, feature, after -+from Configure import conf -+ -+@feature('rubyext') -+@before('apply_incpaths', 'apply_type_vars', 'apply_lib_vars', 'apply_bundle') -+@after('default_cc', 'vars_target_cshlib') -+def init_rubyext(self): -+ self.default_install_path = '${ARCHDIR_RUBY}' -+ self.uselib = self.to_list(getattr(self, 'uselib', '')) -+ if not 'RUBY' in self.uselib: -+ self.uselib.append('RUBY') -+ if not 'RUBYEXT' in self.uselib: -+ self.uselib.append('RUBYEXT') -+ -+@feature('rubyext') -+@before('apply_link') -+def apply_ruby_so_name(self): -+ self.env['shlib_PATTERN'] = self.env['rubyext_PATTERN'] -+ -+@conf -+def check_ruby_version(conf, minver=()): -+ """ -+ Checks if ruby is installed. -+ If installed the variable RUBY will be set in environment. -+ Ruby binary can be overridden by --with-ruby-binary config variable -+ """ -+ -+ if Options.options.rubybinary: -+ conf.env.RUBY = Options.options.rubybinary -+ else: -+ conf.find_program("ruby", var="RUBY", mandatory=True) -+ -+ ruby = conf.env.RUBY -+ -+ try: -+ version = Utils.cmd_output([ruby, '-e', 'puts defined?(VERSION) ? VERSION : RUBY_VERSION']).strip() -+ except: -+ conf.fatal('could not determine ruby version') -+ conf.env.RUBY_VERSION = version -+ -+ try: -+ ver = tuple(map(int, version.split("."))) -+ except: -+ conf.fatal('unsupported ruby version %r' % version) -+ -+ cver = '' -+ if minver: -+ if ver < minver: -+ conf.fatal('ruby is too old') -+ cver = ".".join([str(x) for x in minver]) -+ -+ conf.check_message('ruby', cver, True, version) -+ -+@conf -+def check_ruby_ext_devel(conf): -+ if not conf.env.RUBY: -+ conf.fatal('ruby detection is required first') -+ -+ if not conf.env.CC_NAME and not conf.env.CXX_NAME: -+ conf.fatal('load a c/c++ compiler first') -+ -+ version = tuple(map(int, conf.env.RUBY_VERSION.split("."))) -+ -+ def read_out(cmd): -+ return Utils.to_list(Utils.cmd_output([conf.env.RUBY, '-rrbconfig', '-e', cmd])) -+ -+ def read_config(key): -+ return read_out('puts Config::CONFIG[%r]' % key) -+ -+ ruby = conf.env['RUBY'] -+ archdir = read_config('archdir') -+ cpppath = archdir -+ if version >= (1, 9, 0): -+ ruby_hdrdir = read_config('rubyhdrdir') -+ cpppath += ruby_hdrdir -+ cpppath += [os.path.join(ruby_hdrdir[0], read_config('arch')[0])] -+ -+ conf.check(header_name='ruby.h', includes=cpppath, mandatory=True, errmsg='could not find ruby header file') -+ -+ conf.env.LIBPATH_RUBYEXT = read_config('libdir') -+ conf.env.LIBPATH_RUBYEXT += archdir -+ conf.env.CPPPATH_RUBYEXT = cpppath -+ conf.env.CCFLAGS_RUBYEXT = read_config("CCDLFLAGS") -+ conf.env.rubyext_PATTERN = '%s.' + read_config('DLEXT')[0] -+ -+ # ok this is really stupid, but the command and flags are combined. -+ # so we try to find the first argument... -+ flags = read_config('LDSHARED') -+ while flags and flags[0][0] != '-': -+ flags = flags[1:] -+ -+ # we also want to strip out the deprecated ppc flags -+ if len(flags) > 1 and flags[1] == "ppc": -+ flags = flags[2:] -+ -+ conf.env.LINKFLAGS_RUBYEXT = flags -+ conf.env.LINKFLAGS_RUBYEXT += read_config("LIBS") -+ conf.env.LINKFLAGS_RUBYEXT += read_config("LIBRUBYARG_SHARED") -+ -+ if Options.options.rubyarchdir: -+ conf.env.ARCHDIR_RUBY = Options.options.rubyarchdir -+ else: -+ conf.env.ARCHDIR_RUBY = read_config('sitearchdir')[0] -+ -+ if Options.options.rubylibdir: -+ conf.env.LIBDIR_RUBY = Options.options.rubylibdir -+ else: -+ conf.env.LIBDIR_RUBY = read_config('sitelibdir')[0] -+ -+def set_options(opt): -+ opt.add_option('--with-ruby-archdir', type='string', dest='rubyarchdir', help='Specify directory where to install arch specific files') -+ opt.add_option('--with-ruby-libdir', type='string', dest='rubylibdir', help='Specify alternate ruby library path') -+ opt.add_option('--with-ruby-binary', type='string', dest='rubybinary', help='Specify alternate ruby binary') -+ -diff --git a/buildtools/wafadmin/Tools/suncc.py b/buildtools/wafadmin/Tools/suncc.py -new file mode 100644 -index 0000000..b1a2aad ---- /dev/null -+++ b/buildtools/wafadmin/Tools/suncc.py -@@ -0,0 +1,76 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+# Ralf Habacker, 2006 (rh) -+ -+import os, optparse -+import Utils, Options, Configure -+import ccroot, ar -+from Configure import conftest -+ -+@conftest -+def find_scc(conf): -+ v = conf.env -+ cc = None -+ if v['CC']: cc = v['CC'] -+ elif 'CC' in conf.environ: cc = conf.environ['CC'] -+ #if not cc: cc = conf.find_program('gcc', var='CC') -+ if not cc: cc = conf.find_program('cc', var='CC') -+ if not cc: conf.fatal('suncc was not found') -+ cc = conf.cmd_to_list(cc) -+ -+ try: -+ if not Utils.cmd_output(cc + ['-flags']): -+ conf.fatal('suncc %r was not found' % cc) -+ except ValueError: -+ conf.fatal('suncc -flags could not be executed') -+ -+ v['CC'] = cc -+ v['CC_NAME'] = 'sun' -+ -+@conftest -+def scc_common_flags(conf): -+ v = conf.env -+ -+ # CPPFLAGS CCDEFINES _CCINCFLAGS _CCDEFFLAGS -+ -+ v['CC_SRC_F'] = '' -+ v['CC_TGT_F'] = ['-c', '-o', ''] -+ v['CPPPATH_ST'] = '-I%s' # template for adding include paths -+ -+ # linker -+ if not v['LINK_CC']: v['LINK_CC'] = v['CC'] -+ v['CCLNK_SRC_F'] = '' -+ v['CCLNK_TGT_F'] = ['-o', ''] # solaris hack, separate the -o from the target -+ -+ v['LIB_ST'] = '-l%s' # template for adding libs -+ v['LIBPATH_ST'] = '-L%s' # template for adding libpaths -+ v['STATICLIB_ST'] = '-l%s' -+ v['STATICLIBPATH_ST'] = '-L%s' -+ v['CCDEFINES_ST'] = '-D%s' -+ -+ v['SONAME_ST'] = '-Wl,-h -Wl,%s' -+ v['SHLIB_MARKER'] = '-Bdynamic' -+ v['STATICLIB_MARKER'] = '-Bstatic' -+ -+ # program -+ v['program_PATTERN'] = '%s' -+ -+ # shared library -+ v['shlib_CCFLAGS'] = ['-Kpic', '-DPIC'] -+ v['shlib_LINKFLAGS'] = ['-G'] -+ v['shlib_PATTERN'] = 'lib%s.so' -+ -+ # static lib -+ v['staticlib_LINKFLAGS'] = ['-Bstatic'] -+ v['staticlib_PATTERN'] = 'lib%s.a' -+ -+detect = ''' -+find_scc -+find_cpp -+find_ar -+scc_common_flags -+cc_load_tools -+cc_add_flags -+link_add_flags -+''' -diff --git a/buildtools/wafadmin/Tools/suncxx.py b/buildtools/wafadmin/Tools/suncxx.py -new file mode 100644 -index 0000000..8754b6c ---- /dev/null -+++ b/buildtools/wafadmin/Tools/suncxx.py -@@ -0,0 +1,75 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+# Ralf Habacker, 2006 (rh) -+ -+import os, optparse -+import Utils, Options, Configure -+import ccroot, ar -+from Configure import conftest -+ -+@conftest -+def find_sxx(conf): -+ v = conf.env -+ cc = None -+ if v['CXX']: cc = v['CXX'] -+ elif 'CXX' in conf.environ: cc = conf.environ['CXX'] -+ if not cc: cc = conf.find_program('c++', var='CXX') -+ if not cc: conf.fatal('sunc++ was not found') -+ cc = conf.cmd_to_list(cc) -+ -+ try: -+ if not Utils.cmd_output(cc + ['-flags']): -+ conf.fatal('sunc++ %r was not found' % cc) -+ except ValueError: -+ conf.fatal('sunc++ -flags could not be executed') -+ -+ v['CXX'] = cc -+ v['CXX_NAME'] = 'sun' -+ -+@conftest -+def sxx_common_flags(conf): -+ v = conf.env -+ -+ # CPPFLAGS CXXDEFINES _CXXINCFLAGS _CXXDEFFLAGS -+ -+ v['CXX_SRC_F'] = '' -+ v['CXX_TGT_F'] = ['-c', '-o', ''] -+ v['CPPPATH_ST'] = '-I%s' # template for adding include paths -+ -+ # linker -+ if not v['LINK_CXX']: v['LINK_CXX'] = v['CXX'] -+ v['CXXLNK_SRC_F'] = '' -+ v['CXXLNK_TGT_F'] = ['-o', ''] # solaris hack, separate the -o from the target -+ -+ v['LIB_ST'] = '-l%s' # template for adding libs -+ v['LIBPATH_ST'] = '-L%s' # template for adding libpaths -+ v['STATICLIB_ST'] = '-l%s' -+ v['STATICLIBPATH_ST'] = '-L%s' -+ v['CXXDEFINES_ST'] = '-D%s' -+ -+ v['SONAME_ST'] = '-Wl,-h -Wl,%s' -+ v['SHLIB_MARKER'] = '-Bdynamic' -+ v['STATICLIB_MARKER'] = '-Bstatic' -+ -+ # program -+ v['program_PATTERN'] = '%s' -+ -+ # shared library -+ v['shlib_CXXFLAGS'] = ['-Kpic', '-DPIC'] -+ v['shlib_LINKFLAGS'] = ['-G'] -+ v['shlib_PATTERN'] = 'lib%s.so' -+ -+ # static lib -+ v['staticlib_LINKFLAGS'] = ['-Bstatic'] -+ v['staticlib_PATTERN'] = 'lib%s.a' -+ -+detect = ''' -+find_sxx -+find_cpp -+find_ar -+sxx_common_flags -+cxx_load_tools -+cxx_add_flags -+link_add_flags -+''' -diff --git a/buildtools/wafadmin/Tools/tex.py b/buildtools/wafadmin/Tools/tex.py -new file mode 100644 -index 0000000..2dd748b ---- /dev/null -+++ b/buildtools/wafadmin/Tools/tex.py -@@ -0,0 +1,251 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+ -+"TeX/LaTeX/PDFLaTeX support" -+ -+import os, re -+import Utils, TaskGen, Task, Runner, Build -+from TaskGen import feature, before -+from Logs import error, warn, debug -+ -+re_tex = re.compile(r'\\(?Pinclude|input|import|bringin|lstinputlisting){(?P[^{}]*)}', re.M) -+def scan(self): -+ node = self.inputs[0] -+ env = self.env -+ -+ nodes = [] -+ names = [] -+ if not node: return (nodes, names) -+ -+ code = Utils.readf(node.abspath(env)) -+ -+ curdirnode = self.curdirnode -+ abs = curdirnode.abspath() -+ for match in re_tex.finditer(code): -+ path = match.group('file') -+ if path: -+ for k in ['', '.tex', '.ltx']: -+ # add another loop for the tex include paths? -+ debug('tex: trying %s%s' % (path, k)) -+ try: -+ os.stat(abs+os.sep+path+k) -+ except OSError: -+ continue -+ found = path+k -+ node = curdirnode.find_resource(found) -+ if node: -+ nodes.append(node) -+ else: -+ debug('tex: could not find %s' % path) -+ names.append(path) -+ -+ debug("tex: found the following : %s and names %s" % (nodes, names)) -+ return (nodes, names) -+ -+latex_fun, _ = Task.compile_fun('latex', '${LATEX} ${LATEXFLAGS} ${SRCFILE}', shell=False) -+pdflatex_fun, _ = Task.compile_fun('pdflatex', '${PDFLATEX} ${PDFLATEXFLAGS} ${SRCFILE}', shell=False) -+bibtex_fun, _ = Task.compile_fun('bibtex', '${BIBTEX} ${BIBTEXFLAGS} ${SRCFILE}', shell=False) -+makeindex_fun, _ = Task.compile_fun('bibtex', '${MAKEINDEX} ${MAKEINDEXFLAGS} ${SRCFILE}', shell=False) -+ -+g_bibtex_re = re.compile('bibdata', re.M) -+def tex_build(task, command='LATEX'): -+ env = task.env -+ bld = task.generator.bld -+ -+ if not env['PROMPT_LATEX']: -+ env.append_value('LATEXFLAGS', '-interaction=batchmode') -+ env.append_value('PDFLATEXFLAGS', '-interaction=batchmode') -+ -+ fun = latex_fun -+ if command == 'PDFLATEX': -+ fun = pdflatex_fun -+ -+ node = task.inputs[0] -+ reldir = node.bld_dir(env) -+ -+ #lst = [] -+ #for c in Utils.split_path(reldir): -+ # if c: lst.append('..') -+ #srcfile = os.path.join(*(lst + [node.srcpath(env)])) -+ #sr2 = os.path.join(*(lst + [node.parent.srcpath(env)])) -+ srcfile = node.abspath(env) -+ sr2 = node.parent.abspath() + os.pathsep + node.parent.abspath(env) + os.pathsep -+ -+ aux_node = node.change_ext('.aux') -+ idx_node = node.change_ext('.idx') -+ -+ nm = aux_node.name -+ docuname = nm[ : len(nm) - 4 ] # 4 is the size of ".aux" -+ -+ # important, set the cwd for everybody -+ task.cwd = task.inputs[0].parent.abspath(task.env) -+ -+ -+ warn('first pass on %s' % command) -+ -+ task.env.env = {'TEXINPUTS': sr2} -+ task.env.SRCFILE = srcfile -+ ret = fun(task) -+ if ret: -+ return ret -+ -+ # look in the .aux file if there is a bibfile to process -+ try: -+ ct = Utils.readf(aux_node.abspath(env)) -+ except (OSError, IOError): -+ error('error bibtex scan') -+ else: -+ fo = g_bibtex_re.findall(ct) -+ -+ # there is a .aux file to process -+ if fo: -+ warn('calling bibtex') -+ -+ task.env.env = {'BIBINPUTS': sr2, 'BSTINPUTS': sr2} -+ task.env.SRCFILE = docuname -+ ret = bibtex_fun(task) -+ if ret: -+ error('error when calling bibtex %s' % docuname) -+ return ret -+ -+ # look on the filesystem if there is a .idx file to process -+ try: -+ idx_path = idx_node.abspath(env) -+ os.stat(idx_path) -+ except OSError: -+ error('error file.idx scan') -+ else: -+ warn('calling makeindex') -+ -+ task.env.SRCFILE = idx_node.name -+ task.env.env = {} -+ ret = makeindex_fun(task) -+ if ret: -+ error('error when calling makeindex %s' % idx_path) -+ return ret -+ -+ -+ hash = '' -+ i = 0 -+ while i < 10: -+ # prevent against infinite loops - one never knows -+ i += 1 -+ -+ # watch the contents of file.aux -+ prev_hash = hash -+ try: -+ hash = Utils.h_file(aux_node.abspath(env)) -+ except KeyError: -+ error('could not read aux.h -> %s' % aux_node.abspath(env)) -+ pass -+ -+ # debug -+ #print "hash is, ", hash, " ", old_hash -+ -+ # stop if file.aux does not change anymore -+ if hash and hash == prev_hash: -+ break -+ -+ # run the command -+ warn('calling %s' % command) -+ -+ task.env.env = {'TEXINPUTS': sr2 + os.pathsep} -+ task.env.SRCFILE = srcfile -+ ret = fun(task) -+ if ret: -+ error('error when calling %s %s' % (command, latex_compile_cmd)) -+ return ret -+ -+ return None # ok -+ -+latex_vardeps = ['LATEX', 'LATEXFLAGS'] -+def latex_build(task): -+ return tex_build(task, 'LATEX') -+ -+pdflatex_vardeps = ['PDFLATEX', 'PDFLATEXFLAGS'] -+def pdflatex_build(task): -+ return tex_build(task, 'PDFLATEX') -+ -+class tex_taskgen(TaskGen.task_gen): -+ def __init__(self, *k, **kw): -+ TaskGen.task_gen.__init__(self, *k, **kw) -+ -+@feature('tex') -+@before('apply_core') -+def apply_tex(self): -+ if not getattr(self, 'type', None) in ['latex', 'pdflatex']: -+ self.type = 'pdflatex' -+ -+ tree = self.bld -+ outs = Utils.to_list(getattr(self, 'outs', [])) -+ -+ # prompt for incomplete files (else the batchmode is used) -+ self.env['PROMPT_LATEX'] = getattr(self, 'prompt', 1) -+ -+ deps_lst = [] -+ -+ if getattr(self, 'deps', None): -+ deps = self.to_list(self.deps) -+ for filename in deps: -+ n = self.path.find_resource(filename) -+ if not n in deps_lst: deps_lst.append(n) -+ -+ self.source = self.to_list(self.source) -+ for filename in self.source: -+ base, ext = os.path.splitext(filename) -+ -+ node = self.path.find_resource(filename) -+ if not node: raise Utils.WafError('cannot find %s' % filename) -+ -+ if self.type == 'latex': -+ task = self.create_task('latex', node, node.change_ext('.dvi')) -+ elif self.type == 'pdflatex': -+ task = self.create_task('pdflatex', node, node.change_ext('.pdf')) -+ -+ task.env = self.env -+ task.curdirnode = self.path -+ -+ # add the manual dependencies -+ if deps_lst: -+ variant = node.variant(self.env) -+ try: -+ lst = tree.node_deps[task.unique_id()] -+ for n in deps_lst: -+ if not n in lst: -+ lst.append(n) -+ except KeyError: -+ tree.node_deps[task.unique_id()] = deps_lst -+ -+ if self.type == 'latex': -+ if 'ps' in outs: -+ tsk = self.create_task('dvips', task.outputs, node.change_ext('.ps')) -+ tsk.env.env = {'TEXINPUTS' : node.parent.abspath() + os.pathsep + self.path.abspath() + os.pathsep + self.path.abspath(self.env)} -+ if 'pdf' in outs: -+ tsk = self.create_task('dvipdf', task.outputs, node.change_ext('.pdf')) -+ tsk.env.env = {'TEXINPUTS' : node.parent.abspath() + os.pathsep + self.path.abspath() + os.pathsep + self.path.abspath(self.env)} -+ elif self.type == 'pdflatex': -+ if 'ps' in outs: -+ self.create_task('pdf2ps', task.outputs, node.change_ext('.ps')) -+ self.source = [] -+ -+def detect(conf): -+ v = conf.env -+ for p in 'tex latex pdflatex bibtex dvips dvipdf ps2pdf makeindex pdf2ps'.split(): -+ conf.find_program(p, var=p.upper()) -+ v[p.upper()+'FLAGS'] = '' -+ v['DVIPSFLAGS'] = '-Ppdf' -+ -+b = Task.simple_task_type -+b('tex', '${TEX} ${TEXFLAGS} ${SRC}', color='BLUE', shell=False) # not used anywhere -+b('bibtex', '${BIBTEX} ${BIBTEXFLAGS} ${SRC}', color='BLUE', shell=False) # not used anywhere -+b('dvips', '${DVIPS} ${DVIPSFLAGS} ${SRC} -o ${TGT}', color='BLUE', after="latex pdflatex tex bibtex", shell=False) -+b('dvipdf', '${DVIPDF} ${DVIPDFFLAGS} ${SRC} ${TGT}', color='BLUE', after="latex pdflatex tex bibtex", shell=False) -+b('pdf2ps', '${PDF2PS} ${PDF2PSFLAGS} ${SRC} ${TGT}', color='BLUE', after="dvipdf pdflatex", shell=False) -+ -+b = Task.task_type_from_func -+cls = b('latex', latex_build, vars=latex_vardeps) -+cls.scan = scan -+cls = b('pdflatex', pdflatex_build, vars=pdflatex_vardeps) -+cls.scan = scan -+ -diff --git a/buildtools/wafadmin/Tools/unittestw.py b/buildtools/wafadmin/Tools/unittestw.py -new file mode 100644 -index 0000000..0e30a51 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/unittestw.py -@@ -0,0 +1,310 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Carlos Rafael Giani, 2006 -+ -+""" -+Unit tests run in the shutdown() method, and for c/c++ programs -+ -+One should NOT have to give parameters to programs to execute -+ -+In the shutdown method, add the following code: -+ -+ >>> def shutdown(): -+ ... ut = UnitTest.unit_test() -+ ... ut.run() -+ ... ut.print_results() -+ -+ -+Each object to use as a unit test must be a program and must have X{obj.unit_test=1} -+""" -+import os, sys -+import Build, TaskGen, Utils, Options, Logs, Task -+from TaskGen import before, after, feature -+from Constants import * -+ -+class unit_test(object): -+ "Unit test representation" -+ def __init__(self): -+ self.returncode_ok = 0 # Unit test returncode considered OK. All returncodes differing from this one -+ # will cause the unit test to be marked as "FAILED". -+ -+ # The following variables are filled with data by run(). -+ -+ # print_results() uses these for printing the unit test summary, -+ # but if there is need for direct access to the results, -+ # they can be retrieved here, after calling run(). -+ -+ self.num_tests_ok = 0 # Number of successful unit tests -+ self.num_tests_failed = 0 # Number of failed unit tests -+ self.num_tests_err = 0 # Tests that have not even run -+ self.total_num_tests = 0 # Total amount of unit tests -+ self.max_label_length = 0 # Maximum label length (pretty-print the output) -+ -+ self.unit_tests = Utils.ordered_dict() # Unit test dictionary. Key: the label (unit test filename relative -+ # to the build dir), value: unit test filename with absolute path -+ self.unit_test_results = {} # Dictionary containing the unit test results. -+ # Key: the label, value: result (true = success false = failure) -+ self.unit_test_erroneous = {} # Dictionary indicating erroneous unit tests. -+ # Key: the label, value: true = unit test has an error false = unit test is ok -+ self.change_to_testfile_dir = False #True if the test file needs to be executed from the same dir -+ self.want_to_see_test_output = False #True to see the stdout from the testfile (for example check suites) -+ self.want_to_see_test_error = False #True to see the stderr from the testfile (for example check suites) -+ self.run_if_waf_does = 'check' #build was the old default -+ -+ def run(self): -+ "Run the unit tests and gather results (note: no output here)" -+ -+ self.num_tests_ok = 0 -+ self.num_tests_failed = 0 -+ self.num_tests_err = 0 -+ self.total_num_tests = 0 -+ self.max_label_length = 0 -+ -+ self.unit_tests = Utils.ordered_dict() -+ self.unit_test_results = {} -+ self.unit_test_erroneous = {} -+ -+ ld_library_path = [] -+ -+ # If waf is not building, don't run anything -+ if not Options.commands[self.run_if_waf_does]: return -+ -+ # Get the paths for the shared libraries, and obtain the unit tests to execute -+ for obj in Build.bld.all_task_gen: -+ try: -+ link_task = obj.link_task -+ except AttributeError: -+ pass -+ else: -+ lib_path = link_task.outputs[0].parent.abspath(obj.env) -+ if lib_path not in ld_library_path: -+ ld_library_path.append(lib_path) -+ -+ unit_test = getattr(obj, 'unit_test', '') -+ if unit_test and 'cprogram' in obj.features: -+ try: -+ output = obj.path -+ filename = os.path.join(output.abspath(obj.env), obj.target) -+ srcdir = output.abspath() -+ label = os.path.join(output.bldpath(obj.env), obj.target) -+ self.max_label_length = max(self.max_label_length, len(label)) -+ self.unit_tests[label] = (filename, srcdir) -+ except KeyError: -+ pass -+ self.total_num_tests = len(self.unit_tests) -+ # Now run the unit tests -+ Utils.pprint('GREEN', 'Running the unit tests') -+ count = 0 -+ result = 1 -+ -+ for label in self.unit_tests.allkeys: -+ file_and_src = self.unit_tests[label] -+ filename = file_and_src[0] -+ srcdir = file_and_src[1] -+ count += 1 -+ line = Build.bld.progress_line(count, self.total_num_tests, Logs.colors.GREEN, Logs.colors.NORMAL) -+ if Options.options.progress_bar and line: -+ sys.stderr.write(line) -+ sys.stderr.flush() -+ try: -+ kwargs = {} -+ kwargs['env'] = os.environ.copy() -+ if self.change_to_testfile_dir: -+ kwargs['cwd'] = srcdir -+ if not self.want_to_see_test_output: -+ kwargs['stdout'] = Utils.pproc.PIPE # PIPE for ignoring output -+ if not self.want_to_see_test_error: -+ kwargs['stderr'] = Utils.pproc.PIPE # PIPE for ignoring output -+ if ld_library_path: -+ v = kwargs['env'] -+ def add_path(dct, path, var): -+ dct[var] = os.pathsep.join(Utils.to_list(path) + [os.environ.get(var, '')]) -+ if sys.platform == 'win32': -+ add_path(v, ld_library_path, 'PATH') -+ elif sys.platform == 'darwin': -+ add_path(v, ld_library_path, 'DYLD_LIBRARY_PATH') -+ add_path(v, ld_library_path, 'LD_LIBRARY_PATH') -+ else: -+ add_path(v, ld_library_path, 'LD_LIBRARY_PATH') -+ -+ pp = Utils.pproc.Popen(filename, **kwargs) -+ (out, err) = pp.communicate() # uh, and the output is ignored?? - fortunately this is going to disappear -+ -+ result = int(pp.returncode == self.returncode_ok) -+ -+ if result: -+ self.num_tests_ok += 1 -+ else: -+ self.num_tests_failed += 1 -+ -+ self.unit_test_results[label] = result -+ self.unit_test_erroneous[label] = 0 -+ except OSError: -+ self.unit_test_erroneous[label] = 1 -+ self.num_tests_err += 1 -+ except KeyboardInterrupt: -+ pass -+ if Options.options.progress_bar: sys.stdout.write(Logs.colors.cursor_on) -+ -+ def print_results(self): -+ "Pretty-prints a summary of all unit tests, along with some statistics" -+ -+ # If waf is not building, don't output anything -+ if not Options.commands[self.run_if_waf_does]: return -+ -+ p = Utils.pprint -+ # Early quit if no tests were performed -+ if self.total_num_tests == 0: -+ p('YELLOW', 'No unit tests present') -+ return -+ -+ for label in self.unit_tests.allkeys: -+ filename = self.unit_tests[label] -+ err = 0 -+ result = 0 -+ -+ try: err = self.unit_test_erroneous[label] -+ except KeyError: pass -+ -+ try: result = self.unit_test_results[label] -+ except KeyError: pass -+ -+ n = self.max_label_length - len(label) -+ if err: n += 4 -+ elif result: n += 7 -+ else: n += 3 -+ -+ line = '%s %s' % (label, '.' * n) -+ -+ if err: p('RED', '%sERROR' % line) -+ elif result: p('GREEN', '%sOK' % line) -+ else: p('YELLOW', '%sFAILED' % line) -+ -+ percentage_ok = float(self.num_tests_ok) / float(self.total_num_tests) * 100.0 -+ percentage_failed = float(self.num_tests_failed) / float(self.total_num_tests) * 100.0 -+ percentage_erroneous = float(self.num_tests_err) / float(self.total_num_tests) * 100.0 -+ -+ p('NORMAL', ''' -+Successful tests: %i (%.1f%%) -+Failed tests: %i (%.1f%%) -+Erroneous tests: %i (%.1f%%) -+ -+Total number of tests: %i -+''' % (self.num_tests_ok, percentage_ok, self.num_tests_failed, percentage_failed, -+ self.num_tests_err, percentage_erroneous, self.total_num_tests)) -+ p('GREEN', 'Unit tests finished') -+ -+ -+############################################################################################ -+ -+""" -+New unit test system -+ -+The targets with feature 'test' are executed after they are built -+bld(features='cprogram cc test', ...) -+ -+To display the results: -+import UnitTest -+bld.add_post_fun(UnitTest.summary) -+""" -+ -+import threading -+testlock = threading.Lock() -+ -+def set_options(opt): -+ opt.add_option('--alltests', action='store_true', default=True, help='Exec all unit tests', dest='all_tests') -+ -+@feature('test') -+@after('apply_link', 'vars_target_cprogram') -+def make_test(self): -+ if not 'cprogram' in self.features: -+ Logs.error('test cannot be executed %s' % self) -+ return -+ -+ self.default_install_path = None -+ self.create_task('utest', self.link_task.outputs) -+ -+def exec_test(self): -+ -+ status = 0 -+ -+ variant = self.env.variant() -+ -+ filename = self.inputs[0].abspath(self.env) -+ self.ut_exec = getattr(self, 'ut_exec', [filename]) -+ if getattr(self.generator, 'ut_fun', None): -+ self.generator.ut_fun(self) -+ -+ try: -+ fu = getattr(self.generator.bld, 'all_test_paths') -+ except AttributeError: -+ fu = os.environ.copy() -+ self.generator.bld.all_test_paths = fu -+ -+ lst = [] -+ for obj in self.generator.bld.all_task_gen: -+ link_task = getattr(obj, 'link_task', None) -+ if link_task and link_task.env.variant() == variant: -+ lst.append(link_task.outputs[0].parent.abspath(obj.env)) -+ -+ def add_path(dct, path, var): -+ dct[var] = os.pathsep.join(Utils.to_list(path) + [os.environ.get(var, '')]) -+ -+ if sys.platform == 'win32': -+ add_path(fu, lst, 'PATH') -+ elif sys.platform == 'darwin': -+ add_path(fu, lst, 'DYLD_LIBRARY_PATH') -+ add_path(fu, lst, 'LD_LIBRARY_PATH') -+ else: -+ add_path(fu, lst, 'LD_LIBRARY_PATH') -+ -+ -+ cwd = getattr(self.generator, 'ut_cwd', '') or self.inputs[0].parent.abspath(self.env) -+ proc = Utils.pproc.Popen(self.ut_exec, cwd=cwd, env=fu, stderr=Utils.pproc.PIPE, stdout=Utils.pproc.PIPE) -+ (stdout, stderr) = proc.communicate() -+ -+ tup = (filename, proc.returncode, stdout, stderr) -+ self.generator.utest_result = tup -+ -+ testlock.acquire() -+ try: -+ bld = self.generator.bld -+ Logs.debug("ut: %r", tup) -+ try: -+ bld.utest_results.append(tup) -+ except AttributeError: -+ bld.utest_results = [tup] -+ finally: -+ testlock.release() -+ -+cls = Task.task_type_from_func('utest', func=exec_test, color='PINK', ext_in='.bin') -+ -+old = cls.runnable_status -+def test_status(self): -+ ret = old(self) -+ if ret == SKIP_ME and getattr(Options.options, 'all_tests', False): -+ return RUN_ME -+ return ret -+ -+cls.runnable_status = test_status -+cls.quiet = 1 -+ -+def summary(bld): -+ lst = getattr(bld, 'utest_results', []) -+ if lst: -+ Utils.pprint('CYAN', 'execution summary') -+ -+ total = len(lst) -+ tfail = len([x for x in lst if x[1]]) -+ -+ Utils.pprint('CYAN', ' tests that pass %d/%d' % (total-tfail, total)) -+ for (f, code, out, err) in lst: -+ if not code: -+ Utils.pprint('CYAN', ' %s' % f) -+ -+ Utils.pprint('CYAN', ' tests that fail %d/%d' % (tfail, total)) -+ for (f, code, out, err) in lst: -+ if code: -+ Utils.pprint('CYAN', ' %s' % f) -+ -+ -diff --git a/buildtools/wafadmin/Tools/vala.py b/buildtools/wafadmin/Tools/vala.py -new file mode 100644 -index 0000000..753ee8d ---- /dev/null -+++ b/buildtools/wafadmin/Tools/vala.py -@@ -0,0 +1,308 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Ali Sabil, 2007 -+ -+import os.path, shutil -+import Task, Runner, Utils, Logs, Build, Node, Options -+from TaskGen import extension, after, before -+ -+EXT_VALA = ['.vala', '.gs'] -+ -+class valac_task(Task.Task): -+ -+ vars = ("VALAC", "VALAC_VERSION", "VALAFLAGS") -+ before = ("cc", "cxx") -+ -+ def run(self): -+ env = self.env -+ inputs = [a.srcpath(env) for a in self.inputs] -+ valac = env['VALAC'] -+ vala_flags = env.get_flat('VALAFLAGS') -+ top_src = self.generator.bld.srcnode.abspath() -+ top_bld = self.generator.bld.srcnode.abspath(env) -+ -+ if env['VALAC_VERSION'] > (0, 1, 6): -+ cmd = [valac, '-C', '--quiet', vala_flags] -+ else: -+ cmd = [valac, '-C', vala_flags] -+ -+ if self.threading: -+ cmd.append('--thread') -+ -+ if self.profile: -+ cmd.append('--profile=%s' % self.profile) -+ -+ if self.target_glib: -+ cmd.append('--target-glib=%s' % self.target_glib) -+ -+ features = self.generator.features -+ -+ if 'cshlib' in features or 'cstaticlib' in features: -+ output_dir = self.outputs[0].bld_dir(env) -+ cmd.append('--library ' + self.target) -+ if env['VALAC_VERSION'] >= (0, 7, 0): -+ for x in self.outputs: -+ if x.name.endswith('.h'): -+ cmd.append('--header ' + x.bldpath(self.env)) -+ cmd.append('--basedir ' + top_src) -+ cmd.append('-d ' + top_bld) -+ if env['VALAC_VERSION'] > (0, 7, 2) and hasattr(self, 'gir'): -+ cmd.append('--gir=%s.gir' % self.gir) -+ -+ else: -+ output_dir = self.outputs[0].bld_dir(env) -+ cmd.append('-d %s' % output_dir) -+ -+ for vapi_dir in self.vapi_dirs: -+ cmd.append('--vapidir=%s' % vapi_dir) -+ -+ for package in self.packages: -+ cmd.append('--pkg %s' % package) -+ -+ for package in self.packages_private: -+ cmd.append('--pkg %s' % package) -+ -+ cmd.append(" ".join(inputs)) -+ result = self.generator.bld.exec_command(" ".join(cmd)) -+ -+ if not 'cprogram' in features: -+ # generate the .deps file -+ if self.packages: -+ filename = os.path.join(self.generator.path.abspath(env), "%s.deps" % self.target) -+ deps = open(filename, 'w') -+ for package in self.packages: -+ deps.write(package + '\n') -+ deps.close() -+ -+ # handle vala 0.1.6 who doesn't honor --directory for the generated .vapi -+ self._fix_output("../%s.vapi" % self.target) -+ # handle vala >= 0.1.7 who has a weid definition for --directory -+ self._fix_output("%s.vapi" % self.target) -+ # handle vala >= 0.2.0 who doesn't honor --directory for the generated .gidl -+ self._fix_output("%s.gidl" % self.target) -+ # handle vala >= 0.3.6 who doesn't honor --directory for the generated .gir -+ self._fix_output("%s.gir" % self.target) -+ if hasattr(self, 'gir'): -+ self._fix_output("%s.gir" % self.gir) -+ -+ first = None -+ for node in self.outputs: -+ if not first: -+ first = node -+ else: -+ if first.parent.id != node.parent.id: -+ # issue #483 -+ if env['VALAC_VERSION'] < (0, 7, 0): -+ shutil.move(first.parent.abspath(self.env) + os.sep + node.name, node.abspath(self.env)) -+ return result -+ -+ def install(self): -+ bld = self.generator.bld -+ features = self.generator.features -+ -+ if self.attr("install_path") and ("cshlib" in features or "cstaticlib" in features): -+ headers_list = [o for o in self.outputs if o.suffix() == ".h"] -+ vapi_list = [o for o in self.outputs if (o.suffix() in (".vapi", ".deps"))] -+ gir_list = [o for o in self.outputs if o.suffix() == ".gir"] -+ -+ for header in headers_list: -+ top_src = self.generator.bld.srcnode -+ package = self.env['PACKAGE'] -+ try: -+ api_version = Utils.g_module.API_VERSION -+ except AttributeError: -+ version = Utils.g_module.VERSION.split(".") -+ if version[0] == "0": -+ api_version = "0." + version[1] -+ else: -+ api_version = version[0] + ".0" -+ install_path = '${INCLUDEDIR}/%s-%s/%s' % (package, api_version, header.relpath_gen(top_src)) -+ bld.install_as(install_path, header, self.env) -+ bld.install_files('${DATAROOTDIR}/vala/vapi', vapi_list, self.env) -+ bld.install_files('${DATAROOTDIR}/gir-1.0', gir_list, self.env) -+ -+ def _fix_output(self, output): -+ top_bld = self.generator.bld.srcnode.abspath(self.env) -+ try: -+ src = os.path.join(top_bld, output) -+ dst = self.generator.path.abspath (self.env) -+ shutil.move(src, dst) -+ except: -+ pass -+ -+@extension(EXT_VALA) -+def vala_file(self, node): -+ valatask = getattr(self, "valatask", None) -+ # there is only one vala task and it compiles all vala files .. :-/ -+ if not valatask: -+ valatask = self.create_task('valac') -+ self.valatask = valatask -+ self.includes = Utils.to_list(getattr(self, 'includes', [])) -+ self.uselib = self.to_list(self.uselib) -+ valatask.packages = [] -+ valatask.packages_private = Utils.to_list(getattr(self, 'packages_private', [])) -+ valatask.vapi_dirs = [] -+ valatask.target = self.target -+ valatask.threading = False -+ valatask.install_path = self.install_path -+ valatask.profile = getattr (self, 'profile', 'gobject') -+ valatask.target_glib = None #Deprecated -+ -+ packages = Utils.to_list(getattr(self, 'packages', [])) -+ vapi_dirs = Utils.to_list(getattr(self, 'vapi_dirs', [])) -+ includes = [] -+ -+ if hasattr(self, 'uselib_local'): -+ local_packages = Utils.to_list(self.uselib_local) -+ seen = [] -+ while len(local_packages) > 0: -+ package = local_packages.pop() -+ if package in seen: -+ continue -+ seen.append(package) -+ -+ # check if the package exists -+ package_obj = self.name_to_obj(package) -+ if not package_obj: -+ raise Utils.WafError("object '%s' was not found in uselib_local (required by '%s')" % (package, self.name)) -+ -+ package_name = package_obj.target -+ package_node = package_obj.path -+ package_dir = package_node.relpath_gen(self.path) -+ -+ for task in package_obj.tasks: -+ for output in task.outputs: -+ if output.name == package_name + ".vapi": -+ valatask.set_run_after(task) -+ if package_name not in packages: -+ packages.append(package_name) -+ if package_dir not in vapi_dirs: -+ vapi_dirs.append(package_dir) -+ if package_dir not in includes: -+ includes.append(package_dir) -+ -+ if hasattr(package_obj, 'uselib_local'): -+ lst = self.to_list(package_obj.uselib_local) -+ lst.reverse() -+ local_packages = [pkg for pkg in lst if pkg not in seen] + local_packages -+ -+ valatask.packages = packages -+ for vapi_dir in vapi_dirs: -+ try: -+ valatask.vapi_dirs.append(self.path.find_dir(vapi_dir).abspath()) -+ valatask.vapi_dirs.append(self.path.find_dir(vapi_dir).abspath(self.env)) -+ except AttributeError: -+ Logs.warn("Unable to locate Vala API directory: '%s'" % vapi_dir) -+ -+ self.includes.append(node.bld.srcnode.abspath()) -+ self.includes.append(node.bld.srcnode.abspath(self.env)) -+ for include in includes: -+ try: -+ self.includes.append(self.path.find_dir(include).abspath()) -+ self.includes.append(self.path.find_dir(include).abspath(self.env)) -+ except AttributeError: -+ Logs.warn("Unable to locate include directory: '%s'" % include) -+ -+ if valatask.profile == 'gobject': -+ if hasattr(self, 'target_glib'): -+ Logs.warn ('target_glib on vala tasks is deprecated --vala-target-glib=MAJOR.MINOR from the vala tool options') -+ -+ if getattr(Options.options, 'vala_target_glib', None): -+ valatask.target_glib = Options.options.vala_target_glib -+ -+ if not 'GOBJECT' in self.uselib: -+ self.uselib.append('GOBJECT') -+ -+ if hasattr(self, 'threading'): -+ if valatask.profile == 'gobject': -+ valatask.threading = self.threading -+ if not 'GTHREAD' in self.uselib: -+ self.uselib.append('GTHREAD') -+ else: -+ #Vala doesn't have threading support for dova nor posix -+ Logs.warn("Profile %s does not have threading support" % valatask.profile) -+ -+ if hasattr(self, 'gir'): -+ valatask.gir = self.gir -+ -+ env = valatask.env -+ -+ output_nodes = [] -+ -+ c_node = node.change_ext('.c') -+ output_nodes.append(c_node) -+ self.allnodes.append(c_node) -+ -+ if env['VALAC_VERSION'] < (0, 7, 0): -+ output_nodes.append(node.change_ext('.h')) -+ else: -+ if not 'cprogram' in self.features: -+ output_nodes.append(self.path.find_or_declare('%s.h' % self.target)) -+ -+ if not 'cprogram' in self.features: -+ output_nodes.append(self.path.find_or_declare('%s.vapi' % self.target)) -+ if env['VALAC_VERSION'] > (0, 7, 2): -+ if hasattr(self, 'gir'): -+ output_nodes.append(self.path.find_or_declare('%s.gir' % self.gir)) -+ elif env['VALAC_VERSION'] > (0, 3, 5): -+ output_nodes.append(self.path.find_or_declare('%s.gir' % self.target)) -+ elif env['VALAC_VERSION'] > (0, 1, 7): -+ output_nodes.append(self.path.find_or_declare('%s.gidl' % self.target)) -+ if valatask.packages: -+ output_nodes.append(self.path.find_or_declare('%s.deps' % self.target)) -+ -+ valatask.inputs.append(node) -+ valatask.outputs.extend(output_nodes) -+ -+def detect(conf): -+ min_version = (0, 1, 6) -+ min_version_str = "%d.%d.%d" % min_version -+ -+ valac = conf.find_program('valac', var='VALAC', mandatory=True) -+ -+ if not conf.env["HAVE_GOBJECT"]: -+ pkg_args = {'package': 'gobject-2.0', -+ 'uselib_store': 'GOBJECT', -+ 'args': '--cflags --libs'} -+ if getattr(Options.options, 'vala_target_glib', None): -+ pkg_args['atleast_version'] = Options.options.vala_target_glib -+ -+ conf.check_cfg(**pkg_args) -+ -+ if not conf.env["HAVE_GTHREAD"]: -+ pkg_args = {'package': 'gthread-2.0', -+ 'uselib_store': 'GTHREAD', -+ 'args': '--cflags --libs'} -+ if getattr(Options.options, 'vala_target_glib', None): -+ pkg_args['atleast_version'] = Options.options.vala_target_glib -+ -+ conf.check_cfg(**pkg_args) -+ -+ try: -+ output = Utils.cmd_output(valac + " --version", silent=True) -+ version = output.split(' ', 1)[-1].strip().split(".")[0:3] -+ version = [int(x) for x in version] -+ valac_version = tuple(version) -+ except Exception: -+ valac_version = (0, 0, 0) -+ -+ conf.check_message('program version', -+ 'valac >= ' + min_version_str, -+ valac_version >= min_version, -+ "%d.%d.%d" % valac_version) -+ -+ conf.check_tool('gnu_dirs') -+ -+ if valac_version < min_version: -+ conf.fatal("valac version too old to be used with this tool") -+ return -+ -+ conf.env['VALAC_VERSION'] = valac_version -+ conf.env['VALAFLAGS'] = '' -+ -+def set_options (opt): -+ valaopts = opt.add_option_group('Vala Compiler Options') -+ valaopts.add_option ('--vala-target-glib', default=None, -+ dest='vala_target_glib', metavar='MAJOR.MINOR', -+ help='Target version of glib for Vala GObject code generation') -+ -diff --git a/buildtools/wafadmin/Tools/winres.py b/buildtools/wafadmin/Tools/winres.py -new file mode 100644 -index 0000000..2500d43 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/winres.py -@@ -0,0 +1,45 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Brant Young, 2007 -+ -+"This hook is called when the class cpp/cc task generator encounters a '.rc' file: X{.rc -> [.res|.rc.o]}" -+ -+import os, sys, re -+import TaskGen, Task -+from Utils import quote_whitespace -+from TaskGen import extension -+ -+EXT_WINRC = ['.rc'] -+ -+winrc_str = '${WINRC} ${_CPPDEFFLAGS} ${_CCDEFFLAGS} ${WINRCFLAGS} ${_CPPINCFLAGS} ${_CCINCFLAGS} ${WINRC_TGT_F} ${TGT} ${WINRC_SRC_F} ${SRC}' -+ -+@extension(EXT_WINRC) -+def rc_file(self, node): -+ obj_ext = '.rc.o' -+ if self.env['WINRC_TGT_F'] == '/fo': obj_ext = '.res' -+ -+ rctask = self.create_task('winrc', node, node.change_ext(obj_ext)) -+ self.compiled_tasks.append(rctask) -+ -+# create our action, for use with rc file -+Task.simple_task_type('winrc', winrc_str, color='BLUE', before='cc cxx', shell=False) -+ -+def detect(conf): -+ v = conf.env -+ -+ winrc = v['WINRC'] -+ v['WINRC_TGT_F'] = '-o' -+ v['WINRC_SRC_F'] = '-i' -+ # find rc.exe -+ if not winrc: -+ if v['CC_NAME'] in ['gcc', 'cc', 'g++', 'c++']: -+ winrc = conf.find_program('windres', var='WINRC', path_list = v['PATH']) -+ elif v['CC_NAME'] == 'msvc': -+ winrc = conf.find_program('RC', var='WINRC', path_list = v['PATH']) -+ v['WINRC_TGT_F'] = '/fo' -+ v['WINRC_SRC_F'] = '' -+ if not winrc: -+ conf.fatal('winrc was not found!') -+ -+ v['WINRCFLAGS'] = '' -+ -diff --git a/buildtools/wafadmin/Tools/xlc.py b/buildtools/wafadmin/Tools/xlc.py -new file mode 100644 -index 0000000..e33b7a1 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/xlc.py -@@ -0,0 +1,78 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006-2008 (ita) -+# Ralf Habacker, 2006 (rh) -+# Yinon Ehrlich, 2009 -+# Michael Kuhn, 2009 -+ -+import os, sys -+import Configure, Options, Utils -+import ccroot, ar -+from Configure import conftest -+ -+@conftest -+def find_xlc(conf): -+ cc = conf.find_program(['xlc_r', 'xlc'], var='CC', mandatory=True) -+ cc = conf.cmd_to_list(cc) -+ conf.env.CC_NAME = 'xlc' -+ conf.env.CC = cc -+ -+@conftest -+def find_cpp(conf): -+ v = conf.env -+ cpp = None -+ if v['CPP']: cpp = v['CPP'] -+ elif 'CPP' in conf.environ: cpp = conf.environ['CPP'] -+ #if not cpp: cpp = v['CC'] -+ v['CPP'] = cpp -+ -+@conftest -+def xlc_common_flags(conf): -+ v = conf.env -+ -+ # CPPFLAGS CCDEFINES _CCINCFLAGS _CCDEFFLAGS -+ v['CCFLAGS_DEBUG'] = ['-g'] -+ v['CCFLAGS_RELEASE'] = ['-O2'] -+ -+ v['CC_SRC_F'] = '' -+ v['CC_TGT_F'] = ['-c', '-o', ''] # shell hack for -MD -+ v['CPPPATH_ST'] = '-I%s' # template for adding include paths -+ -+ # linker -+ if not v['LINK_CC']: v['LINK_CC'] = v['CC'] -+ v['CCLNK_SRC_F'] = '' -+ v['CCLNK_TGT_F'] = ['-o', ''] # shell hack for -MD -+ -+ v['LIB_ST'] = '-l%s' # template for adding libs -+ v['LIBPATH_ST'] = '-L%s' # template for adding libpaths -+ v['STATICLIB_ST'] = '-l%s' -+ v['STATICLIBPATH_ST'] = '-L%s' -+ v['RPATH_ST'] = '-Wl,-rpath,%s' -+ v['CCDEFINES_ST'] = '-D%s' -+ -+ v['SONAME_ST'] = '' -+ v['SHLIB_MARKER'] = '' -+ v['STATICLIB_MARKER'] = '' -+ v['FULLSTATIC_MARKER'] = '-static' -+ -+ # program -+ v['program_LINKFLAGS'] = ['-Wl,-brtl'] -+ v['program_PATTERN'] = '%s' -+ -+ # shared library -+ v['shlib_CCFLAGS'] = ['-fPIC', '-DPIC'] # avoid using -DPIC, -fPIC aleady defines the __PIC__ macro -+ v['shlib_LINKFLAGS'] = ['-G', '-Wl,-brtl,-bexpfull'] -+ v['shlib_PATTERN'] = 'lib%s.so' -+ -+ # static lib -+ v['staticlib_LINKFLAGS'] = '' -+ v['staticlib_PATTERN'] = 'lib%s.a' -+ -+def detect(conf): -+ conf.find_xlc() -+ conf.find_cpp() -+ conf.find_ar() -+ conf.xlc_common_flags() -+ conf.cc_load_tools() -+ conf.cc_add_flags() -+ conf.link_add_flags() -diff --git a/buildtools/wafadmin/Tools/xlcxx.py b/buildtools/wafadmin/Tools/xlcxx.py -new file mode 100644 -index 0000000..6e84662 ---- /dev/null -+++ b/buildtools/wafadmin/Tools/xlcxx.py -@@ -0,0 +1,78 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2006 (ita) -+# Ralf Habacker, 2006 (rh) -+# Yinon Ehrlich, 2009 -+# Michael Kuhn, 2009 -+ -+import os, sys -+import Configure, Options, Utils -+import ccroot, ar -+from Configure import conftest -+ -+@conftest -+def find_xlcxx(conf): -+ cxx = conf.find_program(['xlc++_r', 'xlc++'], var='CXX', mandatory=True) -+ cxx = conf.cmd_to_list(cxx) -+ conf.env.CXX_NAME = 'xlc++' -+ conf.env.CXX = cxx -+ -+@conftest -+def find_cpp(conf): -+ v = conf.env -+ cpp = None -+ if v['CPP']: cpp = v['CPP'] -+ elif 'CPP' in conf.environ: cpp = conf.environ['CPP'] -+ #if not cpp: cpp = v['CXX'] -+ v['CPP'] = cpp -+ -+@conftest -+def xlcxx_common_flags(conf): -+ v = conf.env -+ -+ # CPPFLAGS CXXDEFINES _CXXINCFLAGS _CXXDEFFLAGS -+ v['CXXFLAGS_DEBUG'] = ['-g'] -+ v['CXXFLAGS_RELEASE'] = ['-O2'] -+ -+ v['CXX_SRC_F'] = '' -+ v['CXX_TGT_F'] = ['-c', '-o', ''] # shell hack for -MD -+ v['CPPPATH_ST'] = '-I%s' # template for adding include paths -+ -+ # linker -+ if not v['LINK_CXX']: v['LINK_CXX'] = v['CXX'] -+ v['CXXLNK_SRC_F'] = '' -+ v['CXXLNK_TGT_F'] = ['-o', ''] # shell hack for -MD -+ -+ v['LIB_ST'] = '-l%s' # template for adding libs -+ v['LIBPATH_ST'] = '-L%s' # template for adding libpaths -+ v['STATICLIB_ST'] = '-l%s' -+ v['STATICLIBPATH_ST'] = '-L%s' -+ v['RPATH_ST'] = '-Wl,-rpath,%s' -+ v['CXXDEFINES_ST'] = '-D%s' -+ -+ v['SONAME_ST'] = '' -+ v['SHLIB_MARKER'] = '' -+ v['STATICLIB_MARKER'] = '' -+ v['FULLSTATIC_MARKER'] = '-static' -+ -+ # program -+ v['program_LINKFLAGS'] = ['-Wl,-brtl'] -+ v['program_PATTERN'] = '%s' -+ -+ # shared library -+ v['shlib_CXXFLAGS'] = ['-fPIC', '-DPIC'] # avoid using -DPIC, -fPIC aleady defines the __PIC__ macro -+ v['shlib_LINKFLAGS'] = ['-G', '-Wl,-brtl,-bexpfull'] -+ v['shlib_PATTERN'] = 'lib%s.so' -+ -+ # static lib -+ v['staticlib_LINKFLAGS'] = '' -+ v['staticlib_PATTERN'] = 'lib%s.a' -+ -+def detect(conf): -+ conf.find_xlcxx() -+ conf.find_cpp() -+ conf.find_ar() -+ conf.xlcxx_common_flags() -+ conf.cxx_load_tools() -+ conf.cxx_add_flags() -+ conf.link_add_flags() -diff --git a/buildtools/wafadmin/Utils.py b/buildtools/wafadmin/Utils.py -new file mode 100644 -index 0000000..41dad57 ---- /dev/null -+++ b/buildtools/wafadmin/Utils.py -@@ -0,0 +1,726 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005 (ita) -+ -+""" -+Utilities, the stable ones are the following: -+ -+* h_file: compute a unique value for a file (hash), it uses -+ the module fnv if it is installed (see waf/utils/fnv & http://code.google.com/p/waf/wiki/FAQ) -+ else, md5 (see the python docs) -+ -+ For large projects (projects with more than 15000 files) or slow hard disks and filesystems (HFS) -+ it is possible to use a hashing based on the path and the size (may give broken cache results) -+ The method h_file MUST raise an OSError if the file is a folder -+ -+ import stat -+ def h_file(filename): -+ st = os.stat(filename) -+ if stat.S_ISDIR(st[stat.ST_MODE]): raise IOError('not a file') -+ m = Utils.md5() -+ m.update(str(st.st_mtime)) -+ m.update(str(st.st_size)) -+ m.update(filename) -+ return m.digest() -+ -+ To replace the function in your project, use something like this: -+ import Utils -+ Utils.h_file = h_file -+ -+* h_list -+* h_fun -+* get_term_cols -+* ordered_dict -+ -+""" -+ -+import os, sys, imp, string, errno, traceback, inspect, re, shutil, datetime, gc -+ -+# In python 3.0 we can get rid of all this -+try: from UserDict import UserDict -+except ImportError: from collections import UserDict -+if sys.hexversion >= 0x2060000 or os.name == 'java': -+ import subprocess as pproc -+else: -+ import pproc -+import Logs -+from Constants import * -+ -+try: -+ from collections import deque -+except ImportError: -+ class deque(list): -+ def popleft(self): -+ return self.pop(0) -+ -+is_win32 = sys.platform == 'win32' -+ -+try: -+ # defaultdict in python 2.5 -+ from collections import defaultdict as DefaultDict -+except ImportError: -+ class DefaultDict(dict): -+ def __init__(self, default_factory): -+ super(DefaultDict, self).__init__() -+ self.default_factory = default_factory -+ def __getitem__(self, key): -+ try: -+ return super(DefaultDict, self).__getitem__(key) -+ except KeyError: -+ value = self.default_factory() -+ self[key] = value -+ return value -+ -+class WafError(Exception): -+ def __init__(self, *args): -+ self.args = args -+ try: -+ self.stack = traceback.extract_stack() -+ except: -+ pass -+ Exception.__init__(self, *args) -+ def __str__(self): -+ return str(len(self.args) == 1 and self.args[0] or self.args) -+ -+class WscriptError(WafError): -+ def __init__(self, message, wscript_file=None): -+ if wscript_file: -+ self.wscript_file = wscript_file -+ self.wscript_line = None -+ else: -+ try: -+ (self.wscript_file, self.wscript_line) = self.locate_error() -+ except: -+ (self.wscript_file, self.wscript_line) = (None, None) -+ -+ msg_file_line = '' -+ if self.wscript_file: -+ msg_file_line = "%s:" % self.wscript_file -+ if self.wscript_line: -+ msg_file_line += "%s:" % self.wscript_line -+ err_message = "%s error: %s" % (msg_file_line, message) -+ WafError.__init__(self, err_message) -+ -+ def locate_error(self): -+ stack = traceback.extract_stack() -+ stack.reverse() -+ for frame in stack: -+ file_name = os.path.basename(frame[0]) -+ is_wscript = (file_name == WSCRIPT_FILE or file_name == WSCRIPT_BUILD_FILE) -+ if is_wscript: -+ return (frame[0], frame[1]) -+ return (None, None) -+ -+indicator = is_win32 and '\x1b[A\x1b[K%s%s%s\r' or '\x1b[K%s%s%s\r' -+ -+try: -+ from fnv import new as md5 -+ import Constants -+ Constants.SIG_NIL = 'signofnv' -+ -+ def h_file(filename): -+ m = md5() -+ try: -+ m.hfile(filename) -+ x = m.digest() -+ if x is None: raise OSError("not a file") -+ return x -+ except SystemError: -+ raise OSError("not a file" + filename) -+ -+except ImportError: -+ try: -+ try: -+ from hashlib import md5 -+ except ImportError: -+ from md5 import md5 -+ -+ def h_file(filename): -+ f = open(filename, 'rb') -+ m = md5() -+ while (filename): -+ filename = f.read(100000) -+ m.update(filename) -+ f.close() -+ return m.digest() -+ except ImportError: -+ # portability fixes may be added elsewhere (although, md5 should be everywhere by now) -+ md5 = None -+ -+class ordered_dict(UserDict): -+ def __init__(self, dict = None): -+ self.allkeys = [] -+ UserDict.__init__(self, dict) -+ -+ def __delitem__(self, key): -+ self.allkeys.remove(key) -+ UserDict.__delitem__(self, key) -+ -+ def __setitem__(self, key, item): -+ if key not in self.allkeys: self.allkeys.append(key) -+ UserDict.__setitem__(self, key, item) -+ -+def exec_command(s, **kw): -+ if 'log' in kw: -+ kw['stdout'] = kw['stderr'] = kw['log'] -+ del(kw['log']) -+ kw['shell'] = isinstance(s, str) -+ -+ try: -+ proc = pproc.Popen(s, **kw) -+ return proc.wait() -+ except OSError: -+ return -1 -+ -+if is_win32: -+ def exec_command(s, **kw): -+ if 'log' in kw: -+ kw['stdout'] = kw['stderr'] = kw['log'] -+ del(kw['log']) -+ kw['shell'] = isinstance(s, str) -+ -+ if len(s) > 2000: -+ startupinfo = pproc.STARTUPINFO() -+ startupinfo.dwFlags |= pproc.STARTF_USESHOWWINDOW -+ kw['startupinfo'] = startupinfo -+ -+ try: -+ if 'stdout' not in kw: -+ kw['stdout'] = pproc.PIPE -+ kw['stderr'] = pproc.PIPE -+ kw['universal_newlines'] = True -+ proc = pproc.Popen(s,**kw) -+ (stdout, stderr) = proc.communicate() -+ Logs.info(stdout) -+ if stderr: -+ Logs.error(stderr) -+ return proc.returncode -+ else: -+ proc = pproc.Popen(s,**kw) -+ return proc.wait() -+ except OSError: -+ return -1 -+ -+listdir = os.listdir -+if is_win32: -+ def listdir_win32(s): -+ if re.match('^[A-Za-z]:$', s): -+ # os.path.isdir fails if s contains only the drive name... (x:) -+ s += os.sep -+ if not os.path.isdir(s): -+ e = OSError() -+ e.errno = errno.ENOENT -+ raise e -+ return os.listdir(s) -+ listdir = listdir_win32 -+ -+def waf_version(mini = 0x010000, maxi = 0x100000): -+ "Halts if the waf version is wrong" -+ ver = HEXVERSION -+ try: min_val = mini + 0 -+ except TypeError: min_val = int(mini.replace('.', '0'), 16) -+ -+ if min_val > ver: -+ Logs.error("waf version should be at least %s (%s found)" % (mini, ver)) -+ sys.exit(1) -+ -+ try: max_val = maxi + 0 -+ except TypeError: max_val = int(maxi.replace('.', '0'), 16) -+ -+ if max_val < ver: -+ Logs.error("waf version should be at most %s (%s found)" % (maxi, ver)) -+ sys.exit(1) -+ -+def python_24_guard(): -+ if sys.hexversion < 0x20400f0 or sys.hexversion >= 0x3000000: -+ raise ImportError("Waf requires Python >= 2.3 but the raw source requires Python 2.4, 2.5 or 2.6") -+ -+def ex_stack(): -+ exc_type, exc_value, tb = sys.exc_info() -+ if Logs.verbose > 1: -+ exc_lines = traceback.format_exception(exc_type, exc_value, tb) -+ return ''.join(exc_lines) -+ return str(exc_value) -+ -+def to_list(sth): -+ if isinstance(sth, str): -+ return sth.split() -+ else: -+ return sth -+ -+g_loaded_modules = {} -+"index modules by absolute path" -+ -+g_module=None -+"the main module is special" -+ -+def load_module(file_path, name=WSCRIPT_FILE): -+ "this function requires an absolute path" -+ try: -+ return g_loaded_modules[file_path] -+ except KeyError: -+ pass -+ -+ module = imp.new_module(name) -+ -+ try: -+ code = readf(file_path, m='rU') -+ except (IOError, OSError): -+ raise WscriptError('Could not read the file %r' % file_path) -+ -+ module.waf_hash_val = code -+ -+ dt = os.path.dirname(file_path) -+ sys.path.insert(0, dt) -+ try: -+ exec(compile(code, file_path, 'exec'), module.__dict__) -+ except Exception: -+ exc_type, exc_value, tb = sys.exc_info() -+ raise WscriptError("".join(traceback.format_exception(exc_type, exc_value, tb)), file_path) -+ sys.path.remove(dt) -+ -+ g_loaded_modules[file_path] = module -+ -+ return module -+ -+def set_main_module(file_path): -+ "Load custom options, if defined" -+ global g_module -+ g_module = load_module(file_path, 'wscript_main') -+ g_module.root_path = file_path -+ -+ try: -+ g_module.APPNAME -+ except: -+ g_module.APPNAME = 'noname' -+ try: -+ g_module.VERSION -+ except: -+ g_module.VERSION = '1.0' -+ -+ # note: to register the module globally, use the following: -+ # sys.modules['wscript_main'] = g_module -+ -+def to_hashtable(s): -+ "used for importing env files" -+ tbl = {} -+ lst = s.split('\n') -+ for line in lst: -+ if not line: continue -+ mems = line.split('=') -+ tbl[mems[0]] = mems[1] -+ return tbl -+ -+def get_term_cols(): -+ "console width" -+ return 80 -+try: -+ import struct, fcntl, termios -+except ImportError: -+ pass -+else: -+ if Logs.got_tty: -+ def myfun(): -+ dummy_lines, cols = struct.unpack("HHHH", \ -+ fcntl.ioctl(sys.stderr.fileno(),termios.TIOCGWINSZ , \ -+ struct.pack("HHHH", 0, 0, 0, 0)))[:2] -+ return cols -+ # we actually try the function once to see if it is suitable -+ try: -+ myfun() -+ except: -+ pass -+ else: -+ get_term_cols = myfun -+ -+rot_idx = 0 -+rot_chr = ['\\', '|', '/', '-'] -+"the rotation character in the progress bar" -+ -+ -+def split_path(path): -+ return path.split('/') -+ -+def split_path_cygwin(path): -+ if path.startswith('//'): -+ ret = path.split('/')[2:] -+ ret[0] = '/' + ret[0] -+ return ret -+ return path.split('/') -+ -+re_sp = re.compile('[/\\\\]') -+def split_path_win32(path): -+ if path.startswith('\\\\'): -+ ret = re.split(re_sp, path)[2:] -+ ret[0] = '\\' + ret[0] -+ return ret -+ return re.split(re_sp, path) -+ -+if sys.platform == 'cygwin': -+ split_path = split_path_cygwin -+elif is_win32: -+ split_path = split_path_win32 -+ -+def copy_attrs(orig, dest, names, only_if_set=False): -+ for a in to_list(names): -+ u = getattr(orig, a, ()) -+ if u or not only_if_set: -+ setattr(dest, a, u) -+ -+def def_attrs(cls, **kw): -+ ''' -+ set attributes for class. -+ @param cls [any class]: the class to update the given attributes in. -+ @param kw [dictionary]: dictionary of attributes names and values. -+ -+ if the given class hasn't one (or more) of these attributes, add the attribute with its value to the class. -+ ''' -+ for k, v in kw.iteritems(): -+ if not hasattr(cls, k): -+ setattr(cls, k, v) -+ -+def quote_define_name(path): -+ fu = re.compile("[^a-zA-Z0-9]").sub("_", path) -+ fu = fu.upper() -+ return fu -+ -+def quote_whitespace(path): -+ return (path.strip().find(' ') > 0 and '"%s"' % path or path).replace('""', '"') -+ -+def trimquotes(s): -+ if not s: return '' -+ s = s.rstrip() -+ if s[0] == "'" and s[-1] == "'": return s[1:-1] -+ return s -+ -+def h_list(lst): -+ m = md5() -+ m.update(str(lst)) -+ return m.digest() -+ -+def h_fun(fun): -+ try: -+ return fun.code -+ except AttributeError: -+ try: -+ h = inspect.getsource(fun) -+ except IOError: -+ h = "nocode" -+ try: -+ fun.code = h -+ except AttributeError: -+ pass -+ return h -+ -+def pprint(col, str, label='', sep='\n'): -+ "print messages in color" -+ sys.stderr.write("%s%s%s %s%s" % (Logs.colors(col), str, Logs.colors.NORMAL, label, sep)) -+ -+def check_dir(dir): -+ """If a folder doesn't exists, create it.""" -+ try: -+ os.stat(dir) -+ except OSError: -+ try: -+ os.makedirs(dir) -+ except OSError, e: -+ raise WafError("Cannot create folder '%s' (original error: %s)" % (dir, e)) -+ -+def cmd_output(cmd, **kw): -+ -+ silent = False -+ if 'silent' in kw: -+ silent = kw['silent'] -+ del(kw['silent']) -+ -+ if 'e' in kw: -+ tmp = kw['e'] -+ del(kw['e']) -+ kw['env'] = tmp -+ -+ kw['shell'] = isinstance(cmd, str) -+ kw['stdout'] = pproc.PIPE -+ if silent: -+ kw['stderr'] = pproc.PIPE -+ -+ try: -+ p = pproc.Popen(cmd, **kw) -+ output = p.communicate()[0] -+ except OSError, e: -+ raise ValueError(str(e)) -+ -+ if p.returncode: -+ if not silent: -+ msg = "command execution failed: %s -> %r" % (cmd, str(output)) -+ raise ValueError(msg) -+ output = '' -+ return output -+ -+reg_subst = re.compile(r"(\\\\)|(\$\$)|\$\{([^}]+)\}") -+def subst_vars(expr, params): -+ "substitute ${PREFIX}/bin in /usr/local/bin" -+ def repl_var(m): -+ if m.group(1): -+ return '\\' -+ if m.group(2): -+ return '$' -+ try: -+ # environments may contain lists -+ return params.get_flat(m.group(3)) -+ except AttributeError: -+ return params[m.group(3)] -+ return reg_subst.sub(repl_var, expr) -+ -+def unversioned_sys_platform_to_binary_format(unversioned_sys_platform): -+ "infers the binary format from the unversioned_sys_platform name." -+ -+ if unversioned_sys_platform in ('linux', 'freebsd', 'netbsd', 'openbsd', 'sunos', 'gnu'): -+ return 'elf' -+ elif unversioned_sys_platform == 'darwin': -+ return 'mac-o' -+ elif unversioned_sys_platform in ('win32', 'cygwin', 'uwin', 'msys'): -+ return 'pe' -+ # TODO we assume all other operating systems are elf, which is not true. -+ # we may set this to 'unknown' and have ccroot and other tools handle the case "gracefully" (whatever that means). -+ return 'elf' -+ -+def unversioned_sys_platform(): -+ """returns an unversioned name from sys.platform. -+ sys.plaform is not very well defined and depends directly on the python source tree. -+ The version appended to the names is unreliable as it's taken from the build environment at the time python was built, -+ i.e., it's possible to get freebsd7 on a freebsd8 system. -+ So we remove the version from the name, except for special cases where the os has a stupid name like os2 or win32. -+ Some possible values of sys.platform are, amongst others: -+ aix3 aix4 atheos beos5 darwin freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 -+ generic gnu0 irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7 -+ Investigating the python source tree may reveal more values. -+ """ -+ s = sys.platform -+ if s == 'java': -+ # The real OS is hidden under the JVM. -+ from java.lang import System -+ s = System.getProperty('os.name') -+ # see http://lopica.sourceforge.net/os.html for a list of possible values -+ if s == 'Mac OS X': -+ return 'darwin' -+ elif s.startswith('Windows '): -+ return 'win32' -+ elif s == 'OS/2': -+ return 'os2' -+ elif s == 'HP-UX': -+ return 'hpux' -+ elif s in ('SunOS', 'Solaris'): -+ return 'sunos' -+ else: s = s.lower() -+ if s == 'win32' or s.endswith('os2') and s != 'sunos2': return s -+ return re.split('\d+$', s)[0] -+ -+#@deprecated('use unversioned_sys_platform instead') -+def detect_platform(): -+ """this function has been in the Utils module for some time. -+ It's hard to guess what people have used it for. -+ It seems its goal is to return an unversionned sys.platform, but it's not handling all platforms. -+ For example, the version is not removed on freebsd and netbsd, amongst others. -+ """ -+ s = sys.platform -+ -+ # known POSIX -+ for x in 'cygwin linux irix sunos hpux aix darwin gnu'.split(): -+ # sys.platform may be linux2 -+ if s.find(x) >= 0: -+ return x -+ -+ # unknown POSIX -+ if os.name in 'posix java os2'.split(): -+ return os.name -+ -+ return s -+ -+def load_tool(tool, tooldir=None): -+ ''' -+ load_tool: import a Python module, optionally using several directories. -+ @param tool [string]: name of tool to import. -+ @param tooldir [list]: directories to look for the tool. -+ @return: the loaded module. -+ -+ Warning: this function is not thread-safe: plays with sys.path, -+ so must run in sequence. -+ ''' -+ if tooldir: -+ assert isinstance(tooldir, list) -+ sys.path = tooldir + sys.path -+ else: -+ tooldir = [] -+ try: -+ return __import__(tool) -+ finally: -+ for dt in tooldir: -+ sys.path.remove(dt) -+ -+def readf(fname, m='r'): -+ "get the contents of a file, it is not used anywhere for the moment" -+ f = open(fname, m) -+ try: -+ txt = f.read() -+ finally: -+ f.close() -+ return txt -+ -+def nada(*k, **kw): -+ """A function that does nothing""" -+ pass -+ -+def diff_path(top, subdir): -+ """difference between two absolute paths""" -+ top = os.path.normpath(top).replace('\\', '/').split('/') -+ subdir = os.path.normpath(subdir).replace('\\', '/').split('/') -+ if len(top) == len(subdir): return '' -+ diff = subdir[len(top) - len(subdir):] -+ return os.path.join(*diff) -+ -+class Context(object): -+ """A base class for commands to be executed from Waf scripts""" -+ -+ def set_curdir(self, dir): -+ self.curdir_ = dir -+ -+ def get_curdir(self): -+ try: -+ return self.curdir_ -+ except AttributeError: -+ self.curdir_ = os.getcwd() -+ return self.get_curdir() -+ -+ curdir = property(get_curdir, set_curdir) -+ -+ def recurse(self, dirs, name=''): -+ """The function for calling scripts from folders, it tries to call wscript + function_name -+ and if that file does not exist, it will call the method 'function_name' from a file named wscript -+ the dirs can be a list of folders or a string containing space-separated folder paths -+ """ -+ if not name: -+ name = inspect.stack()[1][3] -+ -+ if isinstance(dirs, str): -+ dirs = to_list(dirs) -+ -+ for x in dirs: -+ if os.path.isabs(x): -+ nexdir = x -+ else: -+ nexdir = os.path.join(self.curdir, x) -+ -+ base = os.path.join(nexdir, WSCRIPT_FILE) -+ file_path = base + '_' + name -+ -+ try: -+ txt = readf(file_path, m='rU') -+ except (OSError, IOError): -+ try: -+ module = load_module(base) -+ except OSError: -+ raise WscriptError('No such script %s' % base) -+ -+ try: -+ f = module.__dict__[name] -+ except KeyError: -+ raise WscriptError('No function %s defined in %s' % (name, base)) -+ -+ if getattr(self.__class__, 'pre_recurse', None): -+ self.pre_recurse(f, base, nexdir) -+ old = self.curdir -+ self.curdir = nexdir -+ try: -+ f(self) -+ finally: -+ self.curdir = old -+ if getattr(self.__class__, 'post_recurse', None): -+ self.post_recurse(module, base, nexdir) -+ else: -+ dc = {'ctx': self} -+ if getattr(self.__class__, 'pre_recurse', None): -+ dc = self.pre_recurse(txt, file_path, nexdir) -+ old = self.curdir -+ self.curdir = nexdir -+ try: -+ try: -+ exec(compile(txt, file_path, 'exec'), dc) -+ except Exception: -+ exc_type, exc_value, tb = sys.exc_info() -+ raise WscriptError("".join(traceback.format_exception(exc_type, exc_value, tb)), base) -+ finally: -+ self.curdir = old -+ if getattr(self.__class__, 'post_recurse', None): -+ self.post_recurse(txt, file_path, nexdir) -+ -+if is_win32: -+ old = shutil.copy2 -+ def copy2(src, dst): -+ old(src, dst) -+ shutil.copystat(src, src) -+ setattr(shutil, 'copy2', copy2) -+ -+def zip_folder(dir, zip_file_name, prefix): -+ """ -+ prefix represents the app to add in the archive -+ """ -+ import zipfile -+ zip = zipfile.ZipFile(zip_file_name, 'w', compression=zipfile.ZIP_DEFLATED) -+ base = os.path.abspath(dir) -+ -+ if prefix: -+ if prefix[-1] != os.sep: -+ prefix += os.sep -+ -+ n = len(base) -+ for root, dirs, files in os.walk(base): -+ for f in files: -+ archive_name = prefix + root[n:] + os.sep + f -+ zip.write(root + os.sep + f, archive_name, zipfile.ZIP_DEFLATED) -+ zip.close() -+ -+def get_elapsed_time(start): -+ "Format a time delta (datetime.timedelta) using the format DdHhMmS.MSs" -+ delta = datetime.datetime.now() - start -+ # cast to int necessary for python 3.0 -+ days = int(delta.days) -+ hours = int(delta.seconds / 3600) -+ minutes = int((delta.seconds - hours * 3600) / 60) -+ seconds = delta.seconds - hours * 3600 - minutes * 60 \ -+ + float(delta.microseconds) / 1000 / 1000 -+ result = '' -+ if days: -+ result += '%dd' % days -+ if days or hours: -+ result += '%dh' % hours -+ if days or hours or minutes: -+ result += '%dm' % minutes -+ return '%s%.3fs' % (result, seconds) -+ -+if os.name == 'java': -+ # For Jython (they should really fix the inconsistency) -+ try: -+ gc.disable() -+ gc.enable() -+ except NotImplementedError: -+ gc.disable = gc.enable -+ -+def run_once(fun): -+ """ -+ decorator, make a function cache its results, use like this: -+ -+ @run_once -+ def foo(k): -+ return 345*2343 -+ """ -+ cache = {} -+ def wrap(k): -+ try: -+ return cache[k] -+ except KeyError: -+ ret = fun(k) -+ cache[k] = ret -+ return ret -+ wrap.__cache__ = cache -+ return wrap -+ -diff --git a/buildtools/wafadmin/__init__.py b/buildtools/wafadmin/__init__.py -new file mode 100644 -index 0000000..01273cf ---- /dev/null -+++ b/buildtools/wafadmin/__init__.py -@@ -0,0 +1,3 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2005 (ita) -diff --git a/buildtools/wafadmin/ansiterm.py b/buildtools/wafadmin/ansiterm.py -new file mode 100644 -index 0000000..720b79c ---- /dev/null -+++ b/buildtools/wafadmin/ansiterm.py -@@ -0,0 +1,236 @@ -+import sys, os -+try: -+ if (not sys.stderr.isatty()) or (not sys.stdout.isatty()): -+ raise ValueError('not a tty') -+ -+ from ctypes import * -+ -+ class COORD(Structure): -+ _fields_ = [("X", c_short), ("Y", c_short)] -+ -+ class SMALL_RECT(Structure): -+ _fields_ = [("Left", c_short), ("Top", c_short), ("Right", c_short), ("Bottom", c_short)] -+ -+ class CONSOLE_SCREEN_BUFFER_INFO(Structure): -+ _fields_ = [("Size", COORD), ("CursorPosition", COORD), ("Attributes", c_short), ("Window", SMALL_RECT), ("MaximumWindowSize", COORD)] -+ -+ class CONSOLE_CURSOR_INFO(Structure): -+ _fields_ = [('dwSize',c_ulong), ('bVisible', c_int)] -+ -+ sbinfo = CONSOLE_SCREEN_BUFFER_INFO() -+ csinfo = CONSOLE_CURSOR_INFO() -+ hconsole = windll.kernel32.GetStdHandle(-11) -+ windll.kernel32.GetConsoleScreenBufferInfo(hconsole, byref(sbinfo)) -+ if sbinfo.Size.X < 10 or sbinfo.Size.Y < 10: raise Exception('small console') -+ windll.kernel32.GetConsoleCursorInfo(hconsole, byref(csinfo)) -+except Exception: -+ pass -+else: -+ import re, threading -+ -+ to_int = lambda number, default: number and int(number) or default -+ wlock = threading.Lock() -+ -+ STD_OUTPUT_HANDLE = -11 -+ STD_ERROR_HANDLE = -12 -+ -+ class AnsiTerm(object): -+ def __init__(self): -+ self.hconsole = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE) -+ self.cursor_history = [] -+ self.orig_sbinfo = CONSOLE_SCREEN_BUFFER_INFO() -+ self.orig_csinfo = CONSOLE_CURSOR_INFO() -+ windll.kernel32.GetConsoleScreenBufferInfo(self.hconsole, byref(self.orig_sbinfo)) -+ windll.kernel32.GetConsoleCursorInfo(hconsole, byref(self.orig_csinfo)) -+ -+ -+ def screen_buffer_info(self): -+ sbinfo = CONSOLE_SCREEN_BUFFER_INFO() -+ windll.kernel32.GetConsoleScreenBufferInfo(self.hconsole, byref(sbinfo)) -+ return sbinfo -+ -+ def clear_line(self, param): -+ mode = param and int(param) or 0 -+ sbinfo = self.screen_buffer_info() -+ if mode == 1: # Clear from begining of line to cursor position -+ line_start = COORD(0, sbinfo.CursorPosition.Y) -+ line_length = sbinfo.Size.X -+ elif mode == 2: # Clear entire line -+ line_start = COORD(sbinfo.CursorPosition.X, sbinfo.CursorPosition.Y) -+ line_length = sbinfo.Size.X - sbinfo.CursorPosition.X -+ else: # Clear from cursor position to end of line -+ line_start = sbinfo.CursorPosition -+ line_length = sbinfo.Size.X - sbinfo.CursorPosition.X -+ chars_written = c_int() -+ windll.kernel32.FillConsoleOutputCharacterA(self.hconsole, c_char(' '), line_length, line_start, byref(chars_written)) -+ windll.kernel32.FillConsoleOutputAttribute(self.hconsole, sbinfo.Attributes, line_length, line_start, byref(chars_written)) -+ -+ def clear_screen(self, param): -+ mode = to_int(param, 0) -+ sbinfo = self.screen_buffer_info() -+ if mode == 1: # Clear from begining of screen to cursor position -+ clear_start = COORD(0, 0) -+ clear_length = sbinfo.CursorPosition.X * sbinfo.CursorPosition.Y -+ elif mode == 2: # Clear entire screen and return cursor to home -+ clear_start = COORD(0, 0) -+ clear_length = sbinfo.Size.X * sbinfo.Size.Y -+ windll.kernel32.SetConsoleCursorPosition(self.hconsole, clear_start) -+ else: # Clear from cursor position to end of screen -+ clear_start = sbinfo.CursorPosition -+ clear_length = ((sbinfo.Size.X - sbinfo.CursorPosition.X) + sbinfo.Size.X * (sbinfo.Size.Y - sbinfo.CursorPosition.Y)) -+ chars_written = c_int() -+ windll.kernel32.FillConsoleOutputCharacterA(self.hconsole, c_char(' '), clear_length, clear_start, byref(chars_written)) -+ windll.kernel32.FillConsoleOutputAttribute(self.hconsole, sbinfo.Attributes, clear_length, clear_start, byref(chars_written)) -+ -+ def push_cursor(self, param): -+ sbinfo = self.screen_buffer_info() -+ self.cursor_history.push(sbinfo.CursorPosition) -+ -+ def pop_cursor(self, param): -+ if self.cursor_history: -+ old_pos = self.cursor_history.pop() -+ windll.kernel32.SetConsoleCursorPosition(self.hconsole, old_pos) -+ -+ def set_cursor(self, param): -+ x, sep, y = param.partition(';') -+ x = to_int(x, 1) - 1 -+ y = to_int(y, 1) - 1 -+ sbinfo = self.screen_buffer_info() -+ new_pos = COORD( -+ min(max(0, x), sbinfo.Size.X), -+ min(max(0, y), sbinfo.Size.Y) -+ ) -+ windll.kernel32.SetConsoleCursorPosition(self.hconsole, new_pos) -+ -+ def set_column(self, param): -+ x = to_int(param, 1) - 1 -+ sbinfo = self.screen_buffer_info() -+ new_pos = COORD( -+ min(max(0, x), sbinfo.Size.X), -+ sbinfo.CursorPosition.Y -+ ) -+ windll.kernel32.SetConsoleCursorPosition(self.hconsole, new_pos) -+ -+ def move_cursor(self, x_offset=0, y_offset=0): -+ sbinfo = self.screen_buffer_info() -+ new_pos = COORD( -+ min(max(0, sbinfo.CursorPosition.X + x_offset), sbinfo.Size.X), -+ min(max(0, sbinfo.CursorPosition.Y + y_offset), sbinfo.Size.Y) -+ ) -+ windll.kernel32.SetConsoleCursorPosition(self.hconsole, new_pos) -+ -+ def move_up(self, param): -+ self.move_cursor(y_offset = -to_int(param, 1)) -+ -+ def move_down(self, param): -+ self.move_cursor(y_offset = to_int(param, 1)) -+ -+ def move_left(self, param): -+ self.move_cursor(x_offset = -to_int(param, 1)) -+ -+ def move_right(self, param): -+ self.move_cursor(x_offset = to_int(param, 1)) -+ -+ def next_line(self, param): -+ sbinfo = self.screen_buffer_info() -+ self.move_cursor( -+ x_offset = -sbinfo.CursorPosition.X, -+ y_offset = to_int(param, 1) -+ ) -+ -+ def prev_line(self, param): -+ sbinfo = self.screen_buffer_info() -+ self.move_cursor( -+ x_offset = -sbinfo.CursorPosition.X, -+ y_offset = -to_int(param, 1) -+ ) -+ -+ escape_to_color = { (0, 30): 0x0, #black -+ (0, 31): 0x4, #red -+ (0, 32): 0x2, #green -+ (0, 33): 0x4+0x2, #dark yellow -+ (0, 34): 0x1, #blue -+ (0, 35): 0x1+0x4, #purple -+ (0, 36): 0x2+0x4, #cyan -+ (0, 37): 0x1+0x2+0x4, #grey -+ (1, 30): 0x1+0x2+0x4, #dark gray -+ (1, 31): 0x4+0x8, #red -+ (1, 32): 0x2+0x8, #light green -+ (1, 33): 0x4+0x2+0x8, #yellow -+ (1, 34): 0x1+0x8, #light blue -+ (1, 35): 0x1+0x4+0x8, #light purple -+ (1, 36): 0x1+0x2+0x8, #light cyan -+ (1, 37): 0x1+0x2+0x4+0x8, #white -+ } -+ -+ def set_color(self, param): -+ cols = param.split(';') -+ attr = self.orig_sbinfo.Attributes -+ for c in cols: -+ c = to_int(c, 0) -+ if c in range(30,38): -+ attr = (attr & 0xf0) | (self.escape_to_color.get((0,c), 0x7)) -+ elif c in range(40,48): -+ attr = (attr & 0x0f) | (self.escape_to_color.get((0,c), 0x7) << 8) -+ elif c in range(90,98): -+ attr = (attr & 0xf0) | (self.escape_to_color.get((1,c-60), 0x7)) -+ elif c in range(100,108): -+ attr = (attr & 0x0f) | (self.escape_to_color.get((1,c-60), 0x7) << 8) -+ elif c == 1: -+ attr |= 0x08 -+ windll.kernel32.SetConsoleTextAttribute(self.hconsole, attr) -+ -+ def show_cursor(self,param): -+ csinfo.bVisible = 1 -+ windll.kernel32.SetConsoleCursorInfo(self.hconsole, byref(csinfo)) -+ -+ def hide_cursor(self,param): -+ csinfo.bVisible = 0 -+ windll.kernel32.SetConsoleCursorInfo(self.hconsole, byref(csinfo)) -+ -+ ansi_command_table = { -+ 'A': move_up, -+ 'B': move_down, -+ 'C': move_right, -+ 'D': move_left, -+ 'E': next_line, -+ 'F': prev_line, -+ 'G': set_column, -+ 'H': set_cursor, -+ 'f': set_cursor, -+ 'J': clear_screen, -+ 'K': clear_line, -+ 'h': show_cursor, -+ 'l': hide_cursor, -+ 'm': set_color, -+ 's': push_cursor, -+ 'u': pop_cursor, -+ } -+ # Match either the escape sequence or text not containing escape sequence -+ ansi_tokans = re.compile('(?:\x1b\[([0-9?;]*)([a-zA-Z])|([^\x1b]+))') -+ def write(self, text): -+ try: -+ wlock.acquire() -+ for param, cmd, txt in self.ansi_tokans.findall(text): -+ if cmd: -+ cmd_func = self.ansi_command_table.get(cmd) -+ if cmd_func: -+ cmd_func(self, param) -+ else: -+ chars_written = c_int() -+ if isinstance(txt, unicode): -+ windll.kernel32.WriteConsoleW(self.hconsole, txt, len(txt), byref(chars_written), None) -+ else: -+ windll.kernel32.WriteConsoleA(self.hconsole, txt, len(txt), byref(chars_written), None) -+ finally: -+ wlock.release() -+ -+ def flush(self): -+ pass -+ -+ def isatty(self): -+ return True -+ -+ sys.stderr = sys.stdout = AnsiTerm() -+ os.environ['TERM'] = 'vt100' -+ -diff --git a/buildtools/wafadmin/pproc.py b/buildtools/wafadmin/pproc.py -new file mode 100644 -index 0000000..cb15178 ---- /dev/null -+++ b/buildtools/wafadmin/pproc.py -@@ -0,0 +1,620 @@ -+# borrowed from python 2.5.2c1 -+# Copyright (c) 2003-2005 by Peter Astrand -+# Licensed to PSF under a Contributor Agreement. -+ -+import sys -+mswindows = (sys.platform == "win32") -+ -+import os -+import types -+import traceback -+import gc -+ -+class CalledProcessError(Exception): -+ def __init__(self, returncode, cmd): -+ self.returncode = returncode -+ self.cmd = cmd -+ def __str__(self): -+ return "Command '%s' returned non-zero exit status %d" % (self.cmd, self.returncode) -+ -+if mswindows: -+ import threading -+ import msvcrt -+ if 0: -+ import pywintypes -+ from win32api import GetStdHandle, STD_INPUT_HANDLE, \ -+ STD_OUTPUT_HANDLE, STD_ERROR_HANDLE -+ from win32api import GetCurrentProcess, DuplicateHandle, \ -+ GetModuleFileName, GetVersion -+ from win32con import DUPLICATE_SAME_ACCESS, SW_HIDE -+ from win32pipe import CreatePipe -+ from win32process import CreateProcess, STARTUPINFO, \ -+ GetExitCodeProcess, STARTF_USESTDHANDLES, \ -+ STARTF_USESHOWWINDOW, CREATE_NEW_CONSOLE -+ from win32event import WaitForSingleObject, INFINITE, WAIT_OBJECT_0 -+ else: -+ from _subprocess import * -+ class STARTUPINFO: -+ dwFlags = 0 -+ hStdInput = None -+ hStdOutput = None -+ hStdError = None -+ wShowWindow = 0 -+ class pywintypes: -+ error = IOError -+else: -+ import select -+ import errno -+ import fcntl -+ import pickle -+ -+__all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "CalledProcessError"] -+ -+try: -+ MAXFD = os.sysconf("SC_OPEN_MAX") -+except: -+ MAXFD = 256 -+ -+try: -+ False -+except NameError: -+ False = 0 -+ True = 1 -+ -+_active = [] -+ -+def _cleanup(): -+ for inst in _active[:]: -+ if inst.poll(_deadstate=sys.maxint) >= 0: -+ try: -+ _active.remove(inst) -+ except ValueError: -+ pass -+ -+PIPE = -1 -+STDOUT = -2 -+ -+ -+def call(*popenargs, **kwargs): -+ return Popen(*popenargs, **kwargs).wait() -+ -+def check_call(*popenargs, **kwargs): -+ retcode = call(*popenargs, **kwargs) -+ cmd = kwargs.get("args") -+ if cmd is None: -+ cmd = popenargs[0] -+ if retcode: -+ raise CalledProcessError(retcode, cmd) -+ return retcode -+ -+ -+def list2cmdline(seq): -+ result = [] -+ needquote = False -+ for arg in seq: -+ bs_buf = [] -+ -+ if result: -+ result.append(' ') -+ -+ needquote = (" " in arg) or ("\t" in arg) or arg == "" -+ if needquote: -+ result.append('"') -+ -+ for c in arg: -+ if c == '\\': -+ bs_buf.append(c) -+ elif c == '"': -+ result.append('\\' * len(bs_buf)*2) -+ bs_buf = [] -+ result.append('\\"') -+ else: -+ if bs_buf: -+ result.extend(bs_buf) -+ bs_buf = [] -+ result.append(c) -+ -+ if bs_buf: -+ result.extend(bs_buf) -+ -+ if needquote: -+ result.extend(bs_buf) -+ result.append('"') -+ -+ return ''.join(result) -+ -+class Popen(object): -+ def __init__(self, args, bufsize=0, executable=None, -+ stdin=None, stdout=None, stderr=None, -+ preexec_fn=None, close_fds=False, shell=False, -+ cwd=None, env=None, universal_newlines=False, -+ startupinfo=None, creationflags=0): -+ _cleanup() -+ -+ self._child_created = False -+ if not isinstance(bufsize, (int, long)): -+ raise TypeError("bufsize must be an integer") -+ -+ if mswindows: -+ if preexec_fn is not None: -+ raise ValueError("preexec_fn is not supported on Windows platforms") -+ if close_fds: -+ raise ValueError("close_fds is not supported on Windows platforms") -+ else: -+ if startupinfo is not None: -+ raise ValueError("startupinfo is only supported on Windows platforms") -+ if creationflags != 0: -+ raise ValueError("creationflags is only supported on Windows platforms") -+ -+ self.stdin = None -+ self.stdout = None -+ self.stderr = None -+ self.pid = None -+ self.returncode = None -+ self.universal_newlines = universal_newlines -+ -+ (p2cread, p2cwrite, -+ c2pread, c2pwrite, -+ errread, errwrite) = self._get_handles(stdin, stdout, stderr) -+ -+ self._execute_child(args, executable, preexec_fn, close_fds, -+ cwd, env, universal_newlines, -+ startupinfo, creationflags, shell, -+ p2cread, p2cwrite, -+ c2pread, c2pwrite, -+ errread, errwrite) -+ -+ if mswindows: -+ if stdin is None and p2cwrite is not None: -+ os.close(p2cwrite) -+ p2cwrite = None -+ if stdout is None and c2pread is not None: -+ os.close(c2pread) -+ c2pread = None -+ if stderr is None and errread is not None: -+ os.close(errread) -+ errread = None -+ -+ if p2cwrite: -+ self.stdin = os.fdopen(p2cwrite, 'wb', bufsize) -+ if c2pread: -+ if universal_newlines: -+ self.stdout = os.fdopen(c2pread, 'rU', bufsize) -+ else: -+ self.stdout = os.fdopen(c2pread, 'rb', bufsize) -+ if errread: -+ if universal_newlines: -+ self.stderr = os.fdopen(errread, 'rU', bufsize) -+ else: -+ self.stderr = os.fdopen(errread, 'rb', bufsize) -+ -+ -+ def _translate_newlines(self, data): -+ data = data.replace("\r\n", "\n") -+ data = data.replace("\r", "\n") -+ return data -+ -+ -+ def __del__(self, sys=sys): -+ if not self._child_created: -+ return -+ self.poll(_deadstate=sys.maxint) -+ if self.returncode is None and _active is not None: -+ _active.append(self) -+ -+ -+ def communicate(self, input=None): -+ if [self.stdin, self.stdout, self.stderr].count(None) >= 2: -+ stdout = None -+ stderr = None -+ if self.stdin: -+ if input: -+ self.stdin.write(input) -+ self.stdin.close() -+ elif self.stdout: -+ stdout = self.stdout.read() -+ elif self.stderr: -+ stderr = self.stderr.read() -+ self.wait() -+ return (stdout, stderr) -+ -+ return self._communicate(input) -+ -+ -+ if mswindows: -+ def _get_handles(self, stdin, stdout, stderr): -+ if stdin is None and stdout is None and stderr is None: -+ return (None, None, None, None, None, None) -+ -+ p2cread, p2cwrite = None, None -+ c2pread, c2pwrite = None, None -+ errread, errwrite = None, None -+ -+ if stdin is None: -+ p2cread = GetStdHandle(STD_INPUT_HANDLE) -+ if p2cread is not None: -+ pass -+ elif stdin is None or stdin == PIPE: -+ p2cread, p2cwrite = CreatePipe(None, 0) -+ p2cwrite = p2cwrite.Detach() -+ p2cwrite = msvcrt.open_osfhandle(p2cwrite, 0) -+ elif isinstance(stdin, int): -+ p2cread = msvcrt.get_osfhandle(stdin) -+ else: -+ p2cread = msvcrt.get_osfhandle(stdin.fileno()) -+ p2cread = self._make_inheritable(p2cread) -+ -+ if stdout is None: -+ c2pwrite = GetStdHandle(STD_OUTPUT_HANDLE) -+ if c2pwrite is not None: -+ pass -+ elif stdout is None or stdout == PIPE: -+ c2pread, c2pwrite = CreatePipe(None, 0) -+ c2pread = c2pread.Detach() -+ c2pread = msvcrt.open_osfhandle(c2pread, 0) -+ elif isinstance(stdout, int): -+ c2pwrite = msvcrt.get_osfhandle(stdout) -+ else: -+ c2pwrite = msvcrt.get_osfhandle(stdout.fileno()) -+ c2pwrite = self._make_inheritable(c2pwrite) -+ -+ if stderr is None: -+ errwrite = GetStdHandle(STD_ERROR_HANDLE) -+ if errwrite is not None: -+ pass -+ elif stderr is None or stderr == PIPE: -+ errread, errwrite = CreatePipe(None, 0) -+ errread = errread.Detach() -+ errread = msvcrt.open_osfhandle(errread, 0) -+ elif stderr == STDOUT: -+ errwrite = c2pwrite -+ elif isinstance(stderr, int): -+ errwrite = msvcrt.get_osfhandle(stderr) -+ else: -+ errwrite = msvcrt.get_osfhandle(stderr.fileno()) -+ errwrite = self._make_inheritable(errwrite) -+ -+ return (p2cread, p2cwrite, -+ c2pread, c2pwrite, -+ errread, errwrite) -+ def _make_inheritable(self, handle): -+ return DuplicateHandle(GetCurrentProcess(), handle, GetCurrentProcess(), 0, 1, DUPLICATE_SAME_ACCESS) -+ -+ def _find_w9xpopen(self): -+ w9xpopen = os.path.join(os.path.dirname(GetModuleFileName(0)), "w9xpopen.exe") -+ if not os.path.exists(w9xpopen): -+ w9xpopen = os.path.join(os.path.dirname(sys.exec_prefix), "w9xpopen.exe") -+ if not os.path.exists(w9xpopen): -+ raise RuntimeError("Cannot locate w9xpopen.exe, which is needed for Popen to work with your shell or platform.") -+ return w9xpopen -+ -+ def _execute_child(self, args, executable, preexec_fn, close_fds, -+ cwd, env, universal_newlines, -+ startupinfo, creationflags, shell, -+ p2cread, p2cwrite, -+ c2pread, c2pwrite, -+ errread, errwrite): -+ -+ if not isinstance(args, types.StringTypes): -+ args = list2cmdline(args) -+ -+ if startupinfo is None: -+ startupinfo = STARTUPINFO() -+ if None not in (p2cread, c2pwrite, errwrite): -+ startupinfo.dwFlags |= STARTF_USESTDHANDLES -+ startupinfo.hStdInput = p2cread -+ startupinfo.hStdOutput = c2pwrite -+ startupinfo.hStdError = errwrite -+ -+ if shell: -+ startupinfo.dwFlags |= STARTF_USESHOWWINDOW -+ startupinfo.wShowWindow = SW_HIDE -+ comspec = os.environ.get("COMSPEC", "cmd.exe") -+ args = comspec + " /c " + args -+ if (GetVersion() >= 0x80000000L or -+ os.path.basename(comspec).lower() == "command.com"): -+ w9xpopen = self._find_w9xpopen() -+ args = '"%s" %s' % (w9xpopen, args) -+ creationflags |= CREATE_NEW_CONSOLE -+ -+ try: -+ hp, ht, pid, tid = CreateProcess(executable, args, None, None, 1, creationflags, env, cwd, startupinfo) -+ except pywintypes.error, e: -+ raise WindowsError(*e.args) -+ -+ self._child_created = True -+ self._handle = hp -+ self.pid = pid -+ ht.Close() -+ -+ if p2cread is not None: -+ p2cread.Close() -+ if c2pwrite is not None: -+ c2pwrite.Close() -+ if errwrite is not None: -+ errwrite.Close() -+ -+ -+ def poll(self, _deadstate=None): -+ if self.returncode is None: -+ if WaitForSingleObject(self._handle, 0) == WAIT_OBJECT_0: -+ self.returncode = GetExitCodeProcess(self._handle) -+ return self.returncode -+ -+ -+ def wait(self): -+ if self.returncode is None: -+ obj = WaitForSingleObject(self._handle, INFINITE) -+ self.returncode = GetExitCodeProcess(self._handle) -+ return self.returncode -+ -+ def _readerthread(self, fh, buffer): -+ buffer.append(fh.read()) -+ -+ def _communicate(self, input): -+ stdout = None -+ stderr = None -+ -+ if self.stdout: -+ stdout = [] -+ stdout_thread = threading.Thread(target=self._readerthread, args=(self.stdout, stdout)) -+ stdout_thread.setDaemon(True) -+ stdout_thread.start() -+ if self.stderr: -+ stderr = [] -+ stderr_thread = threading.Thread(target=self._readerthread, args=(self.stderr, stderr)) -+ stderr_thread.setDaemon(True) -+ stderr_thread.start() -+ -+ if self.stdin: -+ if input is not None: -+ self.stdin.write(input) -+ self.stdin.close() -+ -+ if self.stdout: -+ stdout_thread.join() -+ if self.stderr: -+ stderr_thread.join() -+ -+ if stdout is not None: -+ stdout = stdout[0] -+ if stderr is not None: -+ stderr = stderr[0] -+ -+ if self.universal_newlines and hasattr(file, 'newlines'): -+ if stdout: -+ stdout = self._translate_newlines(stdout) -+ if stderr: -+ stderr = self._translate_newlines(stderr) -+ -+ self.wait() -+ return (stdout, stderr) -+ -+ else: -+ def _get_handles(self, stdin, stdout, stderr): -+ p2cread, p2cwrite = None, None -+ c2pread, c2pwrite = None, None -+ errread, errwrite = None, None -+ -+ if stdin is None: -+ pass -+ elif stdin == PIPE: -+ p2cread, p2cwrite = os.pipe() -+ elif isinstance(stdin, int): -+ p2cread = stdin -+ else: -+ p2cread = stdin.fileno() -+ -+ if stdout is None: -+ pass -+ elif stdout == PIPE: -+ c2pread, c2pwrite = os.pipe() -+ elif isinstance(stdout, int): -+ c2pwrite = stdout -+ else: -+ c2pwrite = stdout.fileno() -+ -+ if stderr is None: -+ pass -+ elif stderr == PIPE: -+ errread, errwrite = os.pipe() -+ elif stderr == STDOUT: -+ errwrite = c2pwrite -+ elif isinstance(stderr, int): -+ errwrite = stderr -+ else: -+ errwrite = stderr.fileno() -+ -+ return (p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) -+ -+ def _set_cloexec_flag(self, fd): -+ try: -+ cloexec_flag = fcntl.FD_CLOEXEC -+ except AttributeError: -+ cloexec_flag = 1 -+ -+ old = fcntl.fcntl(fd, fcntl.F_GETFD) -+ fcntl.fcntl(fd, fcntl.F_SETFD, old | cloexec_flag) -+ -+ def _close_fds(self, but): -+ for i in xrange(3, MAXFD): -+ if i == but: -+ continue -+ try: -+ os.close(i) -+ except: -+ pass -+ -+ def _execute_child(self, args, executable, preexec_fn, close_fds, -+ cwd, env, universal_newlines, startupinfo, creationflags, shell, -+ p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite): -+ -+ if isinstance(args, types.StringTypes): -+ args = [args] -+ else: -+ args = list(args) -+ -+ if shell: -+ args = ["/bin/sh", "-c"] + args -+ -+ if executable is None: -+ executable = args[0] -+ -+ errpipe_read, errpipe_write = os.pipe() -+ self._set_cloexec_flag(errpipe_write) -+ -+ gc_was_enabled = gc.isenabled() -+ gc.disable() -+ try: -+ self.pid = os.fork() -+ except: -+ if gc_was_enabled: -+ gc.enable() -+ raise -+ self._child_created = True -+ if self.pid == 0: -+ try: -+ if p2cwrite: -+ os.close(p2cwrite) -+ if c2pread: -+ os.close(c2pread) -+ if errread: -+ os.close(errread) -+ os.close(errpipe_read) -+ -+ if p2cread: -+ os.dup2(p2cread, 0) -+ if c2pwrite: -+ os.dup2(c2pwrite, 1) -+ if errwrite: -+ os.dup2(errwrite, 2) -+ -+ if p2cread and p2cread not in (0,): -+ os.close(p2cread) -+ if c2pwrite and c2pwrite not in (p2cread, 1): -+ os.close(c2pwrite) -+ if errwrite and errwrite not in (p2cread, c2pwrite, 2): -+ os.close(errwrite) -+ -+ if close_fds: -+ self._close_fds(but=errpipe_write) -+ -+ if cwd is not None: -+ os.chdir(cwd) -+ -+ if preexec_fn: -+ apply(preexec_fn) -+ -+ if env is None: -+ os.execvp(executable, args) -+ else: -+ os.execvpe(executable, args, env) -+ -+ except: -+ exc_type, exc_value, tb = sys.exc_info() -+ exc_lines = traceback.format_exception(exc_type, exc_value, tb) -+ exc_value.child_traceback = ''.join(exc_lines) -+ os.write(errpipe_write, pickle.dumps(exc_value)) -+ -+ os._exit(255) -+ -+ if gc_was_enabled: -+ gc.enable() -+ os.close(errpipe_write) -+ if p2cread and p2cwrite: -+ os.close(p2cread) -+ if c2pwrite and c2pread: -+ os.close(c2pwrite) -+ if errwrite and errread: -+ os.close(errwrite) -+ -+ data = os.read(errpipe_read, 1048576) -+ os.close(errpipe_read) -+ if data != "": -+ os.waitpid(self.pid, 0) -+ child_exception = pickle.loads(data) -+ raise child_exception -+ -+ def _handle_exitstatus(self, sts): -+ if os.WIFSIGNALED(sts): -+ self.returncode = -os.WTERMSIG(sts) -+ elif os.WIFEXITED(sts): -+ self.returncode = os.WEXITSTATUS(sts) -+ else: -+ raise RuntimeError("Unknown child exit status!") -+ -+ def poll(self, _deadstate=None): -+ if self.returncode is None: -+ try: -+ pid, sts = os.waitpid(self.pid, os.WNOHANG) -+ if pid == self.pid: -+ self._handle_exitstatus(sts) -+ except os.error: -+ if _deadstate is not None: -+ self.returncode = _deadstate -+ return self.returncode -+ -+ def wait(self): -+ if self.returncode is None: -+ pid, sts = os.waitpid(self.pid, 0) -+ self._handle_exitstatus(sts) -+ return self.returncode -+ -+ def _communicate(self, input): -+ read_set = [] -+ write_set = [] -+ stdout = None -+ stderr = None -+ -+ if self.stdin: -+ self.stdin.flush() -+ if input: -+ write_set.append(self.stdin) -+ else: -+ self.stdin.close() -+ if self.stdout: -+ read_set.append(self.stdout) -+ stdout = [] -+ if self.stderr: -+ read_set.append(self.stderr) -+ stderr = [] -+ -+ input_offset = 0 -+ while read_set or write_set: -+ rlist, wlist, xlist = select.select(read_set, write_set, []) -+ -+ if self.stdin in wlist: -+ bytes_written = os.write(self.stdin.fileno(), buffer(input, input_offset, 512)) -+ input_offset += bytes_written -+ if input_offset >= len(input): -+ self.stdin.close() -+ write_set.remove(self.stdin) -+ -+ if self.stdout in rlist: -+ data = os.read(self.stdout.fileno(), 1024) -+ if data == "": -+ self.stdout.close() -+ read_set.remove(self.stdout) -+ stdout.append(data) -+ -+ if self.stderr in rlist: -+ data = os.read(self.stderr.fileno(), 1024) -+ if data == "": -+ self.stderr.close() -+ read_set.remove(self.stderr) -+ stderr.append(data) -+ -+ if stdout is not None: -+ stdout = ''.join(stdout) -+ if stderr is not None: -+ stderr = ''.join(stderr) -+ -+ if self.universal_newlines and hasattr(file, 'newlines'): -+ if stdout: -+ stdout = self._translate_newlines(stdout) -+ if stderr: -+ stderr = self._translate_newlines(stderr) -+ -+ self.wait() -+ return (stdout, stderr) -+ -diff --git a/buildtools/wafadmin/py3kfixes.py b/buildtools/wafadmin/py3kfixes.py -new file mode 100644 -index 0000000..2f3c9c2 ---- /dev/null -+++ b/buildtools/wafadmin/py3kfixes.py -@@ -0,0 +1,130 @@ -+#!/usr/bin/env python -+# encoding: utf-8 -+# Thomas Nagy, 2009 (ita) -+ -+""" -+Fixes for py3k go here -+""" -+ -+import os -+ -+all_modifs = {} -+ -+def modif(dir, name, fun): -+ if name == '*': -+ lst = [] -+ for y in '. Tools 3rdparty'.split(): -+ for x in os.listdir(os.path.join(dir, y)): -+ if x.endswith('.py'): -+ lst.append(y + os.sep + x) -+ #lst = [y + os.sep + x for x in os.listdir(os.path.join(dir, y)) for y in '. Tools 3rdparty'.split() if x.endswith('.py')] -+ for x in lst: -+ modif(dir, x, fun) -+ return -+ -+ filename = os.path.join(dir, name) -+ f = open(filename, 'r') -+ txt = f.read() -+ f.close() -+ -+ txt = fun(txt) -+ -+ f = open(filename, 'w') -+ f.write(txt) -+ f.close() -+ -+def subst(filename): -+ def do_subst(fun): -+ global all_modifs -+ try: -+ all_modifs[filename] += fun -+ except KeyError: -+ all_modifs[filename] = [fun] -+ return fun -+ return do_subst -+ -+@subst('Constants.py') -+def r1(code): -+ code = code.replace("'iluvcuteoverload'", "b'iluvcuteoverload'") -+ code = code.replace("ABI=7", "ABI=37") -+ return code -+ -+@subst('Tools/ccroot.py') -+def r2(code): -+ code = code.replace("p.stdin.write('\\n')", "p.stdin.write(b'\\n')") -+ code = code.replace('p.communicate()[0]', 'p.communicate()[0].decode("utf-8")') -+ return code -+ -+@subst('Utils.py') -+def r3(code): -+ code = code.replace("m.update(str(lst))", "m.update(str(lst).encode())") -+ code = code.replace('p.communicate()[0]', 'p.communicate()[0].decode("utf-8")') -+ return code -+ -+@subst('ansiterm.py') -+def r33(code): -+ code = code.replace('unicode', 'str') -+ return code -+ -+@subst('Task.py') -+def r4(code): -+ code = code.replace("up(self.__class__.__name__)", "up(self.__class__.__name__.encode())") -+ code = code.replace("up(self.env.variant())", "up(self.env.variant().encode())") -+ code = code.replace("up(x.parent.abspath())", "up(x.parent.abspath().encode())") -+ code = code.replace("up(x.name)", "up(x.name.encode())") -+ code = code.replace('class TaskBase(object):\n\t__metaclass__=store_task_type', 'import binascii\n\nclass TaskBase(object, metaclass=store_task_type):') -+ code = code.replace('keys=self.cstr_groups.keys()', 'keys=list(self.cstr_groups.keys())') -+ code = code.replace("sig.encode('hex')", 'binascii.hexlify(sig)') -+ code = code.replace("os.path.join(Options.cache_global,ssig)", "os.path.join(Options.cache_global,ssig.decode())") -+ return code -+ -+@subst('Build.py') -+def r5(code): -+ code = code.replace("cPickle.dump(data,file,-1)", "cPickle.dump(data,file)") -+ code = code.replace('for node in src_dir_node.childs.values():', 'for node in list(src_dir_node.childs.values()):') -+ return code -+ -+@subst('*') -+def r6(code): -+ code = code.replace('xrange', 'range') -+ code = code.replace('iteritems', 'items') -+ code = code.replace('maxint', 'maxsize') -+ code = code.replace('iterkeys', 'keys') -+ code = code.replace('Error,e:', 'Error as e:') -+ code = code.replace('Exception,e:', 'Exception as e:') -+ return code -+ -+@subst('TaskGen.py') -+def r7(code): -+ code = code.replace('class task_gen(object):\n\t__metaclass__=register_obj', 'class task_gen(object, metaclass=register_obj):') -+ return code -+ -+@subst('Tools/python.py') -+def r8(code): -+ code = code.replace('proc.communicate()[0]', 'proc.communicate()[0].decode("utf-8")') -+ return code -+ -+@subst('Tools/glib2.py') -+def r9(code): -+ code = code.replace('f.write(c)', 'f.write(c.encode("utf-8"))') -+ return code -+ -+@subst('Tools/config_c.py') -+def r10(code): -+ code = code.replace("key=kw['success']", "key=kw['success']\n\t\t\t\ttry:\n\t\t\t\t\tkey=key.decode('utf-8')\n\t\t\t\texcept:\n\t\t\t\t\tpass") -+ code = code.replace('out=str(out)','out=out.decode("utf-8")') -+ code = code.replace('err=str(err)','err=err.decode("utf-8")') -+ return code -+ -+@subst('Tools/d.py') -+def r11(code): -+ code = code.replace('ret.strip()', 'ret.strip().decode("utf-8")') -+ return code -+ -+def fixdir(dir): -+ global all_modifs -+ for k in all_modifs: -+ for v in all_modifs[k]: -+ modif(os.path.join(dir, 'wafadmin'), k, v) -+ #print('substitutions finished') -+ diff --git a/meta-oe/recipes-connectivity/samba/samba-basic.inc b/meta-oe/recipes-connectivity/samba/samba-basic.inc deleted file mode 100644 index 9393c2c1268..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba-basic.inc +++ /dev/null @@ -1,71 +0,0 @@ -SRC_URI += "file://config-lfs.patch \ - file://quota.patch;striplevel=0 \ -" - -EXTRA_OECONF += "\ - --enable-nss-wrapper \ - --without-ads \ - --with-winbind \ - --without-ldap \ - --without-krb5" - -PACKAGES =+ "libwbclient libwinbind libwinbind-dbg libnss-winbind winbind winbind-dbg \ - libnetapi libtdb libtevent libsmbsharemodes libsmbclient libsmbclient-dev \ - cifs cifs-doc swat ${PN}-base" - -RDEPENDS_${PN} += "${PN}-base" - -FILES_${PN}-base = "${sbindir}/nmbd \ - ${sbindir}/smbd \ - ${sysconfdir}/default \ - ${sysconfdir}/samba \ - ${sysconfdir}/init.d/samba \ - ${localstatedir}/lib/samba \ - ${localstatedir}/log/samba \ - ${localstatedir}/nmbd \ - ${localstatedir}/spool/samba \ -" - -FILES_winbind-dbg = "${libdir}/idmap/.debug/*.so \ - ${libdir}/security/.debug/pam_winbind.so \ -" - -FILES_${PN} += "${libdir}/vfs/*.so \ - ${libdir}/charset/*.so \ - ${libdir}/*.dat \ - ${libdir}/auth/*.so \ - ${libdir}/security/pam_smbpass.so \ -" - -FILES_${PN}-dbg += "${libdir}/vfs/.debug/*.so \ - ${libdir}/charset/.debug/*.so \ - ${libdir}/auth/.debug/*.so \ - ${libdir}/security/.debug/pam_smbpass.so \ -" - -FILES_libwbclient = "${libdir}/libwbclient.so.*" -FILES_libnetapi = "${libdir}/libnetapi.so.*" -FILES_libsmbsharemodes = "${libdir}/libsmbsharemodes.so.*" -FILES_libtdb = "${libdir}/libtdb.so.*" -FILES_libtevent = "${libdir}/libtevent.so.*" -FILES_cifs = "${base_sbindir}/mount.cifs ${base_sbindir}/umount.cifs" -FILES_cifs-doc = "${mandir}/man8/mount.cifs.8 ${mandir}/man8/umount.cifs.8" -FILES_libsmbclient = "${libdir}/libsmbclient.so.*" -FILES_libsmbclient-dev = "${libdir}/libsmbclient.so ${includedir}" -FILES_winbind = "${sbindir}/winbindd \ - ${bindir}/wbinfo \ - ${bindir}/ntlm_auth \ - ${sysconfdir}/init.d/winbind \ - ${systemd_unitdir}/system/winbind.service \ -" -FILES_libwinbind = "${libdir}/idmap/*.so \ - ${libdir}/pdb \ - ${libdir}/gpext \ - ${libdir}/perfcount \ - ${libdir}/security/pam_winbind.so \ -" - -FILES_libnss-winbind = "${libdir}/libnss_*${SOLIBS} \ - ${libdir}/nss_info" - -FILES_swat = "${sbindir}/swat ${datadir}/swat ${libdir}/*.msg" diff --git a/meta-oe/recipes-connectivity/samba/samba.inc b/meta-oe/recipes-connectivity/samba/samba.inc deleted file mode 100644 index eba58750ffc..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba.inc +++ /dev/null @@ -1,161 +0,0 @@ -SECTION = "console/network" -LICENSE = "GPL-3.0" -DEPENDS = "readline virtual/libiconv zlib popt" - -SAMBA_MIRROR = "http://samba.org/samba/ftp" - -MIRRORS += "\ -${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \ -${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \ -" - -SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ - file://volatiles.03_samba \ - file://smb.conf \ - file://init.samba \ - file://init.winbind \ - file://tdb.pc \ - file://nmb.service \ - file://smb.service \ - file://winbind.service \ -" - -S = "${WORKDIR}/samba-${PV}/source" - -inherit autotools-brokensep update-rc.d systemd - -SYSTEMD_PACKAGES = "${PN}-base winbind" -SYSTEMD_SERVICE_${PN}-base = "nmb.service smb.service" -SYSTEMD_SERVICE_winbind = "winbind.service" - -SAMBAMMAP = "no" -SAMBAMMAP_libc-glibc = "yes" - -# The file system settings --foodir=dirfoo and overridden unconditionally -# in the samba config by --with-foodir=dirfoo - even if the --with is not -# specified! Fix that here. Set the privatedir to /etc/samba/private. -EXTRA_OECONF='--disable-cups \ - --with-readline=${STAGING_LIBDIR}/.. \ - --with-libiconv=${STAGING_LIBDIR}/.. \ - --without-automount \ - --with-configdir=${sysconfdir}/samba \ - --with-privatedir=${sysconfdir}/samba/private \ - --with-lockdir=${localstatedir}/lock \ - --with-piddir=${localstatedir}/run \ - --with-logfilebase=${localstatedir}/log/samba \ - --libdir=${libdir} \ - --with-mandir=${mandir} \ - --with-swatdir=${datadir}/swat \ - --with-aio-support \ - --with-winbind \ - --with-wbclient \ - --without-acl-support \ - --disable-avahi \ - samba_cv_struct_timespec=yes \ - libreplace_cv_HAVE_MMAP=${SAMBAMMAP}' - -PACKAGECONFIG = "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" -PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam" -PACKAGECONFIG[fam] = "--enable-fam,--disable-fam,gamin" -PACKAGECONFIG[talloc] = "--enable-external-libtalloc --with-libtalloc, --disable-external-libtalloc --without-libtalloc, talloc" -PACKAGECONFIG[valgrind] = "ac_cv_header_valgrind_valgrind_h=yes ac_cv_header_valgrind_memcheck_h=yes, \ - ac_cv_header_valgrind_valgrind_h=no ac_cv_header_valgrind_memcheck_h=no, valgrind" - -INITSCRIPT_PACKAGES = "${PN}-base winbind" -INITSCRIPT_NAME_${PN}-base = "samba" -INITSCRIPT_NAME_winbind = "winbind" -# No dependencies, goes in at level 20 (NOTE: take care with the -# level, later levels put the shutdown later too - see the links -# in rc6.d, the shutdown must precede network shutdown). -INITSCRIPT_PARAMS = "defaults" -CONFFILES_${PN}-base = "${sysconfdir}/samba/smb.conf" - -do_configure_prepend () { - ./script/mkversion.sh - if [ ! -e acinclude.m4 ]; then - touch aclocal.m4 - cat aclocal.m4 > acinclude.m4 - fi -} - -do_compile () { - oe_runmake proto_exists - base_do_compile -} - -do_install_append() { - install -d ${D}${libdir}/pkgconfig/ - cp ${WORKDIR}/tdb.pc ${D}${libdir}/pkgconfig/ - mv ${D}${libdir}/libsmbclient.so ${D}${libdir}/libsmbclient.so.0 || true - ln -sf libsmbclient.so.0 ${D}${libdir}/libsmbclient.so - mkdir -p ${D}${base_sbindir} - rm -f ${D}${bindir}/*.old - rm -f ${D}${sbindir}/*.old - [ -f ${D}${sbindir}/mount.cifs ] && mv ${D}${sbindir}/mount.cifs ${D}${base_sbindir}/ - [ -f ${D}${sbindir}/umount.cifs ] && mv ${D}${sbindir}/umount.cifs ${D}${base_sbindir}/ - - # This is needed for < 3.2.4 - rm -f ${D}${sbindir}/mount.smbfs ${D}${base_sbindir}/mount.smbfs - if [ -f ${D}${bindir}/smbmount ]; then - ln -sf ${bindir}/smbmount ${D}${base_sbindir}/mount.smb - ln -sf ${bindir}/smbmount ${D}${base_sbindir}/mount.smbfs - fi - - install -D -m 755 ${WORKDIR}/init.samba ${D}${sysconfdir}/init.d/samba - install -D -m 755 ${WORKDIR}/init.winbind ${D}${sysconfdir}/init.d/winbind - install -D -m 644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf - install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/volatiles.03_samba - install -d ${D}/var/log/samba - install -d ${D}/var/spool/samba - - # Install other stuff not installed by "make install" - if [ -d ${WORKDIR}/${PN}-${PV}/nsswitch ]; then - install -m 0644 ${WORKDIR}/${PN}-${PV}/nsswitch/libnss_winbind.so ${D}${libdir}/libnss_winbind.so.2 - install -m 0644 ${WORKDIR}/${PN}-${PV}/nsswitch/libnss_wins.so ${D}${libdir}/libnss_wins.so.2 - fi - - rmdir --ignore-fail-on-non-empty ${D}${base_sbindir} - sed -i -e '1s,#!.*perl,#!${USRBINPATH}/env perl,' ${D}${bindir}/findsmb - - # usershare mount place - mkdir -p ${D}${localstatedir}/lib/samba/usershares - - # Remove sysinit script if sysvinit is not in DISTRO_FEATURES - if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then - rm -rf ${D}${sysconfdir}/init.d/ - fi - - install -d ${D}${systemd_unitdir}/system - for i in nmb smb winbind; do - install -m 0644 ${WORKDIR}/$i.service ${D}${systemd_unitdir}/system - done - sed -e 's,@BASE_BINDIR@,${base_bindir},g' \ - -e 's,@SBINDIR@,${sbindir},g' \ - -i ${D}${systemd_unitdir}/system/*.service - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d - echo "d ${localstatedir}/log/samba 0755 root root -" \ - > ${D}${sysconfdir}/tmpfiles.d/99-${BPN}.conf - fi -} - -DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-systemctl-native', '', d)}" -pkg_postinst_${PN}-base () { - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd sysvinit', 'true', 'false', d)}; then - if [ -n "$D" ]; then - OPTS="--root=$D" - fi - systemctl $OPTS mask samba.service - fi -} - -pkg_postinst_libnss-winbind () { - # add wins to the list of resolvers - ns=$D${sysconfdir}/nsswitch.conf - if ! grep "hosts:.*wins" $ns > /dev/null; then - hosts="`grep '^hosts:' $ns`" - hosts=`echo "$hosts" | sed 's/\[/\\\\[/g; s/\]/\\\\]/g'` - sed -i "s/$hosts/$hosts wins/" "$ns" - fi -} diff --git a/meta-oe/recipes-connectivity/samba/samba/0001-PIDL-fix-parsing-linemarkers-in-preprocessor-output.patch b/meta-oe/recipes-connectivity/samba/samba/0001-PIDL-fix-parsing-linemarkers-in-preprocessor-output.patch deleted file mode 100644 index 586867d8fd1..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/0001-PIDL-fix-parsing-linemarkers-in-preprocessor-output.patch +++ /dev/null @@ -1,68 +0,0 @@ -Upstream-Status: Backport - -From b07ade6e6fcc8b844cf1fb8b6038617281c4c2d0 Mon Sep 17 00:00:00 2001 -From: Alexander Bokovoy -Date: Wed, 6 Feb 2013 10:17:57 +0200 -Subject: [PATCH] PIDL: fix parsing linemarkers in preprocessor output - -Commit b07ade6e6fcc8b844cf1fb8b6038617281c4c2d0 v3-6-stable - -When PIDL calls out to C preprocessor to expand IDL files -and parse the output, it filters out linemarkers and line control -information as described in http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html -and http://gcc.gnu.org/onlinedocs/cpp/Line-Control.html#Line-Control - -With gcc 4.8 stdc-predef.h is included automatically and linemarker for the -file has extended flags that PIDL couldn't parse ('system header that needs to -be extern "C" protected for C++') - -Thanks to Jakub Jelinek for explanation of the linemarker format. - -Fixes https://bugzilla.redhat.com/show_bug.cgi?id=906517 - -Reviewed-by: Andreas Schneider -(cherry picked from commit 6ba7ab5c14801aecae96373d5a9db7ab82957526) - -Signed-off-by: Andreas Schneider - -Fix bug #9636 - pidl can't parse new linemarkers in preprocessor output. -(cherry picked from commit 643571470f2e4cd2f58bd60ac7189abb826d33cc) -(cherry picked from commit b5a8afd6550e9091d169d3010751913bb483fc4b) ---- - pidl/idl.yp | 4 +++- - pidl/lib/Parse/Pidl/IDL.pm | 4 +++- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/pidl/idl.yp b/pidl/idl.yp -index b5c5185..c8a65f6 100644 ---- a/pidl/idl.yp -+++ b/pidl/idl.yp -@@ -610,7 +610,9 @@ again: - - for ($parser->YYData->{INPUT}) { - if (/^\#/) { -- if (s/^\# (\d+) \"(.*?)\"( \d+|)//) { -+ # Linemarker format is described at -+ # http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html -+ if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) { - $parser->YYData->{LINE} = $1-1; - $parser->YYData->{FILE} = $2; - goto again; -diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm -index d4820ff..6927c89 100644 ---- a/pidl/lib/Parse/Pidl/IDL.pm -+++ b/pidl/lib/Parse/Pidl/IDL.pm -@@ -2576,7 +2576,9 @@ again: - - for ($parser->YYData->{INPUT}) { - if (/^\#/) { -- if (s/^\# (\d+) \"(.*?)\"( \d+|)//) { -+ # Linemarker format is described at -+ # http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html -+ if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) { - $parser->YYData->{LINE} = $1-1; - $parser->YYData->{FILE} = $2; - goto again; --- -1.7.5.4 - diff --git a/meta-oe/recipes-connectivity/samba/samba/Managing-Samba.txt b/meta-oe/recipes-connectivity/samba/samba/Managing-Samba.txt deleted file mode 100644 index 01f75928245..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/Managing-Samba.txt +++ /dev/null @@ -1,40 +0,0 @@ -This device is running a bare-bone Samba server which allows easy -transfer of files and directories between any networked desktop PC and -your networked PDA. - -Since it is generally a bad idea to allow everyone read and write access -to your PDA, you will have to configure at least one user to get access to -any shared folder. - -How to create a Samba user with password: - -- If you haven't already created a non-root user, do so now: - root@poodle:/usr/bin# adduser testuser - Changing password for testuser - Enter the new password (minimum of 5, maximum of 8 characters) - Please use a combination of upper and lower case letters and numbers. - Enter new password: - Bad password: too short. - - Warning: weak password (continuing). - Re-enter new password: - Password changed. - root@poodle:/usr/bin# - -- Note that the password you entered will _not_ be your samba password. - Samba uses its own password database. - -- Add a Samba password for your user: - root@poodle:/usr/bin# smbpasswd -a testuser - New SMB password: - Retype new SMB password: - Added user testuser. - root@poodle:/usr/bin# - -- After you have added your new samba user, you'll have to restart the samba - server by running "/etc/init.d/samba restart" or by rebooting the device - -- Use the newly created username / password combination to access your network - shares. Please note the the Samba username must also exist as a unix username! - - diff --git a/meta-oe/recipes-connectivity/samba/samba/cifs.patch b/meta-oe/recipes-connectivity/samba/samba/cifs.patch deleted file mode 100644 index ee6dab567f2..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/cifs.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- source/client/mount.cifs.c.old 2004-11-28 02:33:52.000000000 +1030 -+++ source/client/mount.cifs.c 2004-11-28 02:33:59.000000000 +1030 -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - - #define MOUNT_CIFS_VERSION_MAJOR "1" - #define MOUNT_CIFS_VERSION_MINOR "2" diff --git a/meta-oe/recipes-connectivity/samba/samba/config-h.patch b/meta-oe/recipes-connectivity/samba/samba/config-h.patch deleted file mode 100644 index eeb22684ee4..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/config-h.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN source.old//include/config.h.in source//include/config.h.in ---- source.old//include/config.h.in 2008-11-20 14:45:04.000000000 +0000 -+++ source//include/config.h.in 2008-11-30 21:04:17.990008933 +0000 -@@ -2672,7 +2672,7 @@ - #undef USE_SETEUID - - /* Whether setresuid() is available */ --#undef USE_SETRESUID -+#define USE_SETRESUID 1 - - /* Whether setreuid() is available */ - #undef USE_SETREUID diff --git a/meta-oe/recipes-connectivity/samba/samba/config-lfs.patch b/meta-oe/recipes-connectivity/samba/samba/config-lfs.patch deleted file mode 100644 index b37ed690ceb..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/config-lfs.patch +++ /dev/null @@ -1,47 +0,0 @@ -Cache the check for Linux LFS support, so it can be prepopulated from -the site cache for configure variables for cross-compiling. Without this, -samba gets the idea that it can use dirent64 and friends without defining -the flags it needs to get it, such as _GNU_SOURCE and _LARGEFILE64_SOURCE. - -Symptoms of getting the configuration wrong on cross-compile inculde -warnings such as - - smbd/trans2.c: In function `get_lanman2_dir_entry': - smbd/trans2.c:1065: warning: right shift count >= width of type - -and errors like - - smbd/vfs.c:630: error: dereferencing pointer to incomplete type - -(when trying to dereference dirent64.) - ---- source/configure.in.orig 2005-05-29 14:46:18.000000000 -0700 -+++ source/configure.in 2005-05-29 14:51:57.000000000 -0700 -@@ -588,7 +588,7 @@ - # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support. - # - *linux*) -- AC_MSG_CHECKING([for LFS support]) -+ AC_CACHE_CHECK([for LFS support], samba_cv_LINUX_LFS_SUPPORT,[ - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" - AC_TRY_RUN([ -@@ -627,15 +627,14 @@ - exit(1); - #endif - } --], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross]) -- CPPFLAGS="$old_CPPFLAGS" -- if test x$LINUX_LFS_SUPPORT = xyes ; then -+], [samba_cv_LINUX_LFS_SUPPORT=yes], [samba_cv_LINUX_LFS_SUPPORT=no], [samba_cv_LINUX_LFS_SUPPORT=cross]) -+ CPPFLAGS="$old_CPPFLAGS"]) -+ if test x"$samba_cv_LINUX_LFS_SUPPORT" = x"yes" ; then - CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" - AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support]) - AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits]) - AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions]) - fi -- AC_MSG_RESULT([$LINUX_LFS_SUPPORT]) - ;; - - # diff --git a/meta-oe/recipes-connectivity/samba/samba/configure-3.3.0.patch b/meta-oe/recipes-connectivity/samba/samba/configure-3.3.0.patch deleted file mode 100644 index 19fb9864da0..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/configure-3.3.0.patch +++ /dev/null @@ -1,85 +0,0 @@ -diff -urN source.old//configure source//configure ---- source.old//configure 2009-01-27 07:53:11.000000000 +0000 -+++ source//configure 2009-01-31 21:07:25.811887936 +0000 -@@ -43860,13 +43860,7 @@ - *linux*) - # glibc <= 2.3.2 has a broken getgrouplist - if test "$cross_compiling" = yes; then -- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling --See \`config.log' for more details." >&5 --$as_echo "$as_me: error: cannot run test program while cross compiling --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; }; } -+linux_getgrouplist_ok=no - else - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ -diff -urN source.old//configure.in source//configure.in ---- source.old//configure.in 2009-01-26 13:56:34.000000000 +0000 -+++ source//configure.in 2009-01-31 21:04:39.051889949 +0000 -@@ -280,6 +280,8 @@ - fi - AC_SUBST(BROKEN_CC) - -+AC_TRY_COMPILE([],[(void)sizeof(char[-1])],AC_MSG_ERROR([configure's compilation assert doesn't work with $CC])) -+ - dnl Check if the C compiler understands -Werror - AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [ - AC_TRY_RUN_STRICT([ -@@ -330,25 +332,11 @@ - # a runtime test is needed here - AC_SUBST(PIDL_ARGS) - AC_CACHE_CHECK([that the C compiler understands negative enum values],samba_cv_CC_NEGATIVE_ENUM_VALUES, [ -- AC_TRY_RUN( -+ AC_TRY_COMPILE([], - [ -- #include - enum negative_values { NEGATIVE_VALUE = 0xFFFFFFFF }; -- int main(void) { -- enum negative_values v1 = NEGATIVE_VALUE; -- unsigned v2 = NEGATIVE_VALUE; -- -- if (v1 != 0xFFFFFFFF) { -- printf("%u != 0xFFFFFFFF\n", v1); -- return 1; -- } -- if (v2 != 0xFFFFFFFF) { -- printf("%u != 0xFFFFFFFF\n", v2); -- return 1; -- } -- -- return 0; -- } -+ (void)sizeof(char[1-2*( (unsigned)NEGATIVE_VALUE != 0xFFFFFFFF)]); -+ (void)sizeof(char[1-2*((enum negative_values)NEGATIVE_VALUE != 0xFFFFFFFF)]); - ], - samba_cv_CC_NEGATIVE_ENUM_VALUES=yes,samba_cv__CC_NEGATIVE_ENUM_VALUES=no)]) - if test x"$samba_cv_CC_NEGATIVE_ENUM_VALUES" != x"yes"; then -@@ -1224,22 +1212,12 @@ - case "$host_os" in - *linux*) - # glibc <= 2.3.2 has a broken getgrouplist -- AC_TRY_RUN([ --#include -+ AC_TRY_COMPILE([ - #include --main() { -- /* glibc up to 2.3 has a broken getgrouplist */ -+],[ - #if defined(__GLIBC__) && defined(__GLIBC_MINOR__) -- int libc_major = __GLIBC__; -- int libc_minor = __GLIBC_MINOR__; -- -- if (libc_major < 2) -- exit(1); -- if ((libc_major == 2) && (libc_minor <= 3)) -- exit(1); -+ (void)sizeof(char[1-2*(__GLIBC__ < 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ <= 3)]); - #endif -- exit(0); --} - ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no]) - if test x"$linux_getgrouplist_ok" = x"yes"; then - AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist]) diff --git a/meta-oe/recipes-connectivity/samba/samba/init.samba b/meta-oe/recipes-connectivity/samba/samba/init.samba deleted file mode 100644 index 6a44ac468e1..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/init.samba +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -# -# This is an init script for openembedded -# Copy it to /etc/init.d/samba and type -# > update-rc.d samba defaults 60 -# - - -smbd=/usr/sbin/smbd -test -x "$smbd" || exit 0 -nmbd=/usr/sbin/nmbd -test -x "$nmbd" || exit 0 - - -case "$1" in - start) - echo -n "Starting Samba: smbd" - start-stop-daemon --start --quiet --exec $smbd - echo -n " nmbd" - start-stop-daemon --start --quiet --exec $nmbd - echo "." - ;; - stop) - echo -n "Stopping Samba: smbd" - start-stop-daemon --stop --quiet --pidfile /var/run/smbd.pid - echo -n " nmbd" - start-stop-daemon --stop --quiet --pidfile /var/run/nmbd.pid - echo "." - ;; - reload|force-reload) - start-stop-daemon --stop --quiet --signal 1 --exec $smbd - start-stop-daemon --stop --quiet --signal 1 --exec $nmbd - ;; - restart) - echo -n "Stopping Samba: smbd" - start-stop-daemon --stop --quiet --pidfile /var/run/smbd.pid - echo -n " nmbd" - start-stop-daemon --stop --quiet --pidfile /var/run/nmbd.pid - echo "" - echo -n "Waiting for samba processes to die off" - for i in 1 2 3 ; - do - sleep 1 - echo -n "." - done - echo "" - echo -n "Starting Samba: smbd" - start-stop-daemon --start --quiet --exec $smbd - echo -n " nmbd" - start-stop-daemon --start --quiet --exec $nmbd - echo "." - ;; - *) - echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload}" - exit 1 -esac - -exit 0 diff --git a/meta-oe/recipes-connectivity/samba/samba/init.winbind b/meta-oe/recipes-connectivity/samba/samba/init.winbind deleted file mode 100644 index 53de2eec67e..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/init.winbind +++ /dev/null @@ -1,38 +0,0 @@ -#! /bin/sh - -### BEGIN INIT INFO -# Provides: winbind -# Required-Start: $network $remote_fs $syslog -# Required-Stop: $network $remote_fs $syslog -# Should-Start: samba -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: start Winbind daemon -### END INIT INFO - -winbind=/usr/sbin/winbindd -test -x "$winbind" || exit 0 - -case "$1" in - start) - echo -n "Starting Winbind... " - start-stop-daemon --start --quiet --exec $winbind - echo "done" - ;; - stop) - echo -n "Stopping Winbind... " - start-stop-daemon --stop --quiet --pidfile /var/run/winbind.pid - echo "done" - ;; - reload|force-reload) - start-stop-daemon --stop --quiet --signal 1 --exec $winbind - ;; - restart) - $0 stop && sleep 2 && $0 start - ;; - *) - echo "Usage: /etc/init.d/winbind {start|stop|reload|restart|force-reload}" - exit 1 -esac - -exit 0 diff --git a/meta-oe/recipes-connectivity/samba/samba/mtab.patch b/meta-oe/recipes-connectivity/samba/samba/mtab.patch deleted file mode 100644 index 2ee8ba0941f..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/mtab.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -urN source/client/mtab.c samba-3.2.7//source/client/mtab.c ---- source/client/mtab.c 2008-12-19 13:57:33.000000000 +0000 -+++ source/client/mtab.c 2009-01-09 23:14:00.717671075 +0000 -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/meta-oe/recipes-connectivity/samba/samba/nmb.service b/meta-oe/recipes-connectivity/samba/samba/nmb.service deleted file mode 100644 index 91b997533d5..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/nmb.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Samba NMB Daemon -After=syslog.target network.target - -[Service] -Type=forking -PIDFile=/var/run/nmbd.pid -ExecStart=@SBINDIR@/nmbd -ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID - -[Install] -WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/samba/samba/quota.patch b/meta-oe/recipes-connectivity/samba/samba/quota.patch deleted file mode 100644 index 6f42ff868f0..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/quota.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- lib/sysquotas_4A.c.old 2005-07-03 17:16:00.000000000 +0200 -+++ lib/sysquotas_4A.c 2005-07-03 17:10:09.000000000 +0200 -@@ -28,6 +28,8 @@ - /* long quotactl(int cmd, char *special, qid_t id, caddr_t addr) */ - /* this is used by: HPUX,IRIX */ - -+ #define _LINUX_QUOTA_VERSION 1 -+ - #ifdef HAVE_SYS_TYPES_H - #include - #endif diff --git a/meta-oe/recipes-connectivity/samba/samba/smb.conf b/meta-oe/recipes-connectivity/samba/samba/smb.conf deleted file mode 100644 index f07e3e4ec79..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/smb.conf +++ /dev/null @@ -1,266 +0,0 @@ -# This is the main Samba configuration file. You should read the -# smb.conf(5) manual page in order to understand the options listed -# here. Samba has a huge number of configurable options (perhaps too -# many!) most of which are not shown in this example -# -# For a step to step guide on installing, configuring and using samba, -# read the Samba-HOWTO-Collection. This may be obtained from: -# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf -# -# Many working examples of smb.conf files can be found in the -# Samba-Guide which is generated daily and can be downloaded from: -# http://www.samba.org/samba/docs/Samba-Guide.pdf -# -# Any line which starts with a ; (semi-colon) or a # (hash) -# is a comment and is ignored. In this example we will use a # -# for commentry and a ; for parts of the config file that you -# may wish to enable -# -# NOTE: Whenever you modify this file you should run the command "testparm" -# to check that you have not made any basic syntactic errors. -# -#======================= Global Settings ===================================== -[global] - -# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH - workgroup = MYGROUP - -# server string is the equivalent of the NT Description field - server string = Samba Server - -# Security mode. Defines in which mode Samba will operate. Possible -# values are share, user, server, domain and ads. Most people will want -# user level security. See the Samba-HOWTO-Collection for details. - security = user - -# This option is important for security. It allows you to restrict -# connections to machines which are on your local network. The -# following example restricts access to two C class networks and -# the "loopback" interface. For more examples of the syntax see -# the smb.conf man page -; hosts allow = 192.168.1. 192.168.2. 127. - -# If you want to automatically load your printer list rather -# than setting them up individually then you'll need this - load printers = yes - -# you may wish to override the location of the printcap file -; printcap name = /etc/printcap - -# on SystemV system setting printcap name to lpstat should allow -# you to automatically obtain a printer list from the SystemV spool -# system -; printcap name = lpstat - -# It should not be necessary to specify the print system type unless -# it is non-standard. Currently supported print systems include: -# bsd, cups, sysv, plp, lprng, aix, hpux, qnx -; printing = cups - -# Uncomment this if you want a guest account, you must add this to /etc/passwd -# otherwise the user "nobody" is used -; guest account = pcguest - -# this tells Samba to use a separate log file for each machine -# that connects - log file = /var/log/samba/log.%m - -# Put a capping on the size of the log files (in Kb). - max log size = 50 - -# Use password server option only with security = server -# The argument list may include: -# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] -# or to auto-locate the domain controller/s -# password server = * -; password server = - -# Use the realm option only with security = ads -# Specifies the Active Directory realm the host is part of -; realm = MY_REALM - -# Backend to store user information in. New installations should -# use either tdbsam or ldapsam. smbpasswd is available for backwards -# compatibility. tdbsam requires no further configuration. -; passdb backend = tdbsam - -# Using the following line enables you to customise your configuration -# on a per machine basis. The %m gets replaced with the netbios name -# of the machine that is connecting. -# Note: Consider carefully the location in the configuration file of -# this line. The included file is read at that point. -; include = /usr/local/samba/lib/smb.conf.%m - -# Configure Samba to use multiple interfaces -# If you have multiple network interfaces then you must list them -# here. See the man page for details. -; interfaces = 192.168.12.2/24 192.168.13.2/24 - -# Browser Control Options: -# set local master to no if you don't want Samba to become a master -# browser on your network. Otherwise the normal election rules apply -; local master = no - -# OS Level determines the precedence of this server in master browser -# elections. The default value should be reasonable -; os level = 33 - -# Domain Master specifies Samba to be the Domain Master Browser. This -# allows Samba to collate browse lists between subnets. Don't use this -# if you already have a Windows NT domain controller doing this job -; domain master = yes - -# Preferred Master causes Samba to force a local browser election on startup -# and gives it a slightly higher chance of winning the election -; preferred master = yes - -# Enable this if you want Samba to be a domain logon server for -# Windows95 workstations. -; domain logons = yes - -# if you enable domain logons then you may want a per-machine or -# per user logon script -# run a specific logon batch file per workstation (machine) -; logon script = %m.bat -# run a specific logon batch file per username -; logon script = %U.bat - -# Where to store roving profiles (only for Win95 and WinNT) -# %L substitutes for this servers netbios name, %U is username -# You must uncomment the [Profiles] share below -; logon path = \\%L\Profiles\%U - -# Windows Internet Name Serving Support Section: -# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server -; wins support = yes - -# WINS Server - Tells the NMBD components of Samba to be a WINS Client -# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both -; wins server = w.x.y.z - -# WINS Proxy - Tells Samba to answer name resolution queries on -# behalf of a non WINS capable client, for this to work there must be -# at least one WINS Server on the network. The default is NO. -; wins proxy = yes - -# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names -# via DNS nslookups. The default is NO. - dns proxy = no - -# These scripts are used on a domain controller or stand-alone -# machine to add or delete corresponding unix accounts -; add user script = /usr/sbin/useradd %u -; add group script = /usr/sbin/groupadd %g -; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u -; delete user script = /usr/sbin/userdel %u -; delete user from group script = /usr/sbin/deluser %u %g -; delete group script = /usr/sbin/groupdel %g - - -#============================ Share Definitions ============================== -[homes] - comment = Home Directories - browseable = yes - writable = yes - -# Un-comment the following and create the netlogon directory for Domain Logons -; [netlogon] -; comment = Network Logon Service -; path = /usr/local/samba/lib/netlogon -; guest ok = yes -; writable = no -; share modes = no - - -# Un-comment the following to provide a specific roving profile share -# the default is to use the user's home directory -;[Profiles] -; path = /usr/local/samba/profiles -; browseable = no -; guest ok = yes - - -# NOTE: If you have a BSD-style print system there is no need to -# specifically define each individual printer -[printers] - comment = All Printers - path = /var/spool/samba - browseable = no -# Set public = yes to allow user 'guest account' to print - guest ok = no - writable = no - printable = yes - -# This one is useful for people to share files -;[tmp] -; comment = Temporary file space -; path = /tmp -; read only = no -; public = yes - -# A publicly accessible directory, but read only, except for people in -# the "staff" group -;[public] -; comment = Public Stuff -; path = /home/samba -; public = yes -; writable = yes -; printable = no -; write list = @staff - -# Other examples. -# -# A private printer, usable only by fred. Spool data will be placed in fred's -# home directory. Note that fred must have write access to the spool directory, -# wherever it is. -;[fredsprn] -; comment = Fred's Printer -; valid users = fred -; path = /homes/fred -; printer = freds_printer -; public = no -# A private directory, usable only by fred. Note that fred requires write -# access to the directory. -;[fredsdir] -; comment = Fred's Service -; path = /usr/somewhere/private -; valid users = fred -; public = no -; writable = yes -; printable = no - -# a service which has a different directory for each machine that connects -# this allows you to tailor configurations to incoming machines. You could -# also use the %U option to tailor it by user name. -# The %m gets replaced with the machine name that is connecting. -;[pchome] -; comment = PC Directories -; path = /usr/pc/%m -; public = no -; writable = yes - -# A publicly accessible directory, read/write to all users. Note that all files -# created in the directory by users will be owned by the default user, so -# any user with access can delete any other user's files. Obviously this -# directory must be writable by the default user. Another user could of course -# be specified, in which case all files would be owned by that user instead. -;[public] -; path = /usr/somewhere/else/public -; public = yes -; only guest = yes -; writable = yes -; printable = no - -# The following two entries demonstrate how to share a directory so that two -# users can place files there that will be owned by the specific users. In this -# setup, the directory should be writable by both users and should have the -# sticky bit set on it to prevent abuse. Obviously this could be extended to -# as many users as required. -;[myshare] -; comment = Mary's and Fred's stuff -; path = /usr/somewhere/shared -; valid users = mary fred -; public = no -; writable = yes -; printable = no -; create mask = 0765 diff --git a/meta-oe/recipes-connectivity/samba/samba/smb.service b/meta-oe/recipes-connectivity/samba/samba/smb.service deleted file mode 100644 index bc0707a343f..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/smb.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Samba SMB Daemon -After=syslog.target network.target nmb.service winbind.service - -[Service] -Type=forking -PIDFile=/var/run/smbd.pid -LimitNOFILE=16384 -ExecStart=@SBINDIR@/smbd -ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID - -[Install] -WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/samba/samba/tdb.pc b/meta-oe/recipes-connectivity/samba/samba/tdb.pc deleted file mode 100644 index 6307a20a030..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/tdb.pc +++ /dev/null @@ -1,11 +0,0 @@ -prefix=/usr -exec_prefix=/usr -libdir=/usr/lib -includedir=/usr/include - -Name: tdb -Description: A trivial database -Version: 1.1.2 -Libs: -L${libdir} -ltdb -Cflags: -I${includedir} -URL: http://tdb.samba.org/ diff --git a/meta-oe/recipes-connectivity/samba/samba/tdbheaderfix.patch b/meta-oe/recipes-connectivity/samba/samba/tdbheaderfix.patch deleted file mode 100644 index e37c9b0d5c5..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/tdbheaderfix.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: source/lib/tdb/include/tdb.h -=================================================================== ---- source.orig/lib/tdb/include/tdb.h 2009-05-17 17:42:41.000000000 +0100 -+++ source/lib/tdb/include/tdb.h 2009-05-17 17:42:46.000000000 +0100 -@@ -1,6 +1,9 @@ - #ifndef __TDB_H__ - #define __TDB_H__ - -+#include -+ -+ - /* - Unix SMB/CIFS implementation. - diff --git a/meta-oe/recipes-connectivity/samba/samba/volatiles.03_samba b/meta-oe/recipes-connectivity/samba/samba/volatiles.03_samba deleted file mode 100644 index 469bc9e7b0f..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/volatiles.03_samba +++ /dev/null @@ -1,2 +0,0 @@ -# -d root root 0755 /var/log/samba none diff --git a/meta-oe/recipes-connectivity/samba/samba/winbind.service b/meta-oe/recipes-connectivity/samba/samba/winbind.service deleted file mode 100644 index bff6fb8e194..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba/winbind.service +++ /dev/null @@ -1,12 +0,0 @@ -i[Unit] -Description=Samba Winbind Daemon -After=syslog.target network.target nmb.service - -[Service] -Type=forking -PIDFile=/var/run/winbindd.pid -ExecStart=@SBINDIR@/winbindd -ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID - -[Install] -WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/samba/samba_3.6.24.bb b/meta-oe/recipes-connectivity/samba/samba_3.6.24.bb deleted file mode 100644 index 8860da08893..00000000000 --- a/meta-oe/recipes-connectivity/samba/samba_3.6.24.bb +++ /dev/null @@ -1,67 +0,0 @@ -require samba.inc -require samba-basic.inc -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://../COPYING;md5=d32239bcb673463ab874e80d47fae504" - -SRC_URI += "\ - file://config-h.patch \ - file://documentation.patch;patchdir=.. \ - file://documentation2.patch;patchdir=.. \ - file://fhs-filespaths.patch;patchdir=.. \ - file://installswat.sh.patch;patchdir=.. \ - file://pam-examples.patch;patchdir=.. \ - file://smbclient-pager.patch;patchdir=.. \ - file://undefined-symbols.patch;patchdir=.. \ - file://usershare.patch;patchdir=.. \ - file://smbtar-bashism.patch;patchdir=.. \ - file://dont-build-VFS-examples.patch;patchdir=.. \ - file://bug_221618_precise-64bit-prototype.patch;patchdir=.. \ - file://bug_598313_upstream_7499-nss_wins-dont-clobber-daemons-logs.patch;patchdir=.. \ - file://bug_387266_upstream_4104_mention-kerberos-in-smbspool-manpage.patch;patchdir=.. \ - file://bug_604768_upstream_7826_drop-using-samba-link.patch;patchdir=.. \ - file://bug_604768_upstream_7826_fix-WHATSNEW-link.patch;patchdir=.. \ - file://waf-as-source.patch;patchdir=.. \ - file://smbtorture-manpage.patch;patchdir=.. \ - file://libutil_drop_AI_ADDRCONFIG.patch;patchdir=.. \ - file://shadow_copy2_backport.patch;patchdir=.. \ - file://only_export_public_symbols.patch;patchdir=.. \ - file://configure-disable-getaddrinfo-cross.patch;patchdir=.. \ - file://configure-disable-core_pattern-cross-check.patch;patchdir=.. \ - file://configure-libunwind.patch;patchdir=.. \ -" -SRC_URI[md5sum] = "d98425c0c2b73e08f048d31ffc727fb0" -SRC_URI[sha256sum] = "11d0bd04b734731970259efc6692b8e749ff671a9b56d8cc5fa98c192ab234a7" - -S = "${WORKDIR}/samba-${PV}/source3" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind" - -EXTRA_OECONF += "\ - ac_cv_path_PYTHON=/not/exist \ - ac_cv_path_PYTHON_CONFIG=/not/exist \ - SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes \ - samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \ - linux_getgrouplist_ok=no \ - samba_cv_HAVE_BROKEN_GETGROUPS=no \ - samba_cv_HAVE_FTRUNCATE_EXTEND=yes \ - samba_cv_have_setresuid=yes \ - samba_cv_have_setresgid=yes \ - samba_cv_HAVE_WRFILE_KEYTAB=yes \ - samba_cv_linux_getgrouplist_ok=yes \ -" - -do_configure() { - gnu-configize --force - oe_runconf -} - -do_compile () { - base_do_compile -} - -do_install_append() { - rmdir "${D}${localstatedir}/lock" - rmdir "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" -} diff --git a/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb b/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb deleted file mode 100644 index 8fe6a6f9c80..00000000000 --- a/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "A serial to network proxy" -SECTION = "console/network" -HOMEPAGE = "http://sourceforge.net/projects/ser2net/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz" - -SRC_URI[md5sum] = "80011ac0e60bbdcb65f1d7a86251e3f3" -SRC_URI[sha256sum] = "fdee1e69903cf409bdc6f32403a566cbc6006aa9e2a4d6f8f12b90dfd5ca0d0e" - -inherit autotools pkgconfig - -BBCLASSEXTEND += "native nativesdk" diff --git a/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb b/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb new file mode 100644 index 00000000000..708650fb9b2 --- /dev/null +++ b/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb @@ -0,0 +1,15 @@ +SUMMARY = "A serial to network proxy" +SECTION = "console/network" +HOMEPAGE = "http://sourceforge.net/projects/ser2net/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz" + +SRC_URI[md5sum] = "562274d783534276a9feac913b7d8c4e" +SRC_URI[sha256sum] = "d846066e27c3072565990745d030357aa0c278f96b7d1d4f59023347c1db8824" + +inherit autotools pkgconfig + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch b/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch new file mode 100644 index 00000000000..f0a1d33c96b --- /dev/null +++ b/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch @@ -0,0 +1,24 @@ +Upstream-Status: Backport [debian] + +--- a/src/Makefile ++++ b/src/Makefile +@@ -37,16 +37,15 @@ + # Use the following only on GNU/Linux and only if you need ps listing like "smsd: MAINPROCESS" and "smsd: GSM1" + # CFLAGS += -D USE_LINUX_PS_TRICK + +-all: smsd +- +-smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o +- + ifneq (,$(findstring SOLARIS,$(CFLAGS))) + ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS))) + override LFLAGS += -lsocket -lnsl + endif + endif + ++all: smsd ++ ++smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o + ifneq (,$(findstring NOSTATS,$(CFLAGS))) + $(CC) $(CFLAGS) -o $@ $^ $(LFLAGS) + else diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb b/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb index 7a72a1ed3bd..310a13c22a6 100644 --- a/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb +++ b/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb @@ -6,13 +6,16 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4d21efa1bb2a186360dde4035f860682" HOMEPAGE = "http://smstools3.kekekasvi.com" SRC_URI = "http://smstools3.kekekasvi.com/packages/${BP}.tar.gz \ - file://sms_binpath_and_psops.patch" + file://sms_binpath_and_psops.patch \ + file://fix-makefile-override.patch" SRC_URI[md5sum] = "0241ef60e646fac1a06254a848e61ed7" SRC_URI[sha256sum] = "ed00ffaeaa312a5b4f969f4e97a64603a866bbe16e393ea02f5bf05234814d59" -S = "${WORKDIR}/${PN}" +S = "${WORKDIR}/${BPN}" + +EXTRA_OEMAKE += "LFLAGS='${LDFLAGS}'" RDEPENDS_${PN} = "bash" INITSCRIPT_NAME = "sms3" @@ -21,25 +24,25 @@ INITSCRIPT_PARAMS = "defaults" inherit update-rc.d do_install () { - - install -d ${D}${bindir} - install -m 755 ${S}/src/smsd "${D}${bindir}/smsd" - - install -m 755 ${S}/scripts/sendsms "${D}${bindir}/sendsms" - install -m 755 ${S}/scripts/sms2html "${D}${bindir}/sms2html" - install -m 755 ${S}/scripts/sms2unicode "${D}${bindir}/sms2unicode" - install -m 755 ${S}/scripts/unicode2sms "${D}${bindir}/unicode2sms" - - install -d ${D}${sysconfdir} - install -m 644 ${S}/examples/smsd.conf.easy "${D}${sysconfdir}/smsd.conf" - - install -d "${D}${localstatedir}/spool" - install -d "${D}${localstatedir}/spool/sms" - install -d "${D}${localstatedir}/spool/sms/incoming" - install -d "${D}${localstatedir}/spool/sms/outgoing" - install -d "${D}${localstatedir}/spool/sms/checked" - - install -d ${D}${sysconfdir}/init.d - install -m 755 ${S}/scripts/sms3 "${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}" + + install -d ${D}${bindir} + install -m 755 ${S}/src/smsd "${D}${bindir}/smsd" + + install -m 755 ${S}/scripts/sendsms "${D}${bindir}/sendsms" + install -m 755 ${S}/scripts/sms2html "${D}${bindir}/sms2html" + install -m 755 ${S}/scripts/sms2unicode "${D}${bindir}/sms2unicode" + install -m 755 ${S}/scripts/unicode2sms "${D}${bindir}/unicode2sms" + + install -d ${D}${sysconfdir} + install -m 644 ${S}/examples/smsd.conf.easy "${D}${sysconfdir}/smsd.conf" + + install -d "${D}${localstatedir}/spool" + install -d "${D}${localstatedir}/spool/sms" + install -d "${D}${localstatedir}/spool/sms/incoming" + install -d "${D}${localstatedir}/spool/sms/outgoing" + install -d "${D}${localstatedir}/spool/sms/checked" + + install -d ${D}${sysconfdir}/init.d + install -m 755 ${S}/scripts/sms3 "${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}" } diff --git a/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch b/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch deleted file mode 100644 index bf1ffdfc6fd..00000000000 --- a/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- - configure.ac | 1 + - 1 file changed, 1 insertion(+) - ---- git.orig/configure.ac -+++ git/configure.ac -@@ -7,5 +7,6 @@ AC_PROG_CC - AC_CONFIG_HEADERS([config.h]) - AC_CONFIG_FILES([Makefile lib/Makefile tools/Makefile]) - PKG_CHECK_MODULES([FTDI], [libftdi >= 0.13]) - AC_OUTPUT - AM_PROG_CC_C_O -+AM_PROG_AR diff --git a/meta-oe/recipes-connectivity/soft66/soft66_git.bb b/meta-oe/recipes-connectivity/soft66/soft66_git.bb deleted file mode 100644 index b6495267c93..00000000000 --- a/meta-oe/recipes-connectivity/soft66/soft66_git.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Library and tools for Soft66ADD and related SDR radio receivers" -LICENSE = "GPLv3 & LGPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \ - file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 " - -PNBLACKLIST[soft66] ?= "BROKEN: depends on broken libftdi" - -DEPENDS = "libftdi" - -PV = "0.1.3+gitr${SRCPV}" -PR = "r1" - -SRCREV = "a1dab25e73896c90c98227ac8055f227b830d512" -SRC_URI = "git://home.horsten.com/soft66 \ -file://fix-ar.patch" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - diff --git a/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch b/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch deleted file mode 100644 index a7737fbf035..00000000000 --- a/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch +++ /dev/null @@ -1,18 +0,0 @@ -Fix double reference to this file to work with recent autoconf+automake - -RP 1/2/10 - -Upstream-Status: Inappropriate [configuration] - -Index: libtelepathy-0.3.3/src/Makefile.am -=================================================================== ---- libtelepathy-0.3.3.orig/src/Makefile.am 2010-02-01 13:13:50.869038984 +0000 -+++ libtelepathy-0.3.3/src/Makefile.am 2010-02-01 13:14:23.267789456 +0000 -@@ -27,7 +27,6 @@ - tp-chan-type-text-gen.h \ - tp-chan-type-tubes-gen.h \ - tp-conn-iface-aliasing-gen.h \ -- tp-conn-iface-avatars-gen.h \ - tp-conn-iface-capabilities-gen.h \ - tp-conn-iface-contact-info-gen.h \ - tp-conn-iface-forwarding-gen.h \ diff --git a/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch b/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch deleted file mode 100644 index 37679ab7610..00000000000 --- a/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: libtelepathy-0.3.1/configure.ac -=================================================================== ---- libtelepathy-0.3.1.orig/configure.ac 2007-11-22 19:05:56.000000000 +0000 -+++ libtelepathy-0.3.1/configure.ac 2008-01-04 12:07:28.000000000 +0000 -@@ -51,7 +51,7 @@ - AC_MSG_ERROR([xsltproc (from the libxslt source package) is required]) - fi - --AC_CHECK_PROGS([PYTHON], [python2.3 python2.4 python2.5 python]) -+AC_CHECK_PROGS([PYTHON], [python2.5 python2.4 python2.3 python]) - if test -z "$PYTHON"; then - AC_MSG_ERROR([Python is required to compile this package]) - fi diff --git a/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb b/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb deleted file mode 100644 index f13e7093c81..00000000000 --- a/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Telepathy framework" -DESCRIPTION = "Telepathy is a D-Bus framework for unifying real time \ -communication, including instant messaging, voice calls and video calls. It \ -abstracts differences between protocols to provide a unified interface for \ -applications." -HOMEPAGE = "http://telepathy.freedesktop.org/wiki/" -DEPENDS = "glib-2.0 dbus dbus-glib telepathy-glib libxslt-native" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ - file://src/tp-conn.c;beginline=1;endline=19;md5=4c58069f77d601cc59200bce5396c7cb" -PR = "r5" - -SRC_URI = "http://telepathy.freedesktop.org/releases/libtelepathy/libtelepathy-${PV}.tar.gz \ - file://prefer_python_2.5.patch \ - file://doublefix.patch" - -SRC_URI[md5sum] = "490ca1a0c614d4466394b72d43bf7370" -SRC_URI[sha256sum] = "e0d230be855125163579743418203c6f6be2f10f98c4f065735c1dc9ed115878" - -inherit autotools pkgconfig pythonnative - -FILES_${PN} += "${datadir}/telepathy \ - ${datadir}/dbus-1" diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb index 6b8c20c3812..01c6e3781ed 100644 --- a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb +++ b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb @@ -1,7 +1,7 @@ SUMMARY = "Telepathy Framework glib-base helper library" DESCRIPTION = "Telepathy Framework: GLib-based helper library for connection managers" HOMEPAGE = "http://telepathy.freedesktop.org/wiki/" -DEPENDS = "glib-2.0 dbus python-native-runtime dbus-native dbus-glib libxslt-native" +DEPENDS = "glib-2.0 dbus hostpython-runtime-native dbus-native dbus-glib libxslt-native" LICENSE = "LGPLv2.1+" SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BP}.tar.gz" @@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "ae0002134991217f42e503c43dea7817853afc18863b913744d51ffa02 LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e" -inherit autotools pkgconfig gettext +inherit autotools pkgconfig gettext gobject-introspection FILES_${PN} += "${datadir}/telepathy \ ${datadir}/dbus-1" diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch b/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch deleted file mode 100644 index ece1da6bc37..00000000000 --- a/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch +++ /dev/null @@ -1,76 +0,0 @@ -From: Robert Yang -Date: Sun, 22 Sep 2013 23:21:01 -0400 -Subject: [PATCH] src/Makefile.am: fix race issue for _gen/gtypes.h and _gen/gtypes-body.h - -There might be an error when parallel build: - -[snip] -Traceback (most recent call last): - File "/path/to/tools/glib-gtypes-generator.py", line 304, in - GTypesGenerator(dom, argv[1], argv[2])() - File "/path/to/tools/glib-gtypes-generator.py", line 295, in __call__ - file_set_contents(self.output + '.h', ''.join(self.header)) - File "/path/to/tools/libtpcodegen.py", line 42, in file_set_contents - os.rename(filename + '.tmp', filename) -OSError: [Errno 2] No such file or directory -[snip] - -This is a race issue, the _gen/gtypes.h and _gen/gtypes-body.h may -write(remove/rename) _gen/gtypes.tmp at the same time, then there would -be the error. - -There was a similar bug in telepathy-glib which was already fixed, we use the -similar patch to fix it. - -Upstream-Status: Pending - -Signed-off-by: Robert Yang ---- - src/Makefile.am | 18 +++++++++++++++--- - 1 file changed, 15 insertions(+), 3 deletions(-) - -diff --git a/src/Makefile.am b/src/Makefile.am ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -288,7 +288,11 @@ _gen/interfaces-body.h: _gen/mcd.xml \ - $(tools_dir)/glib-interfaces-body-generator.xsl \ - $< > $@ - --_gen/gtypes.h _gen/gtypes-body.h: _gen/mcd.xml \ -+# do nothing, output as a side-effect -+_gen/gtypes.h: _gen/gtypes-body.h -+ @: -+ -+_gen/gtypes-body.h: _gen/mcd.xml \ - $(top_srcdir)/tools/glib-gtypes-generator.py - $(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/glib-gtypes-generator.py \ - $< _gen/gtypes mc -@@ -309,7 +313,11 @@ _gen/%.xml: %.xml $(wildcard $(top_srcdir)/xml/*.xml) Makefile.am - $(AM_V_GEN)$(XSLTPROC) $(XSLTPROCFLAGS) --xinclude $(tools_dir)/identity.xsl \ - $< > $@ - --_gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \ -+# do nothing, output as a side-effect -+_gen/cli-%.h: _gen/cli-%-body.h -+ @: -+ -+_gen/cli-%-body.h: _gen/%.xml \ - $(tools_dir)/glib-client-gen.py Makefile.am - $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-client-gen.py \ - --group=`echo $* | tr x- x_` \ -@@ -317,7 +325,11 @@ _gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \ - --tp-proxy-api=0.7.6 \ - $< Mc_Cli _gen/cli-$* - --_gen/svc-%.c _gen/svc-%.h: _gen/%.xml \ -+# do nothing, output as a side-effect -+_gen/svc-%.h: _gen/svc-%.c -+ @: -+ -+_gen/svc-%.c: _gen/%.xml \ - $(tools_dir)/glib-ginterface-gen.py Makefile.am - $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \ - --filename=_gen/svc-$* \ --- -1.7.10.4 - diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb deleted file mode 100644 index 9ae68ddea98..00000000000 --- a/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Central control for Telepathy IM connection managers" -HOMEPAGE = "http://telepathy.freedesktop.org/wiki/Mission_Control/" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ - file://src/request.h;beginline=1;endline=21;md5=f80534d9af1c33291b3b79609f196eb2" -SECTION = "libs" -DEPENDS = "libtelepathy dbus-glib gconf libxslt-native" - -SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-mission-control/${BP}.tar.gz \ - file://tmc-Makefile-fix-race.patch \ - " -SRC_URI[md5sum] = "421115a35b9e427807326877f86e7f43" -SRC_URI[sha256sum] = "14ceb7d53535b43d44b8271ad11319d1d0fe6d193d154636b9e62b42799b9723" - -inherit autotools-brokensep pkgconfig pythonnative - -PACKAGECONFIG ??= "" -PACKAGECONFIG[upower] = "--enable-upower,--disable-upower,upower" - -# to select connman or nm you need to use "connectivity" and "connman" or "nm", default is to disable both -PACKAGECONFIG[connectivity] = ",--with-connectivity=no" -PACKAGECONFIG[connman] = "--with-connectivity=connman,,connman" -PACKAGECONFIG[nm] = "--with-connectivity=nm,,networkmanager" - -PACKAGES =+ " \ - libmissioncontrol \ - libmissioncontrol-config \ - libmissioncontrol-server \ - libmissioncontrol-dev \ - libmissioncontrol-config-dev \ - libmissioncontrol-server-dev \ - libmissioncontrol-dbg \ - libmissioncontrol-config-dbg \ - libmissioncontrol-server-dbg \ -" - -FILES_${PN} += "${datadir}/dbus* ${datadir}/glib-2.0/schemas" - -FILES_libmissioncontrol = "${libdir}/libmissioncontrol.so.*" -FILES_libmissioncontrol-config = "${libdir}/libmissioncontrol-config.so.*" -FILES_libmissioncontrol-server = "${libdir}/libmissioncontrol-server.so.*" - -FILES_libmissioncontrol-dev = "${libdir}/libmissioncontrol.* \ - ${includedir}/libmissioncontrol/ \ - ${libdir}/pkgconfig/libmissioncontrol.pc" -FILES_libmissioncontrol-config-dev = "${libdir}/libmissioncontrol-config.*" -FILES_libmissioncontrol-server-dev = "${libdir}/libmissioncontrol-server.*" - -FILES_libmissioncontrol-dbg = "${libdir}/.debug/libmissioncontrol.so.*" -FILES_libmissioncontrol-config-dbg = "${libdir}/.debug/libmissioncontrol-config.so.*" -FILES_libmissioncontrol-server-dbg = "${libdir}/.debug/libmissioncontrol-server.so.*" diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch new file mode 100644 index 00000000000..fcc2f082148 --- /dev/null +++ b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch @@ -0,0 +1,27 @@ +From b3da0d8677b7e8467367a303c18551c56ed20e15 Mon Sep 17 00:00:00 2001 +From: Philip Balister +Date: Tue, 12 Apr 2016 17:30:15 -0400 +Subject: [PATCH] Forcibly disable check for Qt5. + +Signed-off-by: Philip Balister +--- + build/cmake/DefineOptions.cmake | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/build/cmake/DefineOptions.cmake b/build/cmake/DefineOptions.cmake +index 62e240f..f8b4493 100644 +--- a/build/cmake/DefineOptions.cmake ++++ b/build/cmake/DefineOptions.cmake +@@ -52,9 +52,6 @@ CMAKE_DEPENDENT_OPTION(WITH_LIBEVENT "Build with libevent support" ON + find_package(Qt4 QUIET COMPONENTS QtCore QtNetwork) + CMAKE_DEPENDENT_OPTION(WITH_QT4 "Build with Qt4 support" ON + "QT4_FOUND" OFF) +-find_package(Qt5 QUIET COMPONENTS Core Network) +-CMAKE_DEPENDENT_OPTION(WITH_QT5 "Build with Qt5 support" ON +- "Qt5_FOUND" OFF) + if(${WITH_QT4} AND ${WITH_QT5} AND ${CMAKE_MAJOR_VERSION} LESS 3) + # cmake < 3.0.0 causes conflict when building both Qt4 and Qt5 + set(WITH_QT4 OFF) +-- +2.5.5 + diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch new file mode 100644 index 00000000000..7cc8d173931 --- /dev/null +++ b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch @@ -0,0 +1,110 @@ +From bc577820ad25795543b31f123e309cdaebc7d6c6 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer +Date: Mon, 16 May 2016 15:21:10 -0400 +Subject: [PATCH 1/2] THRIFT-3828 In cmake avoid use of both quoted paths and + SYSTEM with include_directories() + +This allows us to avoid issues where there are no paths to be added to +the include path (include_directories() errors when given an empty +string). + +Specifically, gcc-6 requires that libraries stop passing paths like +'/usr/include' (or they will get libstdc++ build errors), so these paths +will be empty more often in the future. +--- + lib/cpp/CMakeLists.txt | 8 ++++---- + lib/cpp/test/CMakeLists.txt | 2 +- + test/cpp/CMakeLists.txt | 6 +++--- + tutorial/cpp/CMakeLists.txt | 2 +- + 4 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/lib/cpp/CMakeLists.txt b/lib/cpp/CMakeLists.txt +index 4c7caeb..a716ac3 100755 +--- a/lib/cpp/CMakeLists.txt ++++ b/lib/cpp/CMakeLists.txt +@@ -24,7 +24,7 @@ else() + find_package(Boost 1.53.0 REQUIRED) + endif() + +-include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") ++include_directories(${Boost_INCLUDE_DIRS}) + include_directories(src) + + # SYSLIBS contains libraries that need to be linked to all lib targets +@@ -104,7 +104,7 @@ if(OPENSSL_FOUND AND WITH_OPENSSL) + src/thrift/transport/TSSLSocket.cpp + src/thrift/transport/TSSLServerSocket.cpp + ) +- include_directories(SYSTEM "${OPENSSL_INCLUDE_DIR}") ++ include_directories(${OPENSSL_INCLUDE_DIR}) + list(APPEND SYSLIBS "${OPENSSL_LIBRARIES}") + endif() + +@@ -162,7 +162,7 @@ TARGET_LINK_LIBRARIES_THRIFT(thrift ${SYSLIBS}) + + if(WITH_LIBEVENT) + find_package(Libevent REQUIRED) # Libevent comes with CMake support form upstream +- include_directories(SYSTEM ${LIBEVENT_INCLUDE_DIRS}) ++ include_directories(${LIBEVENT_INCLUDE_DIRS}) + + ADD_LIBRARY_THRIFT(thriftnb ${thriftcppnb_SOURCES}) + TARGET_LINK_LIBRARIES_THRIFT(thriftnb ${SYSLIBS} ${LIBEVENT_LIBRARIES}) +@@ -171,7 +171,7 @@ endif() + + if(WITH_ZLIB) + find_package(ZLIB REQUIRED) +- include_directories(SYSTEM ${ZLIB_INCLUDE_DIRS}) ++ include_directories(${ZLIB_INCLUDE_DIRS}) + + ADD_LIBRARY_THRIFT(thriftz ${thriftcppz_SOURCES}) + TARGET_LINK_LIBRARIES_THRIFT(thriftz ${SYSLIBS} ${ZLIB_LIBRARIES}) +diff --git a/lib/cpp/test/CMakeLists.txt b/lib/cpp/test/CMakeLists.txt +index 5de9fc4..c956c38 100644 +--- a/lib/cpp/test/CMakeLists.txt ++++ b/lib/cpp/test/CMakeLists.txt +@@ -20,7 +20,7 @@ + # Find required packages + set(Boost_USE_STATIC_LIBS ON) # Force the use of static boost test framework + find_package(Boost 1.53.0 REQUIRED COMPONENTS chrono filesystem system thread unit_test_framework) +-include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") ++include_directories(${Boost_INCLUDE_DIRS}) + + #Make sure gen-cpp files can be included + include_directories("${CMAKE_CURRENT_BINARY_DIR}") +diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt +index 2d75f2e..b1409de 100755 +--- a/test/cpp/CMakeLists.txt ++++ b/test/cpp/CMakeLists.txt +@@ -22,13 +22,13 @@ include(ThriftMacros) + + set(Boost_USE_STATIC_LIBS ON) + find_package(Boost 1.53.0 REQUIRED COMPONENTS program_options system filesystem) +-include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") ++include_directories(${Boost_INCLUDE_DIRS}) + + find_package(OpenSSL REQUIRED) +-include_directories(SYSTEM "${OPENSSL_INCLUDE_DIR}") ++include_directories(${OPENSSL_INCLUDE_DIR}) + + find_package(Libevent REQUIRED) # Libevent comes with CMake support from upstream +-include_directories(SYSTEM ${LIBEVENT_INCLUDE_DIRS}) ++include_directories(${LIBEVENT_INCLUDE_DIRS}) + + #Make sure gen-cpp files can be included + include_directories("${CMAKE_CURRENT_BINARY_DIR}") +diff --git a/tutorial/cpp/CMakeLists.txt b/tutorial/cpp/CMakeLists.txt +index 2b0c143..5ecae17 100644 +--- a/tutorial/cpp/CMakeLists.txt ++++ b/tutorial/cpp/CMakeLists.txt +@@ -18,7 +18,7 @@ + # + + find_package(Boost 1.53.0 REQUIRED) +-include_directories(SYSTEM "${Boost_INCLUDE_DIRS}") ++include_directories(${Boost_INCLUDE_DIRS}) + + #Make sure gen-cpp files can be included + include_directories("${CMAKE_CURRENT_BINARY_DIR}") +-- +2.9.3 + diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch new file mode 100644 index 00000000000..f13adbb6bc4 --- /dev/null +++ b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch @@ -0,0 +1,40 @@ +From f6cad0580e5391c37af7f60adddb71bf1a403dc4 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer +Date: Fri, 9 Sep 2016 15:50:26 -0400 +Subject: [PATCH 2/2] THRIFT-3831 in test/cpp explicitly use `signed char` + +`char`'s signed-ness is implimentation dependent, and in the case where +`char` was not signed, we previously recieved errors like + + thrift/0.9.3-r0/git/test/cpp/src/TestClient.cpp:404:15: error: narrowing conversion of '-127' from 'int' to 'char' inside { } [-Wnarrowing] + +(This example from gcc-6 on arm) +--- + test/cpp/src/TestClient.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp +index e709899..4a961f8 100644 +--- a/test/cpp/src/TestClient.cpp ++++ b/test/cpp/src/TestClient.cpp +@@ -383,7 +383,7 @@ int main(int argc, char** argv) { + * BINARY TEST + */ + printf("testBinary([-128..127]) = {"); +- const char bin_data[256] ++ const signed char bin_data[256] + = {-128, -127, -126, -125, -124, -123, -122, -121, -120, -119, -118, -117, -116, -115, -114, + -113, -112, -111, -110, -109, -108, -107, -106, -105, -104, -103, -102, -101, -100, -99, + -98, -97, -96, -95, -94, -93, -92, -91, -90, -89, -88, -87, -86, -85, -84, +@@ -404,7 +404,7 @@ int main(int argc, char** argv) { + 127}; + try { + string bin_result; +- testClient.testBinary(bin_result, string(bin_data, 256)); ++ testClient.testBinary(bin_result, string(reinterpret_cast(bin_data), 256)); + if (bin_result.size() != 256) { + printf("}\n*** FAILED ***\n"); + printf("invalid length: %lu\n", bin_result.size()); +-- +2.9.3 + diff --git a/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb b/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb new file mode 100644 index 00000000000..aa932837129 --- /dev/null +++ b/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb @@ -0,0 +1,64 @@ +SUMMARY = "Apache Thrift" +DESCRIPTION = "A software framework, for scalable cross-language services development" +HOMEPAGE = "https://thrift.apache.org/" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e4ed21f679b2aafef26eac82ab0c2cbf \ + file://NOTICE;md5=115f49498b66b494b0472658f2bfe80b" + +DEPENDS = "thrift-native boost flex-native bison-native openssl" + +SRC_URI = "http://mirror.switch.ch/mirror/apache/dist/thrift/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-Forcibly-disable-check-for-Qt5.patch \ + file://0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch \ + file://0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch \ +" + +SRC_URI[md5sum] = "88d667a8ae870d5adeca8cb7d6795442" +SRC_URI[sha256sum] = "b0740a070ac09adde04d43e852ce4c320564a292f26521c46b78e0641564969e" + +BBCLASSEXTEND = "native nativesdk" + +inherit pkgconfig cmake pythonnative + +export STAGING_INCDIR +export STAGING_LIBDIR +export BUILD_SYS +export HOST_SYS + +EXTRA_OECMAKE = " \ + -DBUILD_LIBRARIES=ON \ + -DBUILD_COMPILER=ON \ + -DBUILD_TESTING=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_TUTORIALS=OFF \ + -DWITH_CPP=ON \ + -DWITH_JAVA=OFF \ + -DWITH_STATIC_LIB=ON \ + -DWITH_SHARED_LIB=ON \ + -DWITH_OPENSSL=ON \ + -DWITH_QT4=OFF \ + -DWITH_QT5=OFF \ +" + +PACKAGECONFIG ??= "libevent glib python" +PACKAGECONFIG[libevent] = "-DWITH_LIBEVENT=ON,-DWITH_LIBEVENT=OFF,libevent," +PACKAGECONFIG[python] = "-DWITH_PYTHON=ON,-DWITH_PYTHON=OFF,python," +PACKAGECONFIG[glib] = "-DWITH_C_GLIB=ON,-DWITH_C_GLIB=OFF,glib-2.0 ," + +do_install_append () { + ln -sf thrift ${D}/${bindir}/thrift-compiler +} + +LEAD_SONAME = "libthrift.so.${PV}" + +# thrift packages +PACKAGE_BEFORE_PN = "${PN}-compiler lib${BPN}" +FILES_lib${BPN} = "${libdir}/*.so.*" +FILES_${PN}-compiler = "${bindir}/*" + +# The thrift packages just pulls in some default dependencies but is otherwise empty +RRECOMMENDS_${PN} = "${PN}-compiler lib${BPN}" +ALLOW_EMPTY_${PN} = "1" +RRECOMMENDS_${PN}_class-native = "" +RRECOMMENDS_${PN}_class-nativesdk = "" diff --git a/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch b/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch new file mode 100644 index 00000000000..8e5f4da362f --- /dev/null +++ b/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch @@ -0,0 +1,26 @@ +From a0ad5128d14b022239445e251cf4a9826e86aa96 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 07:48:31 -0700 +Subject: [PATCH] Add format string to fprintf() call + +Signed-off-by: Khem Raj +--- + src/vt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vt.c b/src/vt.c +index 795d393..a533d3d 100644 +--- a/src/vt.c ++++ b/src/vt.c +@@ -499,7 +499,7 @@ static int vt_cmd_dump_candidates(const struct vt_handle *vh, + } + llen += cmdlen; + +- ret = fprintf(vh->vh_stream, e->cmd); ++ ret = fprintf(vh->vh_stream, "%s", e->cmd); + if (ret < 0) + return ret; + +-- +2.13.2 + diff --git a/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch b/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch new file mode 100644 index 00000000000..dbf00826407 --- /dev/null +++ b/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch @@ -0,0 +1,23 @@ +When "make -j10", the compilation will fail, +because scan.c has included gram.h, but gram.h was produced +after scan.c was compiled + +So add this dependency to ensure that gram.h is produced +before scan.c is produced. + +Upstream-Status: Inappropriate [upstream is not active] + +Signed-off-by: Roy.Li +Signed-off-by: Jackie Huang +--- + src/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -81,3 +81,5 @@ CLEANFILES = gram.c gram.h \ + + DISTCLEANFILES = $(BUILT_SOURCES) + MAINTAINERCLEANFILES = Makefile.in ++ ++scan.c: gram.h diff --git a/meta-oe/recipes-connectivity/umip/files/mip6d b/meta-oe/recipes-connectivity/umip/files/mip6d new file mode 100755 index 00000000000..ebd70a6ccae --- /dev/null +++ b/meta-oe/recipes-connectivity/umip/files/mip6d @@ -0,0 +1,112 @@ +#!/bin/sh +# +# mip6d Start script for the Mobile IPv6 daemon +# +# chkconfig: - 55 25 +# description: The mobile IPv6 daemon allows nodes to remain \ +# reachable while moving around in the IPv6 Internet. +# processname: mip6d +# config: /etc/mip6d.conf +# config: /etc/sysconfig/mip6d +# +### BEGIN INIT INFO +# Provides: mipv6-daemon +# Required-Start: $local_fs $remote_fs $network $named +# Required-Stop: $local_fs $remote_fs $network +# Should-Start: $syslog +# Should-Stop: $network $syslog +# Default-Start: +# Default-Stop: 0 1 6 +# Short-Description: Start and stop Mobile IPV6 daemon +# Description: The mobile IPv6 daemon allows nodes to remain +# reachable while moving around in the IPv6 Internet. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +if [ -f /etc/sysconfig/mip6d ]; then + . /etc/sysconfig/mip6d +fi + +mip6d=/usr/sbin/mip6d +prog="mip6d" +lockfile=/var/lock/subsys/$prog + +start() { + [ -x $mip6d ] || exit 5 + echo -n $"Starting $prog: " + start-stop-daemon -S -x ${mip6d} && success || failure + retval=$? + echo + [ $retval -eq 0 ] && touch ${lockfile} + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + start-stop-daemon -K -x $mip6d + retval=$? + echo + [ $retval -eq 0 ] && rm -f ${lockfile} + return $retval +} + +restart() { + stop + start +} + +reload() +{ + echo -n $"Reloading $prog configuration: " + killproc $mip6d -HUP + retval=$? + echo + return $retval +} + +force_reload() { + restart +} + +rh_status() { + status $prog +} + +rh_status_q() { + rh_status > /dev/null 2>&1 +} + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $prog {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac + +exit $? diff --git a/meta-oe/recipes-connectivity/umip/files/mip6d.service b/meta-oe/recipes-connectivity/umip/files/mip6d.service new file mode 100644 index 00000000000..2b5a5b9f1dc --- /dev/null +++ b/meta-oe/recipes-connectivity/umip/files/mip6d.service @@ -0,0 +1,10 @@ +[Unit] +Description=MIPL Mobile IPv6 +After=network.target + +[Service] +EnvironmentFile=-@SYSCONFDIR@/sysconfig/mip6d +ExecStart=@SBINDIR@/mip6d $ARGS + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/umip/umip_1.0.bb b/meta-oe/recipes-connectivity/umip/umip_1.0.bb index 76901abf702..2129e379cb2 100644 --- a/meta-oe/recipes-connectivity/umip/umip_1.0.bb +++ b/meta-oe/recipes-connectivity/umip/umip_1.0.bb @@ -9,10 +9,32 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=073dc31ccb2ebed70db54f1e8aeb4c33" DEPENDS = "rpm indent-native" -SRC_URI = "git://git.umip.org/umip.git" -SRCREV = "428974c2d0d8e75a2750a3ab0488708c5dfdd8e3" +SRC_URI = "git://github.com/jlanza/umip \ + file://add-dependency-to-support-parallel-compilation.patch \ + file://mip6d \ + file://mip6d.service \ + file://0001-Add-format-string-to-fprintf-call.patch \ + " +SRCREV = "7d67209cd1bba2dd0e183a0fa07eeef07964dd14" S = "${WORKDIR}/git" -EXTRA_OE_CONF = "--enable-vt" -inherit autotools-brokensep +EXTRA_OECONF = "--enable-vt" + +inherit autotools-brokensep systemd update-rc.d + +INITSCRIPT_NAME = "mip6d" +INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ." + +SYSTEMD_SERVICE_${PN} = "mip6d.service" +SYSTEMD_AUTO_ENABLE = "disable" + +do_install_append() { + install -D -m 0755 ${WORKDIR}/mip6d ${D}${sysconfdir}/init.d/mip6d + install -D -m 0644 ${WORKDIR}/mip6d.service ${D}${systemd_system_unitdir}/mip6d.service + sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${systemd_system_unitdir}/mip6d.service +} + +RRECOMMENDS_${PN} = "kernel-module-mip6 kernel-module-ipv6" diff --git a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb index 52bf811e348..4365aa4bc6e 100644 --- a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb +++ b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb @@ -18,7 +18,7 @@ S = "${WORKDIR}/git" FILES_${PN} += "${base_libdir}/udev/rules.d/" # fix usbmuxd installing files to /usr/lib64 on 64bit hosts: -EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib', True).replace('lib', '')}" +EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" PACKAGECONFIG ??= "" PACKAGECONFIG[plist] = "-DWANT_PLIST=1,-DWANT_PLIST=0,libplist" diff --git a/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb b/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb index f7adf4c9f4f..3a71fb97903 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb +++ b/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb @@ -4,6 +4,8 @@ DESCRIPTION = "WvDial is a program that makes it easy to connect your Linux work LICENSE = "LGPLv2" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" +inherit pkgconfig + DEPENDS = "wvstreams" RDEPENDS_${PN} = "ppp" diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch new file mode 100644 index 00000000000..b092ba2fced --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch @@ -0,0 +1,26 @@ +From 7deaf836d1f1b9e4426818584b4267f8c4a095aa Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Jul 2017 21:04:07 -0700 +Subject: [PATCH 1/5] Check for limits.h during configure + +Signed-off-by: Khem Raj +--- + configure.ac | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure.ac b/configure.ac +index fe0fa2b..188adfe 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -139,6 +139,8 @@ int main() + [Compiler warning on deprecated functions])]) + CPPFLAGS="$CPPFLAGS_save" + ++AC_CHECK_HEADERS(limits.h) ++ + # argp + USE_WVSTREAMS_ARGP=0 + AC_CHECK_HEADERS(argp.h) +-- +2.13.3 + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch new file mode 100644 index 00000000000..6bc34331d66 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch @@ -0,0 +1,76 @@ +From 90de630f21ac744a37b3adac1bd84654471744ff Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 24 Aug 2017 22:30:01 -0700 +Subject: [PATCH 1/2] build: fix parallel make + +Imported from Gentoo + +Signed-off-by: Khem Raj +--- + Makefile | 15 +++++++++++++-- + wvrules-posix.mk | 7 +++++-- + 2 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index 72c8bef..5a4cfb2 100644 +--- a/Makefile ++++ b/Makefile +@@ -131,12 +131,19 @@ utils/tests/%: PRELIBS+=$(LIBWVSTREAMS) + # libwvstreams: stream/event handling library + # + TARGETS += libwvstreams.so +-TARGETS += crypto/tests/ssltest ipstreams/tests/unixtest ++TARGETS += crypto/tests/ssltest ++crypto/tests/ssltest: $(LIBWVSTREAMS) ++ ++TARGETS += ipstreams/tests/unixtest ++ipstreams/tests/unixtest: $(LIBWVSTREAMS) ++ + TARGETS += crypto/tests/printcert ++crypto/tests/printcert: $(LIBWVSTREAMS) + + ifndef _MACOS + ifneq ("$(with_readline)", "no") + TARGETS += ipstreams/tests/wsd ++ ipstreams/tests/wsd: $(LIBWVSTREAMS) + ipstreams/tests/wsd-LIBS += -lreadline + else + TEST_SKIP_OBJS += ipstreams/tests/wsd +@@ -179,7 +186,11 @@ uniconf/tests/%: PRELIBS+=$(LIBUNICONF) + # + ifneq ("$(with_dbus)", "no") + TARGETS += libwvdbus.so +- TARGETS += dbus/tests/wvdbus dbus/tests/wvdbusd ++ TARGETS += dbus/tests/wvdbus ++ dbus/tests/wvdbus: $(LIBWVDBUS) ++ ++ TARGETS += dbus/tests/wvdbusd ++ dbus/tests/wvdbusd: $(LIBWVDBUS) + TESTS += $(call tests_cc,dbus/tests) + libwvdbus_OBJS += $(call objects,dbus) + libwvdbus.so: $(libwvdbus_OBJS) $(LIBWVSTREAMS) +diff --git a/wvrules-posix.mk b/wvrules-posix.mk +index f94d2cd..2e99f36 100644 +--- a/wvrules-posix.mk ++++ b/wvrules-posix.mk +@@ -80,12 +80,15 @@ define wvlink_ar + $(AR) s $1 + endef + +-CC: FORCE ++CC: + @CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ + $(WVSTREAMS)/gen-cc CC c + +-CXX: FORCE ++CXX: + @CC="$(CXX)" CFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ + $(WVSTREAMS)/gen-cc CXX cc + ++#All files must depend on the above two rules. This is a godawful hack. ++$(shell find -type f '(' -name '*.c' -o -name '*.cc' ')' ): CC CXX ++ + wvlink=$(LINK_MSG)$(WVLINK_CC) $(LDFLAGS) $($1-LDFLAGS) -o $1 $(filter %.o %.a %.so, $2) $($1-LIBS) $(XX_LIBS) $(LDLIBS) $(PRELIBS) $(LIBS) +-- +2.14.1 + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch new file mode 100644 index 00000000000..59f70e380d4 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch @@ -0,0 +1,29 @@ +From 4afff42714a15cb796d3589d87c6fac4558b2c95 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 24 Aug 2017 22:33:32 -0700 +Subject: [PATCH 2/2] wvrules.mk: Use _DEFAULT_SOURCE + +Fixes warnings with newer glibc +warning: "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" + +Signed-off-by: Khem Raj +--- + wvrules.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wvrules.mk b/wvrules.mk +index 877f700..124bffd 100644 +--- a/wvrules.mk ++++ b/wvrules.mk +@@ -83,7 +83,7 @@ runtests: + + INCFLAGS=$(addprefix -I,$(WVSTREAMS_INC) $(XPATH)) + CPPFLAGS+=$(INCFLAGS) \ +- -D_BSD_SOURCE -D_GNU_SOURCE $(OSDEFINE) \ ++ -D_DEFAULT_SOURCE $(OSDEFINE) \ + -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \ + -DUNSTABLE + +-- +2.14.1 + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch new file mode 100644 index 00000000000..232db9e63b7 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch @@ -0,0 +1,135 @@ +From 0e054339c1422168a7f4a9dcf090268053a33b1f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Jul 2017 21:05:37 -0700 +Subject: [PATCH 2/5] wvtask: Dont use ucontext on non-glibc systems + +Signed-off-by: Khem Raj +--- + utils/wvtask.cc | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/utils/wvtask.cc b/utils/wvtask.cc +index cdcd544..c0bff7d 100644 +--- a/utils/wvtask.cc ++++ b/utils/wvtask.cc +@@ -199,7 +199,9 @@ WvTaskMan::WvTaskMan() + stacktop = (char *)alloca(0); + + context_return = 0; ++#ifdef __GLIBC__ + assert(getcontext(&get_stack_return) == 0); ++#endif + if (context_return == 0) + { + // initial setup - start the stackmaster() task (never returns!) +@@ -265,13 +267,17 @@ int WvTaskMan::run(WvTask &task, int val) + state = &old_task->mystate; + + context_return = 0; ++#ifdef __GLIBC__ + assert(getcontext(state) == 0); ++#endif + int newval = context_return; + if (newval == 0) + { + // saved the state, now run the task. + context_return = val; ++#ifdef __GLIBC__ + setcontext(&task.mystate); ++#endif + return -1; + } + else +@@ -319,13 +325,17 @@ int WvTaskMan::yield(int val) + #endif + + context_return = 0; ++#ifdef __GLIBC__ + assert(getcontext(¤t_task->mystate) == 0); ++#endif + int newval = context_return; + if (newval == 0) + { + // saved the task state; now yield to the toplevel. + context_return = val; ++#ifdef __GLIBC__ + setcontext(&toplevel); ++#endif + return -1; + } + else +@@ -341,7 +351,9 @@ int WvTaskMan::yield(int val) + void WvTaskMan::get_stack(WvTask &task, size_t size) + { + context_return = 0; ++#ifdef __GLIBC__ + assert(getcontext(&get_stack_return) == 0); ++#endif + if (context_return == 0) + { + assert(magic_number == -WVTASK_MAGIC); +@@ -371,7 +383,9 @@ void WvTaskMan::get_stack(WvTask &task, size_t size) + // initial setup + stack_target = &task; + context_return = size/1024 + (size%1024 > 0); ++#ifdef __GLIBC__ + setcontext(&stackmaster_task); ++#endif + } + else + { +@@ -409,7 +423,9 @@ void WvTaskMan::_stackmaster() + assert(magic_number == -WVTASK_MAGIC); + + context_return = 0; ++#ifdef __GLIBC__ + assert(getcontext(&stackmaster_task) == 0); ++#endif + val = context_return; + if (val == 0) + { +@@ -419,7 +435,9 @@ void WvTaskMan::_stackmaster() + // all current stack allocations) and go back to get_stack + // (or the constructor, if that's what called us) + context_return = 1; ++#ifdef __GLIBC__ + setcontext(&get_stack_return); ++#endif + } + else + { +@@ -474,7 +492,9 @@ void WvTaskMan::do_task() + + // back here from longjmp; someone wants stack space. + context_return = 0; ++#ifdef __GLIBC__ + assert(getcontext(&task->mystate) == 0); ++#endif + if (context_return == 0) + { + // done the setjmp; that means the target task now has +@@ -510,7 +530,9 @@ void WvTaskMan::do_task() + } + else + { ++#ifdef __GLIBC__ + assert(getcontext(&task->func_call) == 0); ++#endif + task->func_call.uc_stack.ss_size = task->stacksize; + task->func_call.uc_stack.ss_sp = task->stack; + task->func_call.uc_stack.ss_flags = 0; +@@ -521,9 +543,11 @@ void WvTaskMan::do_task() + (void (*)(void))call_func, 1, task); + + context_return = 0; ++#ifdef __GLIBC__ + assert(getcontext(&task->func_return) == 0); + if (context_return == 0) + setcontext(&task->func_call); ++#endif + } + + // the task's function terminated. +-- +2.13.3 + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch new file mode 100644 index 00000000000..f9304197aef --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch @@ -0,0 +1,27 @@ +From f1fc9f4d523dd8b773a4535176547b0619ec05c6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Jul 2017 21:08:57 -0700 +Subject: [PATCH 3/5] wvtask: Check for HAVE_LIBC_STACK_END only on glibc + systems + +Signed-off-by: Khem Raj +--- + utils/wvtask.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/utils/wvtask.cc b/utils/wvtask.cc +index c0bff7d..716344b 100644 +--- a/utils/wvtask.cc ++++ b/utils/wvtask.cc +@@ -563,7 +563,7 @@ void WvTaskMan::do_task() + + const void *WvTaskMan::current_top_of_stack() + { +-#ifdef HAVE_LIBC_STACK_END ++#if defined(HAVE_LIBC_STACK_END) && defined(__GLIBC__) + extern const void *__libc_stack_end; + if (use_shared_stack() || current_task == NULL) + return __libc_stack_end; +-- +2.13.3 + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch new file mode 100644 index 00000000000..6f3fbffbdf3 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch @@ -0,0 +1,28 @@ +From bfe68126693f9159f7ac66a69217e0b5f43e5781 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Jul 2017 21:11:21 -0700 +Subject: [PATCH 4/5] wvcrash: Replace use of basename API + +musl does not have this API + +Signed-off-by: Khem Raj +--- + utils/wvcrash.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/utils/wvcrash.cc b/utils/wvcrash.cc +index 0417759..3d160b7 100644 +--- a/utils/wvcrash.cc ++++ b/utils/wvcrash.cc +@@ -404,7 +404,7 @@ extern void __wvcrash_init_buffers(const char *program_name); + void wvcrash_setup(const char *_argv0, const char *_desc) + { + if (_argv0) +- argv0 = basename(_argv0); ++ argv0 = strrchr(_argv0, '/') ? strrchr(_argv0, '/')+1 : _argv0; + __wvcrash_init_buffers(argv0); + if (_desc) + { +-- +2.13.3 + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch new file mode 100644 index 00000000000..25e9ee23696 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch @@ -0,0 +1,30 @@ +From fd9515f08dcdafea6ae03413fbe5a43a6438fe3e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Jul 2017 21:25:48 -0700 +Subject: [PATCH 5/5] check for libexecinfo during configure + +Signed-off-by: Khem Raj +--- + configure.ac | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 188adfe..1ab4d3c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -159,6 +159,12 @@ AC_SEARCH_LIBS([argp_parse], [argp c], [], [ + USE_WVSTREAMS_ARGP=1 + fi + ]) ++ ++USE_LIBEXECINFO=0 ++AC_SEARCH_LIBS([backtrace], [execinfo], [], [ ++USE_LIBEXECINFO=1 ++]) ++ + # Function checks + AC_HEADER_DIRENT + +-- +2.13.3 + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch new file mode 100644 index 00000000000..e8572136373 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch @@ -0,0 +1,37 @@ +Check for argp_parse in libargp and then in libc before using internal version + +Index: wvstreams-4.6.1/configure.ac +=================================================================== +--- wvstreams-4.6.1.orig/configure.ac ++++ wvstreams-4.6.1/configure.ac +@@ -142,20 +142,21 @@ CPPFLAGS="$CPPFLAGS_save" + # argp + USE_WVSTREAMS_ARGP=0 + AC_CHECK_HEADERS(argp.h) +-AC_CHECK_FUNC(argp_parse) +-if test "$ac_cv_func_argp_parse" != yes \ +- -o "$ac_cv_header_argp_h" != yes ; then +- ( +- echo ++AC_SEARCH_LIBS([argp_parse], [argp c], [], [ ++ ++ if test "$ac_cv_func_argp_parse" != yes \ ++ -o "$ac_cv_header_argp_h" != yes ; then ++ ( ++ echo + echo 'configuring argp...' + cd argp + ./configure --host=$host_cpu-$host_os || exit $? + echo 'argp configured.' + echo +- ) || exit $? +- USE_WVSTREAMS_ARGP=1 +-fi +- ++ ) || exit $? ++ USE_WVSTREAMS_ARGP=1 ++ fi ++]) + # Function checks + AC_HEADER_DIRENT + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch new file mode 100644 index 00000000000..b084887ba79 --- /dev/null +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch @@ -0,0 +1,42 @@ +Description: Fix compilation with gcc-6 +Author: Gert Wollny +Last-Updated: 2016-07-26 +Forwarded: No +Bug-Debian: https://bugs.debian.org/811659 +Bug-Debian: https://bugs.debian.org/831146 + +--- a/streams/wvstream.cc ++++ b/streams/wvstream.cc +@@ -907,9 +907,9 @@ + + if (forceable) + { +- si.wants.readable = readcb; +- si.wants.writable = writecb; +- si.wants.isexception = exceptcb; ++ si.wants.readable = static_cast(readcb); ++ si.wants.writable = static_cast(writecb); ++ si.wants.isexception = static_cast(exceptcb); + } + else + { +@@ -1019,7 +1019,8 @@ + + IWvStream::SelectRequest WvStream::get_select_request() + { +- return IWvStream::SelectRequest(readcb, writecb, exceptcb); ++ return IWvStream::SelectRequest(static_cast(readcb), static_cast(writecb), ++ static_cast(exceptcb)); + } + + +@@ -1107,7 +1108,8 @@ + // inefficient, because if the alarm was expired then pre_select() + // returned true anyway and short-circuited the previous select(). + TRACE("hello-%p\n", this); +- return !alarm_was_ticking || select(0, readcb, writecb, exceptcb); ++ return !alarm_was_ticking || select(0, static_cast(readcb), ++ static_cast(writecb), static_cast(exceptcb)); + } + + diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb b/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb index 8a77b5bec45..e3d5e7d20b6 100644 --- a/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb +++ b/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb @@ -5,20 +5,30 @@ LICENSE = "LGPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605" DEPENDS = "zlib openssl (>= 0.9.8) dbus readline" +DEPENDS_append_libc-musl = " argp-standalone libexecinfo" SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \ file://04_signed_request.diff \ file://05_gcc.diff \ file://06_gcc-4.7.diff \ file://07_buildflags.diff \ - " + file://gcc-6.patch \ + file://argp.patch \ + file://0001-Check-for-limits.h-during-configure.patch \ + file://0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch \ + file://0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch \ + file://0004-wvcrash-Replace-use-of-basename-API.patch \ + file://0005-check-for-libexecinfo-during-configure.patch \ + file://0001-build-fix-parallel-make.patch \ + file://0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch \ + " SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c" SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633" inherit autotools-brokensep pkgconfig -PARALLEL_MAKE = "" +TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls" LDFLAGS_append = " -Wl,-rpath-link,${CROSS_DIR}/${TARGET_SYS}/lib" @@ -43,3 +53,4 @@ FILES_libwvstreams-extras = "${libdir}/libwvbase.so.* ${libdir}/libwvstreams FILES_libwvstreams-extras-dbg = "${libdir}/.debug/libwvbase.so.* ${libdir}/.debug/libwvstreams.so.*" FILES_${PN}-valgrind = "${libdir}/valgrind/wvstreams.supp" +RDEPENDS_${PN} += "perl" diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch new file mode 100644 index 00000000000..af14a1a56cc --- /dev/null +++ b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch @@ -0,0 +1,23 @@ +uname can not get version of kernel correctly while cross compile + +Signed-off-by: Bian Naimeng +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 523899b..4e6ae0d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -924,7 +924,7 @@ AC_MSG_RESULT([$ARCH ($host_os)]) + if test "x$ARCH" = "xlinux"; then + AC_MSG_CHECKING([for the linux kernel version]) + +- kernel=`uname -r` ++ kernel="${KERNEL_VERSION}" + + case "${kernel}" in + 2.6.*) +-- +1.8.3.1 + diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service b/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service new file mode 100644 index 00000000000..b18a96f8b68 --- /dev/null +++ b/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service @@ -0,0 +1,12 @@ +[Unit] +Description=Zabbix Monitor Agent +After=syslog.target network.target + +[Service] +Type=oneshot +ExecStart=@SBINDIR@/zabbix_agentd +RemainAfterExit=yes +User=zabbix + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb b/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb new file mode 100644 index 00000000000..bab5a6ae6b1 --- /dev/null +++ b/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb @@ -0,0 +1,75 @@ +SUMMARY = "Open-source monitoring solution for your IT infrastructure" +DESCRIPTION = "\ +ZABBIX is software that monitors numerous parameters of a network and the \ +health and integrity of servers. ZABBIX uses a flexible notification \ +mechanism that allows users to configure e-mail based alerts for virtually \ +any event. This allows a fast reaction to server problems. ZABBIX offers \ +excellent reporting and data visualisation features based on the stored \ +data. This makes ZABBIX ideal for capacity planning. \ +\ +ZABBIX supports both polling and trapping. All ZABBIX reports and \ +statistics, as well as configuration parameters are accessed through a \ +web-based front end. A web-based front end ensures that the status of \ +your network and the health of your servers can be assessed from any \ +location. Properly configured, ZABBIX can play an important role in \ +monitoring IT infrastructure. This is equally true for small \ +organisations with a few servers and for large companies with a \ +multitude of servers." +HOMEPAGE = "http://www.zabbix.com/" +SECTION = "Applications/Internet" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=300e938ad303147fede2294ed78fe02e" +DEPENDS = "openldap virtual/libiconv" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +SRC_URI = "http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/${PV}/${BPN}-${PV}.tar.gz \ + file://0001-Fix-configure.ac.patch \ + file://zabbix-agent.service \ +" + +SRC_URI[md5sum] = "489d21b464277c0d412155c7e5611a8f" +SRC_URI[sha256sum] = "4445f26c025009681c29c9b350aa6c4ee7b124ddcaf1609ae36c55997bcb8cf2" + +inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "zabbix-agent.service" +SYSTEMD_AUTO_ENABLE = "enable" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "-r zabbix" +USERADD_PARAM_${PN} = "-r -g zabbix -d /var/lib/zabbix \ + -s /sbin/nologin -c \"Zabbix Monitoring System\" zabbix \ +" + +KERNEL_VERSION = "${@get_kernelversion_headers('${STAGING_KERNEL_DIR}')}" + +EXTRA_OECONF = " \ + --enable-dependency-tracking \ + --enable-agent \ + --enable-ipv6 \ + --with-net-snmp \ + --with-ldap=${STAGING_EXECPREFIXDIR} \ + --with-jabber \ + --with-unixodbc \ + --with-ssh2 \ + --with-sqlite3 \ +" +CFLAGS_append = " -lldap -llber" + +do_configure_prepend() { + export KERNEL_VERSION="${KERNEL_VERSION}" +} + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/zabbix-agent.service ${D}${systemd_unitdir}/system/ + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/zabbix-agent.service + fi +} + +FILES_${PN} += "${libdir}" + +RDEPENDS_${PN} = "logrotate" diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch deleted file mode 100644 index 43096d2bce1..00000000000 --- a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch +++ /dev/null @@ -1,292 +0,0 @@ -Upstream-Status: Inappropriate - -This patch lets you build Ice with OpenEmbedded. I doubt you could do -a regular build after applying this patch. - -From bc622ce74fa03a935278d21736a5a251466e1798 Mon Sep 17 00:00:00 2001 -From: Tom Rondeau -Date: Wed, 16 Apr 2014 14:34:51 -0400 -Subject: [PATCH] Modify Makefiles for cross compile - ---- - config/Make.common.rules | 20 +++++++------ - cpp/Makefile | 9 +++--- - cpp/config/Make.rules | 32 ++++++++++++-------- - cpp/config/Make.rules.Linux | 18 ++--------- - cpp/src/IceStorm/FreezeDB/Makefile | 2 +- - py/config/Make.rules | 58 +++++++++++++++++++----------------- - 6 files changed, 70 insertions(+), 69 deletions(-) - -diff --git a/config/Make.common.rules b/config/Make.common.rules -index d7b1d59..a3fb17e 100644 ---- a/config/Make.common.rules -+++ b/config/Make.common.rules -@@ -65,9 +65,9 @@ ifeq ($(UNAME),Linux) - # - # Some Linux distributions like Debian/Ubuntu don't use /usr/lib64. - # -- ifeq ($(shell test -d /usr/lib64 && echo 0),0) -- lp64suffix = 64 -- endif -+ #ifeq ($(shell test -d /usr/lib64 && echo 0),0) -+ # lp64suffix = 64 -+ #endif - ifeq ($(LP64),) - LP64 = yes - endif -@@ -244,12 +244,13 @@ else - slicedir = $(ice_dir)/slice - endif - --ifeq ($(prefix), /usr) -- install_slicedir = /usr/share/Ice-$(VERSION)/slice --else -- install_slicedir = $(prefix)/slice --endif -+#ifeq ($(prefix), /usr) -+# install_slicedir = /usr/share/Ice-$(VERSION)/slice -+#else -+# install_slicedir = $(prefix)/slice -+#endif - -+install_slicedir = $(prefix)/slice - # - # Set environment variables for the Slice translator. - # -@@ -265,7 +266,8 @@ ifneq ($(ice_dir), /usr) - endif - - ifeq ($(UNAME),Linux) -- export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH) -+ #export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH) -+ export LD_LIBRARY_PATH := $(ICE_HOME)/lib:$(LD_LIBRARY_PATH) - endif - - ifeq ($(UNAME),SunOS) -diff --git a/cpp/Makefile b/cpp/Makefile -index a68f113..1f44f57 100644 ---- a/cpp/Makefile -+++ b/cpp/Makefile -@@ -11,11 +11,12 @@ top_srcdir = . - - include $(top_srcdir)/config/Make.rules - --SUBDIRS = config src include test -+#SUBDIRS = config src include test -+SUBDIRS = config src include - --ifeq ($(shell uname | grep MINGW),) --SUBDIRS := $(SUBDIRS) demo --endif -+#ifeq ($(shell uname | grep MINGW),) -+#SUBDIRS := $(SUBDIRS) demo -+#endif - - INSTALL_SUBDIRS = $(install_bindir) $(install_libdir) $(install_includedir) \ - $(install_configdir) $(install_mandir) -diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules -index 37461ae..197c5e8 100644 ---- a/cpp/config/Make.rules -+++ b/cpp/config/Make.rules -@@ -175,11 +175,12 @@ headerdir = $(top_srcdir)/include - # includedir is not handled the same as bindir and libdir - # because it is used in the .depend files - # --ifdef ice_src_dist -- includedir = $(top_srcdir)/include --else -- includedir = $(ice_dir)/include --endif -+#ifdef ice_src_dist -+# includedir = $(top_srcdir)/include -+#else -+# includedir = $(ice_dir)/include -+#endif -+includedir = $(top_srcdir)/include - - # - # Platform specific definitions -@@ -277,14 +278,17 @@ ICECPPFLAGS = -I$(slicedir) - SLICE2CPPFLAGS = $(ICECPPFLAGS) - - ifeq ($(ice_dir), /usr) -- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -+ LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) - else - CPPFLAGS += -I$(includedir) -- ifdef ice_src_dist -- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) -- else -- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix) -- endif -+# We must always build using the libraries in the source tree, the host's are obviously -+# not what we want for the target -+ LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) $(call rpathlink,$(libdir)) -+# ifdef ice_src_dist -+# LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) -+# else -+# LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix) -+# endif - endif - - ifeq ($(FLEX_NOLINE),yes) -@@ -313,8 +317,10 @@ endif - - ifdef ice_src_dist - SLICEPARSERLIB = $(libdir)/$(call mklibfilename,Slice,$(VERSION)) -- SLICE2CPP = $(bindir)/slice2cpp -- SLICE2FREEZE = $(bindir)/slice2freeze -+# SLICE2CPP = $(bindir)/slice2cpp -+# SLICE2FREEZE = $(bindir)/slice2freeze -+ SLICE2CPP = $(ICE_HOME)/bin/slice2cpp -+ SLICE2FREEZE = $(ICE_HOME)/bin/slice2freeze - else - SLICEPARSERLIB = $(ice_dir)/$(libsubdir)$(cpp11suffix)/$(call mklibfilename,Slice,$(VERSION)) - SLICE2CPP = $(ice_dir)/$(binsubdir)$(cpp11suffix)/slice2cpp -diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux -index 5d5717c..8363c6e 100644 ---- a/cpp/config/Make.rules.Linux -+++ b/cpp/config/Make.rules.Linux -@@ -31,7 +31,7 @@ ifeq ($(CXX),c++) - CXX = g++ - endif - --ifeq ($(CXX),g++) -+#ifeq ($(CXX),g++) - - ifneq ($(SUSE_i586),) - CXXARCHFLAGS += -march=i586 -@@ -71,14 +71,6 @@ ifeq ($(CXX),g++) - CXXARCHFLAGS += -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED - endif - -- ifeq ($(MACHINE),x86_64) -- ifeq ($(LP64),yes) -- CXXARCHFLAGS += -m64 -- else -- CXXARCHFLAGS += -m32 -- endif -- endif -- - CXXFLAGS = $(CXXARCHFLAGS) -Wall -Werror -pthread - - ifneq ($(GENPIC),no) -@@ -102,15 +94,11 @@ ifeq ($(CXX),g++) - - rpathlink = -Wl,-rpath-link,$(1) - -- ifneq ($(embedded_runpath_prefix),) -- LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,$(runpath_libdir) -- else -- LDPLATFORMFLAGS = -Wl,--enable-new-dtags -- endif -+ LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,../../../lib - - LDPLATFORMFLAGS += -rdynamic - --endif -+#endif - - ifeq ($(CXX),icpc) - $(warning ===================================================================) -diff --git a/cpp/src/IceStorm/FreezeDB/Makefile b/cpp/src/IceStorm/FreezeDB/Makefile -index 7c844b7..cf15cb1 100644 ---- a/cpp/src/IceStorm/FreezeDB/Makefile -+++ b/cpp/src/IceStorm/FreezeDB/Makefile -@@ -66,7 +66,7 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME) - - $(MIGRATE): $(MOBJS) - rm -f $@ -- $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS) -+ $(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS) -ldb_cxx - - # The slice2freeze rules are structured like this to avoid issues with - # parallel make. -diff --git a/py/config/Make.rules b/py/config/Make.rules -index 43ce01b..1349342 100644 ---- a/py/config/Make.rules -+++ b/py/config/Make.rules -@@ -92,21 +92,23 @@ ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0) - include $(top_srcdir)/config/Make.rules.$(UNAME) - else - include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME) --endif -+endif - - libdir = $(top_srcdir)/python --ifneq ($(prefix), /usr) --install_pythondir = $(prefix)/python --install_libdir = $(prefix)/python --else -- ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0) -- install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages -- install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages -- else -- install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages -- install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages -- endif --endif -+#ifneq ($(prefix), /usr) -+#install_pythondir = $(prefix)/python -+#install_libdir = $(prefix)/python -+#else -+# ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0) -+# install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages -+# install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages -+# else -+# install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages -+# install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages -+# endif -+#endif -+install_pythondir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages -+install_libdir = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages - - ifeq ($(UNAME),SunOS) - ifeq ($(LP64),yes) -@@ -115,19 +117,21 @@ ifeq ($(UNAME),SunOS) - endif - endif - --ifdef ice_src_dist -- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp) -- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib -- else -- ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir) -- endif -- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib -- ICE_FLAGS = -I$(ice_cpp_dir)/include --endif --ifdef ice_bin_dist -- ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir) -- ICE_FLAGS = -I$(ice_dir)/include --endif -+#ifdef ice_src_dist -+# ifeq ($(ice_cpp_dir), $(ice_dir)/cpp) -+# ICE_LIB_DIR = -L$(ice_cpp_dir)/lib -+# else -+# ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir) -+# endif -+# ICE_LIB_DIR = -L$(ice_cpp_dir)/lib -+# ICE_FLAGS = -I$(ice_cpp_dir)/include -+#endif -+#ifdef ice_bin_dist -+# ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir) -+# ICE_FLAGS = -I$(ice_dir)/include -+#endif -+ICE_LIB_DIR = -L$(top_srcdir)/../cpp/lib -+ICE_FLAGS = -I$(ice_cpp_dir)/include - ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil - - ifneq ($(embedded_runpath_prefix),) -@@ -137,7 +141,7 @@ endif - CPPFLAGS = - ICECPPFLAGS = -I$(slicedir) - SLICE2PYFLAGS = $(ICECPPFLAGS) --LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) -+LDFLAGS += $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) - - ifdef ice_src_dist - ifeq ($(ice_cpp_dir), $(ice_dir)/cpp) --- -1.7.9.5 - diff --git a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb b/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb deleted file mode 100644 index 2b6f56ed4fc..00000000000 --- a/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb +++ /dev/null @@ -1,87 +0,0 @@ -DESCRIPTION = "The Internet Communications Engine" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515" -DEPENDS = "bzip2 expat openssl python db mcpp" -DEPENDS_prepend_class-target = "zeroc-ice-native " - -SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \ - file://0002-Modify-Makefile-for-cross-compile.patch \ - " -SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80" -SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392" - -#| MapDb.cpp: In constructor 'Freeze::MapDb::MapDb(const ConnectionIPtr&, const string&, const string&, const string&, const KeyCompareBasePtr&, const std::vector >&, bool)': -#| MapDb.cpp:138:46: error: call of overloaded 'set_bt_compare(int (*)(DB*, const DBT*, const DBT*))' is ambiguous -#| MapDb.cpp:138:46: note: candidates are: -#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:272:14: note: virtual int Db::set_bt_compare(bt_compare_fcn_type) -#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:272:14: note: no known conversion for argument 1 from 'int (*)(DB*, const DBT*, const DBT*) {aka int (*)(__db*, const __db_dbt*, const __db_dbt*)}' to 'bt_compare_fcn_type {aka int (*)(__db*, const __db_dbt*, const __db_dbt*, long unsigned int*)}' -#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:273:14: note: virtual int Db::set_bt_compare(int (*)(Db*, const Dbt*, const Dbt*, size_t*)) -#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:273:14: note: no known conversion for argument 1 from 'int (*)(DB*, const DBT*, const DBT*) {aka int (*)(__db*, const __db_dbt*, const __db_dbt*)}' to 'int (*)(Db*, const Dbt*, const Dbt*, size_t*) {aka int (*)(Db*, const Dbt*, const Dbt*, long unsigned int*)}' -#| make[3]: *** [MapDb.o] Error 1 -PNBLACKLIST[zeroc-ice] ?= "BROKEN: not compatible with default db version" - -S = "${WORKDIR}/Ice-${PV}" - -inherit python-dir pkgconfig - -export PYTHON_VERSION = "python2.7" - -do_configure() { - : -} - -do_compile_prepend_class-target () { - export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" - export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" - export ICE_HOME="${STAGING_DIR_NATIVE}/usr" -} - -do_compile_prepend_class-nativesdk () { - export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" - export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" - export ICE_HOME="${STAGING_DIR_NATIVE}/usr" -} - -do_compile_prepend_class-native () { - export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" - export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" - export ICE_HOME="${S}/cpp" -} - -do_compile() { - oe_runmake -C ${S} cpp - oe_runmake -C ${S} py -} - -do_install_prepend_class-target () { - export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" - export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" - export ICE_HOME="${STAGING_DIR_NATIVE}/usr" -} - -do_install_prepend_class-nativesdk () { - export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}" - export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}" - export ICE_HOME="${STAGING_DIR_NATIVE}/usr" -} - -do_install_prepend_class-native () { - export ICE_HOME="${S}/cpp" -} - -do_install() { - oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common - oe_runmake -C ${S}/py prefix=${D}${prefix} install -} - -PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg" - -FILES_${PN}-doc += "${prefix}/man/man1" -FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES" -FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config" -FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so" -FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py" -FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug" -FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb index 34099766c71..a64745c94a3 100644 --- a/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb +++ b/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb @@ -3,7 +3,9 @@ HOMEPAGE = "http://www.zeromq.org" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94" DEPENDS = "zeromq" -SRCREV = "ee47ae4cddc304741526c9bb2035f98c3274e0ec" + +SRCREV = "68a7b09cfce01c4c279fba2cf91686fcfc566848" +PV = "4.1.5+git${SRCPV}" SRC_URI = "git://github.com/zeromq/cppzmq.git" diff --git a/meta-oe/recipes-connectivity/zeromq/zeromq_4.0.4.bb b/meta-oe/recipes-connectivity/zeromq/zeromq_4.0.4.bb deleted file mode 100644 index 80907fa7c08..00000000000 --- a/meta-oe/recipes-connectivity/zeromq/zeromq_4.0.4.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework" -HOMEPAGE = "http://www.zeromq.org" -LICENSE = "LGPLv3+" -LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1" - -SRC_URI = "http://download.zeromq.org/zeromq-${PV}.tar.gz \ - file://run-ptest \ - " -SRC_URI[md5sum] = "f3c3defbb5ef6cc000ca65e529fdab3b" -SRC_URI[sha256sum] = "1ef71d46e94f33e27dd5a1661ed626cd39be4d2d6967792a275040e34457d399" - -S = "${WORKDIR}/zeromq-${PV}" - -#Uncomment to choose polling system manually. valid values are kqueue, epoll, devpoll, poll or select -#EXTRA_OECONF += "--with-poller=kqueue" -#CFLAGS_append += "-O0" -#CXXFLAGS_append += "-O0" - -inherit autotools ptest - -do_install_ptest () { - install -d ${D}${PTEST_PATH}/tests - install -m 0755 ${B}/tests/.libs/* ${D}${PTEST_PATH}/tests -} diff --git a/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.6.bb b/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.6.bb new file mode 100644 index 00000000000..e126f323995 --- /dev/null +++ b/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.6.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework" +HOMEPAGE = "http://www.zeromq.org" +LICENSE = "LGPLv3+" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1" + +PACKAGECONFIG ??= "libsodium" +PACKAGECONFIG[libsodium] = "--with-libsodium, --without-libsodium, libsodium" + +SRC_URI = "http://github.com/zeromq/zeromq4-1/releases/download/v${PV}/zeromq-${PV}.tar.gz \ + file://run-ptest \ +" +SRC_URI[md5sum] = "c89db4dbc0b90c34c9f4983cbff6d321" +SRC_URI[sha256sum] = "02ebf60a43011e770799336365bcbce2eb85569e9b5f52aa0d8cc04672438a0a" + +S = "${WORKDIR}/zeromq-${PV}" + +#Uncomment to choose polling system manually. valid values are kqueue, epoll, devpoll, poll or select +#EXTRA_OECONF += "--with-poller=kqueue" +#CFLAGS_append = " -O0" +#CXXFLAGS_append = " -O0" + +inherit autotools ptest pkgconfig + +do_compile_ptest () { + echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${B}/Makefile + oe_runmake buildtest-TESTS +} + +do_install_ptest () { + install -d ${D}${PTEST_PATH}/tests + install -m 0755 ${B}/.libs/test_* ${D}${PTEST_PATH}/tests +} diff --git a/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch b/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch new file mode 100644 index 00000000000..2c4ca057f25 --- /dev/null +++ b/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch @@ -0,0 +1,30 @@ +From 8e6d1f590b1cb437dc67c51298ef1722a7266d35 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Jul 2017 18:37:58 -0700 +Subject: [PATCH] dbus-daemon-proxy: Return DBUS_HANDLER_RESULT_NOT_YET_HANDLED + from master_filter_cb() if DBusConnection is null + +So it can be passed on to other handlers since this could +not be handled here + +Signed-off-by: Khem Raj +--- + dbus-daemon-proxy.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dbus-daemon-proxy.c b/dbus-daemon-proxy.c +index 009e4fd..f3f0d80 100644 +--- a/dbus-daemon-proxy.c ++++ b/dbus-daemon-proxy.c +@@ -115,7 +115,7 @@ master_filter_cb (DBusConnection *conn, + guint32 serial; + + if (!dbus_conn) +- return; ++ DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (verbose) + g_print ("New message from server: type='%d' path='%s' iface='%s'" +-- +2.13.3 + diff --git a/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb b/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb index 205e1d1a161..42cd032c227 100644 --- a/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb +++ b/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb @@ -4,19 +4,20 @@ LIC_FILES_CHKSUM = "file://dbus-daemon-proxy.c;endline=19;md5=41df6d21fe1c97d6a1 DEPENDS = "dbus dbus-glib" SRCREV = "1226a0a1374628ff191f6d8a56000be5e53e7608" PV = "0.0.0+gitr${SRCPV}" -PR = "r1" +PR = "r1.59" -ASNEEDED_pn-dbus-daemon-proxy = "" - -SRC_URI = "git://git.collabora.co.uk/git/user/alban/dbus-daemon-proxy" +SRC_URI = "git://github.com/alban/dbus-daemon-proxy \ + file://0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch \ + " S = "${WORKDIR}/git" +inherit pkgconfig + do_compile() { - ${CC} ${LDFLAGS} `pkg-config --cflags --libs dbus-glib-1` -o dbus-daemon-proxy dbus-daemon-proxy.c + ${CC} ${CFLAGS} -o dbus-daemon-proxy dbus-daemon-proxy.c `pkg-config --cflags --libs dbus-glib-1` ${LDFLAGS} } do_install() { install -d ${D}${bindir} install -m 0755 dbus-daemon-proxy ${D}${bindir} } - diff --git a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-pipe.c-Use-a-string-instead-of-char.patch b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-pipe.c-Use-a-string-instead-of-char.patch new file mode 100644 index 00000000000..6883f9a0b28 --- /dev/null +++ b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-pipe.c-Use-a-string-instead-of-char.patch @@ -0,0 +1,27 @@ +From 6bcb58bd69c38b9200e8ec6c382247167571189d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 1 Jul 2017 16:44:15 -0700 +Subject: [PATCH] pipe.c: Use a string instead of char + +Fixes +error: invalid conversion from 'char' to 'const void*' [-fpermissive] + +Signed-off-by: Khem Raj +--- + src/pipe.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/pipe.cpp b/src/pipe.cpp +index 45c2ba6..1303c2d 100644 +--- a/src/pipe.cpp ++++ b/src/pipe.cpp +@@ -83,5 +83,5 @@ ssize_t Pipe::read(void *buffer, unsigned int &nbytes) + void Pipe::signal() + { + // TODO: ignoring return of read/write generates warning; maybe relevant for eventloop work... +- ::write(_fd_write, '\0', 1); ++ ::write(_fd_write, "", 1); + } +-- +2.13.2 + diff --git a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-src-eventloop.cpp-use-portable-method-for-initializi.patch b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-src-eventloop.cpp-use-portable-method-for-initializi.patch new file mode 100644 index 00000000000..eed84e4a6aa --- /dev/null +++ b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-src-eventloop.cpp-use-portable-method-for-initializi.patch @@ -0,0 +1,36 @@ +From 93fd4868d71aa7a26cdfd382d1e4c85112f069f9 Mon Sep 17 00:00:00 2001 +From: Peter Williams +Date: Sat, 19 Dec 2015 21:07:37 -0500 +Subject: [PATCH] src/eventloop.cpp: use portable method for initializing + recursive mutex +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- +Upstream-Status: Backport [https://github.com/andreas-volz/dbus-cplusplus/commit/cdaeaa825db191bd65aad3aaaeb3178738727f05] +Signed-off-by: André Draszik + src/eventloop.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/eventloop.cpp b/src/eventloop.cpp +index 7fb06a3..f622812 100644 +--- a/src/eventloop.cpp ++++ b/src/eventloop.cpp +@@ -85,8 +85,11 @@ DefaultMutex::DefaultMutex(bool recursive) + { + if (recursive) + { +- pthread_mutex_t recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; +- _mutex = recmutex; ++ pthread_mutexattr_t attr; ++ ++ pthread_mutexattr_init(&attr); ++ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); ++ pthread_mutex_init(&_mutex, &attr); + } + else + { +-- +2.10.2 + diff --git a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0002-tools-generate_proxy.cpp-avoid-possibly-undefined-ui.patch b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0002-tools-generate_proxy.cpp-avoid-possibly-undefined-ui.patch new file mode 100644 index 00000000000..65cd9397624 --- /dev/null +++ b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0002-tools-generate_proxy.cpp-avoid-possibly-undefined-ui.patch @@ -0,0 +1,58 @@ +From c673a76857cbe0ca82fa11aea9b70f94c3e5b041 Mon Sep 17 00:00:00 2001 +From: Peter Williams +Date: Sat, 19 Dec 2015 21:08:46 -0500 +Subject: [PATCH] tools/generate_proxy.cpp: avoid possibly undefined 'uint' + type +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- +Upstream-Status: Backport [https://github.com/andreas-volz/dbus-cplusplus/commit/43f119a2b3fe951c0f1d88cc61170d4c81a88880] +Signed-off-by: André Draszik + tools/generate_proxy.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tools/generate_proxy.cpp b/tools/generate_proxy.cpp +index bf1094a..ebb75fa 100644 +--- a/tools/generate_proxy.cpp ++++ b/tools/generate_proxy.cpp +@@ -352,7 +352,7 @@ void generate_proxy(Xml::Document &doc, const char *filename) + if (!arg_name.length()) + { + arg_name = "argin"; +- arg_name += toString (i); ++ arg_name += toString (i); + } + + // generate extra code to wrap object +@@ -445,7 +445,7 @@ void generate_proxy(Xml::Document &doc, const char *filename) + + if (!arg_name.length()) + { +- arg_name = "argout" + toString (i); ++ arg_name = "argout" + toString (i); + } + + if (arg_object.length()) +@@ -569,7 +569,7 @@ void generate_proxy(Xml::Document &doc, const char *filename) + // use a default if no arg name given + if (!arg_name.length()) + { +- arg_name = "arg" + toString (i); ++ arg_name = "arg" + toString (i); + } + + body << arg_name << ";" << endl; +@@ -605,7 +605,7 @@ void generate_proxy(Xml::Document &doc, const char *filename) + + if (!arg_name.length()) + { +- arg_name = "arg" + toString (j); ++ arg_name = "arg" + toString (j); + } + + if (arg_object.length()) +-- +2.10.2 + diff --git a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0003-Fixed-undefined-ssize_t-for-clang-3.8.0-on-FreeBSD.patch b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0003-Fixed-undefined-ssize_t-for-clang-3.8.0-on-FreeBSD.patch new file mode 100644 index 00000000000..f69cefdb7ec --- /dev/null +++ b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0003-Fixed-undefined-ssize_t-for-clang-3.8.0-on-FreeBSD.patch @@ -0,0 +1,30 @@ +From 465d98dbcdcb72375c198010a50b80b953e7d5a6 Mon Sep 17 00:00:00 2001 +From: Yuri +Date: Sat, 28 May 2016 13:20:10 -0700 +Subject: [PATCH] Fixed undefined ssize_t for clang-3.8.0 on FreeBSD. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- +Upstream-Status: Backport [https://github.com/andreas-volz/dbus-cplusplus/commit/463f5a4400d494b831c3b3348c0a21f0faf14f39] +Signed-off-by: André Draszik + include/dbus-c++/pipe.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/include/dbus-c++/pipe.h b/include/dbus-c++/pipe.h +index 999f042..682646c 100644 +--- a/include/dbus-c++/pipe.h ++++ b/include/dbus-c++/pipe.h +@@ -30,6 +30,8 @@ + /* STD */ + #include + ++#include ++ + namespace DBus + { + +-- +2.10.2 + diff --git a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0004-use-POSIX-poll.h-instead-of-sys-poll.h.patch b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0004-use-POSIX-poll.h-instead-of-sys-poll.h.patch new file mode 100644 index 00000000000..0c2c4874665 --- /dev/null +++ b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0004-use-POSIX-poll.h-instead-of-sys-poll.h.patch @@ -0,0 +1,77 @@ +From 12de53b0f24c478ea4ff6b4e2c55366dbd2f02b1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Fri, 25 Nov 2016 09:33:20 +0000 +Subject: [PATCH] use POSIX poll.h instead of sys/poll.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +POSIX specifies that is the correct header to +include for poll() + http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html +whereas is only needed for ancient glibc (<2.3), +so let's follow POSIX instead. + +As a side-effect, this silences compilation warnings when +compiling against the musl C-library such as: + +| In file included from ../../libdbus-c++-0.9.0/src/eventloop.cpp:31:0: +| /usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include to [-Wcpp] +| #warning redirecting incorrect #include to +| ^~~~~~~ +| In file included from ../../libdbus-c++-0.9.0/src/eventloop-integration.cpp:39:0: +| /usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include to [-Wcpp] +| #warning redirecting incorrect #include to +| ^~~~~~~ + +Signed-off-by: André Draszik +--- +Upstream-Status: Submitted [https://github.com/andreas-volz/dbus-cplusplus/pull/3] +Signed-off-by: André Draszik + src/eventloop-integration.cpp | 2 +- + src/eventloop.cpp | 2 +- + src/pipe.cpp | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/eventloop-integration.cpp b/src/eventloop-integration.cpp +index 5776971..271b503 100644 +--- a/src/eventloop-integration.cpp ++++ b/src/eventloop-integration.cpp +@@ -36,7 +36,7 @@ + /* STD */ + #include + #include +-#include ++#include + #include + #include + +diff --git a/src/eventloop.cpp b/src/eventloop.cpp +index f622812..7790e1e 100644 +--- a/src/eventloop.cpp ++++ b/src/eventloop.cpp +@@ -28,7 +28,7 @@ + #include + #include + +-#include ++#include + #include + + #include +diff --git a/src/pipe.cpp b/src/pipe.cpp +index 01211b3..45c2ba6 100644 +--- a/src/pipe.cpp ++++ b/src/pipe.cpp +@@ -32,7 +32,7 @@ + + /* STD */ + #include +-#include ++#include + #include + #include + #include +-- +2.10.2 + diff --git a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/fix-missing-unistd.h-include.patch b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/fix-missing-unistd.h-include.patch new file mode 100644 index 00000000000..903a7209fee --- /dev/null +++ b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/fix-missing-unistd.h-include.patch @@ -0,0 +1,40 @@ + +sniped from ChromiumOS + +https://bugs.gentoo.org/424707 + +From 154f7861d19a2bd5c79c488f9989610971db451b Mon Sep 17 00:00:00 2001 +From: Han Shen +Date: Thu, 31 May 2012 16:49:35 -0700 +Subject: [PATCH] Fixed dbus-c++ gcc 4.7 building problem. + +Just add "unistd.h" inclusion to eventloop-integration.h. + +BUG=None +TEST=Manually built using gcc 4.7. + +Change-Id: I87bd1f90db6a4c974a5ed8134044e8be2034aff2 +Reviewed-on: https://gerrit.chromium.org/gerrit/24260 +Tested-by: Han Shen +Reviewed-by: Yunlian Jiang +Commit-Ready: Han Shen +Upstream-Status: Inappropriate [ not author, no upstream ] +Signed-off-by: Thilo Cestonaro +--- + include/dbus-c++/eventloop-integration.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/dbus-c++/eventloop-integration.h b/include/dbus-c++/eventloop-integration.h +index 5108340..1b56ab5 100644 +--- a/include/dbus-c++/eventloop-integration.h ++++ b/include/dbus-c++/eventloop-integration.h +@@ -27,6 +27,7 @@ + + #include + #include ++#include + #include "api.h" + #include "dispatcher.h" + #include "util.h" +-- +1.7.9.7 diff --git a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/remove-CXX_FOR_BUILD-stuff.patch b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/remove-CXX_FOR_BUILD-stuff.patch new file mode 100644 index 00000000000..fa29d3cdecd --- /dev/null +++ b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/remove-CXX_FOR_BUILD-stuff.patch @@ -0,0 +1,33 @@ +From: Thilo Cestonaro +Date: Fri, 18 Nov 2016 10:23:07 +0100 +Subject: Build libdbus-c++ tools for target platform rather than enforced for +host platform. + +Upstream-Status: Inappropriate [no upstream] +Signed-off-by: Thilo Cestonaro +--- + +diff -Naur libdbus-c++-0.9.0.ori/configure.ac libdbus-c++-0.9.0/configure.ac +--- libdbus-c++-0.9.0.ori/configure.ac 2016-11-15 14:25:36.085882774 +0100 ++++ libdbus-c++-0.9.0/configure.ac 2016-11-15 14:27:08.814568717 +0100 +@@ -64,9 +64,6 @@ + AC_PROG_CC + AC_PROG_CXX + +-CXX_FOR_BUILD=${CXX_FOR_BUILD-${CXX}} +-AC_SUBST(CXX_FOR_BUILD) +- + AM_PROG_LIBTOOL + + PKG_PROG_PKG_CONFIG +diff -Naur libdbus-c++-0.9.0.ori/tools/Makefile.am libdbus-c++-0.9.0/tools/Makefile.am +--- libdbus-c++-0.9.0.ori/tools/Makefile.am 2016-11-15 14:25:36.089882803 +0100 ++++ libdbus-c++-0.9.0/tools/Makefile.am 2016-11-15 14:26:19.454203583 +0100 +@@ -1,7 +1,5 @@ + # hacky, but ... + +-CXX = $(CXX_FOR_BUILD) +- + AM_CPPFLAGS = \ + $(dbus_CFLAGS) \ + $(xml_CFLAGS) \ diff --git a/meta-oe/recipes-core/dbus/libdbus-c++_0.9.0.bb b/meta-oe/recipes-core/dbus/libdbus-c++_0.9.0.bb new file mode 100644 index 00000000000..a6d8b86ee02 --- /dev/null +++ b/meta-oe/recipes-core/dbus/libdbus-c++_0.9.0.bb @@ -0,0 +1,30 @@ +SUMMARY = "DBus-C++ Library" +DESCRIPTION = "DBus-c++ attempts to provide a C++ API for D-BUS. The library has a glib and an Ecore mainloop integration. It also offers an optional own main loop." +HOMEPAGE = "http://dbus-cplusplus.sourceforge.net" +SECTION = "base" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" +DEPENDS = "dbus expat glib-2.0 libpcre" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/dbus-cplusplus/dbus-c++/${PV}/${BP}.tar.gz \ + file://fix-missing-unistd.h-include.patch \ + file://remove-CXX_FOR_BUILD-stuff.patch \ + file://0001-src-eventloop.cpp-use-portable-method-for-initializi.patch \ + file://0002-tools-generate_proxy.cpp-avoid-possibly-undefined-ui.patch \ + file://0003-Fixed-undefined-ssize_t-for-clang-3.8.0-on-FreeBSD.patch \ + file://0004-use-POSIX-poll.h-instead-of-sys-poll.h.patch \ + file://0001-pipe.c-Use-a-string-instead-of-char.patch \ + " +SRC_URI[md5sum] = "e752116f523fa88ef041e63d3dee4de2" +SRC_URI[sha256sum] = "bc11ac297b3cb010be904c72789695543ee3fdf3d75cdc8225fd371385af4e61" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-ecore --disable-examples --disable-tests" +LDFLAGS += "-pthread" + +PACKAGE_BEFORE_PN = "${PN}-tools" + +FILES_${PN}-tools = "${bindir}" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-core/ell/ell_git.bb b/meta-oe/recipes-core/ell/ell_git.bb new file mode 100644 index 00000000000..10df6e11deb --- /dev/null +++ b/meta-oe/recipes-core/ell/ell_git.bb @@ -0,0 +1,17 @@ +SUMMARY = "Embedded Linux Library" +DESCRIPTION = "ELL is a DBUS library which provides DBUS bindings." +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" +SECTION = "libs" + +inherit autotools pkgconfig + +S = "${WORKDIR}/git" +SRCREV = "7b7c15c2e5caff88fc45e7a8b874a47196a0eddd" +SRC_URI = "git://git.kernel.org/pub/scm/libs/ell/ell.git" + +do_configure_prepend () { + mkdir ${S}/build-aux +} + +DEPENDS = "dbus" diff --git a/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb b/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb deleted file mode 100644 index a27a60b4811..00000000000 --- a/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb +++ /dev/null @@ -1,15 +0,0 @@ -require fakeroot_${PV}.bb - -S = "${WORKDIR}/fakeroot-${PV}" - -inherit native - -EXTRA_OECONF = "--program-prefix=" - -# Compatability for the rare systems not using or having SYSV -python () { - if d.getVar('HOST_NONSYSV', True) and d.getVar('HOST_NONSYSV', True) != '0': - d.setVar('EXTRA_OECONF', ' --with-ipc=tcp --program-prefix= ') -} - -RDEPENDS_${PN} = "util-linux-native" diff --git a/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb b/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb deleted file mode 100644 index 156d513f15b..00000000000 --- a/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Gives a fake root environment" -HOMEPAGE = "http://fakeroot.alioth.debian.org" -SECTION = "base" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" - -SRC_URI = "\ - ${DEBIAN_MIRROR}/main/f/fakeroot/fakeroot_${PV}.orig.tar.bz2 \ -" - -inherit autotools - -do_configure_prepend() { - mkdir -p ${S}/build-aux -} - -do_install_append() { - install -d ${D}${includedir}/fakeroot - install -m 644 *.h ${D}${includedir}/fakeroot -} - -# fakeroot needs getopt which is provided by the util-linux package -RDEPENDS_${PN} = "util-linux" - - -SRC_URI[md5sum] = "706171d8d520b1ca1576ac73f2ceb4f3" -SRC_URI[sha256sum] = "0a359efa3e9496c33234b3e9c89306a09bb4da9d33de43c261f1d8447e6ebea2" diff --git a/meta-oe/recipes-core/glib-2.0/glibmm_2.36.2.bb b/meta-oe/recipes-core/glib-2.0/glibmm_2.36.2.bb deleted file mode 100644 index 71daf9dea11..00000000000 --- a/meta-oe/recipes-core/glib-2.0/glibmm_2.36.2.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "C++ bindings for the glib library" -HOMEPAGE = "http://www.gtkmm.org/" -SECTION = "libs" -LICENSE = "LGPLv2.1 & GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ - file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "mm-common glib-2.0 libsigc++-2.0" -inherit autotools pkgconfig - -SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" - -SRC_URI = " \ - ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/${SHRT_VER}/glibmm-${PV}.tar.xz \ - file://remove-examples.patch \ -" -SRC_URI[md5sum] = "5c96d566c22c209d7b9cbf2344c469e9" -SRC_URI[sha256sum] = "f15b65bf5740257be03c69f2f5ae71436ac3011ebeb02274b2b99b796c6837cf" - -do_install_append() { - install -d ${D}${datadir}/glibmm-2.4 - install -d ${D}${datadir}/aclocal - - install -m 0644 glib/glibmmconfig.h ${D}${datadir}/glibmm-2.4/ - install -m 0644 scripts/glibmm_check_perl.m4 ${D}${datadir}/aclocal/ || true -} - -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${datadir}/glibmm-* ${libdir}/glibmm-2.4/include/ ${libdir}/glibmm-2.4/proc/ ${libdir}/giomm-2.4/include/" - -RDEPENDS_${PN}-dev = "perl" diff --git a/meta-oe/recipes-core/glib-2.0/glibmm_2.50.1.bb b/meta-oe/recipes-core/glib-2.0/glibmm_2.50.1.bb new file mode 100644 index 00000000000..9cc558fc65b --- /dev/null +++ b/meta-oe/recipes-core/glib-2.0/glibmm_2.50.1.bb @@ -0,0 +1,36 @@ +SUMMARY = "C++ bindings for the glib library" +HOMEPAGE = "http://www.gtkmm.org/" +SECTION = "libs" +LICENSE = "LGPLv2.1 & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ + file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "mm-common glib-2.0 libsigc++-2.0 glib-2.0-native" +inherit autotools pkgconfig + +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" + +SRC_URI = " \ + ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/${SHRT_VER}/glibmm-${PV}.tar.xz \ + file://remove-examples.patch \ +" +SRC_URI[md5sum] = "a5b915dc42fc62983fa78ca8486f4391" +SRC_URI[sha256sum] = "1fd85051da9cb402cc8348cec72dfe4d79f9345df4a1dbf68703a4ded45846a4" + +do_install_append() { + install -d ${D}${datadir}/glibmm-2.4 + install -d ${D}${datadir}/aclocal + + install -m 0644 glib/glibmmconfig.h ${D}${datadir}/glibmm-2.4/ + install -m 0644 scripts/glibmm_check_perl.m4 ${D}${datadir}/aclocal/ || true + + for i in generate_wrap_init.pl gmmproc; do + sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.4/proc/$i + done +} + +FILES_${PN} = "${libdir}/lib*.so.*" +FILES_${PN}-dev += "${datadir}/glibmm-* ${libdir}/glibmm-2.4/include/ ${libdir}/glibmm-2.4/proc/ ${libdir}/giomm-2.4/include/" + +RDEPENDS_${PN}-dev = "perl" +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta-oe/recipes-core/jpeg/libjpeg-turbo_8d+1.4.0.bb b/meta-oe/recipes-core/jpeg/libjpeg-turbo_8d+1.4.0.bb deleted file mode 100644 index 8e214c969d4..00000000000 --- a/meta-oe/recipes-core/jpeg/libjpeg-turbo_8d+1.4.0.bb +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression" -HOMEPAGE = "http://libjpeg-turbo.org/" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=12;md5=cad955d15145c3fdceec6855e078e953 \ - file://jpeglib.h;endline=14;md5=dfc803dc51ae21178d1376ec73c4454d \ - file://djpeg.c;endline=9;md5=e93a8f2061e8a0ac71c7a485c10489e2 \ -" - -BASEPV = "${@d.getVar('PV',True).split('+')[1]}" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${BASEPV}.tar.gz" -SRC_URI[md5sum] = "039153dabe61e1ac8d9323b5522b56b0" -SRC_URI[sha256sum] = "d93ad8546b510244f863b39b4c0da0fa4c0d53a77b61a8a3880f258c232bbbee" - -S = "${WORKDIR}/${BPN}-${BASEPV}" - -# Drop-in replacement for jpeg -PROVIDES = "jpeg" -RPROVIDES_${PN} += "jpeg" -RREPLACES_${PN} += "jpeg" -RCONFLICTS_${PN} += "jpeg" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--with-jpeg8 " - -PACKAGES =+ "jpeg-tools libturbojpeg" - -DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library." -FILES_jpeg-tools = "${bindir}/*" - -FILES_libturbojpeg = "${libdir}/libturbojpeg.so" -INSANE_SKIP_libturbojpeg = "dev-so" - -BBCLASSEXTEND = "native" -DEPENDS = "nasm-native" - -LEAD_SONAME = "libjpeg.so.8" diff --git a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb new file mode 100644 index 00000000000..53bd5de1093 --- /dev/null +++ b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "A library for loose coupling of C++ method calls" +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499" + +DEPENDS = "mm-common" + +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.10/libsigc++-${PV}.tar.xz" +SRC_URI[md5sum] = "70bcbde2c900e4925d6ef4bf50954195" +SRC_URI[sha256sum] = "f843d6346260bfcb4426259e314512b99e296e8ca241d771d21ac64f28298d81" + +S = "${WORKDIR}/libsigc++-${PV}" + +inherit autotools + +EXTRA_AUTORECONF = "--exclude=autoheader" + +FILES_${PN}-dev += "${libdir}/sigc++-*/" +FILES_${PN}-doc += "${datadir}/devhelp" + +BBCLASSEXTEND = "native" +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.2.11.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.2.11.bb deleted file mode 100644 index b6ce5fc9132..00000000000 --- a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.2.11.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "A library for loose coupling of C++ method calls" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499" - -DEPENDS = "mm-common" - -SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.2/libsigc++-${PV}.tar.xz" -SRC_URI[md5sum] = "815d0c6d61601f51bbcaeef6826606b0" -SRC_URI[sha256sum] = "9834045f74f56752c2c6b3cdc195c30ab8314ad22dc8e626d6f67f940f1e4957" - -S = "${WORKDIR}/libsigc++-${PV}" - -inherit autotools - -EXTRA_AUTORECONF = "--exclude=autoheader" - -FILES_${PN}-dev += "${libdir}/sigc++-*/" -FILES_${PN}-doc += "${datadir}/devhelp" - -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-core/libxml/libxml++-2.37.1/libxml++_ptest.patch b/meta-oe/recipes-core/libxml/libxml++-2.37.1/libxml++_ptest.patch deleted file mode 100644 index 82960f11206..00000000000 --- a/meta-oe/recipes-core/libxml/libxml++-2.37.1/libxml++_ptest.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index d4aadb1..0e36756 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -253,5 +253,8 @@ post-html: docs/index.html - rsync $(rsync_args) -r docs/index.html $$USER,libxmlplusplus@web.sourceforge.net:$(web_path_project) - rsync $(rsync_args) -r examples $$USER,libxmlplusplus@web.sourceforge.net:$(web_path_project) - -+install-ptest: -+ make -C examples install-ptest -+ - # Optional: auto-generate the ChangeLog file from the git log on make dist - include $(top_srcdir)/macros/dist-changelog.am -diff --git a/examples/Makefile.am b/examples/Makefile.am -index d9541ca..c27e088 100644 ---- a/examples/Makefile.am -+++ b/examples/Makefile.am -@@ -19,6 +19,8 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I. $(LIBXMLXX_CFLAGS) - AM_CXXFLAGS = $(LIBXMLXX_WXXFLAGS) - LDADD = $(top_builddir)/libxml++/libxml++-$(LIBXMLXX_API_VERSION).la $(LIBXMLXX_LIBS) - -+LOG_DRIVER = $(SHELL) ../macros/test-driver -+ - check_PROGRAMS = \ - dom_build/dom_build \ - dom_parse_entities/dom_parse_entities \ -@@ -36,6 +38,23 @@ check_PROGRAMS = \ - schemavalidation/schemavalidation \ - textreader/textreader - -+check_DOTLIBS = \ -+ dom_build/.libs/dom_build \ -+ dom_parse_entities/.libs/dom_parse_entities \ -+ dom_parser/.libs/dom_parser \ -+ dom_parser_raw/.libs/dom_parser_raw \ -+ dom_read_write/.libs/dom_read_write \ -+ dom_xinclude/.libs/dom_xinclude \ -+ dom_xpath/.libs/dom_xpath \ -+ dtdvalidation/.libs/dtdvalidation \ -+ import_node/.libs/import_node \ -+ sax_exception/.libs/sax_exception \ -+ sax_parser/.libs/sax_parser \ -+ sax_parser_build_dom/.libs/sax_parser_build_dom \ -+ sax_parser_entities/.libs/sax_parser_entities \ -+ schemavalidation/.libs/schemavalidation \ -+ textreader/.libs/textreader -+ - # Shell scripts that call the example programs. - check_SCRIPTS = \ - dom_build/make_check.sh \ -@@ -147,10 +166,10 @@ dist_noinst_DATA = \ - # file are located in different directories. - dom_read_write/make_check.sh: Makefile - echo '# Generated and used by "make check"' >$@ -- echo 'dom_read_write/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@ -+ echo 'cd dom_read_write && .libs/dom_read_write "example.xml" example_output.xml >/dev/null' >>$@ - chmod +x $@ - --script_template = cd "$(srcdir)/" && "$(abs_builddir)//" >/dev/null -+script_template = cd "" && ".libs/" >/dev/null - standard_scripts = $(filter-out dom_read_write/make_check.sh,$(check_SCRIPTS)) - - # All other script files are generated like so: -@@ -162,3 +181,18 @@ $(standard_scripts): Makefile - CLEANFILES = \ - dom_read_write/example_output.xml \ - $(check_SCRIPTS) -+ -+buildtest: all -+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS) -+ $(MAKE) $(AM_MAKEFLAGS) buildtest-TESTS -+ -+install-ptest: -+ $(MKDIR_P) $(DESTDIR)/examples -+ cp --parents $(check_DOTLIBS) $(DESTDIR)/examples -+ cp --parents $(check_SCRIPTS) $(DESTDIR)/examples -+ cd $(srcdir) && cp --parents $(dist_noinst_DATA) $(DESTDIR)/examples -+ cp Makefile $(DESTDIR)/examples -+ $(MKDIR_P) $(DESTDIR)/macros -+ cp $(srcdir)/../macros/test-driver $(DESTDIR)/macros -+ sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/examples/Makefile -+ diff --git a/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch b/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch new file mode 100644 index 00000000000..0d1a5186a64 --- /dev/null +++ b/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch @@ -0,0 +1,82 @@ +Index: libxml++-2.40.1/Makefile.am +=================================================================== +--- libxml++-2.40.1.orig/Makefile.am ++++ libxml++-2.40.1/Makefile.am +@@ -24,5 +24,8 @@ dist_noinst_SCRIPTS = autogen.sh + + DISTCLEANFILES = MSVC_Net2010/libxml++/libxml++config.h + ++install-ptest: ++ make -C examples install-ptest ++ + # Optional: auto-generate the ChangeLog file from the git log on make dist + include $(top_srcdir)/build/dist-changelog.am +Index: libxml++-2.40.1/examples/Makefile.am +=================================================================== +--- libxml++-2.40.1.orig/examples/Makefile.am ++++ libxml++-2.40.1/examples/Makefile.am +@@ -19,6 +19,8 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(top_ + AM_CXXFLAGS = $(LIBXMLXX_WXXFLAGS) + LDADD = $(top_builddir)/libxml++/libxml++-$(LIBXMLXX_API_VERSION).la $(LIBXMLXX_LIBS) + ++LOG_DRIVER = $(SHELL) ../macros/test-driver ++ + check_PROGRAMS = \ + dom_build/dom_build \ + dom_parse_entities/dom_parse_entities \ +@@ -37,6 +39,23 @@ check_PROGRAMS = \ + schemavalidation/schemavalidation \ + textreader/textreader + ++check_DOTLIBS = \ ++ dom_build/.libs/dom_build \ ++ dom_parse_entities/.libs/dom_parse_entities \ ++ dom_parser/.libs/dom_parser \ ++ dom_parser_raw/.libs/dom_parser_raw \ ++ dom_read_write/.libs/dom_read_write \ ++ dom_xinclude/.libs/dom_xinclude \ ++ dom_xpath/.libs/dom_xpath \ ++ dtdvalidation/.libs/dtdvalidation \ ++ import_node/.libs/import_node \ ++ sax_exception/.libs/sax_exception \ ++ sax_parser/.libs/sax_parser \ ++ sax_parser_build_dom/.libs/sax_parser_build_dom \ ++ sax_parser_entities/.libs/sax_parser_entities \ ++ schemavalidation/.libs/schemavalidation \ ++ textreader/.libs/textreader ++ + # Shell scripts that call the example programs. + check_SCRIPTS = \ + dom_build/make_check.sh \ +@@ -154,10 +173,10 @@ dist_noinst_DATA = \ + # file are located in different directories. + dom_read_write/make_check.sh: Makefile + echo '# Generated and used by "make check"' >$@ +- echo 'dom_read_write/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@ ++ echo 'cd dom_read_write && .libs/dom_read_write "example.xml" example_output.xml >/dev/null' >>$@ + chmod +x $@ + +-script_template = cd "$(srcdir)/" && "$(abs_builddir)//" >/dev/null ++script_template = cd "" && ".libs/" >/dev/null + standard_scripts = $(filter-out dom_read_write/make_check.sh,$(check_SCRIPTS)) + + # All other script files are generated like so: +@@ -169,3 +188,18 @@ $(standard_scripts): Makefile + CLEANFILES = \ + dom_read_write/example_output.xml \ + $(check_SCRIPTS) ++ ++buildtest: all ++ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS) ++ $(MAKE) $(AM_MAKEFLAGS) buildtest-TESTS ++ ++install-ptest: ++ $(MKDIR_P) $(DESTDIR)/examples ++ cp --parents $(check_DOTLIBS) $(DESTDIR)/examples ++ cp --parents $(check_SCRIPTS) $(DESTDIR)/examples ++ cd $(srcdir) && cp --parents $(dist_noinst_DATA) $(DESTDIR)/examples ++ cp Makefile $(DESTDIR)/examples ++ $(MKDIR_P) $(DESTDIR)/macros ++ cp $(top_srcdir)/build/test-driver $(DESTDIR)/macros ++ sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/examples/Makefile ++ diff --git a/meta-oe/recipes-core/libxml/libxml++-2.37.1/run-ptest b/meta-oe/recipes-core/libxml/libxml++/run-ptest similarity index 100% rename from meta-oe/recipes-core/libxml/libxml++-2.37.1/run-ptest rename to meta-oe/recipes-core/libxml/libxml++/run-ptest diff --git a/meta-oe/recipes-core/libxml/libxml++_2.37.1.bb b/meta-oe/recipes-core/libxml/libxml++_2.37.1.bb deleted file mode 100644 index 0ed8ee39921..00000000000 --- a/meta-oe/recipes-core/libxml/libxml++_2.37.1.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "C++ wrapper for libxml library" -DESCRIPTION = "C++ wrapper for libxml library" -HOMEPAGE = "http://libxmlplusplus.sourceforge.net" -BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml%2B%2B" -SECTION = "libs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 " - -SHRT_VER = "${@d.getVar('PV',True).split('.')[0]}.${@d.getVar('PV',True).split('.')[1]}" -SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BP}.tar.xz \ - file://libxml++_ptest.patch \ - file://run-ptest \ -" -SRC_URI[md5sum] = "2f9372a6eba6e40206c11f558a8fbc32" -SRC_URI[sha256sum] = "f3b183600532a92af355719210223f858857092b8b1531c7907155c59a6db39f" - -DEPENDS = "libxml2 glibmm" - -inherit autotools pkgconfig ptest - -do_compile_ptest() { - oe_runmake -C examples buildtest -} - -FILES_${PN}-doc += "${datadir}/devhelp" -FILES_${PN}-dev += "${libdir}/libxml++-2.6/include/libxml++config.h" - -RDEPENDS_${PN}-ptest += "make" diff --git a/meta-oe/recipes-core/libxml/libxml++_2.40.1.bb b/meta-oe/recipes-core/libxml/libxml++_2.40.1.bb new file mode 100644 index 00000000000..c001c184cbd --- /dev/null +++ b/meta-oe/recipes-core/libxml/libxml++_2.40.1.bb @@ -0,0 +1,28 @@ +SUMMARY = "C++ wrapper for libxml library" +DESCRIPTION = "C++ wrapper for libxml library" +HOMEPAGE = "http://libxmlplusplus.sourceforge.net" +BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml%2B%2B" +SECTION = "libs" +LICENSE = "LGPL-2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 " + +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" +SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BP}.tar.xz \ + file://libxml++_ptest.patch \ + file://run-ptest \ +" +SRC_URI[md5sum] = "377a87bea899f2b4ff62df2418c3d8a6" +SRC_URI[sha256sum] = "4ad4abdd3258874f61c2e2a41d08e9930677976d303653cd1670d3e9f35463e9" + +DEPENDS = "libxml2 glibmm" + +inherit autotools pkgconfig ptest + +do_compile_ptest() { + oe_runmake -C examples buildtest +} + +FILES_${PN}-doc += "${datadir}/devhelp" +FILES_${PN}-dev += "${libdir}/libxml++-2.6/include/libxml++config.h" + +RDEPENDS_${PN}-ptest += "make" diff --git a/meta-oe/recipes-core/llvm/llvm-common.bb b/meta-oe/recipes-core/llvm/llvm-common.bb deleted file mode 100644 index 618cc1e9d0e..00000000000 --- a/meta-oe/recipes-core/llvm/llvm-common.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Helper script for OE's llvm support" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ - file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \ -" - -SRC_URI = "file://llvm-config" - -ALLOW_EMPTY_${PN} = "1" -SYSROOT_PREPROCESS_FUNCS_append_class-target = " llvm_common_sysroot_preprocess" - -llvm_common_sysroot_preprocess() { - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -m 0755 ${WORKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ -} - -do_install_class-native() { - install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/llvm-config ${D}${bindir} -} - -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-core/llvm/llvm-common/llvm-config b/meta-oe/recipes-core/llvm/llvm-common/llvm-config deleted file mode 100644 index a9a416d9316..00000000000 --- a/meta-oe/recipes-core/llvm/llvm-common/llvm-config +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# Wrapper script for real llvm-config. Simply calls - -if [ $WANT_LLVM_RELEASE ]; then - exec `dirname $0`/${TARGET_PREFIX}llvm-config$WANT_LLVM_RELEASE ${@} -else - echo "The variable WANT_LLVM_RELEASE is not defined and exported" - echo "by your build recipe. Go figure." - exit 1 -fi diff --git a/meta-oe/recipes-core/llvm/llvm.inc b/meta-oe/recipes-core/llvm/llvm.inc deleted file mode 100644 index 26bac33105a..00000000000 --- a/meta-oe/recipes-core/llvm/llvm.inc +++ /dev/null @@ -1,145 +0,0 @@ -# LLVM does not provide ABI stability between different versions. For this -# reason OE makes it possible to build and install different llvm versions -# at the same time. -# -# This is true for the normal recipes as well as the native ones. -# -# All regular installation directories are prefixed with 'llvm${LLVM_RELEASE}' -# e.g. "${STAGING_BINDIR}/llvm2.5" or "${STAGING_INCDIR}/llvm2.5" -# -# For your program or library that makes use of llvm you do should not need to -# modify anything as long as it uses the results of various llvm-config -# invocations. If you need customizations something is wrong and it needs to be -# fixed (report bug). -# -# However the *recipe* for your program/library *must* declare -# export WANT_LLVM_RELEASE = "" -# The version number is picked up by a generic wrapper script which just calls -# the variant of the specified version. - -DESCRIPTION = "The Low Level Virtual Machine" -HOMEPAGE = "http://llvm.org" - -# 3-clause BSD-like -# University of Illinois/NCSA Open Source License -LICENSE = "NCSA" -LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=d0a3ef0d3e0e8f5cf59e5ffc273ab1f8" - -DEPENDS = "libffi libxml2-native llvm-common" - -inherit perlnative pythonnative autotools - -LLVM_RELEASE = "${PV}" -LLVM_DIR = "llvm${LLVM_RELEASE}" - -SRC_URI = "http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.gz" -S = "${WORKDIR}/llvm-${PV}.src" - -LLVM_BUILD_DIR = "${WORKDIR}/llvm-${PV}.build" -LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install" - -EXTRA_OECONF += "--disable-assertions \ - --enable-debug-runtime \ - --disable-expensive-checks \ - --enable-bindings=none \ - --enable-keep-symbols \ - --enable-libffi \ - --enable-optimized \ - --enable-shared \ - --enable-targets=host-only" -EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1" - -do_configure_prepend() { - # Remove RPATHs - sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' ${S}/Makefile.rules - - # Drop "svn" suffix from version string - sed -i 's/${PV}svn/${PV}/g' ${S}/configure - - # Fix paths in llvm-config - sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp - sed -ri "s#/(bin|include|lib)(/?\")#/\1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-config.cpp - - # Fails to build unless using separate directory from source - mkdir -p ${LLVM_BUILD_DIR} - cd ${LLVM_BUILD_DIR} -} - -do_compile() { - cd ${LLVM_BUILD_DIR} - oe_runmake \ - AR="${BUILD_AR}" \ - CC="${BUILD_CC}" \ - CFLAGS="${BUILD_CFLAGS}" \ - CXX="${BUILD_CXX}" \ - CXXFLAGS="${BUILD_CXXFLAGS}" \ - CPP="${BUILD_CPP}" \ - CPPFLAGS="${BUILD_CPPFLAGS}" \ - NM="${BUILD_NM}" \ - RANLIB="${BUILD_RANLIB}" \ - PATH="${STAGING_BINDIR_NATIVE}:$PATH" \ - cross-compile-build-tools - oe_runmake -} - -do_install() { - cd ${LLVM_BUILD_DIR} - oe_runmake DESTDIR=${LLVM_INSTALL_DIR} install - - mv ${LLVM_INSTALL_DIR}${bindir}/${HOST_SYS}-llvm-config-host ${LLVM_INSTALL_DIR}/llvm-config-host - - install -d ${D}${bindir}/${LLVM_DIR} - mv ${LLVM_INSTALL_DIR}${bindir}/* ${D}${bindir}/${LLVM_DIR}/ - - install -d ${D}${includedir}/${LLVM_DIR} - mv ${LLVM_INSTALL_DIR}${includedir}/* ${D}${includedir}/${LLVM_DIR}/ - - install -d ${D}${libdir}/${LLVM_DIR} - mv ${LLVM_INSTALL_DIR}${libdir}/* ${D}${libdir}/${LLVM_DIR}/ - ln -s ${LLVM_DIR}/libLLVM-${PV}.so ${D}${libdir}/libLLVM-${PV}.so - - install -d ${D}${docdir}/${LLVM_DIR} - mv ${LLVM_INSTALL_DIR}${prefix}/docs/llvm/* ${D}${docdir}/${LLVM_DIR} -} - -SYSROOT_PREPROCESS_FUNCS += "llvm_sysroot_preprocess" - -llvm_sysroot_preprocess() { - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts} - mv ${LLVM_INSTALL_DIR}/llvm-config-host ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} -} - -ALLOW_EMPTY_${PN} = "1" -ALLOW_EMPTY_${PN}-staticdev = "1" -FILES_${PN} = "" -FILES_${PN}-staticdev = "" -DOTDEBUG-dbg = " ${bindir}/${LLVM_DIR}/.debug \ - ${libdir}/${LLVM_DIR}/.debug/BugpointPasses.so \ - ${libdir}/${LLVM_DIR}/.debug/LLVMHello.so \ - /usr/src/debug \ -" - -FILES_${PN}-dev = "${bindir}/${LLVM_DIR} \ - ${includedir}/${LLVM_DIR} \ - ${libdir}/${LLVM_DIR}/BugpointPasses.so \ - ${libdir}/${LLVM_DIR}/LLVMHello.so \ -" - -PACKAGES_DYNAMIC = "^libllvm-.*$" - -INSANE_SKIP_libllvm${LLVM_RELEASE}-llvm-${LLVM_RELEASE} += "dev-so" - -python llvm_populate_packages() { - libdir = bb.data.expand('${libdir}', d) - libllvm_libdir = bb.data.expand('${libdir}/${LLVM_DIR}', d) - split_dbg_packages = do_split_packages(d, libllvm_libdir+'/.debug', '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s-dbg', 'Split debug package for %s', allow_dirs=True) - split_packages = do_split_packages(d, libdir, '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s', 'Split package for %s', allow_dirs=True, allow_links=True, recursive=True) - split_staticdev_packages = do_split_packages(d, libllvm_libdir, '^lib(.*)\.a$', 'libllvm${LLVM_RELEASE}-%s-staticdev', 'Split staticdev package for %s', allow_dirs=True) - if split_packages: - pn = d.getVar('PN', True) - d.appendVar('RDEPENDS_' + pn, ' '+' '.join(split_packages)) - d.appendVar('RDEPENDS_' + pn + '-dbg', ' '+' '.join(split_dbg_packages)) - d.appendVar('RDEPENDS_' + pn + '-staticdev', ' '+' '.join(split_staticdev_packages)) -} - -PACKAGESPLITFUNCS_prepend = "llvm_populate_packages " diff --git a/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch b/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch deleted file mode 100644 index c3ae4946459..00000000000 --- a/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: llvm-2.9/include/llvm/Support/FEnv.h -=================================================================== ---- llvm-2.9.orig/include/llvm/Support/FEnv.h 2010-11-29 20:44:50.000000000 +0100 -+++ llvm-2.9/include/llvm/Support/FEnv.h 2011-11-18 18:42:22.580161297 +0100 -@@ -17,6 +17,9 @@ - - #include "llvm/Config/config.h" - #include -+ -+#undef HAVE_FENV_H -+ - #ifdef HAVE_FENV_H - #include - #endif diff --git a/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb b/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb deleted file mode 100644 index 4617efa8b71..00000000000 --- a/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb +++ /dev/null @@ -1,11 +0,0 @@ -require llvm.inc - -DEPENDS += "zlib" -EXTRA_OECONF += "--enable-zlib" - -SRC_URI_append_libc-uclibc = " file://arm_fenv_uclibc.patch " -SRC_URI[md5sum] = "40564e1dc390f9844f1711c08b08e391" -SRC_URI[sha256sum] = "68766b1e70d05a25e2f502e997a3cb3937187a3296595cf6e0977d5cd6727578" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[r600] = "--enable-experimental-targets=R600,,," diff --git a/meta-oe/recipes-core/meta/distro-feed-configs.bb b/meta-oe/recipes-core/meta/distro-feed-configs.bb index ea5ca384868..2a8de54d242 100644 --- a/meta-oe/recipes-core/meta/distro-feed-configs.bb +++ b/meta-oe/recipes-core/meta/distro-feed-configs.bb @@ -22,8 +22,8 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" #def distro_feed_configs(d): # import bb -# parchs = d.getVar( "PACKAGE_EXTRA_ARCHS", 1 ).split() -# march = d.getVar( "MACHINE_ARCH", 1 ).split() +# parchs = d.getVar("PACKAGE_EXTRA_ARCHS").split() +# march = d.getVar("MACHINE_ARCH").split() # archs = [ "all" ] + parchs + march # confs = [ ( "${sysconfdir}/opkg/%s-feed.conf" % feed ) for feed in archs ] # return " ".join( confs ) diff --git a/meta-oe/recipes-core/mm-common/mm-common_0.9.10.bb b/meta-oe/recipes-core/mm-common/mm-common_0.9.10.bb new file mode 100644 index 00000000000..899eb8a9b69 --- /dev/null +++ b/meta-oe/recipes-core/mm-common/mm-common_0.9.10.bb @@ -0,0 +1,12 @@ +inherit gnomebase + +GNOME_COMPRESS_TYPE="xz" + +SRC_URI[archive.md5sum] = "49dc47af8c89ce5b3c768306b9a0f922" +SRC_URI[archive.sha256sum] = "16c0e2bc196b67fbc145edaecb5dbe5818386504fe5703de27002d77140fa217" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +BBCLASSEXTEND = "native" + diff --git a/meta-oe/recipes-core/mm-common/mm-common_0.9.6.bb b/meta-oe/recipes-core/mm-common/mm-common_0.9.6.bb deleted file mode 100644 index f7e2507b3b0..00000000000 --- a/meta-oe/recipes-core/mm-common/mm-common_0.9.6.bb +++ /dev/null @@ -1,12 +0,0 @@ -inherit gnomebase - -GNOME_COMPRESS_TYPE="xz" - -SRC_URI[archive.md5sum] = "3b23749ab39441c392c016ce74632678" -SRC_URI[archive.sha256sum] = "7c37158a1f37604705a9b9305d3b335fb8256f5de701c8801269dde4e2ce7dde" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -BBCLASSEXTEND = "native" - diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb b/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb index 4f2992cb6f4..b12183b3a42 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb @@ -3,7 +3,7 @@ SUMMARY = "Basic task to get a device online" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" PR = "r13" @@ -22,7 +22,7 @@ MACHINE_EXTRA_RRECOMMENDS ?= "" TASK_BASIC_SSHDAEMON ?= "dropbear openssh-sftp openssh-sftp-server" # -# The section below is designed to match with packagegroup-boot, but doesn't depend on it to allow for more freedom +# The section below is designed to match with packagegroup-boot, but doesn't depend on it to allow for more freedom # when writing image recipes. # It also avoids the choice between connman/networkmanager/ifupdown since that is an image feature, not a # distro feature. @@ -38,16 +38,16 @@ RDEPENDS_${PN} = "\ # The following section is split in 3: # 1) Machine features: kernel modules and userspace helpers for those # 2) Distro features: packages associated with those -# 3) Nice to have: packages that are nice to have, but aren't strictly needed +# 3) Nice to have: packages that are nice to have, but aren't strictly needed # RRECOMMENDS_${PN} = "\ ${MACHINE_EXTRA_RRECOMMENDS} \ - ${@base_contains("MACHINE_FEATURES", "usbhost", "usbutils", "", d)} \ - ${@base_contains("MACHINE_FEATURES", "alsa", "alsa-utils-alsamixer", "", d)} \ - ${@base_contains("MACHINE_FEATURES", "usbgadget", "kernel-module-g-ether kernel-module-g-serial kernel-module-g-mass-storage", "", d)} \ + ${@bb.utils.contains("MACHINE_FEATURES", "usbhost", "usbutils", "", d)} \ + ${@bb.utils.contains("MACHINE_FEATURES", "alsa", "alsa-utils-alsamixer", "", d)} \ + ${@bb.utils.contains("MACHINE_FEATURES", "usbgadget", "kernel-module-g-ether kernel-module-g-serial kernel-module-g-mass-storage", "", d)} \ \ - ${@base_contains("DISTRO_FEATURES", "bluetooth", "${BLUEZ}", "", d)} \ - ${@base_contains("DISTRO_FEATURES", "wifi", "iw wpa-supplicant", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "${BLUEZ}", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "wifi", "iw wpa-supplicant", "", d)} \ \ tzdata \ \ diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb b/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb index f50443d812b..3ae7a49fe5b 100644 --- a/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb +++ b/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb @@ -1,6 +1,6 @@ SUMMARY = "Basic task to get a device booting" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" PR = "r58" @@ -24,7 +24,7 @@ RDEPENDS_${PN} = "\ base-passwd \ busybox \ netbase \ - ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \ + ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \ ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \ " diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb b/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb deleted file mode 100644 index 2a4b067ba2c..00000000000 --- a/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "A set of useful command line tools" -SUMMARY_${PN}-debug = "A set of command line tools useful for debugging" -SECTION = "console" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -PV = "1.0" -PR = "r21" - -inherit packagegroup allarch - -PACKAGES += "${PN}-debug" - -RDEPENDS_${PN} = "\ - dbus-daemon-proxy \ - dosfstools \ - htop \ - iptables \ - lsof \ - mbuffer \ - mtd-utils \ - nano \ - nfs-utils-client \ - nmon \ - powertop \ - screen \ - socat \ - sysstat \ -" - -RDEPENDS_${PN}-debug = "\ - evtest \ - devmem2 \ - i2c-tools \ - gdb \ - procps \ - pxaregs \ - s3c24xx-gpio \ - s3c64xx-gpio \ - serial-forward \ - strace \ -" - -RRECOMMENDS_${PN}-debug = "\ - ltrace \ -" diff --git a/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb b/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb new file mode 100644 index 00000000000..6163cff7c49 --- /dev/null +++ b/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb @@ -0,0 +1,66 @@ +SUMMARY = "Plymouth is a project from Fedora providing a flicker-free graphical boot process." + +DESCRIPTION = "Plymouth is an application that runs very early in the boot process \ + (even before the root filesystem is mounted!) that provides a \ + graphical boot animation while the boot process happens in the background. \ +" + +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/Plymouth" +SECTION = "base" + +LICENSE = "GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "libcap libpng cairo dbus udev" +PROVIDES = "virtual/psplash" +RPROVIDES_${PN} = "virtual-psplash virtual-psplash-support" + +SRC_URI = "http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "ff420994deb7ea203df678df92e7ab7d" +SRC_URI[sha256sum] = "2f0ce82042cf9c7eadd2517a1f74c8a85fa8699781d9f294a06eade29fbed57f" + +EXTRA_OECONF += " --enable-shared --disable-static --disable-gtk --disable-documentation \ + --with-logo=${LOGO} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd-integration --with-system-root-install', '', d)} \ +" + +PACKAGECONFIG ??= "pango initrd" +PACKAGECONFIG_append_x86 = " drm" +PACKAGECONFIG_append_x86-64 = " drm" + +PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+" +PACKAGECONFIG[initrd] = ",,," + +LOGO ??= "${datadir}/plymouth/bizcom.png" + +inherit autotools pkgconfig systemd + +do_install_append() { + install -d ${D}${systemd_unitdir}/system + install -m 644 ${B}/systemd-units/*.service ${D}${systemd_unitdir}/system + install -m 644 ${B}/systemd-units/systemd-ask-password-plymouth.path ${D}${systemd_unitdir}/system + # Remove /var/run from package as plymouth will populate it on startup + rm -fr "${D}${localstatedir}/run" + + if ! ${@bb.utils.contains('PACKAGECONFIG', 'initrd', 'true', 'false', d)}; then + rm -rf "${D}${libexecdir}" + fi +} + +PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'initrd', '${PN}-initrd ', '', d)}" +PACKAGES =+ "${PN}-set-default-theme" + +FILES_${PN}-initrd = "${libexecdir}/plymouth/*" +FILES_${PN}-set-default-theme = "${sbindir}/plymouth-set-default-theme" + +FILES_${PN} += "${systemd_unitdir}/system/*" +FILES_${PN}-dbg += "${libdir}/plymouth/renderers/.debug" + + +RDEPENDS_${PN}-initrd = "bash dracut" +RDEPENDS_${PN}-set-default-theme = "bash" + +SYSTEMD_SERVICE_${PN} = "plymouth-start.service" diff --git a/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/create-as-shared-lib.patch b/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/create-as-shared-lib.patch deleted file mode 100644 index 306e3b8212f..00000000000 --- a/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/create-as-shared-lib.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/src/proxy-libintl/Makefile.org 2009-09-12 23:19:04.989421607 -0700 -+++ a/src/proxy-libintl/Makefile 2009-09-12 23:21:14.100640001 -0700 -@@ -4,20 +4,20 @@ ZIPFILE = proxy-libintl-$(TIMESTAMP).zip - CC = gcc - CFLAGS = -Wall -I ../../include - --all : ../../lib/libintl.a ../../lib/intl.lib -+all : ../../lib/libintl.so ../../lib/intl.lib - --../../lib/libintl.a : libintl.o -- ar rc $@ libintl.o -+../../lib/libintl.so : libintl.o -+ $(CC) -shared -o $@ libintl.o - --../../lib/intl.lib : ../../lib/libintl.a -- cp ../../lib/libintl.a $@ -- strip --strip-unneeded $@ -+../../lib/intl.lib : ../../lib/libintl.so -+ cp ../../lib/libintl.so $@ -+ $(STRIP) --strip-unneeded $@ - - libintl.o : libintl.c - $(CC) $(CFLAGS) -c libintl.c - - clean : -- rm -f *.o ../../lib/libintl.a ../../$(ZIPFILE) -+ rm -f *.o ../../lib/libintl.so ../../$(ZIPFILE) - - dist : clean all -- cd ../..; zip $(ZIPFILE) include/libintl.h lib/{libintl.a,intl.lib} src/proxy-libintl/{README.txt,COPYING.LIB.txt,Makefile,libintl.[ch]}; manifestify $(ZIPFILE) -+ cd ../..; zip $(ZIPFILE) include/libintl.h lib/{libintl.so,intl.lib} src/proxy-libintl/{README.txt,COPYING.LIB.txt,Makefile,libintl.[ch]}; manifestify $(ZIPFILE) diff --git a/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch b/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch deleted file mode 100644 index 0df232d2505..00000000000 --- a/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: proxy-libintl-20080418-r6/src/proxy-libintl/Makefile -=================================================================== ---- proxy-libintl-20080418-r6.orig/src/proxy-libintl/Makefile 2010-07-25 08:40:22.893620001 -0700 -+++ proxy-libintl-20080418-r6/src/proxy-libintl/Makefile 2010-07-25 10:51:29.573620000 -0700 -@@ -6,16 +6,13 @@ CFLAGS = -Wall -I ../../include - - all : ../../lib/libintl.so ../../lib/intl.lib - --../../lib/libintl.so : libintl.o -- $(CC) -shared -o $@ libintl.o -+../../lib/libintl.so : libintl.c -+ $(CC) $(CFLAGS) -shared -Wl,-soname -Wl,libintl.so -o $@ $< - - ../../lib/intl.lib : ../../lib/libintl.so - cp ../../lib/libintl.so $@ - $(STRIP) --strip-unneeded $@ - --libintl.o : libintl.c -- $(CC) $(CFLAGS) -c libintl.c -- - clean : - rm -f *.o ../../lib/libintl.so ../../$(ZIPFILE) - diff --git a/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/stub-only.patch b/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/stub-only.patch deleted file mode 100644 index 7186b13c066..00000000000 --- a/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/stub-only.patch +++ /dev/null @@ -1,72 +0,0 @@ -Index: proxy-libintl/src/proxy-libintl/libintl.c -=================================================================== ---- proxy-libintl.orig/src/proxy-libintl/libintl.c -+++ proxy-libintl/src/proxy-libintl/libintl.c -@@ -18,9 +18,12 @@ - */ - - #ifdef _WIN32 --#include -+# include - #else --#include -+# include -+# if !STUB_ONLY -+# include -+# endif - typedef void* HMODULE; - #endif - -@@ -65,11 +68,13 @@ static char * (*p_bind_textdomain_codese - static int - use_intl_dll (HMODULE dll) - { --#ifdef _WIN32 --#define LOOKUP(fn) p_##fn = (void *) GetProcAddress (dll, #fn); if (p_##fn == NULL) return 0 --#else --#define LOOKUP(fn) p_##fn = (void *) dlsym (dll, #fn); if (p_##fn == NULL) return 0 --#endif -+#if !STUB_ONLY -+# ifdef _WIN32 -+# define LOOKUP(fn) p_##fn = (void *) GetProcAddress (dll, #fn); if (p_##fn == NULL) return 0 -+# else -+# define LOOKUP(fn) p_##fn = (void *) dlsym (dll, #fn); if (p_##fn == NULL) return 0 -+# endif /* _WIN32 */ -+ - - LOOKUP (gettext); - LOOKUP (dgettext); -@@ -82,7 +87,7 @@ use_intl_dll (HMODULE dll) - LOOKUP (bind_textdomain_codeset); - - #undef LOOKUP -- -+#endif /* !STUB_ONLY */ - return 1; - } - -@@ -171,13 +176,17 @@ setup (void) - - if (!beenhere) - { --#ifdef _WIN32 -- HMODULE intl_dll = LoadLibrary ("intl.dll"); --#elif defined(__APPLE__) && defined(__MACH__) -- HMODULE intl_dll = dlopen ("libintl.dylib", RTLD_LAZY); --#else -- HMODULE intl_dll = dlopen ("libintl.so", RTLD_LAZY); --#endif -+#if !STUB_ONLY -+# ifdef _WIN32 -+ HMODULE intl_dll = LoadLibrary ("intl.dll"); -+# elif defined(__APPLE__) && defined(__MACH__) -+ HMODULE intl_dll = dlopen ("libintl.dylib", RTLD_LAZY); -+# else -+ HMODULE intl_dll = dlopen ("libintl.so", RTLD_LAZY); -+# endif -+#else /* !STUB_ONLY */ -+ HMODULE intl_dll = NULL; -+#endif /* STUB_ONLY */ - - if (intl_dll != NULL && - use_intl_dll (intl_dll)) diff --git a/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb b/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb index a46a91c8b9d..f11ae7e4d20 100644 --- a/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb +++ b/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb @@ -18,7 +18,7 @@ PACKAGES = "${PN} ${PN}-dev" FILES_${PN}-dev = "${includedir}/libintl.h ${libdir}/libintl.a" INSANE_SKIP_${PN}-dev = "staticdev" ALLOW_EMPTY_${PN} = "1" -CFLAGS_append = " -fPIC -Wall -I ../../include ${@['-DSTUB_ONLY', ''][d.getVar('USE_NLS', 1) != 'no']}" +CFLAGS_append = " -fPIC -Wall -I ../../include ${@['-DSTUB_ONLY', ''][d.getVar('USE_NLS') != 'no']}" TARGET_CC_ARCH += "${LDFLAGS}" do_compile() { diff --git a/meta-oe/recipes-core/toybox/toybox/0001-Match-paths-with-busybox.patch b/meta-oe/recipes-core/toybox/toybox/0001-Match-paths-with-busybox.patch deleted file mode 100644 index e071f22b16c..00000000000 --- a/meta-oe/recipes-core/toybox/toybox/0001-Match-paths-with-busybox.patch +++ /dev/null @@ -1,383 +0,0 @@ -From 27f5ca9f1e212e5ab00cde0bfc91282fc7ff5e16 Mon Sep 17 00:00:00 2001 -From: Paul Barker -Date: Mon, 18 Aug 2014 12:18:16 +0000 -Subject: [PATCH] Match paths with busybox - -To ensure that toybox can be installed alongside busybox without confusing -update-alternatives, the paths of the links installed by toybox should match -those installed by busybox. This is accomplished by changing the flags of a few -tools within toybox. - -v2: - - Forward ported from v0.4.9 to v0.5.0 - - Move new 'mount' command - -Signed-off-by: Paul Barker - -Upstream-status: Inappropriate - (specific to update-alternatives use in OpenEmbedded) ---- - toys/lsb/mount.c | 2 +- - toys/lsb/pidof.c | 2 +- - toys/other/chvt.c | 2 +- - toys/other/ifconfig.c | 2 +- - toys/other/insmod.c | 2 +- - toys/other/lsmod.c | 2 +- - toys/other/netcat.c | 2 +- - toys/other/pivot_root.c | 2 +- - toys/other/readlink.c | 2 +- - toys/other/reboot.c | 6 +++--- - toys/other/rfkill.c | 2 +- - toys/other/rmmod.c | 2 +- - toys/other/swapoff.c | 2 +- - toys/other/swapon.c | 2 +- - toys/other/sysctl.c | 2 +- - toys/posix/cut.c | 2 +- - toys/posix/df.c | 2 +- - toys/posix/head.c | 2 +- - toys/posix/id.c | 6 +++--- - toys/posix/mkfifo.c | 2 +- - toys/posix/renice.c | 2 +- - toys/posix/tail.c | 2 +- - toys/posix/tee.c | 2 +- - toys/posix/uniq.c | 2 +- - toys/posix/who.c | 2 +- - 25 files changed, 29 insertions(+), 29 deletions(-) - -diff --git a/toys/lsb/mount.c b/toys/lsb/mount.c -index 01f5c32..65a5aa2 100644 ---- a/toys/lsb/mount.c -+++ b/toys/lsb/mount.c -@@ -6,7 +6,7 @@ - * Note: -hV is bad spec, haven't implemented -FsLU yet - * no mtab (/proc/mounts does it) so -n is NOP. - --USE_MOUNT(NEWTOY(mount, "?O:afnrvwt:o*[-rw]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT)) -+USE_MOUNT(NEWTOY(mount, "?O:afnrvwt:o*[-rw]", TOYFLAG_BIN|TOYFLAG_STAYROOT)) - USE_NFSMOUNT(NEWTOY(nfsmount, "?<2>2", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT)) - - config MOUNT -diff --git a/toys/lsb/pidof.c b/toys/lsb/pidof.c -index 51b742f..a8fc8ef 100644 ---- a/toys/lsb/pidof.c -+++ b/toys/lsb/pidof.c -@@ -5,7 +5,7 @@ - * - * http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/pidof.html - --USE_PIDOF(NEWTOY(pidof, "<1so:", TOYFLAG_USR|TOYFLAG_BIN)) -+USE_PIDOF(NEWTOY(pidof, "<1so:", TOYFLAG_BIN)) - - config PIDOF - bool "pidof" -diff --git a/toys/other/chvt.c b/toys/other/chvt.c -index 6544265..a93327f 100644 ---- a/toys/other/chvt.c -+++ b/toys/other/chvt.c -@@ -2,7 +2,7 @@ - * - * Copyright (C) 2008 David Anders - --USE_CHVT(NEWTOY(chvt, "<1", TOYFLAG_USR|TOYFLAG_SBIN)) -+USE_CHVT(NEWTOY(chvt, "<1", TOYFLAG_USR|TOYFLAG_BIN)) - - config CHVT - bool "chvt" -diff --git a/toys/other/ifconfig.c b/toys/other/ifconfig.c -index f5d4215..5e7c54c 100644 ---- a/toys/other/ifconfig.c -+++ b/toys/other/ifconfig.c -@@ -6,7 +6,7 @@ - * - * Not in SUSv4. - --USE_IFCONFIG(NEWTOY(ifconfig, "?a", TOYFLAG_BIN)) -+USE_IFCONFIG(NEWTOY(ifconfig, "?a", TOYFLAG_SBIN)) - - config IFCONFIG - bool "ifconfig" -diff --git a/toys/other/insmod.c b/toys/other/insmod.c -index 8aa959a..75fd7cd 100644 ---- a/toys/other/insmod.c -+++ b/toys/other/insmod.c -@@ -2,7 +2,7 @@ - * - * Copyright 2012 Elie De Brauwer - --USE_INSMOD(NEWTOY(insmod, "<1", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) -+USE_INSMOD(NEWTOY(insmod, "<1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT)) - - config INSMOD - bool "insmod" -diff --git a/toys/other/lsmod.c b/toys/other/lsmod.c -index b8f5d82..4d16048 100644 ---- a/toys/other/lsmod.c -+++ b/toys/other/lsmod.c -@@ -2,7 +2,7 @@ - * - * Copyright 2012 Elie De Brauwer - --USE_LSMOD(NEWTOY(lsmod, NULL, TOYFLAG_BIN)) -+USE_LSMOD(NEWTOY(lsmod, NULL, TOYFLAG_SBIN)) - - config LSMOD - bool "lsmod" -diff --git a/toys/other/netcat.c b/toys/other/netcat.c -index 3c6f630..188c3d1 100644 ---- a/toys/other/netcat.c -+++ b/toys/other/netcat.c -@@ -4,7 +4,7 @@ - * - * TODO: udp, ipv6, genericize for telnet/microcom/tail-f - --USE_NETCAT(OLDTOY(nc, netcat, USE_NETCAT_LISTEN("tl^L^")"w#p#s:q#f:", TOYFLAG_BIN)) -+USE_NETCAT(OLDTOY(nc, netcat, USE_NETCAT_LISTEN("tl^L^")"w#p#s:q#f:", TOYFLAG_USR|TOYFLAG_BIN)) - USE_NETCAT(NEWTOY(netcat, USE_NETCAT_LISTEN("tl^L^")"w#p#s:q#f:", TOYFLAG_BIN)) - - config NETCAT -diff --git a/toys/other/pivot_root.c b/toys/other/pivot_root.c -index 3e4beac..ce3d3a8 100644 ---- a/toys/other/pivot_root.c -+++ b/toys/other/pivot_root.c -@@ -2,7 +2,7 @@ - * - * Copyright 2012 Rob Landley - --USE_PIVOT_ROOT(NEWTOY(pivot_root, "<2>2", TOYFLAG_USR|TOYFLAG_BIN)) -+USE_PIVOT_ROOT(NEWTOY(pivot_root, "<2>2", TOYFLAG_SBIN)) - - config PIVOT_ROOT - bool "pivot_root" -diff --git a/toys/other/readlink.c b/toys/other/readlink.c -index 1c33362..fecd1ef 100644 ---- a/toys/other/readlink.c -+++ b/toys/other/readlink.c -@@ -2,7 +2,7 @@ - * - * Copyright 2007 Rob Landley - --USE_READLINK(NEWTOY(readlink, "<1>1fenq[-fe]", TOYFLAG_BIN)) -+USE_READLINK(NEWTOY(readlink, "<1>1fenq[-fe]", TOYFLAG_USR|TOYFLAG_BIN)) - - config READLINK - bool "readlink" -diff --git a/toys/other/reboot.c b/toys/other/reboot.c -index 5cbc4f8..f8baafc 100644 ---- a/toys/other/reboot.c -+++ b/toys/other/reboot.c -@@ -2,9 +2,9 @@ - * - * Copyright 2013 Elie De Brauwer - --USE_REBOOT(NEWTOY(reboot, "n", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) --USE_REBOOT(OLDTOY(halt, reboot, "n", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) --USE_REBOOT(OLDTOY(poweroff, reboot, "n", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) -+USE_REBOOT(NEWTOY(reboot, "n", TOYFLAG_SBIN|TOYFLAG_NEEDROOT)) -+USE_REBOOT(OLDTOY(halt, reboot, "n", TOYFLAG_SBIN|TOYFLAG_NEEDROOT)) -+USE_REBOOT(OLDTOY(poweroff, reboot, "n", TOYFLAG_SBIN|TOYFLAG_NEEDROOT)) - - config REBOOT - bool "reboot" -diff --git a/toys/other/rfkill.c b/toys/other/rfkill.c -index af3efe1..7527ec7 100644 ---- a/toys/other/rfkill.c -+++ b/toys/other/rfkill.c -@@ -5,7 +5,7 @@ - * - * No Standard - --USE_RFKILL(NEWTOY(rfkill, "<1>2", TOYFLAG_SBIN)) -+USE_RFKILL(NEWTOY(rfkill, "<1>2", TOYFLAG_USR|TOYFLAG_SBIN)) - - config RFKILL - bool "rfkill" -diff --git a/toys/other/rmmod.c b/toys/other/rmmod.c -index b789acc..10c134c 100644 ---- a/toys/other/rmmod.c -+++ b/toys/other/rmmod.c -@@ -2,7 +2,7 @@ - * - * Copyright 2012 Elie De Brauwer - --USE_RMMOD(NEWTOY(rmmod, "<1wf", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) -+USE_RMMOD(NEWTOY(rmmod, "<1wf", TOYFLAG_SBIN|TOYFLAG_NEEDROOT)) - - config RMMOD - bool "rmmod" -diff --git a/toys/other/swapoff.c b/toys/other/swapoff.c -index b89e915..fb17130 100644 ---- a/toys/other/swapoff.c -+++ b/toys/other/swapoff.c -@@ -2,7 +2,7 @@ - * - * Copyright 2012 Elie De Brauwer - --USE_SWAPOFF(NEWTOY(swapoff, "<1>1", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) -+USE_SWAPOFF(NEWTOY(swapoff, "<1>1", TOYFLAG_SBIN|TOYFLAG_NEEDROOT)) - - config SWAPOFF - bool "swapoff" -diff --git a/toys/other/swapon.c b/toys/other/swapon.c -index 49f1249..838d382 100644 ---- a/toys/other/swapon.c -+++ b/toys/other/swapon.c -@@ -2,7 +2,7 @@ - * - * Copyright 2012 Elie De Brauwer - --USE_SWAPON(NEWTOY(swapon, "<1>1p#<0>32767", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) -+USE_SWAPON(NEWTOY(swapon, "<1>1p#<0>32767", TOYFLAG_SBIN|TOYFLAG_NEEDROOT)) - - config SWAPON - bool "swapon" -diff --git a/toys/other/sysctl.c b/toys/other/sysctl.c -index 8e57ca1..0c6c640 100644 ---- a/toys/other/sysctl.c -+++ b/toys/other/sysctl.c -@@ -5,7 +5,7 @@ - * - * No Standard - --USE_SYSCTL(NEWTOY(sysctl, "^neNqwpaA[!ap][!aq][!aw][+aA]", TOYFLAG_USR|TOYFLAG_BIN)) -+USE_SYSCTL(NEWTOY(sysctl, "^neNqwpaA[!ap][!aq][!aw][+aA]", TOYFLAG_SBIN)) - - config SYSCTL - bool "sysctl" -diff --git a/toys/posix/cut.c b/toys/posix/cut.c -index 7f10c5e..1ab3ce8 100644 ---- a/toys/posix/cut.c -+++ b/toys/posix/cut.c -@@ -5,7 +5,7 @@ - * - * http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cut.html - --USE_CUT(NEWTOY(cut, "b:|c:|f:|d:sn[!cbf]", TOYFLAG_BIN)) -+USE_CUT(NEWTOY(cut, "b:|c:|f:|d:sn[!cbf]", TOYFLAG_USR|TOYFLAG_BIN)) - - config CUT - bool "cut" -diff --git a/toys/posix/df.c b/toys/posix/df.c -index afb296b..6296dc9 100644 ---- a/toys/posix/df.c -+++ b/toys/posix/df.c -@@ -4,7 +4,7 @@ - * - * See http://opengroup.org/onlinepubs/9699919799/utilities/df.html - --USE_DF(NEWTOY(df, "Pkt*a", TOYFLAG_USR|TOYFLAG_SBIN)) -+USE_DF(NEWTOY(df, "Pkt*a", TOYFLAG_BIN)) - - config DF - bool "df" -diff --git a/toys/posix/head.c b/toys/posix/head.c -index e8517d4..3ac4373 100644 ---- a/toys/posix/head.c -+++ b/toys/posix/head.c -@@ -4,7 +4,7 @@ - * - * See http://opengroup.org/onlinepubs/9699919799/utilities/head.html - --USE_HEAD(NEWTOY(head, "n#<0=10", TOYFLAG_BIN)) -+USE_HEAD(NEWTOY(head, "n#<0=10", TOYFLAG_USR|TOYFLAG_BIN)) - - config HEAD - bool "head" -diff --git a/toys/posix/id.c b/toys/posix/id.c -index b4d9c00..df79419 100644 ---- a/toys/posix/id.c -+++ b/toys/posix/id.c -@@ -6,10 +6,10 @@ - * - * See http://opengroup.org/onlinepubs/9699919799/utilities/id.html - --USE_ID(NEWTOY(id, ">1nGgru[!Ggu]", TOYFLAG_BIN)) -+USE_ID(NEWTOY(id, ">1nGgru[!Ggu]", TOYFLAG_USR|TOYFLAG_BIN)) - USE_GROUPS(OLDTOY(groups, id, NULL, TOYFLAG_USR|TOYFLAG_BIN)) --USE_LOGNAME(OLDTOY(logname, id, ">0", TOYFLAG_BIN)) --USE_LOGNAME(OLDTOY(whoami, id, ">0", TOYFLAG_BIN)) -+USE_LOGNAME(OLDTOY(logname, id, ">0", TOYFLAG_USR|TOYFLAG_BIN)) -+USE_LOGNAME(OLDTOY(whoami, id, ">0", TOYFLAG_USR|TOYFLAG_BIN)) - - config ID - bool "id" -diff --git a/toys/posix/mkfifo.c b/toys/posix/mkfifo.c -index 15fab70..4e0fca3 100644 ---- a/toys/posix/mkfifo.c -+++ b/toys/posix/mkfifo.c -@@ -4,7 +4,7 @@ - * - * See http://opengroup.org/onlinepubs/9699919799/utilities/mkfifo.html - --USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_BIN)) -+USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_USR|TOYFLAG_BIN)) - - config MKFIFO - bool "mkfifo" -diff --git a/toys/posix/renice.c b/toys/posix/renice.c -index 8c20644..489eb13 100644 ---- a/toys/posix/renice.c -+++ b/toys/posix/renice.c -@@ -4,7 +4,7 @@ - * - * See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/renice.html - --USE_RENICE(NEWTOY(renice, "<1gpun#|", TOYFLAG_BIN)) -+USE_RENICE(NEWTOY(renice, "<1gpun#|", TOYFLAG_USR|TOYFLAG_BIN)) - - config RENICE - bool "renice" -diff --git a/toys/posix/tail.c b/toys/posix/tail.c -index e1048be..ba0a55a 100644 ---- a/toys/posix/tail.c -+++ b/toys/posix/tail.c -@@ -4,7 +4,7 @@ - * - * See http://opengroup.org/onlinepubs/9699919799/utilities/tail.html - --USE_TAIL(NEWTOY(tail, "fc-n-[-cn]", TOYFLAG_BIN)) -+USE_TAIL(NEWTOY(tail, "fc-n-[-cn]", TOYFLAG_USR|TOYFLAG_BIN)) - - config TAIL - bool "tail" -diff --git a/toys/posix/tee.c b/toys/posix/tee.c -index 0388510..5574088 100644 ---- a/toys/posix/tee.c -+++ b/toys/posix/tee.c -@@ -4,7 +4,7 @@ - * - * See http://opengroup.org/onlinepubs/9699919799/utilities/tee.html - --USE_TEE(NEWTOY(tee, "ia", TOYFLAG_BIN)) -+USE_TEE(NEWTOY(tee, "ia", TOYFLAG_USR|TOYFLAG_BIN)) - - config TEE - bool "tee" -diff --git a/toys/posix/uniq.c b/toys/posix/uniq.c -index 3cfdb94..c127cfe 100644 ---- a/toys/posix/uniq.c -+++ b/toys/posix/uniq.c -@@ -4,7 +4,7 @@ - * - * See http://opengroup.org/onlinepubs/9699919799/utilities/uniq.html - --USE_UNIQ(NEWTOY(uniq, "f#s#w#zicdu", TOYFLAG_BIN)) -+USE_UNIQ(NEWTOY(uniq, "f#s#w#zicdu", TOYFLAG_USR|TOYFLAG_BIN)) - - config UNIQ - bool "uniq" -diff --git a/toys/posix/who.c b/toys/posix/who.c -index 2c8a2e6..d5cd001 100644 ---- a/toys/posix/who.c -+++ b/toys/posix/who.c -@@ -9,7 +9,7 @@ - * Posix says to support many options (-abdHlmpqrstTu) but this - * isn't aimed at minicomputers with modem pools. - --USE_WHO(NEWTOY(who, "a", TOYFLAG_BIN)) -+USE_WHO(NEWTOY(who, "a", TOYFLAG_USR|TOYFLAG_BIN)) - - config WHO - bool "who" --- -2.1.2 - diff --git a/meta-oe/recipes-core/toybox/toybox_0.5.0.bb b/meta-oe/recipes-core/toybox/toybox_0.5.0.bb deleted file mode 100644 index 9bdba4da5c9..00000000000 --- a/meta-oe/recipes-core/toybox/toybox_0.5.0.bb +++ /dev/null @@ -1,64 +0,0 @@ -SUMMARY = "Toybox combines common utilities together into a single executable." -HOMEPAGE = "http://www.landley.net/toybox/" - -SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.bz2 \ - file://0001-Match-paths-with-busybox.patch" -SRC_URI[md5sum] = "2cb6e8b34134038d86048e117f77765f" -SRC_URI[sha256sum] = "2718b42154be041435df48d5b5140f4e307767c36b1017e0c8d0da7f75b327a7" - -LICENSE = "BSD-0-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f0b8b3dd6431bcaa245da0a08bd0d511" - -SECTION = "base" - -do_configure() { - oe_runmake defconfig - - # Disable killall5 as it isn't managed by update-alternatives - sed -e 's/CONFIG_KILLALL5=y/# CONFIG_KILLALL5 is not set/' -i .config -} - -do_compile() { - oe_runmake toybox_unstripped - - # Create a list of links needed - oe_runmake generated/instlist - ./generated/instlist long | sed -e 's#^#/#' > toybox.links -} - -do_install() { - # Install manually instead of using 'make install' - install -d ${D}${base_bindir} - if grep -q "CONFIG_TOYBOX_SUID=y" ${B}/.config; then - install -m 4755 ${B}/toybox_unstripped ${D}${base_bindir}/toybox - else - install -m 0755 ${B}/toybox_unstripped ${D}${base_bindir}/toybox - fi - - install -d ${D}${sysconfdir} - install -m 0644 ${B}/toybox.links ${D}${sysconfdir} -} - -inherit update-alternatives - -# If you've chosen to install toybox you probably want it to take precedence -# over busybox where possible but not over other packages -ALTERNATIVE_PRIORITY = "60" - -python do_package_prepend () { - # Read links from /etc/toybox.links and create appropriate - # update-alternatives variables - - dvar = d.getVar('D', True) - pn = d.getVar('PN', True) - target = "/bin/toybox" - - f = open('%s/etc/toybox.links' % (dvar), 'r') - for alt_link_name in f: - alt_link_name = alt_link_name.strip() - alt_name = os.path.basename(alt_link_name) - d.appendVar('ALTERNATIVE_%s' % (pn), ' ' + alt_name) - d.setVarFlag('ALTERNATIVE_LINK_NAME', alt_name, alt_link_name) - d.setVarFlag('ALTERNATIVE_TARGET', alt_name, target) - f.close() -} diff --git a/meta-oe/recipes-core/toybox/toybox_0.7.5.bb b/meta-oe/recipes-core/toybox/toybox_0.7.5.bb new file mode 100644 index 00000000000..347c2856f44 --- /dev/null +++ b/meta-oe/recipes-core/toybox/toybox_0.7.5.bb @@ -0,0 +1,71 @@ +SUMMARY = "Toybox combines common utilities together into a single executable." +HOMEPAGE = "http://www.landley.net/toybox/" +DEPENDS = "attr" + +LICENSE = "BSD-0-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f0b8b3dd6431bcaa245da0a08bd0d511" + +SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "a8bb502a1be941f06dd2644fff25f547" +SRC_URI[sha256sum] = "3ada450ac1eab1dfc352fee915ea6129b9a4349c1885f1394b61bd2d89a46c04" + +SECTION = "base" + +TOYBOX_BIN = "generated/unstripped/toybox" + +EXTRA_OEMAKE = 'HOSTCC="${BUILD_CC}" CPUS=${@oe.utils.cpu_count()}' + +do_configure() { + oe_runmake defconfig + + # Disable killall5 as it isn't managed by update-alternatives + sed -e 's/CONFIG_KILLALL5=y/# CONFIG_KILLALL5 is not set/' -i .config + + # Disable swapon as it doesn't handle the '-a' argument used during boot + sed -e 's/CONFIG_SWAPON=y/# CONFIG_SWAPON is not set/' -i .config +} + +do_compile() { + oe_runmake ${TOYBOX_BIN} + + # Create a list of links needed + ${BUILD_CC} -I . scripts/install.c -o generated/instlist + ./generated/instlist long | sed -e 's#^#/#' > toybox.links +} + +do_install() { + # Install manually instead of using 'make install' + install -d ${D}${base_bindir} + if grep -q "CONFIG_TOYBOX_SUID=y" ${B}/.config; then + install -m 4755 ${B}/${TOYBOX_BIN} ${D}${base_bindir}/toybox + else + install -m 0755 ${B}/${TOYBOX_BIN} ${D}${base_bindir}/toybox + fi + + install -d ${D}${sysconfdir} + install -m 0644 ${B}/toybox.links ${D}${sysconfdir} +} + +inherit update-alternatives + +# If you've chosen to install toybox you probably want it to take precedence +# over busybox where possible but not over other packages +ALTERNATIVE_PRIORITY = "60" + +python do_package_prepend () { + # Read links from /etc/toybox.links and create appropriate + # update-alternatives variables + + dvar = d.getVar('D') + pn = d.getVar('PN') + target = "/bin/toybox" + + f = open('%s/etc/toybox.links' % (dvar), 'r') + for alt_link_name in f: + alt_link_name = alt_link_name.strip() + alt_name = os.path.basename(alt_link_name) + d.appendVar('ALTERNATIVE_%s' % (pn), ' ' + alt_name) + d.setVarFlag('ALTERNATIVE_LINK_NAME', alt_name, alt_link_name) + d.setVarFlag('ALTERNATIVE_TARGET', alt_name, target) + f.close() +} diff --git a/meta-oe/recipes-core/usleep/usleep_1.0.bb b/meta-oe/recipes-core/usleep/usleep_1.0.bb index 2ef4b7c024c..9e9c7ed8c45 100644 --- a/meta-oe/recipes-core/usleep/usleep_1.0.bb +++ b/meta-oe/recipes-core/usleep/usleep_1.0.bb @@ -3,24 +3,22 @@ SECTION = "base" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -PR = "r0" - S = "${WORKDIR}" DEPENDS = "popt" SRC_URI = "file://usleep.c \ - file://usleep.1 \ - file://GPLv2.patch \ + file://usleep.1 \ + file://GPLv2.patch \ " do_compile() { - ${CC} ${CFLAGS} ${LDFLAGS} usleep.c -o usleep -lpopt + ${CC} ${CFLAGS} ${LDFLAGS} usleep.c -o usleep -lpopt } do_install() { - install -d ${D}${base_bindir} - install -d ${D}${mandir}/man1 + install -d ${D}${base_bindir} + install -d ${D}${mandir}/man1 - install -m 0755 ${WORKDIR}/usleep ${D}${base_bindir} - install -m 0644 ${WORKDIR}/usleep.1 ${D}${mandir}/man1 + install -m 0755 ${WORKDIR}/usleep ${D}${base_bindir} + install -m 0644 ${WORKDIR}/usleep.1 ${D}${mandir}/man1 } diff --git a/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup b/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup new file mode 100644 index 00000000000..f7d9973722a --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup @@ -0,0 +1,25 @@ +#!/bin/sh + +# TODO enable the lines below once we have support for getprop +# retrieve the product info from Android +# manufacturer=$(getprop ro.product.manufacturer Android) +# model=$(getprop ro.product.model Android) +# serial=$(getprop ro.serialno 0123456789ABCDEF) + +manufacturer="$(cat /system/build.prop | grep -o 'ro.product.manufacturer=.*' | cut -d'=' -f 2)" +model="$(cat /system/build.prop | grep -o 'ro.product.model=.*' | cut -d'=' -f 2)" +# get the device serial number from /proc/cmdline directly(since we have no getprop on +# GNU/Linux) +serial="$(cat /proc/cmdline | sed 's/.*androidboot.serialno=//' | sed 's/ .*//')" + +echo $serial > /sys/class/android_usb/android0/iSerial +echo $manufacturer > /sys/class/android_usb/android0/iManufacturer +echo $model > /sys/class/android_usb/android0/iProduct + +echo "0" > /sys/class/android_usb/android0/enable +echo "18d1" > /sys/class/android_usbid_usb/android0/idVendor +echo "D002" > /sys/class/android_usb/android0/idProduct +echo "adb" > /sys/class/android_usb/android0/functions +echo "1" > /sys/class/android_usb/android0/enable + +sleep 4 diff --git a/meta-oe/recipes-devtools/android-tools/android-tools-conf_1.0.bb b/meta-oe/recipes-devtools/android-tools/android-tools-conf_1.0.bb new file mode 100644 index 00000000000..af98f92f05e --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools-conf_1.0.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Different utilities from Android - corressponding configuration files" +SECTION = "console/utils" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = "file://android-gadget-setup" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/android-gadget-setup ${D}${bindir} +} diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore b/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore new file mode 100644 index 00000000000..b034c10a1ef --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore @@ -0,0 +1,59 @@ +* +!.gitignore +!*.indirectionsymlink +!*.[ch] +!*.mk +!*.patch +!*.service +!NOTICE +!MODULE_LICENSE_* +!/system/ +!/system/core/ +!/system/core/adb/ +!/system/core/fastboot/ +!/system/core/fs_mgr/ +!/system/core/fs_mgr/include/ +!/system/core/include/ +!/system/core/include/android/ +!/system/core/include/cutils/ +!/system/core/include/log/ +!/system/core/include/mincrypt/ +!/system/core/include/private/ +!/system/core/include/utils/ +!/system/core/include/zipfile/ +!/system/core/liblog/ +!/system/core/liblog/tests/ +!/system/core/libcutils/ +!/system/core/libmincrypt/ +!/system/core/libzipfile/ +!/system/core/libsparse/ +!/system/core/libsparse/include/ +!/system/core/libsparse/include/sparse/ +!/system/core/libsparse/simg_dump.py +!/system/core/mkbootimg/ +!/system/extras/ +!/system/extras/ext4_utils/ +!/system/extras/ext4_utils/mkuserimg.sh +!/system/extras/ext4_utils/test_ext4fixup +!/system/extras/f2fs_utils/ +!/hardware/ +!/hardware/libhardware/ +!/hardware/libhardware/include/ +!/hardware/libhardware/include/hardware/ +!/external/ +!/external/libselinux/ +!/external/libselinux/include/ +!/external/libselinux/include/selinux/ +!/external/libselinux/src/ +!/external/f2fs-tools/ +!/external/f2fs-tools/include/ +!/external/f2fs-tools/lib/ +!/external/f2fs-tools/mkfs/ +!/build/ +!/build/core/ +!/build/core/version_defaults.mk +!/build/core/combo/ +!/build/core/combo/include/ +!/build/core/combo/include/arch/ +!/build/core/combo/include/arch/linux-*/ +!/build/core/combo/include/arch/linux-*/AndroidConfig.h diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch b/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch new file mode 100644 index 00000000000..680d21f3ac4 --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch @@ -0,0 +1,351 @@ +From bbeb72f11c64f190b23abbed5f44311bd021bdc9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 Sep 2017 15:46:38 -0700 +Subject: [PATCH 1/2] add base64 implementation + +musl needs it + +Signed-off-by: Khem Raj +--- + system/core/adb/adb_auth_client.c | 2 +- + system/core/adb/base64.c | 315 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 316 insertions(+), 1 deletion(-) + create mode 100644 system/core/adb/base64.c + +diff --git a/system/core/adb/adb_auth_client.c b/system/core/adb/adb_auth_client.c +index 55e9dca..104b413 100644 +--- a/system/core/adb/adb_auth_client.c ++++ b/system/core/adb/adb_auth_client.c +@@ -75,7 +75,7 @@ static void read_keys(const char *file, struct listnode *list) + if (sep) + *sep = '\0'; + +- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4); ++ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4); + if (ret != sizeof(key->key)) { + D("%s: Invalid base64 data ret=%d\n", file, ret); + free(key); +diff --git a/system/core/adb/base64.c b/system/core/adb/base64.c +new file mode 100644 +index 0000000..95da284 +--- /dev/null ++++ b/system/core/adb/base64.c +@@ -0,0 +1,315 @@ ++/* ++ * Copyright (c) 1996-1999 by Internet Software Consortium. ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS ++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE ++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++/* ++ * Portions Copyright (c) 1995 by International Business Machines, Inc. ++ * ++ * International Business Machines, Inc. (hereinafter called IBM) grants ++ * permission under its copyrights to use, copy, modify, and distribute this ++ * Software with or without fee, provided that the above copyright notice and ++ * all paragraphs of this notice appear in all copies, and that the name of IBM ++ * not be used in connection with the marketing of any product incorporating ++ * the Software or modifications thereof, without specific, written prior ++ * permission. ++ * ++ * To the extent it has a right to do so, IBM grants an immunity from suit ++ * under its patents, if any, for the use, sale or manufacture of products to ++ * the extent that such products are used for performing Domain Name System ++ * dynamic updates in TCP/IP networks by means of the Software. No immunity is ++ * granted for any product per se or for any other function of any product. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES, ++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, ++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN ++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES. ++ */ ++ ++#if !defined(LINT) && !defined(CODECENTER) ++static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $"; ++#endif /* not lint */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define Assert(Cond) if (!(Cond)) abort() ++ ++static const char Base64[] = ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ++static const char Pad64 = '='; ++ ++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt) ++ The following encoding technique is taken from RFC 1521 by Borenstein ++ and Freed. It is reproduced here in a slightly edited form for ++ convenience. ++ ++ A 65-character subset of US-ASCII is used, enabling 6 bits to be ++ represented per printable character. (The extra 65th character, "=", ++ is used to signify a special processing function.) ++ ++ The encoding process represents 24-bit groups of input bits as output ++ strings of 4 encoded characters. Proceeding from left to right, a ++ 24-bit input group is formed by concatenating 3 8-bit input groups. ++ These 24 bits are then treated as 4 concatenated 6-bit groups, each ++ of which is translated into a single digit in the base64 alphabet. ++ ++ Each 6-bit group is used as an index into an array of 64 printable ++ characters. The character referenced by the index is placed in the ++ output string. ++ ++ Table 1: The Base64 Alphabet ++ ++ Value Encoding Value Encoding Value Encoding Value Encoding ++ 0 A 17 R 34 i 51 z ++ 1 B 18 S 35 j 52 0 ++ 2 C 19 T 36 k 53 1 ++ 3 D 20 U 37 l 54 2 ++ 4 E 21 V 38 m 55 3 ++ 5 F 22 W 39 n 56 4 ++ 6 G 23 X 40 o 57 5 ++ 7 H 24 Y 41 p 58 6 ++ 8 I 25 Z 42 q 59 7 ++ 9 J 26 a 43 r 60 8 ++ 10 K 27 b 44 s 61 9 ++ 11 L 28 c 45 t 62 + ++ 12 M 29 d 46 u 63 / ++ 13 N 30 e 47 v ++ 14 O 31 f 48 w (pad) = ++ 15 P 32 g 49 x ++ 16 Q 33 h 50 y ++ ++ Special processing is performed if fewer than 24 bits are available ++ at the end of the data being encoded. A full encoding quantum is ++ always completed at the end of a quantity. When fewer than 24 input ++ bits are available in an input group, zero bits are added (on the ++ right) to form an integral number of 6-bit groups. Padding at the ++ end of the data is performed using the '=' character. ++ ++ Since all base64 input is an integral number of octets, only the ++ ------------------------------------------------- ++ following cases can arise: ++ ++ (1) the final quantum of encoding input is an integral ++ multiple of 24 bits; here, the final unit of encoded ++ output will be an integral multiple of 4 characters ++ with no "=" padding, ++ (2) the final quantum of encoding input is exactly 8 bits; ++ here, the final unit of encoded output will be two ++ characters followed by two "=" padding characters, or ++ (3) the final quantum of encoding input is exactly 16 bits; ++ here, the final unit of encoded output will be three ++ characters followed by one "=" padding character. ++ */ ++ ++int ++b64_ntop(const uint8_t* src, size_t srclength, char* target, size_t targsize) ++{ ++ size_t datalength = 0; ++ uint8_t input[3]; ++ uint8_t output[4]; ++ size_t i; ++ ++ while (2 < srclength) { ++ input[0] = *src++; ++ input[1] = *src++; ++ input[2] = *src++; ++ srclength -= 3; ++ ++ output[0] = input[0] >> 2; ++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); ++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); ++ output[3] = input[2] & 0x3f; ++ Assert(output[0] < 64); ++ Assert(output[1] < 64); ++ Assert(output[2] < 64); ++ Assert(output[3] < 64); ++ ++ if (datalength + 4 > targsize) ++ return (-1); ++ target[datalength++] = Base64[output[0]]; ++ target[datalength++] = Base64[output[1]]; ++ target[datalength++] = Base64[output[2]]; ++ target[datalength++] = Base64[output[3]]; ++ } ++ ++ /* Now we worry about padding. */ ++ if (0 != srclength) { ++ /* Get what's left. */ ++ input[0] = input[1] = input[2] = '\0'; ++ for (i = 0; i < srclength; i++) ++ input[i] = *src++; ++ ++ output[0] = input[0] >> 2; ++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); ++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); ++ Assert(output[0] < 64); ++ Assert(output[1] < 64); ++ Assert(output[2] < 64); ++ ++ if (datalength + 4 > targsize) ++ return (-1); ++ target[datalength++] = Base64[output[0]]; ++ target[datalength++] = Base64[output[1]]; ++ if (srclength == 1) ++ target[datalength++] = Pad64; ++ else ++ target[datalength++] = Base64[output[2]]; ++ target[datalength++] = Pad64; ++ } ++ if (datalength >= targsize) ++ return (-1); ++ target[datalength] = '\0'; /* Returned value doesn't count \0. */ ++ return (datalength); ++} ++ ++/* skips all whitespace anywhere. ++ converts characters, four at a time, starting at (or after) ++ src from base - 64 numbers into three 8 bit bytes in the target area. ++ it returns the number of data bytes stored at the target, or -1 on error. ++ */ ++ ++int b64_pton(const char* src, uint8_t* target, size_t targsize) ++{ ++ int tarindex, state, ch; ++ char *pos; ++ ++ state = 0; ++ tarindex = 0; ++ ++ while ((ch = *src++) != '\0') { ++ if (isspace(ch)) /* Skip whitespace anywhere. */ ++ continue; ++ ++ if (ch == Pad64) ++ break; ++ ++ pos = strchr(Base64, ch); ++ if (pos == 0) /* A non-base64 character. */ ++ return (-1); ++ ++ switch (state) { ++ case 0: ++ if (target) { ++ if ((size_t)tarindex >= targsize) ++ return (-1); ++ target[tarindex] = (pos - Base64) << 2; ++ } ++ state = 1; ++ break; ++ case 1: ++ if (target) { ++ if ((size_t)tarindex + 1 >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64) >> 4; ++ target[tarindex+1] = ((pos - Base64) & 0x0f) ++ << 4 ; ++ } ++ tarindex++; ++ state = 2; ++ break; ++ case 2: ++ if (target) { ++ if ((size_t)tarindex + 1 >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64) >> 2; ++ target[tarindex+1] = ((pos - Base64) & 0x03) ++ << 6; ++ } ++ tarindex++; ++ state = 3; ++ break; ++ case 3: ++ if (target) { ++ if ((size_t)tarindex >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64); ++ } ++ tarindex++; ++ state = 0; ++ break; ++ default: ++ abort(); ++ } ++ } ++ ++ /* ++ * We are done decoding Base-64 chars. Let's see if we ended ++ * on a byte boundary, and/or with erroneous trailing characters. ++ */ ++ ++ if (ch == Pad64) { /* We got a pad char. */ ++ ch = *src++; /* Skip it, get next. */ ++ switch (state) { ++ case 0: /* Invalid = in first position */ ++ case 1: /* Invalid = in second position */ ++ return (-1); ++ ++ case 2: /* Valid, means one byte of info */ ++ /* Skip any number of spaces. */ ++ for ((void)NULL; ch != '\0'; ch = *src++) ++ if (!isspace(ch)) ++ break; ++ /* Make sure there is another trailing = sign. */ ++ if (ch != Pad64) ++ return (-1); ++ ch = *src++; /* Skip the = */ ++ /* Fall through to "single trailing =" case. */ ++ /* FALLTHROUGH */ ++ ++ case 3: /* Valid, means two bytes of info */ ++ /* ++ * We know this char is an =. Is there anything but ++ * whitespace after it? ++ */ ++ for ((void)NULL; ch != '\0'; ch = *src++) ++ if (!isspace(ch)) ++ return (-1); ++ ++ /* ++ * Now make sure for cases 2 and 3 that the "extra" ++ * bits that slopped past the last full byte were ++ * zeros. If we don't check them, they become a ++ * subliminal channel. ++ */ ++ if (target && target[tarindex] != 0) ++ return (-1); ++ } ++ } else { ++ /* ++ * We ended by seeing the end of the string. Make sure we ++ * have no partial bytes lying around. ++ */ ++ if (state != 0) ++ return (-1); ++ } ++ ++ return (tarindex); ++} ++ +-- +2.14.1 + diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch b/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch new file mode 100644 index 00000000000..c7aebb6411e --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch @@ -0,0 +1,134 @@ +From f8653ed0ede4aa781ab758fcd44fdc05ffbe0b0a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 Sep 2017 15:50:57 -0700 +Subject: [PATCH 2/2] adb: Musl fixes + +__nonnull is gcc specific +include sys/types.h for size_t +Do not redefine close() and lseek() + +Signed-off-by: Khem Raj +--- + system/core/adb/adb.h | 2 ++ + system/core/adb/disable_verity_service.c | 13 ++++++++----- + system/core/adb/framebuffer_service.c | 7 ++++--- + system/core/adb/sysdeps.h | 12 ++++++------ + 4 files changed, 20 insertions(+), 14 deletions(-) + +diff --git a/system/core/adb/adb.h b/system/core/adb/adb.h +index 44e5981..bcdc49f 100644 +--- a/system/core/adb/adb.h ++++ b/system/core/adb/adb.h +@@ -18,7 +18,9 @@ + #define __ADB_H + + #include ++#include + ++#include "fdevent.h" + #include "adb_trace.h" + #include "transport.h" /* readx(), writex() */ + +diff --git a/system/core/adb/disable_verity_service.c b/system/core/adb/disable_verity_service.c +index ed3da52..29fa3d6 100644 +--- a/system/core/adb/disable_verity_service.c ++++ b/system/core/adb/disable_verity_service.c +@@ -14,25 +14,28 @@ + * limitations under the License. + */ + +-#include "sysdeps.h" + + #define TRACE_TAG TRACE_ADB + #include "adb.h" ++#include "sysdeps.h" ++#include "cutils/properties.h" ++#include "ext4_sb.h" ++#include + + #include + #include + #include + #include + #include ++#include ++#include ++#include + +-#include "cutils/properties.h" +-#include "ext4_sb.h" +-#include + + #define FSTAB_PREFIX "/fstab." + struct fstab *fstab; + +-__attribute__((__format__(printf, 2, 3))) __nonnull((2)) ++__attribute__((__format__(printf, 2, 3))) __attribute__((nonnull((2)))) + static void write_console(int fd, const char* format, ...) + { + char buffer[256]; +diff --git a/system/core/adb/framebuffer_service.c b/system/core/adb/framebuffer_service.c +index 8cbe840..8f0ccfb 100644 +--- a/system/core/adb/framebuffer_service.c ++++ b/system/core/adb/framebuffer_service.c +@@ -14,6 +14,10 @@ + * limitations under the License. + */ + ++#include "fdevent.h" ++#include "adb.h" ++#include "sysdeps.h" ++ + #include + #include + #include +@@ -23,9 +27,6 @@ + #include + #include + +-#include "fdevent.h" +-#include "adb.h" +- + #include + #include + #include +diff --git a/system/core/adb/sysdeps.h b/system/core/adb/sysdeps.h +index cc1f839..ea39ac3 100644 +--- a/system/core/adb/sysdeps.h ++++ b/system/core/adb/sysdeps.h +@@ -123,8 +123,8 @@ static __inline__ int unix_close(int fd) + { + return close(fd); + } +-#undef close +-#define close ____xxx_close ++//#undef close ++//#define close ____xxx_close + + static __inline__ int unix_read(int fd, void* buf, size_t len) + { +@@ -369,8 +369,8 @@ static __inline__ int adb_close(int fd) + { + return close(fd); + } +-#undef close +-#define close ____xxx_close ++//#undef close ++//#define close ____xxx_close + + + static __inline__ int adb_read(int fd, void* buf, size_t len) +@@ -392,8 +392,8 @@ static __inline__ int adb_lseek(int fd, int pos, int where) + { + return lseek(fd, pos, where); + } +-#undef lseek +-#define lseek ___xxx_lseek ++//#undef lseek ++//#define lseek ___xxx_lseek + + static __inline__ int adb_unlink(const char* path) + { +-- +2.14.1 + diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/adb.mk b/meta-oe/recipes-devtools/android-tools/android-tools/adb.mk new file mode 100644 index 00000000000..0687c22c17f --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/adb.mk @@ -0,0 +1,72 @@ +# Makefile for adb + +SRCDIR ?= $(S) + +VPATH += $(SRCDIR)/system/core/adb +adb_SRC_FILES += adb.c +adb_SRC_FILES += console.c +adb_SRC_FILES += transport.c +adb_SRC_FILES += transport_local.c +adb_SRC_FILES += transport_usb.c +adb_SRC_FILES += commandline.c +adb_SRC_FILES += adb_client.c +adb_SRC_FILES += adb_auth_host.c +adb_SRC_FILES += sockets.c +adb_SRC_FILES += services.c +adb_SRC_FILES += file_sync_client.c +adb_SRC_FILES += get_my_path_linux.c +adb_SRC_FILES += usb_linux.c +adb_SRC_FILES += usb_vendors.c +adb_SRC_FILES += fdevent.c +adb_OBJS := $(adb_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/core/libcutils +libcutils_SRC_FILES += atomic.c +libcutils_SRC_FILES += hashmap.c +libcutils_SRC_FILES += native_handle.c +libcutils_SRC_FILES += config_utils.c +libcutils_SRC_FILES += cpu_info.c +libcutils_SRC_FILES += load_file.c +# libcutils_SRC_FILES += open_memstream.c +# libcutils_SRC_FILES += strdup16to8.c +# libcutils_SRC_FILES += strdup8to16.c +# libcutils_SRC_FILES += record_stream.c +# libcutils_SRC_FILES += process_name.c +# libcutils_SRC_FILES += threads.c +# libcutils_SRC_FILES += sched_policy.c +# libcutils_SRC_FILES += iosched_policy.c +libcutils_SRC_FILES += str_parms.c +libcutils_SRC_FILES += fs.c +libcutils_SRC_FILES += multiuser.c +libcutils_SRC_FILES += socket_inaddr_any_server.c +libcutils_SRC_FILES += socket_local_client.c +libcutils_SRC_FILES += socket_local_server.c +libcutils_SRC_FILES += socket_loopback_client.c +libcutils_SRC_FILES += socket_loopback_server.c +libcutils_SRC_FILES += socket_network_client.c +libcutils_SRC_FILES += sockets.c +libcutils_SRC_FILES += ashmem-host.c +libcutils_SRC_FILES += dlmalloc_stubs.c +libcutils_OBJS := $(libcutils_SRC_FILES:.c=.o) + +CFLAGS += -DANDROID +CFLAGS += -DWORKAROUND_BUG6558362 +CFLAGS += -DADB_HOST=1 +CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE +CFLAGS += -DANDROID_SMP=0 +CFLAGS += -I$(SRCDIR)/system/core/adb +CFLAGS += -I$(SRCDIR)/system/core/include +CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h + +LIBS += libcutils.a -lpthread -lcrypto + +all: adb + +adb: libcutils.a $(adb_OBJS) + $(CC) -o $@ $(LDFLAGS) $(adb_OBJS) $(LIBS) + +libcutils.a: $(libcutils_OBJS) + $(AR) rcs $@ $(libcutils_OBJS) + +clean: + $(RM) $(adb_OBJS) $(libcutils_OBJS) adb *.a diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk b/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk new file mode 100644 index 00000000000..31452ae1042 --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk @@ -0,0 +1,164 @@ +# Makefile for adbd + +SRCDIR ?= $(S) + +VPATH += $(SRCDIR)/system/core/adb +adbd_SRC_FILES += adb.c +adbd_SRC_FILES += fdevent.c +adbd_SRC_FILES += transport.c +adbd_SRC_FILES += transport_local.c +adbd_SRC_FILES += transport_usb.c +adbd_SRC_FILES += adb_auth_client.c +adbd_SRC_FILES += sockets.c +adbd_SRC_FILES += services.c +adbd_SRC_FILES += file_sync_service.c +adbd_SRC_FILES += jdwp_service.c +adbd_SRC_FILES += framebuffer_service.c +adbd_SRC_FILES += remount_service.c +adbd_SRC_FILES += disable_verity_service.c +adbd_SRC_FILES += base64.c +adbd_SRC_FILES += usb_linux_client.c +adbd_OBJS := $(adbd_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/core/liblog +liblog_SRC_FILES += logd_write.c +liblog_SRC_FILES += log_event_write.c +liblog_SRC_FILES += logprint.c +liblog_SRC_FILES += event_tag_map.c +liblog_SRC_FILES += fake_log_device.c +liblog_OBJS := $(liblog_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/core/fs_mgr +fs_mgr_SRC_FILES += fs_mgr_fstab.c +fs_mgr_OBJS := $(fs_mgr_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/core/libcutils +libcutils_SRC_FILES += atomic.c +libcutils_SRC_FILES += hashmap.c +libcutils_SRC_FILES += native_handle.c +libcutils_SRC_FILES += config_utils.c +libcutils_SRC_FILES += cpu_info.c +libcutils_SRC_FILES += load_file.c +# libcutils_SRC_FILES += open_memstream.c +# libcutils_SRC_FILES += strdup16to8.c +# libcutils_SRC_FILES += strdup8to16.c +# libcutils_SRC_FILES += record_stream.c +# libcutils_SRC_FILES += process_name.c +# libcutils_SRC_FILES += threads.c +# libcutils_SRC_FILES += sched_policy.c +# libcutils_SRC_FILES += iosched_policy.c +libcutils_SRC_FILES += str_parms.c +libcutils_SRC_FILES += fs.c +libcutils_SRC_FILES += multiuser.c +libcutils_SRC_FILES += socket_inaddr_any_server.c +libcutils_SRC_FILES += socket_local_client.c +libcutils_SRC_FILES += socket_local_server.c +libcutils_SRC_FILES += socket_loopback_client.c +libcutils_SRC_FILES += socket_loopback_server.c +libcutils_SRC_FILES += socket_network_client.c +libcutils_SRC_FILES += sockets.c +libcutils_SRC_FILES += ashmem-host.c +libcutils_SRC_FILES += dlmalloc_stubs.c +libcutils_SRC_FILES += klog.c +libcutils_SRC_FILES += properties.c +libcutils_OBJS := $(libcutils_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/external/libselinux/src +libselinux_SRC_FILES += booleans.c +libselinux_SRC_FILES += canonicalize_context.c +libselinux_SRC_FILES += disable.c +libselinux_SRC_FILES += enabled.c +libselinux_SRC_FILES += fgetfilecon.c +libselinux_SRC_FILES += fsetfilecon.c +libselinux_SRC_FILES += getenforce.c +libselinux_SRC_FILES += getfilecon.c +libselinux_SRC_FILES += getpeercon.c +libselinux_SRC_FILES += lgetfilecon.c +libselinux_SRC_FILES += load_policy.c +libselinux_SRC_FILES += lsetfilecon.c +libselinux_SRC_FILES += policyvers.c +libselinux_SRC_FILES += procattr.c +libselinux_SRC_FILES += setenforce.c +libselinux_SRC_FILES += setfilecon.c +libselinux_SRC_FILES += context.c +libselinux_SRC_FILES += mapping.c +libselinux_SRC_FILES += stringrep.c +libselinux_SRC_FILES += compute_create.c +libselinux_SRC_FILES += compute_av.c +libselinux_SRC_FILES += avc.c +libselinux_SRC_FILES += avc_internal.c +libselinux_SRC_FILES += avc_sidtab.c +libselinux_SRC_FILES += get_initial_context.c +libselinux_SRC_FILES += checkAccess.c +libselinux_SRC_FILES += sestatus.c +libselinux_SRC_FILES += deny_unknown.c + +libselinux_SRC_FILES += callbacks.c +libselinux_SRC_FILES += check_context.c +libselinux_SRC_FILES += freecon.c +libselinux_SRC_FILES += init.c +libselinux_SRC_FILES += label.c +libselinux_SRC_FILES += label_file.c +libselinux_SRC_FILES += label_android_property.c +libselinux_OBJS := $(libselinux_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/extras/ext4_utils +libext4_utils_SRC_FILES += make_ext4fs.c +libext4_utils_SRC_FILES += ext4fixup.c +libext4_utils_SRC_FILES += ext4_utils.c +libext4_utils_SRC_FILES += allocate.c +libext4_utils_SRC_FILES += contents.c +libext4_utils_SRC_FILES += extent.c +libext4_utils_SRC_FILES += indirect.c +libext4_utils_SRC_FILES += uuid.c +libext4_utils_SRC_FILES += sha1.c +libext4_utils_SRC_FILES += wipe.c +libext4_utils_SRC_FILES += crc16.c +libext4_utils_SRC_FILES += ext4_sb.c +libext4_utils_OBJS := $(libext4_utils_SRC_FILES:.c=.o) + +CFLAGS += -std=gnu11 +CFLAGS += -DANDROID +CFLAGS += -DADB_HOST=0 +CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE +CFLAGS += -DALLOW_ADBD_ROOT=1 +CFLAGS += -DALLOW_ADBD_DISABLE_VERITY=1 +CFLAGS += -DPROP_NAME_MAX=32 +CFLAGS += -DPROP_VALUE_MAX=92 +CFLAGS += -DAUDITD_LOG_TAG=1003 +# CFLAGS += -DHOST +CFLAGS += -DANDROID_SMP=0 +CFLAGS += -I$(SRCDIR)/system/core/adb +CFLAGS += -I$(SRCDIR)/system/core/include +CFLAGS += -I$(SRCDIR)/system/core/libsparse/include +CFLAGS += -I$(SRCDIR)/system/extras/ext4_utils +CFLAGS += -I$(SRCDIR)/system/core/fs_mgr/include +CFLAGS += -I$(SRCDIR)/hardware/libhardware/include +CFLAGS += -I$(SRCDIR)/external/libselinux/include +CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h + +LIBS += liblog.a libfs_mgr.a libcutils.a libselinux.a libext4_utils.a -lpthread -lbsd -lpcre -lresolv -lcrypto + +all: adbd + +adbd: liblog.a libfs_mgr.a libcutils.a libselinux.a libext4_utils.a $(adbd_OBJS) + $(CC) -o $@ $(LDFLAGS) $(adbd_OBJS) $(LIBS) + +liblog.a: $(liblog_OBJS) + $(AR) rcs $@ $(liblog_OBJS) + +libfs_mgr.a: $(fs_mgr_OBJS) + $(AR) rcs $@ $(fs_mgr_OBJS) + +libcutils.a: $(libcutils_OBJS) + $(AR) rcs $@ $(libcutils_OBJS) + +libselinux.a: $(libselinux_OBJS) + export CFLAGS="-DANDROID -DHOST" + $(AR) rcs $@ $(libselinux_OBJS) + +libext4_utils.a: $(libext4_utils_OBJS) + $(AR) rcs $@ $(libext4_utils_OBJS) + +clean: + $(RM) *.o *.a adbd diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service b/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service new file mode 100644 index 00000000000..88ed6871d37 --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service @@ -0,0 +1,12 @@ +[Unit] +Description=Android Debug Bridge + +[Service] +Type=simple +Restart=on-failure +ExecStartPre=/usr/bin/android-gadget-setup adb +ExecStart=/usr/bin/adbd +StandardOutput=null + +[Install] +WantedBy=basic.target diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch b/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch new file mode 100644 index 00000000000..8381967c442 --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch @@ -0,0 +1,23 @@ +Description: we intend to run on Linux system so the shell is always /bin/sh, + for the host or the target. +Author: Fathi Boudra + +Upstream-Status: Inappropriate +--- + system/core/adb/services.c | 4 ---- + 1 file changed, 4 deletions(-) + +--- a/system/core/adb/services.c ++++ b/system/core/adb/services.c +@@ -299,11 +299,7 @@ static int create_subproc_raw(const char + } + #endif /* !ABD_HOST */ + +-#if ADB_HOST + #define SHELL_COMMAND "/bin/sh" +-#else +-#define SHELL_COMMAND "/system/bin/sh" +-#endif + + #if !ADB_HOST + static void subproc_waiter_service(int fd, void *cookie) diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/ext4_utils.mk b/meta-oe/recipes-devtools/android-tools/android-tools/ext4_utils.mk new file mode 100644 index 00000000000..c18aa9c4d2c --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/ext4_utils.mk @@ -0,0 +1,103 @@ +# Makefile for ext4_utils + +SRCDIR ?= $(S) + +VPATH += $(SRCDIR)/system/extras/ext4_utils +make_ext4fs_SRC_FILES += make_ext4fs_main.c +make_ext4fs_SRC_FILES += canned_fs_config.c +make_ext4fs_OBJS := $(make_ext4fs_SRC_FILES:.c=.o) + +ext2simg_SRC_FILES += ext2simg.c +ext2simg_OBJS := $(ext2simg_SRC_FILES:.c=.o) + +ext4fixup_SRC_FILES += ext4fixup_main.c +ext4fixup_OBJS := $(ext4fixup_SRC_FILES:.c=.o) + +libext4_utils_SRC_FILES += make_ext4fs.c +libext4_utils_SRC_FILES += ext4fixup.c +libext4_utils_SRC_FILES += ext4_utils.c +libext4_utils_SRC_FILES += allocate.c +libext4_utils_SRC_FILES += contents.c +libext4_utils_SRC_FILES += extent.c +libext4_utils_SRC_FILES += indirect.c +libext4_utils_SRC_FILES += uuid.c +libext4_utils_SRC_FILES += sha1.c +libext4_utils_SRC_FILES += wipe.c +libext4_utils_SRC_FILES += crc16.c +libext4_utils_SRC_FILES += ext4_sb.c +libext4_utils_OBJS := $(libext4_utils_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/core/libsparse +simg2img_SRC_FILES += simg2img.c +simg2img_SRC_FILES += sparse_crc32.c +simg2img_OBJS := $(simg2img_SRC_FILES:.c=.o) + +img2simg_SRC_FILES += img2simg.c +img2simg_OBJS := $(img2simg_SRC_FILES:.c=.o) + +simg2simg_SRC_FILES += simg2simg.c +simg2simg_SRC_FILES += sparse_crc32.c +simg2simg_OBJS := $(simg2simg_SRC_FILES:.c=.o) + +libsparse_SRC_FILES += backed_block.c +libsparse_SRC_FILES += output_file.c +libsparse_SRC_FILES += sparse.c +libsparse_SRC_FILES += sparse_crc32.c +libsparse_SRC_FILES += sparse_err.c +libsparse_SRC_FILES += sparse_read.c +libsparse_OBJS := $(libsparse_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/external/libselinux/src +libselinux_SRC_FILES += callbacks.c +libselinux_SRC_FILES += check_context.c +libselinux_SRC_FILES += freecon.c +libselinux_SRC_FILES += init.c +libselinux_SRC_FILES += label.c +libselinux_SRC_FILES += label_file.c +libselinux_SRC_FILES += label_android_property.c +libselinux_OBJS := $(libselinux_SRC_FILES:.c=.o) + +CFLAGS += -DANDROID +CFLAGS += -DHOST +CFLAGS += -I$(SRCDIR)/system/extras/ext4_utils +CFLAGS += -I$(SRCDIR)/system/core/include +CFLAGS += -I$(SRCDIR)/system/core/libsparse/include +CFLAGS += -I$(SRCDIR)/external/libselinux/include +CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h + +all: make_ext4fs ext2simg ext4fixup simg2img img2simg simg2simg + +make_ext4fs: libext4_utils.a libsparse.a libselinux.a $(make_ext4fs_OBJS) + $(CC) -o $@ $(LDFLAGS) $(make_ext4fs_OBJS) \ + libext4_utils.a libsparse.a libselinux.a -lz -lpcre + +ext2simg: libext4_utils.a libselinux.a libsparse.a $(ext2simg_OBJS) + $(CC) -o $@ $(LDFLAGS) $(ext2simg_OBJS) \ + libext4_utils.a libselinux.a libsparse.a -lz -lpcre + +ext4fixup: libext4_utils.a libsparse.a $(ext4fixup_OBJS) + $(CC) -o $@ $(LDFLAGS) $(ext4fixup_OBJS) libext4_utils.a libsparse.a -lz + +simg2img: libsparse.a $(simg2img_OBJS) + $(CC) -o $@ $(LDFLAGS) $(simg2img_OBJS) libsparse.a -lz + +img2simg: libsparse.a $(img2simg_OBJS) + $(CC) -o $@ $(LDFLAGS) $(img2simg_OBJS) libsparse.a -lz + +simg2simg: libsparse.a $(simg2simg_OBJS) + $(CC) -o $@ $(LDFLAGS) $(simg2simg_OBJS) libsparse.a -lz + +libext4_utils.a: $(libext4_utils_OBJS) + $(AR) rcs $@ $(libext4_utils_OBJS) + +libsparse.a: $(libsparse_OBJS) + $(AR) rcs $@ $(libsparse_OBJS) + +libselinux.a: $(libselinux_OBJS) + $(AR) rcs $@ $(libselinux_OBJS) + +clean: + $(RM) $(make_ext4fs_OBJS) $(ext2simg_OBJS) $(ext4fixup_OBJS) \ + $(simg2img_OBJS) $(img2simg_OBJS) $(simg2simg_OBJS) \ + $(libext4_utils_OBJS) $(libsparse_OBJS) $(libselinux_OBJS) \ + make_ext4fs ext2simg ext4fixup simg2img img2simg simg2simg *.a diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/fastboot.mk b/meta-oe/recipes-devtools/android-tools/android-tools/fastboot.mk new file mode 100644 index 00000000000..b9ba95f38af --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/fastboot.mk @@ -0,0 +1,89 @@ +# Makefile for fastboot + +SRCDIR ?= $(S) + +VPATH += $(SRCDIR)/system/core/fastboot +fastboot_SRC_FILES += protocol.c +fastboot_SRC_FILES += engine.c +fastboot_SRC_FILES += bootimg.c +fastboot_SRC_FILES += fastboot.c +fastboot_SRC_FILES += util.c +fastboot_SRC_FILES += fs.c +fastboot_SRC_FILES += usb_linux.c +fastboot_SRC_FILES += util_linux.c +fastboot_OBJS := $(fastboot_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/core/libzipfile +libzipfile_SRC_FILES += centraldir.c +libzipfile_SRC_FILES += zipfile.c +libzipfile_OBJS := $(libzipfile_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/extras/ext4_utils +libext4_utils_SRC_FILES += make_ext4fs.c +libext4_utils_SRC_FILES += ext4fixup.c +libext4_utils_SRC_FILES += ext4_utils.c +libext4_utils_SRC_FILES += allocate.c +libext4_utils_SRC_FILES += contents.c +libext4_utils_SRC_FILES += extent.c +libext4_utils_SRC_FILES += indirect.c +libext4_utils_SRC_FILES += uuid.c +libext4_utils_SRC_FILES += sha1.c +libext4_utils_SRC_FILES += wipe.c +libext4_utils_SRC_FILES += crc16.c +libext4_utils_SRC_FILES += ext4_sb.c +libext4_utils_OBJS := $(libext4_utils_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/core/libsparse +libsparse_SRC_FILES += backed_block.c +libsparse_SRC_FILES += output_file.c +libsparse_SRC_FILES += sparse.c +libsparse_SRC_FILES += sparse_crc32.c +libsparse_SRC_FILES += sparse_err.c +libsparse_SRC_FILES += sparse_read.c +libsparse_OBJS := $(libsparse_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/external/libselinux/src +libselinux_SRC_FILES += callbacks.c +libselinux_SRC_FILES += check_context.c +libselinux_SRC_FILES += freecon.c +libselinux_SRC_FILES += init.c +libselinux_SRC_FILES += label.c +libselinux_SRC_FILES += label_file.c +libselinux_SRC_FILES += label_android_property.c +libselinux_OBJS := $(libselinux_SRC_FILES:.c=.o) + +CFLAGS += -std=gnu11 +CFLAGS += -DANDROID +# CFLAGS += -DUSE_F2FS +CFLAGS += -DHOST +CFLAGS += -I$(SRCDIR)/system/core/fastboot +CFLAGS += -I$(SRCDIR)/system/core/include +CFLAGS += -I$(SRCDIR)/system/core/mkbootimg +CFLAGS += -I$(SRCDIR)/system/extras/ext4_utils +CFLAGS += -I$(SRCDIR)/system/extras/f2fs_utils +CFLAGS += -I$(SRCDIR)/system/core/libsparse/include +CFLAGS += -I$(SRCDIR)/external/libselinux/include +CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h + +LIBS += libzipfile.a libext4_utils.a libsparse.a libselinux.a -lz -lpcre + +all: fastboot + +fastboot: libzipfile.a libext4_utils.a libsparse.a libselinux.a $(fastboot_OBJS) + $(CC) -o $@ $(LDFLAGS) $(fastboot_OBJS) $(LIBS) + +libzipfile.a: $(libzipfile_OBJS) + $(AR) rcs $@ $(libzipfile_OBJS) + +libext4_utils.a: $(libext4_utils_OBJS) + $(AR) rcs $@ $(libext4_utils_OBJS) + +libsparse.a: $(libsparse_OBJS) + $(AR) rcs $@ $(libsparse_OBJS) + +libselinux.a: $(libselinux_OBJS) + $(AR) rcs $@ $(libselinux_OBJS) + +clean: + $(RM) $(fastboot_OBJS) $(libzipfile_OBJS) $(libext4_utils_OBJS) \ + $(libsparse_OBJS) $(libselinux_OBJS) fastboot *.a diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch b/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch new file mode 100644 index 00000000000..8deaf3a3d73 --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch @@ -0,0 +1,39 @@ +Fix build on big endian systems + +The usb_linux_client.c file defines cpu_to_le16/32 by using the C +library htole16/32 function calls. However, cpu_to_le16/32 are used +when initializing structures, i.e in a context where a function call +is not allowed. + +It works fine on little endian systems because htole16/32 are defined +by the C library as no-ops. But on big-endian systems, they are +actually doing something, which might involve calling a function, +causing build failures. + +To solve this, we simply open-code cpu_to_le16/32 in a way that allows +them to be used when initializing structures. + +Signed-off-by: Thomas Petazzoni + +Index: b/system/core/adb/usb_linux_client.c +=================================================================== +--- a/system/core/adb/usb_linux_client.c ++++ b/system/core/adb/usb_linux_client.c +@@ -34,8 +34,15 @@ + #define MAX_PACKET_SIZE_FS 64 + #define MAX_PACKET_SIZE_HS 512 + +-#define cpu_to_le16(x) htole16(x) +-#define cpu_to_le32(x) htole32(x) ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++# define cpu_to_le16(x) (x) ++# define cpu_to_le32(x) (x) ++#else ++# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)) ++# define cpu_to_le32(x) \ ++ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \ ++ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) ++#endif + + struct usb_handle + { diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch b/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch new file mode 100644 index 00000000000..64db6168c63 --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch @@ -0,0 +1,42 @@ +Description: fix implicit declaration of stlcat/strlcopy functions. +Author: Fathi Boudra + +Upstream-Status: Inappropriate +--- + system/core/adb/adb.c | 1 + + system/core/fs_mgr/fs_mgr_fstab.c | 2 +- + system/core/include/cutils/sockets.h | 2 +- + 3 files changed, 3 insertions(+), 2 deletions(-) + +--- a/system/core/fs_mgr/fs_mgr_fstab.c ++++ b/system/core/fs_mgr/fs_mgr_fstab.c +@@ -17,7 +17,7 @@ + #include + #include + #include +-#include ++#include + #include + + #include "fs_mgr_priv.h" +--- a/system/core/include/cutils/sockets.h ++++ b/system/core/include/cutils/sockets.h +@@ -19,7 +19,7 @@ + + #include + #include +-#include ++#include + #include + + #ifdef HAVE_WINSOCK +--- a/system/core/adb/adb.c ++++ b/system/core/adb/adb.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + #else + #include "usb_vendors.h" + #endif diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch b/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch new file mode 100644 index 00000000000..35bb766a7f6 --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch @@ -0,0 +1,108 @@ +From cc5e7b02a3be57709a1aed6e34be100b82a71620 Mon Sep 17 00:00:00 2001 +From: David Ng +Date: Fri, 27 Jul 2012 17:15:03 -0700 +Subject: [PATCH 1/2] mkbootimg: Add --dt parameter to specify DT image + +New optional --dt parameter to specify a kernel device +tree image. + +Change-Id: Ie29a11cbf4138426bfd19ae486d69a5fcbd8f442 + +Upstream-Status: Inappropriate +--- + system/core/mkbootimg/bootimg.h | 7 +++++-- + system/core/mkbootimg/mkbootimg.c | 21 +++++++++++++++++++++ + 2 files changed, 26 insertions(+), 2 deletions(-) + +--- a/system/core/mkbootimg/bootimg.h ++++ b/system/core/mkbootimg/bootimg.h +@@ -41,8 +41,8 @@ struct boot_img_hdr + + unsigned tags_addr; /* physical addr for kernel tags */ + unsigned page_size; /* flash page size we assume */ +- unsigned unused[2]; /* future expansion: should be 0 */ +- ++ unsigned dt_size; /* device tree in bytes */ ++ unsigned unused; /* future expansion: should be 0 */ + unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */ + + unsigned char cmdline[BOOT_ARGS_SIZE]; +@@ -64,10 +64,13 @@ struct boot_img_hdr + ** +-----------------+ + ** | second stage | o pages + ** +-----------------+ ++** | device tree | p pages ++** +-----------------+ + ** + ** n = (kernel_size + page_size - 1) / page_size + ** m = (ramdisk_size + page_size - 1) / page_size + ** o = (second_size + page_size - 1) / page_size ++** p = (dt_size + page_size - 1) / page_size + ** + ** 0. all entities are page_size aligned in flash + ** 1. kernel and ramdisk are required (size != 0) +--- a/system/core/mkbootimg/mkbootimg.c ++++ b/system/core/mkbootimg/mkbootimg.c +@@ -65,6 +65,7 @@ int usage(void) + " [ --board ]\n" + " [ --base
    ]\n" + " [ --pagesize ]\n" ++ " [ --dt ]\n" + " -o|--output \n" + ); + return 1; +@@ -105,6 +106,8 @@ int main(int argc, char **argv) + char *cmdline = ""; + char *bootimg = 0; + char *board = ""; ++ char *dt_fn = 0; ++ void *dt_data = 0; + unsigned pagesize = 2048; + int fd; + SHA_CTX ctx; +@@ -158,6 +161,8 @@ int main(int argc, char **argv) + fprintf(stderr,"error: unsupported page size %d\n", pagesize); + return -1; + } ++ } else if(!strcmp(arg, "--dt")) { ++ dt_fn = val; + } else { + return usage(); + } +@@ -232,6 +237,14 @@ int main(int argc, char **argv) + } + } + ++ if(dt_fn) { ++ dt_data = load_file(dt_fn, &hdr.dt_size); ++ if (dt_data == 0) { ++ fprintf(stderr,"error: could not load device tree image '%s'\n", dt_fn); ++ return 1; ++ } ++ } ++ + /* put a hash of the contents in the header so boot images can be + * differentiated based on their first 2k. + */ +@@ -242,6 +255,10 @@ int main(int argc, char **argv) + SHA_update(&ctx, &hdr.ramdisk_size, sizeof(hdr.ramdisk_size)); + SHA_update(&ctx, second_data, hdr.second_size); + SHA_update(&ctx, &hdr.second_size, sizeof(hdr.second_size)); ++ if(dt_data) { ++ SHA_update(&ctx, dt_data, hdr.dt_size); ++ SHA_update(&ctx, &hdr.dt_size, sizeof(hdr.dt_size)); ++ } + sha = SHA_final(&ctx); + memcpy(hdr.id, sha, + SHA_DIGEST_SIZE > sizeof(hdr.id) ? sizeof(hdr.id) : SHA_DIGEST_SIZE); +@@ -266,6 +283,10 @@ int main(int argc, char **argv) + if(write_padding(fd, pagesize, hdr.second_size)) goto fail; + } + ++ if(dt_data) { ++ if(write(fd, dt_data, hdr.dt_size) != (ssize_t) hdr.dt_size) goto fail; ++ if(write_padding(fd, pagesize, hdr.dt_size)) goto fail; ++ } + return 0; + + fail: diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg.mk b/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg.mk new file mode 100644 index 00000000000..519f609fd2c --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg.mk @@ -0,0 +1,29 @@ +# Makefile for mkbootimg + +SRCDIR ?= $(S) + +VPATH += $(SRCDIR)/system/core/mkbootimg +mkbootimg_SRC_FILES += mkbootimg.c +mkbootimg_OBJS := $(mkbootimg_SRC_FILES:.c=.o) + +VPATH += $(SRCDIR)/system/core/libmincrypt +libmincrypt_SRC_FILES := dsa_sig.c p256.c p256_ec.c p256_ecdsa.c rsa.c sha.c sha256.c +libmincrypt_OBJS := $(libmincrypt_SRC_FILES:.c=.o) + +CFLAGS += -DANDROID +CFLAGS += -I$(SRCDIR)/system/core/mkbootimg +CFLAGS += -I$(SRCDIR)/system/core/include +CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h + +LIBS += libmincrypt.a + +all: mkbootimg + +mkbootimg: libmincrypt.a $(mkbootimg_OBJS) + $(CC) -o $@ $(LDFLAGS) $(mkbootimg_OBJS) $(LIBS) + +libmincrypt.a: $(libmincrypt_OBJS) + $(AR) rcs $@ $(libmincrypt_OBJS) + +clean: + $(RM) $(mkbootimg_OBJS) $(libmincrypt_OBJS) mkbootimg *.a diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch b/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch new file mode 100644 index 00000000000..85af81f0f95 --- /dev/null +++ b/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch @@ -0,0 +1,72 @@ +Description: add -o argument to preserve ownership +Author: Markus Mayer + +See also https://android-review.googlesource.com/#/c/100312/ + +Upstream-Status: Inappropriate +--- + system/extras/ext4_utils/make_ext4fs.c | 6 ++++++ + system/extras/ext4_utils/make_ext4fs_main.c | 10 ++++++++-- + 2 files changed, 14 insertions(+), 2 deletions(-) + +--- a/system/extras/ext4_utils/make_ext4fs_main.c ++++ b/system/extras/ext4_utils/make_ext4fs_main.c +@@ -49,13 +49,15 @@ extern struct fs_info info; + + extern struct selabel_handle* selinux_android_file_context_handle(void); + ++extern int preserve_owner; ++ + static void usage(char *path) + { + fprintf(stderr, "%s [ -l ] [ -j ] [ -b ]\n", basename(path)); + fprintf(stderr, " [ -g ] [ -i ] [ -I ]\n"); + fprintf(stderr, " [ -L
    +Index: oprofile-1.0.0/doc/oprofile.xml +=================================================================== +--- oprofile-1.0.0.orig/doc/oprofile.xml 2014-11-03 17:55:31.515034857 +0000 ++++ oprofile-1.0.0/doc/oprofile.xml 2014-11-03 17:58:03.719039005 +0000 +@@ -654,8 +654,8 @@ + must stop it in a controlled manner in order to process + the profile data it has collected. Use kill -SIGINT <operf-PID> + for this purpose. It is recommended that when running operf +- with this option, your current working directory should be /root or a subdirectory +- of /root to avoid storing sample data files in locations accessible by regular users. ++ with this option, your current working directory should be ~root or a subdirectory ++ of ~root to avoid storing sample data files in locations accessible by regular users. + + + diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/run-ptest b/meta-oe/recipes-kernel/oprofile/oprofile/run-ptest new file mode 100644 index 00000000000..4814be652a7 --- /dev/null +++ b/meta-oe/recipes-kernel/oprofile/oprofile/run-ptest @@ -0,0 +1,19 @@ +#!/bin/sh + +saved_dir=$PWD +for dir in */tests ; do + cd $dir + for atest in * ; do + if [ \( -x $atest \) -a \( -f $atest \) ] ; then + ./$atest > ${atest}.stdout 2> ${atest}.stderr + if [ $? = 0 ] ; then + echo "PASS: $dir $atest" + rm ${atest}.stdout ${atest}.stderr + else + echo "FAIL: ${dir}/${atest}" + fi + fi + done + cd $saved_dir +done + diff --git a/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb b/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb new file mode 100644 index 00000000000..92a94ad0d4d --- /dev/null +++ b/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb @@ -0,0 +1,10 @@ +require oprofile.inc + +DEPENDS += "virtual/kernel" +DEPENDS_append_powerpc64 = " libpfm4" + +SRC_URI[md5sum] = "248c4c069f9476f427fa7195563f9867" +SRC_URI[sha256sum] = "cf759a6de1a6033d5dfc93bda129a9f2e128aecc4238cc657feb0801d1b0366c" + +S = "${WORKDIR}/oprofile-${PV}" + diff --git a/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb b/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb deleted file mode 100644 index 61886599ace..00000000000 --- a/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "The Audio File Library provides a uniform and elegant \ -API for accessing a variety of audio file formats, such as AIFF/AIFF-C, \ -WAVE, NeXT/Sun .snd/.au, Berkeley/IRCAM/CARL Sound File, Audio Visual \ -Research, Amiga IFF/8SVX, and NIST SPHERE." -HOMEPAGE = "http://www.68k.org/~michael/audiofile/" -SECTION = "libs" -LICENSE = "LGPLv2 & GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ - file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3" - -SRC_URI = "${GNOME_MIRROR}/audiofile/0.2/${BP}.tar.gz" -SRC_URI[md5sum] = "a39be317a7b1971b408805dc5e371862" -SRC_URI[sha256sum] = "a61c4036c2600a645843f16bec4be166093a9df5f15b02c85291213aa9cf15a2" - -inherit autotools lib_package binconfig diff --git a/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb b/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb new file mode 100644 index 00000000000..f4e19e4ad3e --- /dev/null +++ b/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "The Audio File Library provides a uniform and elegant \ +API for accessing a variety of audio file formats, such as AIFF/AIFF-C, \ +WAVE, NeXT/Sun .snd/.au, Berkeley/IRCAM/CARL Sound File, Audio Visual \ +Research, Amiga IFF/8SVX, and NIST SPHERE." +HOMEPAGE = "http://www.68k.org/~michael/audiofile/" +SECTION = "libs" +LICENSE = "LGPLv2 & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = " \ + ${GNOME_MIRROR}/audiofile/0.3/${BP}.tar.xz \ + file://0001-fix-negative-shift-constants.patch \ + file://0002-fix-build-on-gcc6.patch \ + file://0003-fix-CVE-2015-7747.patch \ +" +SRC_URI[md5sum] = "235dde14742317328f0109e9866a8008" +SRC_URI[sha256sum] = "ea2449ad3f201ec590d811db9da6d02ffc5e87a677d06b92ab15363d8cb59782" + +inherit autotools lib_package pkgconfig + +DEPENDS = " \ + asciidoc-native \ + alsa-lib \ + libogg \ + flac \ +" diff --git a/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch b/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch new file mode 100644 index 00000000000..ecb3108050d --- /dev/null +++ b/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch @@ -0,0 +1,77 @@ +From 99127676dba8f5d607757428bc14a6b7ab52d5ed Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 16 Dec 2016 12:42:06 +0100 +Subject: [PATCH 1/3] fix negative shift constants +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/audiofile.git/tree/audiofile-0.3.6-left-shift-neg.patch + +Upstrem-Status: Pending + +Signed-off-by: Andreas Müller +--- + libaudiofile/modules/SimpleModule.h | 2 +- + test/FloatToInt.cpp | 2 +- + test/IntToFloat.cpp | 2 +- + test/Sign.cpp | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/libaudiofile/modules/SimpleModule.h b/libaudiofile/modules/SimpleModule.h +index 03c6c69..e4cc138 100644 +--- a/libaudiofile/modules/SimpleModule.h ++++ b/libaudiofile/modules/SimpleModule.h +@@ -123,7 +123,7 @@ struct signConverter + typedef typename IntTypes::UnsignedType UnsignedType; + + static const int kScaleBits = (Format + 1) * CHAR_BIT - 1; +- static const int kMinSignedValue = -1 << kScaleBits; ++ static const int kMinSignedValue = 0-(1U< + { +diff --git a/test/FloatToInt.cpp b/test/FloatToInt.cpp +index 0d179a8..bf491b2 100644 +--- a/test/FloatToInt.cpp ++++ b/test/FloatToInt.cpp +@@ -115,7 +115,7 @@ TEST_F(FloatToIntTest, Int16) + EXPECT_EQ(readData[i], expectedData[i]); + } + +-static const int32_t kMinInt24 = -1<<23; ++static const int32_t kMinInt24 = 0-(1U<<23); + static const int32_t kMaxInt24 = (1<<23) - 1; + + TEST_F(FloatToIntTest, Int24) +diff --git a/test/IntToFloat.cpp b/test/IntToFloat.cpp +index b716635..1d91b58 100644 +--- a/test/IntToFloat.cpp ++++ b/test/IntToFloat.cpp +@@ -117,7 +117,7 @@ TEST_F(IntToFloatTest, Int16) + EXPECT_EQ(readData[i], expectedData[i]); + } + +-static const int32_t kMinInt24 = -1<<23; ++static const int32_t kMinInt24 = 0-(1U<<23); + static const int32_t kMaxInt24 = (1<<23) - 1; + + TEST_F(IntToFloatTest, Int24) +diff --git a/test/Sign.cpp b/test/Sign.cpp +index 7275399..c339514 100644 +--- a/test/Sign.cpp ++++ b/test/Sign.cpp +@@ -116,7 +116,7 @@ TEST_F(SignConversionTest, Int16) + EXPECT_EQ(readData[i], expectedData[i]); + } + +-static const int32_t kMinInt24 = -1<<23; ++static const int32_t kMinInt24 = 0-(1U<<23); + static const int32_t kMaxInt24 = (1<<23) - 1; + static const uint32_t kMaxUInt24 = (1<<24) - 1; + +-- +2.7.4 + diff --git a/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch b/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch new file mode 100644 index 00000000000..2c66cf4d00a --- /dev/null +++ b/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch @@ -0,0 +1,75 @@ +From a74c1e9c583375b9e55c29a36442485089e4b7f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 16 Dec 2016 12:42:06 +0100 +Subject: [PATCH 2/3] fix build on gcc6 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/audiofile.git/tree/audiofile-0.3.6-narrowing.patch + +Upstrem-Status: Pending + +Signed-off-by: Andreas Müller +--- + test/NeXT.cpp | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/test/NeXT.cpp b/test/NeXT.cpp +index 7e39850..a37cea1 100644 +--- a/test/NeXT.cpp ++++ b/test/NeXT.cpp +@@ -37,13 +37,13 @@ + + #include "TestUtilities.h" + +-const char kDataUnspecifiedLength[] = ++const signed char kDataUnspecifiedLength[] = + { + '.', 's', 'n', 'd', + 0, 0, 0, 24, // offset of 24 bytes +- 0xff, 0xff, 0xff, 0xff, // unspecified length ++ -1, -1, -1, -1, // unspecified length + 0, 0, 0, 3, // 16-bit linear +- 0, 0, 172, 68, // 44100 Hz ++ 0, 0, -84, 68, // 44100 Hz (0xAC44) + 0, 0, 0, 1, // 1 channel + 0, 1, + 0, 1, +@@ -57,13 +57,13 @@ const char kDataUnspecifiedLength[] = + 0, 55 + }; + +-const char kDataTruncated[] = ++const signed char kDataTruncated[] = + { + '.', 's', 'n', 'd', + 0, 0, 0, 24, // offset of 24 bytes + 0, 0, 0, 20, // length of 20 bytes + 0, 0, 0, 3, // 16-bit linear +- 0, 0, 172, 68, // 44100 Hz ++ 0, 0, -84, 68, // 44100 Hz (0xAC44) + 0, 0, 0, 1, // 1 channel + 0, 1, + 0, 1, +@@ -152,13 +152,13 @@ TEST(NeXT, Truncated) + ASSERT_EQ(::unlink(testFileName.c_str()), 0); + } + +-const char kDataZeroChannels[] = ++const signed char kDataZeroChannels[] = + { + '.', 's', 'n', 'd', + 0, 0, 0, 24, // offset of 24 bytes + 0, 0, 0, 2, // 2 bytes + 0, 0, 0, 3, // 16-bit linear +- 0, 0, 172, 68, // 44100 Hz ++ 0, 0, -84, 68, // 44100 Hz (0xAC44) + 0, 0, 0, 0, // 0 channels + 0, 1 + }; +-- +2.7.4 + diff --git a/meta-oe/recipes-multimedia/audiofile/files/0003-fix-CVE-2015-7747.patch b/meta-oe/recipes-multimedia/audiofile/files/0003-fix-CVE-2015-7747.patch new file mode 100644 index 00000000000..895e320ba44 --- /dev/null +++ b/meta-oe/recipes-multimedia/audiofile/files/0003-fix-CVE-2015-7747.patch @@ -0,0 +1,35 @@ +From 746c38105ce4fa1b609995d3386ea6b8b1f2f7bd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 16 Dec 2016 12:50:51 +0100 +Subject: [PATCH 3/3] fix CVE-2015-7747 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/audiofile.git/tree/audiofile-0.3.6-CVE-2015-7747.patch + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + libaudiofile/modules/ModuleState.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libaudiofile/modules/ModuleState.cpp b/libaudiofile/modules/ModuleState.cpp +index f76c495..0c29d7a 100644 +--- a/libaudiofile/modules/ModuleState.cpp ++++ b/libaudiofile/modules/ModuleState.cpp +@@ -402,7 +402,7 @@ status ModuleState::arrange(AFfilehandle file, Track *track) + addModule(new Transform(outfc, in.pcm, out.pcm)); + + if (in.channelCount != out.channelCount) +- addModule(new ApplyChannelMatrix(infc, isReading, ++ addModule(new ApplyChannelMatrix(outfc, isReading, + in.channelCount, out.channelCount, + in.pcm.minClip, in.pcm.maxClip, + track->channelMatrix)); +-- +2.7.4 + diff --git a/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb b/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb new file mode 100644 index 00000000000..c0f220fa6c6 --- /dev/null +++ b/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb @@ -0,0 +1,20 @@ +SUMMARY = "CD/DVD command line tools" +HOMEPAGE = "http://cdrkit.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b30d3b2750b668133fc17b401e1b98f8" + +# While writing download from cdrkit.org was broken so get sources from debian +SRC_URI = "${DEBIAN_MIRROR}/main/c/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch \ + file://0001-genisoimage-Fix-fprintf-format-errors.patch \ + file://0001-define-__THROW-to-avoid-build-issue-with-musl.patch \ + file://0002-Do-not-use-rcmd-on-build-with-musl.patch \ + " +SRC_URI[md5sum] = "efe08e2f3ca478486037b053acd512e9" +SRC_URI[sha256sum] = "d1c030756ecc182defee9fe885638c1785d35a2c2a297b4604c0e0dcc78e47da" + +inherit cmake + +DEPENDS = "libcap file bzip2" +RDEPENDS_${PN} = "perl" diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch new file mode 100644 index 00000000000..b3beb069eb3 --- /dev/null +++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch @@ -0,0 +1,47 @@ +From 7c3036609494296f7c29413bf3acba829c81f62c Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 8 Aug 2015 22:58:57 +0200 +Subject: [PATCH 1/2] define __THROW to avoid build issue with musl + +Fixes: +http://autobuild.buildroot.net/results/d27/d2781e70b04a207e2e9397d888032294c7285034/build-end.log + +Signed-off-by: Romain Naour +--- + genisoimage/sha256.h | 4 ++++ + genisoimage/sha512.h | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/genisoimage/sha256.h b/genisoimage/sha256.h +index e7f4cb9..bcae7ef 100644 +--- a/genisoimage/sha256.h ++++ b/genisoimage/sha256.h +@@ -29,6 +29,10 @@ + #include + #include + ++/* define __THROW to avoid build issue when it's not available from the libc */ ++#ifndef __THROW ++# define __THROW ++#endif + + /* Structure to save state of computation between the single steps. */ + struct sha256_ctx +diff --git a/genisoimage/sha512.h b/genisoimage/sha512.h +index 7298355..8cee8b0 100644 +--- a/genisoimage/sha512.h ++++ b/genisoimage/sha512.h +@@ -29,6 +29,10 @@ + #include + #include + ++/* define __THROW to avoid build issue when it's not available from the libc */ ++#ifndef __THROW ++# define __THROW ++#endif + + /* Structure to save state of computation between the single steps. */ + struct sha512_ctx +-- +2.14.1 + diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch new file mode 100644 index 00000000000..c9725cb064a --- /dev/null +++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch @@ -0,0 +1,53 @@ +From a702cd1bb5eba5a05d1098862b5b863a3f6dd558 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Thu, 10 Sep 2015 09:39:13 +0200 +Subject: [PATCH] do not create a run test to determine order of bitfields +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +taken from [1] + +Upstream-Status: Inappropriate [cross compile specific] + +[1] http://cgit.openembedded.org/openembedded/tree/recipes/cdrkit/cdrkit/xconfig.patch + +Signed-off-by: Andreas Müller +--- + include/CMakeLists.txt | 2 -- + include/xconfig.h.in | 6 +++++- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt +index 99a69fd..e5ba8a7 100644 +--- a/include/CMakeLists.txt ++++ b/include/CMakeLists.txt +@@ -35,8 +35,6 @@ endif(VA_LIST_IS_ARRAY) + INCLUDE(TestBigEndian) + TEST_BIG_ENDIAN(WORDS_BIGENDIAN) + +-TRY_RUN(BITFIELDS_HTOL TEST_DUMMY ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/test_BITFIELDS_HTOL.c) +- + INCLUDE(CheckIncludeFiles) + + #SET(CMAKE_REQUIRED_INCLUDES "/usr/include;/usr/local/include") +diff --git a/include/xconfig.h.in b/include/xconfig.h.in +index c130600..476c00b 100644 +--- a/include/xconfig.h.in ++++ b/include/xconfig.h.in +@@ -233,7 +233,11 @@ + /* If using network byte order */ + #cmakedefine WORDS_BIGENDIAN + /* If high bits come first in structures */ +-#cmakedefine BITFIELDS_HTOL ++#ifdef WORDS_BIGENDIAN ++#define BITFIELDS_HTOL ++#else ++#define BITFIELDS_LTOH ++#endif + #define HAVE_C_BIGENDIAN /* Flag that WORDS_BIGENDIAN test was done */ + #define HAVE_C_BITFIELDS /* Flag that BITFIELDS_HTOL test was done */ + +-- +2.1.0 + diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch new file mode 100644 index 00000000000..f52f71b632d --- /dev/null +++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch @@ -0,0 +1,49 @@ +From 8547f23c4416ed98f585c53c62e7d8afd8edab36 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 21:05:31 -0700 +Subject: [PATCH] genisoimage: Fix fprintf format errors + +Signed-off-by: Khem Raj +--- + genisoimage/genisoimage.c | 4 ++-- + genisoimage/tree.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/genisoimage/genisoimage.c b/genisoimage/genisoimage.c +index 46f0cb7..9089081 100644 +--- a/genisoimage/genisoimage.c ++++ b/genisoimage/genisoimage.c +@@ -3406,7 +3406,7 @@ if (check_session == 0) + if (goof) { + fprintf(stderr, "ISO9660/Rock Ridge tree sort failed.\n"); + if(merge_warn_msg) +- fprintf(stderr, merge_warn_msg); ++ fprintf(stderr, "%s", merge_warn_msg); + exit(1); + } + #ifdef UDF +@@ -3419,7 +3419,7 @@ if (check_session == 0) + if (goof) { + fprintf(stderr, "Joliet tree sort failed. The -joliet-long switch may help you.\n"); + if(merge_warn_msg) +- fprintf(stderr, merge_warn_msg); ++ fprintf(stderr, "%s", merge_warn_msg); + exit(1); + } + /* +diff --git a/genisoimage/tree.c b/genisoimage/tree.c +index 7805888..8412cc3 100644 +--- a/genisoimage/tree.c ++++ b/genisoimage/tree.c +@@ -647,7 +647,7 @@ got_valid_name: + fprintf(stderr, "Unable to sort directory %s\n", + this_dir->whole_name); + if(merge_warn_msg) +- fprintf(stderr, merge_warn_msg); ++ fprintf(stderr, "%s", merge_warn_msg); + exit(1); + } + /* +-- +2.13.2 + diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch b/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch new file mode 100644 index 00000000000..547a21c67f6 --- /dev/null +++ b/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch @@ -0,0 +1,31 @@ +From 510838b2c96a9b097b3ee2694cba1c3623b0bac7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 21 Sep 2017 22:38:05 -0700 +Subject: [PATCH 2/2] Do not use rcmd on build with musl + +cdrkit unconditionally enables code using rcmd(3), which isn't available +on musl. + +Signed-off-by: Khem Raj +--- + include/xconfig.h.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/include/xconfig.h.in b/include/xconfig.h.in +index 476c00b..6b4b298 100644 +--- a/include/xconfig.h.in ++++ b/include/xconfig.h.in +@@ -186,8 +186,9 @@ + * Instead use the tests AC_SMALL_FSEEKO/AC_SMALL/STELLO and make sure + * they are placed before the large file tests. + */ +- ++#ifdef __GLIBC__ + #define HAVE_RCMD 1 /* rcmd() is present in libc/libsocket */ ++#endif + #define HAVE_SOCKET 1 /* socket() is present in libc/libsocket */ + #define HAVE_SOCKETPAIR 1 /* socketpair() is present in libc/libsocket */ + #define HAVE_GETSERVBYNAME 1 /* getservbyname() is present in libc/libsocket */ +-- +2.14.1 + diff --git a/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch b/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch new file mode 100644 index 00000000000..6c7f3bd30d6 --- /dev/null +++ b/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch @@ -0,0 +1,26 @@ +From a860fe0796c43e35eac9783140fcb563cab9f55a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 23:09:51 -0700 +Subject: [PATCH 1/3] audio_alsa09.c: alsa drain fix + +Signed-off-by: Khem Raj +--- + audio_alsa09.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/audio_alsa09.c b/audio_alsa09.c +index 534e3db..d9450e6 100644 +--- a/audio_alsa09.c ++++ b/audio_alsa09.c +@@ -506,7 +506,7 @@ void esd_audio_flush(void) + } + + if (alsa_playback_handle != NULL) +- snd_pcm_drain( alsa_playback_handle ); ++ snd_pcm_drop( alsa_playback_handle ); + + if (alsadbg) + print_state(); +-- +2.13.1 + diff --git a/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch b/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch new file mode 100644 index 00000000000..337546abe94 --- /dev/null +++ b/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch @@ -0,0 +1,35 @@ +From 1fbee6e96384f340b816e221fe1c2f3ff0b487bf Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 23:11:31 -0700 +Subject: [PATCH 2/3] Undefine open64 and fopen64 + +Since the signatures do not match with libc + +Signed-off-by: Khem Raj +--- + esddsp.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/esddsp.c b/esddsp.c +index d3c6ea9..17b5949 100644 +--- a/esddsp.c ++++ b/esddsp.c +@@ -290,6 +290,7 @@ open (const char *pathname, int flags, ...) + return open_wrapper(func, pathname, flags, mode); + } + ++#undef open64 + int + open64 (const char *pathname, int flags, ...) + { +@@ -374,6 +375,7 @@ fopen (const char *path, const char *mode) + return fopen_wrapper(func, path, mode); + } + ++#undef fopen64 + FILE * + fopen64 (const char *path, const char *mode) + { +-- +2.13.1 + diff --git a/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch b/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch new file mode 100644 index 00000000000..62c880d9d01 --- /dev/null +++ b/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch @@ -0,0 +1,38 @@ +From 979a02d9ec9c28686021cd2b49ca55d2195c9dce Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 23:12:36 -0700 +Subject: [PATCH 3/3] Use -I= in configure + +This helps to use proper sysroot in +cross build environment + +Signed-off-by: Khem Raj +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5645dce..d374cda 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -208,7 +208,7 @@ if test "x$enable_local_sound" = "xyes"; then + AC_CHECK_HEADERS(CoreAudio/CoreAudio.h) + # mme_api.h directly includes other files from the mme subdir + xCPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS -I/usr/include/mme" ++ CPPFLAGS="$CPPFLAGS -I=/usr/include/mme" + AC_CHECK_HEADERS(mme/mme_api.h) + CPPFLAGS="$xCPPFLAGS" + AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no) +@@ -269,7 +269,7 @@ if test "x$enable_local_sound" = "xyes"; then + osf*) + found_sound=yes + AC_DEFINE(DRIVER_OSF, 1, [Defined if OSF backend is enabled]) +- CPPFLAGS="$CPPFLAGS -I/usr/include/mme" ++ CPPFLAGS="$CPPFLAGS -I=/usr/include/mme" + SOUND_LIBS=-lmme + esac + fi +-- +2.13.1 + diff --git a/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch b/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch deleted file mode 100644 index 8fdc35ad5e3..00000000000 --- a/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- /tmp/configure.ac 2008-06-02 16:46:55.640793306 +0200 -+++ esound-0.2.36/configure.ac 2008-06-02 16:47:26.030793494 +0200 -@@ -29,6 +29,7 @@ - AC_SUBST(pkgdocdir) - - AC_PROG_CC -+AC_PROG_CXX - AC_PROG_CPP - AC_LIBTOOL_WIN32_DLL - AM_PROG_LIBTOOL diff --git a/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz b/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz deleted file mode 100644 index 719f5d09de0..00000000000 Binary files a/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz and /dev/null differ diff --git a/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb b/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb deleted file mode 100644 index 035358d54ce..00000000000 --- a/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Enlightened Sound Daemon" -SECTION = "gpe/base" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" -DEPENDS = "audiofile" - -inherit gnome binconfig - -PR = "r1" - -SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.36.tar.bz2;name=archive \ - file://esound_0.2.36-1ubuntu5.diff.gz \ - file://no-docs.patch \ - file://configure-fix.patch" - -SRC_URI[archive.md5sum] = "3facb5aa0115cc1c31771b9ad454ae76" -SRC_URI[archive.sha256sum] = "68bf399fcbd45c5e9ba99cd13a3a479e4ef2bc5dc52e540ffa00aef1e1b19a76" - -EXTRA_OECONF = " \ - --disable-alsa \ - --disable-arts \ - --disable-artstest \ -" -do_configure_prepend() { - sed -i -e 's:/usr/include/mme:${STAGING_INCDIR}/mme:g' ${S}/configure.ac -} - -PACKAGES =+ "esddsp esd esd-utils" - -FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*" -FILES_esd = "${bindir}/esd" -FILES_esd-utils = "${bindir}/*" - diff --git a/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb b/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb new file mode 100644 index 00000000000..0ddf94f2dae --- /dev/null +++ b/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb @@ -0,0 +1,37 @@ +SUMMARY = "Enlightened Sound Daemon" +SECTION = "gpe/base" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605" +DEPENDS = "audiofile" + +inherit gnome + +SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/${P}.tar.bz2;name=archive \ + file://no-docs.patch \ + file://0001-audio_alsa09.c-alsa-drain-fix.patch \ + file://0002-Undefine-open64-and-fopen64.patch \ + file://0003-Use-I-path-in-configure.patch \ + " +SRC_URI[archive.md5sum] = "8d9aad3d94d15e0d59ba9dc0ea990c6c" +SRC_URI[archive.sha256sum] = "5eb5dd29a64b3462a29a5b20652aba7aa926742cef43577bf0796b787ca34911" + +EXTRA_OECONF += " \ + --disable-arts \ + --disable-artstest \ +" +EXTRA_OECONF_remove = "--disable-schemas-install" + +CFLAGS += "-lm" + +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[libwrap] = "--with-libwrap,--without-libwrap,tcp-wrappers," +PACKAGECONFIG[alsa] = "--enable-alsa --disable-oss,--disable-alsa,alsa-lib," + +PACKAGECONFIG ??= "libwrap alsa \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGES =+ "esddsp esd esd-utils" + +FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*" +FILES_esd = "${bindir}/esd" +FILES_esd-utils = "${bindir}/*" diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch b/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch new file mode 100644 index 00000000000..d17d311bdbe --- /dev/null +++ b/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch @@ -0,0 +1,43 @@ +From 488dc9b00239976caac6bd9ed76b38d9d1659dd9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 4 Oct 2016 23:44:49 +0200 +Subject: [PATCH] wscript: add pthread library dependency to fix linking +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/a2jmidid.git/tree/a2jmidid-linking.patch + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + wscript | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/wscript b/wscript +index 664625b..66a532a 100644 +--- a/wscript ++++ b/wscript +@@ -67,6 +67,7 @@ def configure(conf): + conf.env['DBUS_ENABLED'] = False + + conf.env['LIB_DL'] = ['dl'] ++ conf.env['LIB_PTHREAD'] = ['pthread'] + + #conf.check_header('expat.h', mandatory=True) + #conf.env['LIB_EXPAT'] = ['expat'] +@@ -152,7 +153,7 @@ def build(bld): + + prog.includes = '.' # make waf dependency tracking work + prog.target = 'a2jmidid' +- prog.uselib = 'ALSA JACK DL' ++ prog.uselib = 'ALSA JACK DL PTHREAD' + if bld.env()['DBUS_ENABLED']: + prog.uselib += " DBUS-1" + prog = bld.create_obj('cc', 'program') +-- +2.5.5 + diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch b/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch new file mode 100644 index 00000000000..b344f5427ba --- /dev/null +++ b/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch @@ -0,0 +1,31 @@ +Consider compiler define for aarch64 + +Signed-off-by: Khem Raj +Upstream-Status:Pending + +Index: a2jmidid-8/sigsegv.c +=================================================================== +--- a2jmidid-8.orig/sigsegv.c ++++ a2jmidid-8/sigsegv.c +@@ -91,18 +91,18 @@ static void signal_segv(int signum, sigi + a2j_error("info.si_errno = %d", info->si_errno); + a2j_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); + a2j_error("info.si_addr = %p", info->si_addr); +-#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) ++#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) + for(i = 0; i < NGREG; i++) + a2j_error("reg[%02d] = 0x" REGFORMAT, i, + #if defined(__powerpc__) + ucontext->uc_mcontext.uc_regs[i] +-#elif defined(__sparc__) && defined(__arch64__) ++#elif defined(__sparc__) || defined(__arch64__) + ucontext->uc_mcontext.mc_gregs[i] + #else + ucontext->uc_mcontext.gregs[i] + #endif + ); +-#endif /* alpha, ia64, kFreeBSD, arm, hppa */ ++#endif /* alpha, ia64, kFreeBSD, arm, hppa aarch64 */ + + #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) + # if defined(SIGSEGV_STACK_IA64) diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb b/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb new file mode 100644 index 00000000000..59b73f8e8b0 --- /dev/null +++ b/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb @@ -0,0 +1,26 @@ +SUMMARY = "a2jmidid is daemon for exposing ALSA sequencer applications as JACK MIDI" +SECTION = "libs/multimedia" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = " \ + file://gpl2.txt;md5=751419260aa954499f7abaabaa882bbe \ +" + +DEPENDS = "alsa-lib jack dbus" +DEPENDS_append_libc-musl = " libexecinfo" + +SRC_URI = " \ + http://download.gna.org/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch \ + file://0002-aarch64.patch \ +" +SRC_URI[md5sum] = "9cf4edbc3ad2ddeeaf6c8c1791ff3ddd" +SRC_URI[sha256sum] = "2a9635f62aabc59edb54ada07048dd47e896b90caff94bcee710d3582606f55f" + +inherit waf pkgconfig + +LDFLAGS_append_libc-musl = " -lexecinfo" + +export LINKFLAGS="${LDFLAGS}" + +FILES_${PN} += "${datadir}/dbus-1/services" diff --git a/meta-oe/recipes-multimedia/jack/jack/0001-typecast-input-parameter-to-int-for-abs.patch b/meta-oe/recipes-multimedia/jack/jack/0001-typecast-input-parameter-to-int-for-abs.patch new file mode 100644 index 00000000000..c119f198189 --- /dev/null +++ b/meta-oe/recipes-multimedia/jack/jack/0001-typecast-input-parameter-to-int-for-abs.patch @@ -0,0 +1,32 @@ +From 8ec6f75bf7a318a3a1e352df7c97630cfaba537a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 21 Apr 2017 16:18:39 -0700 +Subject: [PATCH] typecast input parameter to int for abs() + +Fixes +../tests/test.cpp:482:73: error: call of overloaded 'abs(jack_nframes_t)' is ambiguous + +because the signature is int abs(int) and its passing +unsigned int to it. + +Signed-off-by: Khem Raj +--- + tests/test.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test.cpp b/tests/test.cpp +index 8a8a8117..9655742e 100644 +--- a/tests/test.cpp ++++ b/tests/test.cpp +@@ -479,7 +479,7 @@ int process4(jack_nframes_t nframes, void *arg) + jack_nframes_t delta_time = cur_time - last_time; + + Log("calling process4 callback : jack_frame_time = %ld delta_time = %ld\n", cur_time, delta_time); +- if (delta_time > 0 && (jack_nframes_t)abs(delta_time - cur_buffer_size) > tolerance) { ++ if (delta_time > 0 && (jack_nframes_t)abs(int(delta_time - cur_buffer_size)) > tolerance) { + printf("!!! ERROR !!! jack_frame_time seems to return incorrect values cur_buffer_size = %d, delta_time = %d tolerance %d\n", cur_buffer_size, delta_time, tolerance); + } + +-- +2.12.2 + diff --git a/meta-oe/recipes-multimedia/jack/jack/jack_fix_TWL4030_alsa_capture.patch b/meta-oe/recipes-multimedia/jack/jack/jack_fix_TWL4030_alsa_capture.patch deleted file mode 100644 index 77337ff6c7f..00000000000 --- a/meta-oe/recipes-multimedia/jack/jack/jack_fix_TWL4030_alsa_capture.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/drivers/alsa/alsa_driver.c 2009-05-06 06:36:08.000000000 +1000 -+++ b/drivers/alsa/alsa_driver.c 2010-07-28 21:02:57.238101024 +1000 -@@ -2388,7 +2388,7 @@ - strcpy (params[i].name, "period"); - params[i].character = 'p'; - params[i].type = JackDriverParamUInt; -- params[i].value.ui = 1024U; -+ params[i].value.ui = 256U; /* TWL4030 capture. */ - strcpy (params[i].short_desc, "Frames per period"); - strcpy (params[i].long_desc, params[i].short_desc); - -@@ -2396,7 +2396,7 @@ - strcpy (params[i].name, "nperiods"); - params[i].character = 'n'; - params[i].type = JackDriverParamUInt; -- params[i].value.ui = 2U; -+ params[i].value.ui = 4U; /* TWL4030 capture. */ - strcpy (params[i].short_desc, "Number of periods of playback latency"); - strcpy (params[i].long_desc, params[i].short_desc); - -@@ -2518,8 +2518,8 @@ - driver_initialize (jack_client_t *client, const JSList * params) - { - jack_nframes_t srate = 48000; -- jack_nframes_t frames_per_interrupt = 1024; -- unsigned long user_nperiods = 2; -+ jack_nframes_t frames_per_interrupt = 256; /* TWL4030 needs small number of frames here. */ -+ unsigned long user_nperiods = 4; /* TWL4030 needs 4 periods to avoid XRuns. */ - char *playback_pcm_name = "hw:0"; - char *capture_pcm_name = "hw:0"; - int hw_monitoring = FALSE; diff --git a/meta-oe/recipes-multimedia/jack/jack/remove-wrong-host-test.patch b/meta-oe/recipes-multimedia/jack/jack/remove-wrong-host-test.patch deleted file mode 100644 index b41c98f2a71..00000000000 --- a/meta-oe/recipes-multimedia/jack/jack/remove-wrong-host-test.patch +++ /dev/null @@ -1,68 +0,0 @@ -From be5f1439a1f36c0bc714411d20186045bd3e9539 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 12 Jul 2011 12:48:14 +0200 -Subject: [PATCH] remove bogus check for host-side jack installs, we are crosscompiling and don't care about these misguided checks - ---- - configure.ac | 45 --------------------------------------------- - 1 files changed, 0 insertions(+), 45 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 0a7e6bc..4033c21 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3,51 +3,6 @@ dnl $Id: configure.ac 4467 2011-06-23 15:10:03Z paul $ - - AC_INIT(jackd/jackd.c) - -- --dnl --dnl Check for existing JACK installs --dnl -- --AC_MSG_CHECKING([existing, conflicting JACK installs]) --not_overwriting=0 --installs= --for dir in /usr/lib /usr/local/lib /opt/lib ; do -- if test -d $dir ; then -- if test $(find $dir/ -name 'libjack.so.*' 2>/dev/null | wc -l) -gt 0 ; then -- if echo $prefix/lib | grep -vs $dir >/dev/null 2>&1 ; then -- not_overwriting=$(expr $not_overwriting + 1) -- fi -- installs="$installs $dir" -- fi -- fi --done -- --if test $not_overwriting -gt 0 ; then -- echo -- echo -- echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" -- echo "You appear to have at least one existing installation of JACK." -- echo -- echo "Complete or partial JACK installs exist in:$installs" -- echo -- echo "Installing this version will leave at least one of these" -- echo "existing installations installed and this will probably break" -- echo "JACK on your machine. " -- echo -- echo "Before building, you should first remove the existing JACK" -- echo "installation(s). " -- echo -- echo "Alternatively use ./configure --prefix=... to force overwriting" -- echo "the existing install." -- echo -- echo "WARNING: ON ANY DEBIAN-DERIVED DISTRIBUTION (Debian, Ubuntu etc)" -- echo "CHANGING THE INSTALLATION PREFIX WILL NOT PRODUCE A WORKING JACK" -- echo "INSTALL. Please contact the distribution packager for JACK and" -- echo "ask them to fix their packaging." -- echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" -- exit 1 --fi -- - AC_CONFIG_AUX_DIR(config) - AC_CANONICAL_TARGET - --- -1.6.6.1 - diff --git a/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb b/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb deleted file mode 100644 index 7b3392721c4..00000000000 --- a/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION = "JACK is a low-latency audio server. It can \ -connect a number of different applications to an audio \ -device, as well as allowing them to share audio between \ -themselves." -SECTION = "libs/multimedia" - -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=c030468238b2cf89925a57f2780396a7 \ - file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://COPYING.LGPL;md5=e77fe93202736b47c07035910f47974a \ -" - -DEPENDS = "alsa-lib libsamplerate0 readline" - -SRCREV = "91a688c602b7ce1711d8ad10fb07ebcf2e530a64" -SRC_URI = "git://github.com/jackaudio/jack1.git \ - file://remove-wrong-host-test.patch \ - file://jack_fix_TWL4030_alsa_capture.patch \ -" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--enable-timestamps \ - --disable-capabilities \ - --disable-oldtrans \ - --disable-portaudio \ - --disable-coreaudio \ - --disable-oss \ - --enable-alsa" - -EXTRA_OEMAKE = 'transform="s,^,,"' - -PACKAGES =+ "libjack jack-server jack-utils" - -FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so" -FILES_jack-server = "${bindir}/jackd" -FILES_jack-utils = "${bindir}/*" -FILES_${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/* " diff --git a/meta-oe/recipes-multimedia/jack/jack_git.bb b/meta-oe/recipes-multimedia/jack/jack_git.bb new file mode 100644 index 00000000000..b85ba8a0288 --- /dev/null +++ b/meta-oe/recipes-multimedia/jack/jack_git.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "jackdmp is a C++ version of the JACK low-latency audio \ +server for multi-processor machines. It is a new implementation of the \ +JACK server core features that aims in removing some limitations of \ +the JACK1 design. The activation system has been changed for a data \ +flow model and lock-free programming techniques for graph access have \ +been used to have a more dynamic and robust system." +SECTION = "libs/multimedia" + +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://common/jack/control.h;beginline=2;endline=21;md5=e6df0bf30cde8b3b825451459488195d \ + file://common/jack/jack.h;beginline=1;endline=19;md5=6b736ed6b810592b135480a5e853392e \ +" + +DEPENDS = "libsamplerate0 libsndfile1 readline" + +SRC_URI = "git://github.com/jackaudio/jack2.git \ + file://0001-typecast-input-parameter-to-int-for-abs.patch \ + " +SRCREV = "2d1d323505585d406a7e64fb932953baefc5945e" +PV = "1.9.10+git${SRCPV}" +S = "${WORKDIR}/git" + +inherit waf pkgconfig + +PACKAGECONFIG ??= "alsa" +PACKAGECONFIG[alsa] = "--alsa=yes,--alsa=no,alsa-lib" +PACKAGECONFIG[opus] = "--opus=yes,--opus=no,libopus" + +# portaudio is for windows builds only +EXTRA_OECONF = "--portaudio=no" + +PACKAGES =+ "libjack jack-server jack-utils" + +RDEPENDS_jack-dev_remove = "${PN} (= ${EXTENDPKGV})" + +FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so" +FILES_jack-server = "${bindir}/jackd" +FILES_jack-utils = "${bindir}/*" +FILES_${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/* " diff --git a/meta-oe/recipes-multimedia/libass/libass.inc b/meta-oe/recipes-multimedia/libass/libass.inc index 328cd145c8e..4bc3db062a7 100644 --- a/meta-oe/recipes-multimedia/libass/libass.inc +++ b/meta-oe/recipes-multimedia/libass/libass.inc @@ -1,15 +1,13 @@ DESCRIPTION = "libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format. It is mostly compatible with VSFilter." -HOMEPAGE = "http://code.google.com/p/libass/" +HOMEPAGE = "https://github.com/libass/libass" SECTION = "libs/multimedia" LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ae98663bac55afe5d989919d296f28a" +LIC_FILES_CHKSUM = "file://COPYING;md5=a42532a0684420bdb15556c3cdd49a75" DEPENDS = "enca fontconfig freetype libpng fribidi" -INC_PR = "r1" - -SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz" +SRC_URI = "https://github.com/libass/libass/releases/download/${PV}/libass-${PV}.tar.xz" inherit autotools pkgconfig @@ -17,10 +15,12 @@ PACKAGECONFIG ??= "" PACKAGECONFIG[harfbuzz] = "--enable-harfbuzz,--disable-harfbuzz,harfbuzz" EXTRA_OECONF = " \ - --enable-enca \ --enable-fontconfig \ " +# Disable compiling with ASM for x86 to avoid textrel +EXTRA_OECONF_append_x86 = " --disable-asm" + PACKAGES =+ "${PN}-tests" FILES_${PN}-tests = " \ diff --git a/meta-oe/recipes-multimedia/libass/libass_0.10.1.bb b/meta-oe/recipes-multimedia/libass/libass_0.10.1.bb deleted file mode 100644 index 0b32276925b..00000000000 --- a/meta-oe/recipes-multimedia/libass/libass_0.10.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -require ${PN}.inc -PR = "${INC_PR}.0" - -SRC_URI[md5sum] = "6cace482a013a3c4bf3b31a68ac66026" -SRC_URI[sha256sum] = "629a7e81fff92dea8d0399b818a41fd1b61e381c67a5961b1eaec2efadb14c6c" diff --git a/meta-oe/recipes-multimedia/libass/libass_0.13.6.bb b/meta-oe/recipes-multimedia/libass/libass_0.13.6.bb new file mode 100644 index 00000000000..40ac0f81197 --- /dev/null +++ b/meta-oe/recipes-multimedia/libass/libass_0.13.6.bb @@ -0,0 +1,4 @@ +require recipes-multimedia/${BPN}/${BPN}.inc + +SRC_URI[md5sum] = "daa6cfca437c0776af5f79750cdd9b4e" +SRC_URI[sha256sum] = "f8a874d104e3e72e2cc057e5a1710c650b10367486845a26e5ff28ed7a912c2d" diff --git a/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb b/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb new file mode 100644 index 00000000000..91fe69338e6 --- /dev/null +++ b/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb @@ -0,0 +1,11 @@ +SUMMARY = "Library for reading, mastering and writing optical discs" +HOMEPAGE = "http://libburnia-project.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" + +SRC_URI = "http://files.libburnia-project.org/releases/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "82ff94bb04e78eac9b12c7546f005d6f" +SRC_URI[sha256sum] = "6c975abae4ae1f80e47fc5d1e235f85157f73e954c84627a5ef85d8b1b95ae94" + +inherit autotools pkgconfig diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb b/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb new file mode 100644 index 00000000000..82a16cc94a4 --- /dev/null +++ b/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb @@ -0,0 +1,24 @@ +SUMMARY = "library to read digital audio CDs with error correction" +HOMEPAGE = "http://www.gnu.org/software/libcdio/" +SECTION = "libs" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +DEPENDS = "libcdio" + +SRC_URI = "${GNU_MIRROR}/libcdio/${BP}.tar.bz2" +SRC_URI[md5sum] = "0255aa50e660db7f2c39658b9c565814" +SRC_URI[sha256sum] = "ec1d9b1d5a28cc042f2cb33a7cc0a2b5ce5525f102bc4c15db1fac322559a493" + +inherit autotools pkgconfig + +PACKAGES += "${PN}-utils" + +FILES_${PN} = "${libdir}/${BPN}${SOLIB}" +FILES_${PN}-utils = "${bindir}/*" + +python libcdio_split_packages() { + libdir = d.expand('${libdir}') + do_split_packages(d, libdir, '^lib(.*)\.so\..*', 'lib%s', 'libcdio %s library', extra_depends='', allow_links=True) +} + +PACKAGESPLITFUNCS =+ "libcdio_split_packages" diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio_0.82.bb b/meta-oe/recipes-multimedia/libcdio/libcdio_0.82.bb deleted file mode 100644 index 8cf393dcabc..00000000000 --- a/meta-oe/recipes-multimedia/libcdio/libcdio_0.82.bb +++ /dev/null @@ -1,28 +0,0 @@ -ESCRIPTION = "The GNU Compact Disc Input and Control library (libcdio) contains a library for CD-ROM and CD image access." -HOMEPAGE = "http://www.gnu.org/software/libcdio/" -SECTION = "libs" - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "ncurses" - -SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz" -SRC_URI[md5sum] = "1c29b18e01ab2b966162bc727bf3c360" -SRC_URI[sha256sum] = "1acb3de8e0927906ade7a34c5853173d3068b87b02dfba80d0bf11e47f0b5d39" - -inherit autotools pkgconfig - -EXTRA_OECONF = "ac_cv_member_struct_tm_tm_gmtoff=no --disable-rpath" -DEBUG_OPTIMIZATION_thumb = "-Os -fno-omit-frame-pointer -g" - -PACKAGES += "${PN}-utils" - -FILES_${PN} = "${libdir}/${PN}${SOLIB}" -FILES_${PN}-utils = "${bindir}/*" - -python populate_packages_prepend () { - glibdir = d.expand('${libdir}') - do_split_packages(d, glibdir, '^lib(.*)\.so\..*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True) -} - diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb b/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb new file mode 100644 index 00000000000..99e6a84bca9 --- /dev/null +++ b/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb @@ -0,0 +1,28 @@ +SUMMARY = "The GNU Compact Disc Input and Control library (libcdio) contains a library for CD-ROM and CD image access." +HOMEPAGE = "http://www.gnu.org/software/libcdio/" +SECTION = "libs" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz" +SRC_URI[md5sum] = "d154476feaac5a7b5f180e83eaf3d689" +SRC_URI[sha256sum] = "4972cd22fd8d0e8bff922d35c7a645be0db0ab0e7b3dfaecc9cd8272429d6975" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "cdda-player" +PACKAGECONFIG[cdda-player] = "--with-cdda-player,--without-cdda-player,ncurses" +PACKAGECONFIG[cddb] = "--enable-cddb,--disable-cddb,libcddb" +PACKAGECONFIG[vcd-info] = "--enable-vcd-info,--disable-vcd-info,vcdimager" + +PACKAGES += "${PN}-utils" + +FILES_${PN} = "${libdir}/${BPN}${SOLIB}" +FILES_${PN}-utils = "${bindir}/*" + +python libcdio_split_packages() { + libdir = d.expand('${libdir}') + do_split_packages(d, libdir, '^lib(.*)\.so\..*', 'lib%s', 'libcdio %s library', extra_depends='', allow_links=True) +} + +PACKAGESPLITFUNCS =+ "libcdio_split_packages" diff --git a/meta-oe/recipes-multimedia/libdvdread/libdvdread_4.2.0.bb b/meta-oe/recipes-multimedia/libdvdread/libdvdread_4.2.0.bb deleted file mode 100644 index 4895dd2e571..00000000000 --- a/meta-oe/recipes-multimedia/libdvdread/libdvdread_4.2.0.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "DVD access multimeda library" -SECTION = "libs/multimedia" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27" -SRC_URI = "http://dvdnav.mplayerhq.hu/releases/libdvdread-${PV}.tar.bz2" - -SRC_URI[md5sum] = "ab7a19d3ab1a437ae754ef477d6231a4" -SRC_URI[sha256sum] = "0bea15da842a4b04a482b009d72dcc6d9c9524ccc1bf67e5748319ec5ada8097" - -inherit autotools lib_package binconfig pkgconfig - -CONFIGUREOPTS_remove = "--disable-silent-rules" - -do_configure_prepend() { - # For some weird reason, libdvdread only provides a `configure2' script... - cp ${S}/configure2 ${S}/configure -} diff --git a/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb b/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb new file mode 100644 index 00000000000..05067259939 --- /dev/null +++ b/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb @@ -0,0 +1,13 @@ +SUMMARY = "DVD access multimeda library" +SECTION = "libs/multimedia" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27" +SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2" + +SRC_URI[md5sum] = "b7b7d2a782087ed2a913263087083715" +SRC_URI[sha256sum] = "321cdf2dbdc83c96572bc583cd27d8c660ddb540ff16672ecb28607d018ed82b" + +inherit autotools lib_package binconfig pkgconfig + +CONFIGUREOPTS_remove = "--disable-silent-rules" + diff --git a/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch b/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch new file mode 100644 index 00000000000..5bfce4d9082 --- /dev/null +++ b/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch @@ -0,0 +1,43 @@ +From 3d3fce9b8b927a817b89dd78a60b5cf7d978f64c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= +Date: Tue, 16 Sep 2014 12:28:47 +0300 +Subject: [PATCH 4/4] Remove clang unsupported compiler flags + +--- + configure.ac | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 4fcd48b..40302db 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -140,20 +140,20 @@ then + case "$optimize" in + -O|"-O "*) + optimize="-O" +- optimize="$optimize -fforce-addr" ++ : #optimize="$optimize -fforce-addr" + : #x optimize="$optimize -finline-functions" + : #- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -fthread-jumps" +- optimize="$optimize -fcse-follow-jumps" +- optimize="$optimize -fcse-skip-blocks" ++ : #optimize="$optimize -fthread-jumps" ++ : #optimize="$optimize -fcse-follow-jumps" ++ : #optimize="$optimize -fcse-skip-blocks" + : #x optimize="$optimize -frerun-cse-after-loop" + : #x optimize="$optimize -frerun-loop-opt" + : #x optimize="$optimize -fgcse" + optimize="$optimize -fexpensive-optimizations" +- optimize="$optimize -fregmove" ++ : #optimize="$optimize -fregmove" + : #* optimize="$optimize -fdelayed-branch" + : #x optimize="$optimize -fschedule-insns" +- optimize="$optimize -fschedule-insns2" ++ : #optimize="$optimize -fschedule-insns2" + : #? optimize="$optimize -ffunction-sections" + : #? optimize="$optimize -fcaller-saves" + : #> optimize="$optimize -funroll-loops" +-- +2.1.0 + diff --git a/meta-oe/recipes-multimedia/libmad/libmad/add-pkgconfig.patch b/meta-oe/recipes-multimedia/libmad/libmad/add-pkgconfig.patch new file mode 100644 index 00000000000..b49dc8c9836 --- /dev/null +++ b/meta-oe/recipes-multimedia/libmad/libmad/add-pkgconfig.patch @@ -0,0 +1,70 @@ +Here is a patch for adding pkg-config support to libmad. +It would make life a bit easier for distro maintainers if this was applied. +In case you didn't know, pkg-config is a tool for providing LDFLAGS and +CFLAGS for packages using shared libraries. It's on freedesktop.org. +Debian has already been distributing the pkg-config file mad.pc with +libmad for some time, and people developing on debian (notably xmms2 +developers) have started relying on this support being present, causing +some confusion for people installing from source and on some BSDs which +do not provide mad.pc (google: pkgconfig libmad). + +EMH + +Upstream-Status: Inappropriate [configuration] + +--h31gzZEtNLTqOjlF +Content-Type: text/plain; charset=us-ascii +Content-Disposition: attachment; filename="libmad-0.15.1b-pkgconfig.patch" + +diff -Naur libmad-0.15.1b.old/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b.old/configure.ac 2004-01-23 10:41:32.000000000 +0100 ++++ libmad-0.15.1b/configure.ac 2004-08-07 02:25:24.633462168 +0200 +@@ -429,5 +429,5 @@ + dnl AC_SUBST(LTLIBOBJS) + + AC_CONFIG_FILES([Makefile msvc++/Makefile \ +- libmad.list]) ++ libmad.list mad.pc]) + AC_OUTPUT +diff -Naur libmad-0.15.1b.old/mad.pc.in libmad-0.15.1b/mad.pc.in +--- libmad-0.15.1b.old/mad.pc.in 1970-01-01 01:00:00.000000000 +0100 ++++ libmad-0.15.1b/mad.pc.in 2004-08-07 02:04:59.617692872 +0200 +@@ -0,0 +1,14 @@ ++# libmad pkg-config source file ++ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: mad ++Description: MPEG Audio Decoder ++Version: @VERSION@ ++Requires: ++Conflicts: ++Libs: -L${libdir} -lmad -lm ++Cflags: -I${includedir} +diff -Naur libmad-0.15.1b.old/Makefile.am libmad-0.15.1b/Makefile.am +--- libmad-0.15.1b.old/Makefile.am 2004-02-17 03:02:03.000000000 +0100 ++++ libmad-0.15.1b/Makefile.am 2004-08-07 02:03:19.859858368 +0200 +@@ -24,6 +24,9 @@ + SUBDIRS = + DIST_SUBDIRS = msvc++ + ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = mad.pc ++ + lib_LTLIBRARIES = libmad.la + include_HEADERS = mad.h + +@@ -34,7 +37,8 @@ + minimad_LDADD = libmad.la + + EXTRA_DIST = mad.h.sed \ +- CHANGES COPYRIGHT CREDITS README TODO VERSION ++ CHANGES COPYRIGHT CREDITS README TODO VERSION \ ++ mad.pc.in + + exported_headers = version.h fixed.h bit.h timer.h stream.h frame.h \ + synth.h decoder.h + diff --git a/meta-oe/recipes-multimedia/libmad/libmad/automake-foreign.patch b/meta-oe/recipes-multimedia/libmad/libmad/automake-foreign.patch new file mode 100644 index 00000000000..3e544248d9a --- /dev/null +++ b/meta-oe/recipes-multimedia/libmad/libmad/automake-foreign.patch @@ -0,0 +1,12 @@ +Pass foreign to AM_INIT_AUTOMAKE so it doesn't enforce GNU strictness. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/configure.ac b/configure.ac +index e602fd3..e075b86 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -29 +29 @@ AC_CONFIG_SRCDIR([decoder.h]) +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) diff --git a/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch b/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch new file mode 100644 index 00000000000..01c7aa3c8ce --- /dev/null +++ b/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch @@ -0,0 +1,33 @@ +gcc 4.4 did this: The MIPS port no longer recognizes the h asm constraint. It was necessary to remove this constraint in order to avoid generating unpredictable code sequences. + +so the libmad build with gcc-4.5.0 was failing. + +Found a solution here: + +http://us.generation-nt.com/answer/bug-568418-libmad0-dev-mpg321-compilation-errors-mips-mipsel-architectures-help-169033451.html + +Upstream-Status: Pending + +2010/07/29 +Nitin A Kamble + +Index: libmad-0.15.1b/fixed.h +=================================================================== +--- libmad-0.15.1b.orig/fixed.h ++++ libmad-0.15.1b/fixed.h +@@ -297,6 +297,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t + + /* --- MIPS ---------------------------------------------------------------- */ + ++# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) ++ typedef unsigned int u64_di_t __attribute__ ((mode (DI))); ++# define MAD_F_MLX(hi, lo, x, y) \ ++ do { \ ++ u64_di_t __ll = (u64_di_t) (x) * (y); \ ++ hi = __ll >> 32; \ ++ lo = __ll; \ ++ } while (0) ++ + # elif defined(FPM_MIPS) + + /* diff --git a/meta-oe/recipes-multimedia/libmad/libmad/no-force-mem.patch b/meta-oe/recipes-multimedia/libmad/libmad/no-force-mem.patch new file mode 100644 index 00000000000..d5e6d206e2e --- /dev/null +++ b/meta-oe/recipes-multimedia/libmad/libmad/no-force-mem.patch @@ -0,0 +1,18 @@ +This option no longer exists in gcc 3.4.1 + +RP - 18/07/2008 + +Upstream-Status: Inappropriate [configuration] + +Index: libmad-0.15.1b/configure.ac +=================================================================== +--- libmad-0.15.1b.orig/configure.ac 2008-07-18 15:45:30.000000000 +0100 ++++ libmad-0.15.1b/configure.ac 2008-07-18 15:45:37.000000000 +0100 +@@ -140,7 +140,6 @@ + case "$optimize" in + -O|"-O "*) + optimize="-O" +- optimize="$optimize -fforce-mem" + optimize="$optimize -fforce-addr" + : #x optimize="$optimize -finline-functions" + : #- optimize="$optimize -fstrength-reduce" diff --git a/meta-oe/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch b/meta-oe/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch new file mode 100644 index 00000000000..cc87d299edd --- /dev/null +++ b/meta-oe/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch @@ -0,0 +1,14 @@ +Upstream-Status: Submitted [https://sourceforge.net/tracker/?group_id=12349&atid=112349] + +Signed-off-by: Marko Lindqvist +diff -Nurd libmad-0.15.1b/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b/configure.ac 2004-01-23 11:41:32.000000000 +0200 ++++ libmad-0.15.1b/configure.ac 2013-01-03 08:28:23.718693697 +0200 +@@ -28,7 +28,7 @@ + + AM_INIT_AUTOMAKE + +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + + dnl System type. diff --git a/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb b/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb new file mode 100644 index 00000000000..8d9246a5ce8 --- /dev/null +++ b/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb @@ -0,0 +1,37 @@ +SUMMARY = "MPEG Audio Decoder library" +HOMEPAGE = "http://sourceforge.net/projects/mad/" +BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349" +LICENSE = "GPLv2+" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYRIGHT;md5=8e55eb14894e782b84488d5a239bc23d \ + file://version.h;beginline=1;endline=8;md5=aa07311dd39288d4349f28e1de516454" +SECTION = "libs" +DEPENDS = "libid3tag" +PR = "r3" + +SRC_URI = "ftp://ftp.mars.org/pub/mpeg/libmad-${PV}.tar.gz \ + file://no-force-mem.patch \ + file://add-pkgconfig.patch \ + file://fix_for_mips_with_gcc-4.5.0.patch \ + file://obsolete_automake_macros.patch \ + file://automake-foreign.patch \ +" +SRC_URI_append_toolchain-clang = " file://0004-Remove-clang-unsupported-compiler-flags.patch " + +SRC_URI[md5sum] = "1be543bc30c56fb6bea1d7bf6a64e66c" +SRC_URI[sha256sum] = "bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690" + +S = "${WORKDIR}/libmad-${PV}" + +inherit autotools pkgconfig + +EXTRA_OECONF = "-enable-speed --enable-shared" +EXTRA_OECONF_append_arm = " --enable-fpm=arm" + +do_configure_prepend () { +# damn picky automake... + touch NEWS AUTHORS ChangeLog +} + +ARM_INSTRUCTION_SET = "arm" diff --git a/meta-oe/recipes-multimedia/libmms/libmms_0.6.2.bb b/meta-oe/recipes-multimedia/libmms/libmms_0.6.2.bb deleted file mode 100644 index 9e2d98b6552..00000000000 --- a/meta-oe/recipes-multimedia/libmms/libmms_0.6.2.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "MMS stream protocol library" -HOMEPAGE = "http://sourceforge.net/projects/libmms/" -SECTION = "libs/multimedia" - -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29" - -DEPENDS = "glib-2.0" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/libmms/libmms/${PV}/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "9f63aa363deb4874e072a45850161bff" -SRC_URI[sha256sum] = "01931b62172d7d7050fc9ef9b1b64162f3b6e9f6cc4415170192a32a0b7ea432" - -inherit autotools pkgconfig diff --git a/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb b/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb new file mode 100644 index 00000000000..831394e5c79 --- /dev/null +++ b/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb @@ -0,0 +1,12 @@ +SUMMARY = "MMS stream protocol library" +HOMEPAGE = "http://sourceforge.net/projects/libmms/" +SECTION = "libs/multimedia" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz" +SRC_URI[md5sum] = "d6b665b335a6360e000976e770da7691" +SRC_URI[sha256sum] = "3c05e05aebcbfcc044d9e8c2d4646cd8359be39a3f0ba8ce4e72a9094bee704f" + +inherit autotools pkgconfig diff --git a/meta-oe/recipes-multimedia/libopus/libopus-fpu.inc b/meta-oe/recipes-multimedia/libopus/libopus-fpu.inc deleted file mode 100644 index 8464664d860..00000000000 --- a/meta-oe/recipes-multimedia/libopus/libopus-fpu.inc +++ /dev/null @@ -1,6 +0,0 @@ - -def get_libopus_fpu_setting(bb, d): - if d.getVar('TARGET_FPU', True) in [ 'soft' ]: - return "--enable-fixed-point" - return "" - diff --git a/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb b/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb new file mode 100644 index 00000000000..a24f5e30b6f --- /dev/null +++ b/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb @@ -0,0 +1,52 @@ +SUMMARY = "Opus Audio Codec" +DESCRIPTION = "The Opus codec is designed for interactive \ +speech and audio transmission over the Internet. It is \ +designed by the IETF Codec Working Group and incorporates \ +technology from Skype's SILK codec and Xiph.Org's CELT codec." +HOMEPAGE = "http://www.opus-codec.org/" +SECTION = "libs/multimedia" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3" + +SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz" +SRC_URI[md5sum] = "32bbb6b557fe1b6066adc0ae1f08b629" +SRC_URI[sha256sum] = "58b6fe802e7e30182e95d0cde890c0ace40b6f125cffc50635f0ad2eef69b633" + +S = "${WORKDIR}/opus-${PV}" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[fixed-point] = "--enable-fixed-point,," +PACKAGECONFIG[float-approx] = "--enable-float-approx,," + +EXTRA_OECONF = " \ + --with-NE10-includes=${STAGING_DIR_TARGET}${includedir} \ + --with-NE10-libraries=${STAGING_DIR_TARGET}${libdir} \ + --enable-asm \ + --enable-intrinsics \ + --enable-custom-modes \ +" + +python () { + if d.getVar('TARGET_FPU') in [ 'soft' ]: + d.appendVar('PACKAGECONFIG', ' fixed-point') + + # Ne10 is only available for armv7 and aarch64 + if any((t.startswith('armv7') or t.startswith('aarch64')) for t in d.getVar('TUNE_FEATURES').split()): + d.appendVar('DEPENDS', ' ne10') +} + +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:389: Error: selected processor does not support Thumb mode `smull r5,r7,r1,r4' +#| {standard input}:418: Error: selected processor does not support Thumb mode `smull r5,r6,r4,r1' +#| {standard input}:448: Error: selected processor does not support Thumb mode `smull r4,r5,r1,r0' +#| {standard input}:474: Error: selected processor does not support Thumb mode `smull r0,r4,r8,r1' +#| {standard input}:510: Error: selected processor does not support Thumb mode `smull fp,r0,r10,r1' +#| {standard input}:553: Error: selected processor does not support Thumb mode `smull fp,r1,r10,r3' +#| {standard input}:741: Error: selected processor does not support Thumb mode `smull r3,r0,r6,r10' +#| {standard input}:761: Error: selected processor does not support Thumb mode `smull fp,r2,r3,r9' +#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8' +#| make[2]: *** [celt/celt.lo] Error 1 +ARM_INSTRUCTION_SET = "arm" diff --git a/meta-oe/recipes-multimedia/libopus/libopus_1.1.bb b/meta-oe/recipes-multimedia/libopus/libopus_1.1.bb deleted file mode 100644 index 15782a023c9..00000000000 --- a/meta-oe/recipes-multimedia/libopus/libopus_1.1.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Opus Audio Codec" -DESCRIPTION = "The Opus codec is designed for interactive \ -speech and audio transmission over the Internet. It is \ -designed by the IETF Codec Working Group and incorporates \ -technology from Skype's SILK codec and Xiph.Org's CELT codec." -HOMEPAGE = "http://www.opus-codec.org/" -SECTION = "libs/multimedia" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3" - -SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz" -SRC_URI[md5sum] = "c5a8cf7c0b066759542bc4ca46817ac6" -SRC_URI[sha256sum] = "b9727015a58affcf3db527322bf8c4d2fcf39f5f6b8f15dbceca20206cbe1d95" - -S = "${WORKDIR}/opus-${PV}" - -inherit autotools pkgconfig - -require libopus-fpu.inc -EXTRA_OECONF = "${@get_libopus_fpu_setting(bb, d)}" diff --git a/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb b/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb new file mode 100644 index 00000000000..1f9c794c732 --- /dev/null +++ b/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "Simple DirectMedia Layer image library v2" +SECTION = "libs" + +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=ec65b9778f5584a0bd8dfc17d6340ba0" + +DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp" + +SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz" +SRC_URI[md5sum] = "d94b94555ba022fa249a53a021dc3606" +SRC_URI[sha256sum] = "3a3eafbceea5125c04be585373bfd8b3a18f259bd7eae3efc4e6d8e60e0d7f64" + +S = "${WORKDIR}/SDL2_image-${PV}" + +inherit autotools pkgconfig + +# Disable the run-time loading of the libs and bring back the soname dependencies. +EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared" + +do_configure_prepend() { + # make autoreconf happy + touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog + # Removing these files fixes a libtool version mismatch. + rm -f ${S}/acinclude/libtool.m4 + rm -f ${S}/acinclude/sdl2.m4 + rm -f ${S}/acinclude/pkg.m4 + rm -f ${S}/acinclude/lt~obsolete.m4 + rm -f ${S}/acinclude/ltoptions.m4 + rm -f ${S}/acinclude/ltsugar.m4 + rm -f ${S}/acinclude/ltversion.m4 +} diff --git a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb b/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb index f1a01b9d5c7..c83fcc8daad 100644 --- a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb +++ b/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb @@ -13,7 +13,7 @@ SRC_URI[sha256sum] = "1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f S = "${WORKDIR}/SDL_mixer-${PV}" -inherit autotools-brokensep +inherit autotools-brokensep pkgconfig EXTRA_AUTORECONF += "--include=acinclude" EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}" @@ -37,4 +37,3 @@ do_configure () { sed -i -e 's:-L/usr/lib:-L${STAGING_LIBDIR}:g' $i done } - diff --git a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb b/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb new file mode 100644 index 00000000000..8276b446dcd --- /dev/null +++ b/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "Simple DirectMedia Layer mixer library V2" +SECTION = "libs" +DEPENDS = "virtual/libsdl2 flac libmikmod libvorbis" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=29d8bc7c38aa44b1cf3a633a46589917" + +SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz" + +SRC_URI[md5sum] = "c6c4f556d4415871f526248f5c9a627d" +SRC_URI[sha256sum] = "5a24f62a610249d744cbd8d28ee399d8905db7222bf3bdbc8a8b4a76e597695f" + +S = "${WORKDIR}/SDL2_mixer-${PV}" + +inherit autotools-brokensep pkgconfig + +EXTRA_AUTORECONF += "--include=acinclude" +EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}" + +PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad" + +do_configure_prepend () { + # Remove old libtool macros. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + for i in ${MACROS}; do + rm -f acinclude/$i + done +} diff --git a/meta-oe/recipes-multimedia/live555/live555.inc b/meta-oe/recipes-multimedia/live555/live555.inc index 0c8208a22c2..14ea6644226 100644 --- a/meta-oe/recipes-multimedia/live555/live555.inc +++ b/meta-oe/recipes-multimedia/live555/live555.inc @@ -7,9 +7,7 @@ HOMEPAGE = "http://live.com/" LICENSE = "LGPLv3" SECTION = "devel" -INC_PR = "r1" - -URLV = "${@d.getVar('PV',1)[0:4]}.${@d.getVar('PV',1)[4:6]}.${@d.getVar('PV',1)[6:8]}" +URLV = "${@d.getVar('PV')[0:4]}.${@d.getVar('PV')[4:6]}.${@d.getVar('PV')[6:8]}" SRC_URI = "http://www.live555.com/liveMedia/public/live.${URLV}.tar.gz \ file://config.linux-cross" # only latest live version stays on http://www.live555.com/liveMedia/public/, add mirror for older @@ -20,12 +18,12 @@ TARGET_CC_ARCH += "${LDFLAGS}" do_configure() { cp ${WORKDIR}/config.linux-cross . - echo "COMPILE_OPTS+=" -fPIC "" >> config.linux-cross + echo "COMPILE_OPTS+=" -fPIC -DXLOCALE_NOT_USED"" >> config.linux-cross ./genMakefiles linux-cross } do_compile() { - make + oe_runmake } do_install() { @@ -34,25 +32,25 @@ do_install() { install -d ${D}${includedir}/liveMedia install -d ${D}${includedir}/UsageEnvironment install -d ${D}${libdir} - cp -a ${S}/BasicUsageEnvironment/include/*.hh ${D}${includedir}/BasicUsageEnvironment/ - cp -a ${S}/groupsock/include/*.h ${D}${includedir}/groupsock/ - cp -a ${S}/groupsock/include/*.hh ${D}${includedir}/groupsock/ - cp -a ${S}/liveMedia/include/*.hh ${D}${includedir}/liveMedia/ - cp -a ${S}/UsageEnvironment/include/*.hh ${D}${includedir}/UsageEnvironment/ + cp -R --no-dereference --preserve=mode,links -v ${S}/BasicUsageEnvironment/include/*.hh ${D}${includedir}/BasicUsageEnvironment/ + cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.h ${D}${includedir}/groupsock/ + cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.hh ${D}${includedir}/groupsock/ + cp -R --no-dereference --preserve=mode,links -v ${S}/liveMedia/include/*.hh ${D}${includedir}/liveMedia/ + cp -R --no-dereference --preserve=mode,links -v ${S}/UsageEnvironment/include/*.hh ${D}${includedir}/UsageEnvironment/ # Find all the headers for i in $(find . -name "*.hh") $(find . -name "*.h") ; do install ${i} ${D}${includedir} done cp ${S}/*/*.a ${D}${libdir} install -d ${D}${bindir} - for i in MPEG2TransportStreamIndexer openRTSP playSIP sapWatch testMPEG1or2AudioVideoToDarwin testMPEG1or2ProgramToTransportStream testMPEG1or2Splitter testMPEG1or2VideoReceiver testMPEG2TransportStreamTrickPlay testMPEG4VideoToDarwin testOnDemandRTSPServer testRelay testAMRAudioStreamer testDVVideoStreamer testMP3Receiver testMP3Streamer testMPEG1or2AudioVideoStreamer testMPEG1or2VideoStreamer testMPEG2TransportStreamer testMPEG4VideoStreamer testWAVAudioStreamer vobStreamer; do + for i in MPEG2TransportStreamIndexer openRTSP playSIP sapWatch testMPEG1or2ProgramToTransportStream testMPEG1or2Splitter testMPEG1or2VideoReceiver testMPEG2TransportStreamTrickPlay testOnDemandRTSPServer testRelay testAMRAudioStreamer testDVVideoStreamer testMP3Receiver testMP3Streamer testMPEG1or2AudioVideoStreamer testMPEG1or2VideoStreamer testMPEG2TransportStreamer testMPEG4VideoStreamer testWAVAudioStreamer vobStreamer; do install -m 0755 ${S}/testProgs/${i} ${D}${bindir}/ done install -m 0755 ${S}/mediaServer/live555MediaServer ${D}${bindir}/ } PACKAGES =+ " live555-openrtsp live555-playsip live555-mediaserver" -FILES_${PN} = "${bindir}/sapWatch ${bindir}/testMPEG1or2AudioVideoToDarwin ${bindir}/testMPEG1or2ProgramToTransportStream ${bindir}/testMPEG1or2Splitter ${bindir}/testMPEG1or2VideoReceiver ${bindir}/testMPEG2TransportStreamTrickPlay ${bindir}/testMPEG4VideoToDarwin ${bindir}/testOnDemandRTSPServer ${bindir}/testRelay ${bindir}/testAMRAudioStreamer ${bindir}/testDVVideoStreamer ${bindir}/testMP3Receiver ${bindir}/testMP3Streamer ${bindir}/testMPEG1or2AudioVideoStreamer ${bindir}/testMPEG1or2VideoStreamer ${bindir}/testMPEG2TransportStreamer ${bindir}/testMPEG4VideoStreamer ${bindir}/testWAVAudioStreamer ${bindir}/vobStreamer ${bindir}/MPEG2TransportStreamIndexer" +FILES_${PN} = "${bindir}/sapWatch ${bindir}/testMPEG1or2ProgramToTransportStream ${bindir}/testMPEG1or2Splitter ${bindir}/testMPEG1or2VideoReceiver ${bindir}/testMPEG2TransportStreamTrickPlay ${bindir}/testOnDemandRTSPServer ${bindir}/testRelay ${bindir}/testAMRAudioStreamer ${bindir}/testDVVideoStreamer ${bindir}/testMP3Receiver ${bindir}/testMP3Streamer ${bindir}/testMPEG1or2AudioVideoStreamer ${bindir}/testMPEG1or2VideoStreamer ${bindir}/testMPEG2TransportStreamer ${bindir}/testMPEG4VideoStreamer ${bindir}/testWAVAudioStreamer ${bindir}/vobStreamer ${bindir}/MPEG2TransportStreamIndexer" FILES_live555-openrtsp = "${bindir}/openRTSP" FILES_live555-playsip = "${bindir}/playSIP" FILES_live555-mediaserver = "${bindir}/live555MediaServer" diff --git a/meta-oe/recipes-multimedia/live555/live555_20130430.bb b/meta-oe/recipes-multimedia/live555/live555_20130430.bb deleted file mode 100644 index f83285cff72..00000000000 --- a/meta-oe/recipes-multimedia/live555/live555_20130430.bb +++ /dev/null @@ -1,7 +0,0 @@ -require live555.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe" - -SRC_URI[md5sum] = "95533d91bd196e42fd748076dc244b09" -SRC_URI[sha256sum] = "e549af608c9961d85cb647bc3b99804fec0fbaf5338c1b72d057558ae5cd2aea" - diff --git a/meta-oe/recipes-multimedia/live555/live555_20170410.bb b/meta-oe/recipes-multimedia/live555/live555_20170410.bb new file mode 100644 index 00000000000..27fc429873d --- /dev/null +++ b/meta-oe/recipes-multimedia/live555/live555_20170410.bb @@ -0,0 +1,9 @@ +require live555.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + " + +SRC_URI[md5sum] = "b7084a72aeb09549c8b248f8cc308841" +SRC_URI[sha256sum] = "4c37d9c828f9028403997272e49968c260385dbbaef62e28ba24faef0dda868b" + diff --git a/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb b/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb index 2e1b9bf0573..d53dff6a07e 100644 --- a/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb +++ b/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb @@ -3,7 +3,7 @@ SECTION = "libs" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c" -DEPENDS = "alsa-lib texinfo pulseaudio" +DEPENDS = "alsa-lib texinfo" SRC_URI = "\ ${SOURCEFORGE_MIRROR}/project/mikmod/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ @@ -24,3 +24,5 @@ EXTRA_OECONF = "\ --enable-threads \ " +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}" +PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" diff --git a/meta-oe/recipes-multimedia/minidlna/minidlna.inc b/meta-oe/recipes-multimedia/minidlna/minidlna.inc deleted file mode 100644 index ebca7553ac2..00000000000 --- a/meta-oe/recipes-multimedia/minidlna/minidlna.inc +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \ -being fully compliant with DLNA/UPnP-AV clients." -LICENSE = "GPL-2.0|BSD" -DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis" - -# because it depends on libav which has commercial flag -LICENSE_FLAGS = "commercial" - -inherit gettext autotools-brokensep update-rc.d systemd - -SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \ - file://minidlna-daemon.init.d \ - file://minidlna.service " - -S = "${WORKDIR}/git" - -# This remove "--exclude=autopoint" option from autoreconf argument to avoid -# configure.ac:30: error: required file './ABOUT-NLS' not found -EXTRA_AUTORECONF = "" - -do_install_append(){ - install -d ${D}${sysconfdir} - install -m 0755 minidlna.conf ${D}${sysconfdir} - -# Systemd script - install -d ${D}${nonarch_base_libdir}/systemd/system - install -m 0755 ${WORKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system - -# Sysvinit script - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna - -} - -SYSTEMD_SERVICE_${PN} = "minidlna.service" - -INITSCRIPT_NAME = "minidlna" -INITSCRIPT_PARAMS = "defaults 90" - diff --git a/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.4.bb b/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.4.bb deleted file mode 100644 index 0531e69f570..00000000000 --- a/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.4.bb +++ /dev/null @@ -1,6 +0,0 @@ -require ${BPN}.inc - -SRCREV = "v1_1_4" -LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b" -SRC_URI[md5sum] = "d966256baf2f9b068b9de871ab5dade5" -SRC_URI[sha256sum] = "170560fbe042c2bbcba78c5f15b54f4fac321ff770490b23b55789be463f2851" diff --git a/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch b/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch deleted file mode 100644 index e232595cd98..00000000000 --- a/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3541649b711a773aa2e42ac80d9b4c1b36fce23f Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Thu, 27 Mar 2014 00:08:54 +0100 -Subject: [PATCH] configure: don't disable ASS support when explicitly enabled - -Signed-off-by: Martin Jansa ---- - configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure b/configure -index 60fd308..2f7df3b 100755 ---- a/configure -+++ b/configure -@@ -4346,7 +4346,7 @@ fi - - - echocheck "SSA/ASS support" --if test "$_ass" = auto ; then -+if test "$_ass" = auto -o "$_ass" = yes ; then - if pkg_config_add libass ; then - _ass=yes - def_ass='#define CONFIG_ASS 1' --- -1.9.1 - diff --git a/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb b/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb deleted file mode 100644 index 5b0e1de66ec..00000000000 --- a/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb +++ /dev/null @@ -1,154 +0,0 @@ -SUMMARY = "Open Source multimedia player" -SECTION = "multimedia" -HOMEPAGE = "http://www.mplayerhq.hu/" -DEPENDS = "libvpx libdvdread libtheora virtual/libsdl ffmpeg xsp zlib \ - libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses \ - libxv virtual/libx11 libass speex faad2 libxscrnsaver" - -RDEPENDS_${PN} = "mplayer-common" -PROVIDES = "mplayer" -RPROVIDES_${PN} = "mplayer" -RCONFLICTS_${PN} = "mplayer" - -# Depends on xsp, libxv, virtual/libx11, libxscrnsaver -REQUIRED_DISTRO_FEATURES = "x11" - -# because it depends on libpostproc/libav which has commercial flag -LICENSE_FLAGS = "${@base_contains('PACKAGECONFIG', 'postproc', 'commercial', '', d)}" - -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504" - -SRC_URI = "git://repo.or.cz/mplayer.git \ - file://0001-configure-don-t-disable-ASS-support-when-explicitly-.patch \ -" - -SRCREV = "2c378c71a4d9b1df382db9aa787b646628b4e3f9" - -ARM_INSTRUCTION_SET = "arm" - -PV = "2.0+gitr${SRCPV}" -PR = "r13" - -PARALLEL_MAKE = "" - -S = "${WORKDIR}/git" - -FILES_${PN} = "${bindir}/mplayer ${libdir} /usr/etc/mplayer/" -CONFFILES_${PN} += "/usr/etc/mplayer/input.conf \ - /usr/etc/mplayer/example.conf \ - /usr/etc/mplayer/codecs.conf \ -" - -inherit autotools-brokensep pkgconfig python3native - -EXTRA_OECONF = " \ - --prefix=/usr \ - --mandir=${mandir} \ - --target=${SIMPLE_TARGET_SYS} \ - \ - --disable-lirc \ - --disable-lircc \ - --disable-joystick \ - --disable-vm \ - --disable-xf86keysym \ - --enable-tv \ - --enable-tv-v4l2 \ - --disable-tv-bsdbt848 \ - --enable-rtc \ - --enable-networking \ - --disable-smb \ - --disable-dvdnav \ - --enable-dvdread \ - --disable-dvdread-internal \ - --disable-libdvdcss-internal \ - --disable-enca \ - --disable-ftp \ - --disable-vstream \ - \ - --disable-gif \ - --enable-png \ - --enable-jpeg \ - --disable-libcdio \ - --disable-qtx \ - --disable-xanim \ - --disable-real \ - --disable-xvid \ - \ - --enable-speex \ - --enable-theora \ - --disable-ladspa \ - --disable-libdv \ - --enable-mad \ - --disable-xmms \ - --disable-musepack \ - \ - --disable-gl \ - --enable-sdl \ - --disable-caca \ - --disable-directx \ - --disable-dvb \ - --enable-xv \ - --disable-vm \ - --disable-xinerama \ - --enable-x11 \ - --disable-directfb \ - --disable-tga \ - --disable-pnm \ - --disable-md5sum \ - \ - --enable-alsa \ - --enable-ossaudio \ - --disable-pulse \ - --disable-jack \ - --disable-openal \ - --enable-select \ - --enable-libass \ - \ - --extra-libs=' -lXext -lX11 -lvorbis -ltheoradec -lasound ' \ -" -# -ltheoradec is missing in: -# libmpcodecs/vd_theora.o: undefined reference to symbol 'theora_decode_init@@libtheora.so.1.0' - -EXTRA_OECONF_append_armv6 = " --enable-armv6" -EXTRA_OECONF_append_armv7a = " --enable-armv6 --enable-neon" - -PACKAGECONFIG ??= "vorbis postproc" -PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" -PACKAGECONFIG[a52] = "--enable-liba52,--disable-liba52,liba52" -PACKAGECONFIG[lame] = ",,lame" -PACKAGECONFIG[postproc] = ",--disable-libpostproc,libpostproc" -PACKAGECONFIG[vorbis] = ",--disable-libvorbis,libvorbis" -PACKAGECONFIG[portaudio] = ",--disable-portaudio,portaudio-v19" -PACKAGECONFIG[mpg123] = ",--disable-mpg123,mpg123" - -FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O4 -ffast-math" -BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" - -CFLAGS_append = " -I${S}/libdvdread4 " - -do_configure() { - sed -i 's|/usr/include|${STAGING_INCDIR}|g' ${S}/configure - sed -i 's|/usr/lib|${STAGING_LIBDIR}|g' ${S}/configure - sed -i 's|/usr/\S*include[\w/]*||g' ${S}/configure - sed -i 's|/usr/\S*lib[\w/]*||g' ${S}/configure - sed -i 's|_install_strip="-s"|_install_strip=""|g' ${S}/configure - sed -i 's|HOST_CC|BUILD_CC|' ${S}/Makefile - - export SIMPLE_TARGET_SYS="$(echo ${TARGET_SYS} | sed s:${TARGET_VENDOR}::g)" - ./configure ${EXTRA_OECONF} - -} - -do_compile () { - oe_runmake -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install-no-man - install -d ${D}/usr/etc/mplayer - install ${S}/etc/input.conf ${D}/usr/etc/mplayer/ - install ${S}/etc/example.conf ${D}/usr/etc/mplayer/ - install ${S}/etc/codecs.conf ${D}/usr/etc/mplayer/ - [ -e ${D}/usr/lib ] && rmdir ${D}/usr/lib -} diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb new file mode 100644 index 00000000000..44d92a0988f --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb @@ -0,0 +1,72 @@ +SUMMARY = "Open Source multimedia player" +DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more." +SECTION = "multimedia" +HOMEPAGE = "http://www.mpv.io/" +DEPENDS = "zlib ffmpeg jpeg virtual/libx11 xsp libxv \ + libxscrnsaver libv4l libxinerama \ +" + +REQUIRED_DISTRO_FEATURES = "x11" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb" + +# While this item does not require it, it depends on ffmpeg which does +LICENSE_FLAGS = "commercial" + +SRC_URI = " \ + https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz;name=mpv \ + http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;subdir=${BPN}-${PV} \ +" +SRC_URI[mpv.md5sum] = "038d0b660de07ff645ad6a741704ecab" +SRC_URI[mpv.sha256sum] = "daf3ef358d5f260f2269f7caabce27f446c291457ec330077152127133b71b46" +SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71" +SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b" + +inherit waf pkgconfig pythonnative distro_features_check + +# Note: both lua and libass are required to get on-screen-display (controls) +PACKAGECONFIG ??= " \ + lua \ + libass \ + ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \ +" +PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm" +PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/mesa" +PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit" +PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass" +PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive" +PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack" +PACKAGECONFIG[vaapi] = "--enable-vaapi, --disable-vaapi,libva" +PACKAGECONFIG[vdpau] = "--enable-vdpau, --disable-vdpau,libvdpau" +PACKAGECONFIG[wayland] = "--enable-wayland, --disable-wayland,wayland libxkbcommon" + +SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}" + +EXTRA_OECONF = " \ + --prefix=${prefix} \ + --target=${SIMPLE_TARGET_SYS} \ + --confdir=${sysconfdir} \ + --datadir=${datadir} \ + --disable-manpage-build \ + --disable-gl \ + --disable-libsmbclient \ + --disable-encoding \ + --disable-libbluray \ + --disable-dvdread \ + --disable-dvdnav \ + --disable-cdda \ + --disable-uchardet \ + --disable-rubberband \ + --disable-lcms2 \ + --disable-vapoursynth \ + --disable-vapoursynth-lazy \ + ${PACKAGECONFIG_CONFARGS} \ +" + +do_configure_prepend () { + ln -sf waf-1.8.12 ${S}/waf + chmod +x ${S}/waf +} + +FILES_${PN} += "${datadir}/icons" diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch new file mode 100644 index 00000000000..b59569f2c87 --- /dev/null +++ b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch @@ -0,0 +1,27 @@ +From 1f92aa5c8d910519e3a74b2e3a9199aa9026a16c Mon Sep 17 00:00:00 2001 +From: Arun Raghavan +Date: Mon, 25 Jan 2016 08:41:42 +0530 +Subject: [PATCH 1/2] build-sys: Use C++11 for building + +This requirement was added by gtkmm at some point: + +http://www.murrayc.com/permalink/2015/07/31/gtkmm-now-uses-c11/ +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 5b50e2d..8f28782 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -39,6 +39,7 @@ AC_PROG_CC + AC_PROG_LN_S + AC_TYPE_SIGNAL + AC_HEADER_STDC ++AX_CXX_COMPILE_STDCXX_11 + + AC_ARG_ENABLE(gtk3, + [AS_HELP_STRING([--disable-gtk3], +-- +2.12.1 + diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch new file mode 100644 index 00000000000..97ec37d4c98 --- /dev/null +++ b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch @@ -0,0 +1,624 @@ +From ccb3eb7b4ff65414a56e2294080885b8966da52b Mon Sep 17 00:00:00 2001 +From: Arun Raghavan +Date: Tue, 2 Feb 2016 17:01:47 +0530 +Subject: [PATCH 2/2] build-sys: Add m4 file for AX_CXX_COMPILE_STDCXX_11 + +--- + m4/ax_cxx_compile_stdcxx.m4 | 558 +++++++++++++++++++++++++++++++++++++++++ + m4/ax_cxx_compile_stdcxx_11.m4 | 39 +++ + 2 files changed, 597 insertions(+) + create mode 100644 m4/ax_cxx_compile_stdcxx.m4 + create mode 100644 m4/ax_cxx_compile_stdcxx_11.m4 + +diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 +new file mode 100644 +index 0000000..079e17d +--- /dev/null ++++ b/m4/ax_cxx_compile_stdcxx.m4 +@@ -0,0 +1,558 @@ ++# =========================================================================== ++# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) ++# ++# DESCRIPTION ++# ++# Check for baseline language coverage in the compiler for the specified ++# version of the C++ standard. If necessary, add switches to CXXFLAGS to ++# enable support. VERSION may be '11' (for the C++11 standard) or '14' ++# (for the C++14 standard). ++# ++# The second argument, if specified, indicates whether you insist on an ++# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. ++# -std=c++11). If neither is specified, you get whatever works, with ++# preference for an extended mode. ++# ++# The third argument, if specified 'mandatory' or if left unspecified, ++# indicates that baseline support for the specified C++ standard is ++# required and that the macro should error out if no mode with that ++# support is found. If specified 'optional', then configuration proceeds ++# regardless, after defining HAVE_CXX${VERSION} if and only if a ++# supporting mode is found. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Benjamin Kosnik ++# Copyright (c) 2012 Zack Weinberg ++# Copyright (c) 2013 Roy Stogner ++# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov ++# Copyright (c) 2015 Paul Norman ++# Copyright (c) 2015 Moritz Klammler ++# ++# Copying and distribution of this file, with or without modification, are ++# permitted in any medium without royalty provided the copyright notice ++# and this notice are preserved. This file is offered as-is, without any ++# warranty. ++ ++#serial 1 ++ ++dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro ++dnl (serial version number 13). ++ ++AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl ++ m4_if([$1], [11], [], ++ [$1], [14], [], ++ [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])], ++ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl ++ m4_if([$2], [], [], ++ [$2], [ext], [], ++ [$2], [noext], [], ++ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl ++ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], ++ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], ++ [$3], [optional], [ax_cxx_compile_cxx$1_required=false], ++ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) ++ AC_LANG_PUSH([C++])dnl ++ ac_success=no ++ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, ++ ax_cv_cxx_compile_cxx$1, ++ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], ++ [ax_cv_cxx_compile_cxx$1=yes], ++ [ax_cv_cxx_compile_cxx$1=no])]) ++ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then ++ ac_success=yes ++ fi ++ ++ m4_if([$2], [noext], [], [dnl ++ if test x$ac_success = xno; then ++ for switch in -std=gnu++$1 -std=gnu++0x; do ++ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) ++ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, ++ $cachevar, ++ [ac_save_CXXFLAGS="$CXXFLAGS" ++ CXXFLAGS="$CXXFLAGS $switch" ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], ++ [eval $cachevar=yes], ++ [eval $cachevar=no]) ++ CXXFLAGS="$ac_save_CXXFLAGS"]) ++ if eval test x\$$cachevar = xyes; then ++ CXXFLAGS="$CXXFLAGS $switch" ++ ac_success=yes ++ break ++ fi ++ done ++ fi]) ++ ++ m4_if([$2], [ext], [], [dnl ++ if test x$ac_success = xno; then ++ dnl HP's aCC needs +std=c++11 according to: ++ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf ++ dnl Cray's crayCC needs "-h std=c++11" ++ for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do ++ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) ++ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, ++ $cachevar, ++ [ac_save_CXXFLAGS="$CXXFLAGS" ++ CXXFLAGS="$CXXFLAGS $switch" ++ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], ++ [eval $cachevar=yes], ++ [eval $cachevar=no]) ++ CXXFLAGS="$ac_save_CXXFLAGS"]) ++ if eval test x\$$cachevar = xyes; then ++ CXXFLAGS="$CXXFLAGS $switch" ++ ac_success=yes ++ break ++ fi ++ done ++ fi]) ++ AC_LANG_POP([C++]) ++ if test x$ax_cxx_compile_cxx$1_required = xtrue; then ++ if test x$ac_success = xno; then ++ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) ++ fi ++ else ++ if test x$ac_success = xno; then ++ HAVE_CXX$1=0 ++ AC_MSG_NOTICE([No compiler with C++$1 support was found]) ++ else ++ HAVE_CXX$1=1 ++ AC_DEFINE(HAVE_CXX$1,1, ++ [define if the compiler supports basic C++$1 syntax]) ++ fi ++ ++ AC_SUBST(HAVE_CXX$1) ++ fi ++]) ++ ++ ++dnl Test body for checking C++11 support ++ ++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], ++ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 ++) ++ ++ ++dnl Test body for checking C++14 support ++ ++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], ++ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 ++ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 ++) ++ ++ ++dnl Tests for new features in C++11 ++ ++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ ++ ++// If the compiler admits that it is not ready for C++11, why torture it? ++// Hopefully, this will speed up the test. ++ ++#ifndef __cplusplus ++ ++#error "This is not a C++ compiler" ++ ++#elif __cplusplus < 201103L ++ ++#error "This is not a C++11 compiler" ++ ++#else ++ ++namespace cxx11 ++{ ++ ++ namespace test_static_assert ++ { ++ ++ template ++ struct check ++ { ++ static_assert(sizeof(int) <= sizeof(T), "not big enough"); ++ }; ++ ++ } ++ ++ namespace test_final_override ++ { ++ ++ struct Base ++ { ++ virtual void f() {} ++ }; ++ ++ struct Derived : public Base ++ { ++ virtual void f() override {} ++ }; ++ ++ } ++ ++ namespace test_double_right_angle_brackets ++ { ++ ++ template < typename T > ++ struct check {}; ++ ++ typedef check single_type; ++ typedef check> double_type; ++ typedef check>> triple_type; ++ typedef check>>> quadruple_type; ++ ++ } ++ ++ namespace test_decltype ++ { ++ ++ int ++ f() ++ { ++ int a = 1; ++ decltype(a) b = 2; ++ return a + b; ++ } ++ ++ } ++ ++ namespace test_type_deduction ++ { ++ ++ template < typename T1, typename T2 > ++ struct is_same ++ { ++ static const bool value = false; ++ }; ++ ++ template < typename T > ++ struct is_same ++ { ++ static const bool value = true; ++ }; ++ ++ template < typename T1, typename T2 > ++ auto ++ add(T1 a1, T2 a2) -> decltype(a1 + a2) ++ { ++ return a1 + a2; ++ } ++ ++ int ++ test(const int c, volatile int v) ++ { ++ static_assert(is_same::value == true, ""); ++ static_assert(is_same::value == false, ""); ++ static_assert(is_same::value == false, ""); ++ auto ac = c; ++ auto av = v; ++ auto sumi = ac + av + 'x'; ++ auto sumf = ac + av + 1.0; ++ static_assert(is_same::value == true, ""); ++ static_assert(is_same::value == true, ""); ++ static_assert(is_same::value == true, ""); ++ static_assert(is_same::value == false, ""); ++ static_assert(is_same::value == true, ""); ++ return (sumf > 0.0) ? sumi : add(c, v); ++ } ++ ++ } ++ ++ namespace test_noexcept ++ { ++ ++ int f() { return 0; } ++ int g() noexcept { return 0; } ++ ++ static_assert(noexcept(f()) == false, ""); ++ static_assert(noexcept(g()) == true, ""); ++ ++ } ++ ++ namespace test_constexpr ++ { ++ ++ template < typename CharT > ++ unsigned long constexpr ++ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept ++ { ++ return *s ? strlen_c_r(s + 1, acc + 1) : acc; ++ } ++ ++ template < typename CharT > ++ unsigned long constexpr ++ strlen_c(const CharT *const s) noexcept ++ { ++ return strlen_c_r(s, 0UL); ++ } ++ ++ static_assert(strlen_c("") == 0UL, ""); ++ static_assert(strlen_c("1") == 1UL, ""); ++ static_assert(strlen_c("example") == 7UL, ""); ++ static_assert(strlen_c("another\0example") == 7UL, ""); ++ ++ } ++ ++ namespace test_rvalue_references ++ { ++ ++ template < int N > ++ struct answer ++ { ++ static constexpr int value = N; ++ }; ++ ++ answer<1> f(int&) { return answer<1>(); } ++ answer<2> f(const int&) { return answer<2>(); } ++ answer<3> f(int&&) { return answer<3>(); } ++ ++ void ++ test() ++ { ++ int i = 0; ++ const int c = 0; ++ static_assert(decltype(f(i))::value == 1, ""); ++ static_assert(decltype(f(c))::value == 2, ""); ++ static_assert(decltype(f(0))::value == 3, ""); ++ } ++ ++ } ++ ++ namespace test_uniform_initialization ++ { ++ ++ struct test ++ { ++ static const int zero {}; ++ static const int one {1}; ++ }; ++ ++ static_assert(test::zero == 0, ""); ++ static_assert(test::one == 1, ""); ++ ++ } ++ ++ namespace test_lambdas ++ { ++ ++ void ++ test1() ++ { ++ auto lambda1 = [](){}; ++ auto lambda2 = lambda1; ++ lambda1(); ++ lambda2(); ++ } ++ ++ int ++ test2() ++ { ++ auto a = [](int i, int j){ return i + j; }(1, 2); ++ auto b = []() -> int { return '0'; }(); ++ auto c = [=](){ return a + b; }(); ++ auto d = [&](){ return c; }(); ++ auto e = [a, &b](int x) mutable { ++ const auto identity = [](int y){ return y; }; ++ for (auto i = 0; i < a; ++i) ++ a += b--; ++ return x + identity(a + b); ++ }(0); ++ return a + b + c + d + e; ++ } ++ ++ int ++ test3() ++ { ++ const auto nullary = [](){ return 0; }; ++ const auto unary = [](int x){ return x; }; ++ using nullary_t = decltype(nullary); ++ using unary_t = decltype(unary); ++ const auto higher1st = [](nullary_t f){ return f(); }; ++ const auto higher2nd = [unary](nullary_t f1){ ++ return [unary, f1](unary_t f2){ return f2(unary(f1())); }; ++ }; ++ return higher1st(nullary) + higher2nd(nullary)(unary); ++ } ++ ++ } ++ ++ namespace test_variadic_templates ++ { ++ ++ template ++ struct sum; ++ ++ template ++ struct sum ++ { ++ static constexpr auto value = N0 + sum::value; ++ }; ++ ++ template <> ++ struct sum<> ++ { ++ static constexpr auto value = 0; ++ }; ++ ++ static_assert(sum<>::value == 0, ""); ++ static_assert(sum<1>::value == 1, ""); ++ static_assert(sum<23>::value == 23, ""); ++ static_assert(sum<1, 2>::value == 3, ""); ++ static_assert(sum<5, 5, 11>::value == 21, ""); ++ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); ++ ++ } ++ ++ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae ++ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function ++ // because of this. ++ namespace test_template_alias_sfinae ++ { ++ ++ struct foo {}; ++ ++ template ++ using member = typename T::member_type; ++ ++ template ++ void func(...) {} ++ ++ template ++ void func(member*) {} ++ ++ void test(); ++ ++ void test() { func(0); } ++ ++ } ++ ++} // namespace cxx11 ++ ++#endif // __cplusplus >= 201103L ++ ++]]) ++ ++ ++dnl Tests for new features in C++14 ++ ++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ ++ ++// If the compiler admits that it is not ready for C++14, why torture it? ++// Hopefully, this will speed up the test. ++ ++#ifndef __cplusplus ++ ++#error "This is not a C++ compiler" ++ ++#elif __cplusplus < 201402L ++ ++#error "This is not a C++14 compiler" ++ ++#else ++ ++namespace cxx14 ++{ ++ ++ namespace test_polymorphic_lambdas ++ { ++ ++ int ++ test() ++ { ++ const auto lambda = [](auto&&... args){ ++ const auto istiny = [](auto x){ ++ return (sizeof(x) == 1UL) ? 1 : 0; ++ }; ++ const int aretiny[] = { istiny(args)... }; ++ return aretiny[0]; ++ }; ++ return lambda(1, 1L, 1.0f, '1'); ++ } ++ ++ } ++ ++ namespace test_binary_literals ++ { ++ ++ constexpr auto ivii = 0b0000000000101010; ++ static_assert(ivii == 42, "wrong value"); ++ ++ } ++ ++ namespace test_generalized_constexpr ++ { ++ ++ template < typename CharT > ++ constexpr unsigned long ++ strlen_c(const CharT *const s) noexcept ++ { ++ auto length = 0UL; ++ for (auto p = s; *p; ++p) ++ ++length; ++ return length; ++ } ++ ++ static_assert(strlen_c("") == 0UL, ""); ++ static_assert(strlen_c("x") == 1UL, ""); ++ static_assert(strlen_c("test") == 4UL, ""); ++ static_assert(strlen_c("another\0test") == 7UL, ""); ++ ++ } ++ ++ namespace test_lambda_init_capture ++ { ++ ++ int ++ test() ++ { ++ auto x = 0; ++ const auto lambda1 = [a = x](int b){ return a + b; }; ++ const auto lambda2 = [a = lambda1(x)](){ return a; }; ++ return lambda2(); ++ } ++ ++ } ++ ++ namespace test_digit_seperators ++ { ++ ++ constexpr auto ten_million = 100'000'000; ++ static_assert(ten_million == 100000000, ""); ++ ++ } ++ ++ namespace test_return_type_deduction ++ { ++ ++ auto f(int& x) { return x; } ++ decltype(auto) g(int& x) { return x; } ++ ++ template < typename T1, typename T2 > ++ struct is_same ++ { ++ static constexpr auto value = false; ++ }; ++ ++ template < typename T > ++ struct is_same ++ { ++ static constexpr auto value = true; ++ }; ++ ++ int ++ test() ++ { ++ auto x = 0; ++ static_assert(is_same::value, ""); ++ static_assert(is_same::value, ""); ++ return x; ++ } ++ ++ } ++ ++} // namespace cxx14 ++ ++#endif // __cplusplus >= 201402L ++ ++]]) +diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4 +new file mode 100644 +index 0000000..09db383 +--- /dev/null ++++ b/m4/ax_cxx_compile_stdcxx_11.m4 +@@ -0,0 +1,39 @@ ++# ============================================================================ ++# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html ++# ============================================================================ ++# ++# SYNOPSIS ++# ++# AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional]) ++# ++# DESCRIPTION ++# ++# Check for baseline language coverage in the compiler for the C++11 ++# standard; if necessary, add switches to CXXFLAGS to enable support. ++# ++# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX ++# macro with the version set to C++11. The two optional arguments are ++# forwarded literally as the second and third argument respectively. ++# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for ++# more information. If you want to use this macro, you also need to ++# download the ax_cxx_compile_stdcxx.m4 file. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Benjamin Kosnik ++# Copyright (c) 2012 Zack Weinberg ++# Copyright (c) 2013 Roy Stogner ++# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov ++# Copyright (c) 2015 Paul Norman ++# Copyright (c) 2015 Moritz Klammler ++# ++# Copying and distribution of this file, with or without modification, are ++# permitted in any medium without royalty provided the copyright notice ++# and this notice are preserved. This file is offered as-is, without any ++# warranty. ++ ++#serial 14 ++ ++include([ax_cxx_compile_stdcxx.m4]) ++ ++AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])]) +-- +2.12.1 + diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_1.0.bb b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_1.0.bb deleted file mode 100644 index b648351ca5e..00000000000 --- a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_1.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" - -DEPENDS = "intltool gtkmm libcanberra pulseaudio" - -inherit gnome - -SRC_URI = "http://freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz" -SRC_URI[md5sum] = "0ab6b13542af9b4417438527d2524316" -SRC_URI[sha256sum] = "3dbe2865b6e3a195a8951967d9234f62cd254c30b08bdea1ecf8997b58f68cde" - -EXTRA_OECONF = " --disable-gtk3 --disable-lynx " diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb new file mode 100644 index 00000000000..959068dd35b --- /dev/null +++ b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "intltool-native gtkmm libcanberra pulseaudio" + +inherit gnome distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "http://freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz \ + file://0001-build-sys-Use-C-11-for-building.patch \ + file://0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch \ + " +SRC_URI[md5sum] = "176308d2c03f8f3a7b2bd4f4d284fe71" +SRC_URI[sha256sum] = "b3d2ea5a25fc88dcee80c396014f72df1b4742f8cfbbc5349c39d64a0d338890" + +EXTRA_OECONF = " --disable-gtk3 --disable-lynx " + +RDEPENDS_${PN} += "pulseaudio-server" diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch index 4b3de3ccbcf..74130949f67 100644 --- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch @@ -1,4 +1,4 @@ -From 4ee15a8a69b84526ece1180a288a37db077bcd9b Mon Sep 17 00:00:00 2001 +From 2d6bfa75b2e16b4d764f1bf00bb902fb4b5e507b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 27 Feb 2015 21:55:36 +0000 Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and @@ -11,23 +11,27 @@ Signed-off-by: Khem Raj Conflicts: utils/media-ctl/Makefile.am --- - utils/media-ctl/Makefile.am | 11 +++-------- - 1 file changed, 3 insertions(+), 8 deletions(-) + utils/media-ctl/Makefile.am | 10 +++------- + 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am -index a3931fb..fe1fea5 100644 +index ee7dcc9..d11fa2e 100644 --- a/utils/media-ctl/Makefile.am +++ b/utils/media-ctl/Makefile.am -@@ -1,14 +1,9 @@ +@@ -1,8 +1,7 @@ -noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la - +lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h -libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS) -libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS) -- +libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS) +libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS) + + media-bus-format-names.h: ../../include/linux/media-bus-format.h + sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \ +@@ -18,9 +17,6 @@ CLEANFILES = $(BUILT_SOURCES) + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) libv4l2subdev_la_SOURCES = libv4l2subdev.c libv4l2subdev_la_LIBADD = libmediactl.la -libv4l2subdev_la_CFLAGS = -static @@ -37,5 +41,5 @@ index a3931fb..fe1fea5 100644 noinst_HEADERS = mediactl.h v4l2subdev.h -- -2.1.4 +2.9.3 diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch new file mode 100644 index 00000000000..54161f90fcc --- /dev/null +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch @@ -0,0 +1,110 @@ +From 806822f5acb756d5acda0f9063c84b28b38b3ffb Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Mon, 3 Apr 2017 13:23:38 +0300 +Subject: [PATCH v4l-utils] buildsystem: do not assume building in source tree. + +Use $(top_srcdir) as reference for include paths and buildtime scripts. +Otherwise compilation outside of project root directory will fail +because header and script paths are wrong. + +To reproduce: mkdir b; cd b; ../configure; make + +Upstream-status: Accepted [https://git.linuxtv.org//v4l-utils.git/commit/?id=bd98c9a99bffc8d44c54859345e4dfee0ada4275] + +Signed-off-by: Ismo Puustinen +--- + utils/cec-compliance/Makefile.am | 2 +- + utils/cec-ctl/Makefile.am | 2 +- + utils/cec-follower/Makefile.am | 4 ++-- + utils/qv4l2/Makefile.am | 2 +- + utils/v4l2-compliance/Makefile.am | 2 +- + utils/v4l2-ctl/Makefile.am | 2 +- + 6 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/utils/cec-compliance/Makefile.am b/utils/cec-compliance/Makefile.am +index ec5de51..8331aa0 100644 +--- a/utils/cec-compliance/Makefile.am ++++ b/utils/cec-compliance/Makefile.am +@@ -7,7 +7,7 @@ cec_compliance_LDFLAGS = -lrt + cec-compliance.cpp: cec-table.h + + cec-table.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h +- ../cec-ctl/msg2ctl.pl 2 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@ ++ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@ + + cec-compliance.cpp: version.h + +diff --git a/utils/cec-ctl/Makefile.am b/utils/cec-ctl/Makefile.am +index 0a7ef22..6afb6c9 100644 +--- a/utils/cec-ctl/Makefile.am ++++ b/utils/cec-ctl/Makefile.am +@@ -7,7 +7,7 @@ cec_ctl_LDFLAGS = -lrt + cec-ctl.cpp: cec-ctl-gen.h + + cec-ctl-gen.h: msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h +- ./msg2ctl.pl 0 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@ ++ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 0 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@ + + clean-local: + -rm -vf cec-ctl-gen.h +diff --git a/utils/cec-follower/Makefile.am b/utils/cec-follower/Makefile.am +index 538edb2..fdbf3d9 100644 +--- a/utils/cec-follower/Makefile.am ++++ b/utils/cec-follower/Makefile.am +@@ -7,12 +7,12 @@ cec_follower_LDFLAGS = -lrt + cec-log.cpp: cec-log.h + + cec-log.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h +- ../cec-ctl/msg2ctl.pl 1 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@ ++ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 1 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@ + + cec-follower.cpp: cec-table.h version.h + + cec-table.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h +- ../cec-ctl/msg2ctl.pl 2 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@ ++ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@ + + version.h: + @if git rev-parse HEAD >/dev/null 2>&1; then \ +diff --git a/utils/qv4l2/Makefile.am b/utils/qv4l2/Makefile.am +index fd58486..ccd1a2a 100644 +--- a/utils/qv4l2/Makefile.am ++++ b/utils/qv4l2/Makefile.am +@@ -8,7 +8,7 @@ qv4l2_SOURCES = qv4l2.cpp general-tab.cpp ctrl-tab.cpp vbi-tab.cpp capture-win.c + nodist_qv4l2_SOURCES = moc_qv4l2.cpp moc_general-tab.cpp moc_capture-win.cpp moc_vbi-tab.cpp qrc_qv4l2.cpp + qv4l2_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la \ + ../libv4l2util/libv4l2util.la ../libmedia_dev/libmedia_dev.la +-qv4l2_CPPFLAGS = -I../common ++qv4l2_CPPFLAGS = -I$(top_srcdir)/utils/common + + if WITH_QTGL + qv4l2_CPPFLAGS += $(QTGL_CFLAGS) +diff --git a/utils/v4l2-compliance/Makefile.am b/utils/v4l2-compliance/Makefile.am +index 03db8df..18b9892 100644 +--- a/utils/v4l2-compliance/Makefile.am ++++ b/utils/v4l2-compliance/Makefile.am +@@ -5,7 +5,7 @@ DEFS := + v4l2_compliance_SOURCES = v4l2-compliance.cpp v4l2-test-debug.cpp v4l2-test-input-output.cpp \ + v4l2-test-controls.cpp v4l2-test-io-config.cpp v4l2-test-formats.cpp v4l2-test-buffers.cpp \ + v4l2-test-codecs.cpp v4l2-test-colors.cpp v4l2-compliance.h +-v4l2_compliance_CPPFLAGS = -I../common ++v4l2_compliance_CPPFLAGS = -I$(top_srcdir)/utils/common + + if WITH_V4L2_COMPLIANCE_LIBV4L + v4l2_compliance_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread +diff --git a/utils/v4l2-ctl/Makefile.am b/utils/v4l2-ctl/Makefile.am +index 955647d..825e53f 100644 +--- a/utils/v4l2-ctl/Makefile.am ++++ b/utils/v4l2-ctl/Makefile.am +@@ -7,7 +7,7 @@ v4l2_ctl_SOURCES = v4l2-ctl.cpp v4l2-ctl.h v4l2-ctl-common.cpp v4l2-ctl-tuner.cp + v4l2-ctl-overlay.cpp v4l2-ctl-vbi.cpp v4l2-ctl-selection.cpp v4l2-ctl-misc.cpp \ + v4l2-ctl-streaming.cpp v4l2-ctl-sdr.cpp v4l2-ctl-edid.cpp v4l2-ctl-modes.cpp \ + v4l2-tpg-colors.c v4l2-tpg-core.c v4l-stream.c +-v4l2_ctl_CPPFLAGS = -I../common ++v4l2_ctl_CPPFLAGS = -I$(top_srcdir)/utils/common + + if WITH_V4L2_CTL_LIBV4L + v4l2_ctl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread +-- +2.9.3 + diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch new file mode 100644 index 00000000000..f1e11da3fdb --- /dev/null +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch @@ -0,0 +1,55 @@ +From e60aea50e41ae8a17672beb5859beecb66e7a305 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 13:11:25 -0700 +Subject: [PATCH 1/3] ir-ctl: Define TEMP_FAILURE_RETRY if undefined + +use strndup() instead of strndupa() which is not +universally available in C libraries + +Taken from AlpineLinux + +Signed-off-by: Khem Raj +--- + utils/ir-ctl/ir-ctl.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c +index bc58cee..1a44011 100644 +--- a/utils/ir-ctl/ir-ctl.c ++++ b/utils/ir-ctl/ir-ctl.c +@@ -42,6 +42,16 @@ + # define _(string) string + #endif + ++/* taken from glibc unistd.h */ ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++ + # define N_(string) string + + +@@ -344,12 +354,14 @@ static struct file *read_scancode(const char *name) + return NULL; + } + +- pstr = strndupa(name, p - name); ++ pstr = strndup(name, p - name); + + if (!protocol_match(pstr, &proto)) { + fprintf(stderr, _("error: protocol '%s' not found\n"), pstr); ++ free(pstr); + return NULL; + } ++ free(pstr); + + if (!strtoscancode(p + 1, &scancode)) { + fprintf(stderr, _("error: invalid scancode '%s'\n"), p + 1); +-- +2.13.3 + diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch new file mode 100644 index 00000000000..2fb4057ec08 --- /dev/null +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch @@ -0,0 +1,28 @@ +From b3acc4c6407f9553f32582a9aee6a11b5fcd1d8a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 13:17:19 -0700 +Subject: [PATCH 2/3] contrib/test: Link mc_nextgen_test with libargp if needed + +musl depends on external argp implementation e.g. + +Signed-off-by: Khem Raj +--- + contrib/test/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/contrib/test/Makefile.am b/contrib/test/Makefile.am +index 4641e21..e47b948 100644 +--- a/contrib/test/Makefile.am ++++ b/contrib/test/Makefile.am +@@ -32,7 +32,7 @@ v4l2gl_LDFLAGS = $(X11_LIBS) $(GL_LIBS) $(GLU_LIBS) $(ARGP_LIBS) + v4l2gl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la + + mc_nextgen_test_CFLAGS = $(LIBUDEV_CFLAGS) +-mc_nextgen_test_LDFLAGS = $(LIBUDEV_LIBS) ++mc_nextgen_test_LDFLAGS = $(ARGP_LIBS) $(LIBUDEV_LIBS) + + + ioctl_test_SOURCES = ioctl-test.c ioctl-test.h ioctl_32.h ioctl_64.h +-- +2.13.3 + diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch new file mode 100644 index 00000000000..0a986ae5d85 --- /dev/null +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch @@ -0,0 +1,49 @@ +From d04aa6866cbea57c4a81b033cd60586a9436ac6b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 13:20:05 -0700 +Subject: [PATCH 3/3] v4l2-ctl: Do not use getsubopt + +POSIX says that behavior when subopts list is empty is undefined. +musl libs will set value to NULL which leads to crash. + +Taken from AlpineLinux + +Signed-off-by: Khem Raj +--- + utils/v4l2-ctl/v4l2-ctl-common.cpp | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp +index 3ea6cd3..291fb3e 100644 +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp +@@ -692,16 +692,17 @@ static bool parse_subset(char *optarg) + + static bool parse_next_subopt(char **subs, char **value) + { +- static char *const subopts[] = { +- NULL +- }; +- int opt = getsubopt(subs, subopts, value); ++ char *p = *subs; ++ *value = *subs; + +- if (opt < 0 || *value) +- return false; +- fprintf(stderr, "No value given to suboption <%s>\n", +- subopts[opt]); +- return true; ++ while (*p && *p != ',') ++ p++; ++ ++ if (*p) ++ *p++ = '\0'; ++ ++ *subs = p; ++ return false; + } + + void common_cmd(int ch, char *optarg) +-- +2.13.3 + diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb new file mode 100644 index 00000000000..57cfb1318f3 --- /dev/null +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb @@ -0,0 +1,55 @@ +SUMMARY = "v4l2 and IR applications" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \ + file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0" +PROVIDES = "libv4l media-ctl" + +DEPENDS = "jpeg \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}" +DEPENDS_append_libc-musl = " argp-standalone" +DEPENDS_append_class-target = " udev" +LDFLAGS_append = " -pthread" + +inherit autotools gettext pkgconfig + +PACKAGECONFIG ??= "media-ctl" +PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," + +SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \ + file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ + file://0001-buildsystem-do-not-assume-building-in-source-tree.patch \ + file://mediactl-pkgconfig.patch \ + file://export-mediactl-headers.patch \ + file://0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch \ + file://0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch \ + file://0003-v4l2-ctl-Do-not-use-getsubopt.patch \ + " +SRC_URI[md5sum] = "89e1ed6c69c94e0489dc0a638c7841aa" +SRC_URI[sha256sum] = "5a47dd6f0e7dfe902d94605c01d385a4a4e87583ff5856d6f181900ea81cf46e" + +EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev" + +VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps" + +PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dbg libv4l-dev" + +FILES_media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*" + +FILES_ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules" +RDEPENDS_ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}" + +FILES_rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*" + +FILES_${PN} = "${bindir} ${sbindir}" + +FILES_libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \ + ${libdir}/libdvbv5*${SOLIBS} \ + ${libdir}/libv4l/*-decomp" + +FILES_libv4l-dbg += "${libdir}/libv4l/.debug ${libdir}/libv4l/plugins/.debug" +FILES_libv4l-dev += "${includedir} ${libdir}/pkgconfig \ + ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \ + ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la" + +PARALLEL_MAKE_class-native = "" +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.6.2.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.6.2.bb deleted file mode 100644 index a5c802c090b..00000000000 --- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.6.2.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "v4l2 and IR applications" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \ - file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0" -PROVIDES = "libv4l media-ctl" - -DEPENDS = "jpeg \ - ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}" - -inherit autotools gettext pkgconfig - -PACKAGECONFIG ??= "media-ctl" -PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," - -SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \ - file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ - file://mediactl-pkgconfig.patch \ - file://export-mediactl-headers.patch \ - " -SRC_URI[md5sum] = "9cb3c178f937954e65bf30920af433ef" -SRC_URI[sha256sum] = "d3d6eb1f0204fb11f3d318bfca35d5f73cc077f88fac7665a47856a16496be7d" - -EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev" - -VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps" - -PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dbg libv4l-dev" - -FILES_media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*" - -FILES_ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules" -RDEPENDS_ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}" - -FILES_rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*" - -FILES_${PN} = "${bindir} ${sbindir}" - -FILES_libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \ - ${libdir}/libdvbv5*${SOLIBS} \ - ${libdir}/libv4l/*-decomp" - -FILES_libv4l-dbg += "${libdir}/libv4l/.debug ${libdir}/libv4l/plugins/.debug" -FILES_libv4l-dev += "${includedir} ${libdir}/pkgconfig \ - ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \ - ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la" diff --git a/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb b/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb index d4e32dea48f..a192d1a3bbd 100644 --- a/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb +++ b/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb @@ -10,6 +10,8 @@ PV = "0.0" PR = "r2" S = "${WORKDIR}/git" +EXTRA_OEMAKE = "-e MAKEFLAGS=" + # The yavta sources include copies of the headers required to build in the # include directory. The Makefile uses CFLAGS to include these, but since # we override the CFLAGS then we need to add this include path back in. diff --git a/meta-oe/recipes-multimedia/webm/libvpx/0001-configure.sh-quote-local-variables.patch b/meta-oe/recipes-multimedia/webm/libvpx/0001-configure.sh-quote-local-variables.patch deleted file mode 100644 index bf94b2dce82..00000000000 --- a/meta-oe/recipes-multimedia/webm/libvpx/0001-configure.sh-quote-local-variables.patch +++ /dev/null @@ -1,40 +0,0 @@ -From f45fe1668401d72c2937a52385b492216715c0f9 Mon Sep 17 00:00:00 2001 -From: James Zern -Date: Thu, 6 Mar 2014 15:58:37 -0800 -Subject: [PATCH] configure.sh: quote local variables - -fixes issue #711 - -specifying a multiword CC, e.g., CC='gcc -m32', would cause the failure -under dash - -reported in -https://bugs.gentoo.org/show_bug.cgi?id=498136 - -patch by floppymaster at gmail dot com - -Upstream-Status: Backport [f45fe1668401d72c2937a52385b492216715c0f9] - -Change-Id: I2ba246f765646161538622739961ec0f6c2d8c2d ---- - build/make/configure.sh | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/build/make/configure.sh b/build/make/configure.sh -index 449d1b9..43f8e77 100755 ---- a/build/make/configure.sh -+++ b/build/make/configure.sh -@@ -405,8 +405,8 @@ true - } - - write_common_target_config_mk() { -- local CC=${CC} -- local CXX=${CXX} -+ local CC="${CC}" -+ local CXX="${CXX}" - enabled ccache && CC="ccache ${CC}" - enabled ccache && CXX="ccache ${CXX}" - print_webm_license $1 "##" "" --- -1.8.3.2 - diff --git a/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch b/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch index 1bf863dfa26..c7a6e51e760 100644 --- a/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch +++ b/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch @@ -13,31 +13,31 @@ Fix configure to accept "--prefix=" (a blank prefix). ;; --libdir=*) libdir="${optval}" -@@ -471,13 +473,23 @@ - +@@ -587,13 +587,23 @@ process_cmdline() { + } post_process_common_cmdline() { -- prefix="${prefix:-/usr/local}" -+ if [ "$prefixset" != "1" ] -+ then -+ prefix=/usr/local -+ fi +- prefix="${prefix:-/usr/local}" ++ if [ "$prefixset" != "1" ] ++ then ++ prefix=/usr/local ++ fi + -+ # Strip trailing slash - prefix="${prefix%/}" ++ # Strip trailing slash + prefix="${prefix%/}" + - libdir="${libdir:-${prefix}/lib}" - libdir="${libdir%/}" -- if [ "${libdir#${prefix}}" = "${libdir}" ]; then -- die "Libdir ${libdir} must be a subdirectory of ${prefix}" -- fi + libdir="${libdir:-${prefix}/lib}" + libdir="${libdir%/}" +- if [ "${libdir#${prefix}}" = "${libdir}" ]; then +- die "Libdir ${libdir} must be a subdirectory of ${prefix}" +- fi + -+ case "$libdir" in -+ "${prefix}/"*) ;; -+ *) -+ die "Libdir ${libdir} must be a subdirectory of ${prefix}" -+ ;; -+ esac ++ case "$libdir" in ++ "${prefix}/"*) ;; ++ *) ++ die "Libdir ${libdir} must be a subdirectory of ${prefix}" ++ ;; ++ esac } - + post_process_cmdline() { diff --git a/meta-oe/recipes-multimedia/webm/libvpx_1.3.0.bb b/meta-oe/recipes-multimedia/webm/libvpx_1.3.0.bb deleted file mode 100644 index eb19a576da3..00000000000 --- a/meta-oe/recipes-multimedia/webm/libvpx_1.3.0.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "VPX multi-format codec" -DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams." -HOMEPAGE = "http://www.webmproject.org/code/" -BUGTRACKER = "http://code.google.com/p/webm/issues/list" -SECTION = "libs/multimedia" -LICENSE = "BSD" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4" - -SRC_URI += "http://webm.googlecode.com/files/libvpx-v${PV}.tar.bz2 \ - file://libvpx-configure-support-blank-prefix.patch \ - file://0001-configure.sh-quote-local-variables.patch" -SRC_URI[md5sum] = "14783a148872f2d08629ff7c694eb31f" -SRC_URI[sha256sum] = "d3dcc8d84af51c6c382b214397c62402e37a799e8ebcda6f4217aef0010451a9" - -S = "${WORKDIR}/libvpx-v${PV}" - -# ffmpeg links with this and fails -# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4' -ARM_INSTRUCTION_SET = "arm" - -CFLAGS += "-fPIC" - -export CC -export LD = "${CC}" - -VPXTARGET_armv5te = "armv5te-linux-gcc" -VPXTARGET_armv6 = "armv6-linux-gcc" -VPXTARGET_armv7a = "armv7-linux-gcc" -VPXTARGET ?= "generic-gnu" - -CONFIGUREOPTS = " \ - --target=${VPXTARGET} \ - --enable-vp8 \ - --enable-vp9 \ - --enable-libs \ - --disable-install-docs \ - --disable-static \ - --enable-shared \ - --prefix=${prefix} \ - --libdir=${libdir} \ -" - -do_configure() { - ${S}/configure ${CONFIGUREOPTS} -} - -do_compile() { - oe_runmake -} - -do_install() { - oe_runmake install DESTDIR=${D} -} - diff --git a/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb b/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb new file mode 100644 index 00000000000..e17cda1a97f --- /dev/null +++ b/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb @@ -0,0 +1,49 @@ +SUMMARY = "VPX multi-format codec" +DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams." +HOMEPAGE = "http://www.webmproject.org/code/" +BUGTRACKER = "http://code.google.com/p/webm/issues/list" +SECTION = "libs/multimedia" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4" + +SRC_URI += "http://storage.googleapis.com/downloads.webmproject.org/releases/webm/${BP}.tar.bz2 \ + file://libvpx-configure-support-blank-prefix.patch \ + " +SRC_URI[md5sum] = "a19518c8111fa93bdabdd85259162611" +SRC_URI[sha256sum] = "1c2c0c2a97fba9474943be34ee39337dee756780fc12870ba1dc68372586a819" + +# ffmpeg links with this and fails +# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4' +ARM_INSTRUCTION_SET = "arm" + +CFLAGS += "-fPIC" + +export CC +export LD = "${CC}" + +VPXTARGET_armv5te = "armv5te-linux-gcc" +VPXTARGET_armv6 = "armv6-linux-gcc" +VPXTARGET_armv7a = "armv7-linux-gcc" +VPXTARGET ?= "generic-gnu" + +CONFIGUREOPTS = " \ + --target=${VPXTARGET} \ + --enable-vp9 \ + --enable-libs \ + --disable-install-docs \ + --disable-static \ + --enable-shared \ + --prefix=${prefix} \ + --libdir=${libdir} \ + --size-limit=16384x16384 \ +" + +do_configure() { + ${S}/configure ${CONFIGUREOPTS} +} + +do_install() { + oe_runmake install DESTDIR=${D} + chown -R root:root ${D} +} diff --git a/meta-oe/recipes-multimedia/webp/libwebp_0.4.0.bb b/meta-oe/recipes-multimedia/webp/libwebp_0.4.0.bb deleted file mode 100644 index 7663b3b0bbe..00000000000 --- a/meta-oe/recipes-multimedia/webp/libwebp_0.4.0.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "WebP is an image format designed for the Web" -DESCRIPTION = "WebP is a method of lossy and lossless compression that can be \ - used on a large variety of photographic, translucent and \ - graphical images found on the web. The degree of lossy \ - compression is adjustable so a user can choose the trade-off \ - between file size and image quality. WebP typically achieves \ - an average of 30% more compression than JPEG and JPEG 2000, \ - without loss of image quality." -HOMEPAGE = "https://developers.google.com/speed/webp/" -SECTION = "libs" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://PATENTS;md5=7ec8a34de2073ea13ea2991006246d20" - -DEPENDS = "giflib" - -SRC_URI = "https://webp.googlecode.com/files/${BP}.tar.gz" -SRC_URI[md5sum] = "c8dd1d26eb9566833aba269b86d97e68" -SRC_URI[sha256sum] = "31913577e96386556855b41d210736449445fe96cfbe9289014e9b8afa944d69" - -EXTRA_OECONF = " \ - --disable-experimental \ - --disable-wic \ - --enable-libwebpmux \ - --enable-libwebpdemux \ - --enable-threading \ -" - -inherit autotools lib_package - -PACKAGECONFIG ??= "" - -# libwebpdecoder is a subset of libwebp, don't build it unless requested -PACKAGECONFIG[decoder] = "--enable-libwebpdecoder,--disable-libwebpdecoder" - -# Apply for examples programs: cwebp and dwebp -PACKAGECONFIG[jpeg] = ",ac_cv_header_jpeglib_h=no,jpeg" -PACKAGECONFIG[png] = ",ac_cv_header_png_h=no,libpng" -PACKAGECONFIG[tiff] = ",ac_cv_header_tiffio_h=no,tiff" - -# Apply only for example program vwebp -PACKAGECONFIG[gl] = ",,mesa-glut" - -PACKAGES =+ "${PN}-gif2webp" - -DESCRIPTION_${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP" -FILES_${PN}-gif2webp = "${bindir}/gif2webp" diff --git a/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb b/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb index d65546d0b9e..526659e4514 100644 --- a/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb +++ b/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb @@ -13,5 +13,8 @@ inherit autotools pkgconfig distro_features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" +# Remove runtime dependency on empty package ${PN} +RDEPENDS_${PN}-dev = "" + SRC_URI[md5sum] = "1b0cb67b6f2bd7c4abef17648b062896" SRC_URI[sha256sum] = "a3b06f5188fd9effd0799ae31352b3cd65cb913b964e2c1a923ffa9d3c08abbe" diff --git a/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb b/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb deleted file mode 100644 index 101e87e881f..00000000000 --- a/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "FoxtrotGPS is a map and GPS application using OpenStreetMap" -AUTHOR = "Joshua Judson Rosen " -HOMEPAGE = "http://www.foxtrotgps.org/" -SECTION = "x11/applications" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -DEPENDS = "curl gtk+ libglade sqlite3 libexif gpsd bluez4 intltool-native" - -SRC_URI = "http://www.foxtrotgps.org/releases/${BP}.tar.gz" -SRC_URI[md5sum] = "6777d448ee9d3ba195f9d26ea90e3163" -SRC_URI[sha256sum] = "ae9706285510554cc0813ac92522e0d1672b0ddb065307bfacfcff3c328f6adb" - -inherit autotools pkgconfig perlnative gconf - -PR = "r2" - -do_configure_prepend() { - if [ -f ${S}/configure.in ] ; then - mv ${S}/configure.in ${S}/configure.ac - fi -} - -RRECOMMENDS_${PN} = "gpsd" diff --git a/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb b/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb deleted file mode 100644 index b181b3ef8fe..00000000000 --- a/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb +++ /dev/null @@ -1,109 +0,0 @@ -SUMMARY = "GDAL is a translator library for raster geospatial data formats" -HOMEPAGE = "http://www.gdal.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=0952e17969fab12227096b5228f23149" - -DEPENDS = "proj sqlite3 tiff json-c" - -SRC_URI = "ftp://download.osgeo.org/gdal/${PV}/${BP}.tar.xz" - -SRC_URI[md5sum] = "2e126d7c6605691d38f3e71b945f5c73" -SRC_URI[sha256sum] = "20e1042cff15a71038459a299732fb342428aea9912f32df30c85790fcab6302" - -inherit autotools-brokensep lib_package binconfig - -EXTRA_OECONF = "--without-perl \ - --without-php \ - --without-ruby \ - --without-python \ - \ - --without-grass \ - --without-libgrass \ - --without-cfitsio \ - --without-dds \ - --without-gta \ - --without-pcidsk \ - --without-ogdi \ - --without-fme \ - --without-hdf4 \ - --without-hdf5 \ - --without-pg \ - --without-jpeg12 \ - --without-ogdi \ - --without-netcdf \ - --without-openjpeg \ - --without-fgdb \ - --without-ecw \ - --without-kakadu \ - --without-mrsid \ - --without-jp2mrsid \ - --without-mrsid_lidar \ - --without-msg \ - --without-bsb \ - --without-grib \ - --without-mysql \ - --without-ingres \ - --without-odbc \ - --without-dods_root \ - --without-xml2 \ - --without-spatialite \ - --without-pcre \ - --without-dwgdirect \ - --without-dwgdirect \ - --without-idb \ - --without-sde \ - --without-sde-version \ - --without-epsilon \ - --without-webp \ - --without-opencl \ - --without-opencl-include \ - --without-opencl-lib \ - --without-freexl \ - --without-pam \ - --without-poppler \ - --without-podofo \ - --without-podofo-lib \ - --without-podofo-extra-lib-for-test \ - --without-static_proj4 \ - --without-perl \ - --without-php \ - --without-ruby \ - --without-python \ - --without-java \ - --without-mdb \ - --without-jvm-lib \ - --without-jvm-lib-add-rpath \ - --without-rasdaman \ - --without-armadillo \ - \ - --with-pcraster=internal \ - --with-geotiff=internal \ - \ - --with-sqlite3=${STAGING_EXECPREFIXDIR} \ - --with-libtiff=${STAGING_EXECPREFIXDIR} \ - --with-libjson-c=${STAGING_EXECPREFIXDIR} \ - --with-expat=${STAGING_EXECPREFIXDIR} \ -" - -EXTRA_OEMAKE += "INST_DATA="${datadir}/gdal"" - -PACKAGECONFIG ?= "geos png jasper" -PACKAGECONFIG[geos] = "--with-geos,--without-geos,geos" -PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz" -PACKAGECONFIG[png] = "--with-png,--without-png,libpng" -PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib" -PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg" -PACKAGECONFIG[z] = "--with-libz,--without-libz,zlib" -PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper" -PACKAGECONFIG[curl] = "--with-curl,--without-curl,curl" - -do_configure_prepend () { - # The configure script has many hardcoded paths to search - # for the library headers when using external libraries, - # workaround it. - sed -e 's,/usr/include,NON_EXISTENT_DIR,g' \ - -e 's,/usr/lib,NON_EXISTENT_DIR,g' \ - -i ${S}/configure.in -} - -FILES_${PN} += "${libdir}/gdalplugins" diff --git a/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch b/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch deleted file mode 100644 index 70fe3f55a7c..00000000000 --- a/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch +++ /dev/null @@ -1,30 +0,0 @@ -Upstream-Status: Upstream-Status: Inappropriate [poky 9.0 has older libsoup] - -Signed-off-by: Felipe F. Tonello - -diff --git a/src/gclue-ipclient.c b/src/gclue-ipclient.c -index 09add30..1771d5c 100644 ---- a/src/gclue-ipclient.c -+++ b/src/gclue-ipclient.c -@@ -83,7 +83,7 @@ gclue_ipclient_init (GClueIpclient *ipclient) - { - ipclient->priv = G_TYPE_INSTANCE_GET_PRIVATE ((ipclient), GCLUE_TYPE_IPCLIENT, GClueIpclientPrivate); - -- ipclient->priv->soup_session = soup_session_new (); -+ ipclient->priv->soup_session = soup_session_sync_new (); - } - - /** -diff --git a/src/geoip-server/geoip-update.c b/src/geoip-server/geoip-update.c -index 6cce7b2..ef672ba 100644 ---- a/src/geoip-server/geoip-update.c -+++ b/src/geoip-server/geoip-update.c -@@ -214,7 +214,7 @@ main (int argc, char **argv) - path = GEOIP_DATABASE_PATH; - } - -- session = soup_session_new (); -+ session = soup_session_sync_new (); - - for (i = 0; i < G_N_ELEMENTS (db_info_map); i++) { - SoupMessage *msg = NULL; diff --git a/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb b/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb deleted file mode 100644 index a0305fb6052..00000000000 --- a/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "The Geolocation Service" -DESCRIPTION = "Geoclue is a D-Bus service that provides location information. \ -The primary goal of the Geoclue project is to make creating location-aware applications \ -as simple as possible, while the secondary goal is to ensure that no application \ -can access location information without explicit permission from user." -LICENSE = "GPLv2.0+" -SECTION = "console/network" - -LIC_FILES_CHKSUM = "file://COPYING;md5=8114b83a0435d8136b47bd70111ce5cd" - -DEPENDS = "glib-2.0 dbus dbus-glib json-glib libsoup-2.4" - -inherit autotools pkgconfig gtk-doc - -SRC_URI = " \ - http://www.freedesktop.org/software/geoclue/releases/2.0/geoclue-${PV}.tar.xz \ - file://soup-session-fix.patch \ -" - -SRC_URI[md5sum] = "401ff99d530b177c62afacef0a33efd9" -SRC_URI[sha256sum] = "4a82f184e55a163d86e0ad69bbe1bba9960bb5094220fe1f01350bceda8c67a1" - -EXTRA_OECONF += " \ - --with-dbus-service-user=root \ - --with-dbus-sys-dir=${sysconfdir}/dbus-1/system.d \ -" - -FILES_${PN} += " \ - ${datadir}/dbus-1/system-services/org.freedesktop.GeoClue2.service \ - ${datadir}/geoclue-2.0/geoclue-interface.xml \ -" diff --git a/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb b/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb new file mode 100644 index 00000000000..1d531aec708 --- /dev/null +++ b/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb @@ -0,0 +1,53 @@ +SUMMARY = "The Geolocation Service" +DESCRIPTION = "Geoclue is a D-Bus service that provides location information. \ +The primary goal of the Geoclue project is to make creating location-aware applications \ +as simple as possible, while the secondary goal is to ensure that no application \ +can access location information without explicit permission from user." +LICENSE = "GPLv2.0+" +SECTION = "console/network" + +LIC_FILES_CHKSUM = "file://COPYING;md5=8114b83a0435d8136b47bd70111ce5cd" + +DEPENDS = "glib-2.0 dbus json-glib libsoup-2.4 intltool-native gobject-introspection-native" + +inherit autotools pkgconfig gtk-doc + +SRC_URI = " \ + http://www.freedesktop.org/software/geoclue/releases/2.4/geoclue-${PV}.tar.xz \ +" + +SRC_URI[md5sum] = "d2a5b05f4bad032673fe23afbce27926" +SRC_URI[sha256sum] = "9c43fb9d0c12067ea64400500abb0640194947d4c2c55e38545afe5d9c5c315c" + +export BUILD_SYS +export HOST_SYS +export STAGING_INCDIR +export STAGING_LIBDIR + +# Without this line, package is delcared a library and named libgeoclue* +AUTO_LIBNAME_PKGS = "" + +PACKAGECONFIG ??= "3g modem-gps cdma nmea lib" +PACKAGECONFIG[3g] = "--enable-3g-source,--disable-3g-source,modemmanager" +PACKAGECONFIG[modem-gps] = "--enable-modem-gps-source,--disable-modem-gps-source,modemmanager" +PACKAGECONFIG[cdma] = "--enable-cdma-source,--disable-cdma-source,modemmanager" +PACKAGECONFIG[nmea] = "--enable-nmea-source,--disable-nmea-source,avahi" +PACKAGECONFIG[lib] = "--enable-libgeoclue,--disable-libgeoclue,gobject-introspection" + +EXTRA_OECONF += " \ + --with-dbus-service-user=root \ + --with-dbus-sys-dir=${sysconfdir}/dbus-1/system.d \ + --enable-demo-agent=no \ +" + +FILES_${PN} += " \ + ${datadir}/dbus-1/system-services \ + ${libdir} \ + ${systemd_unitdir} \ + ${prefix}/libexec \ +" + +FILES_${PN}-dev += " \ + ${datadir}/dbus-1/interfaces \ + ${datadir}/gir-1.0 \ +" diff --git a/meta-oe/recipes-navigation/geos/files/fix-gcc6-isnan.patch b/meta-oe/recipes-navigation/geos/files/fix-gcc6-isnan.patch new file mode 100644 index 00000000000..5c5fbd1d9ab --- /dev/null +++ b/meta-oe/recipes-navigation/geos/files/fix-gcc6-isnan.patch @@ -0,0 +1,22 @@ +--- geos-3.4.2/configure.in.orig 2016-06-08 17:46:43.002250304 +0000 ++++ geos-3.4.2/configure.in 2016-06-08 17:57:36.342241606 +0000 +@@ -197,7 +197,7 @@ + AC_LANG_PUSH([C++]) + AC_CACHE_CHECK([for isnan], ac_cv_isnan, + [AC_TRY_LINK([#include ], +- [double x; int y; y = isnan(x);], ++ [double x; int y; y = std::isnan(x);], + ac_cv_isnan=yes, + ac_cv_isnan=no + )]) +--- geos-3.4.2/include/geos/platform.h.in.orig 2016-06-08 14:06:53.910234182 -0400 ++++ geos-3.4.2/include/geos/platform.h.in 2016-06-08 14:07:19.298233844 -0400 +@@ -84,7 +84,7 @@ + #endif + + #if defined(HAVE_ISNAN) +-# define ISNAN(x) (isnan(x)) ++# define ISNAN(x) (std::isnan(x)) + #else + # if defined(_MSC_VER) + # define ISNAN(x) _isnan(x) diff --git a/meta-oe/recipes-navigation/geos/geos_3.4.2.bb b/meta-oe/recipes-navigation/geos/geos_3.4.2.bb index 3a9a028e8f0..7193f8fb567 100644 --- a/meta-oe/recipes-navigation/geos/geos_3.4.2.bb +++ b/meta-oe/recipes-navigation/geos/geos_3.4.2.bb @@ -1,6 +1,7 @@ require geos.inc -SRC_URI += "file://geos-config-Add-includedir-variable.patch" +SRC_URI += "file://geos-config-Add-includedir-variable.patch \ + file://fix-gcc6-isnan.patch" SRC_URI[md5sum] = "fc5df2d926eb7e67f988a43a92683bae" SRC_URI[sha256sum] = "15e8bfdf7e29087a957b56ac543ea9a80321481cef4d4f63a7b268953ad26c53" diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch deleted file mode 100644 index c4134f4b586..00000000000 --- a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 3c5fb3a8691ac711ea93edf8e0b42bffc62b197e Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Tue, 24 Apr 2012 11:52:35 +0200 -Subject: [PATCH 1/4] SConstruct: respect sysroot also in SPLINTOPTS - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Martin Jansa -Signed-off-by: Denis 'GNUtoo' Carikli -Signed-off-by: Peter A. Bigot ---- - SConstruct | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/SConstruct b/SConstruct -index 14e2f59..f0cafa8 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -1414,7 +1414,10 @@ def Utility(target, source, action): - # Report splint warnings - # Note: test_bits.c is unsplintable because of the PRI64 macros. - # If you get preprocessor or fatal errors, add +showscan. --splintopts = "-I/usr/include/libusb-1.0 +quiet" -+if not env['sysroot']: -+ splintopts = "-I/usr/include/libusb-1.0 +quiet" -+else: -+ splintopts = "-I%s/usr/include/libusb-1.0 +quiet" % env['sysroot'] - # splint does not know about multi-arch, work around that - ma_status, ma = _getstatusoutput('dpkg-architecture -qDEB_HOST_MULTIARCH') - if ma_status == 0: --- -1.8.5.5 - diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-remove-rpath.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-remove-rpath.patch deleted file mode 100644 index 083a6621f5c..00000000000 --- a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0002-SConstruct-remove-rpath.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d090638ff983e509162d5e3b62aa4918de4aa5fa Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Tue, 24 Apr 2012 16:24:35 +0200 -Subject: [PATCH 2/4] SConstruct: remove rpath - -* even with correct prefix (without DESTDIR) included it's redundant - WARNING: QA Issue: libgps: - /work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0 - contains probably-redundant RPATH /usr/lib -* and with prefix from scons.bbclass it's invalid - WARNING: QA Issue: package libgps contains bad RPATH - /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/image/usr/lib - in file - /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0 - -Upstream-Status: Inapppropriate [embedded specific] - -Signed-off-by: Martin Jansa -Signed-off-by: Denis 'GNUtoo' Carikli -Signed-off-by: Peter A. Bigot ---- - SConstruct | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/SConstruct b/SConstruct -index f0cafa8..ff46713 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -1340,8 +1340,11 @@ if qt_env: - binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib)) - - if env["shared"] and env["chrpath"]: -- env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \ -- % (installdir('libdir', False), )) -+ if not env['sysroot']: -+ env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \ -+ % (installdir('libdir', False), )) -+ else: -+ env.AddPostAction(binaryinstall, '$CHRPATH -d "$TARGET"') - - if not env['debug'] and not env['profiling'] and env['strip']: - env.AddPostAction(binaryinstall, '$STRIP $TARGET') --- -1.8.5.5 - diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch deleted file mode 100644 index 1d8c14b57cf..00000000000 --- a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch +++ /dev/null @@ -1,75 +0,0 @@ -From ad7b06d375730b30f181c5efb3bf21418f296f73 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Tue, 24 Apr 2012 18:45:14 +0200 -Subject: [PATCH 3/4] SConstruct: prefix includepy with sysroot and drop - sysroot from python_lib_dir - -* without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without sysroot prefix - and with PYTHONPATH from OE it's pointing to native python dir - - $ export PYTHONPATH=/OE/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib/python2.7/ - $ python - Python 2.7.2 (default, Apr 18 2012, 09:19:59) - [GCC 4.6.2] on linux2 - Type "help", "copyright", "credits" or "license" for more information. - >>> from distutils import sysconfig - >>> sysconfig.get_config_vars('INCLUDEPY') - ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7'] - >>> - $ unset PYTHONPATH - $ python - Python 2.7.2 (default, Apr 18 2012, 09:19:59) - [GCC 4.6.2] on linux2 - Type "help", "copyright", "credits" or "license" for more information. - >>> from distutils import sysconfig - >>> sysconfig.get_config_vars('INCLUDEPY') - ['/python2.7'] - >>> import sysconfig - >>> sysconfig.get_config_vars('INCLUDEPY') - ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7'] -* python_lib_dir = python_lib_dir.replace(env['sysroot'], '') - returns path to target sysroot - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Martin Jansa -Signed-off-by: Peter A. Bigot ---- - SConstruct | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/SConstruct b/SConstruct -index ff46713..0e518e7 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -1089,6 +1089,12 @@ else: - basecflags += ' -coverage' - ldflags += ' -coverage' - ldshared += ' -coverage' -+ -+ if env['sysroot']: -+ print "Prefixing includepy '%s' with sysroot prefix" % includepy -+ includepy = os.path.normpath("%s/%s/%s/%s" % (env['sysroot'], env['prefix'], env['includedir'], includepy)) -+ print "'%s'" % includepy -+ - # in case CC/CXX was set to the scan-build wrapper, - # ensure that we build the python modules with scan-build, too - if env['CC'] is None or env['CC'].find('scan-build') < 0: -@@ -1353,11 +1359,14 @@ if not env['python']: - python_install = [] - else: - python_lib_dir = sysconfig.get_python_lib(plat_specific=1) -+ python_lib_dir = python_lib_dir.replace(env['sysroot'], '') - python_module_dir = python_lib_dir + os.sep + 'gps' - python_extensions_install = python_env.Install( DESTDIR + python_module_dir, - python_built_extensions) - if not env['debug'] and not env['profiling'] and env['strip']: - python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET') -+ env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \ -+ % (python_lib_dir, )) - - python_modules_install = python_env.Install( DESTDIR + python_module_dir, - python_modules) --- -1.8.5.5 - diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch new file mode 100644 index 00000000000..2ea3226a488 --- /dev/null +++ b/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch @@ -0,0 +1,75 @@ +From 1e2cea8945bc2183fbe1a012dcd633a352125952 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Tue, 24 Apr 2012 18:45:14 +0200 +Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot + from python_lib_dir + +* without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without sysroot prefix + and with PYTHONPATH from OE it's pointing to native python dir + + $ export PYTHONPATH=/OE/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib/python2.7/ + $ python + Python 2.7.2 (default, Apr 18 2012, 09:19:59) + [GCC 4.6.2] on linux2 + Type "help", "copyright", "credits" or "license" for more information. + >>> from distutils import sysconfig + >>> sysconfig.get_config_vars('INCLUDEPY') + ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7'] + >>> + $ unset PYTHONPATH + $ python + Python 2.7.2 (default, Apr 18 2012, 09:19:59) + [GCC 4.6.2] on linux2 + Type "help", "copyright", "credits" or "license" for more information. + >>> from distutils import sysconfig + >>> sysconfig.get_config_vars('INCLUDEPY') + ['/python2.7'] + >>> import sysconfig + >>> sysconfig.get_config_vars('INCLUDEPY') + ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7'] +* python_lib_dir = python_lib_dir.replace(env['sysroot'], '') + returns path to target sysroot + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Martin Jansa +Signed-off-by: Peter A. Bigot +--- + SConstruct | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/SConstruct b/SConstruct +index 6c93311..cde8b3d 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -1148,6 +1148,12 @@ else: + basecflags += ' -coverage' + ldflags += ' -coverage' + ldshared += ' -coverage' ++ ++ if env['sysroot']: ++ print "Prefixing includepy '%s' with sysroot prefix" % includepy ++ includepy = os.path.normpath("%s/%s/%s/%s" % (env['sysroot'], env['prefix'], env['includedir'], includepy)) ++ print "'%s'" % includepy ++ + # in case CC/CXX was set to the scan-build wrapper, + # ensure that we build the python modules with scan-build, too + if env['CC'] is None or env['CC'].find('scan-build') < 0: +@@ -1408,11 +1414,14 @@ if not env['python']: + python_install = [] + else: + python_lib_dir = env['python_libdir'] ++ python_lib_dir = python_lib_dir.replace(env['sysroot'], '') + python_module_dir = python_lib_dir + os.sep + 'gps' + python_extensions_install = python_env.Install( DESTDIR + python_module_dir, + python_built_extensions) + if not env['debug'] and not env['profiling'] and not env['nostrip'] and not sys.platform.startswith('darwin'): + python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET') ++ env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \ ++ % (python_lib_dir, )) + + python_modules_install = python_env.Install( DESTDIR + python_module_dir, + python_modules) +-- +2.1.0 + diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch new file mode 100644 index 00000000000..f496b5e7d16 --- /dev/null +++ b/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0001-include-sys-ttydefaults.h.patch @@ -0,0 +1,35 @@ +From f221fa959c80b43c65426500a6836a1b5cf6fe0c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 17 Aug 2016 02:16:12 +0000 +Subject: [PATCH] include sys/ttydefaults.h + +This is needed for CTRL definition, as exposed by musl on glibc +this include file gets pulled indirectly. + +/usr/src/debug/gpsd/3.14-r0/gpsd-3.14/gpsmon.c:605: undefined reference to `CTRL' +clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation) +scons: *** [gpsmon] Error 1 + +Signed-off-by: Khem Raj + +Foreward port to gpsd 3.16 +Signed-off-by: Max Krummenacher +--- + gpsmon.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gpsmon.c b/gpsmon.c +index ead84d0..f205cb1 100644 +--- a/gpsmon.c ++++ b/gpsmon.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + +-- +2.12.0 + diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.16/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch similarity index 100% rename from meta-oe/recipes-navigation/gpsd/gpsd-3.10/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch rename to meta-oe/recipes-navigation/gpsd/gpsd-3.16/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb index d023c5de72e..d2058ba570d 100644 --- a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb +++ b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb @@ -4,4 +4,4 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD;md5=377548 # empty by default # BSP layers can add stuff like meta-openmoko example: -# +# diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb deleted file mode 100644 index 93cf1aec72e..00000000000 --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb +++ /dev/null @@ -1,137 +0,0 @@ -SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices" -SECTION = "console/network" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800" -DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools" -PROVIDES = "virtual/gpsd" - -EXTRANATIVEPATH += "chrpath-native" - -SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ - file://0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \ - file://0002-SConstruct-remove-rpath.patch \ - file://0003-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ - file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \ - file://gpsd-default \ - file://gpsd \ - file://60-gpsd.rules \ - file://gpsd.service \ -" -SRC_URI[md5sum] = "fc5b03aae38b9b5b6880b31924d0ace3" -SRC_URI[sha256sum] = "706fc2c1cf3dfbf87c941f543381bccc9c4dc9f8240eec407dcbf2f70b854320" - -inherit scons update-rc.d python-dir pythonnative systemd bluetooth - -INITSCRIPT_NAME = "gpsd" -INITSCRIPT_PARAMS = "defaults 35" - -SYSTEMD_OESCONS = "${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}" - -export STAGING_INCDIR -export STAGING_LIBDIR - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}" -PACKAGECONFIG[bluez4] = "bluez='true',bluez='false',bluez4" - -EXTRA_OESCONS = " \ - sysroot=${STAGING_DIR_TARGET} \ - libQgpsmm='false' \ - debug='true' \ - strip='false' \ - systemd='${SYSTEMD_OESCONS}' \ - ${EXTRA_OECONF} \ -" -# this cannot be used, because then chrpath is not found and only static lib is built -# target=${HOST_SYS} - -do_compile_prepend() { - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" - export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" - export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" - - export BUILD_SYS="${BUILD_SYS}" - export HOST_SYS="${HOST_SYS}" -} - -do_install() { - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" - export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" - export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" - - export BUILD_SYS="${BUILD_SYS}" - export HOST_SYS="${HOST_SYS}" - - export DESTDIR="${D}" - # prefix is used for RPATH and DESTDIR/prefix for instalation - ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install ${EXTRA_OESCONS}|| \ - bbfatal "scons install execution failed." -} - -do_install_append() { - install -d ${D}/${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/ - install -d ${D}/${sysconfdir}/default - install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default - - #support for udev - install -d ${D}/${sysconfdir}/udev/rules.d - install -m 0644 ${WORKDIR}/60-gpsd.rules ${D}/${sysconfdir}/udev/rules.d - install -d ${D}${base_libdir}/udev/ - install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/ - - #support for python - install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps - install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps - - #support for systemd - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/${PN}.service ${D}${systemd_unitdir}/system/${PN}.service - install -m 0644 ${S}/systemd/${PN}.socket ${D}${systemd_unitdir}/system/${PN}.socket -} - -pkg_postinst_${PN}-conf() { - update-alternatives --install ${sysconfdir}/default/gpsd gpsd-defaults ${sysconfdir}/default/gpsd.default 10 -} - -pkg_postrm_${PN}-conf() { - update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default -} - -PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils" - -FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc" - -FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug" - -RDEPENDS_${PN} = "gpsd-gpsctl" -RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf" - -SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging" -FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*" -RDEPENDS_gpsd-udev += "udev gpsd-conf" - -SUMMARY_libgpsd = "C service library used for communicating with gpsd" -FILES_libgpsd = "${libdir}/libgpsd.so.*" - -SUMMARY_libgps = "C service library used for communicating with gpsd" -FILES_libgps = "${libdir}/libgps.so.*" - -SUMMARY_gpsd-conf = "gpsd configuration files and init scripts" -FILES_gpsd-conf = "${sysconfdir}" -CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default" - -SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes" -FILES_gpsd-gpsctl = "${bindir}/gpsctl" - -SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS" -FILES_gps-utils = "${bindir}/*" -RDEPENDS_gps-utils = "python-pygps" - -SUMMARY_python-pygps = "Python bindings to gpsd" -FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*" -RDEPENDS_python-pygps = "python-core python-curses gpsd python-json" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "${PN}.socket" diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb new file mode 100644 index 00000000000..26d74867bf8 --- /dev/null +++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.16.bb @@ -0,0 +1,140 @@ +SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices" +SECTION = "console/network" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800" +DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools" +PROVIDES = "virtual/gpsd" + +EXTRANATIVEPATH += "chrpath-native" + +SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ + file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ + file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \ + file://0001-include-sys-ttydefaults.h.patch \ + file://gpsd-default \ + file://gpsd \ + file://60-gpsd.rules \ + file://gpsd.service \ +" +SRC_URI[md5sum] = "68691b5de4c94f82ec4062b042b5eb63" +SRC_URI[sha256sum] = "03579af13a4d3fe0c5b79fa44b5f75c9f3cac6749357f1d99ce5d38c09bc2029" + +inherit scons update-rc.d python-dir pythonnative systemd bluetooth update-alternatives + +INITSCRIPT_PACKAGES = "gpsd-conf" +INITSCRIPT_NAME = "gpsd" +INITSCRIPT_PARAMS = "defaults 35" + +SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}" + +export STAGING_INCDIR +export STAGING_LIBDIR + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}" +PACKAGECONFIG[bluez] = "bluez='true',bluez='false',${BLUEZ}" +PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free" +EXTRA_OESCONS = " \ + sysroot=${STAGING_DIR_TARGET} \ + libQgpsmm='false' \ + debug='true' \ + strip='false' \ + chrpath='yes' \ + systemd='${SYSTEMD_OESCONS}' \ + libdir='${libdir}' \ + ${PACKAGECONFIG_CONFARGS} \ +" +# this cannot be used, because then chrpath is not found and only static lib is built +# target=${HOST_SYS} + +do_compile_prepend() { + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" + export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" + export LINKFLAGS="${LDFLAGS}" +} + +do_install() { + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" + export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config" + export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}" + export LINKFLAGS="${LDFLAGS}" + + export DESTDIR="${D}" + # prefix is used for RPATH and DESTDIR/prefix for instalation + ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install ${EXTRA_OESCONS}|| \ + bbfatal "scons install execution failed." +} + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/ + install -d ${D}/${sysconfdir}/default + install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default + + #support for udev + install -d ${D}/${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/60-gpsd.rules ${D}/${sysconfdir}/udev/rules.d + install -d ${D}${base_libdir}/udev/ + install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/ + + #support for python + install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps + install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps + + #support for systemd + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service + install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket +} + +PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils" + +FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \ + ${libdir}/libQgpsmm.prl" + +FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug" + +RDEPENDS_${PN} = "gpsd-gpsctl" +RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf" + +SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging" +FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*" +RDEPENDS_gpsd-udev += "udev gpsd-conf" + +SUMMARY_libgpsd = "C service library used for communicating with gpsd" +FILES_libgpsd = "${libdir}/libgpsd.so.*" + +SUMMARY_libgps = "C service library used for communicating with gpsd" +FILES_libgps = "${libdir}/libgps.so.*" + +SUMMARY_gpsd-conf = "gpsd configuration files and init scripts" +FILES_gpsd-conf = "${sysconfdir}" +CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default" + +SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes" +FILES_gpsd-gpsctl = "${bindir}/gpsctl" + +SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS" +FILES_gps-utils = "${bindir}/*" +RDEPENDS_gps-utils = "python-pygps" + +SUMMARY_python-pygps = "Python bindings to gpsd" +FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python-pygps = " \ + python-core \ + python-io \ + python-threading \ + python-terminal \ + python-curses \ + gpsd \ + python-json" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "${PN}.socket" + + +ALTERNATIVE_${PN} = "gpsd-defaults" +ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd" +ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default" diff --git a/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch b/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch deleted file mode 100644 index 063bea618d3..00000000000 --- a/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 5b859b6e7c82f49d967c25398a8e75b61af9bcc0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 12 Jun 2013 20:58:51 -0700 -Subject: [PATCH] g_type_init() is deprecated for glib >= 2.35.0 - -Call it for old versions. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - examples/list-known-gps-devices.c | 4 ++-- - examples/simple-gps-dbus.c | 3 ++- - examples/simple-gps-gypsy.c | 4 ++-- - examples/simple-gps-satellites.c | 4 ++-- - gypsy/gypsy-marshal.c | 2 +- - src/main.c | 4 ++-- - 6 files changed, 11 insertions(+), 10 deletions(-) - -diff --git a/examples/list-known-gps-devices.c b/examples/list-known-gps-devices.c -index c7c4059..0a8b04b 100644 ---- a/examples/list-known-gps-devices.c -+++ b/examples/list-known-gps-devices.c -@@ -20,9 +20,9 @@ main (int argc, - GError *error = NULL; - GPtrArray *known_devices; - int i; -- -+#if !GLIB_CHECK_VERSION(2,35,0) - g_type_init (); -- -+#endif - discovery = gypsy_discovery_new (); - known_devices = gypsy_discovery_list_devices (discovery, &error); - -diff --git a/examples/simple-gps-dbus.c b/examples/simple-gps-dbus.c -index f7044e6..76b18aa 100644 ---- a/examples/simple-gps-dbus.c -+++ b/examples/simple-gps-dbus.c -@@ -121,8 +121,9 @@ main (int argc, - DBusConnection *conn; - DBusError error; - GMainLoop *mainloop; -- -+#if !GLIB_CHECK_VERSION(2,35,0) - g_type_init (); -+#endif - conn = get_connection (); - - dbus_error_init (&error); -diff --git a/examples/simple-gps-gypsy.c b/examples/simple-gps-gypsy.c -index 0b6b7a6..86033d9 100644 ---- a/examples/simple-gps-gypsy.c -+++ b/examples/simple-gps-gypsy.c -@@ -67,9 +67,9 @@ main (int argc, - g_print ("Usage: %s device\n", argv[0]); - return 0; - } -- -+#if !GLIB_CHECK_VERSION(2,35,0) - g_type_init (); -- -+#endif - control = gypsy_control_get_default (); - path = gypsy_control_create (control, argv[1], &error); - if (path == NULL) { -diff --git a/examples/simple-gps-satellites.c b/examples/simple-gps-satellites.c -index 140c98f..9a3f95a 100644 ---- a/examples/simple-gps-satellites.c -+++ b/examples/simple-gps-satellites.c -@@ -42,9 +42,9 @@ main (int argc, - g_print ("Usage: %s device\n", argv[0]); - return 0; - } -- -+#if !GLIB_CHECK_VERSION(2,35,0) - g_type_init (); -- -+#endif - control = gypsy_control_get_default (); - path = gypsy_control_create (control, argv[1], &error); - if (path == NULL) { -diff --git a/gypsy/gypsy-marshal.c b/gypsy/gypsy-marshal.c -index 6964644..9ac0095 100644 ---- a/gypsy/gypsy-marshal.c -+++ b/gypsy/gypsy-marshal.c -@@ -5,7 +5,7 @@ - - #ifdef G_ENABLE_DEBUG - #define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) --#define g_marshal_value_peek_char(v) g_value_get_char (v) -+#define g_marshal_value_peek_char(v) g_value_get_schar (v) - #define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) - #define g_marshal_value_peek_int(v) g_value_get_int (v) - #define g_marshal_value_peek_uint(v) g_value_get_uint (v) -diff --git a/src/main.c b/src/main.c -index 3e8a794..ec980e5 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -187,9 +187,9 @@ main (int argc, - g_option_context_free (context); - - umask (022); -- -+#if !GLIB_CHECK_VERSION(2,35,0) - g_type_init (); -- -+#endif - mainloop = g_main_loop_new (NULL, FALSE); - - conn = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); --- -1.7.9.5 - diff --git a/meta-oe/recipes-navigation/gypsy/files/fixups.patch b/meta-oe/recipes-navigation/gypsy/files/fixups.patch deleted file mode 100644 index de4d92ea1b7..00000000000 --- a/meta-oe/recipes-navigation/gypsy/files/fixups.patch +++ /dev/null @@ -1,21 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - ---- - docs/reference/Makefile.am | 2 ++ - 1 file changed, 2 insertions(+) - ---- gypsy.orig/docs/reference/Makefile.am -+++ gypsy/docs/reference/Makefile.am -@@ -81,10 +81,12 @@ expand_content_files= - # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) - - INCLUDES=-I$(top_srcdir) $(GYPSY_CFLAGS) - GTKDOC_LIBS=$(top_builddir)/gypsy/libgypsy.la $(GYPSY_LIBS) - -+EXTRA_DIST = -+CLEANFILES = - # This includes the standard gtk-doc make rules, copied by gtkdocize. - include $(top_srcdir)/gtk-doc.make - - # Other files to distribute - # e.g. EXTRA_DIST += version.xml.in diff --git a/meta-oe/recipes-navigation/gypsy/gypsy.inc b/meta-oe/recipes-navigation/gypsy/gypsy.inc deleted file mode 100644 index 7c93d0a193c..00000000000 --- a/meta-oe/recipes-navigation/gypsy/gypsy.inc +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "GPS Multiplexing Daemon" -DESCRIPTION = "Gypsy is a GPS multiplexing daemon which allows \ -multiple clients to access GPS data from multiple GPS sources \ -concurrently. Gypsy also hides the details of parsing NMEA from the \ -client applications, passing the data as simple values for the clients \ -to use." -LICENSE = "GPLv2.0 & LGPLv2.1" -SECTION = "console/network" -DEPENDS = "glib-2.0 dbus bluez4 dbus-glib libxslt-native libxslt" - -inherit autotools pkgconfig gtk-doc -PACKAGES += "libgypsy" - -FILES_${PN} = " \ - ${sysconfdir}/gypsy.conf \ - ${sysconfdir}/dbus-1 \ - ${libexecdir}/gypsy-daemon \ - ${datadir}/dbus-1 \ -" - -FILES_libgypsy = " \ - ${libdir}/libgypsy${SOLIBS} \ -" diff --git a/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb b/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb deleted file mode 100644 index 24c8987ef92..00000000000 --- a/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb +++ /dev/null @@ -1,15 +0,0 @@ -require gypsy.inc - -PR = "r2" - -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ - file://COPYING.lib;md5=7fbc338309ac38fefcd64b04bb903e34 \ - file://src/main.c;beginline=1;endline=25;md5=3fe64e27e61b289b77383a54a982cbdd \ - file://gypsy/gypsy-time.h;beginline=1;endline=24;md5=06432ea19a7b6607428d04d9dadc37fd" - -SRC_URI += "http://gypsy.freedesktop.org/releases/gypsy-${PV}.tar.gz \ - file://0001-g_type_init-is-deprecated-for-glib-2.35.0.patch \ - " - -SRC_URI[md5sum] = "e2d186df9c2cc3b70a027043e22acf1a" -SRC_URI[sha256sum] = "14e1cbe17351f408538e033ca370b4bf51ccf9c88744e236ddfb271904f154d6" diff --git a/meta-oe/recipes-navigation/gypsy/gypsy_git.bb b/meta-oe/recipes-navigation/gypsy/gypsy_git.bb deleted file mode 100644 index 6ab16e6bee5..00000000000 --- a/meta-oe/recipes-navigation/gypsy/gypsy_git.bb +++ /dev/null @@ -1,22 +0,0 @@ -require gypsy.inc - -DEFAULT_PREFERENCE = "-1" - -SRCREV = "be8c9c382d2d1d37b51d29b0843045121ec90213" -PV = "0.9+git${SRCPV}" -PR = "r2" - -S = "${WORKDIR}/git" - -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ - file://COPYING.lib;md5=7fbc338309ac38fefcd64b04bb903e34 \ - file://src/main.c;beginline=1;endline=25;md5=3fe64e27e61b289b77383a54a982cbdd \ - file://gypsy/gypsy-time.h;beginline=1;endline=24;md5=06432ea19a7b6607428d04d9dadc37fd" - -SRC_URI += "git://anongit.freedesktop.org/gypsy \ - file://fixups.patch" - -do_configure_prepend() { - # from patch 563716fc596d53f1085949a9dd11a62f39b2d624 - test -d ${S}/m4 || mkdir -p ${S}/m4 -} diff --git a/meta-oe/recipes-navigation/monav/monav/monav.desktop b/meta-oe/recipes-navigation/monav/monav/monav.desktop deleted file mode 100644 index 5e861136f0b..00000000000 --- a/meta-oe/recipes-navigation/monav/monav/monav.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Name=MoNav -Exec=monav -Icon=monav -Terminal=false -Type=Application -Categories=Utility;Geography; -X-MB-SingleInstance=true -StartupNotify=true -Comment=Fast navigation system featuring exact routing. diff --git a/meta-oe/recipes-navigation/monav/monav/monav.png b/meta-oe/recipes-navigation/monav/monav/monav.png deleted file mode 100644 index 75b5a79623b..00000000000 Binary files a/meta-oe/recipes-navigation/monav/monav/monav.png and /dev/null differ diff --git a/meta-oe/recipes-navigation/monav/monav_0.3.bb b/meta-oe/recipes-navigation/monav/monav_0.3.bb deleted file mode 100644 index 982d682721e..00000000000 --- a/meta-oe/recipes-navigation/monav/monav_0.3.bb +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION = "MoNav is a fast navigation system featuring exact routing with OpenStreetMap data." -HOMEPAGE = "http://code.google.com/p/monav" -SECTION = "x11/applications" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://misc/license_template_christian;md5=d99c9b3bafdde80adee296762376348d" - -DEPENDS = "qt-mobility-x11" -PR = "r1" - -SRC_URI = "http://monav.googlecode.com/files/${BPN}-${PV}.tar.gz \ - file://monav.png \ - file://monav.desktop" - -SRC_URI[md5sum] = "d048ccef8c6a21e8656aa4af3fcb8329" -SRC_URI[sha256sum] = "5a3bf9e9f7368b81ba8e2f755960082fc42a2e2c78f9de645f99ba293c77ee7f" - -inherit qmake2 qt4x11 - -EXTRA_QMAKEVARS_PRE="CONFIG+="release"" -QMAKE_PROFILES="monavclient.pro" - -do_install_append() { - install -d ${D}${datadir}/monav - install -d ${D}${datadir}/monav/images - cp -a ${S}/images/* ${D}${datadir}/monav/images - - install -d ${D}${datadir}/icons - install -m 0644 ${WORKDIR}/monav.png ${D}${datadir}/icons - - install -d ${D}${bindir} - install -m 0755 ${S}/bin/monav ${D}${bindir}/monav - - install -d ${D}/${datadir}/applications - install -m 0644 ${WORKDIR}/monav.desktop ${D}/${datadir}/applications -} - -FILES_${PN} += "${bindir}/monav ${datadir}/icons/monav.png" diff --git a/meta-oe/recipes-navigation/navit/navit-fpu.inc b/meta-oe/recipes-navigation/navit/navit-fpu.inc deleted file mode 100644 index d9637022ff4..00000000000 --- a/meta-oe/recipes-navigation/navit/navit-fpu.inc +++ /dev/null @@ -1,6 +0,0 @@ - -def get_navit_fpu_setting(bb, d): - if d.getVar('TARGET_FPU', 1) in [ 'soft' ]: - return "--enable-avoid-float" - return "" - diff --git a/meta-oe/recipes-navigation/navit/navit.inc b/meta-oe/recipes-navigation/navit/navit.inc deleted file mode 100644 index 9d4f4eccbaf..00000000000 --- a/meta-oe/recipes-navigation/navit/navit.inc +++ /dev/null @@ -1,93 +0,0 @@ -DESCRIPTION = "Navit is a car navigation system with routing engine." -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=ed539d099d6ce08de6ea0dfed9ecb333 \ - file://LGPL-2;md5=3214f080875748938ba060314b4f727d \ - file://GPL-2;md5=751419260aa954499f7abaabaa882bbe \ -" - -SECTION = "x11/applications" -DEPENDS = "glib-2.0 gd gypsy librsvg-native" -RDEPENDS_${PN} = " ${PN}-icons ${PN}-config " -RDEPENDS_${PN}-gui-qml = "qt4-plugin-imageformat-svg" -RRECOMMENDS_${PN} = "gpsd ${PN}-dbus ${PN}-speech-cmdline ${PN}-gui-internal ${PN}-graphics-gtk" -RSUGGESTS_${PN} = "flite-alsa espeak ${PN}-speech-dbus ${PN}-gui-gtk ${PN}-gui-qml ${PN}-graphics-sdl ${PN}-graphics-qt ${PN}-maptool" - -PE = "1" -INC_PR = "r11" - -inherit autotools gettext pkgconfig - -PACKAGECONFIG ?= "qt" -PACKAGECONFIG[fribidi] = "--enable-fribidi,--disable-fribidi,fribidi" -PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2" -PACKAGECONFIG[sdl] = "--enable-graphics-sdl,--disable-graphics-sdl,libsdl" -PACKAGECONFIG[gtk] = "--enable-graphics-gtk-drawing-area --enable-gui-gtk,--disable-graphics-gtk-drawing-area --disable-gui-gtk,gtk+" -PACKAGECONFIG[qt] = "--enable-graphics-qt-qpainter --enable-gui-qml,--disable-graphics-qt-qpainter --disable-gui-qml,qt4-x11-free" - -EXTRA_OECONF += " \ - --disable-binding-python \ - --disable-samplemap \ - --enable-avoid-unaligned \ - --enable-svg2png-scaling-flag=32 \ - --disable-speech-speech-dispatcher \ - --enable-cache-size=20971520 \ -" - -# --enable-avoid-float \ -#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points -require navit-fpu.inc -EXTRA_OECONF += "${@get_navit_fpu_setting(bb, d)}" - -PACKAGES =+ "${PN}-maptool ${PN}-config ${PN}-dbus ${PN}-speech-cmdline ${PN}-speech-dbus ${PN}-gui-gtk ${PN}-gui-internal ${PN}-gui-qml ${PN}-graphics-sdl ${PN}-graphics-gtk ${PN}-graphics-qt ${PN}-icons" - -EXTRA_AUTORECONF = " -I m4" - -CONFFILES_${PN}-config += "${datadir}/navit/navit.default.xml \ - ${datadir}/navit/navit.xml \ - ${datadir}/navit/maps.xml \ - ${datadir}/navit/osd.xml \ - ${datadir}/navit/speech.xml \ - ${datadir}/navit/plugins.xml \ -" - -SRC_URI += "file://navit.xml \ - file://maps.xml \ - file://osd.xml \ - file://speech.xml \ - file://plugins.xml \ -" - -FILES_${PN} += "${libdir}/${PN}/*/*.so ${datadir}/icons" -FILES_${PN}-dbg += "${libdir}/${PN}/*/.debug" -FILES_${PN}-maptool = " ${bindir}/maptool " -FILES_${PN}-config = " ${datadir}/navit/*.xml " -FILES_${PN}-dbus = " ${datadir}/dbus-1/services/ ${libdir}/${PN}/binding/libbinding_dbus.so " -FILES_${PN}-speech-cmdline = " ${libdir}/${PN}/speech/libspeech_cmdline.so " -FILES_${PN}-speech-dbus = " ${libdir}/${PN}/speech/libspeech_dbus.so " -FILES_${PN}-gui-gtk = " ${libdir}/${PN}/gui/libgui_gtk.so " -FILES_${PN}-gui-qml = " ${libdir}/${PN}/gui/libgui_qml.so ${datadir}/navit/skins/ " -FILES_${PN}-gui-internal = " ${libdir}/${PN}/gui/libgui_internal.so " -FILES_${PN}-graphics-sdl = " ${libdir}/${PN}/graphics/libgraphics_sdl.so " -FILES_${PN}-graphics-qt = " ${libdir}/${PN}/graphics/libgraphics_qt_qpainter.so " -FILES_${PN}-graphics-gtk = " ${libdir}/${PN}/graphics/libgraphics_gtk_drawing_area.so " -FILES_${PN}-icons = "/usr/share/navit/xpm/" - -do_configure_prepend() { - # MOC=`$PKG_CONFIG QtGui --variable=moc_location` returns only /usr/bin/moc4 which is not available on hosts without Qt - sed -i "s#MOC=#MOC=${STAGING_DIR_NATIVE}#g" ${S}/configure.in -} - -do_install_append() { - # fix QA issue - sed -i 's#Categories=GTK;Utility;Geography;#Categories=Graphics;#g' ${D}${datadir}/applications/navit.desktop - - rm ${D}${libdir}/${PN}/*/*.la - - #Use split config - mv ${D}${datadir}/navit/navit.xml ${D}${datadir}/navit/navit.default.xml - install -m 0644 ${WORKDIR}/navit.xml ${D}${datadir}/navit/navit.xml - install -m 0644 ${WORKDIR}/maps.xml ${D}${datadir}/navit/maps.xml - install -m 0644 ${WORKDIR}/osd.xml ${D}${datadir}/navit/osd.xml - install -m 0644 ${WORKDIR}/speech.xml ${D}${datadir}/navit/speech.xml - install -m 0644 ${WORKDIR}/plugins.xml ${D}${datadir}/navit/plugins.xml -} diff --git a/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch b/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch deleted file mode 100644 index be417926171..00000000000 --- a/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/configure.in.orig 2014-05-10 15:57:18.146362110 +0200 -+++ b/configure.in 2014-05-10 15:59:27.859358845 +0200 -@@ -498,10 +498,13 @@ - AC_SUBST(FRIBIDI_CFLAGS) - AC_SUBST(FRIBIDI_LIBS) - -+AC_ARG_ENABLE(imlib2, [ --disable-imlib2 disable imlib2 support], imlib2=$enableval;imlib2_reason="configure parameter", imlib2=yes) -+if test x"${imlib2}" = "xyes"; then - PKG_CHECK_MODULES(IMLIB2, [imlib2], [imlib2_pkgconfig=yes], [imlib2_pkgconfig=no]) - if test "x$imlib2_pkgconfig" = "xyes"; then - AC_DEFINE(HAVE_IMLIB2, 1, [Define to 1 if you have imlib2]) - fi -+fi - AC_SUBST(IMLIB2_CFLAGS) - AC_SUBST(IMLIB2_LIBS) - diff --git a/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch b/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch deleted file mode 100644 index 288997bca5d..00000000000 --- a/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch +++ /dev/null @@ -1,28 +0,0 @@ -Description: Fix FTBFS caused by freetype headers path change. -Author: Gilles Filippini -Bug-Debian: http://bugs.debian.org/733378 -Index: navit/navit/font/freetype/font_freetype.c -=================================================================== ---- navit.orig/navit/font/freetype/font_freetype.c 2013-09-23 10:43:32.000000000 +0200 -+++ navit/navit/font/freetype/font_freetype.c 2013-12-30 19:54:45.000000000 +0100 -@@ -32,7 +32,7 @@ - #if USE_FRIBIDI - #include - #endif --#include -+#include - #include "point.h" - #include "graphics.h" - #include "debug.h" -diff -uNr navit.orig/navit/graphics/sdl/graphics_sdl.c navit/navit/graphics/sdl/graphics_sdl.c ---- navit.orig/navit/graphics/sdl/graphics_sdl.c 2012-06-22 14:16:01.000000000 +0200 -+++ navit/navit/graphics/sdl/graphics_sdl.c 2014-01-01 22:31:10.892948164 +0100 -@@ -84,7 +84,7 @@ - #else - #include - #include FT_FREETYPE_H --#include -+#include - #endif - #include - diff --git a/meta-oe/recipes-navigation/navit/navit/maps.xml b/meta-oe/recipes-navigation/navit/navit/maps.xml deleted file mode 100644 index 6f59f20c39e..00000000000 --- a/meta-oe/recipes-navigation/navit/navit/maps.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/meta-oe/recipes-navigation/navit/navit/navit.xml b/meta-oe/recipes-navigation/navit/navit/navit.xml deleted file mode 100644 index 58c8c226f2f..00000000000 --- a/meta-oe/recipes-navigation/navit/navit/navit.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/meta-oe/recipes-navigation/navit/navit/osd.xml b/meta-oe/recipes-navigation/navit/navit/osd.xml deleted file mode 100644 index 2d0f9ffdf4c..00000000000 --- a/meta-oe/recipes-navigation/navit/navit/osd.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/meta-oe/recipes-navigation/navit/navit/plugins.xml b/meta-oe/recipes-navigation/navit/navit/plugins.xml deleted file mode 100644 index 015b05517fa..00000000000 --- a/meta-oe/recipes-navigation/navit/navit/plugins.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/meta-oe/recipes-navigation/navit/navit/speech.xml b/meta-oe/recipes-navigation/navit/navit/speech.xml deleted file mode 100644 index 28c49906d91..00000000000 --- a/meta-oe/recipes-navigation/navit/navit/speech.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/meta-oe/recipes-navigation/navit/navit_svn.bb b/meta-oe/recipes-navigation/navit/navit_svn.bb deleted file mode 100644 index eff1eb32f26..00000000000 --- a/meta-oe/recipes-navigation/navit/navit_svn.bb +++ /dev/null @@ -1,11 +0,0 @@ -require navit.inc - -SRCREV = "5310" -PV = "0.2.0+svnr${SRCPV}" -PR = "${INC_PR}.3" - -S = "${WORKDIR}/${PN}" -SRC_URI += "svn://anonymous@navit.svn.sourceforge.net/svnroot/navit/trunk;module=navit;protocol=http \ - file://freetype-include-path.patch \ - file://configure.add.imlib2.option.patch \ -" diff --git a/meta-oe/recipes-navigation/omgps/omgps/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch b/meta-oe/recipes-navigation/omgps/omgps/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch deleted file mode 100644 index 6b9f465a2cf..00000000000 --- a/meta-oe/recipes-navigation/omgps/omgps/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 22bcf06637d64e40af6c152e28b31eef41e3f583 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 13 Jun 2013 02:35:22 -0700 -Subject: [PATCH] g_type_init() is deprecated for glib >= 2.35.0 - -Call it for old versions. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - src/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/main.c b/src/main.c -index e984da4..a63ddf3 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -486,9 +486,9 @@ int main(int argc, char **argv) - if (strcmp(argv[1], "-log2file") == 0) - log2console = FALSE; - } -- -+#if !GLIB_CHECK_VERSION(2,35,0) - g_type_init(); -- -+#endif - gdk_threads_init(); - - gdk_threads_enter(); --- -1.7.9.5 - diff --git a/meta-oe/recipes-navigation/omgps/omgps/fix.build.with.gcc.4.9.patch b/meta-oe/recipes-navigation/omgps/omgps/fix.build.with.gcc.4.9.patch deleted file mode 100644 index 1680bc0627f..00000000000 --- a/meta-oe/recipes-navigation/omgps/omgps/fix.build.with.gcc.4.9.patch +++ /dev/null @@ -1,22 +0,0 @@ -omgps: omgps fails compilation due to uninitialized variables - -omgps does not compile with gcc 4.9 due to uninitialized variables -with the option -Werror=maybe-uninitialized -To solve the problem, just initiated the variable and checked for side -effects. -Upstream-Status: Submitted -+https://code.google.com/p/omgps/issues/detail?id=16 - -Signed-off-by: Raphael Silva -diff -urpN omgps.orig/src/sound.c omgps/src/sound.c ---- omgps.orig/src/sound.c 2014-12-14 15:13:29.609243994 -0200 -+++ omgps/src/sound.c 2014-12-14 15:14:13.831116745 -0200 -@@ -44,7 +44,7 @@ static gboolean play_sound_files(char *f - return FALSE; - - char *bak = strdup(files); -- char *saveptr; -+ char *saveptr = NULL; - char *p = strtok_r(bak, ";", &saveptr); - - #define MAX_SOUND_FILES 14 diff --git a/meta-oe/recipes-navigation/omgps/omgps/fix.build.with.glib.2.34.patch b/meta-oe/recipes-navigation/omgps/omgps/fix.build.with.glib.2.34.patch deleted file mode 100644 index ec3bde0cd7e..00000000000 --- a/meta-oe/recipes-navigation/omgps/omgps/fix.build.with.glib.2.34.patch +++ /dev/null @@ -1,125 +0,0 @@ -Upstream-Status: Submitted -https://code.google.com/p/omgps/issues/detail?id=15 - -diff -uNr omgps.orig/src/dbus_intf.c omgps/src/dbus_intf.c ---- omgps.orig/src/dbus_intf.c 2011-12-12 12:22:47.000000000 +0100 -+++ omgps/src/dbus_intf.c 2012-11-14 14:44:45.435381443 +0100 -@@ -171,7 +171,7 @@ - gpsdata->svinfo_valid = TRUE; - - int i, j; -- GValueArray *val; -+ GArray *val; - svinfo_channel_t *sv; - - j = 0; -@@ -179,16 +179,16 @@ - val = satellites->pdata[i]; - - sv = &gpsdata->sv_channels[j]; -- sv->sv_id = g_value_get_uint(g_value_array_get_nth(val, 0)); -+ sv->sv_id = g_array_index(val, guint, 0); - -- if (g_value_get_boolean(g_value_array_get_nth(val, 1))) { -+ if (g_array_index(val, gboolean, 1)) { - ++gpsdata->sv_in_use; - sv->flags = 0x01; - } - -- sv->elevation = (int)g_value_get_uint(g_value_array_get_nth(val, 2)); -- sv->azimuth = (int)g_value_get_uint(g_value_array_get_nth(val, 3)); -- sv->cno = g_value_get_uint(g_value_array_get_nth(val, 4)); -+ sv->elevation = (int)g_array_index(val, guint, 2); -+ sv->azimuth = (int)g_array_index(val, guint, 3); -+ sv->cno = g_array_index(val, guint, 4); - if (sv->cno > 0) - ++gpsdata->sv_get_signal; - -diff -uNr omgps.orig/src/main.c omgps/src/main.c ---- omgps.orig/src/main.c 2011-12-12 12:22:47.000000000 +0100 -+++ omgps/src/main.c 2012-11-14 14:46:00.345402222 +0100 -@@ -489,9 +489,6 @@ - - g_type_init(); - -- if (! g_thread_supported ()) -- g_thread_init(NULL); -- - gdk_threads_init(); - - gdk_threads_enter(); -diff -uNr omgps.orig/src/tab_gpscfg.c omgps/src/tab_gpscfg.c ---- omgps.orig/src/tab_gpscfg.c 2011-12-12 12:22:47.000000000 +0100 -+++ omgps/src/tab_gpscfg.c 2012-11-14 15:23:47.526925258 +0100 -@@ -222,7 +222,7 @@ - - static gboolean change_platform_model_cmd(void *model_id) - { -- U1 model = (U1)(int) model_id; -+ U1 model = (U1)GPOINTER_TO_INT(model_id); - int gps_dev_fd = 0; - - /* non ubx means: we need open serial port -@@ -269,7 +269,7 @@ - static void change_platmodel_button_clicked(GtkWidget *widget, gpointer data) - { - int idx = gtk_combo_box_get_active(GTK_COMBO_BOX(platmodel_list)); -- char *model_id = (void *)(int)platmodel_values[idx]; -+ void *model_id = (void *)GINT_TO_POINTER(platmodel_values[idx]); - - if (POLL_ENGINE_TEST(UBX)) { - gtk_widget_set_sensitive(change_platmodel_button, FALSE); -diff -uNr omgps.orig/src/tab_menu.c omgps/src/tab_menu.c ---- omgps.orig/src/tab_menu.c 2011-12-12 12:22:47.000000000 +0100 -+++ omgps/src/tab_menu.c 2012-11-14 15:25:08.217941513 +0100 -@@ -65,7 +65,7 @@ - - static void poll_button_clicked(GtkWidget *widget, gpointer data) - { -- gboolean is_start_bt = (gboolean)data; -+ gboolean is_start_bt = (gboolean) GPOINTER_TO_INT(data); - - if (POLL_STATE_TEST(RUNNING) == is_start_bt) - return; -diff -uNr omgps.orig/src/tab_tile.c omgps/src/tab_tile.c ---- omgps.orig/src/tab_tile.c 2011-12-12 12:22:47.000000000 +0100 -+++ omgps/src/tab_tile.c 2012-11-14 15:25:30.392945800 +0100 -@@ -101,7 +101,7 @@ - static gboolean set_bg_map(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) - { - map_repo_t *repo; -- gboolean clear = (gboolean)data; -+ gboolean clear = (gboolean)GPOINTER_TO_INT(data); - - int type; - -@@ -240,7 +240,7 @@ - - static void alpha_radio_toggled (GtkWidget *widget, gpointer user_data) - { -- int idx = (int)user_data; -+ int idx = (int)GPOINTER_TO_INT(user_data); - - if (g_view.bg_alpha_idx == idx) - return; -@@ -384,7 +384,7 @@ - - for (i=0; i - #include - --#if (HAVE_SYS_CAPABILITY_H) --#undef _POSIX_SOURCE --#include --#endif -- - #include "config.h" - #include "util.h" - #include "network.h" - #include "customized.h" - -+#if (HAVE_SYS_CAPABILITY_H) -+#undef _POSIX_SOURCE -+#include -+#endif -+ - /** - * Ping: reference , volume 1, third edition. - */ ---- omgps.orig/Makefile.am 2009-10-28 18:51:17.000000000 +0100 -+++ omgps/Makefile.am 2011-05-09 10:04:58.578676679 +0200 -@@ -33,7 +33,7 @@ - - omgps_CFLAGS = $(common_CFLAGS) -O2 - omgps_LDFLAGS = --omgps_LDADD = @DEPENDENCIES_LIBS@ -lpython$(PY_VERSION) -+omgps_LDADD = @DEPENDENCIES_LIBS@ -lcap -lpython$(PY_VERSION) - - omgps_SOURCES = \ - src/ctx_agps_online.c \ diff --git a/meta-oe/recipes-navigation/omgps/omgps/gcc-4.4.patch b/meta-oe/recipes-navigation/omgps/omgps/gcc-4.4.patch deleted file mode 100644 index 41f6471d4c6..00000000000 --- a/meta-oe/recipes-navigation/omgps/omgps/gcc-4.4.patch +++ /dev/null @@ -1,71 +0,0 @@ -Upstream-Status: Submitted -https://code.google.com/p/omgps/issues/detail?id=15 - -diff -uNr omgps.orig/src/include/map_repo.h omgps/src/include/map_repo.h ---- omgps.orig/src/include/map_repo.h 2009-07-20 19:54:08.000000000 +0200 -+++ omgps/src/include/map_repo.h 2010-01-17 14:55:24.000000000 +0100 -@@ -3,6 +3,9 @@ - - #include - #include -+// workaround Python.h unconditionally (re)defines _XOPEN_SOURCE and _POSIX_C_SOURCE -+#undef _XOPEN_SOURCE -+#undef _POSIX_C_SOURCE - #include - - #define MAP_MAX_BG_COLORS 5 -diff -uNr omgps.orig/src/include/py_ext.h omgps/src/include/py_ext.h ---- omgps.orig/src/include/py_ext.h 2009-07-20 19:54:08.000000000 +0200 -+++ omgps/src/include/py_ext.h 2010-01-17 14:55:57.000000000 +0100 -@@ -4,8 +4,8 @@ - void py_ext_init(); - void py_ext_cleanup(); - --void inline py_ext_trylock(); --void inline py_ext_lock(); --void inline py_ext_unlock(); -+void py_ext_trylock(); -+void py_ext_lock(); -+void py_ext_unlock(); - - #endif /* PY_EXT_H_ */ -diff -uNr omgps.orig/src/include/uart.h omgps/src/include/uart.h ---- omgps.orig/src/include/uart.h 2009-07-20 19:54:08.000000000 +0200 -+++ omgps/src/include/uart.h 2010-01-17 14:33:00.000000000 +0100 -@@ -12,9 +12,9 @@ - extern void uart_cleanup(); - extern void uart_close(); - --extern inline int read_with_timeout(U1 *buf, int len); --extern inline int write_with_timeout(U1 *buf, int len); --extern inline gboolean read_fixed_len(U1 *buf, int expected_len); -+extern int read_with_timeout(U1 *buf, int len); -+extern int write_with_timeout(U1 *buf, int len); -+extern gboolean read_fixed_len(U1 *buf, int expected_len); - - extern int sysfs_get_gps_device_power(); - extern gboolean gps_device_power_on(); -diff -uNr omgps.orig/src/py_ext.c omgps/src/py_ext.c ---- omgps.orig/src/py_ext.c 2009-07-20 19:54:08.000000000 +0200 -+++ omgps/src/py_ext.c 2010-01-17 14:56:46.000000000 +0100 -@@ -26,17 +26,17 @@ - Py_Finalize(); - } - --void inline py_ext_trylock() -+void py_ext_trylock() - { - TRYLOCK_MUTEX(&lock); - } - --void inline py_ext_lock() -+void py_ext_lock() - { - LOCK_MUTEX(&lock); - } - --void inline py_ext_unlock() -+void py_ext_unlock() - { - UNLOCK_MUTEX(&lock); - } diff --git a/meta-oe/recipes-navigation/omgps/omgps/gdk-pixbuf-2.26.5.patch b/meta-oe/recipes-navigation/omgps/omgps/gdk-pixbuf-2.26.5.patch deleted file mode 100644 index 688080573c6..00000000000 --- a/meta-oe/recipes-navigation/omgps/omgps/gdk-pixbuf-2.26.5.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Submitted -https://code.google.com/p/omgps/issues/detail?id=15 - -diff -uNr omgps/src/tab_scratch.c omgps.new/src/tab_scratch.c ---- omgps/src/tab_scratch.c 2012-12-22 18:13:25.994788128 +0100 -+++ omgps.new/src/tab_scratch.c 2012-12-22 18:12:45.876790644 +0100 -@@ -51,7 +51,7 @@ - } - - gboolean ret = gdk_pixbuf_save (pixbuf, buf, SCREENSHOT_FILE_TYPE, &err, "tEXt::Software", "omgps", NULL); -- gdk_pixbuf_unref(pixbuf); -+ g_object_unref(pixbuf); - - if (ret) { - char buf1[128]; diff --git a/meta-oe/recipes-navigation/omgps/omgps/sysfs.node.2.6.32.patch b/meta-oe/recipes-navigation/omgps/omgps/sysfs.node.2.6.32.patch deleted file mode 100644 index 290c5e6a795..00000000000 --- a/meta-oe/recipes-navigation/omgps/omgps/sysfs.node.2.6.32.patch +++ /dev/null @@ -1,14 +0,0 @@ -Upstream-Status: Submitted -https://code.google.com/p/omgps/issues/detail?id=15 - -diff -uNr omgps.orig//src/uart.c omgps/src/uart.c ---- omgps.orig//src/uart.c 2010-08-22 23:34:09.000000000 +0200 -+++ omgps/src/uart.c 2010-08-22 23:33:54.000000000 +0200 -@@ -30,6 +30,7 @@ - * NOTE: these file paths are subject to change according to kernel and distribution. - */ - static const char *sysfs_gps_power[] = { -+ "/sys/bus/platform/devices/gta02-pm-gps.0/power_on", - "/sys/bus/platform/devices/neo1973-pm-gps.0/power_on", - "/sys/bus/platform/devices/neo1973-pm-gps.0/pwron" - }; diff --git a/meta-oe/recipes-navigation/omgps/omgps/use.unused.variable.patch b/meta-oe/recipes-navigation/omgps/omgps/use.unused.variable.patch deleted file mode 100644 index 3ccb14ea943..00000000000 --- a/meta-oe/recipes-navigation/omgps/omgps/use.unused.variable.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Submitted -https://code.google.com/p/omgps/issues/detail?id=15 - ---- a/src/settings.c 2011-12-12 13:21:30.573400795 +0100 -+++ b/src/settings.c 2011-12-12 14:11:05.269606119 +0100 -@@ -278,6 +278,9 @@ - } - - ret = check_settings(errbuf, ERRBUF_LEN); -+ if (ret == FALSE) { -+ snprintf(errbuf, ERRBUF_LEN, "Something wrong while loading settings file"); -+ } - - if (fd > 0) - close(fd); diff --git a/meta-oe/recipes-navigation/omgps/omgps_svn.bb b/meta-oe/recipes-navigation/omgps/omgps_svn.bb deleted file mode 100644 index 391545e39ef..00000000000 --- a/meta-oe/recipes-navigation/omgps/omgps_svn.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "GPS application for openmoko freerunner" -HOMEPAGE = "http://omgps.googlecode.com" -SECTION = "openmoko/applications" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -DEPENDS = "gtk+ python-pygobject dbus-glib libcap" -SRCREV = "109" -PV = "0.1+svnr${SRCPV}" -PR = "r2" -S = "${WORKDIR}/${PN}" - -do_configure_prepend() { - sed -i "s#PY_VERSION = 2.6#PY_VERSION = ${PYTHON_BASEVERSION}#g" ${S}/Makefile.am - sed -i "s#PY_INC_DIR = \$(OPIEDIR)#PY_INC_DIR = ${STAGING_DIR_HOST}#g" ${S}/Makefile.am - sed -i "s#dist_conf_DATA = data/etc/\*\.\*#dist_conf_DATA = ${S}/data/etc/\*\.\*#g" ${S}/Makefile.am -} - -SRC_URI = "svn://omgps.googlecode.com/svn/trunk;module=omgps;protocol=http \ - file://gcc-4.4.patch \ - file://sysfs.node.2.6.32.patch \ - file://fix.capability.patch \ - file://use.unused.variable.patch \ - file://fix.build.with.glib.2.34.patch \ - file://gdk-pixbuf-2.26.5.patch \ - file://0001-g_type_init-is-deprecated-for-glib-2.35.0.patch \ - file://fix.build.with.gcc.4.9.patch \ -" - -inherit autotools pkgconfig diff --git a/meta-oe/recipes-navigation/orrery/orrery/0001-orrery-Fix-sprintf-format.patch b/meta-oe/recipes-navigation/orrery/orrery/0001-orrery-Fix-sprintf-format.patch new file mode 100644 index 00000000000..eb6241fdd0d --- /dev/null +++ b/meta-oe/recipes-navigation/orrery/orrery/0001-orrery-Fix-sprintf-format.patch @@ -0,0 +1,26 @@ +From e600d3c09d2f97a197f86e6987d44d142e7b7cdf Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 21:12:17 -0700 +Subject: [PATCH] orrery: Fix sprintf format + +Signed-off-by: Khem Raj +--- + orrery.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/orrery.c b/orrery.c +index e3a1f6d..1b31a9f 100644 +--- a/orrery.c ++++ b/orrery.c +@@ -3767,7 +3767,7 @@ static void drawOptsScreens(void) + displayWidth/2 - gdk_string_width(smallFont, scratchString)/2, + 12, scratchString); + for (day = 0; day < 7; day++) { +- sprintf(scratchString, dayName[day]); ++ sprintf(scratchString, "%s", dayName[day]); + gdk_draw_string(pixmap, smallFont, blueGC, + CAL_DAY_WIDTH/2 + day*CAL_DAY_WIDTH + CAL_LEFT_OFFSET - + gdk_string_width(smallFont, scratchString)/2, +-- +2.13.2 + diff --git a/meta-oe/recipes-navigation/orrery/orrery_2.7.bb b/meta-oe/recipes-navigation/orrery/orrery_2.7.bb index e6cbffcf4e1..1a00b080842 100644 --- a/meta-oe/recipes-navigation/orrery/orrery_2.7.bb +++ b/meta-oe/recipes-navigation/orrery/orrery_2.7.bb @@ -10,12 +10,13 @@ inherit autotools-brokensep pkgconfig SRC_URI = "http://projects.openmoko.org/frs/download.php/923/orrery_2.7_clean.tar.gz \ file://orrery.png \ file://use.GdkPixbuf.patch \ -" + file://0001-orrery-Fix-sprintf-format.patch \ + " SRC_URI[md5sum] = "bd62a33e7554ee1030313dfcdefcda8b" SRC_URI[sha256sum] = "645166a5e05b2064ab630534a514697fc47b681951e7fe1d635c259cbdf7a5e6" -S = "${WORKDIR}/${PN}" +S = "${WORKDIR}/${BPN}" do_configure_prepend() { # fix DSO issue with binutils-2.22 @@ -23,7 +24,8 @@ do_configure_prepend() { } do_install_append() { install -d ${D}${datadir}/orrery - cp -a ${S}/data/* ${D}${datadir}/orrery + cp -R --no-dereference --preserve=mode,links -v ${S}/data/* ${D}${datadir}/orrery + chown -R root:root ${D}${datadir}/orrery install -d ${D}${datadir}/icons install -m 0755 ${WORKDIR}/orrery.png ${D}${datadir}/icons } diff --git a/meta-oe/recipes-navigation/proj/proj_4.8.0.bb b/meta-oe/recipes-navigation/proj/proj_4.8.0.bb deleted file mode 100644 index b4bfaf4f39f..00000000000 --- a/meta-oe/recipes-navigation/proj/proj_4.8.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "PROJ.4 - Cartographic Projections library" -HOMEPAGE = "http://trac.osgeo.org/proj/" -SECTION = "libs" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608" - -SRC_URI = "http://download.osgeo.org/proj/proj-${PV}.tar.gz" -SRC_URI[md5sum] = "d815838c92a29179298c126effbb1537" -SRC_URI[sha256sum] = "2db2dbf0fece8d9880679154e0d6d1ce7c694dd8e08b4d091028093d87a9d1b5" - -inherit autotools pkgconfig lib_package - -FILES_${PN} += "${datadir}/proj" diff --git a/meta-oe/recipes-navigation/proj/proj_4.9.3.bb b/meta-oe/recipes-navigation/proj/proj_4.9.3.bb new file mode 100644 index 00000000000..f45f8948d53 --- /dev/null +++ b/meta-oe/recipes-navigation/proj/proj_4.9.3.bb @@ -0,0 +1,14 @@ +SUMMARY = "PROJ.4 - Cartographic Projections library" +HOMEPAGE = "http://trac.osgeo.org/proj/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608" + +SRC_URI = "http://download.osgeo.org/proj/proj-${PV}.tar.gz" +SRC_URI[md5sum] = "d598336ca834742735137c5674b214a1" +SRC_URI[sha256sum] = "6984542fea333488de5c82eea58d699e4aff4b359200a9971537cd7e047185f7" + +inherit autotools pkgconfig lib_package + +FILES_${PN} += "${datadir}/proj" diff --git a/meta-oe/recipes-qt/fingerterm/fingerterm_1.0.2.bb b/meta-oe/recipes-qt/fingerterm/fingerterm_1.0.2.bb deleted file mode 100644 index 155d2829ebe..00000000000 --- a/meta-oe/recipes-qt/fingerterm/fingerterm_1.0.2.bb +++ /dev/null @@ -1,43 +0,0 @@ -DESCRIPTION = "A terminal emulator for Harmattan (Nokia N9/N950) with a custom \ -virtual keyboard and usability-enhancing features such as URL grabber, pan \ -gestures and customizable shortcut menu. Designed especially to be used with \ -screen and irssi." -HOMEPAGE = "http://hqh.unlink.org/harmattan" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SECTION = "qt/app" - - -inherit qt4x11 pkgconfig - -SRC_URI = " \ - http://hqh.unlink.org/harmattan/fingerterm-${PV}.tar.gz \ -" - -SRC_URI[md5sum] = "d53b0f463c025583cd52accf95715448" -SRC_URI[sha256sum] = "c21a07cc411d09739bd7fa248eba2bf96427b3f032382a044b6674dd82d95150" - -S = "${WORKDIR}/${PN}" - -FILES_${PN} = " \ - ${bindir}/${PN} \ - ${datadir}/applications/${PN}.desktop \ - ${datadir}/pixmaps/${PN}.png \ -" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${S}/${PN} ${D}${bindir} - - sed -i -e '/Exec.*/d' fingerterm.desktop - sed -i -e '/Icon.*/d' fingerterm.desktop - - echo 'Exec=${bindir}/${PN}' >> fingerterm.desktop - echo 'Icon=${PN}' >> fingerterm.desktop - - install -d ${D}${datadir}/applications - install -m 0644 ${S}/${PN}.desktop ${D}${datadir}/applications - - install -d ${D}${datadir}/pixmaps - install -m 0644 ${S}/${PN}.png ${D}${datadir}/pixmaps -} diff --git a/meta-oe/recipes-qt/libconnman-qt/libconnman-qt.inc b/meta-oe/recipes-qt/libconnman-qt/libconnman-qt.inc deleted file mode 100644 index 3f91be2a4d3..00000000000 --- a/meta-oe/recipes-qt/libconnman-qt/libconnman-qt.inc +++ /dev/null @@ -1,52 +0,0 @@ -DESCRIPTION = "Qt Library for ConnMan" -HOMEPAGE = "https://github.com/nemomobile/libconnman-qt" -SECTION = "qt/lib" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://libconnman-qt/clockmodel.h;endline=8;md5=ea9f724050803f15d2d900ce3c5dac88" -SRCREV = "80ac184d859ea90c026403f5a520644945a5081a" -PV = "1.0.50+git${SRCPV}" - -SRC_URI = "git://github.com/nemomobile/libconnman-qt.git;branch=master" - -S = "${WORKDIR}/git" - -inherit pkgconfig - -EXTRA_QMAKEVARS_PRE += "CONFIG+=notests TARGET_SUFFIX=${QT_DIR_NAME}" - -do_configure_prepend() { - # Hack *.pro variables - find ${S}/plugin/*.pro -exec sed -i -e 's,$$\[QT_INSTALL_IMPORTS\],${QT_IMPORTS_DIR},g' '{}' ';' -} -do_install() { - oe_runmake install INSTALL_ROOT=${D} -} - -PACKAGES =+ "${PN}-plugin ${PN}-plugin-dbg" - -RDEPENDS_${PN} = "connman" -RDEPENDS_${PN}-plugin = "${PN}" - -RRECOMMENDS_${PN} = "${PN}-plugin" - -FILES_${PN} = " \ - ${libdir}/libconnman-qt*${SOLIBS} \ -" -FILES_${PN}-dev = " \ - ${includedir}/connman-qt*/* \ - ${libdir}/libconnman-qt*${SOLIBSDEV} \ - ${libdir}/libconnman-qt*.prl \ - ${libdir}/pkgconfig/connman-qt*.pc \ -" -FILES_${PN}-plugin = " \ - ${PLUGINS_TARGET}/qmldir \ - ${PLUGINS_TARGET}/lib*.so \ -" -FILES_${PN}-plugin-dbg = " \ - ${PLUGINS_TARGET}/.debug \ - ${PLUGINS_TARGET}/.debug/* \ -" - -QT_IMPORTS_DIR = "${libdir}/${QT_DIR_NAME}/imports" -# the plugin target needs to be the same as 'target.path' and 'qmldir.path' in ${S}/plugin/plugin.pro -PLUGINS_TARGET = "${QT_IMPORTS_DIR}/MeeGo/Connman" diff --git a/meta-oe/recipes-qt/libconnman-qt/libconnman-qt_git.bb b/meta-oe/recipes-qt/libconnman-qt/libconnman-qt_git.bb deleted file mode 100644 index 8d8822c5e1c..00000000000 --- a/meta-oe/recipes-qt/libconnman-qt/libconnman-qt_git.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit qt4x11 - -require libconnman-qt.inc diff --git a/meta-oe/recipes-qt/libconnman-qt/libconnman-qte/plugin.pro-fix-build-with-custom-target-suffix.patch b/meta-oe/recipes-qt/libconnman-qt/libconnman-qte/plugin.pro-fix-build-with-custom-target-suffix.patch deleted file mode 100644 index 3ff68c8dc50..00000000000 --- a/meta-oe/recipes-qt/libconnman-qt/libconnman-qte/plugin.pro-fix-build-with-custom-target-suffix.patch +++ /dev/null @@ -1,42 +0,0 @@ -Upstream-Status: Submitted [https://github.com/nemomobile/libconnman-qt/pull/105] - -From 48da520b971af69d22e691a0ef6ff1c3ce901f0d Mon Sep 17 00:00:00 2001 -From: Andreas Oberritter -Date: Tue, 11 Mar 2014 21:55:37 +0100 -Subject: [PATCH] plugin.pro: fix build with custom target suffix - -This went unnoticed because of a previously installed libconnman-qt4. - -Signed-off-by: Andreas Oberritter ---- - plugin/plugin.pro | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/plugin/plugin.pro b/plugin/plugin.pro -index c9534cf..9cdaa63 100644 ---- a/plugin/plugin.pro -+++ b/plugin/plugin.pro -@@ -8,14 +8,18 @@ INCLUDEPATH += ../libconnman-qt - LIBS += -L../libconnman-qt - QT -= gui - -+isEmpty(TARGET_SUFFIX) { -+ TARGET_SUFFIX = qt$$QT_MAJOR_VERSION -+} -+ -+LIBS += -l$$qtLibraryTarget(connman-$$TARGET_SUFFIX) -+ - equals(QT_MAJOR_VERSION, 4): { - QT += declarative -- LIBS += -lconnman-qt4 - } - - equals(QT_MAJOR_VERSION, 5): { - QT += qml -- LIBS += -lconnman-qt5 - OTHER_FILES += plugin.json qmldirs - } - --- -1.8.3.2 - diff --git a/meta-oe/recipes-qt/libconnman-qt/libconnman-qte_git.bb b/meta-oe/recipes-qt/libconnman-qt/libconnman-qte_git.bb deleted file mode 100644 index 9d44957ac20..00000000000 --- a/meta-oe/recipes-qt/libconnman-qt/libconnman-qte_git.bb +++ /dev/null @@ -1,5 +0,0 @@ -inherit qt4e - -require libconnman-qt.inc - -SRC_URI += "file://plugin.pro-fix-build-with-custom-target-suffix.patch" diff --git a/meta-oe/recipes-qt/libqofono/libqofono_0.4.bb b/meta-oe/recipes-qt/libqofono/libqofono_0.4.bb deleted file mode 100644 index d526044401a..00000000000 --- a/meta-oe/recipes-qt/libqofono/libqofono_0.4.bb +++ /dev/null @@ -1,83 +0,0 @@ -SUMMARY = "Qt Library for oFono" -HOMEPAGE = "https://github.com/nemomobile/libqofono" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://README;endline=3;md5=8a15bce3921d1238d9a9f23828612947" - -SECTION = "qt/lib" - -BRANCH = "master" -PV = "0.4+gitr${SRCPV}" -SRCREV = "05055a4b4a579facd007a0a128696030228e0b88" - -inherit qt4x11 pkgconfig - -RDEPENDS_${PN} = "ofono" -RDEPENDS_${PN}-plugin = "${PN}" - -PACKAGES =+ "${PN}-plugin ${PN}-plugin-dbg ${PN}-test" -RRECOMMENDS_${PN} = "${PN}-plugin" - -SRC_URI = " \ - git://github.com/nemomobile/${BPN}.git;branch=${BRANCH} \ -" -S = "${WORKDIR}/git" - -QT_IMPORTS_DIR = "${libdir}/qt4/imports" -PLUGINS_TARGET = "${QT_IMPORTS_DIR}/MeeGo/QOfono" - -FILES_${PN} = " \ - ${libdir}/libqofono${SOLIBS} \ -" - -FILES_${PN}-dev = " \ - ${includedir}/qofono/* \ - ${includedir}/qofono/dbus/* \ - ${libdir}/libqofono${SOLIBSDEV} \ - ${libdir}/libqofono.prl \ - ${libdir}/pkgconfig/qofono.pc \ - ${datadir}/qt4/mkspecs/features/qofono.prf \ -" - -FILES_${PN}-plugin = " \ - ${PLUGINS_TARGET}/qmldir \ - ${PLUGINS_TARGET}/lib*.so \ -" - -FILES_${PN}-plugin-dbg = " \ - ${PLUGINS_TARGET}/.debug \ -" - -FILES_${PN}-test = " \ - /opt/ofonotest/bin/ofonotest \ - /opt/ofonotest/qml/ofonotest \ - ${libdir}/libqofono/tests/tst_qofonotest \ -" - -FILES_${PN}-dbg += " \ - /opt/ofonotest/bin/.debug \ - ${libdir}/libqofono/tests/.debug \ -" - -EXTRA_QMAKEVARS_PRE = " \ - PREFIX=${prefix} \ -" - -do_configure_prepend() { - # Hack *.pro variables - find . -iname '*.pro' -exec sed -i -e 's,$$\[QT_INSTALL_IMPORTS\],${QT_IMPORTS_DIR},g' '{}' ';' - find . -iname '*.pro' -exec sed -i -e 's,$$\[QT_INSTALL_PREFIX\],$$INSTALL_ROOT$$PREFIX,g' '{}' ';' -} - -do_install() { - export INSTALL_ROOT=${D} - oe_runmake install - - cd ${D}/${datadir}/qt4/mkspecs/features - - sed -i -e '/DEPENDPATH.*/d; /INCLUDEPATH.*/d; /LIBS.*/d' ${D}/${datadir}/qt4/mkspecs/features/qofono.prf - - # to make it work with the SDK - echo 'DEPENDPATH += $(OE_QMAKE_INCDIR_QT)/../qofono' >> ${D}/${datadir}/qt4/mkspecs/features/qofono.prf - echo 'INCLUDEPATH += $(OE_QMAKE_INCDIR_QT)/../qofono' >> ${D}/${datadir}/qt4/mkspecs/features/qofono.prf - echo 'LIBS += -lqofono' >> ${D}/${datadir}/qt4/mkspecs/features/qofono.prf -} diff --git a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver-socketcan_svn.bb b/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver-socketcan_svn.bb deleted file mode 100644 index 9852b0c08b5..00000000000 --- a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver-socketcan_svn.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "The Linux CAN Sniffer - SocketCAN driver" - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://../../../modeltest/LICENSE.GPL;md5=34337af480a8c452bfafe22a78fa20cb" - -inherit qt4x11 - -DEPENDS += "qwt libsocketcan" - -PV = "0.5+svnr${SRCPV}" -SRCREV = "48" -SRC_URI = "svn://qcanobserver.svn.sourceforge.net/svnroot;module=qcanobserver;protocol=https" - -S = "${WORKDIR}/qcanobserver/DeviceLib/linux/SocketCAN" - -CXXFLAGS += " -DPF_CAN=29 -DAF_CAN=PF_CAN" - -do_configure_prepend() { - sed -i s:/usr/include/qwt5/:${STAGING_INCDIR}:g *.pro -} - -do_install() { - install -d ${D}${datadir}/qcanobserver/lib - - install -m 0755 ${S}/lib* ${D}${datadir}/qcanobserver/lib/ -} - -FILES_${PN} += "${datadir}/qcanobserver/lib" -FILES_${PN}-dbg += "${datadir}/qcanobserver/lib/.debug" - diff --git a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/0001-messagebufferinterface.cpp-add-sys-socket.h-as-inclu.patch b/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/0001-messagebufferinterface.cpp-add-sys-socket.h-as-inclu.patch deleted file mode 100644 index 1b3da3babf2..00000000000 --- a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/0001-messagebufferinterface.cpp-add-sys-socket.h-as-inclu.patch +++ /dev/null @@ -1,41 +0,0 @@ -From ebb464e3dfa2d59d65c3aa8ee652cb7607481f61 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Thu, 10 Nov 2011 19:38:27 +0100 -Subject: [PATCH] messagebufferinterface.cpp: move sys/socket.h include - -This prevents the following error during cross-compiling: - -| In file included from messagebufferinterface.cpp:30: -| /OE/angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/linux/can.h:81: error: 'sa_family_t' does not name a type - -Signed-off-by: Koen Kooi ---- - messagebufferinterface.cpp | 7 ++++--- - 1 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/messagebufferinterface.cpp b/messagebufferinterface.cpp -index 116564c..3e9a535 100644 ---- a/messagebufferinterface.cpp -+++ b/messagebufferinterface.cpp -@@ -25,14 +25,15 @@ - #include - #include - -+#include -+#include -+#include -+ - //#include - //#include - #include - - #include "configdialog.h" --#include --#include --#include - #include - #include - --- -1.7.2.5 - diff --git a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/0002-qconsole-writethread-gcc-4.5-fixes.patch b/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/0002-qconsole-writethread-gcc-4.5-fixes.patch deleted file mode 100644 index 45619237d2f..00000000000 --- a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/0002-qconsole-writethread-gcc-4.5-fixes.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 3b3cb5212b5dbf182beed171045e5d179b2e9000 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 11 Nov 2011 09:32:14 +0100 -Subject: [PATCH 2/2] qconsole, writethread: gcc 4.5 fixes - -Signed-off-by: Koen Kooi ---- - qconsole.cpp | 2 +- - writethread.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/qconsole.cpp b/qconsole.cpp -index ea86957..b5a4687 100644 ---- a/qconsole.cpp -+++ b/qconsole.cpp -@@ -22,7 +22,7 @@ QConsole::QConsole() - - { - this->setReadOnly(true); -- QTextEdit::QTextEdit(NULL); -+ QTextEdit(NULL); - } - - -diff --git a/writethread.cpp b/writethread.cpp -index ef7bc13..ff19560 100755 ---- a/writethread.cpp -+++ b/writethread.cpp -@@ -69,7 +69,7 @@ void WriteThread::setDev(void *ConfData, QString InterfaceLib, bool shareDevLib) - if(!handle) - { - QString *ErrStr = new QString(" "); -- ErrStr->sprintf("%s %s","Could not load Device Mapper: ", InterfaceLib); -+ ErrStr->sprintf("%s %s","Could not load Device Mapper: ", (char*)InterfaceLib.constData()); - ErrorDialog *ed = new ErrorDialog; - ed->SetErrorMessage(*ErrStr); - delete ErrStr; --- -1.7.2.5 - diff --git a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/candemo.xml b/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/candemo.xml deleted file mode 100755 index 304713fdda7..00000000000 --- a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver/candemo.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver_svn.bb b/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver_svn.bb deleted file mode 100644 index 4b566f7a336..00000000000 --- a/meta-oe/recipes-qt/nonworking/qcanobserver/qcanobserver_svn.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "The Linux CAN Sniffer" - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://modeltest/LICENSE.GPL;md5=34337af480a8c452bfafe22a78fa20cb" - -inherit qt4x11 - -DEPENDS += "qwt" - -PV = "0.5+svnr${SRCPV}" -SRCREV = "48" -SRC_URI = "svn://qcanobserver.svn.sourceforge.net/svnroot;module=qcanobserver;protocol=https \ - file://0001-messagebufferinterface.cpp-add-sys-socket.h-as-inclu.patch \ - file://0002-qconsole-writethread-gcc-4.5-fixes.patch \ - file://candemo.xml" - -S = "${WORKDIR}/qcanobserver/" - -CXXFLAGS += " -DPF_CAN=29 -DAF_CAN=PF_CAN" - -do_configure_prepend() { - sed -i -e s:/usr/include/qwt5/:${STAGING_INCDIR}:g -e 's:-L/usr/lib/:-L${STAGING_DIR_TARGET}/lib -ldl:g' *.pro -} - -do_configure_append() { - sed -i -e s:-L/usr/lib::g Makefile -} - -do_install() { - install -d ${D}${datadir}/qcanobserver - install -d ${D}${datadir}/qcanobserver/cfg - install -d ${D}${datadir}/qcanobserver/lib - install -d ${D}${datadir}/qcanobserver/db - - install -m 0755 ${S}/QCanObserver ${D}${datadir}/qcanobserver - - install -m 0644 ${WORKDIR}/candemo.xml ${D}${datadir}/qcanobserver/db - install -m 0644 ${S}/db/*.xml ${D}${datadir}/qcanobserver/db -} - -FILES_${PN}-dbg += "${datadir}/qcanobserver/.debug" diff --git a/meta-oe/recipes-qt/qconnman/qconnman-e_git.bb b/meta-oe/recipes-qt/qconnman/qconnman-e_git.bb deleted file mode 100644 index e307a72c19a..00000000000 --- a/meta-oe/recipes-qt/qconnman/qconnman-e_git.bb +++ /dev/null @@ -1,12 +0,0 @@ -require qconnman.inc - -RCONFLICTS_${PN} = "qconnman" - -inherit qt4e - -PNBLACKLIST[qconnman-e] ?= "BROKEN: doesn't work with B!=S, ls: cannot access *.pro: No such file or directory" - -EXTRA_QMAKEVARS_PRE += "PREFIX=/usr" -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" - -FILES_${PN} += "${datadir}/qconnman/" diff --git a/meta-oe/recipes-qt/qconnman/qconnman.inc b/meta-oe/recipes-qt/qconnman/qconnman.inc deleted file mode 100644 index 664f2a02fd4..00000000000 --- a/meta-oe/recipes-qt/qconnman/qconnman.inc +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "ConnMan management interface done in Qt" -DEPENDS = "connman" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -PR = "r2" - -inherit autotools - -PV = "0.0+gitr${SRCPV}" -SRCREV = "f976b18c7c5584627224784801803e9fd3ebe0ff" -SRC_URI = "git://github.com/OSSystems/qconnman-ui.git;branch=stable" - -S = "${WORKDIR}/git/" diff --git a/meta-oe/recipes-qt/qconnman/qconnman_git.bb b/meta-oe/recipes-qt/qconnman/qconnman_git.bb deleted file mode 100644 index 2f8cca25a0c..00000000000 --- a/meta-oe/recipes-qt/qconnman/qconnman_git.bb +++ /dev/null @@ -1,10 +0,0 @@ -require qconnman.inc - -RCONFLICTS_${PN} = "qconnman-e" - -inherit qt4x11 - -PNBLACKLIST[qconnman] ?= "BROKEN: doesn't work with B!=S, ls: cannot access *.pro: No such file or directory" - -EXTRA_QMAKEVARS_PRE += "PREFIX=/usr" -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" diff --git a/meta-oe/recipes-qt/qextserialport/qextserialport_1.2rc.bb b/meta-oe/recipes-qt/qextserialport/qextserialport_1.2rc.bb deleted file mode 100644 index abf48cfc2f8..00000000000 --- a/meta-oe/recipes-qt/qextserialport/qextserialport_1.2rc.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "Qt Ext Serial Port Library" -HOMEPAGE = "http://http://code.google.com/p/qextserialport/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b866a28cda707ec714878bd933f46251" -SECTION = "qt/libs" - - -# 1.2rc as version will sort lower then 1.2 when it's released -REAL_PV = "1.2rc" -PV = "1.1+${REAL_PV}" - -inherit qt4x11 pkgconfig - -DEPENDS = "udev" - -SRC_URI = " \ - http://qextserialport.googlecode.com/files/qextserialport-${REAL_PV}.zip \ -" - -SRC_URI[md5sum] = "ffa061edb9f64666468d18402eee6108" -SRC_URI[sha256sum] = "9cbee267aac9830f9944bb1d13872e51fba400aa9afe158e64f0fe265a0176bc" - -S = "${WORKDIR}/qextserialport-${REAL_PV}" - -FILES_${PN} = "${libdir}/libqextserialport${SOLIBS}" - -FILES_${PN}-dev = " \ - ${libdir}/libqextserialport${SOLIBSDEV} \ - ${libdir}/libqextserialport.prl \ - ${includedir}/QtExtSerialPort/*.h \ - ${datadir}/qt4/mkspecs/features/extserialport.prf \ -" - -FILES_${PN}-dbg += " \ - ${libdir}/.debug/libqextserialport.so* \ -" - -do_configure_prepend() { - # based on the documentation, this line make sure we use udev in linux - cd ${S} && echo "linux*:CONFIG += qesp_linux_udev" > .qmake.cache - - # Hacking hardcoded qmake variables - find *.pro -exec sed -i -e 's,$$\[QT_INSTALL_HEADERS\],${includedir},g' '{}' ';' - find *.pro -exec sed -i -e 's,$$\[QT_INSTALL_LIBS\],${libdir},g' '{}' ';' - find *.pro -exec sed -i -e 's,$$\[QMAKE_MKSPECS\],${datadir}/qt4/mkspecs/,g' '{}' ';' -} - -do_install() { - export INSTALL_ROOT=${D} - oe_runmake install - - # This is necessary to make it work with the qt based SDK - cd ${D}/${datadir}/qt4/mkspecs/features && sed -i -e "s|${STAGING_INCDIR_NATIVE}/qt4|\$(OE_QMAKE_INCDIR_QT)/..|" ./extserialport.prf -} diff --git a/meta-oe/recipes-qt/qt-creator/qt-creator/fix.missing.cpuid.h.patch b/meta-oe/recipes-qt/qt-creator/qt-creator/fix.missing.cpuid.h.patch deleted file mode 100644 index 363bee3e79e..00000000000 --- a/meta-oe/recipes-qt/qt-creator/qt-creator/fix.missing.cpuid.h.patch +++ /dev/null @@ -1,384 +0,0 @@ -From 8be071bbca6a9b8e06a7466d848a2b4b6dbcbc1f Mon Sep 17 00:00:00 2001 -From: Christian Kandeler -Date: Fri, 19 Jul 2013 13:40:30 +0200 -Subject: [PATCH] WIP: Remove x86 assembler code from botan sources. - -Taken from -https://bugreports.qt-project.org/browse/QTCREATORBUG-8107 - -Upstream-Status: Submitted - -Change-Id: I3780aa4551f563c5f43833ec822e3c1add7012f2 ---- - src/libs/3rdparty/botan/botan.cpp | 297 +++----------------------------------- - src/libs/3rdparty/botan/botan.h | 4 +- - 2 files changed, 18 insertions(+), 283 deletions(-) - -diff --git a/src/libs/3rdparty/botan/botan.cpp b/src/libs/3rdparty/botan/botan.cpp -index 917c385..c515750 100644 ---- a/src/libs/3rdparty/botan/botan.cpp -+++ b/src/libs/3rdparty/botan/botan.cpp -@@ -1098,35 +1098,31 @@ class Montgomery_Exponentiator : public Modular_Exponentiator - - } - -- --#if (BOTAN_MP_WORD_BITS != 32) -- #error The mp_x86_32 module requires that BOTAN_MP_WORD_BITS == 32 -+#if (BOTAN_MP_WORD_BITS == 8) -+typedef Botan::u16bit dword; -+#elif (BOTAN_MP_WORD_BITS == 16) -+typedef Botan::u32bit dword; -+#elif (BOTAN_MP_WORD_BITS == 32) -+typedef Botan::u64bit dword; -+#elif (BOTAN_MP_WORD_BITS == 64) -+#error BOTAN_MP_WORD_BITS can be 64 only with assembly support -+#else -+#error BOTAN_MP_WORD_BITS must be 8, 16, 32, or 64 - #endif - --#ifdef Q_OS_UNIX -+ - namespace Botan { - - extern "C" { - - /* --* Helper Macros for x86 Assembly --*/ --#define ASM(x) x "\n\t" -- --/* - * Word Multiply - */ - inline word word_madd2(word a, word b, word* c) - { -- asm( -- ASM("mull %[b]") -- ASM("addl %[c],%[a]") -- ASM("adcl $0,%[carry]") -- -- : [a]"=a"(a), [b]"=rm"(b), [carry]"=&d"(*c) -- : "0"(a), "1"(b), [c]"g"(*c) : "cc"); -- -- return a; -+ dword z = (dword)a * b + *c; -+ *c = (word)(z >> BOTAN_MP_WORD_BITS); -+ return (word)z; - } - - /* -@@ -1134,25 +1130,12 @@ inline word word_madd2(word a, word b, word* c) - */ - inline word word_madd3(word a, word b, word c, word* d) - { -- asm( -- ASM("mull %[b]") -- -- ASM("addl %[c],%[a]") -- ASM("adcl $0,%[carry]") -- -- ASM("addl %[d],%[a]") -- ASM("adcl $0,%[carry]") -- -- : [a]"=a"(a), [b]"=rm"(b), [carry]"=&d"(*d) -- : "0"(a), "1"(b), [c]"g"(c), [d]"g"(*d) : "cc"); -- -- return a; -+ dword z = (dword)a * b + c + *d; -+ *d = (word)(z >> BOTAN_MP_WORD_BITS); -+ return (word)z; - } -- - } -- - } --#endif - - - -@@ -1704,30 +1687,6 @@ void unlock_mem(void* addr, size_t length); - - namespace Botan { - --extern "C" { -- --/* --* Word Multiply/Add --*/ --inline word word_madd2(word a, word b, word* c) -- { -- dword z = (dword)a * b + *c; -- *c = (word)(z >> BOTAN_MP_WORD_BITS); -- return (word)z; -- } -- --/* --* Word Multiply/Add --*/ --inline word word_madd3(word a, word b, word c, word* d) -- { -- dword z = (dword)a * b + c + *d; -- *d = (word)(z >> BOTAN_MP_WORD_BITS); -- return (word)z; -- } -- --} -- - /** - * Win32 CAPI Entropy Source - */ -@@ -2315,225 +2274,6 @@ namespace Botan { - - extern "C" { - --#ifdef Q_OS_UNIX --/* --* Helper Macros for x86 Assembly --*/ --#ifndef ASM -- #define ASM(x) x "\n\t" --#endif -- --#define ADDSUB2_OP(OPERATION, INDEX) \ -- ASM("movl 4*" #INDEX "(%[y]), %[carry]") \ -- ASM(OPERATION " %[carry], 4*" #INDEX "(%[x])") \ -- --#define ADDSUB3_OP(OPERATION, INDEX) \ -- ASM("movl 4*" #INDEX "(%[x]), %[carry]") \ -- ASM(OPERATION " 4*" #INDEX "(%[y]), %[carry]") \ -- ASM("movl %[carry], 4*" #INDEX "(%[z])") \ -- --#define LINMUL_OP(WRITE_TO, INDEX) \ -- ASM("movl 4*" #INDEX "(%[x]),%%eax") \ -- ASM("mull %[y]") \ -- ASM("addl %[carry],%%eax") \ -- ASM("adcl $0,%%edx") \ -- ASM("movl %%edx,%[carry]") \ -- ASM("movl %%eax, 4*" #INDEX "(%[" WRITE_TO "])") -- --#define MULADD_OP(IGNORED, INDEX) \ -- ASM("movl 4*" #INDEX "(%[x]),%%eax") \ -- ASM("mull %[y]") \ -- ASM("addl %[carry],%%eax") \ -- ASM("adcl $0,%%edx") \ -- ASM("addl 4*" #INDEX "(%[z]),%%eax") \ -- ASM("adcl $0,%%edx") \ -- ASM("movl %%edx,%[carry]") \ -- ASM("movl %%eax, 4*" #INDEX " (%[z])") -- --#define DO_8_TIMES(MACRO, ARG) \ -- MACRO(ARG, 0) \ -- MACRO(ARG, 1) \ -- MACRO(ARG, 2) \ -- MACRO(ARG, 3) \ -- MACRO(ARG, 4) \ -- MACRO(ARG, 5) \ -- MACRO(ARG, 6) \ -- MACRO(ARG, 7) -- --#define ADD_OR_SUBTRACT(CORE_CODE) \ -- ASM("rorl %[carry]") \ -- CORE_CODE \ -- ASM("sbbl %[carry],%[carry]") \ -- ASM("negl %[carry]") -- --/* --* Word Addition --*/ --inline word word_add(word x, word y, word* carry) -- { -- asm( -- ADD_OR_SUBTRACT(ASM("adcl %[y],%[x]")) -- : [x]"=r"(x), [carry]"=r"(*carry) -- : "0"(x), [y]"rm"(y), "1"(*carry) -- : "cc"); -- return x; -- } -- --/* --* Eight Word Block Addition, Two Argument --*/ --inline word word8_add2(word x[8], const word y[8], word carry) -- { -- asm( -- ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB2_OP, "adcl")) -- : [carry]"=r"(carry) -- : [x]"r"(x), [y]"r"(y), "0"(carry) -- : "cc", "memory"); -- return carry; -- } -- --/* --* Eight Word Block Addition, Three Argument --*/ --inline word word8_add3(word z[8], const word x[8], const word y[8], word carry) -- { -- asm( -- ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "adcl")) -- : [carry]"=r"(carry) -- : [x]"r"(x), [y]"r"(y), [z]"r"(z), "0"(carry) -- : "cc", "memory"); -- return carry; -- } -- --/* --* Word Subtraction --*/ --inline word word_sub(word x, word y, word* carry) -- { -- asm( -- ADD_OR_SUBTRACT(ASM("sbbl %[y],%[x]")) -- : [x]"=r"(x), [carry]"=r"(*carry) -- : "0"(x), [y]"rm"(y), "1"(*carry) -- : "cc"); -- return x; -- } -- --/* --* Eight Word Block Subtraction, Two Argument --*/ --inline word word8_sub2(word x[8], const word y[8], word carry) -- { -- asm( -- ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB2_OP, "sbbl")) -- : [carry]"=r"(carry) -- : [x]"r"(x), [y]"r"(y), "0"(carry) -- : "cc", "memory"); -- return carry; -- } -- --/* --* Eight Word Block Subtraction, Two Argument --*/ --inline word word8_sub2_rev(word x[8], const word y[8], word carry) -- { -- asm( -- ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "sbbl")) -- : [carry]"=r"(carry) -- : [x]"r"(y), [y]"r"(x), [z]"r"(x), "0"(carry) -- : "cc", "memory"); -- return carry; -- } -- --/* --* Eight Word Block Subtraction, Three Argument --*/ --inline word word8_sub3(word z[8], const word x[8], const word y[8], word carry) -- { -- asm( -- ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "sbbl")) -- : [carry]"=r"(carry) -- : [x]"r"(x), [y]"r"(y), [z]"r"(z), "0"(carry) -- : "cc", "memory"); -- return carry; -- } -- --/* --* Eight Word Block Linear Multiplication --*/ --inline word word8_linmul2(word x[8], word y, word carry) -- { -- asm( -- DO_8_TIMES(LINMUL_OP, "x") -- : [carry]"=r"(carry) -- : [x]"r"(x), [y]"rm"(y), "0"(carry) -- : "cc", "%eax", "%edx"); -- return carry; -- } -- --/* --* Eight Word Block Linear Multiplication --*/ --inline word word8_linmul3(word z[8], const word x[8], word y, word carry) -- { -- asm( -- DO_8_TIMES(LINMUL_OP, "z") -- : [carry]"=r"(carry) -- : [z]"r"(z), [x]"r"(x), [y]"rm"(y), "0"(carry) -- : "cc", "%eax", "%edx"); -- return carry; -- } -- --/* --* Eight Word Block Multiply/Add --*/ --inline word word8_madd3(word z[8], const word x[8], word y, word carry) -- { -- asm( -- DO_8_TIMES(MULADD_OP, "") -- : [carry]"=r"(carry) -- : [z]"r"(z), [x]"r"(x), [y]"rm"(y), "0"(carry) -- : "cc", "%eax", "%edx"); -- return carry; -- } -- --/* --* Multiply-Add Accumulator --*/ --inline void word3_muladd(word* w2, word* w1, word* w0, word x, word y) -- { -- asm( -- ASM("mull %[y]") -- -- ASM("addl %[x],%[w0]") -- ASM("adcl %[y],%[w1]") -- ASM("adcl $0,%[w2]") -- -- : [w0]"=r"(*w0), [w1]"=r"(*w1), [w2]"=r"(*w2) -- : [x]"a"(x), [y]"d"(y), "0"(*w0), "1"(*w1), "2"(*w2) -- : "cc"); -- } -- --/* --* Multiply-Add Accumulator --*/ --inline void word3_muladd_2(word* w2, word* w1, word* w0, word x, word y) -- { -- asm( -- ASM("mull %[y]") -- -- ASM("addl %[x],%[w0]") -- ASM("adcl %[y],%[w1]") -- ASM("adcl $0,%[w2]") -- -- ASM("addl %[x],%[w0]") -- ASM("adcl %[y],%[w1]") -- ASM("adcl $0,%[w2]") -- -- : [w0]"=r"(*w0), [w1]"=r"(*w1), [w2]"=r"(*w2) -- : [x]"a"(x), [y]"d"(y), "0"(*w0), "1"(*w1), "2"(*w2) -- : "cc"); -- } --#else - /* - * Word Addition - */ -@@ -2718,9 +2458,6 @@ inline void word3_muladd_2(word* w2, word* w1, word* w0, word a, word b) - *w1 = word_add(*w1, b, &carry); - *w2 = word_add(*w2, top, &carry); - } -- --#endif -- - } - - } -diff --git a/src/libs/3rdparty/botan/botan.h b/src/libs/3rdparty/botan/botan.h -index 6a9cbe0..3a66a14 100644 ---- a/src/libs/3rdparty/botan/botan.h -+++ b/src/libs/3rdparty/botan/botan.h -@@ -80,9 +80,7 @@ - #define BOTAN_GCC_VERSION 0 - #endif - --#define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN --#define BOTAN_TARGET_CPU_IS_X86_FAMILY --#define BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK 1 -+#define BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK 0 - - #if defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) || \ - defined(BOTAN_TARGET_CPU_IS_BIG_ENDIAN) --- -1.8.3.2 - diff --git a/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch b/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch deleted file mode 100644 index dea09aef4e5..00000000000 --- a/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch +++ /dev/null @@ -1,93 +0,0 @@ -From c1c7cb2a5e6220a74f374a301e648479029f8a0e Mon Sep 17 00:00:00 2001 -From: Joerg Bornemann -Date: Mon, 12 Aug 2013 09:27:47 +0200 -Subject: [PATCH] introduce Transformer::product() - -Simplifies the calling code. -Remove pointless nullpointer check from jscommandexecutor. - -Upstream-Status: Backport -Signed-off-by: Jonathan Liu - -Change-Id: I867181d2b750f32f04376ce860f5dee6555d3e33 -Reviewed-by: Christian Kandeler ---- - src/lib/buildgraph/jscommandexecutor.cpp | 5 +---- - src/lib/buildgraph/processcommandexecutor.cpp | 6 ++---- - src/lib/buildgraph/transformer.cpp | 7 +++++++ - src/lib/buildgraph/transformer.h | 1 + - 4 files changed, 11 insertions(+), 8 deletions(-) - -diff --git a/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp b/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp -index b7f5b1d..24ffb7e 100644 ---- a/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp -+++ b/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp -@@ -79,10 +79,7 @@ public slots: - m_result.errorMessage.clear(); - ScriptEngine * const scriptEngine = provideScriptEngine(); - QScriptValue scope = scriptEngine->newObject(); -- Artifact *someOutputArtifact = *transformer->outputs.begin(); -- if (!someOutputArtifact->product.isNull()) -- setupScriptEngineForProduct(scriptEngine, someOutputArtifact->product, -- transformer->rule, scope); -+ setupScriptEngineForProduct(scriptEngine, transformer->product(), transformer->rule, scope); - transformer->setupInputs(scriptEngine, scope); - transformer->setupOutputs(scriptEngine, scope); - -diff --git a/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp b/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp -index 78f77c3..d123fe8 100644 ---- a/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp -+++ b/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp -@@ -276,8 +276,7 @@ void ProcessCommandExecutor::removeResponseFile() - - QString ProcessCommandExecutor::findProcessCommandInPath() - { -- Artifact * const outputNode = *transformer()->outputs.begin(); -- const ResolvedProductPtr product = outputNode->product; -+ const ResolvedProductPtr product = transformer()->product(); - const ProcessCommand * const cmd = processCommand(); - QString fullProgramPath = product->executablePathCache.value(cmd->program()); - if (!fullProgramPath.isEmpty()) -@@ -309,8 +308,7 @@ QString ProcessCommandExecutor::findProcessCommandInPath() - - QString ProcessCommandExecutor::findProcessCommandBySuffix() - { -- Artifact * const outputNode = *transformer()->outputs.begin(); -- const ResolvedProductPtr product = outputNode->product; -+ const ResolvedProductPtr product = transformer()->product(); - const ProcessCommand * const cmd = processCommand(); - QString fullProgramPath = product->executablePathCache.value(cmd->program()); - if (!fullProgramPath.isEmpty()) -diff --git a/src/shared/qbs/src/lib/buildgraph/transformer.cpp b/src/shared/qbs/src/lib/buildgraph/transformer.cpp -index ce6baa7..363e08d 100644 ---- a/src/shared/qbs/src/lib/buildgraph/transformer.cpp -+++ b/src/shared/qbs/src/lib/buildgraph/transformer.cpp -@@ -85,6 +85,13 @@ QScriptValue Transformer::translateInOutputs(QScriptEngine *scriptEngine, const - return jsTagFiles; - } - -+ResolvedProductPtr Transformer::product() const -+{ -+ if (outputs.isEmpty()) -+ return ResolvedProductPtr(); -+ return (*outputs.begin())->product; -+} -+ - void Transformer::setupInputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue) - { - const QString &defaultModuleName = rule->module->name; -diff --git a/src/shared/qbs/src/lib/buildgraph/transformer.h b/src/shared/qbs/src/lib/buildgraph/transformer.h -index c9c88b6..d26c391 100644 ---- a/src/shared/qbs/src/lib/buildgraph/transformer.h -+++ b/src/shared/qbs/src/lib/buildgraph/transformer.h -@@ -65,6 +65,7 @@ public: - const ArtifactList &artifacts, - const QString &defaultModuleName); - -+ ResolvedProductPtr product() const; - void setupInputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue); - void setupOutputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue); - void createCommands(const PrepareScriptConstPtr &script, --- -1.8.4 - diff --git a/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb b/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb deleted file mode 100644 index 670ffad0100..00000000000 --- a/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "Lightweight, cross-platform integrated development environment" - -HOMEPAGE = "http://qt-project.org/" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LGPL_EXCEPTION.TXT;md5=eb6c371255e1262c55ae9b652a90b528 \ - file://LICENSE.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad" -SECTION = "qt/app" - -SRC_URI = "http://download.qt-project.org/official_releases/qtcreator/2.8/${PV}/${BP}-src.tar.gz \ - file://fix.missing.cpuid.h.patch \ - file://qbs_transformer_product.patch" -SRC_URI[md5sum] = "79ef6c6ece0c00035ef744c9d6e3bd3b" -SRC_URI[sha256sum] = "d5ae007a297a4288d0e95fd605edbfb8aee80f6788c7a6cfb9cb297f50c364b9" - -S = "${WORKDIR}/${BP}-src" - -inherit qt4x11 - -do_install() { - oe_runmake INSTALL_ROOT=${D}${prefix} install - oe_runmake INSTALL_ROOT=${D}${prefix} install_docs - rm -f ${D}${libdir}/qtcreator/lib*.so -} - -FILES_${PN} += "${datadir}/icons \ - ${datadir}/qtcreator \ - ${libdir}/qtcreator/*" -FILES_${PN}-dbg += "${datadir}/qtcreator/*/*/*/*/.debug \ - ${libdir}/qtcreator/.debug \ - ${libdir}/qtcreator/*/*/.debug" -RRECOMMENDS_${PN} += "packagegroup-core-buildessential \ - packagegroup-qt-toolchain-target \ - qt4-plugin-sqldriver-sqlite \ -" - -# avoid conflicts with meta-qt5's qt-creator and do install nothing to sysroot -# this does no harm cause nothing depends on qt-creator -sysroot_stage_all() { -} - -# the regexp in insane.bbclass doesn't allow this valid path: -# qt-creator-2.8.1: qt-creator: found library in wrong location: /usr/share/qtcreator/qbs/lib/qbs/plugins/libqbs_cpp_scanner.so -# qt-creator: found library in wrong location: /usr/share/qtcreator/qbs/lib/qbs/plugins/libqbs_qt_scanner.so -# qt-creator-dbg: found library in wrong location: /usr/share/qtcreator/qbs/lib/qbs/plugins/.debug/libqbs_cpp_scanner.so -# qt-creator-dbg: found library in wrong location: /usr/share/qtcreator/qbs/lib/qbs/plugins/.debug/libqbs_qt_scanner.so -INSANE_SKIP_${PN} += "libdir" -INSANE_SKIP_${PN}-dbg += "libdir" diff --git a/meta-oe/recipes-qt/qtserialport/qtserialport-e_5.1.0.bb b/meta-oe/recipes-qt/qtserialport/qtserialport-e_5.1.0.bb deleted file mode 100644 index c466562bbfd..00000000000 --- a/meta-oe/recipes-qt/qtserialport/qtserialport-e_5.1.0.bb +++ /dev/null @@ -1,5 +0,0 @@ -inherit qt4e - -require qtserialport.inc - -SRCREV = "22e45f0b0f956c025339d72ad53dca57ef684858" diff --git a/meta-oe/recipes-qt/qtserialport/qtserialport.inc b/meta-oe/recipes-qt/qtserialport/qtserialport.inc deleted file mode 100644 index dde49a5cef1..00000000000 --- a/meta-oe/recipes-qt/qtserialport/qtserialport.inc +++ /dev/null @@ -1,48 +0,0 @@ -SUMMARY = "Qt Serial Port Library" -SECTION = "qt/libs" -HOMEPAGE = "http://qt-project.org/wiki/QtSerialPort" - -LICENSE = "(LGPL-2.1 | GPL-3.0) & GFDL-1.3" -LIC_FILES_CHKSUM = " \ - file://LICENSE.FDL;md5=3801d7932fdc07fd9efe89f9854a6caa \ - file://LICENSE.GPL;md5=d32239bcb673463ab874e80d47fae504 \ - file://LICENSE.LGPL;md5=4fbd65380cdd255951079008b364516c \ - " - -inherit pkgconfig - -SRC_URI = " \ - git://gitorious.org/qt/qtserialport.git;branch=stable \ -" - -S = "${WORKDIR}/git" -B = "${WORKDIR}/${BPN}-${PV}" - -QMAKE_PROFILES = "${S}/qtserialport.pro" -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" -OE_QMAKE_QMAKE = "${WORKDIR}/qmake2" - -do_prepare_qmake_symlink() { - ln -sf "${STAGING_BINDIR_NATIVE}/qmake2" ${WORKDIR} -} - -addtask prepare_qmake_symlink after do_generate_qt_config_file before do_configure - -do_configure_prepend() { - sed -i -e "s|\(Prefix\ =\).*|\1${prefix}|" ${WORKDIR}/qt.conf - sed -i -r -e "/^(Binaries|Headers|Plugins|Mkspecs)/ d" ${WORKDIR}/qt.conf -} - -do_install() { - oe_runmake install DESTDIR=${D} INCLUDEDIR=${includedir} -} - -FILES_${PN}-dev += " \ - ${includedir}/QtSerialPort/* \ - ${prefix}/mkspecs/* \ - ${libdir}/*.prl \ -" - -FILES_${PN}-dbg += " \ - ${libdir}/.debug/* \ -" diff --git a/meta-oe/recipes-qt/qwt/files/qwt6-fix-linking-with-ld-gold.patch b/meta-oe/recipes-qt/qwt/files/qwt6-fix-linking-with-ld-gold.patch deleted file mode 100644 index 1fdd9cf4b3a..00000000000 --- a/meta-oe/recipes-qt/qwt/files/qwt6-fix-linking-with-ld-gold.patch +++ /dev/null @@ -1,34 +0,0 @@ -Upstream-Status: Pending - -diff -urpN qwt-6.0.1_orig/qwtbuild.pri qwt-6.0.1/qwtbuild.pri ---- qwt-6.0.1_orig/qwtbuild.pri 2011-08-02 00:33:53.000000000 +1000 -+++ qwt-6.0.1/qwtbuild.pri 2012-08-21 10:27:30.721990849 +1000 -@@ -67,3 +67,13 @@ unix { - error( "local build will conflict with $${QMAKE_LIBDIR_QT}/libqwt.*" ) - } - } -+ -+###################################################################### -+# libs for building qwt -+###################################################################### -+ -+unix { -+ # Some linkers require explicit linking with librt (eg ld.gold) -+ LIBS += -lrt -+} -+ -diff -urpN qwt-6.0.1_orig/qwt.prf qwt-6.0.1/qwt.prf ---- qwt-6.0.1_orig/qwt.prf 2011-08-02 00:33:51.000000000 +1000 -+++ qwt-6.0.1/qwt.prf 2012-08-21 11:19:49.435240439 +1000 -@@ -9,6 +9,11 @@ - - include ( ./qwtconfig.pri ) - -+unix { -+ -+ LIBS += -lrt -+} -+ - contains(QWT_CONFIG, QwtDll) { - - DEFINES *= QWT_DLL diff --git a/meta-oe/recipes-qt/qwt/files/qwt6.patch b/meta-oe/recipes-qt/qwt/files/qwt6.patch deleted file mode 100644 index 4fb1a9bdf89..00000000000 --- a/meta-oe/recipes-qt/qwt/files/qwt6.patch +++ /dev/null @@ -1,86 +0,0 @@ -- add support for SUFFIX_STR ---- -diff --git a/examples/examples.pri b/examples/examples.pri -index a6911c8..854ce89 100644 ---- a/examples/examples.pri -+++ b/examples/examples.pri -@@ -13,9 +13,17 @@ include( $${QWT_ROOT}/qwtbuild.pri ) - - TEMPLATE = app - -+SUFFIX_STR = -+CONFIG(debug, debug|release) { -+ SUFFIX_STR = $${DEBUG_SUFFIX} -+} -+else { -+ SUFFIX_STR = $${RELEASE_SUFFIX} -+} -+ - INCLUDEPATH += $${QWT_ROOT}/src - DEPENDPATH += $${QWT_ROOT}/src --DESTDIR = $${QWT_ROOT}/examples/bin -+DESTDIR = $${QWT_ROOT}/examples/bin$${SUFFIX_STR} - - QMAKE_RPATHDIR *= $${QWT_ROOT}/lib - -diff --git a/qwtconfig.pri b/qwtconfig.pri -index b0d2110..be119b7 100644 ---- a/qwtconfig.pri -+++ b/qwtconfig.pri -@@ -30,6 +30,13 @@ QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/doc - QWT_INSTALL_HEADERS = $${QWT_INSTALL_PREFIX}/include - QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib - -+DEBUG_SUFFIX = -+RELEASE_SUFFIX = -+ -+win32 { -+ DEBUG_SUFFIX = d -+} -+ - ###################################################################### - # Designer plugin - ###################################################################### -diff --git a/src/src.pro b/src/src.pro -index beb7125..ebf8ea6 100644 ---- a/src/src.pro -+++ b/src/src.pro -@@ -13,8 +13,16 @@ QWT_ROOT = $${PWD}/.. - include( $${QWT_ROOT}/qwtconfig.pri ) - include( $${QWT_ROOT}/qwtbuild.pri ) - -+SUFFIX_STR = -+CONFIG(debug, debug|release) { -+ SUFFIX_STR = $${DEBUG_SUFFIX} -+} -+else { -+ SUFFIX_STR = $${RELEASE_SUFFIX} -+} -+ - TEMPLATE = lib --TARGET = $$qtLibraryTarget(qwt) -+TARGET = $$qtLibraryTarget(qwt)$${SUFFIX_STR} - - DESTDIR = $${QWT_ROOT}/lib - -diff --git a/textengines/mathml/mathml.pro b/textengines/mathml/mathml.pro -index b0ed9f9..403828b 100644 ---- a/textengines/mathml/mathml.pro -+++ b/textengines/mathml/mathml.pro -@@ -12,7 +12,15 @@ message(Beside the Qwt license you also have to take care of its license. ) - - include( $${PWD}/../textengines.pri ) - --TARGET = $$qtLibraryTarget(qwtmathml) -+SUFFIX_STR = -+CONFIG(debug, debug|release) { -+ SUFFIX_STR = $${DEBUG_SUFFIX} -+} -+else { -+ SUFFIX_STR = $${RELEASE_SUFFIX} -+} -+ -+TARGET = $$qtLibraryTarget(qwtmathml$${SUFFIX_STR}) - QT += xml - - HEADERS = \ diff --git a/meta-oe/recipes-qt/qwt/qwt-e_6.0.1.bb b/meta-oe/recipes-qt/qwt/qwt-e_6.0.1.bb deleted file mode 100644 index c801309132e..00000000000 --- a/meta-oe/recipes-qt/qwt/qwt-e_6.0.1.bb +++ /dev/null @@ -1,14 +0,0 @@ -inherit qt4e - -require qwt.inc - -PR = "r1" - -SRC_URI[qwt.md5sum] = "ace68558eab873e2da7e641179c4ef0c" -SRC_URI[qwt.sha256sum] = "3fe19dd5962d705632fc2ef616b009299de6cf1e702538296924dbfdc8003cb2" - -RPROVIDES_${PN}-dev = "libqwt-dev" - -# Conflicts with qwt, only one qwt* can be built in world -# | Project ERROR: local build will conflict with sysroots/qemuarm/usr/lib/libqwt.* -EXCLUDE_FROM_WORLD = "1" diff --git a/meta-oe/recipes-qt/qwt/qwt.inc b/meta-oe/recipes-qt/qwt/qwt.inc deleted file mode 100644 index 60f73a65762..00000000000 --- a/meta-oe/recipes-qt/qwt/qwt.inc +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION = "Qt Widget Extension for Technical Applications" -SECTION = "libs" - -# LGPLv2.1 + some exceptions -LICENSE = "QWTv1.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=dac2743472b0462ff3cfb4af42051c88" - -SRC_URI = "${SOURCEFORGE_MIRROR}/qwt/qwt-${PV}.tar.bz2;name=qwt \ - file://qwt6.patch \ - file://qwt6-fix-linking-with-ld-gold.patch" - -S = "${WORKDIR}/qwt-${PV}" - -do_configure_prepend() { - sed -i -e 's:RELEASE_SUFFIX = :RELEASE_SUFFIX = ${QT_LIBINFIX}:' *.pri - sed -i -e 's:qtAddLibrary(qwt:qtAddLibrary(qwt)${QT_LIBINFIX}:g' *.prf - sed -e 's/# QWT_CONFIG += QwtExamples/QWT_CONFIG += QwtExamples/g' -i qwtconfig.pri - sed -i -e 's:/usr/local/qwt-$$QWT_VERSION:${D}${prefix}:g' ${S}/*.pri -} - -do_install() { - oe_runmake -e install - install -d ${D}${datadir}/doc/${PN} - mv ${D}${prefix}/doc/* ${D}${datadir}/doc/${PN}/ - rmdir ${D}${prefix}/doc - cd ${S}/examples - install -d ${D}/${bindir} - cd bin${QT_LIBINFIX}/ - for i in * ; do - cp -pPR ${i} ${D}/${bindir}/${i}${QT_LIBINFIX} - done - install -d ${D}${libdir}/${QT_DIR_NAME} - mv ${D}${prefix}/plugins ${D}${libdir}/${QT_DIR_NAME} -} - -PACKAGES_prepend = "${PN}-examples ${PN}-features ${PN}-plugins " -FILES_${PN}-examples = "${bindir}/*" -FILES_${PN}-features = "${prefix}/features" -FILES_${PN}-plugins = "${libdir}/${QT_DIR_NAME}/plugins/designer/*.so" -FILES_${PN}-dbg += "${libdir}/${QT_DIR_NAME}/plugins/designer/.debug" diff --git a/meta-oe/recipes-qt/qwt/qwt_6.0.1.bb b/meta-oe/recipes-qt/qwt/qwt_6.0.1.bb deleted file mode 100644 index f38816a9018..00000000000 --- a/meta-oe/recipes-qt/qwt/qwt_6.0.1.bb +++ /dev/null @@ -1,10 +0,0 @@ -inherit qt4x11 - -require qwt.inc - -PR = "r1" - -SRC_URI[qwt.md5sum] = "ace68558eab873e2da7e641179c4ef0c" -SRC_URI[qwt.sha256sum] = "3fe19dd5962d705632fc2ef616b009299de6cf1e702538296924dbfdc8003cb2" - -RPROVIDES_${PN}-dev = "libqwt-dev" diff --git a/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb b/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb deleted file mode 100644 index 1f61c39e329..00000000000 --- a/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb +++ /dev/null @@ -1,55 +0,0 @@ -SECTION = "x11/network" -SUMMARY = "Mail user agent" -DEPENDS = "gtk+ libetpan openssl aspell curl libgcrypt" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=e059bde2972c1790af786f3e86bac22e" - - -inherit autotools pkgconfig gettext - -# translation patch: http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1774 -SRC_URI = "\ - ${SOURCEFORGE_MIRROR}/project/claws-mail/Claws%20Mail/${PV}/claws-mail-${PV}.tar.bz2;name=archive " -SRC_URI[archive.md5sum] = "4c5ac7b21f0ed17d0f6404124c2229a4" -SRC_URI[archive.sha256sum] = "ed70975a5056b3ffc4fe6e977f0d9606febc1499763c090241b029a73ff24e65" - -do_configure_append() { - cd ${S}/po ; for PO in *.po ; do MO=`echo $PO | sed s/\\.po//`.gmo ; if ! test -f $MO ; then msgfmt $PO -o $MO ; fi ; done; cd ${B} -} - -PACKAGECONFIG ??= "startup-notification dbus" -PACKAGECONFIG[enchant] = "--enable-enchant,--disable-enchant,enchant" -PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" -PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib" -PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap" - -# FIXME: maemo builds may want --enable-maemo -# FIXME: some platforms may want --enable-generic-umpc -EXTRA_OECONF = " \ - --disable-manual \ - --disable-crash-dialog \ - --disable-jpilot \ - --disable-trayicon-plugin \ - --disable-spamassassin-plugin \ - --disable-bogofilter-plugin \ - --disable-pgpcore-plugin \ - --disable-pgpmime-plugin \ - --disable-pgpinline-plugin \ - --disable-dillo-viewer-plugin \ - --disable-valgrind \ -" - -# Remove enchant references: -do_install_prepend() { - sed -i -e 's:${STAGING_INCDIR}:${includedir}:g;s:${STAGING_LIBDIR}:${libdir}:g' claws-mail.pc -} - -# Work-around broken GPE icon lookup: -do_install_append() { - rm -r ${D}${datadir}/icons - install -d ${D}${datadir}/pixmaps - install -m 0644 ${S}/claws-mail.png ${D}${datadir}/pixmaps/ - sed -i 's/Icon=[^.]*$/&.png/' ${D}${datadir}/applications/claws-mail.desktop -} - -RSUGGESTS_${PN} = "claws-plugin-gtkhtml2-viewer claws-plugin-mailmbox claws-plugin-rssyl" diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch b/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch deleted file mode 100644 index 222a7960289..00000000000 --- a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch +++ /dev/null @@ -1,52 +0,0 @@ -Index: gtkhtml2_viewer-0.31/configure.ac -=================================================================== ---- gtkhtml2_viewer-0.31.orig/configure.ac 2011-08-27 08:08:55.000000000 +0000 -+++ gtkhtml2_viewer-0.31/configure.ac 2014-07-18 07:28:42.769518618 +0000 -@@ -1,33 +1,27 @@ - AC_PREREQ(2.60) --AC_INIT(src/gtkhtml2_viewer.c) -+ -+dnl plugin version -+m4_define([plugin_major_version],[0]) -+m4_define([plugin_minor_version],[31]) -+m4_define([plugin_micro_version],[0]) -+m4_define([plugin_version], [plugin_major_version.plugin_minor_version.plugin_micro_version]) -+ -+AC_INIT(gtkhml2_viewer, plugin_version) -+AC_CONFIG_SRCDIR(src/gtkhtml2_viewer.c) - AC_CONFIG_AUX_DIR(config) - AM_MAINTAINER_MODE - - PACKAGE=gtkhtml2_viewer - --dnl plugin version --MAJOR_VERSION=0 --MINOR_VERSION=31 --MICRO_VERSION=0 -+MAJOR_VERSION=plugin_major_version -+MINOR_VERSION=plugin_minor_version -+MICRO_VERSION=plugin_micro_version - EXTRA_VERSION=0 -- --if test \( $EXTRA_VERSION -eq 0 \); then -- if test \( $MICRO_VERSION -eq 0 \); then -- VERSION=${MAJOR_VERSION}.${MINOR_VERSION} -- else -- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION} -- fi --else -- if test \( $MICRO_VERSION -eq 0 \); then -- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}cvs${EXTRA_VERSION} -- else -- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION} -- fi --fi -+VERSION=plugin_version - - AC_CANONICAL_SYSTEM - --AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) -+AM_INIT_AUTOMAKE([foreign no-define]) - AC_CONFIG_HEADERS(config.h) - AC_DEFINE_UNQUOTED(PLUGINVERSION, "$VERSION", [plugin version]) - diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb deleted file mode 100644 index 9adfd28062f..00000000000 --- a/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb +++ /dev/null @@ -1,22 +0,0 @@ -SECTION = "x11/network" -SUMMARY = "Mail user agent plugins" -DEPENDS = "claws-mail gtkhtml2 curl" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=977f04a8048c04684e521c06e2844a94" - -PR = "r1" - -SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/gtkhtml2_viewer-${PV}.tar.gz \ - file://configure.patch" -SRC_URI[md5sum] = "a6c9dfa6f969ccd844796a5724b52167" -SRC_URI[sha256sum] = "4d41f6d961efaac0f51705e5052bac732bc0bdafee2ef2082a9cf9d89f183ae5" - -inherit autotools pkgconfig gettext - -S = "${WORKDIR}/gtkhtml2_viewer-${PV}" - -FILES_${PN} = "${libdir}/claws-mail/plugins/*.so" -FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug" -FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la" -FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a" - diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb deleted file mode 100644 index a4717dc00c9..00000000000 --- a/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb +++ /dev/null @@ -1,18 +0,0 @@ -SECTION = "x11/network" -SUMMARY = "Mail user agent plugins" -DEPENDS = "claws-mail" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/mailmbox-${PV}.tar.gz" -SRC_URI[md5sum] = "7f72c68e6e1a8768f1247f455fd20b62" -SRC_URI[sha256sum] = "633f7835261c88a0aa06de38553ac935a1799a7128120963a7fa87ace01dac18" - -inherit autotools pkgconfig - -S = "${WORKDIR}/mailmbox-${PV}" - -FILES_${PN} = "${libdir}/claws-mail/plugins/*.so" -FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug" -FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la" -FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a" diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch b/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch deleted file mode 100644 index a7a38f30c89..00000000000 --- a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch +++ /dev/null @@ -1,53 +0,0 @@ -Index: rssyl-0.34/configure.ac -=================================================================== ---- rssyl-0.34.orig/configure.ac 2014-07-18 07:37:28.981532959 +0000 -+++ rssyl-0.34/configure.ac 2014-07-18 07:39:45.881536690 +0000 -@@ -1,5 +1,13 @@ -+ -+dnl plugin version -+m4_define([plugin_major_version],[0]) -+m4_define([plugin_minor_version],[34]) -+m4_define([plugin_micro_version],[0]) -+m4_define([plugin_version], [plugin_major_version.plugin_minor_version.plugin_micro_version]) -+ - AC_PREREQ(2.60) --AC_INIT(src/plugin.c) -+AC_INIT(rssyl, plugin_version) -+AC_CONFIG_SRCDIR(src/plugin.c) - AC_CONFIG_AUX_DIR(config) - AM_MAINTAINER_MODE - AC_CONFIG_HEADERS(config.h) -@@ -7,28 +15,15 @@ - PACKAGE=rssyl - - dnl plugin version --MAJOR_VERSION=0 --MINOR_VERSION=34 --MICRO_VERSION=0 -+MAJOR_VERSION=plugin_major_version -+MINOR_VERSION=plugin_minor_version -+MICRO_VERSION=plugin_micro_version - EXTRA_VERSION=0 -- --if test \( $EXTRA_VERSION -eq 0 \); then -- if test \( $MICRO_VERSION -eq 0 \); then -- VERSION=${MAJOR_VERSION}.${MINOR_VERSION} -- else -- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION} -- fi --else -- if test \( $MICRO_VERSION -eq 0 \); then -- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}cvs${EXTRA_VERSION} -- else -- VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION} -- fi --fi -+VERSION=plugin_version - - AC_CANONICAL_SYSTEM - --AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) -+AM_INIT_AUTOMAKE([foreign no-define]) - AC_DEFINE_UNQUOTED(PLUGINVERSION, "$VERSION", [plugin version]) - - AC_PROG_CC diff --git a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb b/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb deleted file mode 100644 index cdc465c21cf..00000000000 --- a/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb +++ /dev/null @@ -1,18 +0,0 @@ -SECTION = "x11/network" -SUMMARY = "Mail user agent plugins" -DEPENDS = "claws-mail libxml2 curl glib-2.0 gtk+" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=0c2348e0a084e573f0220f5e45d8097e" - -SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/rssyl-${PV}.tar.gz \ - file://configure.patch" -SRC_URI[md5sum] = "49b45608e8d160b3625d3d50016ec2ca" -SRC_URI[sha256sum] = "2e96a1cd6a1a5bb7f86cd2eb48f6e174665957fafe1f3b1e8361aac3bb967f79" -inherit autotools pkgconfig gettext - -S = "${WORKDIR}/rssyl-${PV}" - -FILES_${PN} = "${libdir}/claws-mail/plugins/*.so" -FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug" -FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la" -FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a" diff --git a/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch b/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch deleted file mode 100644 index 1520e578ac4..00000000000 --- a/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- sylpheed-2.7.1.orig/libsylph/defs.h 2009-06-10 09:55:46.000000000 +0200 -+++ sylpheed-2.7.1/libsylph/defs.h 2012-05-06 08:28:27.514746256 +0200 -@@ -24,8 +24,6 @@ - # include "config.h" - #endif - --#include -- - #ifdef G_OS_WIN32 - # include - #endif diff --git a/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb b/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb deleted file mode 100644 index 1b010a5b6cd..00000000000 --- a/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb +++ /dev/null @@ -1,39 +0,0 @@ -SECTION = "x11/network" -SUMMARY = "Mail user agent" -DEPENDS = "gtk+ gpgme gnutls" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \ - file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" - -PR = "r2" - -PNBLACKLIST[sylpheed] ?= "BROKEN: Doesn't work with B!=S" - -SRC_URI = "http://sylpheed.sraoss.jp/sylpheed/v2.7/sylpheed-${PV}.tar.bz2 \ - file://glib-2.32.patch \ -" -SRC_URI[md5sum] = "1f470525c1fbe53253813a0978c18228" -SRC_URI[sha256sum] = "8bb6457db4e2eea1877b487d9ac8513546372db9a6a2e4271d11229f4af84e23" - -FILES_${PN} += "${datadir}/pixmaps ${datadir}/applications" -FILES_${PN}-doc += "${datadir}" - -EXTRA_OECONF = "--disable-ssl --enable-gnutls" - -CFLAGS += "-D_GNU_SOURCE" - -do_configure_prepend() { - mkdir -p m4 - for i in $(find ${S} -name "Makefile.am") ; do - sed -i s:'-I$(includedir)'::g $i - done -} - -inherit autotools pkgconfig - -do_install_append() { - install -d ${D}${datadir}/applications - install -m 0644 sylpheed.desktop ${D}${datadir}/applications/ - install -d ${D}${datadir}/pixmaps - install -m 0644 sylpheed.png ${D}${datadir}/pixmaps/ -} diff --git a/meta-oe/recipes-support/anthy/anthy/2ch_t.patch b/meta-oe/recipes-support/anthy/anthy/2ch_t.patch new file mode 100644 index 00000000000..bf9bdb63d7e --- /dev/null +++ b/meta-oe/recipes-support/anthy/anthy/2ch_t.patch @@ -0,0 +1,5062 @@ +source: shamelessly stolen from debian ;-) +purpose: add some entries particularly useful in Japanese 2channel anonymous website + (at least that is my understanding ;-)) + +--- anthy-5414.orig/mkanthydic/2ch.t ++++ anthy-5414/mkanthydic/2ch.t +@@ -0,0 +1,5055 @@ ++# 2chÍѸì¤ÎCanna·Á¼°¼­½ñ ++# HARUYAMA Seigo haruyama@unixuser.org ++# ¸í¤ê¤äÉÊ»ì¤Ï¤³¤¦¤¹¤Ù¤­ ¤Ê¤É ¤¤¤Ã¤Ñ¤¤¤¢¤ë¤Ï¤º¤Ê¤Î¤Ç ++# ¤´»ØÅ¦¤è¤í¤·¤¯ ++# »²¹Í: http://freezone.kakiko.com/jiten/index.html ++# http://members.tripod.co.jp/maruheso/aadic/index.html ++# http://isweb33.infoseek.co.jp/computer/gikosite/ (403 Forbidden) ++# http://cannadic.oucrc.org/ ++# http://www.kyoto.trans-nt.com/anthy/ ++# http://www.media-k.co.jp/jiten/ ++# »²¹Í¤Ë¤·¤Æ¤¤¤ë¼­½ñ¤ÎÇÛÉե饤¥»¥ó¥¹¤¬¤Ï¤Ã¤­¤ê¤·¤Þ¤»¤ó¤¬ ++# ¼ýÏ¿¤µ¤ì¤¿¸ì¤Ë´Ø¤·¤Æ¤Ï¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥ó¤È²ò¤·¤ÆÌäÂê¤Ê¤¤ ++# ¤ÈȽÃǤ·¤Æ¤¤¤Þ¤¹. ++# ++# ¤³¤Î¼­½ñ¤Ï̵ÊݾڤǤ¹¡£ ++# ++# 2004/5/19ÈÇ ++# ++1¤Î¤¤¤·¤å¤¦¤«¤ó #T35 >>1¤Î°ì½µ´Ö ++1¤Î¤¤¤Ã¤·¤å¤¦¤«¤ó #JN >>1¤Î°ì½µ´Ö ++1¤Î¤ª¤µ¤Ê¤Ê¤¸¤ß #JN 1¤ÎÍĤʤ¸¤ß ++2¤Á¤ã¤ó¤»¤¤¤·¤ó¤Ó¤ç¤¦¤¤¤ó #JN 2chÀº¿Àɱ¡ ++911¤¸¤±¤ó #T35 911»ö·ï ++¤¢¡¼¤¦¡¼ #CJ ¤¢¡Á¤¦¡Á ++¤¢¡¼¤¸¤å #KK ¥¢¡¼¥¸¥å ++¤¢¡¼¤¸¤å #T35 ¥¢¡¼¥¸¥å ++¤¢¡¼¤ë¤¢¡¼¤ë #T35 RR ++¤¢¡¼¤í¤ó¤â¤é¤é¡¼ #JN ¥¢¡¼¥í¥ó¥â¥é¥é¡¼ ++¤¢¤¢¤¤¤¨¤Ð¤¸¤ç¤¦¤æ¤¦ #CJ ¤¢¤¢¸À¤¨¤Ð¾åÍ´ ++¤¢¤¢¤¦¤¦ #CJ ¤¢¡Á¤¦¡Á ++¤¢¤¢¤¬¤à¤ä¤ë¤è #CJ ¤¢¤¢¡¢¥¬¥à¤ä¤ë¤è¡£ ++¤¢¤¢¤¸¤å #T35 ¥¢¡¼¥¸¥å ++¤¢¤¢¤Ï¤Ï #CJ ¥¢¡¼¥Ï¥Ï ++¤¢¤¢¤Ï¤Ï #CJ ޱްŽÊŽÊ ++¤¢¤¢¤ë¤¢¤¢¤ë #T35 RR ++¤¢¤¢¤ë¤¨¤¤¤¢¤¢¤ë #T35 RAR ++¤¢¤¤ #JN ¤¢¤¤ ++¤¢¤¤¤¢¡¼¤ë #T35 IR ++¤¢¤¤¤³¤é #T35 ¥¢¥¤¥³¥é ++¤¢¤¤¤´ #T35 °¦¸í ++¤¢¤¤¤´¡¼ #CJ ¥¢¥¤¥´¡Á¡ª ++¤¢¤¤¤»¤ó #T35 ¤¢¤¤¤»¤ó ++¤¢¤¤¤Æ¤£¡¼¤Ñ¤ï¡¼ #T35 £É£Ô¥Ñ¥ï¡¼ ++¤¢¤¤¤Ç¤£¡¼ #T35 £É£Ä ++¤¢¤¤¤É¤ë #T35 °¥¡ð ++¤¢¤¤¤Ê¤Ö¤ê¤Ã¤¸ #T35 ¥¢¥¤¥Ê¥Ö¥ê¥Ã¥¸ ++¤¢¤¤¤Ë¤Á¤ã¤ó¤Í¤ë #T35 i¡Ý2¤Á¤ã¤ó¤Í¤ë ++¤¢¤¤¤Î¤¿¤Í #CN °¦¤Î¼ï ++¤¢¤¤¤Î¤¿¤Í #T35 °¦¤Î¼ï ++¤¢¤¤¤Ô¡¼ #T35 £É£Ð ++¤¢¤¤¤Ô¤¤ #T35 ip! ++¤¢¤¤¤Ö #KK °¦Éï ++¤¢¤¤¤Ö #T35 °¦Éï ++¤¢¤¤¤Ü¤ó #JN ¤¢¤¤¤Ü¤ó ++¤¢¤¤¤Ü¤ó #T35 ¤¢¤¤¤Ü¤ó ++¤¢¤¤¤á¤Ë¤å¤¦¤Ï¤¸¤­ #T35 ime.nuÃÆ¤­ ++¤¢¤¤¤â¤Ê #T35 iMona ++¤¢¤¤¤â¤Ê¡¼ #JN ¥¢¥¤¥â¥Ê¡¼ ++¤¢¤¤¤â¤Ê¡¼ #JN ¥¢¥¤¥â¥Ê¡¼ ++¤¢¤¤¤é¤ó¤É #T35 °¥¤é¤ó¤É ++¤¢¤¤¤ë #KK ¥¢¥¤¥ë ++¤¢¤¤¤ë #T35 ¥¢¥¤¥ë ++¤¢¤¤¤ï¤¤¤æ¡¼¤¼¤í¤ï¤ó #JN IYU-01 ++¤¢¤¦ #KK ¤¢¤¦ ++¤¢¤¦ #T35 ¤¢¤¦ ++¤¢¤¦¡¼ #JN ¥¢¥¦¡¼ ++¤¢¤¦¤È¤í¡¼ #T35 ¥¢¥¦¥È¥í¡¼ ++¤¢¤¦¤È¤í¤¦ #T35 ¥¢¥¦¥È¥í¡¼ ++¤¢¤¦¤ò¤¿ #T35 ¤¢¤¦¥ò¥¿ ++¤¢¤ª #R5r Àú ++¤¢¤ª¤¹¤® #KSr ÀĤ¹¤® ++¤¢¤ª¤¹¤® #T35 ÀĤ¹¤® ++¤¢¤ª¤¾¤é #KK ÀĶõ ++¤¢¤ª¤¾¤é #T35 ÀĶõ ++¤¢¤ª¤Ð #T35 ÀÄ»õ ++¤¢¤ª¤ê #T35 Àú¤ê ++¤¢¤ª¤ê¤³¤Æ¤¤ #T35 Àú¤ê¸ÇÄê ++¤¢¤ª¤ê¤³¤Ô¤Ú #T35 Àú¤ê¥³¥Ô¥Ú ++¤¢¤ª¤ê¤ó #JN ¥¢¥ª¥ê¥ó ++¤¢¤« #T35 ¹¤ ++¤¢¤«¤¤¤¯¤Ë¤ß¤Á #T35 ÀÖ°æË®Æ» ++¤¢¤«¤¤¤Û¤¦¤É¤¦ #T35 ÀÖ°æË®Æ» ++¤¢¤«¤­¤ã¤Ã¤× #T35 ÀÖ¥­¥ã¥Ã¥× ++¤¢¤«¤À¤ó¤·¤ã¤¯ #T35 ÀÖÃË¼ß ++¤¢¤«¤Ò #KK ¥¢¥«Æü ++¤¢¤«¤Ò #T35 ¥¢¥«Æü ++¤¢¤«¤Þ¤Õ¤é¡¼ #T35 À֥ޥե顼 ++¤¢¤«¤Þ¤Õ¤é¤¢ #T35 À֥ޥե顼 ++¤¢¤¬ #R5 aga ++¤¢¤¬¤È¤¦ #CJ ¤¢¤¬¤È¤¦ ++¤¢¤­¤·¤Î¤Î¤ß¤ä¤«¤³¤Ê¤¤¤·¤ó¤Î¤¦ #JN ½©¼ÄµÜ²Â»ÒÆâ¿Æ²¦ ++¤¢¤­¤Ï¤Ð¤é¤Ò¤ç¤¦¤¸¤å¤ó¤·¤è¤¦ #T35 ½©ÍÕ¸¶É¸½à»ÅÍÍ ++¤¢¤­¤Ò¤í¤â¤Ê¡¼ #JN ¥¢¥­¥Ò¥í¥â¥Ê¡¼ ++¤¢¤­¤Ò¤í¤â¤Ê¡¼ #T35 ¥¢¥­¥Ò¥í¥â¥Ê¡¼ ++¤¢¤­¤Ò¤í¤â¤Ê¤¢ #T35 ¥¢¥­¥Ò¥í¥â¥Ê¡¼ ++¤¢¤­¤ì¤¹ #JN ¥¢¥­¥ì¥¹ ++¤¢¤¯¤­¤ó #T35 ¥¢¥¯¶Ø ++¤¢¤¯¤»¤¹¤­¤»¤¤ #T30 ¥¢¥¯¥»¥¹µ¬À© ++¤¢¤¯¤»¤¹¤­¤»¤¤ #T35 ¥¢¥¯¥»¥¹µ¬À© ++¤¢¤¯¤Þ #JN °­Ëâ ++¤¢¤¯¤Þ #T35 °­Ëâ ++¤¢¤°¤Í¤¹¤¹¤Ú¤·¤ã¤ë #T35 ¥¢¥°¥Í¥¹¥¹¥Ú¥·¥ã¥ë ++¤¢¤±¤¤¤¿ #CN ¥¢¥±ÈÄ ++¤¢¤±¤¤¤¿ #T35 ¥¢¥±ÈÄ ++¤¢¤² #CJ ¤¢¤² ++¤¢¤² #CN ¾å¥² ++¤¢¤² #KSr ¤¢¤² ++¤¢¤² #R5 age ++¤¢¤² #T35 age ++¤¢¤² #T35 ¤¢¤² ++¤¢¤² #T35 ¾å¤² ++¤¢¤² #T35 ¾å¥² ++¤¢¤²¤¢¤é¤· #T35 age¹Ó¤é¤· ++¤¢¤²¤¢¤é¤· #T35 ¤¢¤²¹Ó¤é¤· ++¤¢¤²¤Á¤å¤¦ #T35 ¤¢¤²¿ß ++¤¢¤²¤Ñ¤½¤Þ¤½ #JN ageŽÊŽßŽ¿ŽÏŽ¿ ++¤¢¤²¤Ö¤é¤¶¡¼¤º #JN age¥Ö¥é¥¶¡¼¥º ++¤¢¤²¤â¤Ê¡¼ #JN age¥â¥Ê¡¼ ++¤¢¤²¤ì #CJ age¤ì ++¤¢¤²¤ì¤¹ #T35 age¥ì¥¹ ++¤¢¤²¤ó¤Ê¤Ü¤± #CJ ¤¢¤²¤ó¤Ê¥Ü¥±¡ª ++¤¢¤´ #JN ¥¢¥´ ++¤¢¤´ #T35 ¥¢¥´ ++¤¢¤´¤¢¤Ë¤á #T35 ¥¢¥´¥¢¥Ë¥á ++¤¢¤´¤ª¤¿ #JN ¥¢¥´¥ª¥¿ ++¤¢¤´¤ª¤¿ #T35 ¥¢¥´¥ª¥¿ ++¤¢¤´¤Ï¤º¤·¤â¤Á #T30 ¤¢¤´¥Ï¥º¥·»ý¤Á ++¤¢¤´¤Ï¤º¤·¤â¤Á #T35 ¤¢¤´¥Ï¥º¥·»ý¤Á ++¤¢¤µ¤Á¤å¤ó #T35 Ä«¥Á¥å¥ó ++¤¢¤µ¤Ì¤Þ¤Ê¤ß¤»¤ó¤»¤¤ #JN Àõ¾ÂÆàÈþÀèÀ¸ ++¤¢¤µ¤Ï¤é¡¼ #JN ¥¢¥µ¥Ï¥é¡¼ ++¤¢¤µ¤Ò¤¤¤Á¤Ë¤¤¤Á¤¼¤í #T35 Ä«Æü12.10 ++¤¢¤µ¤Ô¡¼ #JN ¥¢¥µ¥Ô¡¼¡¡ ++¤¢¤¸¤Ý¤ó #T35 Ì£¥Ý¥ó ++¤¢¤¹¤«¤â¤Ê¡¼ #JN ÈôÄ»¥â¥Ê¡¼ ++¤¢¤¹¤­¡¼¤¢¡¼¤È #T35 ¥¢¥¹¥­¡¼¥¢¡¼¥È ++¤¢¤¹¤­¡¼¤¢¡¼¤È¤«¤¤¤»¤­ #JN £Á£Á²òÀÏ ++¤¢¤¹¤­¤¤¤¢¤¢¤È #T35 ¥¢¥¹¥­¡¼¥¢¡¼¥È ++¤¢¤º¤Þ¤ó¤¬¤À¤¤¤ª¤¦ #T35 ¤¢¤º¤Þ¤ó¤¬Â粦 ++¤¢¤½¤¦ #JN Ž±Ž¿Ž³ ++¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥¢¥½¥Ñ¥½¥Þ¥½ ++¤¢¤½¤Ñ¤½¤ï¤Ã¤·¤ç¤¤ #JN ¥¢¥½¥Ñ¥½¥ï¥Ã¥·¥ç¥¤ ++¤¢¤½¤Þ¤½¤Ñ¤½¤Ô¡¼¤·¡¼ #JN Ž±Ž¿ŽÊŽßŽ¿ŽÏŽ¿PC ++¤¢¤Ã¤­¤¤ #JN ¥¢¥Ã¥­¡¼ ++¤¢¤Ã¤¶¤à #JN ¥¢¥Ã¥¶¥à ++¤¢¤Ã¤½ #JN ¤¢¤Ã¤½ ++¤¢¤Ã¤½¡¼ #CJ ¤¢¤Ã¤½¡¼ ++¤¢¤Ã¤½¡¼ #JN ¤¢¤Ã¤½¡¼ ++¤¢¤Ã¤Á¤³¤Ã¤Á¤¤¤¤¤È¤â #JN ¥¢¥Ã¥Á¥³¥Ã¥Á¥¤¥¤¥È¥â ++¤¢¤Ã¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í ++¤¢¤Ã¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í ++¤¢¤Ã¤×¤º #T35 Appz ++¤¢¤Ã¤×¤ë¤ª¤ä¤¸ #T35 ¥¢¥Ã¥×¥ë¥ª¥ä¥¸ ++¤¢¤Ã¤×¤ë¤­¤Ã¤É #JN ¥¢¥Ã¥×¥ë¥­¥Ã¥É ++¤¢¤Ã¤×¤í¡¼¤À¡¼ #T35 ¥¢¥Ã¥×¥í¡¼¥À¡¼ ++¤¢¤Ä¡¼ #JN (ŽßAŽß;)ޱŽÂް ++¤¢¤Ä¡¼ #JN ޱŽÂް ++¤¢¤Ä¤²¤·¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó #JN ¡ÚŽ¥¢ÏŽ¥¡Û ++¤¢¤Ä¤²¤·¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó #JN ޱŽÂ޹ŽÞ޼ޮ޳޼ŽÞ޻ޏ޼ŽÞŽ´ŽÝ ++¤¢¤È¤Ô¡¼ #T35 @p ++¤¢¤Ê¤¶¡¼¤¢¤®¤³ #JN ¥¢¥Ê¥¶¡¼¥¢¥®¥³ ++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #CJ ¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹ ++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #JN ¡Ê'¢Ï`¡Ë¡ã¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹ ++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #JN ¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹ ++¤¢¤Ê¤í¤°¤Õ¤¡¤¯¤È¤ê¤¤ #T35 ¥¢¥Ê¥í¥°¥Õ¥¡¥¯¥È¥ê¡¼ ++¤¢¤Ê¤ò¤¿ #T35 ¥¢¥Ê¥ò¥¿ ++¤¢¤Ë #T35 ·» ++¤¢¤Ë¤ª¤¿ #T35 ¥¢¥Ë¥ª¥¿ ++¤¢¤Ë¤­ #T35 ¥¢¥Ë¥­ ++¤¢¤Ë¤¸¤ã #T35 ·»¼Ô ++¤¢¤Ë¤×¤ê #T35 ¥¢¥Ë¥×¥ê ++¤¢¤Ë¤ò¤¿ #T35 ¥¢¥Ë¥ò¥¿ ++¤¢¤Î¤¯¤Ë #T35 ¤¢¤Î¹ñ ++¤¢¤Î¤¯¤Ë¤Î¤¢¤Î¤Û¤¦¤½¤¯ #T35 ¤¢¤Î¹ñ¤Î¤¢¤Îˡ§ ++¤¢¤Ï¤¡ #JN (*¡­§Õ`*)ޱŽÊާ♥ ++¤¢¤Ï¤¡ #JN (*¡­§Õ`;)¡Ä ++¤¢¤Ï¤¡ #JN ¡Ä(*¡­§Õ`)ޱŽÊާ¡Ä♥ ++¤¢¤Ï¤¡ #JN ¦²(*Žß§¥`;)ޱ¡Äޱ¡ÄޱޝŽÊާާާާާާާާ♥!!!! ++¤¢¤Ï¤¡ #JN ¦²(Žß§Õ`*;)ޱޝ,ޱŽÊާ♥ ++¤¢¤Ï¤¡ #JN ޱŽÊާ♥ ++¤¢¤Ñ¤à #T35 ¥¢¥Ñ¥à ++¤¢¤Ñ¤à¤¿¤Þ¤â¤Ã¤Æ¤³¤¤ #JN ¥¢¥Ñ¥à¡ªÃÆ»ý¤Ã¤Æ¤³¤¤ ++¤¢¤Ò¤ã #CJ ¥¢¥Ò¥ã ++¤¢¤Ò¤ã #CJ ޱŽËެ ++¤¢¤Ò¤ã #JN ¥¢¥Ò¥ã ++¤¢¤Ò¤ã #JN ޱŽËެ ++¤¢¤Ò¤ã¤¢¤¶¤é¤· #JN ¥¢¥Ò¥ã¥¢¥¶¥é¥·¡¡ ++¤¢¤Ò¤ã¤¬¤ß¤Ï¤«¤» #JN ¥¢¥Ò¥ã¿ÀÇî»Î ++¤¢¤Ó¤ã #CJ ¤¢¤Ó¤ã ++¤¢¤Ô¤Ã¤·¤ã¡¼ #JN ¥¢¥Ô¥Ã¥·¥ã¡¼ ++¤¢¤Õ¤¡¡¼¤à¤É¤¨¤Ã¤¯¤¹ #JN ¥¢¥Õ¥¡¡¼¥à¥É£Ø ++¤¢¤Õ¤© #T35 ¥¢¥Õ¥© ++¤¢¤Õ¤¬¤ó¤³¤¦¤¯¤¦¤º¤â¤¦ #T35 ¥¢¥Õ¥¬¥ó¹Ò¶õÁêËÐ ++¤¢¤Õ¤í¤Ë¤À¡¼ #JN ¥¢¥Õ¥í¥Ë¥À¡¼ ++¤¢¤Ö¤¤¤¿ #T35 ¥¢¥ÖÈÄ ++¤¢¤Ö¤¥¤ë¤â¤Ê¡¼ #JN ¥¢¥ô¥É¥¥¥ë¥â¥Ê¡¼ ++¤¢¤× #T30 ¤¢¤× ++¤¢¤× #T30 ¥¢¥× ++¤¢¤×¤í¤À #T35 ¤¢¤×¤í¤À ++¤¢¤Ù #JN ¤Ê¤Ã¤Á ++¤¢¤Ù #JN °ÂÇÜ ++¤¢¤Û¤¹¤± #T35 ¤¢¤Û½õ ++¤¢¤Û¤¿¤ó #JN ¤¢¤Û¤¿¤ó ++¤¢¤Û¤ë¤À¡¼ #T35 ¥¢¥Û¥ë¥À¡¼ ++¤¢¤Û¤ë¤À¤¢ #T35 ¥¢¥Û¥ë¥À¡¼ ++¤¢¤Ü¡¼¤ó #JN ¤¢¤Ü¡¼¤ó ++¤¢¤Ü¡¼¤ó #T30 ¤¢¤Ü¡¼¤ó ++¤¢¤Ü¡¼¤ó #T30 ¤¢¤Ü¡Á¤ó ++¤¢¤Ü¡¼¤ó¤Í¤Ã¤È¤ï¡¼¤¯ #T35 ¥¢¥Ü¡¼¥ó¥Í¥Ã¥È¥ï¡¼¥¯ ++¤¢¤Ü¡¼¤ó¤Ð¤¯¤é¤¤ #JN ޱŽÎŽÞްŽÝÇúÍë ++¤¢¤Ü¤ª¤·¤ç¤ó #T35 ¥¢¥Ü¡¼¥·¥ç¥ó ++¤¢¤Ü¤ª¤ó #T35 ¤¢¤Ü¡Á¤ó ++¤¢¤Ü¤ª¤ó¤Í¤Ã¤È¤ï¤¢¤¯ #T35 ¥¢¥Ü¡¼¥ó¥Í¥Ã¥È¥ï¡¼¥¯ ++¤¢¤Ý¡¼ #KK ¥¢¥Ý¡¼ ++¤¢¤Ý¡¼ #T35 ¥¢¥Ý¡¼ ++¤¢¤Ý¤ª #T35 ¥¢¥Ý¡¼ ++¤¢¤Þ¡¼ #JN ¡Ê♥¢Ï;♥¡ËޱŽÏް ++¤¢¤Þ¡¼ #JN ¥¢¥Þ¡¼ ++¤¢¤ß #T35 ÌÖ ++¤¢¤à¤í¤Ë¤ã¤ß¤¨ #JN °Â¼¼ŽÆŽ¬ŽÐŽ´ ++¤¢¤á¤¶¡¼ #T35 ¤¢¤á¤¶¡¼ ++¤¢¤á¤¶¡¼¤Í¤Ã¤È¤Ä¡¼ #CN ¤¢¤á¤¶¡¼¤Í¤Ã¤È£² ++¤¢¤á¤¶¡¼¤Í¤Ã¤È¤Ä¡¼ #T35 ¤¢¤á¤¶¡¼¤Í¤Ã¤È£² ++¤¢¤á¤¶¤¢ #T35 ¤¢¤á¤¶¡¼ ++¤¢¤á¤¶¤¢¤Í¤Ã¤È¤Ä¤¦ #T35 ¤¢¤á¤¶¡¼¤Í¤Ã¤È£² ++¤¢¤á¤¾¤¦ #CN ¤¢¤á¤¾¤¦ ++¤¢¤á¤¾¤¦ #JN ¤¢¤á¤¾¤¦ ++¤¢¤á¤¾¤¦ #T35 ¤¢¤á¤¾¤¦ ++¤¢¤á¤¾¤¦¤«¤ê #JN ¤¢¤á¤¾¤¦¡Ê²¾¡Ë ++¤¢¤á¤¾¤¦¤«¤ê #T35 ¤¢¤á¤¾¤¦¡Ê²¾¡Ë ++¤¢¤á¤Ë¤â¤Þ¤±¤Æ #T35 ¥¢¥á¥Ë¥â¥Þ¥±¥Æ ++¤¢¤á¤Í¤³ #JN ¤¢¤á¤Í¤³ ++¤¢¤ä¤·¤£¤ï¡¼¤ë¤É #CN ¤¢¤ä¤·¤£¤ï¡¼¤ë¤É ++¤¢¤ä¤·¤¤ #T35 ¤¡¤ã¦É¤£ ++¤¢¤ä¤·¤¤¤¸¤å¤¦¤Ë¤ó #T35 ¤¡¤ã¦É¤£½»¿Í ++¤¢¤ä¤·¤¤¤ï¡¼¤ë¤É #CN ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É ++¤¢¤ä¤·¤¤¤ï¡¼¤ë¤É #T35 ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É ++¤¢¤ä¤·¤¤¤ï¤¢¤ë¤É #T35 ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É ++¤¢¤ä¤Ê¤ß¤ì¤¤ #JN ¤¡¤ã¤Ê¤ß¥ì¥¤ ++¤¢¤æ #JN ¤¢¤æ ++¤¢¤æ #T35 ¤¢¤æ ++¤¢¤æ #T35 °¾ ++¤¢¤æ¤â¤Ê¡¼ #JN ¤¢¤æ¥â¥Ê¡¼ ++¤¢¤è¤Í #T35 ¤¢¤è¤Í ++¤¢¤é #S5r ¹Ó¤é ++¤¢¤é¤¢¤­¤¤ #T35 ¥¢¥é¡¼¥­¡¼ ++¤¢¤é¤¯¤ì #JN ¤¢¤é¤¯¤ì ++¤¢¤é¤¯¤ì¤ï¤Ã¤·¤ç¤¤ #JN ¤¢¤é¤¯¤ì¥ï¥Ã¥·¥ç¥¤ ++¤¢¤é¤µ¡¼ #T35 ¹Ó¤µ¡¼ ++¤¢¤é¤µ¤¢ #T35 ¹Ó¤µ¡¼ ++¤¢¤é¤· #T35 ¹Ó¤é¤· ++¤¢¤é¤· #T35 ¹Ó¤é»á ++¤¢¤é¤· #T35 ¹Ó»á ++¤¢¤é¤· #T35 ¿·»á ++¤¢¤é¤· #T35 Íò ++¤¢¤é¤·¤¤¤é¤¤ #T30 ¹Ó¤é¤·°ÍÍê ++¤¢¤é¤·¤¤¤é¤¤ #T35 ¹Ó¤é¤·°ÍÍê ++¤¢¤é¤·¤³¤Æ¤¤ #T30 ¹Ó¤é¤·¸ÇÄê ++¤¢¤é¤·¤³¤Æ¤¤ #T35 ¹Ó¤é¤·¸ÇÄê ++¤¢¤é¤·¤½¤¦¤´¤¦¤»¤ó¤¿¡¼ #JN ¹Ó¤é¤·Áí¹ç¥»¥ó¥¿¡¼ ++¤¢¤é¤¹ #S5r ¹Ó¤é ++¤¢¤é¤Ó¤¢¤´¤¢¤é¤· #T35 ¥¢¥é¥Ó¥¢¸ì¹Ó¤é¤· ++¤¢¤é¤ä¤À #CJ ¤¢¤é¤ä¤À ++¤¢¤é¤ä¤À #JN (¡¬§Õ¡¬)¡ã¤¢¤é¤ä¤À¡ª ++¤¢¤é¤ä¤À #JN ¤¢¤é¤ä¤À ++¤¢¤é¤ä¤À¤«¤ó¤¼¤ó¤¿¤¤ #JN ¤¢¤é¤ä¤À´°Á´ÂÎ ++¤¢¤ê¤¨¡¼¤ë #CJ ¥¢¥ê¥¨¡¼¥ë ++¤¢¤ê¤¨¡¼¤ë #T35 ¥¢¥ê¥¨¡¼¥ë ++¤¢¤ê¤¨¡¼¤ë #T35 ޱި޴ްŽÙ ++¤¢¤ê¤¨¤¨¤ë #T35 ¥¢¥ê¥¨¡¼¥ë ++¤¢¤ê¤¨¤¨¤ë #T35 ޱި޴ްŽÙ ++¤¢¤ê¤¬¤È¤¦ #JN ¤¢¤ê¤¬¤È¤¦ ++¤¢¤ê¤¹ #JN ¤¢¤ê¤¹ ++¤¢¤ë¤«¤â¤Ê¤º¤±¤¤¤à¤·¤ç #JN ¥¢¥ë¥«¥â¥Ê¥º·ºÌ³½ê ++¤¢¤ë¤¯¤­¤Î¤³ #JN Ê⤯¥­¥Î¥³ ++¤¢¤ë¤¯¤á #JN Ê⤯²ê ++¤¢¤ì¤ó¤¸ #JN ¥¢¥ì¥ó¥¸ ++¤¢¤í¤¨¤ê¡¼¤Ê #JN ¥¢¥í¥¨¥ê¡¼¥Ê ++¤¢¤ó¤¬¤È¤Ê¤â¡¼ #JN ¤¢¤ó¤¬¤È¥Ê¥â¡¼ ++¤¢¤ó¤°¤é #T35 ¥¢¥ó¥°¥é ++¤¢¤ó¤±¤ó¤µ¤Ä #JN °Å¡¦·õ¡¦»¦ ++¤¢¤ó¤·¤ã¤¹¤Í¤³ #JN ¥¢¥ó¥·¥ã¥¹Ç­ ++¤¢¤ó¤¿¤¬¤Ê¡¼ #JN ¥¢¥ó¥¿¥¬¥Ê¡¼ ++¤¢¤ó¤¿¤â¤Í¡¼ #JN ¥¢¥ó¥¿¥â¥Í¡¼ ++¤¢¤ó¤À¡¼¤°¤é¤¦¤ó¤É #T35 ¥¢¥ó¥À¡¼¥°¥é¥¦¥ó¥É ++¤¢¤ó¤Á¤Ç¤£¤¤¤Æ¤£¤¤ #T35 ¥¢¥ó¥ÁDT ++¤¢¤ó¤Ê¤«¤Ï¤ë¤Ê #CN °ÂÃæ¿ºÌ¾ ++¤¢¤ó¤Ê¤«¤Ï¤ë¤Ê #T35 °ÂÃæ¿ºÌ¾ ++¤£¤ç¤¥ #JN ¤£¤ç¤¥ ++¤¤ #C5r À ++¤¤¡¼¤¸¤¤ #T35 £ÅÌì ++¤¤¡¼¤Ú¡¼¤³¡¼ #JN ¥¤¡¼¥Ú¡¼¥³¡¼ ++¤¤¡¼¤ó¤¸¤ã¤Ê¤¤¤Î #JN ¤¤¡¼¤ó¤¸¤ã¤Ê¤¤¤Î ++¤¤¤¤ #CJ (Ž¥¢ÏŽ¥)޲޲!! ++¤¤¤¤ #CJ ¡Ê¡¦¢Ï¡¦¡Ë¥¤¥¤!! ++¤¤¤¤ #CJ ¡Ê¡¦¢Ï¡¦¡Ë޲޲!! ++¤¤¤¤ #CJ ¥¤¥¤ ++¤¤¤¤¤¢¤¸¤ã¤ó #JN ¤¤¤¤¤¢¤¸¤ã¤ó ++¤¤¤¤¤¸¤Þ #T35 ÈÓÅè ++¤¤¤¤¤¿¤¤¤À¤±¤Á¤ã¤¦¤ó¤«¤È #CJ ¸À¤¤¤¿¤¤¤À¤±¤Á¤ã¤¦¤ó¤«¤È¡£ ++¤¤¤¤¤À #T35 ÈÓÅÄ ++¤¤¤¨¤¤¤³¤é #T35 °ä±Æ¥³¥é ++¤¤¤¨¤Ï¤ä¤É¤Ç¤â¤¬¤Ã¤·¤å¤¯¤¸¤ç¤Ç¤â¤Í¤§¤¾ #T35 ²È¤Ï½É¤Ç¤â¹ç½É½ê¤Ç¤â¤Í¤§¤¾¡ª ++¤¤¤« #T35 ¤¤¤« ++¤¤¤«¤¬¤Ê¤â¤Î¤« #JN ޲޶޶ŽÞŽÅŽÓŽÉ޶ ++¤¤¤«¤¯¤»¤¨ #CJ ¤¤¤«¤¯¤»¡¼ ++¤¤¤«¤·¤ç¤¦¤ê¤ã¤¯ #CJ ¡Ê°Ê²¼¾Êά ++¤¤¤«¤·¤ç¤¦¤ê¤ã¤¯ #CJ °Ê²¼¾Êά ++¤¤¤«¤ê¤Î¤¤¤Þ¤Î¤¦¤Á #JN Åܤê¤Î¥¤¥Þ¥Î¥¦¥Á ++¤¤¤«¤ê¤ò¤Ö¤Ä¤±¤ë¤â¤Ê¡¼ #JN Åܤê¤ò¤Ö¤Ä¤±¤ë¥â¥Ê¡¼ ++¤¤¤­¤¸¤ë¤·¤®¤å¤¦¤Ë¤å¤¦ #JN À°õµíÆý ++¤¤¤­¤Î¤¤¤¤¤®¤³¤¦¤ê #JN À¤­¤Î¤¤¤¤¥®¥³Çä¤ê ++¤¤¤­¤Î¤¤¤¤¤Ë¤»¤®¤³ #JN À¤­¤ÎÎɤ¤µ¶¥®¥³ ++¤¤¤¯ #C5r À¤¯ ++¤¤¤¯¤Ê¤¤ #CJ ¥¤¥¯¥Ê¥¤¡ª¡ª ++¤¤¤¯¤Ê¤¤ #CJ ޲ޏŽÅ޲!! ++¤¤¤±¤Ì¤Þ #T35 ÃӾ ++¤¤¤±¤Í¡¼¤è #JN ¥¤¥±¥Í¡¼¥è ++¤¤¤±¤á¤ó #T35 ÃÓÌÍ ++¤¤¤±¤á¤ó¤¦¤ó¤³ #JN ¤¤¤±¤á¤ó¥¦¥ó¥³ ++¤¤¤³¡¼¤¯¤³¤Æ¤Ê¡¼¤³¤â¤Ò¤ã #JN ¥¤¥³¡¼¥¯¡¦¥³¥Æ¥Ê¡¼¡¦¥³¥â¥Ò¥ã ++¤¤¤³¤ª¤ë¤Ð¤« #T35 ¥¤¥³¡¼¥ë¥Ð¥« ++¤¤¤³¤¯¤®¤³ #JN °Û¹ñµ¼¸Å ++¤¤¤·¤«¤ï #T35 ÀÐÀî ++¤¤¤·¤«¤ï¤Ã¤Æ¤¦¤ó¤³¤¹¤ë¤Î #CJ ÀÐÀî¤Ã¤Æ¥¦¥ó¥³¤¹¤ë¤Î¡© ++¤¤¤·¤ã #T35 °å¼Ô ++¤¤¤·¤ä¤­¤¤¤â¤¦¤ê #JN ÀоƤ¤¤âÇä¤ê ++¤¤¤¸¤á¤Ê¤¤¡¼¤Ç¤Í #JN ¥¤¥¸¡¦¥á¡¦¥Ê¥¤¥Ç¡¼¥Í ++¤¤¤¸¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó¤Ç¤·¤¿ #CJ (Ž¥¢ÏŽ¥)޲޼ŽÞޮ޳޼ŽÞ޻ޏ޼ŽÞŽ´ŽÝŽÃŽÞ޼ŽÀ ++¤¤¤¸¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó¤Ç¤·¤¿ #CJ ¡Ê¡¦¢Ï¡¦¡Ë޲޼ŽÞޮ޳޼ŽÞ޻ޏ޼ŽÞŽ´ŽÝŽÃŽÞ޼ŽÀ ++¤¤¤¹ #T35 °Ø»Ò ++¤¤¤¹¤É¤ó #T35 ¥¤¥¹¥É¥ó ++¤¤¤¿ #T35 ÈÄ ++¤¤¤¿¤¤ #T35 °äÂÎ ++¤¤¤¿¤«¤ó #T35 ÄË´É ++¤¤¤¿¤¬¤ª¤Á¤ë #CJ ÈĤ¬Íî¤Á¤ë ++¤¤¤¿¤¬¤­ #KK Ä˲ ++¤¤¤¿¤¬¤­ #T35 Ä˲ ++¤¤¤¿¤¬¤È¤Ö #CJ ÈĤ¬Èô¤Ö ++¤¤¤¿¤¯¤Í¡¼¤è #JN ¥¤¥¿¥¯¥Í¡¼¥è ++¤¤¤¿¤³¤¦¤¿¤¤¤¹¤± #T35 ÈűÂà½õ ++¤¤¤¿¤´¤Ð¤¯ #T30 ÈĸíÇú ++¤¤¤¿¤Á¤¬ #W5r Èİã ++¤¤¤¿¤Á¤¬¤¤ #T35 Èİ㤤 ++¤¤¤¿¤È¤Ð¤· #T35 ÈĤȤФ· ++¤¤¤¿¤Ë¤¤¤± #CJ ÈĤËÀ¤±¡ª ++¤¤¤¿¤á¤¤ #T35 ÈÄ̾ ++¤¤¤¿¤ë¤ê¤¢¤ê¤Æ¤£ #T35 ¤¤¤¿¤ë¥ê¥¢¥ê¥Æ¥£ ++¤¤¤Á #T35 1 ++¤¤¤Á¤¤ #JNS »Ô°æ ++¤¤¤Á¤¤ #T35 »Ô°æ ++¤¤¤Á¤´¤»¤ó¤½¤¦ #T35 çõÀïÁè ++¤¤¤Á¤´¤Þ¤«¤¤ #T35 çõË⳦ ++¤¤¤Á¤µ¤ó #JN £±¤µ¤ó ++¤¤¤Á¤µ¤ó¤Î¤ª¤«¤¢¤µ¤Þ¤Ø #CJ 1¤µ¤ó¤Î¤ªÊìÍÍ¤Ø ++¤¤¤Á¤µ¤ó¤Î¤´¤¦¤«¤¯¤Ï¤Ã¤Ô¤ç¤¦ #JN £±¤µ¤ó¤Î¹ç³Êȯɽ ++¤¤¤Á¤µ¤ó¤ò¤È¤ê¤Þ¤¯¤½¤¦¤«¤ó¤º #JN £±¤µ¤ó¤ò¼è¤ê´¬¤¯Áê´Ø¿Þ ++¤¤¤Á¤µ¤ó¤ò¤È¤ê¤Þ¤¯¤½¤¦¤«¤ó¤º #T35 £±¤µ¤ó¤ò¼è¤ê´¬¤¯Áê´Ø¿Þ ++¤¤¤Á¤Ã¤Æ¤¦¤¶¤¤¤è¤Í #JN £±¤Ã¤Æ¤¦¤¶¤¤¤è¤Í¡Á ++¤¤¤Á¤Î¤Ä¤¦¤Á¤Ò¤ç¤¦ #JN £±¤ÎÄÌÃÎɽ ++¤¤¤Á¤Î¤Ï¤« #JN £±¤ÎÊè ++¤¤¤Á¤Ï¤Ï¤ä¤¯¤·¤Í #JN £±¤ÏÁ᤯»à¤Í¡ª¡ª ++¤¤¤Á¤Ó¤Ã¤È¤µ¤Ð #T35 1bit»ª ++¤¤¤Á¤â¤¸¤Å¤Ä¤Ä¤¯¤Ã¤Æ¤Õ¤ä¤·¤¿¤¢¤¹¤­¡¼¤¢¡¼¤È #JN °ìʸ»ú¤º¤Ä¤Õ¤ä¤·¤Æºî¤Ã¤¿£Á£Á ++¤¤¤Ã¤­¤³¤¦ #T35 °ì´ü¹» ++¤¤¤Ã¤¿¤ó¤³¤ê¤ó¤º #JN ޲ޝŽÀŽÝŽºŽØŽÝ޽ŽÞ ++¤¤¤Ã¤Á¤ã¤Ã¤Æ¤¯¤À¤µ¤¤ #JN À¤äÁ¤ã¤Ã¤Æ¤¯¤À¤µ¤¤ ++¤¤¤Ã¤Á¤ã¤ó #CJ 1ch ++¤¤¤Ã¤Á¤ã¤ó #CJ 1ch.tv ++¤¤¤Ã¤Á¤ã¤ó #CJ £±¤Á¤ã¤ó ++¤¤¤Ã¤Á¤ã¤ó #T35 1ch ++¤¤¤Ã¤Á¤ã¤ó #T35 1ch.tv ++¤¤¤Ã¤Á¤ã¤ó #T35 £±¤Á¤ã¤ó ++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ 1ch ++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ 1ch.tv ++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ £±¤Á¤ã¤ó ++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 1ch ++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 1ch.tv ++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 £±¤Á¤ã¤ó ++¤¤¤Ã¤Æ¤¯¤ë #CJ À¤äƤ¯¤ë ++¤¤¤Ã¤Æ¤¯¤ë #kxuru À¤äƤ¯¤ë ++¤¤¤Ã¤Æ¤è¤· #CJ ¤£¤Ã¦Ó¤ç¦É ++¤¤¤Ã¤Æ¤è¤· #CJ À¤äƤ褷 ++¤¤¤Ã¤Æ¤è¤·¤³¤¬¤¿¤Ò¤³¤¦¤Æ¤¤ #JN À¤äƤ褷¾®·¿Èô¹ÔÄú ++¤¤¤Ã¤Æ¤è¤·¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN À¤äƤ褷ǧÄê°Ñ°÷²ñ ++¤¤¤Ã¤Æ¤è¤·¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN À¤äƤ褷ǧÄê°Ñ°÷²ñ ++¤¤¤Ã¤Æ¤è¤¹ #CJ À¤äƥ襹 ++¤¤¤Ã¤È¤¦¤¸¤ç¤æ¤¦ #T35 °ìÅù½÷Í¥ ++¤¤¤Ã¤Ñ¤Ä¤À¤±¤Ê¤é¤´¤·¤ã #CJ °ìȯ¤À¤±¤Ê¤é¸í¼Í ++¤¤¤Ã¤Ñ¤ó¤­¤ã¤¯ #T35 °ìÈÌµÒ ++¤¤¤Ã¤Ñ¤ó¤¸¤ó #T35 °ìÈÌ¿Í ++¤¤¤Ä¤â¤³¤³¤«¤é #JN ¤¤¤Ä¤â¤³¤³¤«¤é ++¤¤¤Æ¤ó¤·¤Þ¤·¤¿ #CJ °Üž¤·¤Þ¤·¤¿ ++¤¤¤Æ¤ó¤·¤Þ¤·¤¿ #T35 °Üž¤·¤Þ¤·¤¿ ++¤¤¤Ç¤Û¤½ #JN ÅÁÀâµð¿À޲ŽÃŽÞŽÎŽ¿ ++¤¤¤Ç¤Û¤½ #JN ޲ŽÃŽÞŽÎŽ¿ ++¤¤¤È¤¦¤¯¤ó #JN °ËÆ£·¯ ++¤¤¤È¤¦¤¯¤ó #JN °ËÆ£·¯ ++¤¤¤Ê¤«¤â¤Ê¡¼ #JN Åļ˥â¥Ê¡¼ ++¤¤¤Ê¤¬¤­¤á¤ó¤Ð¡¼ #T35 °ð³À¥á¥ó¥Ð¡¼ ++¤¤¤Ê¤¬¤­¤á¤ó¤Ð¤¢ #T35 °ð³À¥á¥ó¥Ð¡¼ ++¤¤¤Ê¤´ #T35 175 ++¤¤¤Ê¤´ #T35 ¥¤¥Ê¥´ ++¤¤¤Ê¤´ #T35 éû ++¤¤¤Ë¤Í¤³ #JN ini¤Í¤³ ++¤¤¤Ì #CN ¸¤ ++¤¤¤Ì #KK ¸¤ ++¤¤¤Ì #T35 ¸¤ ++¤¤¤Ì¤³¤¦¤Ü¤¦ #JN ¸¤¸øË¾ ++¤¤¤Ì¤»¤ó¤»¤¤ #T35 ¸¤ÀèÀ¸ ++¤¤¤Ì¤Á¤å¤¦ #T35 ¸¤¿ß ++¤¤¤Ì¤ä¤Þ¤Ð¤· #JN ¸¤»³¶¶ ++¤¤¤Î¤¨¤â¤ó #T35 ¤¤¤Î¤¨¤â¤ó ++¤¤¤Î¤¬¤·¤é¡¼ #JN ¥¤¥Î¥¬¥·¥é¡¼ ++¤¤¤Î¤­¤¹¤ì #T35 ÃöÌÚ¥¹¥ì ++¤¤¤Î¤­¤Î¤Ç¤ó¤ï #JN ¤¤¤Î¤­¤ÎÅÅÏà ++¤¤¤Î¤±¤ó #JN ¥¤¥Î¥±¥ó ++¤¤¤Î¤Á¤Î¤Ç¤ó¤ï #JN ¤¤¤Î¤Á¤ÎÅÅÏà ++¤¤¤Ð¤·¤ç¤Í¡¼¤è #JN µï¾ì½ê¥Í¡¼¥è ++¤¤¤Ñ¡¼¤¤ #T15 ¥¤¥Ñ¡¼¥¤ ++¤¤¤Ñ¡¼¤¤ #T35 ¥¤¥Ñ¡¼¥¤ ++¤¤¤Þ¤¤¤°¤ó¤À¤ó #JN º£°æ·³ÃÄ ++¤¤¤Þ¤¤¤â¤Ê¡¼ #JN º£°æ¥â¥Ê¡¼ ++¤¤¤Þ¤ª¤«¤â¤Ê¡¼ #JN ¥¤¥Þ¥ª¥«¥â¥Ê¡¼ ++¤¤¤Þ¤ª¤«¤â¤Ê¡¼ #T35 ¥¤¥Þ¥ª¥«¥â¥Ê¡¼ ++¤¤¤Þ¤ª¤«¤â¤Ê¤¢ #T35 ¥¤¥Þ¥ª¥«¥â¥Ê¡¼ ++¤¤¤Þ¤½¤«¤ê #CJ ¤¤¤Þ¤½¤«¤ê ++¤¤¤Þ¤Î¤¦¤Á #JN ¥¤¥Þ¥Î¥¦¥Á ++¤¤¤Þ¤Î¤¦¤Á¤ª¤Ë¤®¤ê¤Ð¡¼¤¸¤ç¤ó #JN ¥¤¥Þ¥Î¥¦¥Á¡¦¤ª¤Ë¤®¤ê¥Ð¡¼¥¸¥ç¥ó ++¤¤¤Þ¤Î¤¦¤Á¤Ô¤«¤¡ #JN ޲ŽÏŽÉ޳ŽÁ¥Ô¥«¥¡! ++¤¤¤á¤Ì¤Ï¤¸¤­ #T35 ime.nuÃÆ¤­ ++¤¤¤â #CN °ò ++¤¤¤â #T35 °ò ++¤¤¤â¤¦¤È #T35 Ëå ++¤¤¤ä¤·¤±¤¤ #JN Ìþ¤··Ï ++¤¤¤ä¤É¤ó #CJ ¡Ê¡¦£Á¡¦¡Ë޲ŽÔŽÄŽÞŽÝ!! ++¤¤¤ä¤Þ¤Ã¤¿¤¯ #JN ¨¬Ï¯À¸ ++¤¤¤ä¤Þ¤Ã¤¿¤¯ #JN ލެŽÏޝŽÀޏ ++¤¤¤è¤¦ #JN ¤£¤ç¤¥ ++¤¤¤è¤¦ #JN ¥¤¤ç¤¥ ++¤¤¤é¤Ê¤¤¤ï #JN ¥¤¥é¥Ê¥¤¥ï ++¤¤¤é¤Í #JN ¡ÊŽß­ùŽß¡Ë޲Ž×ŽÈ ++¤¤¤é¤Í #JN ޲Ž×ŽÈ ++¤¤¤é¤Í¡¼¤è #JN ¥¤¥é¥Í¡¼¥è ++¤¤¤é¤Í¡¼¤è¤«¤¹¤¿¤à #JN ¥¤¥é¥Í¡¼¥è¥«¥¹¥¿¥à ++¤¤¤é¤Í¡¼¤ë #JN ¥¤¥é¥Í¡¼¥ë ++¤¤¤é¤Í¤¸¤å¤Ë¤¢ #JN ¥¤¥é¥Í¥¸¥å¥Ë¥¢ ++¤¤¤ê¤¢¤µ¤ó #JN Iria¤µ¤ó ++¤¤¤ë¤Í #JN ¡ÊŽß§ØŽß)޲ŽÙŽÈ ++¤¤¤ë¤Í #JN ޲ŽÙŽÈ ++¤¤¤ë¤Ó¤Í #T35 ¤¤¤ë¤Ó¤Í ++¤¤¤ì¤°¤¤ #T35 Æþ¤ì¶ô¤¤ ++¤¤¤í¤Á¤ó¤À¤ó #T35 ¿§ÄÁÃÄ ++¤¤¤ó¤³¤«¤¤¤¸¤ó #JN ¥¤¥ó¥³²ø¿Í ++¤¤¤ó¤³¤«¤¤¤¸¤ó #T35 ¥¤¥ó¥³²ø¿Í ++¤¤¤ó¤· #T35 °ü»à ++¤¤¤ó¤Ô¤ª #T35 ¥¤¥ó¥Ô¥ª ++¤¤¤ó¤Ü¤¦ #T35 ±¢ËÅ ++¤¦¡«¤¡¡¼ #CJ ¥ô¥¡¡¼ ++¤¦¡«¤¡¡¼ #CJ ¥ô¥¢¡¼ ++¤¦¡«¤¡¤¤¤é¤¹ #T35 ¥ô¥¡¥¤¥é¥¹ ++¤¦¡«¤¡¤« #T35 ¥ô¥¡¥« ++¤¦¡«¤¡¤«¤À #KK ¥ô¥¡¥«ÂÌ ++¤¦¡«¤¡¤«¤À #T35 ¥ô¥¡¥«ÂÌ ++¤¦¡«¤£ #JN £Ö ++¤¦¡«¤£¤¯¤È¤ê¡¼¤¾¤Ë¤Ã¤¯ #JN ¥ô¥£¥¯¥È¥ê¡¼¥¾¥Ë¥Ã¥¯ ++¤¦¡«¤£¤¸¤å¤¤¤¿ #T35 ¥ô¥£¥¸¥åÈÄ ++¤¦¡«¤£¤ê¤¤ #T35 virii ++¤¦¤£¤Ê #T35 ¥¦¥£¥Ê ++¤¦¤£¤ó¤¨¤à¤¨¤Ã¤¯¤¹ #T35 WinMX ++¤¦¤£¤ó¤Ç¤£ #T35 Windy ++¤¦¤£¤ó¤É¤¥¡¼¤¯ #T35 winduke ++¤¦¤£¤ó¤É¤¦¤º #T35 Windoz ++¤¦¤§ #JN ³ª ++¤¦¤§ #JN Ž³Žª ++¤¦¤§¤¤¤È #T35 wait ++¤¦¤§¤¨¤Ï¤Ã¤Ï¤Ã¤Ï #CJ ¥¦¥§¡¼¡¢¥Ï¥Ã¥Ï¥Ã¥Ï ++¤¦¤§¤¶¡¼¤ê¤Ý¡¼¤È #JN ¥¦¥§¥¶¡¼¡¦¥ê¥Ý¡¼¥È ++¤¦¤¨¤Î¤¯¤ê¤Ë¤Ã¤¯¤Î¤ª¤È¤³ #T35 ¾åÌ¥ê¥Ë¥Ã¥¯¤ÎÃË ++¤¦¤©¤¬ #T35 ¥¦¥©¥¬ ++¤¦¤ª¡¼¤ó #T35 ¤¦¤ª¡¼¤ó ++¤¦¤ª¤ª¤ó #T35 ¤¦¤ª¡¼¤ó ++¤¦¤ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë¤Þ¤è¤¤¤³¤ó¤¸¤Þ¤Ã¤¿¤¾¤´¤ë¤¡ #JN ¤¦¤ª¡ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë̤¤¹þ¤ó¤¸¤Þ¤Ã¤¿¤¾¥´¥ë¥¡¡ª ++¤¦¤ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë¤Þ¤è¤¤¤³¤ó¤¸¤Þ¤Ã¤¿¤¾¤´¤ë¤¡ #JN ¤¦¤ª¡ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë̤¤¹þ¤ó¤¸¤Þ¤Ã¤¿¤¾ŽºŽÞŽÙާ¡ª ++¤¦¤µ¤Þ¡¼ #JN (Žß§ÕŽß)޳޻ŽÏް ++¤¦¤µ¤Þ¡¼ #JN ³»| ++¤¦¤µ¤Þ¡¼ #JN ޳޻ŽÏ¡Ý ++¤¦¤¶ #KYT ¤¦¤¶ ++¤¦¤¶¤¬¤­ #T35 ¥¦¥¶¥¬¥­ ++¤¦¤·¤ª¤ó¤Ê #JN µí½÷ ++¤¦¤¼¡¼ #JN (`»®¡­)޳޾ŽÞް ++¤¦¤¼¡¼ #JN ¥¦¥¼¡¼ ++¤¦¤¼¡¼ #JN ޳޾ŽÞް ++¤¦¤¼¡¼¤è #JN ¥¦¥¼¡¼¥è ++¤¦¤¼¤§ #CJ ¤¦¤¼¤§ ++¤¦¤¼¤§¡¼ #CJ uzeeee! ++¤¦¤¼¤§¤­¤¨¤í #JN ¥¦¥¼¥§¤­¤¨¤í¡¦¡¦¡¦ ++¤¦¤½¤³¡¼ #JN ¥¦¥½¥³¡¼! ++¤¦¤½¤³¡¼ #JN Ž³Ž¿ŽºŽ°! ++¤¦¤½¤Ï¤¦¤½¤Ç¤¢¤ë¤È¤ß¤Ì¤±¤ë¤Ò¤È¤Ç¤Ê¤¤¤È #CJ ¤¦¤½¤Ï¤¦¤½¤Ç¤¢¤ë¤È¸«È´¤±¤ë¿Í¤Ç¤Ê¤¤¤È ++¤¦¤½¤ä #T35 ±³²° ++¤¦¤¿¤Ë¤Ä¤Ã¤³¤ó¤Ç¤¯¤ì #JN ²Î¤Ë¥Ä¥Ã¥³¤ó¤Ç¤¯¤ì ++¤¦¤Á¤å¤¦¤«¤¤¤Ï¤Ä #T30 ±§Ã賫ȯ ++¤¦¤Á¤å¤¦¤«¤¤¤Ï¤Ä #T35 ±§Ã賫ȯ ++¤¦¤Á¤å¤¦¤ä¤Ð¤¤ #CJ ±§Ãè¥ä¥Ð¥¤ ++¤¦¤Ã¤µ¤¤ #JN ¥¦¥Ã¥µ¥¤ ++¤¦¤Ã¤µ¤¤¤Ï¤² #CJ ¤¦¤Ã¤µ¤¤¥Ï¥² ++¤¦¤Ã¤¿¤¨¤ë¤ê¤¢¤ë¤â¤Ê¡¼ #JN Áʤ¨¤ë¥ê¥¢¥ë¥â¥Ê¡¼ ++¤¦¤Ä¤¦¤¿ #T35 ݵ²Î ++¤¦¤Ä¤¨¤â¤ó #JN ¤¦¤Ä¥¨¥â¥ó ++¤¦¤Ä¤À #KK ݵÂÇ ++¤¦¤Ä¤À #T35 ݵÂÇ ++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ¤¦¤Ä¤À¤·¤Î¤¦ ++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ¤óÂǤĤÀ»áǾ ++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵ¤À»á¤Î¤¦ ++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵ¤À½ÁÇ» ++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵÂÇ»íǹ ++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵÂÌ»áǾ ++¤¦¤Ä¤ä¤­ #JN ݵ¾Æ¤­ ++¤¦¤Æ¤· #T35 ¥¦¥Æ¥· ++¤¦¤È #T35 ¥¦¥È ++¤¦¤Ê¡¼ #JN ¢º(Žß¡ýŽß)¢»Ž³ŽÅް ++¤¦¤Ê¡¼ #JN ޳ŽÅް ++¤¦¤Ë #T35 ¥¦¥Ë ++¤¦¤Ë¤¯¤í #T35 ¥¦¥Ë¥¯¥í ++¤¦¤Ë¤¯¤í #T35 ¥¦¥Ë¹õ ++¤¦¤Ë¤ã¡¼ #JN ¤¦¤Ë¤ã¡Á ++¤¦¤Ë¤å¤¦ #JN ¤¦¤Ë¤å¤¦ ++¤¦¤Ò¤ç¡¼ #JN ¥¦¥Ò¥ç¡¼ ++¤¦¤Ò¤ç¤¹¤ì #T35 ¥¦¥Ò¥ç¥¹¥ì ++¤¦¤× #T30 ¤¦£ð ++¤¦¤× #T30 ¤¦¤× ++¤¦¤× #T35 up ++¤¦¤× #T35 ¤¦¤× ++¤¦¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í ++¤¦¤Ü¤¡¡¼ #JN ¡ÊŽß§¥Žß¡Ë޳ŽÎŽÞާް ++¤¦¤Ü¤¡¡¼ #JN ¥¦¥Ü¥¡¡¼ ++¤¦¤Þ¡¼ #CJ (Žß§ÕŽß)޳ŽÏް ++¤¦¤Þ¡¼ #CJ ¡Ê¡¬§Õ¡¬¡Ë¥¦¥Þ¡¼ ++¤¦¤Þ¡¼ #CJ ¡Ê¡¬§Õ¡¬¡Ë޳ŽÏް ++¤¦¤Þ¡¼ #CJ ¥¦¥Þ¡¼ ++¤¦¤Þ¡¼ #JN (Žß§ÕŽß)޳ŽÏް ++¤¦¤Þ¡¼ #JN ޳ŽÏް ++¤¦¤Þ¤¢ #CJ ¥¦¥Þ¡¼ ++¤¦¤Þ¤¤¤Ü¤¦ #JN ¤¦¤Þ¤¤¤Ü¤¦ ++¤¦¤Þ¤¤¤Ü¤¦ #KK ¤¦¤Þ¤¤ËÀ ++¤¦¤Þ¤¤¤Ü¤¦ #T35 ¤¦¤Þ¤¤ËÀ ++¤¦¤Þ¤Ê¤ê #T35 ÇÏÌé ++¤¦¤â¤¦¤è¤ê¤â¤«¤ë¤¯¤Á¤â¤«¤è¤Ã¤Æ¤¤¤Ê¤¤ #CJ ±©ÌÓ¤è¤ê¤â·Ú¤¯¡¢·ì¤âÄ̤äƤ¤¤Ê¤¤ ++¤¦¤â¤©¡¼ #JN ¥¦¥â¥©¡¼ ++¤¦¤â¤©¡¼ #JN ޳ŽÓޫް ++¤¦¤è #T35 ¥¦¥è ++¤¦¤è¤Ã¤Æ¤ë #T35 ±¦Íã¤Ã¤Æ¤ë ++¤¦¤é¤¢¤ª #T35 ΢ÀÄ ++¤¦¤é¤¢¤¯¤Þ¤Á¤ç¤¦¤¸¤ó #T35 ΢°­ËâĶ¿Í ++¤¦¤é¤¨¤í #T35 ¥¦¥é¥¨¥í ++¤¦¤é¤Ë¤Á¤ã¤ó #KK ΢£²¤Á¤ã¤ó ++¤¦¤é¤Ë¤Á¤ã¤ó #T35 ΢2¤Á¤ã¤ó ++¤¦¤é¤Ë¤Á¤ã¤ó #T35 ΢£²¤Á¤ã¤ó ++¤¦¤é¤Ï¤é #T35 ΢ʢ ++¤¦¤é¤Ü¤ó #T35 ΢ËÞ ++¤¦¤é¤Ü¤ó #T35 ΢Ëß ++¤¦¤é¤Ü¤ó #T35 â³ÍöËß ++¤¦¤é¤é¡¼ #JN ¥¦¥é¥é¡¼ ++¤¦¤ê¤¸¤Ê¤ë #T35 ¥¦¥ê¥¸¥Ê¥ë ++¤¦¤ê¤Ê¤é #T35 ¥¦¥ê¥Ê¥é ++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN ¥¦¥ê¥Ê¥é¥µ¥¤¥Ð¡¼¥Æ¥íÃÄ ++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN ޳ިŽÅŽ×޻޲ŽÊŽÞްŽÃŽÛÃÄ ++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN ޳ިŽÅŽ×޻޲ŽÊŽÞްŽÃŽÛÃÄ¡¡ ++¤¦¤ë¤µ¤¤¤Ï¤¨¤À¤Ê¤¢ #JN ¤¦¤ë¤µ¤¤Çè¤À¤Ê¤¡ ++¤¦¤ë¤»¡¼¤Ð¤« #JN ¤¦¤ë¤»¡¼Çϼ¯¡ª ++¤¦¤ë¤»¤¨¤Ð¤« #CJ ¤¦¤ë¤»¡¼Çϼ¯ ++¤¦¤ë¤È¤é¤Þ¤½ #JN ޳ŽÙŽÄŽ×ŽÏŽ¿ ++¤¦¤ë¤Þ¤é¤Þ¤ó #JN ¥¦¥ë¥Þ¥é¥Þ¥ó ++¤¦¤ë¤â¤é¤Þ¤ó #JN ¥¦¥ë¥â¥é¥Þ¥ó ++¤¦¤í¡¼¤ó #JN ¥¦¥í¡¼¥ó ++¤¦¤ï¤¡¤¡¤ó #CJ ¥¦¥ï¥¡¥¡¥ó ++¤¦¤ï¤¡¤¡¤ó #CJ ޳ŽÜާާŽÝ ++¤¦¤ï¤Ê¤Ë #CJ ¤¦¤ï¡¢¤Ê¤Ë¡© ++¤¦¤ó¤³ #T35 ¥¦¥ó»Ò ++¤¦¤ó¤³¡¼ #JN ¥¦¥ó¥³¡¼! ++¤¦¤ó¤³¡¼ #JN ޳ŽÝŽºŽ°! ++¤¦¤ó¤³¤¤¤¿ #CN ¥¦¥ó¥³ÈÄ ++¤¦¤ó¤³¤¤¤¿ #T35 ¥¦¥ó¥³ÈÄ ++¤¦¤ó¤³¤Ç¤­¤¿¤è¡¼ #JN ¥¦¥ó¥³¤Ç¤­¤¿¤è¡¼¡ª¡ª ++¤¨¡¼ #JN ¥¨¡¼ ++¤¨¡¼¤¨¡¼ #T35 £Á£Á ++¤¨¡¼¤¸¤ã¤Ê¤¤¤« #T35 ¤ñ~¤Â¤ã¤Ê¤ð¤« ++¤¨¤¢¤¨¤Ã¤¸¤¬¤á #JN airH"޶ŽÞŽÒ ++¤¨¤¢¤À¤ó #T35 ¥¨¥¢¥À¥ó ++¤¨¤¤¤¨¤ó #T35 ¤¨¤¤¤¨¤ó ++¤¨¤¤¤®¤ç¤¦¤â¤Ê¡¼ #JN ±Ä¶È¥â¥Ê¡¼ ++¤¨¤¤¤±¤Ë¤¹¤È #T35 ¥¨¥¤¥±¥Ë¥¹¥È ++¤¨¤¤¤»¤¤ #T35 ±ÊÀ ++¤¨¤¤¤Á¤Æ¤£¡¼¤¨¤à¤¨¤ë¤« #T30 html²½ ++¤¨¤¤¤Á¤Æ¤£¤Æ¤£¤Ô¤£¤ì¡¼¤¶¡¼ #JN http¥ì¡¼¥¶¡¼ ++¤¨¤¤¤Ù¤Ã¤¯¤½ #KK ¥¨¥¤¥Ù¥Ã¥¯¥½ ++¤¨¤¤¤Ù¤Ã¤¯¤½ #KK ¥¨¥¤¥Ù¥Ãʵ ++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥¨¥¤¥ê¥¦¥ï¥¢¥¡¥ó ++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ޴޲ި޳ŽÜޱާŽÝ ++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ޴޲ި޳ŽÜޱާŽÝ ++¤¨¤¨¤¸¤ã¤Ê¤¤¤« #T35 ¤ñ~¤Â¤ã¤Ê¤ð¤« ++¤¨¤­¤Ù¤½ #CN ¥¨¥­¥Ù¥½ ++¤¨¤­¤Ù¤½ #T35 ¥¨¥­¥Ù¥½ ++¤¨¤­¤Ù¤ó #CN ±ÕÊØ ++¤¨¤­¤Ù¤ó #CN ±ÖÊØ ++¤¨¤­¤Ù¤ó #CN ±ØÊÛ ++¤¨¤­¤Ù¤ó #T35 ±ÕÊØ ++¤¨¤­¤Ù¤ó #T35 ±ÖÊØ ++¤¨¤­¤Ù¤ó #T35 ±ØÊÛ ++¤¨¤­¤Ù¤ó¤À¤¤¤¬¤¯ #CN ±ØÊÛÂç³Ø ++¤¨¤­¤Ù¤ó¤À¤¤¤¬¤¯ #T35 ±ØÊÛÂç³Ø ++¤¨¤¯¤·¡¼¤É¤®¤ë¤¹ #JN ¥¨¥¯¥·¡¼¥É¥®¥ë¥¹ ++¤¨¤¯¤¹¤×¤í¤¤¤Æ¤Ã¤É #JN exploited ++¤¨¤°¤¼¤Í¤³ #JN exe¤Í¤³ ++¤¨¤¸¤ê¤¿¤ó #JN ¥¨¥Â¥ê¤¿¤ó ++¤¨¤¹¤¨¤à¤¤¤¤ #T35 $ME ++¤¨¤¹¤«¤ì¤¿¡¼ #T35 ¥¨¥¹¥«¥ì¥¿¡¼ ++¤¨¤¹¤È¤·¡¼¤â¤¢¤¢¤é¤· #JN ¥¨¥¹¥È¥·¡¼¥â¥¢¹Ó¤é¤· ++¤¨¤À¤²¤ó¤Ê #CJ »ÞÌÓ¤ó¤Ê ++¤¨¤Ã¤¯¤¹¤®¤³ #JN X¥®¥³¡¡ ++¤¨¤Ä¤³ #JN ¥¨¥Ä¥³ ++¤¨¤È¤¦ #JN ¹¾ÆÚ ++¤¨¤È¤¦ #JNS ¹¾ÆÚ ++¤¨¤È¤ó #JN ¹¾ÆÚ ++¤¨¤È¤ó #JNS ¹¾ÆÚ ++¤¨¤Ê¤ê #JN ¤¨¤Ê¤ê ++¤¨¤Ê¤ê¤«¤º¤­ #JN ¤¨¤Ê¤ê¤«¤º¤­ ++¤¨¤Ë¤¯¤½ #KK ¥¨¥Ë¥¯¥½ ++¤¨¤Ë¤¯¤½ #T35 ¥¨¥Ë¥¯¥½ ++¤¨¤Ì¤¸¤¤¤ï¤¢¤É #T35 NG¥ï¡¼¥É ++¤¨¤Ì¤¹¤Æ #T35 £Î¥¹¥Æ ++¤¨¤Ì¤Ë¤Á¤ë¤¦¤ë #T35 nÆü¥ë¡¼¥ë ++¤¨¤Ì¤ï¤¤¤Á¤å¤¦ #T35 ny¿ß ++¤¨¤Ò¤á #CN °¦É² ++¤¨¤Ó¤Õ¤é¤¤¤ï¤Ã¤·¤ç¤¤ #JN ¥¨¥Ó¥Õ¥é¥¤¥ï¥Ã¥·¥ç¥¤¡ª¡ª ++¤¨¤Õ¤¨¤¤ #CJ FA ++¤¨¤Õ¤¨¤¤ #CJ FA? ++¤¨¤Õ¤é¤ó¤¯ #T35 F¥é¥ó¥¯ ++¤¨¤Ö¡¼¤¤ #T35 ¤¨¤Ö¡¼¤¤ ++¤¨¤Ö¤¦¤¤ #T35 ¤¨¤Ö¡¼¤¤ ++¤¨¤ß¤å #T35 ¤¨¤ß¤å ++¤¨¤à¤¨¤¨¤¯¤¹ #KK ¥¨¥à¥¨¡¼¥¯¥¹ ++¤¨¤à¤¨¤¨¤¯¤¹ #KK Ž´ŽÑ޴ްޏ޽ ++¤¨¤à¤¨¤Ã¤¯¤¹ #T35 MX ++¤¨¤à¤¨¤Ã¤¯¤¹¤µ¤ó #JN £Í£Ø¤µ¤ó ++¤¨¤à¤¨¤Ã¤¯¤¹¤µ¤ó¤È¤³¤Þ¤ë #JN £Í£Ø¤µ¤ó¤È¥³¥Þ¥ë ++¤¨¤à¤¨¤Ã¤¯¤¹¤Á¤å¤¦ #T35 MX¿ß ++¤¨¤à¤¨¤à¤¢¤¢¤ë #T35 MMR ++¤¨¤à¤¨¤à¤¢¤¢¤ë¤³¤Ô¤Ú #CJ MMR¥³¥Ô¥Ú ++¤¨¤à¤¹¤Æ #T35 M¥¹¥Æ ++¤¨¤à¤Ö¤Á¤ç¤¦ #JN £ÍÉôĹ ++¤¨¤â¤é #JN ¥ñ¥â¥é ++¤¨¤ê #JN ¶ß ++¤¨¤ê #T35 ¶ß ++¤¨¤ê¤Á¤ó #JN ¥¨¥ê¥Ä¥£¥ó ++¤¨¤ê¤Ä¤£¤ó #JN ¤¨¤êÄÁ ++¤¨¤ì¤¯¤½ #T35 ¥¨¥ìʵ ++¤¨¤ì¤¯¤½ #T35 ¥¨¥ìʵ¡¼¥ó ++¤¨¤ì¤¯¤½¤ª¤ó #T35 ¥¨¥ìʵ ++¤¨¤ì¤¯¤½¤ª¤ó #T35 ¥¨¥ìʵ¡¼¥ó ++¤¨¤í¤¨¤í¤»¤ó¤¿¤¤¤º¤ê¤»¤ó¤¸¤ã¤¢ #T35 ¥¨¥í¥¨¥íÀïÂ⥺¥ê¥»¥ó¥¸¥ã¡¼ ++¤¨¤í¤² #T30 ¥¨¥í¥² ++¤¨¤í¤² #T35 ¥¨¥í¥² ++¤¨¤í¤²¤ª¤¿¤¤¤Ä¤Ä¤Î¤Á¤«¤¤ #T35 ¥¨¥í¥²¥ª¥¿£µ¤Ä¤ÎÀÀ¤¤ ++¤¨¤í¤²¤ò¤¿¤Ü¤¯¤á¤Ä¤¦¤ó¤É¤¦¤« #KK ¥¨¥í¥²¥ò¥¿ËÐÌDZ¿Æ°²È ++¤¨¤í¤²¤ó¤¬¡¼ #T35 ¥¨¥í¥²¥ó¥¬¡¼ ++¤¨¤í¤²¤ó¤¬¤¢ #T35 ¥¨¥í¥²¥ó¥¬¡¼ ++¤¨¤í¤º¤ê¡¼ #JN ¥¨¥í¥º¥ê¡¼ ++¤¨¤í¤Ã¤¯¤¹ #T35 erox ++¤¨¤í¤Ü¤¯ #KK ¥¨¥íËÐ ++¤¨¤ó¤¤¡¼ #T30 ¤¨¤ó¤¤¡¼ ++¤¨¤ó¤¤¡¼ #T35 ¤¨¤ó¤¤¡¼ ++¤¨¤ó¤¤¤¤ #T35 ¤¨¤ó¤¤¡¼ ++¤¨¤ó¤«¤«¤·¤å¤·¤£¤Á¤ã¤ó #JN ±é²Î²Î¼ê¤·¤£¤Á¤ã¤ó ++¤¨¤ó¤³¤¦¤É #T35 ±ç¸ò¡î ++¤¨¤ó¤¸¤ó¤ª¤¦ #JN ¥¨¥ó¥¸¥ó²¦ ++¤ª¡¼¤¨¤¤¤Á¤Ô¡¼ #T35 £Ï£È£Ð ++¤ª¤¢¤¤¤½¤æ¡¼¤Û¡¼ #JN ¤ª¤¢¤¤¤½¥æ¡¼¥Û¡¼ ++¤ª¤¤¤ª¤¤¤Ë¤å¡¼¤¹¤ß¤¿ #CJ ¤ª¤¤¤ª¤¤¡¢¥Ë¥å¡¼¥¹¸«¤¿¡© ++¤ª¤¤¤ª¤Þ¤¨¤é #CJ ¤ª¤¤¡¢¤ªÁ°¤é ++¤ª¤¤¤¹¤¿¡¼¤µ¤¯¤»¤ó #T35 ¥ª¥¤¥¹¥¿¡¼ºîÀï ++¤ª¤¤¤¹¤¿¤¢¤µ¤¯¤»¤ó #T35 ¥ª¥¤¥¹¥¿¡¼ºîÀï ++¤ª¤¤¤Ê¤ê¤â¤Ê¡¼ #JN ¤ª¤¤¤Ê¤ê¥â¥Ê¡¼ ++¤ª¤¤¤à #T35 ¥ª¥¤¥à ++¤ª¤¤¤é #T35 ¤ª¤¤¤é ++¤ª¤¦¤´¤ó¤Á¤å¤¦ #T35 ²«¶â¿ß ++¤ª¤¦¤É¤¦¤á¤¬¤ß #KK ²¦Æ»½÷¿À ++¤ª¤ª¤®¤³¤Ö¤Á¤ç¤¦ #JN Â祮¥³ÉôĹ ++¤ª¤ª¤³¤ß¤ß¤Ï¤ó¤Æ¤ó #JN Âç¾®¼ªÈÓŹ ++¤ª¤ª¤Ã #JN ޵޵¥Ã¡ª ++¤ª¤ª¤Ä¤­ #JN ¥ª¥ª¥Ä¥­ ++¤ª¤ª¤Ä¤­ #JN ޵޵ŽÂŽ· ++¤ª¤ª¤Ç¤£¤¨¤ó¤¹ #T35 ¥ª¡¼¥Ç¥£¥¨¥ó¥¹ ++¤ª¤ª¤È¤³¤ó¤×¤ê¤¤¤È #T35 ¥ª¡¼¥È¥³¥ó¥×¥ê¡¼¥È ++¤ª¤ª¤È¤ê #KK ˱ ++¤ª¤ª¤È¤ê #T35 ˱ ++¤ª¤ª¤ß¤ß¤â¤Ê¡¼ #JN Â缪¥â¥Ê¡¼ ++¤ª¤ª¤ß¤ß¤â¤Ê¤ß #JN Â缪˨ÆàÈþ ++¤ª¤ª¤ß¤ß¤â¤é¤é¡¼ #JN Â缪¥â¥é¥é¡¼ ++¤ª¤ª¤â¤ê¤³¤¤¤ó #T35 Â翹¥³¥¤¥ó ++¤ª¤«¤®¤³¤­¤ç¤¦¤¸¤å #JN ¥ª¥«¥®¥³¶µ¼ø ++¤ª¤«¤·¤¤¤Ç¤¹¤è¤«¤Æ¤¸¤Ê¤µ¤ó #CJ ¤ª¤«¤·¤¤¤Ç¤¹¤è¡ª¥«¥Æ¥¸¥Ê¤µ¤ó¡ª¡ª ++¤ª¤«¤ß #JN ¤ª¤«¤ß ++¤ª¤«¤ä¤ó #JN µ¶ÔÝ¡¡ ++¤ª¤«¤ä¤ó #JN ޵޶ŽÔŽÝ¡¡ ++¤ª¤«¤ì¤¹ #T35 ²¬¥ì¥¹ ++¤ª¤¬¤ï #T35 ¾®Àî ++¤ª¤¯ #T35 ±ü ++¤ª¤¯¤ì¤¹ #T35 Ã٥쥹 ++¤ª¤°¤ê #T35 ¾®·ª ++¤ª¤±¤¤¤Ï¤ó #JN ¤ª¤±¤¤¤Ï¤ó ++¤ª¤±¤¤¤Ï¤ó #T35 ¤ª¤±¤¤¤Ï¤ó ++¤ª¤²¤Þ¤ó #T35 ¥ª¥²¥Þ¥ó ++¤ª¤³¤Î¤ß¤¸¤ç¤¦¤æ #JN ¤ª¹¥¤ß¾ßÌý ++¤ª¤µ¤·¤ß¤â¤Ê¡¼ #JN ¤ª¤µ¤·¤ß¥â¥Ê¡¼ ++¤ª¤µ¤Õ¤Í¡¼¤è¤«¤Ã¤³¤¦¤£¤º¤â¤Æ¤Í¡¼¤è¤È¤¸¤«¤Ã¤³ #JN ¥ª¥µ¥Õ¥Í¡¼¥è¡Êwith¡¡¥â¥Æ¥Í¡¼¥è¡Ë ++¤ª¤µ¤Þ¤Ó¤ó¤é¤Ç¤£¤ó #JN ¥ª¥µ¥Þ¥Ó¥ó¥é¥Ç¥£¥ó ++¤ª¤µ¤é¡¼ #JN ¤ª»®¡¼ ++¤ª¤µ¤é¡¼ #JN ¤ª»®¡¼ ++¤ª¤µ¤ì #T30 ¥ª¥µ¥ì ++¤ª¤¶¤ï¤â¤Ê¤« #JN ¾®Âô¥â¥Ê¥« ++¤ª¤·¤¨¤Æ¤¯¤ó #T35 ¶µ¤¨¤Æ·¯ ++¤ª¤·¤ª #JN ¤ª±ö ++¤ª¤·¤ª #T35 ¤ª±ö ++¤ª¤·¤ê¤¹ #JN ¥ª¥·¥ê¥¹ ++¤ª¤·¤ê¤Ú¤ó¤Ú¤ó #CJ ¥ª¥·¥ê¥Ú¥ó¥Ú¥ó! ++¤ª¤·¤ê¤Ú¤ó¤Ú¤ó #CJ ޵޼ިŽÍŽßŽÝŽÍŽßŽÝ! ++¤ª¤·¤ê¤ò¤ª¤¬¤à¤¤¤¤¤ó¤«¤¤ #JN ¡ú¡ú¡ú¤ª¿¬¤òÇÒ¤à°Ñ°÷²ñ¡ú¡ú¡ú ++¤ª¤·¤ê¤ò¤ª¤¬¤à¤¤¤¤¤ó¤«¤¤ #JN ¡ú¡ú¡ú¤ª¿¬¤òÇÒ¤à°Ñ°÷²ñ¡ú¡ú¡ú ++¤ª¤¸¤ã¤Þ¤¸¤ç #JN ¤ª¥¸¥ãËâ½÷ ++¤ª¤¸¤ó¤¬¡¼¤¼¤Ã¤È #JN ¥ª¥¸¥ó¥¬¡¼Z ++¤ª¤¸¤ó¤¬¤¢¤¼¤Ã¤È #JN ¥ª¥¸¥ó¥¬¡¼Z ++¤ª¤¹¤® #T35 ¤ª¿ù ++¤ª¤»¡¼¤í #CJ ¤ª¤»¡¼¤í ++¤ª¤»¤¨¤í #CJ ¤ª¤»¡¼¤í ++¤ª¤»¤í¤Ç¤â¤·¤è¤¦¤è #CJ ¥ª¥»¥í¤Ç¤â¤·¤è¤¦¤è ++¤ª¤½¤ì¤¹ #T35 Ã٥쥹 ++¤ª¤¿¤¬¤ê #T35 ¥ª¥¿¼í¤ê ++¤ª¤¿¤­¤å¤¦ #KK ¥ò¥¿µÞ ++¤ª¤¿¤­¤å¤¦ #T35 ¥ò¥¿µÞ ++¤ª¤¿¤·¤å¤¦ #T35 ¥ª¥¿½­ ++¤ª¤¿¤À¤¤¤·¤å¤¦¤´¤¦ #JN ¥ª¥¿Â罸¹ç ++¤ª¤¿¤ë¤Ã¤¯ #T35 ¥ª¥¿¥ë¥Ã¥¯ ++¤ª¤À¤®¤ê¤â¤Ê¡¼ #JN ¥ª¥À¥®¥ê¥â¥Ê¡¼ ++¤ª¤Á¤ã¤Î¤Þ #JN ¤ªÃã¤Î´Ö ++¤ª¤Ã¤È¡¼¤Á¤ã¤ó #JN ¥ª¥Ã¥È¡¼¤Á¤ã¤ó ++¤ª¤Ä #T35 ²µ ++¤ª¤Ä¤«¤¤ #KK ²µ²ñ ++¤ª¤Ä¤«¤ì¡¼ #CJ ²µ¥«¥ì¡¼ ++¤ª¤Ä¤«¤ì¡¼ #T35 ²µ¥«¥ì¡¼ ++¤ª¤Ä¤«¤ì¤¨ #T35 ²µ¥«¥ì¡¼ ++¤ª¤Ä¤È¤«¤¤¤Ã¤¿¤ä¤Ä¤·¤Í #CJ ²µ¤È¤«¸À¤Ã¤¿ÅÛ»à¤Í ++¤ª¤Å¤é #JN ¥ª¥Å¥é ++¤ª¤Ç¤¸¡¼¤É #JN ¥ª¥Ç¥¸¡¼¥É ++¤ª¤Ç¤ó #T35 ¤ª¤Ç¤ó ++¤ª¤Ç¤ó¤Þ¤ó #JN ¤ª¤Ç¤ó¥Þ¥ó ++¤ª¤Ç¤ó¤Þ¤ó #T35 ¤ª¤Ç¤ó¤Þ¤ó ++¤ª¤È¡¼¤Á¤ã¤ó¤Ü¤Ã¤­¤·¤ç¤¦¤¬¤¤ #JN ¤ª¤È¡¼¤Á¤ã¤óËÖµ¯¾ã³² ++¤ª¤È¤¦¤Õ #JN ¤ª¤È¤¦¤Õ ++¤ª¤È¤³¤É¤ó #T35 ´ÁЧ ++¤ª¤È¤¸¤ã #T35 Äï¼Ô ++¤ª¤È¤¿¤± #JN £ÚÉð ++¤ª¤È¤¿¤± #JNS ¥ª¥È¥¿¥± ++¤ª¤È¤¿¤± #T35 £Ú¼° ++¤ª¤È¤¿¤± #T35 £ÚÉð ++¤ª¤È¤¿¤±¤¤ #JN ¥ª¥È¥¿·º ++¤ª¤È¤¿¤±¤¤ #T30 ¥ª¥È¥¿·º ++¤ª¤È¤¿¤±¤¤ #T35 ¥ª¥È¥¿·º ++¤ª¤È¤¿¤±¤²¤ó¤¹¤¤ #JN ¥ª¥È¥¿¥±¸µ¿ã ++¤ª¤È¤Ê #T35 ¤ò¤È¤Ê ++¤ª¤È¤Ê¤Î¤®¤³¤®¤³¤¿ #JN Âç¿Í¤Îµ¼¸Å¥®¥³ÂÀ ++¤ª¤È¤Þ¤ë #JN £Ú´Ý ++¤ª¤È¤á #T35 ´Á½÷ ++¤ª¤É¤ê #T35 ¤ª¤É¤ê ++¤ª¤Ê #CJ ¤ª¤Ê ++¤ª¤Ê¡¼¤Ë #T30 ¥ª¥Ê¡¼¥Ë ++¤ª¤Ê¡¼¤Ë #T30 ޵ŽÅްޯ ++¤ª¤Ê¤¬¤¤¤·¤Þ¤¹ #CJ ¤ª¤Ê¤¬¤¤¤·¤Þ¤¹ ++¤ª¤Ê¤¬¤¤¤·¤Þ¤¹ #JN ¤ª¤Ê¤¬¤¤¤·¤Þ¤¹¡¡ ++¤ª¤Ê¤·¤å¤ß #CJ ¤ª¤Ê¼ñÌ£ ++¤ª¤Ê¤·¤å¤ß #T35 ¤ª¤Ê¼ñÌ£ ++¤ª¤Ê¤Ë¡¼ #T30 ¥ª¥Ê¥Ë¡¼ ++¤ª¤Ê¤Ë¤¤¤¹¤ì #T35 ¥ª¥Ê¥Ë¡¼¥¹¥ì ++¤ª¤Ê¤Ë¤¹¤È #T35 ¥ª¥Ê¥Ë¥¹¥È ++¤ª¤Ê¤Ì¡¼ #T30 ¥ª¥Ê¥Ì¡¼ ++¤ª¤Ê¤Ì¡¼ #T30 ޵ŽÅŽÇް ++¤ª¤Ë¤¤¤Ë¤ï¤Ã¤Á¤ç¤¤ #JN ¤ª¤Ë¡¼¤Ë¥ï¥Ã¥Á¥ç¥¤ ++¤ª¤Ë¤®¤ê #JN ¤ª¤Ë¤®¤ê ++¤ª¤Ë¤®¤ê¤¦¤À¤¤¤¸¤ó #JN ¤ª¤Ë¤®¤ê±¦Âç¿Ã ++¤ª¤Ë¤®¤ê¤¬¤Ê¡¼ #JN ¤ª¤Ë¤®¤ê¥¬¥Ê¡¼ ++¤ª¤Ë¤®¤ê¤¸¤¤¤µ¤ó #JN ¤ª¤Ë¤®¤ê¤¸¤¤¤µ¤ó ++¤ª¤Ë¤®¤ê¤¸¤ã¤® #JN ¤ª¤Ë¤®¤ê¥¸¥ã¥® ++¤ª¤Ë¤®¤ê¤¹¤é¤¤¤à #JN ¤ª¤Ë¤®¤ê¥¹¥é¥¤¥à ++¤ª¤Ë¤®¤ê¤»¤¤¤È #JN ¤ª¤Ë¤®¤êÀ¸ÅÌ ++¤ª¤Ë¤®¤ê¤»¤ó¤è¤¦¤¢¤Ã¤¬¤¤ #JN ¤ª¤Ë¤®¤êÀìÍÑ¥¢¥Ã¥¬¥¤ ++¤ª¤Ë¤®¤ê¤¿¤â¤ê #JN ¤ª¤Ë¤®¤ê¥¿¡û¥ê ++¤ª¤Ë¤®¤ê¤À¤ó #JN ¤ª¤Ë¤®¤êÃÄ ++¤ª¤Ë¤®¤ê¤Æ¤ó¤· #JN ¤ª¤Ë¤®¤êÅ·»È ++¤ª¤Ë¤®¤ê¤È¤¦ #JN ¤ª¤Ë¤®¤êÅÞ ++¤ª¤Ë¤®¤ê¤È¤¦ #JN ¤ª¤Ë¤®¤êÅÞ ++¤ª¤Ë¤®¤ê¤Ð¤ó¤É #JN ¤ª¤Ë¤®¤ê¥Ð¥ó¥É ++¤ª¤Ë¤®¤ê¤Ò¤Ã¤­¡¼ #JN ¤ª¤Ë¤®¤ê¥Ò¥Ã¥­¡¼ ++¤ª¤Ë¤®¤ê¤Û¤ó¤Ý #JN ¤ª¤Ë¤®¤êËÜÊÞ ++¤ª¤Ë¤®¤ê¤à¤­¤à¤­ #JN ¤ª¤Ë¤®¤ê¥à¥­¥à¥­ ++¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN ¤ª¤Ë¤®¤ê¥â¥Ê¡¼ ++¤ª¤Ë¤®¤ê¤ï¤Ã¤Á¤ç¤¤ #JN ¥ª¥Ë¥®¥ê¥ï¥Ã¥Á¥ç¥¤ ++¤ª¤Ë¤ï¤ê¡¼¤Ê #T35 ¥ª¥Ë¥ï¥ê¡¼¥Ê ++¤ª¤Ë¤ï¤ê¤¤¤Ê #T35 ¥ª¥Ë¥ï¥ê¡¼¥Ê ++¤ª¤Í #T35 ¤ª¤Í ++¤ª¤Í¤¤¤µ¤ó #T35 ¤ª¤Í¤¤¤µ¤ó ++¤ª¤Ï¤Ê¤Ð¤¿¤± #T35 ¤ª²ÖȪ ++¤ª¤Ï¤è¤¦¤¸¤ç #T35 ¤ª¤Ï¤ç¤¥¦É¡«¤ç ++¤ª¤Ð¤Á¤ã¤ó #T35 ޵ŽÊŽÞŽÁެŽÝ ++¤ª¤Ð¤Á¤ã¤ó #T35 ¥ª¥Ð¥Á¥ã¥ó ++¤ª¤Ð¤Á¤å¤¦ #T35 ¤ª¤Ð¿ß ++¤ª¤Ð¤Á¤å¤¦ #T35 ¥ª¥Ð¿ß ++¤ª¤Ñ¡¼¤¤ #T35 ¥ª¥Ñ¡¼¥¤ ++¤ª¤Ñ¤¢¤¤ #T35 ¥ª¥Ñ¡¼¥¤ ++¤ª¤Ó¤¿¤Ë¤Ý¤Ã¤È #JN ÂÓë¥Ý¥Ã¥È ++¤ª¤Õ¤«¤¤ #T30 ¥ª¥Õ²ñ ++¤ª¤Õ¤é¤¤¤ó¤Ó¤å¡¼¤ï #KK ¥ª¥Õ¥é¥¤¥ó¥Ó¥å¡¼¥ï ++¤ª¤Ö¤Ä #T35 ±øÊª ++¤ª¤Ù¤ä¤ê¡¼¤Ê #T35 ¥ª¥Ù¥ä¥ê¡¼¥Ê ++¤ª¤Ù¤ä¤ê¤¤¤Ê #T35 ¥ª¥Ù¥ä¥ê¡¼¥Ê ++¤ª¤Ù¤é¤ê¡¼¤Ê #T35 ¥ª¥Ù¥é¥ê¡¼¥Ê ++¤ª¤Ù¤é¤ê¤¤¤Ê #T35 ¥ª¥Ù¥é¥ê¡¼¥Ê ++¤ª¤Ù¤ó¤È¤¦¤¦¤¤¤ó¤Ê¤¢ #T35 ¤ªÊÛÅö¥¦¥¤¥ó¥Ê¡¼ ++¤ª¤Þ¡¼¤é #T35 ¤ª¤Þ¡¼¤é ++¤ª¤Þ¤¤¤ê #JN ¤ª»²¤ê ++¤ª¤Þ¤¨¤«¤Ë¡¼ #JN ¥ª¥Þ¥¨¥«¥Ë¡¼ ++¤ª¤Þ¤¨¤¬¤Æ¤Û¤ó¤ò¤ß¤»¤í¤è #CJ ¤ªÁ°¤¬¼êËܤò¸«¤»¤í¤è¡Ê¡÷£÷¹Ó ++¤ª¤Þ¤¨¤¬¤Ê¡¼ #JN ¥ª¥Þ¥¨¥¬¥Ê¡¼ ++¤ª¤Þ¤¨¤¯¤Þ¡¼ #JN ¥ª¥Þ¥¨¥¯¥Þ¡¼ ++¤ª¤Þ¤¨¤·¤Í¡¼ #JN ¥ª¥Þ¥¨¥·¥Í¡¼ ++¤ª¤Þ¤¨¤¸¤ã¤¬¡¼ #JN ¥ª¥Þ¥¨¥¸¥ã¥¬¡¼ ++¤ª¤Þ¤¨¤¸¤ã¤¬¡¼ #JN ¥ª¥Þ¥¨¥¸¥ã¥¬¡¼ ++¤ª¤Þ¤¨¤¸¤ã¤Í¡¼¤¾ #JN ¥ª¥Þ¥¨¥¸¥ã¥Í¡¼¥¾ ++¤ª¤Þ¤¨¤À¤± #JN ¥ª¥Þ¥¨¥À¥± ++¤ª¤Þ¤¨¤À¤± #JN ¥ª¥Þ¥¨¥À¥±(¸æÁ°Âû) ++¤ª¤Þ¤¨¤À¤± #JN ¸æÁ°Âû ++¤ª¤Þ¤¨¤À¤Ê¡¼ #JN ¤ª¤Þ¤¨¤À¤Ê¡¼ ++¤ª¤Þ¤¨¤À¤Ë #JN ¥ª¥Þ¥¨Ã« ++¤ª¤Þ¤¨¤Ï¤¿¤ó¤í¤ó¤« #CJ ¤ªÁ°¤Ï¥¿¥ó¡¦¥í¥ó¤«¡© ++¤ª¤Þ¤¨¤â¤«¡¼ #JN ¥ª¥Þ¥¨¥â¥«¡¼ ++¤ª¤Þ¤¨¤â¤Â¤ã¡¼ #JN ¥ª¥Þ¥¨¥â¥Â¥ã¡¼ ++¤ª¤Þ¤¨¤â¤Ê¡¼ #CJ ¥ª¥Þ¥¨¥â¥Ê¡¼ ++¤ª¤Þ¤¨¤â¤Ê¡¼¤Ï¤ó #JN ¥ª¥Þ¥¨¥â¥Ê¡¼´À ++¤ª¤Þ¤¨¤â¤Ê¤¢ #CJ ¥ª¥Þ¥¨¥â¥Ê¡¼ ++¤ª¤Þ¤¨¤â¤Ê¤´¤¦ #JN OMAEMONA¹æ ++¤ª¤Þ¤¨¤â¤Ë¤ã¡¼ #JN ¤ª¤Þ¤¨¤â¤Ë¤ã¡¼ ++¤ª¤Þ¤¨¤â¤Ò¤ã #JN ¥ª¥Þ¥¨¥â¥Ò¥ã ++¤ª¤Þ¤ó¤¸¤å¤¦ #T35 ¤ªñ½Æ¬ ++¤ª¤ß¤¢¤¤¤¹¤ë¤â¤é¤é¡¼ #JN ¤ª¸«¹ç¤¤¤¹¤ë¥â¥é¥é¡¼ ++¤ª¤ß¤È¤í¤ó #T35 ¥ª¥ß¥È¥í¥ó ++¤ª¤à¤¹¤Ó #JN ¤ª¤à¤¹¤Ó ++¤ª¤á¡¼¤é #T35 ¤ª¤á¡¼¤é ++¤ª¤á¤¤¤Ð¤ó¤«¤¤ #CJ ±øÌ¾ÈÔ²ó ++¤ª¤á¤¬ #T35 ¥ª¥á¥¬ ++¤ª¤á¤¬¤¢¤é¤· #T35 ¦Ø¹Ó¤é¤· ++¤ª¤á¤¬¤Á¤ó #T35 ¦ØÄÁ ++¤ª¤â¤Õ #CJ »×¤Õ ++¤ª¤â¤é¤¿¤«¤Ò¤í #JN Èø¥â¥éδ¹° ++¤ª¤â¤ï¤ì #CJ »×¤ï¤ì¡£ ++¤ª¤â¤ï¤ì #T35 »×¤ï¤ì ++¤ª¤ä¤³¤Ú¤ó¤®¤ó #JN ¿Æ»Ò¥Ú¥ó¥®¥ó ++¤ª¤ê #KK Ý£ ++¤ª¤ê #T35 Ý£ ++¤ª¤ê¤­ #T35 ¥ª¥ê¥­ ++¤ª¤ê¤Å¤ë14¤Þ¤ó¤Ð¤×¤í¤¸¤§¤¯¤È #CJ ÀÞ¤êÄá14Ëü±©¥×¥í¥¸¥§¥¯¥È ++¤ª¤ê¤Ï¤é¤Ö¤é #T35 ÀÞ¸¶¥Ö¥é ++¤ª¤ê¤Ù¤í¤Ó¡¼ #T35 ¿¥Éô¥í¥Ó¡¼ ++¤ª¤ê¤Ù¤í¤Ó¤¤ #T35 ¿¥Éô¥í¥Ó¡¼ ++¤ª¤ê¤ç¤¦¤ê¤ª¤Í¤¨¤µ¤ó #JN ¤ªÎÁÍý¤ª»Ð¤µ¤ó ++¤ª¤ë¤¹¤Æ¤Ã¤É #JN ¥ª¥ë¥¹¥Æ¥Ã¥É ++¤ª¤ì¤ª¤ó¤Ê #T35 ²¶½÷ ++¤ª¤ì¤µ¤Þ #T35 ²¶ÍÍ ++¤ª¤ì¤µ¤Þ¤è¤¦¤·¤ª¤ê #T35 ²¶ÍÍÍѤ·¤ª¤ê ++¤ª¤ì¤À¡¼ #JN ²¶¤À¡¼ ++¤ª¤ì¤Ë¤µ¤ï¤°¤ª¤Õ #T35 ²¶¤ËÁû¤°¥ª¥Õ ++¤ª¤ì¤Ï¤Þ¤Á¤¬¤¤¤Ê¤¯¤¤¤Ã¤Ñ¤ó¤¸¤ó #T35 ²¶¤Ï´Ö°ã¤¤¤Ê¤¯°ìÈÌ¿Í ++¤ª¤ì¤â¤Ê¡¼ #CJ ¥ª¥ì¥â¥Ê¡¼ ++¤ª¤ì¤â¤ì¤â #T35 ²¶Ï³¤ì¤â ++¤ª¤ï¤Ã¤¿¤Ê #JN (¡¦¡¼¡¦¡Ë޵ŽÜޝŽÀŽÅޥޥޥ ++¤ª¤ï¤Ã¤¿¤Ê #JN ¥ª¥ï¥Ã¥¿¥Ê¡¦¡¦¡¦ ++¤ª¤ï¤Ã¤¿¤Ê #JN ޵ŽÜޝŽÀŽÅޥޥޥ ++¤ª¤ó¤¿¤¤ #T35 ²¹ÂÓ ++¤ª¤ó¤¿¤¤ #T35 ¸æÂç ++¤ª¤ó¤ß¤ç¤¦¤¸ #JN ±¢ÍÛ»Õ ++¤ª¤ó¤ê¤¨¤ó #T35 Onlien ++¤« #R5r ¼í ++¤«¡¼¤É¤­¤ã¤×¤¿¡¼¤â¤Ê¡¼ #JN CC¥â¥Ê¡¼ ++¤«¤¤¤³¤·¤å¤® #T35 ²û¸Å¼çµÁ ++¤«¤¤¤»¤ó #T35 áÎáý ++¤«¤¤¤»¤ó¤­¤Ã¤Æ¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #CJ ²óÀþÀڤäƼóÄߤäƻá¤Í ++¤«¤¤¤»¤ó¤­¤Ã¤Æ¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #JN ²óÀþÀڤäƼóÄߤäƻá¤Í ++¤«¤¤¤Æ¤­¤Ö¤é¤¦¤¶¡¼ #KK ²÷Ŭ¥Ö¥é¥¦¥¶¡¼ ++¤«¤¤¤É¤¦ #KK ²ñƱ ++¤«¤¤¤É¤¦ #KK ²øÆ¸ ++¤«¤¤¤É¤¦ #KK ³¹Æ» ++¤«¤¤¤É¤¦ #T35 ²ñƱ ++¤«¤¤¤É¤¦ #T35 ²øÆ¸ ++¤«¤¤¤É¤¦ #T35 ³¹Æ» ++¤«¤¤¤Õ¤¯¤¹¤Ñ¤¹¤Ñ¤â¤Ê¡¼¤¬¤¯ #JN ²óÉü¥¹¥Ñ¥¹¥Ñ¥â¥Ê¡¼³Ø ++¤«¤¤¤Ø¤¤¤µ¤ó #JN ³«ÊĤµ¤ó ++¤«¤¤¤ï¤ì #T35 ¥«¥¤¥ï¥ì ++¤«¤¨ #CJ ¤«¤¨ ++¤«¤¨¤Ç¤ä¤Ä¤é #T35 ¤«¤¨¤Ç¤ä¤Ä¤é ++¤«¤¨¤ì #CJ (Ž¥¢ÏŽ¥)޶޴ŽÚ! ++¤«¤¨¤ì #CJ ¡Ê¡¦¢Ï¡¦¡Ë޶޴ŽÚ! ++¤«¤¨¤ì #CJ ¥«¥¨¥ì ++¤«¤¨¤ì #CJ ¥«¥¨¥ì! ++¤«¤¨¤ì #CJ ޶޴ŽÚ! ++¤«¤¨¤ì #T35 ¥«¥¨¥ì ++¤«¤ª¤â¤¸ #T35 ´éʸ»ú ++¤«¤ª¤â¤¸¤µ¤¯¤»¤¤¤¤¤é¤¤ #T30 ´éʸ»úºîÀ®°ÍÍê ++¤«¤¬¤ä #K5r µ± ++¤«¤¬¤ä¤± #CJ µ±¤± ++¤«¤¬¤ä¤± #T35 µ±¤± ++¤«¤¬¤ï #T35 ¹áÀî ++¤«¤­¤³ #M5r ½ñ¤­¹þ ++¤«¤­¤³ #T30 ¥«¥­¥³ ++¤«¤­¤ç¤¦¤¤¤ó¤Î¤ê¤¢¤­¤È¤Ï¤ó¤«¤Á¤Î¤Á¤ç¤¦¤»¤ó¤¸¤ç¤¦ #JN ²Öµþ±¡ÅµÌÀ¤È¥Ï¥ó¥«¥Á¤ÎÄ©Àï¾õ ++¤«¤® #KK ¸° ++¤«¤® #T35 ¸° ++¤«¤®¤Ã¤³ #T35 ¸°¤Ã»Ò ++¤«¤¯¤É¤È¤« #CJ ³ÑÅ٤Ȥ« ++¤«¤¯¤Ë¤¤¤¿ #CN ³Ñ¼ÑÈÄ ++¤«¤¯¤Ø¤ó #T30 ³ÎÊÑ ++¤«¤¯¤Ø¤ó #T35 ³ÎÊÑ ++¤«¤¯¤è¤¦ #T35 ÄáÂë ++¤«¤¯¤ê #T30 ³ÖÎ¥ ++¤«¤¯¤ê¤¤¤¿ #CN ³ÖÎ¥ÈÄ ++¤«¤¯¤ê¤¤¤¿ #T35 ³ÖÎ¥ÈÄ ++¤«¤¯¤ê¤¤¤¿¤Î¤«¤¯¤ê¤¤¤¿ #T35 ³ÖÎ¥ÈĤγÖÎ¥ÈÄ ++¤«¤°¤· #T35 ¹á¶ñ»Õ ++¤«¤² #T35 kage ++¤«¤³¤¤ #KY ¥«¥³¥¤ ++¤«¤³¤¤¤¤ #T35 ¥«¥³¥¤¥¤ ++¤«¤³¤í¤° #T35 ²áµî¥í¥° ++¤«¤³¤ï¤ë #KY ¥«¥³¥ï¥ë ++¤«¤³¤ï¤ë¤¤ #T35 ¥«¥³¥ï¥ë¥¤ ++¤«¤´ #JN ¤¢¤¤¤Ü¤ó ++¤«¤´ #JN ²Ã¸î ++¤«¤µ #JN »± ++¤«¤µ #T35 »± ++¤«¤µ¡¼¤ê #JN ¥«¥µ¡¼¥ê ++¤«¤µ¤«¤µ #JN ¥«¥µ¥«¥µ ++¤«¤·¤ï¤â¡¼¤Á #JN ¥«¥·¥ï¥â¡¼¥Á ++¤«¤¹¤Æ¤ë #KK ¥«¥¹¥Æ¥ë ++¤«¤¹¤Æ¤ë #T35 ¥«¥¹¥Æ¥ë ++¤«¤º #T35 ¿ô¢ª ++¤«¤º¤¸¤µ¤ó #T35 ¿ô»ú¤µ¤ó ++¤«¤º¤ä¤¸¤ë¤· #T35 ¿ô¢ª ++¤«¤»¤­¤¹¤ì #T35 ²½ÀÐ¥¹¥ì ++¤«¤½¤¤¤¿ #T35 ²áÁÂÈÄ ++¤«¤½¤¦¤â¤Ê¡¼ #JN ²ÐÁò¥â¥Ê¡¼ ++¤«¤¿ #R5 ñÙ ++¤«¤¿ #R5r ñÙ ++¤«¤¿¤¬¤Á #T30 ÊÒ¥¬¥Á ++¤«¤¿¤ä¤ª #T30 Êҥ䥪 ++¤«¤¿¤ê #T35 ñÙ¤ê ++¤«¤¿¤ï¤é¡¼ #JN ¥«¥¿¥ï¥é¡¼ ++¤«¤Á¤°¤ß¤é¤¤¤ó #T35 ¾¡ÁȤߥ饤¥ó ++¤«¤Á¤å¡¼¤·¤ã #KK ¤«¤Á¤å¡Á¤·¤ã ++¤«¤Á¤å¡¼¤·¤ã #T35 ¤«¤Á¤å¡Á¤·¤ã ++¤«¤Á¤å¡¼¤·¤ã¤µ¤ó #JN ¤«¤Á¤å¡Á¤·¤ã¤µ¤ó ++¤«¤Á¤å¤¦¤·¤ã #T35 ¤«¤Á¤å¡Á¤·¤ã ++¤«¤Á¤ç¤¦ #T35 ²ÝĹ ++¤«¤Ã¤±¡¼ #CJ ¤«¤Ã¤±¡¼ ++¤«¤Ã¤±¡¼ #T35 ¤«¤Ã¤±¡¼ ++¤«¤Ã¤±¤¨ #CJ ¤«¤Ã¤±¡¼ ++¤«¤Ã¤³¤¤¤¤ #T35 ¥«¥Ã¥³¥¤¥¤ ++¤«¤Ã¤È¤â¤Ê¡¼ #JN ¥«¥Ã¥È¥â¥Ê¡¼ ++¤«¤Ã¤Ñ #KK ²ÏƸ ++¤«¤Ã¤Ñ #T35 ²ÏƸ ++¤«¤Ã¤Ñ¤¸¤ã¤Ê¤¤¤è #JN ¥«¥Ã¥Ñ¤¸¤ã¤Ê¤¤¤è ++¤«¤Ã¤Ñ¤Ã¤Ñ¡¼ #JN ¥«¥Ã¥Ñ¥Ã¥Ñ¡¼ ++¤«¤Ä #JN ¹î ++¤«¤Ä #T35 ¹î ++¤«¤Ä¤Þ¤¿ #T35 ¾¡Ëó ++¤«¤Ä¤ó #T35 ¥«¥Ä¥ó ++¤«¤Æ¤´¤ê #T35 ¥«¥Æ¥´¥ê ++¤«¤È¤¦¤¸¤å¤ê #JN ²ÃÆ£¥¸¥å¥ê ++¤«¤È¤¦¤¸¤ç¤æ¤¦ #T35 ²¼Åù½÷Í¥ ++¤«¤È¤¦¤æ¤« #JN ²Ãƣͳ¹á ++¤«¤É¤Þ¤ï¤ó #KK ¥«¥É¥Þ¥ï¥ó ++¤«¤É¤Þ¤ï¤ó #T35 ¥«¥É¥Þ¥ï¥ó ++¤«¤Ê¡¼ #JN ¥«¥Ê¡¼ ++¤«¤Ë #KK ³ª ++¤«¤Ë #T35 ³ª ++¤«¤Ë¤Ð¤ë #JN (¡¦Æù¡¦) ++¤«¤Ë¤Ð¤ë #JN ¥«¥Ë¥Ð¥ë ++¤«¤Í¤Í¡¼¤è #JN ¥«¥Í¥Í¡¼¥è ++¤«¤Ó¤ª¤Ë¤®¤ê #KK ¥«¥Ó¥ª¥Ë¥®¥ê ++¤«¤Ó¤ª¤Ë¤®¤ê #T35 ¥«¥Ó¥ª¥Ë¥®¥ê ++¤«¤Ó¤ó¤¿¤ó #JN ²ÖÉÓ¤¿¤ó ++¤«¤Õ¤§¡¼ #JN ¥«¥Õ¥§¡¼ ++¤«¤Ö #R5 ¤«¤Ö ++¤«¤Ö¤·¤­¤¬¤¤¤·¤ã¤ä¤ª¤­¤ó #KK ³ô¼°²ñ¼Ò¥ä¥ª¥­¥ó ++¤«¤Ö¤·¤­¤¬¤¤¤·¤ã¤ä¤ª¤­¤ó #T35 ³ô¼°²ñ¼Ò¥ä¥ª¥­¥ó ++¤«¤Ö¤È¤à¤· #T35 ¥«¥Ö¥È¥à¥· ++¤«¤×¡¼¤ë¤¤¤¿ #CN ¥«¥×¡¼¥ëÈÄ ++¤«¤×¡¼¤ë¤¤¤¿ #T35 ¥«¥×¡¼¥ëÈÄ ++¤«¤×¡¼¤ë¤¤¤¿ #T35 ޶ŽÌŽßްŽÙÈÄ ++¤«¤×¤¦¤ë¤¤¤¿ #T35 ¥«¥×¡¼¥ëÈÄ ++¤«¤×¤¦¤ë¤¤¤¿ #T35 ޶ŽÌŽßްŽÙÈÄ ++¤«¤×¤ó¤³ #JN (Ž¥¢ÏŽ¥)¥Î¡¡ ++¤«¤×¤ó¤³ #JN ¥«¥×¥ó¥³¡ª ++¤«¤Ù #T35 ÊÉ ++¤«¤Þ¤É¤¦¤Þ¤¢¤é¤· #JN ¥«¥Þ¥É¥¦¥Þ¹Ó¤é¤· ++¤«¤ß #JN »æ ++¤«¤ß #T35 ¿À ++¤«¤ß¤«¤¼¤È¤Ã¤³¤¦¤¿¤¤ #JN ¿ÀÉ÷ÆÃ¹¶Ââ ++¤«¤ß¤³¤¦¤ê¤ó #T35 ¿À¹ßÎ× ++¤«¤ß¤µ¤¯¤¬ #T35 ¿Àºî²è ++¤«¤ß¤Ê¤ê¤°¤ë¡¼¤× #JN Í륰¥ë¡¼¥× ++¤«¤ß¤Ê¤ê¤°¤ë¡¼¤× #T35 Í륰¥ë¡¼¥× ++¤«¤ß¤Ê¤ê¤°¤ë¤¦¤× #T35 Í륰¥ë¡¼¥× ++¤«¤ß¤Î¤¸¤¤¤Æ¤£¤¤¤ª¤¦ #T35 ¿À¤ÎGTO ++¤«¤ß¤Î¤Ê¤ä¤ß¤Ï¤ê¡¼¤Ö¤Ë¤¸¤å¤¦¤¤¤Á #JN ȱ¤ÎǺ¤ß¤Ï¥ê¡¼¥Ö£²£± ++¤«¤á #T35 µµ ++¤«¤á #T35 µµ¥Þ¥Þ ++¤«¤á¤Þ¤Þ #T35 µµ¥Þ¥Þ ++¤«¤á¤â¤Ê¡¼ #JN ¥«¥á¥â¥Ê¡¼ ++¤«¤á¤â¤Ê¡¼¤°¤ì¡¼¤È #JN ¥«¥á¥â¥Ê¡¼¥°¥ì¡¼¥È ++¤«¤á¤ì¤¹ #T35 µµ¥ì¥¹ ++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤®¤³ #JN ²¾Ì̥饤¥À¡¼¥¢¥®¥³ ++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤®¤³ #JN ²¾Ì̥饤¥À¡¼¥¢¥®¥³ ++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤Þ¤¾¤ó #JN ²¾Ì̥饤¥À¡¼¥¢¥Þ¥¾¥ó ++¤«¤á¤ó¤é¤¤¤À¡¼¤®¤ë¤¹ #JN ²¾Ì̥饤¥À¡¼¥®¥ë¥¹ ++¤«¤á¤ó¤é¤¤¤À¡¼¤®¤ë¤¹ #JN ²¾Ì̥饤¥À¡¼¥®¥ë¥¹ ++¤«¤á¤ó¤é¤¤¤À¡¼¤´¤ë¤¡¤Ã¤¯ #JN ²¾Ì̥饤¥À¡¼GOLACK ++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼ #JN ²¾Ì̥饤¥À¡¼¤·¤££³ ++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼ #JN ²¾Ì̥饤¥À¡¼¤·¤££³ ++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼¤¨¤Ã¤¯¤¹ #JN ²¾Ì̥饤¥À¡¼¤·¤££³¡Ý£Ø ++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼¤¨¤Ã¤¯¤¹ #JN ²¾Ì̥饤¥À¡¼¤·¤££³¡Ý£Ø ++¤«¤á¤ó¤é¤¤¤À¡¼¤¹¤È¤í¤ó¤¬¡¼ #JN ²¾Ì̥饤¥À¡¼¥¹¥È¥í¥ó¥¬¡¼ ++¤«¤á¤ó¤é¤¤¤À¡¼¤â¤¦¤Ê #JN ²¾Ì̥饤¥À¡¼¥â¥¦¥Ê ++¤«¤â¤¹ #S5 ¾ú¤¹ ++¤«¤â¤á #T35 ²ª ++¤«¤é¤¢¤®¤ã¤ó¤° #T35 ¥«¥é¡¼¥®¥ã¥ó¥° ++¤«¤é¤¢¤² #T35 ÅâÍȤ² ++¤«¤é¤­¤Þ¤·¤¿ #CJ ¤«¤éÍè¤Þ¤·¤¿ ++¤«¤é¤¹ #JN ±¨ ++¤«¤ë¤¿¤ó #JN ¥«¥ë¥¿¥ó ++¤«¤ì¡¼¤Ñ¤½¤Þ¤½ #JN ¥«¥ì¡¼¥Ñ¥½¥Þ¥½ ++¤«¤ì¡¼¤Ñ¤ó¤Þ¤ó #JN ¥«¥ì¡¼¥Ñ¥ó¥Þ¥ó ++¤«¤ì¡¼¤Ñ¤ó¤Þ¤ó #JN ޶ŽÚްŽÊŽßŽÝŽÏŽÝ ++¤«¤ì¤¤¤·¤å¤¦¤¿¤À¤è¤¦ #CJ ²ÃÎð½­Éº¤¦ ++¤«¤ì¤Ï #T35 ¸ÏÍÕ ++¤«¤ï¤µ¤® #T35 Àµ½ ++¤«¤ï¤·¤Þ¤¢¤Å¤ß #JN ÀîÅçÏÂÄż ++¤«¤ó #T35 ´° ++¤«¤ó¤«¤ó¤É¤¦¤ê¤Ä #KK ´Ø´ØÆ±Î© ++¤«¤ó¤«¤ó¤É¤¦¤ê¤Ä #T35 ´Ø´ØÆ±Î© ++¤«¤ó¤¬¤¯¤´¤­¤Ö¤ê #JN ´Ø³Ø¥´¥­¥Ö¥ê ++¤«¤ó¤¬¤ë¡¼¤â¤Ê¡¼ #JN ¥«¥ó¥¬¥ë¡¼¥â¥Ê¡¼ ++¤«¤ó¤¯¤í¤¦ #JN ¥«¥ó£¹£¶ ++¤«¤ó¤¯¤í¤¦ #JN ´ª¶ìÏ« ++¤«¤ó¤¯¤í¤¦ #T35 ¥«¥ó£¹£¶ ++¤«¤ó¤¯¤í¤¦ #T35 ´ª¶ìÏ« ++¤«¤ó¤³ #R5 ¥«¥ó¥³ ++¤«¤ó¤³ #R5r ¥«¥ó¥³ ++¤«¤ó¤³¤¯ #KK ´¯¹ñ ++¤«¤ó¤³¤¯ #KK ´¯¹ó ++¤«¤ó¤³¤¯ #KK Õ¡¹ñ ++¤«¤ó¤³¤¯ #T35 ´¯¹ñ ++¤«¤ó¤³¤¯ #T35 ´¯¹ó ++¤«¤ó¤³¤¯ #T35 Õ¡¹ñ ++¤«¤ó¤³¤¯¤È¤ê #T35 ´Ú¹ñ¤È¤ê ++¤«¤ó¤³¤¯¤È¤ê #T35 ´Ú¹ñ¤È¤ê ++¤«¤ó¤³¤Ã¤¯ #KK ¥«¥ó¥³¥Ã¥¯ ++¤«¤ó¤³¤Ã¤¯ #T35 ¥«¥ó¥³¥Ã¥¯ ++¤«¤ó¤³¤É¤ê #JN ´×¸ÅÄ» ++¤«¤ó¤µ¤¤¤Õ¤¡¤¤¤Ö¤¹¤¿¤¢ #T35 ´ØÀ¾¥Õ¥¡¥¤¥Ö¥¹¥¿¡¼ ++¤«¤ó¤µ¤ó¤È¤·¤¿¤Ç¤ó¤·¤ã #JN ´×»¶¤È¤·¤¿ÅÅ¼Ö ++¤«¤ó¤·¤ã¤Ï¤à¤Ë¤À #CJ ´¶¼Õ¥Ï¥à¥Ë¥À ++¤«¤ó¤¸¤ï¤ë¤¤ #T35 ´¶¤¸°­¤¤ ++¤«¤ó¤Á¤ç¤¯¤Ë¤ó #T35 ´Éľ¿Í ++¤«¤ó¤Æ¤¤¤· #T35 ´ÕÄê»Î ++¤«¤ó¤Æ¤¤¤¹¤ì #T35 ´ÕÄꥹ¥ì ++¤«¤ó¤Æ¤¤¤È¤ê¤ª #T35 ´ÕÄê¥È¥ê¥ª ++¤«¤ó¤Æ¤¤¤Ë¤ó¤¯¤ß¤¢¤¤ #T35 ´ÕÄê¿ÍÁȹç ++¤«¤ó¤Æ¤¤¤è¤¦¤´ #T35 ´ÕÄêÍѸì ++¤«¤ó¤È¤¦¤Ï¤À¤«¤«¤¤ #JN ´ØÅìÍç²ñ ++¤«¤ó¤È¤ó #KK ¥«¥ó¥È¥ó ++¤«¤ó¤È¤ó #T35 ¥«¥ó¥È¥ó ++¤«¤ó¤Ê¤ª¤È #JN ´¯Ä¾¿Í ++¤«¤ó¤Ê¤ª¤È #JN ´¯Ì¾²» ++¤«¤ó¤Ê¤ª¤È #JN ´Úľ¿Í ++¤«¤ó¤Ê¤ª¤È #JN ¿ûľ¿Í ++¤«¤ó¤Ê¤ª¤È #T35 ´¯Ä¾¿Í ++¤«¤ó¤Ê¤ª¤È #T35 ´¯Ì¾²» ++¤«¤ó¤Ê¤ª¤È #T35 ´Úľ¿Í ++¤«¤ó¤Ê¤ª¤È #T35 ¿ûľ¿Í ++¤«¤ó¤Í¤¤¤³¤¦¤Ï #JN ´ÅÇ«¶½ÇÆ ++¤«¤ó¤Þ¤ó¤»¤¤¤È #JN ´³ËþÀ¸ÅÌ ++¤«¤ó¤ê¤·¤ã¤µ¤ó¤Ç¤¹¤« #CJ ´ÉÍý¼Ô¤µ¤ó¤Ç¤¹¤«¡©£÷ ++¤«¤ó¤ê¤Ë¤ó¤Õ¤¡¤ä¤ä #T35 "´ÉÍý"¿Í¥Õ¥¡¥ä¥ä ++¤«¤ó¤ì¤ó¤¹¤ì¤Ã¤É #T35 ´ØÏ¢¥¹¥ì¥Ã¥É ++¤«¤ó¤ì¤ó¤ê¤ó¤¯ #T35 ´ØÏ¢¥ê¥ó¥¯ ++¤¬¡¼¤ó #CJ ¥¬¨¬¨¬¨¬¡Ê_§¥_;¡Ë¨¬¨¬¥ó¡ª ++¤¬¡¼¤ó #JN ¥¬¡¼¥ó ++¤¬¡¼¤ó #JN ¥¬¨¬¨¬¡ÊŽß§¥Žß;)¨¬¨¬¥ó¡ª ++¤¬¡¼¤ó #JN ¦²¡ÊŽß§ÕŽßlll¡Ë޶ŽÞްŽÝ ++¤¬¤¤¤¤¤³¤È¤ò¤¤¤Ã¤¿ #CJ ¤¬¤¤¤¤¤³¤È¤ò¸À¤Ã¤¿ ++¤¬¤¤¤­¤Á #T35 ¥¬¥¤¥­¥Á ++¤¬¤¤¤·¤å¤Ä #T35 ¤¬¤¤¤·¤å¤Ä ++¤¬¤¤¤·¤å¤Ä #T35 ³°½Ð ++¤¬¤¤¤·¤å¤Ä¤­¤Ã¤É #JN ´û½Ð¥­¥Ã¥É ++¤¬¤¤¤·¤å¤Ä¤¯¤ó #JN ¥¬¥¤¥·¥å¥Ä·¯ ++¤¬¤¤¤¿ #T35 ¥¬ÈÄ ++¤¬¤¤¤É¤é¤¤¤Ê¤¢ #T35 ¥¬¥¤¥É¥é¥¤¥Ê¡¼ ++¤¬¤¤¤É¤é¤¤¤ó¤¤¤¿ #T35 ¥¬¥¤¥É¥é¥¤¥óÈÄ ++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #CJ ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë ++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #CJ ޶ŽÞޏ޶ŽÞޏŽÌŽÞŽÙŽÌŽÞŽÙ ++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #T30 ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë ++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë¤­¤ç¤¦¤³¤¦¤ê¤ó #T30 ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë¶µ¹ßÎ× ++¤¬¤¯¤ì¤­¤¢¤¶¤é¤· #T35 ³ØÎò¥¢¥¶¥é¥· ++¤¬¤¯¤ì¤­¤¸¤å¤ó¤¤ #T35 ³ØÎò½ç°Ì ++¤¬¤¯¤ì¤­¤Á¤å¤¦¤É¤¯¤·¤ã #T35 ³ØÎòÃæÆÇ¼Ô ++¤¬¤¯¤ì¤­¤í¤ó¤À¤ê¤ó¤° #T35 ³ØÎò¥í¥ó¥À¥ê¥ó¥° ++¤¬¤³¤Î¤¹¤ì¤Ë¤­¤ç¤¦¤ß¤ò¤â¤Ã¤¿¤è¤¦¤Ç¤¹ #CJ ¤¬¤³¤Î¥¹¥ì¤Ë¶½Ì£¤ò»ý¤Ã¤¿¤è¤¦¤Ç¤¹ ++¤¬¤¾¤¦¤¢¤Ã¤×¤í¡¼¤À #T35 ²èÁü¥¢¥Ã¥×¥í¡¼¥À ++¤¬¤Á #T30 ¥¬¥Á ++¤¬¤Á #T35 ¥¬¥Á ++¤¬¤Á¤ã¤Ô¤ó #JN ¥¬¥Á¥ã¥Ô¥ó ++¤¬¤Ã¤¯¤· #CJ ¡²|¡±|¡û ++¤¬¤Ã¤¯¤· #CJ orz ++¤¬¤Ã¤¯¤· #CJ _no ++¤¬¤Ã¤¯¤· #CJ OTL ++¤¬¤Ã¤¯¤· #CJ OTZ ++¤¬¤Ã¤¯¤· #CJ JTO ++¤¬¤Ã¤· #JN ¥¬¥Ã¥· ++¤¬¤Ã¤·¤å¤¯¤¸¤ç #T35 ¹ç½É½ê ++¤¬¤Ã¤Á¤å¤ó #T35 ¤¬¤Ã¤Á¤å¤ó¡ù ++¤¬¤Ã¤Ä #KK ¥¬¥Ã¥Ä ++¤¬¤Ã¤Ä #T35 ¥¬¥Ã¥Ä ++¤¬¤Ê¡¼ #JN ¥¬¥Ê¡¼ ++¤¬¤Ê¡¼¤«¤Ã¤³¤¸¤Ä¤è¤¦¤¬¤¿¤«¤Ã¤³¤È¤¸¤ë #JN ¥¬¥Ê¡¼¡Ê¼ÂÍÑ·¿¡Ë ++¤¬¤Ê¡¼¤¿¤¤¤Æ¤¤ #JN ¥¬¥Ê¡¼ÂçÄë ++¤¬¤Ê¡¼¤¿¤¤¤Æ¤¤ #JN ¥¬¥Ê¡¼ÂçÄë ++¤¬¤Ê¤² #CJ ¥¬¥Ê¥² ++¤¬¤Ê¤² #CJ ޶ŽÞŽÅ޹ŽÞ ++¤¬¤Î¤¿ #T35 ¥¬¥Î¥¿ ++¤¬¤Ï¤¯ #T35 ²èÇì ++¤¬¤á¤µ¤Ð #KK µµ»ª ++¤¬¤á¤µ¤Ð #T35 µµ»ª ++¤¬¤ê¤¬¤ê¤¯¤ó #T35 ¥¬¥ê¥¬¥ê·¯ ++¤¬¤ê¤Ù¤ó #JN ¥¬¥êÊÙ ++¤¬¤ê¤Ù¤ó¤â¤é¤é¡¼ #JN ¤¬¤êÊÙ¥â¥é¥é¡¼ ++¤¬¤ó¤¬¤ë #R5r ¤¬¤ó¤¬¤ë ++¤¬¤ó¤¬¤ë #T35 ¥¬¥ó¥¬¥ë ++¤¬¤ó¤Ð¤ë¤â¤Ê¡¼ #JN ¥¬¥ó¥Ð¥ë¥â¥Ê¡¼ ++¤¬¤ó¤Ü #R5 ¤¬¤ó¤Ü ++¤¬¤ó¤Ü #R5r ¤¬¤ó¤Ü ++¤¬¤ó¤à¤Ï¤ó¤É¤ë¤Í¤¨¤à¤â¤ó¤À¤¤ #T35 ½ÆÌ´HNÌäÂê ++¤­¤¤ #KK ¸° ++¤­¤¤¤Æ¤¢¤í¤¨¤ê¡¼¤Ê #CJ ¤­¤¤¤Æ¥¢¥í¥¨¥ê¡¼¥Ê¢ö ++¤­¤¤¤Æ¤¢¤í¤¨¤ê¡¼¤Ê #T35 ¤­¤¤¤Æ¥¢¥í¥¨¥ê¡¼¥Ê¢ö ++¤­¤¤¤Ë¤·¤­ #T35 ¥­¡¼¥Ë¥·¥­ ++¤­¤¤¤í #T35 ²«¿§ ++¤­¤¦¤¤ #T35 ¥­¥¦¥¤ ++¤­¤¨¤¤¤Ü¤¹¤ì¤¸¤±¤ó #T35 ¥­¥¨¡¼¥Ü¥¹¥ì»ö·ï ++¤­¤« #JN µ¢²½ ++¤­¤«¤¤¤«¤±¤¤¤Û¤¦ #JN µ¡³£²½·ÙÊó ++¤­¤¬¡¼ #JN ¥­¥¬¡¼ ++¤­¤­¡¼¤ó #JN ¥­¥­¡¼¥ó ++¤­¤¯ #T35 µÆ ++¤­¤±¤¤¤ª¤Ë¤®¤ê #JN ´ñ·Á¤ª¤Ë¤®¤ê ++¤­¤±¤¤¤â¤é¤é¡¼ #JN ´ñ·Á¥â¥é¥é¡¼ ++¤­¤´¤Ê¤Ó #KK ¥®¥³¥Ê¥Ó ++¤­¤µ¤Þ¤´¤È¤­¤¬¤È¤Ê¤ß¤ò¤«¤¿¤ë¤Ê #JN µ®ÍÍÇ¡¤­¤¬¥È¥Ê¥ß¤ò¸ì¤ë¤Ê ++¤­¤µ¤Þ¤¸¤ã¤Ê¡¼ #JN ¥­¥µ¥Þ¥¸¥ã¥Ê¡¼ ++¤­¤·¤ã #T35 µ­¼Ô ++¤­¤·¤å¤¤¤½¤ó¤â¤¸ #T35 µ¡¼ï°Í¸ʸ»ú ++¤­¤·¤å¤¤¤¾¤ó¤â¤¸ #T35 µ¡¼ï°Í¸ʸ»ú ++¤­¤·¤å¤¦ #T30 ´ñ½± ++¤­¤·¤å¤¦ #T35 ´ñ½± ++¤­¤·¤å¤Ä #T35 ´û½Ð ++¤­¤·¤ç #CJ ¥­¥·¥ç ++¤­¤·¤ç #KYT ¥­¥·¥ç ++¤­¤·¤ç¤¤ #T35 ¥­¥·¥ç¥¤ ++¤­¤·¤ç¤ª¤¿ #T35 ¥­¥·¥ç¥ª¥¿ ++¤­¤·¤ç¤ò¤¿ #T35 ¥­¥·¥ç¥ò¥¿ ++¤­¤¿¡¼ #CJ ¥­¥¿¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(¡¬¢Ï¡¬)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¡ª¡ª ++¤­¤¿¡¼ #CJ ¥­¥¿¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(Žß¢ÏŽß)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¡ª¡ª ++¤­¤¿¡¼ #CJ Ž·ŽÀ¨¬¨¬¨¬¨¬(¡¬¢Ï¡¬¢á(¡¬¢Ï¡¬¢á¡¬¢Ï¡¬)¢á¡¬¢Ï¡¬)¨¬¨¬¨¬¨¬!!! ++¤­¤¿¡¼ #CJ Ž·ŽÀ¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(Žß¢ÏŽß)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬!!! ++¤­¤¿¡¼ #JN ¥­¥¿¡¼!!!! ++¤­¤¿¡¼ #JN Ž·ŽÀ¨¬¨¬¨¬¨¬¨¬(Žß¢ÏŽß)¨¬¨¬¨¬¨¬¨¬!!!! ++¤­¤¿¤¢ #CJ ¥­¥¿¡¼ ++¤­¤¿¤¢ #CJ Ž·ŽÀް ++¤­¤¿¤¤¤¢¤² #T35 ´üÂÔage ++¤­¤¿¤­¤å¤¦ #T35 ËÌ£Ñ ++¤­¤¿¤µ¤Ð¤¸¤À¤¤ #T35 ËÌ»ª»þÂå ++¤­¤¿¤Á¤ç¤ó #T35 ËÌ¥Á¥ç¥ó ++¤­¤¿¤Í¡¼¤è #JN ¥­¥¿¥Í¡¼¥è ++¤­¤¿¤Í¡¼¤ó¤À¤è #JN ¥­¥¿¥Í¡¼¥ó¥À¥è ++¤­¤¿¤Í¤Ã¤È #KK ËÌ¥Í¥Ã¥È ++¤­¤¿¤â¤ê #KK ËÌ¿¹ ++¤­¤¿¤â¤ê #T35 ËÌ¿¹ ++¤­¤À #KK ÌÚÅÄ ++¤­¤À #T35 ÌÚÅÄ ++¤­¤Á #T35 ¥­¥Á ++¤­¤Á #T35 ´ðÃÏ ++¤­¤Á¡¼¤ê #JN ¥­¥Á¡¼¥ê ++¤­¤Á¡¼¤ê #JN ¥à¥«¡¼¥Ç¡Ú¤à¤«¡¼¤Ç¡ÛÊÌ̾¥­¥Á¡¼¥ê ++¤­¤Á¤¬¤¤ #T35 ¥­¥Á¥¬¥¤ ++¤­¤Á¤¬¤¤ #T35 ´ðÃϳ° ++¤­¤Á¤¬¤¤ #T35 ´ðÃϳ² ++¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ´ðÃϳ°·ÙÊó ++¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #T35 ¥­¥Á¥¬¥¤·ÙÊó ++¤­¤Ã¤³¡¼¤Þ¤½ #JN ¥­¥Ã¥³¡¼¥Þ¥½ ++¤­¤Ã¤Á¤ó #T35 ¥­¥Ã¥Á¥ó ++¤­¤Æ¤£ #T35 ¥­¥Æ¥£ ++¤­¤Æ¤£¤­¤å¤¦ #T35 ¥­¥Æ¥£µÞ ++¤­¤Æ¤Ê¤¤ #JN Ž·ŽÃŽÅ޲ ++¤­¤Æ¤Ê¤¤ #JN Ž·ŽÃŽÅ޲¨¬¨¬¨¬¨¬¨¬¨¬¡ÊŽß_Žß¡Ë¨¬¨¬¨¬¨¬¨¬¨¬!!!!! ++¤­¤È¡¼ #JN ¥­¥È¡¼ ++¤­¤Ë¤¤¤é¤Í¡¼¤è #JN ¥­¥Ë¥¤¥é¥Í¡¼¥è ++¤­¤Ë¤·¤Ê¤¤ #JN ¡ÊŽß¦ÅŽß¡Ë޷ޯ޼ŽÅ޲!! ++¤­¤Ë¤·¤Ê¤¤ #JN ¥­¥Ë¥·¥Ê¥¤!! ++¤­¤Ë¤·¤Ê¤¤ #JN ޷ޯ޼ŽÅ޲!! ++¤­¤Ì¤¦¤é¤ê¤ó¤«¤¤¤Æ¤Ä¤É¤¦ #JN °á±ºÎ׳¤Å´Æ» ++¤­¤Í¤ó¤«¤­¤³ #T30 µ­Ç°¥«¥­¥³ ++¤­¤Í¤ó¤«¤­¤³ #T35 µ­Ç°¥«¥­¥³ ++¤­¤Í¤ó¤Ñ¤Ô¤³ #T35 µ­Ç°¥Ñ¥Ô¥³ ++¤­¤Í¤ó¤Þ¤­¤³ #T35 µ­Ç°âõª»Ò ++¤­¤Î¤³ #T35 ¥­¥Î¥³ ++¤­¤Î¤³ #T35 Âû ++¤­¤Î¤»¡¼¤Ë¤ã #JN ¡¡¡¡(¡¼§×°ì) ++¤­¤Î¤»¡¼¤Ë¤ã #JN ¥­¥Î¥»¡¼¥Ë¥ã ++¤­¤Ï¤Ò¤ã¤¯¤Ë¤¸¤å¤¦ #JN ¥­¥Ï£±£²£° ++¤­¤Ð¤ó #T35 ÌÚÈÖ ++¤­¤Ü¡¼¤ó #CJ ¤­¤Ü¡¼¤ó ++¤­¤Ü¡¼¤ó #T35 ¤­¤Ü¡¼¤ó ++¤­¤Ü¤ó #CJ ¤­¤Ü¤ó ++¤­¤Ü¤ó #CJ ¥­¥Ü¥ó ++¤­¤Ü¤ó¤Ì #CJ ¤­¤Ü¤ó¤Ì ++¤­¤Ü¤ó¤Ì #CJ ¥­¥Ü¥ó¥Ì ++¤­¤ß¤Ï¤ï¤À¤µ¤ó¤´¤Î¤ß #CJ ·¯¤Ï¥ï¥À¥µ¥ó¹¥¤ß ++¤­¤à #KK ¤­¤à ++¤­¤à #KY ¤­¤à ++¤­¤à¤³ #T35 ¥­¥à¥³ ++¤­¤à¤µ¤ï #KK ¥­¥àÂô ++¤­¤à¤µ¤ï #T35 ¥­¥àÂô ++¤­¤à¤µ¤ï #T35 ʧÂô ++¤­¤à¤Á #JN ¥­¥à¥Á ++¤­¤à¤Á #T35 ¥­¥à¥Á ++¤­¤à¤Á¤â¤ó #JN ¥­¥à¥Á¥â¥ó ++¤­¤à¤è¤ó¤¸¤ó #JN ¶â±Ëï¯ ++¤­¤à¤è¤ó¤¸¤ó #T35 ¶â±Ëï¯ ++¤­¤â #KYT ¥­¥â ++¤­¤â¤¤ #T35 ¥­¥â¥¤ ++¤­¤â¤Á¤¤¤¤¤³¤È¤·¤è¤¦ #CJ µ¤»ý¤Á¤¤¤¤¤³¤È¤·¤è¤¦ ++¤­¤ã¤Ã¤È¤­¤é¡¼ #JN ¥­¥ã¥Ã¥È¥­¥é¡¼ ++¤­¤ã¤Ã¤È¤­¤é¡¼ #T35 ¥­¥ã¥Ã¥È¥­¥é¡¼ ++¤­¤ã¤Ã¤È¤­¤é¤¢ #T35 ¥­¥ã¥Ã¥È¥­¥é¡¼ ++¤­¤ã¤Ã¤Ï¤º¤«¤· #JN ¥­¥ã¥Ã¡¢¥Ï¥º¥«¥· ++¤­¤ã¤Ã¤Ï¤º¤«¤· #JN ޷ެޝ¡¢ŽÊ޽ŽÞ޶޼¡Ê-ŽÉŽÉ¡Ë ++¤­¤ã¤Ã¤× #T35 ¥­¥ã¥Ã¥× ++¤­¤ã¤Ã¤×¤â¤ì #T35 ¥­¥ã¥Ã¥×ϳ¤ì ++¤­¤ã¤Ï #T35 ¡ù ++¤­¤ã¤Ô¤¤ #CJ ¥­¥ã¥Ô¡¼ ++¤­¤ã¤×¤Æ¤½ #JN ¥­¥ã¥×¥Æ¥½ ++¤­¤ã¤×¤Æ¤½ #T35 ¥­¥ã¥×¥Æ¥½ ++¤­¤ã¤×¤Æ¤½ #T35 ޷ެŽÌŽßŽÃŽ¿ ++¤­¤ã¤é¤Ï¤ó #T35 ¥­¥ã¥é¥Ï¥ó ++¤­¤å¤¦ #T35 Q ++¤­¤å¤¦¤µ¤¤¤«¤¤ #T35 µßºÑ²ñ ++¤­¤å¤¦¤· #JN µë»Å ++¤­¤å¤¦¤·¤å¤¦ #T35 µÛ¼ý ++¤­¤å¤¦¤·¤å¤¦ #T35 µÞ½± ++¤­¤å¤¦¤¹¤ì #T35 µì¥¹¥ì ++¤­¤å¤¦¤À¤¤ #T35 QÂç ++¤­¤å¤¦¤Á¤ã¤ó¤Í¤ë #T35 ¶å¥Á¥ã¥ó¥Í¥ë ++¤­¤å¤¦¤Æ¤£¤¤ #T35 QT ++¤­¤å¤¦¤Æ¤¤ #KK µìÄë ++¤­¤å¤¦¤Æ¤¤ #T35 µÜÄî ++¤­¤å¤¦¤Æ¤¤ #T35 µìÄë ++¤­¤å¤¦¤Æ¤ó¤¤¤Á¤´¤¸¤±¤ó #T35 9¡¦15»ö·ï ++¤­¤å¤¦¤Æ¤ó¤­¤å¤¦¤Ô¤ó¤¯¤¬¤Ø¤ó #T35 9¡¦9pink¤¬ÊÑ ++¤­¤å¤¦¤Ë¤­¤Î¤­¤ç¤¦¤¤¤¯¤é¤ó¤¾¤¦ #T35 µìÆó´ü¤Î¶µ°é¡¦Íô¤¸øÎ©¡¦¹ñ¸øÎ©Ìë´ÖÉô ++¤­¤å¤¦¤Þ¤Ã¤¯¤¤¤¿ #CN µì£Í£á£ãÈÄ ++¤­¤å¤¦¤Þ¤Ã¤¯¤¤¤¿ #T35 µì£Í£á£ãÈÄ ++¤­¤å¤¦¤í¤¯ #KK µìÏ» ++¤­¤å¤¦¤í¤¯ #T35 µìÏ» ++¤­¤æ #JN ¥­¥æ ++¤­¤æ #T35 ¥­¥æ ++¤­¤æ¤á¤¤¤²¤ó #JN ¥­¥æÌ¸À ++¤­¤ç¤¦ #T35 ¶§ ++¤­¤ç¤¦¤®¤å¤¦¤Ó¤ç¤¦¤·¤ó¤¸¤ã #T35 ¶¸µíÉ¿®¼Ô ++¤­¤ç¤¦¤µ¤ó #T35 ¶¯»À ++¤­¤ç¤¦¤µ¤ó¤·¤å¤® #T35 ¶¸»´¼çµÁ ++¤­¤ç¤¦¤µ¤ó¤·¤å¤® #T35 ¶¸»º¼çµÁ ++¤­¤ç¤¦¤»¤¤¤¢¤¤¤Ç¤£¤¤ #T35 ¶¯À©ID ++¤­¤ç¤¦¤»¤¤¤·¤å¤¦¤ê¤ç¤¦ #JN ¶¯À©½ªÎ» ++¤­¤ç¤¦¤À¤¤¤Î¤Û¤´¤·¤ã #JN ¡Ê¡¦¡¼¡¦¡ËŽÝ¡£ ++¤­¤ç¤¦¤À¤¤¤Î¤Û¤´¤·¤ã #JN ·»Äï¤ÎÊݸî¼Ô ++¤­¤ç¤¦¤À¤¤¤â¤Ê¡¼ #JN ·»Äï¥â¥Ê¡¼ ++¤­¤ç¤¦¤À¤¤¤â¤Ê¡¼¤Î¤Ï¤Ï #JN ·»Äï¥â¥Ê¡¼¤ÎÊì ++¤­¤ç¤¦¤È¤¦¤»¤ó¤»¤¤ #JN ¶µÆ¬ÀèÀ¸ ++¤­¤ç¤¦¤È¤±¤ó #CN µþÅÔ¸© ++¤­¤ç¤¦¤È¤±¤ó #CNS µþÅÔ¸© ++¤­¤ç¤¦¤È¤±¤ó #T35 µþÅÔ¸© ++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #CN µþÅÔ»ÔÂçÄŶè ++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #CNS µþÅÔ»ÔÂçÄŶè ++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #T35 µþÅÔ»ÔÂçÄŶè ++¤­¤ç¤¦¤È¤ì¤ó¤¸¤ã¡¼ #JN µþÅÔ¥ì¥ó¥¸¥ã¡¼ ++¤­¤ç¤¦¤Ï¤ó #T35 ¶¦¥Ï¥ó ++¤­¤ç¤¦¤æ¤¦¤­¤ã¤Ã¤× #T35 ¶¦Í­¥­¥ã¥Ã¥× ++¤­¤ç¤¦¤æ¤¦¤³¤Æ¤Ï¤ó #T35 ¶¦Í­¥³¥Æ¥Ï¥ó ++¤­¤ç¤¦¤æ¤¦¤È¤ê¤Ã¤× #T35 ¶¦Í­¥È¥ê¥Ã¥× ++¤­¤ç¤¸¤ó #T35 µõ¿Ð ++¤­¤ç¤À¤¤¤±¤¤¤¸¤Ð¤ó #T35 µðÂç·Ç¼¨ÈÄ ++¤­¤ç¤À¤¤¤±¤¤¤¸¤Ð¤ó¤°¤ó #T35 µðÂç·Ç¼¨ÈÄ·² ++¤­¤ç¤ß¤ß¤â¤Ê¡¼ #JN µð¼ª¥â¥Ê¡¼ ++¤­¤é¤ê #JN ¡Ê¡±¡¼+¡±¡ËŽ·Ž×ŽØ ++¤­¤é¤ê #JN ¥­¥é¥ê ++¤­¤é¤ê #JN Ž·Ž×ŽØ ++¤­¤ê¤³¤ß¤¿¤¤¤Á¤ç¤¦ #JN ÀÚ¹þÂâĹ ++¤­¤ê¤³¤ß¤¿¤¤¤Á¤ç¤¦¤È¤Ò¤í¤æ¤­ #JN ÀÚ¹þÂâĹ¤È¤Ò¤í¤æ¤­ ++¤­¤ê¤Ð¤ó #T35 ¥­¥ê¥Ð¥ó ++¤­¤ê¤Ð¤ó #T35 ¥­¥êÈÖ ++¤­¤ê¤Ð¤ó¤²¤Ã¤¿¡¼ #T35 ¥­¥êÈÖ¥²¥Ã¥¿¡¼ ++¤­¤ê¤Ð¤ó¤²¤Ã¤¿¤¢ #T35 ¥­¥êÈÖ¥²¥Ã¥¿¡¼ ++¤­¤ó #T35 ¶â ++¤­¤ó¤­¤¸¤É¤¦ #JN ¶áµ¦»ùƸ ++¤­¤ó¤­¤¸¤É¤¦ #T35 ¶áµ¦»ùƸ ++¤­¤ó¤°¤â¤Ê¤ê¤¾¤ó #JN ¥­¥ó¥°¥â¥Ê¥ê¥¾¥ó ++¤­¤ó¤°¤ì¤ª¤â¤ê¤è¤·¤í¤¦ #JN ¥­¥ó¥°¥ì¥ª¿¹Á±Ï¯ ++¤­¤ó¤À¤¤ #T35 ¶áÂå ++¤­¤ó¤Þ¤ó¤³ #JN ¥­¥ó¥Þ¥ó¥³ ++¤­¤ó¤Þ¤ó¤³ #T35 ¥­¥ó¥Þ¥ó¥³ ++¤­¤ó¤Þ¤ó¤³¤­¤ç¤¦ #KK ¥­¥ó¥Þ¥ó¥³¶µ ++¤­¤ó¤Þ¤ó¤³¤­¤ç¤¦ #T35 ¥­¥ó¥Þ¥ó¥³¶µ ++¤®¤¬ #JN ¥®¥¬ ++¤®¤¬¤á¤¹ #JN ¥®¥¬¥á¥¹ ++¤®¤³ #CJ ¥®¥³ ++¤®¤³ #JN ¥®¥³ ++¤®¤³¡¼¤° #JN ¥®¥³¡¼¥° ++¤®¤³¤¢¤¤¤¹ #JN ¥®¥³¥¢¥¤¥¹ ++¤®¤³¤¤¤Ì #JN ¥®¥³¸¤ ++¤®¤³¤¦¤µ #JN ¥®¥³¥¦¥µ ++¤®¤³¤¨¤â¤ó #JN ¥®¥³¤¨¤â¤ó ++¤®¤³¤¨¤ë #JN ¥®¥³¥¨¥ë ++¤®¤³¤«¤ï¤À¤ó¤· #JN ¥®¥³ÀîÃÌ»Ö ++¤®¤³¤¬¤¨¤ë #JN ¥®¥³¥¬¥¨¥ë ++¤®¤³¤­¤ç¤¦¤¸¤å #JN ¥®¥³¶µ¼ø ++¤®¤³¤®¤³ #CJ ¥®¥³¥®¥³ ++¤®¤³¤®¤³¤¹¤± #JN µ¼¸Å¥®¥³½õ ++¤®¤³¤®¤³¤¿ #JN µ¼¸Å¥®¥³ÂÀ ++¤®¤³¤¯¤µ #JN ¥®¥³Áð ++¤®¤³¤±¤ó¤­¤å¤¦¤¤¤ó #JN ¥®¥³¸¦µæ°÷ ++¤®¤³¤³ #JN ¡¡¡¡¢¬¥â¥Ê»Ò¡Ú¤â¤Ê¤³¡Û¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¬¥®¥³»Ò ++¤®¤³¤³ #JN ¥®¥³»Ò ++¤®¤³¤¸¤É¤¦¤·¤ã¤¬¤Ã¤³¤¦ #JN ¥®¥³¼«Æ°¼Ö³Ø¹» ++¤®¤³¤¹¤¿¡¼¤°¤ó #JN ¥®¥³¥¹¥¿¡¼·³ ++¤®¤³¤¹¤¿¡¼¤°¤ó #JN Ž·ŽÞŽºŽ½ŽÀް·³ ++¤®¤³¤¹¤¿¡¼¤°¤ó #JN ŽÓŽÅްŽÑްŽÝ·³ ++¤®¤³¤»¤ó¤È¤¦¤¤¤ó #JN ¥®¥³ÀïÆ®°÷ ++¤®¤³¤¿¤¯ #JN ¥®¥³¥¿¥¯ ++¤®¤³¤¿¤Þ¤³ #JN µ¼¸Å¶Ì»Ò ++¤®¤³¤Á¤ã¤ó¤â¤Ê¤Á¤ã¤ó #JN ¥®¥³¤Á¤ã¤ó¥â¥Ê¤Á¤ã¤ó ++¤®¤³¤Á¤å¤¦ #JN ¥®¥³¥Á¥å¥¦ ++¤®¤³¤Á¤å¤¦ #JN ¥®¥³¿ß ++¤®¤³¤Ä¤ê¡¼ #JN ¥®¥³¥Ä¥ê¡¼ ++¤®¤³¤Æ¤ó¤ª¤ª¤®¤ê #JN ¥®¥³ÅÀ¡¡Âç´îÍø¡¡ ++¤®¤³¤Ê¤Ó #KK ¥®¥³¥Ê¥Ó ++¤®¤³¤Ê¤Ó #T35 ¥®¥³¥Ê¥Ó ++¤®¤³¤Í¤³ #JN ¥®¥³¥Í¥³ ++¤®¤³¤Í¤³ #JN ¥®¥³Ç­ ++¤®¤³¤Í¤³ #JN ¥®¥³Ç­¡¡ ++¤®¤³¤Í¤³ #T35 ¥®¥³Ç­ ++¤®¤³¤Í¤³¤ê¤ç¤À¤ó¤¢¤Ã¤È¤À¤ó¤Á¤ç¡¼ #JN ¥®¥³Ç­Î¹ÃÄ¡÷ÃÄĹ ++¤®¤³¤Î¤»¤ó¤¾ #JN ¥®¥³¤ÎÀèÁÄ ++¤®¤³¤Ï¤Á #JN ¥®¥³È­ ++¤®¤³¤Ï¤Ë¤ã¡¼¤ó #CJ ¥®¥³¥Ï¥Ë¥ã¡¼¥ó ++¤®¤³¤Ï¤Ë¤ã¡¼¤ó #JN ¥®¥³¥Ï¥Ë¥ã¡¼¥ó ++¤®¤³¤Ï¤Ï¤Ï #CJ ¥®¥³¥Ï¥Ï¥Ï ++¤®¤³¤Ñ¤í #JN ¥®¥³¥Ñ¥í ++¤®¤³¤Ñ¤í #KK ¥®¥³¥Ñ¥í ++¤®¤³¤Ñ¤í #T35 ¥®¥³¥Ñ¥í ++¤®¤³¤Õ¤¦¤Õ #JN µ¼¸ÅÉ×ÉØ ++¤®¤³¤Õ¤µ¤ê¤ª¤ë¤·¤ç¤¦¤°¤ó #JN ¥®¥³¡¦¥Õ¥µ¥ê¥ª¥ë¾­·³ ++¤®¤³¤Ù¡¼¤À¡¼ #JN ¥®¥³¥Ù¡¼¥À¡¼ ++¤®¤³¤Ú #KK ¥®¥³¥Ú ++¤®¤³¤Ú #T35 ¥®¥³¥Ú ++¤®¤³¤Þ¤ë¤µ¤ó¤¢¤¤¤¨¤¹ #JN G503is ++¤®¤³¤ß #JN ¥®¥³¥ß ++¤®¤´¤Á¤ã¤ó¤â¤Ê¤Á¤ã¤ó #JN ¥®¥³¤Á¤ã¤ó¥â¥Ê¤Á¤ã¤ó ++¤®¤¸¤ó¤«¤£¤ç¤¥ #JN µ¼¿Í²½¤£¤ç¤¥ ++¤®¤¸¤ó¤«¤¸¤µ¤¯¤¸¤¨¤ó #JN µ¼¿Í²½¥¸¥µ¥¯¥¸¥¨¥ó ++¤®¤¸¤ó¤«¤â¤é¤é¡¼ #JN µ¼¿Í²½¥â¥é¥é¡¼ ++¤®¤Ã¤³¤·¤§¤ë¤Õ #KK ¥®¥Ã¥³¥·¥§¥ë¥Õ ++¤®¤Ã¤³¤ê #CJ ¥®¥Ã¥³¥ê ++¤®¤Î¤³ #JN ¥®¥Î¥³ ++¤®¤Î¤³ #JN ¥®¥Î¥³ ++¤®¤ã¤¯¤®¤ì¤ß¤º¤«¤±¤â¤Ê¡¼ #JN µÕ¥®¥ì¿å³Ý¤±¥â¥Ê¡¼ ++¤®¤ã¤¯¤®¤ì¤ß¤º¤«¤±¤â¤Ê¡¼¤Ñ¡¼¤Õ¤§¤¯¤È¤Ð¤ó #JN µÕ¥®¥ì¿å³Ý¤±¥â¥Ê¡¼¥Ñ¡¼¥Õ¥§¥¯¥ÈÈÇ ++¤®¤ã¤¯¤µ¤Ä¤Á¤å¤¦ #T35 µÔ»¦¿ß ++¤®¤ã¤¯¤µ¤Ä¤Á¤ó #T35 µÔ»¦ÄÁ ++¤®¤ã¤¯¤¿¤¤¤®¤ã¤¯¤µ¤Ä¤¢¤¹¤­¤¤¤¢¤¢¤È #T35 µÔÂÔ¡¦µÔ»¦AA ++¤®¤ã¤¯¤¿¤¤¤·¤ç¤¯¤Ë¤ó #T35 µÔÂÔ¿¦¿Í ++¤®¤ã¤¯¤¿¤¤¤¹¤ì #T35 µÔÂÔ¥¹¥ì ++¤®¤ã¤¯¤Ï¤Ä¤É¤¦ #T30 µÕȯư ++¤®¤ã¤ó #JN ¥®¥ã¥ó ++¤®¤ç¤¯¤ä¤í¤¦ #T35 ¥®¥ç¥¯ÌîϺ ++¤®¤ë¤¡¤â¤Ê #JN ¥®¥ë¥¡¥â¥Ê ++¤®¤ë¤Ë¤ã¡¼¤Î #JN ¥®¥ë¥Ë¥ã¡Á¥Î ++¤®¤í¤ó¤«¤ó¤½¤¦¤¹¤ì¤Ã¤É #T35 µÄÏÀ¡¦´¶ÁÛ¥¹¥ì¥Ã¥É ++¤®¤í¤ó¤¹¤­¡¼ #T35 ¥®¥í¥ó¥¹¥­¡¼ ++¤®¤í¤ó¤¹¤­¤¤ #T35 ¥®¥í¥ó¥¹¥­¡¼ ++¤®¤ó¤¨¤ó¤Þ¤ó¤»¤¨ #T35 ¶ä±öËüºÐ ++¤¯¤¤¤º¤ß¤ê¤â¤Í¤¢ #JN ¡ð¡ð¡ð¡ð¥¯¥¤¥º¡¦¥ß¥ê¥â¥Í¥¢¡ð¡ð¡ð¡ð ++¤¯¤¦¤­ #T35 ¶õµ¤ ++¤¯¤¦¤­¤³¤Æ¤¤ #T35 ¶õµ¤¸ÇÄê ++¤¯¤¦¤­¤è¤á¤Æ¤Í¡¼¤è #JN ¥¯¥¦¥­¥è¥á¥Æ¥Í¡¼¥è ++¤¯¤¦¤¸¤ç¤¦¤â¤Ê¤¿¤í¤¦ #JN ¶õ¾ò¥â¥ÊÂÀϺ ++¤¯¤¦¤¸¤ç¤¦¤â¤Ê¤ê¡¼¤ó #JN ¶õ¾ò¥â¥Ê¥ê¡¼¥ó ++¤¯¤¦¤Æ¤¤¤â¤Ê¡¼ #JN ¶õÄò¥â¥Ê¡¼ ++¤¯¤ª¤© #CJ ¤¯¤ª¤© ++¤¯¤µ #T35 ¥¯¥µ ++¤¯¤µ #T35 Áð ++¤¯¤µ¡¼ #JN ¡ÊŽß§×Žß¡Ëޏ޻ް ++¤¯¤µ¡¼ #JN ¥¯¥µ¡¼ ++¤¯¤µ¡¼ #JN ޏ޻ް ++¤¯¤µ¤¤¤¿¤Þ #T35 ¥¯¥µ¥¤¥¿¥Þ ++¤¯¤µ¤Á¤å¡¼¤´ #KK ¥¯¥µ¥Á¥å¡¼¸ì ++¤¯¤µ¤Á¤å¡¼¤´ #T35 ¥¯¥µ¥Á¥å¡¼¸ì ++¤¯¤µ¤Á¤å¤¦¤´ #T35 ¥¯¥µ¥Á¥å¡¼¸ì ++¤¯¤· #T35 ¶ú ++¤¯¤·¤¶¤·¤ª¤Í¤¨¤µ¤ó #JN ¶ú»É¤·¤ª»Ð¤µ¤ó ++¤¯¤»¤¤¤¸¤¤¤¤¤Á¤¾¤¯ #T35 ¥¯¥»¥¤¥¸¡¼°ì² ++¤¯¤½¤²¡¼¤â¤Ê¡¼ #JN ¥¯¥½¥²¡¼¥â¥Ê¡¼ ++¤¯¤½¤³¤Æ #T35 ʵ¥³¥Æ ++¤¯¤½¤µ¤ó¤Ó¤ã¤¯¤È¤ó #JN KuSo300t ++¤¯¤½¤¹¤ì #T35 ¥¯¥½¥¹¥ì ++¤¯¤½¤¹¤ì #T35 ʵ¥¹¥ì ++¤¯¤½¤¹¤ì¤ª¤È¤³ #JN ¥¯¥½¥¹¥ìÃË ++¤¯¤½¤¹¤ì¤«¤¤¤·¤å¤¦¤®¤ç¤¦¤·¤ã #JN ʵ¥¹¥ì²ó¼ý¶È¼Ô ++¤¯¤½¤¹¤ì¤±¤ó¤»¤Ä¤¤¤¤¤ó¤«¤¤ #T35 ʵ¥¹¥ì·úÀ߰Ѱ÷²ñ ++¤¯¤½¤¹¤ì¤·¤¹¤¦¤Û¤¦¤³¤¯¤¤¤¤¤ó¤«¤¤ #JN ʵ¥¹¥ì»Ø¿ôÊó¹ð°Ñ°÷²ñ ++¤¯¤½¤¹¤ì¤·¤ó #JN ¥¯¥½¥¹¥ì¿À ++¤¯¤½¤¹¤ì¤Ï #JN ʵ¥¹¥ì¤ÏΩ¤Æ¤ó¤Ê¤Ã¤Æ¸À¤Ã¤¿¤í¤¦¤¬¥ô¥©¥±¤¬¡¼¡¼¡ª ++¤¯¤½¤¹¤ì¤â¤Ê¡¼ #JN ¥¯¥½¥¹¥ì¥â¥Ê¡¼ ++¤¯¤½¤¹¤ì¤ï¤Ã¤·¤ç¤¤ #JN ¥¯¥½¥¹¥ì¥ï¥Ã¥·¥ç¥¤ ++¤¯¤½¤Á¤å¤¦¤Ü¤¦¤Ç¤ó¤Ñ¤À¤³¤ê¤ã #JN ʵ¿ß˼ÅÅÇȤÀ¤³¤ê¤ã¡ª ++¤¯¤½¤Ç¤«¤¤¤¢¤¹¤­¡¼¤¢¡¼¤È #JN ʵ¤Ç¤«¤¤£Á£Á ++¤¯¤½¤Ð¤³ #T35 ʵȢ ++¤¯¤½¤Ü¤Ã¤¯¤¹ #T35 ʵ¥Ü¥Ã¥¯¥¹ ++¤¯¤½¤ê¤×¤È #T35 ¥¯¥½¥ê¥×¥È ++¤¯¤½¤ì¤¹ #T30 ʵ¥ì¥¹ ++¤¯¤½¤ì¤¹ #T35 ʵ¥ì¥¹ ++¤¯¤À¤·¤Ä #T35 ¤¯¤À¼Á ++¤¯¤À¤é¤Ê¤¤¤·¤Ä¤â¤ó #T35 ¤¯¤À¤é¤Ê¤¤¼ÁÌä ++¤¯¤À¤é¤Ê¤¤¤·¤Ä¤â¤ó¤¹¤ì #T35 ¤¯¤À¤é¤Ê¤¤¼ÁÌ䥹¥ì ++¤¯¤À¤é¤Í¡¼¤è #JN ¥¯¥À¥é¥Í¡¼¥è ++¤¯¤Á¤¯¤Á #T35 ¸ý¸ý ++¤¯¤Á¤Ó¤ë¤² #T35 ¥¯¥Á¥Ó¥ë¥² ++¤¯¤Ã¤­¡¼ #T35 ¥¯¥Ã¥­¡¼ ++¤¯¤Ã¤­¤¤ #T35 ¥¯¥Ã¥­¡¼ ++¤¯¤Ã¤¯¤ë¤É¤¥¤É¤¥¤É¤¥ #JN ޏޝޏŽÙŽÄŽÞŽ©ŽÄŽÞŽ©ŽÄŽÞŽ© ++¤¯¤É¤¦¤â¤Ê #JN ¹©Æ£¥â¥Ê ++¤¯¤Ë¤ª #JNM ¥¯¥Ë¥ò ++¤¯¤Ë¤ª #T35 ¥¯¥Ë¥ò ++¤¯¤Ë¤ª¤¯¤ó¤¯¤í¤¹¤«¤ó¤È¤ê¡¼¤Ø¤ó #JN ¤¯¤Ë¤ª¤¯¤ó¥¯¥í¥¹¥«¥ó¥È¥ê¡¼ÊÔ¡¡ ++¤¯¤Ë¤µ¤ï¤Í¤Ã¤È¤Ë¤¤¤± #CJ kunisawa.net¤ËÀ¤± ++¤¯¤Ó¤Ä¤ê¤®¤³ #JN ¼óÄߤꥮ¥³ ++¤¯¤Þ¤µ¤ó¤³¤ª¤¹ #T35 ¤¯¤Þ¤µ¤ó¥³¡¼¥¹ ++¤¯¤á¡¼¤ë #T35 ·©¡¼¥ë ++¤¯¤á¤¨¤ë #T35 ·©¡¼¥ë ++¤¯¤á¤â¤Ê¡¼ #JN ·©¥â¥Ê¡¼ ++¤¯¤é #T35 ÁÒ ++¤¯¤é #T35 ¢ ++¤¯¤é¤¤¤¿ #T35 ¥¯¥éÈÄ ++¤¯¤é¤¨¤Ï¤¤¤Ö¤ê¤¹ #JN ¤¯¤é¤¨¥Ï¥¤¥Ö¥ê¥¹ ++¤¯¤é¤¯ #T30 ¥¯¥é¥¯ ++¤¯¤é¤² #T35 ¥¯¥é¥² ++¤¯¤é¤² #T35 ³¤·î ++¤¯¤é¤Ã¤«¡¼ #T35 ¥¯¥é¥Ã¥«¡¼ ++¤¯¤é¤Ã¤«¤¢ #T35 ¥¯¥é¥Ã¥«¡¼ ++¤¯¤é¤Ã¤¯ #T30 ¥¯¥é¥Ã¥¯ ++¤¯¤é¤é¤¬¤¿¤Ã¤¿ #JN ¥¯¥é¥é¤¬Î©¤Ã¤¿ ++¤¯¤é¤ò¤¿ #T35 ¥¯¥é¥ò¥¿ ++¤¯¤ê¡¼¤ó¤Ò¤Ã¤È #T30 ¥¯¥ê¡¼¥ó¥Ò¥Ã¥È ++¤¯¤ê¤³ #JN ¤¯¤ê»Ò ++¤¯¤ê¤Á¤å¤¦ #T35 ·ª¿ß ++¤¯¤ì¤¢¤é¤·¤ë #KK ¥¯¥ì¥¢¥é¥·¥ë ++¤¯¤ì¤¤¤¸¤¤¤´¤¦¤¹¤È #T35 ¥¯¥ì¥¤¥¸¡¼¥´¡¼¥¹¥È ++¤¯¤ì¤¯¤ì¤¯¤ó #T35 ¤¯¤ì¤¯¤ì·¯ ++¤¯¤ì¤¯¤ì¤Á¤å¤¦¤Ü¤¦¤Ü¤¯¤á¤Ä¤¹¤¤¤·¤ó¤¤¤¤¤ó¤«¤¤ #JN ¤¯¤ì¤¯¤ì¿ß˼ËÐÌÇ¿ä¿Ê°Ñ°÷²ñ ++¤¯¤í¤·¤ç¤¦¤¾¤¯ #T35 ¹õÁõ« ++¤¯¤í¤·¤ç¤¦¤¾¤¯¤ª¤Õ #T35 ¹õÁõ«OFF ++¤¯¤í¤Þ¤é¤é¡¼ #JN ¹õ¥Þ¥é¥é¡¼ ++¤¯¤í¤ß¤ß¤â¤Ê¡¼ #JN ¹õ¼ª¥â¥Ê¡¼ ++¤¯¤í¤à¤Ä #T35 ¹õ¥à¥Ä ++¤¯¤ï¤é #CJ ¥¯¥ï¥é ++¤¯¤ï¤é #CJ ޏŽÜŽ× ++¤° #T35 ¶ñ ++¤°¤¢¤ï¤» #T35 ¶ñ¹ç¤ï¤» ++¤°¤Ã¤¸¤ç¤Ö #CJ ¥°¥Ã¥¸¥ç¥Ö ++¤°¤Ã¤¸¤ç¤Ö #CJ ޏŽÞޝ޼ŽÞŽ®ŽÌŽÞ ++¤°¤Ã¤É¤Õ¤£¤¤¤ê¤ó¤° #CJ ¥°¥Ã¥É¥Õ¥£¡¼¥ê¥ó¥° ++¤°¤â¤Ã¤Á¤å¤¤¤¤¤ó #T35 ¥°¥â¥Ã¥Á¥å¥¤¡¼¥ó ++¤°¤ê¡¼¤ó #T35 ¥°¥ê¡¼¥½ ++¤°¤ê¡¼¤ó #T35 ¥°¥ê¡¼¥ó ++¤°¤ê¤¤¤ó¤Í¤¨¤µ¤ó #T35 ¥°¥ê¡¼¥ó°¹¤µ¤ó ++¤°¤ê¤¤¤ó¤Í¤¨¤µ¤ó #T35 ¥°¥ê¡¼¥ó»Ð¤µ¤ó ++¤°¤ì¡¼¤È¤¬¤ó¤Ð¤ë¤â¤Ê¡¼ #JN ¥°¥ì¡¼¥È¥¬¥ó¥Ð¥ë¥â¥Ê¡¼ ++¤°¤ì¤Á¤ã¤ó #JN ¥°¥ì¤Á¤ã¤ó ++¤°¤í #T35 ¥°¥í ++¤°¤ó¤È¤¦¤®¤³ #JN ·³Å᥮¥³ ++¤°¤ó¤Þ¤±¤ó #CN ·²Çϸ© ++¤±¡¼ #T35 £Ë ++¤±¡¼¤­¤ä¤Ý¤ó¤É #JN ¥±¡¼¥­²°¡ò ++¤±¤¤¤ª¤¦ #T35 KO ++¤±¤¤¤­¤å¤¦ #T35 KQ ++¤±¤¤¤³¤¯¤Ö¤ó #T35 ·Ù¹ðʸ ++¤±¤¤¤·¤Á¤ç¤¦ #JN ·Ù»ëÄ£ ++¤±¤¤¤¸¤Ð¤ó #T35 ·Ç¼¨ÈÄ ++¤±¤¤¤¸¤Ð¤ó¤¤¤Á¤é¤ó #T35 ·Ç¼¨ÈİìÍ÷ ++¤±¤¤¤¸¤Ð¤ó¤È¤Ã¤×¤Ø #CJ ·Ç¼¨ÈÄ¥È¥Ã¥×¤Ø ++¤±¤¤¤¿¤¤¤Ç¤ó¤ï¤â¤Ê¡¼ #JN ·ÈÂÓÅÅÏÃ¥â¥Ê¡¼ ++¤±¤¬¤Ë #JN ÌÓ¤¬¤Ë ++¤±¤³¡¼¤ó #T30 ¥±¥³¡¼¥ó ++¤±¤³¡¼¤ó #T30 Ž¹ŽºŽ°ŽÝ ++¤±¤Ã¤³¤ó #T30 ·ëº§ ++¤±¤Ã¤Ú¤­ #T35 ·éÊÊ ++¤±¤Ã¤Ú¤­¤¯¤ó #T35 ·éÊÊ·¯ ++¤±¤Ä¤¬¤ó #T35 ÊÇ´ä ++¤±¤Ä¤² #T35 ¤±¤ÄÌÓ ++¤±¤Æ¤ë #CJ ¤±¤Æ¤ë ++¤±¤í¤Ô¡¼ #JN ¥±¥í¤Ô¡¼ ++¤±¤í¤ê¤ó¤²¤ë¤Ó¤È¤¦ #T35 ¥±¥í¥ê¥ó¥²¥ëÈøÆ£ ++¤±¤ó #JNM ¤±¤ó ++¤±¤ó¤«¤Ï¤ä¤á¤Æ #JN ¤±¤ó¤«¤Ï¤ä¤á¤Æ¡Ê¡ü¡­¡¼¡®¡ü¡Ë ++¤±¤ó¤«¤ó¤Á¤å¤¦ #T35 ·ù´Ú¿ß ++¤±¤ó¤±¤ó¤«¤ó¤Á¤å¤¦ #T35 ·ù·ù´Ú¿ß ++¤²¡¼¤Ï¡¼¤¤¤¿ #CN ¥²¡¼¥Ï¡¼ÈÄ ++¤²¤­¤¦¤é¤¸¤ç¤¦¤Û¤¦ #T35 ·ã΢¾ðÊó ++¤²¤­¤¸¤ç¤¦ #T35 ·à¾ì ++¤²¤¹¤È¤²¤¹¤È #CJ guestguest ++¤²¤½¤ª¤½ #T35 ¥²¥½¥ª¥½ ++¤²¤½¤ª¤½ #T35 ޹ŽÞŽ¿ŽµŽ¿ ++¤²¤Ã¤³¤¦ #T35 ·î¸÷ ++¤²¤Ã¤¿¡¼¤â¤Ê¤Þ¤Þ #JN ¥²¥Ã¥¿¡¼¥â¥Ê¥Þ¥Þ ++¤²¤Ã¤Ä #T35 ¥²¥Ã¥Ä ++¤²¤Ã¤×¡¼ #JN ¥²¥Ã¥×¡¼ ++¤²¤É¤¦¤»¤ó¤»¤¤ #JN ³°Æ»ÀèÀ¸ ++¤²¤é #JN ¥²¥é ++¤²¤é #JN ¥²¥é¥é¡¼ ++¤²¤é¤é¡¼ #JN ¥²¥é ++¤²¤é¤é¡¼ #JN ¥²¥é¥é¡¼ ++¤²¤í¤¤¤¿ #CN ¥²¥íÈÄ ++¤²¤í¤¤¤¿ #T35 ¥²¥íÈÄ ++¤²¤í¤â¤Ê¡¼ #JN ¥²¥í¥â¥Ê¡¼ ++¤²¤ó¤ª¤ó #T35 ¥²¥½¥ª¥½ ++¤²¤ó¤ª¤ó #T35 ޹ŽÞŽ¿ŽµŽ¿ ++¤²¤ó¤·¤ª¤¦ #JN ¸¶»Ò²¦ ++¤²¤ó¤·¤Ð¤¯¤À¤ó #JN ¸¶»ÒÇúÃÆ ++¤²¤ó¤¸¤ó #T35 ¸¶¿Í ++¤³¡¼¤Û¡¼ #T35 ¥³¡¼¥Û¡¼ ++¤³¡¼¤Û¡¼ #T35 ¹ªÊò ++¤³¡¼¤Û¡¼ #T35 ¹âÊò ++¤³¤¢¤ê #T35 »ÒµÂ ++¤³¤¤¤Á¤¸¤«¤ó¤È¤¤¤Ä¤á¤¿¤¤ #CJ ¾®°ì»þ´ÖÌ䤤¤Ä¤á¤¿¤¤ ++¤³¤¦¡«¤¡ #T35 ¥³¥ô¥¡ ++¤³¤¦¡«¤¡¤¤¤¿ #CN ¥³¥ô¥¡ÈÄ ++¤³¤¦¡«¤¡¤¤¤¿ #T35 ¥³¥ô¥¡ÈÄ ++¤³¤¦¤¨¤¤¤Ø¤¤ #JN ¹È±Òʼ ++¤³¤¦¤«¤¤¤·¤ç¤±¤¤ #T35 ¸ø³«½è·º ++¤³¤¦¤«¤ó¤Á¤å¤¦ #T35 ¹¥´Ú¿ß ++¤³¤¦¤°¤· #T35 ¹©¶ñ»Õ ++¤³¤¦¤°¤· #T35 ¹á¶ñ»Õ ++¤³¤¦¤³¤¯¤Á¤å¤¦¤Ü¤¦ #T35 ¹­¹ð¿ß˼ ++¤³¤¦¤³¤¯¤è¤± #T35 ¹­¹ð½ü¤± ++¤³¤¦¤µ¤¯¤¤¤ó #T35 ¹©ºî°÷ ++¤³¤¦¤·¤­¤»¤Ã¤Æ¤¤ #T35 ¸ø¼°ÀßÄê ++¤³¤¦¤¿¤¤¤·¤µ¤Þ #JN ¹ÄÂÀ»ÒÍÍ ++¤³¤¦¤À¤ó¤®¤³ #JN ¹ÖÃ̵¼¸Å ++¤³¤¦¤Á¤ç¤¦¤· #T35 ¤³¤¦¤Á¤ç¤¦¤· ++¤³¤¦¤Ä¤¦¤¤¤Ï¤ó¤Î¤â¤ß¤±¤·¤«¤¿ #KK ¸òÄ̰ãÈ¿¤ÎÙæ¤ß¾Ã¤·Êý ++¤³¤¦¤Ê¤Ã¤Æ¤ë¤Ï¤º¤¬¤³¤¦¤Ê¤Ã¤Æ¤ë¤ó¤Ç¤¹ #CJ ¤³¤¦¤Ê¤Ã¤Æ¤ë¤Ï¤º¤¬¡¢¤³¤¦¤Ê¤Ã¤Æ¤ë¤ó¤Ç¤¹¡£ ++¤³¤¦¤Î¤è¤¦¤Ø¤¤ #JN ¹¾¤ÎÍÃʼ ++¤³¤¦¤Î¤è¤¦¤Ø¤¤ #T35 ¹¾¤ÎÍÃʼ ++¤³¤¦¤Ð¤· #KY ¹á¤Ð¤· ++¤³¤¦¤Ð¤· #KYmi ¹á¤Ð¤· ++¤³¤¦¤Ù #KK ¼ó ++¤³¤¦¤Ù #T35 ¼ó ++¤³¤¦¤Û¤¦ #T35 ¥³¡¼¥Û¡¼ ++¤³¤¦¤Û¤¦ #T35 ¹ªÊò ++¤³¤¦¤Û¤¦ #T35 ¹âÊò ++¤³¤¦¤Ü¤¦ #T35 ¹©Ë¼ ++¤³¤¦¤â¤ê¤â¤Ê¡¼ #JN ¥³¥¦¥â¥ê¥â¥Ê¡¼ ++¤³¤¦¤â¤ó¤¤¤Ã¤Æ¤è¤· #CJ æêÌçÀ¤äƤ褷 ++¤³¤¦¤ê¤Ä¤Á¤å¤¦ #T35 ¸øÎ©Ãî ++¤³¤¦¤ê¤ó #T30 ¸÷Î× ++¤³¤¦¤ê¤ó #T30 ¹ßÎ× ++¤³¤¯¤ê¤Ä¤¨¤­¤Ù¤ó¤«¤Ö #T35 ¹ñΩ±ØÊۡʳô¡Ë ++¤³¤¯¤ê¤Ä¤Ï¤¦¤Ä¤¯¤·¤¤¤·¤ê¤Ä¤Ï¤ß¤Ë¤¯¤¤ #CJ ¹ñΩ¤ÏÈþ¤·¤¤¡¢¿¬ÄŤϽ¹¤¤ ++¤³¤¯¤ì¤ó¤Ê¤Ê¤·¤µ¤ó #T35 ¹ñÏ¢¤ÊÀ®¤·¤µ¤ó ++¤³¤³¤Ç¤¢¤² #CJ ¤³¤³¤Ç¤¢¤² ++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN (¡¦¢Ï¡¦)ŽºŽºŽÊŽºŽÞ޼ŽÞެް޽ŽÅ޽ŽÚޝŽÄŽÞŽÀŽÞŽÖ ++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN ¥³¥³¥Ï¥´¥¸¥ã¡¼¥¹¥Ê¥¹¥ì¥Ã¥É¥À¥è ++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN ŽºŽºŽÊŽºŽÞ޼ŽÞެް޽ŽÅ޽ŽÚޝŽÄŽÞŽÀŽÞŽÖ ++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ¤³¤³¤Ï¤É¤³¤¸¤ã ++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ¥³¥³¥Ï¥É¥³¥¸¥ã ++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ŽºŽºŽÊŽÄŽÞŽºŽ¼ŽÞެ ++¤³¤³¤Ï¤Ò¤É¤¤¤¤¤ó¤¿¤¢¤Í¤Ã¤È¤Ç¤¹¤Í #CJ ¤³¤³¤Ï¤Ò¤É¤¤¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤¹¤Í ++¤³¤³¤Ï¤ï¤»¤À¤¸¤ã¤Ê¤¤¤è #CJ ¤³¤³¤ÏÁá°ðÅĤ¸¤ã¤Ê¤¤¤è ++¤³¤³¤Ï¤ï¤ë¤¤¤¤¤ó¤¿¤¢¤Í¤Ã¤È¤Ç¤¹¤Í #CJ ¤³¤³¤Ï°­¤¤¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤¹¤Í ++¤³¤³¤Þ¤Ç¤è¤ó¤À #CJ --------¤³¤³¤Þ¤ÇÆÉ¤ó¤À------- ++¤³¤·¤ª #T35 ¾®±ö ++¤³¤·¤Ì¤± #KK ¹øÈ´¤± ++¤³¤·¤Ì¤± #T35 ¹øÈ´¤± ++¤³¤¸¤­¤â¤Ê¡¼ #JN ¸ð¿©¥â¥Ê¡¼ ++¤³¤¹¤×¤ì¤Æ¤ó #T35 ¥³¥¹¥×¥ìŹ ++¤³¤¾¤¦ #JN ¾®ÁÎ ++¤³¤¾¤¦ #T35 ¾®ÁÎ ++¤³¤Ã¤¯¤â¤é¤é¡¼ #JN ¥³¥Ã¥¯¥â¥é¥é¡¼ ++¤³¤Ã¤½¤ê¤µ¤ó #JN ¤³¤Ã¤½¤ê¤µ¤ó ++¤³¤Æ #T35 ¥³¥Æ ++¤³¤Æ¤¤ #T35 ¸ÇÄê ++¤³¤Æ¤¤¤¿¤¿¤­ #T30 ¸ÇÄê᤭ ++¤³¤Æ¤¤¤Ï¤ó¤É¤ë #T35 ¸ÇÄê¥Ï¥ó¥É¥ë ++¤³¤Æ¤¤¤Ï¤ó¤É¤ë¤¹¤ì¤Ã¤É #T35 ¸ÇÄê¥Ï¥ó¥É¥ë¥¹¥ì¥Ã¥É ++¤³¤Æ¤¤¤Õ¤¡¤ó #T35 ¸ÇÄê¥Õ¥¡¥ó ++¤³¤Æ¤Ï¤ó #T35 ¥³¥Æ¥Ï¥ó ++¤³¤Æ¤Ï¤ó¤«¡¼¤Ë¤Ð¤ë #T35 ¥³¥Æ¥Ï¥ó¥«¡¼¥Ë¥Ð¥ë ++¤³¤Æ¤Ï¤ó¤«¤¢¤Ë¤Ð¤ë #T35 ¥³¥Æ¥Ï¥ó¥«¡¼¥Ë¥Ð¥ë ++¤³¤Æ¤Ï¤ó¤¹¤ì¤Ã¤É #T35 ¥³¥Æ¥Ï¥ó¥¹¥ì¥Ã¥É ++¤³¤É¤â¤Ê¡¼ #JN ¤³¤É¥â¥Ê¡¼ ++¤³¤Ê¤· #T35 »ÒÍü ++¤³¤Ë¡¼ #T35 ¥³¥Ë¡¼ ++¤³¤Ë¤¤ #T35 ¥³¥Ë¡¼ ++¤³¤Î¤¦¤Ã¤¿¤¨¤Ï¤Þ¤¤¤Ë¤Á¤·¤Æ¤¤¤¯¤Ä¤â¤ê¤Ç¤¹ #CJ ¤³¤ÎÁʤ¨¤ÏËèÆü¤·¤Æ¤¤¤¯¤Ä¤â¤ê¤Ç¤¹ ++¤³¤Î¤¹¤ì¤Ï¤¨¤í¤¤¤Ê #CJ ¤³¤Î¥¹¥ì¤Ï¥¨¥í¤¤¤Ê ++¤³¤Î¤¿¤³ #JN ¤³¤Î¥¿Žº ++¤³¤Î¤ä¤í¤¦ #CJ ¤³¤ÎÌîϺ¡ª ++¤³¤Ô¤Ú #T30 ¥³¥Ô¥Ú ++¤³¤Ô¤Ú¤¢¤é¤· #T35 ¥³¥Ô¥Ú¹Ó¤é¤· ++¤³¤Ô¤Ú¤¦¤¶ #KYT ¥³¥Ô¥Ú¤¦¤¶ ++¤³¤Ô¤Ú¤Á¤å¤¦ #T35 ¥³¥Ô¥Ú¿ß ++¤³¤Ô¤Ú¤Ï¤«¤Á¤å¡¼¤·¤ã¤Ç¤¢¤Ü¡¼¤ó¤À¤è #JN ¤³¤Ô¤Ú¤Ï¤«¤Á¤å¡Á¤·¤ã¤Ç¤¢¤Ü¡Á¤ó¤À¤è ++¤³¤Ü¤æ¤­¡¼ #JN ¡ÊŽÒ¡¦¤ó¡¦¡Ë ++¤³¤Ü¤æ¤­¡¼ #JN ¥³¥Ü¥æ¥­¡¼ ++¤³¤Þ¤Ä¤Ð¤é¤³¤¦¤³¤¦ #KK ¾®¾¾¸¶¹â¹» ++¤³¤Þ¤Ä¤Ð¤é¤³¤¦¤³¤¦ #T35 ¾®¾¾¸¶¹â¹» ++¤³¤Þ¤ë #JN ¥³¥Þ¥ë ++¤³¤ß¤± #KK ¥³¥ß¥± ++¤³¤ß¤Ñ #KK ¤³¤ß¥Ñ ++¤³¤ß¤Ñ #T35 ¤³¤ß¥Ñ ++¤³¤ß¤ß¤â¤Ê¡¼ #JN ¾®¼ª¥â¥Ê¡¼ ++¤³¤á #T35 ¢¨ ++¤³¤á¤·¤ª #KK ÊÆ±ö ++¤³¤á¤·¤ª #T35 ÊÆ±ö ++¤³¤á¤¸¤ª #KK ÊÆ±ö ++¤³¤á¤¸¤ª #T35 ÊÆ±ö ++¤³¤é #RT ¥³¥é ++¤³¤é #T35 ¥³¥é ++¤³¤ê¤ã¤Þ¡¼ #CN ¥³¥ê¥ã¥Þ¡¼ ++¤³¤ê¤ã¤Þ¡¼ #T35 ¥³¥ê¥ã¥Þ¡¼ ++¤³¤ê¤ã¤Þ¤¢ #T35 ¥³¥ê¥ã¥Þ¡¼ ++¤³¤ê¤ó¤º #JN ¥³¥ê¥ó¥º ++¤³¤ê¤ó¤º¤¢¤é¤· #JN ¥³¥ê¥ó¥º¹Ó¤é¤·¡¡ ++¤³¤ê¤ó¤º¤­¤é¡¼ #JN ¥³¥ê¥ó¥º¥­¥é¡¼ ++¤³¤ê¤ó¤º¤À¡¼¤¯ #JN ¥³¥ê¥ó¥º¥À¡¼¥¯ ++¤³¤ì¤ª¤â¤í¤¤ #CJ ¤³¤ì¤ª¤â¤í¤¤¡ª ++¤³¤ì¤Ï¤·¤å¤¦¤»¤¤¤µ¤ì¤ë¤Í #CJ ¤³¤ì¤Ï½¤À°¤µ¤ì¤ë¤Íwwww ++¤³¤í¤Ã¤± #T35 ¥³¥í¥Ã¥± ++¤³¤í¤Ã¤±¤µ¤¤ #T35 ¥³¥í¥Ã¥±º× ++¤³¤í¤Ã¤±¤ï¤Ã¤·¤ç¤¤ #JN ¥³¥í¥Ã¥±¥ï¥Ã¥·¥ç¥¤ ++¤³¤í¤Ì #CJ ¥³¥í¥Ì ++¤³¤í¤Ì #CJ ¥³¥í¥Ì ++¤³¤í¤Ì #N5 ¥³¥í¥Ì ++¤³¤ï¤¤¤³¤ï¤¤¤Ò¡¼ #CJ ¥³¥ï¥¤¥³¥ï¥¤¥Ò¡¼ ++¤³¤ó¤·¤å¤¦¤Î¤Ó¤Ã¤¯¤ê¤É¤Ã¤­¤ê¤¾¤Ì #JN º£½µ¤Î¥Ó¥Ã¥¯¥ê¥É¥Ã¥­¥ê¤¾¤Ì ++¤³¤ó¤É¡¼¤à¤Þ¤é¤é¡¼ #JN ¥³¥ó¥É¡¼¥à¥Þ¥é¥é¡¼ ++¤³¤ó¤Î¤¦ #T35 º®Ç¾ ++¤´¡¼ #KK ¥´¡¼ ++¤´¡¼¤´¡¼¤Ë¡¼¤Ö¤ó¤·¤ç #T35 552ʸ½ñ ++¤´¡¼¤´¡¼¤Ë¡¼¤â¤ó¤¸¤ç #T35 552ʸ½ñ ++¤´¤¤¤ó¤­¤ç #T35 ¸æ±£µï ++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ ++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß¤«¤Ã¤³¤À¤¤¤µ¤ó¤­¤È¤¸¤«¤Ã¤³ #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ¡ÊÂè»°´ü¡Ë ++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß¤«¤Ã¤³¤À¤¤¤Ë¤­¤È¤¸¤«¤Ã¤³ #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ¡ÊÂèÆó´ü¡Ë ++¤´¤¦¤Ï¤é #JNS ¶ÈÊ¢ ++¤´¤¦¤Ï¤é #T35 ¶ÈÊ¢ ++¤´¤¦¤Ï¤é¤â¤Ê¡¼ #JN ¥´¡Ê°Ê²¼Î¬¡Ë¥â¥Ê¡¼ ++¤´¤¦¤Þ¤ë¤µ¤ó¤é¤¦¤ó¤¸ #T35 503¥é¥¦¥ó¥¸ ++¤´¤­¤Ö¤ê¤Ã¤Ä #JN ¥´¥­¥Ö¥ê¥Ã¥Ä ++¤´¤­¤Ö¤ê¤Ã¤Ä #KK ¥´¥­¥Ö¥ê¥Ã¥Ä ++¤´¤­¤Ö¤ê¤Ã¤Ä #T35 ¥´¥­¥Ö¥ê¥Ã¥Ä ++¤´¤­¤Ö¤ê¤è¤³¤Ï¤Þ¤¸¤ó #JN ¥´¥­¥Ö¥ê²£ÉÍ¿Í ++¤´¤­¤í¤ª #T35 ¥´¥­¥í¡¼ ++¤´¤®¤³¤µ¡¼¤Æ¤£¡¼¤ó #JN ¥´¥®¥³£±£³ ++¤´¤¯¤¦ #T35 ¸ç¶õ ++¤´¤¯¤Ö¤È¤Ð¤¤¤Ö¡¼ #T35 ¶ËÂÀ¥Ð¥¤¥Ö¡¼¡ª¡ª ++¤´¤µ¤ó¤± #T35 ¸æ»°²È ++¤´¤¸¤ã¡¼¤¹¤Þ¤é¤é¡¼ #JN ¥´¥¸¥ã¡¼¥¹¥Þ¥é¥é¡¼ ++¤´¤¸¤ã¡¼¤¹¤â¤é¤é¡¼ #JN ¥´¥¸¥ã¡¼¥¹¥â¥é¥é¡¼ ++¤´¤¹¤é #JN ¥´¥¹¥é ++¤´¤Ã¤É¤Ï¤ó¤É #T35 ¥´¥Ã¥É¥Ï¥ó¥É ++¤´¤Ë¤ã¤¢ #JN ¤´¤Ë¤ã¤¢ ++¤´¤Ë¤ã¤¢ #JN ¥´¥Ë¥ã¥¢ ++¤´¤Ð¤¯ #T35 ¸íÇú ++¤´¤Ð¤¯¤¢¤é¤· #T35 ¸íÇú¹Ó¤é¤· ++¤´¤Ð¤¯¤¹¤Þ¤½ #CJ ¸íÇú¥¹¥Þ¥½ ++¤´¤Þ¤â¤É¤­ #JN ¥´¥Þ¤â¤É¤­ ++¤´¤ß¤Ð¤³ #T35 ¥´¥ßÈ¢ ++¤´¤ß¤ó #T35 ¤´¤ß¤ó ++¤´¤á¤½ #CJ ¥´¥á¥½ ++¤´¤é¡¼ #JN ¥´¥é¡¼ ++¤´¤é¤¡ #JN ¡ÔŽß§¥Žß¡ÕŽºŽÞŽ×ާާާާާާާާާާާާާޱ!!!!! ++¤´¤é¤¡ #JN ¥´¥é¥¡ ++¤´¤ê¤ç¤¦¤â¤¨ #T35 ¸æÎî˨ ++¤´¤ë¤¡ #CJ (Žß§¥Žß)ŽºŽÞŽÙާ¡ª ++¤´¤ë¤¡ #CJ ¥´¥ë¥¡ ++¤´¤ë¤¡ #CJ ¥´¥ë¥¡! ++¤´¤ë¤¡ #CJ ŽºŽÞŽÙާ¡ª ++¤´¤ë¤¡ #JN ¡³(*¡®§¥¡­)¥ÎŽºŽÞŽÙާ ++¤´¤ë¤¡ #JN (Žß§¥Žß)ŽºŽÞŽÙާ ++¤´¤ë¤¡ #JN ¥´¥ë¥¡ ++¤´¤ë¤¡ #JN ŽºŽÞŽÙާ ++¤´¤ë¤¡ #T35 goluah! ++¤´¤ë¤¡¤È¤é¤Þ¤ó #JN ¥´¥ë¥¡¥È¥é¥Þ¥ó ++¤´¤ë¤¢ #CJ ¥´¥ë¥¡! ++¤´¤í¤í¤¦ #T35 ¥´¥í¥í¡¼ ++¤µ¡¼¤Ð¤«¤ó¤·¤¸¤ç #T35 ¥µ¡¼¥Ð´Æ»ë½ê ++¤µ¡¼¤Ð¤À¤¤¤­¤ó #T35 ¥µ¡¼¥ÐÂå¶â ++¤µ¤¢¤¤¤³¤¦¤« #JN ¤µ¤¢¡Å¡¡À¤³¤¦¤«¡Å¡Å ++¤µ¤¢¤²¤¨¤à¤Î¤Ï¤¸¤Þ¤ê¤Ç¤¹ #CJ ¤µ¤¢¥²¡¼¥à¤Î»Ï¤Þ¤ê¤Ç¤¹ ++¤µ¤¢¤µ¤¢¤ª¤­¤ã¤¯¤µ¤ó¤¬¤¯¤ë¤è #JN ¤µ¤¢¤µ¤¢¡¢¤ªµÒ¤µ¤ó¤¬Íè¤ë¤è!!! ++¤µ¤¢¤µ¤¢¤ª¤­¤ã¤¯¤µ¤ó¤¬¤¯¤ë¤è #JN ¤µ¤¢¤µ¤¢¡¢¤ªµÒ¤µ¤ó¤¬Íè¤ë¤è!!! ++¤µ¤¤¤³¤¦ #T35 ºÇ¹â ++¤µ¤¤¤³¤¦¤­¤ç¤¦ #T35 ºÇ¹â¶µ ++¤µ¤¤¤³¤¦¤¼¡¼¤è #JN ¥µ¥¤¥³¥¦¥¼¡¼¥è ++¤µ¤¤¤³¤Õ¤Ã¤µ¡¼¤ë #JN ¥µ¥¤¥³¡¦¥Õ¥Ã¥µ¡¼¥ë ++¤µ¤¤¤·¤ó¤ì¤¹ #T35 ºÇ¿·¥ì¥¹ ++¤µ¤¤¤¼¤ó¤»¤ó¤¯¤ó #T35 ºÇÁ°Àþ·¯ ++¤µ¤¤¤¿¤Þ #JN ¤µ¤¤¤¿¤Þ ++¤µ¤¤¤¿¤Þ #T35 ¤µ¤¤¤¿¤Þ ++¤µ¤¤¤À¤¤¤­¤å¤¦¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ºÇÂçµé¥­¥Á¥¬¥¤·ÙÊó ++¤µ¤¤¤É¤ê¤­¤¤¤Á #JN º¸°æ¸ÍÎϰì ++¤µ¤¤¤Ð¡¼¤¨¡¼¤¸¤§¤ó¤È #KK ¥µ¥¤¥Ð¡¼¥¨¡¼¥¸¥§¥ó¥È ++¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #T35 ºÇ˨¥È¡¼¥Ê¥á¥ó¥È ++¤µ¤¤¤â¤¨¤È¤¦¤Ê¤á¤ó¤È #T35 ºÇ˨¥È¡¼¥Ê¥á¥ó¥È ++¤µ¤«¡¼¤Ê #JN ¥µ¥«¡¼¥Ê ++¤µ¤«¤­¤Ð¤é¤»¤¤¤È #T35 ¼òµ´é¬é¯À»ÅÍ ++¤µ¤«¤Ê #JN µû ++¤µ¤«¤Ê #T35 µû ++¤µ¤«¤Ë¤Ã¤Ý #T35 ¤µ¤«¤Ë¤Ã¤Ý ++¤µ¤¬¤±¤ó¤µ¤¬¤·¤¸¤å¤¦¤Ê¤Ê¤µ¤¤ #JN º´²ì¸©º´²ì»Ô½½¼·ºÐ ++¤µ¤¯¤¸¤ç #T30 ºï½ü ++¤µ¤¯¤¸¤ç¤¤¤é¤¤ #T30 ºï½ü°ÍÍê ++¤µ¤¯¤¸¤ç¤¤¤é¤¤ #T35 ºï½ü°ÍÍê ++¤µ¤¯¤¸¤ç¤¬¤¤¤É¤é¤¤¤ó #T35 ºï½ü¥¬¥¤¥É¥é¥¤¥ó ++¤µ¤¯¤¸¤ç¤Ë¤ó #T35 ºï½ü¿Í ++¤µ¤¯¤»¤¤¤¤¤é¤¤ #T30 ºîÀ®°ÍÍê ++¤µ¤¯¤¿¤ó #T35 ¥µ¥¯¤¿¤ó ++¤µ¤¯¤Å¤± #T30 ¤µ¤¯¤Å¤± ++¤µ¤¯¤Å¤± #T30 ¥µ¥¯¥º¤± ++¤µ¤¯¤é¤¬¤ª¤«¤¬¤¯¤¨¤ó #KK ºùµÖ³Ø±à ++¤µ¤¯¤é¤¬¤ª¤«¤³¤¦¤³¤¦ #KK ºùµÖ¹â¹» ++¤µ¤¯¤é¤¬¤ª¤«¤Á¤å¤¦¤¬¤Ã¤³¤¦ #KK ºùµÖÃæ³Ø¹» ++¤µ¤¯¤é¤¿¤ó¤«¤ê #T35 ¤µ¤¯¤é¤¿¤ó¡Ê²¾¡Ë ++¤µ¤¯¤é¤¿¤ó¤Á¤å¤¦ #T35 ¤µ¤¯¤é¤¿¤ó¿ß ++¤µ¤¯¤é¤Á¤å¤¦ #T35 ºù¿ß ++¤µ¤¯¤é¤Ã¤Á #T35 ¥µ¥¯¥é¤Ã¤Á ++¤µ¤¯¤é¤Ã¤Á #T35 ºùÙÇÃ× ++¤µ¤¯¤é¤Ë¤³ #JN ¤µ¤¯¤é¥Ë¥³ ++¤µ¤¯¤é¤Í¤Ã¤È #KK ¤µ¤¯¤é¤Í¤Ã¤È ++¤µ¤¯¤é¤á¤ó¤È #JN ¥µ¥¯¥é¥á¥ó¥È ++¤µ¤±¤È¤®¤³¤È¤Ï¤Ë¤ã¡¼¤ó¤È #JN ¼ò¤È¥®¥³¤È¤Ï¤Ë¤ã¡¼¤ó¤È ++¤µ¤±¤Ë¤®¤ê¤ï¤Ã¤·¤ç¤¤ #JN ºú¤Ë¤®¤ê¥ï¥Ã¥·¥ç¥¤ ++¤µ¤² #KS sage ++¤µ¤² #KSr ¤µ¤² ++¤µ¤² #T35 sage ++¤µ¤²¤¢¤ª¤ê #T35 sageÀú¤ê ++¤µ¤²¤¢¤é¤· #T35 sage¹Ó¤é¤· ++¤µ¤²¤·¤ó¤³¤¦ #T30 ¤µ¤²¿Ê¹Ô ++¤µ¤²¤·¤ó¤³¤¦ #T35 sage¿Ê¹Ô ++¤µ¤²¤Ã¤Æ¤£ #JN sageޝŽÃލ ++¤µ¤²¤ì¤¹ #T30 sage¥ì¥¹ ++¤µ¤³¤Ä #JN ¥µ¹ü ++¤µ¤µ¤­¤±¤ó¤¹¤± #JN º´¡¹ÌÚ·ò²ð ++¤µ¤¶¤¨¤µ¤ó #JN ¥µ¥¶¥¨¤µ¤ó ++¤µ¤¶¤¨¤µ¤ó #JN ¥µ¥¶¥¨¤µ¤ó¡¡ ++¤µ¤¹¤µ¤¹ #JN ¤µ¤¹¤µ¤¹ ++¤µ¤¿¤ó #JN ¥µ¥¿¥ó ++¤µ¤¿¤ó #JN Ž»ŽÀŽÝ ++¤µ¤Ã¤Á¡¼¤Þ¤Ä¤ê #T35 ¥µ¥Ã¥Á¡¼º×¤ê ++¤µ¤Ã¤Á¤å¤¦¤¶¤¤¤´¤¸¤ã¡¼¤¹ #JN »¦¿ßºÞ¥´¥¸¥ã¡¼¥¹ ++¤µ¤Ã¤Ý¤í #CN »¦ŽÎŽßŽÛ ++¤µ¤Ã¤Ý¤í #KK »¦¥Ý¥í ++¤µ¤Ã¤Ý¤í #T35 »¦¥Ý¥í ++¤µ¤Ã¤Ý¤í #T35 »¦ŽÎŽßŽÛ ++¤µ¤Ä¤¨¤¤¤­¤ó¤· #T35 »£±Æ¶Ø»ß ++¤µ¤È¤é¤ì #T35 ¥µ¥È¥é¥ì ++¤µ¤Ð #T35 »ª ++¤µ¤Ð¤ª¤Á #T30 »ªÍî¤Á ++¤µ¤Ð¤¬¤ª¤Á¤ë #CJ »ª¤¬Íî¤Á¤ë ++¤µ¤Ð¤¬¤È¤Ö #CJ »ª¤¬Èô¤Ö ++¤µ¤Ö¤Ð¤Ã¤¯¤¨¤¤¤Á¤Æ¤£¡¼¤¨¤à¤¨¤ë #T35 subback.html ++¤µ¤á¤¸¤Þ¤¸¤±¤ó #T35 »­Åç»ö·ï ++¤µ¤è #T35 ¥µ¥è ++¤µ¤è¤Ã¤Æ¤ë #T35 º¸Íã¤Ã¤Æ¤ë ++¤µ¤è¤ó¤Ü #T35 ¥µ¥è¥ó¥Ü ++¤µ¤é¤·¤¢¤² #KSr ¤µ¤é¤·age ++¤µ¤é¤·¤¢¤² #KSr ¤µ¤é¤·¤¢¤² ++¤µ¤é¤·¤¢¤² #KSr »¯¤·age ++¤µ¤é¤·¤¢¤² #T35 SALA¤·age ++¤µ¤é¤·¤¢¤² #T35 SALA»Å¾å¤² ++¤µ¤é¤·¤¢¤² #T35 £Ó£Á£Ì£Á»Å¾å¤² ++¤µ¤é¤·¤¢¤² #T35 ¤µ¤é¤·age ++¤µ¤é¤·¤¢¤² #T35 »¯¤·age ++¤µ¤é¤·¤¢¤²¤â¤Ê¡¼ #JN »¯¤·¾å¤²¥â¥Ê¡¼ ++¤µ¤é¤Ö¤ì¤Ã¤È #JN ¥µ¥é¥Ö¥ì¥Ã¥È ++¤µ¤é¤Ö¤ì¤Ã¤É #JN ¥µ¥é¥Ö¥ì¥Ã¥É ++¤µ¤ë¤¶¤È¤¦ #T35 ±îº½Åü ++¤µ¤ë¤Ù¡¼¤¸ #T30 ¥µ¥ë¥Ù¡¼¥¸ ++¤µ¤ì¤Ä¤Þ #T35 ¤µ¤ìºÊ ++¤µ¤ì¤Å¤Þ #T35 ¤µ¤ìºÊ ++¤µ¤ï¤¿¤ê¤Þ¤³¤È¤Ï¤ï¤¬¤¤¤Î¤Á #CJ ÂôÅÏ¿¿¶×¤Ï²æ¤¬Ì¿ ++¤µ¤ï¤ä¤« #JN Á֤䤫¡ª ++¤µ¤ó¤¬¤Ä¤¦¤µ¤® #JN £³·î¥¦¥µ¥® ++¤µ¤ó¤­¤ã¤¯ #KK »°µÓ ++¤µ¤ó¤­¤ã¤¯ #T35 »°µÓ ++¤µ¤ó¤¯¤¹¤³ #CJ ¥µ¥ó¥¯¥¹¥³ ++¤µ¤ó¤¯¤¹¤³ #CJ Ž»ŽÝŽ¸Ž½Žº ++¤µ¤ó¤±¡¼ #JN ¥µ¥ó¥±¡¼ ++¤µ¤ó¤±¡¼¤·¤ó¤Ö¤ó #T35 £³£Ë¿·Ê¹ ++¤µ¤ó¤²¤Ã¤È #JN £³¥²¥Ã¥È¤©¤©¤©¤©¡ª¡ª ++¤µ¤ó¤´ #T35 »¹¸ê ++¤µ¤ó¤º¤Î¤«¤ï #JN »°ÅÓ¤ÎÀî ++¤µ¤ó¤¿¤â¤Ë¤« #JN ¥µ¥ó¥¿¡á¥â¥Ë¥« ++¤µ¤ó¤À¤ó¤â¤Ê¡¼ #JN £³ÃÊ¥â¥é¥é¡¼ ++¤µ¤ó¤É¤¤¤Ã¤Á #JN ¥µ¥ó¥É¥¤¥Ã¥Á ++¤µ¤ó¤á¡¼¤È¤ë¤Î¤¦¤Á¤å¤¦¤¸¤ó #JN £³£í¤Î±§Ãè¿Í¡¡ ++¤µ¤ó¤â¤¸¤µ¤¯¤¬ #T35 »°Ê¸»úºî²è ++¤¶¡¼¤Ü¤ó #JN ¥¶¡¼¥Ü¥ó ++¤¶¤¢¤á¤ó¤¿¤¤¤·¤Ä #T35 ¥¶¡¼ÌÌÂμÁ ++¤¶¤¤¤¢¤½ #JN ¥¶¥¤¥¢¥½ ++¤¶¤¤¤¢¤½ #JN ¥¶¥¤¥¢¥½ ++¤¶¤¤¤³ #JN ¥¶¥¤»Ò ++¤¶¤¤¤³¤·¤ç¤ê¤Ï¤ó #JN ºß¸Ë½èÍýÈÉ ++¤¶¤¤¤Ë¤Á¤¤¤·¤ì¤Ã¤É #T35 ºßÆü°å»ÕRED ++¤¶¤¤¤Ë¤Á¤Ë¤ó¤Æ¤¤ #T30 ºßÆüǧÄê ++¤¶¤¤¤ê¤ç¤¦¤Ö¤Ã¤»¤¤¤¤¤¿ #CN ºàÎÁʪÀ­ÈÄ ++¤¶¤¤¤ê¤ç¤¦¤Ö¤Ã¤»¤¤¤¤¤¿ #T35 ºàÎÁʪÀ­ÈÄ ++¤¶¤­ #T35 ¥¶¥­ ++¤¶¤Ã¤·¤å¤»¤ó¤»¤¤ #JN »¨¼ïÀèÀ¸ ++¤¶¤Ä¤À¤ó¤³¤Æ¤¤ #T35 »¨Ã̸ÇÄê ++¤¶¤Ö¤È¤ó¤¢¤é¤· #JN ¤¶¤Ö¤È¤ó¹Ó¤é¤· ++¤¶¤ï¤¶¤ï #T30 ¤¶¤ï¤¶¤ï ++¤· #M5 ¤· ++¤· #N5 ¤· ++¤· #N5 »Ô ++¤· #N5 »á ++¤· #R5 ¤· ++¤·¡¼¤Ë¤ã¤ó #JN ¤·¡¼¤Ë¤ã¤ó ++¤·¤¢¡¼¤ë #KK ¤·R ++¤·¤¢¡¼¤ë #T35 ¤·R ++¤·¤¢¤¢¤ë #T35 ¤·R ++¤·¤¢¤ï¤»¤µ¤ó¤× #JN ¹¬¤»»¶ÉÛ ++¤·¤£ #JN ¤·¤£ ++¤·¤£ #T35 ¤·¤£ ++¤·¤£¤¢ #JN ¤·¤£¤¢ ++¤·¤£¤¤¤¤¤ó¤Á¤ç¤¦ #JN ¤·¤£°Ñ°÷Ĺ ++¤·¤£¤«¤Á¤ã¤ó #JN ¤·¤£¤«¤Á¤ã¤ó ++¤·¤£¤¸¤ç¤­¤ç¤¦¤¸¤å #JN ¤·¤£½õ¶µ¼ø ++¤·¤£¤¹¤ê¡¼¤Þ¤¿¡¼¤ê #JN ¤·¤££³ÏÀ°Ø ++¤·¤£¤¹¤ê¡¼¤Þ¤¿¡¼¤ê #JN ¤·¤££³ŽÏŽÀްި ++¤·¤£¤¿¤± #JN ¤·¤£¤¿¤± ++¤·¤£¤¿¤± #JN ¤·¤£¤¿¤± ++¤·¤£¤Ò¤á #JN ¤·¤£É± ++¤·¤£¤Ò¤í¤Õ¤ß #JN ¤·¤£ÍÎʸ ++¤·¤£¤Þ¤Þ #JN ¤·¤£¥Þ¥Þ ++¤·¤¤¤µ¤¢ #T35 ¥·¡¼¥µ¡¼ ++¤·¤¤¤¿¤± #T35 ¤·¤¤¤¿¤± ++¤·¤¨¤ó #T35 »Ù±ç ++¤·¤ª #JN ±ö ++¤·¤ª #T35 ±ö ++¤·¤ª¤«¤ó #KK ¤·¤ª´Ú ++¤·¤ª¤«¤ó #T35 ¤·¤ª´Ú ++¤·¤ª¤¿ #T35 ±öÅÄ ++¤·¤ª¤Ë¤Á #T35 ±öÆü ++¤·¤«¤¯ #KK »Í³Ñ ++¤·¤«¤¯ #T35 ¢£ ++¤·¤«¤¯¤·¤«¤¯ #T35 ¢¢¢¢ ++¤·¤«¤¯¤·¤ó¤¸¤ã #T35 »Í³Ñ¿®¼Ô ++¤·¤¬¤µ¤¯ #T35 ¼¢²ìºî ++¤·¤­¤¬¤ß¤´¤é¤¡ #JN ¼°¿ÀŽºŽÞŽ×ާ ++¤·¤­¤¬¤ß¤Ê¤á¤¯¤¸ #JN ¼°¿ÀéÝê¡ ++¤·¤±¤ó¤«¤ó #JN »î¸³´É ++¤·¤²¤ò #JNM ¥·¥²¥ò ++¤·¤²¤ò #T35 ¥·¥²¥ò ++¤·¤³¤¯ #CN »à¹ñ ++¤·¤³¤¯ #T35 »à¹ñ ++¤·¤³¤¿¤Û¤ï¤¢ #CJ ¥·¥³¥¿¥Û¥ï¡¼ ++¤·¤¸¤ß #T35 ¥·¥¸¥ß ++¤·¤¹¤¿¡¼¤¶¡¼¤Ü¤ó #JN ¥·¥¹¥¿¡¼¥¶¡¼¥Ü¥ó ++¤·¤¹¤×¤ê #KK ¥·¥¹¥×¥ê ++¤·¤¹¤×¤ê #T35 ¥·¥¹¥×¥ê ++¤·¤¿¤¤¤¬¤¾¤¦ #T35 »àÂβèÁü ++¤·¤¿¤é¤Ð¤¯¤ó #JN ¤·¤¿¤é¤Ð·¯¡Ê²¾¡Ë ++¤·¤¿¤é¤Ð¤³¤¦¤Ä¤¦¤ä¤³¤¦¤³¤¦¤½¤¯¤Ð¤¹ #JN ¤·¤¿¤é¤Ð¸òÄÌÌë¹Ô¹â®¥Ð¥¹ ++¤·¤¿¤é¤Ð¤Ê¡¼ #JN ¥·¥¿¥é¥Ð¥Ê¡¼ ++¤·¤Á¤¸¤å¤¦¤¯ #T35 ¼·½Å¶ì ++¤·¤Á¤Ë¤ó¤Î¤µ¤Ö #T35 ¼·¿Í¤Î¥µ¥Ö ++¤·¤Ã¤¿¤« #T35 ÃΤ俤« ++¤·¤Ã¤¿¤«¤¯¤ó #T35 ÃΤ俤«·¯ ++¤·¤Ã¤¿¤«¤Á¤å¤¦¤Ü¤¦ #T35 ÃΤ俤«¿ß˼ ++¤·¤Ã¤Æ¤ë¤Ê¤é¤Ê¤¼¤·¤Æ¤­¤·¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤« #CJ ÃΤäƤë¤Ê¤é¡¢¤Ê¤¼»ØÅ¦¤·¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤«¡© ++¤·¤È¤Ë¤é¤Á¤ã¤¨¤ë #JN »ÈḀ̊˥é¥Á¥ã¥¨¥ë ++¤·¤Ê #CJ ¥·¥Ê ++¤·¤Ê¡¼ #JN ¥·¥Ê¡¼ ++¤·¤Ê¤¢ #T35 ¥·¥Ê¡¼ ++¤·¤Ê¤½¤Ð¤ä¤Î¤µ¤Î¤â¤Ê¡¼ #JN »ÙÆá¶¾Çþ²°¤Îº´Ìî¥â¥Ê¡¼ ++¤·¤Ê¤Í¡¼¤è #JN »á¥Ê¥Í¡¼¥è ++¤·¤Ë¤¬¤ß¤È¤ê¤Ã¤×¤ª¤Ö¤Ç¤¹ #JN »à¿À¥È¥ê¥Ã¥×¥ª¥Ö¥Ç¥¹ ++¤·¤Ë¤¬¤ß¤ß¤Ê¤é¤¤¤·¤§¤ê¡¼ #JN »à¿À¸«½¬¡¡¥·¥§¥ê¡¼ ++¤·¤Ë¤¬¤ß¤ß¤Ê¤é¤¤¤·¤§¤ê¡¼ #JN »à¿À¸«½¬¥·¥§¥ê¡¼ ++¤·¤Í #CJ ¤·¤Í ++¤·¤Í #CJ »Ô¤Í ++¤·¤Í #CJ »á¤Í ++¤·¤Í¡¼¤è #JN »á¥Í¡¼¥è ++¤·¤Í¤Ð¡¼ #JN ¥·¥Í¥Ð¡¼ ++¤·¤Í¤Ð¡¼ #JN ¥Á¥Í¥Ð¡¼ ++¤·¤Í¤è¤ª¤á¡¼¤é #JN »á¤Í¤è¤ª¤á¡¼¤é ++¤·¤Î¤Ö¤é¤¤¤ó #T35 Ǧ¥é¥¤¥ó ++¤·¤Ð¤¤¤Ì #T35 ¼Æ¸¤ ++¤·¤Ð¤±¤ó #T35 ¼Æ¸¤ ++¤·¤Ð¤¹ #T35 »à¥Ð¥¹ ++¤·¤Ö¤µ¤ï¤µ¤ó #JN ½Âß·¤µ¤ó ++¤·¤Û¤½ #T35 ¤·¥Û¥½ ++¤·¤Û¤ó #T35 ¤·¥Û¥ó ++¤·¤Ü¤¦¤¸¤å¤¦ #JN ¡Ê`)¢Ï(¡­¡Ë¡Ê¡­)§¥(`¡Ë ++¤·¤Ü¤¦¤¸¤å¤¦ #JN »éËýà ++¤·¤à¤â¤Ê¡¼ #JN ¥·¥à¡¦¥â¥Ê¡¼ ++¤·¤á¤¸ #T35 (Žß§ÕŽß)޼ŽÒ޼ŽÞ ++¤·¤á¤Ä¤±¤Á¤«¤ó¤Ó¤¤¤à #T35 Äù¤áÉÕ¤±ÃÔ´Á¥Ó¡¼¥à ++¤·¤â¤Ä¤· #JN ¥·¥â¥Ä¥· ++¤·¤â¤È #T35 ¥·¥â¥È ++¤·¤â¤È #T35 ޼ŽÓŽÄ ++¤·¤ã¤¡¤»¤ó¤è¤¦¤®¤³¤ó¤°¤È¤¬¤ó¤â¤Ê #JN ¥·¥ã¥¡ÀìÍÑ¥®¥³¥ó¥°¤È¥¬¥ó¥â¥Ê ++¤·¤ã¤¢¤»¤ó¤è¤¦¤¤¤¿ #CN ¥·¥ã¥¢ÀìÍÑÈÄ ++¤·¤ã¤¢¤»¤ó¤è¤¦¤¤¤¿ #T35 ¥·¥ã¥¢ÀìÍÑÈÄ ++¤·¤ã¤¤¤¢¤¸¤ó #T35 ¥·¥ã¥¤¥¢¿Í ++¤·¤ã¤¤¤ó #T35 ¥·¥ã¥¤¥ó ++¤·¤ã¤­¤¤¤ó #CJ (¡®Ž¥¦ØŽ¥¡­)޼ެ޷ްŽÝ ++¤·¤ã¤­¤¤¤ó #CJ ¥·¥ã¥­¡¼¥ó ++¤·¤ã¤¯¤ì¤­¤ê¤·¤¿¤ó #T35 ¥·¥ã¥¯¥ì¥­¥ê¥·¥¿¥ó ++¤·¤ã¤·¤ç¤¦ #JN ¼Ö¾¸ ++¤·¤ã¤Ð¤¤¤Î¤© #CJ ¥·¥ã¥Ð¥¤¥Î¥© ++¤·¤ã¤Ð¤¤¤Î¤© #CJ ޼ެŽÊŽÞ޲ŽÉŽ« ++¤·¤ã¤Ð¤¾¤¦ #T35 ¥·¥ã¥ÐÁþ ++¤·¤ã¤Ù¤ë¤Ä¤¯¤¨ #JN ¤·¤ã¤Ù¤ë´ù ++¤·¤ã¤ó¤Æ¤£ #JN ¡ÊŽ¥¢ÏŽ¥¡Ë޼ެŽÝŽÃލ¢ö ++¤·¤ã¤ó¤Æ¤£ #JN ¥·¥ã¥ó¥Æ¥£ ++¤·¤ä¤¢ #T35 ¤·§Á ++¤·¤å¤¦ #JN ¤·¤å¤¥ ++¤·¤å¤¦¤«¤ó¤¢¤¹¤­¡¼ #KK ½µ´©¥¢¥¹¥­¡¼ ++¤·¤å¤¦¤­¤ç¤¦ #T35 ½¡¶µ ++¤·¤å¤¦¤µ¤¤¤â¤é¤é¡¼ #JN ½¨ºÍ¥â¥é¥é¡¼ ++¤·¤å¤¦¤È¤¦ #T30 ½ªÅß ++¤·¤å¤¦¤È¤¦ #T35 ½ªÅß ++¤·¤å¤¦¤Õ¤æ #T30 ½ªÅß ++¤·¤å¤¦¤Õ¤æ #T35 ½ªÅß ++¤·¤å¤¦¤é¤¯ #T35 ¤·¤å¤¦¤é¤¯¡Ê½°Íî¡Ë ++¤·¤å¤¦¤ê¤ç¤¦ #CJ --------½ªÎ»------- ++¤·¤å¤¦¤ê¤ç¤¦ #CJ ¡á¡á¡á¡á¡á¡á½ªÎ»¡á¡á¡á¡á¡á¡á ++¤·¤å¤¦¤ê¤ç¤¦ #T30 ½ªÎ» ++¤·¤å¤¦¤ê¤ç¤¦¤Á¤å¤¦¤Ü¤¦ #T35 ½ªÎ»¿ß˼ ++¤·¤å¤· #T35 ¼ñ»Ý ++¤·¤å¤·¤å #JN ¤·¤å¤·¤å ++¤·¤å¤¸¤¤ #T35 ¼ç¼£°å ++¤·¤å¤Ã¤Á¤ç¤¦ #T30 ½ÐÄ¥ ++¤·¤å¤Ô¤¤¤ó¤·¤ã #T35 ¥·¥å¥Ô¡¼¥ó¼Ô ++¤·¤ç¡¼¤â¤Ê¡¼ #JN ¥·¥ç¡¼¥â¥Ê¡¼ ++¤·¤ç¡¼¤â¤Ê¡¼ #JN ¥·¥ç¡¼¥â¥Ê¡¼ ++¤·¤ç¡¼¤æ¤Í¤¯¤¹¤È #KK ¥·¥ç¡¼¥æ¥Í¥¯¥¹¥È ++¤·¤ç¤¦¤«¤ó #T30 ¾¤´­ ++¤·¤ç¤¦¤«¤ó #T30 ¾¤´Ô ++¤·¤ç¤¦¤¬¤É¤­¤å¤ó #T35 À¸ÕªDQN ++¤·¤ç¤¦¤°¤ó¤µ¤Þ #T35 ¾­·³ÍÍ ++¤·¤ç¤¦¤¸¤­¤¹¤Þ¤ó¤«¤Ã¤¿ #CJ ÀµÄ¾¡¢¥¹¥Þ¥ó¥«¥Ã¥¿ ++¤·¤ç¤¦¤¸¤­¤¹¤Þ¤ó¤«¤Ã¤¿ #CJ ÀµÄ¾¡¢¥¹¥Þ¥ó¥«¥Ã¥¿¡ª ++¤·¤ç¤¦¤Á¤å¤¦ #T35 Àµ¿ß ++¤·¤ç¤¦¤Ü¤¦ #T35 ¾ÃËÉ ++¤·¤ç¤¦¤Ü¤¦¤¤¤¿ #T35 ¾ÃËÉÈÄ ++¤·¤ç¤¦¤æ¤»¤ó¤·¤­¤Ã¤³¤¦¤Þ¤½ #T35 ¾ßÌýÀï»Î¥­¥Ã¥³¡¼¥Þ¥½ ++¤·¤ç¤¦¤æ¤»¤ó¤·¤­¤Ã¤³¤¦¤Þ¤ó #T35 ¾ßÌýÀï»Î¥­¥Ã¥³¡¼¥Þ¥½ ++¤·¤ç¤¦¤æ¤Ê¤×¤­¤ó #T35 ¾ßÌý¥Ê¥×¥­¥ó ++¤·¤ç¤¦¤æ¤Í¤¯¤¹¤È #T35 ¥·¥ç¡¼¥æ¥Í¥¯¥¹¥È ++¤·¤ç¤¯¤Ë¤ó #T35 ¿¦¿Í ++¤·¤ç¤¯¤Ë¤ó¤µ¤ó #T35 ¿¦¿Í¤µ¤ó ++¤·¤ç¤¯¤Í¡¼¤è #JN ¿¦¥Í¡¼¥è ++¤·¤ç¤¯¤è¤¦¤â¤Ê¡¼ #JN ¿©ÍÑ¥â¥Ê¡¼ ++¤·¤ç¤¸¤ç¤­¤é¡¼¤¢¤Ù¤ë #JN ½è½÷¥­¥é¡¼¥¢¥Ù¥ë ++¤·¤ç¤¿ #T35 ¥·¥ç¥¿ ++¤·¤ç¤¿¤³¤ó #T35 ¥·¥ç¥¿¥³¥ó ++¤·¤ç¤À¤¤¤µ¤ó¤É¤¤¤Ã¤Á #JN ½éÂ奵¥ó¥É¥¤¥Ã¥Á ++¤·¤ç¤À¤¤¤·¤Í¤Ð¡¼ #JN ½éÂ奷¥Í¥Ð¡¼ ++¤·¤ç¤À¤¤¤Þ¤¸¤ì¤¹¤Þ¤ó #JN ½éÂå¥Þ¥¸¥ì¥¹¥Þ¥ó ++¤·¤ç¤À¤¤¤â¤Ê¡¼ #JN ½éÂå¥â¥Ê¡¼ ++¤·¤ç¤À¤¤¤â¤Í¡¼ #JN ½éÂå¥â¥Í¡¼ ++¤·¤ç¤Ü #JN ¥·¥ç¥Ü ++¤·¤ç¤Ü #JN ޼ޮŽÎŽÞ ++¤·¤ç¤Ü¡¼¤ó #CJ ޼ޮŽÎŽÞްŽÝ ++¤·¤ç¤Ü¡¼¤ó #JN (¡­¡¦¦Ø¡¦`)¥·¥ç¥Ü¡¼¥ó ++¤·¤ç¤Ü¡¼¤ó #JN (¡­Ž¥¦ØŽ¥`)޼ޮŽÎŽÞްŽÝ ++¤·¤ç¤Ü¡¼¤ó #JN ¥·¥ç¥Ü-¥ó ++¤·¤ç¤Ü¡¼¤ó #JN ޼ޮŽÎŽÞ-ŽÝ ++¤·¤ç¤Ü¤ª¤ó #CJ ¥·¥ç¥Ü¡¼¥ó ++¤·¤ç¤Ü¤ª¤ó #CJ ޼ޮŽÎŽÞްŽÝ ++¤·¤ç¤Ü¤®¤³ #JN ޼ޮŽÎŽÞŽ·ŽÞŽº ++¤·¤ç¤é¤Í¡¼¤è #JN ¥·¥ç¥é¥Í¡¼¥è ++¤·¤è¤ª¤¦¤è #SUC ¥·¥è¡¼¥¦¥è ++¤·¤è¤ª¤¦¤è #SUC ޼ŽÖް޳ŽÖ ++¤·¤é¤Ê¤¤¤ï #JN ¥·¥é¥Ê¥¤¥ï ++¤·¤é¤Í¡¼¤è #JN ¥·¥é¥Í¡¼¥è ++¤·¤é¤Í¤¨¤è #T35 ¥·¥é¥Í¡¼¥è ++¤·¤é¤Í¤Î¤ª¤í¤Á #JN ¥·¥é¥Í¥Î¥ª¥í¥Á ++¤·¤é¤Ò¡¼¤² #JN ¥·¥é¥Ò¡¼¥² ++¤·¤ê #T35 ¿¬ ++¤·¤ê¤Ä #T35 ¿¬ÄÅ ++¤·¤ê¤È¤ê¤¤¤¿ #T35 ¤·¤ê¤È¤êÈÄ ++¤·¤ê¤È¤ê¤¶¤à¤é¤¤ #JN ¤·¤ê¤È¤ê»ø ++¤·¤ë #SUC ¤·¤ë ++¤·¤ë #SUC ½Á ++¤·¤í¤¦¤È¤Ë¤Ï¤ª¤¹¤¹¤á¤Ç¤­¤Ê¤¤ #CJ ÁǿͤˤϤªÁ¦¤á½ÐÍè¤Ê¤¤¡£ ++¤·¤í¤Í¤³ #KK ÇòÇ­ ++¤·¤í¤Í¤³ #T35 ÇòÇ­ ++¤·¤í¤à¤Ä #T35 Çò¥à¥Ä ++¤·¤ó¤«¤á¤â¤Ê¡¼ #JN ¿¿¡¦¥«¥á¥â¥Ê¡¼¡¡ ++¤·¤ó¤­¤í¤¯¤¿¤Ã¤»¤¤¤Ë¤ó¤Æ¤¤¤·¤ç¤¦ #JN ¿·µ­Ï¿Ã£À®Ç§Äê¾Ú ++¤·¤ó¤±¤¤¤»¤¤ #T35 ¿À·ÐÀ­ ++¤·¤ó¤¶¤ó¤Ï¤«¤«¤º¤Ë¤Ï¤ó¤È¤·¤í¤à¤Ã¤Æ¤í #CJ ¿·»²¤Ï½ñ¤«¤º¤ËȾǯ£Ò£Ï£Í¤Ã¤Æ¤í ++¤·¤ó¤· #T35 ¿Â»Î ++¤·¤ó¤·¤å¤Î1¤µ¤ó #JN ¿·¼ï¤Î£±¤µ¤ó ++¤·¤ó¤¸¤Ä¤«¤¯¤É #T35 ¿¿¼Â³ÑÅÙ ++¤·¤ó¤¸¤ã #T35 ¿®¼Ô ++¤·¤ó¤¸¤å¤¯¤´¤¸¤å¤¦ #T35 ¿·½É50 ++¤·¤ó¤¸¤å¤¯¤ß¤Ê¤ß¤°¤Á¤®¤å¤¦¤Ë¤å¤¦¤½¤Õ¤È¤¯¤ê¡¼¤à¤Î¤Í¤¨¤Á¤ã¤ó #JN ¿·½ÉÆî¸ý¡ÖµíÆý¥½¥Õ¥È¥¯¥ê¡¼¥à¡×¤Î¤Í¤¨¤Á¤ã¤ó ++¤·¤ó¤¹¤ì #T35 ¿·¥¹¥ì ++¤·¤ó¤¹¤ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡¼¤¹ #JN ¡À¡Ê¡°¢¦¡°¡Ë¡¿¿·¥¹¥ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡Ý¤¹¢ö ++¤·¤ó¤¹¤ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡¼¤¹ #JN ¿·¥¹¥ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡Ý¤¹ ++¤·¤ó¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼ #T35 ¿¿¡¦¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼ ++¤·¤ó¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¤¢ #T35 ¿¿¡¦¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼ ++¤·¤ó¤»¤¤ #PRE ¿¿À­ ++¤·¤ó¤»¤¤ #T35 ¿¿À­ ++¤·¤ó¤»¤¤¤Á¤å¤¦¤Ü¤¦ #T35 ¿¿À­¿ß˼ ++¤·¤ó¤»¤ó #T35 ¿·Á¯ ++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤¤ #KY ¿´Äì¤É¤¦¤Ç¤â¤¤ ++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤¤ #KY ¿´Äì¤É¤¦¤Ç¤âÎÉ ++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤è #KY ¿´Äì¤É¤¦¤Ç¤âÎÉ ++¤·¤ó¤Á¤ç¤¦¤¹¤ì #KK ¿ÈĹ¥¹¥ì ++¤·¤ó¤Á¤ç¤¦¤¹¤ì #T35 ¿ÈĹ¥¹¥ì ++¤·¤ó¤É #T35 ¿¼ÅÙ ++¤·¤ó¤Ë¤Á¤ª¤¿ #T35 ¿·Æü¥ª¥¿ ++¤·¤ó¤Í¡¼¤è¤ª¤Ö¤Í¡¼¤è #JN ¿¿¡¦¥Í¡¼¥è¡¦¥ª¥Ö¡¦¥Í¡¼¥è ++¤¸¡¼ #T35 £Ç ++¤¸¡¼¤¨¤à #T35 £Ç£Í ++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN Gºî¤È¥¸¥§¡¼¥ó ++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN Gºî¤È¥¸¥§¡¼¥ó¡ÊñÂΤÀ¤È²¿¤À¤«È½¤é¤Ê¤¤¤Î¤Ç£²É¤Ž¾Ž¯ŽÄ¡Ë ++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN ¡Ê¡¦¢Ï¡¦¡Ë¡¡¡Ê¡¦¢Ï¡¦¢é¢é ++¤¸¤£ #JN ¤¸¤£ ++¤¸¤¤¤³ #T35 ¼«°Ö¸Å ++¤¸¤§¤¤¤¦¤è¤¯ #T35 J±¦Íã ++¤¸¤§¤¤¤Ó¤¤¤Ó¤¤¤¨¤¹ #T35 JBBS ++¤¸¤§¤Î¤µ¤¤¤É¤«¤Ã¤¿¡¼ #JN ¥¸¥§¥Î¥µ¥¤¥É¥«¥Ã¥¿¡¼ ++¤¸¤§¤ó¤È¤ë¤â¤Ê #JN ¥¸¥§¥ó¥È¥ë¥â¥Ê ++¤¸¤§¤ó¤È¤ë¤â¤é¤é¡¼¤È¤®¤³ #JN ¥¸¥§¥ó¥È¥ë¥â¥é¥é¡¼¤È¥®¥³ ++¤¸¤¨¤¤¤«¤ó¤¨¤é¤¤ #CJ ¥¸¥¨¥¤¥«¥ó¥¨¥é¥¤ ++¤¸¤¨¤¤¤«¤ó¤¨¤é¤¤ #CJ ޼ŽÞ޴޲޶ŽÝŽ´Ž×޲ ++¤¸¤ª #KK ¥¸¥ª ++¤¸¤ª #KK ±ö ++¤¸¤ª #T35 ¥¸¥ª ++¤¸¤ª #T35 ±ö ++¤¸¤¯¤¦¤Þ¤ª¤¦ #JN »þ¶õËⲦ ++¤¸¤²¤ó #JN ¼¡¸µ ++¤¸¤´¤¦¤¸¤È¤¯ #JN (¡­¢Ï¡®)޼ŽÞŽºŽÞ޳޼ŽÞŽÄްޏ ++¤¸¤´¤¦¤¸¤È¤¯ #JN ¥¸¥´¥¦¥¸¥È¥¯ ++¤¸¤´¤¯¤Î¤´¤¦¤« #JN ÃϹö¤Î¶È²Ð ++¤¸¤µ¤¯¤¸¤¨¡¼¤ó #JN ¥¸¥µ¥¯¥¸¥¨¡¼¥ó ++¤¸¤µ¤¯¤¸¤¨¤ó #JN (Ž¥¢ÏŽ¥)޼ŽÞ޻ޏ޼ŽÞ޴ްŽÝ ++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¡Î¡Ê¡¦¢Ï¡¦¡Ë¡Ï ++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥¸¥µ¥¯¥¸¥¨¥ó ++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥¸¥µ¥¯¥¸±ß ++¤¸¤µ¤¯¤¸¤¨¤ó #JN ޵ޯްŽÁެŽÝ(*¡¦¢Ï¡¦*)޴ޝŽÁް!! ++¤¸¤µ¤¯¤¸¤¨¤ó #T30 QQQQ ++¤¸¤µ¤¯¤¸¤¨¤ó #T30 ¼«ºî¼«±é ++¤¸¤µ¤¯¤¸¤¨¤ó #T35 ¥¸¥µ¥¯¥¸¥¨¥ó ++¤¸¤µ¤¯¤¸¤¨¤ó #T35 ¼«ºî¼«±é ++¤¸¤µ¤¯¤¸¤»¤ó #JN ¡Ê¡¦À顦¡Ë ++¤¸¤µ¤¯¤¸¤»¤ó #JN ¥¸¥µ¥¯¥¸¥»¥ó ++¤¸¤µ¤¯¤¸¤»¤ó #JN ¼Þ»¸¼Þ¾Ý ++¤¸¤µ¤¯¤¸¤»¤ó #JN ޼ŽÞ޻ޏ޼ŽÞ޾ŽÝ ++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¡Ê-»á-¡Ë ++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¥¸¥µ¥Ä¥¸¥¨¥ó ++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¼Þ»Â¼Þ´Ý ++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ޼ŽÞŽ»ŽÂ޼ŽÞŽ´ŽÝ ++¤¸¤·¤ó¤»¤¤¤È #JN ÃÏ¿ÌÀ¸ÅÌ ++¤¸¤·¤ó¤À #CJ ¼«¿®¤À¡ª¡ª¡ª¡ª ++¤¸¤·¤ó¤À #CJ ÃϿ̤À¡ª¡ª¡ª¡ª ++¤¸¤»¤¤¤Ê¤É¤­¤«¤Ê¤¤¤Ã #CJ ¼«À©¤Ê¤ÉÍø¤«¤Ê¤¤¤Ã ++¤¸¤Á¤¹¤ì #T35 ¼«¼£¥¹¥ì ++¤¸¤Á¤Á¤å¤¦ #T35 ¼«¼£¿ß ++¤¸¤Á¤ó¤µ¤¤ #T35 ÃÏÄÃº× ++¤¸¤Ã¤­¤ç¤¦¤¹¤ì #T35 ¼Â¶·¥¹¥ì ++¤¸¤Ã¤Ñ¤Ò¤È¤«¤ê¤² #JN ¥¸¥Ã¥Ñ¥Ò¥È¥«¥ê¥² ++¤¸¤Ä¤ï¤ò¤«¤¯¤Ê¤È¤¢¤ì¤Û¤É #CJ ¼ÂÏäò½ñ¤¯¤Ê¤È¤¢¤ì¤Û¤É¡Ä ++¤¸¤É¤¦¤ª¤¦¤À¤½¤¦¤Á #T35 ¼«Æ°²¥ÂÇÁõÃÖ ++¤¸¤Ï¤¢¤É #T35 ¥¸¥Ï¡¼¥É ++¤¸¤Ð¤¯ #T35 ¼«Çú ++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN ¡Ê¡¦É´¡¦¡Ë ++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN ¥¸¥Ò¥ã¥¯¥¸¥¨¥ó ++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN ޼ŽÞŽËެޏ޼ŽÞŽ´ŽÝ ++¤¸¤×¤·¡¼ #T35 ¥¸¥×¥·¡¼ ++¤¸¤×¤·¤¤ #T35 ¥¸¥×¥·¡¼ ++¤¸¤Ø¤¤¤Ý¤ó #KK ¼«ÊĤݤó ++¤¸¤Ø¤¤¤Ý¤ó #T35 ¼«ÊĤݤó ++¤¸¤ß¤ó¤È¤¦¤â¤Ê¡¼ #JN ¼«Ì±ÅÞ¥â¥Ê¡Ý ++¤¸¤ß¤ó¤È¤¦¤â¤Ê¡¼ #JN ¼«Ì±ÅÞ¥â¥Ê¡Ý ++¤¸¤à #JN GM ++¤¸¤á¤ó¤ò¤ª¤è¤°¤®¤³ #JN ÃÏÌ̤ò±Ë¤°¥®¥³ ++¤¸¤ã¡¼¤Ë¡¼ #JN ¥¸¥ã¡¼¥Ë¡¼ ++¤¸¤ã¤¬¤â¤Ê¡¼ #JN ¤¸¤ã¤¬¥â¥Ê¡¼ ++¤¸¤ã¤·¤ó #T35 ¼Ù¿À ++¤¸¤ã¤Ã¤«¤ë #T35 ¥¸¥ã¥Ã¥«¥ë ++¤¸¤ã¤Ã¤­¡¼ #JN ¥¸¥ã¥Ã¥­¡¼ ++¤¸¤ã¤Ã¤­¡¼ #T35 ¥¸¥ã¥Ã¥­¡¼ ++¤¸¤ã¤Ã¤­¤¤ #T35 ¥¸¥ã¥Ã¥­¡¼ ++¤¸¤ã¤Ë¤¤ #T35 ¼Ø·» ++¤¸¤ã¤Ë¤¤ #T35 ¼Ù·» ++¤¸¤ã¤Ó #JN ޼ŽÞެŽËŽÞ ++¤¸¤ã¤Þ¤µ¤­ #T35 ¼ÙËâºê ++¤¸¤ã¤ß¤í¤¯¤¤ #JN ¥¸¥ã¥ß¥í¥¯¥¤ ++¤¸¤ã¤ë #T35 JA¥ÎL ++¤¸¤ã¤ó¤¬¤ê¤¢¤ó¤Ï¤à¤¹¤¿¡¼ #JN ¥¸¥ã¥ó¥¬¥ê¥¢¥ó¥Ï¥à¥¹¥¿¡¼ ++¤¸¤ã¤ó¤¯¤¯¤é¤Ã¤«¡¼¤¯¤é¤Ã¤·¤ã¡¼ #JN ¥¸¥ã¥ó¥¯¡¦¥¯¥é¥Ã¥«¡¼¡¦¥¯¥é¥Ã¥·¥ã¡¼ ++¤¸¤ã¤ó¤°¤ë¤Ý¤±¤Ã¤È¤Î¤Á¤Á¤Ï¤Õ¤¸¤­¤»¤­ #CJ ¥¸¥ã¥ó¥°¥ë¥Ý¥±¥Ã¥È¤ÎÉã¤Ï¥Õ¥¸¥­¥»¥­ ++¤¸¤å¤¦¤·¤ç¤¯ #JN ½»¿¦ ++¤¸¤å¤¦¤·¤ç¤¯ #T35 ½»¿¦ ++¤¸¤å¤¦¤Ê¤Ê¤¹¤¯¤ê¤×¤È #T35 17¥¹¥¯¥ê¥×¥È ++¤¸¤å¤¦¤Ë¤ó #T35 ½»¿Í ++¤¸¤å¤¦¤Ï¤Á¤¸¤Ë¤¸¤å¤¦¤¸¤â¤ó¤À¤¤ #T35 18»þ¡¦20»þÌäÂê ++¤¸¤å¤¦¤Õ¤¯¤¹¤ì #T35 ½ÅÊ£¥¹¥ì ++¤¸¤å¤¦¤Õ¤¯¤¹¤ì¤Ã¤É #T35 ½ÅÊ£¥¹¥ì¥É ++¤¸¤å¤¦¤Þ¤ó¤¨¤ó #JN ­ª¡¡ ++¤¸¤å¤¦¤Þ¤ó¤¨¤ó #JN ½½Ëü±ß ++¤¸¤å¤¦¤ß¤ó #T35 ½»Ì± ++¤¸¤å¤¦¤è¤ó #JN £±£´ ++¤¸¤å¤«¤¤ #CN ¼ù³¤ ++¤¸¤å¤«¤¤ #T35 ¼ù³¤ ++¤¸¤å¤Æ¡¼¤à #JN ¥¸¥å¥Æ¡¼¥à ++¤¸¤å¤ó¤«¤¤ #T30 ½ä²ó ++¤¸¤å¤ó¤­¤ó¤¤¤¿ #CN ½ã¶âÈÄ ++¤¸¤å¤ó¤­¤ó¤¤¤¿ #T35 ½ã¶âÈÄ ++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN ¥¸¥æ¥¦¥ò¥ß¥®¥Æ¥Ë¥¢¥¤¥Ê¥é¥Ò¥À¥ê¥Æ¥Ë ++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN ¼ÞÕ³¦Ð·ÞÃÆ±²Å×ËÀÞØÃÆ ++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN ޼ŽÞŽÕ޳ަŽÐŽ·ŽÞŽÃޯޱ޲ŽÅŽ×ŽËŽÀŽÞŽØŽÃŽÆ ++¤¸¤ç¤¤¤Ã¤Æ #KS JOY¤Ã¤Æ ++¤¸¤ç¤¦¤­¤ª¤¦ #JN ¾øµ¤²¦ ++¤¸¤ç¤¦¤Á¤å¤¦ #T30 ¾ïÃó ++¤¸¤ç¤¦¤È¤¦¤¸¤ç¤æ¤¦ #T35 ¾åÅù½÷Í¥ ++¤¸¤ç¤¦¤È¤Á¤å¤¦ #T35 ¾ùÅÏ¿ß ++¤¸¤ç¤¦¤ì¤ó #T35 ¾ïÏ¢ ++¤¸¤ç¤»¤Õ¤È¤¢¤Ö¤É¤¥¤ë #JN ¥¸¥ç¥»¥Õ¤È¥¢¥ô¥É¥¥¥ë ++¤¸¤ç¤Æ¤¤ #T35 ½÷Äë ++¤¸¤ç¤Æ¤¤¤¨¤¹¤«¤ê¡¼¤Ì #JN ½÷Ä륨¥¹¥«¥ê¡¼¥Ì ++¤¸¤ç¤Ë¡¼ #JN ¥¸¥ç¥Ë¡¼ ++¤¸¤ç¤ó #JN ¥¸¥ç¥ó ++¤¸¤ç¤ó #T35 ¥¸¥ç¥ó ++¤¸¤ç¤ó¤¸¤ç #JN ¥¸¥ç¥ó¥¸¥ç ++¤¸¤ç¤ó¤Õ¡¼¤ó #JN ¥¸¥ç¥ó¡¦¥Õ¡¼¥ó ++¤¸¤é¤¤ #T35 ÃÏÍë ++¤¸¤é¤¤¤²¤ó¤·¤ç¤ê¤·¤ã #JN ÃÏÍ븶½èÍý¼Ö ++¤¸¤é¤Í¡¼¤è #JN ¥¸¥é¥Í¡¼¥è ++¤¸¤ì¤¹ #T30 ¼«¥ì¥¹ ++¤¸¤ó #SUC ¿Ð ++¤¸¤ó¤¸¤ã¡¼ #JN ¥¸¥ó¥¸¥ã¡¼ ++¤¸¤ó¤Ë¤¯ #T35 ¿ÍÆù ++¤¸¤ó¤Ë¤¯ #T35 ¿ÍÆù»Ô¾ì ++¤¸¤ó¤Ë¤¯¤¤¤Á¤Ð #T35 ¿ÍÆù ++¤¸¤ó¤Ë¤¯¤¤¤Á¤Ð #T35 ¿ÍÆù»Ô¾ì ++¤¸¤ó¤ß¤ó¤°¤ó¤°¤ó¤«¤ó #JN ¿Í̱·³·³´± ++¤¸¤ó¤á¤ó¤´¤­¤Ö¤ê¤Ã¤Ä #JN ¿ÍÌÌ¥´¥­¥Ö¥ê¥Ã¥Ä ++¤¹¡¼¤Ñ¡¼¤´¤ê¤ª #JN ¥¹¡¼¥Ñ¡¼¥´¥ê¥ª ++¤¹¡¼¤Ñ¡¼¤â¤Ê¤®¤³¤¿¤¤¤»¤ó #JN ¥¹¡¼¥Ñ¡¼¥â¥Ê¥®¥³ÂçÀï ++¤¹¡¼¤Ñ¡¼¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥¹¡¼¥Ñ¡¼¥ê¥¢¥ë¿ß˼ ++¤¹¤¤¤»¤ó¤«¤ó¤¹¤ì #KK ¿åÀö´É¥¹¥ì ++¤¹¤¤¤»¤ó¤«¤ó¤¹¤ì #T35 ¿åÀö´É¥¹¥ì ++¤¹¤¤¤½¤¦ #T35 ¿åÁå ++¤¹¤¤¤¿¤£¤ç¤¥ #JN µÛ¤¤¤¿¤£¤ç¤¥¡¡ ++¤¹¤¤¤¿¤¤¤è¤¦ #JN µÛ¤¤¤¿¤£¤ç¤¥¡¡ ++¤¹¤¦¤Ñ¤¢¤Î¤¦¡«¤¡ #T35 ¥¹¡¼¥Ñ¡¼¥Î¥ô¥¡ ++¤¹¤¦¤Ñ¤¢¤Ï¤«¤¢ #T35 ¥¹¡¼¥Ñ¡¼¥Ï¥«¡¼ ++¤¹¤¦¤Ñ¤¢¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥¹¡¼¥Ñ¡¼¥ê¥¢¥ë¿ß˼ ++¤¹¤¦¤â¤¸¤â¤¸¤º¤Ä¤Ä¤¯¤Ã¤Æ¤Õ¤ä¤·¤¿¤¢¤¹¤­¡¼¤¢¡¼¤È #JN ¿ôʸ»ú¤º¤ÄÁý¤ä¤·¤Æºî¤Ã¤¿£Á£Á ++¤¹¤¨¤Ã¤³ #JN Ëö¤Ã»Ò ++¤¹¤¨¤Ã¤³ #T35 Ëö¤Ã»Ò ++¤¹¤« #T35 ¿Ü²Ã ++¤¹¤«¤¤¤é¡¼¤¯¤¼¤ó¤Ö #CJ ¥¹¥«¥¤¥é¡¼¥¯Á´Éô ++¤¹¤«¤é¤¢¤Ï #T35 ¥¹¥«¥é¡¼ÇÈ ++¤¹¤® #SUC ¿ù ++¤¹¤¯¤¦¤§¤¢ #T35 ¢£ ++¤¹¤¯¤¦¤§¤¢¤Û¤ó¤·¤ã #JN ¥¹¥¯¥¦¥§¥¢ËÜ¼Ò ++¤¹¤¯¤½¤×¤È #T35 ¥¹¥¯¥½¥×¥È ++¤¹¤¯¤Ä #T35 ¤¹¤¯¤Ä ++¤¹¤¯¤ê¤×¤È #T35 ¥¹¥¯¥ê¥×¥È ++¤¹¤´¤Þ¤¸¤¤ #CJ ¤¹¤´¤Þ¤¸¤¤ ++¤¹¤¶¤±¤ë¤Ê #CJ ¤¹¤¶¤±¤ë¤Ê¡ª ++¤¹¤¹¤º #T35 ¥¹¥¹¥º ++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ¡Ê¡¦¢Ï¡¦¡ËÎëÌÚ½¡ÃËŽÃŽÞŽ¼ŽÀ ++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ÎëÌÚ½¡Ã˥ǥ·¥¿ ++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ÎëÌÚ½¡ÃËŽÃŽÞŽ¼ŽÀ ++¤¹¤¿¡¼¤Þ¤ó #JN ¥¹¥¿¡¼¥Þ¥ó ++¤¹¤¿¤¸¤ª¤Ë¤Á¤ã¤ó¤Í¤ë¤Ï¤¸¤Þ¤ë¤è #JN ¥¹¥¿¥¸¥ª2ch»Ï¤Þ¤ë¤è¢ö ++¤¹¤Á¤º #JN ÁÇÃÏ¿Þ ++¤¹¤Á¤º #T35 ÁÇÃÏ¿Þ ++¤¹¤Ã¤´¤¯¤«¤ï¤¤¤¤¤â¤Ê¡¼ #JN ¡ù¤¹¤Ã¤´¤¯¡ù¤«¤ï¤¤¤¤(^o^)¥â¥Ê¡¼ ++¤¹¤Ã¤É¤ì #JN ¡Ê¡¦¢Ï¡¦¡Ë޽ޝŽÄŽÞŽÚ! ++¤¹¤Ã¤É¤ì #JN ¥¹¥Ã¥É¥ì ++¤¹¤Ã¤É¤ì #JN ޽ޝŽÄŽÞŽÚ ++¤¹¤Ã¤É¤ì #T35 ¥¹¥Ã¥É¥ì ++¤¹¤Æ¤­¤¿¤¤¤à #T35 ¥¹¥Æ¥­¥¿¥¤¥à ++¤¹¤Æ¤Ï¤ó #T35 ¼Î¤Æ¥Ï¥ó ++¤¹¤È¡¼¤«¤á¤³ #T35 ¥¹¥È¡¼¥«¥á¥³ ++¤¹¤È¤¦¤«¤á¤³ #T35 ¥¹¥È¡¼¥«¥á¥³ ++¤¹¤È¤ê¤Ã¤× #T35 Áǥȥê¥Ã¥× ++¤¹¤Ê¤¤¤× #T30 ¥¹¥Ê¥¤¥× ++¤¹¤Ê¤«¤±¤Ð¤Ð¤¢ #JN º½¤«¤±ÇÌ ++¤¹¤Í¤«¤¸¤ê #T35 ¥¹¥Í¤«¤¸¤ê ++¤¹¤Î¡¼ #T35 £Ó£Î£Ï£× ++¤¹¤Î¤¦ #T35 SNOW ++¤¹¤Ñ #KS ¥¹¥Ñ ++¤¹¤Ñ¡¼¤¯¤â¤Ê¡¼ #JN ¥¹¥Ñ¡¼¥¯¥â¥Ê¡¼ ++¤¹¤Ñ¤·¡¼¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡Ë¥¹¥Ñ¥·¡¼¥Ü!!¡é ++¤¹¤Ñ¤·¡¼¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡Ë޽ŽÊŽß޼ްŽÎŽÞ!!¡é ++¤¹¤Ñ¤·¡¼¤Ü #T35 ¥¹¥Ñ¥·¡¼¥Ü ++¤¹¤Ñ¤·¡¼¤Ü #T35 ޽ŽÊŽß޼ްŽÎŽÞ ++¤¹¤Ñ¤·¡¼¤Ü¤³¤¦¤« #T35 ¥¹¥Ñ¥·¡¼¥Ü¸ú²Ì ++¤¹¤Ñ¤·¤¤¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡Ë޽ŽÊŽß޼ްŽÎŽÞ!!¡é ++¤¹¤Ñ¤·¤¤¤Ü #T35 ޽ŽÊŽß޼ްŽÎŽÞ ++¤¹¤Ñ¤·¤¤¤Ü¤³¤¦¤« #T35 ¥¹¥Ñ¥·¡¼¥Ü¸ú²Ì ++¤¹¤Ñ¤Á¤å¤¦ #T35 ¥¹¥Ñ¿ß ++¤¹¤Ñ¤à #T30 ¥¹¥Ñ¥à ++¤¹¤Ñ¤à #T35 spam ++¤¹¤Ñ¤à #T35 ¥¹¥Ñ¥à ++¤¹¤Ñ¤ó #JN SPAN ++¤¹¤Ô¤Þ¤¹ #T35 ¥¹¥Ô¥Þ¥¹ ++¤¹¤Õ¤£¤ó¤¯¤¹ #JN ¥¹¥Õ¥£¥ó¥¯¥¹¡¡ ++¤¹¤Ö¤¿¤ó #T35 ¥¹¥Ö¥¿¥ó ++¤¹¤Ú¤é¤ó¤«¡¼ #KK ¥¹¥Ú¥é¥ó¥«¡¼ ++¤¹¤Ú¤é¤ó¤«¡¼ #T35 ¥¹¥Ú¥é¥ó¥«¡¼ ++¤¹¤Ú¤é¤ó¤«¤¢ #T35 ¥¹¥Ú¥é¥ó¥«¡¼ ++¤¹¤Þ #JN ¿ÜËá ++¤¹¤Þ #T35 ¿ÜËá ++¤¹¤Þ¤½ #CJ ¥¹¥Þ¥½ ++¤¹¤à¤é¤Ã¤È #T35 SMART ++¤¹¤à¤é¤Ã¤È #T35 £Ó£Í£Ò£Á£Ô ++¤¹¤è #JN ¥¹¥è ++¤¹¤é¤¤¤à #JN ¥¹¥é¥¤¥à ++¤¹¤ë¤Ã¤È¤Á¤ã¤ó #JN ¥¹¥ë¥Ã¥È¤Á¤ã¤ó ++¤¹¤ì #T35 ¥¹¥ì ++¤¹¤ì¤´¤Ð¤¯ #T30 ¥¹¥ì¸íÇú ++¤¹¤ì¤µ¤¯¤¸¤ç #T30 ¥¹¥ìºï½ü ++¤¹¤ì¤¹¤È #T35 ¥¹¥ì¥¹¥È ++¤¹¤ì¤¿¤¤ #T35 ¥¹¥ì¥¿¥¤ ++¤¹¤ì¤Á¤¬¤¤ #T35 ¥¹¥ì°ã¤¤ ++¤¹¤ì¤Ã¤É #T35 ¤¹¤ì¤Ã¤É ++¤¹¤ì¤Ã¤É #T35 ¥¹¥ì¥Ã¥É ++¤¹¤ì¤Ã¤É¤¢¤Ã¤·¤å¤¯ #T30 ¥¹¥ì¥Ã¥É°µ½Ì ++¤¹¤ì¤Ã¤É¤¢¤Ã¤·¤å¤¯ #T35 ¥¹¥ì¥Ã¥É°µ½Ì ++¤¹¤ì¤Ã¤É¤¤¤Á¤é¤ó #T35 ¥¹¥ì¥Ã¥É°ìÍ÷ ++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼ #T35 ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼ ++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼¤¹¤Æ¡¼¤·¤ç¤ó #JN ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼¥¹¥Æ¡¼¥·¥ç¥ó ++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¤¢ #T35 ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼ ++¤¹¤ì¤Ã¤É¤Ò¤ç¤¦¤«¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN ¥¹¥ì¥Ã¥Éɾ²ÁǧÄê°Ñ°÷²ñ ++¤¹¤ì¤Ã¤É¤Õ¤í¡¼¤È¤Û¤¦¤·¤­ #T35 ¥¹¥ì¥Ã¥É¥Õ¥í¡¼¥ÈÊý¼° ++¤¹¤ì¤Ã¤É¤Õ¤í¤¦¤È¤Û¤¦¤·¤­ #T35 ¥¹¥ì¥Ã¥É¥Õ¥í¡¼¥ÈÊý¼° ++¤¹¤ì¤Ã¤É¤ì¤¤¤× #T30 ¥¹¥ì¥Ã¥É¥ì¥¤¥× ++¤¹¤ì¤Ë¤ó¤Æ¤¤¤·¤ç¤¦ #JN ¥¹¥ìǧÄê¾Ú ++¤¹¤ì¤Ò¤ç¤¦¤«¤¸¤ç¤¦ #JN ¥¹¥ìɾ²Á¾î ++¤¹¤ì¤ò¤è¤´ #S5 ¥¹¥ì¤ò±ø ++¤¹¤ì¤ò¤è¤´¤¹ #CJ ¥¹¥ì¤ò±ø¤¹ ++¤¹¤í¤Ã¤È¤ª¤Ü¤¨¤¿¤Æ¤Ç #CJ ¥¹¥í¥Ã¥È³Ð¤¨¤¿¤Æ¤Ç ++¤¹¤ó¤¹¤ó¤¹¤¦¤ó #CJ (¡¦¢Ï¡¦)޽ŽÝ޽ŽÝ޽ްŽÝ¢ö ++¤¹¤ó¤¹¤ó¤¹¤¦¤ó #CJ ¥¹¥ó¥¹¥ó¥¹¡¼¥ó¢ö ++¤¹¤ó¤Þ¤½ #CJ ¤¹¤ó¤Þ¤½ ++¤º¤´¤ª¤Þ¤° #JN ¥º¡¦¥´¥ª¥Þ¡¦¥° ++¤º¤µ¤®¤³ #JN ¥º¥¶¥®¥³ ++¤º¤¶¤Ê¤Þ¤Ï¤²¤µ¤Þ #JN ¡Ê¥º¥¶¡Ë¥Ê¥Þ¥Ï¥²ÍÍ ++¤º¤é¤é¡¼ #JN ¥º¥é¥é¡¼ ++¤º¤ê¤»¤½ #T35 ¥º¥ê¥»¥ó ++¤º¤ë¤¤¤ª¤ó¤Ê #KK ¤º¤ë¤¤½÷ ++¤º¤ë¤¤¤ª¤ó¤Ê #T35 ¤º¤ë¤¤½÷ ++¤º¤ì #T35 ¥º¥ì ++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Æ¤ª¤­¤Þ¤·¤¿ #JN ¥º¥ì¤¬¾®¤µ¤¤¤Î¤Ç½¤Àµ¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£ ++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Þ¤·¤¿ #JN ¥º¥ì¤¬¾¯¤Ê¤¤¤Î¤Ç½¤Àµ¤·¤Þ¤·¤¿ ++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Þ¤¹ #JN ¥º¥ì¤¬¾¯¤Ê¤¤¤Î¤Ç½¤Àµ¤·¤Þ¤¹ ++¤»¡¼¤é¤à¤ª¤¦¤³¤¯ #JN ¤»¡¼¤é¤à¤ª¤¦¤³¤¯ ++¤»¤¤¤«¤¤ #T35 À­²ô ++¤»¤¤¤®¤³ #JN ¥»¥¤¥®¥³ ++¤»¤¤¤®¤³ #JN ¥»¥¤¥®¥³ ++¤»¤¤¤´ #JNM À¬¸ã ++¤»¤¤¤´¤¦ #JN À­¹ë ++¤»¤¤¤´¤¦ #T35 À­¹ë ++¤»¤¤¤·¤å¤ó #JN ÀÄ½Õ ++¤»¤¤¤·¤ó¤Æ¤­¤Ö¤é¤¯¤é #T35 Àº¿Àۥ֥饝¥é ++¤»¤¤¤»¤ó¤·¤ç¤¯¤Ò¤ó¤â¤é¤Þ¤µ #JN À¸Á¯¿©ÉÊ¥â¥é¥Þ¥µ ++¤»¤¤¤½¤¦¤Á¤å¤¦ #T35 À¶ÁÝ¿ß ++¤»¤¤¤Á #T35 À»ÃÏ ++¤»¤¤¤È #JN À¸ÅÌ ++¤»¤¤¤È #JN À¸ÅÌ¡© ++¤»¤¤¤È2 #JN À¸ÅÌ£Ö£å£ò£² ++¤»¤¤¤È3 #JN À¸ÅÌ£Ö£å£ò£³ ++¤»¤¤¤È¤¤¤é¤Í¡¼¤è #JN À¸ÅÌ¥¤¥é¥Í¡¼¥è ++¤»¤¤¤È¤¦¤· #JN À¸Å̵í ++¤»¤¤¤È¤«¤ª¤À¤± #JN (¡¨¡­§¥¡®)¡¿ÀèÀ¸¡ª¡¦¡¦¡¦¡¦ ++¤»¤¤¤È¤«¤ª¤À¤± #JN À¸ÅÌ´é¤À¤± ++¤»¤¤¤È¤µ¤¤¤·¤ç¤¦ #JN À¸Å̺Ǿ® ++¤»¤¤¤È¤¸¤ª¤ó¤° #JN À¸ÅÌ¥¸¥ª¥ó¥° ++¤»¤¤¤È¤¸¤å¤¦¤í¤¯¤¯¤ó #JN À¸ÅÌ£±£¶·¯ ++¤»¤¤¤È¤¹¤Õ¤£¤ó¤¯¤¹ #JN À¸ÅÌ¥¹¥Õ¥£¥ó¥¯¥¹ ++¤»¤¤¤È¤º¤´¤ª¤Þ¤° #JN À¸ÅÌ¥º¡¦¥´¥ª¥Þ¡¦¥° ++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ë ++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë¤Ð¡¼¤¸¤ç¤ó2 #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ëver£² ++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë¤Ð¡¼¤¸¤ç¤ó3 #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ëver£³ ++¤»¤¤¤È¤Î¤Î #JN À¸Å̤ΤΠ++¤»¤¤¤È¤Ï¤é¤Þ¤­¤Ð¡¼¤¸¤ç¤ó1 #JN À¸ÅÌÊ¢´¬¤­£Ö£å£ò£± ++¤»¤¤¤È¤Ï¤é¤Þ¤­¤Ð¡¼¤¸¤ç¤ó2 #JN À¸ÅÌÊ¢´¬¤­£Ö£å£ò£² ++¤»¤¤¤È¤Õ¡¼¤ó #JN À¸Å̤ա¼¤ó ++¤»¤¤¤È¤Õ¤µ¤Ö¤Ä #JN À¸Å̤դµ¤Ö¤Ä ++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä #JN À¸ÅÌ¤Ö¤Ä¤Ö¤Ä ++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤¸¤å¤¦¤í¤¯¤¯¤ó #JN À¸Å̤֤Ĥ֤ģ±£¶·¯ ++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤É¤¦¤è #JN À¸Å̤֤Ĥ֤Ĥɤ¦¤è ++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤É¤¦¤è¤Ð¡¼¤¸¤ç¤ó2 #JN À¸Å̤֤Ĥ֤Ĥɤ¦¤è£Ö£å£ò£² ++¤»¤¤¤È¤à¤Ã¤¯ #JN À¸ÅÌ¥à¥Ã¥¯ ++¤»¤¤¤È¤á¤¿¤é¡¼¤Ð¡¼¤¸¤ç¤ó1 #JN À¸Ḁ̊᥿¥é¡¼ver£± ++¤»¤¤¤È¤á¤¿¤é¡¼¤Ð¡¼¤¸¤ç¤ó2 #JN À¸Ḁ̊᥿¥é¡¼ver£² ++¤»¤¤¤È¤é¤Ç¤£¤ó #JN À¸ÅÌ¥é¥Ç¥£¥ó ++¤»¤¤¤È¤ì¤«¤à¤Á¤ã¤Ã¤«¤ß¤½¤Á¤ó¤Ï¤¦¤¹ #JN À¸Ḁ̊졦¤«¤à¤Á¤ã¤Ã¤«¤ß¤½ÄÁ¥Ï¥¦¥¹ ++¤»¤¤¤È¤ó¡¼ #JN À¸Å̤ó¡Á¡ª¡© ++¤»¤¤¤ê¤å¤¦ #T35 À¶Âí ++¤»¤«¤¤¤»¤Õ¤¯¤ò¤¿¤¯¤é¤à¤â¤é¤é¡¼ #JN À¤³¦¡ÖÀ©¡×Éþ¤ò´ë¤à¥â¥é¥é¡¼ ++¤»¤¬¤·¤ó¤¸¤ã #T35 ¥»¥¬¿®¼Ô ++¤»¤¬¤Ó¡¼ #T35 ¥»¥¬B ++¤»¤¬¤ï #T35 ¥»Èé ++¤»¤­¤¹¤¤ #KK ÀÑ¿å ++¤»¤­¤¹¤¤ #T35 ÀÑ¿å ++¤»¤­¤º¤¤¤Ï¤ó¤·¤ã¤ì¤¹ #T30 ÀÔ¿ñÈ¿¼Í¥ì¥¹ ++¤»¤­¤º¤¤¤Ï¤ó¤·¤ã¤ì¤¹ #T35 ÀÔ¿ñÈ¿¼Í¥ì¥¹ ++¤»¤¯¡¼¤¹ #CN ¥»¥¯¡¼¥¹ ++¤»¤¯¡¼¤¹ #T30 ¥»¥¯¡¼¥¹ ++¤»¤¯¡¼¤¹ #T35 ¥»¥¯¡¼¥¹ ++¤»¤ß¤µ¤ó¤³¤ª¤¹ #T35 ¥»¥ß¤µ¤ó¥³¡¼¥¹ ++¤»¤ë¤²¤¨¤à #T35 ¥»¥ë¥²¡¼¥à ++¤»¤ó #T35 1000 ++¤»¤ó¤¤¤¯¤¿¤Ó¤Ë¤¤¤¿¤ò¤Æ¤ó¤Æ¤ó¤È¤¹¤ë¤¹¤ì¤Ã¤É #T35 1000¹Ô¤¯¤¿¤Ó¤ËÈĤòž¡¹¤È¤¹¤ë¥¹¥ì¥Ã¥É ++¤»¤ó¤¤¤Á #T35 1001 ++¤»¤ó¤³¤¦¤·¤ã #JN Àè¸ø¼Ô ++¤»¤ó¤³¤¦¤·¤ã #JN Àè¹Ô¼Ô ++¤»¤ó¤³¤¦¤·¤ã #T35 Àè¹Ô¼Ô ++¤»¤ó¤·¤å¤¦¤¬¤Ã¤³¤¦ #T35 À콤³Ø¹» ++¤»¤ó¤¹¤¤¤«¤ó¤¹¤ì #T35 Àø¿å´Ï¥¹¥ì ++¤»¤ó¤»¤¤ #JN ÀèÀ¸ ++¤»¤ó¤»¤¤¤¿¤¹¤±¤Æ #JN ÀèÀ¸¡ª½õ¤±¤Æ¡ª ++¤»¤ó¤»¤¤¤Õ¤µ¤Ö¤Ä #JN ÀèÀ¸¤Õ¤µ¤Ö¤Ä ++¤»¤ó¤»¤¤¤Ö¤Ä¤Ö¤Ä #JN ÀèÀ¸¤Ö¤Ä¤Ö¤Ä ++¤»¤ó¤½¤¦ #T35 1000Áè ++¤»¤ó¤Î¤¦¤·¤å¤¦¤«¤¤ #T35 ÀöǾ½¸²ñ ++¤»¤ó¤â¤ó¤¤¤¿ #T35 ÀìÌçÈÄ ++¤¼¤Ã¤È¤­ #JN £Ú´ú ++¤¼¤Ã¤È¤·¤­ #T35 £Ú¼° ++¤¼¤Ã¤È¤¿¤± #T35 £ÚÉð ++¤¼¤Ã¤È¤Á¤ã¤ó¤Í¤ë¤¦¤ó¤¨¤¤¤¸¤ó #JN Zch±¿±Ä¿Ø ++¤¼¤Õ¤¡¡¼¤¢¤ó¤Á¤ã¤ó #JN ¥¼¥Õ¥¡¡¼¤¢¤ó¤Á¤ã¤ó ++¤¼¤í #T35 0 ++¤¼¤í¤ï¤ó #T35 Îí°í ++¤¼¤ó¤Ä¤¦ #T30 Á´ÄÌ ++¤¼¤ó¤Ä¤¦ #T35 Á´ÄÌ ++¤¼¤ó¤é #T35 Á´Íç ++¤¼¤ó¤é¤¿¤¤ #T35 Á´ÍçÂâ ++¤½¡¼¤¹ #T35 ¥½¡¼¥¹ ++¤½¡¼¤¹¤Ï #CJ ¥½¡¼¥¹¤Ï¡© ++¤½¡¼¤Ç¤â¤Ê¤¤¤è #JN ¤½¡¼¤Ç¤â¤Ê¤¤¤è ++¤½¡¼¤Ê¤Î #JN ¥½¡¼¥Ê¥Î ++¤½¤¤¤¿ #CN ¤½ÈÄ ++¤½¤¤¤¿ #T35 ¤½ÈÄ ++¤½¤¦¤« #T35 Áز½ ++¤½¤¦¤¯¤Ä #T35 Áã·¢ ++¤½¤¦¤±¤¤ #KK Áá·Ä ++¤½¤¦¤±¤¤ #T35 Áá·Ä ++¤½¤¦¤±¤¤¤¸¤ç¤¦¤Á #T35 Áá·Ä¾åÃÒ ++¤½¤¦¤³ #T35 ÁÒ¸Ë ++¤½¤¦¤³¤¤¤­ #CJ ÁÒ¸ËÀ¤­ ++¤½¤¦¤³¤¤¤­ #T35 ÁҸ˹Ԥ­ ++¤½¤¦¤³¤¦ #JN Á⹿ ++¤½¤¦¤³¤Ð¤ó #T35 ÁÒ¸ËÈÖ ++¤½¤¦¤´¤¦¤¹¤ì¤Ã¤É #T35 Áí¹ç¥¹¥ì¥Ã¥É ++¤½¤¦¤µ¤¤ #T35 ÁíºÛ ++¤½¤¦¤·¤ç¤¯ #T30 Áõ¾þ ++¤½¤¦¤¸¤ó #JN Áâ¿Î ++¤½¤¦¤¹ #T35 ¥½¡¼¥¹ ++¤½¤¦¤Á¤ç¤¦¤ì¤¹ #T30 ÁáÄ«¥ì¥¹ ++¤½¤¦¤Ç¤â¤Ê¤¤¤è #CJ ¤½¤¦¤Ç¤â¤Ê¤¤¤è ++¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¤½¤¦¤Ç¤â¤Ê¤¤¤è ++¤½¤¦¤È¤¦ #T35 ÁíÅý ++¤½¤¦¤Ï¤¤¤«¤ó¤¶¤­ #CJ ¤½¤¦¤Ï¤¤¿Àºê ++¤½¤¦¤ê¤½¤¦¤ê¤ã¤¯ #T35 ÁÏÍøÁÏά ++¤½¤«¤¤ #T30 Á³« ++¤½¤¯¤· #T35 ¨»à ++¤½¤¯¤·¤¹¤ì #T35 ¨»à¥¹¥ì ++¤½¤¯¤·¤Ï¤ó¤Æ¤¤ #T35 ¨»àȽÄê ++¤½¤¯¤Û¤¦ #CJ ®Êó¡ª ++¤½¤¯¤ì¤¹ #T30 ¨¥ì¥¹ ++¤½¤¯¤ì¤¹ #T35 ¨¥ì¥¹ ++¤½¤Ë¡¼¤¿¤¤¤Þ¡¼ #T35 ¥½¥Ë¡¼¥¿¥¤¥Þ¡¼ ++¤½¤Ë¤¤¤¿¤¤¤Þ¤¢ #T35 ¥½¥Ë¡¼¥¿¥¤¥Þ¡¼ ++¤½¤Ì¤­¤å¤¦¤Ó¤ó #JN ¥¾¥ÌµÞÊØ ++¤½¤Î #JN ¤½¤Î ++¤½¤Î¤³ #JN ±ñ»Ò ++¤½¤Î¤Ä¤¯¤«¤¤¤·¤ã #T35 ¡Ö¤½¡×¤Î¤Ä¤¯²ñ¼Ò ++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN ¥½¥Ð¥Ð¥Ð-¥ó!!! ++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN Ž¿ŽÊŽÞŽÊŽÞŽÊŽÞ-ŽÝ!!! ++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN Ž¿ŽÊŽÞŽÊŽÞŽÊŽÞްŽÝ!!!! ++¤½¤Ó¤¨¤È #JN ¥½¥Ó¥¨¥È ++¤½¤Õ¤Þ¤Ã¤× #JN ¥½¥Õ¥Þ¥Ã¥×¡¡ ++¤½¤Ü¤¯¤Ê¤®¤â¡¼¤ó #CJ ÁÇËѤʤ®¤â¡¼¤ó ++¤½¤Þ¤ê¤ä¤¬¤¤¤¹¤é¤à¤Ë¤½¤Þ¤ê¤ä #CJ ¥½¥Þ¥ê¥ä¤¬¥¤¥¹¥é¥à¤Ë¤½¤Þ¤ê¤ä ++¤½¤é¤¤¤à #JN ¥½¥é¥¤¥à ++¤½¤é¤Ê¤¤¤ï #JN ¥½¥é¥Ê¥¤¥ï ++¤½¤é¤Í¡¼¤Ç¤è #JN ¥½¥é¥Í¡¼¥Ç¥è ++¤½¤é¤Í¡¼¤è #JN ¥½¥é¥Í¡¼¥è ++¤½¤é¤Í¡¼¤è¤«¤ó¤¤¤Ð¤ó #JN ¥½¥é¥Í¡¼¥è´Ê°×ÈÇ ++¤½¤é¤ß¤¿¤³¤È¤« #JN ¤½¤é¸«¤¿¤³¤È¤« ++¤½¤ê¤Ã¤É¤â¤Ê¡¼¤¯ #JN ¥½¥ê¥Ã¥É¡¦¥â¥Ê¡¼¥¯ ++¤½¤ì¤¬¤Ê¤Ë¤« #JN ¥½¥ì¥¬¥Ê¡á¥Ë¥« ++¤½¤ó #JNS ¹ ++¤½¤ó¤´¤¯¤¦ #T35 ¹¸ç¶õ ++¤½¤ó¤·¤Î¤Ï¤¿¤¸¤ë¤· #JN ¹»Ò¤Î´ú°õ ++¤½¤ó¤Ê¤Î¤·¤Ã¤Á¤ç¤ì¤® #JN ¤½¤ó¤Ê¤ÎÃΤåÁ¥ç¥ì¥® ++¤½¤ó¤Ê¤Ð¤Ê¤Ê¤®¤³ #JN ¤½¤ó¤Ê¥Ð¥Ê¥Ê¥®¥³ ++¤½¤ó¤Þ¤µ¤è¤· #JN ¹ÀµµÁ ++¤¾¤¤¤É¤¤¤¿ #CN ¥¾¥¤¥ÉÈÄ ++¤¾¤¤¤É¤¤¤¿ #T35 ¥¾¥¤¥ÉÈÄ ++¤¾¤¹ #CJ ¥¾¥¹ ++¤¾¤Ë¤Ã¤¯ #JN ¤¾¤Ë¤Ã¤¯ ++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯ #JN ¤¾¤Ë¤Ã¤¯ÃË¼ß ++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯¤¢¤ë¤Õ¤¡ #JN ¤¾¤Ë¤Ã¤¯Ã˼ߦÁ ++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯¤¦¡«¤£¤¯¤È¤ê¡¼ #JN ¤¾¤Ë¤Ã¤¯Ã˼ßV ++¤¾¤Ì #JN ¤¾¤Ì ++¤¾¤Ì #JN ¥¾¥Ì ++¤¾¤Ì #T35 ¤¾¤Ì ++¤¾¤Ì¡¼¤Ô¡¼ #JN ¥¾¥Ì¡¼¥Ô¡¼ ++¤¾¤Ì¤¶¤á¤¤¤¿¤ó¤Æ¤¤ #JN ¤¾¤Ì¡¦¥¶¡¦ÌÂõÄå ++¤¾¤Ì¤·¤ã¤Á¤ç¤¦ #JN ¤¾¤Ì¼ÒĹ ++¤¾¤Ì¤Ã¤Æ¤ë #CJ ¤¾¤Ì¤Ã¤Æ¤ë ++¤¾¤Ì¤Ö¤· #T35 ¤¾¤ÌÉú ++¤¾¤Ì¤Þ¤·¤ó #JN ¤¾¤Ì¥Þ¥·¥ó ++¤¾¤Í #T35 ¤¾¤Í ++¤¾¤à #JN ¥¾¥à ++¤¾¤í¤Ð¤ó #T35 ¥¾¥í¥Ð¥ó ++¤¿ #K5 ¿æ ++¤¿ #KJ ¿æ ++¤¿¡¼¤ó #JN ŽÀްŽÝ ++¤¿¤¤ #JN Âä ++¤¿¤¤ #T35 Âä ++¤¿¤¤¡¼¤Û #CJ ¥¿¥¤¨¬¨¬¨¬¨¬||¦µ|(|¡­|§¥|`|)|¦µ||¨¬¨¬¨¬¨¬¥Û ++¤¿¤¤¡¼¤Û #CJ ¥¿¥¤¨¬¨¬¨¬¨¬¡Ã¡Ã¦µ¡Ã¡Ê¡Ã¡¬¡Ã¢Ï¡Ã¡¬¡Ã¡Ë¡Ã¦µ¡Ã¡Ã¨¬¨¬¨¬¨¬¥Û¡ª¡ª¡ª ++¤¿¤¤¡¼¤Û #CJ ŽÀ޲¨¬¨¬¨¬¨¬||¦µ|(|Žß|¢Ï|Žß|)|¦µ||¨¬¨¬¨¬¨¬ŽÎ!!! ++¤¿¤¤¤­ #T35 Â絤 ++¤¿¤¤¤·¤«¤ó #T35 Âç»È´Û ++¤¿¤¤¤·¤ç¤¦¤·¤ç¤¦¤ï¤®¤³ #JN ÂçÀµ¾¼Ïµ¼¸Å ++¤¿¤¤¤Á¤ç¤¦ #CJ ÂâĹ¡ª ++¤¿¤¤¤È¤ë¤Ð¤Ê¡¼ #T35 ¥¿¥¤¥È¥ë¥Ð¥Ê¡¼ ++¤¿¤¤¤à #T35 TIME ++¤¿¤¤¤à¤Ñ¤é¤É¤Ã¤¯¤¹ #T35 ¥¿¥¤¥à¥Ñ¥é¥É¥Ã¥¯¥¹ ++¤¿¤¤¤ï¤ó #T35 ¥¿¥¤¸¤ ++¤¿¤«¤¬¤Ý¤ó¤µ¤ì¤É¤Ý¤ó #CJ ¤¿¤«¤¬¥Ý¥ó¤µ¤ì¤É¥Ý¥ó ++¤¿¤«¤µ¤­¤ß¤ï #JN ¹âºêÈþÏ ++¤¿¤«¤µ¤ó #JNM ¥¿¥«¤µ¤ó ++¤¿¤«¤µ¤ó #T35 ¥¿¥«¤µ¤ó ++¤¿¤«¤·¤¯¤ó¤¸¤±¤ó #KK ¤¿¤«¤··¯»ö·ï ++¤¿¤«¤·¤¯¤ó¤¸¤±¤ó #T35 ¤¿¤«¤··¯»ö·ï ++¤¿¤«¤¿¤·¤ã¤Á¤ç¤¦ #JNS ¤¿¤«¤¿¼ÒĹ ++¤¿¤«¤¿¤·¤ã¤Á¤ç¤¦ #JNSUC ¤¿¤«¤¿¼ÒĹ ++¤¿¤«¤Ï¤·¤è¤· #T35 ¹â¶¶Í³ ++¤¿¤«¤é¤®¤³ #JN ¥¿¥«¥é¥®¥³ ++¤¿¤¯¤¢¤ó¤â¤Ê¡¼ #JN ¤¿¤¯¤¢¤ó¥â¥Ê¡¼ ++¤¿¤¯¤­¤å¤¦ #T35 Âðµå ++¤¿¤°¤Á¤Ë¤Ã¤­ #T35 ÅĸýÆüµ­ ++¤¿¤±¤·¤¯¤ó #JNM ¤¿¤±¤··¯ ++¤¿¤±¤À¤­¤¾¤Ì #JN ÉðÅĵ³¤¾¤Ì ++¤¿¤±¤À¤­¤Ð #JN ÉðÅĵ³ÇÏ ++¤¿¤±¤À¤­¤Ð¤°¤ó¤À¤ó #T35 ÉðÅĵ³ÇÏ·³ÃÄ ++¤¿¤±¤Õ¤¸¤Î¤·¡¼¤¨¤à #JN ÉðÉÙ»Î¤Î£Ã£Í ++¤¿¤³¤µ¤Ð #T35 tako»ª ++¤¿¤³¤Í¤³ #JN ¥¿¥³¤Í¤³ ++¤¿¤³¤Í¤³ #JN ¥¿¥³¤Í¤³ ++¤¿¤·¤í #JNS ÅÄÂå ++¤¿¤·¤í #T35 ÅÄÂå ++¤¿¤·¤í¤Ã¤¯ #KK ¥¿¥·¥í¥Ã¥¯ ++¤¿¤·¤í¤Û¤¦ #T35 ÅÄÂåˤ ++¤¿¤·¤í¤Þ¤µ¤· #JN ÅÄÂå¤Þ¤µ¤· ++¤¿¤·¤í¤Þ¤Ä¤ê #T35 ÅÄÂåº×¤ê ++¤¿¤¸¤å¤¦ #T30 ¿½Å ++¤¿¤¸¤å¤¦¤È¤¦¤³¤¦ #T30 ¿½ÅÅê¹Æ ++¤¿¤¹¤£¤í¤¹ #T35 ¥¿¥¹¥£¥í¥¹ ++¤¿¤½¤¬¤ì #KK ïÈà ++¤¿¤½¤¬¤ì #T35 ïÈà ++¤¿¤½¤½¤­¡¼¤½ #CJ ¥¿¥½¥½¥­¡¼¥½ ++¤¿¤½¤½¤­¡¼¤½ #CJ ŽÀŽ¿Ž¿Ž·Ž°Ž¿ ++¤¿¤½¤½¤­¡¼¤½ #JN (Žß¢ÏŽß)ŽÀŽ¿Ž¿Ž·Ž°Ž¿ ++¤¿¤½¤½¤­¡¼¤½ #JN ¥¿¥½¥½¥­¡¼¥½ ++¤¿¤½¤½¤­¡¼¤½ #JN ŽÀŽ¿Ž¿Ž·Ž°Ž¿ ++¤¿¤¿ #K5r á ++¤¿¤¿¤­ #T35 ᤭ ++¤¿¤¿¤¯ #K5r ᤯ ++¤¿¤À¤­¤Á¤µ¤ó #JN ÃéµÈ¤µ¤ó ++¤¿¤À¤­¤Á¤µ¤ó #JN ÃéµÈ¤µ¤ó ++¤¿¤À¤Î #T35 TDN ++¤¿¤À¤ó¤¯¤· #T35 ¿Ãʶú ++¤¿¤Ã¤­¤å¤¦ #T35 Âðµå ++¤¿¤Æ¤¢¤é¤· #T35 Ω¤Æ¹Ó¤é¤· ++¤¿¤Æ¤Ê¤ª¤· #T35 Ω¤ÆÄ¾¤· ++¤¿¤Æ¤Ë¤² #T30 Ω¤ÆÆ¨¤² ++¤¿¤Æ¤è¤ß #T35 ½ÄÆÉ¤ß ++¤¿¤Ê¤« #JN ÅÄÃæ ++¤¿¤Ê¤« #JNS ÅÄÃæ ++¤¿¤Ê¤«¤Õ¤¡¤ó¤¿¤¸¤¤ #T35 ÅÄÃæ¥Õ¥¡¥ó¥¿¥¸¡¼ ++¤¿¤Ê¤«¤â¤Ê¤ä #JN ÅÄÃæ¥â¥ÊÌé ++¤¿¤Ê¤Ð¤¿¤¨¤É¤¦¤í¤¦¤â¤Ê¡¼ #JN ¼·Í¼³¨¤É¤¦¤í¤¦¥â¥Ê¡¼ ++¤¿¤Ë¤¶¤ï¤É¤¦¤Ö¤Ä¤Ó¤ç¤¦¤¤¤ó #T35 ë߷ưʪɱ¡ ++¤¿¤Í #T35 ¼ï ++¤¿¤Í¤Á¤å¤¦ #T35 ¼ï¿ß ++¤¿¤Í¤Ê¤· #JN ¼ï̵¤· ++¤¿¤Í¤Ê¤· #T35 ¼ï̵¤· ++¤¿¤Ð #KK « ++¤¿¤Ð #T35 « ++¤¿¤Ð¤¸¤ç¤¦¤»¤ó #T35 «¾åÀþ ++¤¿¤Þ¤´ #T35 ¶Ì»Ò ++¤¿¤Þ¤Á¤ã¤ó #JN ¥¿¥Þ¤Á¤ã¤ó ++¤¿¤ß¤ä #KK ¥¿¥ß¥ä ++¤¿¤à¤é¤ê¤ç¤¦¤³ #JN Åļμ»Ò ++¤À¤á¤Ý #CJ ¡²|¡±|¡û ++¤À¤á¤Ý #CJ orz ++¤À¤á¤Ý #CJ _no ++¤¿¤â¤ê #JN ¥¿¥â¥ê ++¤¿¤é #KK í ++¤¿¤é #T35 í ++¤¿¤é¤³ #T35 ¥¿¥é¥³ ++¤¿¤ê¤­¤Á¤ã¤ó #T35 ¾ÎϤÁ¤ã¤ó ++¤¿¤ê¤Ð¤ó #CN ¥¿¥êÈÄ ++¤¿¤ê¤Ð¤ó #T35 ¥¿¥êÈÄ ++¤¿¤ê¤Ð¤ó¤¿¤í¤¦ #T35 ¥¿¥ê¥Ð¥óÂÀϺ ++¤¿¤ë¤±¤¨ #T35 ¥¿¥ë¥±¡¼ ++¤¿¤ì¤ß¤ß¤â¤Ê¡¼ #JN ¤¿¤ì¼ª¥â¥Ê¡¼ ++¤¿¤í¤¦ #SUC ÂÀϺ ++¤¿¤í¤¦ #T35 ¡û¡ûÂÀϺ ++¤¿¤ï¤é #T35 TAWARA ++¤¿¤ó #SUC ¥¿¥ó ++¤¿¤ó #SUC ŽÀŽÝ ++¤¿¤ó¤­¤å¡¼ #CJ ¥¿¥ó¥­¥å¡¼ ++¤¿¤ó¤­¤å¡¼ #CJ ŽÀŽÝ޷ޭް ++¤¿¤ó¤­¤å¤¦ #CJ ¥¿¥ó¥­¥å¡¼ ++¤¿¤ó¤­¤å¤¦ #CJ ŽÀŽÝ޷ޭް ++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¦¢Ï¡¦)¥¿¥ó¥½¥­¡¼¥ó ++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¦¢Ï¡¦)ŽÀŽÝŽ¿Ž·Ž°ŽÝ ++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¬¢Ï¡¬)¥¿¥½¥½¥­¡¼¥½ ++¤¿¤ó¤½¤­¡¼¤ó #CJ (Žß¢ÏŽß)ŽÀŽ¿Ž¿Ž·Ž°Ž¿ ++¤¿¤ó¤½¤­¡¼¤ó #CJ ¥¿¥ó¥½¥­¡¼¥ó ++¤¿¤ó¤½¤­¡¼¤ó #CJ ŽÀŽÝŽ¿Ž·Ž°ŽÝ ++¤¿¤ó¤½¤­¡¼¤ó #JN (¡¦¢Ï¡¦)ŽÀŽÝŽ¿Ž·Ž°ŽÝ ++¤¿¤ó¤½¤­¡¼¤ó #JN ¥¿¥ó¥½¥­¡¼¥ó ++¤¿¤ó¤½¤­¡¼¤ó #JN ÀÝ¿·°Ý ++¤¿¤ó¤½¤­¡¼¤ó #JN ŽÀŽÝŽ¿Ž·Ž°ŽÝ ++¤¿¤ó¤½¤¯¤ä¤¯¤¶ #JN û­ŽÔޏ޻ŽÞ ++¤¿¤ó¤Ý¤Ý¤½¤ó¤· #JN ³÷¸ø±Ñº»Õ ++¤À¡¼¤ä¤¹ #JN ¥À¡¼¥ä¥¹ ++¤À¡¼¤ä¤¹ #T35 ¥À¡¼¥ä¥¹ ++¤À¡¼¤ä¤¹¤­¤Î¤³ #JN ¥À¡¼¥ä¥¹¥­¥Î¥³ ++¤À¤¢¤ä¤¹ #JN ¥À¡¼¥ä¥¹ ++¤À¤¤¤ª¤¦¤Ò¤µ¤Þ #T35 Â粦ÈÞÍÍ ++¤À¤¤¤«¤ó¤²¤ó #T35 Âç´Ô¸µ ++¤À¤¤¤µ¤¯ #JN Âçºî ++¤À¤¤¤·¤å¤ê¤ç¤¦¤­¤ó¤°¤¾¡¼¤Ì #JN Âç¼óÎÎ¥­¥ó¥°¥¾¡¼¥Ì ++¤À¤¤¤·¤ó¤«¤ó¤³¤ê¤ó¤º #JN Âç¿À´±¥³¥ê¥ó¥º ++¤À¤¤¤·¤ó¤«¤ó¤Æ¤Ê¡¼ #JN Âç¿À´±¥Æ¥Ê¡¼ ++¤À¤¤¤·¤ó¤«¤ó¤â¤Ò¤ã #JN Âç¿À´±¥â¥Ò¥ã ++¤À¤¤¤»¤ó¤»¤¤ #T35 ÂçÀèÀ¸ ++¤À¤¤¤È¤¦¤¢¤Æ¤¤¤³¤¯ #KK ÂçÅì°¡Äë¹ñ ++¤À¤¤¤È¤¦¤¢¤Æ¤¤¤³¤¯ #T35 ÂçÅì°¡Äë¹ñ ++¤À¤¤¤Ë¤Á¤å¤¦¤Ü¤¦¤¤¤¿ #T35 Âè2¿ß˼ÈÄ ++¤À¤¤¤Ë¤Á¤å¤¦¤Ü¤¦¤¤¤¿ #T35 Â裲¿ß˼ÈÄ ++¤À¤¤¤Ð¤¯¤Ï¤Ä #JN ÂçÇúȯ ++¤À¤¦¤½ #T30 ¥À¥¦¥½ ++¤À¤¦¤½ #T35 ¥À¥¦¥½ ++¤À¤¦¤ó #T30 ¥À¥¦¥½ ++¤À¤¦¤ó #T35 ¥À¥¦¥½ ++¤À¤¦¤ó #T35 ¥À¥¦¥ó ++¤À¤¬¤½¤ì¤¬¤¤¤¤ #CJ ¤À¤¬¤½¤ì¤¬¤¤¤¤ ++¤À¤±¤É #SUC ¤À¤±¤É ++¤À¤±¤É¤Ê¤Ë¤«¤·¤Ä¤â¤ó¤¢¤ë #CJ ¤À¤±¤É¡¢²¿¤«¼ÁÌ䤢¤ë¡© ++¤À¤±¤Ï¤«¤ó¤Ù¤ó¤·¤Æ¤¯¤À¤µ¤¤ #CJ ¤À¤±¤Ï´ªÊÛ¤·¤Æ¤¯¤À¤µ¤¤ ++¤À¤µ¤¤¤¿¤Þ #T35 ¥À¥µ¥¤¥¿¥Þ ++¤À¤¹¤Ù¤§¤À #JN ½Ð¤¹¤Ù¤§ÂÀ ++¤À¤¹¤ì #T35 ÂÌ¥¹¥ì ++¤À¤¹¤ì¤·¤å¤¦¤è¤¦¤¸¤ç #T35 ÂÌ¥¹¥ì¼ýÍÆ½ê ++¤À¤»¡¼¤è #JN ¥À¥»¡¼¥è ++¤À¤½¤Ê #JN ¥À¥½¥Ê ++¤À¤Ã¤³¤Á¤å¤¦ #T35 ¤À¤Ã¤³¿ß ++¤À¤Ã¤È¤¤¤­ #CJ datÀ¤­ ++¤À¤Ã¤È¤¤¤­¤µ¤æ¤ê #JN DATÀ¤­º´Í´Íý ++¤À¤Ã¤È¤ª¤Á #CJ datÍî¤Á ++¤À¤Ö¤ë¤¤¤«¤ä¤­¤½¤Ð #JN ¥À¥Ö¥ë¤¤¤«¾Æ¤­¤½¤Ð ++¤À¤Ö¤ë¤Þ¡¼¤Á #T35 £×£Í£Á£Ò£Ã£È ++¤À¤Þ¤·¤¹¤ì #T35 ñÙ¤·¥¹¥ì ++¤À¤Þ¤ì¤³¤¾¤¦ #JN ¥À¥Þ¥ì¥³¥¾¥¦ ++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥¢¥½ ++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥¢¥ó ++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥ä¥½ ++¤À¤à #JN ¢º¡Ê¡¦¦Ø¡¦¡Ë¢» ++¤À¤à #JN ÂÌ̵ ++¤À¤à #T35 ÂÌÌ´ ++¤À¤à #T35 ÂÌ̵ ++¤À¤á¤«¡¼ #CJ ÂÌÌܤ«¡¼ ++¤À¤á¤«¤¢ #CJ ÂÌÌܤ«¡¼ ++¤À¤á¤¹¤ì¤Ã¤É¤«¤ó¤ê¤­¤³¤¦ #JN ÂÌÌÜŽ½ŽÚޝŽÄŽÞ´ÉÍýµ¡¹½ ++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤À¤á #CJ ¤À¤á¤Ê¤ä¤Ä¤Ï²¿¤ò¤ä¤Ã¤Æ¤âÂÌÌÜ ++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤â¤À¤á #CJ ¤À¤á¤ÊÅۤϲ¿¤ò¤ä¤Ã¤Æ¤â¤À¤á ++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤â¤À¤á #JN ¤À¤á¤ÊÅۤϲ¿¤ò¤ä¤Ã¤Æ¤â¤À¤á ++¤À¤á¤Ð¤³ #T35 ¥À¥áÈ¢ ++¤À¤á¤Ü¤Ã¤¯¤¹ #T35 ¥À¥á¥Ü¥Ã¥¯¥¹ ++¤À¤è¤â¤ó #T35 ¤À¤è¤â¤ó ++¤À¤ë¤Þ¤â¤Ê¡¼ #JN ¤À¤ë¤Þ¥â¥Ê¡¼ ++¤À¤ë¤Þ¤â¤Ê¡¼ #JN ¤À¤ë¤Þ¥â¥Ê¡¼ ++¤À¤ì¤¤¤ä¤Í¤ó #JN ÂÄÎǰ¡¡ ++¤À¤ì¤¹ #T35 Ḁ̂쥹 ++¤À¤ì¤â¤¤¤Ê¤¤¤¹¤ì¤Ò¤È¤ê¤Ü¤Ã¤Á #CJ ï¤â¤¤¤Ê¤¤¥¹¥ì¡£¤Ò¤È¤ê¤Ü¤Ã¤Á ++¤Á¡¼¤º¤±¡¼¤­ #JN ŽÁް޽ŽÞ޹ް޷ ++¤Á¡¼¤à¤Ë¤Á¤ã¤ó¤Í¤ë #KK ¥Á¡¼¥à£²¤Á¤ã¤ó¤Í¤ë ++¤Á¤£¤â¤Ê¡¼ #JN ¤Á¤£¥â¥Ê¡¼ ++¤Á¤§¤­¤Ê #T35 ¥Á¥§¥­¥Ê ++¤Á¤§¤Á¤§¤ó #T35 ¥Á¥§¥Á¥§¥ó ++¤Á¤§¤Ã #JN ¡¥¡¥¡¥(¡­§©¡®¡ËŽÁŽªŽ¯ ++¤Á¤§¤Ã #JN ¤Á¤§¤Ã ++¤Á¤«¤¯¤Ø¤ó¤É¤¦ #T30 ÃϳÌÊÑÆ° ++¤Á¤«¤¯¤Ø¤ó¤É¤¦ #T35 ÃϳÌÊÑÆ° ++¤Á¤«¤² #JNM ¥Á¥«¥² ++¤Á¤«¤² #JNM ·ì±Æ ++¤Á¤«¤² #JNM Æý±Æ ++¤Á¤«¤² #T35 ¥Á¥«¥² ++¤Á¤«¤² #T35 ·ì±Æ ++¤Á¤«¤² #T35 Æý±Æ ++¤Á¤«¤¹¤ì #T35 Ãϲ¼¥¹¥ì ++¤Á¤«¤ó #T35 ÃÔ´Á ++¤Á¤«¤ó¤Ç¤Ã¤Á¤¢¤² #T35 ÃÔ´Á¤Ç¤Ã¤Á¾å¤² ++¤Á¤­¤ó¤ì¡¼¤¹ #T35 ¥Á¥­¥ó¥ì¡¼¥¹ ++¤Á¤­¤ó¤ì¤¨¤¹ #T35 ¥Á¥­¥ó¥ì¡¼¥¹ ++¤Á¤²¡¼¤è #JN ¥Á¥²¡¼¥è ++¤Á¤´¤¤¤Í #CJ ¥Á¥´¥¤¥Í ++¤Á¤·¤ç¤¦ #T35 ÃӾ ++¤Á¤º #T35 ÃÏ¿Þ ++¤Á¤¿¤Í¡¼¤è #JN ¥Á¥¿¥Í¡¼¥è ++¤Á¤Á¤ç¤ó¤Þ¤ó¤Á #JN ¤Á¤Á¤ç¤ó¤Þ¤ó¤Á ++¤Á¤Ã¤Ñ¤ó #KK ¤Á¤Ã¤Ñ¤ó ++¤Á¤Æ¤¤ #KK ÃÏÄì ++¤Á¤Æ¤¤ #T35 ÃÏÄì ++¤Á¤Æ¤¤¤â¤Ê #JN ÃÏÄì¤â¤Ê ++¤Á¤Í¤Ð¡¼ #JN ¥Á¥Í¥Ð¡¼ ++¤Á¤Ð¤²¤ó¤¸¤ó #T35 ÀéÍÕ¸¶¿Í ++¤Á¤Ð¤·¤·¤ã #T35 ÃÔÇÍ»à¼Ô ++¤Á¤Ð¤È¤ß¤ó #T35 ÀéÍÕÅÔ̱ ++¤Á¤Ð¤é¤­ #CN ¥Á¥Ð¥é¥­ ++¤Á¤Ð¤é¤­ #T35 ¥Á¥Ð¥é¥­ ++¤Á¤Ð¤é¤® #CN ¥Á¥Ð¥é¥® ++¤Á¤Ð¤é¤® #T35 ¥Á¥Ð¥é¥® ++¤Á¤Ó¤®¤³ #JN ¤Á¤Ó¥®¥³ ++¤Á¤Ó¤®¤³¤Ö¤ê #JN ¤Á¤Ó¥®¥³¥Ö¥ê ++¤Á¤Ó¤·¤£ #JN ¤Á¤Ó¤·¤£ ++¤Á¤Ó¤Õ¤µ #JN ¥Á¥Ó¥Õ¥µ ++¤Á¤Ó¤â¤é¤é¡¼ #JN ¥Á¥Ó¥â¥é¥é¡¼ ++¤Á¤á¤¤ #T35 ÃÏ̾ ++¤Á¤ã¤¤ #JN ¡¡¡¡,._.,¡¡ ++¤Á¤ã¤¤ #JN ŽÁެ޲¡¡ ++¤Á¤ã¤Ö¤À¤¤ #JN ¤Á¤ã¤ÖÂæ ++¤Á¤ã¤Ö¤À¤¤ #JN ¨µ¨¬¨µ ++¤Á¤ã¤Ö¤À¤¤¤¤¤É¤¦ #JN ¤Á¤ã¤ÖÂæ°Üư ++¤Á¤ã¤à #JN ¥Á¥ã¥à ++¤Á¤ã¤à #T35 ¥Á¥ã¥à ++¤Á¤ã¤ó¤³ #JN ¥Á¥ã¥ó¥³ ++¤Á¤ã¤ó¤³¤Þ¤¹¤À #T35 ¥Á¥ã¥ó¥³ÁýÅÄ ++¤Á¤ã¤ó¤³¤í #T35 ¥Á¥ã¥ó¥³¥í ++¤Á¤ã¤ó¤µ¤Þ #SUC ¤Á¤ã¤óÍÍ ++¤Á¤ã¤ó¤µ¤Þ #T35 ¤Á¤ã¤óÍÍ ++¤Á¤å¡¼¤Á¤å¡¼¤½¤ó¤° #KK ¤Á¤å¡¼¤Á¤å¡¼¥½¥ó¥° ++¤Á¤å¡¼¤Ü¡¼ #JN ¥Á¥å¡¼¡¦¥Ü¡¼ ++¤Á¤å¡¼¤Ü¡¼¤Ç¤¹¤è #JN ¥Á¥å¡¼¥Ü¡¼¤Ç¤¹¤è¡ª ++¤Á¤å¤¦ #T35 ¿ß ++¤Á¤å¤¦¤«¤ê¤ç¤¦¤ê¤í¤Ü¤»¤ó¤³¤¦¤·¤ã #JN Ãæ²ÚÎÁÍý¥í¥ÜÀè¹Ô¼Ô ++¤Á¤å¤¦¤¬¤¯¤»¤¤¤Á¤Ï¤ë #T35 Ãæ³ØÀ¸¤Á¤Ï¤ë ++¤Á¤å¤¦¤±¤¤ #T30 Ãæ·Ñ ++¤Á¤å¤¦¤±¤ó #JN Ãæ·ø ++¤Á¤å¤¦¤±¤ó #T35 Ãæ·ø ++¤Á¤å¤¦¤³¤ª¤ó¤Ê #T35 Ãæ¸Å½÷ ++¤Á¤å¤¦¤Á¤å¤¦¤½¤ó¤° #T35 ¤Á¤å¡¼¤Á¤å¡¼¥½¥ó¥° ++¤Á¤å¤¦¤Ö¤ë¤ª¤ó¤Ê #T35 Ãæ¸Å½÷ ++¤Á¤å¤¦¤Ü¤¦ #T35 ¿ß˼ ++¤Á¤å¤¦¤Ü¤¦¤°¤ó¤À¤ó #T35 ¿ß˼·³ÃÄ ++¤Á¤å¤¦¤Ü¤¦¤ê¤Ë¤å¤¦¤ê¤ç¤¯ #KK ¿ß˼ΥÆý¿© ++¤Á¤å¤× #T35 ¥Á¥å¥× ++¤Á¤å¤×¤¿¤ó #T35 ¥Á¥å¥×¥¿¥ó ++¤Á¤å¤×¤¿¤ó #T35 ŽÁŽ­ŽÌŽßŽÀŽÝ ++¤Á¤æ #JN ¤Á¤æ ++¤Á¤æ¤â¤Ê #JN ¤Á¤æ¤â¤Ê ++¤Á¤ç¤¤¤Î¤ê #T35 ¥Á¥ç¥¤¥Î¥ê ++¤Á¤ç¤¦¤ª¤ì¤°¤ë¤Þ #JN Ͳ¶¼Ö ++¤Á¤ç¤¦¤»¤¤¤É¤Ã¤È #JN . ++¤Á¤ç¤¦¤»¤¤¤É¤Ã¤È #JN Ä´À°¥É¥Ã¥È ++¤Á¤ç¤¦¤»¤ó¤·¤ã #JN Ä©Àï¼Ô ++¤Á¤ç¤¦¤»¤ó¤»¤¤ #JN ĶÀèÀ¸ ++¤Á¤ç¤¦¤»¤ó¤»¤¤ #T35 ĶÀèÀ¸ ++¤Á¤ç¤¦¤Ë¤Á¤·¤ó¤Ö¤ó #KK ¤Á¤ç¤¦¤Ë¤Á¿·Ê¹ ++¤Á¤ç¤¦¤Ë¤Á¤·¤ó¤Ö¤ó #T35 ¤Á¤ç¤¦¤Ë¤Á¿·Ê¹ ++¤Á¤ç¤¦¤Õ¤¯¤¹¤ì #T35 ½ÅÊ£¥¹¥ì ++¤Á¤ç¤¦¤Õ¤¯¤¹¤ì¤Ã¤É #T35 ½ÅÊ£¥¹¥ì¥É ++¤Á¤ç¤¦¤Ö¤ó¤ì¤¹ #T35 Ĺʸ¥ì¥¹ ++¤Á¤ç¤¦¤ì¤¹ #T35 Ĺ¥ì¥¹ ++¤Á¤ç¤¦¤í¤¦ #JN ĹϷ ++¤Á¤ç¤¦¤í¤¦ #T35 ĹϷ ++¤Á¤ç¤¯¤ê¤ó #T30 ľ¥ê¥ó ++¤Á¤ç¤¯¤ê¤ó¤¯ #T30 ľ¥ê¥ó¥¯ ++¤Á¤ç¤·¤å¤µ¤ó #T35 ¥Á¥ç¥·¥å¥µ¥ó ++¤Á¤ç¤·¤å¤µ¤ó #T35 ŽÁޮ޼ޭ޻ŽÝ ++¤Á¤ç¤½ #T35 ¥Á¥ç¥½ ++¤Á¤ç¤½ #T35 ŽÁŽ®Ž¿ ++¤Á¤ç¤Ã¤Ñ¤ê #T35 ¥Á¥ç¥Ã¥Ñ¥ê ++¤Á¤ç¤é¤Í¡¼¤è #JN ¥Á¥ç¥é¥Í¡¼¥è ++¤Á¤ç¤ì¤®¤µ¤é¤À #JN ¥Á¥ç¥ì¥®¥µ¥é¥À ++¤Á¤ç¤ó #T35 ¥Á¥ç¥ó ++¤Á¤ç¤ó #T35 ŽÁŽ®ŽÝ ++¤Á¤ç¤ó¤¤¤ë¤·¤ó¤Ö¤ó #KK ¥Á¥ç¥ó¥¤¥ë¿·Ê¹ ++¤Á¤ç¤ó¤¤¤ë¤·¤ó¤Ö¤ó #T35 ¥Á¥ç¥ó¥¤¥ë¿·Ê¹ ++¤Á¤ç¤ó¤Ê #CJ ¥Á¥ç¥ó¤Ê ++¤Á¤é¤Í¡¼¤è #JN ¥Á¥é¥Í¡¼¥è¡¡ ++¤Á¤ì¤¹ #T30 Ã٥쥹 ++¤Á¤ì¤¹ #T35 Ã٥쥹 ++¤Á¤ó #T35 Ä¿ ++¤Á¤ó #T35 ÄÁ ++¤Á¤ó¤«¤³¤ß¤À¤ó #T35 ÄÁ°ÏÃÄ ++¤Á¤ó¤² #JN ¥Á¥ó¥² ++¤Á¤ó¤² #T35 ¥Á¥ó¥² ++¤Á¤ó¤³¤ª¤ó¤É #T35 ¤Á¤ó¤³²»Æ¬ ++¤Á¤ó¤³¤à¤®¤å¡¼ #CJ ¤Á¤ó¤³¤à¤®¤å¡¼ ++¤Á¤ó¤³¤à¤®¤å¤¦ #CJ ¤Á¤ó¤³¤à¤®¤å¡¼ ++¤Á¤ó¤·¤ã #T35 ÄÁ¼Ö ++¤Á¤ó¤¸¤ç #T35 ÄÁ½÷ ++¤Á¤ó¤½¤¦ #T30 ÄÁÁÕ ++¤Á¤ó¤½¤¦¤¢¤é¤· #JN ÄÁÁö¹Ó¤é¤· ++¤Á¤ó¤½¤¦¤¸¤ó #T35 ÄÁÁÕ¿Í ++¤Á¤ó¤½¤¦¤À¤ó #T35 ÄÁÁÕÃÄ ++¤Á¤ó¤½¤¦¤À¤ó #T35 ÄÁÁöÃÄ ++¤Á¤ó¤½¤¦¤É #T35 ÄÁÁÕÅÛ ++¤Á¤ó¤½¤¦¤Ù¤ó¤¸¤ç #T35 ÄÁÁÕÊØ½ê ++¤Á¤ó¤½¤¦¤â¤é¤é¡¼ #JN ÄÂÁö¥â¥é¥é¡¼ ++¤Á¤ó¤Ç¤£¤¤ #T35 ÄÁD ++¤Á¤ó¤Ð¤ó #T35 ÄÁÈ× ++¤Á¤ó¤×¤¦ #KK ÄÁÉ÷ ++¤Á¤ó¤×¤¦ #KK ÄÄÉ奦 ++¤Á¤ó¤×¤¦ #T35 ÄÁÉ÷ ++¤Á¤ó¤×¤¦ #T35 ÄÄÉ奦 ++¤Á¤ó¤×¤¯ #T35 ÄÁÉþ ++¤Á¤ó¤Ý¡¼ #JN ¡Ê¡¦¢Ï¡¦¡ËŽÁŽÝŽÎŽßް!! ++¤Á¤ó¤Ý¡¼ #JN ÁÝÎß! ++¤Á¤ó¤Ý¡¼ #JN ŽÁŽÝŽÎŽßް!! ++¤Á¤ó¤Ý¤´¤­¤Ö¤ê #JN ¥Á¥ó¥Ý¥´¥­¥Ö¥ê ++¤Á¤ó¤Ý¤À¤ó #T35 ÄÁÊâÃÄ ++¤Â¤ã¤ó #JN ¥Â¥ã¥ó ++¤Â¤ó¤®¤ç #JN ¤Â¤óµû ++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢¥ô¥¡¥«¡© ++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢Ž³ŽÞާ޶¡© ++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢Ž³ŽÞާ޶¡©>> ++¤Ä #R5r Äà ++¤Ä #R5 Äà ++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN (?¢Ï?) ++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN ¥Å¥µ¥¯¥Å¥¨¥½ ++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN ŽÂŽÞ޻ޏŽÂŽÞŽ´Ž¿ ++¤Ä¡¼ #JN ¤Ä¡¼ ++¤Ä¡¼¤« #CJ ¤Ä¡¼¤« ++¤Ä¡¼¤«¤«¤³¤í¤°¤è¤á #JN ¤Ä¡¼¤«²áµî¥í¥°ÆÉ¤á ++¤Ä¤¦¡«¤¡¤¤ #JN ¥Ä¥ô¥¡¥¤ ++¤Ä¤¦¤¸¤ç¤¦¤Î¤µ¤ó¤Ð¤¤ #CJ Ä̾ï¤Î£³ÇÜ ++¤Ä¤¦¤¸¤ç¤¦¤Î¤µ¤ó¤Ð¤¤ #T35 Ä̾ï¤Î£³ÇÜ ++¤Ä¤¦¤Û¤¦¤·¤Þ¤¹¤¿ #T35 ÄÌÊó¤·¤Þ¤¹¤¿ ++¤Ä¤« #KK ÄÍ ++¤Ä¤« #T35 ÄÍ ++¤Ä¤­ #T35 ·î ++¤Ä¤­¤Á¤å¤¦ #T35 ·î¿ß ++¤Ä¤­¤Î¤Ï¤·¤º¤¯ #JN ¤Ä¤­¤Î¤Ï¤·¤º¤¯ ++¤Ä¤­¤Ò¤á #KK ·îɱ ++¤Ä¤¸ #T35 ¤Î¤Î¤¿¤ó ++¤Ä¤¸ #T35 ÄÔ ++¤Ä¤¸¡¼¤ó #JN ÄÔ¡¼¤ó ++¤Ä¤¸¡¼¤ó #T35 ÄÔ¡¼¤ó ++¤Ä¤¸¤¤¤ó #T35 ÄÔ¡¼¤ó ++¤Ä¤¸¤¨¤­ #JN Äﱯ ++¤Ä¤Î¤â¤Ê¡¼ #JN ¤Ä¤Î¥â¥Ê¡¼ ++¤Ä¤Ü #CN ÄÛ ++¤Ä¤Ü #T35 ÄÚ ++¤Ä¤Ü #T35 ÄÛ ++¤Ä¤Ü¤Þ¤¸¤ó¤ß¤Ë¤Ê¤Ë¤ç¤ê¡¼¤Ê #JN ÄÛËâ¿Í¡¦ŽÐŽÆŽÅޯޮިްŽÅ ++¤Ä¤Þ¤ó¤Í #CJ ¥Ä¥Þ¥ó¥Í ++¤Ä¤â #JN ¥Ä¥â ++¤Ä¤æ¤Ò¤¿ #T35 ¤Ä¤æ¤Ò¤¿ ++¤Ä¤é¤¤¤³¤È¤ò¤ª¤â¤¦¤â¤é¤é¡¼ #JN ¿É¤¤¤³¤È¤ò»×¤¦¥â¥é¥é¡¼ ++¤Ä¤ê #T35 Äà¤ê ++¤Ä¤ê¤· #T35 Äà¤ê»Õ ++¤Ä¤ë¤Ù¤¸¤±¤ó #T35 ÄáÉÓ»ö·ï ++¤Ä¤ì¤¿ #T35 Äà¤ì¤¿ ++¤Å¡¼ #JN ¤Å¡¼ ++¤Æ¤£¡¼ #JN £ô¡¡ ++¤Æ¤£¡¼¤À #JN ¥Æ¥£¡¼¥À ++¤Æ¤£¤¤¤Ç¤£¤¤¤¨¤Ì #T35 TDN ++¤Æ¤£¤«¤² #JNM ¥Æ¥£¥«¥² ++¤Æ¤£¤«¤² #T35 ¥Æ¥£¥«¥² ++¤Æ¤£¤­¤ã¡¼¤² #T35 ¥Æ¥£¥­¥ã¡¼¥² ++¤Æ¤£¤­¤ã¤¢¤² #T35 ¥Æ¥£¥­¥ã¡¼¥² ++¤Æ¤£¤Ð #T35 ¥Æ¥£¥Ð ++¤Æ¤£¤Ð #T35 ŽÃލŽÊŽÞ ++¤Æ¤£¤à¤Ý #T35 ¥Æ¥£¥à¥Ý ++¤Æ¤£¤à¤Ý¤Î¤ï¤®¤ê #T35 ¥Æ¥£¥à¥Ý¤ÎÎØÀÚ¤ê ++¤Æ¤£¤à¤Ý¤Î¤ï¤®¤ê #T35 ŽÃލŽÑŽÎŽß¤ÎÎØÀÚ¤ê ++¤Æ¤£¤à¤Ý¤Ó¤ë #T35 ¥Æ¥£¥à¥Ý¥Ó¥ë ++¤Æ¤£¤ó¤Ý #T35 ¥Æ¥£¥ó¥Ý ++¤Æ¤¤¤­¤±¤ó #T35 Äê´ü·ô ++¤Æ¤¤¤­¤ç¤¦ #T35 Ä㶸 ++¤Æ¤¤¤³¤¯¤á¤¤¤É #JN ÄëԢ̽ÅÓ ++¤Æ¤¤¤·¤å¤«¤ó¤Ñ¤¯¤â¤Ê¡¼ #JN Äâ¼ç´ØÇò¥â¥Ê¡¼ ++¤Æ¤¤¤»¤Ä #T35 ÄêÀâ ++¤Æ¤¤¤É¤Ò¤¯ #KYT ÄøÅÙÄã ++¤Æ¤«¤ê¤Ö¤¿ #T35 ¥Æ¥«¥êÆÚ ++¤Æ¤­¤¸¤ç #T30 ¤Æ¤­¤¸¤ç ++¤Æ¤­¤È #JN ¥Æ¥­¥È ++¤Æ¤¯¤â #KK ¼êÃØéá ++¤Æ¤¯¤â #T35 ¼êÃØéá ++¤Æ¤¹¤Æ¤¹ #CJ ¤Æ¤¹¤Æ¤¹ ++¤Æ¤½ #JN ¥Æ¥½ ++¤Æ¤½ #JN ŽÃŽ¿ ++¤Æ¤½ #T35 ¥Æ¥½ ++¤Æ¤½ #T35 ŽÃŽ¿ ++¤Æ¤Ã¤³¤¦¤· #T35 ¥Æ¥Ã¥³¥¦¥· ++¤Æ¤Ã¤»¤ó¤«¤¤ #KK ïÄÀðÐò ++¤Æ¤Ã¤»¤ó¤«¤¤ #T35 ïÄÀðÐò ++¤Æ¤Ã¤Æ¤¤¤³¤¦¤»¤ó¤»¤ó¤²¤ó #JN ŰÄì¹³ÀïÀë¸À ++¤Æ¤Ä #T35 Å´ ++¤Æ¤Ä¤ª¤¿¤¼¤Ã¤È¤¿¤±¤¢¤Ã¤È¤á¤¤¤Æ¤Ä #JN Å´¥ò¥¿£ÚÉð@¦ÌÅ´ ++¤Æ¤Ä¤ª¤¿¤¼¤Ã¤È¤¿¤±¤á¤¤¤Æ¤Ä #JN Å´¥ò¥¿£ÚÉð@¦ÌÅ´ ++¤Æ¤Ä¤Î¤ª¤­¤Æ #T35 Å´¤ÎÙÝ ++¤Æ¤Æ¤· #T35 ¤Æ¤Æ¤· ++¤Æ¤Ê¡¼ #JN ¥Æ¥Ê¡¼ ++¤Æ¤Õ¤Æ¤Õ #JN ¤Æ¤Õ¤Æ¤Õ ++¤Æ¤á¤§¤â¤Ê¡¼ #JN ¥Æ¥á¥§¥â¥Ê¡¼ ++¤Æ¤ë¤¯¤Ï¤Î¤ë #T35 ¤Æ¤ë¤¯¤Ï¤Î¤ë ++¤Æ¤ì¤Û #T35 ¥Æ¥ì¥Û ++¤Æ¤ì¤Û¤·¤å¤¦¤ê¤ç¤¦ #T30 ¥Æ¥ì¥Û½ªÎ» ++¤Æ¤ì¤Û¤Þ¤ó #JN ¥Æ¥ì¥Û¥Þ¥ó ++¤Æ¤ì¤Û¤é¤Ã¤·¤å #T35 ¥Æ¥ì¥Û¥é¥Ã¥·¥å ++¤Æ¤í¤¨¤ê¡¼¤Ê #JN ¥Æ¥í¥¨¥ê¡¼¥Ê ++¤Æ¤ó¤·¤¨¤ó #CJ Å·»È±ê ++¤Æ¤ó¤·¤¨¤ó #T35 Å·»È±ê ++¤Æ¤ó¤Î¤¦ #JN Å·¹Ä ++¤Æ¤ó¤×¤ì #T35 ¥Æ¥ó¥×¥ì ++¤Æ¤ó¤Ý¤Ã¤Æ #KS ¥Æ¥ó¥Ý¤Ã¤Æ ++¤Ç¤¢¤ë¤« #CJ ¤Ç¡¢¤¢¤ë¤« ++¤Ç¤£ #JN ¤Ç¤£ ++¤Ç¤£¡¼¤¸¤§¡¼¤â¤Ê¡¼ #JN £Ä£Ê¥â¥Ê¡¼¡¡ ++¤Ç¤£¡¼¤Ý #T35 £Ä¥Ý ++¤Ç¤£¤¢¤Ê¤µ¤Þ #JN ¥Ç¥£¥¢¥ÊÍÍ ++¤Ç¤£¤ª¤â¤é¤ó¤É¡¼ #JN ¥Ç¥£¥ª¡¦¥â¥é¥ó¥É¡¼ ++¤Ç¤£¤ª¤ó¤°¤ó #T35 DION·³ ++¤Ç¤£¤ë¤ì¤¦¡«¤¡¤ó¤¬¡¼ #JN ¥Ç¥£¥ë¥ì¥ô¥¡¥ó¥¬¡¼ ++¤Ç¤£¤ë¤ì¤¦¡«¤¡¤ó¤¬¤¢ #JN ¥Ç¥£¥ë¥ì¥ô¥¡¥ó¥¬¡¼ ++¤Ç¤¤¤È¤¤¤ì¤À¡¼ #T35 ¥Ç¥¤¥È¥¤¥ì¥À¡¼ ++¤Ç¤¤¤È¤¤¤ì¤À¤¢ #T35 ¥Ç¥¤¥È¥¤¥ì¥À¡¼ ++¤Ç¤¦¡« #JN DEVU ++¤Ç¤¦¡« #JN ¤à¤·¤ã¤à¤·¤ã¡Ê¡¡¡­¡Ë§¥¡Ê¡®¡Ë ++¤Ç¤¨¤ó¤Ñ¤ß¤ó¤¾¤¯ #T35 ¥Ç¡¼¥ó¥Ñ¥ß¥ó¥¾¥¯ ++¤Ç¤¨¤ó¤Ñ¤ß¤ó¤¾¤¯ #T35 ŽÃŽÞްŽÝŽÊŽßŽÐŽÝŽ¿ŽÞޏ ++¤Ç¤«¤Á¤ç¤¦¤¢¤ó¤É¤«¤º #JN ¥Ç¥«Ä¹¡õ¥«¥º ++¤Ç¤¬¤ï #JNS ½ÐÀî ++¤Ç¤¬¤ï #T35 ½ÐÀî ++¤Ç¤¬¤ï¤Ò¤Ã¤·¤À¤â¤½ #T35 ½ÐÀîɬ»à¥À¥â¥½¡ª ++¤Ç¤³ #JN ÆÌ ++¤Ç¤³ #T35 ÆÌ ++¤Ç¤¸¤â¤Ê¤Æ¤¤¤Þ¡¼¤º¤í¤´ #JN ¥Ç¥¸¥â¥Ê¥Æ¥¤¥Þ¡¼¥º¥í¥´ ++¤Ç¤¹ #SUC DEATH ++¤Ç¤¹ #SUC ¥Ç¥¹ ++¤Ç¤¹¤¯¤È¤Ã¤×¤³¤¦¤«¤¤¤¹¤ì #T35 ¥Ç¥¹¥¯¥È¥Ã¥×¸ø³«¥¹¥ì ++¤Ç¤¹¤±¤É¤Ê¤Ë¤« #CJ ¤Ç¤¹¤±¤É¡¢²¿¤«¡© ++¤Ç¤¹¤Ç¤¹ #CJ ¤Ç¤¹¤Ç¤¹ ++¤Ç¤¹¤È¤í¤¤¤µ¤Þ #JN ¥Ç¥¹¥È¥í¥¤ÍÍ ++¤Ç¤½¤Ñ #T35 ¥Ç¥½¥Ñ ++¤Ç¤Õ¤©¤ë¤È¤Ê¤Ê¤· #T35 ¥Ç¥Õ¥©¥ë¥È̵̾¤· ++¤Ç¤Ö¤ª¤¿ #T35 ¥Ç¥Ö¥ò¥¿ ++¤Ç¤Ö¤­¤ó #JN ¥Ç¥Ö¥­¥ó ++¤Ç¤Ö¤À¤Ê¡¼ #JN ¥Ç¥Ö¥À¥Ê¡¼ ++¤Ç¤Ö¤í¤ó¤² #T35 ¥Ç¥Ö¥í¥ó¥² ++¤Ç¤Ö¤ò¤¿ #T35 ¥Ç¥Ö¥ò¥¿ ++¤Ç¤Ö¤ò¤¿¤Ò¤Ã¤­¡¼ #T35 ¥Ç¥Ö¥ò¥¿¥Ò¥Ã¥­¡¼ ++¤Ç¤Ö¤ò¤¿¤Ò¤Ã¤­¤¤ #T35 ¥Ç¥Ö¥ò¥¿¥Ò¥Ã¥­¡¼ ++¤Ç¤Ø¤é¡¼ #JN ¥Ç¥Ø¥é¡¼ ++¤Ç¤Ü¤¹¤º¤á #JN ¥Ç¥Ü¤¹¤º¤á ++¤Ç¤Þ¤Á #T30 ½ÐÄ® ++¤Ç¤Þ¤Á #T35 ½ÐÄ® ++¤Ç¤è¤í¤·¤¤¤« #CJ ¤Ç¤è¤í¤·¤¤¤« ++¤Ç¤ê #R5 ¥Ç¥ê ++¤Ç¤ê¤«¤· #JN ¥Ç¥ê¡Ê¡­§×`¡Ë¥«¥· ++¤Ç¤ó¤­¤ª¤¦ #JN Åŵ¤²¦ ++¤Ç¤ó¤²¤­¤Ð¤Á¤Ð¤Á #JN ¤Ç¤ó¤²¤­¥Ð¥Á¥Ð¥Á ++¤Ç¤ó¤·¤ã¤¦¤· #JN Åżֵí ++¤Ç¤ó¤·¤ã¤¬¤¢¤ë #T35 Åż֥¬¡¼¥ë ++¤Ç¤ó¤·¤ã¤®¤å¤¦ #JN Åżֵí ++¤Ç¤ó¤»¤Ä¤­¤ç¤¸¤ó¤¤¤Ç¤Û¤½ #JN ÅÁÀâµð¿À޲ŽÃŽÞŽÎŽ¿ ++¤Ç¤ó¤¿¤Þ #T35 ÅÄ¶Ì ++¤Ç¤ó¤Ä¤¦ #T35 ÅÅ2 ++¤Ç¤ó¤È #T35 ÅÄÅÔ ++¤Ç¤ó¤É¤í #T35 ÅÄÅ¥ ++¤Ç¤ó¤Ë #T35 ÅÅ2 ++¤Ç¤ó¤Ñ #T35 ¥Ç¥ó¥Ñ ++¤Ç¤ó¤Ñ #T35 ÅÅÇÈ ++¤Ç¤ó¤Ñ¤ª¤Ï¤Ê¤Ð¤¿¤±¤¤¤¿ #T35 ÅÅÇÈ¡¦¤ª²ÖȪÈÄ ++¤Ç¤ó¤Ñ¤­¤·¤ã #T35 ÅÅÇȵ­¼Ô ++¤Ç¤ó¤Ñ¤­¤ã¤é #T35 ÅÅÇÈ¥­¥ã¥é ++¤Ç¤ó¤Ñ¤Á¤ç¤¦¤µ¤¤¤ó¤â¤Ê¡¼ #JN ÅÅÇÈÄ´ºº°÷¥â¥Ê¡¼ ++¤Ç¤ó¤Ñ¤È¤· #T35 ÅÅÇÈÅÔ»Ô ++¤Ç¤ó¤Ñ¤Ë¤Á¤ã¤ó #T35 ÅÅÇÈ2ch ++¤Ç¤ó¤Ñ¤Ë¤Á¤ã¤ó¤Í¤ë #T35 ÅÅÇÈ2¤Á¤ã¤ó¤Í¤ë ++¤Ç¤ó¤Ñ¤â¤é¤é¡¼ #JN ÅÅÇÈ¥â¥é¥é¡¼ ++¤Ç¤ó¤Ñ¤é¤¤¤¿¤¢ #T35 ÅÅÇȥ饤¥¿¡¼ ++¤Ç¤ó¤Ñ¤ò¤¿ #T35 ÅÅÇÈ¥ò¥¿ ++¤È #SUC ¤È¡£ ++¤È¡¼¤Û¤° #CN ¥È¡¼¥Û¥° ++¤È¡¼¤Û¤° #T35 ¥È¡¼¥Û¥° ++¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í #CJ ¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í ++¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í #CJ ¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í¡£:) ++¤È¤¤¤Ã¤Æ¤ª¤¯¤®¤ê #CJ ¤È¸À¤Ã¤Æ¤ª¤¯µÁÍý ++¤È¤¤¤Ã¤Æ¤ß¤ë¤Æ¤¹¤È #CJ ¤È¸À¤Ã¤Æ¤ß¤ë¥Æ¥¹¥È ++¤È¤¥¤¶¤¦¡«¤£¤¯¤È¤ê¡¼ #JN ¥È¥¥¥¶¥ô¥£¥¯¥È¥ê¡¼ ++¤È¤¦ #T35 Åã ++¤È¤¦¤«¤¤ #CN Åݲõ ++¤È¤¦¤«¤¤ #CN Å쳤 ++¤È¤¦¤«¤¤ #KK Åݲõ ++¤È¤¦¤«¤¤ #T35 Åݲõ ++¤È¤¦¤«¤¤ #T35 Å쳤 ++¤È¤¦¤­¤å¤¦¤Á¤å¤¦ #T35 ÅìµÞ¿ß ++¤È¤¦¤­¤ç¤¦ #JN Åìµþ ++¤È¤¦¤­¤ç¤¦ #T35 Åìµþ ++¤È¤¦¤­¤ç¤¦¤¢¤¯¤»¤¹ #KK Åìµþ¥¢¥¯¥»¥¹ ++¤È¤¦¤­¤ç¤¦¤­¤Æ¤£¤¤ #T35 Åìµþkitty¡Ê¡÷£÷¹Ó ++¤È¤¦¤­¤ç¤¦¤¸¤¨¤ó #JN ¥È¥¦¥­¥ç¥¦¥¸¥¨¥ó ++¤È¤¦¤­¤ç¤¦¤»¤¤¤·¤ó¤Ó¤ç¤¦¤¤¤ó #JN ÅìµþÀº¿Àɱ¡¡¡ ++¤È¤¦¤­¤ç¤¦¤È¤»¤¤¤½¤¦¤­¤ç¤¯ #JN ÅìµþÅÔÀ¶ÁÝ¶É ++¤È¤¦¤­¤ç¤¦¤È¤ê¤Ä¤Þ¤Ä¤¶¤ï¤Ó¤ç¤¦¤¤¤ó #JN ÅìµþÅÔΩ¾¾Âôɱ¡ ++¤È¤¦¤µ¤ó #T30 É㤵¤ó ++¤È¤¦¤¸¤ç¤¦¤»¤ó #T35 «¾åÀþ ++¤È¤¦¤À¤¤¤ª¤Á #T35 ÅìÂçÍî¤Á ++¤È¤¦¤Ï¤È #KK ÅìÈ· ++¤È¤¦¤Ï¤È #T35 ÅìÈ· ++¤È¤¦¤Ö¤Á¤å¤¦ #T35 ÅìÉð¿ß ++¤È¤¦¤Ö¤Ø¤Ã¤É #T35 ƬÉô¥Ø¥Ã¥É ++¤È¤¦¤Û¤° #T35 ¥È¡¼¥Û¥° ++¤È¤¦¤á¤¤¤¢¤Ü¡¼¤ó #T30 Æ©ÌÀ¤¢¤Ü¡¼¤ó ++¤È¤¦¤á¤¤¤¢¤Ü¤ª¤ó #T30 Æ©ÌÀ¤¢¤Ü¡¼¤ó ++¤È¤¦¤è¤³¤È¤Ã¤­¤å¤¦¤Ï¤Þ¤¤¤Ë¤Á¤Ü¤í¤¤¤Á #CJ Åì²£ÆÃµÞ¤ÏËèÆü¥Ü¥í»Ô! ++¤È¤¨¤¤¤Ð¤¹ #JN ÅԱĥХ¹ ++¤È¤ª¤â¤ï¤ì #CJ ¤È»×¤ï¤ì¡£ ++¤È¤ª¤â¤ï¤ì¤á #CJ ¤È»×¥ï¥ì¥á ++¤È¤­¤å¤ó #T35 ¤È¥­¥å¥ó ++¤È¤¯¤À¤³¤¦¤¤¤Á #JN ÆÁÅĹ̰ì ++¤È¤¯¤Æ¤¤¤ê¤ç¤«¤¯ #T35 ÆÃÄêιµÒ ++¤È¤¯¤Ë¤ó¤®¤ç¤¦¤»¤¤¤·¤ç¤· #JN ÆÃǧ¹ÔÀ¯½ñ»Î ++¤È¤¯¤Ë¤ó¤®¤ç¤¦¤»¤¤¤·¤ç¤· #KK ÆÃǧ¹ÔÀ¯½ñ»Î ++¤È¤¯¤á¤¤ #T35 ƿ̾ ++¤È¤¯¤á¤¤¤¯¤· #T35 ƿ̾¶ú ++¤È¤¯¤á¤¤¤±¤¤¤¸¤Ð¤ó #T35 ƿ̾·Ç¼¨ÈÄ ++¤È¤±¤Í¡¼¤è #JN ¡Ê¡¬¦Ç¡¬¡Ë¡¡¥È¥±¥Í¡¼¥è ++¤È¤±¤Í¡¼¤è #JN ¥È¥±¥Í¡¼¥è ++¤È¤³¤í¤Ç #CJ ¤È¤³¤í¤Ç ++¤È¤³¤í¤ó¤È¤Á¤ã¤ê¤Ô¤«¤¡ #JN ¥È¥³¥í¥ó¥È¥Á¥ã¥ê¥Ô¥«¥¡¡ª ++¤È¤· #T35 ÅÔ»Ô ++¤È¤À¤Ê #T35 ¸Íê ++¤È¤Ã¤­¤å¤¦¤¾¤Ì¤´¤¦ #JN ÆÃµÞ¤¾¤Ì¹æ ++¤È¤Ã¤Æ¤â¤¿¤á¤Ë¤Ê¤ë¤ª¤Ï¤Ê¤· #JN ¤È¤Ã¤Æ¤â¤¿¤á¤Ë¤Ê¤ë¤ªÏà ++¤È¤Ã¤È¤È¤¤¤¯¤ª #JN ¤È¤Ã¤È¤ÈÀÂÉ× ++¤È¤Ä¤²¤­ #T35 ÆÍ·â ++¤È¤Ä¤²¤­¤²¤Ã¤¿¡¼¤º #JN ·ãÆÍ¥²¥Ã¥¿¡¼¥º ++¤È¤Ä¤²¤­¤Á¤å¤¦ #T35 ÆÍ·â¿ß ++¤È¤Ê¤«¤¤ #JN ŽÄŽÅ޶޲ ++¤È¤Ó¤¹¤­¡¼¤ä¡¼¤â¤Ê¡¼ #JN Èô¤Ó¥¹¥­¡¼¥ä¡¼¥â¥Ê¡¼ ++¤È¤Ô #T35 ¥È¥Ô ++¤È¤Þ¤È #T35 tomato ++¤È¤à #JN ¥È¥à ++¤È¤á #T35 ¥È¥á ++¤È¤â¤è¤â¤Ê¡¼ #JN ÃÎÀ¤¥â¥Ê¡¼ ++¤È¤ä¤Þ #T35 ¥È¥äËâ ++¤È¤ä¤Þ #T35 ŽÄŽÔËâ ++¤È¤ä¤Þ¤ó¤³ #T35 ¥È¥ä¥Þ¥ó¥³ ++¤È¤ä¤Þ¤ó¤³ #T35 ŽÄŽÔŽÏŽÝŽº ++¤È¤è¤Ï¤·¤·¤ß¤ó #T35 Ë­¶¶»Ô̱ ++¤È¤é¤¦¤Þ¡¼ #JN (||Žß§¥Žß)ŽÄŽ×޳ŽÏް ++¤È¤é¤¦¤Þ¡¼ #JN ¥È¥é¥¦¥Þ¡¼ ++¤È¤é¤¦¤Þ¡¼ #JN ŽÄŽ×޳ŽÏް ++¤È¤é¤¯¤ó¤¢¤ó¤É¤«¤×¤¯¤ó #JN ¤È¤é¤¯¤ó¡õ¤«¤×¤¯¤ó ++¤È¤é¤¯¤ó¤¢¤ó¤É¤«¤×¤¯¤ó #JN ¤È¤é¤¯¤ó¡õ¤«¤×¤¯¤ó ++¤È¤é¤é¡¼ #JN ¥È¥é¥é¡¼ ++¤È¤ê #CN Ä» ++¤È¤ê #CN ÆÓ ++¤È¤ê #KK ÆÓ ++¤È¤ê #T35 Ä» ++¤È¤ê #T35 ÆÓ ++¤È¤ê¤³¤á #CN ¼è¤ê¹þ¤á ++¤È¤ê¤³¤á #CN Ä»ÊÆ ++¤È¤ê¤³¤á #T35 ¼è¤ê¹þ¤á ++¤È¤ê¤³¤á #T35 Ä»ÊÆ ++¤È¤ê¤µ¤ó #JN ¥È¥ê¤µ¤ó ++¤È¤ê¤Ã¤× #T35 ¥È¥ê¥Ã¥× ++¤È¤ê¤È¤È¤ó¤Ç¤¤¤ë¤â¤é¤é¡¼ #JN Ä»¤ÈÈô¤ó¤Ç¤¤¤ë¥â¥é¥é¡¼ ++¤È¤ê¤Ï¤à #T35 Ä»¤Ï¤à ++¤È¤ì¤«¤á #T35 ¥È¥ì¥«¥á ++¤È¤ó #T35 ­Å ++¤È¤ó¤­¤ó #CN ¥È¥ó¥­¥ó ++¤È¤ó¤­¤ó #T35 ¥È¥ó¥­¥ó ++¤È¤ó¤Á¤ã¤â¤ó #KK ¥È¥ó¥Á¥ã¥â¥ó ++¤È¤ó¤Á¤ã¤â¤ó #T35 ¥È¥ó¥Á¥ã¥â¥ó ++¤È¤ó¤É¤ë #CJ ¥È¥ó¥É¥ë ++¤È¤ó¤É¤ë #CJ ­Å­Ë ++¤È¤ó¤É¤ë #JN ­Å­Ë ++¤È¤ó¤Ú¤¤ #T35 ¥È¥ó¥Ú¥¤ ++¤É¡¼¤â¤¯¤ó #T35 ¤É¡¼¤â·¯ ++¤É¤¤¤¨ #JN ¥É¥¤¥¨ ++¤É¤¤¤¨ #R5 ¥É¥¤¥¨ ++¤É¤¤¤¨ #T35 ¥É¥¤¥¨ ++¤É¤¤¤Ä¤â¤Ê¡¼ #JN ¥É¥¤¥Ä¥â¥Ê¡¼ ++¤É¤¦¤·¤·¤ã¤´¤­¤Ö¤ê #JN Ʊ»Ö¼Ò¥´¥­¥Ö¥ê ++¤É¤¦¤¸¤ó #T35 Ʊ¿Í ++¤É¤¦¤¸¤ó¤ª¤ó¤Ê #T35 Ʊ¿Í½÷ ++¤É¤¦¤Æ¤¤ #T35 ƸÄç ++¤É¤¦¤Ç¤â¤¤¤¤¤Ë¤À #JN ¤É¤¦¤Ç¤â¤¤¤¤¥Ë¥À ++¤É¤¦¤Ç¤â¤¤¤¤¤ä¡¼ #JN ¥É¥¦¥Ç¥â¥¤¥¤¥ä¡¼ ++¤É¤¦¤Ç¤â¤¤¤¤¤ä¤½¤ó¤Ê¤³¤È #JN ¤É¤¦¤Ç¤â¤¤¤¤¤ä¡¢¤½¤ó¤Ê¤³¤È¡ª ++¤É¤¦¤Ç¤â¤¤¤¤¤è #JN ¤É¤¦¤Ç¤â¤¤¤¤¤è ++¤É¤¦¤â¤¹¤ß¤Þ¤»¤ó #JN ¥É¥¦¥â¥¹¥ß¥Þ¥»¥ó ++¤É¤¦¤â¤¹¤ß¤Þ¤»¤ó #JN ŽÄŽÞ޳ŽÓ޽ŽÐŽÏ޾ŽÝ ++¤É¤¦¤è #CJ ¤É¤¦¤è ++¤É¤¦¤è #SUC ¤É¤¦¤è ++¤É¤¦¤í¤¸¤ç¤¦¤Û¤¦¤Ò¤ç¤¦¤¸¤Ð¤ó #JN ƻϩ¾ðÊóɽ¼¨ÈÄ ++¤É¤©¡¼¡¼¤ó #JN ¥É¥©¡¼¡¼¥ó¡ª¡ª¡ª ++¤É¤©¡¼¡¼¤ó2 #JN ¥É¥©¡¼¡¼¥ó¡ª¡ª¡ª£² ++¤É¤­¤å¤½ #T35 DQS ++¤É¤­¤å¤½ #T35 ¥É¥­¥å¥½ ++¤É¤­¤å¤½¤ª¤¦¤³¤¯¤Ë¤Ã¤Ý¤ó #JN ¥É¥­¥å¥½²¦¹ñÆüËÜ ++¤É¤­¤å¤½¤ª¤¦¤³¤¯¤Ë¤Ã¤Ý¤ó #JN ŽÄŽÞŽ·Ž­Ž¿²¦¹ñÆüËÜ ++¤É¤­¤å¤½¤Á¤ã¤ó #JN ŽÄŽÞŽ·Ž­Ž¿¤Á¤ã¤ó ++¤É¤­¤å¤â #KK ¥É¥­¥å¥â ++¤É¤­¤å¤â #T35 ¥É¥­¥å¥â ++¤É¤­¤å¤ó #T35 DJN ++¤É¤­¤å¤ó #T35 £Ä£Ñ£Î ++¤É¤­¤å¤ó #T35 ¥É¥­¥å¥ó ++¤É¤­¤å¤ó¤Ê¤«¤¤¤·¤ã #T35 ¥É¥­¥å¥ó¤Ê²ñ¼Ò ++¤É¤¯¤ª¤È¤³ #T35 ÆÇÃË ++¤É¤¯¤·¤ó¤Æ¤¤¤ª¤¦ #JN ÆÈ¿ÈÄ벦 ++¤É¤¯¤¸¤¿ #T35 ¤É¤¯¤¸¤¿ ++¤É¤¯¤½ #T35 ÆÇÁÇ ++¤É¤¯¤È¤¦ #CN ÆÈÅç ++¤É¤¯¤È¤¦ #T35 ÆÈÅç ++¤É¤¯¤È¤ë¤Þ¤é #JN ¥É¥¯¥È¥ëM ++¤É¤³¤Ô¡¼ #T35 ¥É¥³£Ð ++¤É¤³¤Ô¤¤ #T35 ¥É¥³P ++¤É¤¹¤¦ #T35 ÅÙ¿ô ++¤É¤»¤¤¤µ¤ó #JN ÅÚÀ±¤µ¤ó ++¤É¤Æ¤Á¤å¡¼ #T35 ¥É¥Æ¥Á¥å¡¼ ++¤É¤Æ¤Á¤å¤¦ #T35 ¥É¥Æ¥Á¥å¡¼ ++¤É¤Ö¤Í¤º¤ß #T35 ¹ÂÁÍ ++¤É¤à #T35 £Ä£Ï£Í ++¤É¤á¤ë¤É #JN ¥É¥á¥ë¥É ++¤É¤é #JN ¥É¥é ++¤É¤é¤¨¤â¤ó¤Õ¤¯¤â¤È¤Õ¤©¡¼¤à #JN ¥É¥é¤¨¤â¤óÊ¡ËÜ¥Õ¥©¡¼¥à ++¤É¤é¤´¤ó #T35 ¥É¥é¥´¥ó ++¤É¤é¤´¤ó¤ª¤¨¤¹¤È #T35 ¥É¥é¥´¥ó¥ª¥¨¥¹¥È ++¤É¤é¤´¤ó¤¹¤È¤Ã¤× #T35 ¥É¥é¥´¥ó¥¹¥È¥Ã¥× ++¤É¤é¤Ã¤­¤Ê¡¼ #JN ¥É¥é¥Ã¥­¥Ê¡¼ ++¤É¤ê¤Á¤ó #T35 ¥É¥ê¥Á¥ó ++¤É¤ê¤ë¤Á¤ó¤Á¤ó #T35 ¥É¥ê¥ë¤Á¤ó¤Á¤ó ++¤É¤ë¤¨¤à¤¤¤¤ #T35 $ME ++¤Ê¤¢¤¹¤¦¤£¤Ã¤Á¤³¤à¤®¤Á¤ã¤ó #T35 ¥Ê¡¼¥¹¥¦¥£¥Ã¥Á¾®Çþ¤Á¤ã¤ó ++¤Ê¤¤¤¹¤Ê¤Ø¤Ã¤É¤Õ¤©¤ó #T35 ¥Ê¥¤¥¹¤Ê¥Ø¥Ã¥É¥Õ¥©¥ó¡ª ++¤Ê¤¨ #KS °à¤¨ ++¤Ê¤¨ #T35 °à¤¨ ++¤Ê¤¨¤Ê¤¤¤ï #JN ¥Ê¥¨¥Ê¥¤¥ï ++¤Ê¤ª¤ê¤ó #T35 ¤Ê¤ª¤ê¤ó ++¤Ê¤«¤¦¤é¤ï¤Î¤Û¤· #T35 Ãæ±ºÏ¤ÎÀ± ++¤Ê¤«¤¸¡¼¤Ô¡¼ #T35 ¤Ê¤«GP ++¤Ê¤«¤¸¤¤¤Ô¤¤ #T35 ¤Ê¤«GP ++¤Ê¤«¤¿¤³ #JN ¤Ê¤«¤¿¤³ ++¤Ê¤«¤¿¤³ #T35 ¤Ê¤«¤¿¤³ ++¤Ê¤«¤¿¤Þ¤´ #T35 ¤Ê¤«Íñ ++¤Ê¤«¤À¤· #T30 ÃæÅÄ»á ++¤Ê¤«¤Ä¤®¤« #T35 Ãæ·Ñ¤®²Ý ++¤Ê¤«¤Î¤Ò¤È #T35 Ãæ¤Î¿Í ++¤Ê¤¬¤·¤½¤¦¤á¤ó #JN ή¤·¤½¤¦¤á¤ó ++¤Ê¤¬¤Ö¤ó¤Î¤«¤ó¤½¤¦¤â¤¸¤ì¤¹¤æ¤¦¤É¤¦¤¢¤¹¤­¡¼¤¢¡¼¤È #JN Ĺʸ¤Î´¶ÁÛʸ»ú¥ì¥¹Í¶Æ³£Á£Á ++¤Ê¤°¤Á¤ã¤ó¤Í¤ë #T35 ¤Ê¤°¤Á¤ã¤ó¤Í¤ë ++¤Ê¤²¤¹¤Æ¤ë¤â¤Ê¡¼ #JN Åꤲ¼Î¤Æ¤ë¥â¥Ê¡¼ ++¤Ê¤´¤ä¤±¤ó #T35 ̾¸Å²°¸© ++¤Ê¤·¤À¤¤ #T35 ̵Âç ++¤Ê¤¾¤Î¤»¤¤¤á¤¤¤¿¤¤ #JN Ææ¤ÎÀ¸Ì¿ÂÎ ++¤Ê¤¾¤Î¤Ë¤Û¤ó¤¸¤ó #JN Ææ¤ÎÆüËÜ¿Í ++¤Ê¤Ã¤Á #JN ¡Ê¡ü¡­¡¼¡®¡ü¡Ë ++¤Ê¤Ã¤Á #JN ¤Ê¤Ã¤Á ++¤Ê¤Ã¤Á #T35 ¤Ê¤Ã¤Á ++¤Ê¤Ã¤Á #T35 °ÂÇÜ ++¤Ê¤Ã¤Á¤¢¤ê¤¬¤È¤¦ #CJ ¤Ê¤Ã¤Á¤¢¤ê¤¬¤È¤¦(¡ü¡­¡¼¡®¡ü) ++¤Ê¤Ã¤Á¤â¤Ê¡¼ #JN ¤Ê¤Ã¤Á¥â¥Ê¡¼ ++¤Ê¤Ã¤Á¤å #T35 ¤Ê¤Ã¤Á¤å ++¤Ê¤Ã¤Á¤å¤¦ #T35 Ǽ¿ß ++¤Ê¤Ä¤Á¤å¤¦ #T35 ²Æ¿ß ++¤Ê¤Ä¤Á¤å¤¦¤Ü¤¦ #T35 ²Æ¿ß˼ ++¤Ê¤Ä¤Ü¤¦ #T35 ²ÆË¼ ++¤Ê¤Ä¤á #JN ¥Ê¥Ä¥á ++¤Ê¤Ê¤µ¤ó #JN £·¤µ¤ó ++¤Ê¤Ê¤·¤µ¤ó #T35 ̵̾¤·¤µ¤ó ++¤Ê¤Ê¤·¤µ¤ó¤×¤é¤º¤Þ #JN ̵̾¤·¤µ¤ó¥×¥é¥º¥Þ ++¤Ê¤Ê¤á¤¦¤¨ #T35 ¼Ð¤á¾å ++¤Ê¤Ê¤á¤«¤Ã¤³¤Ï¤ó¤À¤¯¤Æ¤ó¤¿¡¼¤ó¤¨¡¼¤Ï¤ó¤À¤¯¤Æ¤ó¤«¤Ã¤³¤È¤¸¤Ê¤Ê¤á¤×¤ë¤Ã¤Ñ¤Û¤· #JN ¡À(¡¬¢Ï¡¬)¡¿¥×¥ë¥Ã¥Ñ¡ù ++¤Ê¤Ê¤á¤«¤Ã¤³¤Ï¤ó¤À¤¯¤Æ¤ó¤¿¡¼¤ó¤¨¡¼¤Ï¤ó¤À¤¯¤Æ¤ó¤«¤Ã¤³¤È¤¸¤Ê¤Ê¤á¤×¤ë¤Ã¤Ñ¤Û¤· #JN ¡À(Žß¢ÏŽß)¡¿ŽÌŽßŽÙޝŽÊŽß¡ù ++¤Ê¤Ë¤¤¤Ã¤Æ¤ë¤Õ¤á¤¤ #CJ ²¿¸À¤Ã¤Æ¤ëÉÔÌÀ ++¤Ê¤Ë¤« #KK ²¿¤« ++¤Ê¤Ë¤« #T35 ²¿¤« ++¤Ê¤Ë¤«¤¢¤ë #CJ ¤Ê¤Ë¤«¤¢¤ë¡© ++¤Ê¤Ë¤«¤Ë¤ª¤Ó¤¨¤ë¤®¤³ #JN ((¡¨Žß§¥Žß)޶ŽÞޏ޶ŽÞޏŽÌŽÞŽÙŽÌŽÞŽÙ ++¤Ê¤Ë¤«¤Ë¤ª¤Ó¤¨¤ë¤®¤³ #JN ²¿¤«¤Ë¶±¤¨¤ë¥®¥³ ++¤Ê¤Ë¤µ¤Þ #JN ²¿ÍÍ ++¤Ê¤Ë¤µ¤Þ #T35 ²¿ÍÍ ++¤Ê¤Ë¤ß¤Æ¤ó¤À¤è¤µ¤ë #JN ²¿¸«¤Æ¤ó¤À¤è±î ++¤Ê¤Ë¤ç¤ê¡¼¤Ê #JN ŽÅޯޮިްŽÅ ++¤Ê¤Î¤é #SUC ¤Ê¤Î¤é ++¤Ê¤Î¤é¤¢ #CJ ¤Ê¤Î¤é¡Á ++¤Ê¤Þ¤¢¤¤¤Ô¤¤ #T35 À¸IP ++¤Ê¤Þ¤¢¤¿¤¿¤«¤¯¤ß¤Þ¤â¤ë #CJ ¤Ê¤ÞÃȤ«¤¯¸«¼é¤ë ++¤Ê¤Þ¤³ #T35 ¤Ê¤Þ¤³ ++¤Ê¤Þ¤³¤×¤ì¤¤ #T35 ¤Ê¤Þ¤³¥×¥ì¥¤ ++¤Ê¤Þ¤â¤Î #T35 ¥Ê¥Þ¥â¥Î ++¤Ê¤ß¤«¤ì #CJ ¥Ê¥ß¥«¥ì ++¤Ê¤ß¤À¤Ç¤Þ¤¨¤¬¤ß¤¨¤Þ¤»¤ó #CJ ÎÞ¤ÇÁ°¤¬¸«¤¨¤Þ¤»¤ó¡ª ++¤Ê¤à #JN ¥Ê¥â ++¤Ê¤á¤¯¤¸ #JN ¥Ê¥á¥¯¥¸ ++¤Ê¤ä¤ß¤¹¤®¤ë¤È¤Ï¤²¤ë #T35 Ǻ¤ß¤¹¤®¤ë¤ÈÆÅ¤²¤ë ++¤Ê¤æ¤­¤°¤ë¤Þ #JN ̾Àã¼Ö ++¤Ê¤ê¤­¤ê¤¹¤ì #T35 ¤Ê¤ê¤­¤ê¥¹¥ì ++¤Ê¤ê¤¹¤Þ #S5r ¤Ê¤ê¤¹¤Þ ++¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É #JN ¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É ++¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É #JN ¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É ++¤Ê¤ê¤Ð¤ó #T35 ¥Ê¥ê¥Ð¥ó ++¤Ê¤ì¤¢ #W5 Æë¤ì¹ç ++¤Ê¤ì¤¢¤¤ #T35 Æë¤ì¹ç¤¤ ++¤Ê¤í #CJ ¤Ê¤í ++¤Ê¤ó¤¬¤ó¤Æ¤¤¤­¤¢¤Ä #JN Æî´ßÄ㵤°µ ++¤Ê¤ó¤±¤¤¤Ð #T35 ¤Ê¤ó¶¥ÇÏ ++¤Ê¤ó¤À¤«¤Ê¡¼¤¢¤ó¤É¤µ¤¤¤³¡¼¤À #JN ¥Ê¥ó¥À¥«¥Ê¡¼¡õ¥µ¥¤¥³¡¼¥À ++¤Ê¤ó¤À¤«¤ó¤À #CJ ¤Ê¤ó¤À¤«¤ó¤À ++¤Ê¤ó¤Ä¤Ã¤¿¤ê¤·¤Æ #CJ ¤Ê¤ó¤Ä¤Ã¤¿¤ê¤·¤Æ ++¤Ê¤ó¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦ #CJ ¤Ê¤ó¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦ ++¤Ê¤ó¤Ð¤¢¤¹¤¯¤¦¤ë #T35 ¥Ê¥ó¥Ð¡¼¥¹¥¯¡¼¥ë ++¤Ê¤ó¤ß¤ó #T35 Æṉ̃ ++¤Ê¤ó¤ß¤ó¤¤¤¿ #T35 Æṉ̃ÈÄ ++¤Ê¤ó¤â¤¸¤á¤ò¤¿¤Æ¤è¤ß¤¹¤ë¤Î #CJ ²¿Ê¸»úÌܤò½ÄÆÉ¤ß¤¹¤ë¤Î¡© ++¤Ë #T30 ½ªÅß ++¤Ë #T35 2 ++¤Ë #T35 ½ªÅß ++¤Ë¡¼ #JN ¥Ë¡¼ ++¤Ë¡¼¤¤¤Á¤è¤ó¤¸¤±¤ó #T35 £²¡¦£±£´»ö·ï ++¤Ë¤¤¤Á¤å¤¦ #T35 ny¿ß ++¤Ë¤¤¤Ã¤Ô¤ç¤¦ #CJ ¤Ë°ìɼ ++¤Ë¤­¤³¤¦ #T35 Æó´ü¹» ++¤Ë¤­¤Ó¤¬¤Ç¤­¤¿¤â¤Ê¡¼ #JN ¥Ë¥­¥Ó¤¬½ÐÍ褿¥â¥Ê¡¼ ++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #CJ ¥Ë¥¯¥³¥Ã¥×¥ó¥¯¥¨! ++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #CJ ŽÆŽ¸ŽºŽ¯ŽÌŽßŽÝޏ޴! ++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #JN ¥Ë¥¯¥³¥Ã¥×¥ó¥¯¥¨! ++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #JN ŽÆŽ¸ŽºŽ¯ŽÌŽßŽÝޏ޴! ++¤Ë¤¯¤³¤×¡¼¤ó #CJ (¡¦¢Ï¡¦)¥Ë¥¯¥³¥×¡¼¥ó ++¤Ë¤¯¤³¤×¡¼¤ó #CJ (Ž¥¢ÏŽ¥)ŽÆŽ¸ŽºŽÌŽßްŽÝ ++¤Ë¤¯¤³¤×¡¼¤ó #CJ ¥Ë¥¯¥³¥×¡¼¥ó ++¤Ë¤¯¤³¤×¡¼¤ó #CJ ŽÆŽ¸ŽºŽÌŽßްŽÝ ++¤Ë¤¯¤³¤×¡¼¤ó #JN (Ž¥¢ÏŽ¥)ŽÆŽ¸ŽºŽÌŽßްŽÝ ++¤Ë¤¯¤³¤×¡¼¤ó #JN ¥Ë¥¯¥³¥×¡¼¥ó ++¤Ë¤¯¤³¤×¡¼¤ó #JN ŽÆŽ¸ŽºŽÌŽßްŽÝ ++¤Ë¤¯¤Ï¤ó¤Ë¤ã #KK ÆùÈ̼ã ++¤Ë¤¯¤Ï¤ó¤Ë¤ã #T35 ÆùÈ̼ã ++¤Ë¤¯¤Ù¤ó¤­ #T35 ÆùÊØ´ï ++¤Ë¤²¤Ã¤È #JN 2¥²¥Ã¥È ++¤Ë¤²¤Æ¤§¤Ë¤²¤Æ¤§¤Ë¤²¤Æ¤§¤Ï¤ä¤¯¤Ë¤²¤Æ¤§¤Ã #JN ƨ¤²¤Æ¤§Æ¨¤²¤Æ¤§Æ¨¤²¤Æ¤§Á᤯ƨ¤²¤Æ¤§¥Ã¡ª ++¤Ë¤³¤ì¤Ã¤È #JN ¥Ë¥³¥ì¥Ã¥È ++¤Ë¤· #JN Æó»à ++¤Ë¤· #JNS Æó»à ++¤Ë¤· #T35 Æó»à ++¤Ë¤·¤¿¤ó #JN Æó»à¥¿¥ó ++¤Ë¤·¤¿¤ó #T35 Æó»à¥¿¥ó ++¤Ë¤·¤Æ¤Ä¤Ð¤¹¤¸¤ã¤Ã¤¯¤¸¤±¤ó #KK À¾Å´¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï ++¤Ë¤·¤Æ¤Ä¤Ð¤¹¤¸¤ã¤Ã¤¯¤¸¤±¤ó #T35 À¾Å´¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï ++¤Ë¤·¤å¤¦¤Í¤ó¤¤¤Ù¤ó¤È #T35 £²¼þǯ¥¤¥Ù¥ó¥È ++¤Ë¤¸¤²¤ó #T35 Æó¼¡¸µ ++¤Ë¤¸¤²¤ó¤ª¤¿ #T35 Æó¼¡¸µ¥ª¥¿ ++¤Ë¤¸¤²¤ó¤ò¤¿ #T35 Æó¼¡¸µ¥ò¥¿ ++¤Ë¤¸¤å¤¦ #T35 20 ++¤Ë¤¸¤å¤¦¤Ê¤Ê¤·¤­¤¯¤½¤¹¤ì¤¯¤Á¤¯¤Æ¤¤ #JN 27¼°Êµ¥¹¥ì¶îÃàÄú ++¤Ë¤¸¤å¤Ã¤È¤¦¤·¤ó #T35 20Æ®¿À ++¤Ë¤¸¤ç¤¦¤¬¤ï¤é¤Î¤é¤¯¤·¤ç #T35 Æó¾ò²Ï¸¶¤ÎÍî½ñ ++¤Ë¤»¤¢¤æ #T35 µ¶¤¢¤æ ++¤Ë¤»¤Ï¤ë¤Ê¤¢¤ó¤É¤¦¤Ë¤å¤¦¤ê¡¼¤Ê #JN µ¶½ÕºÚ¡õ¤¦¤Ë¤å¤¦¥ê¡¼¥Ê ++¤Ë¤»¤á¤Ã¤» #T35 µ¶¥á¥Ã¥» ++¤Ë¤»¤â¤Ê¡¼ #JN µ¶¥â¥Ê¡¼ ++¤Ë¤»¤ó¤Î¤ï¤¶ #CJ 2000¤Îµ» ++¤Ë¤À¡¼ #JN ¥Ë¥À¡¼ ++¤Ë¤À¡¼ #JN ŽÆŽÀŽÞް ++¤Ë¤À¡¼¤¿¤¤¤¤ #JN ¥Ë¥À¡¼Âç°Ó ++¤Ë¤À¡¼¤Á¤ç #JN ¥Ë¥À¡¼¥Á¥ç ++¤Ë¤À¤À¡¼ #JN ¥Ë¥À¥À¡¼ ++¤Ë¤À¤À¡¼ #JN ¥Ë¥À¥À¡¼ ++¤Ë¤Á¤ã¤ó #CJ 2ch ++¤Ë¤Á¤ã¤ó #CJ £²¤Á¤ã¤ó ++¤Ë¤Á¤ã¤ó #T35 2ch ++¤Ë¤Á¤ã¤ó #T35 £²¤Á¤ã¤ó ++¤Ë¤Á¤ã¤ó¤µ¤Ð¤«¤Ã¤Æ¤Ê¤«¤ó¤·¤¸¤ç #T35 2ch»ª¾¡¼ê¤Ê´Æ»ë½ê ++¤Ë¤Á¤ã¤ó¤Æ¤­¤Ë¤Ï #CJ £²£ã£èŪ¤Ë¤Ï ++¤Ë¤Á¤ã¤ó¤Æ¤­¤Ò¤ç¤¦¤« #T35 £²£ã£èŪɾ²Á ++¤Ë¤Á¤ã¤ó¤Í¤ë¤¯¤½¤¹¤ì¤Ã¤É¤Ä¤¤¤Û¤¦¤»¤ó¤»¤ó #JN £²¤Á¤ã¤ó¤Í¤ëʵ¥¹¥ì¥Ã¥ÉÄÉÊüÀïÀþ ++¤Ë¤Á¤ã¤ó¤Í¤ë¤°¤ó¤Ý¤¦¤¬¤¤¤® #JN £²£ã£è·³Ë¡²ñµÄ ++¤Ë¤Á¤ã¤ó¤Í¤ë¤µ¤Ý¡¼¤È¤»¤ó¤¿¡¼ #JN £²¤Á¤ã¤ó¤Í¤ë¥µ¥Ý¡¼¥È¥»¥ó¥¿¡¼ ++¤Ë¤Á¤ã¤ó¤Í¤ë¤¼¤ó¤¤¤¿¤Ë¤ó¤­¤È¤¦¤Ê¤á¤ó¤È #T35 2¤Á¤ã¤ó¤Í¤ëÁ´ÈĿ͵¤¥È¡¼¥Ê¥á¥ó¥È ++¤Ë¤Á¤ã¤ó¤Í¤ë¤¿¤¢¤Ü #T35 2¤Á¤ã¤ó¤Í¤ë¥¿¡¼¥Ü ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ä¤¦ #T35 2ch2 ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ä¤¦ #T35 2¤Á¤ã¤ó¤Í¤ë2 ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ê¤Ê¤Á¤å¤¦¤¤¤¿ #CJ £²¤Á¤ã¤ó¤Í¤ë¼·¿ßÈÄ ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ê¤Ê¤Á¤å¤¦¤¤¤¿ #T35 £²¤Á¤ã¤ó¤Í¤ë¼·¿ßÈÄ ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ë #T35 2ch2 ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ë #T35 2¤Á¤ã¤ó¤Í¤ë2 ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Î¤Ï¤ó¤Ö¤ó¤Ï¤Í¤¿¤Ç¤Ç¤­¤Æ¤¤¤Þ¤¹ #CJ 2¤Á¤ã¤ó¤Í¤ë¤ÎȾʬ¤Ï¥Í¥¿¤Ç¤Ç¤­¤Æ¤¤¤Þ¤¹ ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ó¤å¤¦¤¢ #T35 2¤Á¤ã¤ó¤Í¤ë¥Ó¥å¡¼¥¢ ++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ö¤é¤¦¤¶ #T35 2¤Á¤ã¤ó¤Í¤ë¥Ö¥é¥¦¥¶ ++¤Ë¤Á¤ã¤ó¤Ö¤í¤° #T35 2ch-Blog ++¤Ë¤Á¤ã¤ó¤×¤í¤Ð¤¤¤À¤¢ #T35 2ch¥×¥í¥Ð¥¤¥À¡¼ ++¤Ë¤Á¤ã¤ó¤ì¤ó¤á¤¤ #JN 2¤Á¤ã¤óÏ¢ÌÁ ++¤Ë¤Ã¤­ #JN Æüµ­ ++¤Ë¤Ã¤­ #T35 Æüµ­ ++¤Ë¤Ã¤­¡¼ #JN ¥Ë¥Ã¥­¡¼ ++¤Ë¤Ã¤¯¤·¤ó¤»¤¤ #T30 ¥Ë¥Ã¥¯¿½ÀÁ ++¤Ë¤Ã¤»¤¤ #T35 ¥Ë¥Ã¥»¥¤ ++¤Ë¤Ã¤»¤¤ #T35 ÆüÀ ++¤Ë¤Ã¤Ý¤ó¤Ï¤Ï¤ó¤»¤¤¤·¤ë #CJ ÆüËܤÏÈ¿¾Ê¤·¤ë¡ª ++¤Ë¤È¤¦¤¸¤ç¤æ¤¦ #T35 ÆóÅù½÷Í¥ ++¤Ë¤È¤¦¤Ø¤¤ #JN ÆóÅùʼ ++¤Ë¤È¤¦¤Ø¤¤ #T35 ÆóÅùʼ ++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¡¼¤º #SUC ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º ++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¡¼¤º #T35 ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º ++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¤¤¤º #T35 ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º ++¤Ë¤Ï¤ï¤é¤Ã¤¿ #CJ ¤Ë¤Ï¾Ð¤Ã¤¿¡ª ++¤Ë¤Û¤ó¤µ¤ó¤­¤ç¤¦¤À¤¤¤¬¤¯ #T35 ÆüËÜ£³µþÂç³Ø ++¤Ë¤Û¤ó¤»¤¤¤á¤¤ #KK ÆüËÜÀ¸Ì¿ ++¤Ë¤Û¤ó¤Á¤ã¤ó #KK ¥Ë¥Û¥ó¤Á¤ã¤ó ++¤Ë¤Û¤ó¤Á¤ã¤ó #T35 ¥Ë¥Û¥ó¤Á¤ã¤ó ++¤Ë¤ã¤¦ #JN ¤Ë¤ã¤¦¡¡ ++¤Ë¤ä¤Ë¤ä #CJ ¥Ë¥ä¥Ë¥ä ++¤Ë¤ä¤ê #CJ ¡Ê¡±¡¼¡±¡Ë¥Ë¥ä¥ê ++¤Ë¤ä¤ê #CJ ¥Ë¥ä¥ê ++¤Ë¤ä¤ê¤Ã #CJ ¡Ê¡±¡¼¡±¡Ë¥Ë¥ä¥ê¥Ã ++¤Ë¤ä¤ê¤Ã #CJ ¡Ê¡±¡¼¡±¡ËŽÆŽÔިޝ ++¤Ë¤ä¤ê¤Ã #JN ¡Ê¡±¡¼¡±¡ËŽÆŽÔިޝ ++¤Ë¤ä¤ê¤Ã #JN ¥Ë¥ä¥ê¥Ã ++¤Ë¤ä¤ê¤Ã #JN ŽÆŽÔިޝ ++¤Ë¤å¡¼¤¹¤¹¤Æ¡¼¤·¤ç¤ó #KK ¥Ë¥å¡¼¥¹¥¹¥Æ¡¼¥·¥ç¥ó ++¤Ë¤å¤¦¤¹¤½¤¯¤Û¤¦¤×¤é¤¹ #T35 ¥Ë¥å¡¼¥¹Â®Êó+ ++¤Ë¤å¤¦¤½¤¯¤×¤é¤¹¤­¤·¤ã #T35 ¥Ë¥å¡¼Â®+µ­¼Ô ++¤Ë¤ç #RT ¤Ë¤ç ++¤Ë¤ç¤¤¤¬¤¿ #T35 ¥Ë¥ç¥¤³ã ++¤Ë¤ç¤¤¤¬¤¿ #T35 ޯޮ޲³ã ++¤Ë¤ç¤¬¡¼¤ó #CJ (Žß§ÕŽß)ޯޮ޶ŽÞްŽÝ ++¤Ë¤ç¤¬¡¼¤ó #CJ ¥Ë¥ç¥¬¡¼¥ó ++¤Ë¤ç¤¬¡¼¤ó #CJ ޯޮ޶ŽÞްŽÝ ++¤Ë¤ç¤Á¤ó¤À¤ó #T35 ½÷ÄÁÃÄ ++¤Ë¤é¤¤¤à #JN ¥Ë¥é¥¤¥à ++¤Ë¤é¤Á¤ã¤¨¤ë¤»¤¤¤Ð¡¼ #JN ¥Ë¥é¥Á¥ã¥¨¥ë¥»¥¤¥Ð¡¼ ++¤Ë¤é¤Á¤ã¤Å¤Þ #JN ¥Ë¥éÃãºÊ ++¤Ë¤é¤Á¤ã¤Í¤³ #JN ¥Ë¥éÃãÇ­ ++¤Ë¤é¤Á¤ã¤à¤¹¤á #JN ¥Ë¥éÃã̼ ++¤Ë¤é¤à¤· #JN ¥Ë¥éÃî ++¤Ë¤ë¤Ï¡¼¤Ë¤ã¤ó #JN ¤Ë¤ë¤Ï¡¼¤Ë¤ã¤ó ++¤Ë¤ï¤« #T35 ¥Ë¥ï¥« ++¤Ë¤ï¤«¤é¤·¤ê¡¼¤º #CN Äí¤«¤é¥·¥ê¡¼¥º ++¤Ë¤ï¤«¤é¤·¤ê¡¼¤º #T35 Äí¤«¤é¥·¥ê¡¼¥º ++¤Ë¤ï¤«¤é¤·¤ê¤¤¤º #T35 Äí¤«¤é¥·¥ê¡¼¥º ++¤Ë¤ó¤¤¤¿¤ó #JN Ǥ°Õ¤¿¤ó ++¤Ë¤ó¤·¤ó #KK Ç¥¿± ++¤Ë¤ó¤·¤ó #T35 Ç¥¿± ++¤Ë¤ó¤¸¤ã #JN ¥Ë¥ó¥¸¥ã ++¤Ë¤ó¤Æ¤ó¤É¤¦¤«¤¤¤°¤ó¤³¤¦¤¯¤¦¤¿¤¤ #T35 ǤŷƲ³¤·³¹Ò¶õÂâ ++¤Ë¤ó¤é¤¤¤ó #T35 Ǧ¥é¥¤¥ó ++¤Ì¡¼¤ë #T35 ¥Ì¡¼¥ë ++¤Ì¤¦¤¬¤¿ #CN ¤Ì¤¦¤¬¤¿ ++¤Ì¤¦¤¬¤¿ #T35 ¤Ì¤¦¤¬¤¿ ++¤Ì¤¦¤ë #T35 ¥Ì¡¼¥ë ++¤Ì¤­¤Ê¤ß #F04 ¤Ì¤­¤Ê¤ß ++¤Ì¤­¤Ê¤ß #T35 ¤Ì¤­¤Ê¤ß ++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #CJ ¥Ì¥Ã¥Ø¥Ã¥Û¡¼ ++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN (Ž¥¢ÏŽ¥¢ÏŽ¥)ŽÇޝŽÍޝŽÎް ++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ¤Ì¤Ã¤Ø¤Ã¤Û¡¼ ++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ¥Ì¥Ã¥Ø¥Ã¥Û¡¼ ++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ŽÇޝŽÍޝŽÎް ++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #T35 (¡¦¢Ï¡¦¢Ï¡¦)¥Ì¥Ã¥Ø¥Ã¥Û¡¼ ++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #T35 (Ž¥¢ÏŽ¥¢ÏŽ¥)ŽÇޝŽÍޝŽÎް ++¤Ì¤Ã¤Ý¤ó #T35 ¥Ì¥Ã¥Ý¥ó ++¤Ì¤Þ¤Ã¤­ #KK ¤Ì¤Þ¤Ã¤­ ++¤Ì¤Þ¤Ã¤­ #T35 ¤Ì¤Þ¤Ã¤­ ++¤Ì¤ê¤«¤Ù¤â¤Ê¡¼ #JN ¤Ì¤êÊÉ¥â¥Ê¡¼ ++¤Ì¤ë #KY ¥Ì¥ë ++¤Ì¤ë¤Ý #T35 ¤Ì¤ë¤Ý ++¤Í #CJ ne¡ª ++¤Í¡¼¤Î #JN ¥Í¡¼¥Î ++¤Í¡¼¤è¤ª¤Ö¤Í¡¼¤è #JN ¥Í¡¼¥è¡¦¥ª¥Ö¡¦¥Í¡¼¥è ++¤Í¡¼¤è¤É¤¦¤á¤¤ #JN ¥Í¡¼¥èƱÌÁ ++¤Í¤¨ #JN ¤Í¤¨ ++¤Í¤¨¤Í¤¨ #CJ ¤Í¤§¤Í¤§ ++¤Í¤¨¤Ü¤¯¤¹¤´¤¤¤Ç¤·¤ç #JN ¤Í¤¨¤Ü¤¯¤¹¤´¤¤¤Ç¤·¤ç ++¤Í¤ª¤¦¤¦¤í¤ó¤Á¤ã #T35 ¥Í¥ª±¨Î¶Ãã ++¤Í¤ª¤¿¤¤¤Æ¤¤ #JN ¥Í¥ªÂçÄë ++¤Í¤ª¤à¤®¤Á¤ã #JN ¥Í¥ª¤à¤®Ãã ++¤Í¤ª¤à¤®¤Á¤ã #JN ¥Í¥ªÇþÃã ++¤Í¤«¤Þ #T30 ¥Í¥«¥Þ ++¤Í¤«¤Þ #T35 ¥Í¥«¥Þ ++¤Í¤® #CN ¤Í¤® ++¤Í¤® #CN ¥Í¥® ++¤Í¤® #T35 ¤Í¤® ++¤Í¤® #T35 ¥Í¥® ++¤Í¤¯¤í¤Þ¤é¤é¡¼ #JN ¥Í¥¯¥í¥Þ¥é¥é¡¼ ++¤Í¤³¤À¤¤¤¹¤­ #CJ ¤Í¤³Âç¹¥¤­ ++¤Í¤³¤ä¤·¤­ #CN Ç­²°Éß ++¤Í¤³¤ä¤·¤­ #T35 Ç­²°Éß ++¤Í¤¹ #JN ¥Í¥¹ ++¤Í¤¹¤±¤·¤ó¤¸¤ã #T35 ¥Í¥¹¥±¿®¼Ô ++¤Í¤¹¤â¤Ê¡¼ #JN ¥Í¥¹¥â¥Ê¡¼ ++¤Í¤º¤ß¤ª¤È¤³ #JN ¥Í¥º¥ßÃË ++¤Í¤º¤ß¤Ï¤é¤æ¤¦¤¶¤ó #JN Á͸¶Íº»° ++¤Í¤¿ #T35 ¥Í¥¿ ++¤Í¤¿¤·¤ç¤¯¤Ë¤ó¤¹¤ì #T35 ¥Í¥¿¿¦¿Í¥¹¥ì ++¤Í¤¿¤¹¤ì #T35 ¥Í¥¿¥¹¥ì ++¤Í¤¿¤À¤í #CJ ¥Í¥¿¤À¤í¡© ++¤Í¤¿¤Ð¤é¤·¤Á¤å¤¦ #T35 ¥Í¥¿¤Ð¤é¤·¿ß ++¤Í¤Á¤±¤Ã¤È¤¸¤¤¤µ¤ó #JN ¥Í¥Á¥±¥Ã¥È¤¸¤¤¤µ¤ó¡¡ ++¤Í¤Á¤º¤ó #T35 ¥Í¥Á¥º¥ó ++¤Í¤Á¤º¤ó #T35 ÙÔ¥Á¥º¥ó ++¤Í¤Á¤å¤¦ #T35 ¥Í¿ß ++¤Í¤Á¤ó #T35 ¥ÍÄÁ ++¤Í¤Ã¤È¤Á¤ó #T35 NetÄÁ ++¤Í¤Ã¤È¤×¤ì¤¤¤ä¤¢ #T35 ¥Í¥Ã¥È¥×¥ì¥¤¥ä¡¼ ++¤Í¤Ã¤È¤é¤ó¤Ê¤¢ #KK ¥Í¥Ã¥È¥é¥ó¥Ê¡¼ ++¤Í¤Ê¤Ù #T35 ¥Í¥Ê¥Ù ++¤Í¤Ë¤Á¤ê¡¼¤ó #JN ¡Ê¡¦¢Ï¡¦¡ËŽÈŽÆŽÁިްŽÝ ++¤Í¤Ë¤Á¤ê¡¼¤ó #JN ¥Í¥Ë¥Á¥ê¡¼¥ó ++¤Í¤Ë¤Á¤ê¡¼¤ó #T35 ¥Í¥Ë¥Á¥ê¡¼¥ó ++¤Í¤á¤ó¤Ê #CJ ¤Í¤á¤ó¤Ê ++¤Í¤é¤¢ #T35 ¥Í¥é¡¼ ++¤Í¤é¤ó¤Á¤å¤¦ #T35 ¥Í¥é¥ó¿ß ++¤Í¤ì #CJ ¿²¤ì ++¤Í¤ó¤Á¤ã¤¯ #T35 Ç´Ãå ++¤Í¤ó¤Á¤ã¤¯¤¯¤ó #T35 Ç´Ãå·¯ ++¤Í¤ó¤Ö¤Ä¤·¤å¤¦¤È¤¦¤ß¤«¤¤ #KK ǰʩ½¡Åϳ¤²ñ ++¤Í¤ó¤Ö¤Ä¤·¤å¤¦¤È¤¦¤ß¤«¤¤ #T35 ǰʩ½¡Åϳ¤²ñ ++¤Í¤ó¤ê¤ç¤¦ #T35 dzÎÁ ++¤Î¡¼¤Á¤ã¤ó #JN ¤Î¡¼¤Á¤ã¤ó ++¤Î¡¼¤Í #JN ¥Î¡¼¥Í ++¤Î¤¢¤ª¤¿ #T35 ¥Î¥¢¥ª¥¿ ++¤Î¤¤¤Ã¤Ñ¤ó¤Æ¤­¤Ê¤È¤¯¤Á¤ç¤¦ #SUC ¤Î°ìÈÌŪ¤ÊÆÃħ ++¤Î¤¦¤« #JN ÇÀ²È ++¤Î¤¦¤­¤ç¤¦ #T35 ÇÀ¶¨ ++¤Î¤¦¤Ê¤¤ #T35 ǾÆâ ++¤Î¤¦¤Ê¤¤¤¢¤Ü¡¼¤ó #T30 ǾÆâ¤¢¤Ü¡¼¤ó ++¤Î¤ª¤È¤ó¤»¤ó¤»¤¤ #T35 ¥Î¡¼¥È¥óÀèÀ¸ ++¤Î¤ª¤È¤ó¤È¤é¤Ã¤× #T35 ¥Î¡¼¥È¥ó¥È¥é¥Ã¥× ++¤Î¤« #CJ ¤Î¤« ++¤Î¤« #SUC ¤Î¤« ++¤Î¤«¡¼ #JN ¥Î¥«¡¼ ++¤Î¤°¤½ #T35 NGS ++¤Î¤¹¤¿¤ë¤Ï #T35 ¥Î¥¹¥¿¥ëÇÈ ++¤Î¤Î¤½¡¼¤ê #JN ¤Î¤ÎÁíÍý ++¤Î¤Î¤¿¤ó #JN ¤Î¤Î¤¿¤ó ++¤Î¤Î¤¿¤ó #T35 ¤Î¤Î¤¿¤ó ++¤Î¤Î¤¿¤ó #T35 ÄÔ ++¤Î¤Ó #KSr ¿­¤Ó ++¤Î¤Ó¤Î¤Ó¤·¤¿¤ä¤Ä #JN ¤Î¤Ó¤Î¤Ó¤·¤¿¥ä¥Ä ++¤Î¤Ó¤ç¤ß¤å¤¢¤¢¤à #JN ¥Î¥Ó¥ç¥ß¥å¥¢¥¡¥à ++¤Î¤Ó¤ç¤ß¤å¤¢¤¢¤à #JN ŽÉŽËŽÞŽ®ŽÐޭޱާŽÑ ++¤Î¤Ö¤ä¤Ü #T35 ¤Î¤Ö¤ä¤Ü ++¤Î¤è¤«¤ó #CJ ¤Îͽ´¶!! ++¤Î¤é¤Ê¤Ã¤Á #JN ÌîÎɤʤäÁ ++¤Î¤é¤Í¤³ #JN ÌîÎÉÇ­ ++¤Î¤ê #T35 ³¤ÂÝ ++¤Î¤ê¤ò #T35 ¥Î¥ê¥ò ++¤Î¤í¤¤¤Þ¤¢¤¹ #CJ ¼ö¤Þ¡¼¤¹ ++¤Î¤í¤¾¤¦ #T35 ¤Î¤í¤¾¤¦ ++¤Î¤ó¤¹¤Æ #T35 ¥Î¥ó¥¹¥Æ ++¤Ï #KK ÍÕ ++¤Ï #T35 ÍÕ ++¤Ï¤¡ #CJ ¥Ï¥¡¡© ++¤Ï¤¡ #JN ¡Ê¡ë§¥¡ë)ŽÊާ¡© ++¤Ï¤¡ #JN ¥Ï¥¡? ++¤Ï¤¡¤Ï¤¡ #CJ (;¡­§¥¡®)¥Ï¥¡¥Ï¥¡ ++¤Ï¤¡¤Ï¤¡ #CJ (;¡­§¥¡®)ŽÊާŽÊާ ++¤Ï¤¡¤Ï¤¡ #CJ ¥Ï¥¡¥Ï¥¡ ++¤Ï¤¡¤Ï¤¡ #CJ ŽÊާŽÊާ ++¤Ï¤¡¤Ï¤¡ #JN (;¡­§¥¡®)ŽÊާŽÊާ ++¤Ï¤¡¤Ï¤¡ #JN ¥Ï¥¡¥Ï¥¡ ++¤Ï¤¡¤Ï¤¡ #JN ŽÊާŽÊާ ++¤Ï¤¡¤Ï¤¡ #T30 ¥Ï¥¡¥Ï¥¡ ++¤Ï¤¡¤Ï¤¡ #T30 ŽÊާŽÊާ ++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #CJ ŽÊާŽÊާ¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä ++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #JN ¥Ï¥¡¥Ï¥¡¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä ++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #JN ŽÊާŽÊާ¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä ++¤Ï¤¢ #CJ ¤Ï¤¡¡© ++¤Ï¤¢ #JN ¡Ê¡ë§¥¡ë)ŽÊާ¡© ++¤Ï¤¢¤Ï¤¢ #CJ ¥Ï¥¡¥Ï¥¡ ++¤Ï¤¤¤­¤ç #CN ÇÑÔÒ ++¤Ï¤¤¤­¤ç #T35 ÇÑÔÒ ++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ¡³¡ÌŽß§¥Žß¡ÍШŽÊŽ²Ž½ŽºŽÞŽ²Ž½ŽºŽÞ޲ ++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ¥Ï¥¤¥¹¥´¥¤¥¹¥´¥¤ ++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ŽÊŽ²Ž½ŽºŽÞŽ²Ž½ŽºŽÞ޲ ++¤Ï¤¤¤½¤Ê¤»¤ì¤Ö¤Ë¤Þ¤¿¤¤¤Ã¤Ý #CJ ¥Ï¥¤¥½¤Ê¥»¥ì¥Ö¤Ë¤Þ¤¿°ìÊâ¶á¤Å¤­¤Þ¤·¤¿¤Ç¤¹¡£ ++¤Ï¤¤¤Ã¤¤¤½¤¦ #CJ Æþ¤Ã¤¤¤½¤¦ ++¤Ï¤¤¤É #JN ¤Ï¤¤¤É ++¤Ï¤¤¤É #T35 ¤Ï¤¤¤É ++¤Ï¤¤¤à¤Ä #T35 ³¥¥à¥Ä ++¤Ï¤«¡¼ #T35 ¥Ï¥«¡¼ ++¤Ï¤«¡¼ #T35 Ê衼 ++¤Ï¤«¤¢ #T35 ¥Ï¥«¡¼ ++¤Ï¤«¤¢ #T35 Ê衼 ++¤Ï¤«¤® #KK ÍÕ¸° ++¤Ï¤«¤®¤¤¤¿ #CN ÍÕ¸°ÈÄ ++¤Ï¤«¤®¤¤¤¿ #T35 ÍÕ¸°ÈÄ ++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤ª¤È¤³¤È¡¼¤Ê¤á¤ó¤È #T35 ÍÕ¸°ÈĺÇdz¤¨Ã˥ȡ¼¥Ê¥á¥ó¥È ++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #KK ÍÕ¸°ÈĺÇ˨¥È¡¼¥Ê¥á¥ó¥È ++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #T35 ÍÕ¸°ÈĺÇ˨¥È¡¼¥Ê¥á¥ó¥È ++¤Ï¤«¤®¤»¤ó¤½¤¦ #T35 ÍÕ¸°ÀïÁè ++¤Ï¤«¤®¤Á¤å¤¦ #T35 ÍÕ¸°¿ß ++¤Ï¤«¤®¤Ã¤³ #T35 ÍÕ¸°¤Ã»Ò ++¤Ï¤­¤å¤¦¤ó #CJ HQN ++¤Ï¤®¤¤¤¿ #CN ÇëÈÄ ++¤Ï¤®¤¤¤¿ #T35 ÇëÈÄ ++¤Ï¤®¤ï¤é #CJ (Ç븶 ++¤Ï¤®¤ï¤é #CJ Ç븶 ++¤Ï¤¯ #T30 ¥Ï¥¯ ++¤Ï¤¯¤½¤ê¡¼¤Ê¤Ø #JN ¤Ï¤¯¤½¥ê¡¼¥Ê¤Ø ++¤Ï¤¯¤À¤Ä¤Á¤å¤¦ #T35 ÇíÃ¥¿ß ++¤Ï¤¯¤Á #T35 ÇòÃÔ ++¤Ï¤°¤­ #JN »õ·Ô ++¤Ï¤°¤­ #T35 »õ·Ô ++¤Ï¤°¤ë¤Þ¤ª¤¦ #JN »õ¼Ö²¦ ++¤Ï¤°¤ë¤Þ¤ï¤ó¤Á¤§¤ó #JN »õ¼Ö¥ï¥ó¥Á¥§¥ó ++¤Ï¤°¤ë¤Þ¤ï¤ó¤Á¤§¤ó #JN »õ¼Ö¥ï¥ó¥Á¥§¥ó¡Ê²¾¾Î¡Ë ++¤Ï¤°¤ì¤Ê¤Þ¤³ #T35 ¤Ï¤°¤ì¤Ê¤Þ¤³ ++¤Ï¤±¡¼¤ó #T30 ¥Ï¥±¡¼¥ó ++¤Ï¤±¡¼¤ó #T30 ŽÊ޹ްŽÝ ++¤Ï¤² #T35 »³²¼ ++¤Ï¤²¤·¤¯¤¯¤Î¤¤¤Á #JN ·ã¤·¤¯¤¯¥Î°ì ++¤Ï¤²¤·¤¯¤À¤ß¡¼ #JN ·ã¤·¤¯¥À¥ß¡¼ ++¤Ï¤²¤·¤¯¤É¤¥¤¤¤¨ #CJ ·ã¤·¤¯¥É¥¥¥¤¥¨¡ª ++¤Ï¤²¤·¤¯¤É¤¦¤¤ #CJ ·ã¤·¤¯Æ±°Õ¡ª ++¤Ï¤²¤·¤¯¤É¤¦¤Ò #CJ ·ã¤·¤¯Æ±Èô¡ª ++¤Ï¤²¤·¤¯¤Ë¤ç¤¦¤¤ #CJ ·ã¤·¤¯Ç¢°Õ¡ª ++¤Ï¤²¤·¤¯¤Ë¤ó¤¸¤ã #JN ·ã¤·¤¯Ç¦¼Ô ++¤Ï¤²¤·¤¯¤Ò¤ç¤¦¤¤ #CJ ·ã¤·¤¯Øá°Í¡ª ++¤Ï¤²¤É¤¦ #CJ ¤Ï¤²¤É¤¦ ++¤Ï¤²¤É¤¦ #CJ ÆÅƱ ++¤Ï¤²¤É¤¦ #T30 ¤Ï¤²¤É¤¦ ++¤Ï¤²¤É¤¦ #T30 ÆÅƱ ++¤Ï¤²¤â¤Ê¡¼ #JN hage¥â¥Ê¡¼ ++¤Ï¤²¤ó¤ê¤·¤å¤® #T35 ÍÕ¸¶Íý¼çµÁ ++¤Ï¤³¤³¤Ç¤¹¤« #CJ ¤Ï¤³¤³¤Ç¤¹¤«¡© ++¤Ï¤³¤³¤Ç¤¹¤« #SUC ¤Ï¤³¤³¤Ç¤¹¤«¡© ++¤Ï¤·¤ë¤ó¤Ç¤¹ #T35 Áö¥ë¥ó¤Ç¤¹ ++¤Ï¤¸¤Ã¤³ #T35 ÃÑ¤Ã»Ò ++¤Ï¤¸¤ë¤¹ #T35 ¤Ï¤¸¤ë¤¹ ++¤Ï¤¹ #T35 Ï¡ ++¤Ï¤¹¤³¤é #T35 Ï¡¥³¥é ++¤Ï¤º #T35 ¥Ï¥º ++¤Ï¤Á¤¤¤Á¤´¤¸¤±¤ó #T35 £¸£±£µ»ö·ï ++¤Ï¤Á¤¬¤Ä¤­¤­ #T35 £¸·î´íµ¡ ++¤Ï¤Á¤¸¤ç¤¦¤¸¤Þ¤¸¤«¤ó¤«¤ó¤ê¤»¤ó¤¿¡¼ #JN Ȭ¾æÅç»þ´Ö´ÉÍý¥»¥ó¥¿¡¼ ++¤Ï¤Á¤Á¤Á #T35 ¤Ï¤Á¤Á¤Á ++¤Ï¤Á¤È¤¦¤·¤ó¤Î #RT £¸Æ¬¿È¤Î¡¡ ++¤Ï¤Á¤È¤¦¤·¤ó¤Î¤Þ¤ë¤Þ¤ë #JN £¸Æ¬¿È¤Î¡û¡û¡¡ ++¤Ï¤Ã¤«¡¼ #T35 ¥Ï¥Ã¥«¡¼ ++¤Ï¤Ã¤«¤¢ #T35 ¥Ï¥Ã¥«¡¼ ++¤Ï¤Ã¤¯¤é¤¤¤¿ #CN ¥Ï¥Ã¥¯¥éÈÄ ++¤Ï¤Ã¤¯¤é¤¤¤¿ #T35 ¥Ï¥Ã¥¯¥éÈÄ ++¤Ï¤Ã¤·¤å #T35 ¥Ï¥Ã¥·¥å ++¤Ï¤Ã¤»¤ó¤Á¤å¤¦ #T35 8000¿ß ++¤Ï¤Ã¤Á¤ã¤±¤Æ¤°¤¥ #CJ ¤Ï¤Ã¤Á¤ã¤±¤Æ¥°¥¥ ++¤Ï¤Ã¤Æ¤ó #T35 hatten ++¤Ï¤Ã¤Æ¤ó #T35 ¥Ï¥Ã¥Æ¥ó ++¤Ï¤Ã¤Æ¤ó¤¯¤ó #JN hatten·¯ ++¤Ï¤Ã¤Æ¤ó¤·¤Í¡¼¤è #JN ȯŸ¥·¥Í¡¼¥è ++¤Ï¤Ã¤È¤¦¤·¤ó¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN £¸Åù¿È¤ª¤Ë¤®¤ê¥â¥Ê¡¼ ++¤Ï¤Ã¤È¤¦¤·¤ó¤®¤³ #JN ȬƬ¿È¥®¥³ ++¤Ï¤Ã¤È¤¦¤·¤ó¤»¤ó¤è¤¦¤¬¤¯¤ä¤¦¤é¤³¤¿¤Ä #JN ȬƬ¿ÈÀìÍѳڲ°Î¢ßÙßý ++¤Ï¤Ã¤È¤¦¤·¤ó¤á¤ó¤É¤¯¤»¤§ #JN ȬƬ¿ÈŽÒŽÝŽÄŽÞŽ¸Ž¾Žª ++¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼ #JN £¸Æ¬¿È¥â¥Ê¡¼ ++¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼¤¯¤ó #JN £¸¤È¤¦¤·¤ó¥â¥Ê¡½¤¯¤ó ++¤Ï¤Ã¤È¤¦¤·¤ó¤ò¤Û¤í¤Ü¤¹¤Ë¤»¤¤¤Á¤µ¤ó #JN £¸Æ¬¿È¤òÌǤܤ¹µ¶£±¤µ¤ó ++¤Ï¤Ã¤Ñ #T35 ÍÕ¤ÃÇÉ ++¤Ï¤Ã¤Ñ¤¿¤¤ #JN ¤Ï¤Ã¤ÑÂâ ++¤Ï¤Ã¤Ô¤¤¤Ä¤ê¤¤¤Õ¤ì¤ó¤º #T35 HappyTreeFriends ++¤Ï¤Ä¤·¤Ð¤ê¤Ã¤¯ #T35 ½é¼Ç¥ê¥Ã¥¯ ++¤Ï¤Ä¤É¤¦ #T30 ȯư ++¤Ï¤Ä¤Ò¤Î¤Ç¤Á¤ó¤½¤¦ #T30 ½éÆü¤Î½Ð¡ùÄÁÁö ++¤Ï¤Ç¤¹¤á¤ó¤Ð¡¼ #KK ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼ ++¤Ï¤Ç¤¹¤á¤ó¤Ð¡¼ #T35 ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼ ++¤Ï¤Ç¤¹¤á¤ó¤Ð¤¢ #T35 ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼ ++¤Ï¤È #JN È· ++¤Ï¤È #T35 È· ++¤Ï¤È¤¢¤Ë #JN È··» ++¤Ï¤È¤¢¤Ë #T35 È··» ++¤Ï¤È¤ª¤È¤¦¤È #JN È·Äï ++¤Ï¤È¤ª¤È¤¦¤È #T35 È·Äï ++¤Ï¤È¤ä¤Þ¤æ¤­¤ª #JN È·»³Í³µªÉ× ++¤Ï¤É¤¦¤Û¤¦ #JN ÇÈÆ°Ë¤ ++¤Ï¤Ê #T35 ²Ú ++¤Ï¤Ê¤² #JN É¡ÌÓ ++¤Ï¤Ê¤² #T35 É¡ÌÓ ++¤Ï¤Ê¤Ü¤¦¤· #JN ²Ö˹»Ò ++¤Ï¤Ë¤ã¤ó¤¾¤¦ #JN ¥Ï¥Ë¥ã¥ó¢ ++¤Ï¤Í¤À #T35 Ä·¤Í¤À ++¤Ï¤Þ #T35 ¤Ï¤Þ ++¤Ï¤Þ #T35 ¥Ï¥Þ ++¤Ï¤Þ¤Þ¤Ä¤ê #T35 ¤Ï¤Þº×¤ê ++¤Ï¤à #KK ¸ø ++¤Ï¤à #T35 ¸ø ++¤Ï¤à¤³ #JNM ¥Ï¥à»Ò ++¤Ï¤à¤³ #T35 ¥Ï¥à»Ò ++¤Ï¤à¤¹¤¿¡¼ #JN ¡¡¡¡¡¡¡Ê,¡Ë¡¡¡¡¡¡¡¡¡Á("¡¦) ++¤Ï¤à¤¹¤¿¡¼ #JN ¥Ï¥à¥¹¥¿¡¼ ++¤Ï¤à¤¿¤í¤¦ #JN ¥Ï¥àÂÀϺ ++¤Ï¤à¤Ê¤×¤È¤é #JN ¥Ï¥à¥Ê¥×¥È¥é ++¤Ï¤ä¤¯¤¢¤ä¤Þ¤ì¤è #CJ Á᤯¼Õ¤ì¤è ++¤Ï¤ä¤ß¤Þ¤¹¤ß #JN ®¿å¿¿À¡ ++¤Ï¤é¤·¤Þ #T35 ¥Ï¥é¥·¥Þ ++¤Ï¤é¤·¤Þ¤ó #T35 ¥Ï¥é¥·¥Þ¥ó ++¤Ï¤ê¡¼¤Ý¤Ã¤¿¡¼¤È¤Ø¤É¤¦¤£¤° #JN ¥Ï¥ê¡¼¡¦¥Ý¥Ã¥¿¡¼¤È¥Ø¥É¥¦¥£¥° ++¤Ï¤ë¤¤¤Á¤Ð¤ó #JN ½Õ°ìÈÖ ++¤Ï¤ë¤¤¤Á¤Ð¤ó #T35 ½Õ°ìÈÖ ++¤Ï¤ë¤« #T35 ¥Ï¥ë¥« ++¤Ï¤ë¤Á¤å¤¦ #T35 ½Õ¿ß ++¤Ï¤ë¤ä¤Þ #JNS ½Õ»³ ++¤Ï¤ï¤é¤Ã¤¿ #CJ ¤Ï¾Ð¤Ã¤¿¡ª ++¤Ï¤ï¤é¤Ã¤¿ #SUC ¤Ï¾Ð¤Ã¤¿¡ª ++¤Ï¤ó¤«¤¯ #T35 ¤Ï¤ó¤«¤¯ ++¤Ï¤ó¤«¤¯¤«¤Ê #T35 Ⱦ³Ñ¥«¥Ê ++¤Ï¤ó¤«¤¯¤«¤Ê¤¤¤¿ #T35 Ⱦ³Ñ¤«¤ÊÈÄ ++¤Ï¤ó¤«¤¯¤Ë¤¸¤²¤ó¤¤¤¿ #T35 Ⱦ³ÑÆó¼¡¸µÈÄ ++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä #T35 Ⱦ³Ñʸ»úÎó ++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #CN Ⱦ³Ñʸ»úÎóÈÄ ++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #KK Ⱦ³Ñʸ»úÎóÈÄ ++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #T35 Ⱦ³Ñʸ»úÎóÈÄ ++¤Ï¤ó¤­¤å¤¦ #KK ȾµÙ ++¤Ï¤ó¤­¤å¤¦ #KK Ⱦµå ++¤Ï¤ó¤­¤å¤¦ #T35 ȾµÙ ++¤Ï¤ó¤­¤å¤¦ #T35 Ⱦµå ++¤Ï¤ó¤­¤å¤¦¤Ï¤º #T35 ÈȵçŽÊ޽ŽÞ ++¤Ï¤ó¤°¤ë¤¤¤¿¤À¤¤¤¤¤Á¤Û¤¦¤½¤¯ #T35 ¥Ï¥ó¥°¥ëÈÄÂè°ìˡ§ ++¤Ï¤ó¤³¤¦¤è¤³¤¯ #T30 ÈȹÔͽ¹ð ++¤Ï¤ó¤³¤¦¤è¤³¤¯¤¹¤ì #T35 ÈȹÔͽ¹ð¥¹¥ì ++¤Ï¤ó¤·¤ó¤À¤¤¤·¤ó¤µ¤¤¤Ï¤ï¤é¤¨¤¿ #CJ ºå¿ÀÂç¿ÌºÒ¤Ï¾Ð¤¨¤¿¡ª ++¤Ï¤ó¤¸¤ã¤¤¤·¤ã #T35 ÈȺá¼Ô ++¤Ï¤ó¤º¤Ü¤ó¤· #T35 Ⱦ¥º¥Ü¥ó»á ++¤Ï¤ó¤»¤¤¤·¤ë¤ª¤¸¤µ¤ó #JN È¿¾Ê¤·¤ë¤ª¤¸¤µ¤ó ++¤Ï¤ó¤»¤¤¤·¤ë¤ª¤¸¤µ¤ó #T35 È¿¾Ê¤·¤ë¤ª¤¸¤µ¤ó ++¤Ï¤ó¤½¤¦¤ª¡¼¤ë¤¹¤¿¡¼ #JN ÈÂÁ÷¥ª¡¼¥ë¥¹¥¿¡¼ ++¤Ï¤ó¤Á¤ó #T35 ÈÈÄÁ ++¤Ï¤ó¤È¤¦ #T35 ȾÅç ++¤Ï¤ó¤É¤ë #T35 ¥Ï¥ó¥É¥ë ++¤Ï¤ó¤É¤ë¤Í¡¼¤à #T35 ¥Ï¥ó¥É¥ë¥Í¡¼¥à ++¤Ï¤ó¤É¤ë¤Í¤¨¤à #T35 ¥Ï¥ó¥É¥ë¥Í¡¼¥à ++¤Ï¤ó¤Ë¤ã #SUC È̼ã ++¤Ï¤ó¤Ë¤ã¤·¤ó¤®¤ç¤¦ #JN È̼㿴·Ð ++¤Ï¤ó¤Î¤¦ #T35 ȾǾ ++¤Ð¡¼ #JN BAR ++¤Ð¡¼ #T35 ¥Ð¡¼ ++¤Ð¡¼¤¸¤ó¤­¤é¡¼¤¢¤Ù¤ë #JN ½è½÷¥­¥é¡¼¥¢¥Ù¥ë ++¤Ð¡¼¤¿¤ì #T35 ¥Ð¡¼¥¿¥ì ++¤Ð¡¼¤Á¤ã¤Í¤Ã¤È¤¢¤¤¤É¤ë¤Ë¤·¤à¤é¤Ò¤í¤³12¤µ¤¤ #JN ¥Ð¡¼¥Á¥ã¥ë¥Í¥Ã¥È¥¢¥¤¥É¥ëÀ¾Â¼Çî»Ò£±£²ºÐ ++¤Ð¡¼¤Á¤ã¤ë¤Í¤Ã¤È¤¢¤¤¤É¤ë¤¨¤ë¤¨¤ë¤¨¤ë #JN ¥Ð¡¼¥Á¥ã¥ë¥Í¥Ã¥È¥¢¥¤¥É¥ëLLL ++¤Ð¡¼¤Ü¤Ã¤È #JN ¥Ð¡¼¥Ü¥Ã¥È ++¤Ð¡¼¤ä #JN ¥Ð¡¼¥ä ++¤Ð¡¼¤ä #T35 ¥Ð¡¼¥ä ++¤Ð¤¢ #T35 ¥Ð¡¼ ++¤Ð¤¢¤¿¤ì #T35 ¥Ð¡¼¥¿¥ì ++¤Ð¤¢¤ä #T35 ¥Ð¡¼¥ä ++¤Ð¤¤¤«¤¯¤â¤¸ #T35 ÇܳÑʸ»ú ++¤Ð¤¤¤¯¤ì¡¼¤¹ #T35 ¥Ð¥¤¥¯¥ì¡¼¥¹ ++¤Ð¤¤¤Ð¤¤ #JN ÊÞ²ÊÞ² ++¤Ð¤¤¤Ð¤¤ #JN ŽÊŽÞ޲ŽÊŽÞ޲ ++¤Ð¤¤¤í¤ó¤â¤ì¤Î #T35 ¥Ð¥¤¥í¥ó¡¦¥â¥ì¥Î ++¤Ð¤«¡¼ #JN ŽÊŽÞ޶ް ++¤Ð¤«¡¼ #JN ŽÊŽÞ޶ް¡´(Žß§ÕŽß)ŽÉ¡« ++¤Ð¤«¤¦¤è #JN ¥Ð¥«¥¦¥è ++¤Ð¤«¤®¤Ã¤³ #T35 ¥Ð¸°¤Ã»Ò ++¤Ð¤«¤À #T35 ¥Ð¥«ÅÄ ++¤Ð¤«¤Ë¤Ï¤³¤Ô¤Ú¤Ç¤­¤Ê¤¤ #CJ ¦Â¦Á¦Ê¦Á¤Ë¤Ï¥³¥Ô¥Ú¤Ç¤­¤Ê¤¤ ++¤Ð¤«¤é¤í¤¦ #T35 ¥Ð¥«¥é¥í¥¦ ++¤Ð¤«¤í¤ê¡¼¤¿ #T35 ¥Ð­Ê¥¿ ++¤Ð¤«¤í¤ê¡¼¤¿ #T35 ŽÊŽÞ­ÊŽÀ ++¤Ð¤«¤í¤ê¡¼¤¿¤é¤ê¤Ã¤È¤ë #CJ ¥Ð­Ê¥¿¥é­È ++¤Ð¤«¤í¤ê¡¼¤¿¤é¤ê¤Ã¤È¤ë #CJ ŽÊŽÞ­ÊŽÀŽ×­È ++¤Ð¤«¤í¤ê¤¤¤¿ #T35 ŽÊŽÞ­ÊŽÀ(¥Ð¥«¥í¥ê¡¼¥¿) ++¤Ð¤«¤í¤ê¤¤¤¿¤é¤ê¤Ã¤È¤ë #CJ ŽÊŽÞ­ÊŽÀŽ×­È ++¤Ð¤«¤ó¤³¤¯ #CN ¥Ð´Ú¹ñ ++¤Ð¤«¤ó¤³¤¯ #T35 ¥Ð´Ú¹ñ ++¤Ð¤­¤å¡¼¤à¤«¡¼ #JN ¥Ð¥­¥å¡¼¥à¥«¡¼ ++¤Ð¤¯¤²¤­ #T35 Çú·â ++¤Ð¤¯¤¸¤ã¤Ã¤¯¤¸¤±¤ó #KK ¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï ++¤Ð¤¯¤À¤ó¤Í¤º¤ß #JN ÇúÃÆ¥Í¥º¥ß ++¤Ð¤¯¤Á¤å¡¼¤â¤ó¤À¤¤ #JN Çú¥Á¥å¡¼ÌäÂê ++¤Ð¤° #JN ¥Ð¥° ++¤Ð¤µ¤í¤¹¤ì #T35 ¥Ð¥µ¥í¥¹¥ì ++¤Ð¤¹¤¸¤ã¤Ã¤¯ #T30 ¥Ð¥¹¥¸¥ã¥Ã¥¯ ++¤Ð¤º¡¼¤«¤®¤³ #JN ¥Ð¥º¡¼¥«¥®¥³ ++¤Ð¤Ã¤µ¤¤¤ä #JN ȲºÎ²° ++¤Ð¤Ä #JN ú¥ ++¤Ð¤Ä¤Ð¤³ #T35 ¡ßÈ¢ ++¤Ð¤Ä¤Ü¤Ã¤¯¤¹ #T35 ¡ß¥Ü¥Ã¥¯¥¹ ++¤Ð¤È¤é¡¼ #JN ¥Ð¥È¥é¡¼ ++¤Ð¤È¤í¤ï¤¹¤ì #JN ¥Ð¥È¥í¥ï¥¹¥ì ++¤Ð¤Ð¤¡ #JN ÇÌ¥¡ ++¤Ð¤Ó #R5 ¥Ð¥Ó ++¤Ð¤Ó¤ê¤Æ¤£ #T35 ¥Ð¥Ó¥ê¥Æ¥£ ++¤Ð¤Ó¤ë¤Ë¤» #KK ¥Ð¥Ó¥ëµ¶ ++¤Ð¤Ó¤ë¤Ë¤» #T35 ¥Ð¥Ó¥ëµ¶ ++¤Ð¤é¤³¤¦ #CN ¥Ð¥é¹â ++¤Ð¤é¤³¤¦ #T35 ¥Ð¥é¹â ++¤Ð¤é¤Á¤½ #T35 ¥Ð¥é¥Á¥½ ++¤Ð¤é¤Á¤½ #T35 ŽÊŽÞŽ×ŽÁŽ¿ ++¤Ð¤ë¤«¤ó¤ï¤Ã¤·¤ç¤¤ #JN ¥Ð¥ë¥«¥ó¡¦¥ï¥Ã¥·¥ç¥¤ ++¤Ð¤ó #T35 ÈÇ ++¤Ð¤ó¤À¤¤ #T35 ÈÖÂæ ++¤Ð¤ó¤Á¤ç¤¦ #JN ÈÖĹ ++¤Ð¤ó¤Á¤ç¤¦ #T35 ÈÖĹ ++¤Ñ¤¤¤Ñ¤¤ #T35 ¦Ð¡¹ ++¤Ñ¤¤¤Ñ¤ó¤­¤ç¤¦¤À¤¤ #JN ¥Ñ¥¤¥Ñ¥ó·»Äï ++¤Ñ¤¯¤ê #T35 ËÑÍû ++¤Ñ¤½¤³¤ó¤­¤å¤¦¤­¤å¤¦¤Ð¤¹¤¿¤¢¤º #T35 ¥Ñ¥½¥³¥óµßµÞ¥Ð¥¹¥¿¡¼¥º ++¤Ñ¤Ã¤È #T35 Pat ++¤Ñ¤Æ #KK ¥Ñ¥Æ ++¤Ñ¤Æ #T35 ¥Ñ¥Æ ++¤Ñ¤È #KS ¥Ñ¥È ++¤Ñ¤È #R5 ¥Ñ¥È ++¤Ñ¤È #T35 Pat ++¤Ñ¤Ô¤³ #T35 ¥Ñ¥Ô¥³ ++¤Ñ¤Ú¤Ã¤È¤Þ¤Ú¤Ã¤È #JN ¥Ñ¥Ú¥Ã¥È¥Þ¥Ú¥Ã¥È ++¤Ñ¤ä¤ª #T35 ¥Ñ¥ä¥ª ++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¡¡(ŽßoŽß¢¿¡Á~~ ++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¥Ñ¥é¥µ¥¤¥È¥Ô¥è¥ß¡¼ ++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¥Ñ¥é¥µ¥¤¥È¥Ô¥è¥ß¡¼ ++¤Ñ¤é¤À¤¤¤¹¤±¤¤¤¶¤¤ #T35 ¥Ñ¥é¥À¥¤¥¹·ÐºÑ ++¤Ñ¤é¤â¤ê¤Þ¤Ä¤ê #T35 ¥Ñ¥é¿¹º×¤ê ++¤Ñ¤ì¡¼¤É #JN ¥Ñ¥ì¡¼¥É ++¤Ñ¤í¤ß¤Î¤¯¤ó #JN ¥Ñ¥í¥ß¥Î·¯ ++¤Ñ¤ó¤Æ¤£¤é #T35 ¥Ñ¥ó¥Æ¥£¥é ++¤Ñ¤ó¤Ñ¤« #T35 ¥Ñ¥ó¥Ñ¥« ++¤Ñ¤ó¤Ñ¤ó #T35 ¥Ñ¥ó¥Ñ¥ó¡ª ++¤Ò #T35 Èæ ++¤Ò¡¼¤Ë¤Ë¡¼¤Ë¤Ó¤Ã¤¯¤ê #JN ¥Ò¡¼¥Ë¥Ë¡¼¥Ë¡ª ++¤Ò¤¤¤«¤ê¤ã¤¯ #T35 ¤Ò¡Ê°Ê²¼Î¬¡Ë ++¤Ò¤«¤é¤Ó¤É¤ó #T35 ¤Ò¤«¤é¤ÓЧ ++¤Ò¤«¤ê¤Ä¤¦¤·¤ó #KK ¸÷ÄÌ¿® ++¤Ò¤«¤ë #T35 ¥Ò¥«¥ë ++¤Ò¤¬¤¯¤ó #T35 Èæ²Å·¯ ++¤Ò¤¬¤· #JNS ´³²Û»Ò ++¤Ò¤¬¤· #T35 ´³²Û»Ò ++¤Ò¤¬¤·¤«¤¿¤â¤Ê¤¹¤± #JN ÅìÊý¥â¥Ê½õ ++¤Ò¤­¤³ #T35 ¥Ò¥­¥³ ++¤Ò¤­¤³¡¼¤â¤ê #JN ¥Ò¥­¥³¡¼¥â¥ê ++¤Ò¤­¤³¤â #R5r ¤Ò¤­¤³¤â ++¤Ò¤­¤³¤â #R5r °ú¤­äƤâ ++¤Ò¤­¤³¤â¤é¤é¡¼ #JN ¥Ò¥­¥³¥â¥é¥é¡¼ ++¤Ò¤­¤³¤â¤ê¤³¤Þ¤ë #JN ¥Ò¥­¥³¿¹¥³¥Þ¥ë ++¤Ò¤­¤ã¤¯ #T35 ÈôµÓ ++¤Ò¤¯¤½¤ó #JN ¥Ò¥¯¥½¥ó ++¤Ò¤² #JN ¥Ò¥² ++¤Ò¤² #JN ɦ ++¤Ò¤² #T35 ¥Ò¥² ++¤Ò¤²¤à¤· #T35 ¤Ò¤²¤à¤· ++¤Ò¤µ¤ó¤Ê1 #T35 Èá»´¤Ê£± ++¤Ò¤µ¤ó¤Ê¤¤¤Á #JN Èá»´¤Ê£± ++¤Ò¤µ¤ó¤Ê¤¤¤Á #T35 Èá»´¤Ê1 ++¤Ò¤·¤À¤Ê #T35 Èé»é¤À¤Ê ++¤Ò¤·¤ç¤¦¤±¤¤¤É¤¦¤¸¤ó #KK ÈôæÆ·ÏÆ±¿Í ++¤Ò¤·¤ç¤¦¤±¤¤¤É¤¦¤¸¤ó #T35 ÈôæÆ·ÏÆ±¿Í ++¤Ò¤º¤ß #JN ÏÄ ++¤Ò¤½¤Ò¤ì #T35 ¤Ò¤½¤Ò¤ì ++¤Ò¤Ã¤­¡¼ #JN ¥Ò¥Ã¥­¡¼ ++¤Ò¤Ã¤­¡¼ #JN ¥Ò¥Ã¥­¡¼ ++¤Ò¤Ã¤­¡¼ #T35 ¤Ò¤Ã¤­¡¼ ++¤Ò¤Ã¤­¡¼ #T35 ¥Ò¥Ã¥­¡¼ ++¤Ò¤Ã¤­¤¤ #T35 ¥Ò¥Ã¥­¡¼ ++¤Ò¤Ã¤·¤À¤Ê #CJ ɬ»à¤À¤Ê ++¤Ò¤Ã¤·¤À¤Ê #T35 ɬ»à¤À¤Ê ++¤Ò¤Ã¤¿¤ê #T35 ¤Ò¤Ã¤¿¤ê ++¤Ò¤Ä¤¸ #T35 ÍÓ ++¤Ò¤Ä¤è¤¦¤¢¤¯¤Î¤Ð¤«¤¹¤Æ¤Ð #T35 ɬÍ×°­¤ÎÇϼ¯¼Î¤Æ¾ì ++¤Ò¤Ç¤§¤ä #JN ¤Ò¤Ç¤§¤ä ++¤Ò¤Ç¤é¤ì #KS HIDE¤é¤ì ++¤Ò¤È¤ª¤ª¤¹¤® #T35 ¿ÍÂç¿ù ++¤Ò¤È¤¯¤¤¤ª¤ª¤ß¤ß #JN ¿Í¿©¤¤Â缪 ++¤Ò¤È¤Ð¤·¤é #T35 ¿ÍÃì ++¤Ò¤È¤ß¤Á¤ã¤ó #JN Æ·¤Á¤ã¤ó ++¤Ò¤È¤ê¤è¤¦¤­¤ã¤Ã¤× #T35 ¤Ò¤È¤êÍÑ¥­¥ã¥Ã¥× ++¤Ò¤É¤¦¤É¤¦¤Æ¤¤ #T35 È󯻯¸Äç ++¤Ò¤Ê¤ó¤¸¤ç #T35 ÈòÆñ½ê ++¤Ò¤Ê¤ó¤¸¤ç¤æ¤¦¤É¤¦¤®¤³ #JN ÈòÆñ½êͶƳ¥®¥³ ++¤Ò¤Î¤Ç¤Á¤ç¤¦ #T35 Æü½ÐÄ® ++¤Ò¤Ï¤ó¤è¤¦¤Ü¤¦ #T35 ÈãȽÍ×˾ ++¤Ò¤Ò¤Ò¤Ò #CJ ¥Ò¥Ò¥Ò¥Ò ++¤Ò¤Ò¤Ò¤Ò¤Ò #CJ ¥Ò¥Ò¥Ò¥Ò¥Ò ++¤Ò¤Õ¤ß¤¯¤À¤ó #T35 £±£²£³£¹ÃÊ ++¤Ò¤Ù #T35 hibe ++¤Ò¤Ù #T35 ¥Ò¥Ù ++¤Ò¤Þ¤Í¡¼¤è #JN ¥Ò¥Þ¥Í¡¼¥è ++¤Ò¤ã¤¯¤µ¤²¤Ï¤¤¤Á¤¢¤²¤Ë¤·¤«¤º #CJ É´¤µ¤²¤Ï°ì¤¢¤²¤Ë¤·¤«¤º ++¤Ò¤ã¤¯¤µ¤ó¤¸¤å¤¦¤Ë¤Ë¤ó¤á¤Î¤½¤¹¤¦¤µ¤ó #T35 132¿ÍÌܤÎÁÇ¿ô¤µ¤ó ++¤Ò¤ã¤¯¤·¤ç¤¦¤È¤· #T35 É´À«ÅÔ»Ô ++¤Ò¤ã¤¯¤¸¤å¤¦¤­¤å¤¦¤±¤¤¤Ç¤ó¤·¤ã #JN 119·ÏÅÅ¼Ö ++¤Ò¤ã¤¯¤Ë¤¸¤å¤¦¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼ #JN 128Ƭ¿È¥â¥Ê¡¼ ++¤Ò¤ã¤Ã¤Û¤¦ #CJ ¥Ò¥ã¥Ã¥Û¡¼ ++¤Ò¤ã¤Ã¤Û¤¦ #CJ ŽËެޝŽÎް ++¤Ò¤è¤³ #JN ¥Ò¥è¥³ ++¤Ò¤è¤·¤Á¤å¤¦ #T35 ÆüµÈ¿ß ++¤Ò¤é¤¬¤Ê #JN ¤Ò¤é¤¬¤Ê ++¤Ò¤é¤¬¤Ê #T35 ¤Ò¤é¤¬¤Ê ++¤Ò¤é¤¬¤Ê¤Ç¤å¡¼¤¯ #JN ¤º¤£¤³¤´¤¬¤§¤ª¤¬¤¸¤¢¤¯¤­¤®¤²¤ª¤¬¤¥¤³¤¹¡ã°Ê²¼Î¬¡ä ++¤Ò¤é¤¬¤Ê¤Ç¤å¡¼¤¯ #JN ¤Ò¤é¤¬¤ÊDUKE ++¤Ò¤é¤ß¤ß¤â¤Ê¡¼ #JN Ê¿¼ª¥â¥Ê¡¼ ++¤Ò¤é¤ß¤ß¤â¤é¤é¡¼ #JN Ê¿¼ª¥â¥é¥é¡¼ ++¤Ò¤ê¤ã¤¯ #T35 ¤Ò¡Êά¡Ë ++¤Ò¤í¤·¤µ¤Þ #JNM ÇîÍÍ ++¤Ò¤í¤·¤µ¤Þ #T35 ÇîÍÍ ++¤Ò¤í¤Ò¤È #JN ¥Ò¥í¥Ò¥È ++¤Ò¤í¤Ò¤È #T35 ¥Ò¥í¥Ò¥È ++¤Ò¤í¤Ý¤ó #JN ¤Ò¤í¤Ý¤ó ++¤Ò¤í¤æ¤­ #JN ¤Ò¤í¤æ¤­ ++¤Ò¤í¤æ¤­ #JNM ¤Ò¤í¤æ¤­ ++¤Ò¤í¤æ¤­ #T35 ¤Ò¤í¤æ¤­ ++¤Ò¤í¤æ¤­¤«¤ó¤Á¤ç¤¯¤Ë¤ó #JN ¤Ò¤í¤æ¤­¡÷´Éľ¿Í ++¤Ò¤í¤æ¤­¤«¤ó¤Á¤ç¤¯¤Ë¤ó #JN ¤Ò¤í¤æ¤­¡÷´Éľ¿Í ++¤Ò¤í¤æ¤­¤«¤ó¤Ê¤ª¤È #JNM ¤Ò¤í¤æ¤­¡÷¿ûľ¿Í ++¤Ò¤í¤æ¤­¤³¤¦¤Ë¤ó¤Õ¤¡¤ó¤¯¤é¤Ö #KK ¤Ò¤í¤æ¤­¸øÇ§¥Õ¥¡¥ó¥¯¥é¥Ö ++¤Ò¤í¤æ¤­¤Ã¤Ý¤¤¤Î #JN ¤Ò¤í¤æ¤­¤Ã¤Ý¤¤¤Î ++¤Ò¤í¤æ¤³¤«¤ó¤Ê¤ª¤È #JNM ¤Ò¤í¤æ»Ò¡÷¿ûľ¿Í ++¤Ò¤ó¤Ô¤ç¤¦¤«¤¤ #T30 ÉÊɾ²ñ ++¤Ò¤ó¤Ô¤ç¤¦¤«¤¤ #T35 ÉÊɾ²ñ ++¤Ó¡¼ #T35 £Â ++¤Ó¡¼¤°¤ë #JN ¥Ó¡¼¥°¥ë ++¤Ó¡¼¤°¤ë¤¢¤é¤· #JN ¥Ó¡¼¥°¥ë¹Ó¤é¤· ++¤Ó¡¼¤Á¤¯ #T35 BÃ϶è ++¤Ó¤£ #JN ¤Ó¤£ ++¤Ó¤¤¤°¤ë¤¢¤é¤· #T35 ¥Ó¡¼¥°¥ë¹Ó¤é¤· ++¤Ó¤­¤ã¤¯ #JN ÈþµÓ ++¤Ó¤·¤ç¤¦¤¸¤ç¤»¤ó¤·¤»¡¼¤é¡¼¤Õ¡¼¤ó #JN Èþ¾¯½÷Àï»Î¥»¡¼¥é¡¼¤Õ¡¼¤ó ++¤Ó¤·¤ç¤¦¤¸¤ç¤Ë¤ó¤Æ¤¤ #T30 Èþ¾¯½÷ǧÄê ++¤Ó¤¸ #T35 ¥Ó¥¸ ++¤Ó¤¸¤Í¤¹¤Ë¤å¤¦¤¹¤×¤é¤¹ #T35 ¥Ó¥¸¥Í¥¹¥Ë¥å¡¼¥¹¡Ü ++¤Ó¤¹¤±¤¿¤ó #T35 ¥Ó¥¹¥±¤¿¤ó ++¤Ô¡¼¤³ #T30 ¥Ô¡¼¥³ ++¤Ô¡¼¤³¤ä¤í¤¦ #T35 ¥Ô¡¼¥³ÌîϺ ++¤Ô¤¤ #T35 P ++¤Ô¤«¤Á¤å¡¼ #JN ¥Ô¥«¥Á¥å¡¼ ++¤Ô¤«¤Á¤å¤¦ #JN ¥Ô¥«¥Á¥å¥¦ ++¤Ô¤«¤Á¤å¤¦ #JN ¥Ô¥«¿ß ++¤Ô¤«¤Ä¡¼ #KK ¥Ô¥«¥Ä¡¼ ++¤Ô¤¯¤ß¤½ #JN ¥Ô¥¯¥ß¥½ ++¤Ô¤¯¤ß¤ó #JN ¥Ô¥¯¥ß¥ó ++¤Ô¤³ #T35 ¥Ô¥³ ++¤Ô¤ç¤ó¤Ô¤ç¤ó #JN ¥Ô¥ç¥ó¥Ô¥ç¥ó ++¤Ô¤í #JN ¥Ô¥í¥³ ++¤Ô¤í #T35 ¥Ô¥í ++¤Ô¤í #T35 ¥Ô¥í¥³ ++¤Ô¤í¤³ #JN ¥Ô¥í ++¤Ô¤í¤³ #T35 ¥Ô¥í ++¤Ô¤í¤³ #T35 ¥Ô¥í¥³ ++¤Ô¤ó¤­¡¼ #JN ¥Ô¥ó¥­¡¼ ++¤Ô¤ó¤¯¤¿¤ï¤¢¤É¤Ã¤È¤³¤à #T35 pinktower.com ++¤Ô¤ó¤¯¤Á¤ã¤ó¤Í¤ë #T35 Pink¤Á¤ã¤ó¤Í¤ë ++¤Ô¤ó¤Ý¤ó¤À¤Ã¤·¤å #T30 ¥Ô¥ó¥Ý¥ó¥À¥Ã¥·¥å ++¤Õ¡¼¤ó #CJ ¤Õ¡¼¤ó ++¤Õ¡¼¤ó #JN ¤Õ¡¼¤ó¡¡ ++¤Õ¡¼¤ó¤­¤ç¤¦¤À¤¤ #JN ¤Õ¡¼¤ó·»Äï ++¤Õ¤¡¡¼¤¹¤È¤®¤³¤¨¤â¤ó #JN ¥Õ¥¡¡¼¥¹¥È¡¦¥®¥³¥¨¥â¥ó ++¤Õ¤¡¡¼¤¹¤È¤®¤³¤ß #JN ¥Õ¥¡¡¼¥¹¥È¡¦¥®¥³¥ß ++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ FA ++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ FA? ++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ ¥Õ¥¡¥¤¥Ê¥ë¥¢¥ó¥µ¡¼¡© ++¤Õ¤¡¤¤¤Ê¤ë¤¿¤Ö¤¦ #T35 ¥Õ¥¡¥¤¥Ê¥ë¥¿¥Ö¡¼ ++¤Õ¤¡¤¤¤Ê¤ë¤Õ¤¡¤ó¤¿¤º¤£ #T35 FINAL¡¡FANTAZY ++¤Õ¤¡¤Ã¤¯¤æ¡¼ #JN ¥Õ¥¡¥Ã¥¯¥æ¡¼ ++¤Õ¤¡¤Ã¤¯¤æ¤¦¤Ö¤Á¤³¤í¤¹¤¾ #CJ Fuch¡¡You¡¡¤Ö¤Á»¦¤¹¤¾ ++¤Õ¤¡¤Ó¤ç #KS ¥Õ¥¡¥Ó¥ç ++¤Õ¤¡¤Ó¤ç¤ó #T35 ¥Õ¥¡¥Ó¥ç¥ó ++¤Õ¤¡¤é¤ª #JN ¥Õ¥¡¥é¥ª ++¤Õ¤¡¤ó¤¿¤¸¡¼ #T35 ¥Õ¥¡¥ó¥¿¥¸¡¼ ++¤Õ¤¡¤ó¤¿¤¸¤¤ #T35 ¥Õ¥¡¥ó¥¿¥¸¡¼ ++¤Õ¤£¡¼¤Í¤â¤¨ #JN ¥Õ¥£¡¼¥Í˨¤¨ ++¤Õ¤£¤Ã¤·¤ã¡¼¤Þ¤ó #JN ¥Õ¥£¥Ã¥·¥ã¡¼¥Þ¥ó ++¤Õ¤£¤ë¤¿ #T30 ¥Õ¥£¥ë¥¿ ++¤Õ¤£¤ë¤¿¡¼ #T35 ¥Õ¥£¥ë¥¿¡¼ ++¤Õ¤¦¤­¤¤¤¤¤ó #T35 É÷µª°Ñ°÷ ++¤Õ¤¦¤Ö¤Ä¤· #T35 ¤Õ¤¦¤Ö¤Ä¤· ++¤Õ¤¦¤ó #CJ ¥Õ¡¼¥ó ++¤Õ¤¦¤ó #CJ ŽÌްŽÝ ++¤Õ¤§¤é¡¼¤Á¤ç #JN ¥Õ¥§¥é¡¼¥Á¥ç ++¤Õ¤§¤é¡¼¤Á¤ç¤Õ¤¡¤ß¤ê¡¼ #JN ¥Õ¥§¥é¡¼¥Á¥ç¥Õ¥¡¥ß¥ê¡¼ ++¤Õ¤§¤é¤Í¡¼¤è #JN ¥Õ¥§¥é¥Í¡¼¥è ++¤Õ¤©¤¦¤É #T35 4rd ++¤Õ¤©¤é¤Í¡¼¤è #JN ¥Õ¥©¥é¥Í¡¼¥è ++¤Õ¤«¤ß¤¨¤¤¤¤¤Á¤í¤¦ #JN ¿¼¿å±Ñ°ìϺ ++¤Õ¤«¤ï¤ê¤ç¤¦ #JN ¤Õ¤«¤ï¤ê¤ç¤¦ ++¤Õ¤®¡¼ #JN ¥Õ¥®¡¼ ++¤Õ¤®¤¤ #T35 ¥Õ¥®¡¼ ++¤Õ¤¯¤·¤ç¤¦ #JN Éû¾­ ++¤Õ¤¯¤·¤ç¤¦ #T35 Éû¾­ ++¤Õ¤¯¤¹¤¦¤¹¤ì #T35 Ê£¿ô¥¹¥ì ++¤Õ¤¯¤¹¤¦¤¹¤ì¤Ã¤É #T35 Ê£¿ô¥¹¥ì¥Ã¥É ++¤Õ¤¯¤¹¤± #T35 £²£¹½õ ++¤Õ¤¯¤ì¤­ #T35 ʤÎò ++¤Õ¤° #T35 ²ÏÆÚ ++¤Õ¤°¤ê¤é¡¼ #JN ¥Õ¥°¥ê¥é¡¼ ++¤Õ¤µ¤ª #JN ¥Õ¥µÉ× ++¤Õ¤µ¤ª #JNM ¤Õ¤µ¤ª ++¤Õ¤µ¤®¤³ #JN ¥Õ¥µ¥®¥³ ++¤Õ¤µ¤®¤³¤³¤¦¤Ü¤ò¤Î¤ß¤¹¤®¤¿¤Õ¤µ¤®¤³ #JN ¥Õ¥µ¥®¥³¹ÚÊì¤ò°û¤ß²á¤®¤¿¥Õ¥µ¥®¥³ ++¤Õ¤µ¤®¤³¤Þ¤ó¤À¤ó #JN ¥Õ¥µ¥®¥³Ì¡ÃÌ ++¤Õ¤·¤¢¤Ê¤µ¤ó #T30 fusianasan ++¤Õ¤·¤¢¤Ê¤µ¤ó¤È¤é¤Ã¤× #T35 fusianasan¥È¥é¥Ã¥× ++¤Õ¤¸¤ç¤¦ #T30 Éâ¾å ++¤Õ¤¸¤ç¤· #T35 Éå½÷»Ò ++¤Õ¤Á¤å¤¦¤±¤¤¤à¤·¤ç #JN ÉÜÃæ·ºÌ³½ê ++¤Õ¤Ã¤­¤ä #T35 Éüµ¢²° ++¤Õ¤Ã¤µ¡¼¤ë¤¿¤¤¤µ #JN ¥Õ¥Ã¥µ¡¼¥ëÂ纴 ++¤Õ¤Ã¤µ¤ë¤È¤Ó¤Õ¤µ¤¹¤± #JN ¥Õ¥Ã±îÈô¥Õ¥µ½õ ++¤Õ¤Ã¤µ¤ë¤È¤Ó¤Õ¤µ¤¹¤± #JN ŽÌޝ±îÈôŽÌŽ»½õ ++¤Õ¤Ã¤µ¤ì #JN ŽÌޝ޻ŽÚ ++¤Õ¤È¤¹¤± #JNM ÂÀÊå ++¤Õ¤È¤¹¤± #T35 ÂÀÊå ++¤Õ¤È¤Þ¤· #JN ¥Õ¥È¥Þ¥· ++¤Õ¤È¤Þ¤· #KY ÂÀ¤Þ¤· ++¤Õ¤È¤Þ¤·¤¤¤»¤¤¤È #JN ÂÀ¤Þ¤·¤¤À¸ÅÌ ++¤Õ¤È¤Þ¤·¤¤¤»¤¤¤È #JN ÂÀ¤Þ¤·¤¤À¸ÅÌ ++¤Õ¤È¤Þ¤·¤¤¤Þ¤é¤é¡¼ #JN ÂÀ¤Þ¤·¤¤¥Þ¥é¥é¡¼ ++¤Õ¤È¤Þ¤·¤¤¤â¤Ê¡¼ #JN ÂÀ¤Þ¤·¤¤¥â¥Ê¡¼ ++¤Õ¤É¤¦¤ß¤Í #T35 ÉÔÆ°Êö ++¤Õ¤Ë¤¯ #T35 ÉåÆù ++¤Õ¤å¤¦¤¸¤ã¤Í¤¤¤¶¤ó #T35 ¥Õ¥å¡¼¥¸¥ã¥Í¥¤¥¶¥ó ++¤Õ¤å¤¦¤¸¤ã¤Í¤¤¤·¤ã¤ó #T35 ¥Õ¥å¡¼¥¸¥ã¥Í¥¤¥·¥ã¥ó ++¤Õ¤æ¤·¤Ð¤±¤ó #JN Å߼Ƹ¤ ++¤Õ¤æ¤·¤Ð¤±¤ó #T35 Å߼Ƹ¤ ++¤Õ¤æ¤Á¤å¤¦ #T35 Åß¿ß ++¤Õ¤é¤°¤¬¤¿ #T5 ¥Õ¥é¥°¤¬Î© ++¤Õ¤é¤Ã¤·¤å¤Þ¤ó #JN ¥Õ¥é¥Ã¥·¥å¥Þ¥ó ++¤Õ¤é¤Ã¤È¤¹¤ê¤£ #T35 ¥Õ¥é¥Ã¥È3 ++¤Õ¤é¤ó¤¹¤Ñ¤ó #T35 ¥Õ¥é¥½¥¹¥Ñ¥ó ++¤Õ¤é¤ó¤¹¤Ñ¤ó #T35 ŽÌŽ×Ž¿Ž½ŽÊŽßŽÝ ++¤Õ¤ê¡¼¤Õ¤©¡¼¤ë #JN FREEFALL ++¤Õ¤ê¤«¤¨¤ê¤â¤Ê¤« #JN ¿¶¤êÊÖ¤ê¥â¥Ê¥« ++¤Õ¤ê¤ó¤Á¤ã¤ó #T35 ÉÔÎѤÁ¤ã¤ó ++¤Õ¤ë¤¦¡«¤§¤ó #JN ¥Õ¥ë¥ô¥§¥ó ++¤Õ¤ë¤¦¡«¤§¤ó #T35 ¥Õ¥ë¥ô¥§¥ó ++¤Õ¤ì¤Ã¤Ä¤í¤Ü #JN ¥Õ¥ì¥Ã¥Ä¥í¥Ü ++¤Ö¤¤ #JN Éô°Ì ++¤Ö¤¤ #JN Éð°Ò ++¤Ö¤¤ #T35 Éð°Ò ++¤Ö¤¤ #T35 Éô°Ì ++¤Ö¤¯¤Þ¤¯ #T30 ¥Ö¥¯¥Þ¥¯ ++¤Ö¤µ¤¤¤³ #T35 ¥Ö¥µ¥¤¥³ ++¤Ö¤µ¤è¤¯ #JN ¥Ö¥µ¥è¥¯ ++¤Ö¤µ¤è¤¯ #T35 ¥Ö¥µ¥è¥¯ ++¤Ö¤¿ #JN ÆÚ ++¤Ö¤¿ #T35 ÆÚ ++¤Ö¤Á #T35 Þ¼ ++¤Ö¤Á¤³ #JN ¤Ö¤Á¤³ ++¤Ö¤Á¤³ #T35 ¤Ö¤Á¤³ ++¤Ö¤Ã¤¯ #T35 ¥Ö¥Ã¥¯ ++¤Ö¤Ã¤¯¤Þ¡¼¤¯ #T30 ¥Ö¥Ã¥¯¥Þ¡¼¥¯ ++¤Ö¤Ã¤·¤Ä #T35 ʪ¼Á ++¤Ö¤Ã¤À #T35 ¥Ö¥Ã¥À ++¤Ö¤Ä¤À¤ó #T35 Ê©ÃÅ ++¤Ö¤É¤¦¤â¤Ê¡¼ #JN Éòƺ¥â¥Ê¡¼ ++¤Ö¤Ì¤¹ #T35 ¥Ö¥Ì¥¹ ++¤Ö¤Ó¤Á¤å¤¦ #T35 ¥Ö¥Ó¿ß ++¤Ö¤è¤¯ #T35 ¥Ö¥è¥¯ ++¤Ö¤é #T35 ¥Ö¥é ++¤Ö¤é¤¦¤¶¤¯¤é¤Ã¤·¤ã #T35 ¥Ö¥é¥¦¥¶¡¼¥¯¥é¥Ã¥·¥ã ++¤Ö¤é¤¦¤¶¤¯¤é¤Ã¤·¤ã¡¼ #T35 ¥Ö¥é¥¦¥¶¡¼¥¯¥é¥Ã¥·¥ã¡¼ ++¤Ö¤é¤¯¤é #T35 ¥Ö¥é¥¯¥é ++¤Ö¤é¤¯¤é #T35 ÉôÍî¤é ++¤Ö¤é¤¯¤é¤Á¤§¤Ã¤« #T35 ¥Ö¥é¥¯¥é¥Á¥§¥Ã¥« ++¤Ö¤é¤¯¤é¤Á¤§¤Ã¤«¡¼ #T35 ¥Ö¥é¥¯¥é¥Á¥§¥Ã¥«¡¼ ++¤Ö¤é¤Ã¤¯¤Û¤ª¤ë #T35 ¥Ö¥é¥Ã¥¯¥Û¡¼¥ë ++¤Ö¤ë¤ª¤¿ #T35 ¥Ö¥ë¥ò¥¿ ++¤Ö¤ë¤É¤Ã¤¯¤½¡¼¤¹ #KK ¥Ö¥ë¥É¥Ã¥¯¥½¡¼¥¹ ++¤Ö¤ì¤¤¤º #T35 ̵Îé¿Þ ++¤Ö¤ì¤¤¤ó¤¬ #JN ¥Ö¥ì¥¤¥ó¥¬ ++¤Ö¤í¡¼¤É¤Ð¤ó¤É¤ë¡¼¤¿ #T35 ¥Ö¥í¡¼¥É¥Ð¥ó¥É¥ë¡¼¥¿ ++¤Ö¤í¡¼¤É¤Ð¤ó¤É¤ë¡¼¤¿¡¼ #T35 ¥Ö¥í¡¼¥É¥Ð¥ó¥É¥ë¡¼¥¿¡¼ ++¤Ö¤í¤Ã¤¯¤¹ #T35 ¤Ö¤í¤Ã¤¯¤¹ ++¤×¤¤¤¿ #CN ¥×ÈÄ ++¤×¤¤¤¿ #T35 ¥×ÈÄ ++¤×¤¹¤£¤³ #JN ¤×¤¹¤£»Ò ++¤×¤Ã #CJ ¤×¤Ã ++¤×¤Ã #CJ ¥×¥Ã ++¤×¤Ã #CJ ŽÌŽßޝ ++¤×¤Ã #JN ¡Ê¡­,_¡µ¡®¡ËŽÌŽßޝ ++¤×¤Ã #JN ŽÌŽßޝ ++¤×¤Ã¤×¤¯¤×¡¼ #JN ¤×¤Ã¤×¤¯¤×¡¼ ++¤×¤Ë #T35 ¤×¤Ë ++¤×¤Ë #T35 ¥×¥Ë ++¤×¤Ë¤ë #T35 ¥×¥Ë¥ë ++¤×¤Ë¤ë¤Á¤å¤¦ #T35 ¥×¥Ë¥ë¿ß ++¤×¤é¤Ê¤ê¤¢ #JN ¥×¥é¥Ê¥ê¥¢ ++¤×¤ê¤¦¤ó¤³ #T35 ¤×¤ê¤¦¤ó¤³ ++¤×¤ê¤×¤ê¤Ñ¤Ã¤Ñ #JN ¥×¥ê¥×¥ê¥Ñ¥Ã¥Ñ ++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #CJ ¥×¥ê¥ë¥Ê¥é¥¤¥Þ¥Î¥¦¥Á ++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #CJ ŽÌŽßŽØŽÙŽÅŽ×޲ŽÏŽÉ޳ŽÁ ++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #JN ¥×¥ê¥ë¥Ê¥é¥¤¥Þ¥Î¥¦¥Á ++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #JN ŽÌŽßŽØŽÙŽÅŽ×޲ŽÏŽÉ޳ŽÁ ++¤×¤ê¤ó¤¢¤¿¤Þ #T35 ¥×¥ê¥óƬ ++¤×¤ë¤®¤³ #JN ¥×¥ë¥®¥³ ++¤×¤ë¤â¤Ê #JN ¥×¥ë¥â¥Ê ++¤×¤í¤­¤·¤­¤»¤¤ #T35 £Ð£Ò£Ï£Ø£Ùµ¬À© ++¤×¤í¤¯¤· #T35 ¥×¥í¥¯¥· ++¤×¤í¤·¤ß¤ó #T35 ¥×¥í»Ô̱ ++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #KK ¥×¥í¥¸¥§¥¯¥È£Ø ++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #T35 ¥×¥í¥¸¥§¥¯¥ÈX ++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #T35 ¥×¥í¥¸¥§¥¯¥È£Ø ++¤×¤í¤¸¤§¤¯¤È¤±¡¼ #KK ¥×¥í¥¸¥§¥¯¥È£Ë ++¤×¤í¤¸¤§¤¯¤È¤±¡¼ #T35 ¥×¥í¥¸¥§¥¯¥È£Ë ++¤×¤í¤¸¤§¤¯¤È¤±¤¨ #T35 ¥×¥í¥¸¥§¥¯¥ÈK ++¤×¤í¤Ð¤¬¤ó¤À¤³¤¦ #T35 ¥×¥í¥Ñ¥¬¥ó¥À¹» ++¤×¤í¤Ñ¤¬¤ó¤À¤¿¤ï¤¢ #T35 ¥×¥í¥Ñ¥¬¥ó¥À¥¿¥ï¡¼ ++¤Ø¡¼¤â¤Ê¡¼ #JN ¤Ø¡¼¥â¥Ê¡¼ ++¤Ø¤¤¤¢¤ó #JN Ê¿°Â ++¤Ø¤¤¤¢¤ó #T35 Ê¿°Â ++¤Ø¤¤¤µ¤»¤Ä #T35 Êĺ¿Àâ ++¤Ø¤§¤¨ #CJ (¡­Ž¥¢ÏŽ¥`)¤Ø¤§¡¼ ++¤Ø¤§¤¨ #CJ ¤Ø¤§¡Á ++¤Ø¤¨¤¨¤­¤ß¤é¤¤¤À¤¢¤Ë¤Ê¤Ã¤¿¤Ð¤Ã¤«¤ê¤Ê¤ó¤À #CJ ¤Ø¤¨¡¼·¯¥é¥¤¥À¡¼¤Ë¤Ê¤Ã¤¿¤Ð¤Ã¤«¤ê¤Ê¤ó¤À ++¤Ø¤³ #T35 ±ú ++¤Ø¤Ä¤° #CJ >>¡û¡û¤Ø¹ð¤° ++¤Ø¤Ê¤® #JNS ¤Ø¤Ê¤® ++¤Ø¤Ê¤® #T35 ¤Ø¤Ê¤® ++¤Ø¤Î¤Ø¤Î¤â¤Ø¤¸ #JN ¤Ø¤Î¤Ø¤Î¤â¤Ø¤¸ ++¤Ø¤Ü¤ó #T35 ¤Ø¤Ü¤ó ++¤Ø¤ó¤Ê¤¦¤¿ #T35 ÊѤʲΠ++¤Ù¤Ã¤½¤¦ #T35 ÊÌÁñ ++¤Ù¤Ó¤·¤£ #JN ¥Ù¥Ó¤·¤£ ++¤Ù¤ë¤À¤ó¤Ç¤£¡¼¤¢¤é¤· #JN ¥Ù¥ë¥À¥ó¥Ç¥£¡¼¹Ó¤é¤· ++¤Ù¤ì¤â¤é #JN ¥Ù¥ì¥â¥é ++¤Ù¤ó¤­ #T35 ÊØ´ï ++¤Ù¤ó¤¸¤ç¤Î¤é¤¯¤¬¤­ #T35 ÊØ½ê¤ÎÍî½ñ¤­ ++¤Ù¤ó¤¼¤ó¤«¤ó #JN ¥Ù¥ó¥¼¥ó´Ä ++¤Ú¡¼¤¸¤Ó¤å¡¼ #T35 ¥Ú¡¼¥¸¥Ó¥å¡¼ ++¤Ú¤±¤Ð¤³ #T35 ¥Ú¥±È¢ ++¤Ú¤±¤Ü¤Ã¤¯¤¹ #T35 ¥Ú¥±¥Ü¥Ã¥¯¥¹ ++¤Ú¤³¤ê #CJ ¤Ú¤³¤ê ++¤Ú¤Ã #CJ ¤Ú¤Ã ++¤Ú¤Ã¤È #T35 ¥Ú¥Ã¥È ++¤Ú¤Ã¤È¤Ü¤È¤ë #T35 ¥Ú¥Ã¥È¥Ü¥È¥ë ++¤Ú¤É #T35 ¥Ú¥É ++¤Ú¤É¤Õ¤£¤ê¤¢ #T35 ¤Ú¤É¤Õ¤£¤ê¤¢ ++¤Ú¤É¤Õ¤£¤ê¤¢ #T35 ¥Ú¥É¥Õ¥£¥ê¥¢ ++¤Ú¤ä¤ó¤° #JN ¥Ú¥ä¥ó¥° ++¤Ú¤ä¤ó¤° #T35 ¥Ú¥ä¥ó¥° ++¤Ú¤ê¤« #T35 ¥Ú¥ê¥« ++¤Û¡¼¤¹¤¯¤é¤Ã¤·¤ã¡¼ #JN ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼ ++¤Û¡¼¤¹¤¯¤é¤Ã¤·¤ã¡¼ #T35 ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼ ++¤Û¤¥ #JN ¡ÊŽß¢òŽß¡Ë ++¤Û¤¥ #JN ŽÎŽ© ++¤Û¤¦ #T35 ˤ ++¤Û¤¦¤¨¤¤¤Õ¤ó¤¨¤ó¤í¤¯ #T35 Êõ±ÊÊ®±ìϽ ++¤Û¤¦¤±¤¤ #CN Êñ·Ô ++¤Û¤¦¤±¤¤ #T35 Êñ·Ô ++¤Û¤¦¤¸¤ç¤¦¤â¤Ê¤ë #JN ËÌÛê¥â¥Ê¥ë ++¤Û¤¦¤¹¤¯¤é¤Ã¤·¤ã¤¢ #T35 ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼ ++¤Û¤¦¤½¤¯¤«¤¤¤Ò #T35 ˡ§²óÈò ++¤Û¤¦¤Á #T30 ÊüÃÖ ++¤Û¤¦¤Æ¤¤ #JN Ë¡Äî ++¤Û¤«¤ó #T30 ÊÝ´É ++¤Û¤¯¤È¤·¤ó¤±¤ó¤Ç¤ä¤é¤ì¤ë¤â¤Ê¡¼ #JN ËÌÅÍ¿À·ý¤Ç»¦¤é¤ì¤ë¥â¥Ê¡¼ ++¤Û¤¯¤Û¤¯¤µ¤Ä¤µ¤Ä #CN ËÌËÌ»¥»¥ ++¤Û¤¯¤Û¤¯¤µ¤Ä¤µ¤Ä #T35 ËÌËÌ»¥»¥ ++¤Û¤°¤À¤¤ #T35 ¤Û¤°¤À¤¤ ++¤Û¤· #T35 À± ++¤Û¤·¤¯¤ó #JN ¡ù¤¯¤ó ++¤Û¤·¤å #T30 Êݼé ++¤Û¤·¤å¤Ï¤¢¤é¤· #CJ Êݼé¤Ï¹Ó¤é¤· ++¤Û¤¹¤£ #CJ ¥Û¥¹¥£¡¦¡¦¡¦ ++¤Û¤¹¤£ #CJ ŽÎ޽ލޥޥޥ ++¤Û¤¹¤£ #JN ¥Û¥¹¥£ ++¤Û¤¼¤ó #T30 ÊÝÁ´ ++¤Û¤Ã¤µ¤ï #T35 ʧÂô ++¤Û¤Ã¤È¤¾¤Ì #KK ¥Û¥Ã¥È¥¾¥Ì ++¤Û¤Ã¤È¤¾¤Ì #T35 ¥Û¥Ã¥È¥¾¥Ì ++¤Û¤Í #JN ¹ü¡¡ ++¤Û¤Í¤ª¤¦ #T35 ¹ü²¦ ++¤Û¤Î¤ª¤Î¤³¤Þ #T35 ±ê¤Î¥³¥Þ ++¤Û¤à¤¦¤é¤ó #T35 ¥Û¥à¡¼¥é¥ó ++¤Û¤à¤¦¤é¤ó¤¦¤¿¤ì¤Æ #CJ ¥Û¥à¡¼¥é¥óÂǤ¿¤ì¤Æ¡Ä ++¤Û¤á¤Ñ¤² #T35 ¥Û¥á¥Ñ¥² ++¤Û¤é¤è #CJ ¤Û¤é¤è ++¤Û¤ï¤¤¤È¤Ù¡¼¤¹¤«¤ó¤­¤ç¤¦ #JN ¥Û¥ï¥¤¥È¥Ù¡¼¥¹´Ï¶¶ ++¤Û¤ó #T35 ËÜ ++¤Û¤ó¤±¤Ê¤° #JN ËܲȤʤ° ++¤Û¤ó¤·¤Ä #T35 ËܼÁ ++¤Û¤ó¤¹¤ì #T35 ËÜ¥¹¥ì ++¤Û¤ó¤¹¤ì¤µ¤ó¤­¤ç¤¦¤À¤¤ #JN ËÜ¥¹¥ì»°·»Äï ++¤Û¤ó¤¹¤ì¤Î¤Ï¤¿ #JN ËÜ¥¹¥ì¤Î´ú ++¤Ü¡¼¤É¤¤¤Á¤é¤ó #T35 ¥Ü¡¼¥É°ìÍ÷ ++¤Ü¤¦ #T35 ˼ ++¤Ü¤¦¤À #T35 ËÀÂÌ ++¤Ü¤¦¤á¤¤ #T35 Ë´Ì¿ ++¤Ü¤ª¤ë¤º #JN ¥Ü¡¼¥ë¥º ++¤Ü¤­¤ó #T30 ¤Ü¤­¤ó ++¤Ü¤¯¤ª¤ó¤Ê #T35 Ëͽ÷ ++¤Ü¤¯¤Á¤ó¤«¤ï¤¤¤Á¤å¤®¤À¤ï¤ó #JN ¤Ü¤¯¤Á¤ó¡¢¤«¤ï¤¤¤Á¤å¤®¤À¥ï¥ó¡ª ++¤Ü¤¯¤È¤¦ #JN ÌÚÅá ++¤Ü¤¯¤È¤¦ #T35 ÌÚÅá ++¤Ü¤¯¤Î¤¢¤Ä¤³¤¿¤ó #JN ËͤΤ¢¤Ä¤³¤¿¤ó¡ª ++¤Ü¤¯¤Î¤¢¤Ä¤³¤¿¤ó #JN ËͤΤ¢¤Ä¤³¤¿¤ó¡ª¡³(¡­¡¼`)ŽÉ ++¤Ü¤¯¤Î¤³¤¦¤â¤ó¤â¤Ø¤¤¤µ¤µ¤ì¤½¤¦¤Ç¤¹ #CJ ¥Ü¥¯¤ÎæêÌç¤âÊĺ¿¤µ¤ì¤½¤¦¤Ç¤¹ ++¤Ü¤±¤§ #CJ ¥Ü¥±¥§ ++¤Ü¤³ #R5 ±ú ++¤Ü¤À #T35 ÊèÂÌ ++¤Ü¤Ã¤­¤¢¤² #JN ¡³(`§¥¡­)¥Î¥Ü¥Ã¥­¥¢¥² ++¤Ü¤Ã¤­¤¢¤² #JN ¡³(`§¥¡­)ŽÉŽÎŽÞޝ޷ޱ޹ŽÞ ++¤Ü¤Ã¤­¤¢¤² #JN ¥Ü¥Ã¥­¥¢¥² ++¤Ü¤Ã¤­¤¢¤² #JN ŽÎŽÞޝ޷ޱ޹ŽÞ ++¤Ü¤Ã¤­¤¢¤² #T35 ¥Ü¥Ã¥­¥¢¥² ++¤Ü¤Ã¤­¤Æ¤ó¤· #T35 ËÖµ¯Å·»È ++¤Ü¤Ã¤­¤É¤é¤¨¤â¤ó #JN ¤Ü¤Ã¤­¥É¥é¤¨¤â¤ó¡¡ ++¤Ü¤Ã¤·¤å¡¼¤È #JN ¥Ü¥Ã¥·¥å¡¼¥È ++¤Ü¤Ç¤£¤¤¤º¤Ó¤¤¤È #T35 ¥Ü¥Ç¥£¡¼¥º¥Ó¡¼¥È ++¤Ü¤Ü¤ó #T35 ¥ÜËß ++¤Ü¤Ü¤ó #T35 ËХܡ¼¥ó ++¤Ü¤Ü¤ó #T35 ËХܥó ++¤Ü¤Ü¤ó¤¹¤ì #T35 ¥Ü¥Ü¥ó¥¹¥ì ++¤Ü¤ß¤ç¤¦ #CJ ¤Ü¤ß¤ç¡¼ ++¤Ü¤ß¤ç¤¦ #T35 ¤Ü¤ß¤ç¡¼ ++¤Ü¤ë¤¸¤ç¤¢ #JN ¤Ü¤ë¤¸¤ç¤¢¢¡yBEncckFOU ++¤Ü¤ó¤¯¤é¤¹ #T35 ¥Ü¥ó¥¯¥é¥¹ ++¤Ü¤ó¤µ¤¤ #T35 ËßºÏ ++¤Ü¤ó¤µ¤¤¤»¤ó¤»¤¤ #T35 ËߺÏÀèÀ¸ ++¤Ü¤ó¤Á¤å¤¦ #T35 Ëß¿ß ++¤Ý #CJ ¤Ý ++¤Ý¡¼¤«¤ó #JN ¡Ê¡û¸ý¡û*¡ËŽÎŽßް޶ŽÝ ++¤Ý¡¼¤«¤ó #JN ¥Ý¡¼¥«¥ó ++¤Ý¡¼¤ë¤Þ¤ó #JN ¥Ý¡¼¥ë¥Þ¥ó ++¤Ý¤¢ #T35 ¥Ý¥¢ ++¤Ý¤¤¤º¤ó #T35 ¥Ý¥¤¥º¥ó ++¤Ý¤¤¤º¤ó¤¹¤ì #T35 ¥Ý¥¤¥º¥ó¥¹¥ì ++¤Ý¤¨¤¿¤ó #JN ¥Ý¥¨¤¿¤ó ++¤Ý¤¨¤¿¤ó #T35 ¥Ý¥¨¤¿¤ó ++¤Ý¤«¡¼¤ó #CJ (¡¬§Õ¡¬)¥Ý¥«¡¼¥ó ++¤Ý¤«¡¼¤ó #CJ (Žß§ÕŽß)ŽÎŽß޶ްŽÝ ++¤Ý¤«¡¼¤ó #CJ ¥Ý¥«¡¼¥ó ++¤Ý¤«¡¼¤ó #CJ ŽÎŽß޶ްŽÝ ++¤Ý¤«¡¼¤ó #JN (Žß§ÕŽß)ŽÎŽß޶ްŽÝ ++¤Ý¤«¡¼¤ó #JN ¥Ý¥«¡¼¥ó ++¤Ý¤«¡¼¤ó #JN ŽÎŽß޶ްŽÝ ++¤Ý¤³¡¼¤ê #CJ ¥Ý¥³¡¼¥ê ++¤Ý¤³¡¼¤ê #CJ ŽÎŽßŽºŽ°ŽØ ++¤Ý¤¹¤È¤µ¤ó #JN ¥Ý¥¹¥È¤µ¤ó ++¤Ý¤Ã¤Ý #JN ¤Ý¤Ã¤Ý ++¤Ý¤Ã¤Ý #JN ¥Ý¥Ã¥Ý ++¤Ý¤Ã¤Ý #T35 ¤Ý¤Ã¤Ý ++¤Ý¤Ã¤Ý #T35 ¥Ý¥Ã¥Ý ++¤Ý¤ê¤´¤ó¤â¤Ê¡¼ #JN ¡¡¡¡¡¡¥Ý¥ê¥´¥ó¥â¥Ê¡¼ ++¤Ý¤ê¤´¤ó¤â¤Ê¡¼ #JN ¥Ý¥ê¥´¥ó¥â¥Ê¡¼ ++¤Ý¤ë¤È¤¬¤ë¤´ #T35 Éòƺ²ç¸ì ++¤Ý¤ì #T35 ¥Ý¥ì ++¤Ý¤ó¤­¤ó¤«¤ó #CN ¥Ý¥ó¥­¥ó¥«¥ó ++¤Ý¤ó¤­¤ó¤«¤ó #T35 ¥Ý¥ó¥­¥ó¥«¥ó ++¤Ý¤ó¤À¤¤ #CN ¥Ý¥óÂç ++¤Ý¤ó¤À¤¤ #T35 ¥Ý¥óÂç ++¤Ý¤ó¤Ð¤· #CN ¥Ý¥ó¶¶ ++¤Ý¤ó¤Ð¤· #T35 ¥Ý¥ó¶¶ ++¤Þ #JN Ëâ ++¤Þ #T35 Ëâ ++¤Þ¡¼¤¬¤ì¤Ã¤È¤¢¤ó¤É¤Õ¤é¤ó¤½¤ï #JN ¥Þ¡¼¥¬¥ì¥Ã¥È¡õ¥Õ¥é¥ó¥½¥ï ++¤Þ¡¼¤·¡¼ #JN ¥Þ¡¼¥·¡¼ ++¤Þ¡¼¤º¤ä #JN £Í£Á£Ò£Ó²° ++¤Þ¡¼¤Á #KK ¥Þ¡¼¥Á ++¤Þ¤¡¤¦¡«¤µ¤² #T35 ¡³(`§¥¡­)¥Î¥Þ¥¡¥ô¥µ¥² ++¤Þ¤¡¤¦¡«¤µ¤² #T35 ¡³(`§¥¡­)ŽÉŽÏާ޳ŽÞ޻޹ŽÞ ++¤Þ¤¢¤ª¤Á¤Ä¤± #CJ ¤Þ¤¢Íî¤ÁÃ失 ++¤Þ¤¢¤ª¤ó¤¿¤¤¤À¤· #CJ ¤Þ¤¢¸æÂç¤À¤· ++¤Þ¤¢¤Á #T35 ¥Þ¡¼¥Á ++¤Þ¤¤¤¦¡¼ #T35 ¥Þ¥¤¥¦¡¼ ++¤Þ¤¤¤®¤ç¤¯ #T35 £Í£ù¶Ì ++¤Þ¤¤¤¯¤½¤½¤Õ¤È #T35 ¥Þ¥¤Êµ¥½¥Õ¥È ++¤Þ¤¤¤¿ #CN ¥ÞÈÄ ++¤Þ¤¤¤¿ #T35 ¥ÞÈÄ ++¤Þ¤¤¤¿¤ó¤Ú¤ó¤®¤ó #JN ¤Þ¤¤¤¿¤ó¥Ú¥ó¥®¥ó ++¤Þ¤¤¤Ë¤Ã¤Á #JN ¥Þ¥¤¥Ë¥Ã¥Á¡¡ ++¤Þ¤¤¤Ó¤¤¤à #T35 ¥Þ¥¤¥Ó¡¼¥à ++¤Þ¤¤¤ó¤É¤¯¤é¤Ã¤·¤ã¤¢ #T35 ¥Þ¥¤¥ó¥É¥¯¥é¥Ã¥·¥ã¡¼ ++¤Þ¤¦ #JN ¥Þ¥¦ ++¤Þ¤¦ #T35 ¥Þ¥¦ ++¤Þ¤¦¤¹¤Ñ¤Ã¤È #T35 ¥Þ¥¦¥¹¥Ñ¥Ã¥È ++¤Þ¤¨¤¹¤ì #T35 Á°¥¹¥ì ++¤Þ¤¨¤À¤±¤¤¤¸ #JN Á°Åķļ¡ ++¤Þ¤ª¡¼ #JN ¥Þ¥ª¡¼ ++¤Þ¤ª¤¦¤â¤Ê¤Õ¤¡¡¼ #JN ËⲦ¥â¥Ê¥Õ¥¡¡¼ ++¤Þ¤«¡¼ #T35 ¥Þ¥«¡¼ ++¤Þ¤«¤¢ #T35 ¥Þ¥«¡¼ ++¤Þ¤«¤¤ #T35 Ë⳦ ++¤Þ¤«¤Ä #K5 ¤Þ¤«¤Ä ++¤Þ¤«¤Ä¤¯¤Ã¤Æ¤¤¤¦¤«¤­¤â¤¤ #CJ ¤Þ¤«¤Ä¤¯¤Ã¤Æ¤¤¤¦¤«¥­¥â¥¤ ++¤Þ¤­¤³ #JNM ¥Þ¥­¥³ ++¤Þ¤­¤³ #JNM Ëâµ´»Ò ++¤Þ¤­¤³ #T35 ¥Þ¥­¥³ ++¤Þ¤­¤³ #T35 Ëâµ´»Ò ++¤Þ¤­¤Î¤ë¤­ #JN ËÒÌîαɱ ++¤Þ¤°¤Þ¤° #KK ¤Þ¤°¤Þ¤° ++¤Þ¤°¤í #T35 Ëî ++¤Þ¤±¤¤¤Ì #T35 É餱¸¤ ++¤Þ¤³¤Ä #T35 Ëâ¹ü ++¤Þ¤³¤È #JN ¿¿ ++¤Þ¤³¤Ô¡¼ #JN ¤Þ¤³¤Ô¡¼ ++¤Þ¤³¤Ô¡¼ #T35 ¤Þ¤³¤Ô¡¼ ++¤Þ¤³¤Ô¤¤ #T35 ¤Þ¤³¤Ô¡¼ ++¤Þ¤³¤Ô¤¹¤È #T35 ¤Þ¤³¤Ô¤¹¤È ++¤Þ¤µ¤ª #JNM ¤Þ¤µ¤ª ++¤Þ¤µ¤ª #JNM ¥Þ¥µ¥ª ++¤Þ¤µ¤ª #JNM ÀµÃË ++¤Þ¤µ¤ª #T35 ¤Þ¤µ¤ª ++¤Þ¤µ¤ª #T35 ¥Þ¥µ¥ª ++¤Þ¤µ¤ª #T35 ÀµÃË ++¤Þ¤µ¤à¤Í¡¼¤è¤«¤Ã¤³¤¦¤£¤º¤Ê¤¨¤Ê¤¤¤ï¤È¤¸¤«¤Ã¤³ #JN ¥Þ¥µ¥à¥Í¡¼¥è¡Êwith¡¡¥Ê¥¨¥Ê¥¤¥ï¡Ë ++¤Þ¤µ¤ä #JNM ¥Þ¥µ¥ä ++¤Þ¤µ¤ä #T35 ¥Þ¥µ¥ä ++¤Þ¤µ¤è¤· #JNM ÀµµÁ ++¤Þ¤·¡¼¤Ö #T35 ¥Þ¥·¡¼¥Ö ++¤Þ¤·¤¤¤Ö #T35 ¥Þ¥·¡¼¥Ö ++¤Þ¤·¤ê¤È #JN ¥Þ¥·¥ê¥È ++¤Þ¤·¤ê¤È #T35 ¥Þ¥·¥ê¥È ++¤Þ¤·¤ó¤¤¤é¤Í¤¤¤À¡¼ #JN ¥Þ¥·¥ó¥¤¥é¥Í¥¤¥À¡¼ ++¤Þ¤·¤ó¤µ¤ó #CJ ¤Þ¤·¤ó¤µ¤ó¡¦¡¦¡¦ ++¤Þ¤¸¤á¤À¤Ê¡¼ #JN ¥Þ¥¸¥á¥À¥Ê¡¼ ++¤Þ¤¸¤ì¤¹ #T30 ¥Þ¥¸¥ì¥¹ ++¤Þ¤¸¤ì¤¹¤Þ¤ó #JN ¥Þ¥¸¥ì¥¹¥Þ¥ó ++¤Þ¤¸¤ò¤¿ #T35 ¥Þ¥¸¥ò¥¿ ++¤Þ¤¹¤ª #JNM ¥Þ¥¹¥ª ++¤Þ¤¹¤ª #T35 ¥Þ¥¹¥ª ++¤Þ¤¹¤´¤ß #T35 ¥Þ¥¹¥´¥ß ++¤Þ¤¹¤¿ #SUC ¤Þ¤¹¤¿ ++¤Þ¤¹¤¿¡¼¤¤¤Ä¤â¤Î¤¿¤Î¤à #CJ ¥Þ¥¹¥¿¡¼¡¢¤¤¤Ä¤â¤Î¤¿¤Î¤à ++¤Þ¤º¤¦ #CJ ¥Þ¥º¡¼ ++¤Þ¤º¤¦ #CJ ŽÏ޽ŽÞް ++¤Þ¤º¤¸¤å¡¼ #T35 ¤Þ¤º¥¸¥å¡¼ ++¤Þ¤½¤³ #T35 ¥Þ¥½¥³ ++¤Þ¤¿ #CJ ¤Þ¤¿¡© ++¤Þ¤¿¡¼¤ê #T30 ¥Þ¥¿¡¼¥ê ++¤Þ¤¿¡¼¤ê #T30 ¥Þ¥¿¡Á¥ê ++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦ #KK ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦ÅÞ ++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦¤¢¤é¤· #JN ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦Å޹Ӥ餷 ++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦¤½¤¦¤¹¤¤ #JN ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦ÅÞÁí¿ã ++¤Þ¤¿¡¼¤ê¤´¤¦ #JN MATAARI¹æ ++¤Þ¤¿¡¼¤ê¤Ê¤ä¤·¤ç¤¯¤ò¤Ä¤¯¤í¤¦ #JN ¥Þ¡¼¥¿¥ê¤ÊÌë¿©¤òºî¤í¤¦ ++¤Þ¤¿¡¼¤ê¤á¤À¤ë #JN ¥Þ¥¿¡¼¥ê¥á¥À¥ë ++¤Þ¤¿¡¼¤ê¤á¤À¤ë #JN ŽÏŽÀްިŽÒŽÀŽÞŽÙ ++¤Þ¤¿¤¢¤ê¤¹¤ì #T35 ¥Þ¥¿¡¼¥ê¥¹¥ì ++¤Þ¤¿¤¢¤ê¤Á¤å¤¦ #T35 ¥Þ¥¿¡¼¥ê¿ß ++¤Þ¤¿¤ª¤ª¤µ¤«¤« #CJ ¤Þ¤¿Âçºå¤« ++¤Þ¤¿¤ª¤ª¤µ¤«¤ä #CJ ¤Þ¤¿Âçºå¤ä ++¤Þ¤¿¤Ê¤¬¤¿¤¹¤ì¤« #CJ ¤Þ¤¿±ÊÅÄ¥¹¥ì¤« ++¤Þ¤À¤à #JN ¥Þ¥À¥à ++¤Þ¤Á¤Ó¡¼¤Ó¡¼¤¨¤¹ #KK ¤Þ¤ÁBBS ++¤Þ¤Á¤Ó¤¤¤Ó¤¤¤¨¤¹ #T35 ¤Þ¤ÁBBS ++¤Þ¤Ã¤¿¤ê #T30 ¥Þ¥Ã¥¿¥ê ++¤Þ¤Ã¤¿¤ê #T30 ¤Þ¤Ã¤¿¤ê ++¤Þ¤Ã¤Á¤ç¤â¤Ê¡¼ #JN ¥Þ¥Ã¥Á¥ç¥â¥Ê¡¼ ++¤Þ¤Ä¤¤ #T35 ¾¾°æ ++¤Þ¤Ä¤¿¤±¤³ #JN ¾¾¤¿¤±»Ò ++¤Þ¤Ä¤À¤¤¤é #T35 ¾¾Ê¿ ++¤Þ¤Ä¤À¤¿¤«¤È #JN ¾¾ÅÄ·¼¿Í ++¤Þ¤Ä¤ê #T35 º×¤ê ++¤Þ¤Ä¤ê¤¢¤­¤¿ #JN º×¤ê˰¤­¤¿ ++¤Þ¤Ä¤ê¤À¤È¤Ä¤²¤­¤À #JN º×¤ê¤À¢öÆÍ·â¤À¡ª ++¤Þ¤Å #T35 ¥Þ¥Å ++¤Þ¤È¤Ð¤Õ¤ß¤ª #JN Ū¾ìʸÃË ++¤Þ¤É¤« #T35 ¥Þ¥É¥« ++¤Þ¤É¤Ä¤«¤¤ #T35 Áë»È¤¤ ++¤Þ¤Ë¡¼ #JN ¥Þ¥Ë¡¼¡¡ ++¤Þ¤Ë¡¼¤¯¤Þ¤Ã¤·¤å¤ë¡¼¤à #JN ¥Þ¥Ë¡¼¥¯¥Þ¥Ã¥·¥å¥ë¡¼¥à ++¤Þ¤Ë¡¼¤¯¤Þ¤Ã¤·¤å¤ë¡¼¤à #JN ¥Þ¥Ë¡¼¥¯¥Þ¥Ã¥·¥å¥ë¡¼¥à ++¤Þ¤Ò¤£¤¢ #JN ¥Þ¥Ò¥£¥¢ ++¤Þ¤Ò¤£¤¢ #JN ŽÏŽËލޱ ++¤Þ¤Ò¤£¤¢ #T35 ¥Þ¥Ò¥£¥¢ ++¤Þ¤Ò¤£¤¢¤£¤ç¤¥ #JN ¥Þ¥Ò¥£¥¢¤£¤ç¤¥ ++¤Þ¤Ò¤£¤¢¤£¤ç¤¥ #JN ŽÏŽËލޱ¤£¤ç¤¥ ++¤Þ¤Û¤¦¤Ä¤«¤¤ #T35 ËâË¡»È¤¤ ++¤Þ¤Ü¤ó #T35 Ëõ¥Ü¡¼¥ó ++¤Þ¤Ü¤ó #T35 Ëõ¥Ü¥ó ++¤Þ¤Ý¡¼¤é #CJ ¥Þ¥Ý¡¼¥é ++¤Þ¤Þ #CJ ¡Ê¡­§Õ¡®¡Ë¥Þ¥Þ¡¦¡¦¡¦ ++¤Þ¤Þ #CJ ¡Ê¡­§Õ¡®¡ËŽÏŽÏ¡¦¡¦¡¦ ++¤Þ¤Þ #JN ¡Ê¡­§Õ¡®¡Ë¥Þ¥Þ¡¦¡¦¡¦ ++¤Þ¤Þ #JN ¡Ê¡­§Õ¡®¡ËŽÏŽÏ¡¦¡¦¡¦ ++¤Þ¤Þ¤´¤ó #T35 ¥Þ¥Þ¥´¥ó ++¤Þ¤Þ¤â¤Ê¡¼¤»¤¤¤Á¤ç¤¦¤º #JN ¥Þ¥Þ¥â¥Ê¡¼À®Ä¹¿Þ ++¤Þ¤Þ¤ó #JN ¥Þ¥Þ¥ó ++¤Þ¤Þ¤ó #T35 ¥Þ¥Þ¥ó ++¤Þ¤à¤³ #T35 ¥Þ¥à¥³ ++¤Þ¤á #T35 Ʀ ++¤Þ¤é¤¤¤¢¤ó #JN ¥Þ¥é¥¤¥¢¥ó ++¤Þ¤é¤¹¤¿¡¼ #JN ¥Þ¥é¡¦¥¹¥¿¡¼ ++¤Þ¤é¤Í¡¼¤è #JN ¥Þ¥é¥Í¡¼¥è ++¤Þ¤é¤Ü¤¦ #JN ¥Þ¥éË· ++¤Þ¤é¤ß #JN ¥Þ¥éÈþ ++¤Þ¤é¤é¡¼ #JN ¥Þ¥é¥é¡¼ ++¤Þ¤é¤é¡¼¤À¤ó¤µ¡¼¤º #JN ¥Þ¥é¥é¡¼¥À¥ó¥µ¡¼¥º ++¤Þ¤é¤é¤É¤Î #JN ¥Þ¥é¥éÅ ++¤Þ¤é¤ê¡¼¤Þ¤ó #JN ¥Þ¥é¥ê¡¼¥Þ¥ó ++¤Þ¤ê¤â #JN ÝÜÁô ++¤Þ¤ê¤â #T35 ¤Þ¤ê¤â ++¤Þ¤ë¤¤¤±¤¤ #T35 ´Ý°æ·Ï ++¤Þ¤ë¤¹¤ä #JN £Í£Á£Ò£Ó²° ++¤Þ¤ë¤Á #JN ¥Þ¥ë¥Á ++¤Þ¤ë¤Á #T35 ¥Þ¥ë¥Á ++¤Þ¤ë¤Á¤Ý¤¹¤È #T30 ¥Þ¥ë¥Á¥Ý¥¹¥È ++¤Þ¤ë¤ß #JN ±ßÈþ ++¤Þ¤ë¤ß¤ß¤â¤Ê¡¼ #JN ´Ý¼ª¥â¥Ê¡¼ ++¤Þ¤í¤ó #T35 ¥Þ¥í¥ó ++¤Þ¤ï¤·¤®¤³ #JN ¤Þ¤ï¤·¥®¥³ ++¤Þ¤ó #T35 Ëþ ++¤Þ¤ó¤¤¤ó¤Ç¤ó¤·¤ã #JN Ëþ°÷ÅÅ¼Ö ++¤Þ¤ó¤¬¤Í¤¿¤¹¤ì #T35 Ì¡²è¥Í¥¿¥¹¥ì ++¤Þ¤ó¤­¤ó¤¨¤°¤¼ #T35 ¥Þ¥ó¥­¥óEXE ++¤Þ¤ó¤®¤ã¤ë #T35 ¥Þ¥ó¥®¥ã¥ë ++¤Þ¤ó¤º¤ê #T35 ÒÄ¥º¥ê ++¤Þ¤ó¤»¡¼ #CJ ¥Þ¥ó¥»¡¼ ++¤Þ¤ó¤»¡¼¤á¡¼¤¿¡¼ #T35 ¥Þ¥ó¥»¡¼¥á¡¼¥¿¡¼ ++¤Þ¤ó¤»¤¨¤á¤¨¤¿¤¢ #T35 ¥Þ¥ó¥»¡¼¥á¡¼¥¿¡¼ ++¤Þ¤ó¤É¤¯¤»¤¨ #CJ ¥Þ¥ó¥É¥¯¥»¡¼ ++¤Þ¤ó¤Ü¤¦ #JN ¥Þ¥ó¥Ü¥¦ ++¤ß¡¼¤È¤Ü¡¼¤ë #JN ¥ß¡¼¥È¥Ü¡¼¥ë ++¤ß¤¤¤Ë¤ã¤¢¤¿¤ó #T35 ¥ß¡¼Æó¥ã¡¼¤¿¤ó ++¤ß¤¦¤Ê #JN ¤ß¤¦¤Ê ++¤ß¤«¤« #KK ¤ß¤«¤« ++¤ß¤«¤« #T35 ¤ß¤«¤« ++¤ß¤«¤É¤¢¤ó #JN ¤ß¤«¤É°Ã ++¤ß¤«¤É¤¢¤ó¤Ê¤¤¤Ö #JN ¤ß¤«¤É°ÃÆâÉô ++¤ß¤­¡¼¤ª #JN ¥ß¥­¡¼¥ª ++¤ß¤®¤Æ¤Ç¤«¤­¤Þ¤·¤¿ #CJ ±¦¼ê¤Ç½ñ¤­¤Þ¤·¤¿ ++¤ß¤®¤Ò¤² #T35 ±¦¤Ò¤² ++¤ß¤³¤ß¤³¤Ê¤¢¤¹ #KK Öà½÷¤ß¤³¥Ê¡¼¥¹ ++¤ß¤µ¤«¤«¤ª¤ê #T35 Èþºä¹áΤ ++¤ß¤·¤ã¤â¤Ê¡¼ #JN Èþ¼Ó¥â¥Ê¡¼ ++¤ß¤·¤ç¤¯¤¯¤ó #T35 ̤¿©·¯ ++¤ß¤¹¤º¤â¤Ê¡¼ #JN ´ÑÎë¥â¥Ê¡¼ ++¤ß¤¹¤¿¡¼¤Û¤¥ #JN Mr.ŽÎŽ© ++¤ß¤º¤´¤ê¤é #JN ¿å¥´¥ê¥é ++¤ß¤º¤´¤ê¤é #T35 ¿å¥´¥ê¥é ++¤ß¤¾¤Í¤º¤ß #JN ¹ÂÁÍ ++¤ß¤¾¤Í¤º¤ß #T35 ¹ÂÁÍ ++¤ß¤¿¤é¤¤¤Ò¤í¤­ #T35 ¸æ¼êÀöÊØ´ï ++¤ß¤Á¤å #JN (*'-'*) ++¤ß¤Á¤å #JN ¤ß¤Á¤å ++¤ß¤Ã¤·¡¼ #JN ¤ß¤Ã¤·¡¼ ++¤ß¤Ã¤·¡¼ #T35 ¤ß¤Ã¤·¡¼ ++¤ß¤Ã¤·¤¤ #T35 ¤ß¤Ã¤·¡¼ ++¤ß¤Ã¤Õ¤£¡¼¤ª¤ä¤³ #JN ¥ß¥Ã¥Õ¥£¡¼¿Æ»Ò ++¤ß¤Ä¤´¤í #T35 £³£²£µ£¶ ++¤ß¤Ä¤ß #T35 £³£²£³ ++¤ß¤Ä¤ß¤â¤Ê¡¼ #JN £³£²£³¥â¥Ê¡¼ ++¤ß¤É¤Í¤¨ #T35 ¥ß¥É°¹ ++¤ß¤É¤ê¤¬¤¨¤ë #T35 Îг¿ ++¤ß¤Ê¡¼ #JN ¥ß¥Ê¡¼ ++¤ß¤Ê¤»¤Ê¤æ¤­ #JN ¿åÀ¥Ì¾Àã ++¤ß¤Ê¤»¤Ê¤æ¤­ #T35 ¿åÀ¥Ì¾Àã ++¤ß¤Ê¤Å¤­¤¸¤ç¤¦¤Û¤¦¤Ú¡¼¤¸ #KK ¿å̵·î¾ðÊó¥Ú¡¼¥¸ ++¤ß¤Ê¤Ý¤ó #T35 ¤ß¤Ê¤Ý¤ó ++¤ß¤Ê¤ß¤Á¤ç¤ó #T35 Æî¥Á¥ç¥ó ++¤ß¤Ê¤ß¤â¤ê¤Þ¤Á #KK Æî¿¹Ä® ++¤ß¤Ê¤ß¤â¤ê¤Þ¤Á #T35 Æî¿¹Ä® ++¤ß¤Ê¤â¤È #T35 ¥ß¥Ê¤â¤È ++¤ß¤Ê¤â¤È¤µ¤ó #JN ¸»¤µ¤ó ++¤ß¤Ë¤®¤³ #JN ¥ß¥Ë¥®¥³ ++¤ß¤Ë¤â¤é #JN ¥ß¥Ë¥â¥é ++¤ß¤Î¤ï #T35 Ì§ÎØ ++¤ß¤ß¤º¤ä¤µ¤ó #T35 ¥ß¥ß¥º²°¤µ¤ó ++¤ß¤ß¤Ê¤·¤â¤Ê¡¼ #JN ¼ª¤Ê¤·¥â¥Ê¡¼ ++¤ß¤à¤é #JNS »°Â¼ ++¤ß¤à¤é #T35 »°Â¼ ++¤ß¤ã¤¢¤À¤¤ #T35 ¤ß¤ã¡ÁÂç ++¤ß¤ã¤Ã¤¯ #JN ¥ß¥ã¥Ã¥¯ ++¤ß¤ç¤¥ #JN ¤ß¤ç¤¥ ++¤ß¤è¤¦ #JN ¤ß¤ç¤¥ ++¤ß¤é¤¤¤Ë¤Ã¤­ #T35 ̤ÍèÆüµ­ ++¤ß¤ë¤¯¤«¤Õ¤§ #T35 ¥ß¥ë¥¯¥«¥Õ¥§ ++¤ß¤ó¤É #T35 ̱ÅÙ ++¤ß¤ó¤Ê¡¼¤ª¤Á¤±¤Ä¡¼ #JN ¤ß¤ó¤Ê¡¼¤ª¤Á¤±¤Ä¡¼ ++¤ß¤ó¤Ê¤«¤é¤Î¤ª¤Í¤¬¤¤ #T35 ¤ß¤ó¤Ê¤«¤é¤Î¤ª¤Í¤¬¤¤ ++¤à¤¤¤¿ #CN ¥àÈÄ ++¤à¤¥ #JN ¤à¤¥ ++¤à¤«¡¼¤Ç #JN ¥à¥«¡¼¥Ç ++¤à¤«¤Ä¤¯¤Í¤ó #JN ¥à¥«¤Ä¤¯Ç° ++¤à¤®¤å¡¼ #JN ¥à¥®¥å¡¼ ++¤à¤±¤é¡¼ #JN ¥à¥±¥é¡¼ ++¤à¤·¤«¤´ #T35 ÃîäÆ ++¤à¤·¤Ð¡¼ #JN ¥à¥·¥Ð¡¼ ++¤à¤·¤å¤¦ #T35 ̵½­ ++¤à¤·¤ç¤¯ #T35 ̵¿¦ ++¤à¤¸¤ë¤· #T35 ̵°õ ++¤à¤¹¡¼¤Ë¤ç #JN ¥à¥¹¡¼¥Ë¥ç ++¤à¤¹¤« #T35 ¥à¥¹¥« ++¤à¤Ã¤¯ #JN ¥à¥Ã¥¯ ++¤à¤Í¤ª #JNM ¥à¥Í¥ª ++¤à¤Í¤ª #T35 ¥à¥Í¥ª ++¤à¤Í¤ª¤Ï¤¦¤¹ #T35 ¥à¥Í¥ª¥Ï¥¦¥¹ ++¤à¤Í¤ò #JN ¥à¥Í¥ò ++¤à¤Í¤ò #JNM ¥à¥Í¥ò ++¤à¤Í¤ò #T35 ¥à¥Í¥ò ++¤à¤Ï¤¡ #JN ¡ÊŽß§¥Žß¡¡¡Ë¥à¥Ï¥¡ ++¤à¤Ï¤¡ #JN ¥à¥Ï¥¡ ++¤à¤é¤µ¤­ #JN »ç ++¤à¤é¤µ¤­ #T35 »ç ++¤à¤é¤µ¤­¤À #CJ »ç¤À ++¤à¤é¤Î¤·¤ó¤Ü¤ë #JN ¼¤Î¥·¥ó¥Ü¥ë ++¤à¤ê¤À¡¼¤è #JN ¥à¥ê¥À¡¼¥è ++¤à¤ê¤À¡¼¤è #JN ŽÑŽØŽÀŽÞްŽÖ ++¤á¡¼¤ë¤Ü¤à #T35 ¥á¡¼¥ë¥Ü¥à ++¤á¤¢¤ê¤£ #T35 ¥á¥¢¥ê¥£¡¢¡º¥¢¥ê¥£ ++¤á¤¢¤ê¤£¤Î¤Í¤Ä¤¾¤¦¤ì¤¹ #T35 ¥á¥¢¥ê¥£¤ÎÙÔ¤¥ì¥¹¡¢¡º¥¢¥ê¥£¤ÎÙÔ¤¥ì¥¹ ++¤á¤¤¤¸ #CN ÌÀ¼£ ++¤á¤¤¤¸ #T35 ­í ++¤á¤¤¤¹¤ì #T35 ̾¥¹¥ì ++¤á¤¤¤¹¤ì¤Î¤ª¤«¤ó #CJ ̾¥¹¥ì¤Î°­´¨ ++¤á¤¤¤¹¤ì¤Î¤è¤«¤ó #CJ ̾¥¹¥ì¤Îͽ´¶ ++¤á¤¤¤Æ¤Ä #T35 ÌÂÅ´ ++¤á¤¤¤Ì¤ì¤Î¤è¤«¤ó #CJ ³Æ¥Ì¥ì¤ÎÌ·´¶ ++¤á¤¤¤×¤ë¤·¤í¤Ã¤× #T35 MapleSyrup ++¤á¤¤¤è¤Ø¤ó¤¸¤ç¤¦ #CJ ̾ÍÀÊÖ¾å ++¤á¤¤¤ë¤Ü¤à #T35 ¥á¡¼¥ë¥Ü¥à ++¤á¤¨¤Æ¤ë¤¹¤ì #T35 ¥á¡¼¥Æ¥ë¥¹¥ì ++¤á¤«¡¼ #JN ŽÒ޶ް ++¤á¤«¤¤¤è¤¦ #JN ¥á¥«¤£¤ç¤¥ ++¤á¤«¤¦¤Þ¡¼ #JN ŽÒ޶޳ŽÏް¡ÊŽÒ޶ް¡Ë ++¤á¤«¤ª¤È¤¿¤± #JN ¥á¥«ZÉð ++¤á¤«¤ª¤Ë¤®¤ê #JN ¥á¥«¤ª¤Ë¤®¤ê ++¤á¤«¤«¤á¤â¤Ê¡¼ #JN ¥á¥«¥«¥á¥â¥Ê¡¼ ++¤á¤«¤®¤³ #JN ¥á¥«¥®¥³ ++¤á¤«¤²¤é¤é¡¼ #JN ¥á¥«¥²¥é¥é¡¼ ++¤á¤«¤·¤é¤Í¡¼¤è #JN ¥á¥«¥·¥é¥Í¡¼¥è ++¤á¤«¤¸¤¨¤ó #JN [¡¦»®¡¦¡§] ++¤á¤«¤¸¤¨¤ó #JN ŽÒ޶޼ŽÞŽ´ŽÝ ++¤á¤«¤»¤¤¤È #JN ¥á¥«À¸ÅÌ ++¤á¤«¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¥á¥«¤½¤¦¤Ç¤â¤Ê¤¤¤è ++¤á¤«¤½¤é¤Í¡¼¤è #JN ¥á¥«¥½¥é¥Í¡¼¥è ++¤á¤«¤¾¤Ì #JN ¥á¥«¤¾¤Ì ++¤á¤«¤È¤±¤Í¡¼¤è #JN [:Žß/|Žß:]ŽÄ޹ŽÈްŽÖ ++¤á¤«¤È¤±¤Í¡¼¤è #JN ¥á¥«¥È¥±¥Í¡¼¥è ++¤á¤«¤Õ¤§¤é¡¼¤Á¤ç #JN ¥á¥«¥Õ¥§¥é¡¼¥Á¥ç ++¤á¤«¤â¤¦¤³¤Í¤§¤è #JN ¥á¥«ŽÓŽ³ŽºŽÈŽªŽÖ! ++¤á¤«¤â¤Ê¡¼ #JN ¥á¥«¥â¥Ê¡¼ ++¤á¤¬¤¨¤ë #JN ¥á¥¬¥¨¥ë ++¤á¤¬¤Ó #KK ¥á¥¬¥Ó ++¤á¤¬¤Ó #T35 ¥á¥¬¥Ó ++¤á¤¬¤ß #T35 ½÷¿À ++¤á¤®¤Î¤¬¤Ç #JN ¥á¡¦¥®¥Î¥¬¡¦¥Ç ++¤á¤± #T35 ¤á¤± ++¤á¤±¤Ã #T35 ¤á¤±¤Ã ++¤á¤±¤ò¤ß¤È¤á¤ë #CJ ¤á¤±¤òǧ¤á¤ë ++¤á¤·¤À¤¤ #T35 ¤á¤·Âç ++¤á¤¹¤Ö¤¿ #T35 »óÆÚ ++¤á¤½¤Ð¡¼ #T35 ¥á¥½¥Ð¡¼ ++¤á¤½¤Ð¤¢ #T35 ¥á¥½¥Ð¡¼ ++¤á¤¾¤·¤ã¡¼¤ê¡¼ #KK ¥á¥¾¥·¥ã¡¼¥ê¡¼ ++¤á¤¾¤·¤ã¡¼¤ê¡¼ #T35 ¥á¥¾¥·¥ã¡¼¥ê¡¼ ++¤á¤¾¤·¤ã¤¢¤ê¤¤ #T35 ¥á¥¾¥·¥ã¡¼¥ê¡¼ ++¤á¤¿¤ê¤« #T35 ¥á¥¿¥ê¥« ++¤á¤¿¤ê¤Ã¤¯ #KK ¤á¤¿¤ê¤Ã¤¯ ++¤á¤À¤Þ #T35 ÌÜ¶Ì ++¤á¤Ç¤Æ¡¼¤è #JN ¥á¥Ç¥Æ¡¼¥è ++¤á¤Ê¤· #JN Ìܤʤ· ++¤á¤à¤Ð¡¼ #T35 ¥á¥à¥Ð¡¼ ++¤á¤â¤é¡¼ #JN ¥á¥â¥é¡¼ ++¤á¤ê¤±¤ó¤Æ¤ó¤·¤µ¤é #JN ¥á¥ê¥±¥óÅ·»È¡ù¥µ¥é¡ª ++¤á¤ê¤ë¤·¤£¤ë¤Ð¡¼¤Ð¡¼¤° #JN ¥á¥ê¥ë¡¦¤·¤£¥ë¥Ð¡¼¥Ð¡¼¥° ++¤á¤ë¤Ø¤ó #T35 ¥á¥ë¥Ø¥ó ++¤á¤ë¤Ø¤ó¤¤¤¿ #T35 ¥á¥ë¥Ø¥óÈÄ ++¤á¤ë¤Þ¤¬ #T35 ¥á¥ë¥Þ¥¬ ++¤á¤í¤¹¤Ñ¡¼ #T35 ¥á¥í¥¹¥Ñ¡¼ ++¤á¤í¤¹¤Ñ¤¢ #T35 ¥á¥í¥¹¥Ñ¡¼ ++¤á¤í¤ó #T35 ¥á¥í¥ó ++¤á¤ó #T35 ÌÍ ++¤á¤ó¤¿¤ë¤Ø¤ë¤¹¤¤¤¿ #T35 ¥á¥ó¥¿¥ë¥Ø¥ë¥¹ÈÄ ++¤á¤ó¤Æ #T30 ¥á¥ó¥Æ ++¤á¤ó¤É¤¯¤»¤§ #JN ¥á¥ó¥É¥¯¥»¥§ ++¤á¤ó¤É¤¯¤»¤§¤»¤¤¤È #JN ŽÒŽÝŽÄŽÞŽ¸Ž¾ŽªÀ¸ÅÌ ++¤á¤ó¤Ð¡¼ #T35 ¥á¥ó¥Ð¡¼ ++¤á¤ó¤Ð¤¢ #T35 ¥á¥ó¥Ð¡¼ ++¤á¤ó¤Ø¤é¤¢ #T35 ¥á¥ó¥Ø¥é¡¼ ++¤á¤ó¤Ø¤ë¤¤¤¿ #T35 ¥á¥ó¥Ø¥ëÈÄ ++¤á¤ó¤Ü¤¦ #T35 ¤á¤ó¤Ü¤¦ ++¤â¡¼¤¤¤¿ #CN ¥â¡¼ÈÄ ++¤â¡¼¤¤¤¿ #T35 ¥â¡¼ÈÄ ++¤â¡¼¤³¡¼ #CN ¥â¡¼¥³¡¼ ++¤â¡¼¤³¡¼ #T35 ¥â¡¼¥³¡¼ ++¤â¡¼¤Ë¤ó¤°¤³¡¼¤Ò¡¼ #CN ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼ ++¤â¡¼¤Ë¤ó¤°¤³¡¼¤Ò¡¼ #KK ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼ ++¤â¡¼¤Ë¤ó¤°¤à¤¹¤á #JN ¥â¡¼¥Ë¥ó¥°Ì¼¡£ ++¤â¡¼¤Ë¤ó¤°¤à¤¹¤á¤¤¤¿ #CN ¥â¡¼¥Ë¥ó¥°Ì¼¡£ÈÄ ++¤â¤¢¤ê #T35 ÁôÍ­ ++¤â¤¤¤¿ #CN ¥âÈÄ ++¤â¤¤¤¿ #T35 ¥âÈÄ ++¤â¤¦¤¤¤¿ #T35 ¥â¡¼ÈÄ ++¤â¤¦¤ª¤³¤Ã¤¿¤¾¤¦ #JN ¤â¤¦Åܤä¿¥¾¥¦ ++¤â¤¦¤²¤ó #T35 ÌѸÀ ++¤â¤¦¤³¤¦ #T35 ¥â¡¼¥³¡¼ ++¤â¤¦¤³¤Í¤¨¤è #JN ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è ++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª ++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª¥¦¥ï¥¡¥¡¥ó ++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è¡ª ++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è¡ªŽ³ŽÜާާŽÝ ++¤â¤¦¤³¤Í¤¨¤è #CJ ¤â¤¦Íè¤Í¤¨¤è¡ª ++¤â¤¦¤³¤Í¤¨¤è #JN ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª¥¦¥ï¥¡¥¡¥ó ++¤â¤¦¤³¤Í¤¨¤è #JN ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è¡ªŽ³ŽÜާާŽÝ ++¤â¤¦¤³¤Í¤¨¤è #JN ¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó!¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó!¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó! ++¤â¤¦¤³¤Í¤¨¤è #JN ŽÓŽ³ŽºŽÈŽ´ŽÖ!!޳ŽÜާާŽÝ!ŽÓŽ³ŽºŽÈŽ´ŽÖ!!޳ŽÜާާŽÝ!ŽÓŽ³ŽºŽÈŽ´ŽÖ!!޳ŽÜާާŽÝ! ++¤â¤¦¤³¤Í¤¨¤è¤¦¤ï¤¡¤¡¤ó #JN ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è¡ªŽ³ŽÜާާŽÝ ++¤â¤¦¤½¤¦¤½¤¦ #CJ ¤â¤¦¤½¤¦¤½¤¦ ++¤â¤¦¤¿¤¢¤ª¤È¤³ #T35 ¥â¡¼¥¿¡¼ÃË ++¤â¤¦¤¿¤¢¤µ¤¤¤¯¤ë #T35 ¥â¡¼¥¿¡¼¥µ¥¤¥¯¥ë ++¤â¤¦¤¿¤Í¤Ý #CJ ¤â¤¦¤¿¤Í¤Ý ++¤â¤¦¤À¤á¤Ý #CJ ¤â¤¦¤À¤á¤Ý ++¤â¤¦¤À¤á¤Ý #T35 ¤â¤¦¤À¤á¤Ý ++¤â¤¦¤Ë¤ó¤°¤³¤¦¤Ò¤¤ #T35 ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼ ++¤â¤¦¤ß¤º¤Ý #CJ ¤â¤¦¤ß¤º¤Ý ++¤â¤¦¤ß¤º¤Ý #T35 ¤â¤¦¤ß¤º¤Ý ++¤â¤¦¤â¤¦ #CJ ¤â¡¼¤â¡¼ ++¤â¤¨ #KS ˨¤¨ ++¤â¤¨ #T35 ˨¤¨ ++¤â¤ª¤Î¤­ #T35 ¥â¥ª¥Î¥­ ++¤â¤«¡¼ #JN ¥â¥«¡¼ ++¤â¤¬¤ì¤¿¤¯¤ó #JN ¥â¥¬¥ì¥¿·¯ ++¤â¤¯¤²¤­¤É¤­¤å¤ó #KK ÌÜ·â¥É¥­¥å¥ó ++¤â¤±¤± #JN ¥â¥±¥± ++¤â¤±¤± #JN ŽÓ޹޹ ++¤â¤³¤¿ #JN ¤â¤³ÂÀ ++¤â¤·¤½¤¦¤ê #JNS ¿¹ÁíÍý ++¤â¤·¤½¤¦¤ê #JNSUC ¿¹ÁíÍý ++¤â¤¸¤ì¤¹ #T35 ʸ»ú¥ì¥¹ ++¤â¤¹¤é¡¼ #JN ¥â¥¹¥é¡¼ ++¤â¤» #T35 ¤â¤» ++¤â¤»¤¢ #T35 ¤â¤»¤¢ ++¤â¤¿¤ª #T35 ¥â¥¿ÃË ++¤â¤Ã¤³¤ê¡¼¤Ê #JN ¥â¥Ã¥³¥ê¡¼¥Ê ++¤â¤Ã¤Á¡¼ #JN ¥â¥Ã¥Á¡¼ ++¤â¤Ã¤Á¡¼ #T35 ¥â¥Ã¥Á¡¼ ++¤â¤Ã¤Á¤¤ #T35 ¤â¤Ã¤Á¡¼ ++¤â¤Ã¤Á¤¤ #T35 ¥â¥Ã¥Á¡¼ ++¤â¤Æ¤Í¡¼¤è #JN ¥â¥Æ¥Í¡¼¥è ++¤â¤È¤«¤¤¤¾¤¯¤Î¤Ä¤ê¤­¤Á¤µ¤«¡¼¤Ê #JN ¸µ³¤Â±¤ÎÄà¤ê´ðÃÏ¥µ¥«¡¼¥Ê ++¤â¤È¤«¤¤¤¾¤¯¤Î¤Ä¤ê¤­¤Á¤µ¤«¡¼¤Ê¤È¤½¤Î¤³¤Ö¤ó¤¿¤Á #JN ¸µ³¤Â±¤ÎÄà¤ê´ðÃÏ¥µ¥«¡¼¥Ê¤È¤½¤Î»Òʬ¤¿¤Á ++¤â¤Ê¡¼ #JN ¥â¥Ê¡¼ ++¤â¤Ê¡¼¤¦¡¼¤Þ¤ó #JN ¥â¥Ê¡¼¥¦¡¼¥Þ¥ó ++¤â¤Ê¡¼¤«¡¼¤É #JN ¥â¥Ê¡¼¥«¡¼¥É ++¤â¤Ê¡¼¤«¤ó¤³¤¦ #KK ¥â¥Ê¡¼´Ñ¸÷ ++¤â¤Ê¡¼¤¯¤¨¤¹¤È #KK ¥â¥Ê¡¼¥¯¥¨¥¹¥È ++¤â¤Ê¡¼¤¯¤¨¤¹¤È #T35 ¥â¥Ê¡¼¥¯¥¨¥¹¥È ++¤â¤Ê¡¼¤¯¤Ã¤­¤ó¤° #JN ¥â¥Ê¡¼¥¯¥Ã¥­¥ó¥° ++¤â¤Ê¡¼¤±¤ó¤¹¤± #JN ¥â¥Ê¡¼·ò²ð ++¤â¤Ê¡¼¤±¤ó¤¹¤±¤¤ #JN ¥â¥Ê¡¼·ò¤¹·Ù ++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤×¤º #JN ¥â¥Ê¡¼¼ïʬÉÛ¿Þ ++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤×¤º¤â¤Ê¡¼¤â¤é¤é¡¼¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÉÛ¿Þ¥â¥Ê¡¼¡¦¥â¥é¥é¡¼ÈÇ ++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤±¤Ã¤Æ¤¤¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ·èÄêÈÇ ++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤¾¤Ë¤Ã¤¯¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ¡¡¥¾¥Ë¥Ã¥¯ÈÇ ++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤¾¤Ë¤Ã¤¯¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ¥¾¥Ë¥Ã¥¯ÈÇ ++¤â¤Ê¡¼¤·¤ç¤¦¤á¤Ä #JN ¥â¥Ê¡¼¾ÃÌÇ ++¤â¤Ê¡¼¤¸¤¾¤¦ #JN ¥â¥Ê¡¼ÃÏ¢ ++¤â¤Ê¡¼¤¸¤å¤¦¤è¤ó¤»¤¤ #JN ¥â¥Ê¡¼£±£´À¤ ++¤â¤Ê¡¼¤¾¤¯¤­¤å¤¦¤­¤ç¤¯¤ª¤¦¤®¤â¤é¤é¡¼¤É¤é¤¤¤Ð¡¼ #JN ¥â¥Ê¡¼Â²¡¦µæ¶Ë±üµÁ¡¦¥â¥é¥é¡¼¥É¥é¥¤¥Ð¡¼ ++¤â¤Ê¡¼¤¿¤ó¤¸¤ç¤¦¤Î¤Ò¤ß¤Ä #JN ¥â¥Ê¡¼ÃÂÀ¸¤ÎÈëÌ© ++¤â¤Ê¡¼¤Ç¤¤¤«¤ê¤ò¤Ö¤Ä¤±¤ë¤¹¤ì¤³¤¯¤µ¤¤¤¸¤ç¤¦¤ä¤¯¤¸¤å¤Ã¤«¤¸¤ç¤¦ #JN ¥â¥Ê¡¼¤ÇÅܤê¤ò¤Ö¤Ä¤±¤ë¥¹¥ì¹ñºÝ¾òÌó½½¥ö¾ò ++¤â¤Ê¡¼¤È¤®¤³¤Î¤²¡¼¤à¤·¤ç¤Ã¤× #JN ¥â¥Ê¡¼¤È¥®¥³¤Î¥²¡¼¥à¥·¥ç¥Ã¥× ++¤â¤Ê¡¼¤Î¤¤¤Á¤Ë¤Á #JN ¥â¥Ê¡¼¤Î°ìÆü ++¤â¤Ê¡¼¤Î¤«¤Î¤¸¤ç #JN ¥â¥Ê¡¼¤ÎÈà½÷ ++¤â¤Ê¡¼¤Î¤«¤Î¤¸¤ç #JN ¥â¥Ê¡¼¤ÎÈà½÷¡Ê¸Î¿Í¡Ë ++¤â¤Ê¡¼¤Î¤»¤ó¤¾ #JN ¥â¥Ê¡¼¤ÎÀèÁÄ ++¤â¤Ê¡¼¤Ï¤è¤¦¤Á¤·¤Í¤è #JN ¥â¥Ê¡¼¤ÏÍÄÃÕ¡£»à¤Í¤è ++¤â¤Ê¡¼¤Ð¤ó¤É #JN ¥â¥Ê¡¼¥Ð¥ó¥É ++¤â¤Ê¡¼¤Õ¤Ã¤«¤Ä #JN ¥â¥Ê¡¼Éü³è ++¤â¤Ê¡¼¤Þ¤ó #JN ¥â¥Ê¡¼¥Þ¥ó ++¤â¤Ê¡¼¤Þ¤ó #JN ŽÓŽÅްŽÏŽÝ ++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN ¥â¥Ê¡¼¥à¡¼¥ó·³ ++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN Ž·ŽÞŽºŽ½ŽÀް·³ ++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN ŽÓŽÅްŽÑްŽÝ·³ ++¤â¤Ê¡¼¤á¤¿¤ë¤Ð¤ó¤É #JN ¥â¥Ê¡¼¥á¥¿¥ë¥Ð¥ó¥É ++¤â¤Ê¡¼¤ê¤¶ #JN ¥â¥Ê¡¼¥ê¥¶ ++¤â¤Ê¤¢ #T35 ¥â¥Ê¡¼ ++¤â¤Ê¤¢¤«¤ó¤³¤¦ #T35 ¥â¥Ê¡¼´Ñ¸÷ ++¤â¤Ê¤¢¤¯¤¨¤¹¤È #T35 ¥â¥Ê¡¼¥¯¥¨¥¹¥È ++¤â¤Ê¤¢¤¶¤é¤· #JN ¥â¥Ê¥¢¥¶¥é¥·¡¡ ++¤â¤Ê¤¢¤é¤Ö #T35 ¥â¥Ê¡Á¤é¤Ö ++¤â¤Ê¤¤¤¢¤ó #JN ¥â¥Ê¥¤¥¢¥ó ++¤â¤Ê¤¨ #JN ¥â¥é»Þ ++¤â¤Ê¤¨¤À¤»¤ó¤»¤¤ #JN ¥â¥Ê»ÞÀèÀ¸ ++¤â¤Ê¤¨¤â¤ó #JN ¥â¥Ê¤¨¤â¤ó ++¤â¤Ê¤ª¤¦ #JN ¥â¥Ê²¦ ++¤â¤Ê¤« #JN ¥â¥Ê¥« ++¤â¤Ê¤« #JN ¥â¥Ê¥« ++¤â¤Ê¤« #JNS ¥â¥Ê¥« ++¤â¤Ê¤« #T35 ¥â¥Ê¥« ++¤â¤Ê¤« #T35 ºÇÃæ ++¤â¤Ê¤«¤«¤ó¤Î¤ó #JN ¥â¥Ê¥«´Ñ²» ++¤â¤Ê¤«¤² #JN ¥â¥Ê±Æ ++¤â¤Ê¤«¤² #JN ŽÓŽÅ±Æ ++¤â¤Ê¤«¤Á¤ã¤ó #JN ¥â¥Ê¤«¤Á¤ã¤ó ++¤â¤Ê¤«¤ó¤Î¤ó #JN ¥â¥Ê´Ñ²» ++¤â¤Ê¤«¤ó¤Î¤ó #JN ÌÐ̾´Ñ²» ++¤â¤Ê¤®¤³¤»¤­¤æ¤¬¤½¤ê¤ó¤¹¤¿¤ó¤É #JN ¥â¥Ê¥®¥³ÀÐÌý¥¬¥½¥ê¥ó¥¹¥¿¥ó¥É ++¤â¤Ê¤®¤³¤Õ¤£¤ë¤Ï¡¼¤â¤Ë¡¼¤«¤ó¤²¤ó¤¬¤¯¤À¤ó #JN ¥â¥Ê¥®¥³¥Õ¥£¥ë¥Ï¡¼¥â¥Ë¡¼´É¸¹³ÚÃÄ ++¤â¤Ê¤¯¤í¤×¤¹ #JN £Í£Ï£Î£Á£Ã£Ì£Ï£Ð£Ó ++¤â¤Ê¤¯¤í¤ó #JN ¥â¥Ê¥¯¥í¥ó ++¤â¤Ê¤°¤é¤¨¤ê #JN ¥â¥Ê¢·ÃΤ ++¤â¤Ê¤°¤é¤¨¤ê #JN ¥â¥Ê¢·ÃΤ ++¤â¤Ê¤³ #JN ¥â¥Ê»Ò ++¤â¤Ê¤³¤ó #JN ¥â¥Ê¥³¥ó ++¤â¤Ê¤µ¤ó¤±¤¤¤Ê¡¼ #JN ¥â¥Ê¥µ¥ó¡¦¥±¥¤¥Ê¡¼ ++¤â¤Ê¤¶¤¤¤³ #JN ¥â¥Ê¥¶¥¤»Ò ++¤â¤Ê¤¸¤¾¤¦ #JN ¥â¥ÊÃÏ¢ ++¤â¤Ê¤¸¤é #KK ¥â¥Ê¥¸¥é ++¤â¤Ê¤¸¤é¡¼ #KK ¥â¥Ê¥¸¥é¡¼ ++¤â¤Ê¤¸¤é¤¢¤¤¤Ç¤£¡¼ #T35 monazillaID ++¤â¤Ê¤¸¤é¤ª¤ë¤°¤ï¤é #T35 monazilla.org(w ++¤â¤Ê¤»¤ó¤Ë¤ó #JN ¥â¥ÊÀç¿Í ++¤â¤Ê¤½¤¦¤·¤­ #JN ¥â¥ÊÁò¼° ++¤â¤Ê¤È¤í¤Ð¤¸¡¼¤Ê¤¿¤¤¤¤ #JN ¥â¥Ê¥È¥í¡¦¥Ð¥¸¡¼¥ÊÂç°Ó ++¤â¤Ê¤Ë¡¼ #JN ¥â¥Ê¥Ë¡¼ ++¤â¤Ê¤Î¤ê¤­¤å¤¦ #JN ¥â¥Ê¥Î¡¡ÍøµÙ ++¤â¤Ê¤Ú #KK ¥â¥Ê¥Ú ++¤â¤Ê¤Ú #T35 ¥â¥Ê¥Ú ++¤â¤Ê¤Û #JN ¥â¥Ê¥Û ++¤â¤Ê¤Ü¤ó #JN ¥â¥Ê¥Ü¥ó ++¤â¤Ê¤Ý¤ì¤ª¤ó¤â¤Ê¤Ñ¤ë¤É #JN ¥â¥Ê¥Ý¥ì¥ª¥ó¡á¥â¥Ê¥Ñ¥ë¥É ++¤â¤Ê¤Þ¤¸¤ó #JN ¥â¥ÊËâ¿À ++¤â¤Ê¤ß¤Ï¤ó¤¿¡¼ #JN ¥â¥Ê¥ß¡¦¥Ï¥ó¥¿¡¼ ++¤â¤Ê¤à¤· #JN ¥â¥ÊÃî ++¤â¤Ê¤ê¤«¤º¤­ #JN ¥â¥Ê¤ê¤«¤º¤­ ++¤â¤Ê¤ì¤¤ #JN ¥â¥ÊÎî ++¤â¤Ê¤ì¤¤ #JN ¥â¥ÊÎî ++¤â¤Ë¡¼ #JN ¥â¥Ë¡¼ ++¤â¤Ë¤« #JN ¥â¥Ë¥«¡¦±¦ ++¤â¤Ë¤ã¡¼¤¯¤ó #JN ¥â¥Ë¥ã¡¼·¯ ++¤â¤Ë¤ã¡¼¤¯¤ó #JN ¥â¥Ë¥ã¡¼·¯ ++¤â¤Ë¤ç #R5 ¤â¤Ë¤ç ++¤â¤Í¡¼ #JN ¥â¥Í¡¼ ++¤â¤Í¡¼¤ë #JN ¥â¥Í¡¼¥ë ++¤â¤Í¤¹ #JN ¥â¥Í¥¹ ++¤â¤Î¤¯¤í¡¼¤à #JN ¥â¥Î¡¦¥¯¥í¡¼¥à ++¤â¤Î¤¹¤´¤¤¤¤¤­¤ª¤¤¤Ç #CJ ¤â¤Î¤¹¤´¤¤Àª¤¤¤Ç ++¤â¤Î¤Û¤·¤¶¤ª¤¦¤ê #JN ʪ´³¤·´ÈÇä¤ê ++¤â¤Ñ¤¢¤é #T35 ¥â¥Ñ¡¼¥é ++¤â¤Õ¤¡¤Ø¤Õ¤¡ #JN ¥â¥Õ¥¡¤Ø¥Õ¥¡ ++¤â¤Þ¡¼ #JN ¥â¥Þ¡¼ ++¤â¤ß¤ª¤« #T35 ¥â¥ß²¬ ++¤â¤ß¤ª¤« #T35 Ùæ²¬ ++¤â¤â¤¤¤í¤µ¤ó¤Ç¡¼¤¯¤ê¡¼¤à¤¹¤Ú¤·¤ã¤ë #JN Åí¿§¥µ¥ó¥Ç¡¼¥¯¥ê¡¼¥àSP ++¤â¤â¤¦¤¤ #T35 ¥â¥â¡¼¥¤ ++¤â¤â¤ª¤¤ #T35 ¥â¥â¡¼¥¤ ++¤â¤â¤Á¤ã¤ó #JN Åí¤Á¤ã¤ó ++¤â¤â¤ó¤é¡¼ #JN ¥â¥â¥ó¥é¡¼ ++¤â¤ä¤· #T35 ¥â¥ä¥· ++¤â¤é #JN ¤â¤é¢ö ++¤â¤é¡¼¤Þ¤ó #JN ¤â¤é¡¼¥Þ¥ó ++¤â¤é¤¨¤â¤ó #JN ¥â¥é¤¨¤â¤ó ++¤â¤é¤ª¤ó¤× #JN ¤â¤é¢ö ++¤â¤é¤³ #JN ¥â¥é»Ò ++¤â¤é¤¿¤¤¤· #JN ¥â¥éÂç»È ++¤â¤é¤Á¤ã¤¨¤ë #JN ¥â¥é¥Á¥ã¥¨¥ë ++¤â¤é¤Ò¤ã¤¯ #JN ¥â¥éÉ´ ++¤â¤é¤Þ¤¸¤ó #JN ¥â¥éËâ¿À ++¤â¤é¤Þ¤ó #JN ¤â¤é¥Þ¥ó ++¤â¤é¤è¤·¤«¤² #JN ¥â¥éµÈ±Æ ++¤â¤é¤é #JN ¤â¤é¤é ++¤â¤é¤é¡¼ #JN ¥â¥é¥é¡¼ ++¤â¤é¤é¡¼¤¢¤é¤· #JN ¥â¥é¥é¡¼¹Ó¤é¤· ++¤â¤é¤é¡¼¤«¤Á¤ç¤¦ #JN ¥â¥é¥é¡¼²ÝĹ ++¤â¤é¤é¡¼¤µ¤ó¤¸¤å¤¦¤· #JN ¥â¥é¥é¡¼»°½Æ»Î ++¤â¤é¤é¡¼¤Á¤ç¤¦¤«¤ó #JN ¥â¥é¥é¡¼Ä¹´± ++¤â¤é¤é¡¼¤Æ¤£¡¼¤À #JN ¥â¥é¥é¡¼¥Æ¥£¡¼¥À ++¤â¤é¤é¡¼¤Õ¤©¡¼ #JN ¥â¥é¥é¡¼4 ++¤â¤é¤é¡¼¤Ö¤Á¤ç¤¦ #JN ¥â¥é¥é¡¼ÉôĹ ++¤â¤é¤é¡¼¤Þ¤Þ #JN ¥â¥é¥é¡¼¥Þ¥Þ ++¤â¤é¤é¤¨¤ë #JN ¥â¥é¥é¥¨¥ë ++¤â¤é¤é¤È¤Î #JN ¥â¥é¥éÅ ++¤â¤é¤é¤È¤Î #JN ŽÓŽ×Ž×Å ++¤â¤é¤é¤È¤Î¤È¤â¤Ê¤«¤² #JN ŽÓŽ×Ž×Å¡ʺ¸¡Ë¤ÈŽÓŽÅ±Æ¡Ê±¦¡Ë ++¤â¤é¤ê #JN ¥â¥é¥ê¡¦º¸ ++¤â¤ê #T35 ¿¹ ++¤â¤ê¤¢¤¬¤Ã¤Æ¤Þ¤¤¤ê¤Þ¤·¤¿ #CJ À¹¤ê¾å¤¬¤Ã¤Æ¤Þ¤¤¤ê¤Þ¤·¤¿ ++¤â¤ê¤Á¤å¤¦ #T35 À¹¿ß ++¤â¤ë #JN ¥â¥ë ++¤â¤ë¤¡ #JN (ŽßŽÛŽß)ŽÓŽÙާ!! ++¤â¤ë¤¡ #JN ¥â¥ë¥¡ ++¤â¤ì #T35 ϳ¤ì ++¤â¤ì¤¯¤· #T35 ϳ¤ì¶ú ++¤â¤í¤Ï¤Î¤Ä¤ë¤® #CJ ½ô¿Ï¤Î·õ¡£ ++¤â¤ó¤­¤¤¤·¤å¤¬¤¢ #T35 ¥â¥ó¥­¡¼¥·¥å¥¬¡¼ ++¤â¤ó¤¯¤¢¤ë #CJ ʸ¶ç¤¢¤ë¡© ++¤â¤ó¤ë¤¤ #T30 ÌåÎÞ ++¤ä #SUC ¤ä ++¤ä¤ª #T30 ¥ä¥ª ++¤ä¤ª¤¤ #T35 ¤ä¤ª¤¤ ++¤ä¤ª¤­¤ó #KK ¥ä¥ª¥­¥ó ++¤ä¤ª¤­¤ó #T35 ¥ä¥ª¥­¥ó ++¤ä¤ª¤Ï¤² #T35 ¥ä¥ªÆÅ¤² ++¤ä¤ª¤Ð #T35 ²°¥ª¥Ð ++¤ä¤ª¤Õ¤¯ #KK ¥ä¥ª¥Õ¥¯ ++¤ä¤­¤¤¤â #T35 ¤ä¤­¤¤¤â ++¤ä¤­¤Ä¤±¤Ð #T35 ¾ÆÉÕ¤±¿Ï ++¤ä¤­¤Ä¤±¤ä¤¤¤Ð #T35 ¾ÆÉÕ¤±¿Ï ++¤ä¤­¤È¤ê #KK ¾Æ¤­Ä» ++¤ä¤­¤È¤ê #T35 ¾Æ¤­Ä» ++¤ä¤­¤Ê¤ª¤»¤Ç¤ª¤Þ¤¨¤Î¤¢¤¿¤Þ¤â¤ä¤­¤Ê¤ª¤» #CJ ¾Æ¤­¤Ê¤ª¤»¡¢¤Ç¡¢¤ªÁ°¤ÎƬ¤â¾Æ¤­¤Ê¤ª¤» ++¤ä¤­¤ó #JN Ìë¶Ð ++¤ä¤­¤ó #JN Ìë¶Ð¡ú ++¤ä¤¯¤¶ #JN ¥ä¥¯¥¶ ++¤ä¤¯¤ë¤Ä #T35 ¥ä¥¯¥ë¥Ä ++¤ä¤¯¤ë¤Ä¤·¤£ #JN ¥ä¥¯¥ë¥Ä¤·¤£ ++¤ä¤°¤Ã¤Á¤ç¤ê¡¼¤Ê #JN ¥ä¥°¥Ã¥Á¥ç¥ê¡¼¥Ê ++¤ä¤µ¤·¤ß #JN Í¥¤·¤ß ++¤ä¤· #T35 ¹á¶ñ»Õ ++¤ä¤·¤¬¤Ë #T30 ¥ä¥·¥¬¥Ë ++¤ä¤·¤ã #T35 Ì뺵 ++¤ä¤¸¤ë¤·¤Á¤å¤¦ #T35 Ìð°õ¿ß ++¤ä¤¹¤À¤¹¤ì¤Ã¤É #CN ÊÝÅÄ¥¹¥ì¥Ã¥É ++¤ä¤¹¤À¤¹¤ì¤Ã¤É #T35 ÊÝÅÄ¥¹¥ì¥Ã¥É ++¤ä¤¹¤ê #T35 ïÌ ++¤ä¤½¤Þ¡¼ #JN ¥ä¥½¥Þ¡¼ ++¤ä¤½¤Þ¡¼¤í¤´¤¤¤ê #JN ¥ä¥½¥Þ¡¼(¥í¥´Æþ¤ê) ++¤ä¤À¤â¤ó #JN ¥ä¥À¥â¥ó ++¤ä¤Ã¤Û¡¼ #CN ¥ä¥Ã¥Û¡¼ ++¤ä¤Ã¤Û¡¼ #KK ¥ä¥Ã¥Û¡¼ ++¤ä¤Ã¤Û¡¼ #T35 ¥ä¥Ã¥Û¡¼ ++¤ä¤Ã¤Û¤ª #T35 ¥ä¥Ã¥Û¡¼ ++¤ä¤Ä #JN ¥ä¥Ä ++¤ä¤Ä #T35 ¥ä¥Ä ++¤ä¤Ê¤¬¤·¤ï #JNS ¤ä¤Ê¤¬¤·¤ï ++¤ä¤Ê¤¬¤·¤ï #T35 ¤ä¤Ê¤¬¤·¤ï ++¤ä¤Ê¤®¤µ¤ï¤â¤Ê¡¼ #JN ¥ä¥Ê¥®¥µ¥ï¥â¥Ê¡¼ ++¤ä¤Õ #KK ¥ä¥Õ ++¤ä¤Õ¤¦ #CN ÌðÉ÷ ++¤ä¤Õ¤¦ #T35 ÌðÉ÷ ++¤ä¤Õ¤ª¤¯ #KK ¥ä¥Õ¥ª¥¯ ++¤ä¤Õ¤ª¤¯ #T35 ¥ä¥Õ¥ª¥¯ ++¤ä¤Ö¤Ë¤é¤ß¤â¤é¤é¡¼ #JN 鮤ˤé¤ß¥â¥é¥é¡¼ ++¤ä¤Þ¤¶¤­¤È¤é¤Ã¤× #T35 »³ºê¥È¥é¥Ã¥× ++¤ä¤Þ¤¶¤­¤ï¤¿¤ë #T35 »³ºê¾Ä(^^) ++¤ä¤Þ¤À #JN »³ÅÄ ++¤ä¤á¤Æ¤¿¤â¤ì #CJ ¤ä¤á¤Æ¤¿¤â¤ì ++¤ä¤á¤ì #CJ ¤ä¤á¤ì ++¤ä¤é¤Ê¤¤¤« #CJ ¤ä¤é¤Ê¤¤¤« ++¤ä¤ê¤¹¤®¤¯¤ó #JN ¤ä¤ê¤¹¤®·¯ ++¤ä¤ë¤­¤Ê¤· #T35 ¤ä¤ëµ¤¤Ê¤·¡ª ++¤ä¤ë¤¾ #JN ¤ä¤ë¤¾¡ª¡ª ++¤ä¤ë¤Ã¤Æ¤Ö¤· #CJ ¤ä¤ë¤Ã¤ÆÀá ++¤ä¤í¤ª¤¦¤è #CJ ¥ä¥í¡¼¥¦¥è ++¤ä¤í¤ª¤¦¤è #CJ ŽÔŽÛް޳ŽÖ ++¤ä¤ï¤é¤Á¤ã¤ó #JNM ¥ä¥ï¥é¤Á¤ã¤ó ++¤ä¤ó¤¸¤ã¤ó #KK ¥ä¥ó¥¸¥ã¥ó ++¤ä¤ó¤¸¤ã¤ó #T35 ¥ä¥ó¥¸¥ã¥ó ++¤ä¤ó¤ä¤ó #CJ ¤ä¤ó¤ä¤ó ++¤ä¤ó¤ä¤ó #T35 ¤ä¤ó¤ä¤ó ++¤æ¡¼¤¨¤¹¤Ó¡¼¤±¡¼¤Ö¤ë¤Ç¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #CJ USB¥±¡¼¥Ö¥ë¤Ç¼óÄߤäƻá¤Í ++¤æ¡¼¤¸¡¼ #T35 £Õ£Ç ++¤æ¡¼¤æ¡¼ #JN ¥æ¡¼¥æ¡¼ ++¤æ¤¦¤¤¤Á #JN Í´£± ++¤æ¤¦¤«¤ó #JN ͼ´© ++¤æ¤¦¤­¤¬¤Ê¤¯¤Æ¤ß¤ì¤Ê¤¤¤¬¤¾¤¦¤«¤¤¤»¤Ä¤¹¤ì #T35 ͦµ¤¤¬Ìµ¤¯¤Æ¸«¤ì¤Ê¤¤²èÁü²òÀ⥹¥ì ++¤æ¤¦¤³ #T35 ¤æ¤¦¤³ ++¤æ¤¦¤·¤ã #T35 ͦ¼Ô ++¤æ¤¦¤·¤ã¤â¤Ê¡¼ #JN ͦ¼Ô¥â¥Ê¡¼ ++¤æ¤¦¤·¤ã¤â¤Ê¤¿ #JN ͦ¼Ô¥â¥ÊÂÀ ++¤æ¤¦¤Ç¤£¤¤¤×¤í¤¸¤§¤¯¤È #T35 UD¥×¥í¥¸¥§¥¯¥È ++¤æ¤¦¤É¤¦ #T30 ͶƳ ++¤æ¤¦¤Ê¤ó¤Þ¤Ä¤ê #T35 ¤æ¤¦¤Ê¤óº×¤ê ++¤æ¤¦¤Ï¤È¤¯¤Æ¤¤¤µ¤ì¤Þ¤¹¤¿ #CJ YOU¤ÏÆÃÄꤵ¤ì¤Þ¤¹¤¿ ++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #CJ Í¹ÊØ¡¦Í¹À¯ÈÄ ++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #CN Í¹ÊØ¡¦Í¹À¯ÈÄ ++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #T35 Í¹ÊØ¡¦Í¹À¯ÈÄ ++¤æ¤¦¤Ü¤¦ #JN m(-_-m)¡Á޳Ž×ŽÒ޼ŽÔް ++¤æ¤¦¤Ü¤¦ #JN ¤æ¤¦Ë· ++¤æ¤¦¤á¤¤¤³¤Æ¤¤ #T35 ͭ̾¸ÇÄê ++¤æ¤¦¤ê¤ç¤¦¤« #T30 Í­ÎÁ²½ ++¤æ¤¬¤ß #T35 ÏÄ ++¤æ¤­¤ª¤Ë¤®¤ê¤À¤ë¤Þ #JN À㤪¤Ë¤®¤ê¤À¤ë¤Þ ++¤æ¤­¤¸¤ë¤· #T35 À°õ ++¤æ¤­¤¸¤ë¤·¤®¤å¤¦¤Ë¤å¤¦ #JN À°õµíÆý ++¤æ¤Ã¤­¡¼ #JN ¥æ¥Ã¥­¡¼ ++¤æ¤Ã¤­¡¼ #T35 ¥æ¥Ã¥­¡¼ ++¤æ¤Ã¤­¤¤ #T35 ¥æ¥Ã¥­¡¼ ++¤æ¤Ç¤À¤«¤é #T35 ¤æ¤Ç¤À¤«¤é¡¦¡¦¡¦ ++¤æ¤Ë¤Ã¤¯¤¹¤Õ¤é¤Ã¤·¤å #T35 unix¥Õ¥é¥Ã¥·¥å ++¤æ¤Ö¤¿ #T35 ÌýÆÚ ++¤æ¤ó #JN ¤æ¤ó ++¤æ¤ó¤«¡¼¤¹ #JN ¥æ¥ó¥«¡¼¥¹ ++¤æ¤ó¤«¡¼¤¹ #T35 ¥æ¥ó¥«¡¼¥¹ ++¤æ¤ó¤«¤¢¤¹ #T35 ¥æ¥ó¥«¡¼¥¹ ++¤æ¤ó¤æ¤ó #CJ ¤æ¤ó¤æ¤ó ++¤æ¤ó¤æ¤ó #T35 ¤æ¤ó¤æ¤ó ++¤è #CJ YO¡ª ++¤è #CJ yo¡ª ++¤è #CJ yp ++¤è¤¢¤Ë #T35 Â奢¥Ë ++¤è¤¤¡¼¤·¤ç¤â¤Ê¡¼ #JN ¥è¥¤¡¼¥·¥ç¥â¥Ê¡¼ ++¤è¤¤¡¼¤·¤ç¤â¤Ê¡¼ #JN ŽÖ޲ް޼ޮŽÓŽÅް ++¤è¤¦¤¯¤· #T35 Íζú ++¤è¤¦¤·¤Ñ¤Ñ¤È¤¯¤â¤ê¤¿¤Î¤ó¤¸¤ã¤¦¤¾¤¦ #CJ ¤è¡¼¤·¥Ñ¥ÑÆÃÀ¹Íê¤ó¤¸¤ã¤¦¤¾¡¼ ++¤è¤¦¤¸¤ç #T35 ¤ç¤¥¦ÉŽÞ¤ç ++¤è¤¦¤¸¤ç¤æ¤¦¤«¤¤ #JN ¤ç¤¥¦É¡«¤ç¤å¤¥¥õ¤£ ++¤è¤¦¤»¤¤ #T35 ÍÅÀº ++¤è¤¦¤Á¤¨¤ó¤«¤é¤Ç¤Ê¤ª¤·¤Æ¤³¤¤ #T35 ÍÄ¡¡ÃÕ¡¡±à¡¡¤«¡¡¤é¡¡½Ð¡¡Ä¾¡¡¤·¡¡¤Æ¡¡¤³¡¡¤¤ ++¤è¤¦¤Á¤ó¤À¤ó #T35 ÍÎÄÁÃÄ ++¤è¤© #CJ YO¡ª ++¤è¤© #CJ yo¡ª ++¤è¤© #CJ yp ++¤è¤©¡¼¤¼¤Õ #JN ¥è¥©¡¼¥¼¥Õ ++¤è¤©¡¼¤¼¤Õ¤«¤Ã¤³¤«¤·¤ç¤¦¤«¤Ã¤³¤È¤¸ #JN ¥è¥©¡¼¥¼¥Õ(²¾¾Î) ++¤è¤«¡¼¤ó #JN ¥è¥«¡¼¥ó ++¤è¤¯¤Ö¤«¤ª¤¦ #JN (¡­V¡®)¡Ö ++¤è¤¯¤Ö¤«¤ª¤¦ #JN Íß¿¼²¦ ++¤è¤¯¤â #JN ¡Ê¦¨§Õ¦¨¡ËŽÖޏŽÓޥޥޥ ++¤è¤¯¤â #JN ¥è¥¯¥â¡¦¡¦¡¦ ++¤è¤¯¤â #JN ŽÖޏŽÓޥޥޥ ++¤è¤³¤Ï¤á #CN ¥è¥³¥Ï¥á ++¤è¤³¤Ï¤á #T35 ¥è¥³¥Ï¥á ++¤è¤³¤ä¤Þ¤µ¤ó¤´¤¯¤· #T35 ²£»³»°¹ñ»Ö ++¤è¤´¤ì #T35 ¥è¥´¥ì ++¤è¤´¤ì #T35 ±ø¤ì ++¤è¤·¤À #JN Yoshida ++¤è¤·¤Î¤ä¤³¤Ô¤Ú #T35 µÈÌî²È¥³¥Ô¥Ú ++¤è¤·¤æ¤­ #T35 ¤è¤·¤æ¤­ ++¤è¤·¤è¤· #JN ¡Ê¡¡¡¨§¥¡¨¡Ë¡³¡Ê¡­£ö¡®¡¡¡ËŽÖ޼ŽÖ޼ ++¤è¤·¤è¤· #JN ¤è¤·¤è¤· ++¤è¤¼¤Ë #T35 Â奼¥Ë ++¤è¤½¤¦¤Î¤Ê¤Ê¤á¤¦¤¨ #T35 ͽÁۤμФá¾å ++¤è¤Á¤ì¤¹ #T35 ͽÃΥ쥹 ++¤è¤Ã¤­¤å¤ó #JN ¤è¤Ã¤­¤å¤ó ++¤è¤Ã¤­¤å¤ó #T35 ¤è¤Ã¤­¤å¤ó ++¤è¤Ã¤¹¤£¤â¤Ê¡¼ #JN ¤è¤Ã¤¹¤£¥â¥Ê¡¼ ++¤è¤Ê¡¼ #JN ¥è¥Ê¡¼ ++¤è¤Í #T35 ¢¨ ++¤è¤Í¡¼ #JN ¥è¥Í¡¼ ++¤è¤ß¡¼¤ê #JN ¥è¥ß¡¼¥ê ++¤è¤á #CJ ²Ç ++¤è¤ë¤Î¤ª¤«¤º #T35 Ìë¤Î¤ª¤«¤º ++¤è¤ó #T35 >>4 ++¤è¤ó¤È¤¦¤·¤ó¤Ë¤é¤¤¤à #JN »ÍƬ¿È¥Ë¥é¥¤¥à ++¤è¤ó¤Þ¤ë¤è¤ó #T35 404 ++¤è¤ó¤è¤ó #CJ ¤è¤ó¤è¤ó ++¤è¤ó¤è¤ó #T35 ¤è¤ó¤è¤ó ++¤é¡¼ #T35 £Ò£Á£Ò ++¤é¡¼¤¸¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥é-¥¸¥¨¥¤¥ê¥¦¥ï¥¡¥¡¥ó ++¤é¡¼¤¸¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN Ž×-޼ŽÞ޴޲ި޳ŽÜާާŽÝ ++¤é¡¼¤á¤ó #T35 ¥é¡¼¥á¥ó ++¤é¡¼¤á¤ó¤®¤³ #JN ¥é¡¼¥á¥ó¥®¥³ ++¤é¡¼¤á¤ó¤®¤³¤¢¤ó¤É¤â¤Ê¡¼ #JN ¥é¡¼¥á¥ó¥®¥³¡õ¥â¥Ê¡¼ ++¤é¡¼¤á¤ó¤â¤Ê¡¼ #JN ¥é¡¼¥á¥ó¥â¥Ê¡¼ ++¤é¤¢ #T35 RAR ++¤é¤¤¡¼¤è¡¼ #T35 (Ž¥¢ÏŽ¥)Ž×޲ްŽÖް!! ++¤é¤¤¡¼¤è¡¼ #T35 ¡Ê¡¦¢Ï¡¦¡Ë¥é¥¤¡¼¥è¡¼!! ++¤é¤¤¡¼¤è¡¼ #T35 ¡Ê¡¦¢Ï¡¦¡ËŽ×޲ްŽÖް!! ++¤é¤¤¤¢¤Ã¤È #KK ¥é¥¸¡÷ ++¤é¤¤¤¿ #CN ¥éÈÄ ++¤é¤¤¤Á¤ç¤¦ #KK ÍëÄ» ++¤é¤¤¤Á¤ç¤¦ #T35 ÍëÄ» ++¤é¤¤¤Ì #T35 ¥é¥¤¥Ì ++¤é¤¤¤Ì #T35 ¥é¸¤ ++¤é¤¤¤Ì #T35 Ž×¸¤ ++¤é¤¤¤Ì #T35 Ž×޲ŽÇ ++¤é¤¦¡¼¤¸ #T35 ¥é¥¦¡¼¥¸ ++¤é¤¦¤á¤¹ #JN ¥é¥¦¥á¥¹ ++¤é¤¦¤á¤¹ #T35 ¥é¥¦¥á¥¹ ++¤é¤¦¤ó¤¸ #CN ¥é¥¦¥ó¥¸ ++¤é¤¦¤ó¤¸ #T35 ¥é¥¦¥ó¥¸ ++¤é¤¦¤ó¤¸¤ª¤Õ¤«¤¤ #T30 ¥é¥¦¥ó¥¸¥ª¥Õ²ñ ++¤é¤¦¤ó¤¸¤« #T30 ¥é¥¦¥ó¥¸²½ ++¤é¤¦¤ó¤¸¤Ò¤Ê¤ó¤¸¤ç #T35 ¥é¥¦¥ó¥¸ÈòÆñ½ê ++¤é¤¦¤ó¤¸¤ã #T35 ¥é¥¦¥ó¥¸¥ã ++¤é¤¦¤ó¤¸¤ã¡¼ #T35 ¥é¥¦¥ó¥¸¥ã¡¼ ++¤é¤¦¤ó¤¸¤ã¤¢ #T35 ¥é¥¦¥ó¥¸¥ã¡¼ ++¤é¤¦¤ó¤¸¤ã¤¢¤Í¤® #T35 ¥é¥¦¥ó¥¸¥ã¡¼Ç¬ ++¤é¤­¡¼¤Þ¤ó #JN ¥é¥­¡¼¥Þ¥ó ++¤é¤­¡¼¤Þ¤ó #JN ¥é¥­¡¼¥Þ¥ó ++¤é¤¸¤¢¤Ã¤È #KK ¥é¥¸¡÷ ++¤é¤¹¤Ü¤¹¤Ï¤¨¤¹¤È¤·¡¼¤â¤¢ #CJ ¥é¥¹¥Ü¥¹¤Ï¥¨¥¹¥È¥·¡¼¥â¥¢ ++¤é¤Ã¤­¡¼¤Á¤ó¤Ð #T35 ¥é¥Ã¥­¡¼ÄÁÇÏ ++¤é¤Ã¤È¤­¤é¡¼ #JN ¥é¥Ã¥È¥­¥é¡¼ ++¤é¤Æ¤ó¤¢¤Ò¤ã #JN ¥é¥Æ¥ó¥¢¥Ò¥ã ++¤é¤Ç¤£¤½ #T35 ¥é¥Ç¥£¥½ ++¤é¤Ê¡¼ #JN ¥é¥Ê¡¼ ++¤é¤ê¤é¤ê #T35 ¥é¥ê¥é¥ê ++¤é¤ê¤é¤ê #T35 Ž×ŽØŽ×ŽØ ++¤é¤ë¤¯¤½ #JN ¥é¥ë¥¯¥½ ++¤é¤ë¤¯¤½ #T35 ¥é¥ë¥¯¥½ ++¤é¤í¡¼ #SUC ¤é¤í¡¼ ++¤é¤í¤¦ #SUC ¤é¤í¡¼ ++¤ê¡¼¤¼¤ó¤È #JN ¥ê¡¼Á°ÅÓ ++¤ê¡¼¤Õ¤È¤¦¤µ¤¯ #T35 ¥ê¡¼¥ÕÅðºî ++¤ê¡¼¤Þ¤ó #JN ¥ê¡¼¥Þ¥ó ++¤ê¡¼¤Þ¤ó #T30 ¥ê¡¼¥Þ¥ó ++¤ê¡¼¤ê¤Ã¤Ò #JN ­¡¥ê¡¼¥ê¥Ã¥Ò ++¤ê¡¼¤ê¤Ã¤Ò¤¸¤å¤Ë¤¢ #JN ­¢¥ê¡¼¥ê¥Ã¥Ò£Ê£ò ++¤ê¡¼¤ê¤Ã¤Ò¤Ë¤»¤¤ #JN ­£¥ê¡¼¥ê¥Ã¥ÒÆóÀ¤ ++¤ê¤¢¤½¤·¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥½¥é¥Í¡¼¥è ++¤ê¤¢¤Á¤å¤¦ #T35 ¥ê¥¢¿ß ++¤ê¤¢¤ë #T35 ¥ê¥¢¥ë ++¤ê¤¢¤ë¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥ê¥¢¥ë¥¢¥½¥Ñ¥½¥Þ¥½ ++¤ê¤¢¤ë¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥ê¥¢¥ëŽ±Ž¿ŽÊŽßŽ¿ŽÏŽ¿ ++¤ê¤¢¤ë¤¢¤Ã¤½¡¼ #JN ¥ê¥¢¥ë¤¢¤Ã¤½¡¼ ++¤ê¤¢¤ë¤£¤ç¤¥ #JN ¥ê¥¢¥ë¤£¤ç¤¥ ++¤ê¤¢¤ë¤£¤ç¤¥¤â¤³¤â¤³¤Ð¡¼¤¸¤ç¤ó #JN ¥ê¥¢¥ë¤£¤ç¤¥¡Ê¤â¤³¤â¤³¥Ð¡¼¥¸¥ç¥ó¡Ë ++¤ê¤¢¤ë¤¤¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥¤¥é¥Í¡¼¥è ++¤ê¤¢¤ë¤¦¤Ä #JN ¥ê¥¢¥ëݵ ++¤ê¤¢¤ë¤ª¤Þ¤¨¤¯¤Þ¡¼ #JN ¥ê¥¢¥ë¥ª¥Þ¥¨¥¯¥Þ¡¼ ++¤ê¤¢¤ë¤ª¤Þ¤¨¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¥ª¥Þ¥¨¥â¥Ê¡¼ ++¤ê¤¢¤ë¤«¤µ¡¼¤ê #JN ¥ê¥¢¥ë¥«¥µ¡¼¥ê ++¤ê¤¢¤ë¤­¤¿¡¼¡¼ #JN ¥ê¥¢¥ë¥­¥¿¡¼ ++¤ê¤¢¤ë¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ¥ê¥¢¥ë´ðÃϳ°·ÙÊó ++¤ê¤¢¤ë¤®¤³ #JN ¥ê¥¢¥ë¥®¥³ ++¤ê¤¢¤ë¤´¤¿¤¤¤Õ¤Þ¤ó¤¾¤¯ #JN ¥ê¥¢¥ë¸ÞÂÎÉÔËþ­ ++¤ê¤¢¤ë¤·¤£ #JN ¥ê¥¢¥ë¤·¤£ ++¤ê¤¢¤ë¤·¤Í¤Ð¡¼ #JN ¥ê¥¢¥ë¥·¥Í¥Ð¡¼ ++¤ê¤¢¤ë¤·¤ç¤¦¤Ü¤¦ #T35 ¥ê¥¢¥ë¾ÃËÉ ++¤ê¤¢¤ë¤·¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥·¥é¥Í¡¼¥è ++¤ê¤¢¤ë¤·¤é¤Í¡¼¤è2 #JN ¥ê¥¢¥ë¥·¥é¥Í¡¼¥è£² ++¤ê¤¢¤ë¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥ê¥¢¥ë¥¸¥µ¥¯¥¸¥¨¥ó ++¤ê¤¢¤ë¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥ê¥¢¥ë޼ŽÞ޻ޏ޼ŽÞŽ´ŽÝ ++¤ê¤¢¤ë¤¸¤ã¤Ê¤¤¤«¤é¤¯¤½ #CJ ¥ê¥¢¥ë¤¸¤ã¤Ê¤¤¤«¤é¥¯¥½ ++¤ê¤¢¤ë¤¸¤ç¤ó¤¸¤ç¤µ¤ó #JN ¥ê¥¢¥ë¥¸¥ç¥ó¥¸¥ç¤µ¤ó ++¤ê¤¢¤ë¤¹¤Ã¤É¤ì #JN ¥ê¥¢¥ë޽ޝŽÄŽÞŽÚ ++¤ê¤¢¤ë¤¹¤Õ¤£¤ó¤¯¤¹ #JN ¥ê¥¢¥ë¥¹¥Õ¥£¥ó¥¯¥¹ ++¤ê¤¢¤ë¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¥ê¥¢¥ë¤½¤¦¤Ç¤â¤Ê¤¤¤è ++¤ê¤¢¤ë¤½¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥½¥é¥Í¡¼¥è ++¤ê¤¢¤ë¤½¤ì¤¬¤Ê¤Ë¤« #JN ¥ê¥¢¥ë¥½¥ì¥¬¥Ê¡á¥Ë¥« ++¤ê¤¢¤ë¤¿¤¤¤à #T35 ¥ê¥¢¥ë¥¿¥¤¥à ++¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥ê¥¢¥ë¿ß˼ ++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼ ++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼¤¤¤Á #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼£± ++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼¤Ë #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼£² ++¤ê¤¢¤ë¤Ê¤±¤ó #JN ¥ê¥¢¥ë¤Ê¥±¥ó ++¤ê¤¢¤ë¤Ê¤Ã¤Á #JN ¥ê¥¢¥ë¤Ê¤Ã¤Á ++¤ê¤¢¤ë¤Ê¤É¤»¤¤¤µ¤ó #JN ¥ê¥¢¥ë¤ÊÅÚÀ±¤µ¤ó ++¤ê¤¢¤ë¤Ê¤Í¤¹¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¤Ê¥Í¥¹¥â¥Ê¡¼ ++¤ê¤¢¤ë¤Ë¤À¡¼ #JN ¥ê¥¢¥ë¥Ë¥À¡¼ ++¤ê¤¢¤ë¤Ï¤¡ #JN ¥ê¥¢¥ë¥Ï¥¡¡© ++¤ê¤¢¤ë¤Ò¤í¤æ¤­ #JN ¥ê¥¢¥ë¤Ò¤í¤æ¤­ ++¤ê¤¢¤ë¤Õ¤§¤é¡¼¤Á¤ç #JN ¥ê¥¢¥ë¥Õ¥§¥é¡¼¥Á¥ç ++¤ê¤¢¤ë¤Û¤½¤á #JN ¥ê¥¢¥ëºÙÌÜ ++¤ê¤¢¤ë¤Þ¤À¡¼ #JN ¥ê¥¢¥ë¥Þ¥À¡¼ ++¤ê¤¢¤ë¤Þ¤Ë¡¼ #JN ¥ê¥¢¥ë¥ÞÆó¡Ý ++¤ê¤¢¤ë¤à¤Ã¤¯ #JN ¥ê¥¢¥ë¥à¥Ã¥¯ ++¤ê¤¢¤ë¤â¤¦¤³¤Í¤¨¤è #JN ¥ê¥¢¥ë¥â¥¦¥³¥Í¥¨¥è ++¤ê¤¢¤ë¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¥â¥Ê¡¼ ++¤ê¤¢¤ë¤ä¤À¤â¤ó #JN ¥ê¥¢¥ë¥ä¥À¥â¥ó ++¤ê¤¢¤ë¤è¤·¤Æ¤£¡¼ #JN ¥ê¥¢¥ë¤è¤·¥Æ¥£¡¼ ++¤ê¤¢¤ë¤ê¤¢¤ê¤Æ¤£ #T35 ¥ê¥¢¥ë¥ê¥¢¥ê¥Æ¥£ ++¤ê¤¢¤ë¤ì¤â¤Ê #JN ¥ê¥¢¥ë¥ì¥â¥Ê ++¤ê¤¤¤Á #T35 reach ++¤ê¤¤¤É¤·¤¤¤¸¤¤¤¢¤¤ #T35 read.cgi ++¤ê¤«¤Á¤ã¤ó #T35 Τ²Â¤Á¤ã¤ó ++¤ê¤­¤·¤ì¤Ç¤£ #T35 ¥ê¥­¥·¥ì¥Ç¥£ ++¤ê¤­¤Ã¤É¤â¤é¡¼¤¯ #JN ¥ê¥­¥Ã¥É¡¦¥â¥é¡¼¥¯ ++¤ê¤¯ #T35 Φ ++¤ê¤¸¤§¤ó¤ê¤ã #JN Íû·òÎÉ ++¤ê¤Ã¤Ä #T35 ¥ê¥Ã¥Ä ++¤ê¤Ã¤Ä¤¬¤¤¤ë¤µ #JN ¥ê¥Ã¥Ä¤¬¤¤¤ë¤µ ++¤ê¤Ã¤Ý¤¦¤¿¤¤ #JN ΩÊýÂÎ ++¤ê¤Æ¤Ê¤¢ #T35 ¥ê¥Æ¥Ê¡¼ ++¤ê¤È¤ë¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥ê¥È¥ë¥¨¥¤¥ê¥¦¥¡¥¡¥ó ++¤ê¤È¤ë¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ŽØŽÄŽÙ޴޲ި޳ާާŽÝ ++¤ê¤Ü¤Ã¤È #T35 ¥ê¥Ü¥Ã¥È ++¤ê¤Ü¤ë¤Ð¡¼¤¹¤Þ¤ó¤«¤Ã¤¿ #JN ¥ê¥Ü¥ë¥Ð¡¼¡¦¥¹¥Þ¥ó¥«¥Ã¥¿ ++¤ê¤Ü¤ë¤Ð¡¼¤¹¤Þ¤ó¤«¤Ã¤¿ #JN ¥ê¥Ü¥ë¥ô¥¡¡¼¡¦¥¹¥Þ¥ó¥«¥Ã¥¿ ++¤ê¤Ü¤ó #T35 ¥ê¥Ü¥ó ++¤ê¤Ü¤ó¤×¤ì¤¤ #T30 ¥ê¥Ü¥ó¥×¥ì¥¤ ++¤ê¤â¡¼¤È¤Û¤¹¤È #T35 ¥ê¥â¡¼¥È¥Û¥¹¥È ++¤ê¤â¤Û #T35 ¥ê¥â¥Û ++¤ê¤ã¤¯ #T35 (ry ++¤ê¤ã¤¯ #T35 ry ++¤ê¤ã¤¯ #T35 ¡Ê£ò£ù ++¤ê¤ã¤¯¤·¤­¤¸¤Á¤ó¤µ¤¤ #T35 ά¼°ÃÏÄÃº× ++¤ê¤ç¤¦¤¹¤ì¤ª¤È¤³ #JN ÎÉ¥¹¥ìÃË ++¤ê¤ç¤¦¤¹¤ì¤Î¤è¤«¤ó #CJ ÎÉ¥¹¥ì¤Îͽ´¶ ++¤ê¤ç¤¦¤Î¤¦ #T35 ξǾ ++¤ê¤ë¤³ #JN ¥ê¥ë»Ò ++¤ê¤í¡¼¤É #T30 ¥ê¥í¡¼¥É ++¤ê¤í¤ª¤É¤¹¤ì¤Ã¤É #T35 ¥ê¥í¡¼¥É¥¹¥ì¥Ã¥É ++¤ê¤í¤¹¤ì #T35 ¥ê¥í¥¹¥ì ++¤ê¤ó¤´¤Ä¤«¤¤ #T35 ¥ê¥ó¥´»È¤¤ ++¤ë¤¤ #T35 rui ++¤ë¤Ñ¤ó¤Õ¤é¤Ã¤·¤å #T35 ¥ë¥Ñ¥ó¥Õ¥é¥Ã¥·¥å ++¤ì¡¼ #JN ¥ì¡¼ ++¤ì¤¤¤­¤å¤¦¤·¤ã #JN ÎîÛÍ¼Ö ++¤ì¤¤¤¯ #JN ¥ì¥¤¥¯ ++¤ì¤¤¤µ¤à #T35 Îä´¨ ++¤ì¤¤¤¾¤¦¤³ #T35 Îä¢¸Ë ++¤ì¤°¤Í¤Ã¤»¤à #T35 Regnessem ++¤ì¤²¡¼ #T35 ¥ì¥²¡¼ ++¤ì¤²¡¼¤¤¤¿ #CN ¥ì¥²¡¼ÈÄ ++¤ì¤²¡¼¤¤¤¿ #T35 ¥ì¥²¡¼ÈÄ ++¤ì¤¸ #T35 ¥ì¥¸ ++¤ì¤¹ #T30 ¥ì¥¹ ++¤ì¤¹¤µ¤¯¤¸¤ç #T30 ¥ì¥¹ºï½ü ++¤ì¤¹¤¹¤ì¤´¤Ð¤¯ #T30 ¥ì¥¹¥¹¥ì¸íÇú ++¤ì¤¹¤¿¤Æ¤´¤Ð¤¯ #T30 ¥ì¥¹Î©¤Æ¸íÇú ++¤ì¤¹¤Ð¤ó¤´¤¦ #T35 ¥ì¥¹ÈÖ¹æ ++¤ì¤Ã¤È¤¦ #KK ÎôƬ ++¤ì¤Ã¤É¤Ö¤Ã¤¯¤¤¤Ï¤ó #CJ ¥ì¥Ã¥É¥Ö¥Ã¥¯°ãÈ¿¡ª¡¢¥ì¥Ã¥É¥«¡¼¥É¡ª ++¤ì¤Ä¤®¤ç¤Ù¤¤¤Ù¡¼¤·¡¼¤Þ¤¤¤Ø¡¼ #CJ ¤ì¤Ä¤®¤ç¡ª¤Ù¤¤¤Ù¡¼¡¡¤·¡¼¤Þ¤¤¤Ø¡¼¢ö ++¤ì¤Ä¤®¤ç¤Ù¤¤¤Ù¡¼¤·¡¼¤Þ¤¤¤Ø¡¼ #T35 ¤ì¤Ä¤®¤ç¡ª¤Ù¤¤¤Ù¡¼¡¡¤·¡¼¤Þ¤¤¤Ø¡¼¢ö ++¤ì¤Ç¤£¤¤¤¹¤µ¤Þ #T35 ¥ì¥Ç¥£¡¼¥¹ÍÍ ++¤ì¤Ù¤ë¤Ò¤¯ #KY ¥ì¥Ù¥ëÄã ++¤ì¤â¤Ê #JN ¥ì¥â¥Ê ++¤ì¤â¤Ê #JN ¥ì¥â¥Ê ++¤ì¤â¤Ê¤¹¤ì #CN ¥ì¥â¥Ê¥¹¥ì ++¤ì¤â¤Ê¤¹¤ì¤Î¤â¤é¤é¡¼ #JN ¥ì¥â¥Ê¥¹¥ì¤Î¥â¥é¥é¡¼ ++¤ì¤â¤é¤â¡¼¤Ê #JN ¥ì¥â¥é¥â¡¼¥Ê ++¤ì¤ì¤Û #T35 ¥ì¥ì¥Û ++¤ì¤ó¤¬ #T35 ¥ì¥ó¥¬ ++¤í #T35 ϧ ++¤í¡¼¤«¤ë¤ë¡¼¤ë #T35 ¥í¡¼¥«¥ë¥ë¡¼¥ë ++¤í¤¤¤â¤Ê¤Ù¤ë #JN ¥í¥¤¡¦¥â¥Ê¥Ù¥ë ++¤í¤° #T35 ¥í¥° ++¤í¤±¤Ã¤È¤Ç¤Ä¤­¤Ì¤±¤ë #CJ ¥í¥±¥Ã¥È¤ÇÆÍ¤­È´¤±¤ë ++¤í¤´ #T35 ¥í¥´ ++¤í¤Ã¤¯¤·¤Æ¤£ #JN ¥í¥Ã¥¯¥·¥Æ¥£ ++¤í¤Ã¤¯¤â¤Ê¡¼ #JN ¥í¥Ã¥¯¥â¥Ê¡¼ ++¤í¤Ã¤Ý¤ó¤¾¡¼ #JN ¤í¤Ã¤Ý¤ó¤¾¡¼ ++¤í¤Ã¤Ý¤ó¤¾¡¼ #T35 ¤í¤Ã¤Ý¤ó¤¾¡¼ ++¤í¤Æ¤¨¤ó #T35 ¥í¥Æ¡¼¥ó ++¤í¤Æ¤¨¤ó #T35 ŽÛŽÃްŽÝ ++¤í¤Ó¤á¤¹ #JN ¥í¥Ó¥á¥¹ ++¤í¤Ó¤á¤¹ #T35 ¥í¥Ó¥á¥¹ ++¤í¤Ó¤é¡¼ #T35 ¥í¥Ó¥é¡¼ ++¤í¤Õ¤È¤×¤é¤¹¤ï¤ó #CN ¥í¥Õ¥È¥×¥é¥¹¥ï¥ó ++¤í¤à #KS ROM ++¤í¤à #R5 £Ò£Ï£Í ++¤í¤à #T35 R@M ++¤í¤à #T35 ROM ++¤í¤à #T35 £Ò£Ï£Í ++¤í¤ê #T35 ¥í¥ê ++¤í¤ê¤³¤ó #T35 ¥í¥ê¥³¥ó ++¤í¤ê¤Ú¤É #T35 ¥í¥ê¥Ú¥É ++¤í¤ë #CJ (lol ++¤í¤ì #KK ¥í¥ì ++¤í¤í #JN ¥í¥í ++¤í¤í #T35 ¥í¥í ++¤í¤ó¤² #T35 ¥í¥óÌÓ ++¤ï¡¼¤â¤Ê¡¼ #JN ¤ï¡¼¤â¤Ê¡¼ ++¤ï¤¤¤Ç¤¹¤è¤ó¤¸¤å¤¦ #JN ¥ï¥¤¥Æ¡«¥¹£´£° ++¤ï¤¤¤Ó¡¼¤Ó¡¼¤Û¤¦¤Á¤ß¤ó #T35 £Ù£Â£ÂÊüÃÖ̱ ++¤ï¤«¤ª¤¯ #T35 ¤ï¤«¤ª¤¯ ++¤ï¤«¤Î¤Ï¤Ê #T35 WAKANOHANA ++¤ï¤«¤á #T35 ¤ï¤«¤á ++¤ï¤±¤ï¤«¤é¤ó #JN ¥ï¥±¥ï¥«¥é¥ó ++¤ï¤µ¤Ó #T35 ¥ï¥µ¥Ó ++¤ï¤¸¤ª #CN ϱö ++¤ï¤¸¤ª #KK ϱö ++¤ï¤¸¤ª #T35 ϱö ++¤ï¤»¤À¤¨¤­ #JN Áá°ðÅÄ±Ø ++¤ï¤¿¤Ê¤Ù #T35 ÅÏÊÕ ++¤ï¤¿¤Ê¤Ù¤â¤Ê¡¼ #JN ¥ï¥¿¥Ê¥Ù¥â¥Ê¡¼ ++¤ï¤¿¤Ê¤Ù¤â¤Ê¡¼ #JN ¥ï¥¿¥Ê¥Ù¥â¥Ê¡¼ ++¤ï¤Ê #T35 æ« ++¤ï¤Ê¡¼ #JN ¥ï¥Ê¡¼ ++¤ï¤é #CJ (ÏÎ ++¤ï¤é #CJ (w ++¤ï¤é #CJ (£÷ ++¤ï¤é #CJ (¥ï¥é ++¤ï¤é #CJ (Ü× ++¤ï¤é #CJ (ŽÜŽ× ++¤ï¤é #CJ w ++¤ï¤é #CJ ¤ï¤é ++¤ï¤é #CJ ¥ï¥é ++¤ï¤é #CJ ÏÎ ++¤ï¤é1 #JN ¥ï¥é1 ++¤ï¤é1 #JN ŽÜŽ×1 ++¤ï¤é¤£ #CJ ¥ï¥é¥£ ++¤ï¤é¤¿ #CJ ¥ï¥é¥¿ ++¤ï¤é¤¿ #CJ ŽÜŽ×ŽÀ ++¤ï¤é¤Ó #T35 ¡ÊÏÏ ++¤ï¤é¤ï¤»¤ë¤Ê #CJ ¥ï¥é¥ï¥»¥ë¥Ê ++¤ï¤é¤ï¤»¤ë¤Ê #CJ ŽÜŽ×ŽÜ޾ŽÙŽÅ ++¤ï¤ê¤ª #T35 ¥ï¥ê¥ª ++¤ï¤ë¤ì #R5 ¤ï¤ë¤ì ++¤ï¤ì¤¶¡¼ #T35 ¥ï¥ì¥¶¡¼ ++¤ï¤ì¤¶¤Á¤å¤¦¤Ü¤¦ #T35 ¥ï¥ì¥¶¿ß˼ ++¤ï¤ì¤º #T35 ¥ï¥ì¥º ++¤ï¤ì¤â¤Î #KK ¤ï¤ì¤â¤Î ++¤ï¤ì¤â¤Î #T35 ¤ï¤ì¤â¤Î ++¤ï¤ì¤â¤Î #T35 ³ä¤ìʪ ++¤ï¤í¤¿ #CJ ¥ï¥í¥¿ ++¤ï¤ó¤À¡¼ #T35 WONDER ++¤ò¤«¤­¤³¤à¤¹¤ì¤À¤è #CJ ¤ò½ñ¤­¹þ¤à¥¹¥ì¤À¤è¡ª¡ª ++¤ò¤«¤­¤³¤à¤¹¤ì¤À¤è #JN ¡Ê¡¦¢Ï¡¦¡Ë ++¤ò¤¿ #JN ¥ò¥¿ ++¤ò¤¿ #T35 ¥ò¥¿ ++¤ò¤¿¤·¤Ë¤Ê¤Þ¤ë¤Þ¤ë #JN ަŽÀ42700 ++¤ò¤¿¤¿¤¿¤­ #T35 ¥ò¥¿Ã¡¤­ ++¤ò¤¿¤¿¤¿¤­¤ò¤¿ #T35 ¥ò¥¿Ã¡¤­¥ò¥¿ ++¤ò¤¿¤Á¤§¤Ã¤¯ #T30 ¥ò¥¿¥Á¥§¥Ã¥¯ ++¤ò¤¿¤Á¤§¤Ã¤¯¤¢¤Ë¤ò¤¿¤Ø¤ó #JN ¥ò¥¿¥Á¥§¥Ã¥¯¡Ê¥¢¥Ë¥ò¥¿ÊÔ¡Ë ++¤ò¤¿¤é¡¼ #JN ¥ò¥¿¥é¡¼ ++¤ò¤¿¤é¡¼ #JN ަŽÀŽ×ް ++¤ò¤Á #T30 ¥ò¥Á ++¤ò¤Á¤¤¤¿ #CN ¥ò¥ÁÈÄ ++¤ò¤Á¤¤¤¿ #T35 ¥ò¥ÁÈÄ ++¤ò¤Ã¤Á #T30 ¥ò¥Ã¥Á ++¤ò¤Ã¤Á¤¤¤¿ #CN ¥ò¥Ã¥ÁÈÄ ++¤ò¤Ã¤Á¤¤¤¿ #T35 ¥ò¥Ã¥ÁÈÄ ++¤ò¤ð #T35 ¤ò¤ð ++¤ó¡¼ #JN ¤ó¡Á¡ª¡© ++¤ó¤¬¤ó¤° #CJ ¤ó¤¬¤ó¤° ++¤ó¤¸¤ã #CJ ¤ó¤¸¤ã¡ª ++¤ó¤À¤è #JN ¥ó¥À¥è ++¤ó¤À¤ó¤À #CJ ¤ó¤À¤ó¤À ++¤ó¤Ç #JN ¤ó¤Ç¡¡ ++¤ó¤Ê¤³¤¿¤¢¤Ê¤¤ #CJ ¤ó¤Ê¤³¤¿¡¼¤Ê¤¤ ++¤ó¤Ê¤ï¤±¤Í¡¼¤è #JN ¤ó¤Ê¤ï¤±¥Í¡¼¥è ++¤ó¤Þ #JN (`¦Æ.¡­)¡ã¤ó¤Þ! ++¤ó¤Þ #JN ¤ó¤Þ¡ª diff --git a/meta-oe/recipes-support/anthy/anthy/native-helpers.patch b/meta-oe/recipes-support/anthy/anthy/native-helpers.patch new file mode 100644 index 00000000000..291b66b37be --- /dev/null +++ b/meta-oe/recipes-support/anthy/anthy/native-helpers.patch @@ -0,0 +1,50 @@ +upstream: not applicable +author: pH5 +comment: Stage the native anthy helpers mkfiledic, mkdepgraph, mkworddic, +comment: calctrans and proccorpus. + +--- anthy-7811/mkanthydic/Makefile.am~ 2006-05-13 18:28:35.000000000 +0900 ++++ anthy-7811/mkanthydic/Makefile.am 2006-06-18 10:56:25.770000000 +0900 +@@ -3,7 +3,7 @@ + CLEANFILES = anthy.dic + INCLUDES = -I$(top_srcdir)/include -DSRCDIR=\"$(srcdir)\" + +-noinst_PROGRAMS = mkfiledic ++bin_PROGRAMS = mkfiledic + mkfiledic_SOURCES = mkfiledic.c + mkfiledic_LDADD = ../src-diclib/libdiclib.la + +--- anthy-7811/depgraph/Makefile.am~ 2006-06-02 00:20:54.000000000 +0900 ++++ anthy-7811/depgraph/Makefile.am 2006-06-18 10:57:19.420000000 +0900 +@@ -9,7 +9,7 @@ + EXTRA_DIST = indepword.txt $(DEPWORDS) + + # Generate the dictionary +-noinst_PROGRAMS = mkdepgraph ++bin_PROGRAMS = mkdepgraph + mkdepgraph_SOURCES = mkdepgraph.c + mkdepgraph_LDADD = ../src-main/libanthy.la ../src-worddic/libanthydic.la + +--- anthy-7811/mkworddic/Makefile.am~ 2006-05-13 18:29:07.000000000 +0900 ++++ anthy-7811/mkworddic/Makefile.am 2006-06-18 11:21:56.300000000 +0900 +@@ -16,7 +16,8 @@ + udict dict.args.in + + # Generate the dictionary +-noinst_PROGRAMS = mkworddic ++#noinst_PROGRAMS = mkworddic ++bin_PROGRAMS = mkworddic + mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h + mkworddic_LDADD = ../src-worddic/libanthydic.la + +--- anthy-9100e.orig/calctrans/Makefile.am 2008-05-08 15:04:13.000000000 +0200 ++++ anthy-9100e/calctrans/Makefile.am 2008-05-08 15:04:24.000000000 +0200 +@@ -3,7 +3,7 @@ + corpus.3.txt corpus.4.txt corpus.5.txt\ + corpus_info weak_words + +-noinst_PROGRAMS = calctrans proccorpus ++bin_PROGRAMS = calctrans proccorpus + INCLUDES = -I$(top_srcdir)/ + + calctrans_SOURCES = calctrans.c input_set.c input_set.h corpus.c diff --git a/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch b/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch new file mode 100644 index 00000000000..bf748f3c609 --- /dev/null +++ b/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch @@ -0,0 +1,16 @@ +upstream: not applicable +source: stolen from debian + +diff -Naur anthy-7811/src-util.orig/Makefile.am anthy-7811/src-util/Makefile.am +--- anthy-7811/src-util.orig/Makefile.am 2006-06-18 10:47:55.790000000 +0900 ++++ anthy-7811/src-util/Makefile.am 2006-06-18 10:48:23.860000000 +0900 +@@ -6,7 +6,8 @@ + anthy-isearch.el anthy-azik.el anthy-kyuri.el + EXTRA_DIST = $(ELISP_FILES) typetab dic-tool-usage.txt rcsize.rb + bin_PROGRAMS = anthy-dic-tool anthy-agent anthy-morphological-analyzer +-ELCFILES = anthy.elc anthy-dic.elc anthy-azik.elc anthy-conf.elc anthy-isearch.elc anthy-kyuri.elc leim-list.elc ++#ELCFILES = anthy.elc anthy-dic.elc anthy-azik.elc anthy-conf.elc anthy-isearch.elc anthy-kyuri.elc leim-list.elc ++ELCFILES = + if ELISP + lisp_LISP = $(ELISP_FILES) + endif diff --git a/meta-oe/recipes-support/anthy/anthy/target-helpers.patch b/meta-oe/recipes-support/anthy/anthy/target-helpers.patch new file mode 100644 index 00000000000..d22c3562a5b --- /dev/null +++ b/meta-oe/recipes-support/anthy/anthy/target-helpers.patch @@ -0,0 +1,111 @@ +diff -Nurp anthy-9100h.org/calctrans/Makefile.am anthy-9100h/calctrans/Makefile.am +--- anthy-9100h.org/calctrans/Makefile.am 2007-10-27 23:02:59.000000000 +0900 ++++ anthy-9100h/calctrans/Makefile.am 2014-11-11 17:14:42.152999991 +0900 +@@ -15,31 +15,31 @@ dict_source_files = anthy.cand_info anth + + update_params: + rm -f parsed_data2 +- ./proccorpus $(srcdir)/corpus.?.txt > parsed_data +- ./calctrans parsed_data -o $(srcdir)/corpus_info +- ./calctrans parsed_data -e -o $(srcdir)/weak_words ++ proccorpus $(srcdir)/corpus.?.txt > parsed_data ++ calctrans parsed_data -o $(srcdir)/corpus_info ++ calctrans parsed_data -e -o $(srcdir)/weak_words + make do_update_params + + update_params0: + rm -f parsed_data2 +- ./proccorpus $(srcdir)/corpus.0.txt > parsed_data +- ./calctrans parsed_data -o $(srcdir)/corpus_info +- ./calctrans parsed_data -e -o $(srcdir)/weak_words ++ proccorpus $(srcdir)/corpus.0.txt > parsed_data ++ calctrans parsed_data -o $(srcdir)/corpus_info ++ calctrans parsed_data -e -o $(srcdir)/weak_words + make do_update_params + + update_params2: +- ./proccorpus $(srcdir)/corpus.?.txt >> parsed_data2 +- ./calctrans parsed_data parsed_data2 -o $(srcdir)/corpus_info +- ./calctrans parsed_data parsed_data2 -e -o $(srcdir)/weak_words ++ proccorpus $(srcdir)/corpus.?.txt >> parsed_data2 ++ calctrans parsed_data parsed_data2 -o $(srcdir)/corpus_info ++ calctrans parsed_data parsed_data2 -e -o $(srcdir)/weak_words + make do_update_params + + do_update_params: +- ./calctrans -c $(srcdir)/corpus_info ++ calctrans -c $(srcdir)/corpus_info + rm -f $(dict_source_files) + make $(dict_source_files) + +-$(dict_source_files): $(srcdir)/corpus_info $(srcdir)/weak_words calctrans +- ./calctrans -c $(srcdir)/corpus_info $(srcdir)/weak_words ++$(dict_source_files): $(srcdir)/corpus_info $(srcdir)/weak_words ++ calctrans -c $(srcdir)/corpus_info $(srcdir)/weak_words + + noinst_DATA = $(dict_source_files) + CLEANFILES = $(dict_source_files) parsed_data parsed_data2 anthy.feature_info +diff -Nurp anthy-9100h.org/depgraph/Makefile.am anthy-9100h/depgraph/Makefile.am +--- anthy-9100h.org/depgraph/Makefile.am 2008-11-29 21:46:14.000000000 +0900 ++++ anthy-9100h/depgraph/Makefile.am 2014-11-11 17:12:03.813999991 +0900 +@@ -9,11 +9,11 @@ CLEANFILES = anthy.dep + EXTRA_DIST = indepword.txt $(DEPWORDS) + + # Generate the dictionary +-noinst_PROGRAMS = mkdepgraph +-mkdepgraph_SOURCES = mkdepgraph.c +-mkdepgraph_LDADD = ../src-main/libanthy.la ../src-worddic/libanthydic.la ++#noinst_PROGRAMS = mkdepgraph ++#mkdepgraph_SOURCES = mkdepgraph.c ++#mkdepgraph_LDADD = ../src-main/libanthy.la ../src-worddic/libanthydic.la + +-anthy.dep : mkdepgraph $(DEPWORDS) +- ./mkdepgraph ++anthy.dep : $(DEPWORDS) ++ mkdepgraph + + noinst_DATA = anthy.dep +diff -Nurp anthy-9100h.org/mkanthydic/Makefile.am anthy-9100h/mkanthydic/Makefile.am +--- anthy-9100h.org/mkanthydic/Makefile.am 2007-04-14 18:01:10.000000000 +0900 ++++ anthy-9100h/mkanthydic/Makefile.am 2014-11-11 17:10:34.792999991 +0900 +@@ -3,12 +3,12 @@ noinst_SCRIPTS = + CLEANFILES = anthy.dic + INCLUDES = -I$(top_srcdir)/ -DSRCDIR=\"$(srcdir)\" + +-noinst_PROGRAMS = mkfiledic +-mkfiledic_SOURCES = mkfiledic.c +-mkfiledic_LDADD = ../src-diclib/libdiclib.la ++#noinst_PROGRAMS = mkfiledic ++#mkfiledic_SOURCES = mkfiledic.c ++#mkfiledic_LDADD = ../src-diclib/libdiclib.la + +-anthy.dic : mkfiledic ../mkworddic/anthy.wdic ../depgraph/anthy.dep ../calctrans/anthy.cand_info ../calctrans/anthy.trans_info ../calctrans/anthy.corpus_array ../calctrans/anthy.corpus_bucket +- ./mkfiledic ++anthy.dic : ../mkworddic/anthy.wdic ../depgraph/anthy.dep ../calctrans/anthy.cand_info ../calctrans/anthy.trans_info ../calctrans/anthy.corpus_array ../calctrans/anthy.corpus_bucket ++ mkfiledic + + + # To install +diff -Nurp anthy-9100h.org/mkworddic/Makefile.am anthy-9100h/mkworddic/Makefile.am +--- anthy-9100h.org/mkworddic/Makefile.am 2009-01-23 12:31:31.000000000 +0900 ++++ anthy-9100h/mkworddic/Makefile.am 2014-11-11 17:13:31.946999992 +0900 +@@ -26,14 +26,14 @@ DIC_FILES = @top_srcdir@/alt-cannadic/gc + @top_srcdir@/mkworddic/udict + + # Generate the dictionary +-noinst_PROGRAMS = mkworddic +-mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h +-mkworddic_LDADD = ../src-worddic/libanthydic.la ++#noinst_PROGRAMS = mkworddic ++#mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h ++#mkworddic_LDADD = ../src-worddic/libanthydic.la + + noinst_DATA = anthy.wdic + +-anthy.wdic : mkworddic $(DIC_FILES) +- ./mkworddic -f ./dict.args ++anthy.wdic : $(DIC_FILES) ++ mkworddic -f ./dict.args + + + # To install diff --git a/meta-oe/recipes-support/anthy/anthy_9100h.bb b/meta-oe/recipes-support/anthy/anthy_9100h.bb new file mode 100644 index 00000000000..a65d324eae5 --- /dev/null +++ b/meta-oe/recipes-support/anthy/anthy_9100h.bb @@ -0,0 +1,45 @@ +DESCRIPTION="Anthy is a system for Japanese input method. It converts Hiragana text to Kana Kanji mixed text." +AUTHOR = "Anthy Developers " +HOMEPAGE = "http://anthy.sourceforge.jp" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=11f384074d8e93e263b5664ef08a411a" + +SRC_URI = "http://osdn.dl.sourceforge.jp/anthy/37536/anthy-9100h.tar.gz \ + file://not_build_elc.patch \ + file://2ch_t.patch \ +" + +SRC_URI_append_class-target = "file://target-helpers.patch" +SRC_URI_append_class-native = "file://native-helpers.patch" + +SRC_URI[md5sum] = "1f558ff7ed296787b55bb1c6cf131108" +SRC_URI[sha256sum] = "d256f075f018b4a3cb0d165ed6151fda4ba7db1621727e0eb54569b6e2275547" + +DEPENDS_class-target = "anthy-native" +RDEPENDS_${PN}_class-target = "libanthy0" + +inherit autotools pkgconfig + +PACKAGES += "${PN}-el libanthy0 libanthy-dev" + +FILES_${PN}-dbg += "${libdir}/.debug" +FILES_libanthy0 = "${libdir}/libanthy.so.* \ + ${libdir}/libanthydic.so.* \ + ${libdir}/libanthyinput.so.* \ +" + +FILES_libanthy-dev = "${libdir}/libanthy*.la \ + ${libdir}/libanthy*.a \ + ${libdir}/libanthy*.so \ + ${includedir}/anthy \ + ${libdir}/pkgconfig/anthy.pc \ +" + +FILES_${PN}-el = "${datadir}/emacs/*" +FILES_${PN} = "${datadir}/* \ + ${bindir}/* \ + ${sysconfdir}/anthy-conf \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb b/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb deleted file mode 100644 index 18979d574bc..00000000000 --- a/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "Apcupsd a daemon for controlling APC UPSes" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=c12853cc7fdf20d17b4fddefd26b7802" - -SRC_URI = "http://garr.dl.sourceforge.net/project/apcupsd/apcupsd%20-%20Stable/3.14.10/apcupsd-${PV}.tar.gz" -SRC_URI[md5sum] = "5928822d855c5cf7ac29655e3e0b8c23" -SRC_URI[sha256sum] = "0707b5ec9916fbde9e44eb8d18037c8d8f75dfd6aeef51aba5487e189eef2032" - -PNBLACKLIST[apcupsd] ?= "BROKEN: doesn't build with B!=S" - -inherit autotools - -LD = "${CXX}" - -EXTRA_OECONF = "--without-x \ - --enable-usb \ - --with-distname=${DISTRO}" - -do_configure() { - export topdir=${S} - cp -a ${S}/autoconf/configure.in ${S} - - if ! [ -d ${S}/platforms/${DISTRO} ] ; then - cp -a ${S}/platforms/unknown ${S}/platforms/${DISTRO} - fi - - gnu-configize --force - # install --help says '-c' is an ignored option, but it turns out that the argument to -c isn't ignored, so drop the complete '-c path/to/strip' line - sed -i -e 's:$(INSTALL_PROGRAM) $(STRIP):$(INSTALL_PROGRAM):g' ${S}/autoconf/targets.mak - # Searching in host dirs triggers the QA checks - sed -i -e 's:-I/usr/local/include::g' -e 's:-L/usr/local/lib64::g' -e 's:-L/usr/local/lib::g' ${S}/configure - - # m4 macros are missing, using autotools_do_configure leads to linking errors with gethostname_re - oe_runconf -} - -do_install_append() { - rm ${D}${datadir}/hal -rf -} - - diff --git a/meta-oe/recipes-support/asio/asio.inc b/meta-oe/recipes-support/asio/asio.inc index 9cea8249191..54f78e41d12 100644 --- a/meta-oe/recipes-support/asio/asio.inc +++ b/meta-oe/recipes-support/asio/asio.inc @@ -6,7 +6,7 @@ HOMEPAGE = "http://think-async.com/Asio" SECTION = "libs" LICENSE = "BSL-1.0" -DEPENDS = "boost" +DEPENDS = "boost openssl" SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2" diff --git a/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch b/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch new file mode 100644 index 00000000000..4244b97a8c8 --- /dev/null +++ b/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch @@ -0,0 +1,46 @@ +From 45c855400842fd40f200ae9b7abf9debf4ab5436 Mon Sep 17 00:00:00 2001 +From: Christopher Kohlhoff +Date: Sun, 28 Aug 2016 09:21:53 +1000 +Subject: [PATCH] Automatically handle glibc variant of strerror_r without + #ifdefs. + +--- +Upstream-Status: Backport https://github.com/chriskohlhoff/asio/commit/443bc17d13eb5e37de780ea6e23157493cf7b3b9 + include/asio/impl/error_code.ipp | 16 +++++++--------- + 1 file changed, 7 insertions(+), 9 deletions(-) + +diff --git a/include/asio/impl/error_code.ipp b/include/asio/impl/error_code.ipp +index ccb70dd..a117658 100644 +--- a/include/asio/impl/error_code.ipp ++++ b/include/asio/impl/error_code.ipp +@@ -97,20 +97,18 @@ public: + #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__) + using namespace std; + return strerror(value); +-#elif defined(__MACH__) && defined(__APPLE__) \ +- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \ +- || defined(_AIX) || defined(__hpux) || defined(__osf__) \ +- || defined(__ANDROID__) +- char buf[256] = ""; +- using namespace std; +- strerror_r(value, buf, sizeof(buf)); +- return buf; + #else + char buf[256] = ""; +- return strerror_r(value, buf, sizeof(buf)); ++ using namespace std; ++ return strerror_result(strerror_r(value, buf, sizeof(buf)), buf); + #endif + #endif // defined(ASIO_WINDOWS) + } ++ ++private: ++ // Helper function to adapt the result from glibc's variant of strerror_r. ++ static const char* strerror_result(int, const char* s) { return s; } ++ static const char* strerror_result(const char* s, const char*) { return s; } + }; + + } // namespace detail +-- +2.9.3 + diff --git a/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch b/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch new file mode 100644 index 00000000000..7f95f5a25ef --- /dev/null +++ b/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch @@ -0,0 +1,64 @@ +From dac36a170188917e2f61b0394ba8a2f6509ddf3a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Tue, 8 Nov 2016 20:39:55 +0000 +Subject: [PATCH] use POSIX poll.h instead of sys/poll.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +POSIX specifies that is the correct header to +include for poll() + http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html +whereas is only needed for ancient glibc (<2.3), +so let's follow POSIX instead. + +As a side-effect, this silences numerous compilation warnings +when compiling against the musl C-library: + +In file included from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/socket_types.hpp:57:0, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/error_code.ipp:29, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/error_code.hpp:185, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/throw_error.hpp:19, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/impl/posix_tss_ptr.ipp:23, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/posix_tss_ptr.hpp:74, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/tss_ptr.hpp:27, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/call_stack.hpp:20, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/handler_alloc_hook.ipp:19, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/handler_alloc_hook.hpp:78, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/handler_alloc_helpers.hpp:21, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/bind_handler.hpp:19, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/wrapped_handler.hpp:18, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/io_service.hpp:24, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_io_object.hpp:19, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_socket.hpp:20, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_datagram_socket.hpp:20, + from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio.hpp:19, + from ../../../../asio-1.10.6/src/examples/cpp03/buffers/reference_counted.cpp:11: +/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include to [-Wcpp] + #warning redirecting incorrect #include to + ^~~~~~~ + +etc. + +Signed-off-by: André Draszik +--- +Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419 + include/asio/detail/socket_types.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/asio/detail/socket_types.hpp b/include/asio/detail/socket_types.hpp +index f2600c2..cb61b8e 100644 +--- a/include/asio/detail/socket_types.hpp ++++ b/include/asio/detail/socket_types.hpp +@@ -54,7 +54,7 @@ + #else + # include + # if !defined(__SYMBIAN32__) +-# include ++# include + # endif + # include + # include +-- +2.10.2 + diff --git a/meta-oe/recipes-support/asio/asio_1.10.1.bb b/meta-oe/recipes-support/asio/asio_1.10.1.bb deleted file mode 100644 index fdfaaf6750f..00000000000 --- a/meta-oe/recipes-support/asio/asio_1.10.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -require asio.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=113f800aa522d9e38c3309c98ec53ade" - -SRC_URI[md5sum] = "4d508c9947404fee40945375b8a5fd32" -SRC_URI[sha256sum] = "820a5dad3c56a4f3e937f2b9ae059ab2696c6058345d71b7a8b072a0f2fcbd99" diff --git a/meta-oe/recipes-support/asio/asio_1.10.6.bb b/meta-oe/recipes-support/asio/asio_1.10.6.bb new file mode 100644 index 00000000000..56560398463 --- /dev/null +++ b/meta-oe/recipes-support/asio/asio_1.10.6.bb @@ -0,0 +1,11 @@ +require asio.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=fede5286a78559dd646e355ab0cc8f04" + +SRC_URI[md5sum] = "85d014a356a6e004cd30ccd4c9b6a5c2" +SRC_URI[sha256sum] = "e0d71c40a7b1f6c1334008fb279e7361b32a063e020efd21e40d9d8ff037195e" + +SRC_URI += "\ + file://0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch \ + file://0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch \ +" diff --git a/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch b/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch new file mode 100644 index 00000000000..3708f60ba0a --- /dev/null +++ b/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch @@ -0,0 +1,97 @@ +From 7b651793269b6b86f12c43c30b751b86def27222 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 18 Mar 2017 17:56:40 -0700 +Subject: [PATCH] include missing header files + +fixes build with musl + +Signed-off-by: Khem Raj +--- + deviate.c | 1 + + procdbase.c | 2 +- + showgeneric.c | 2 +- + showlinux.c | 2 +- + showprocs.c | 2 +- + showsys.c | 2 +- + 6 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/deviate.c b/deviate.c +index 7cf1b49..8e615af 100644 +--- a/deviate.c ++++ b/deviate.c +@@ -178,6 +178,7 @@ static const char rcsid[] = "$Id: deviate.c,v 1.45 2010/10/23 14:02:03 gerlof Ex + #include + #include + #include ++#include + #include + #include + #include +diff --git a/procdbase.c b/procdbase.c +index 9cab347..0487d26 100644 +--- a/procdbase.c ++++ b/procdbase.c +@@ -67,7 +67,7 @@ static const char rcsid[] = "$Id: procdbase.c,v 1.8 2010/04/23 12:19:35 gerlof E + #include + #include + #include +-#include ++#include + + #include "atop.h" + #include "photoproc.h" +diff --git a/showgeneric.c b/showgeneric.c +index 775afa8..3d5be0e 100644 +--- a/showgeneric.c ++++ b/showgeneric.c +@@ -268,7 +268,7 @@ static const char rcsid[] = "$Id: showgeneric.c,v 1.71 2010/10/25 19:08:32 gerlo + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/showlinux.c b/showlinux.c +index 6e60754..aba2ee6 100644 +--- a/showlinux.c ++++ b/showlinux.c +@@ -274,7 +274,7 @@ static const char rcsid[] = "$Id: showlinux.c,v 1.70 2010/10/23 14:04:12 gerlof + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/showprocs.c b/showprocs.c +index 5194524..f0169ad 100644 +--- a/showprocs.c ++++ b/showprocs.c +@@ -94,7 +94,7 @@ static const char rcsid[] = "$Id: showprocs.c,v 1.15 2011/09/05 11:44:16 gerlof + #include + #include + #include +-#include ++#include + #include + #include + #include +diff --git a/showsys.c b/showsys.c +index 26331be..5a05fe5 100644 +--- a/showsys.c ++++ b/showsys.c +@@ -80,7 +80,7 @@ static const char rcsid[] = "XXXXXX"; + #include + #include + #include +-#include ++#include + #include + #include + #include +-- +2.12.0 + diff --git a/meta-oe/recipes-support/atop/atop/fix-permissions.patch b/meta-oe/recipes-support/atop/atop/fix-permissions.patch new file mode 100644 index 00000000000..ee741999397 --- /dev/null +++ b/meta-oe/recipes-support/atop/atop/fix-permissions.patch @@ -0,0 +1,52 @@ +Update permissions of executable files that remove setuid bit and make everyone +could read. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Kai Kang +--- +diff --git a/Makefile b/Makefile +index a65b9b6..21d9828 100644 +--- a/Makefile ++++ b/Makefile +@@ -66,7 +66,7 @@ systemdinstall: genericinstall + chmod 0644 $(DESTDIR)$(SYSDPATH)/atopacct.service + cp atop.cronsystemd $(DESTDIR)$(CRNPATH)/atop + cp atop-pm.sh $(DESTDIR)$(PMPATHD) +- chmod 0711 $(DESTDIR)$(PMPATHD)/atop-pm.sh ++ chmod 0755 $(DESTDIR)$(PMPATHD)/atop-pm.sh + # + # only when making on target system: + # +@@ -91,11 +91,11 @@ sysvinstall: genericinstall + # + if [ -d $(DESTDIR)$(PMPATH1) ]; \ + then cp 45atoppm $(DESTDIR)$(PMPATH1); \ +- chmod 0711 $(DESTDIR)$(PMPATH1)/45atoppm; \ ++ chmod 0755 $(DESTDIR)$(PMPATH1)/45atoppm; \ + fi + if [ -d $(DESTDIR)$(PMPATH2) ]; \ + then cp 45atoppm $(DESTDIR)$(PMPATH2); \ +- chmod 0711 $(DESTDIR)$(PMPATH2)/45atoppm; \ ++ chmod 0755 $(DESTDIR)$(PMPATH2)/45atoppm; \ + fi + # + # +@@ -139,7 +139,7 @@ genericinstall: atop atopacctd + # + cp atop $(DESTDIR)$(BINPATH)/atop + chown root $(DESTDIR)$(BINPATH)/atop +- chmod 04711 $(DESTDIR)$(BINPATH)/atop ++ chmod 0755 $(DESTDIR)$(BINPATH)/atop + ln -sf atop $(DESTDIR)$(BINPATH)/atopsar + cp atopacctd $(DESTDIR)$(SBINPATH)/atopacctd + chown root $(DESTDIR)$(SBINPATH)/atopacctd +@@ -147,7 +147,7 @@ genericinstall: atop atopacctd + cp atop $(DESTDIR)$(BINPATH)/atop-$(VERS) + ln -sf atop-$(VERS) $(DESTDIR)$(BINPATH)/atopsar-$(VERS) + cp atop.daily $(DESTDIR)$(SCRPATH) +- chmod 0711 $(DESTDIR)$(SCRPATH)/atop.daily ++ chmod 0755 $(DESTDIR)$(SCRPATH)/atop.daily + cp man/atop.1 $(DESTDIR)$(MAN1PATH) + cp man/atopsar.1 $(DESTDIR)$(MAN1PATH) + cp man/atoprc.5 $(DESTDIR)$(MAN5PATH) diff --git a/meta-oe/recipes-support/atop/atop/remove-bashisms.patch b/meta-oe/recipes-support/atop/atop/remove-bashisms.patch new file mode 100644 index 00000000000..f1fcbfed760 --- /dev/null +++ b/meta-oe/recipes-support/atop/atop/remove-bashisms.patch @@ -0,0 +1,33 @@ +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Kai Kang +--- +diff --git a/atop-pm.sh b/atop-pm.sh +index 7f41a86..3ff4ab5 100755 +--- a/atop-pm.sh ++++ b/atop-pm.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + case "$1" in + pre) /usr/bin/systemctl stop atop +diff --git a/atop.daily b/atop.daily +index 24d33bd..f29bd94 100755 +--- a/atop.daily ++++ b/atop.daily +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + CURDAY=`date +%Y%m%d` + LOGPATH=/var/log/atop +@@ -16,7 +16,7 @@ then + + while ps -p `cat $PIDFILE` > /dev/null + do +- let CNT+=1 ++ CNT=$((CNT+1)) + + if [ $CNT -gt 5 ] + then diff --git a/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch b/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch new file mode 100644 index 00000000000..5994d3e08e3 --- /dev/null +++ b/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch @@ -0,0 +1,27 @@ +Implement the sub-command status. + +Upstream-Status: Pending + +Signed-off-by: Kai Kang +--- +diff --git a/atop.init b/atop.init +index 108bdc5..9f89fad 100755 +--- a/atop.init ++++ b/atop.init +@@ -18,6 +18,8 @@ + # Check existance of binaries + [ -f /usr/bin/atop ] || exit 0 + ++[ -f /etc/init.d/functions ] && . /etc/init.d/functions ++ + PIDFILE=/var/run/atop.pid + RETVAL=0 + +@@ -63,6 +65,7 @@ case "$1" in + ;; + + status) ++ status atop + ;; + + reload) diff --git a/meta-oe/recipes-support/atop/atop/volatiles.99_atop b/meta-oe/recipes-support/atop/atop/volatiles.99_atop new file mode 100644 index 00000000000..24ea3f2054c --- /dev/null +++ b/meta-oe/recipes-support/atop/atop/volatiles.99_atop @@ -0,0 +1 @@ +d root root 0755 /var/volatile/log/atop none diff --git a/meta-oe/recipes-support/atop/atop/volatiles.atop.conf b/meta-oe/recipes-support/atop/atop/volatiles.atop.conf new file mode 100644 index 00000000000..2f230004d50 --- /dev/null +++ b/meta-oe/recipes-support/atop/atop/volatiles.atop.conf @@ -0,0 +1 @@ +d /var/volatile/log/atop - - - - diff --git a/meta-oe/recipes-support/atop/atop_2.2.3.bb b/meta-oe/recipes-support/atop/atop_2.2.3.bb new file mode 100644 index 00000000000..1ab9e7cf9e3 --- /dev/null +++ b/meta-oe/recipes-support/atop/atop_2.2.3.bb @@ -0,0 +1,63 @@ +SUMMARY = "Monitor for system resources and process activity" +DESCRIPTION = "Atop is an ASCII full-screen performance monitor for Linux that \ +is capable of reporting the activity of all processes (even if processes have \ +finished during the interval), daily logging of system and process activity for \ +long-term analysis, highlighting overloaded system resources by using colors, \ +etc. At regular intervals, it shows system-level activity related to the CPU, \ +memory, swap, disks (including LVM) and network layers, and for every process \ +(and thread) it shows e.g. the CPU utilization, memory growth, disk \ +utilization, priority, username, state, and exit code." +HOMEPAGE = "http://www.atoptool.nl" +SECTION = "console/utils" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +DEPENDS = "ncurses zlib" + +ATOP_VER = "${@'-'.join(d.getVar('PV').rsplit('.', 1))}" + +SRC_URI = " \ + http://www.atoptool.nl/download/${BPN}-${ATOP_VER}.tar.gz \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \ + file://0001-include-missing-header-files.patch \ + file://remove-bashisms.patch \ + file://fix-permissions.patch \ + file://sysvinit-implement-status.patch \ +" + +SRC_URI[md5sum] = "034dc1544f2ec4e4d2c739d320dc326d" +SRC_URI[sha256sum] = "c785b8a2355be28b3de6b58a8ea4c4fcab8fadeaa57a99afeb03c66fac8e055d" + +S = "${WORKDIR}/${BPN}-${ATOP_VER}" + +do_compile() { + oe_runmake all +} + +do_install() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + make DESTDIR=${D} VERS=${ATOP_VER} SYSDPATH=${systemd_system_unitdir} \ + PMPATHD=${systemd_unitdir}/system-sleep systemdinstall + install -d ${D}${sysconfdir}/tmpfiles.d + install -m 644 ${WORKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf + rm -f ${D}${systemd_system_unitdir}/atopacct.service + else + make DESTDIR=${D} VERS=${ATOP_VER} sysvinstall + install -d ${D}${sysconfdir}/default/volatiles + install -m 644 ${WORKDIR}/volatiles.99_atop ${D}${sysconfdir}/default/volatiles/99_atop + rm -f ${D}${sysconfdir}/init.d/atopacct + fi + + # remove atopacct related files + rm -rf ${D}${sbindir} ${D}${mandir}/man8 +} + +inherit systemd + +SYSTEMD_SERVICE_${PN} = "atop.service" +SYSTEMD_AUTO_ENABLE = "disable" + +FILES_${PN} += "${systemd_unitdir}/system-sleep" + +RDEPENDS_${PN} = "procps" diff --git a/meta-oe/recipes-support/augeas/augeas.inc b/meta-oe/recipes-support/augeas/augeas.inc new file mode 100644 index 00000000000..185abae18da --- /dev/null +++ b/meta-oe/recipes-support/augeas/augeas.inc @@ -0,0 +1,33 @@ +SUMMARY = "Augeas configuration API" +HOMEPAGE = "http://augeas.net/" +BUGTRACKER = "https://fedorahosted.org/augeas/report/1" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=bbb461211a33b134d42ed5ee802b37ff" + +SRC_URI = "http://download.augeas.net/${BP}.tar.gz \ + file://add-missing-argz-conditional.patch \ + file://sepbuildfix.patch \ + file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ + " + +DEPENDS = "readline libxml2" + +inherit autotools pkgconfig + +PACKAGES =+ "${PN}-lenses lib${BPN}" + +FILES_${PN}-lenses = "${datadir}/augeas/lenses" +FILES_lib${BPN} = "${libdir}/lib*${SOLIBS}" + +RDEPENDS_lib${BPN} += "${PN}-lenses" +RRECOMMENDS_lib${BPN} += "${PN}" + +LEAD_SONAME = "libaugeas.so" + +do_install_append() { + rm -fr ${D}${datadir}/vim +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libselinux] = "--with-selinux,--without-selinux,libselinux" diff --git a/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch new file mode 100644 index 00000000000..9a19876aa67 --- /dev/null +++ b/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch @@ -0,0 +1,30 @@ +From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 13 Apr 2015 17:02:13 -0700 +Subject: [PATCH] Unset need_charset_alias when building for musl + +localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4 +which actually shoudl be fixed in gnulib and then all downstream +projects will get it eventually. For now we apply the fix to +coreutils + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + lib/gnulib.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: augeas-1.2.0/gnulib/lib/Makefile.am +=================================================================== +--- augeas-1.2.0.orig/gnulib/lib/Makefile.am ++++ augeas-1.2.0/gnulib/lib/Makefile.am +@@ -463,7 +463,7 @@ install-exec-localcharset: all-local + case '$(host_os)' in \ + darwin[56]*) \ + need_charset_alias=true ;; \ +- darwin* | cygwin* | mingw* | pw32* | cegcc*) \ ++ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \ + need_charset_alias=false ;; \ + *) \ + need_charset_alias=true ;; \ diff --git a/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch b/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch new file mode 100644 index 00000000000..abbdbaa63b3 --- /dev/null +++ b/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch @@ -0,0 +1,20 @@ +Add missing GL_GENERATE_ARGZ_H conditional + +- GL_GENERATE_ARGZ_H is used in gnulib/lib/Makefile.am + +Upstream-Status: Pending +Signed-off-by: Constantin Musca + +Index: augeas-1.0.0/configure.ac +=================================================================== +--- augeas-1.0.0.orig/configure.ac ++++ augeas-1.0.0/configure.ac +@@ -55,6 +55,8 @@ AC_ARG_WITH([failmalloc], + + AM_CONDITIONAL([WITH_FAILMALLOC], [test x$with_failmalloc != xno]) + ++AM_CONDITIONAL([GL_GENERATE_ARGZ_H], [test -n "$ARGZ_H"]) ++ + dnl --enable-debug=(yes|no) + AC_ARG_ENABLE([debug], + [AC_HELP_STRING([--enable-debug=no/yes], diff --git a/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch b/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch new file mode 100644 index 00000000000..b82a3ee2cb8 --- /dev/null +++ b/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch @@ -0,0 +1,22 @@ +Ensure that builds in separate builddirs (${B} != ${S}) correctly install the +lenses files. + +Upstream-Status: Pending + +RP 2013/4/17 + +Index: augeas-1.0.0/Makefile.am +=================================================================== +--- augeas-1.0.0.orig/Makefile.am 2012-11-02 15:20:11.000000000 +0000 ++++ augeas-1.0.0/Makefile.am 2013-04-17 10:36:24.033400125 +0000 +@@ -5,8 +5,8 @@ + lensdir=$(datadir)/augeas/lenses/dist + lenstestdir=$(datadir)/augeas/lenses/dist/tests + +-dist_lens_DATA=$(wildcard lenses/*.aug) +-dist_lenstest_DATA=$(wildcard lenses/tests/*.aug) ++dist_lens_DATA=$(wildcard $(top_srcdir)/lenses/*.aug) ++dist_lenstest_DATA=$(wildcard $(top_srcdir)lenses/tests/*.aug) + + EXTRA_DIST=augeas.spec build/aux/move-if-change Makefile.am HACKING + diff --git a/meta-oe/recipes-support/augeas/augeas_1.5.0.bb b/meta-oe/recipes-support/augeas/augeas_1.5.0.bb new file mode 100644 index 00000000000..c4f62e74702 --- /dev/null +++ b/meta-oe/recipes-support/augeas/augeas_1.5.0.bb @@ -0,0 +1,4 @@ +require augeas.inc + +SRC_URI[md5sum] = "01190e455c513124a2dae29a1182c113" +SRC_URI[sha256sum] = "223bb6e6fe3e9e92277dafd5d34e623733eb969a72a382998d204feab253f73f" diff --git a/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch b/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch new file mode 100644 index 00000000000..01235d8ef33 --- /dev/null +++ b/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch @@ -0,0 +1,37 @@ +From 518bb8ccfb3f3fc143fbd571782f3e40573d01b5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 10 Apr 2017 09:15:04 -0700 +Subject: [PATCH] avro-c: Fix build with clang compiler + +Clang advertizes itself to be compatible with gcc 4.2.1 +while that was true several years ago, it now supports +a lot more newer features, the test to just check gcc +version should be supplanted with clang check as well +so atomic support in clang can be asserted as well + +Fixes + +lang/c/src/avro/refcount.h:301:2: error: "No atomic implementation!" + +Signed-off-by: Khem Raj +--- + lang/c/src/avro/refcount.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/lang/c/src/avro/refcount.h b/lang/c/src/avro/refcount.h +index 69afa4fc..d76ba057 100644 +--- a/lang/c/src/avro/refcount.h ++++ b/lang/c/src/avro/refcount.h +@@ -118,7 +118,8 @@ avro_refcount_dec(volatile int *refcount) + * GCC intrinsics + */ + +-#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40500 ++#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40500 \ ++|| defined(__clang__) + + static inline void + avro_refcount_set(volatile int *refcount, int value) +-- +2.12.2 + diff --git a/meta-oe/recipes-support/avro/avro-c_1.8.1.bb b/meta-oe/recipes-support/avro/avro-c_1.8.1.bb new file mode 100644 index 00000000000..276fe2b5aea --- /dev/null +++ b/meta-oe/recipes-support/avro/avro-c_1.8.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "Apache Avro data serialization system." +HOMEPAGE = "http://apr.apache.org/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=73bdf70f268f0b3b9c5a83dd7a6f3324" + +DEPENDS = "jansson zlib xz" +PV .= "+git${SRCPV}" + +SRCREV = "4b3677c32b879e0e7f717eb95f9135ac654da760" +SRC_URI = "git://github.com/apache/avro \ + file://0001-avro-c-Fix-build-with-clang-compiler.patch;patchdir=../../ \ +" + +S = "${WORKDIR}/git/lang/c" + +LDFLAGS_append_libc-uclibc = " -lm" + +inherit cmake diff --git a/meta-oe/recipes-support/bash-completion/bash-completion_2.1.bb b/meta-oe/recipes-support/bash-completion/bash-completion_2.1.bb deleted file mode 100644 index fbe4278d7f9..00000000000 --- a/meta-oe/recipes-support/bash-completion/bash-completion_2.1.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Programmable Completion for Bash 4" -HOMEPAGE = "http://bash-completion.alioth.debian.org/" -BUGTRACKER = "https://alioth.debian.org/projects/bash-completion/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SECTION = "console/utils" - -SRC_URI="http://bash-completion.alioth.debian.org/files/${BPN}-${PV}.tar.bz2" - -SRC_URI[md5sum] = "4e2a9f11a4042a38ee79ddcd048e8b9e" -SRC_URI[sha256sum] = "2b606804a7d5f823380a882e0f7b6c8a37b0e768e72c3d4107c51fbe8a46ae4f" - -PARALLEL_MAKE = "" - -inherit autotools - -do_install_append() { - # compatdir - install -d ${D}${sysconfdir}/bash_completion.d/ - echo '. ${datadir}/${BPN}/bash_completion' >${D}${sysconfdir}/bash_completion - - # Delete files already provided by util-linux - local i - for i in cal dmesg eject hexdump hwclock ionice look renice rtcwake su; do - rm ${D}${datadir}/${BPN}/completions/$i - done - - # Delete files for networkmanager - rm ${D}${datadir}/${BPN}/completions/nmcli -} - -RDEPENDS_${PN} = "bash" - -# Some recipes are providing ${PN}-bash-completion packages -PACKAGES =+ "${PN}-extra" -FILES_${PN}-extra = "${datadir}/${BPN}/completions/ \ - ${datadir}/${BPN}/helpers/" diff --git a/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch b/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch new file mode 100644 index 00000000000..8ef774f0f2c --- /dev/null +++ b/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch @@ -0,0 +1,29 @@ +configure.ac: add check for NO_GETCONTEXT definition + +Signed-off-by: Samuel Martin +[yann.morin.1998@free.fr: add a comment, change variable name, use + AS_IF, remove debug traces, use AC_CHECK_FUNCS (as suggested by + Thomas)] +Signed-off-by: "Yann E. MORIN" +Cc: Thomas Petazzoni + +--- +Upstream-Status: Pending + configure.ac | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- bdwgc-7.2f.orig/configure.ac 2014-06-01 19:00:47.000000000 +0200 ++++ bdwgc-7.2f/configure.ac 2014-12-23 14:13:11.585716713 +0100 +@@ -365,6 +365,12 @@ + AC_MSG_RESULT($ac_cv_fno_strict_aliasing) + fi + ++# Check for getcontext (uClibc can be configured without it, for example) ++AC_CHECK_FUNCS([getcontext]) ++AS_IF([test "$ac_cv_func_getcontext" = "no"], ++ [CFLAGS="$CFLAGS -DNO_GETCONTEXT" ++ CPPFLAGS="$CPPFLAGS -DNO_GETCONTEXT"]) ++ + case "$host" in + # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64 + # and unnecessary everywhere. diff --git a/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch b/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch new file mode 100644 index 00000000000..4a184966501 --- /dev/null +++ b/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch @@ -0,0 +1,27 @@ +Add missing header to avoid: + +| 1472659610.016355: ../git/pthread_stop_world.c: In function 'GC_brief_async_signal_safe_sleep': +| 1472659610.0540252: ../git/pthread_stop_world.c:397:22: error: storage size of 'tv' isn't known +| 1472659610.0540252: struct timeval tv; +| 1472659610.0540252: ^~ +| 1472659610.054099: ../git/pthread_stop_world.c:397:22: warning: unused variable 'tv' [-Wunused-variable] +| 1472659610.054099: struct timeval tv; +| 1472659610.054099: ^~ +| 1472659610.054099: Makefile:1530: recipe for target 'pthread_stop_world.lo' failed + +in musl builds. + +Upstream-Status: Pending + +Index: git/pthread_stop_world.c +=================================================================== +--- git.orig/pthread_stop_world.c ++++ git/pthread_stop_world.c +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + #include "atomic_ops.h" + + /* It's safe to call original pthread_sigmask() here. */ diff --git a/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb b/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb new file mode 100644 index 00000000000..dcb68f02826 --- /dev/null +++ b/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb @@ -0,0 +1,42 @@ +SUMMARY = "A garbage collector for C and C++" + +DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\ + used as a garbage collecting replacement for C malloc or C++ new. It allows\ + you to allocate memory basically as you normally would, without explicitly\ + deallocating memory that is no longer useful. The collector automatically\ + recycles memory when it determines that it can no longer be otherwise\ + accessed.\ + The collector is also used by a number of programming language\ + implementations that either use C as intermediate code, want to facilitate\ + easier interoperation with C libraries, or just prefer the simple collector\ + interface.\ + Alternatively, the garbage collector may be used as a leak detector for C\ + or C++ programs, though that is not its primary goal.\ + Empirically, this collector works with most unmodified C programs, simply\ + by replacing malloc with GC_malloc calls, replacing realloc with GC_realloc\ + calls, and removing free calls." + +HOMEPAGE = "http://www.hboehm.info/gc/" +SECTION = "devel" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://README.QUICK;md5=4f81f24ec69726c312487c2ac740e9e3" + +SRCREV = "8ac1d84a40eb7a431fec1b8097e3f24b48fb23fa" +SRC_URI = "git://github.com/ivmai/bdwgc.git \ + file://0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch \ + file://musl_header_fix.patch \ + " + +FILES_${PN}-doc = "${datadir}" + +S = "${WORKDIR}/git" + +ARM_INSTRUCTION_SET = "arm" + +inherit autotools pkgconfig + +# by default use external libatomic-ops +PACKAGECONFIG ??= "libatomic-ops" +PACKAGECONFIG[libatomic-ops] = "--with-libatomic-ops=yes,--with-libatomic-ops=no,libatomic-ops" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-support/canonical-multitouch/frame/pessimizing-move.patch b/meta-oe/recipes-support/canonical-multitouch/frame/pessimizing-move.patch new file mode 100644 index 00000000000..aa5a56ab879 --- /dev/null +++ b/meta-oe/recipes-support/canonical-multitouch/frame/pessimizing-move.patch @@ -0,0 +1,27 @@ +let compiler decide on copy elision +Fixes compiler errors with clang +| ../../frame-2.5.0/src/x11/device_x11.cpp:126:13: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move] +| std::move(UniqueUFAxis(static_cast(axis))); +| ^ +| ../../frame-2.5.0/src/x11/device_x11.cpp:126:13: note: remove std::move call here +| std::move(UniqueUFAxis(static_cast(axis))); +| ^~~~~~~~~~ ~ +| 1 error generated. + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +Index: frame-2.5.0/src/x11/device_x11.cpp +=================================================================== +--- frame-2.5.0.orig/src/x11/device_x11.cpp ++++ frame-2.5.0/src/x11/device_x11.cpp +@@ -122,8 +122,7 @@ UFDeviceX11::UFDeviceX11(Display* displa + UFAxis_* axis = new UFAxis(type, valuator_info->min, valuator_info->max, + valuator_info->resolution); + +- axes_[type] = +- std::move(UniqueUFAxis(static_cast(axis))); ++ axes_[type] = UniqueUFAxis(static_cast(axis)); + + axis_map_[valuator_info->number] = type; + diff --git a/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb b/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb new file mode 100644 index 00000000000..da1a2a36f12 --- /dev/null +++ b/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "Frame handles simultaneous touches" + +HOMEPAGE = "https://launchpad.net/frame" + +LICENSE = "GPLv3 & LGPLv3" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ +" + +inherit autotools pkgconfig + +SRC_URI = "https://launchpad.net/${BPN}/trunk/v${PV}/+download/${BPN}-${PV}.tar.gz \ + file://pessimizing-move.patch" +SRC_URI[md5sum] = "02baa941091c5d198cd1623b3ad36e68" +SRC_URI[sha256sum] = "cfb9ab52cdccd926f1822a457264d0014c7eb9f4600a72626063dd073b26256f" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG[x11] = "--enable-x11, --disable-x11, libxi xext virtual/xserver" + +PACKAGE_BEFORE_PN += "${PN}-test" +FILES_${PN}-test = "${bindir}/frame-test*" + +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch b/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch new file mode 100644 index 00000000000..3b3acab245d --- /dev/null +++ b/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch @@ -0,0 +1,43 @@ +From 1e48821ba109b00e9c2931f12aa206c4ef54fd71 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 24 Apr 2017 12:34:55 -0700 +Subject: [PATCH] libgeis: Compare the first character of string to null + +gcc7 wants to be specific when it comes to comparing characters +and strings + +fixes + +| ../../../../../../../workspace/sources/geis/libgeis/geis_v1.c: In function '_v1_subscribe_device': +| ../../../../../../../workspace/sources/geis/libgeis/geis_v1.c:613:20: error: comparison between pointer and zero character constant [-Werror=pointer-compare] + +Signed-off-by: Khem Raj +--- + libgeis/geis_v1.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgeis/geis_v1.c b/libgeis/geis_v1.c +index 67045ee..07c0851 100644 +--- a/libgeis/geis_v1.c ++++ b/libgeis/geis_v1.c +@@ -610,7 +610,7 @@ _v1_subscribe_device(GeisInstance instance, + const char **gesture_list) + { + GeisStatus result = GEIS_UNKNOWN_ERROR; +- if (gesture_list == GEIS_ALL_GESTURES) ++ if (gesture_list[0][0] == GEIS_ALL_GESTURES) + { + geis_debug("subscribing device %d for all gestures", device_id); + } +@@ -757,7 +757,7 @@ geis_unsubscribe(GeisInstance instance, + GeisGestureType *gesture_list) + { + GeisStatus status = GEIS_STATUS_NOT_SUPPORTED; +- if (gesture_list == GEIS_ALL_GESTURES) ++ if (gesture_list[0] == GEIS_ALL_GESTURES) + { + status = geis_subscription_deactivate(instance->subscription); + } +-- +2.12.2 + diff --git a/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch b/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch new file mode 100644 index 00000000000..389e1b3fd7f --- /dev/null +++ b/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch @@ -0,0 +1,14 @@ +--- geis-2.2.17/libgeis/geis_subscription.c.orig 2016-06-17 12:04:21.062938443 -0400 ++++ geis-2.2.17/libgeis/geis_subscription.c 2016-06-17 12:05:02.934939172 -0400 +@@ -237,9 +237,10 @@ + GeisSize i; + for (i = 0; i < bag->sub_store_size; ++i) + { +- if (bag->sub_store[i]) ++ if (bag->sub_store[i]) { + _subscription_unref(bag->sub_store[i]); + bag->sub_store[i] = NULL; ++ } + } + } + diff --git a/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb new file mode 100644 index 00000000000..976aafb4fcc --- /dev/null +++ b/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb @@ -0,0 +1,58 @@ +SUMMARY = "An implementation of the GEIS interface" +DESCRIPTION = "An implementation of the GEIS (Gesture Engine Interface and Support) \ +interface\ +GEIS is a library for applications and toolkit programmers which \ +provides a consistent platform independent interface for any \ +system-wide input gesture recognition mechanism." + +HOMEPAGE = "https://launchpad.net/geis" + +LICENSE = "GPLv3 & LGPLv3" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://COPYING.GPL;md5=f27defe1e96c2e1ecd4e0c9be8967949 \ +" + +inherit autotools pkgconfig python3native lib_package distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += "grail dbus-glib python3 virtual/libx11 libxext libxi libxcb dbus frame" + +SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.xz \ + file://fix-indentation-for-gcc6.patch \ + file://0001-libgeis-Compare-the-first-character-of-string-to-nul.patch \ + " +SRC_URI[md5sum] = "2ff9d76a3ea5794516bb02c9d1924faf" +SRC_URI[sha256sum] = "8a60f5683852094038904e690d23cc5a90a980fc52da67f0f28890baa25c70eb" + +EXTRA_OECONF = "--disable-integration-tests" + +FILES_${PN}-bin = "${bindir}" +RDEPENDS_${PN}-bin = " \ + python3-argparse \ + python3-compression \ + python3-core \ + python3-crypt \ + python3-ctypes \ + python3-fcntl \ + python3-misc \ + python3-pickle \ + python3-shell \ + python3-stringold \ + python3-subprocess \ + python3-textutils \ + python3-threading \ +" + +FILES_${PN} += " \ + ${datadir}/geisview \ + ${libdir}/${PYTHON_DIR}/site-packages/geis* \ + ${libdir}/${PYTHON_DIR}/site-packages/_*.so \ +" + +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug" + +FILES_${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/_*.la" + +FILES_${PN}-staticdev += "${libdir}/${PYTHON_DIR}/site-packages/_*.a" diff --git a/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb b/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb new file mode 100644 index 00000000000..22fd0f48e2a --- /dev/null +++ b/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb @@ -0,0 +1,24 @@ +SUMMARY = "Gesture Recognition And Instantiation Library" + +HOMEPAGE = "https://launchpad.net/grail" + +LICENSE = "GPLv3 & LGPLv3" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \ + file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ +" + +inherit autotools pkgconfig + +DEPENDS = "frame" +CXXFLAGS_append_toolchain-clang = " -Wno-pessimizing-move" +SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "0df1b3ec6167920f310e2effe6e2ad44" +SRC_URI[sha256sum] = "5eed1f650f042481daa3a2de5e7d43261fe343b2a1b1e240f3b7fc26572c9df3" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG[x11] = "--with-x11, --without-x11, libxi" + +PACKAGE_BEFORE_PN += "${PN}-test" +FILES_${PN}-test = "${bindir}/grail-test*" +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" diff --git a/meta-oe/recipes-support/ccid/ccid_1.4.24.bb b/meta-oe/recipes-support/ccid/ccid_1.4.24.bb new file mode 100644 index 00000000000..31145d0efd5 --- /dev/null +++ b/meta-oe/recipes-support/ccid/ccid_1.4.24.bb @@ -0,0 +1,19 @@ +SUMMARY = "Generic USB CCID smart card reader driver" +HOMEPAGE = "http://pcsclite.alioth.debian.org/ccid.html" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +DEPENDS = "virtual/libusb0 pcsc-lite" +RDEPENDS_${PN} = "pcsc-lite" + +SRC_URI = "https://alioth.debian.org/frs/download.php/file/4171/ccid-${PV}.tar.bz2 \ + file://no-dep-on-libfl.patch \ +" + +SRC_URI[md5sum] = "915a03cda85b60fefbe3654cbdc68ca9" +SRC_URI[sha256sum] = "62cb73c6c009c9799c526f05a05e25f00f0ad86d50f82a714dedcfbf4a7e4176" + +inherit autotools pkgconfig + +FILES_${PN} += "${libdir}/pcsc/" +FILES_${PN}-dbg += "${libdir}/pcsc/drivers/*/*/*/.debug" diff --git a/meta-oe/recipes-support/ccid/ccid_1.4.8.bb b/meta-oe/recipes-support/ccid/ccid_1.4.8.bb deleted file mode 100644 index 078f785abaf..00000000000 --- a/meta-oe/recipes-support/ccid/ccid_1.4.8.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Generic USB CCID smart card reader driver" -HOMEPAGE = "http://pcsclite.alioth.debian.org/ccid.html" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" - -DEPENDS = "virtual/libusb0 pcsc-lite" -RDEPENDS_${PN} = "pcsc-lite" - -SRC_URI = "https://alioth.debian.org/frs/download.php/file/3768/ccid-${PV}.tar.bz2 \ - file://no-dep-on-libfl.patch" - -SRC_URI[md5sum] = "b6c37110f50b059a8ba94f118cfd679a" -SRC_URI[sha256sum] = "7aca09fa4b9099e423402fd5df424adbafa502888710d1fda6015b6c1ff637ef" - -inherit autotools pkgconfig - -FILES_${PN} += "${libdir}/pcsc/" -FILES_${PN}-dbg += "${libdir}/pcsc/drivers/*/*/*/.debug" diff --git a/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb b/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb new file mode 100644 index 00000000000..e883c70d1dc --- /dev/null +++ b/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems." +AUTHOR = "Sameer Agarwal and Keir Mierle and Others" +HOMEPAGE = "http://ceres-solver.org/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=35e00f0c4c96a0820a03e0b31e6416be" + +SRC_URI = "git://github.com/ceres-solver/ceres-solver.git" +SRCREV = "19333b0f55c8462381038e70d42af43b52941128" + +S = "${WORKDIR}/git" + +DEPENDS = "libeigen glog" + +inherit cmake + +# Only a static library and headers are created +ALLOW_EMPTY_${PN} = "1" + +FILES_${PN}-dev += "${libdir}/cmake/*" diff --git a/meta-oe/recipes-support/ckermit/ckermit_302.bb b/meta-oe/recipes-support/ckermit/ckermit_302.bb index 32a6c03a97e..61c08ee2768 100644 --- a/meta-oe/recipes-support/ckermit/ckermit_302.bb +++ b/meta-oe/recipes-support/ckermit/ckermit_302.bb @@ -3,12 +3,12 @@ software package offering a consistent, medium-independent, \ cross-platform approach to connection establishment, terminal \ sessions, file transfer, character-set translation, and automation \ of communication tasks." -HOMEPAGE = "http://www.columbia.edu/kermit/" +HOMEPAGE = "www.kermitproject.org/ck90.html" SECTION = "console/network" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING.TXT;md5=932ca542d6c6cb8a59a0bcd76ab67cc3" -SRC_URI = "ftp://ftp.kermitproject.org/kermit/archives/cku${PV}.tar.gz;subdir=${BPN}-${PV}" +SRC_URI = "http://www.kermitproject.org/ftp/kermit/archives/cku${PV}.tar.gz;subdir=${BPN}-${PV}" SRC_URI[md5sum] = "eac4dbf18b45775e4cdee5a7c74762b0" SRC_URI[sha256sum] = "0d5f2cd12bdab9401b4c836854ebbf241675051875557783c332a6a40dac0711" @@ -18,10 +18,13 @@ export BINDIR = "${bindir}" export MANDIR = "${mandir}/man1" export INFODIR = "${infodir}" +EXTRA_OEMAKE = "-e MAKEFLAGS=" + # Additional flags. For uclibc we add -DNOARROWKEYS which stops ckermit # trying to look inside the stdio headers. CKERMIT_ADDITIONAL = "" CKERMIT_ADDITIONAL_libc-uclibc = "-DNOARROWKEYS" +CKERMIT_ADDITIONAL_libc-musl = "-DNOARROWKEYS" TARGET_CC_ARCH += "${LDFLAGS}" diff --git a/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb b/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb index e3b4de1020a..88fcc0200f9 100644 --- a/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb +++ b/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb @@ -14,7 +14,7 @@ SRC_URI = "git://github.com/emagii/cpufrequtils.git \ file://0001-dont-unset-cflags.patch \ " -CFLAGS_append_libc-uclibc = " ${@['-DNLS', '-UNLS']['${USE_NLS}' == 'no']} " +EXTRA_OEMAKE_append = " ${@['', 'NLS=false']['${USE_NLS}' == 'no']} " PR = "r5" @@ -30,5 +30,8 @@ do_compile() { do_install() { oe_runmake -e install DESTDIR=${D} + rm -f ${D}${libdir}/libcpufreq.so.0 ${D}${libdir}/libcpufreq.so + ln -s libcpufreq.so.0.0.0 ${D}${libdir}/libcpufreq.so.0 + ln -s libcpufreq.so.0.0.0 ${D}${libdir}/libcpufreq.so } diff --git a/meta-oe/recipes-support/cryptsetup/cryptsetup_1.6.6.bb b/meta-oe/recipes-support/cryptsetup/cryptsetup_1.6.6.bb deleted file mode 100644 index d84ad2f074c..00000000000 --- a/meta-oe/recipes-support/cryptsetup/cryptsetup_1.6.6.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes" -DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \ -device-mapper mappings. These include plain dm-crypt volumes and \ -LUKS volumes. The difference is that LUKS uses a metadata header \ -and can hence offer more features than plain dm-crypt. On the other \ -hand, the header is visible and vulnerable to damage." -HOMEPAGE = "http://code.google.com/p/cryptsetup/" -SECTION = "console" -LICENSE = "GPL-2.0-with-OpenSSL-exception" -LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326" - -DEPENDS = "util-linux lvm2 popt libgcrypt" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v1.6/${BP}.tar.xz" -SRC_URI[md5sum] = "179c0781de59838a4e39f61b2df5ea48" -SRC_URI[sha256sum] = "2d2ce28e4e1137dd599d87884b62ef6dbf14fd7848b2a2bf7d61cf125fbd8e6f" - -inherit autotools gettext pkgconfig - -# Use openssl because libgcrypt drops root privileges -# if libgcrypt is linked with libcap support -PACKAGECONFIG ??= "openssl" -PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl" -PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt" - -RRECOMMENDS_${PN} = "kernel-module-aes-generic \ - kernel-module-dm-crypt \ - kernel-module-md5 \ - kernel-module-cbc \ - kernel-module-sha256-generic \ -" - -EXTRA_OECONF = "--enable-static" diff --git a/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.4.bb b/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.4.bb new file mode 100644 index 00000000000..c13b764f79e --- /dev/null +++ b/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.4.bb @@ -0,0 +1,36 @@ +SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes" +DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \ +device-mapper mappings. These include plain dm-crypt volumes and \ +LUKS volumes. The difference is that LUKS uses a metadata header \ +and can hence offer more features than plain dm-crypt. On the other \ +hand, the header is visible and vulnerable to damage." +HOMEPAGE = "http://code.google.com/p/cryptsetup/" +SECTION = "console" +LICENSE = "GPL-2.0-with-OpenSSL-exception" +LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326" + +DEPENDS = "util-linux libdevmapper popt libgcrypt" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v1.7/${BP}.tar.xz" +SRC_URI[md5sum] = "058ed35c5b776032c2a036838f9e22a7" +SRC_URI[sha256sum] = "7ccf893ef79a38fb92d61f03c17b964982119f5319cdaa85a1335b8558cca016" + +inherit autotools gettext pkgconfig + +# Use openssl because libgcrypt drops root privileges +# if libgcrypt is linked with libcap support +PACKAGECONFIG ??= "openssl" +PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl" +PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt" + +RRECOMMENDS_${PN} = "kernel-module-aes-generic \ + kernel-module-dm-crypt \ + kernel-module-md5 \ + kernel-module-cbc \ + kernel-module-sha256-generic \ + kernel-module-xts \ +" + +EXTRA_OECONF = "--enable-static" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-11.bb b/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-11.bb deleted file mode 100644 index a3b67f7e8c2..00000000000 --- a/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-11.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Common files and packaging infrastructure for CT-API modules" -HOMEPAGE = "http://fedoraproject.org/" -SECTION = "System Environment/Libraries" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://../ctapi-common.LICENSE;md5=8744cd52545ecb45befebd0da6f70f0a" - -SRC_URI = "http://ftp.riken.jp/Linux/fedora/releases/20/Fedora/source/SRPMS/c/${BPN}-${PV}.fc20.src.rpm;extract=ctapi-common.LICENSE \ - http://ftp.riken.jp/Linux/fedora/releases/20/Fedora/source/SRPMS/c/${BPN}-${PV}.fc20.src.rpm;extract=ctapi-common.README" -SRC_URI[md5sum] = "f02e67487c48319376800563a2659502" -SRC_URI[sha256sum] = "32399819b0a1cac1abb2b8f0f180c572c93809faad36c46825dd536e4844c7cf" - -do_compile() { - install -pm 644 ${WORKDIR}/ctapi-common.LICENSE LICENSE - install -pm 644 ${WORKDIR}/ctapi-common.README README - echo ${libdir}/ctapi > ctapi.conf -} - -do_install() { - install -Dpm 644 ctapi.conf ${D}${sysconfdir}/ld.so.conf.d/ctapi-${TARGET_ARCH}.conf - install -dm 755 ${D}${libdir}/ctapi -} - -FILES_${PN} += "${libdir}/ctapi" diff --git a/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb b/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb new file mode 100644 index 00000000000..3a049e76da5 --- /dev/null +++ b/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb @@ -0,0 +1,23 @@ +SUMMARY = "Common files and packaging infrastructure for CT-API modules" +HOMEPAGE = "http://fedoraproject.org/" +SECTION = "System Environment/Libraries" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://../ctapi-common.LICENSE;md5=8744cd52545ecb45befebd0da6f70f0a" + +SRC_URI = "http://ftp.riken.jp/Linux/fedora/releases/23/Everything/source/SRPMS/c/${BPN}-${PV}.fc23.src.rpm;extract=ctapi-common.LICENSE \ + http://ftp.riken.jp/Linux/fedora/releases/23/Everything/source/SRPMS/c/${BPN}-${PV}.fc23.src.rpm;extract=ctapi-common.README" +SRC_URI[md5sum] = "5b7259ef1c8cd9ae801fca7a5cb548c1" +SRC_URI[sha256sum] = "87a74eb0a66055c34ba2c5c919e74f3211c5950ae1c2cbab967fdf4137f5de91" + +do_compile() { + install -pm 644 ${WORKDIR}/ctapi-common.LICENSE LICENSE + install -pm 644 ${WORKDIR}/ctapi-common.README README + echo ${libdir}/ctapi > ctapi.conf +} + +do_install() { + install -Dpm 644 ctapi.conf ${D}${sysconfdir}/ld.so.conf.d/ctapi-${TARGET_ARCH}.conf + install -dm 755 ${D}${libdir}/ctapi +} + +FILES_${PN} += "${libdir}/ctapi" diff --git a/meta-oe/recipes-support/daemonize/daemonize_git.bb b/meta-oe/recipes-support/daemonize/daemonize_git.bb index 8b1591ceff7..4790883a7dc 100644 --- a/meta-oe/recipes-support/daemonize/daemonize_git.bb +++ b/meta-oe/recipes-support/daemonize/daemonize_git.bb @@ -2,12 +2,13 @@ SUMMARY = "A tool to run a command as a daemon" HOMEPAGE = "http://software.clapper.org/daemonize/" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3cf9084faa88bc8554a9139d8d7dd35f" -PV = "1.7.3+git${SRCPV}" +PV = "1.7.7+git${SRCPV}" inherit autotools -SRCREV = "a4ac64a243af91dc434b7a3915f43482d528a2b1" -SRC_URI = "git://github.com/bmc/daemonize.git" +SRCREV = "6b10308b13c13e7b911e75e27bf7e65c30d58799" +SRC_URI = "git://github.com/bmc/daemonize.git \ + file://fix-ldflags-for-gnuhash.patch" S = "${WORKDIR}/git" diff --git a/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch b/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch new file mode 100644 index 00000000000..4fa2ee1b3b6 --- /dev/null +++ b/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch @@ -0,0 +1,23 @@ +Add the LDFLAGS to the final link to avoid errors with missing GNU_HASH + +Upstream-Status: Submitted [https://github.com/bmc/daemonize/pull/22] + +Signed-off-by: Derek Straka + +diff --git a/Makefile.in b/Makefile.in +index 8a4d078..40d3dee 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -24,10 +24,10 @@ LDFLAGS = @LDFLAGS@ + all: daemonize + + daemonize: daemonize.o getopt.o $(MISSING_OBJECTS) +- $(CC) $(CFLAGS) -o $@ $^ ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + + testdaemon: testdaemon.o +- $(CC) $(CFLAGS) -o $@ $^ ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ + + psman: daemonize.ps + diff --git a/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch b/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch new file mode 100644 index 00000000000..30e37cb1d3b --- /dev/null +++ b/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch @@ -0,0 +1,26 @@ +From a86c4209da695909424db0c9108592194a3094b7 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Sat, 6 Aug 2016 00:47:37 +0900 +Subject: [PATCH] daemontools: Fix QA Issue + +To fix the QA Issues as following: + +ERROR: daemontools-0.76-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binary: '/build-poky/tmp/work/i586-poky-linux/daemontools/0.76-r0/packages-split/daemontools/usr/bin/tai64nlocal' + +Signed-off-by: Lei Maohui +--- + src/conf-ld | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/conf-ld b/src/conf-ld +index 2a44210..c7e7755 100644 +--- a/src/conf-ld ++++ b/src/conf-ld +@@ -1,3 +1,3 @@ +-${CC} ++${CC} ${LDFLAGS} + + This will be used to link .o files into an executable. +-- +2.7.4 + diff --git a/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch b/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch new file mode 100644 index 00000000000..8d9577d5ff3 --- /dev/null +++ b/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch @@ -0,0 +1,26 @@ +From a43a3327ccd4b06a3bcf0c87d518a97c6b39ac02 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Sat, 6 Aug 2016 02:09:53 +0900 +Subject: [PATCH] daemontools: Fix a warning + +To fix the warning as following: + +WARNING: daemontools-native-0.76-r0 do_populate_sysroot: File '/build-poky/tmp/sysroots/x86_64-linux/usr/bin/chkshsgr' from daemontools-native was already stripped, this will prevent future debugging! + +Signed-off-by: Lei Maohui +--- + src/conf-ld | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/conf-ld b/src/conf-ld +index 59a0de7..1d0518a 100644 +--- a/src/conf-ld ++++ b/src/conf-ld +@@ -1,3 +1,3 @@ +-gcc -s ++gcc + + This will be used to link .o files into an executable. +-- +2.7.4 + diff --git a/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/meta-oe/recipes-support/daemontools/daemontools_0.76.bb index fb87ea8ad26..84e9bca0ee0 100644 --- a/meta-oe/recipes-support/daemontools/daemontools_0.76.bb +++ b/meta-oe/recipes-support/daemontools/daemontools_0.76.bb @@ -1,4 +1,5 @@ SUMMARY = "DJB daemontools" +HOMEPAGE = "http://cr.yp.to/daemontools.html" DESCRIPTION = "supervise monitors a service. It starts the service and restarts the \ service if it dies. The companion svc program stops, pauses, or restarts \ the service on sysadmin request. The svstat program prints a one-line \ @@ -18,7 +19,10 @@ SRC_URI = "http://cr.yp.to/daemontools/${BPN}-${PV}.tar.gz \ file://0001-error.h-include-errno.h-instead-of-extern-int.diff \ file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff " -SRC_URI_append_class-target = "file://cross-compile.patch" +SRC_URI_append_class-target = "file://cross-compile.patch \ + file://0001-daemontools-Fix-QA-Issue.patch " + +SRC_URI_append_class-native = "file://0001-daemontools-native-Fix-a-warning.patch " SRC_URI[md5sum] = "1871af2453d6e464034968a0fbcb2bfc" SRC_URI[sha256sum] = "a55535012b2be7a52dcd9eccabb9a198b13be50d0384143bd3b32b8710df4c1f" @@ -26,7 +30,7 @@ SRC_URI[sha256sum] = "a55535012b2be7a52dcd9eccabb9a198b13be50d0384143bd3b32b8710 S = "${WORKDIR}/admin/${BPN}-${PV}" DEPENDS += "daemontools-native" -DEPENDS_virtclass-native = "" +DEPENDS_class-native = "" do_compile() { ./package/compile diff --git a/meta-oe/recipes-support/debsums/debsums_2.2.2.bb b/meta-oe/recipes-support/debsums/debsums_2.2.2.bb new file mode 100644 index 00000000000..13f20eb9446 --- /dev/null +++ b/meta-oe/recipes-support/debsums/debsums_2.2.2.bb @@ -0,0 +1,54 @@ +SUMMARY = "Miscellaneous utilities specific to Debian" +SUMMARY_${PN}-cron = "Cron scripts to control automatic debsum checking" +DESCRIPTION = "A tool for verification of installed package files against \ +MD5 checksums debsums can verify the integrity of installed package files \ +against MD5 checksums installed by the package, or generated from a .deb \ +archive." +DESCRIPTION_${PN}-cron = "Cron scripts to control automatic system integrity \ +checking via debsums." +SECTION = "base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=770d751553e6559e9eaefd2e11ccf7e9" + +SRC_URI = "http://snapshot.debian.org/archive/debian/20170530T212108Z/pool/main/d/debsums/debsums_2.2.2.tar.xz" +SRC_URI[md5sum] = "82b0710855a7e5212d4358163a269e79" +SRC_URI[sha256sum] = "aa61896f93a6bbfe0161c21dcd67529ae8e1ec8c3ccf244523c52c4ad8253d97" + +# the package is taken from snapshots.debian.org; that source is static and goes stale +# so we check the latest upstream from a directory that does get updated +UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/" + +inherit perlnative gettext + +do_install() { + install -d ${D}/${sysconfdir}/cron.daily ${D}/${sysconfdir}/cron.weekly + install -d ${D}/${sysconfdir}/cron.monthly ${D}${sbindir} ${D}${bindir} + install -d ${D}${mandir}/man1 ${D}${mandir}/man8 + install -m 0755 debsums ${D}${bindir}/ + install -m 0755 rdebsums ${D}${bindir}/ + install -m 0755 debsums_init ${D}${sbindir} + install -m 0644 man/debsums.1 ${D}${mandir}/man1/ + install -m 0644 man/rdebsums.1 ${D}${mandir}/man1/ + install -m 0644 man/debsums_init.8 ${D}${mandir}/man8/ + install -m 0644 debian/cron.daily \ + ${D}/${sysconfdir}/cron.daily/debsums + install -m 0644 debian/cron.weekly \ + ${D}/${sysconfdir}/cron.weekly/debsums + install -m 0644 debian/cron.monthly \ + ${D}/${sysconfdir}/cron.monthly/debsums + # Must exist, defaults to empty. + touch ${D}/${sysconfdir}/debsums-ignore +} + +PACKAGES =+ "${PN}-cron" + +RDEPENDS_${PN} = "dpkg dpkg-perl libfile-fnmatch-perl perl \ + perl-module-constant perl-module-digest-md5 \ + perl-module-errno perl-module-fcntl \ + perl-module-file-basename perl-module-file-copy \ + perl-module-file-find perl-module-file-glob \ + perl-module-file-path perl-module-file-spec \ + perl-module-file-temp perl-module-getopt-long \ + perl-module-posix" + +FILES_${PN}-cron = "${sysconfdir}/cron.*" diff --git a/meta-oe/recipes-support/devicekit/devicekit-power_014.bb b/meta-oe/recipes-support/devicekit/devicekit-power_014.bb deleted file mode 100644 index 0c1245fbf37..00000000000 --- a/meta-oe/recipes-support/devicekit/devicekit-power_014.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Devicekit power" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=756cf97871f77233638937da21b025d3" - -DEPENDS = "libusb-compat libusb1 udev glib-2.0 dbus-glib polkit intltool-native" - -SRC_URI = "http://upower.freedesktop.org/releases/DeviceKit-power-${PV}.tar.gz;name=archive" -SRC_URI[archive.md5sum] = "935d37f1e14b3c8a1d6dabcd9a38d3ca" -SRC_URI[archive.sha256sum] = "ad3e9a8bd9525d66fadc7fa53ef99e0632aa8cca8fd5bc27483956261153b373" - -S = "${WORKDIR}/DeviceKit-power-${PV}" - -inherit autotools pkgconfig - -EXTRA_OECONF = " --with-backend=linux" - -do_configure_prepend() { - sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am - sed -i -e 's: doc : :g' ${S}/Makefile.am -} - -FILES_${PN} += "${datadir}/dbus-1/ \ - ${datadir}/polkit-1/ \ - ${base_libdir}/udev/* \ -" - -FILES_${PN}-dbg += "${base_libdir}/udev/.debug" - - - diff --git a/meta-oe/recipes-support/devmem2/devmem2.bb b/meta-oe/recipes-support/devmem2/devmem2.bb index e48cc9210bb..c86eb2e4bbc 100644 --- a/meta-oe/recipes-support/devmem2/devmem2.bb +++ b/meta-oe/recipes-support/devmem2/devmem2.bb @@ -1,14 +1,18 @@ SUMMARY = "Simple program to read/write from/to any location in memory" LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://devmem2.c;endline=28;md5=dd68f2b0a5184b3db3dc25c99e0bd0cd" +LIC_FILES_CHKSUM = "file://devmem2.c;endline=38;md5=a9eb9f3890384519f435aedf986297cf" PR = "r7" -SRC_URI = "http://www.lartmaker.nl/lartware/port/devmem2.c \ +SRC_URI = "http://www.free-electrons.com/pub/mirror/devmem2.c;downloadfilename=devmem2-new.c \ file://devmem2-fixups-2.patch;apply=yes;striplevel=0" S = "${WORKDIR}" CFLAGS += "-DFORCE_STRICT_ALIGNMENT" +python do_unpack_append() { + os.rename("devmem2-new.c", "devmem2.c") +} + do_compile() { ${CC} -o devmem2 devmem2.c ${CFLAGS} ${LDFLAGS} } @@ -18,5 +22,5 @@ do_install() { install devmem2 ${D}${bindir} } -SRC_URI[md5sum] = "be12c0132a1ae118cbf5e79d98427c1d" -SRC_URI[sha256sum] = "ec382c90af3ef2f49695ff14a4d6521e58ac482c4e29d6c9ebca8768f699c191" +SRC_URI[md5sum] = "e23f236e94be4c429aa1ceac0f01544b" +SRC_URI[sha256sum] = "3b15515693bae1ebd14d914e46d388edfec2175829ea1576a7a0c8606ebbe639" diff --git a/meta-oe/recipes-support/dfu-util/dfu-util-native_0.7.bb b/meta-oe/recipes-support/dfu-util/dfu-util-native_0.7.bb deleted file mode 100644 index 8be9d850e03..00000000000 --- a/meta-oe/recipes-support/dfu-util/dfu-util-native_0.7.bb +++ /dev/null @@ -1,19 +0,0 @@ -require dfu-util_${PV}.bb - -inherit native deploy -do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}" - -DEPENDS = "libusb1-native" - -FILESPATH =. "${FILE_DIRNAME}/${BPN}-${PV}:" -SRC_URI += "file://0002-Revert-Makefile.am-Drop-static-dfu-util.patch" - -do_deploy() { - install -d ${DEPLOY_DIR_TOOLS} - install -m 0755 src/dfu-util_static ${DEPLOY_DIR_TOOLS}/dfu-util-${PV} - rm -f ${DEPLOY_DIR_TOOLS}/dfu-util - ln -sf ./dfu-util-${PV} ${DEPLOY_DIR_TOOLS}/dfu-util - -} - -addtask deploy before do_package after do_install diff --git a/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb new file mode 100644 index 00000000000..7a7a662ab38 --- /dev/null +++ b/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb @@ -0,0 +1,16 @@ +require dfu-util_${PV}.bb + +inherit native deploy + +DEPENDS = "libusb1-native" + +SRC_URI += "file://0001-Revert-Makefile.am-Drop-static-dfu-util.patch" + +do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}" +do_deploy() { + install -d ${DEPLOY_DIR_TOOLS} + install -m 0755 src/dfu-util_static ${DEPLOY_DIR_TOOLS}/dfu-util-${PV} + rm -f ${DEPLOY_DIR_TOOLS}/dfu-util + ln -sf ./dfu-util-${PV} ${DEPLOY_DIR_TOOLS}/dfu-util +} +addtask deploy before do_package after do_install diff --git a/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch b/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch new file mode 100644 index 00000000000..1c6ad0807e7 --- /dev/null +++ b/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch @@ -0,0 +1,68 @@ +From c2aab3b9ae1febcb6b4c6561a59df1930a57b394 Mon Sep 17 00:00:00 2001 +From: Martin JaMa Jansa +Date: Thu, 11 Aug 2011 11:19:52 +0200 +Subject: [PATCH] Revert "Makefile.am: Drop static dfu-util" + +This reverts commit fe0426ddc04f503d148c5e5f931f16b8f674f071. + +Signed-off-by: Martin JaMa Jansa +--- + configure.ac | 2 +- + src/Makefile.am | 22 +++++++++++++++++++++- + 2 files changed, 22 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f5a43b8..6a3757e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -21,7 +21,7 @@ AS_IF([test x$native_libusb = xno], [ + AC_MSG_ERROR([*** Required libusb-1.0 >= 1.0.0 not installed ***])) + ]) + +-LIBS="$LIBS $USB_LIBS" ++LIBS="$LIBS $USB_LIBS -lpthread" + CFLAGS="$CFLAGS $USB_CFLAGS" + + # Checks for header files. +diff --git a/src/Makefile.am b/src/Makefile.am +index 70179c4..e8736ee 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -1,6 +1,6 @@ + AM_CFLAGS = -Wall -Wextra + +-bin_PROGRAMS = dfu-util dfu-suffix dfu-prefix ++bin_PROGRAMS = dfu-util dfu-util_static dfu-suffix dfu-prefix + dfu_util_SOURCES = main.c \ + portable.h \ + dfu_load.c \ +@@ -19,6 +19,26 @@ dfu_util_SOURCES = main.c \ + quirks.c \ + quirks.h + ++dfu_util_static_SOURCES = main.c \ ++ portable.h \ ++ dfu_load.c \ ++ dfu_load.h \ ++ dfu_util.c \ ++ dfu_util.h \ ++ dfuse.c \ ++ dfuse.h \ ++ dfuse_mem.c \ ++ dfuse_mem.h \ ++ dfu.c \ ++ dfu.h \ ++ usb_dfu.h \ ++ dfu_file.c \ ++ dfu_file.h \ ++ quirks.c \ ++ quirks.h ++ ++dfu_util_static_LDFLAGS = -static ++ + dfu_suffix_SOURCES = suffix.c \ + dfu_file.h \ + dfu_file.c +-- +2.7.2 + diff --git a/meta-oe/recipes-support/dfu-util/dfu-util/0001-configure.ac-Don-t-check-for-usbpath.patch b/meta-oe/recipes-support/dfu-util/dfu-util/0001-configure.ac-Don-t-check-for-usbpath.patch deleted file mode 100644 index a583c333d7a..00000000000 --- a/meta-oe/recipes-support/dfu-util/dfu-util/0001-configure.ac-Don-t-check-for-usbpath.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 63f6f6882f3813ab22c62806feeab942579a2acf Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 3 Aug 2014 17:50:06 +0200 -Subject: [PATCH 1/2] configure.ac: Don't check for usbpath - -* otherwise it fails to build with -lusb - | main.o: In function `resolve_device_path': - | dfu-util/0.7-r0/dfu-util-0.7/src/main.c:371: undefined reference to `usb_path2devnum' - | collect2: error: ld returned 1 exit status - -Signed-off-by: Martin Jansa ---- - configure.ac | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 700b556..fb58473 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -22,14 +22,13 @@ AS_IF([test x$native_libusb = xno], [ - PKG_CHECK_MODULES([USB], [libusb-1.0 >= 1.0.0],, - AC_MSG_ERROR([*** Required libusb-1.0 >= 1.0.0 not installed ***])) - ]) --AC_CHECK_LIB([usbpath],[usb_path2devnum],,,-lusb) - - LIBS="$LIBS $USB_LIBS" - CFLAGS="$CFLAGS $USB_CFLAGS" - - # Checks for header files. - AC_HEADER_STDC --AC_CHECK_HEADERS([usbpath.h windows.h]) -+AC_CHECK_HEADERS([windows.h]) - - # Checks for typedefs, structures, and compiler characteristics. - AC_C_CONST --- -2.0.2 - diff --git a/meta-oe/recipes-support/dfu-util/dfu-util/0002-Revert-Makefile.am-Drop-static-dfu-util.patch b/meta-oe/recipes-support/dfu-util/dfu-util/0002-Revert-Makefile.am-Drop-static-dfu-util.patch deleted file mode 100644 index de17808e125..00000000000 --- a/meta-oe/recipes-support/dfu-util/dfu-util/0002-Revert-Makefile.am-Drop-static-dfu-util.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 440a026379ff111aaa8314db1c29ffae8f482824 Mon Sep 17 00:00:00 2001 -From: Martin JaMa Jansa -Date: Thu, 11 Aug 2011 11:19:52 +0200 -Subject: [PATCH 2/2] Revert "Makefile.am: Drop static dfu-util" - -This reverts commit fe0426ddc04f503d148c5e5f931f16b8f674f071. - -Signed-off-by: Martin JaMa Jansa -Signed-off-by: Martin Jansa ---- - configure.ac | 2 +- - src/Makefile.am | 20 +++++++++++++++++++- - 2 files changed, 20 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index fb58473..09b9e5a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -23,7 +23,7 @@ AS_IF([test x$native_libusb = xno], [ - AC_MSG_ERROR([*** Required libusb-1.0 >= 1.0.0 not installed ***])) - ]) - --LIBS="$LIBS $USB_LIBS" -+LIBS="$LIBS $USB_LIBS -lpthread" - CFLAGS="$CFLAGS $USB_CFLAGS" - - # Checks for header files. -diff --git a/src/Makefile.am b/src/Makefile.am -index 99df307..28d53f7 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1,6 +1,6 @@ - AM_CFLAGS = -Wall - --bin_PROGRAMS = dfu-util dfu-suffix -+bin_PROGRAMS = dfu-util dfu-util_static dfu-suffix - dfu_util_SOURCES = main.c \ - portable.h \ - dfu_load.c \ -@@ -17,6 +17,24 @@ dfu_util_SOURCES = main.c \ - quirks.c \ - quirks.h - -+dfu_util_static_SOURCES = main.c \ -+ portable.h \ -+ dfu_load.c \ -+ dfu_load.h \ -+ dfuse.c \ -+ dfuse.h \ -+ dfuse_mem.c \ -+ dfuse_mem.h \ -+ dfu.c \ -+ dfu.h \ -+ usb_dfu.h \ -+ dfu_file.c \ -+ dfu_file.h \ -+ quirks.c \ -+ quirks.h -+ -+dfu_util_static_LDFLAGS = -static -+ - dfu_suffix_SOURCES = suffix.c \ - dfu_file.h \ - dfu_file.c \ --- -2.0.2 - diff --git a/meta-oe/recipes-support/dfu-util/dfu-util_0.7.bb b/meta-oe/recipes-support/dfu-util/dfu-util_0.7.bb deleted file mode 100644 index 7f06f8f6af1..00000000000 --- a/meta-oe/recipes-support/dfu-util/dfu-util_0.7.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "USB Device Firmware Upgrade utility" -SECTION = "devel" -AUTHOR = "Harald Welte " -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -S = "${WORKDIR}/git" - -SRC_URI = "git://gitorious.org/dfu-util/dfu-util.git \ - file://0001-configure.ac-Don-t-check-for-usbpath.patch \ -" -SRCREV="a0a3668e0571a9b007f7d62b01e7dcfd7754ce50" - -inherit autotools pkgconfig - -DEPENDS = "libusb1" - -SRC_URI[md5sum] = "1de724551604bce1962960b7a301cc08" -SRC_URI[sha256sum] = "5d253f924fd29bc13054b664bba9aa86b865299971195969478253c1775b7e56" diff --git a/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb b/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb new file mode 100644 index 00000000000..76e1552c0c0 --- /dev/null +++ b/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "USB Device Firmware Upgrade utility" +HOMEPAGE = "http://dfu-util.sourceforge.net" +SECTION = "devel" +AUTHOR = "Harald Welte " +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = "http://dfu-util.gnumonks.org/releases/${BP}.tar.gz" + +inherit autotools pkgconfig + +DEPENDS = "libusb1" + +SRC_URI[md5sum] = "233bb1e08ef4b405062445d84e28fde6" +SRC_URI[sha256sum] = "36428c6a6cb3088cad5a3592933385253da5f29f2effa61518ee5991ea38f833" diff --git a/meta-oe/recipes-support/digitemp/digitemp/makefile-fix.patch b/meta-oe/recipes-support/digitemp/digitemp/makefile-fix.patch deleted file mode 100644 index c0d552d541a..00000000000 --- a/meta-oe/recipes-support/digitemp/digitemp/makefile-fix.patch +++ /dev/null @@ -1,20 +0,0 @@ -digitemp: allow override of CC and CFLAGS vars - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Otavio Salvador - ---- a/Makefile 2008-08-28 21:37:00.000000000 +0000 -+++ b/Makefile 2011-11-24 22:22:39.882511272 +0000 -@@ -11,8 +11,9 @@ - - VERSION = 3.6.0 - --CC = gcc --CFLAGS = -I./src -I./userial -O2 -Wall # -g -+CC ?= gcc -+CFLAGS ?= -O2 -Wall # -g -+CFLAGS += -I./src -I./userial - - OBJS = src/digitemp.o src/device_name.o src/ds2438.o - HDRS = src/digitemp.h src/device_name.h diff --git a/meta-oe/recipes-support/digitemp/digitemp_3.6.0.bb b/meta-oe/recipes-support/digitemp/digitemp_3.6.0.bb deleted file mode 100644 index 2582820e681..00000000000 --- a/meta-oe/recipes-support/digitemp/digitemp_3.6.0.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "read temperature sensors in a 1-Wire net" -SECTION = "util" -DEPENDS = "libusb1" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0" - -PR = "r2" - -SRC_URI = "http://www.digitemp.com/software/linux/digitemp-${PV}.tar.gz \ - file://makefile-fix.patch" -SRC_URI[md5sum] = "9be2e48db37920f21925ae6e88f83b84" -SRC_URI[sha256sum] = "14cfc584cd3714fe8c9a2cdc8388be49e08b5e395d95e6bcd11d4410e2505ca2" - -EXTRA_OEMAKE = "ds9097 ds9097u \ - SYSTYPE='Linux' \ -" -# Fix GNU_HASH QA errors -TARGET_CC_ARCH += "${CFLAGS} ${LDFLAGS}" - -do_configure() { - rm -f digitemp_* -} - -do_install() { - install -d ${D}${sbindir} - install digitemp_* ${D}${sbindir} -} diff --git a/meta-oe/recipes-support/digitemp/digitemp_git.bb b/meta-oe/recipes-support/digitemp/digitemp_git.bb new file mode 100644 index 00000000000..460aa143846 --- /dev/null +++ b/meta-oe/recipes-support/digitemp/digitemp_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "read temperature sensors in a 1-Wire net" +SECTION = "util" +DEPENDS = "libusb1" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0" + +PV = "3.7.1+git${SRCPV}" + +SRC_URI = "git://github.com/bcl/digitemp" + +SRCREV = "389f67655efa1674f595106c3a47b5ad082609a7" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "ds9097 ds9097u \ + SYSTYPE='Linux' \ +" +do_configure() { + rm -f digitemp_* +} + +do_install() { + install -d ${D}${sbindir} + install -m 0755 digitemp_* ${D}${sbindir} +} diff --git a/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb b/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb new file mode 100644 index 00000000000..abf7d1c0ccc --- /dev/null +++ b/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb @@ -0,0 +1,34 @@ +SUMMARY = "Convert text file line endings between CRLF and LF" +DESCRIPTION = "The Dos2unix package includes utilities dos2unix and \ +unix2dos to convert plain text files in DOS or Mac format to Unix \ +format and vice versa." +HOMEPAGE = "http://waterlan.home.xs4all.nl/dos2unix.html" +SECTION = "support" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=1b78fca784db24f4a40e30b300787f3f" + +SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix" + +# Release 7.3.4 +SRCREV = "8381ba4e1c4cd5ce98ebd9c24726d51cb203cde0" + +S = "${WORKDIR}/git/dos2unix" + +inherit gettext perlnative + +# The dos2unix NLS relies on po4a-native, while po4a recipe is +# provided by meta-perl layer, so make it optional here, you +# need have meta-perl in bblayers.conf before enabling nls in +# PACKAGECONFIG. +PACKAGECONFIG ??= "" +PACKAGECONFIG[nls] = "ENABLE_NLS=1,ENABLE_NLS=,po4a-native" + +EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} LDFLAGS_USER='${LDFLAGS}'" +EXTRA_OEMAKE_class-native = "ENABLE_NLS=" + +do_install () { + oe_runmake DESTDIR="${D}${base_prefix}" install +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-support/dstat/dstat_0.7.2.bb b/meta-oe/recipes-support/dstat/dstat_0.7.2.bb deleted file mode 100644 index 63f1812b99d..00000000000 --- a/meta-oe/recipes-support/dstat/dstat_0.7.2.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "versatile resource statics tool" -DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \ -Dstat overcomes some of their limitations and adds some extra features, more counters \ -and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \ -benchmarks or troubleshooting." -HOMEPAGE = "http://dag.wiee.rs/home-made/dstat" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -SRC_URI = "git://github.com/dagwieers/dstat.git" -SRC_URI[md5sum] = "798e050e2e024f08a272dd4b0e1eba41" -SRC_URI[sha256sum] = "96d1e6ea2434e477fa97322d92778f68458d7e57bc55bc4f72e29467a52cffd1" - -SRCREV = "5251397eb8d3b284a90bfdfaec0c8e1210146e3f" - -S = "${WORKDIR}/git" - -do_compile_prepend() { - #undo the step "make docs" - sed -i -e 's/$(MAKE) -C docs docs/# $(MAKE) -C docs docs/;' ${S}/Makefile -} -do_install() { - oe_runmake 'DESTDIR=${D}' install -} diff --git a/meta-oe/recipes-support/dstat/dstat_0.7.3.bb b/meta-oe/recipes-support/dstat/dstat_0.7.3.bb new file mode 100644 index 00000000000..18af738fa84 --- /dev/null +++ b/meta-oe/recipes-support/dstat/dstat_0.7.3.bb @@ -0,0 +1,22 @@ +SUMMARY = "versatile resource statics tool" +DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \ +Dstat overcomes some of their limitations and adds some extra features, more counters \ +and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \ +benchmarks or troubleshooting." +HOMEPAGE = "http://dag.wiee.rs/home-made/dstat" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS += "asciidoc-native xmlto-native" + +SRC_URI = "git://github.com/dagwieers/dstat.git" + +SRCREV = "ebace6d4177f8748f35cec87f7a49946046b0a20" + +S = "${WORKDIR}/git" + +do_install() { + oe_runmake 'DESTDIR=${D}' install +} + +RDEPENDS_${PN} += "python-core python-misc python-resource python-shell python-unixadmin" diff --git a/meta-oe/recipes-support/edac-utils/edac-utils_git.bb b/meta-oe/recipes-support/edac-utils/edac-utils_git.bb index e5621ade6a8..2c0914d30ab 100644 --- a/meta-oe/recipes-support/edac-utils/edac-utils_git.bb +++ b/meta-oe/recipes-support/edac-utils/edac-utils_git.bb @@ -2,24 +2,46 @@ SUMMARY = "Userspace helper for Linux kernel EDAC drivers" HOMEPAGE = "https://github.com/grondo/edac-utils" SECTION = "Applications/System" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;beginline=1;endline=2;md5=1fbd81241fe252ec0f5658a521ab7dd8" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = " sysfsutils" SRCREV = "f9aa96205f610de39a79ff43c7478b7ef02e3138" -PV = "0.16+git${SRCPV}" +PV = "0.18+git${SRCPV}" S = "${WORKDIR}/git" -SRC_URI = "git://github.com/grondo/edac-utils;protocol=http" +SRC_URI = "git://github.com/grondo/edac-utils \ + file://make-init-script-be-able-to-automatically-load-EDAC-.patch \ + file://add-restart-to-initscript.patch \ + file://edac.service \ +" -inherit autotools-brokensep +inherit autotools-brokensep systemd do_configure_prepend () { touch ${S}/ChangeLog ${S}/bootstrap } -COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' +RDEPENDS_${PN}_x86 = "dmidecode" +RDEPENDS_${PN}_x86-64 = "dmidecode" +RDEPENDS_${PN}_arm = "dmidecode" +RDEPENDS_${PN}_aarch64 = "dmidecode" +RDEPENDS_${PN}_powerpc = "dmidecode" +RDEPENDS_${PN}_powerpc64 = "dmidecode" +RDEPENDS_${PN}_append = " \ + perl-module-file-basename perl-module-file-find perl-module-getopt-long perl-module-posix \ + perl-module-overload \ + perl-module-overloading \ + perl-module-file-glob \ +" + +do_install_append() { + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/edac.service ${D}/${systemd_unitdir}/system + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}/${systemd_unitdir}/system/edac.service +} -RDEPENDS_${PN} = " perl" +SYSTEMD_SERVICE_${PN} = "edac.service" +SYSTEMD_AUTO_ENABLE_${PN} = "disable" diff --git a/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch b/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch new file mode 100644 index 00000000000..87051da9069 --- /dev/null +++ b/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch @@ -0,0 +1,33 @@ +From 3ade837f64de0cfe2aed5bc52f7919760f350531 Mon Sep 17 00:00:00 2001 +From: Wenzong Fan +Date: Fri, 7 Mar 2014 00:57:12 -0500 +Subject: [PATCH] edac: add restart to initscript + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan +--- + src/etc/edac.init.in | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/etc/edac.init.in b/src/etc/edac.init.in +index adf76ee..007a519 100644 +--- a/src/etc/edac.init.in ++++ b/src/etc/edac.init.in +@@ -155,8 +155,12 @@ case "$1" in + status) + service_status + ;; ++ restart) ++ service_stop ++ service_start ++ ;; + *) +- COMMANDS="start|stop|status" ++ COMMANDS="start|stop|status|restart" + echo "Usage: $0 {${COMMANDS}}" + exit 2 + ;; +-- +1.7.9.5 + diff --git a/meta-oe/recipes-support/edac-utils/files/edac.service b/meta-oe/recipes-support/edac-utils/files/edac.service new file mode 100644 index 00000000000..f6b211e91b3 --- /dev/null +++ b/meta-oe/recipes-support/edac-utils/files/edac.service @@ -0,0 +1,10 @@ +[Unit] +Description=Initialize EDAC Drivers For Machine Hardware + +[Service] +Type=oneshot +ExecStart=@SBINDIR@/edac-ctl --register-labels +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch b/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch new file mode 100644 index 00000000000..fddc25f601f --- /dev/null +++ b/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch @@ -0,0 +1,98 @@ +make init script be able to automatically load EDAC module. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Roy.Li +--- + src/etc/edac.init.in | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 47 insertions(+), 2 deletions(-) + +diff --git a/src/etc/edac.init.in b/src/etc/edac.init.in +index 7a51da9..5b568c4 100644 +--- a/src/etc/edac.init.in ++++ b/src/etc/edac.init.in +@@ -42,7 +42,6 @@ for dir in "$sysconfdir/default" "$sysconfdir/sysconfig"; do + [ -f "$dir/$SERVICE" ] && . "$dir/$SERVICE" + done + +- + ############################################################################### + + service_start () +@@ -52,6 +51,46 @@ service_start () + # Assume that if EDAC_DRIVER is not set, then EDAC is configured + # automatically, thus return successfully, but don't do anything. + # ++ if [ ! -f /etc/edac/edac-driver ]; then ++ [ -d /sys/bus/edac/devices/mc/mc0 ] && \ ++ echo `lsmod | grep _edac | cut -d" " -f1` > /etc/edac/edac-driver ++ fi ++ ++ [ -f /etc/edac/edac-driver ] && EDAC_DRIVER=`cat /etc/edac/edac-driver` ++ ++ if [ -z "$EDAC_DRIVER" ]; then ++ ++ DRIVER_PATH=/lib/modules/`uname -r`/kernel/drivers/edac ++ oldpath=`pwd` ++ if [ -d $DRIVER_PATH ]; then ++ ++ cd $DRIVER_PATH ++ ++ for i in $(/bin/ls | /usr/bin/cut -d. -f1) ; do ++ /sbin/modprobe $i 2>/dev/null ++ if [ -d /sys/bus/edac/devices/mc/mc0 ]; then ++ echo $i> /etc/edac/edac-driver ++ EDAC_DRIVER=$i ++ break ++ fi ++ /sbin/modprobe -r $i 2>/dev/null ++ done ++ ++ cd "$oldpath" ++ ++ ++ if [ -z "$EDAC_DRIVER" ]; then ++ echo "This board may not support EDAC, or EDAC module may not be compiled in" ++ exit ++ fi ++ ++ else ++ echo "This board may not support EDAC, or EDAC module may not be compiled in" ++ exit ++ fi ++ ++ fi ++ + if [ -n "$EDAC_DRIVER" ]; then + echo -n "Starting ${SERVICE}: " + modprobe $EDAC_DRIVER +@@ -76,12 +115,15 @@ service_start () + service_stop () + { + echo -n "Disabling ${SERVICE}: " ++ ++ [ -f /etc/edac/edac-driver ] && EDAC_DRIVER=`cat /etc/edac/edac-driver` ++ + if [ -n "$EDAC_DRIVER" ]; then + modprobe -r $EDAC_DRIVER + STATUS=$? + [ $STATUS -eq 0 ] && echo success || echo failure + else +- echo "Not supported for this configuration." ++ echo "Not supported for this configuration, or EDAC Module is not loaded." + STATUS=6 + fi + } +@@ -92,6 +134,9 @@ service_status () + { + # Print the current status of the service. Required by LSB. + # ++ [ -f /etc/edac/edac-driver ] && EDAC_DRIVER=`cat /etc/edac/edac-driver` ++ [ -z "$EDAC_DRIVER" ] && STATUS=1 && exit ++ + edac-ctl --status + STATUS=0 + } +-- +1.7.10.4 + diff --git a/meta-oe/recipes-support/eject/eject_2.1.5.bb b/meta-oe/recipes-support/eject/eject_2.1.5.bb index 0440f0c3707..49a3d74f6fc 100644 --- a/meta-oe/recipes-support/eject/eject_2.1.5.bb +++ b/meta-oe/recipes-support/eject/eject_2.1.5.bb @@ -33,3 +33,5 @@ ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject" ALTERNATIVE_PRIORITY[volname] = "100" ALTERNATIVE_PRIORITY[eject] = "100" +ALTERNATIVE_${PN}-doc = "eject.1" +ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1" diff --git a/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch b/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch deleted file mode 100644 index 4200301a3f3..00000000000 --- a/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch +++ /dev/null @@ -1,16 +0,0 @@ -Fix linking problem: -undefined reference to `__aeabi_unwind_cpp_pr0' -undefined reference to `__aeabi_unwind_cpp_pr1' -Index: emacs/src/Makefile.in -=================================================================== ---- emacs.orig/src/Makefile.in 2008-08-16 14:20:18.000000000 +0000 -+++ emacs/src/Makefile.in 2008-08-16 14:51:25.000000000 +0000 -@@ -443,7 +443,7 @@ - ask GCC explicitly where to find libgcc.a. */ - - #ifndef LINKER --#define LINKER $(CC) -nostdlib -+#define LINKER $(CC) -nostdlib -lgcc_s - #endif - - #ifndef LIB_GCC diff --git a/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch b/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch deleted file mode 100644 index c15207a4371..00000000000 --- a/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch +++ /dev/null @@ -1,104 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -diff -uNr emacs-23.4/Makefile.in emacs-23.4.new/Makefile.in ---- emacs-23.4/Makefile.in 2012-01-11 13:35:01.000000000 +0100 -+++ emacs-23.4.new/Makefile.in 2012-07-31 00:54:07.223590866 +0200 -@@ -336,7 +336,7 @@ - # all preloaded elisp files, and only then dump the actual src/emacs, which - # is not wrong, but is overkill in 99.99% of the cases. - src: Makefile FRC -- boot=bootstrap-emacs$(EXEEXT); \ -+ boot=${QEMU} bootstrap-emacs$(EXEEXT); \ - if [ ! -x "src/$$boot" ]; then \ - cd $@; $(MAKE) all $(MFLAGS) \ - CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ -diff -uNr emacs-23.4/leim/Makefile.in emacs-23.4.new/leim/Makefile.in ---- emacs-23.4/leim/Makefile.in 2012-01-11 13:35:01.000000000 +0100 -+++ emacs-23.4.new/leim/Makefile.in 2012-07-31 00:54:07.179590866 +0200 -@@ -51,7 +51,7 @@ - - # How to run Emacs. - RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \ -- ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte -+ ${QEMU} ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte - - # Subdirectories to be made if ${srcdir} is different from the current - # directory. -diff -uNr emacs-23.4/lib-src/Makefile.in emacs-23.4.new/lib-src/Makefile.in ---- emacs-23.4/lib-src/Makefile.in 2012-01-11 13:35:01.000000000 +0100 -+++ emacs-23.4.new/lib-src/Makefile.in 2012-07-31 00:54:07.180590866 +0200 -@@ -23,7 +23,7 @@ - SHELL = /bin/sh - - # Following ../lisp/Makefile.in. --EMACS = ../src/emacs -+EMACS = ${QEMU} ../src/emacs - EMACSOPT = -batch --no-site-file --multibyte - - # ==================== Things `configure' will edit ==================== -@@ -372,7 +372,7 @@ - clobbered too. */ - test-distrib${EXEEXT}: ${srcdir}/test-distrib.c - $(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c -- ./test-distrib ${srcdir}/testfile -+ ${QEMU} ./test-distrib ${srcdir}/testfile - - /* We need the following in order to create a when the system - does not have one that works with the given compiler. */ -diff -uNr emacs-23.4/lisp/Makefile.in emacs-23.4.new/lisp/Makefile.in ---- emacs-23.4/lisp/Makefile.in 2012-01-11 13:35:01.000000000 +0100 -+++ emacs-23.4.new/lisp/Makefile.in 2012-07-31 00:54:07.195590866 +0200 -@@ -26,8 +26,7 @@ - # You can specify a different executable on the make command line, - # e.g. "make EMACS=../src/emacs ...". - --EMACS = ../src/emacs -- -+EMACS = "${QEMU} ../src/emacs" - # Command line flags for Emacs. This must include --multibyte, - # otherwise some files will not compile. - -diff -uNr emacs-23.4/src/Makefile.in emacs-23.4.new/src/Makefile.in ---- emacs-23.4/src/Makefile.in 2012-01-12 11:27:54.000000000 +0100 -+++ emacs-23.4.new/src/Makefile.in 2012-07-31 00:55:30.344593847 +0200 -@@ -482,7 +482,7 @@ - this with the shell''s ``for'' construct. - Note that some people do not have '.' in their paths, so we must - use ./prefix-args. */ --#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags` -+#define YMF_PASS_LDFLAGS(flags) `${QEMU} ./prefix-args -Xlinker flags` - #else - #define YMF_PASS_LDFLAGS(flags) flags - #endif -@@ -919,9 +919,9 @@ - $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR) - - #ifdef HAVE_SHM --RUN_TEMACS = `/bin/pwd`/temacs -nl -+RUN_TEMACS = ${QEMU} temacs -nl - #else --RUN_TEMACS = `/bin/pwd`/temacs -+RUN_TEMACS = ${QEMU} temacs - #endif - - all: emacs${EXEEXT} $(OTHER_FILES) -@@ -936,7 +936,7 @@ - @: This new Emacs is as functional and more efficient then - @: bootstrap-emacs, so let us replace it. - -ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT} -- -./emacs -q -batch -f list-load-path-shadows -+ -${QEMU} ./emacs -q -batch -f list-load-path-shadows - #endif /* ! defined (CANNOT_DUMP) */ - - /* We run make-docfile twice because the command line may get too long -@@ -954,8 +954,8 @@ - only in order to reduce the command line length. --Stef */ - ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP} - -rm -f ${etc}DOC -- ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC -- ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp} -+ ${QEMU}${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC -+ ${QEMU} ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp} - - ${libsrc}make-docfile${EXEEXT}: - cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT} diff --git a/meta-oe/recipes-support/emacs/emacs.inc b/meta-oe/recipes-support/emacs/emacs.inc deleted file mode 100644 index a1a4965ab9b..00000000000 --- a/meta-oe/recipes-support/emacs/emacs.inc +++ /dev/null @@ -1,149 +0,0 @@ -DESCRIPTION = "Emacs" -HOMEPAGE = "http://www.gnu.org/software/emacs/" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SECTION = "editor" -# and it needs to run some generated binaries.. -DEPENDS += "qemu-native" - -DEPENDS +=" liblockfile" - -X11DEPENDS = " \ - libice libsm atk cairo dbus expat libffi fontconfig freetype gconf giflib \ - jpeg xz pixman libpng librsvg tiff libcroco \ - libx11 libxau libxcomposite libxcursor libxdamage libxdmcp libxext libxfixes \ - libxft libxpm libxrandr libxrender \ - gdk-pixbuf glib-2.0 gtk+ pango libxcb harfbuzz icu \ -" - -EXTRA_OECONF = "--without-sound --with-crt-dir=${STAGING_LIBDIR} " - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" -PACKAGECONFIG[x11] = "--with-x-toolkit=gtk,--without-x --without-dbus,${X11DEPENDS}" - - -inherit autotools - -PACKAGES =+ "${PN}-el" - -FILES_${PN}-el = "${datadir}/emacs/*/*/*.el.gz \ - ${datadir}/emacs/*/*/*/*.el.gz" - -FILES_${PN} += "${datadir}/emacs ${datadir}/icons" - -FILES_${PN}-dbg += "${libexecdir}/emacs/*/*/.debug ${datadir}/emacs/*/*/.debug" - -TREEDIR = "${WORKDIR}/qemu-treedir" - -QEMUARCH= "${TARGET_ARCH}" -QEMUARCH_i486 = "i386" -QEMUARCH_i586 = "i386" -QEMUARCH_i686 = "i386" - -# Large stack is required at least on x86_64 host, otherwise random segfaults appear: -QEMU = "qemu-${QEMUARCH} ${QEMU_OPTIONS} -s 1048576 -L ${TREEDIR} " - -export LOGNAME = "$(whoami)" - -do_compile_prepend() { - sed -i ':1;s:\(START.* \|LIB_STANDARD.* \|LIBES.* \)/usr/lib:\1${STAGING_LIBDIR}:;t1' ${S}/src/s/gnu-linux.h `find "${S}" -name Makefile` - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TOOLCHAIN_PATH}/${TARGET_SYS}/lib" -# Ugly hack, see files/use-qemu.patch for more: - ln -sf ../src/emacs lisp/emacs - ln -sf ../src/emacs lib-src/emacs - ln -sf ../src/emacs leim/emacs -#copy STAGING_DIR_TARGET and libgcc_s.so* to WORKDIR/qemu-treedir #copied code from glibc-package.bbclass - treedir=${TREEDIR} - if [ -e $treedir ];then - rm -rf $treedir - fi - - mkdir -p $treedir/${base_libdir} - - if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so ]; then - cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so $treedir/${base_libdir} - fi - if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* ]; then - cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* $treedir/${base_libdir} - fi - # stupid hack, but without it, it tries to use /usr/lib/libc.so from host and fails - # temacs: error while loading shared libraries: /usr/lib/libc.so: ELF file version does not match current one - if [ ! -f $treedir/${base_libdir}/libc.so ]; then - ln -s libc.so.6 $treedir/${base_libdir}/libc.so - fi - - # copy only as much stuff as we need - # before: 5.5G ../../qemu-treedir/ - # after: 17M ../../qemu-treedir/ - cp -pPR \ - ${STAGING_DIR_TARGET}/${base_libdir}/ld-* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libc.* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libc-* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libm-* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libm.* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libtinfo.so.* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libresolv* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libdl* \ - ${STAGING_DIR_TARGET}/${base_libdir}/librt* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libgcc_s.so.* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libpthread* $treedir/${base_libdir}/ - - if [ ! -z "${@base_contains('PACKAGECONFIG', 'x11', 'x11', '', d)}" ] ; then - echo "X11 build enabled" - # copy only as much stuff as we need - # before: 5.5G ../../qemu-treedir/ - # after: 86M ../../qemu-treedir/ - cp -pPR \ - ${STAGING_DIR_TARGET}/${base_libdir}/libuuid.so.* \ - ${STAGING_DIR_TARGET}/${base_libdir}/libz.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libICE.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libSM.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libatk-1.0.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libcairo.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libdbus-1.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libdbus-glib-1.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libexpat.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libffi.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libfontconfig.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libfreetype.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libgconf-2.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libgif.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libjpeg.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/liblzma.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libpixman-1.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libpng1*.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/librsvg-2.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libstdc++.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libtiff.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libxml2.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libcroco-0.6.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libharfbuzz.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libicule.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libicuuc.so.* \ - ${STAGING_DIR_TARGET}/${libdir}/libicudata.so.* $treedir/${base_libdir}/ - - # X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext Xfixes Xft Xpm Xrandr Xrender - cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libX*.so.* $treedir/${base_libdir}/ - - # gdk-x11 gdk_pixbuf gio glib gmodule gobject gthread gtk-x11 - cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libg*-2.0.so.* $treedir/${base_libdir}/ - - # pango pangocairo pangoft2 - cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libpango*-1.0.so.* $treedir/${base_libdir}/ - - # xcb-render xcb-shm xcb - cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libxcb*.so.* $treedir/${base_libdir}/ - fi -} - -do_install_append() { - # freaks package.bbclass and whole bitbake call returns error code - # ERROR: runstrip: ''arm-oe-linux-gnueabi-strip' '/var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/emacs-23.4-r0/package/usr/share/emacs/23.4/etc/tutorials/TUTORIAL.ko'' strip command failed - mv ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.ko ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.KO - # Info dir listing isn't interesting at this point so remove it if it exists. - if [ -e "${D}${infodir}/dir" ]; then - rm -f ${D}${infodir}/dir - fi -} - -EXTRA_OEMAKE += 'QEMU="${QEMU}"' diff --git a/meta-oe/recipes-support/emacs/emacs_23.4.bb b/meta-oe/recipes-support/emacs/emacs_23.4.bb deleted file mode 100644 index a32482883b1..00000000000 --- a/meta-oe/recipes-support/emacs/emacs_23.4.bb +++ /dev/null @@ -1,12 +0,0 @@ -require emacs.inc - -PR = "r4" - -PNBLACKLIST[emacs] ?= "qemu: uncaught target signal 11 (Segmentation fault) - core dumped" - -SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz;name=tarball \ - file://use-qemu.patch \ - file://nostdlib-unwind.patch \ -" -SRC_URI[tarball.md5sum] = "34405165fcd978fbc8b304cbd99ccf4f" -SRC_URI[tarball.sha256sum] = "b9a2b8434052771f797d2032772eba862ff9aa143029efc72295170607289c18" diff --git a/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.1.8.bb b/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.1.8.bb deleted file mode 100644 index d665242bb17..00000000000 --- a/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.1.8.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "A PKCS" -DESCRIPTION = "\ -Engine_pkcs11 is an implementation of an engine for OpenSSL. It can be \ -loaded using code, config file or command line and will pass any function \ -call by openssl to a PKCS cards and software for using smart cards in PKCS" -HOMEPAGE = "https://github.com/OpenSC/engine_pkcs11" -SECTION = "Development/Libraries" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://doc/README;md5=d2ab6bf8854463fa6bf98f5bb6dfc47c" -DEPENDS = "openssl libp11" - -SRC_URI = "git://github.com/OpenSC/engine_pkcs11.git" -SRCREV = "bb775c32dba8cc4b4381a53da7ab5d7b22b7921d" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -EXTRA_OECONF = "\ - --disable-static \ - --libdir ${libdir}/openssl \ -" - -do_install_append () { - rm -f ${D}${libdir}/openssl/engines/engine_pkcs11.la -} - -FILES_${PN} += "/usr/lib/openssl/engines/engine_pkcs11.so*" -FILES_${PN}-dbg += "/usr/lib/openssl/engines/.debug/*" diff --git a/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.2.bb b/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.2.bb new file mode 100644 index 00000000000..047f7011028 --- /dev/null +++ b/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.2.bb @@ -0,0 +1,31 @@ +SUMMARY = "A PKCS" +DESCRIPTION = "\ +Engine_pkcs11 is an implementation of an engine for OpenSSL. It can be \ +loaded using code, config file or command line and will pass any function \ +call by openssl to a PKCS cards and software for using smart cards in PKCS" +HOMEPAGE = "https://github.com/OpenSC/engine_pkcs11" +SECTION = "Development/Libraries" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://src/engine_pkcs11.h;startline=1;endline=26;md5=973a19f8a6105de047f2adfbbfc04c33" +DEPENDS = "openssl libp11" + +SRC_URI = "git://github.com/OpenSC/engine_pkcs11.git" +SRCREV = "132fcf2c8b319f9f4b2ebdc8dcb54ff496dc0519" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "\ + --disable-static \ + --libdir ${libdir}/engines \ +" + +do_install_append () { + rm -f ${D}${libdir}/engines/libpkcs11.la +} + +FILES_${PN} += "${libdir}/engines/libpkcs11${SOLIBSDEV}" +FILES_${PN}-dbg += "${libdir}/engines/.debug/" + +RDEPENDS_${PN} += "openssl libp11 opensc" diff --git a/meta-oe/recipes-support/epeg/epeg_git.bb b/meta-oe/recipes-support/epeg/epeg_git.bb new file mode 100644 index 00000000000..6b23bbf78c9 --- /dev/null +++ b/meta-oe/recipes-support/epeg/epeg_git.bb @@ -0,0 +1,13 @@ +SUMMARY = "Epeg is a small library for handling thumbnails" +DESCRIPTION = "Insanely fast JPEG/ JPG thumbnail scaling with the minimum fuss and CPU overhead. It makes use of libjpeg features of being able to load an image by only decoding the DCT coefficients needed to reconstruct an image of the size desired." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=e7732a9290ea1e4b034fdc15cf49968d \ + file://COPYING-PLAIN;md5=f59cacc08235a546b0c34a5422133035" +DEPENDS = "jpeg libexif" + +SRC_URI = "git://github.com/mattes/epeg.git" +SRCREV = "337f55346425fbf2d283e794b702318ef2a74bcb" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + diff --git a/meta-oe/recipes-support/espeak/espeak-data_1.37.bb b/meta-oe/recipes-support/espeak/espeak-data_1.37.bb deleted file mode 100644 index 914bf36013b..00000000000 --- a/meta-oe/recipes-support/espeak/espeak-data_1.37.bb +++ /dev/null @@ -1,27 +0,0 @@ -require espeak.inc - -inherit native - -PACKAGES = "${PN}" -FILES_${PN} = "${layout_datadir}" - -PACKAGE_ARCH = "${MACHINE_ARCH}" -TARGET_ARCH = "${MACHINE_ARCH}" - -do_compile() { - # Fixing byte order of phoneme data files - cd "${S}/platforms/big_endian" - sed -i '/^ *CC *=/d' Makefile - sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c - oe_runmake - ./espeak-phoneme-data "${S}/espeak-data" - cp -f phondata phonindex phontab "${S}/espeak-data" -} - -do_install() { - install -d ${D}${layout_datadir}/espeak-data - install -m 0644 ${S}/espeak-data/phon* ${D}${layout_datadir}/espeak-data -} - -SRC_URI[md5sum] = "5c7b292d0537232868b4ac1317d76c02" -SRC_URI[sha256sum] = "77f406c345362185ec4f362bf49f61d202e01ac9b9cd5c14f803195a544ce6d3" diff --git a/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb b/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb new file mode 100644 index 00000000000..79b2cc1f41c --- /dev/null +++ b/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb @@ -0,0 +1,24 @@ +require espeak.inc + +inherit native + +PACKAGES = "${PN}" +FILES_${PN} = "${layout_datadir}" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +TARGET_ARCH = "${MACHINE_ARCH}" + +do_compile() { + # Fixing byte order of phoneme data files + cd "${S}/platforms/big_endian" + sed -i '/^ *CC *=/d' Makefile + sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c + oe_runmake + ./espeak-phoneme-data "${S}/espeak-data" + cp -f phondata phonindex phontab "${S}/espeak-data" +} + +do_install() { + install -d ${D}${layout_datadir}/espeak-data + install -m 0644 ${S}/espeak-data/phon* ${D}${layout_datadir}/espeak-data +} diff --git a/meta-oe/recipes-support/espeak/espeak.inc b/meta-oe/recipes-support/espeak/espeak.inc index 98a17650f60..60b3f73c810 100644 --- a/meta-oe/recipes-support/espeak/espeak.inc +++ b/meta-oe/recipes-support/espeak/espeak.inc @@ -3,7 +3,11 @@ SECTION = "base" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c" -SRC_URI = "${SOURCEFORGE_MIRROR}/espeak/espeak-${PV}-source.zip" +SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \ + file://gcc-narrowing-warning-fix.patch \ +" +SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3" +SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659" S = "${WORKDIR}/espeak-${PV}-source" diff --git a/meta-oe/recipes-support/espeak/espeak_1.37.bb b/meta-oe/recipes-support/espeak/espeak_1.37.bb deleted file mode 100644 index 86f2c7a761e..00000000000 --- a/meta-oe/recipes-support/espeak/espeak_1.37.bb +++ /dev/null @@ -1,43 +0,0 @@ -require espeak.inc -inherit siteinfo - -EXTRA_PHONEMES = '${@base_contains("SITEINFO_ENDIANNESS", "be", "espeak-data (= ${PV})", "", d)}' -RDEPENDS_${PN} = "portaudio-v19 ${EXTRA_PHONEMES}" - -SRC_URI[md5sum] = "5c7b292d0537232868b4ac1317d76c02" -SRC_URI[sha256sum] = "77f406c345362185ec4f362bf49f61d202e01ac9b9cd5c14f803195a544ce6d3" - -CXXFLAGS += "-DUSE_PORTAUDIO" -TARGET_CC_ARCH += "${LDFLAGS}" - -FILES_${PN} += "${datadir}/espeak-data" - -do_configure() { - # "speak" binary, a TTS engine, uses portaudio in either APIs V18 or V19, use V19 - cp "${S}/src/portaudio19.h" "${S}/src/portaudio.h" -} - -do_compile() { - cd src - oe_runmake -} - -do_install() { - install -d ${D}${bindir} - install -d ${D}${libdir} - install -d ${D}${includedir}/espeak - install -d ${D}${datadir}/espeak-data - - # we do not ship "speak" binary though. - install -m 0755 ${S}/src/espeak ${D}${bindir} - install -m 0644 ${S}/src/speak_lib.h ${D}${includedir}/espeak/ - ln -sf espeak/espeak.h ${D}${includedir}/ - oe_libinstall -so -C src libespeak ${D}${libdir} - - if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then - # the big-endian phon* files are provided by the package espeak-data - rm -f ${S}/espeak-data/phon* - fi - - cp -prf ${S}/espeak-data/* ${D}${datadir}/espeak-data -} diff --git a/meta-oe/recipes-support/espeak/espeak_1.48.04.bb b/meta-oe/recipes-support/espeak/espeak_1.48.04.bb new file mode 100644 index 00000000000..552f40413b9 --- /dev/null +++ b/meta-oe/recipes-support/espeak/espeak_1.48.04.bb @@ -0,0 +1,41 @@ +require espeak.inc +inherit siteinfo + +EXTRA_PHONEMES = '${@bb.utils.contains("SITEINFO_ENDIANNESS", "be", "espeak-data (= ${PV})", "", d)}' +RDEPENDS_${PN} = "portaudio-v19 ${EXTRA_PHONEMES}" + +CXXFLAGS += "-DUSE_PORTAUDIO" +TARGET_CC_ARCH += "${LDFLAGS}" + +FILES_${PN} += "${datadir}/espeak-data" + +do_configure() { + # "speak" binary, a TTS engine, uses portaudio in either APIs V18 or V19, use V19 + cp "${S}/src/portaudio19.h" "${S}/src/portaudio.h" +} + +do_compile() { + cd src + oe_runmake +} + +do_install() { + install -d ${D}${bindir} + install -d ${D}${libdir} + install -d ${D}${includedir}/espeak + install -d ${D}${datadir}/espeak-data + + # we do not ship "speak" binary though. + install -m 0755 ${S}/src/espeak ${D}${bindir} + install -m 0644 ${S}/src/speak_lib.h ${D}${includedir}/espeak/ + ln -sf espeak/espeak.h ${D}${includedir}/ + oe_libinstall -so -C src libespeak ${D}${libdir} + + if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then + # the big-endian phon* files are provided by the package espeak-data + rm -f ${S}/espeak-data/phon* + fi + + cp -prf ${S}/espeak-data/* ${D}${datadir}/espeak-data + chown -R root:root ${D}${datadir}/espeak-data +} diff --git a/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch b/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch new file mode 100644 index 00000000000..2a9b4607d95 --- /dev/null +++ b/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch @@ -0,0 +1,56 @@ +From f09c83640b9173552fd9277c3a48619b903fa436 Mon Sep 17 00:00:00 2001 +From: "Reece H. Dunn" +Date: Wed, 20 Jan 2016 20:48:29 +0000 +Subject: [PATCH] Fix GCC -Wnarrowing warnings. + +--- + src/tr_languages.cpp | 7 ++++--- + src/translate.h | 2 +- + 2 files changed, 5 insertions(+), 4 deletions(-) + +Index: espeak-1.48.04-source/src/tr_languages.cpp +=================================================================== +--- espeak-1.48.04-source.orig/src/tr_languages.cpp ++++ espeak-1.48.04-source/src/tr_languages.cpp +@@ -198,8 +198,8 @@ static const unsigned short chars_ignore + 0x200d, 1, // zero width joiner + 0, 0 }; + +-const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8 +- ++const unsigned char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8 ++const unsigned char utf8_null[] = { 0 }; // null string, UTF-8 + + static Translator* NewTranslator(void) + {//=================================== +@@ -296,7 +296,7 @@ static const char transpose_map_latin[] + tr->langopts.replace_chars = NULL; + tr->langopts.ascii_language[0] = 0; // Non-Latin alphabet languages, use this language to speak Latin words, default is English + tr->langopts.alt_alphabet_lang = L('e','n'); +- tr->langopts.roman_suffix = ""; ++ tr->langopts.roman_suffix = utf8_null; + + SetLengthMods(tr,201); + // tr->langopts.length_mods = length_mods_en; +@@ -758,7 +758,7 @@ Translator *SelectTranslator(const char + tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; + tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_ORDINAL; + tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND; +- tr->langopts.roman_suffix = string_ordinal; ++ tr->langopts.roman_suffix = utf8_null; + } + else + if(name2 == L_pap) +Index: espeak-1.48.04-source/src/translate.h +=================================================================== +--- espeak-1.48.04-source.orig/src/translate.h ++++ espeak-1.48.04-source/src/translate.h +@@ -545,7 +545,7 @@ typedef struct { + int decimal_sep; + int max_digits; // max number of digits which can be spoken as an integer number (rather than individual digits) + const char *ordinal_indicator; // UTF-8 string +- const char *roman_suffix; // add this (ordinal) suffix to Roman numbers (LANG=an) ++ const unsigned char *roman_suffix; // add this (ordinal) suffix to Roman numbers (LANG=an) + + // bit 0, accent name before the letter name, bit 1 "capital" after letter name + int accents; diff --git a/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb b/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb index 349507d36b1..59b01b69b63 100644 --- a/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb +++ b/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb @@ -1,4 +1,5 @@ SUMMARY = "Replacement syslog API" +HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system" DESCRIPTION = "The EventLog library aims to be a replacement of the \ simple syslog() API provided on UNIX systems. The \ major difference between EventLog and syslog is that \ diff --git a/meta-oe/recipes-support/evtest/evtest_git.bb b/meta-oe/recipes-support/evtest/evtest_git.bb index 96feab79286..fa0d6e2fe54 100644 --- a/meta-oe/recipes-support/evtest/evtest_git.bb +++ b/meta-oe/recipes-support/evtest/evtest_git.bb @@ -7,10 +7,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" DEPENDS = "libxml2" -SRCREV = "b8343ec1124da18bdabcc04809a8731b9e39295d" +SRCREV = "ab140a2dab1547f7deb5233be6d94a388cf08b26" SRC_URI = "git://anongit.freedesktop.org/evtest;protocol=git" -PV = "1.32+${SRCPV}" +PV = "1.33+${SRCPV}" S = "${WORKDIR}/git" diff --git a/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb b/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb deleted file mode 100644 index beb610813ad..00000000000 --- a/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb +++ /dev/null @@ -1,31 +0,0 @@ -DESCRIPTION = "FarSight is an audio/video conferencing framework specifically designed for Instant Messengers." -HOMEPAGE = "http://farsight.sf.net" -SRC_URI = "http://farsight.freedesktop.org/releases/farsight2/${BP}.tar.gz" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" - -PR = "r3" - -DEPENDS = "libnice glib-2.0 libxml2 zlib dbus gstreamer gst-plugins-base" - -inherit autotools - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd" - -EXTRA_OECONF = " \ - --disable-debug \ - --disable-gtk-doc \ - --disable-python \ -" - -FILES_${PN} += "${libdir}/*/*.so" -FILES_${PN}-dev += "${libdir}/*/*.la" -FILES_${PN}-staticdev += "${libdir}/*/*.a" -FILES_${PN}-dbg += "${libdir}/*/.debug" - - -SRC_URI[md5sum] = "e1f540cf3ebab06c3d7db1f46b44ac88" -SRC_URI[sha256sum] = "3ae59aa61a8071c9fad111e5fd606aabc27961eb4192f8729987a27dae6b3974" - diff --git a/meta-oe/recipes-support/farsight/libnice_0.0.13.bb b/meta-oe/recipes-support/farsight/libnice_0.0.13.bb deleted file mode 100644 index 711b6bdbf05..00000000000 --- a/meta-oe/recipes-support/farsight/libnice_0.0.13.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "Interactive Connectivity Establishment library" -DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)." -HOMEPAGE = "http://nice.freedesktop.org/wiki/" -SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz" - -LICENSE = "LGPLv2.1 & MPLv1.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \ - file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \ -" - -PR = "r4" - -DEPENDS = "glib-2.0 gstreamer" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd" - -inherit autotools pkgconfig gtk-doc - -FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" -FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la" -FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a" -FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" - -do_configure_prepend() { - mkdir ${S}/m4 || true -} - -do_compile_append() { - for i in $(find ${S} -name "*.pc") ; do - sed -i -e s:${STAGING_DIR_TARGET}::g \ - -e s:/${TARGET_SYS}::g \ - $i - done -} - - -SRC_URI[md5sum] = "e5b9f799a57cb939ea2658ec35253ab9" -SRC_URI[sha256sum] = "d8dd260c486a470a6052a5323920878a084e44a19df09b15728b85c9e3d6edf0" - diff --git a/meta-oe/recipes-support/farsight/libnice_0.1.13.bb b/meta-oe/recipes-support/farsight/libnice_0.1.13.bb new file mode 100644 index 00000000000..48c8221a3bf --- /dev/null +++ b/meta-oe/recipes-support/farsight/libnice_0.1.13.bb @@ -0,0 +1,36 @@ +SUMMARY = "Interactive Connectivity Establishment library" +DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)." +HOMEPAGE = "http://nice.freedesktop.org/wiki/" +SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz" +SRC_URI[md5sum] = "3226faeaf48a9150ada00da2e2865959" +SRC_URI[sha256sum] = "61112d9f3be933a827c8365f20551563953af6718057928f51f487bfe88419e1" + +LICENSE = "LGPLv2.1 & MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \ + file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \ +" + +DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd" + +inherit autotools pkgconfig gtk-doc gobject-introspection + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" + +do_configure_prepend() { + mkdir ${S}/m4 || true +} + +do_compile_append() { + for i in $(find ${B} -name "*.pc") ; do + sed -i -e s:${STAGING_DIR_TARGET}::g \ + -e s:/${TARGET_SYS}::g \ + $i + done +} diff --git a/meta-oe/recipes-support/fbset/fbset-modes.bb b/meta-oe/recipes-support/fbset/fbset-modes.bb index 1310e6f7ba1..5f6f9909b9f 100644 --- a/meta-oe/recipes-support/fbset/fbset-modes.bb +++ b/meta-oe/recipes-support/fbset/fbset-modes.bb @@ -1,4 +1,5 @@ SUMMARY = "Default display timings and resolutions for fbset" +HOMEPAGE = "http://users.telenet.be/geertu/Linux/fbdev/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" @@ -6,6 +7,7 @@ PV = "0.1.0" PR = "r6" SRC_URI = "file://fb.modes" +S = "${WORKDIR}" do_install() { install -d ${D}${sysconfdir} diff --git a/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch b/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch new file mode 100644 index 00000000000..7f45dbea828 --- /dev/null +++ b/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch @@ -0,0 +1,34 @@ +From 06edd88833da93361d5408b880fbb890df332497 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 19 Jan 2016 01:55:47 +0000 +Subject: [PATCH] fbset: including asm/types.h is needed on all linux systems + +including asm/types.h is needed to get Linux typedef's like +__s32 and so on which are independent of C library therefore this +define should not be guarded by __GLIBC__ but by __linux__ + +Helps to compile it on musl systems + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + fbset.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fbset.h b/fbset.h +index 9b1d2ac..0d8def8 100644 +--- a/fbset.h ++++ b/fbset.h +@@ -15,7 +15,7 @@ + #include + #include + +-#ifdef __GLIBC__ ++#ifdef __linux__ + #include + #endif + +-- +2.7.0 + diff --git a/meta-oe/recipes-support/fbset/fbset_2.1.bb b/meta-oe/recipes-support/fbset/fbset_2.1.bb index 18559326a11..fbf834da180 100644 --- a/meta-oe/recipes-support/fbset/fbset_2.1.bb +++ b/meta-oe/recipes-support/fbset/fbset_2.1.bb @@ -6,6 +6,7 @@ # Date: 28-May-06 SUMMARY = "The fbset console tool" +HOMEPAGE = "http://users.telenet.be/geertu/Linux/fbdev/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://fbset.c;endline=19;md5=bf326f82cdfcac391af208f019c5603f" RRECOMMENDS_${PN} = "fbset-modes" @@ -16,15 +17,16 @@ PR = "r4" SRC_URI = "http://ftp.debian.org/debian/pool/main/f/fbset/fbset_2.1.orig.tar.gz \ file://makefile.patch \ file://fbset-2.1-fix-makefile-dep.patch \ + file://0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch \ " inherit update-alternatives do_install() { install -d ${D}${sbindir} ${D}${datadir}/man/man8 ${D}${datadir}/man/man5 - install -m 0755 ${WORKDIR}/${BP}/fbset ${D}${sbindir}/fbset.real - install -m 0644 ${WORKDIR}/${BP}/*.5 ${D}${datadir}/man/man5 - install -m 0644 ${WORKDIR}/${BP}/*.8 ${D}${datadir}/man/man8 + install -m 0755 ${B}/fbset ${D}${sbindir}/fbset.real + install -m 0644 ${B}/*.5 ${D}${datadir}/man/man5 + install -m 0644 ${B}/*.8 ${D}${datadir}/man/man8 } ALTERNATIVE_fbset = "fbset" diff --git a/meta-oe/recipes-support/fbtest/fb-test_git.bb b/meta-oe/recipes-support/fbtest/fb-test_git.bb index 13f9e377a8a..6a9d4b27876 100644 --- a/meta-oe/recipes-support/fbtest/fb-test_git.bb +++ b/meta-oe/recipes-support/fbtest/fb-test_git.bb @@ -11,10 +11,10 @@ SRC_URI = "git://github.com/prpplague/fb-test-app.git" S = "${WORKDIR}/git" do_install() { - install -d ${D}${bindir} - install -m 0755 fb-test ${D}${bindir} - # avoid collisions with perf (perf) and mesa-demos (offset) - for prog in perf rect offset ; do - install -m 0755 $prog ${D}${bindir}/fb-$prog - done + install -d ${D}${bindir} + install -m 0755 fb-test ${D}${bindir} + # avoid collisions with perf (perf) and mesa-demos (offset) + for prog in perf rect offset ; do + install -m 0755 $prog ${D}${bindir}/fb-$prog + done } diff --git a/meta-oe/recipes-support/fftw/fftw.inc b/meta-oe/recipes-support/fftw/fftw.inc deleted file mode 100644 index 1522ea0bb4a..00000000000 --- a/meta-oe/recipes-support/fftw/fftw.inc +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION = "FFTW" -SECTION = "libs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -PROVIDES = "virtual/fftw" - -RPROVIDES_${PN} += "libfftw3" - -SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz" - -S = "${WORKDIR}/fftw-${PV}" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads" - -do_configure_prepend() { - echo 'AM_PROG_AS' >> ${S}/configure.ac -} - -PACKAGES =+ "lib${BPN}" -FILES_lib${BPN} = "${libdir}/lib*.so.*" - -# rename binary in /bin and use u-a tpo choose between different precision implementations? diff --git a/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch b/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch new file mode 100644 index 00000000000..6340f42f46b --- /dev/null +++ b/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch @@ -0,0 +1,80 @@ +From 97af5a2efbe30726ce4d7c921efed6afc32a314f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 25 Dec 2016 13:41:19 +0100 +Subject: [PATCH] NEON autodetection segfaults: assume neon present +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If TUNE_FEATURES contain 'neon' we can assume our machine supports it + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + simd-support/neon.c | 46 +--------------------------------------------- + 1 file changed, 1 insertion(+), 45 deletions(-) + +diff --git a/simd-support/neon.c b/simd-support/neon.c +index 86b2cb6..8d6537e 100644 +--- a/simd-support/neon.c ++++ b/simd-support/neon.c +@@ -23,54 +23,10 @@ + + #if HAVE_NEON + +-/* check for an environment where signals are known to work */ +-#if defined(unix) || defined(linux) +- # include +- # include +- +- static jmp_buf jb; +- +- static void sighandler(int x) +- { +- UNUSED(x); +- longjmp(jb, 1); +- } +- +- static int really_have_neon(void) +- { +- void (*oldsig)(int); +- oldsig = signal(SIGILL, sighandler); +- if (setjmp(jb)) { +- signal(SIGILL, oldsig); +- return 0; +- } else { +- /* paranoia: encode the instruction in binary because the +- assembler may not recognize it without -mfpu=neon */ +- /*asm volatile ("vand q0, q0, q0");*/ +- asm volatile (".long 0xf2000150"); +- signal(SIGILL, oldsig); +- return 1; +- } +- } +- +- int X(have_simd_neon)(void) +- { +- static int init = 0, res; +- +- if (!init) { +- res = really_have_neon(); +- init = 1; +- } +- return res; +- } +- +- +-#else +-/* don't know how to autodetect NEON; assume it is present */ ++/* autodetect NEON broken; assume it is present */ + int X(have_simd_neon)(void) + { + return 1; + } +-#endif + + #endif +-- +2.5.5 + diff --git a/meta-oe/recipes-support/fftw/fftw_3.3.4.bb b/meta-oe/recipes-support/fftw/fftw_3.3.4.bb deleted file mode 100644 index 990f01e2f7f..00000000000 --- a/meta-oe/recipes-support/fftw/fftw_3.3.4.bb +++ /dev/null @@ -1,6 +0,0 @@ -require fftw.inc - -SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3" -SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982" - -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/fftw/fftw_3.3.6.bb b/meta-oe/recipes-support/fftw/fftw_3.3.6.bb new file mode 100644 index 00000000000..ed14e16586a --- /dev/null +++ b/meta-oe/recipes-support/fftw/fftw_3.3.6.bb @@ -0,0 +1,81 @@ +DESCRIPTION = "FFTW" +SECTION = "libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +SRC_URI = " \ + http://www.fftw.org/fftw-${PV}-pl1.tar.gz \ + file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \ +" +SRC_URI[md5sum] = "682a0e78d6966ca37c7446d4ab4cc2a1" +SRC_URI[sha256sum] = "1ef4aa8427d9785839bc767f3eb6a84fcb5e9a37c31ed77a04e7e047519a183d" + +S = "${WORKDIR}/fftw-${PV}-pl1" + +inherit autotools pkgconfig + +# we had multiple recipes in the past +PROVIDES = "fftwl fftwf" + +EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads" + +CFLAGS += "-D_GNU_SOURCE" + +FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}" +FFTW_NEON_class-native = "" + +do_configure() { + # configure fftw + rm -rf ${WORKDIR}/build-fftw + mkdir -p ${B} + cd ${B} + # full (re)configure + autotools_do_configure + mv ${B} ${WORKDIR}/build-fftw + + # configure fftwl + rm -rf ${WORKDIR}/build-fftwl + mkdir -p ${B} + cd ${B} + # configure only + oe_runconf --enable-long-double + mv ${B} ${WORKDIR}/build-fftwl + + # configure fftwf + rm -rf ${WORKDIR}/build-fftwf + mkdir -p ${B} + cd ${B} + # configure only + oe_runconf --enable-single ${FFTW_NEON} + mv ${B} ${WORKDIR}/build-fftwf +} + +do_compile() { + for lib in fftw fftwl fftwf; do + cd ${WORKDIR}/build-$lib + autotools_do_compile + done +} + +do_install() { + for lib in fftw fftwl fftwf; do + cd ${WORKDIR}/build-$lib + autotools_do_install + done +} + + +PACKAGES =+ "libfftw libfftwl libfftwf" +FILES_libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*" +FILES_libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*" +FILES_libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*" + +PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf" +FILES_fftw-wisdom = "${bindir}/fftw-wisdom" +FILES_fftwl-wisdom = "${bindir}/fftwl-wisdom" +FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom" +FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf" + +RDEPENDS_${PN}-dev = "" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb b/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb deleted file mode 100644 index 7a4fbac8c11..00000000000 --- a/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb +++ /dev/null @@ -1,11 +0,0 @@ -require fftw.inc - -# conflicts with fftw and fftwl -EXCLUDE_FROM_WORLD = "1" - -EXTRA_OECONF += "--enable-single \ - ${@base_contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)} \ -" - -SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3" -SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982" diff --git a/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb b/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb deleted file mode 100644 index 432ff1241e2..00000000000 --- a/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb +++ /dev/null @@ -1,9 +0,0 @@ -require fftw.inc - -# conflicts with fftw and fftwf -EXCLUDE_FROM_WORLD = "1" - -EXTRA_OECONF += "--enable-long-double" - -SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3" -SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982" diff --git a/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch b/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch deleted file mode 100644 index e1e7aed508f..00000000000 --- a/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- flite-1.3-release/configure.in.old 2008-01-06 02:17:47.000000000 -0600 -+++ flite-1.3-release/configure.in 2008-01-06 02:19:56.000000000 -0600 -@@ -220,7 +220,8 @@ dnl allow the user to override the one d - dnl - AC_ARG_WITH( audio, - [ --with-audio with specific audio support (none linux freebsd etc) ], -- AUDIODRIVER=$with_audio ) -+ [AUDIODRIVER=$with_audio -+ AUDIODEFS=]) - - if test "x$AUDIODEFS" = x; then - case "$AUDIODRIVER" in diff --git a/meta-oe/recipes-support/flite/flite-alsa_1.3.bb b/meta-oe/recipes-support/flite/flite-alsa_1.3.bb deleted file mode 100644 index 51012e67317..00000000000 --- a/meta-oe/recipes-support/flite/flite-alsa_1.3.bb +++ /dev/null @@ -1,12 +0,0 @@ -require flite.inc - -PR = "r1" - -EXTRA_OECONF = "--with-audio=alsa --enable-shared" - -SRC_URI = "http://www.speech.cs.cmu.edu/flite/packed/flite-${PV}/flite-${PV}-release.tar.gz \ - file://flite-1.3-alsa_support-1.2.diff \ - file://flite-alsa-1.3-configure-with-audio.patch" - -SRC_URI[md5sum] = "ae0aca1cb7b4801f4372f3a75a9e52b5" -SRC_URI[sha256sum] = "922225f7001e57a0fbace8833b0a48790a68f6c7b491f2d47c78ad537ab78a8b" diff --git a/meta-oe/recipes-support/flite/flite.inc b/meta-oe/recipes-support/flite/flite.inc deleted file mode 100644 index 0ef82c004c4..00000000000 --- a/meta-oe/recipes-support/flite/flite.inc +++ /dev/null @@ -1,33 +0,0 @@ -DESCRIPTION = "flite - the festival light speech synthesizer" -HOMEPAGE = "http://www.speech.cs.cmu.edu/flite/" -SECTION = "console/utils" -LICENSE = "flite" -LIC_FILES_CHKSUM = "file://COPYING;md5=68a16b1ee49c96c36f232ccdcd287650" -DEPENDS = "alsa-oss" - -PARALLEL_MAKE = "" - -S = "${WORKDIR}/flite-${PV}-release" - -CFLAGS += " -lasound " - -inherit autotools-brokensep - -PACKAGES += "lib${PN} lib${PN}-vox8 lib${PN}-vox16" - -FILES_${PN} = "${bindir}" - -FILES_lib${PN} ="${libdir}/libflite.so.* \ - ${libdir}/libflite_cmu_time_awb.so.* \ - ${libdir}/libflite_cmulex.so.* \ - ${libdir}/libflite_usenglish.so.*" - -FILES_lib${PN}-vox8 = "${libdir}/libflite_cmu_us_kal.so.*" - -FILES_lib${PN}-vox16 = "${libdir}/libflite_cmu_us_kal16.so.*" - -LEAD_SONAME = "libflite.so" - -do_install() { - oe_runmake INSTALLBINDIR="${D}${bindir}" INSTALLLIBDIR="${D}${libdir}" INSTALLINCDIR="${D}${includedir}" install -} diff --git a/meta-oe/recipes-support/fltk/fltk-1.1.10/disable_test.patch b/meta-oe/recipes-support/fltk/fltk-1.1.10/disable_test.patch deleted file mode 100644 index 8c01a1f806a..00000000000 --- a/meta-oe/recipes-support/fltk/fltk-1.1.10/disable_test.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: fltk-1.1.9/Makefile -=================================================================== ---- fltk-1.1.9.orig/Makefile 2008-06-06 16:14:11.936736201 +0200 -+++ fltk-1.1.9/Makefile 2008-06-06 16:14:22.526357637 +0200 -@@ -27,7 +27,7 @@ - - include makeinclude - --DIRS = $(IMAGEDIRS) src fluid test documentation -+DIRS = $(IMAGEDIRS) src fluid documentation - - all: makeinclude fltk-config - for dir in $(DIRS); do\ diff --git a/meta-oe/recipes-support/fltk/fltk-1.1.10/dso-fix.patch b/meta-oe/recipes-support/fltk/fltk-1.1.10/dso-fix.patch deleted file mode 100644 index 867e9efcbff..00000000000 --- a/meta-oe/recipes-support/fltk/fltk-1.1.10/dso-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -src/fl_set_fonts_xft.cxx is using fontconfig symbols - ---- a/makeinclude.in 2012-01-26 18:09:58.628799060 +0100 -+++ b/makeinclude.in 2012-01-26 18:08:58.115801758 +0100 -@@ -81,7 +81,7 @@ - AUDIOLIBS = @AUDIOLIBS@ - DSOFLAGS = -L. @DSOFLAGS@ - LDFLAGS = $(OPTIM) @LDFLAGS@ --LDLIBS = @LIBS@ -+LDLIBS = @LIBS@ -lfontconfig - GLDLIBS = @GLLIB@ @LIBS@ - LINKFLTK = @LINKFLTK@ - LINKFLTKGL = @LINKFLTKGL@ diff --git a/meta-oe/recipes-support/fltk/fltk-1.1.10/fltk-no-freetype-config.patch b/meta-oe/recipes-support/fltk/fltk-1.1.10/fltk-no-freetype-config.patch deleted file mode 100644 index 5dbb0547df1..00000000000 --- a/meta-oe/recipes-support/fltk/fltk-1.1.10/fltk-no-freetype-config.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/configure.in.orig 2015-03-01 16:00:35.956432907 +0100 -+++ b/configure.in 2015-03-01 16:04:23.269580093 +0100 -@@ -865,11 +865,11 @@ - AC_ARG_ENABLE(xft, [ --enable-xft turn on Xft support [default=no]]) - - if test x$enable_xft = xyes; then -- AC_PATH_PROG(FTCONFIG,freetype-config) -+ AC_PATH_PROG(PKGCONFIG,pkg-config) - -- if test "x$FTCONFIG" != x; then -- CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS" -- CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS" -+ if test "x$PKGCONFIG" != x; then -+ CPPFLAGS="`$PKGCONFIG --cflags xft` $CPPFLAGS" -+ CXXFLAGS="`$PKGCONFIG --cflags xft` $CXXFLAGS" - - AC_CHECK_HEADER(X11/Xft/Xft.h, - AC_CHECK_LIB(Xft, XftDrawCreate, diff --git a/meta-oe/recipes-support/fltk/fltk-1.1.10/libpng15.patch b/meta-oe/recipes-support/fltk/fltk-1.1.10/libpng15.patch deleted file mode 100644 index b2eb8d6fd83..00000000000 --- a/meta-oe/recipes-support/fltk/fltk-1.1.10/libpng15.patch +++ /dev/null @@ -1,61 +0,0 @@ -Imported from gentoo -http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/fltk/files/fltk-1.1.10-libpng15.patch - ---- a/src/Fl_PNG_Image.cxx -+++ b/src/Fl_PNG_Image.cxx -@@ -66,7 +66,8 @@ Fl_PNG_Image::Fl_PNG_Image(const char *png) // I - File to read - png_structp pp; // PNG read pointer - png_infop info; // PNG info pointers - png_bytep *rows; // PNG row pointers -- -+ png_byte color_type; // PNG color type -+ png_byte bit_depth; // PNG bit depth - - // Open the PNG file... - if ((fp = fopen(png, "rb")) == NULL) return; -@@ -75,7 +76,7 @@ Fl_PNG_Image::Fl_PNG_Image(const char *png) // I - File to read - pp = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - info = png_create_info_struct(pp); - -- if (setjmp(pp->jmpbuf)) -+ if (setjmp(png_jmpbuf(pp))) - { - Fl::warning("PNG file \"%s\" contains errors!\n", png); - return; -@@ -86,28 +87,24 @@ Fl_PNG_Image::Fl_PNG_Image(const char *png) // I - File to read - - // Get the image dimensions and convert to grayscale or RGB... - png_read_info(pp, info); -+ color_type = png_get_color_type(pp, info); - -- if (info->color_type == PNG_COLOR_TYPE_PALETTE) -+ if (color_type == PNG_COLOR_TYPE_PALETTE) - png_set_expand(pp); - -- if (info->color_type & PNG_COLOR_MASK_COLOR) -- channels = 3; -- else -- channels = 1; -- -- if ((info->color_type & PNG_COLOR_MASK_ALPHA) || info->num_trans) -- channels ++; -+ channels = png_get_channels(pp, info); - -- w((int)(info->width)); -- h((int)(info->height)); -+ w((int)(png_get_image_width(pp, info))); -+ h((int)(png_get_image_height(pp, info))); - d(channels); - -- if (info->bit_depth < 8) -+ bit_depth = png_get_bit_depth(pp, info); -+ if (bit_depth < 8) - { - png_set_packing(pp); - png_set_expand(pp); - } -- else if (info->bit_depth == 16) -+ else if (bit_depth == 16) - png_set_strip_16(pp); - - # if defined(HAVE_PNG_GET_VALID) && defined(HAVE_PNG_SET_TRNS_TO_ALPHA) diff --git a/meta-oe/recipes-support/fltk/fltk-native.bb b/meta-oe/recipes-support/fltk/fltk-native.bb new file mode 100644 index 00000000000..353987e0fd8 --- /dev/null +++ b/meta-oe/recipes-support/fltk/fltk-native.bb @@ -0,0 +1,16 @@ +require ${BPN}.inc + +DEPENDS = "zlib-native jpeg-native libpng-native libxext-native libxft-native" + +inherit native + +EXTRA_OECMAKE += " \ + -DOPTION_BUILD_SHARED_LIBS=OFF \ + -DOPTION_USE_THREADS=OFF \ + -DOPTION_USE_XDBE=OFF \ + -DOPTION_USE_XFT=OFF \ + -DOPTION_BUILD_EXAMPLES=OFF \ + -DOPTION_USE_XINERAMA=OFF \ + -DOPTION_USE_XFIXES=OFF \ + -DOPTION_USE_XCURSOR=OFF \ +" diff --git a/meta-oe/recipes-support/fltk/fltk.bb b/meta-oe/recipes-support/fltk/fltk.bb new file mode 100644 index 00000000000..542fd661ea0 --- /dev/null +++ b/meta-oe/recipes-support/fltk/fltk.bb @@ -0,0 +1,34 @@ +require ${BPN}.inc + +DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft ${BPN}-native" + +inherit binconfig lib_package gtk-icon-cache mime + +EXTRA_OECMAKE = " \ + -DOPTION_BUILD_SHARED_LIBS=ON \ + -DOPTION_USE_THREADS=ON \ + -DOPTION_USE_XDBE=ON \ + -DOPTION_USE_XFT=ON \ + -DFLTK_CONFIG_PATH=${libdir}/cmake \ +" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}" + +PACKAGECONFIG[examples] = "-DOPTION_BUILD_EXAMPLES=ON,-DOPTION_BUILD_EXAMPLES=OFF," +PACKAGECONFIG[opengl] = "-DOPTION_USE_GL=ON,-DOPTION_USE_GL=OFF,virtual/libgl" +PACKAGECONFIG[xinerama] = "-DOPTION_USE_XINERAMA=ON,-DOPTION_USE_XINERAMA=OFF,libxinerama" +PACKAGECONFIG[xfixes] = "-DOPTION_USE_XFIXES=ON,-DOPTION_USE_XFIXES=OFF,libxfixes" +PACKAGECONFIG[xcursor] = "-DOPTION_USE_XCURSOR=ON,-DOPTION_USE_XCURSOR=OFF,libxcursor" + +do_install_append() { + sed -i -e 's,${STAGING_DIR_HOST},,g' ${D}${bindir}/fltk-config +} + +python populate_packages_prepend () { + if (d.getVar('DEBIAN_NAMES')): + d.setVar('PKG_${BPN}', 'libfltk${PV}') +} + +LEAD_SONAME = "libfltk.so" + +FILES_${PN} += "${datadir}/mime" diff --git a/meta-oe/recipes-support/fltk/fltk.inc b/meta-oe/recipes-support/fltk/fltk.inc new file mode 100644 index 00000000000..dbe700af01c --- /dev/null +++ b/meta-oe/recipes-support/fltk/fltk.inc @@ -0,0 +1,21 @@ +SUMMARY = "FLTK is a cross-platform C++ GUI toolkit" +HOMEPAGE = "http://www.fltk.org" +SECTION = "libs" +LICENSE = "LGPLv2 & FLTK" +LIC_FILES_CHKSUM = "file://COPYING;md5=f6b26344a24a941a01a5b0826e80b5ca" + +SRC_URI = " \ + http://fltk.org/pub/fltk/1.3.4/${BP}-source.tar.gz \ + file://disable_test.patch \ + file://fltk-no-freetype-config.patch \ + file://0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch \ + file://0002-always-build-fluid-and-export-pointers.patch \ +" + +PV = "1.3.4-1" +SRC_URI[md5sum] = "d7fcd27ab928648e1a1366dd2e273970" +SRC_URI[sha256sum] = "7fb2c8882433ce694e6900c94fda505e8f4ed3fa9c7e597007098a33b85c53f4" + +inherit cmake pkgconfig + +TARGET_CC_ARCH += "${LDFLAGS} -DXFT_MAJOR=2" diff --git a/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch b/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch new file mode 100644 index 00000000000..e6e68a0cb85 --- /dev/null +++ b/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch @@ -0,0 +1,39 @@ +From e76a062338063615c069fedc5a143cc38c34d9b2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 28 Feb 2017 01:00:21 +0100 +Subject: [PATCH] Fl_Preferences.cxx: do not use dlopen in case glibc's headers + are missing +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| /home/work/x86_64-linux/fltk-native/1.3.4-1-r0/fltk-1.3.4-1/src/Fl_Preferences.cxx: In static member function ‘static int Fl_Plugin_Manager::load(const char*)’: +| /home/work/x86_64-linux/fltk-native/1.3.4-1-r0/fltk-1.3.4-1/src/Fl_Preferences.cxx:1741:27: error: ‘RTLD_LAZY’ was not declared in this scope +| dl = dlopen(filename, RTLD_LAZY); +| ^~~~~~~~~ +| /home/work/x86_64-linux/fltk-native/1.3.4-1-r0/fltk-1.3.4-1/src/Fl_Preferences.cxx:1741:36: error: ‘dlopen’ was not declared in this scope +| dl = dlopen(filename, RTLD_LAZY); +| ^ +| src/CMakeFiles/fltk.dir/build.make:1217: recipe for target 'src/CMakeFiles/fltk.dir/Fl_Preferences.cxx.o' failed + +Signed-off-by: Andreas Müller +--- + src/Fl_Preferences.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx +index 1233bb1..7857b9b 100644 +--- a/src/Fl_Preferences.cxx ++++ b/src/Fl_Preferences.cxx +@@ -1737,7 +1737,7 @@ int Fl_Plugin_Manager::load(const char *filename) { + HMODULE dl = LoadLibrary(filename); + #else + void * dl = NULL; +-# if HAVE_DLSYM ++# if HAVE_DLSYM && HAVE_DLFCN_H + dl = dlopen(filename, RTLD_LAZY); + # endif + #endif +-- +2.9.3 + diff --git a/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch b/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch new file mode 100644 index 00000000000..cca977c66dd --- /dev/null +++ b/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch @@ -0,0 +1,31 @@ +From 16010cb1a69ea2326d8102b7f1e34b65aca4b278 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 28 Feb 2017 01:20:42 +0100 +Subject: [PATCH] always build fluid and export pointers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller +--- + CMake/export.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMake/export.cmake b/CMake/export.cmake +index 968186a..95e04eb 100644 +--- a/CMake/export.cmake ++++ b/CMake/export.cmake +@@ -21,7 +21,7 @@ + # final config and export + ####################################################################### + # Set the fluid executable path +-if(CMAKE_CROSSCOMPILING) ++if(FALSE) + find_file(FLUID_PATH + NAMES fluid fluid.exe + PATHS ENV PATH +-- +2.9.3 + diff --git a/meta-oe/recipes-support/fltk/fltk/disable_test.patch b/meta-oe/recipes-support/fltk/fltk/disable_test.patch new file mode 100644 index 00000000000..1f5fd25e04d --- /dev/null +++ b/meta-oe/recipes-support/fltk/fltk/disable_test.patch @@ -0,0 +1,11 @@ +--- a/Makefile.orig 2015-11-26 15:35:31.485357862 +0800 ++++ b/Makefile 2015-11-26 15:35:37.037357764 +0800 +@@ -18,7 +18,7 @@ + + include makeinclude + +-DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid test documentation ++DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid documentation + + all: makeinclude fltk-config + for dir in $(DIRS); do\ diff --git a/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch b/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch new file mode 100644 index 00000000000..2a9915bea79 --- /dev/null +++ b/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch @@ -0,0 +1,40 @@ +From 699420d306cadbb5285942e09f4383d84b01985d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 13 Jan 2017 13:21:23 +0100 +Subject: [PATCH] replace freetype-config by pkg-config +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + configure.ac | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f0efd48..3af5ecb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1006,12 +1006,12 @@ case $host_os_gui in + + xft_found=no + if test x$enable_xft != xno; then +- AC_PATH_PROG(FTCONFIG, freetype-config) ++ AC_PATH_PROG(PKGCONFIG,pkg-config) + +- if test "x$FTCONFIG" != x; then +- CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS" +- CFLAGS="`$FTCONFIG --cflags` $CFLAGS" +- CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS" ++ if test "x$PKGCONFIG" != x; then ++ CPPFLAGS="`$PKGCONFIG --cflags xft` $CPPFLAGS" ++ CFLAGS="`$PKGCONFIG --cflags xft` $CFLAGS" ++ CXXFLAGS="`$PKGCONFIG --cflags xft` $CXXFLAGS" + + AC_CHECK_LIB(fontconfig, FcPatternCreate) + AC_CHECK_HEADER(X11/Xft/Xft.h, +-- +2.7.4 + diff --git a/meta-oe/recipes-support/fltk/fltk_1.1.10.bb b/meta-oe/recipes-support/fltk/fltk_1.1.10.bb deleted file mode 100644 index 3229ed0e7e4..00000000000 --- a/meta-oe/recipes-support/fltk/fltk_1.1.10.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "FLTK is a cross-platform C++ GUI toolkit" -HOMEPAGE = "http://www.fltk.org" -SECTION = "libs" -LICENSE = "LGPLv2 & FLTK" -LIC_FILES_CHKSUM = "file://COPYING;md5=1c0b73db66884b6a925e727400315130" - -DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft" - -PR = "r2" - -SRC_URI = "ftp://ftp.rz.tu-bs.de/pub/mirror/ftp.easysw.com/ftp/pub/fltk/${PV}/fltk-${PV}-source.tar.bz2 \ - file://disable_test.patch \ - file://dso-fix.patch \ - file://libpng15.patch \ - file://fltk-no-freetype-config.patch \ -" - -S = "${WORKDIR}/fltk-${PV}" - -inherit lib_package autotools-brokensep binconfig pkgconfig - -TARGET_CC_ARCH += "${LDFLAGS} -DXFT_MAJOR=2" - -EXTRA_OECONF = "--enable-shared \ - --enable-threads \ - --enable-xdbe --enable-xft --enable-gl \ - --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}" - -do_configure() { - oe_runconf -} - -python populate_packages_prepend () { - if (d.getVar('DEBIAN_NAMES', 1)): - d.setVar('PKG_${PN}', 'libfltk${PV}') -} - -LEAD_SONAME = "libfltk.so" - -SRC_URI[md5sum] = "a1765594bc427ff892e36089fe1fa672" -SRC_URI[sha256sum] = "37ada22bf2586b8dd30d84209b8b58bdcb864627e5d02ae3f2c323a29261b19a" diff --git a/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch b/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch new file mode 100644 index 00000000000..a567cba9255 --- /dev/null +++ b/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch @@ -0,0 +1,27 @@ +From 368989526c32cdf9d680a397fede3cb773fa2609 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Fri, 28 Jul 2017 16:31:41 -0400 +Subject: [PATCH] Fix gstreamer-1.0 detection + +Upstream State: Backport + +--- + cmake/FindGStreamer_1_0.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/FindGStreamer_1_0.cmake b/cmake/FindGStreamer_1_0.cmake +index 3aa8fc6..6fbc0ec 100644 +--- a/cmake/FindGStreamer_1_0.cmake ++++ b/cmake/FindGStreamer_1_0.cmake +@@ -59,7 +59,7 @@ macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library) + + string(REGEX MATCH "(.*)>=(.*)" _dummy "${_pkgconfig_name}") + if ("${CMAKE_MATCH_2}" STREQUAL "") +- pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GStreamer_FIND_VERSION}") ++ pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GSTREAMER_1_0_MINIMUM_VERSION}") + else () + pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name}) + endif () +-- +2.7.4 + diff --git a/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch b/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch new file mode 100644 index 00000000000..0d7dcc28d79 --- /dev/null +++ b/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch @@ -0,0 +1,31 @@ +Subject: [PATCH] winpr-makecert: Build with install RPATH + +As we are installing "winpr-makecert" manually, we do want +to refer to the library in DESTDIR, not the one resting in +the build tree. + +Update it for 2.0.0. + +Signed-off-by: Manuel Bachmann +Signed-off-by: Zheng Ruoqin +--- + winpr/tools/makecert-cli/CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/winpr/tools/makecert-cli/CMakeLists.txt b/winpr/tools/makecert-cli/CMakeLists.txt +index 74afa09..8d00ef1 100644 +--- a/winpr/tools/makecert-cli/CMakeLists.txt ++++ b/winpr/tools/makecert-cli/CMakeLists.txt +@@ -44,6 +44,9 @@ set(${MODULE_PREFIX}_LIBS winpr-tools) + + target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) + ++set_target_properties(${MODULE_NAME} PROPERTIES ++ BUILD_WITH_INSTALL_RPATH 1) ++ + set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools") + + install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools EXPORT WinPRTargets) +-- +2.7.4 + diff --git a/meta-oe/recipes-support/freerdp/freerdp_git.bb b/meta-oe/recipes-support/freerdp/freerdp_git.bb new file mode 100644 index 00000000000..88aec9c4152 --- /dev/null +++ b/meta-oe/recipes-support/freerdp/freerdp_git.bb @@ -0,0 +1,86 @@ +# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved +# Released under the MIT license + +DESCRIPTION = "FreeRDP RDP client & server library" +HOMEPAGE = "http://www.freerdp.com" +DEPENDS = "openssl alsa-lib pcsc-lite" +SECTION = "net" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +inherit pkgconfig cmake gitpkgv + +PV = "2.0.0+gitr${SRCPV}" +PKGV = "${GITPKGVTAG}" + +SRCREV = "1648deb435ad52206f7aa2afe4b4dff71d9329bc" +SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \ + file://winpr-makecert-Build-with-install-RPATH.patch \ + file://0001-Fix-gstreamer-1.0-detection.patch \ +" + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE += " \ + -DWITH_ALSA=ON \ + -DWITH_PCSC=ON \ + -DWITH_FFMPEG=OFF \ + -DWITH_CUNIT=OFF \ + -DWITH_NEON=OFF \ + -DBUILD_STATIC_LIBS=OFF \ + -DCMAKE_POSITION_INDEPENDANT_CODE=ON \ + -DWITH_MANPAGES=OFF \ +" + +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\ + gstreamer cups \ +" + +X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile" +PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}" +PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland" +PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb" +PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam" +PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio" +PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups" + +PACKAGES =+ "libfreerdp" + +LEAD_SONAME = "libfreerdp.so" +FILES_libfreerdp = "${libdir}/lib*${SOLIBS}" + +PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*" + +# we will need winpr-makecert to generate TLS certificates +do_install_append () { + install -d ${D}${bindir} + install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir} + rm -rf ${D}${libdir}/cmake + rm -rf ${D}${libdir}/freerdp +} + +python populate_packages_prepend () { + freerdp_root = d.expand('${libdir}/freerdp') + + do_split_packages(d, freerdp_root, '^(audin_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-audin') + + do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-rdpsnd') + + do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='libfreerdp-plugin-tsmf') + + do_split_packages(d, freerdp_root, '^([^-]*)\.so$', + output_pattern='libfreerdp-plugin-%s', + description='FreeRDP plugin %s', + prepend=True, extra_depends='') +} diff --git a/meta-oe/recipes-support/gd/gd-2.1.0/fix-the-subdir-objects-error.patch b/meta-oe/recipes-support/gd/gd-2.1.0/fix-the-subdir-objects-error.patch deleted file mode 100644 index 02b167067dc..00000000000 --- a/meta-oe/recipes-support/gd/gd-2.1.0/fix-the-subdir-objects-error.patch +++ /dev/null @@ -1,39 +0,0 @@ -From b1ae702a48888e2c3b0ebe0772a88b45a37b84f5 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Fri, 17 Jan 2014 01:58:05 -0500 -Subject: [PATCH] configure.ac: fix the subdir-objects error - -Fix this error: -iautomake: warning: possible forward-incompatibility. -automake: At least a source file is in a subdirectory, but the 'subdir-objects' -automake: automake option hasn't been enabled. For now, the corresponding output -automake: object file(s) will be placed in the top-level directory. However, -automake: this behaviour will change in future Automake versions: they will -automake: unconditionally cause object files to be placed in the same subdirectory -automake: of the corresponding sources. -automake: You are advised to start using 'subdir-objects' option throughout your -automake: project, to avoid future incompatibilities. - -Upstream-Status: Pending - -Signed-off-by: Robert Yang ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 2f9f744..438e08b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -45,7 +45,7 @@ AC_SUBST(GDLIB_AGE) - FEATURES="GD_GIF GD_GIFANIM GD_OPENPOLYGON" - AC_SUBST(FEATURES) - --AM_INIT_AUTOMAKE([foreign dist-bzip2 dist-xz -Wall -Werror]) -+AM_INIT_AUTOMAKE([foreign dist-bzip2 dist-xz -Wall -Werror subdir-objects]) - AC_CONFIG_HEADERS([src/config.h:src/config.hin]) - - dnl newer automake wants this, but we still want to work with older --- -1.7.10.4 - diff --git a/meta-oe/recipes-support/gd/gd_2.1.0.bb b/meta-oe/recipes-support/gd/gd_2.1.0.bb deleted file mode 100644 index f03b9b08b8c..00000000000 --- a/meta-oe/recipes-support/gd/gd_2.1.0.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "gd is a library used to create PNG, JPEG, or WBMP images" -DESCRIPTION = "The gd graphics library allows your code to quickly draw images \ -complete with lines, arcs, text, multiple colors, cut and paste from other \ -images, and flood fills, and to write out the result as a PNG or JPEG file. \ -This is particularly useful in Web applications, where PNG and JPEG are two \ -of the formats accepted for inline images by most browsers. Note that gd is not \ -a paint program." -HOMEPAGE = "http://libgd.bitbucket.org/" - -SECTION = "libs" -LICENSE = "GD" -LIC_FILES_CHKSUM = "file://COPYING;md5=c97638cafd3581eb87abd37332137669" -DEPENDS = "freetype libpng jpeg zlib tiff libvpx" - -SRC_URI = "https://bitbucket.org/libgd/gd-libgd/downloads/libgd-${PV}.tar.bz2 \ - file://fix-the-subdir-objects-error.patch \ -" -SRC_URI[md5sum] = "5a1d5bab3a4a41d9f111bcceee4ad25b" -SRC_URI[sha256sum] = "f3e1bc472bd81ee976a739436659fe752a14727a964c64530fde68531ddeee91" - -S = "${WORKDIR}/libgd-${PV}" - -inherit autotools binconfig gettext pkgconfig - -EXTRA_OECONF += " --disable-rpath \ - --with-jpeg=${STAGING_LIBDIR}/.. \ - --with-freetype=yes \ - --without-fontconfig \ - --without-xpm \ - --without-x" - -EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"' - -PACKAGES += "${PN}-tools" - -FILES_${PN} = "${libdir}/lib*${SOLIBS}" -FILES_${PN}-tools = "${bindir}/*" - -PROVIDES += "${PN}-tools" -RPROVIDES_${PN}-tools = "${PN}-tools" -RDEPENDS_${PN}-tools = "perl perl-module-strict" diff --git a/meta-oe/recipes-support/gd/gd_2.2.4.bb b/meta-oe/recipes-support/gd/gd_2.2.4.bb new file mode 100644 index 00000000000..4932bb7b6a5 --- /dev/null +++ b/meta-oe/recipes-support/gd/gd_2.2.4.bb @@ -0,0 +1,48 @@ +SUMMARY = "gd is a library used to create PNG, JPEG, or WBMP images" +DESCRIPTION = "The gd graphics library allows your code to quickly draw images \ +complete with lines, arcs, text, multiple colors, cut and paste from other \ +images, and flood fills, and to write out the result as a PNG or JPEG file. \ +This is particularly useful in Web applications, where PNG and JPEG are two \ +of the formats accepted for inline images by most browsers. Note that gd is not \ +a paint program." +HOMEPAGE = "http://libgd.bitbucket.org/" + +SECTION = "libs" +LICENSE = "GD" +LIC_FILES_CHKSUM = "file://COPYING;md5=07384b3aa2e0d39afca0d6c40286f545" + +DEPENDS = "freetype libpng jpeg zlib tiff" + +SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \ + " + +SRCREV = "de09874b15a4c88772db35ced842330f5de23e76" + +S = "${WORKDIR}/git" + +inherit autotools binconfig gettext pkgconfig + +EXTRA_OECONF += " --disable-rpath \ + --with-jpeg=${STAGING_LIBDIR}/.. \ + --with-freetype=yes \ + --without-fontconfig \ + --without-webp \ + --without-xpm \ + --without-x \ + " + +EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"' + +do_install_append() { + # cleanup buildpaths from gdlib.pc + sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/gdlib.pc +} + +PACKAGES += "${PN}-tools" + +FILES_${PN} = "${libdir}/lib*${SOLIBS}" +FILES_${PN}-tools = "${bindir}/*" + +PROVIDES += "${PN}-tools" +RPROVIDES_${PN}-tools = "${PN}-tools" +RDEPENDS_${PN}-tools = "perl perl-module-strict" diff --git a/meta-oe/recipes-support/gflags/gflags_2.2.0.bb b/meta-oe/recipes-support/gflags/gflags_2.2.0.bb new file mode 100644 index 00000000000..28b652a6404 --- /dev/null +++ b/meta-oe/recipes-support/gflags/gflags_2.2.0.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used" + +HOMEPAGE = "https://github.com/gflags/gflags" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df" + +SRC_URI = "git://github.com/gflags/gflags.git" +SRCREV = "f8a0efe03aa69b3336d8e228b37d4ccb17324b88" + +S = "${WORKDIR}/git" + +FILES_${PN}-dev += "${libdir}/cmake" + +inherit cmake + +EXTRA_OECMAKE="-DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF -DLIB_INSTALL_DIR=${baselib}" + +PACKAGES =+ "${PN}-bash-completion" +FILES_${PN}-bash-completion += "${bindir}/gflags_completions.sh" +RDEPENDS_${PN}-bash-completion = "bash bash-completion" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/glog/glog.inc b/meta-oe/recipes-support/glog/glog.inc deleted file mode 100644 index 8a1fb4250bb..00000000000 --- a/meta-oe/recipes-support/glog/glog.inc +++ /dev/null @@ -1,11 +0,0 @@ -DESCRIPTION = "The glog library implements application-level logging. This \ -library provides logging APIs based on C++-style streams and various helper \ -macros." -HOMEPAGE = "https://code.google.com/p/google-glog/" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b" - -DEPENDS = "libunwind" - -inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch b/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch new file mode 100644 index 00000000000..596281ff684 --- /dev/null +++ b/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch @@ -0,0 +1,35 @@ +From 0fabde0515e180c53961c27346dd7a79cffa4c1f Mon Sep 17 00:00:00 2001 +From: Ricardo Ribalda Delgado +Date: Thu, 11 Aug 2016 11:49:36 +0200 +Subject: [PATCH] configure.ac: Allow user to disable gflags + +Under some circumstances like cross-compilation, the user might not want +to enable support for gflags. + +This patch allows support for --without-gflags + +Signed-off-by: Ricardo Ribalda Delgado +--- + configure.ac | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 7b4d21e7ae8a..eba5e5cda1ea 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -136,7 +136,11 @@ AC_ARG_WITH(gflags, AS_HELP_STRING[--with-gflags=GFLAGS_DIR], + CFLAGS="$CFLAGS $GFLAGS_CFLAGS" + LIBS="$LIBS $GFLAGS_LIBS" + ) +-AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0) ++if test x"$with_gflags" = x"no"; then ++ ac_cv_have_libgflags=0 ++else ++ AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0) ++fi + if test x"$ac_cv_have_libgflags" = x"1"; then + AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags library]) + if test x"$GFLAGS_LIBS" = x""; then +-- +2.8.1 + diff --git a/meta-oe/recipes-support/glog/glog_0.3.3.bb b/meta-oe/recipes-support/glog/glog_0.3.3.bb deleted file mode 100644 index de3f0765dec..00000000000 --- a/meta-oe/recipes-support/glog/glog_0.3.3.bb +++ /dev/null @@ -1,6 +0,0 @@ -require glog.inc - -SRC_URI = "http://google-glog.googlecode.com/files/glog-${PV}.tar.gz" - -SRC_URI[md5sum] = "a6fd2c22f8996846e34c763422717c18" -SRC_URI[sha256sum] = "fbf90c2285ba0561db7a40f8a4eefb9aa963e7d399bd450363e959929fe849d0" diff --git a/meta-oe/recipes-support/glog/glog_0.3.4.bb b/meta-oe/recipes-support/glog/glog_0.3.4.bb new file mode 100644 index 00000000000..d7c1974c687 --- /dev/null +++ b/meta-oe/recipes-support/glog/glog_0.3.4.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "The glog library implements application-level logging. This \ +library provides logging APIs based on C++-style streams and various helper \ +macros." +HOMEPAGE = "https://github.com/google/glog" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b" + +DEPENDS = "libunwind" + +SRC_URI = " \ + git://github.com/google/glog.git \ + file://0001-configure.ac-Allow-user-to-disable-gflags.patch \ +" + +SRCREV = "d8cb47f77d1c31779f3ff890e1a5748483778d6a" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gflags] = ",--without-gflags,gflags," + +inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb b/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb new file mode 100644 index 00000000000..b505ac18dd4 --- /dev/null +++ b/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb @@ -0,0 +1,36 @@ +SUMMARY = "The GNU portability library" +DESCRIPTION = "A collection of software subroutines which are designed to \ +be usable on many operating systems. The goal of the project \ +is to make it easy for free software authors to make their \ +software run on many operating systems. Since source is designed \ +to be copied from gnulib, it is not a library per-se, as much \ +as a collection of portable idioms to be used in other projects." + +HOMEPAGE = "http://www.gnu.org/software/gnulib/" +SECTION = "devel" +LICENSE = "LGPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5" +SRCREV = "b23000de1e47c7d580e0e220966dd1ee42a5e5bc" + +SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \ +" + +S = "${WORKDIR}/git" + +do_install () { + cd ${S} + git checkout master + git clone ${S} ${D}/${datadir}/gnulib +} + +do_patch[noexec] = "1" +do_configure[noexec] = "1" +do_compile[noexec] = "1" +do_package[noexec] = "1" +do_packagedata[noexec] = "1" +do_package_write_ipk[noexec] = "1" +do_package_write_deb[noexec] = "1" +do_package_write_rpm[noexec] = "1" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch new file mode 100644 index 00000000000..e582c0da6e3 --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch @@ -0,0 +1,33 @@ +From ea9f64eb2cdf3be6c4dc65fa1472d854616e43ca Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 6 Mar 2017 13:38:46 -0800 +Subject: [PATCH] Support Atomic ops on clang + +clang pretends to be gcc 4.2 which is a lie +it actually supports a lot more features then +gcc 4.2, here it depends on gcc 4.7 to enable +the atomics and fails for clang + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + src/base/atomicops.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/base/atomicops.h b/src/base/atomicops.h +index be038f3..f1a21ff 100644 +--- a/src/base/atomicops.h ++++ b/src/base/atomicops.h +@@ -118,7 +118,7 @@ + #include "base/atomicops-internals-linuxppc.h" + #elif defined(__GNUC__) && defined(__mips__) + #include "base/atomicops-internals-mips.h" +-#elif defined(__GNUC__) && GCC_VERSION >= 40700 ++#elif defined(__GNUC__) && GCC_VERSION >= 40700 || defined(__clang__) + #include "base/atomicops-internals-gcc.h" + #else + #error You need to implement atomic operations for this architecture +-- +2.12.0 + diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch new file mode 100644 index 00000000000..5bd0b6fa4ff --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch @@ -0,0 +1,36 @@ +From 12ac0dc6742e1bcdfaf1842186c9002f0820a5e8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 1 Jul 2017 13:21:21 -0700 +Subject: [PATCH] Use ucontext_t instead of struct ucontext + +Newer glibc has dropped the ucontext tag from exposing + +Signed-off-by: Khem Raj +--- + src/stacktrace_powerpc-linux-inl.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h +index a9bf775..47ff2d7 100644 +--- a/src/stacktrace_powerpc-linux-inl.h ++++ b/src/stacktrace_powerpc-linux-inl.h +@@ -53,7 +53,6 @@ + #elif defined(HAVE_UCONTEXT_H) + #include // for ucontext_t + #endif +-typedef ucontext ucontext_t; + + // PowerPC64 Little Endian follows BE wrt. backchain, condition register, + // and LR save area, so no need to adjust the reading struct. +@@ -202,7 +201,7 @@ static int GET_STACK_TRACE_OR_FRAMES { + struct rt_signal_frame_32 { + char dummy[64 + 16]; + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + // We don't care about the rest, since IP value is at 'uc' field.A + } *sigframe = reinterpret_cast(current); + result[n] = (void*) sigframe->uc.uc_mcontext.uc_regs->gregs[PT_NIP]; +-- +2.13.2 + diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch new file mode 100644 index 00000000000..99127e11a65 --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch @@ -0,0 +1,25 @@ +From b5961f17e9d7f2bc44da611b3e4b27c8a641fc72 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Sep 2017 08:07:17 -0700 +Subject: [PATCH] disbale heap checkers and debug allocator on musl + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + configure.ac | 2 ++ + 1 file changed, 2 insertions(+) + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac ++++ git/configure.ac +@@ -51,6 +51,8 @@ case "$host" in + *-cygwin*) default_enable_heap_checker=no; default_enable_cpu_profiler=no;; + *-freebsd*) default_enable_heap_checker=no;; + *-darwin*) default_enable_heap_checker=no;; ++ *-musl*) default_enable_heap_checker=no; default_enable_heap_profiler=no; ++ default_enable_debugalloc=no; default_enable_libunwind=no; + esac + + # Currently only backtrace works on s390. diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch new file mode 100644 index 00000000000..78621c7fe08 --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch @@ -0,0 +1,61 @@ +From 157914941bd38f1a38bb6bd7294ca6c2bc1b8dcb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 16 Jul 2017 15:51:28 -0700 +Subject: [PATCH] fix build with musl libc + +Patch from https://github.com/gperftools/gperftools/pull/765/ + +Signed-off-by: Khem Raj +--- + configure.ac | 1 + + src/malloc_hook_mmap_linux.h | 8 ++++++-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b42fea3..70b49a3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -188,6 +188,7 @@ AC_HEADER_STDC + AC_CHECK_TYPES([__int64]) # defined in some windows platforms + AC_CHECK_TYPES([struct mallinfo],,, [#include ]) + AC_CHECK_TYPES([Elf32_Versym],,, [#include ]) # for vdso_support.h ++AC_CHECK_FUNCS(__sbrk) # for intercepting glibc memory allocator + AC_CHECK_FUNCS(sbrk) # for tcmalloc to get memory + AC_CHECK_FUNCS(geteuid) # for turning off services when run as root + AC_CHECK_FUNCS(fork) # for the pthread_atfork setup +diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h +index 79ac4e3..d444635 100755 +--- a/src/malloc_hook_mmap_linux.h ++++ b/src/malloc_hook_mmap_linux.h +@@ -46,6 +46,10 @@ + #include + #include "base/linux_syscall_support.h" + ++#ifndef __GLIBC__ ++typedef off64_t __off64_t; ++#endif ++ + // The x86-32 case and the x86-64 case differ: + // 32b has a mmap2() syscall, 64b does not. + // 64b and 32b have different calling conventions for mmap(). +@@ -168,7 +172,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags, + return result; + } + +-# if !defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH) ++# if defined(__GLIBC__) && (!defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH)) + + extern "C" void* mmap(void *start, size_t length, int prot, int flags, + int fd, off_t offset) __THROW { +@@ -206,7 +210,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size, + return result; + } + +-#ifndef __UCLIBC__ ++#if HAVE___SBRK + // libc's version: + extern "C" void* __sbrk(ptrdiff_t increment); + +-- +2.13.3 + diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch new file mode 100644 index 00000000000..667008a5b1e --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch @@ -0,0 +1,28 @@ +From 04ea8e001501931f4dbf20288aca78469617b08a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 16 Jul 2017 19:28:17 -0700 +Subject: [PATCH] include fcntl.h for loff_t definition + +Fixes +linux_syscall_support.h:2641:26: error: 'loff_t' has not been declared + +Signed-off-by: Khem Raj +--- + src/base/linux_syscall_support.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h +index 85347a2..70431ca 100644 +--- a/src/base/linux_syscall_support.h ++++ b/src/base/linux_syscall_support.h +@@ -162,6 +162,7 @@ extern "C" { + #include + #include + #include ++#include + + #ifdef __mips__ + /* Include definitions of the ABI currently in use. */ +-- +2.13.3 + diff --git a/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch b/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch new file mode 100644 index 00000000000..f2647404bfc --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch @@ -0,0 +1,23 @@ +Disable libunwind on aarch64 + +Fixes hangs when using libtcmalloc.so + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac ++++ git/configure.ac +@@ -69,6 +69,11 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [re + [default_enable_libunwind=yes + default_tcmalloc_pagesize=8]) + ++# Disable libunwind linking on aarch64 by default. ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [return __aarch64__])], ++ [default_enable_libunwind=no], ++ [default_enable_libunwind=yes]) ++ + AC_ARG_ENABLE([cpu-profiler], + [AS_HELP_STRING([--disable-cpu-profiler], + [do not build the cpu profiler])], diff --git a/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch b/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch new file mode 100644 index 00000000000..7e1a23bf687 --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch @@ -0,0 +1,17 @@ +sgidef.h does not exist on musl and its not needed to compile + +Signed-off-by: Khem Raj +Upstream-Status: Pending +Index: git/src/base/linux_syscall_support.h +=================================================================== +--- git.orig/src/base/linux_syscall_support.h ++++ git/src/base/linux_syscall_support.h +@@ -164,7 +164,7 @@ extern "C" { + #include + #include + +-#ifdef __mips__ ++#if defined(__mips__) && defined(__glibc__) + /* Include definitions of the ABI currently in use. */ + #include + #endif diff --git a/meta-oe/recipes-support/gperftools/gperftools_2.1.bb b/meta-oe/recipes-support/gperftools/gperftools_2.1.bb deleted file mode 100644 index 7d4a0b0c586..00000000000 --- a/meta-oe/recipes-support/gperftools/gperftools_2.1.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools" -HOMEPAGE = "http://code.google.com/p/gperftools/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a" -DEPENDS = "libunwind" - -SRC_URI = "${DEBIAN_MIRROR}/main/g/google-perftools/google-perftools_${PV}.orig.tar.gz" - -SRC_URI[md5sum] = "5e5a981caf9baa9b4afe90a82dcf9882" -SRC_URI[sha256sum] = "f3ade29924f89409d8279ab39e00af7420593baa4941c318db42e70ead7e494f" - -inherit autotools diff --git a/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb b/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb new file mode 100644 index 00000000000..ecac6c5cc86 --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools" +HOMEPAGE = "https://github.com/gperftools/gperftools" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a" +DEPENDS += "libunwind" + +SRCREV = "bf840dec0495e17f5c8403e68e10b9d6bf05c559" +SRC_URI = "git://github.com/gperftools/gperftools \ + file://0001-Support-Atomic-ops-on-clang.patch \ + file://0001-Use-ucontext_t-instead-of-struct-ucontext.patch \ + file://0001-fix-build-with-musl-libc.patch \ + file://0001-include-fcntl.h-for-loff_t-definition.patch \ + file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \ + file://disable_libunwind_aarch64.patch \ + file://sgidef.patch \ + " + +inherit autotools + +S = "${WORKDIR}/git" + +# Disable thumb1 +# {standard input}: Assembler messages: +# {standard input}:434: Error: lo register required -- `ldr pc,[sp]' +# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed +ARM_INSTRUCTION_SET_armv5 = "arm" + diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch b/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch deleted file mode 100644 index e43bdcb222a..00000000000 --- a/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch +++ /dev/null @@ -1,12 +0,0 @@ -Upstream-Status: pending - ---- gpm-1.99.7.orig/src/daemon/open_console.c 2008-07-24 12:33:05.000000000 +0200 -+++ gpm-1.99.7/src/daemon/open_console.c 2013-01-10 12:39:47.975461947 +0100 -@@ -23,6 +23,7 @@ - #include /* open and co. */ - #include /* stat() */ - #include /* ioctl() */ -+#include /* major() */ - - /* Linux specific (to be outsourced in gpm2 */ - #include /* for serial console check */ diff --git a/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch b/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch new file mode 100644 index 00000000000..a9198166a94 --- /dev/null +++ b/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch @@ -0,0 +1,34 @@ +From 52e6cf052b1f938fcca1bc24d578fe0bfd972988 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 25 Jun 2017 07:25:33 -0700 +Subject: [PATCH] Use sigemptyset API instead of __sigemptyset + +__sigemptyset has been removed from glibc public +API headers in upcoming (2.26) release onwards + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + src/prog/gpm-root.y | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y +index 5126c65..76c896c 100644 +--- a/src/prog/gpm-root.y ++++ b/src/prog/gpm-root.y +@@ -1196,11 +1196,7 @@ int main(int argc, char **argv) + LOG_DAEMON : LOG_USER); + /* reap your zombies */ + childaction.sa_handler=reap_children; +-#if defined(__GLIBC__) +- __sigemptyset(&childaction.sa_mask); +-#else /* __GLIBC__ */ + sigemptyset(&childaction.sa_mask); +-#endif /* __GLIBC__ */ + childaction.sa_flags=0; + sigaction(SIGCHLD,&childaction,NULL); + +-- +2.13.1 + diff --git a/meta-oe/recipes-support/gpm/gpm/gpm.service.in b/meta-oe/recipes-support/gpm/gpm/gpm.service.in new file mode 100644 index 00000000000..ee6c040fa6b --- /dev/null +++ b/meta-oe/recipes-support/gpm/gpm/gpm.service.in @@ -0,0 +1,9 @@ +[Unit] +Description=Virtual console mouse server + +[Service] +Type=forking +ExecStart=@bindir@/gpm -m /dev/input/mice -t imps2 + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/init b/meta-oe/recipes-support/gpm/gpm/init similarity index 100% rename from meta-oe/recipes-support/gpm/gpm-1.99.7/init rename to meta-oe/recipes-support/gpm/gpm/init diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch b/meta-oe/recipes-support/gpm/gpm/no-docs.patch similarity index 93% rename from meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch rename to meta-oe/recipes-support/gpm/gpm/no-docs.patch index f10217a9424..3faef84ee2f 100644 --- a/meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch +++ b/meta-oe/recipes-support/gpm/gpm/no-docs.patch @@ -11,7 +11,7 @@ Index: gpm-1.99.7/Makefile.in # user-overridable flags, but it's also all the implicit rule looks at. # missing ? --SUBDIRS = src doc contrib gpm2 +-SUBDIRS = src doc contrib +SUBDIRS = src diff --git a/meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch b/meta-oe/recipes-support/gpm/gpm/processcreds.patch similarity index 100% rename from meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch rename to meta-oe/recipes-support/gpm/gpm/processcreds.patch diff --git a/meta-oe/recipes-support/gpm/gpm_1.99.7.bb b/meta-oe/recipes-support/gpm/gpm_1.99.7.bb deleted file mode 100644 index 7022057d4a4..00000000000 --- a/meta-oe/recipes-support/gpm/gpm_1.99.7.bb +++ /dev/null @@ -1,52 +0,0 @@ -DESCRIPTION = "GPM (General Purpose Mouse) is a mouse server \ -for the console and xterm, with sample clients included \ -(emacs, etc)." -SECTION = "console/utils" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://gpm2/core/main.c;endline=19;md5=66d3c205c4e7ee5704b2ee351dfed72f" - -PR = "r2" - -DEPENDS = "ncurses" - -SRC_URI = "ftp://arcana.linux.it/pub/gpm/gpm-${PV}.tar.bz2 \ - file://no-docs.patch \ - file://processcreds.patch \ - file://eglibc-2.17.patch \ - file://init" - -inherit autotools-brokensep update-rc.d - -INITSCRIPT_NAME = "gpm" -INITSCRIPT_PARAMS = "defaults" - -#export LIBS = "-lm" - -# all fields are /* FIXME: gpm 1.99.13 */ -# gpm-1.99.7/src/lib/libhigh.c:171:43: error: parameter 'clientdata' set but not used [-Werror=unused-but-set-parameter] -# gpm-1.99.7/src/lib/report-lib.c:28:21: error: parameter 'line' set but not used [-Werror=unused-but-set-parameter] -# gpm-1.99.7/src/lib/report-lib.c:28:33: error: parameter 'file' set but not used [-Werror=unused-but-set-parameter] -# gpm-1.99.7/src/drivers/empty/i.c:26:23: error: parameter 'fd' set but not used [-Werror=unused-but-set-parameter] -# gpm-1.99.7/src/drivers/empty/i.c:26:42: error: parameter 'flags' set but not used [-Werror=unused-but-set-parameter] -# gpm-1.99.7/src/drivers/etouch/i.c:34:43: error: parameter 'flags' set but not used [-Werror=unused-but-set-parameter] -# gpm-1.99.7/src/drivers/msc/r.c:32:12: error: variable 'dy' set but not used [-Werror=unused-but-set-variable] -# gpm-1.99.7/src/drivers/msc/r.c:32:8: error: variable 'dx' set but not used [-Werror=unused-but-set-variable] -# cc1: all warnings being treated as errors -CFLAGS += "-Wno-extra -Wno-error=unused-but-set-parameter -Wno-error=unused-but-set-variable" - -# twiddler is WIP in 1.99.7 and probably not worth fixing (a lot of changes in gpm-2-dev after 1.99.7 -# gpm-1.99.7/src/drivers/twid/twiddler.c:503:14: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] -# /gpm-1.99.7/src/mice.c:221:5: error: (near initialization for 'mice[32].init') [-Werror] -CFLAGS += "-Wno-error=int-to-pointer-cast -Wno-error" - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -m 0644 src/headers/gpm.h ${D}${includedir} - install -d ${D}/${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/gpm - cd ${D}${libdir} && ln -sf libgpm.so.1.19.0 libgpm.so.1 -} -SRC_URI[md5sum] = "9fdddf5f53cb11d40bb2bb671d3ac544" -SRC_URI[sha256sum] = "6071378b24494e36ca3ef6377606e7e565040413c86704753a162d2180af32ee" - -FILES_${PN} += "${datadir}/emacs" diff --git a/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-oe/recipes-support/gpm/gpm_git.bb new file mode 100644 index 00000000000..51c4dd6397f --- /dev/null +++ b/meta-oe/recipes-support/gpm/gpm_git.bb @@ -0,0 +1,47 @@ +DESCRIPTION = "GPM (General Purpose Mouse) is a mouse server \ +for the console and xterm, with sample clients included \ +(emacs, etc)." +SECTION = "console/utils" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760" + +PV = "1.99.7+git${SRCREV}" +PR = "r2" +SRCREV = "1fd19417b8a4dd9945347e98dfa97e4cfd798d77" + +DEPENDS = "ncurses" + +SRC_URI = "git://github.com/telmich/gpm;protocol=git \ + file://init \ + file://no-docs.patch \ + file://processcreds.patch \ + file://gpm.service.in \ + file://0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools-brokensep update-rc.d systemd + +INITSCRIPT_NAME = "gpm" +INITSCRIPT_PARAMS = "defaults" + +do_configure_prepend() { + (cd ${S};./autogen.sh;cd -) +} + +do_install_append () { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + sed 's:@bindir@:${bindir}:' < ${WORKDIR}/gpm.service.in >${D}${systemd_system_unitdir}/gpm.service + fi + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -D -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/gpm + fi + install -D -m 0644 ${S}/src/headers/gpm.h ${D}${includedir}/gpm.h + ln -s libgpm.so.2 ${D}${libdir}/libgpm.so +} + +SYSTEMD_SERVICE_${PN} = "gpm.service" + +FILES_${PN} += "${datadir}/emacs" diff --git a/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch b/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch new file mode 100644 index 00000000000..09a60127a4f --- /dev/null +++ b/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch @@ -0,0 +1,26 @@ +From d67e93ada37d7237983fd10894c18b92f4243d50 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 18 Mar 2017 08:51:45 -0700 +Subject: [PATCH] Makefile: Append instead of overriding LDFLAGS + +Signed-off-by: Khem Raj +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 28557ff..deed94c 100644 +--- a/Makefile ++++ b/Makefile +@@ -29,7 +29,7 @@ OPT_FLAGS := -O2 + # for older versions of grsecurity, comment the above line and uncomment the below: + #OPT_FLAGS := $(shell if [ "`uname -m`" != "sparc64" ] && [ "`uname -m`" != "x86_64" ]; then echo "-O2" ; else echo "-O2 -m64" ; fi) + CFLAGS := $(OPT_FLAGS) -fPIE -Wcast-qual -DGRSEC_DIR=\"$(GRSEC_DIR)\" -D_LARGEFILE64_SOURCE +-LDFLAGS= -pie ++LDFLAGS+= -pie + INSTALL = /usr/bin/install -c + + # FHS +-- +2.12.0 + diff --git a/meta-oe/recipes-support/gradm/gradm_3.0.bb b/meta-oe/recipes-support/gradm/gradm_3.0.bb deleted file mode 100644 index 2f1d39d9962..00000000000 --- a/meta-oe/recipes-support/gradm/gradm_3.0.bb +++ /dev/null @@ -1,50 +0,0 @@ -SUMMARY = "Administration program for the grsecurity RBAC syste" -DESCRIPTION = "\ -gradm is the userspace RBAC parsing and authentication program for \ -grsecurity grsecurity aims to be a complete security system. gradm \ -performs several tasks for the RBAC system including authenticated \ -via a password to the kernel and parsing rules to be passed to the \ -kernel" -HOMEPAGE = "http://grsecurity.net/index.php" -SECTION = "admin" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b" -DEPENDS = "flex-native bison-native ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" - -SRC_URI = "http://grsecurity.net/stable/${BP}-201408301734.tar.gz \ - file://0001-Makefile-remove-strip.patch" -SRC_URI[md5sum] = "79ec912e6544c5e58753f658623763f9" -SRC_URI[sha256sum] = "b190e5afecdf3ac5020a4e5e4b698645f1c01b20d036129dd8b609c4bd0c319c" - -S = "${WORKDIR}/gradm" - -inherit autotools-brokensep - -do_compile() { - oe_runmake 'CC=${CC}' \ - 'OPT_FLAGS=${CFLAGS}' \ - 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ - 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \ - 'BISON=${STAGING_BINDIR_NATIVE}/bison' \ - ${@base_contains('DISTRO_FEATURES', 'pam', ' ', 'nopam', d)} -} - -do_install() { - oe_runmake 'CC=${CC}' \ - 'DESTDIR=${D}' \ - 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ - 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \ - 'BISON=${STAGING_BINDIR_NATIVE}/bison' \ - install - - # The device nodes are generated by postinstall or udev - rm -rf ${D}/dev -} - -pkg_postinst_${PN}() { - # make sure running on the target - if [ x"$D" != "x" ]; then - exit 1 - fi - /bin/mknod -m 0622 /dev/grsec c 1 13 -} diff --git a/meta-oe/recipes-support/gradm/gradm_3.1.bb b/meta-oe/recipes-support/gradm/gradm_3.1.bb new file mode 100644 index 00000000000..1a4261a9ead --- /dev/null +++ b/meta-oe/recipes-support/gradm/gradm_3.1.bb @@ -0,0 +1,52 @@ +SUMMARY = "Administration program for the grsecurity RBAC syste" +DESCRIPTION = "\ +gradm is the userspace RBAC parsing and authentication program for \ +grsecurity grsecurity aims to be a complete security system. gradm \ +performs several tasks for the RBAC system including authenticated \ +via a password to the kernel and parsing rules to be passed to the \ +kernel" +HOMEPAGE = "http://grsecurity.net/index.php" +SECTION = "admin" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b" +DEPENDS = "flex-native bison-native ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +SRC_URI = "http://grsecurity.net/stable/${BP}-201507191652.tar.gz \ + file://0001-Makefile-remove-strip.patch \ + file://0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch \ + " +SRC_URI[md5sum] = "ecec72d3a9b6d84c00eda97957b707b6" +SRC_URI[sha256sum] = "2f14c357bf0459e502a4e108b76c3f6240aa484762d07bb1687796b9b9297a50" + +S = "${WORKDIR}/gradm" + +inherit autotools-brokensep + +do_compile() { + oe_runmake 'CC=${CC}' \ + 'OPT_FLAGS=${CFLAGS}' \ + 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ + 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \ + 'BISON=${STAGING_BINDIR_NATIVE}/bison' \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', ' ', 'nopam', d)} +} + +do_install() { + oe_runmake 'CC=${CC}' \ + 'DESTDIR=${D}' \ + 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \ + 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \ + 'BISON=${STAGING_BINDIR_NATIVE}/bison' \ + install + + # The device nodes are generated by postinstall or udev + rm -rf ${D}/dev +} + +pkg_postinst_${PN}() { + # make sure running on the target + if [ x"$D" != "x" ]; then + exit 1 + fi + /bin/mknod -m 0622 /dev/grsec c 1 13 +} diff --git a/meta-oe/recipes-support/gsoap/gsoap-native_2.8.12.bb b/meta-oe/recipes-support/gsoap/gsoap-native_2.8.12.bb deleted file mode 100644 index 46fabbbb47a..00000000000 --- a/meta-oe/recipes-support/gsoap/gsoap-native_2.8.12.bb +++ /dev/null @@ -1,14 +0,0 @@ -require gsoap_${PV}.inc - -DEPENDS = "" -EXTRA_OEMAKE = "" - -inherit native - -do_install() { - oe_runmake DESTDIR=${D} BINDIR=${D}${bindir} install -} - - -SRC_URI[md5sum] = "5700d26fc6fe3073d038349e19c3640d" -SRC_URI[sha256sum] = "51eef118544fa846f4d2dea2eedf91c84c46a1abeafc5eee3dcff783f4015a00" diff --git a/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch b/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch new file mode 100644 index 00000000000..5ceb4bf025a --- /dev/null +++ b/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch @@ -0,0 +1,178 @@ +From 8a10b6bd556426616e93f15639f369defbeca33f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 14 Aug 2017 11:58:58 -0700 +Subject: [PATCH] Fix out of tree builds + +When build dir is not same as sourcedir then the build failed due +to use of $(srcdir) variable which assumes source = build therefore +replace that with top_srcdir + +Additionally move the conditional addition of sources to Makefile.am +instead of adding it in configure.ac, since then we can use top_srcdir +variable to access those sources too otherwise its not possible to +specify the right dir for these sources + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted[https://sourceforge.net/p/gsoap2/patches/171/] + + configure.ac | 5 +++-- + gsoap/Makefile.am | 14 +++++++------- + gsoap/samples/autotest/Makefile.am | 8 ++++---- + gsoap/samples/databinding/Makefile.am | 8 ++++---- + gsoap/wsdl/Makefile.am | 15 +++++++++------ + 5 files changed, 27 insertions(+), 23 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 0631c18..c36e696 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -265,7 +265,7 @@ if test "x$with_openssl" = "xyes"; then + WSDL2H_EXTRA_FLAGS="-DWITH_OPENSSL -DWITH_GZIP" + # an ugly hack to get httpda and smdevp plugins to conditionally + # compile with wsdl2h when OPENSSL is available +- WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} ../plugin/httpda.c ../plugin/smdevp.c ../plugin/threads.c -lssl -lcrypto -lz" ++ WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lssl -lcrypto -lz" + SAMPLE_INCLUDES= + SAMPLE_SSL_LIBS="-lssl -lcrypto -lz" + WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a" +@@ -289,12 +289,13 @@ else + SAMPLE_INCLUDES= + WSDL2H_SOAP_CPP_LIB="libgsoap++.a" + fi ++AM_CONDITIONAL(WITH_OPENSSL, test "x$with_openssl" = "xyes" -a "x$with_gnutls" != "xyes") ++AC_SUBST(WITH_OPENSSL) + AC_SUBST(WSDL2H_EXTRA_FLAGS) + AC_SUBST(WSDL2H_EXTRA_LIBS) + AC_SUBST(SAMPLE_INCLUDES) + AC_SUBST(SAMPLE_SSL_LIBS) + AC_SUBST(WSDL2H_SOAP_CPP_LIB) +- + # enable the compile of the samples + AC_ARG_ENABLE(samples, + [ --enable-samples enable compile for the gsoap samples], +diff --git a/gsoap/Makefile.am b/gsoap/Makefile.am +index 7273b82..9c0c89f 100644 +--- a/gsoap/Makefile.am ++++ b/gsoap/Makefile.am +@@ -13,26 +13,26 @@ AM_CXXFLAGS = $(SOAPCPP2_DEBUG) -D$(platform) + AM_CFLAGS = $(SOAPCPP2_DEBUG) -D$(platform) + + # Install all soapcpp2 and wsdl2h files into ${prefix}/share/gsoap +-nobase_pkgdata_DATA = $(srcdir)/import/* $(srcdir)/plugin/* $(srcdir)/WS/* $(srcdir)/custom/* $(srcdir)/extras/* ++nobase_pkgdata_DATA = $(top_srcdir)/gsoap/import/* $(top_srcdir)/gsoap/plugin/* $(top_srcdir)/gsoap/WS/* $(top_srcdir)/gsoap/custom/* $(top_srcdir)/gsoap/extras/* + + ## we cannot build stdsoap2.o from 2 different sources (stdsoap2.cpp and stdsoap2.c), so we need an intermediate target: + stdsoap2_ck.c: stdsoap2.cpp +- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck.c ++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck.c + + stdsoap2_cpp.cpp: stdsoap2.cpp +- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_cpp.cpp ++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_cpp.cpp + + stdsoap2_ck_cpp.cpp: stdsoap2.cpp +- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck_cpp.cpp ++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck_cpp.cpp + + stdsoap2_ssl.c: stdsoap2.cpp +- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl.c ++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl.c + + stdsoap2_ssl_cpp.cpp: stdsoap2.cpp +- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl_cpp.cpp ++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl_cpp.cpp + ## do the same fo dom.cpp since we want to link it into the cpp libs and dom.c into the c libs + dom_cpp.cpp: dom.cpp +- $(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp ++ $(LN_S) -f $(top_srcdir)/gsoap/dom.cpp dom_cpp.cpp + + lib_LIBRARIES = libgsoap.a libgsoap++.a libgsoapck.a libgsoapck++.a libgsoapssl.a libgsoapssl++.a + +diff --git a/gsoap/samples/autotest/Makefile.am b/gsoap/samples/autotest/Makefile.am +index 36adf51..61e514c 100644 +--- a/gsoap/samples/autotest/Makefile.am ++++ b/gsoap/samples/autotest/Makefile.am +@@ -6,13 +6,13 @@ + AUTOMAKE_OPTIONS = subdir-objects foreign 1.4 + + CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin +-AM_LDFLAGS=$(CPPFLAGS) -I$(srcdir) -L$(srcdir) ++AM_LDFLAGS=$(CPPFLAGS) -I$(top_srcdir)/gsoap/samples/autotest -L$(top_srcdir)/gsoap/samples/autotest + SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT) + WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT) +-WSDL_FLAGS=-d -P -t $(srcdir)/typemap.dat ++WSDL_FLAGS=-d -P -t $(top_srcdir)/gsoap/samples/autotest/typemap.dat + SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/import -I$(top_srcdir)/gsoap/custom +-WSDLINPUT=$(srcdir)/examples.wsdl +-SOAPHEADER=$(srcdir)/examples.h ++WSDLINPUT=$(top_srcdir)/gsoap/samples/autotest/examples.wsdl ++SOAPHEADER=$(top_srcdir)/gsoap/samples/autotest/examples.h + SOAP_CPP_SRC=soapC.cpp soapServer.cpp + SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a + +diff --git a/gsoap/samples/databinding/Makefile.am b/gsoap/samples/databinding/Makefile.am +index 892d4fd..86ad482 100644 +--- a/gsoap/samples/databinding/Makefile.am ++++ b/gsoap/samples/databinding/Makefile.am +@@ -6,13 +6,13 @@ + AUTOMAKE_OPTIONS = subdir-objects foreign 1.4 + + CPPFLAGS=$(SAMPLE_INCLUDES) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin +-AM_LDFLAGS=$(AM_CPPFLAGS) -I$(srcdir) -L$(srcdir) ++AM_LDFLAGS=$(AM_CPPFLAGS) -I$(top_srcdir)/gsoap/samples/databinding -L$(top_srcdir)/gsoap/samples/databinding + SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT) + WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT) +-WSDL_FLAGS=-g -t $(srcdir)/addresstypemap.dat ++WSDL_FLAGS=-g -t $(top_srcdir)/gsoap/samples/databinding/addresstypemap.dat + SOAP_FLAGS=-0 -CS -p address -I$(top_srcdir)/gsoap/import +-WSDLINPUT=$(srcdir)/address.xsd +-SOAPHEADER=$(srcdir)/address.h ++WSDLINPUT=$(top_srcdir)/gsoap/samples/databinding/address.xsd ++SOAPHEADER=$(top_srcdir)/gsoap/samples/databinding/address.h + SOAP_CPP_SRC=addressC.cpp + SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a + +diff --git a/gsoap/wsdl/Makefile.am b/gsoap/wsdl/Makefile.am +index b8da5db..9f2aefa 100644 +--- a/gsoap/wsdl/Makefile.am ++++ b/gsoap/wsdl/Makefile.am +@@ -6,14 +6,14 @@ + AUTOMAKE_OPTIONS = foreign 1.4 + + # INCLUDES=-I$(top_srcdir)/gsoap +-# AM_LDFLAGS=$(INCLUDES) -I$(srcdir) -L$(srcdir) +-AM_LDFLAGS=-L$(srcdir) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin ++# AM_LDFLAGS=$(INCLUDES) -I$(top_srcdir)/gsoap/wsdl -L$(top_srcdir)/gsoap/wsdl ++AM_LDFLAGS=-L$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin + AM_CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin + SOAP=$(top_builddir)/gsoap/src/soapcpp2$(EXEEXT) + SOAP_CPP_LIB=$(top_builddir)/gsoap/$(WSDL2H_SOAP_CPP_LIB) + SOAP_CPP_SRC=wsdlC.cpp +-SOAPHEADER=$(srcdir)/wsdl.h +-SOAP_FLAGS=-SC -pwsdl -I$(srcdir) -I$(top_srcdir)/gsoap/import ++SOAPHEADER=$(top_srcdir)/gsoap/wsdl/wsdl.h ++SOAP_FLAGS=-SC -pwsdl -I$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap/import + BUILT_SOURCES=$(SOAP_CPP_SRC) + # WSDL2H_EXTRA_FLAGS=-DWITH_OPENSSL -DWITH_GZIP # defined in configure.in + # WSDL2H_EXTRA_LIBS=-lssl -lcrypto -lz # defined in configure.in +@@ -24,11 +24,14 @@ $(SOAP_CPP_SRC) : $(SOAPHEADER) + #LIBS= + + bin_PROGRAMS=wsdl2h +- ++if WITH_OPENSSL ++wsdl2h_LDADD=$(SOAP_CPP_LIB) $(top_srcdir)/gsoap/plugin/httpda.c $(top_srcdir)/gsoap/plugin/smdevp.c $(top_srcdir)/gsoap/plugin/threads.c $(WSDL2H_EXTRA_LIBS) ++else ++wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS) ++endif + wsdl2h_CFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS) + wsdl2h_CXXFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS) $(WSDL2H_IMPORTPATH) + wsdl2h_CPPFLAGS=$(AM_CPPFLAGS) $(SOAPCPP2_NONAMESPACES) -D$(platform) + wsdl2h_SOURCES=wsdl2h.cpp wsdl.cpp wadl.cpp schema.cpp types.cpp service.cpp soap.cpp mime.cpp wsp.cpp bpel.cpp $(SOAP_CPP_SRC) +-wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS) + + CLEANFILES= *~ *C.cpp *H.h *Stub.h *.nsmap +-- +2.14.1 + diff --git a/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch b/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch new file mode 100644 index 00000000000..571cbe54092 --- /dev/null +++ b/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch @@ -0,0 +1,63 @@ +From db260fbc7af4c73c997c485a0c69c61594a0e59c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 30 Aug 2017 19:48:50 -0700 +Subject: [PATCH] stdgsoap2: Fix build with musl + +Signed-off-by: Khem Raj +--- + gsoap/stdsoap2.c | 2 +- + gsoap/stdsoap2.cpp | 4 ++-- + gsoap/stdsoap2.h | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c +index 58e9df4..62389e1 100644 +--- a/gsoap/stdsoap2.c ++++ b/gsoap/stdsoap2.c +@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr) + return soap->error = SOAP_EOM; + return SOAP_OK; + } +-#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__) ++#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__) + if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0) + host = NULL; + #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R)) +diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp +index 58e9df4..b637161 100644 +--- a/gsoap/stdsoap2.cpp ++++ b/gsoap/stdsoap2.cpp +@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr) + return soap->error = SOAP_EOM; + return SOAP_OK; + } +-#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__) ++#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__) + if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0) + host = NULL; + #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R)) +@@ -19658,7 +19658,7 @@ soap_strerror(struct soap *soap) + { + #ifndef WIN32 + # ifdef HAVE_STRERROR_R +-# if defined(_GNU_SOURCE) && !defined(__ANDROID__) ++# if defined(_GNU_SOURCE) && !defined(__ANDROID__) && defined(__GLIBC__) + return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */ + # else + strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */ +diff --git a/gsoap/stdsoap2.h b/gsoap/stdsoap2.h +index 07a3952..c6ace4c 100644 +--- a/gsoap/stdsoap2.h ++++ b/gsoap/stdsoap2.h +@@ -947,7 +947,7 @@ extern "C" { + # endif + #elif defined(SOCKLEN_T) + # define SOAP_SOCKLEN_T SOCKLEN_T +-#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) ++#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) || defined (LINUX) + # define SOAP_SOCKLEN_T socklen_t + #elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS) + # define SOAP_SOCKLEN_T int +-- +2.14.1 + diff --git a/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb b/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb deleted file mode 100644 index b85db05ff60..00000000000 --- a/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb +++ /dev/null @@ -1,17 +0,0 @@ -require gsoap_${PV}.inc - -DEPENDS = "gsoap-native openssl zlib" - -do_install_append() { - install -d ${D}${libdir} - for lib in libgsoapssl libgsoapssl++ libgsoap libgsoapck++ libgsoap++ libgsoapck - do - oe_libinstall -C gsoap $lib ${D}${libdir} - done -} - -FILES_${PN} = "${bindir}/wsdl2h ${bindir}/soapcpp2" -FILES_${PN} += "${datadir}" - -SRC_URI[md5sum] = "5700d26fc6fe3073d038349e19c3640d" -SRC_URI[sha256sum] = "51eef118544fa846f4d2dea2eedf91c84c46a1abeafc5eee3dcff783f4015a00" diff --git a/meta-oe/recipes-support/gsoap/gsoap_2.8.12.inc b/meta-oe/recipes-support/gsoap/gsoap_2.8.12.inc deleted file mode 100644 index 9e2a7825f65..00000000000 --- a/meta-oe/recipes-support/gsoap/gsoap_2.8.12.inc +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \ -for the development of SOAP Web Services and clients." -SECTION = "devel" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b338b08b1b61e028e0f399a4de25e58f" - -SRC_URI = "${SOURCEFORGE_MIRROR}/gsoap2/gsoap_${PV}.zip \ -" - -inherit autotools - -PR = "r1" - -S = "${WORKDIR}/gsoap-2.8" - -FILES_${PN}-dev = "${includedir}" -RRECOMMENDS_${PN}-dev = "${PN}-staticdev" - -FILES_${PN}-staticdev = "${libdir}" - -PARALLEL_MAKE = "" - -EXTRA_OEMAKE = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2" diff --git a/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb b/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb new file mode 100644 index 00000000000..88758446153 --- /dev/null +++ b/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \ +for the development of SOAP Web Services and clients." +SECTION = "devel" +LICENSE = "GPL-2.0-with-OpenSSL-exception" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \ + file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \ + file://0001-Fix-out-of-tree-builds.patch \ + file://0001-stdgsoap2-Fix-build-with-musl.patch \ + " +SRC_URI[md5sum] = "212951d6e1435bb51fa4320f458809ea" +SRC_URI[sha256sum] = "3e7bb24a9e492f5cb86daca34054c9787152f1d7b70add36b789d03816d5ffa1" + +inherit autotools + +BBCLASSEXTEND = "native" + +S = "${WORKDIR}/${BPN}-2.8" + +PARALLEL_MAKE = "" + +EXTRA_OEMAKE_class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2" + +DEPENDS = "openssl zlib flex bison" +DEPENDS_append_class-target = " gsoap-native" + +do_install_append() { + install -d ${D}${libdir} + for lib in libgsoapssl libgsoapssl++ libgsoap libgsoapck++ libgsoap++ libgsoapck + do + oe_libinstall -C gsoap $lib ${D}${libdir} + done +} + +do_install_class-native() { + oe_runmake DESTDIR=${D} BINDIR=${D}${bindir} install +} + +FILES_${PN} = "${bindir}/wsdl2h ${bindir}/soapcpp2" +FILES_${PN} += "${datadir}" +FILES_${PN}-staticdev = "${libdir}" +FILES_${PN}-dev = "${includedir}" +RRECOMMENDS_${PN}-dev = "${PN}-staticdev" diff --git a/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch b/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch new file mode 100644 index 00000000000..cfffa2ed090 --- /dev/null +++ b/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch @@ -0,0 +1,37 @@ +From d195f8cfe41991573128ccdcd3a0ed0267aa5e33 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 28 Jun 2017 19:44:46 -0700 +Subject: [PATCH] backtrace: Replace struct ucontext with ucontext_t + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/backtrace.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/backtrace.c b/src/backtrace.c +index 69bee99..dc35f8f 100644 +--- a/src/backtrace.c ++++ b/src/backtrace.c +@@ -42,7 +42,7 @@ + #define MAX_BTSIZE 64 + + void backtrace_handler(int n, siginfo_t *ist, void *extra) { +- static struct ucontext *puc; ++ static ucontext_t *puc; + static void *btinfo[MAX_BTSIZE]; + static char **messages = NULL; + static size_t btsize = 0; +@@ -58,7 +58,7 @@ void backtrace_handler(int n, siginfo_t *ist, void *extra) { + + #define SIC_CASE(c) case c: strerr = #c + +- puc = (struct ucontext *)extra; ++ puc = (ucontext_t *)extra; + switch(n) { + case SIGSEGV: + switch(ist->si_code) { +-- +2.13.2 + diff --git a/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb b/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb index 601b7b11513..4a871bf4f42 100644 --- a/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb +++ b/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb @@ -8,6 +8,7 @@ SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/hddtemp/hddtemp-0.3-beta15.tar.bz2 \ file://hddtemp-no-nls-support.patch \ file://hddtemp_0.3-beta15-52.diff \ file://hddtemp-0.3-beta15-autodetect-717479.patch \ + file://0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch \ file://hddtemp.db \ file://init \ " diff --git a/meta-oe/recipes-support/hidapi/hidapi_git.bb b/meta-oe/recipes-support/hidapi/hidapi_git.bb new file mode 100644 index 00000000000..a34797ff51e --- /dev/null +++ b/meta-oe/recipes-support/hidapi/hidapi_git.bb @@ -0,0 +1,15 @@ +SUMMARY = "Multi-platform library to interface with USB and Bluetooth HID-Class devices" +AUTHOR = "Alan Ott" +HOMEPAGE = "http://www.signal11.us/oss/hidapi/" +SECTION = "libs" +LICENSE = "BSD-3-Clause | GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7c3949a631240cb6c31c50f3eb696077" +DEPENDS = "libusb udev" +PV = "0.7.99+0.8.0-rc1+git${SRCPV}" + +SRCREV = "d17db57b9d4354752e0af42f5f33007a42ef2906" +SRC_URI = "git://github.com/signal11/hidapi.git" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch b/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch new file mode 100644 index 00000000000..ff5cd49237d --- /dev/null +++ b/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch @@ -0,0 +1,46 @@ +From 7ebcbf17ad9483c7109e4a83b66966bc02f09bd4 Mon Sep 17 00:00:00 2001 +From: Paul Barker +Date: Sun, 5 Nov 2017 20:10:10 +0000 +Subject: [PATCH] Use pkg-config + +We need to use pkg-config to find the ncurses library instead of the +ncurses*-config applications. + +Signed-off-by: Paul Barker +Upstream-status: Inappropriate + (`ncurses*-config` can be used outside of OpenEmbedded) +--- + configure.ac | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7e0edd1..c5a8365 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -185,9 +185,9 @@ m4_define([HTOP_CHECK_LIB], + + AC_ARG_ENABLE(unicode, [AS_HELP_STRING([--enable-unicode], [enable Unicode support])], ,enable_unicode="yes") + if test "x$enable_unicode" = xyes; then +- HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config", +- HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw5-config", +- HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "ncurses5-config", ++ HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6", ++ HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw5", ++ HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncurses5", + HTOP_CHECK_LIB([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], + HTOP_CHECK_LIB([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], + HTOP_CHECK_LIB([ncurses], [addnwstr], [HAVE_LIBNCURSESW], +@@ -200,8 +200,8 @@ if test "x$enable_unicode" = xyes; then + [AC_CHECK_HEADERS([ncurses/curses.h],[:], + [AC_CHECK_HEADERS([ncurses.h],[:],[missing_headers="$missing_headers $ac_header"])])])]) + else +- HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "ncurses6-config", +- HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "ncurses5-config", ++ HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses6", ++ HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses5", + HTOP_CHECK_LIB([ncurses6], [refresh], [HAVE_LIBNCURSES], + HTOP_CHECK_LIB([ncurses], [refresh], [HAVE_LIBNCURSES], + missing_libraries="$missing_libraries libncurses" +-- +2.7.4 + diff --git a/meta-oe/recipes-support/htop/htop/remove-proc-test.patch b/meta-oe/recipes-support/htop/htop/remove-proc-test.patch deleted file mode 100644 index 3185fdd1f43..00000000000 --- a/meta-oe/recipes-support/htop/htop/remove-proc-test.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- htop-0.6.6/configure.ac 2007-05-21 13:06:15.000000000 -0500 -+++ htop-0.6.6-cross/configure.ac 2007-11-16 14:12:16.000000000 -0600 -@@ -58,8 +58,8 @@ - fi, - AC_DEFINE(PROCDIR, "/proc", [Path of proc filesystem])) - --AC_CHECK_FILE($PROCDIR/stat,,AC_MSG_ERROR(Cannot find /proc/stat. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.)) --AC_CHECK_FILE($PROCDIR/meminfo,,AC_MSG_ERROR(Cannot find /proc/meminfo. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.)) -+#AC_CHECK_FILE($PROCDIR/stat,,AC_MSG_ERROR(Cannot find /proc/stat. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.)) -+#AC_CHECK_FILE($PROCDIR/meminfo,,AC_MSG_ERROR(Cannot find /proc/meminfo. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.)) - - AC_CONFIG_FILES([Makefile]) - AC_OUTPUT diff --git a/meta-oe/recipes-support/htop/htop_1.0.3.bb b/meta-oe/recipes-support/htop/htop_1.0.3.bb deleted file mode 100644 index 4e445c8b352..00000000000 --- a/meta-oe/recipes-support/htop/htop_1.0.3.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "htop process monitor" -HOMEPAGE = "http://htop.sf.net" -SECTION = "console/utils" -LICENSE = "GPLv2" - -LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3" - -DEPENDS = "ncurses" -RDEPENDS_${PN} = "ncurses-terminfo" - -SRC_URI = "http://hisham.hm/htop/releases/${PV}/htop-${PV}.tar.gz" - -SRC_URI[md5sum] = "e768b9b55c033d9c1dffda72db3a6ac7" -SRC_URI[sha256sum] = "055c57927f75847fdc222b5258b079a9542811a9dcf5421c615c7e17f55d1829" - -LDFLAGS_append_libc-uclibc = " -lubacktrace" - -do_configure_prepend () { - rm -rf ${S}/config.h -} - -inherit autotools diff --git a/meta-oe/recipes-support/htop/htop_2.0.2.bb b/meta-oe/recipes-support/htop/htop_2.0.2.bb new file mode 100644 index 00000000000..395b83ff66f --- /dev/null +++ b/meta-oe/recipes-support/htop/htop_2.0.2.bb @@ -0,0 +1,25 @@ +SUMMARY = "htop process monitor" +HOMEPAGE = "http://htop.sf.net" +SECTION = "console/utils" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3" + +DEPENDS = "ncurses" +RDEPENDS_${PN} = "ncurses-terminfo" + +SRC_URI = " \ + http://hisham.hm/htop/releases/${PV}/htop-${PV}.tar.gz \ + file://0001-Use-pkg-config.patch \ + " + +SRC_URI[md5sum] = "7d354d904bad591a931ad57e99fea84a" +SRC_URI[sha256sum] = "179be9dccb80cee0c5e1a1f58c8f72ce7b2328ede30fb71dcdf336539be2f487" + +LDFLAGS_append_libc-uclibc = " -lubacktrace" + +do_configure_prepend () { + rm -rf ${S}/config.h +} + +inherit autotools diff --git a/meta-oe/recipes-support/hunspell/hunspell_1.6.1.bb b/meta-oe/recipes-support/hunspell/hunspell_1.6.1.bb new file mode 100644 index 00000000000..125729f2d10 --- /dev/null +++ b/meta-oe/recipes-support/hunspell/hunspell_1.6.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "A spell checker and morphological analyzer library" +HOMEPAGE = "http://hunspell.github.io/" +LICENSE = "GPLv3 | LGPLv3" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \ +" + +SRC_URI = "https://github.com/${BPN}/${BPN}/archive/v${PV}.tar.gz" +SRC_URI[md5sum] = "0df1c18c1284f8625af5ae5a8d5c4cef" +SRC_URI[sha256sum] = "30f593733c50b794016bb03d31fd2a2071e4610c6fa4708e33edad2335102c49" + +inherit autotools pkgconfig gettext + +RDEPENDS_${PN} = "perl" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-oe/recipes-support/hwdata/hwdata_git.bb new file mode 100644 index 00000000000..50d35c682f1 --- /dev/null +++ b/meta-oe/recipes-support/hwdata/hwdata_git.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Hardware identification and configuration data" +HOMEPAGE = "https://github.com/vcrhonek/hwdata" +SECTION = "System/Base" + +LICENSE = "GPL-2.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57" + +PV = "0.291+git${SRCPV}" +SRCREV = "4bfbdcf5913d6dd53336d31b8035708075e6fdfa" +SRC_URI = "git://github.com/vcrhonek/${BPN}.git" + +S = "${WORKDIR}/git" + +do_configure() { + ${S}/configure --datadir=${datadir} --libdir=${libdir} +} + +do_install() { + oe_runmake install DESTDIR=${D} +} + +FILES_${PN} = "${libdir}/* \ + ${datadir}/* " diff --git a/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff b/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff deleted file mode 100644 index e666ce07b61..00000000000 --- a/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff +++ /dev/null @@ -1,32 +0,0 @@ -Taken from upstream subversion repository: - -http://code.google.com/p/iksemel/source/detail?r=25 - -=================================================================== ---- - configure.ac | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - ---- iksemel-1.4.orig/configure.ac -+++ iksemel-1.4/configure.ac -@@ -43,11 +43,19 @@ AM_CONDITIONAL(DO_POSIX, test "x$defio" - dnl Checks for library functions - AC_SEARCH_LIBS(recv,socket) - AC_CHECK_FUNCS(getopt_long) - AC_CHECK_FUNCS(getaddrinfo) - --AM_PATH_LIBGNUTLS(,AC_DEFINE(HAVE_GNUTLS,,"Use libgnutls")) -+dnl Check GNU TLS -+PKG_CHECK_MODULES(GNUTLS, gnutls >= 2.0.0, have_gnutls=yes, have_gnutls=no) -+if test "x$have_gnutls" = "xyes"; then -+ LIBGNUTLS_CFLAGS="$GNUTLS_CFLAGS" -+ LIBGNUTLS_LIBS="$GNUTLS_LIBS" -+ AC_SUBST(LIBGNUTLS_CFLAGS) -+ AC_SUBST(LIBGNUTLS_LIBS) -+ AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.]) -+fi - - dnl Check -Wall flag of GCC - if test "x$GCC" = "xyes"; then - if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then - CFLAGS="$CFLAGS -Wall" diff --git a/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch b/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch new file mode 100644 index 00000000000..41fccc3ab03 --- /dev/null +++ b/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch @@ -0,0 +1,55 @@ +From 7136a908a056d0e36c89b6e1c39adff8ce2bb1d4 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Wed, 1 Nov 2017 13:17:34 -0700 +Subject: [PATCH] avoid obsolete gnutls apis + +The gnutls_*_set_priority() family of functions was marked deprecated +in gnutls 2.12.x and removed completely in 3.5.x. These functions +have been superceded by gnutls_priority_set_direct(), which was added +in gnutls 2.2.0 (released 2007-12-14). + +Rather than simply update the custom gnutls_*_set_priority() calls to +use gnutls_priority_set_direct(), drop the custom priority selection +completely and use the recommended approach of letting gnutls pick a +reasonable set of defaults. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +--- + src/tls-gnutls.c | 12 ++---------- + 1 file changed, 2 insertions(+), 10 deletions(-) + +diff --git a/src/tls-gnutls.c b/src/tls-gnutls.c +index d7b7c91..749e9ef 100644 +--- a/src/tls-gnutls.c ++++ b/src/tls-gnutls.c +@@ -48,11 +48,6 @@ tls_pull (struct ikstls_data *data, char *buffer, size_t len) + static int + tls_handshake (struct ikstls_data **datap, ikstransport *trans, void *sock) + { +- const int protocol_priority[] = { GNUTLS_TLS1, GNUTLS_SSL3, 0 }; +- const int kx_priority[] = { GNUTLS_KX_RSA, 0 }; +- const int cipher_priority[] = { GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR, 0}; +- const int comp_priority[] = { GNUTLS_COMP_ZLIB, GNUTLS_COMP_NULL, 0 }; +- const int mac_priority[] = { GNUTLS_MAC_SHA, GNUTLS_MAC_MD5, 0 }; + struct ikstls_data *data; + int ret; + +@@ -81,11 +76,8 @@ tls_handshake (struct ikstls_data **datap, ikstransport *trans, void *sock) + return IKS_NOMEM; + } + +- gnutls_protocol_set_priority (data->sess, protocol_priority); +- gnutls_cipher_set_priority(data->sess, cipher_priority); +- gnutls_compression_set_priority(data->sess, comp_priority); +- gnutls_kx_set_priority(data->sess, kx_priority); +- gnutls_mac_set_priority(data->sess, mac_priority); ++ gnutls_set_default_priority (data->sess); ++ + gnutls_credentials_set (data->sess, GNUTLS_CRD_CERTIFICATE, data->cred); + + gnutls_transport_set_push_function (data->sess, (gnutls_push_func) tls_push); +-- +1.9.1 + diff --git a/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch b/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch new file mode 100644 index 00000000000..05accdd9c8d --- /dev/null +++ b/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch @@ -0,0 +1,62 @@ +From 17a5cf8f70b86d8a2195562e2d9dcccb4fa35c83 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Tue, 31 Oct 2017 20:05:58 -0700 +Subject: [PATCH] fix configure option parsing + +Don't over-write with_openssl etc by trying to set to $enablevar + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +--- + configure.ac | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 82e6d2d..823e6c1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -56,17 +56,17 @@ fi + dnl Options for overriding TLS checks + AC_ARG_WITH([openssl], + AS_HELP_STRING([--without-openssl],[disable checking for openssl]), +- [with_openssl=$enableval], +- [with_openssl=yes] ++ [], ++ [with_openssl=auto] + ) + AC_ARG_WITH([gnutls], + AS_HELP_STRING([--without-gnutls],[disable checking for GNU TLS]), +- [with_gnutls=$enableval], +- [with_gnutls=yes] ++ [], ++ [with_gnutls=auto] + ) + + dnl Check OpenSSL +-if test "x$with_openssl" = "xyes"; then ++if test "x$with_openssl" != "xno"; then + PKG_CHECK_MODULES([OPENSSL], openssl >= 0.9.8, have_openssl=yes, have_openssl=no) + if test "x$have_openssl" = "xyes"; then + LIBOPENSSL_CFLAGS="$OPENSSL_CFLAGS" +@@ -78,7 +78,7 @@ if test "x$with_openssl" = "xyes"; then + fi + + dnl Check GNU TLS +-if test "x$with_gnutls" = "xyes"; then ++if test "x$with_gnutls" != "xno"; then + if test "x$have_openssl" != "xyes"; then + PKG_CHECK_MODULES([GNUTLS], gnutls >= 2.0.0, have_gnutls=yes, have_gnutls=no) + if test "x$have_gnutls" = "xyes"; then +@@ -94,7 +94,7 @@ fi + dnl Option for overriding Python check + AC_ARG_ENABLE([python], + AS_HELP_STRING([--disable-python],[disable checking for Python bindings]), +- [with_python=$enableval], ++ [], + [with_python=yes] + ) + +-- +1.9.1 + diff --git a/meta-oe/recipes-support/iksemel/iksemel_1.4.bb b/meta-oe/recipes-support/iksemel/iksemel_1.4.bb deleted file mode 100644 index 6d2abf7cea8..00000000000 --- a/meta-oe/recipes-support/iksemel/iksemel_1.4.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Fast and portable XML parser and Jabber protocol library" -AUTHOR = "Gurer Ozen " -HOMEPAGE = "http://iksemel.googlecode.com" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499" -DEPENDS = "gnutls" - -PR = "r1" - -SRC_URI = "http://iksemel.googlecode.com/files/${BP}.tar.gz;name=archive \ - file://r25.diff" -SRC_URI[archive.md5sum] = "532e77181694f87ad5eb59435d11c1ca" -SRC_URI[archive.sha256sum] = "458c1b8fb3349076a6cecf26c29db1d561315d84e16bfcfba419f327f502e244" - -inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/iksemel/iksemel_1.5.bb b/meta-oe/recipes-support/iksemel/iksemel_1.5.bb new file mode 100644 index 00000000000..0903e90d7d1 --- /dev/null +++ b/meta-oe/recipes-support/iksemel/iksemel_1.5.bb @@ -0,0 +1,24 @@ +SUMMARY = "Fast and portable XML parser and Jabber protocol library" +HOMEPAGE = "https://github.com/meduketto/iksemel" +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499" + +SRCREV = "978b733462e41efd5db72bc9974cb3b0d1d5f6fa" +PV = "1.5+git${SRCPV}" + +SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https \ + file://fix-configure-option-parsing.patch \ + file://avoid-obsolete-gnutls-apis.patch" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig lib_package + +# TLS support requires either openssl or gnutls (if both are enabled openssl will be used). +PACKAGECONFIG ?= "gnutls" + +PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" + +EXTRA_OECONF = "--disable-python" diff --git a/meta-oe/recipes-support/imagemagick/imagemagick_6.8.9.bb b/meta-oe/recipes-support/imagemagick/imagemagick_6.8.9.bb deleted file mode 100644 index 1252020d278..00000000000 --- a/meta-oe/recipes-support/imagemagick/imagemagick_6.8.9.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "ImageMagick is an image convertion tools" -SECTION = "console/utils" -LICENSE = "ImageMagick" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d84c6ddd4028aa53d028b4c50f9361e" -# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results. -DEPENDS = "lcms bzip2 jpeg libpng librsvg tiff zlib virtual/fftw freetype" - -PATCHSET = "9" -SRC_URI = "http://www.imagemagick.org/download/releases/ImageMagick-${PV}-${PATCHSET}.tar.bz2 \ -" -SRC_URI[md5sum] = "971648be6ae5f5070d98e2b6c5fb004d" -SRC_URI[sha256sum] = "ea0c4f00019b58b290b1329e4e747972c61a00780a67b35df9228a76f26f1592" - -S = "${WORKDIR}/ImageMagick-${PV}-${PATCHSET}" - -inherit autotools pkgconfig - -# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2 -# if someone needs xml support then fix it first -EXTRA_OECONF = "--program-prefix= --program-suffix=.im6 --without-x --without-perl --disable-openmp --without-xml --disable-opencl" - -CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes" -PACKAGECONFIG ??= "" -PACKAGECONFIG[jp2] = "--with-jp2,,jasper" -PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz" -PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo" -PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" -PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf" - -FILES_${PN} += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.so \ - ${libdir}/ImageMagick-${PV}/modules-Q16/*/*.la \ - ${libdir}/ImageMagick-${PV}/modules-Q16/filters \ - ${libdir}/ImageMagick-${PV}/modules-Q16/coders \ - ${libdir}/ImageMagick-${PV}/config-Q16 \ - ${datadir}/ImageMagick-6 " - -FILES_${PN}-dev += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.a" - -FILES_${PN}-dbg += "${libdir}/ImageMagick-${PV}/modules-Q16/*/.debug/*" - -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb b/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb new file mode 100644 index 00000000000..669534eaa0b --- /dev/null +++ b/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb @@ -0,0 +1,82 @@ +SUMMARY = "ImageMagick is an image convertion tools" +SECTION = "console/utils" +LICENSE = "ImageMagick" +LIC_FILES_CHKSUM = "file://LICENSE;md5=dad5a98f173fd3fa6958a1a58c6131c1" +# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results. +DEPENDS = "lcms bzip2 jpeg libpng librsvg tiff zlib fftw freetype" + +BASE_PV := "${PV}" +PV .= "_7" +SRC_URI = "git://github.com/ImageMagick/ImageMagick.git " +SRCREV = "e12602b39b5e778240d286b6f9bbbc0fe3fb26c5" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig update-alternatives + +# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2 +# if someone needs xml support then fix it first +EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --disable-openmp --without-xml --disable-opencl" + +CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz" +PACKAGECONFIG[jp2] = "--with-jp2,,jasper" +PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz" +PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg" +PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo" +PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" +PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf" +PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt" + +FILES_${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \ + ${datadir}/ImageMagick-7" + +FILES_${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a" + +FILES_${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*" + +BBCLASSEXTEND = "native" + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN} = "animate compare composite conjure convert display \ + identify import mogrify montage stream" + +ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7" +ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7" +ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im7" +ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im7" +ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im7" +ALTERNATIVE_TARGET[display] = "${bindir}/display.im7" +ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7" +ALTERNATIVE_TARGET[import] = "${bindir}/import.im7" +ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7" +ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7" +ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7" + +ALTERNATIVE_${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \ + convert.1 display.1 identify.1 import.1 mogrify.1 montage.1 stream.1" + +ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1" +ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1" +ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1" +ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im7.1" +ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1" +ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im7.1" +ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1" +ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im7.1" +ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1" +ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im7.1" +ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1" +ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im7.1" +ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1" +ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1" +ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1" +ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1" +ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1" +ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1" +ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1" +ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im7.1" +ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1" +ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im7.1" diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch new file mode 100644 index 00000000000..89b890dda9d --- /dev/null +++ b/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch @@ -0,0 +1,31 @@ +inotify-tools: fix __NR_inotify_add_watch system call number on _MIPS_SIM_ABI64 + +The correct value should be the same as defined in +linux/arch/mips/include/uapi/asm/unistd.h + +Upstream-Status: Summitted [https://github.com/rvoicilas/inotify-tools/pull/71] + +Signed-off-by: Roy Li +Signed-off-by: Jackie Huang +--- + libinotifytools/src/inotifytools/inotify-nosys.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libinotifytools/src/inotifytools/inotify-nosys.h b/libinotifytools/src/inotifytools/inotify-nosys.h +index db76b2c..5f7b11b 100644 +--- a/libinotifytools/src/inotifytools/inotify-nosys.h ++++ b/libinotifytools/src/inotifytools/inotify-nosys.h +@@ -100,8 +100,8 @@ struct inotify_event { + # endif + # if _MIPS_SIM == _MIPS_SIM_ABI64 + # define __NR_inotify_init (__NR_Linux + 243) +-# define __NR_inotify_add_watch (__NR_Linux + 243) +-# define __NR_inotify_rm_watch (__NR_Linux + 243) ++# define __NR_inotify_add_watch (__NR_Linux + 244) ++# define __NR_inotify_rm_watch (__NR_Linux + 245) + # endif + # if _MIPS_SIM == _MIPS_SIM_NABI32 + # define __NR_inotify_init (__NR_Linux + 247) +-- +1.7.10.4 + diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch new file mode 100644 index 00000000000..ba042a24b4e --- /dev/null +++ b/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch @@ -0,0 +1,45 @@ +From 7affb288d6c0726e7b1ebc317a878927b6ef0d02 Mon Sep 17 00:00:00 2001 +From: Andrea Galbusera +Date: Tue, 13 Sep 2016 08:10:29 +0200 +Subject: [PATCH] inotifywait: fix compile error with GCC 6 + +Fails to compile with misleading-indentation error + +| src/inotifywait.c: In function 'output_event_csv': +| src/inotifywait.c:126:5: error: this 'if' clause does not guard... [-Werror=misleading-indentation] +| if (filename != NULL) +| ^~ +| src/inotifywait.c:129:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if' +| printf("%s,", csv_escape( inotifytools_event_to_str( event->mask ) ) ); +| ^~~~~~ +| cc1: all warnings being treated as errors + +Fix indentation to resolve. + +Upstream-Status: Submitted [https://github.com/rvoicilas/inotify-tools/pull/66] + +Signed-off-by: Andrea Galbusera +--- + src/inotifywait.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/inotifywait.c b/src/inotifywait.c +index c5ce5e3..404a85b 100644 +--- a/src/inotifywait.c ++++ b/src/inotifywait.c +@@ -122,9 +122,9 @@ void validate_format( char * fmt ) { + + + void output_event_csv( struct inotify_event * event ) { +- char *filename = csv_escape(inotifytools_filename_from_wd(event->wd)); +- if (filename != NULL) +- printf("%s,", filename); ++ char *filename = csv_escape(inotifytools_filename_from_wd(event->wd)); ++ if (filename != NULL) ++ printf("%s,", filename); + + printf("%s,", csv_escape( inotifytools_event_to_str( event->mask ) ) ); + if ( event->len > 0 ) +-- +1.9.1 + diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb b/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb new file mode 100644 index 00000000000..efc753d5bf0 --- /dev/null +++ b/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb @@ -0,0 +1,24 @@ +SUMMARY = "Command line tools and C library providing a simple interface to inotify" +AUTHOR = "Rohan McGovern " +HOMEPAGE = "http://wiki.github.com/rvoicilas/inotify-tools" +SECTION = "console/devel" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=ac6c26e52aea428ee7f56dc2c56424c6" + +SRCREV = "1df9af4d6cd0f4af4b1b19254bcf056aed4ae395" +PV = "3.14+git${SRCPV}" + +SRC_URI = "git://github.com/rvoicilas/${BPN} \ + file://inotifywait-fix-compile-error-with-GCC-6.patch \ + file://inotify-nosys-fix-system-call-number.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools + +EXTRA_OECONF = "--disable-doxygen" + +PACKAGES =+ "libinotifytools" + +FILES_libinotifytools = "${libdir}/lib*.so.*" diff --git a/meta-oe/recipes-support/ipmitool/ipmitool_1.8.18.bb b/meta-oe/recipes-support/ipmitool/ipmitool_1.8.18.bb new file mode 100644 index 00000000000..9f73d2799bb --- /dev/null +++ b/meta-oe/recipes-support/ipmitool/ipmitool_1.8.18.bb @@ -0,0 +1,36 @@ +SUMMARY = "Utility for IPMI control" +DESCRIPTION = "This package contains a utility for interfacing with devices that support \ +the Intelligent Platform Management Interface specification. IPMI is \ +an open standard for machine health, inventory, and remote power control. \ +\ +This utility can communicate with IPMI-enabled devices through either a \ +kernel driver such as OpenIPMI or over the RMCP LAN protocol defined in \ +the IPMI specification. IPMIv2 adds support for encrypted LAN \ +communications and remote Serial-over-LAN functionality. \ +\ +It provides commands for reading the Sensor Data Repository (SDR) and \ +displaying sensor values, displaying the contents of the System Event \ +Log (SEL), printing Field Replaceable Unit (FRU) information, reading and \ +setting LAN configuration, and chassis power control. \ +" + +HOMEPAGE = "http://ipmitool.sourceforge.net/" +SECTION = "kernel/userland" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=9aa91e13d644326bf281924212862184" + +DEPENDS = "openssl readline ncurses" + +SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2" +SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3" +SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01" + +inherit autotools + +# --disable-dependency-tracking speeds up the build +# --enable-file-security adds some security checks +# --disable-intf-free disables FreeIPMI support - we don't want to depend on +# FreeIPMI libraries, FreeIPMI has its own ipmitoool-like utility. +# +EXTRA_OECONF = "--disable-dependency-tracking --enable-file-security --disable-intf-free" diff --git a/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch b/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch new file mode 100644 index 00000000000..33116b3c06b --- /dev/null +++ b/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch @@ -0,0 +1,127 @@ +allow systemd path to be defined by configure option. + +The configure probes the host for systemd path information. + +Upstream Status: Inappropriate [Embedded] + +Signed-off-By: Armin Kuster + +Index: ipmiutil-3.0.5/configure.ac +=================================================================== +--- ipmiutil-3.0.5.orig/configure.ac ++++ ipmiutil-3.0.5/configure.ac +@@ -149,7 +149,6 @@ CROSS_LFLAGS="" + CROSS_CFLAGS="" + LIBSENSORS="" + SAM2OBJ="isensor2.o ievents2.o" +-SYSTEMD_DIR=/usr/share/ipmiutil + + AC_ARG_ENABLE([useflags], + [ --enable-useflags include environment CFLAGS and LDFLAGS.], +@@ -200,29 +199,42 @@ AC_ARG_ENABLE([gpl], + + dnl Does this Linux have systemd enabled? Otherwise use sysv init. + AC_ARG_ENABLE([systemd], +- [ --enable-systemd enable systemd service type=notify support and %_unitdir [[default=disabled]]],) +-if test "x$enable_systemd" = "xyes"; then +- GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD" +- # if systemd enabled, install service scripts in unitdir +- which rpm >/dev/null 2>&1 +- if test $? -eq 0 ; then +- SYSTEMD_DIR=`rpm --eval "%{_unitdir}"` +- else +- SYSTEMD_DIR=/usr/share/ipmiutil +- fi ++ [ --enable-systemd[=systemddir] install systemd unit file. If 'yes' ++ probe the system for unit directory. ++ If a path is specified, assume that ++ is a valid install path. [[default=disabled]]],) ++# Check whether --enable-systemd was given. ++if test "${enable_systemd+set}" = set; then : ++ withval=$enable_systemd; if test "$withval" = yes; then ++ GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD" ++ if test -z "$systemddir"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5 ++ $as_echo_n "checking location of the systemd unit files directory... " >&6; } ++ _rpmdir = "" ++ which rpm >/dev/null 2>&1 ++ if test $? -eq 0 ; then ++ _rpmdir = `rpm --eval "%{_unitdir}"` ++ fi ++ for systemd_d in ${datadir}/usr/share/ipmiutil ${_rpmdir} /usr/share/ipmiutil; do ++ if test -z "$systemddir"; then ++ if test -d "$systemd_d"; then ++ systemddir="$systemd_d" ++ fi ++ fi ++ done ++ fi ++ if test -n "$systemddir"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5 ++ $as_echo "$systemddir" >&6; } ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 ++ $as_echo "not found" >&6; } ++ fi + else +- # otherwise install the systemd service scripts in the data dir +- SYSTEMD_DIR=/usr/share/ipmiutil +- if test "x$sysname" != "xDarwin" ; then +- if test "x$os" != "xhpux" ; then +- # MacOS and HP-UX: 'which' command returns 0 always +- which rpm >/dev/null 2>&1 +- if test $? -eq 0 ; then +- datad=`rpm --eval "%{_datadir}"` +- SYSTEMD_DIR=${datad}/ipmiutil +- fi +- fi +- fi ++ if test "$withval" != no; then ++ systemddir=$withval ++ fi ++fi + fi + + dnl start main logic +@@ -528,7 +540,7 @@ AC_SUBST(INS_LIB) + AC_SUBST(SUBDIR_S) + AC_SUBST(CROSS_CFLAGS) + AC_SUBST(CROSS_LFLAGS) +-AC_SUBST(SYSTEMD_DIR) ++AC_SUBST(systemddir) + AC_SUBST(SHR_LINK) + AC_SUBST(pkgconfigdir) + +Index: ipmiutil-3.0.5/scripts/Makefile.am +=================================================================== +--- ipmiutil-3.0.5.orig/scripts/Makefile.am ++++ ipmiutil-3.0.5/scripts/Makefile.am +@@ -17,7 +17,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily + sbinto = ${DESTDIR}${sbindir} + varto = ${DESTDIR}/var/lib/ipmiutil + initto = ${DESTDIR}@INIT_DIR@ +-sysdto = ${DESTDIR}@SYSTEMD_DIR@ ++sysdto = ${DESTDIR}@systemddir@ ++systemddir = @systemddir@ + sysvinit = ${datato} + sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm iuser + +@@ -47,10 +48,14 @@ install: + ${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port + ${INSTALL_SCRIPT_SH} ipmi_info ${sysvinit}/ipmi_info + ${INSTALL_SCRIPT_SH} checksel ${datato} +- ${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto} +- ${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto} +- ${INSTALL_DATA_SH} ipmiutil_evt.service ${sysdto} +- ${INSTALL_DATA_SH} ipmi_port.service ${sysdto} ++ ++ if [ ! -z "${systemddir}" ]; then \ ++ $(MKDIR) ${sysdto}; \ ++ ${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}; \ ++ ${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}; \ ++ ${INSTALL_DATA_SH} ipmiutil_evt.service ${sysdto}; \ ++ ${INSTALL_DATA_SH} ipmi_port.service ${sysdto}; \ ++ fi + ${INSTALL_SCRIPT_SH} ipmiutil.env ${datato} + ${INSTALL_SCRIPT_SH} ipmiutil.pre ${datato} + ${INSTALL_SCRIPT_SH} ipmiutil.setup ${datato} diff --git a/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb b/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb new file mode 100644 index 00000000000..338cafd536a --- /dev/null +++ b/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb @@ -0,0 +1,46 @@ +SUMMARY = "ipmiutil is an easy-to-use set of IPMI server management utilities.\ +It can get/set sensor thresholds, automate SEL management, do SOL console, etc." + +DESCRIPTION = "The IPMI Management Utilities currently work with platforms that \ +support the IPMI 1.5 or 2.0 specification. IPMI servers can be managed\ +locally, or remotely via IPMI LAN, even when the OS or main CPU is not\ +functional.\n \ +The ipmiutil utilities will use an IPMI Driver, either the Intel IPMI package \ +(ipmidrvr, /dev/imb), MontaVista OpenIPMI (/dev/ipmi0), the valinux IPMI \ +Driver (/dev/ipmikcs), or the LANDesk ldipmi daemon. The ipmiutil utilities \ +can also use direct user-space I/Os in Linux or FreeBSD if no IPMI driver \ +is detected." + +HOMEPAGE = "http://ipmiutil.sourceforge.net" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=626a5970304daa1fcb87f757fb42b795" + +DEPENDS += "openssl" + +PARALLEL_MAKE = "" + +SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \ + file://fix_systemd_path.patch \ + " +SRC_URI[md5sum] = "5feaf6a827205792e057bb4ff5c4e842" +SRC_URI[sha256sum] = "b2d7f72535131c7832ba4be13dc33c81513fc3ee43fe797b4b52014600ecee5e" + +inherit autotools-brokensep pkgconfig systemd + +PACKAGECONFIG ?= "lanplus gpl" +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "--enable-systemd=${datadir}/${BPN}, --enable-systemd=no" +PACKAGECONFIG[sha256] = "--enable-sha256, --enable-sha256=no, openssl-native, openssl" +PACKAGECONFIG[lanplus] = "--enable-lanplus, --enable-lanplus=no, openssl-native, openssl" +PACKAGECONFIG[landesk] = "--enable-landesk, --enable-landesk=no" +PACKAGECONFIG[sensors] = "--enable-libsensors, --enable-libsensors=no" + +#build with some GPL code +PACKAGECONFIG[gpl] = "--enable-gpl, --enable-gpl=no" +#no GPL or LanPlus libs +PACKAGECONFIG[standalone] = "--enable-standalone, --enable-standalone=no" + +CFLAGS += "-I${STAGING_INCDIR}" +LDFLAGS += "-L${STAGING_LIBDIR}" + +COMPATIBLE_HOST = '(x86_64|i.86).*-linux' diff --git a/meta-oe/recipes-support/iso-codes/iso-codes_1.4.bb b/meta-oe/recipes-support/iso-codes/iso-codes_1.4.bb deleted file mode 100644 index ed89a12e483..00000000000 --- a/meta-oe/recipes-support/iso-codes/iso-codes_1.4.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "ISO language, territory, currency, script codes and their translations" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=fbc093901857fcd118f065f900982c24" - -PR = "r2" - -SRC_URI = "ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/iso-codes-${PV}.tar.bz2" -SRC_URI[md5sum] = "4073466e57df23d39721513219e4f7ae" -SRC_URI[sha256sum] = "0a7cf177c25b3f0d77c60a5f1149aab9e03ba70f69bac70138a867efe19a1d97" - -# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which -# are inhibited by allarch -DEPENDS = "gettext-native" - -inherit autotools allarch - -FILES_${PN} += "${datadir}/xml/" diff --git a/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch b/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch new file mode 100644 index 00000000000..00f48e8a293 --- /dev/null +++ b/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch @@ -0,0 +1,30 @@ +From 27e4639254f2b2eb7d04790bd8cf16ecfcbac1c2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 19 Oct 2016 01:07:16 +0000 +Subject: [PATCH] adjust signature of main() + +clang complains about the types of main() function + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/main.c b/main.c +index 81ba543..ee7506c 100644 +--- a/main.c ++++ b/main.c +@@ -159,7 +159,7 @@ extern int breakflg; + + unsigned char **mainenv; + +-int main(int argc, unsigned char **argv, unsigned char **envv) ++int main(int argc, char **argv, char **envv) + { + CAP *cap; + unsigned char *s; +-- +1.9.1 + diff --git a/meta-oe/recipes-support/joe/joe_3.1.bb b/meta-oe/recipes-support/joe/joe_3.1.bb index fb9a9fbab4b..1ad355b5aea 100644 --- a/meta-oe/recipes-support/joe/joe_3.1.bb +++ b/meta-oe/recipes-support/joe/joe_3.1.bb @@ -4,7 +4,9 @@ HOMEPAGE = "http://joe-editor.sourceforge.net/" LICENSE = "GPLv1" LIC_FILES_CHKSUM = "file://COPYING;md5=da10ed7cf8038981c580e11c1d3e8fb6" -SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz" +SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz \ + file://0001-adjust-signature-of-main.patch \ + " PACKAGECONFIG ??= "curses" PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo" diff --git a/meta-oe/recipes-support/lcms/lcms_2.6.bb b/meta-oe/recipes-support/lcms/lcms_2.6.bb deleted file mode 100644 index ad727df38d9..00000000000 --- a/meta-oe/recipes-support/lcms/lcms_2.6.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Little cms is a small-footprint, speed optimized color management engine" -SECTION = "libs" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=6c786c3b7a4afbd3c990f1b81261d516" -SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz" -SRC_URI[md5sum] = "f4c08d38ceade4a664ebff7228910a33" -SRC_URI[sha256sum] = "5172528839647c54c3da211837225e221be93e4733f5b5e9f57668f7107e14b1" - -DEPENDS = "tiff" - -BBCLASSEXTEND = "native" - -S = "${WORKDIR}/lcms2-${PV}" - -inherit autotools diff --git a/meta-oe/recipes-support/lcms/lcms_2.7.bb b/meta-oe/recipes-support/lcms/lcms_2.7.bb new file mode 100644 index 00000000000..12ccb2050b5 --- /dev/null +++ b/meta-oe/recipes-support/lcms/lcms_2.7.bb @@ -0,0 +1,15 @@ +SUMMARY = "Little cms is a small-footprint, speed optimized color management engine" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=6c786c3b7a4afbd3c990f1b81261d516" +SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz" +SRC_URI[md5sum] = "06c1626f625424a811fb4b5eb070839d" +SRC_URI[sha256sum] = "4524234ae7de185e6b6da5d31d6875085b2198bc63b1211f7dde6e2d197d6a53" + +DEPENDS = "tiff" + +BBCLASSEXTEND = "native" + +S = "${WORKDIR}/lcms2-${PV}" + +inherit autotools diff --git a/meta-oe/recipes-support/lcov/lcov_1.11.bb b/meta-oe/recipes-support/lcov/lcov_1.11.bb index 5f3b8893466..2f9ac336e98 100644 --- a/meta-oe/recipes-support/lcov/lcov_1.11.bb +++ b/meta-oe/recipes-support/lcov/lcov_1.11.bb @@ -4,7 +4,7 @@ DESCRIPTION = "LCOV is a graphical front-end for GCC's coverage testing \ tool gcov. It collects gcov data for multiple source files and creates \ HTML pages containing the source code annotated with coverage information. \ It also adds overview pages for easy navigation within the file structure. \ -LCOV supports statement, function and branch coverage measurement." +LCOV supports statement, function and branch coverage measurement." LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" @@ -23,6 +23,5 @@ SRC_URI[sha256sum] = "c282de8d678ecbfda32ce4b5c85fc02f77c2a39a062f068bd8e774d29d do_install() { oe_runmake install PREFIX=${D} - sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' ${D}${bindir}/* } diff --git a/meta-oe/recipes-support/libatasmart/files/0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch b/meta-oe/recipes-support/libatasmart/files/0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch new file mode 100644 index 00000000000..8c867accaa2 --- /dev/null +++ b/meta-oe/recipes-support/libatasmart/files/0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch @@ -0,0 +1,41 @@ +From 75c1d3b8667328d874590a5321eb244256b7d932 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Wed, 18 Jan 2017 07:35:58 +0000 +Subject: [PATCH] Makefile.am: add CFLAGS and LDFLAGS definiton +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* When build libatasmart, we need first build strpool in host + env. To build strpool, the compiler is host compiler, but + the CFLAGS and LDFLAGS are for cross-compiler, so unify them + to fix below error. + | make -C strpool strpool + | make[1]: Entering directory '../libatasmart/0.19-r0/build/strpool' + | gcc -DHAVE_CONFIG_H -I. -I../../git/strpool -I.. -isystem../build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -O2 -pipe -g -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -c -o strpool.o `test -f '../strpool.c' || echo '../../git/strpool/'`../strpool.c + | gcc: error: unrecognized command line option ‘-fstack-protector-strong’ + | make[1]: *** [Makefile:404: strpool.o] Error 1 + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu +--- + strpool/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/strpool/Makefile.am b/strpool/Makefile.am +index b041cea..013fcd3 100644 +--- a/strpool/Makefile.am ++++ b/strpool/Makefile.am +@@ -17,6 +17,8 @@ + # . + + CC = @CC_FOR_BUILD@ ++CFLAGS = @BUILD_CFLAGS@ ++LDFLAGS = @BUILD_LDFLAGS@ + AM_CFLAGS = @BUILD_CFLAGS@ + AM_LDFLAGS = @BUILD_LDFLAGS@ + +-- +2.11.0 + diff --git a/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb b/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb index 16657b4b13d..4cfb7329329 100644 --- a/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb +++ b/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb @@ -5,7 +5,9 @@ LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1" DEPENDS = "udev" SRCREV = "de6258940960443038b4c1651dfda3620075e870" -SRC_URI = "git://git.0pointer.de/libatasmart.git" +SRC_URI = "git://git.0pointer.de/libatasmart.git \ + file://0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch \ +" S = "${WORKDIR}/git" diff --git a/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch b/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch new file mode 100644 index 00000000000..b57e39fbcc8 --- /dev/null +++ b/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch @@ -0,0 +1,30 @@ +From 2ddc97b30792817d162f51ec3818376aefbf184e Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 3 May 2017 02:05:33 -0400 +Subject: [PATCH] remove python2 support + +We use python3 rather than python2 support + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + src/python/Makefile.am | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/src/python/Makefile.am b/src/python/Makefile.am +index 567d0d7..8d9f446 100644 +--- a/src/python/Makefile.am ++++ b/src/python/Makefile.am +@@ -1,8 +1,3 @@ +-pylibdir = $(shell python -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))") +- +-pybytesizedir = $(pylibdir)/bytesize +-dist_pybytesize_DATA = bytesize.py __init__.py +- + if WITH_PYTHON3 + py3libdir = $(shell python3 -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))") + py3bytesizedir = $(py3libdir)/bytesize +-- +2.8.1 + diff --git a/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb b/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb new file mode 100644 index 00000000000..6903021490f --- /dev/null +++ b/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "The goal of this project is to provide a tiny library that would \ +facilitate the common operations with sizes in bytes." +HOMEPAGE = "https://github.com/rhinstaller/libbytesize" +LICENSE = "LGPLv2+" +SECTION = "devel/lib" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c" + +S = "${WORKDIR}/git" +B = "${S}" + +SRCREV = "369127c0edbba7d1a4e2e02486375dd9d379524f" +PV = "0.10+git${SRCPV}" +SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \ + file://0001-remove-python2-support.patch \ +" + +inherit gettext autotools python3native + +DEPENDS += " \ + libpcre \ + gmp \ + mpfr \ +" + +FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize" + +PACKAGECONFIG ??= "python3" +PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" +PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native" + +EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}" + + diff --git a/meta-oe/recipes-support/libcanberra/libcanberra_0.29.bb b/meta-oe/recipes-support/libcanberra/libcanberra_0.29.bb deleted file mode 100644 index 0f00b209fba..00000000000 --- a/meta-oe/recipes-support/libcanberra/libcanberra_0.29.bb +++ /dev/null @@ -1,62 +0,0 @@ -SUMMARY = "Implementation of XDG Sound Theme and Name Specifications" -DESCRIPTION = "Libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops." -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://src/canberra.h;beginline=7;endline=24;md5=c616c687cf8da540a14f917e0d23ab03" - -DEPENDS = "gstreamer gtk+ gtk+3 libtool libvorbis" - -inherit autotools gtk-doc - -SRC_URI = " \ - http://0pointer.de/lennart/projects/${BPN}/${BPN}-${PV}.tar.xz \ - file://0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch \ -" -SRC_URI[md5sum] = "2594093a5d61047bd9cc87e955f86df8" -SRC_URI[sha256sum] = "127a5ef07805856d63758e5180ebfb241d1f80094fd301c287591a15b8cfcd72" - -EXTRA_OECONF = "\ - --enable-null \ - --enable-gstreamer \ - --disable-oss \ - --enable-gtk \ - --enable-gtk3 \ - --disable-tdb \ - --disable-lynx \ -" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES','alsa','alsa','',d)} \ - ${@base_contains('DISTRO_FEATURES','pulseaudio','pulseaudio','',d)} \ -" -PACKAGECONFIG[alsa] = "--enable-alsa, --disable-alsa, alsa-lib" -PACKAGECONFIG[pulseaudio] = "--enable-pulse, --disable-pulse, pulseaudio" - -python populate_packages_prepend() { - plugindir = d.expand('${libdir}/${BPN}-${PV}/') - do_split_packages(d, plugindir, '^libcanberra-(.*)\.so$', 'libcanberra-%s', '%s support library', extra_depends='' ) - do_split_packages(d, plugindir, '^libcanberra-(.*)\.la$', 'libcanberra-%s', '%s support library', extra_depends='' ) -} - -PACKAGES =+ "${PN}-gnome ${PN}-gtk2 ${PN}-gtk3 ${PN}-systemd" -PACKAGES_DYNAMIC += "^libcanberra-.*" - -FILES_${PN} = "${bindir}/ ${libdir}/${BPN}.so.*" - -FILES_${PN}-dev += "${datadir}/vala/vapi ${libdir}/*/modules/*.la ${libdir}/*/*.la" - -FILES_${PN}-dbg += "${libdir}/${BPN}-${PV}/.debug ${libdir}/gtk-*/modules/.debug" - -FILES_${PN}-gtk2 = "${libdir}/${BPN}-gtk.so.* \ - ${libdir}/gtk-2.0/modules/*.so \ - ${bindir}/canberra-gtk-play" - -# -gtk3 ships a symlink to a .so -INSANE_SKIP_${PN}-gtk3 = "dev-so" -FILES_${PN}-gtk3 = "${libdir}/${BPN}-gtk3.so.* \ - ${libdir}/gtk-3.0/modules/*.so \ - ${bindir}/canberra-gtk3-play" - -FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/ \ - ${datadir}/gdm/ ${datadir}/gnome/" - -FILES_${PN}-systemd = "${systemd_unitdir}/system/*.service" diff --git a/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb b/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb new file mode 100644 index 00000000000..72c93abe170 --- /dev/null +++ b/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb @@ -0,0 +1,62 @@ +SUMMARY = "Implementation of XDG Sound Theme and Name Specifications" +DESCRIPTION = "Libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops." +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://src/canberra.h;beginline=7;endline=24;md5=c616c687cf8da540a14f917e0d23ab03" + +DEPENDS = "libtool libvorbis" + +inherit autotools gtk-doc + +SRC_URI = " \ + http://0pointer.de/lennart/projects/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch \ +" +SRC_URI[md5sum] = "34cb7e4430afaf6f447c4ebdb9b42072" +SRC_URI[sha256sum] = "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72" + +EXTRA_OECONF = "\ + --enable-null \ + --disable-oss \ + --disable-tdb \ + --disable-lynx \ +" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk gtk3', '', d)} \ +" +PACKAGECONFIG[alsa] = "--enable-alsa, --disable-alsa, alsa-lib" +PACKAGECONFIG[pulseaudio] = "--enable-pulse, --disable-pulse, pulseaudio" +PACKAGECONFIG[gstreamer] = "--enable-gstreamer, --disable-gstreamer, gstreamer1.0" +PACKAGECONFIG[gtk] = "--enable-gtk, --disable-gtk, gtk+" +PACKAGECONFIG[gtk3] = "--enable-gtk3, --disable-gtk3, gtk+3" + +python populate_packages_prepend() { + plugindir = d.expand('${libdir}/${BPN}-${PV}/') + do_split_packages(d, plugindir, '^libcanberra-(.*)\.so$', 'libcanberra-%s', '%s support library', extra_depends='' ) + do_split_packages(d, plugindir, '^libcanberra-(.*)\.la$', 'libcanberra-%s', '%s support library', extra_depends='' ) +} + +PACKAGES =+ "${PN}-gnome ${PN}-gtk2 ${PN}-gtk3 ${PN}-systemd" +PACKAGES_DYNAMIC += "^libcanberra-.*" + +FILES_${PN} = "${bindir}/ ${libdir}/${BPN}.so.*" + +FILES_${PN}-dev += "${datadir}/vala/vapi ${libdir}/*/modules/*.la ${libdir}/*/*.la" + +FILES_${PN}-dbg += "${libdir}/${BPN}-${PV}/.debug ${libdir}/gtk-*/modules/.debug" + +FILES_${PN}-gtk2 = "${libdir}/${BPN}-gtk.so.* \ + ${libdir}/gtk-2.0/modules/*.so \ + ${bindir}/canberra-gtk-play" + +# -gtk3 ships a symlink to a .so +INSANE_SKIP_${PN}-gtk3 = "dev-so" +FILES_${PN}-gtk3 = "${libdir}/${BPN}-gtk3.so.* \ + ${libdir}/gtk-3.0/modules/*.so \ + ${bindir}/canberra-gtk3-play" + +FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/ \ + ${datadir}/gdm/ ${datadir}/gnome/" + +FILES_${PN}-systemd = "${systemd_unitdir}/system/*.service" diff --git a/meta-oe/recipes-support/libcap-ng/libcap-ng/python.patch b/meta-oe/recipes-support/libcap-ng/libcap-ng/python.patch deleted file mode 100644 index d82ceb454b5..00000000000 --- a/meta-oe/recipes-support/libcap-ng/libcap-ng/python.patch +++ /dev/null @@ -1,39 +0,0 @@ -configure.ac - Avoid an incorrect check for python. -Makefile.am - avoid hard coded host include paths. - -Signed-off-by: Mark Hatle - ---- libcap-ng-0.6.5/configure.ac.orig 2012-01-17 13:59:03.645898989 -0600 -+++ libcap-ng-0.6.5/configure.ac 2012-01-17 13:59:46.353959252 -0600 -@@ -120,17 +120,8 @@ - else - AC_MSG_RESULT(testing) - AM_PATH_PYTHON --if test -f /usr/include/python${am_cv_python_version}/Python.h ; then -- python_found="yes" -- AC_MSG_NOTICE(Python bindings will be built) --else -- python_found="no" -- if test x$use_python = xyes ; then -- AC_MSG_ERROR([Python explicitly required and python headers found]) -- else -- AC_MSG_WARN("Python headers not found - python bindings will not be made") -- fi --fi -+python_found="yes" -+AC_MSG_NOTICE(Python bindings will be built) - fi - AM_CONDITIONAL(HAVE_PYTHON, test ${python_found} = "yes") - ---- libcap-ng-0.6.5/bindings/python/Makefile.am.orig 2010-11-03 12:31:59.000000000 -0500 -+++ libcap-ng-0.6.5/bindings/python/Makefile.am 2012-01-17 14:05:50.199834467 -0600 -@@ -24,7 +24,8 @@ - CONFIG_CLEAN_FILES = *.loT *.rej *.orig - AM_CFLAGS = -fPIC -DPIC - PYLIBVER ?= python$(PYTHON_VERSION) --INCLUDES = -I. -I$(top_builddir) -I/usr/include/$(PYLIBVER) -+PYINC ?= /usr/include/$(PYLIBVER) -+INCLUDES = -I. -I$(top_builddir) -I$(PYINC) - LIBS = $(top_builddir)/src/libcap-ng.la - pyexec_PYTHON = capng.py - pyexec_LTLIBRARIES = _capng.la diff --git a/meta-oe/recipes-support/libcap-ng/libcap-ng_0.7.4.bb b/meta-oe/recipes-support/libcap-ng/libcap-ng_0.7.4.bb deleted file mode 100644 index 8823dad390e..00000000000 --- a/meta-oe/recipes-support/libcap-ng/libcap-ng_0.7.4.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "An alternate posix capabilities library" -DESCRIPTION = "The libcap-ng library is intended to make programming \ -with POSIX capabilities much easier than the traditional libcap library." -HOMEPAGE = "http://freecode.com/projects/libcap-ng" -SECTION = "base" -LICENSE = "GPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06" - -SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \ - file://python.patch" - -inherit lib_package autotools pythonnative - -SRC_URI[md5sum] = "55c57c0673b944ea1a755bcb2636dabd" -SRC_URI[sha256sum] = "48a2083276f9820cb92dcb05d001b30733bcbf48c14c230303cac3cd08b45b6b" - -DEPENDS += "swig-native python" - -EXTRA_OEMAKE += "PYLIBVER='python${PYTHON_BASEVERSION}' PYINC='${STAGING_INCDIR}/${PYLIBVER}'" - -PACKAGES += "${PN}-python" - -FILES_${PN}-dbg += "${libdir}/python${PYTHON_BASEVERSION}/*/.debug" -FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}" - -BBCLASSEXTEND = "native" - -do_install_append() { - # Moving libcap-ng to base_libdir - if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then - mkdir -p ${D}/${base_libdir}/ - mv -f ${D}${libdir}/libcap-ng.so.* ${D}${base_libdir}/ - relpath=${@os.path.relpath("${base_libdir}", "${libdir}")} - ln -sf ${relpath}/libcap-ng.so.0.0.0 ${D}${libdir}/libcap-ng.so - fi -} diff --git a/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb b/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb new file mode 100644 index 00000000000..74b5e21e234 --- /dev/null +++ b/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "Enable userspace control of Cypress USB-Serial bridge devices" +HOMEPAGE = "https://github.com/cyrozap/libcyusbserial" +BUGTRACKER = "https://github.com/cyrozap/libcyusbserial/issues" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LESSER.txt;md5=4fbd65380cdd255951079008b364516c" +DEPENDS = "libusb udev" + +PV = "1.0.0+git${SRCPV}" + +SRCREV = "655e2d544183d094f0e2d119c7e0c6206a0ddb3f" +SRC_URI = "git://github.com/cyrozap/${BPN}.git" + +S = "${WORKDIR}/git" + +inherit cmake + +PACKAGES =+ "${PN}-utils" +FILES_${PN}-utils = "${bindir}/*" diff --git a/meta-oe/recipes-support/libdbi/libdbi-drivers.inc b/meta-oe/recipes-support/libdbi/libdbi-drivers.inc deleted file mode 100644 index b509532e4da..00000000000 --- a/meta-oe/recipes-support/libdbi/libdbi-drivers.inc +++ /dev/null @@ -1,51 +0,0 @@ -# libdbi-drivers OE build file -# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved -# Released under the MIT license (see packages/COPYING) - -DESCRIPTION = "Database Drivers for libdbi" -HOMEPAGE = "http://libdbi-drivers.sourceforge.net/" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499" -SECTION = "libs" - -PROVIDES = "libdbd-sqlite" -DEPENDS = "libdbi sqlite sqlite3 mysql5 postgresql" - -SRC_URI = "${SOURCEFORGE_MIRROR}/libdbi-drivers/libdbi-drivers-${PV}.tar.gz" - -inherit autotools - -PACKAGES += "libdbd-sqlite3 libdbd-sqlite libdbd-pgsql libdbd-mysql" - -EXTRA_OECONF = "--with-dbi-incdir=${STAGING_INCDIR} \ - --with-dbi-libdir=${STAGING_LIBDIR} \ - --with-sqlite \ - --with-sqlite3 \ - --with-pgsql \ - --with-mysql \ - --with-sqlite-libdir=${STAGING_LIBDIR} \ - --with-sqlite-incdir=${STAGING_INCDIR} \ - --with-sqlite3-incdir=${STAGING_INCDIR} \ - --with-sqlite3-libdir=${STAGING_LIBDIR} \ - --with-mysql-incdir=${STAGING_INCDIR} \ - --with-mysql-libdir=${STAGING_LIBDIR} \ - --with-pgsql-incdir=${STAGING_INCDIR} \ - --with-pgsql-libdir=${STAGING_LIBDIR} \ - --disable-docs" - -FILES_${PN}-dbg += " ${libdir}/dbd/.debug/*.so" -FILES_${PN}-dev += " ${libdir}/dbd/*.la" -FILES_${PN}-staticdev += " ${libdir}/dbd/*.a" - -DESCRIPTION_libdbd-sqlite = "SQLite database driver for libdbi" -FILES_libdbd-sqlite = "${libdir}/dbd/libdbdsqlite.so" - -DESCRIPTION_libdbd-sqlite3 = "SQLite3 database driver for libdbi" -FILES_libdbd-sqlite3 = "${libdir}/dbd/libdbdsqlite3.so" - -DESCRIPTION_libdbd-mysql = "MySQL4 database driver for libdbi" -FILES_libdbd-mysql = "${libdir}/dbd/libdbdmysql.so" - -DESCRIPTION_libdbd-psql = "Postgres SQL database driver for libdbi" -FILES_libdbd-pgsql = "${libdir}/dbd/libdbdpgsql.so" - diff --git a/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb b/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb deleted file mode 100644 index ce30beaf881..00000000000 --- a/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb +++ /dev/null @@ -1,5 +0,0 @@ -require ${PN}.inc - - -SRC_URI[md5sum] = "4de79b323162a5a7652b65b608eca6cd" -SRC_URI[sha256sum] = "4ab9944398ce769c0deeb64d2f73555c67bc25ccd2ade1ccf552226c7b2acf72" diff --git a/meta-oe/recipes-support/libdbi/libdbi_0.8.4.bb b/meta-oe/recipes-support/libdbi/libdbi_0.8.4.bb deleted file mode 100644 index aee00996e51..00000000000 --- a/meta-oe/recipes-support/libdbi/libdbi_0.8.4.bb +++ /dev/null @@ -1,6 +0,0 @@ -require ${PN}.inc - -PR = "${INC_PR}.0" - -SRC_URI[md5sum] = "c5f15407ef7b07ba854cd8c9b15b88ff" -SRC_URI[sha256sum] = "ef38db616f0752ccb09b8ba2eac471722369b8ded50b153c25e238cac2c8de99" diff --git a/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb b/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb new file mode 100644 index 00000000000..24eae28501b --- /dev/null +++ b/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb @@ -0,0 +1,6 @@ +require ${PN}.inc + +PR = "${INC_PR}.0" + +SRC_URI[md5sum] = "05e2ceeac4bc85fbe40de8b4b22d9ab3" +SRC_URI[sha256sum] = "dafb6cdca524c628df832b6dd0bf8fabceb103248edb21762c02d3068fca4503" diff --git a/meta-oe/recipes-support/libee/libee.inc b/meta-oe/recipes-support/libee/libee.inc index 5b552ca2a67..e5a145ab228 100644 --- a/meta-oe/recipes-support/libee/libee.inc +++ b/meta-oe/recipes-support/libee/libee.inc @@ -18,7 +18,7 @@ inherit autotools ptest pkgconfig DEPENDS += "libestr" -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'ptest', 'testbench', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench', '', d)}" PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,," PACKAGECONFIG[testbench] = "--enable-testbench,--disable-testbench,," @@ -28,12 +28,12 @@ TESTDIR = "tests" # We presume the tests we are going to install so just build them directly. # do_compile_ptest() { - oe_runmake -C ${TESTDIR} genfile ezapi1 + oe_runmake -C ${TESTDIR} genfile ezapi1 } do_install_ptest() { - install -d ${D}${PTEST_PATH} - install -m 0755 ${B}/${TESTDIR}/genfile ${D}${PTEST_PATH} - install -m 0755 ${B}/${TESTDIR}/.libs/ezapi1 ${D}${PTEST_PATH} - install -m 0755 ${WORKDIR}/ezapi1.sh ${D}${PTEST_PATH} + install -d ${D}${PTEST_PATH} + install -m 0755 ${B}/${TESTDIR}/genfile ${D}${PTEST_PATH} + install -m 0755 ${B}/${TESTDIR}/.libs/ezapi1 ${D}${PTEST_PATH} + install -m 0755 ${WORKDIR}/ezapi1.sh ${D}${PTEST_PATH} } diff --git a/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch b/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch new file mode 100644 index 00000000000..761dadbc347 --- /dev/null +++ b/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch @@ -0,0 +1,28 @@ +From fd8bc66efac1059c1068f804746b01b90177c333 Mon Sep 17 00:00:00 2001 +From: Lukas Bulwahn +Date: Sun, 18 Oct 2015 16:52:25 +0200 +Subject: [PATCH] CMakeLists.txt: install FindEigen3.cmake script + +Upstream-Status: Pending + +Signed-off-by: Lukas Bulwahn +--- + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 76a11b9..ec6c6ea 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -342,6 +342,8 @@ if(EIGEN_BUILD_PKGCONFIG) + ) + endif(EIGEN_BUILD_PKGCONFIG) + ++install(FILES "${PROJECT_SOURCE_DIR}/cmake/FindEigen3.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/cmake/Modules") ++ + add_subdirectory(Eigen) + + add_subdirectory(doc EXCLUDE_FROM_ALL) +-- +1.9.3 + diff --git a/meta-oe/recipes-support/libeigen/libeigen/eigen-disable-tests.patch b/meta-oe/recipes-support/libeigen/libeigen/eigen-disable-tests.patch deleted file mode 100644 index b3dddbeaf8f..00000000000 --- a/meta-oe/recipes-support/libeigen/libeigen/eigen-disable-tests.patch +++ /dev/null @@ -1,75 +0,0 @@ -libeigen: don't try building tests - -While configuring, if the tests are enabled, it checks some machine-specific -settings which we don't want to do while cross-compiling. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Lukas Bulwahn - ---- a/CMakeLists.txt~ 2013-07-29 16:59:48.403504947 -0400 -+++ b/CMakeLists.txt 2013-07-29 17:00:19.868020948 -0400 -@@ -346,25 +346,25 @@ - - add_subdirectory(doc EXCLUDE_FROM_ALL) - --include(EigenConfigureTesting) -+#include(EigenConfigureTesting) - - # fixme, not sure this line is still needed: --enable_testing() # must be called from the root CMakeLists, see man page -+#enable_testing() # must be called from the root CMakeLists, see man page - - --if(EIGEN_LEAVE_TEST_IN_ALL_TARGET) -- add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest --else() -- add_subdirectory(test EXCLUDE_FROM_ALL) --endif() -+#if(EIGEN_LEAVE_TEST_IN_ALL_TARGET) -+# add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest -+#else() -+# add_subdirectory(test EXCLUDE_FROM_ALL) -+#endif() - --if(EIGEN_LEAVE_TEST_IN_ALL_TARGET) -- add_subdirectory(blas) -- add_subdirectory(lapack) --else() -- add_subdirectory(blas EXCLUDE_FROM_ALL) -- add_subdirectory(lapack EXCLUDE_FROM_ALL) --endif() -+#if(EIGEN_LEAVE_TEST_IN_ALL_TARGET) -+# add_subdirectory(blas) -+# add_subdirectory(lapack) -+#else() -+# add_subdirectory(blas EXCLUDE_FROM_ALL) -+# add_subdirectory(lapack EXCLUDE_FROM_ALL) -+#endif() - - add_subdirectory(unsupported) - -@@ -384,7 +384,7 @@ - - configure_file(scripts/cdashtesting.cmake.in cdashtesting.cmake @ONLY) - --ei_testing_print_summary() -+#ei_testing_print_summary() - - message(STATUS "") - message(STATUS "Configured Eigen ${EIGEN_VERSION_NUMBER}") ---- a/unsupported/CMakeLists.txt~ 2013-07-29 16:59:54.091598607 -0400 -+++ b/unsupported/CMakeLists.txt 2013-07-29 17:00:27.052139300 -0400 -@@ -1,7 +1,7 @@ - add_subdirectory(Eigen) - add_subdirectory(doc EXCLUDE_FROM_ALL) --if(EIGEN_LEAVE_TEST_IN_ALL_TARGET) -- add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest --else() -- add_subdirectory(test EXCLUDE_FROM_ALL) --endif() -+#if(EIGEN_LEAVE_TEST_IN_ALL_TARGET) -+# add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest -+#else() -+# add_subdirectory(test EXCLUDE_FROM_ALL) -+#endif() diff --git a/meta-oe/recipes-support/libeigen/libeigen_3.2.0.bb b/meta-oe/recipes-support/libeigen/libeigen_3.2.0.bb deleted file mode 100644 index de5186f10ce..00000000000 --- a/meta-oe/recipes-support/libeigen/libeigen_3.2.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms." -AUTHOR = "Benoît Jacob and Gaël Guennebaud and others" -HOMEPAGE = "http://eigen.tuxfamily.org/" -LICENSE = "MPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad" - -SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 \ - file://eigen-disable-tests.patch" -SRC_URI[md5sum] = "894381be5be65bb7099c6fd91d61b357" -SRC_URI[sha256sum] = "011f78960d939227f9276173d0c4cc0053bb9e0a7356539a9a6c7c89d984fab6" - -S = "${WORKDIR}/eigen-eigen-ffa86ffb5570" - -inherit cmake - -EXTRA_OECMAKE += "-Dpkg_config_libdir=${libdir}" - -FILES_${PN} = "${includedir} ${libdir}" - -# ${PN} is empty so we need to tweak -dev and -dbg package dependencies -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb b/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb new file mode 100644 index 00000000000..bc3b32e384d --- /dev/null +++ b/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms." +AUTHOR = "Benoît Jacob and Gaël Guennebaud and others" +HOMEPAGE = "http://eigen.tuxfamily.org/" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad" + +SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2" +SRC_URI[md5sum] = "a7aab9f758249b86c93221ad417fbe18" +SRC_URI[sha256sum] = "dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6" + +S = "${WORKDIR}/eigen-eigen-5a0156e40feb" + +inherit cmake + +FILES_${PN} = "${includedir} ${libdir}" +FILES_${PN}-dev = "${datadir}/eigen3/cmake ${datadir}/cmake/Modules ${datadir}/pkgconfig" + +# ${PN} is empty so we need to tweak -dev and -dbg package dependencies +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/meta-oe/recipes-support/libestr/libestr_0.1.10.bb b/meta-oe/recipes-support/libestr/libestr_0.1.10.bb new file mode 100644 index 00000000000..9bff4f35a7b --- /dev/null +++ b/meta-oe/recipes-support/libestr/libestr_0.1.10.bb @@ -0,0 +1,11 @@ +SUMMARY = "some essentials for string handling (and a bit more)" +HOMEPAGE = "http://libestr.adiscon.com/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0" + +SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz" + +SRC_URI[md5sum] = "f4c9165a23587e77f7efe65d676d5e8e" +SRC_URI[sha256sum] = "bd655e126e750edd18544b88eb1568d200a424a0c23f665eb14bbece07ac703c" + +inherit autotools diff --git a/meta-oe/recipes-support/libestr/libestr_0.1.6.bb b/meta-oe/recipes-support/libestr/libestr_0.1.6.bb deleted file mode 100644 index e3f675a784a..00000000000 --- a/meta-oe/recipes-support/libestr/libestr_0.1.6.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "some essentials for string handling (and a bit more)" -HOMEPAGE = "http://libestr.adiscon.com/" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0" - -SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz" - -SRC_URI[md5sum] = "f48a7098080eebfe7842673c23dcd064" -SRC_URI[sha256sum] = "b9c819d30397845fdf85bb1f37c52e81de23aa3b061ec6cc4386f1b942960153" - -inherit autotools diff --git a/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch b/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch deleted file mode 100644 index d05967da31f..00000000000 --- a/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: libetpan-0.57/configure.ac -=================================================================== ---- libetpan-0.57.orig/configure.ac 2008-10-08 19:54:20.000000000 +0000 -+++ libetpan-0.57/configure.ac 2008-11-11 16:34:33.000000000 +0000 -@@ -106,6 +106,7 @@ - - # Check the C compiler. - AC_PROG_CC -+AC_PROG_CXX - - # Compiler flags. - AC_ARG_ENABLE(debug, [ --enable-debug setup flags (gcc) for debugging (default=no)], diff --git a/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch b/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch deleted file mode 100644 index 438f44f15af..00000000000 --- a/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libetpan-0.57/configure.ac~ 2009-09-21 23:31:42.000000000 +0200 -+++ libetpan-0.57/configure.ac 2009-09-21 23:31:42.000000000 +0200 -@@ -457,7 +457,7 @@ - LDFLAGS="-$flag $LDFLAGS" - AC_TRY_LINK([], [pthread_create();], - [pthflag=yes; checkpthread=no], -- [pthflag=no; LDFLAGS="$OLDCFLAGS"]) -+ [pthflag=no; LDFLAGS="$OLDFLAGS"]) - AC_MSG_RESULT($pthflag) - fi - done diff --git a/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch b/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch deleted file mode 100644 index 4f0161727ff..00000000000 --- a/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: libetpan-0.57/rules.mk -=================================================================== ---- libetpan-0.57.orig/rules.mk -+++ libetpan-0.57/rules.mk -@@ -134,9 +134,9 @@ prepare-am: prepare-local - if test -e ../../$(subdir)/$${hdr}; then \ - echo "$(LN_S) -f ../../$(subdir)/$${hdr} ."; \ - $(LN_S) -f ../../$(subdir)/$${hdr} .; \ - else \ -- echo "$(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} ."; \ -- $(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} .; \ -+ echo "$(LN_S) -f $(srcdir)/$${hdr} ."; \ -+ $(LN_S) -f $(srcdir)/$${hdr} .; \ - fi; \ - fi; \ - done; \ diff --git a/meta-oe/recipes-support/libetpan/libetpan_0.57.bb b/meta-oe/recipes-support/libetpan/libetpan_0.57.bb deleted file mode 100644 index 6be0694ef15..00000000000 --- a/meta-oe/recipes-support/libetpan/libetpan_0.57.bb +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "libetpan is a library for communicating with mail and news servers. \ -It supports the protocols SMTP, POP3, IMAP and NNTP." -HOMEPAGE = "http://www.etpan.org" -SECTION = "libs" -DEPENDS = "gnutls liblockfile curl" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f18ebe7e452708c26f83954f81062ba7" - -PR = "r1" - -SRC_URI = "${SOURCEFORGE_MIRROR}/libetpan/libetpan-${PV}.tar.gz \ - file://libetpan-autoreconf.patch \ - file://libetpan-ldflags.patch \ - file://sepbuild.patch" - -inherit autotools pkgconfig gettext binconfig - -EXTRA_OECONF = "--without-openssl --without-sasl --with-gnutls --disable-db" - -PARALLEL_MAKE = "" - -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev = "${bindir} ${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libdir}/pkgconfig" - - -SRC_URI[md5sum] = "8ce8c6c071e81884a475b12b7f9a9cc0" -SRC_URI[sha256sum] = "1f3fda5c9e2961d1a6298dc8aadae321493d37727d8db45bc2e8d58f20547011" diff --git a/meta-oe/recipes-support/libftdi/libftdi_1.1.bb b/meta-oe/recipes-support/libftdi/libftdi_1.1.bb deleted file mode 100644 index d8b189be953..00000000000 --- a/meta-oe/recipes-support/libftdi/libftdi_1.1.bb +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION = "libftdi is a library to talk to FTDI chips.\ -FT232BM/245BM, FT2232C/D and FT232/245R using libusb,\ -including the popular bitbang mode." -HOMEPAGE = "http://www.intra2net.com/en/developer/libftdi/" -SECTION = "libs" - -LICENSE = "LGPLv2.1 & GPLv2" -LIC_FILES_CHKSUM= "\ - file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe \ - file://COPYING.LIB;md5=db979804f025cf55aabec7129cb671ed \ -" - -DEPENDS = "libusb1" - -SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2" - -SRC_URI[md5sum] = "b79a6356978aa8e69f8eecc3a720ff79" -SRC_URI[sha256sum] = "c0b1af1a13e2c6682a1d8041e5b164a1e0d90267cd378bb51e059bd62f821e21" - -S = "${WORKDIR}/${BPN}1-${PV}" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on,-DFTDI_BUILD_CPP=off,boost" - -inherit cmake binconfig pkgconfig - -FILES_${PN}-dev += "${libdir}/cmake" - -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/libftdi/libftdi_1.4.bb b/meta-oe/recipes-support/libftdi/libftdi_1.4.bb new file mode 100644 index 00000000000..6bea16582f8 --- /dev/null +++ b/meta-oe/recipes-support/libftdi/libftdi_1.4.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "libftdi is a library to talk to FTDI chips.\ +FT232BM/245BM, FT2232C/D and FT232/245R using libusb,\ +including the popular bitbang mode." +HOMEPAGE = "http://www.intra2net.com/en/developer/libftdi/" +SECTION = "libs" + +LICENSE = "LGPLv2.1 & GPLv2" +LIC_FILES_CHKSUM= "\ + file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ +" + +DEPENDS = "libusb1" + +SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2" + +SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2" +SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681cb31b74" + +S = "${WORKDIR}/${BPN}1-${PV}" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost" + +inherit cmake binconfig pkgconfig + +EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" + +FILES_${PN}-dev += "${libdir}/cmake" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb b/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb new file mode 100644 index 00000000000..8f580f9ff17 --- /dev/null +++ b/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb @@ -0,0 +1,23 @@ +SUMMARY = "the Git linkable library" +HOMEPAGE = "http://libgit2.github.com/" +LICENSE = "GPL-2.0-with-GCC-exception" +LIC_FILES_CHKSUM = "file://COPYING;md5=34197a479f637beb9e09e56893f48bc2" + +DEPENDS = "curl openssl zlib libssh2" + +SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.24" +SRCREV = "4cf1ec7cff28da8838a2f0a9fb330e312ea3f963" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE = "\ + -DTHREADSAFE=ON \ + -DBUILD_CLAR=OFF \ + -DSHA1_TYPE="builtin" \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DBUILD_EXAMPLES=OFF \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/libgpiod/libgpiod.bb b/meta-oe/recipes-support/libgpiod/libgpiod.bb new file mode 100644 index 00000000000..6aa27ad574f --- /dev/null +++ b/meta-oe/recipes-support/libgpiod/libgpiod.bb @@ -0,0 +1,23 @@ +SUMMARY = "C library and tools for interacting with the linux GPIO character device" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de" + +SRC_URI = "https://www.kernel.org/pub/software/libs/libgpiod/${BP}.tar.xz" + +SRC_URI[md5sum] = "9c1966bea7dffd59bd099a8b2930e2ea" +SRC_URI[sha256sum] = "50c7862428ca90b58672e2475aea66d33a6fc86c6bab1928c0660f3aedf44a37" + +PV = "0.3.2" + +inherit autotools pkgconfig + +# enable tools +PACKAGECONFIG ?= "tools" + +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev" +PACKAGECONFIG[tools] = "--enable-tools,--disable-tools," + +PACKAGES += " ${PN}-tools" + +FILES_${PN}-tools = "${bindir}/*" diff --git a/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-oe/recipes-support/libiio/libiio_git.bb new file mode 100644 index 00000000000..d66ac58d5ab --- /dev/null +++ b/meta-oe/recipes-support/libiio/libiio_git.bb @@ -0,0 +1,24 @@ +SUMMARY = "Library for interfacing with IIO devices" +HOMEPAGE = "https://wiki.analog.com/resources/tools-software/linux-software/libiio" +SECTION = "libs" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c" + +SRCREV = "08f947d5e40600259bb698c3b95538e9f2bfecc2" +PV = "0.8+git${SRCPV}" + +SRC_URI = "git://github.com/analogdevicesinc/libiio.git" + +S = "${WORKDIR}/git" + +DEPENDS = "flex-native bison-native avahi libaio libusb1 libxml2" + +inherit cmake pythonnative + +PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-python" + +RDEPENDS_${PN}-python = "${PN} python-ctypes python-stringold" + +FILES_${PN}-iiod = "${sbindir}/iiod" +FILES_${PN}-tests = "${bindir}" +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" diff --git a/meta-oe/recipes-support/libjs/libjs-jquery_1.7.1.bb b/meta-oe/recipes-support/libjs/libjs-jquery_1.7.1.bb deleted file mode 100644 index cf7c2d54dd8..00000000000 --- a/meta-oe/recipes-support/libjs/libjs-jquery_1.7.1.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "JavaScript library for dynamic web applications" -LICENSE = "GPLv2+ & MIT" -LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-jquery/copyright;md5=2b490904c50a58472452b6e9e1c81203" - -SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/main/j/jquery/${BPN}_${PV}-1ubuntu1_all.deb;subdir=${BP}" -SRC_URI[md5sum] = "1ac8a9e4dfe18de22e65baec3dd53f8b" -SRC_URI[sha256sum] = "0551e20c88035d80c00b552707573d62ee89e8e5a204d8b427a6020b065e2542" - -JQUERYDIR = "${datadir}/javascript/jquery" -JQUERYDOCDIR = "${docdir}/libjs-jquery" - -do_install() { - install -d -m 0755 ${D}${JQUERYDIR} - install -m 0644 ${S}${JQUERYDIR}/jquery.js ${D}${JQUERYDIR}/ - install -m 0644 ${S}${JQUERYDIR}/jquery.min.js ${D}${JQUERYDIR}/ - - ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.lite.js - ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.pack.js - - install -d -m 0644 ${D}${JQUERYDOCDIR} - install -m 0644 ${S}${JQUERYDOCDIR}/copyright ${D}${JQUERYDOCDIR}/ -} - -FILES_${PN} = "/usr/share/javascript/jquery" diff --git a/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb b/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb new file mode 100644 index 00000000000..7f425cdeab8 --- /dev/null +++ b/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb @@ -0,0 +1,25 @@ +SUMMARY = "JavaScript library for dynamic web applications" +HOMEPAGE = "https://jquery.com/" +LICENSE = "MIT | BSD | GPL-2" +LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-jquery/copyright;md5=5d1ec6f95e0a91d38e2f71de93ddb00e" + +SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/main/j/jquery/${BPN}_${PV}+debian-1ubuntu1~ubuntu12.04.1_all.deb;subdir=${BP}" +SRC_URI[md5sum] = "fa511ab67f6e960c5b6d39a4d665e47f" +SRC_URI[sha256sum] = "190ca18a71e35c8ab2ba73fe5be3c7cc601fe20b45709d801110818f1b602cc1" + +JQUERYDIR = "${datadir}/javascript/jquery" +JQUERYDOCDIR = "${docdir}/libjs-jquery" + +do_install() { + install -d -m 0755 ${D}${JQUERYDIR} + install -m 0644 ${S}${JQUERYDIR}/jquery.js ${D}${JQUERYDIR}/ + install -m 0644 ${S}${JQUERYDIR}/jquery.min.js ${D}${JQUERYDIR}/ + + ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.lite.js + ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.pack.js + + install -d -m 0644 ${D}${JQUERYDOCDIR} + install -m 0644 ${S}${JQUERYDOCDIR}/copyright ${D}${JQUERYDOCDIR}/ +} + +FILES_${PN} = "/usr/share/javascript/jquery" diff --git a/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb b/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb new file mode 100644 index 00000000000..4928b6c3a74 --- /dev/null +++ b/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb @@ -0,0 +1,19 @@ +SUMMARY = "Pure-JavaScript CSS selector engine" +HOMEPAGE = "https://github.com/jquery/sizzle/wiki" +LICENSE = "GPL-2.0 & MIT & AFL-2.1" +LIC_FILES_CHKSUM = "file://MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9" + +SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/universe/s/sizzle/sizzle_1.10.18.orig.tar.gz" +SRC_URI[md5sum] = "91477c1edeef9f8100ffd6c4d31725b5" +SRC_URI[sha256sum] = "8e04ab84bb74b2e338dffc63cd2e52b007f1d8af01b3d25da4d2e07f2b5890f8" + +S = "${WORKDIR}/sizzle-${PV}" + +SIZZLEDIR = "${S}/dist" + +do_install() { + install -d -m 0755 ${D}/${datadir}/javascript/sizzle/ + install -m 0644 ${SIZZLEDIR}/*.js ${D}/${datadir}/javascript/sizzle/ +} + +FILES_${PN} = "${datadir}/javascript/sizzle/" diff --git a/meta-oe/recipes-support/libjs/libjs-sizzle_1.9.3.bb b/meta-oe/recipes-support/libjs/libjs-sizzle_1.9.3.bb deleted file mode 100644 index ad0f9c64d5e..00000000000 --- a/meta-oe/recipes-support/libjs/libjs-sizzle_1.9.3.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Pure-JavaScript CSS selector engine" -LICENSE = "GPLv2+ & MIT & BSD-3-Clause" -LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-sizzle/copyright;md5=9b35efb1635ff8f06d1984376b06ee5a" - -SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/universe/s/sizzle/${BPN}_${PV}-1_all.deb;subdir=${BP}" -SRC_URI[md5sum] = "748b8805e21caed658f6765f7c491d46" -SRC_URI[sha256sum] = "2a6468763c40a30f6f7d0df8906cd17aaebd6edaa5478aeaffd7b6b5fb8abd35" - -SIZZLEDIR = "${datadir}/javascript/sizzle" -SIZZLEDOCDIR = "${docdir}/libjs-sizzle" - -do_install() { - install -d -m 0755 ${D}${SIZZLEDIR} - install -m 0644 ${S}${SIZZLEDIR}/sizzle.js ${D}${SIZZLEDIR}/ - install -m 0644 ${S}${SIZZLEDIR}/sizzle.min.js ${D}${SIZZLEDIR}/ - install -d -m 0755 ${D}${SIZZLEDOCDIR} - install -m 0644 ${S}${SIZZLEDOCDIR}/* ${D}${SIZZLEDOCDIR}/ -} - -FILES_${PN} = "/usr/share/javascript/sizzle/" diff --git a/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.34.bb b/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.34.bb deleted file mode 100644 index e3c833bf401..00000000000 --- a/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.34.bb +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application" -HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/" -LICENSE = "LGPL-2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5" -SECTION = "net" -DEPENDS = "libgcrypt gnutls file" - -SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "2947eee13c2c8affb95023a0cb6fda0c" -SRC_URI[sha256sum] = "29a2bfd4fd2ddf60c756b8c283291a134898e3cc143843be421a040be1b25a88" - -inherit autotools lib_package - -# disable spdy, because it depends on openssl -EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../ --disable-spdy" - -PACKAGECONFIG ?= "curl" -PACKAGECONFIG_append_class-target = "\ - ${@base_contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \ -" -PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl," - -do_compile_append() { - sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc -} - diff --git a/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb b/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb new file mode 100644 index 00000000000..ee399a76456 --- /dev/null +++ b/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application" +HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/" +LICENSE = "LGPL-2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5" +SECTION = "net" +DEPENDS = "libgcrypt gnutls file" + +SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "1c20f84a8b9cf692dd50b558b3571a3a" +SRC_URI[sha256sum] = "0c1cab8dc9f2588bd3076a28f77a7f8de9560cbf2d80e53f9a8696ada80ed0f8" + +inherit autotools lib_package pkgconfig gettext + +EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../" + +PACKAGECONFIG ?= "curl" +PACKAGECONFIG_append_class-target = "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \ +" +PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,," +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl," + +do_compile_append() { + sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc +} diff --git a/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch b/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch new file mode 100644 index 00000000000..a43b4b176cd --- /dev/null +++ b/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch @@ -0,0 +1,28 @@ +From f1b9992caf9910f9f7afae401045e42572cc84ff Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 1 Apr 2017 08:50:35 -0700 +Subject: [PATCH] signal.c: SIGCLD and SIGCHILD are same on sytem V systems + +Musl drops the SIGCLD legacy + +Signed-off-by: Khem Raj +--- + nih/signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/nih/signal.c b/nih/signal.c +index a241df9..691c8e6 100644 +--- a/nih/signal.c ++++ b/nih/signal.c +@@ -87,7 +87,7 @@ static const SignalName signal_names[] = { + { SIGSTKFLT, "STKFLT" }, + #endif + { SIGCHLD, "CHLD" }, +- { SIGCLD, "CLD" }, ++ { SIGCHLD, "CLD" }, + { SIGCONT, "CONT" }, + { SIGSTOP, "STOP" }, + { SIGTSTP, "TSTP" }, +-- +2.12.1 + diff --git a/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch b/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch new file mode 100644 index 00000000000..5d125c85146 --- /dev/null +++ b/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch @@ -0,0 +1,3593 @@ +--- libnih-1.0.3.orig/ChangeLog ++++ libnih-1.0.3/ChangeLog +@@ -1,3 +1,84 @@ ++2013-03-13 Steve Langasek ++ ++ * nih/watch.c (nih_watch_walk_filter): New NihFileFilter function ++ passed to nih_dir_walk_scan() to ensure the nih_watch_new() filter ++ function is passed the NihWatch data rather than the data passed to ++ the nih_dir_walk() NihFileVisitor function (LP: #776532). ++ ++ * nih/tests/test_watch.c (test_new): New test "with filter and data" ++ to ensure filter is passed correct value. ++ ++2013-02-28 James Hunt ++ ++ * Removal of gcc 'malloc' function attribute resulting from ++ a clarification in its description which makes its use invalid. ++ (LP: #1123588). ++ ++2013-02-05 James Hunt ++ ++ * nih/logging.c: nih_log_abort_message(): Remove erroneous check ++ left over from use of __abort_msg weak symbol. ++ * nih/tests/test_logging.c: Remove unecessary check on whether ++ __nih_abort_msg has an address. ++ ++2012-12-13 Stéphane Graber ++ ++ * nih-dbus-tool/type.c, nih-dbus-tool/marshal.c: Update dbus code ++ generator to allow for empty lists for type 'as'. This drops the ++ != NULL check for NULL terminated arrays and moves the iteration ++ loop inside an 'if' statement. ++ ++2012-12-11 Dmitrijs Ledkovs ++ ++ * nih/file.c (nih_dir_walk_scan): Fallback to lstat, if the ++ non-portable dirent.d_type is not available (LP: #672643) (Closes: ++ #695604). ++ ++2012-12-10 Petr Lautrbach ++ ++ * nih/tests/test_file.c: don't use dirent.d_type (not portable) ++ ++2012-10-25 James Hunt ++ ++ * nih/logging.c: Use our own __nih_abort_msg rather than the ++ (e)glibc private symbol __abort_msg to avoid upgrade issues (LP: #997359). ++ * nih/tests/test_logging.c: Update tests for __nih_abort_msg. ++ ++2011-08-31 James Hunt ++ ++ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c ++ (test_unix_fd_to_str): Sanity check value before invoking strchr in ++ case it returns address of null (which would give a misleading test ++ pass). ++ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c ++ (test_unix_fd_to_str, test_unix_fd_to_str_sync): Sanity check value ++ before invoking strchr in case it returns address of null (which would ++ give a misleading test pass). ++ * nih/config.c (): nih_config_block_end: Add check to ensure strchr() ++ doesn't return address of null since this would result in a misleading ++ return value of TRUE. ++ ++ * nih/string.c (nih_str_split): Fixes to avoid over-running ++ input string and also returning an empty string array entry ++ when repeat is true (LP: #834813). ++ * nih/tests/test_string.c (test_str_split): Added a lot of new ++ tests for nih_str_split(). ++ ++2011-08-26 James Hunt ++ ++ * nih/io.c (nih_io_select_fds): Ensure number of fds being managed ++ is within limits. ++ ++ * nih/config.c, nih/error.h, nih/io.c, nih/test_files.h: Correct ++ typos in comments. ++ ++2011-06-20 James Hunt ++ ++ * nih/watch.c (nih_watch_handle): Handle non-directory watches; ++ previously a file watch resulted in an invalid file path ending in ++ a single slash (LP:#777097). ++ * nih/tests/test_watch.c: Added explicit test for watch on a file. ++ + 2010-12-23 Scott James Remnant + + * NEWS: Release 1.0.3 +--- libnih-1.0.3.orig/nih/watch.c ++++ libnih-1.0.3/nih/watch.c +@@ -2,8 +2,8 @@ + * + * watch.c - watching of files and directories with inotify + * +- * Copyright © 2009 Scott James Remnant . +- * Copyright © 2009 Canonical Ltd. ++ * Copyright © 2011 Scott James Remnant . ++ * Copyright © 2011 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as +@@ -71,6 +71,9 @@ + uint32_t events, uint32_t cookie, + const char *name, + int *caught_free); ++static int nih_watch_walk_filter (void *data, const char *path, ++ int is_dir) ++ __attribute__ ((warn_unused_result)); + + + /** +@@ -91,7 +94,7 @@ + * sub-directories will be automatically watched. + * + * Additionally, the set of files and directories within @path can be +- * limited by passing a @filter function which will recieve the paths and ++ * limited by passing a @filter function which will receive the paths and + * may return TRUE to indicate that the path received should not be watched. + * + * When a file is created within @path, or moved from outside this location +@@ -104,7 +107,7 @@ + * files that exist under @path when the watch is first added. This only + * occurs if the watch can be added. + * +- * This is a very high level wrapped around the inotify API; lower levels ++ * This is a very high level wrapper around the inotify API; lower levels + * can be obtained using the inotify API itself and some of the helper + * functions used by this one. + * +@@ -185,6 +188,35 @@ + } + + ++ /** ++ * nih_watch_walk_filter: ++ * @data: NihWatch, ++ * @path: path to file, ++ * @is_dir: TRUE if @path is a directory. ++ * ++ * Callback function for nih_dir_walk(), used by nih_watch_add() to wrap ++ * the user-specified NihFileFilter (watch->filter) with a filter that can ++ * take watch itself as an argument. ++ * ++ * Returns: TRUE if the path should be ignored, FALSE otherwise. ++ **/ ++static int ++nih_watch_walk_filter (void *data, const char *path, int is_dir) ++{ ++ NihWatch *watch; ++ ++ watch = (NihWatch *)data; ++ ++ nih_assert (watch); ++ ++ /* No filter, so accept all files */ ++ if (! watch->filter) ++ return FALSE; ++ ++ return watch->filter (watch->data, path, is_dir); ++} ++ ++ + /** + * nih_watch_handle_by_wd: + * @watch: watch to search, +@@ -295,7 +327,7 @@ + * one; errors within the walk are warned automatically, so if this + * fails, it means we literally couldn't watch the top-level. + */ +- if (subdirs && (nih_dir_walk (path, watch->filter, ++ if (subdirs && (nih_dir_walk (path, nih_watch_walk_filter, + (NihFileVisitor)nih_watch_add_visitor, + NULL, watch) < 0)) { + NihError *err; +@@ -494,12 +526,21 @@ + return; + } + ++ /* Every other event must come with a name */ ++ if (name && *name) { + +- /* Every other event must come with a name. */ +- if ((! name) || strchr (name, '/')) +- return; ++ /* If name refers to a directory, there should be no associated ++ * path - just the name of the path element. ++ */ ++ if (strchr (name, '/')) ++ return; + +- path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name)); ++ /* Event occured for file within a watched directory */ ++ path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name)); ++ } else { ++ /* File event occured */ ++ path = NIH_MUST (nih_strdup (NULL, handle->path)); ++ } + + /* Check the filter */ + if (watch->filter && watch->filter (watch->data, path, +--- libnih-1.0.3.orig/nih/hash.h ++++ libnih-1.0.3/nih/hash.h +@@ -141,7 +141,7 @@ + * @hash: hash table to iterate, + * @iter: name of iterator variable. + * +- * Expans to nested for statements that iterate over each entry in each ++ * Expands to nested for statements that iterate over each entry in each + * bin of @hash, except for the bin head pointer, setting @iter to each + * entry for the block within the loop. A variable named _@iter_i is used + * to iterate the hash bins. +@@ -203,7 +203,7 @@ + NihKeyFunction key_function, + NihHashFunction hash_function, + NihCmpFunction cmp_function) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NihList * nih_hash_add (NihHash *hash, NihList *entry); + NihList * nih_hash_add_unique (NihHash *hash, NihList *entry); +--- libnih-1.0.3.orig/nih/main.h ++++ libnih-1.0.3/nih/main.h +@@ -138,7 +138,7 @@ + + NihMainLoopFunc *nih_main_loop_add_func (const void *parent, + NihMainLoopCb callback, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + void nih_main_term_signal (void *data, NihSignal *signal); + +--- libnih-1.0.3.orig/nih/command.h ++++ libnih-1.0.3/nih/command.h +@@ -123,7 +123,7 @@ + + NihCommand *nih_command_join (const void *parent, + const NihCommand *a, const NihCommand *b) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih/config.h ++++ libnih-1.0.3/nih/config.h +@@ -140,10 +140,10 @@ + char * nih_config_next_token (const void *parent, const char *file, + size_t len, size_t *pos, size_t *lineno, + const char *delim, int dequote) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * nih_config_next_arg (const void *parent, const char *file, + size_t len, size_t *pos, size_t *lineno) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + void nih_config_next_line (const char *file, size_t len, + size_t *pos, size_t *lineno); + +@@ -155,15 +155,15 @@ + + char ** nih_config_parse_args (const void *parent, const char *file, + size_t len, size_t *pos, size_t *lineno) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * nih_config_parse_command (const void *parent, const char *file, + size_t len, size_t *pos, size_t *lineno) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * nih_config_parse_block (const void *parent, const char *file, + size_t len, size_t *pos, size_t *lineno, + const char *type) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + int nih_config_skip_block (const char *file, size_t len, + size_t *lineno, size_t *pos, + const char *type, size_t *endpos) +--- libnih-1.0.3.orig/nih/io.c ++++ libnih-1.0.3/nih/io.c +@@ -2,8 +2,8 @@ + * + * io.c - file and socket input/output handling + * +- * Copyright © 2009 Scott James Remnant . +- * Copyright © 2009 Canonical Ltd. ++ * Copyright © 2011 Scott James Remnant . ++ * Copyright © 2011 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as +@@ -165,6 +165,7 @@ + nih_assert (readfds != NULL); + nih_assert (writefds != NULL); + nih_assert (exceptfds != NULL); ++ nih_assert (*nfds <= FD_SETSIZE); + + nih_io_init (); + +@@ -186,6 +187,9 @@ + *nfds = nih_max (*nfds, watch->fd + 1); + } + } ++ ++ /* Re-check in case we exceeded the limit in the loop */ ++ nih_assert (*nfds <= FD_SETSIZE); + } + + /** +@@ -901,7 +905,7 @@ + * read and placed into the receive buffer or queue, and the reader function + * is called if set. + * +- * Any data or messaages in the send buffer or queue are written out if the ++ * Any data or messages in the send buffer or queue are written out if the + * @events includes NIH_IO_WRITE. + * + * Errors are handled when data is read, and result in the error handled +@@ -1211,7 +1215,7 @@ + * This function is called when the local end of a file descriptor being + * managed by NihIo should be closed. Usually this is because the remote + * end has been closed (without error) but it can also be because no +- * error handler was given ++ * error handler was given. + * + * Normally this just calls the close handler, or if not available, it + * closes the file descriptor and frees the structure (which may be +@@ -1291,7 +1295,7 @@ + * @io: structure to be destroyed. + * + * Closes the file descriptor associated with an NihIo structure so that +- * the structure can be freed. IF an error is caught by closing the ++ * the structure can be freed. If an error is caught by closing the + * descriptor, the error handler is called instead of the error being raised; + * this allows you to group your error handling in one place rather than + * special-case close. +--- libnih-1.0.3.orig/nih/watch.h ++++ libnih-1.0.3/nih/watch.h +@@ -156,7 +156,7 @@ + NihCreateHandler create_handler, + NihModifyHandler modify_handler, + NihDeleteHandler delete_handler, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int nih_watch_add (NihWatch *watch, const char *path, int subdirs) + __attribute__ ((warn_unused_result)); +--- libnih-1.0.3.orig/nih/tree.h ++++ libnih-1.0.3/nih/tree.h +@@ -344,9 +344,9 @@ + + void nih_tree_init (NihTree *tree); + NihTree * nih_tree_new (const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + NihTreeEntry *nih_tree_entry_new (const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NihTree * nih_tree_add (NihTree *tree, NihTree *node, + NihTreeWhere where); +--- libnih-1.0.3.orig/nih/file.c ++++ libnih-1.0.3/nih/file.c +@@ -65,7 +65,7 @@ + /* Prototypes for static functions */ + static char **nih_dir_walk_scan (const char *path, NihFileFilter filter, + void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + static int nih_dir_walk_visit (const char *dirname, NihList *dirs, + const char *path, NihFileFilter filter, + NihFileVisitor visitor, +@@ -619,6 +619,8 @@ + struct dirent *ent; + char **paths; + size_t npaths; ++ int isdir; ++ struct stat statbuf; + + nih_assert (path != NULL); + +@@ -640,7 +642,15 @@ + subpath = NIH_MUST (nih_sprintf (NULL, "%s/%s", + path, ent->d_name)); + +- if (filter && filter (data, subpath, ent->d_type == DT_DIR)) ++ if (ent->d_type == DT_UNKNOWN) { ++ if ( lstat (subpath, &statbuf)) ++ isdir = 0; ++ else ++ isdir = S_ISDIR(statbuf.st_mode); ++ } else ++ isdir = ent->d_type == DT_DIR; ++ ++ if (filter && filter (data, subpath, isdir)) + continue; + + NIH_MUST (nih_str_array_addp (&paths, NULL, &npaths, subpath)); +--- libnih-1.0.3.orig/nih/alloc.c ++++ libnih-1.0.3/nih/alloc.c +@@ -119,8 +119,7 @@ + static inline int nih_alloc_context_free (NihAllocCtx *ctx); + + static inline NihAllocRef *nih_alloc_ref_new (NihAllocCtx *parent, +- NihAllocCtx *child) +- __attribute__ ((malloc)); ++ NihAllocCtx *child); + static inline void nih_alloc_ref_free (NihAllocRef *ref); + static inline NihAllocRef *nih_alloc_ref_lookup (NihAllocCtx *parent, + NihAllocCtx *child); +--- libnih-1.0.3.orig/nih/timer.h ++++ libnih-1.0.3/nih/timer.h +@@ -59,7 +59,7 @@ + * @months: months (1-12), + * @wdays: days of week (0-7). + * +- * Indidcates when scheduled timers should be run, each member is a bit ++ * Indicates when scheduled timers should be run, each member is a bit + * field where the bit is 1 if the timer should be run for that value and + * 0 if not. + **/ +@@ -117,14 +117,14 @@ + + NihTimer *nih_timer_add_timeout (const void *parent, time_t timeout, + NihTimerCb callback, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + NihTimer *nih_timer_add_periodic (const void *parent, time_t period, + NihTimerCb callback, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + NihTimer *nih_timer_add_scheduled (const void *parent, + NihTimerSchedule *schedule, + NihTimerCb callback, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NihTimer *nih_timer_next_due (void); + void nih_timer_poll (void); +--- libnih-1.0.3.orig/nih/config.c ++++ libnih-1.0.3/nih/config.c +@@ -2,8 +2,8 @@ + * + * config.c - configuration file parsing + * +- * Copyright © 2009 Scott James Remnant . +- * Copyright © 2009 Canonical Ltd. ++ * Copyright © 2011 Scott James Remnant . ++ * Copyright © 2011 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as +@@ -657,7 +657,7 @@ + * of the returned string are freed, the returned string will also be + * freed. + * +- * Returns: the command found or NULL on raised error. ++ * Returns: the newly allocated command found or NULL on raised error. + **/ + char * + nih_config_parse_command (const void *parent, +@@ -714,7 +714,7 @@ + * @lineno: line number, + * @type: block identifier. + * +- * Extracts a block of text from @line, stopping when the pharse "end @type" ++ * Extracts a block of text from @line, stopping when the phrase "end @type" + * is encountered without any quotes or blackslash escaping within it. + * + * @file may be a memory mapped file, in which case @pos should be given +@@ -950,7 +950,7 @@ + return FALSE; + + /* Must be whitespace after */ +- if (! strchr (NIH_CONFIG_WS, file[p + 3])) ++ if (file[p + 3] && ! strchr (NIH_CONFIG_WS, file[p + 3])) + return FALSE; + + /* Find the second word */ +--- libnih-1.0.3.orig/nih/option.h ++++ libnih-1.0.3/nih/option.h +@@ -124,11 +124,11 @@ + char ** nih_option_parser (const void *parent, + int argc, char *argv[], + NihOption *options, int break_nonopt) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NihOption *nih_option_join (const void *parent, + const NihOption *a, const NihOption *b) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int nih_option_count (NihOption *option, const char *arg); + int nih_option_int (NihOption *option, const char *arg); +--- libnih-1.0.3.orig/nih/signal.h ++++ libnih-1.0.3/nih/signal.h +@@ -76,7 +76,7 @@ + + NihSignal * nih_signal_add_handler (const void *parent, int signum, + NihSignalHandler handler, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + void nih_signal_handler (int signum); + void nih_signal_poll (void); +--- libnih-1.0.3.orig/nih/list.h ++++ libnih-1.0.3/nih/list.h +@@ -37,7 +37,7 @@ + * after a known entry, and remove an entry from the list. + * + * List entries may be created in one of two ways. The most common is to +- * embed the NihList structure as the frist member of your own structure, ++ * embed the NihList structure as the first member of your own structure, + * and initialise it with nih_list_init() after allocating the structure. + * Alternatively you may create NihListEntry structures with + * nih_list_entry_new() and point at your own data from them. +@@ -196,10 +196,10 @@ + + void nih_list_init (NihList *entry); + NihList * nih_list_new (const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NihListEntry *nih_list_entry_new (const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + + NihList * nih_list_add (NihList *list, NihList *entry); +--- libnih-1.0.3.orig/nih/logging.c ++++ libnih-1.0.3/nih/logging.c +@@ -39,11 +39,11 @@ + + + /** +- * __abort_msg: ++ * __nih_abort_msg: + * +- * A glibc variable that keeps the assertion message in the core dump. ++ * A variable that keeps the assertion message in the core dump. + **/ +-extern char *__abort_msg __attribute__ ((weak)); ++char *__nih_abort_msg = NULL; + + /** + * logger: +@@ -114,19 +114,16 @@ + * nih_log_abort_message: + * @message: message to be logged. + * +- * Save @message in the glibc __abort_msg variable so it can be retrieved ++ * Save @message in the __nih_abort_msg variable so it can be retrieved + * by debuggers if we should crash at this point. + **/ + static void + nih_log_abort_message (const char *message) + { +- if (! &__abort_msg) +- return; ++ if (__nih_abort_msg) ++ nih_discard (__nih_abort_msg); + +- if (__abort_msg) +- nih_discard (__abort_msg); +- +- __abort_msg = NIH_MUST (nih_strdup (NULL, message)); ++ __nih_abort_msg = NIH_MUST (nih_strdup (NULL, message)); + } + + /** +--- libnih-1.0.3.orig/nih/test_files.h ++++ libnih-1.0.3/nih/test_files.h +@@ -1,7 +1,7 @@ + /* libnih + * +- * Copyright © 2009 Scott James Remnant . +- * Copyright © 2009 Canonical Ltd. ++ * Copyright © 2011 Scott James Remnant . ++ * Copyright © 2011 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as +@@ -39,7 +39,7 @@ + * TEST_FILENAME: + * @_var: variable to store filename in. + * +- * Generate a filename that may be used for testing, it's unlinked it if ++ * Generate a filename that may be used for testing, it's unlinked if it + * exists and it's up to you to unlink it when done. @_var should be at + * least PATH_MAX long. + **/ +--- libnih-1.0.3.orig/nih/test_process.h ++++ libnih-1.0.3/nih/test_process.h +@@ -36,7 +36,7 @@ + * Spawn a child in which a test can be performed without affecting the + * main flow of the process. The pid of the child is stored in @_pid. + * +- * This macro ensures that the child has begun exectution before the ++ * This macro ensures that the child has begun execution before the + * parent is allowed to continue through the usual use of a pipe. + * + * A block of code should follow this macro, which is the code that will +--- libnih-1.0.3.orig/nih/child.h ++++ libnih-1.0.3/nih/child.h +@@ -98,7 +98,7 @@ + NihChildWatch *nih_child_add_watch (const void *parent, pid_t pid, + NihChildEvents events, + NihChildHandler handler, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + void nih_child_poll (void); + +--- libnih-1.0.3.orig/nih/alloc.h ++++ libnih-1.0.3/nih/alloc.h +@@ -299,7 +299,7 @@ + * It is permissible to take references to foo within its scope, or by + * functions called, in which case it will not be freed. Also it is + * generally nonsensical to allocate with a parent, since this too will +- * prevent it from beign freed. ++ * prevent it from being freed. + **/ + #define nih_local __attribute__ ((cleanup(_nih_discard_local))) + +@@ -307,11 +307,11 @@ + NIH_BEGIN_EXTERN + + void * nih_alloc (const void *parent, size_t size) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + void * nih_realloc (void *ptr, const void *parent, + size_t size) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int nih_free (void *ptr); + int nih_discard (void *ptr); +--- libnih-1.0.3.orig/nih/io.h ++++ libnih-1.0.3/nih/io.h +@@ -269,7 +269,7 @@ + NihIoWatch * nih_io_add_watch (const void *parent, int fd, + NihIoEvents events, + NihIoWatcher watcher, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + void nih_io_select_fds (int *nfds, fd_set *readfds, + fd_set *writefds, fd_set *exceptfds); +@@ -278,12 +278,12 @@ + + + NihIoBuffer * nih_io_buffer_new (const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int nih_io_buffer_resize (NihIoBuffer *buffer, size_t grow); + char * nih_io_buffer_pop (const void *parent, + NihIoBuffer *buffer, size_t *len) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + void nih_io_buffer_shrink (NihIoBuffer *buffer, size_t len); + int nih_io_buffer_push (NihIoBuffer *buffer, + const char *str, size_t len) +@@ -291,7 +291,7 @@ + + + NihIoMessage *nih_io_message_new (const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int nih_io_message_add_control (NihIoMessage *message, int level, + int type, socklen_t len, +@@ -300,7 +300,7 @@ + + NihIoMessage *nih_io_message_recv (const void *parent, int fd, + size_t *len) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + ssize_t nih_io_message_send (NihIoMessage *message, int fd) + __attribute__ ((warn_unused_result)); + +@@ -310,7 +310,7 @@ + NihIoCloseHandler close_handler, + NihIoErrorHandler error_handler, + void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + void nih_io_shutdown (NihIo *io); + int nih_io_destroy (NihIo *io); + +@@ -319,14 +319,14 @@ + + char * nih_io_read (const void *parent, NihIo *io, + size_t *len) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + int nih_io_write (NihIo *io, const char *str, + size_t len) + __attribute__ ((warn_unused_result)); + + char * nih_io_get (const void *parent, NihIo *io, + const char *delim) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int nih_io_printf (NihIo *io, const char *format, ...) + __attribute__ ((warn_unused_result, format (printf, 2, 3))); +--- libnih-1.0.3.orig/nih/test_output.h ++++ libnih-1.0.3/nih/test_output.h +@@ -61,10 +61,10 @@ + + /** + * TEST_FEATURE: +- * @_feat: name of function feature being tested. ++ * @_feat: name of function or group feature being tested. + * +- * Output a message indicating that a sub-test of a function is being +- * performed, specifically the feature named _feat. ++ * Output a message indicating that a sub-test of a function or ++ * group is being performed, specifically the feature named _feat. + **/ + #define TEST_FEATURE(_feat) \ + printf ("...%s\n", _feat); +--- libnih-1.0.3.orig/nih/error.h ++++ libnih-1.0.3/nih/error.h +@@ -1,7 +1,7 @@ + /* libnih + * +- * Copyright © 2009 Scott James Remnant . +- * Copyright © 2009 Canonical Ltd. ++ * Copyright © 2011 Scott James Remnant . ++ * Copyright © 2011 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as +@@ -111,7 +111,7 @@ + * @message: human-readable message. + * + * Raises an error with the given details in the current error context, +- * if an unhandled error already exists then an error message is emmitted ++ * if an unhandled error already exists then an error message is emitted + * through the logging system; you should try to avoid this. + * + * @message should be a static string, as it will not be freed when the +@@ -126,7 +126,7 @@ + * @format: format string for human-readable message. + * + * Raises an error with the given details in the current error context, +- * if an unhandled error already exists then an error message is emmitted ++ * if an unhandled error already exists then an error message is emitted + * through the logging system; you should try to avoid this. + * + * The human-readable message for the error is parsed according to @format, +@@ -140,7 +140,7 @@ + * nih_error_raise_system: + * + * Raises an error with details taken from the current value of errno, +- * if an unhandled error already exists then an error message is emmitted ++ * if an unhandled error already exists then an error message is emitted + * through the logging system; you should try to avoid this. + **/ + #define nih_error_raise_system() \ +@@ -162,7 +162,7 @@ + * @error: existing object to raise. + * + * Raises the existing error object in the current error context, +- * if an unhandled error already exists then an error message is emmitted ++ * if an unhandled error already exists then an error message is emitted + * through the logging system; you should try to avoid this. + * + * This is normally used to raise a taken error that has not been handled, +@@ -182,7 +182,7 @@ + * @message: human-readable message. + * + * Raises an error with the given details in the current error context, +- * if an unhandled error already exists then an error message is emmitted ++ * if an unhandled error already exists then an error message is emitted + * through the logging system; you should try to avoid this. + * + * Will return from the current function with @retval, which may be left +@@ -199,7 +199,7 @@ + * @retval: return value for function. + * + * Raises an error with details taken from the current value of errno, +- * if an unhandled error already exists then an error message is emmitted ++ * if an unhandled error already exists then an error message is emitted + * through the logging system; you should try to avoid this. + * + * Will return from the current function with @retval, which may be left +--- libnih-1.0.3.orig/nih/string.h ++++ libnih-1.0.3/nih/string.h +@@ -35,60 +35,60 @@ + NIH_BEGIN_EXTERN + + char * nih_sprintf (const void *parent, const char *format, ...) +- __attribute__ ((format (printf, 2, 3), warn_unused_result, malloc)); ++ __attribute__ ((format (printf, 2, 3), warn_unused_result)); + + char * nih_vsprintf (const void *parent, const char *format, + va_list args) +- __attribute__ ((format (printf, 2, 0), warn_unused_result, malloc)); ++ __attribute__ ((format (printf, 2, 0), warn_unused_result)); + + char * nih_strdup (const void *parent, const char *str) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * nih_strndup (const void *parent, const char *str, size_t len) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * nih_strcat (char **str, const void *parent, const char *src) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * nih_strncat (char **str, const void *parent, const char *src, + size_t len) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * nih_strcat_sprintf (char **str, const void *parent, + const char *format, ...) +- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc)); ++ __attribute__ ((format (printf, 3, 4), warn_unused_result)); + char * nih_strcat_vsprintf (char **str, const void *parent, + const char *format, va_list args) +- __attribute__ ((format (printf, 3, 0), warn_unused_result, malloc)); ++ __attribute__ ((format (printf, 3, 0), warn_unused_result)); + + char **nih_str_split (const void *parent, const char *str, + const char *delim, int repeat) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char **nih_str_array_new (const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char **nih_str_array_add (char ***array, const void *parent, size_t *len, + const char *str) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char **nih_str_array_addn (char ***array, const void *parent, size_t *len, + const char *str, size_t strlen) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char **nih_str_array_addp (char ***array, const void *parent, size_t *len, + void *ptr) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char **nih_str_array_copy (const void *parent, size_t *len, + char * const *array) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char **nih_str_array_append (char ***array, const void *parent, size_t *len, + char * const *args) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * nih_str_wrap (const void *parent, const char *str, size_t len, + size_t first_indent, size_t indent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + size_t nih_str_screen_width (void); + char * nih_str_screen_wrap (const void *parent, const char *str, + size_t first_indent, size_t indent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih/string.c ++++ libnih-1.0.3/nih/string.c +@@ -405,7 +405,7 @@ + const char *ptr; + + /* Skip initial delimiters */ +- while (repeat && strchr (delim, *str)) ++ while (repeat && *str && strchr (delim, *str)) + str++; + + /* Find the end of the token */ +@@ -413,6 +413,13 @@ + while (*str && (! strchr (delim, *str))) + str++; + ++ /* Don't create an empty string array element in repeat ++ * mode if there is no token (as a result of a ++ * duplicated delimiter character). ++ */ ++ if (repeat && (str == ptr)) ++ continue; ++ + if (! nih_str_array_addn (&array, parent, &len, + ptr, str - ptr)) { + nih_free (array); +--- libnih-1.0.3.orig/nih/file.h ++++ libnih-1.0.3/nih/file.h +@@ -82,7 +82,7 @@ + + char *nih_file_read (const void *parent, const char *path, + size_t *length) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + void *nih_file_map (const char *path, int flags, size_t *length) + __attribute__ ((warn_unused_result)); +--- libnih-1.0.3.orig/nih/tests/test_option.c ++++ libnih-1.0.3/nih/tests/test_option.c +@@ -1574,7 +1574,7 @@ + output = tmpfile (); + TEST_CHILD (pid) { + TEST_DIVERT_STDOUT (output) { +- char **args; ++ char **args __attribute__((unused)); + + args = nih_option_parser (NULL, argc, argv, + options, FALSE); +@@ -1652,7 +1652,7 @@ + unsetenv ("COLUMNS"); + + TEST_DIVERT_STDOUT (output) { +- char **args; ++ char **args __attribute__((unused)); + + args = nih_option_parser (NULL, argc, argv, + options, FALSE); +--- libnih-1.0.3.orig/nih/tests/test_logging.c ++++ libnih-1.0.3/nih/tests/test_logging.c +@@ -31,7 +31,7 @@ + #include + + +-extern char *__abort_msg __attribute__ ((weak)); ++extern char *__nih_abort_msg; + + static NihLogLevel last_priority = NIH_LOG_UNKNOWN; + static char * last_message = NULL; +@@ -156,68 +156,63 @@ + } + + +- /* Check that a fatal message is also stored in the glibc __abort_msg ++ /* Check that a fatal message is also stored in the __nih_abort_msg + * variable. + */ +- if (&__abort_msg) { +- TEST_FEATURE ("with fatal message"); +- TEST_ALLOC_FAIL { +- __abort_msg = NULL; +- last_priority = NIH_LOG_UNKNOWN; +- last_message = NULL; +- +- ret = nih_log_message (NIH_LOG_FATAL, +- "message with %s %d formatting", +- "some", 20); +- +- TEST_EQ (ret, 0); +- TEST_EQ (last_priority, NIH_LOG_FATAL); +- TEST_EQ_STR (last_message, "message with some 20 formatting"); +- +- TEST_NE_P (__abort_msg, NULL); +- TEST_ALLOC_PARENT (__abort_msg, NULL); +- TEST_EQ_STR (__abort_msg, "message with some 20 formatting"); ++ TEST_FEATURE ("with fatal message"); ++ TEST_ALLOC_FAIL { ++ __nih_abort_msg = NULL; ++ last_priority = NIH_LOG_UNKNOWN; ++ last_message = NULL; + +- free (last_message); +- } ++ ret = nih_log_message (NIH_LOG_FATAL, ++ "message with %s %d formatting", ++ "some", 20); + ++ TEST_EQ (ret, 0); ++ TEST_EQ (last_priority, NIH_LOG_FATAL); ++ TEST_EQ_STR (last_message, "message with some 20 formatting"); + +- /* Check that a fatal message can safely overwrite one already stored +- * in the glibc __abort_msg variable. +- */ +- TEST_FEATURE ("with second fatal message"); +- TEST_ALLOC_FAIL { +- TEST_ALLOC_SAFE { +- msg = nih_strdup (NULL, "test"); +- } +- +- __abort_msg = msg; +- TEST_FREE_TAG (msg); +- +- last_priority = NIH_LOG_UNKNOWN; +- last_message = NULL; +- +- ret = nih_log_message (NIH_LOG_FATAL, +- "message with %s %d formatting", +- "some", 20); +- +- TEST_EQ (ret, 0); +- TEST_EQ (last_priority, NIH_LOG_FATAL); +- TEST_EQ_STR (last_message, "message with some 20 formatting"); +- +- TEST_FREE (msg); +- +- TEST_NE_P (__abort_msg, NULL); +- TEST_ALLOC_PARENT (__abort_msg, NULL); +- TEST_EQ_STR (__abort_msg, "message with some 20 formatting"); ++ TEST_NE_P (__nih_abort_msg, NULL); ++ TEST_ALLOC_PARENT (__nih_abort_msg, NULL); ++ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting"); + +- free (last_message); +- } +- } else { +- printf ("SKIP: __abort_msg not available\n"); ++ free (last_message); + } + + ++ /* Check that a fatal message can safely overwrite one already stored ++ * in the __nih_abort_msg variable. ++ */ ++ TEST_FEATURE ("with second fatal message"); ++ TEST_ALLOC_FAIL { ++ TEST_ALLOC_SAFE { ++ msg = nih_strdup (NULL, "test"); ++ } ++ ++ __nih_abort_msg = msg; ++ TEST_FREE_TAG (msg); ++ ++ last_priority = NIH_LOG_UNKNOWN; ++ last_message = NULL; ++ ++ ret = nih_log_message (NIH_LOG_FATAL, ++ "message with %s %d formatting", ++ "some", 20); ++ ++ TEST_EQ (ret, 0); ++ TEST_EQ (last_priority, NIH_LOG_FATAL); ++ TEST_EQ_STR (last_message, "message with some 20 formatting"); ++ ++ TEST_FREE (msg); ++ ++ TEST_NE_P (__nih_abort_msg, NULL); ++ TEST_ALLOC_PARENT (__nih_abort_msg, NULL); ++ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting"); ++ ++ free (last_message); ++ } ++ + /* Check that the nih_debug macro wraps the call properly and + * includes the function in which the message occurred. + */ +--- libnih-1.0.3.orig/nih/tests/test_hash.c ++++ libnih-1.0.3/nih/tests/test_hash.c +@@ -470,7 +470,8 @@ + test_lookup (void) + { + NihHash *hash; +- NihList *entry1, *entry2, *entry3, *ptr; ++ NihList *entry1, *entry2, *ptr; ++ NihList *entry3 __attribute__((unused)); + + TEST_FUNCTION ("nih_hash_lookup"); + hash = nih_hash_string_new (NULL, 0); +--- libnih-1.0.3.orig/nih/tests/test_main.c ++++ libnih-1.0.3/nih/tests/test_main.c +@@ -457,7 +457,7 @@ + test_main_loop (void) + { + NihMainLoopFunc *func; +- NihTimer *timer; ++ NihTimer *timer __attribute__((unused)); + int ret; + + /* Check that we can run through the main loop, and that the +--- libnih-1.0.3.orig/nih/tests/test_watch.c ++++ libnih-1.0.3/nih/tests/test_watch.c +@@ -2,8 +2,8 @@ + * + * test_watch.c - test suite for nih/watch.c + * +- * Copyright © 2009 Scott James Remnant . +- * Copyright © 2009 Canonical Ltd. ++ * Copyright © 2011 Scott James Remnant . ++ * Copyright © 2011 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as +@@ -39,6 +39,8 @@ + #include + #include + ++/* Read "The Hitchhikers Guide to the Galaxy" */ ++#define FILTER_VALUE 42 + + static int + my_filter (void *data, +@@ -54,6 +56,26 @@ + return FALSE; + } + ++/* Set by my_filter2 () so it knows if it has already been called */ ++static int my_filter2_called = 0; ++ ++static int ++my_filter2 (int *value, ++ const char *path, ++ int is_dir) ++{ ++ /* we only want to toggle the value once */ ++ if (my_filter2_called) ++ return TRUE; ++ ++ my_filter2_called = 1; ++ ++ nih_assert (value && *value == FILTER_VALUE); ++ *value = 0; ++ ++ return FALSE; ++} ++ + static int create_called = 0; + static int modify_called = 0; + static int delete_called = 0; +@@ -553,6 +575,44 @@ + nih_free (watch); + } + ++ /* Ensure the file filter gets passed the correct data pointer. ++ */ ++ TEST_FEATURE ("with filter and data"); ++ ++ /* Ensure we have a new directory */ ++ TEST_FILENAME (dirname); ++ mkdir (dirname, 0755); ++ ++ /* Create a single file */ ++ strcpy (filename, dirname); ++ strcat (filename, "/foo"); ++ ++ fd = fopen (filename, "w"); ++ fprintf (fd, "test\n"); ++ fclose (fd); ++ ++ TEST_ALLOC_FAIL { ++ int watch_data = FILTER_VALUE; ++ ++ /* Reset required to appease TEST_ALLOC_FAIL */ ++ my_filter2_called = 0; ++ ++ watch = nih_watch_new (NULL, dirname, ++ TRUE, TRUE, ++ (NihFileFilter)my_filter2, ++ NULL, NULL, NULL, ++ &watch_data); ++ ++ TEST_NE_P (watch, NULL); ++ ++ /* Ensure the filter was called and changed the value */ ++ ++ TEST_NE (my_filter2_called, 0); ++ TEST_EQ (watch_data, 0); ++ ++ nih_free (watch); ++ } ++ + strcpy (filename, dirname); + strcat (filename, "/bar"); + chmod (filename, 0755); +@@ -946,13 +1006,82 @@ + nih_error_init (); + + TEST_FILENAME (dirname); +- mkdir (dirname, 0755); ++ TEST_EQ (mkdir (dirname, 0755), 0); + +- watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter, +- my_create_handler, my_modify_handler, ++ TEST_FEATURE ("with watched file"); ++ strcpy (filename, dirname); ++ strcat (filename, "/foo"); ++ ++ /* Create file first since we don't set a create handler on the ++ * watch. ++ */ ++ fd = fopen (filename, "w"); ++ fprintf (fd, "bar\n"); ++ fclose (fd); ++ ++ create_called = 0; ++ modify_called = 0; ++ delete_called = 0; ++ logger_called = 0; ++ last_path = NULL; ++ last_watch = NULL; ++ last_data = NULL; ++ ++ watch = nih_watch_new (NULL, filename, FALSE, FALSE, NULL, ++ NULL, my_modify_handler, + my_delete_handler, &watch); ++ TEST_NE_P (watch, NULL); ++ ++ /* Now, modify the existing file to trigger the modify handler. */ ++ fd = fopen (filename, "a+"); ++ fprintf (fd, "baz\n"); ++ fclose (fd); ++ ++ nfds = 0; ++ FD_ZERO (&readfds); ++ FD_ZERO (&writefds); ++ FD_ZERO (&exceptfds); ++ ++ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds); ++ select (nfds, &readfds, &writefds, &exceptfds, NULL); ++ nih_io_handle_fds (&readfds, &writefds, &exceptfds); ++ ++ TEST_EQ_STR (watch->path, filename); ++ ++ /* Ensure no regression to old behaviour (LP:#777097) */ ++ TEST_NE (last_path[ strlen(last_path) - 1 ], '/'); ++ ++ TEST_EQ_STR (last_path, filename); ++ TEST_EQ (modify_called, 1); ++ ++ unlink (filename); ++ ++ nfds = 0; ++ FD_ZERO (&readfds); ++ FD_ZERO (&writefds); ++ FD_ZERO (&exceptfds); ++ ++ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds); ++ select (nfds, &readfds, &writefds, &exceptfds, NULL); ++ nih_io_handle_fds (&readfds, &writefds, &exceptfds); + ++ TEST_EQ (delete_called, 1); + ++ rmdir (filename); ++ nih_free (last_path); ++ ++ create_called = 0; ++ modify_called = 0; ++ delete_called = 0; ++ logger_called = 0; ++ last_path = NULL; ++ last_watch = NULL; ++ last_data = NULL; ++ ++ ++ watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter, ++ my_create_handler, my_modify_handler, ++ my_delete_handler, &watch); + /* Check that creating a file within the directory being watched + * results in the create handler being called, and passed the full + * path of the created file to it. +--- libnih-1.0.3.orig/nih/tests/test_string.c ++++ libnih-1.0.3/nih/tests/test_string.c +@@ -619,6 +619,215 @@ + nih_free (array); + } + ++ TEST_FEATURE ("with no repeat and multiple identical delimiter " ++ "characters at string start"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "\t\tthis is a test", " \t", FALSE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 7); ++ for (i = 0; i < 6; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], ""); ++ TEST_EQ_STR (array[1], ""); ++ TEST_EQ_STR (array[2], "this"); ++ TEST_EQ_STR (array[3], "is"); ++ TEST_EQ_STR (array[4], "a"); ++ TEST_EQ_STR (array[5], "test"); ++ TEST_EQ_P (array[6], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with no repeat and multiple different delimiter " ++ "characters at string start"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, " \tthis is a test", " \t", FALSE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 7); ++ for (i = 0; i < 6; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], ""); ++ TEST_EQ_STR (array[1], ""); ++ TEST_EQ_STR (array[2], "this"); ++ TEST_EQ_STR (array[3], "is"); ++ TEST_EQ_STR (array[4], "a"); ++ TEST_EQ_STR (array[5], "test"); ++ TEST_EQ_P (array[6], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with no repeat and multiple identical delimiter " ++ "characters within string"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "this is a\t\ttest", " \t", FALSE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 8); ++ for (i = 0; i < 7; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "this"); ++ TEST_EQ_STR (array[1], "is"); ++ TEST_EQ_STR (array[2], ""); ++ TEST_EQ_STR (array[3], ""); ++ TEST_EQ_STR (array[4], "a"); ++ TEST_EQ_STR (array[5], ""); ++ TEST_EQ_STR (array[6], "test"); ++ TEST_EQ_P (array[7], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with no repeat and multiple different delimiter " ++ "characters within string"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "this is \n\ta\ttest", " \t\n", FALSE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 7); ++ for (i = 0; i < 6; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "this"); ++ TEST_EQ_STR (array[1], "is"); ++ TEST_EQ_STR (array[2], ""); ++ TEST_EQ_STR (array[3], ""); ++ TEST_EQ_STR (array[4], "a"); ++ TEST_EQ_STR (array[5], "test"); ++ TEST_EQ_P (array[6], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with no repeat and multiple identical delimiter " ++ "characters at string end"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "this is a test ", " \t", FALSE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 6); ++ for (i = 0; i < 5; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "this"); ++ TEST_EQ_STR (array[1], "is"); ++ TEST_EQ_STR (array[2], "a"); ++ TEST_EQ_STR (array[3], "test"); ++ TEST_EQ_STR (array[4], ""); ++ TEST_EQ_P (array[5], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with no repeat and multiple different delimiter " ++ "characters at string end"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "this is a test \t", " \t", FALSE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 6); ++ for (i = 0; i < 5; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "this"); ++ TEST_EQ_STR (array[1], "is"); ++ TEST_EQ_STR (array[2], "a"); ++ TEST_EQ_STR (array[3], "test"); ++ TEST_EQ_STR (array[4], ""); ++ TEST_EQ_P (array[5], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with no repeat and multiple identical delimiter " ++ "characters at beginning, middle and end of string"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, " this is\n\n\na test\t\t\t", " \t\n", FALSE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 12); ++ for (i = 0; i < 11; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], ""); ++ TEST_EQ_STR (array[1], ""); ++ TEST_EQ_STR (array[2], ""); ++ TEST_EQ_STR (array[3], "this"); ++ TEST_EQ_STR (array[4], "is"); ++ TEST_EQ_STR (array[5], ""); ++ TEST_EQ_STR (array[6], ""); ++ TEST_EQ_STR (array[7], "a"); ++ TEST_EQ_STR (array[8], "test"); ++ TEST_EQ_STR (array[9], ""); ++ TEST_EQ_STR (array[10], ""); ++ TEST_EQ_P (array[11], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with no repeat and multiple different delimiter " ++ "characters at beginning, middle and end of string"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, ": \nthis is\t \n:a test:\n ", "\n :\t", FALSE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 13); ++ for (i = 0; i < 12; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], ""); ++ TEST_EQ_STR (array[1], ""); ++ TEST_EQ_STR (array[2], ""); ++ TEST_EQ_STR (array[3], "this"); ++ TEST_EQ_STR (array[4], "is"); ++ TEST_EQ_STR (array[5], ""); ++ TEST_EQ_STR (array[6], ""); ++ TEST_EQ_STR (array[7], ""); ++ TEST_EQ_STR (array[8], "a"); ++ TEST_EQ_STR (array[9], "test"); ++ TEST_EQ_STR (array[10], ""); ++ TEST_EQ_STR (array[11], ""); ++ TEST_EQ_P (array[12], NULL); ++ ++ nih_free (array); ++ } + + /* Check that we can split a string treating multiple consecutive + * matching characters as a single separator to be skipped. +@@ -645,6 +854,177 @@ + nih_free (array); + } + ++ /* Check that we can split a string containing multiple ++ * occurences of one of the delimiter characters at the ++ * beginning of the string. ++ */ ++ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter characters at string start"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "\n\nhello", " \t\r\n", TRUE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 2); ++ for (i = 0; i < 1; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "hello"); ++ TEST_EQ_P (array[1], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with repeat and multiple different adjacent delimiter characters at string start"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "\n\r hello", " \t\r\n", TRUE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 2); ++ for (i = 0; i < 1; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "hello"); ++ TEST_EQ_P (array[1], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter " ++ "characters within string"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "hello\n\rworld", " \t\n\r", TRUE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 3); ++ for (i = 0; i < 2; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "hello"); ++ TEST_EQ_STR (array[1], "world"); ++ TEST_EQ_P (array[2], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with repeat and multiple different adjacent delimiter " ++ "characters within string"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "hello\n\r\tworld", " \t\n\r", TRUE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 3); ++ for (i = 0; i < 2; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "hello"); ++ TEST_EQ_STR (array[1], "world"); ++ TEST_EQ_P (array[2], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter " ++ "characters at string end"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "hello\n\n\n\n\n\n\n", " \t\r\n", TRUE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 2); ++ for (i = 0; i < 1; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "hello"); ++ TEST_EQ_P (array[1], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with repeat and multiple different adjacent delimiter " ++ "characters at string end"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, "hello \r\t\r\t\n ", " \t\r\n", TRUE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 2); ++ for (i = 0; i < 1; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "hello"); ++ TEST_EQ_P (array[1], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter " ++ "characters at beginning, middle and end of string"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, ++ " hello\n\n\n, world\n\n\n", ++ "\r\t\n ", TRUE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 4); ++ for (i = 0; i < 3; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "hello"); ++ TEST_EQ_STR (array[1], ","); ++ TEST_EQ_STR (array[2], "world"); ++ TEST_EQ_P (array[3], NULL); ++ ++ nih_free (array); ++ } ++ ++ TEST_FEATURE ("with repeat and multiple different adjacent delimiter " ++ "characters at beginning, middle and end of string"); ++ TEST_ALLOC_FAIL { ++ array = nih_str_split (NULL, ++ "\n \r\thello\n\n\r , \n\t\rworld\t \r\n \n", ++ " \t\n\r", TRUE); ++ ++ if (test_alloc_failed) { ++ TEST_EQ_P (array, NULL); ++ continue; ++ } ++ ++ TEST_ALLOC_SIZE (array, sizeof (char *) * 4); ++ for (i = 0; i < 3; i++) ++ TEST_ALLOC_PARENT (array[i], array); ++ ++ TEST_EQ_STR (array[0], "hello"); ++ TEST_EQ_STR (array[1], ","); ++ TEST_EQ_STR (array[2], "world"); ++ TEST_EQ_P (array[3], NULL); ++ ++ nih_free (array); ++ } + + /* Check that we can give an empty string, and end up with a + * one-element array that only contains a NULL pointer. +--- libnih-1.0.3.orig/nih/tests/test_file.c ++++ libnih-1.0.3/nih/tests/test_file.c +@@ -724,6 +724,25 @@ + return FALSE; + } + ++/* find only frodo files */ ++static int ++my_filter_frodo_file (void *data, ++ const char *path, ++ int is_dir) ++{ ++ char *slash; ++ ++ if (is_dir) ++ return FALSE; ++ ++ slash = strrchr (path, '/'); ++ if (strcmp (slash, "/frodo")) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++ + static int logger_called = 0; + + static int +@@ -905,6 +924,48 @@ + TEST_EQ_STR (v->path, filename); + + nih_free (visited); ++ ++ /* Try also inverse filter */ ++ TEST_ALLOC_SAFE { ++ visitor_called = 0; ++ visited = nih_list_new (NULL); ++ } ++ ++ ret = nih_dir_walk (dirname, my_filter_frodo_file, ++ my_visitor, NULL, &ret); ++ ++ TEST_EQ (ret, 0); ++ TEST_EQ (visitor_called, 4); ++ ++ v = (Visited *)visited->next; ++ TEST_EQ (v->data, &ret); ++ TEST_EQ_STR (v->dirname, dirname); ++ strcpy (filename, dirname); ++ strcat (filename, "/bar"); ++ TEST_EQ_STR (v->path, filename); ++ ++ v = (Visited *)v->entry.next; ++ TEST_EQ (v->data, &ret); ++ TEST_EQ_STR (v->dirname, dirname); ++ strcpy (filename, dirname); ++ strcat (filename, "/bar/frodo"); ++ TEST_EQ_STR (v->path, filename); ++ ++ v = (Visited *)v->entry.next; ++ TEST_EQ (v->data, &ret); ++ TEST_EQ_STR (v->dirname, dirname); ++ strcpy (filename, dirname); ++ strcat (filename, "/baz"); ++ TEST_EQ_STR (v->path, filename); ++ ++ v = (Visited *)v->entry.next; ++ TEST_EQ (v->data, &ret); ++ TEST_EQ_STR (v->dirname, dirname); ++ strcpy (filename, dirname); ++ strcat (filename, "/frodo"); ++ TEST_EQ_STR (v->path, filename); ++ ++ nih_free (visited); + } + + +--- libnih-1.0.3.orig/debian/control ++++ libnih-1.0.3/debian/control +@@ -0,0 +1,81 @@ ++Source: libnih ++Section: libs ++Priority: required ++Maintainer: Ubuntu Developers ++XSBC-Original-Maintainer: Scott James Remnant ++Standards-Version: 3.9.4 ++Build-Depends: debhelper (>= 9), pkg-config (>= 0.22), libdbus-1-dev (>= 1.4), libexpat1-dev (>= 2.0.0), dbus (>= 1.4), libc6-dev (>= 2.15~) | libc6.1-dev (>= 2.15~), ++ dh-autoreconf, autopoint, dpkg-dev (>= 1.16.1~) ++# To cross build this package also needs: libdbus-1-dev:native (>= 1.4), libexpat1-dev:native (>= 2.0.0) ++# But :native build-deps are not supported yet, so instead one can do ++# $ apt-get build-dep libnih ++# $ apt-get build-dep libnih -aarmhf ++# instead to get all required build-deps ++Vcs-Bzr: lp:ubuntu/libnih ++XSC-Debian-Vcs-Git: git://git.debian.org/git/collab-maint/libnih.git ++XSC-Debian-Vcs-Browser: http://git.debian.org/?p=collab-maint/libnih.git;a=summary ++Homepage: https://launchpad.net/libnih ++ ++Package: libnih1 ++Architecture: any ++Pre-Depends: ${misc:Pre-Depends}, ${shlibs:Depends}, ${misc:Depends} ++Multi-Arch: same ++Description: NIH Utility Library ++ libnih is a light-weight "standard library" of C functions to ease the ++ development of other libraries and applications, especially those ++ normally found in /lib. ++ . ++ This package contains the shared library. ++ ++Package: libnih-dev ++Priority: optional ++Section: libdevel ++Architecture: any ++Multi-Arch: same ++Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} ++Description: NIH Utility Library (development files) ++ libnih is a light-weight "standard library" of C functions to ease the ++ development of other libraries and applications, especially those ++ normally found in /lib. ++ . ++ This package contains the static library and C header files which are ++ needed for developing software using libnih. ++ ++Package: libnih-dbus1 ++Architecture: any ++Pre-Depends: ${misc:Pre-Depends} ++Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} ++Multi-Arch: same ++Description: NIH D-Bus Bindings Library ++ libnih-dbus is a D-Bus bindings library that integrates with the main ++ loop provided by libnih. ++ . ++ This package contains the shared library. ++ ++Package: libnih-dbus-dev ++Priority: optional ++Section: libdevel ++Architecture: any ++Multi-Arch: same ++Depends: libnih-dbus1 (= ${binary:Version}), libnih-dev (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} ++Recommends: nih-dbus-tool (= ${binary:Version}) ++Description: NIH D-Bus Bindings Library (development files) ++ libnih-dbus is a D-Bus bindings library that integrates with the main ++ loop provided by libnih. ++ . ++ This package contains the static library and C header files which are ++ needed for developing software using libnih-dbus. ++ ++Package: nih-dbus-tool ++Section: devel ++Architecture: any ++Multi-Arch: foreign ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Recommends: libnih-dbus-dev (= ${binary:Version}) ++Description: NIH D-Bus Binding Tool ++ nih-dbus-tool generates C source code from the D-Bus Introspection XML ++ data provided by most services; either to make implementing the ++ described objects in C programs or to make proxying to the described ++ remote objects easier. ++ . ++ The generated code requires libnih-dbus-dev to be compiled. +--- libnih-1.0.3.orig/debian/libnih-dev.install ++++ libnih-1.0.3/debian/libnih-dev.install +@@ -0,0 +1,6 @@ ++lib/*/libnih.a ++lib/*/libnih.so ++usr/include/libnih.h ++usr/include/nih ++usr/lib/*/pkgconfig/libnih.pc ++usr/share/aclocal/libnih.m4 +--- libnih-1.0.3.orig/debian/libnih1.docs ++++ libnih-1.0.3/debian/libnih1.docs +@@ -0,0 +1,3 @@ ++AUTHORS ++NEWS ++README +--- libnih-1.0.3.orig/debian/libnih-dbus1.install ++++ libnih-1.0.3/debian/libnih-dbus1.install +@@ -0,0 +1 @@ ++lib/*/libnih-dbus.so.* +--- libnih-1.0.3.orig/debian/libnih1.install ++++ libnih-1.0.3/debian/libnih1.install +@@ -0,0 +1 @@ ++lib/*/libnih.so.* +--- libnih-1.0.3.orig/debian/rules ++++ libnih-1.0.3/debian/rules +@@ -0,0 +1,54 @@ ++#!/usr/bin/make -f ++ ++include /usr/share/dpkg/architecture.mk ++ ++%: ++ dh $@ --with autoreconf ++ ++ ++CFLAGS := -Wall -fstack-protector -fPIE $(shell dpkg-buildflags --get CFLAGS) ++LDFLAGS := -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -pie $(shell dpkg-buildflags --get LDFLAGS) ++ ++override_dh_auto_configure: ++ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) ++ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ ++ --libdir=/lib/$(DEB_HOST_MULTIARCH) ++else ++ dh_auto_configure -B build-dbus-tool/ -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ ++ --libdir=/lib/$(DEB_BUILD_MULTIARCH) \ ++ --host=$(DEB_BUILD_GNU_TYPE) ++ dh_auto_build -B build-dbus-tool/ --parallel ++ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ ++ NIH_DBUS_TOOL=$(CURDIR)/build-dbus-tool/nih-dbus-tool/nih-dbus-tool \ ++ --libdir=/lib/$(DEB_HOST_MULTIARCH) ++endif ++ ++override_dh_auto_build: ++ dh_auto_build --parallel ++ ++override_dh_auto_test: ++ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) ++ dh_auto_test --parallel ++endif ++ ++override_dh_auto_install: ++ dh_auto_install -- pkgconfigdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)/pkgconfig ++ ++override_dh_makeshlibs: ++ dh_makeshlibs -plibnih1 -V 'libnih1 (>= 1.0.0)' ++ dh_makeshlibs -plibnih-dbus1 -V 'libnih-dbus1 (>= 1.0.0)' ++ dh_makeshlibs -Nlibnih1 -Nlibnih-dbus1 ++ ++override_dh_shlibdeps: ++ dh_shlibdeps ++ sed -i 's/2\.14/2.15/' debian/*.substvars ++ sed -i 's/>= 2.15)/>= 2.15~)/g' debian/*.substvars ++ ++ ++# Symlink /usr/share/doc directories together ++override_dh_installdocs: ++ dh_installdocs --link-doc=libnih1 ++ ++override_dh_clean: ++ rm -rf build-dbus-tool/ ++ dh_clean +--- libnih-1.0.3.orig/debian/compat ++++ libnih-1.0.3/debian/compat +@@ -0,0 +1 @@ ++9 +--- libnih-1.0.3.orig/debian/nih-dbus-tool.install ++++ libnih-1.0.3/debian/nih-dbus-tool.install +@@ -0,0 +1,2 @@ ++usr/bin/nih-dbus-tool ++usr/share/man/man1/nih-dbus-tool.1 +--- libnih-1.0.3.orig/debian/copyright ++++ libnih-1.0.3/debian/copyright +@@ -0,0 +1,18 @@ ++This is the Ubuntu package of libnih, the NIH Utility Library. ++ ++Copyright © 2009 Canonical Ltd. ++Copyright © 2009 Scott James Remnant ++ ++Licence: ++ ++This program is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License version 2, as ++published by the Free Software Foundation. ++ ++This program is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++General Public License for more details. ++ ++On Ubuntu systems, the complete text of the GNU General Public License ++can be found in ‘/usr/share/common-licenses/GPL-2’. +--- libnih-1.0.3.orig/debian/libnih-dbus1.postinst ++++ libnih-1.0.3/debian/libnih-dbus1.postinst +@@ -0,0 +1,53 @@ ++#!/bin/sh ++ ++set -e ++ ++if [ "$1" = configure ]; then ++ # A dependent library of Upstart has changed, so restart Upstart ++ # such that it can safely unmount the root filesystem (LP: #740390) ++ ++ # Query running version of Upstart, but only when we know ++ # that initctl will work. ++ # ++ # The calculated version string may be the null string if ++ # Upstart is not running (where for example an alternative ++ # init is running outside a chroot environment) or if the ++ # query failed for some reason. However, the version check ++ # below handles a null version string correctly. ++ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\ ++ awk '{print $3}'|tr -d ')' || :) ++ ++ if ischroot; then ++ # Do not honour re-exec when requested from within a ++ # chroot since: ++ # ++ # (a) The version of Upstart outside might not support it. ++ # (b) An isolated environment such as a chroot should ++ # not be able to modify its containing environment. ++ # ++ # A sufficiently new Upstart will actually handle a re-exec ++ # request coming from telinit within a chroot correctly (by ++ # doing nothing) but it's simple enough to perform the check ++ # here and save Upstart the effort. ++ : ++ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then ++ # We are not running inside a chroot and the running version ++ # of Upstart supports stateful re-exec, so we can ++ # restart immediately. ++ # ++ # XXX: Note that the check on the running version must ++ # remain *indefinitely* since it's the only safe way to ++ # know if stateful re-exec is supported: simply checking ++ # packaged version numbers is not sufficient since ++ # the package could be upgraded multiple times without a ++ # reboot. ++ telinit u || : ++ else ++ # Before we shutdown or reboot, we need to re-exec so that we ++ # can safely remount the root filesystem; we can't just do that ++ # here because we lose state. ++ touch /var/run/init.upgraded || : ++ fi ++fi ++ ++#DEBHELPER# +--- libnih-1.0.3.orig/debian/changelog.DEBIAN ++++ libnih-1.0.3/debian/changelog.DEBIAN +@@ -0,0 +1,118 @@ ++libnih (1.0.3-4) unstable; urgency=low ++ ++ * Rebuild for new libc to update versioned dependency; this comes from ++ the __abort_msg dependency, dpkg-shlibs needs overriding since this is ++ actually a weak link, but this rebuild fixes things for now. ++ Closes: #625257. ++ ++ -- Scott James Remnant Mon, 02 May 2011 15:08:33 -0700 ++ ++libnih (1.0.3-3) unstable; urgency=low ++ ++ * New maintainer. Closes: #624442. ++ ++ -- Scott James Remnant Thu, 28 Apr 2011 14:26:05 -0700 ++ ++libnih (1.0.3-2) unstable; urgency=low ++ ++ * Bump build dependency on libdbus-1-dev and dbus to (>= 1.4) for Unix file ++ descriptor passing support. ++ ++ -- Michael Biebl Thu, 10 Feb 2011 20:25:18 +0100 ++ ++libnih (1.0.3-1ubuntu1) natty; urgency=low ++ ++ * Rebuild with libc6-dev (>= 2.13~). ++ ++ -- Matthias Klose Fri, 18 Feb 2011 12:09:29 +0100 ++ ++libnih (1.0.3-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Bump debhelper compatibility level to 8 and update build dependency ++ accordingly. ++ ++ -- Michael Biebl Mon, 07 Feb 2011 22:19:13 +0100 ++ ++libnih (1.0.2-2) unstable; urgency=low ++ ++ * Install library development files to /usr/lib and not /lib. ++ * Remove libtool *.la files as there are no reverse dependencies referencing ++ them. ++ * Bump Standards-Version to 3.9.1. No further changes. ++ ++ -- Michael Biebl Sun, 02 Jan 2011 21:09:40 +0100 ++ ++libnih (1.0.2-1ubuntu3) natty; urgency=low ++ ++ * Disable some tests on ppc64 to build an initial package. ++ ++ -- Matthias Klose Thu, 18 Nov 2010 10:59:38 +0100 ++ ++libnih (1.0.2-1ubuntu2) maverick; urgency=low ++ ++ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests; ++ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403). ++ ++ -- Loïc Minier Mon, 23 Aug 2010 10:25:31 +0200 ++ ++libnih (1.0.2-1ubuntu1) maverick; urgency=low ++ ++ * Rebuild with libc6-dev (>= 2.12~), after checking that ++ __abort_msg is available with the same signature in eglibc 2.12. ++ * Don't build the testsuite with -fPIE on armel; LP: #398403. ++ ++ -- Matthias Klose Sun, 30 May 2010 02:54:56 +0200 ++ ++libnih (1.0.2-1) unstable; urgency=low ++ ++ * Initial upload to Debian. Closes: #585071 ++ * Based on the Ubuntu package for Lucid done by Scott James Remnant with the ++ following changes: ++ - Switch packages to priority optional. ++ - Use binary:Version instead of Source-Version. ++ - Bump Standards-Version to 3.8.4. ++ - Add Homepage and Vcs-* fields. ++ - Don't symlink /usr/share/doc directories. ++ - Refer to versioned /usr/share/common-licenses/GPL-2 file in ++ debian/copyright. ++ - List all symbols explicitly instead of using a wildcard and add symbols ++ introduced in 1.0.1. ++ - Use the symbols files to create the correct version info instead of ++ specifying it manually via shlibs. ++ - Switch to source format 3.0 (quilt). ++ - Add watch file to track new upstream releases. ++ ++ -- Michael Biebl Sun, 13 Jun 2010 23:36:52 +0200 ++ ++libnih (1.0.1-1) lucid; urgency=low ++ ++ * New upstream release: ++ - Add missing __nih_* symbols to linker version script so that we ++ can link Upstart's test suite. ++ - Glibc __abort_msg symbol now only linked as a weak symbol. ++ ++ -- Scott James Remnant Thu, 04 Feb 2010 14:53:26 -0800 ++ ++libnih (1.0.0-2build1) lucid; urgency=low ++ ++ * Rebuild to pick up relaxed dependency on libc6, after checking that ++ __abort_msg is available with the same signature in eglibc 2.11. ++ LP: #508702. ++ ++ -- Matthias Klose Mon, 18 Jan 2010 16:09:13 +0100 ++ ++libnih (1.0.0-2) lucid; urgency=low ++ ++ * debian/control: Add build-dependency on dbus so the test suite can ++ pass on the buildds. ++ ++ -- Scott James Remnant Sat, 28 Nov 2009 23:28:27 +0000 ++ ++libnih (1.0.0-1) lucid; urgency=low ++ ++ * First upstream release. Previously this code was included in the ++ upstart, mountall and ureadahead source packages. ++ ++ -- Scott James Remnant Sat, 28 Nov 2009 21:14:00 +0000 ++ +--- libnih-1.0.3.orig/debian/libnih1.symbols ++++ libnih-1.0.3/debian/libnih1.symbols +@@ -0,0 +1,2 @@ ++libnih.so.1 libnih1 #MINVER# ++ *@LIBNIH_1_0 1.0.0 +--- libnih-1.0.3.orig/debian/libnih-dbus-dev.install ++++ libnih-1.0.3/debian/libnih-dbus-dev.install +@@ -0,0 +1,5 @@ ++lib/*/libnih-dbus.a ++lib/*/libnih-dbus.so ++usr/include/libnih-dbus.h ++usr/include/nih-dbus ++usr/lib/*/pkgconfig/libnih-dbus.pc +--- libnih-1.0.3.orig/debian/libnih1.postinst ++++ libnih-1.0.3/debian/libnih1.postinst +@@ -0,0 +1,53 @@ ++#!/bin/sh ++ ++set -e ++ ++if [ "$1" = configure ]; then ++ # A dependent library of Upstart has changed, so restart Upstart ++ # such that it can safely unmount the root filesystem (LP: #740390) ++ ++ # Query running version of Upstart, but only when we know ++ # that initctl will work. ++ # ++ # The calculated version string may be the null string if ++ # Upstart is not running (where for example an alternative ++ # init is running outside a chroot environment) or if the ++ # query failed for some reason. However, the version check ++ # below handles a null version string correctly. ++ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\ ++ awk '{print $3}'|tr -d ')' || :) ++ ++ if ischroot; then ++ # Do not honour re-exec when requested from within a ++ # chroot since: ++ # ++ # (a) The version of Upstart outside might not support it. ++ # (b) An isolated environment such as a chroot should ++ # not be able to modify its containing environment. ++ # ++ # A sufficiently new Upstart will actually handle a re-exec ++ # request coming from telinit within a chroot correctly (by ++ # doing nothing) but it's simple enough to perform the check ++ # here and save Upstart the effort. ++ : ++ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then ++ # We are not running inside a chroot and the running version ++ # of Upstart supports stateful re-exec, so we can ++ # restart immediately. ++ # ++ # XXX: Note that the check on the running version must ++ # remain *indefinitely* since it's the only safe way to ++ # know if stateful re-exec is supported: simply checking ++ # packaged version numbers is not sufficient since ++ # the package could be upgraded multiple times without a ++ # reboot. ++ telinit u || : ++ else ++ # Before we shutdown or reboot, we need to re-exec so that we ++ # can safely remount the root filesystem; we can't just do that ++ # here because we lose state. ++ touch /var/run/init.upgraded || : ++ fi ++fi ++ ++#DEBHELPER# +--- libnih-1.0.3.orig/debian/libnih-dbus1.symbols ++++ libnih-1.0.3/debian/libnih-dbus1.symbols +@@ -0,0 +1,2 @@ ++libnih-dbus.so.1 libnih-dbus1 #MINVER# ++ *@LIBNIH_DBUS_1_0 1.0.0 +--- libnih-1.0.3.orig/debian/changelog ++++ libnih-1.0.3/debian/changelog +@@ -0,0 +1,213 @@ ++libnih (1.0.3-4ubuntu16) raring; urgency=low ++ ++ * debian/{libnih1.postinst,libnih-dbus1.postinst}: Force an upgrade to ++ restart Upstart (to pick up new package version) if the running ++ instance supports it. ++ * Merge of important fixes from lp:~upstart-devel/libnih/nih ++ (LP: #776532, LP: #777097, LP: #834813, LP: #1123588). ++ ++ -- James Hunt Thu, 14 Mar 2013 09:14:22 +0000 ++ ++libnih (1.0.3-4ubuntu15) raring; urgency=low ++ ++ * Enable cross-building, sans adding :native build-dependencies. ++ See comments in debian/control. ++ * Lintian fixes. ++ ++ -- Dmitrijs Ledkovs Tue, 08 Jan 2013 15:38:58 +0000 ++ ++libnih (1.0.3-4ubuntu14) raring; urgency=low ++ ++ * Update dbus code generator to allow for empty lists for type 'as'. ++ This drops the != NULL check for NULL terminated arrays and moves the ++ iteration loop inside an 'if' statement. ++ ++ -- Stéphane Graber Thu, 13 Dec 2012 10:00:27 -0500 ++ ++libnih (1.0.3-4ubuntu13) raring; urgency=low ++ ++ [ Petr Lautrbach , Dmitrijs Ledkovs ] ++ * Fallback to lstat, if dirent.d_type is not available (not portable) ++ (LP: #672643) (Closes: #695604) ++ ++ -- Dmitrijs Ledkovs Tue, 11 Dec 2012 17:26:52 +0000 ++ ++libnih (1.0.3-4ubuntu12) raring; urgency=low ++ ++ * nih/logging.c: Use our own __nih_abort_msg rather than the (e)glibc ++ private symbol __abort_msg to avoid upgrade issues (LP: #997359). ++ * nih/tests/test_logging.c: Update tests for __nih_abort_msg. ++ ++ -- James Hunt Thu, 25 Oct 2012 10:57:30 +0100 ++ ++libnih (1.0.3-4ubuntu11) quantal; urgency=low ++ ++ * Addition of debian/libnih-dbus1.postinst and ++ debian/libnih1.postinst to force Upstart re-exec on shutdown ++ to avoid unmounting disks uncleanly (LP: #740390). ++ ++ -- James Hunt Wed, 03 Oct 2012 16:49:40 +0100 ++ ++libnih (1.0.3-4ubuntu10) quantal; urgency=low ++ ++ * Update config.guess,sub for aarch64 ++ ++ -- Wookey Mon, 01 Oct 2012 12:57:05 +0100 ++ ++libnih (1.0.3-4ubuntu9) precise; urgency=low ++ ++ * Mark the nih-dbus-tool package Multi-Arch: foreign so it can be used as ++ a build-dependency of upstart when cross-building. ++ ++ -- Steve Langasek Wed, 15 Feb 2012 22:57:50 -0800 ++ ++libnih (1.0.3-4ubuntu8) precise; urgency=low ++ ++ * libnih1 needs a versioned Pre-Depend on libc6 instead of just a Depend, ++ because libc6 itself uses runlevel from the upstart package in its ++ preinst, which in turn uses libnih1, which needs to be loadable (i.e., ++ its symbol references resolve). We therefore need to ensure that ++ libnih1's dependencies are always unpacked before libnih1 itself is ++ unpacked. While having something further up the stack (such as upstart, ++ or something on top of upstart) being marked Essential: yes and with the ++ necessary pre-depends would let apt handle this for us with its ++ "immediate configuration" support, but for various reasons we don't want ++ to make upstart essential. LP: #508083. ++ ++ -- Steve Langasek Fri, 10 Feb 2012 12:13:25 -0800 ++ ++libnih (1.0.3-4ubuntu7) precise; urgency=low ++ ++ * Relax dependency on libc6. ++ ++ -- Matthias Klose Wed, 08 Feb 2012 23:43:21 +0100 ++ ++libnih (1.0.3-4ubuntu6) precise; urgency=low ++ ++ * Rebuild with libc6-dev (>= 2.15~). ++ ++ -- Matthias Klose Wed, 08 Feb 2012 21:48:57 +0100 ++ ++libnih (1.0.3-4ubuntu5) precise; urgency=low ++ ++ * Mark libnih-dev and libnih-dbus-dev Multi-Arch: same as well. ++ ++ -- Steve Langasek Sun, 06 Nov 2011 14:45:07 -0800 ++ ++libnih (1.0.3-4ubuntu4) precise; urgency=low ++ ++ * Make libnih1 and libnih-dbus1 installable using multi-arch. ++ ++ -- James Hunt Tue, 01 Nov 2011 14:25:09 -0400 ++ ++libnih (1.0.3-4ubuntu3) precise; urgency=low ++ ++ * Build to install with eglibc-2.15. ++ ++ -- Matthias Klose Fri, 14 Oct 2011 14:05:03 +0200 ++ ++libnih (1.0.3-4ubuntu2) oneiric; urgency=low ++ ++ * Use dpkg-buildflags to get the build flags. ++ * Build with the default build flags, don't hard-code -Os. LP: #791315. ++ ++ -- Matthias Klose Wed, 15 Jun 2011 16:45:42 +0200 ++ ++libnih (1.0.3-4ubuntu1) oneiric; urgency=low ++ ++ * Merge from debian unstable. Retained Ubuntu Build-Depends and Priority. ++ ++ -- James Hunt Mon, 23 May 2011 19:28:19 +0100 ++ ++libnih (1.0.3-1ubuntu1) natty; urgency=low ++ ++ * Rebuild with libc6-dev (>= 2.13~). ++ ++ -- Matthias Klose Fri, 18 Feb 2011 12:09:29 +0100 ++ ++libnih (1.0.3-1) natty; urgency=low ++ ++ * New upstream release: ++ - Added support for passing file descriptors over D-Bus to nih-dbus-tool ++ ++ -- Scott James Remnant Thu, 23 Dec 2010 22:28:24 +0000 ++ ++libnih (1.0.2-2) natty; urgency=low ++ ++ * Revert the previous upload. It is never acceptable to simply disable ++ tests, especially when it turns out that the test that was disabled ++ was failing because there was a serious bug that could cause kernel ++ panics for people on boot. ++ ++ Test suites are here for a reason. ++ ++ * Bumped libdbus Build-Dependency to the version with the bug fix that ++ caused the test suite to fail. ++ ++ -- Scott James Remnant Wed, 08 Dec 2010 19:40:15 +0000 ++ ++libnih (1.0.2-1ubuntu3) natty; urgency=low ++ ++ * Disable some tests on ppc64 to build an initial package. ++ ++ -- Matthias Klose Thu, 18 Nov 2010 10:59:38 +0100 ++ ++libnih (1.0.2-1ubuntu2) maverick; urgency=low ++ ++ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests; ++ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403). ++ ++ -- Loïc Minier Mon, 23 Aug 2010 10:25:31 +0200 ++ ++libnih (1.0.2-1ubuntu1) maverick; urgency=low ++ ++ * Rebuild with libc6-dev (>= 2.12~), after checking that ++ __abort_msg is available with the same signature in eglibc 2.12. ++ * Don't build the testsuite with -fPIE on armel; LP: #398403. ++ ++ -- Matthias Klose Sun, 30 May 2010 02:54:56 +0200 ++ ++libnih (1.0.2-1) maverick; urgency=low ++ ++ * New upstream release: ++ - Rename AC_COPYRIGHT to NIH_COPYRIGHT to avoid conflict with other ++ packages. ++ - Add serial to libnih.m4 ++ - Add NIH_WITH_LOCAL_LIBNIH macro. ++ ++ * Fix use of ${Source-Version} to be ${binary:Version} ++ * Add debian/source/format with "1.0" to be future compatible. ++ * Bump standards version. ++ ++ -- Scott James Remnant Tue, 27 Apr 2010 10:49:55 -0700 ++ ++libnih (1.0.1-1) lucid; urgency=low ++ ++ * New upstream release: ++ - Add missing __nih_* symbols to linker version script so that we ++ can link Upstart's test suite. ++ - Glibc __abort_msg symbol now only linked as a weak symbol. ++ ++ -- Scott James Remnant Thu, 04 Feb 2010 14:53:26 -0800 ++ ++libnih (1.0.0-2build1) lucid; urgency=low ++ ++ * Rebuild to pick up relaxed dependency on libc6, after checking that ++ __abort_msg is available with the same signature in eglibc 2.11. ++ LP: #508702. ++ ++ -- Matthias Klose Mon, 18 Jan 2010 16:09:13 +0100 ++ ++libnih (1.0.0-2) lucid; urgency=low ++ ++ * debian/control: Add build-dependency on dbus so the test suite can ++ pass on the buildds. ++ ++ -- Scott James Remnant Sat, 28 Nov 2009 23:28:27 +0000 ++ ++libnih (1.0.0-1) lucid; urgency=low ++ ++ * First upstream release. Previously this code was included in the ++ upstart, mountall and ureadahead source packages. ++ ++ -- Scott James Remnant Sat, 28 Nov 2009 21:14:00 +0000 +--- libnih-1.0.3.orig/debian/source/format ++++ libnih-1.0.3/debian/source/format +@@ -0,0 +1 @@ ++1.0 +--- libnih-1.0.3.orig/nih-dbus/dbus_proxy.h ++++ libnih-1.0.3/nih-dbus/dbus_proxy.h +@@ -146,14 +146,14 @@ + const char *name, const char *path, + NihDBusLostHandler lost_handler, + void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NihDBusProxySignal *nih_dbus_proxy_connect (NihDBusProxy *proxy, + const NihDBusInterface *interface, + const char *name, + NihDBusSignalHandler handler, + void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus/dbus_object.h ++++ libnih-1.0.3/nih-dbus/dbus_object.h +@@ -61,8 +61,7 @@ + DBusConnection *connection, + const char *path, + const NihDBusInterface **interfaces, +- void *data) +- __attribute__ ((malloc)); ++ void *data); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus/dbus_util.h ++++ libnih-1.0.3/nih-dbus/dbus_util.h +@@ -26,7 +26,7 @@ + NIH_BEGIN_EXTERN + + char *nih_dbus_path (const void *parent, const char *root, ...) +- __attribute__ ((sentinel, warn_unused_result, malloc)); ++ __attribute__ ((sentinel, warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus/dbus_pending_data.h ++++ libnih-1.0.3/nih-dbus/dbus_pending_data.h +@@ -104,7 +104,7 @@ + NihDBusReplyHandler handler, + NihDBusErrorHandler error_handler, + void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus/dbus_proxy.c ++++ libnih-1.0.3/nih-dbus/dbus_proxy.c +@@ -46,11 +46,11 @@ + __attribute__ ((warn_unused_result)); + static char *nih_dbus_proxy_name_rule (const void *parent, + NihDBusProxy *proxy) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + static int nih_dbus_proxy_signal_destroy (NihDBusProxySignal *proxied); + static char *nih_dbus_proxy_signal_rule (const void *parent, + NihDBusProxySignal *proxied) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + /* Prototypes for handler functions */ + static DBusHandlerResult nih_dbus_proxy_name_owner_changed (DBusConnection *connection, +--- libnih-1.0.3.orig/nih-dbus-tool/symbol.c ++++ libnih-1.0.3/nih-dbus-tool/symbol.c +@@ -40,10 +40,10 @@ + /* Prototypes for static functions */ + static char *symbol_strcat_interface (char **str, const void *parent, + const char *format, ...) +- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc)); ++ __attribute__ ((format (printf, 3, 4), warn_unused_result)); + static char *symbol_strcat_title (char **str, const void *parent, + const char *format, ...) +- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc)); ++ __attribute__ ((format (printf, 3, 4), warn_unused_result)); + + + /** +--- libnih-1.0.3.orig/nih-dbus-tool/demarshal.h ++++ libnih-1.0.3/nih-dbus-tool/demarshal.h +@@ -37,7 +37,7 @@ + const char *prefix, const char *interface_symbol, + const char *member_symbol, const char *symbol, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/symbol.h ++++ libnih-1.0.3/nih-dbus-tool/symbol.h +@@ -28,22 +28,22 @@ + int symbol_valid (const char *symbol); + + char *symbol_from_name (const void *parent, const char *name) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char *symbol_impl (const void *parent, const char *prefix, + const char *interface_name, const char *name, + const char *postfix) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char *symbol_extern (const void *parent, const char *prefix, + const char *interface_symbol, const char *midfix, + const char *symbol, const char *postfix) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char *symbol_typedef (const void *parent, const char *prefix, + const char *interface_symbol, const char *midfix, + const char *symbol, const char *postfix) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/output.h ++++ libnih-1.0.3/nih-dbus-tool/output.h +@@ -35,9 +35,9 @@ + __attribute__ ((warn_unused_result)); + + char *output_preamble (const void *parent, const char *path) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char *output_sentinel (const void *parent, const char *path) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/parse.h ++++ libnih-1.0.3/nih-dbus-tool/parse.h +@@ -95,7 +95,7 @@ + + ParseStack *parse_stack_push (const void *parent, NihList *stack, + ParseStackType type, void *data) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + ParseStack *parse_stack_top (NihList *stack); + + void parse_start_tag (XML_Parser xmlp, const char *tag, +@@ -103,7 +103,7 @@ + void parse_end_tag (XML_Parser xmlp, const char *tag); + + Node * parse_xml (const void *parent, int fd, const char *filename) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/type.h ++++ libnih-1.0.3/nih-dbus-tool/type.h +@@ -94,43 +94,43 @@ + + char * type_of (const void * parent, + DBusSignatureIter *iter) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + TypeVar * type_var_new (const void *parent, const char *type, + const char *name) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_var_to_string (const void *parent, TypeVar *var) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_var_layout (const void *parent, NihList *vars) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + TypeFunc * type_func_new (const void *parent, const char *type, + const char *name) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_func_to_string (const void *parent, TypeFunc *func) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_func_to_typedef (const void *parent, TypeFunc *func) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_func_layout (const void *parent, NihList *funcs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + TypeStruct *type_struct_new (const void *parent, const char *name) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_struct_to_string (const void *parent, TypeStruct *structure) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * type_to_const (char **type, const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_to_pointer (char **type, const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_to_static (char **type, const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * type_to_extern (char **type, const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * type_strcat_assert (char **block, const void *parent, + TypeVar *var, TypeVar *prev, TypeVar *next) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/argument.h ++++ libnih-1.0.3/nih-dbus-tool/argument.h +@@ -61,7 +61,7 @@ + + Argument *argument_new (const void *parent, const char *name, + const char *type, NihDBusArgDir direction) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int argument_start_tag (XML_Parser xmlp, const char *tag, + char * const *attr) +--- libnih-1.0.3.orig/nih-dbus-tool/indent.h ++++ libnih-1.0.3/nih-dbus-tool/indent.h +@@ -26,9 +26,9 @@ + NIH_BEGIN_EXTERN + + char *indent (char **str, const void *parent, int level) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char *comment (char **str, const void *parent) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/main.c ++++ libnih-1.0.3/nih-dbus-tool/main.c +@@ -52,10 +52,10 @@ + /* Prototypes for local functions */ + char *source_file_path (const void *parent, const char *output_path, + const char *filename) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char *header_file_path (const void *parent, const char *output_path, + const char *filename) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + + /** +--- libnih-1.0.3.orig/nih-dbus-tool/signal.h ++++ libnih-1.0.3/nih-dbus-tool/signal.h +@@ -58,7 +58,7 @@ + int signal_name_valid (const char *name); + + Signal * signal_new (const void *parent, const char *name) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int signal_start_tag (XML_Parser xmlp, const char *tag, + char * const *attr) +@@ -76,18 +76,18 @@ + char * signal_object_function (const void *parent, const char *prefix, + Interface *interface, Signal *signal, + NihList *prototypes, NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * signal_proxy_function (const void *parent, const char *prefix, + Interface *interface, Signal *signal, + NihList *prototypes, NihList *typedefs, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * signal_args_array (const void *parent, const char *prefix, + Interface *interface, Signal *signal, + NihList *prototypes) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/marshal.c ++++ libnih-1.0.3/nih-dbus-tool/marshal.c +@@ -49,7 +49,7 @@ + const char *prefix, const char *interface_symbol, + const char *member_symbol, const char *symbol, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + static char *marshal_array (const void *parent, + DBusSignatureIter *iter, + const char *iter_name, const char *name, +@@ -58,7 +58,7 @@ + const char *prefix, const char *interface_symbol, + const char *member_symbol, const char *symbol, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + static char *marshal_struct (const void *parent, + DBusSignatureIter *iter, + const char *iter_name, const char *name, +@@ -67,7 +67,7 @@ + const char *prefix, const char *interface_symbol, + const char *member_symbol, const char *symbol, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + + /** +@@ -364,6 +364,7 @@ + nih_local TypeVar *element_len_var = NULL; + nih_local char * block = NULL; + nih_local char * vars_block = NULL; ++ nih_local char * loop_block = NULL; + + nih_assert (iter != NULL); + nih_assert (iter_name != NULL); +@@ -448,7 +449,7 @@ + nih_list_add (locals, &array_iter_var->entry); + + if (dbus_type_is_fixed (element_type)) { +- if (! nih_strcat_sprintf (&code, parent, ++ if (! nih_strcat_sprintf (&loop_block, parent, + "for (size_t %s = 0; %s < %s; %s++) {\n", + loop_name, loop_name, len_name, loop_name)) { + nih_free (code); +@@ -456,6 +457,12 @@ + } + } else { + if (! nih_strcat_sprintf (&code, parent, ++ "if (%s) {\n", ++ name)) { ++ nih_free (code); ++ return NULL; ++ } ++ if (! nih_strcat_sprintf (&loop_block, parent, + "for (size_t %s = 0; %s[%s]; %s++) {\n", + loop_name, name, loop_name, loop_name)) { + nih_free (code); +@@ -576,7 +583,7 @@ + } + + +- if (! nih_strcat_sprintf (&code, parent, ++ if (! nih_strcat_sprintf (&loop_block, parent, + "%s" + "\n" + "%s" +@@ -590,9 +597,34 @@ + } + + /* Close the container again */ ++ if (! nih_strcat_sprintf (&loop_block, parent, ++ "}\n")) { ++ nih_free (code); ++ return NULL; ++ } ++ ++ if (dbus_type_is_fixed (element_type)) { ++ if (! nih_strcat_sprintf (&code, parent, ++ "%s\n", loop_block)) { ++ nih_free (code); ++ return NULL; ++ } ++ } ++ else { ++ if (! indent (&loop_block, NULL, 1)) { ++ nih_free (code); ++ return NULL; ++ } ++ ++ if (! nih_strcat_sprintf (&code, parent, ++ "%s" ++ "}\n\n", loop_block)) { ++ nih_free (code); ++ return NULL; ++ } ++ } ++ + if (! nih_strcat_sprintf (&code, parent, +- "}\n" +- "\n" + "if (! dbus_message_iter_close_container (&%s, &%s)) {\n" + "%s" + "}\n", +--- libnih-1.0.3.orig/nih-dbus-tool/demarshal.c ++++ libnih-1.0.3/nih-dbus-tool/demarshal.c +@@ -51,7 +51,7 @@ + const char *prefix, const char *interface_symbol, + const char *member_symbol, const char *symbol, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + static char *demarshal_array (const void *parent, + DBusSignatureIter *iter, + const char *parent_name, +@@ -62,7 +62,7 @@ + const char *prefix, const char *interface_symbol, + const char *member_symbol, const char *symbol, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + static char *demarshal_struct (const void *parent, + DBusSignatureIter *iter, + const char *parent_name, +@@ -73,7 +73,7 @@ + const char *prefix, const char *interface_symbol, + const char *member_symbol, const char *symbol, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + + /** +--- libnih-1.0.3.orig/nih-dbus-tool/interface.h ++++ libnih-1.0.3/nih-dbus-tool/interface.h +@@ -61,7 +61,7 @@ + + Interface *interface_new (const void *parent, + const char *name) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int interface_start_tag (XML_Parser xmlp, + const char *tag, +@@ -81,26 +81,26 @@ + Interface *interface, + int with_handlers, + NihList *prototypes) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * interface_signals_array (const void *parent, + const char *prefix, + Interface *interface, + int with_filters, + NihList *prototypes) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * interface_properties_array (const void *parent, + const char *prefix, + Interface *interface, + int with_handlers, + NihList *prototypes) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * interface_struct (const void *parent, + const char *prefix, + Interface *interface, + int object, + NihList *prototypes) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + + char * interface_proxy_get_all_function (const void *parent, +@@ -108,7 +108,7 @@ + Interface *interface, + NihList *prototypes, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * interface_proxy_get_all_notify_function (const void *parent, + const char *prefix, +@@ -116,14 +116,14 @@ + NihList *prototypes, + NihList *typedefs, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * interface_proxy_get_all_sync_function (const void *parent, + const char *prefix, + Interface *interface, + NihList *prototypes, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/method.h ++++ libnih-1.0.3/nih-dbus-tool/method.h +@@ -62,7 +62,7 @@ + int method_name_valid (const char *name); + + Method * method_new (const void *parent, const char *name) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int method_start_tag (XML_Parser xmlp, const char *tag, + char * const *attr) +@@ -82,33 +82,33 @@ + Interface *interface, Method *method, + NihList *prototypes, NihList *handlers, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * method_reply_function (const void *parent, const char *prefix, + Interface *interface, Method *method, + NihList *prototypes, NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * method_proxy_function (const void *parent, const char *prefix, + Interface *interface, Method *method, + NihList *prototypes, NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * method_proxy_notify_function (const void *parent, const char *prefix, + Interface *interface, Method *method, + NihList *prototypes, NihList *typedefs, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * method_proxy_sync_function (const void *parent, const char *prefix, + Interface *interface, Method *method, + NihList *prototypes, NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * method_args_array (const void *parent, const char *prefix, + Interface *interface, Method *method, + NihList *prototypes) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/node.h ++++ libnih-1.0.3/nih-dbus-tool/node.h +@@ -47,7 +47,7 @@ + int node_path_valid (const char *name); + + Node * node_new (const void *parent, const char *path) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int node_start_tag (XML_Parser xmlp, const char *tag, + char * const *attr) +@@ -59,18 +59,18 @@ + + char * node_interfaces_array (const void *parent, const char *prefix, + Node *node, int object, NihList *prototypes) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * node_object_functions (const void *parent, const char *prefix, + Node *node, + NihList *prototypes, NihList *handlers, + NihList *structs, NihList *externs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * node_proxy_functions (const void *parent, const char *prefix, + Node *node, + NihList *prototypes, NihList *structs, + NihList *typedefs, NihList *externs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/marshal.h ++++ libnih-1.0.3/nih-dbus-tool/marshal.h +@@ -35,7 +35,7 @@ + const char *prefix, const char *interface_symbol, + const char *member_symbol, const char *symbol, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/type.c ++++ libnih-1.0.3/nih-dbus-tool/type.c +@@ -1101,7 +1101,7 @@ + nih_assert (block != NULL); + nih_assert (var != NULL); + +- if (! strchr (var->type, '*')) ++ if (! strchr (var->type, '*') || ! strcmp (var->type, "char * const *")) + return *block; + + if (next && (! strcmp (next->type, "size_t"))) { +--- libnih-1.0.3.orig/nih-dbus-tool/property.h ++++ libnih-1.0.3/nih-dbus-tool/property.h +@@ -65,7 +65,7 @@ + const char *name, + const char *type, + NihDBusAccess access) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + int property_start_tag (XML_Parser xmlp, const char *tag, + char * const *attr) +@@ -88,7 +88,7 @@ + NihList *prototypes, + NihList *handlers, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * property_object_set_function (const void *parent, + const char *prefix, + Interface *interface, +@@ -96,7 +96,7 @@ + NihList *prototypes, + NihList *handlers, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * property_proxy_get_function (const void *parent, + const char *prefix, +@@ -104,7 +104,7 @@ + Property *property, + NihList *prototypes, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * property_proxy_get_notify_function (const void *parent, + const char *prefix, + Interface *interface, +@@ -112,7 +112,7 @@ + NihList *prototypes, + NihList *typedefs, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * property_proxy_set_function (const void *parent, + const char *prefix, +@@ -120,7 +120,7 @@ + Property *property, + NihList *prototypes, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * property_proxy_set_notify_function (const void *parent, + const char *prefix, + Interface *interface, +@@ -128,7 +128,7 @@ + NihList *prototypes, + NihList *typedefs, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + char * property_proxy_get_sync_function (const void *parent, + const char *prefix, +@@ -136,14 +136,14 @@ + Property *property, + NihList *prototypes, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + char * property_proxy_set_sync_function (const void *parent, + const char *prefix, + Interface *interface, + Property *property, + NihList *prototypes, + NihList *structs) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + NIH_END_EXTERN + +--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_main.c ++++ libnih-1.0.3/nih-dbus-tool/tests/test_main.c +@@ -100,10 +100,10 @@ + + extern char *source_file_path (const void *parent, const char *output_path, + const char *filename) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + extern char *header_file_path (const void *parent, const char *output_path, + const char *filename) +- __attribute__ ((warn_unused_result, malloc)); ++ __attribute__ ((warn_unused_result)); + + void + test_source_file_path (void) +--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c ++++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c +@@ -12524,6 +12524,7 @@ + dbus_message_iter_init (reply, &iter); + + dbus_message_iter_get_basic (&iter, &str_value); ++ TEST_NE (str_value[0], '\0'); + TEST_TRUE (strchr ("0123456789", str_value[0])); + + dbus_message_unref (reply); +--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_marshal.c ++++ libnih-1.0.3/nih-dbus-tool/tests/test_marshal.c +@@ -1479,39 +1479,41 @@ + "\treturn -1;\n" + "}\n" + "\n" +- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" +- "\tDBusMessageIter value_element_iter;\n" +- "\tconst int16_t * value_element;\n" +- "\tsize_t value_element_len;\n" ++ "if (value) {\n" ++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" ++ "\t\tDBusMessageIter value_element_iter;\n" ++ "\t\tconst int16_t * value_element;\n" ++ "\t\tsize_t value_element_len;\n" + "\n" +- "\tvalue_element = value[value_i];\n" +- "\tvalue_element_len = value_len[value_i];\n" ++ "\t\tvalue_element = value[value_i];\n" ++ "\t\tvalue_element_len = value_len[value_i];\n" + "\n" + +- "\t/* Marshal an array onto the message */\n" +- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" ++ "\t\t/* Marshal an array onto the message */\n" ++ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\n" +- "\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n" +- "\t\tint16_t value_element_element;\n" ++ "\t\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n" ++ "\t\t\tint16_t value_element_element;\n" + "\n" +- "\t\tvalue_element_element = value_element[value_element_i];\n" ++ "\t\t\tvalue_element_element = value_element[value_element_i];\n" + "\n" +- "\t\t/* Marshal a int16_t onto the message */\n" +- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n" +- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" ++ "\t\t\t/* Marshal a int16_t onto the message */\n" ++ "\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n" ++ "\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" ++ "\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\t\treturn -1;\n" ++ "\t\t\t}\n" ++ "\t\t}\n" ++ "\n" ++ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" + "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" + "\t\t\treturn -1;\n" + "\t\t}\n" +- "\t}\n" +- "\n" +- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" + ++ "\t}\n" + "}\n" + "\n" + "if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n" +@@ -1766,15 +1768,17 @@ + "\treturn -1;\n" + "}\n" + "\n" +- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" +- "\tconst char *value_element;\n" ++ "if (value) {\n" ++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" ++ "\t\tconst char *value_element;\n" + "\n" +- "\tvalue_element = value[value_i];\n" ++ "\t\tvalue_element = value[value_i];\n" + "\n" +- "\t/* Marshal a char * onto the message */\n" +- "\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" ++ "\t\t/* Marshal a char * onto the message */\n" ++ "\t\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\t}\n" + "}\n" + "\n" +@@ -1933,35 +1937,39 @@ + "\treturn -1;\n" + "}\n" + "\n" +- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" +- "\tDBusMessageIter value_element_iter;\n" +- "\tchar * const * value_element;\n" ++ "if (value) {\n" ++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" ++ "\t\tDBusMessageIter value_element_iter;\n" ++ "\t\tchar * const * value_element;\n" + "\n" +- "\tvalue_element = value[value_i];\n" ++ "\t\tvalue_element = value[value_i];\n" + "\n" +- "\t/* Marshal an array onto the message */\n" +- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" +- "\n" +- "\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n" +- "\t\tconst char *value_element_element;\n" ++ "\t\t/* Marshal an array onto the message */\n" ++ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\n" +- "\t\tvalue_element_element = value_element[value_element_i];\n" ++ "\t\tif (value_element) {\n" ++ "\t\t\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n" ++ "\t\t\t\tconst char *value_element_element;\n" ++ "\n" ++ "\t\t\t\tvalue_element_element = value_element[value_element_i];\n" ++ "\n" ++ "\t\t\t\t/* Marshal a char * onto the message */\n" ++ "\t\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n" ++ "\t\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" ++ "\t\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\t\t\treturn -1;\n" ++ "\t\t\t\t}\n" ++ "\t\t\t}\n" ++ "\t\t}\n" + "\n" +- "\t\t/* Marshal a char * onto the message */\n" +- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n" +- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" ++ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" + "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" + "\t\t\treturn -1;\n" + "\t\t}\n" + "\t}\n" +- "\n" +- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" + "}\n" + "\n" + "if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n" +@@ -2194,16 +2202,18 @@ + "\treturn -1;\n" + "}\n" + "\n" +- "for (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n" +- "\tconst char *value_item2_element;\n" ++ "if (value_item2) {\n" ++ "\tfor (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n" ++ "\t\tconst char *value_item2_element;\n" + "\n" +- "\tvalue_item2_element = value_item2[value_item2_i];\n" ++ "\t\tvalue_item2_element = value_item2[value_item2_i];\n" + "\n" +- "\t/* Marshal a char * onto the message */\n" +- "\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n" +- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" ++ "\t\t/* Marshal a char * onto the message */\n" ++ "\t\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\t}\n" + "}\n" + "\n" +@@ -2642,41 +2652,43 @@ + "\treturn -1;\n" + "}\n" + "\n" +- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" +- "\tDBusMessageIter value_element_iter;\n" +- "\tconst char * value_element_item0;\n" +- "\tuint32_t value_element_item1;\n" +- "\tconst MyStructArrayValueElement *value_element;\n" ++ "if (value) {\n" ++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" ++ "\t\tDBusMessageIter value_element_iter;\n" ++ "\t\tconst char * value_element_item0;\n" ++ "\t\tuint32_t value_element_item1;\n" ++ "\t\tconst MyStructArrayValueElement *value_element;\n" + "\n" +- "\tvalue_element = value[value_i];\n" ++ "\t\tvalue_element = value[value_i];\n" + "\n" +- "\t/* Marshal a structure onto the message */\n" +- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" ++ "\t\t/* Marshal a structure onto the message */\n" ++ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\n" +- "\tvalue_element_item0 = value_element->item0;\n" ++ "\t\tvalue_element_item0 = value_element->item0;\n" + "\n" +- "\t/* Marshal a char * onto the message */\n" +- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n" +- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" ++ "\t\t/* Marshal a char * onto the message */\n" ++ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\n" +- "\tvalue_element_item1 = value_element->item1;\n" ++ "\t\tvalue_element_item1 = value_element->item1;\n" + "\n" +- "\t/* Marshal a uint32_t onto the message */\n" +- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n" +- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" ++ "\t\t/* Marshal a uint32_t onto the message */\n" ++ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\n" +- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" ++ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\t}\n" + "}\n" + "\n" +@@ -2912,41 +2924,43 @@ + "\treturn -1;\n" + "}\n" + "\n" +- "for (size_t value_i = 0; value[value_i]; value_i++) {\n" +- "\tDBusMessageIter value_element_iter;\n" +- "\tconst char * value_element_item0;\n" +- "\tuint32_t value_element_item1;\n" +- "\tconst MyDictEntryArrayValueElement *value_element;\n" ++ "if (value) {\n" ++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n" ++ "\t\tDBusMessageIter value_element_iter;\n" ++ "\t\tconst char * value_element_item0;\n" ++ "\t\tuint32_t value_element_item1;\n" ++ "\t\tconst MyDictEntryArrayValueElement *value_element;\n" + "\n" +- "\tvalue_element = value[value_i];\n" ++ "\t\tvalue_element = value[value_i];\n" + "\n" +- "\t/* Marshal a structure onto the message */\n" +- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" ++ "\t\t/* Marshal a structure onto the message */\n" ++ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\n" +- "\tvalue_element_item0 = value_element->item0;\n" ++ "\t\tvalue_element_item0 = value_element->item0;\n" + "\n" +- "\t/* Marshal a char * onto the message */\n" +- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n" +- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" ++ "\t\t/* Marshal a char * onto the message */\n" ++ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\n" +- "\tvalue_element_item1 = value_element->item1;\n" ++ "\t\tvalue_element_item1 = value_element->item1;\n" + "\n" +- "\t/* Marshal a uint32_t onto the message */\n" +- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n" +- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" +- "\t}\n" ++ "\t\t/* Marshal a uint32_t onto the message */\n" ++ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\n" +- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" +- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" +- "\t\treturn -1;\n" ++ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n" ++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n" ++ "\t\t\treturn -1;\n" ++ "\t\t}\n" + "\t}\n" + "}\n" + "\n" +--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c ++++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c +@@ -27359,6 +27359,7 @@ + TEST_TRUE (unix_fd_to_str_replied); + + TEST_EQ_P (last_data, parent); ++ TEST_NE (last_str_value[0], '\0'); + TEST_TRUE (strchr ("0123456789", last_str_value[0])); + TEST_ALLOC_PARENT (last_str_value, parent); + +@@ -27673,6 +27674,7 @@ + + TEST_EQ (ret, 0); + ++ TEST_NE (str_value[0], '\0'); + TEST_TRUE (strchr ("0123456789", str_value[0])); + TEST_ALLOC_PARENT (str_value, parent); + +--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_property.c ++++ libnih-1.0.3/nih-dbus-tool/tests/test_property.c +@@ -8733,7 +8733,7 @@ + TypeVar * var; + NihListEntry * attrib; + NihDBusProxy * proxy = NULL; +- void * parent = NULL; ++ void * parent __attribute__((unused)) = NULL; + pid_t pid = -1; + int status; + DBusMessage * method_call; +--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_standard.c ++++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_standard.c +@@ -136,17 +136,19 @@ + goto enomem; + } + +- for (size_t output_i = 0; output[output_i]; output_i++) { +- const char *output_element; ++ if (output) { ++ for (size_t output_i = 0; output[output_i]; output_i++) { ++ const char *output_element; + +- output_element = output[output_i]; ++ output_element = output[output_i]; + +- /* Marshal a char * onto the message */ +- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { +- dbus_message_iter_abandon_container (&iter, &output_iter); +- dbus_message_unref (reply); +- reply = NULL; +- goto enomem; ++ /* Marshal a char * onto the message */ ++ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { ++ dbus_message_iter_abandon_container (&iter, &output_iter); ++ dbus_message_unref (reply); ++ reply = NULL; ++ goto enomem; ++ } + } + } + +--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c ++++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c +@@ -7,7 +7,6 @@ + DBusMessageIter output_iter; + + nih_assert (message != NULL); +- nih_assert (output != NULL); + + /* If the sender doesn't care about a reply, don't bother wasting + * effort constructing and sending one. +@@ -28,16 +27,18 @@ + return -1; + } + +- for (size_t output_i = 0; output[output_i]; output_i++) { +- const char *output_element; +- +- output_element = output[output_i]; +- +- /* Marshal a char * onto the message */ +- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { +- dbus_message_iter_abandon_container (&iter, &output_iter); +- dbus_message_unref (reply); +- return -1; ++ if (output) { ++ for (size_t output_i = 0; output[output_i]; output_i++) { ++ const char *output_element; ++ ++ output_element = output[output_i]; ++ ++ /* Marshal a char * onto the message */ ++ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { ++ dbus_message_iter_abandon_container (&iter, &output_iter); ++ dbus_message_unref (reply); ++ return -1; ++ } + } + } + +--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c ++++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c +@@ -7,7 +7,6 @@ + DBusMessageIter output_iter; + + nih_assert (message != NULL); +- nih_assert (output != NULL); + + /* If the sender doesn't care about a reply, don't bother wasting + * effort constructing and sending one. +@@ -28,16 +27,18 @@ + return -1; + } + +- for (size_t output_i = 0; output[output_i]; output_i++) { +- const char *output_element; +- +- output_element = output[output_i]; +- +- /* Marshal a char * onto the message */ +- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { +- dbus_message_iter_abandon_container (&iter, &output_iter); +- dbus_message_unref (reply); +- return -1; ++ if (output) { ++ for (size_t output_i = 0; output[output_i]; output_i++) { ++ const char *output_element; ++ ++ output_element = output[output_i]; ++ ++ /* Marshal a char * onto the message */ ++ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { ++ dbus_message_iter_abandon_container (&iter, &output_iter); ++ dbus_message_unref (reply); ++ return -1; ++ } + } + } + +--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c ++++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c +@@ -88,17 +88,19 @@ + goto enomem; + } + +- for (size_t output_i = 0; output[output_i]; output_i++) { +- const char *output_element; ++ if (output) { ++ for (size_t output_i = 0; output[output_i]; output_i++) { ++ const char *output_element; + +- output_element = output[output_i]; ++ output_element = output[output_i]; + +- /* Marshal a char * onto the message */ +- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { +- dbus_message_iter_abandon_container (&iter, &output_iter); +- dbus_message_unref (reply); +- reply = NULL; +- goto enomem; ++ /* Marshal a char * onto the message */ ++ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) { ++ dbus_message_iter_abandon_container (&iter, &output_iter); ++ dbus_message_unref (reply); ++ reply = NULL; ++ goto enomem; ++ } + } + } + diff --git a/meta-oe/recipes-support/libnih/libnih_1.0.3.bb b/meta-oe/recipes-support/libnih/libnih_1.0.3.bb new file mode 100644 index 00000000000..3e35f4d1fc7 --- /dev/null +++ b/meta-oe/recipes-support/libnih/libnih_1.0.3.bb @@ -0,0 +1,38 @@ +# Copyright (c) 2013 LG Electronics, Inc. + +SUMMARY = "libnih library" +HOMEPAGE = "https://launchpad.net/libnih" +DESCRIPTION = "libnih is a small library for C application development \ + containing functions that, despite its name, are not implemented \ + elsewhere in the standard library set. \ + \ + libnih is roughly equivalent to other C libraries such as glib, \ + except that its focus is on a small size and intended for \ + applications that sit very low in the software stack, especially \ + outside of /usr. \ + \ + It expressly does not reimplement functions that already exist in \ + libraries ordinarily shipped in /lib such libc6, and does not do \ + foolish things like invent arbitrary typedefs for perfectly good C types." + +SECTION = "libs" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "dbus libnih-native" +DEPENDS_class-native = "dbus-native" + +SRC_URI = "https://launchpad.net/${BPN}/1.0/${PV}/+download/${BP}.tar.gz \ + file://libnih_1.0.3-4ubuntu16.patch \ + file://0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch \ + " + +SRC_URI[md5sum] = "db7990ce55e01daffe19006524a1ccb0" +SRC_URI[sha256sum] = "897572df7565c0a90a81532671e23c63f99b4efde2eecbbf11e7857fbc61f405" + +inherit autotools +inherit gettext + +# target libnih requires native nih-dbus-tool +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/libol/libol_0.3.18.bb b/meta-oe/recipes-support/libol/libol_0.3.18.bb index c31f4831313..74e1ef2156a 100644 --- a/meta-oe/recipes-support/libol/libol_0.3.18.bb +++ b/meta-oe/recipes-support/libol/libol_0.3.18.bb @@ -1,4 +1,5 @@ SUMMARY = "A tiny C support library" +HOMEPAGE = "https://my.balabit.com/downloads/libol" SECTION = "libs" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b" diff --git a/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch b/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch new file mode 100644 index 00000000000..05d3bf6f44b --- /dev/null +++ b/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch @@ -0,0 +1,20 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -51,7 +51,7 @@ noinst_PROGRAMS = test-oop + + test_oop_SOURCES = test-oop.c + test_oop_CFLAGS = $(GLIB2_CFLAGS) $(GLIB_INCLUDES) $(TCL_INCLUDES) $(WWW_INCLUDES) +-test_oop_LDADD = $(lib_LTLIBRARIES) ++test_oop_LDADD = $(lib_LTLIBRARIES) $(GLIB2_LIBS) $(ADNS_LIBS) $(TCL_LIBS) $(READLINE_LIBS) + + release: dist + gzip -dc $(PACKAGE)-$(VERSION).tar.gz | bzip2 -9 \ +--- a/liboop-glib2.pc.in ++++ b/liboop-glib2.pc.in +@@ -7,5 +7,5 @@ Name: liboop-glib2 + Description: Event loop management library (GLIB2 support) + Version: @VERSION@ + Requires: liboop = @VERSION@ glib-2.0 +-Libs: -L${libdir} -loop-glib2 ++Libs: -L${libdir} -loop-glib2 @GLIB2_LIBS@ + Cflags: -D_REENTRANT -I${includedir} diff --git a/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch b/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch new file mode 100644 index 00000000000..0a0242032ff --- /dev/null +++ b/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch @@ -0,0 +1,11 @@ +--- a/test-oop.c ++++ b/test-oop.c +@@ -180,7 +180,7 @@ static void *stop_readline(oop_source *s + static void add_readline(oop_source *src) { + rl_callback_handler_install( + (char *) "> ", /* readline isn't const-correct */ +- (VFunction *) on_readline); ++ (rl_vcpfunc_t *) on_readline); + oop_readline_register(src); + src->on_signal(src,SIGQUIT,stop_readline,NULL); + } diff --git a/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch b/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch new file mode 100644 index 00000000000..1880a241acb --- /dev/null +++ b/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch @@ -0,0 +1,40 @@ +From: Ian Jackson +Applied-Upstream: no +Bug-Debian: http://bugs.debian.org/579604 +Subject: oop-read.h bugfixes + +Some years ago I contributed a feature for reading lines and records +to liboop: oop-read.h and read.c. Since it took a while for that +feature to make it into distributed versions, for a long time I've +been using my own copy of the source file. It seems that I fixed a +couple of bugs in my copy which are still in the Debian package. I +can't find any record of me having told anyone about them and now I +find that 1.0-6 still has the bugs. + +There are two fixes: + * Initialise "rd->discard" properly + * Avoid rd->neednotcheck becoming negative + +--- a/read.c ++++ b/read.c +@@ -114,6 +114,7 @@ oop_read *oop_rd_new(oop_source *oop, oo + rd->allocbuf= 0; + rd->used= 0; + rd->alloc= buf ? bufsz : 0; ++ rd->discard= 0; + rd->neednotcheck= 0; + rd->displacedchar= -1; + rd->style= *OOP_RD_STYLE_IMMED; +@@ -235,7 +236,11 @@ static void *on_process(oop_source *oop, + + if (rd->discard) { + rd->used -= rd->discard; +- rd->neednotcheck -= rd->discard; ++ if (rd->neednotcheck > rd->discard) { ++ rd->neednotcheck -= rd->discard; ++ } else { ++ rd->neednotcheck= 0; ++ } + memmove(buf, buf + rd->discard, rd->used); + rd->discard= 0; + } diff --git a/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch b/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch new file mode 100644 index 00000000000..e738be54ca8 --- /dev/null +++ b/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch @@ -0,0 +1,22 @@ +--- a/configure ++++ b/configure +@@ -19935,7 +19935,7 @@ + fi + + if test xno != x$with_tcl; then +- for version in 8.4 8.3 8.2 8.1 8.0 ; do ++ for version in "" 8.4 8.3 8.2 8.1 8.0 ; do + CPPFLAGS="$save_cppflags -I/usr/include/tcl$version" + as_ac_Lib=`echo "ac_cv_lib_tcl$version''_Tcl_Main" | $as_tr_sh` + echo "$as_me:$LINENO: checking for Tcl_Main in -ltcl$version" >&5 +--- a/configure.ac ++++ b/configure.ac +@@ -71,7 +71,7 @@ + fi + + if test xno != x$with_tcl; then +- for version in 8.4 8.3 8.2 8.1 8.0 ; do ++ for version in "" 8.4 8.3 8.2 8.1 8.0 ; do + CPPFLAGS="$save_cppflags -I/usr/include/tcl$version" + AC_CHECK_LIB(tcl$version,Tcl_Main,[ + AC_CHECK_HEADER(tcl.h,[ diff --git a/meta-oe/recipes-support/liboop/liboop_1.0.bb b/meta-oe/recipes-support/liboop/liboop_1.0.bb new file mode 100644 index 00000000000..82818c24248 --- /dev/null +++ b/meta-oe/recipes-support/liboop/liboop_1.0.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Liboop is a low-level event loop management library for POSIX-based operating systems" +HOMEPAGE = "http://liboop.org/" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=8b54f38ccbd44feb80ab90e01af8b700" + +SRC_URI = "http://ftp.debian.org/debian/pool/main/libo/liboop/liboop_${PV}.orig.tar.gz \ + file://read_bugfixes.patch \ + file://explicit_linking.patch \ + file://tcl_dev.patch \ + file://new-readline-typedef.patch \ +" + +SRC_URI[md5sum] = "36cb971047d3af02369446f5e0b315a2" +SRC_URI[sha256sum] = "34d83c6e0f09ee15cb2bc3131e219747c3b612bb57cf7d25318ab90da9a2d97c" + +PACKAGECONFIG ?= "" +PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" +PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0 libpcre" +PACKAGECONFIG[tcl] = "--with-tcl,--without-tcl,tcl" + +EXTRA_OECONF += "--without-adns -without-libwww" + +inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/libp11/libp11_0.2.8.bb b/meta-oe/recipes-support/libp11/libp11_0.2.8.bb deleted file mode 100644 index 5801484c2b2..00000000000 --- a/meta-oe/recipes-support/libp11/libp11_0.2.8.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Library for using PKCS" -DESCRIPTION = "\ -Libp11 is a library implementing a small layer on top of PKCS \ -make using PKCS" -HOMEPAGE = "http://www.opensc-project.org/libp11" -SECTION = "Development/Libraries" -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" -DEPENDS = "libtool openssl" - -SRC_URI = "git://github.com/OpenSC/libp11.git" -SRCREV = "7d56d89fcad6440d108bbbccfb1ebd958e7eb740" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-static" - -do_install_append () { - rm -rf ${D}${libdir}/*.la - rm -rf ${D}${docdir}/${BPN} -} diff --git a/meta-oe/recipes-support/libp11/libp11_0.4.7.bb b/meta-oe/recipes-support/libp11/libp11_0.4.7.bb new file mode 100644 index 00000000000..949c33752b8 --- /dev/null +++ b/meta-oe/recipes-support/libp11/libp11_0.4.7.bb @@ -0,0 +1,26 @@ +SUMMARY = "Library for using PKCS" +DESCRIPTION = "\ +Libp11 is a library implementing a small layer on top of PKCS \ +make using PKCS" +HOMEPAGE = "http://www.opensc-project.org/libp11" +SECTION = "Development/Libraries" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" +DEPENDS = "libtool openssl" + +SRC_URI = "git://github.com/OpenSC/libp11.git" +SRCREV = "64569a391897bd29c5060b19fa4613e619e59277" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-static" + +do_install_append () { + rm -rf ${D}${libdir}/*.la + rm -rf ${D}${docdir}/${BPN} +} + +FILES_${PN} += "${libdir}/engines/pkcs11.so" +FILES_${PN}-dev += "${libdir}/engines/libpkcs11${SOLIBSDEV}" diff --git a/meta-oe/recipes-support/libraw1394/libraw1394_2.1.0.bb b/meta-oe/recipes-support/libraw1394/libraw1394_2.1.0.bb deleted file mode 100644 index 811829ebcd1..00000000000 --- a/meta-oe/recipes-support/libraw1394/libraw1394_2.1.0.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "base library for low-level IEEE 1394 accesses" -HOMEPAGE = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libraw1394" -SECTION = "libs" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499" - -SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "d06cccb776b240b6ab5efdee33b87af2" -SRC_URI[sha256sum] = "a83cff16fb8885831bc29d7d17f3c570dc39251d89e20795c08e87720de0ba70" - -inherit autotools diff --git a/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb b/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb new file mode 100644 index 00000000000..337780789d8 --- /dev/null +++ b/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "base library for low-level IEEE 1394 accesses" +HOMEPAGE = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libraw1394" +SECTION = "libs" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499" + +SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "45031ab15ca93e50c19886a38bc1814a" +SRC_URI[sha256sum] = "ddc4e32721cdfe680d964aaede68ac606a20cd17dd2ba70e2d7e0692086ab57c" + +inherit autotools diff --git a/meta-oe/recipes-support/libsdl-ttf/files/automake_foreign.patch b/meta-oe/recipes-support/libsdl-ttf/files/automake_foreign.patch new file mode 100644 index 00000000000..2d5bd6d9100 --- /dev/null +++ b/meta-oe/recipes-support/libsdl-ttf/files/automake_foreign.patch @@ -0,0 +1,13 @@ +Index: SDL2_ttf-2.0.14/Makefile.am +=================================================================== +--- SDL2_ttf-2.0.14.orig/Makefile.am ++++ SDL2_ttf-2.0.14/Makefile.am +@@ -1,6 +1,8 @@ + # Makefile.am for the SDL truetype font loading library and viewer + lib_LTLIBRARIES = libSDL2_ttf.la + ++AUTOMAKE_OPTIONS = foreign ++ + libSDL2_ttfincludedir = $(includedir)/SDL2 + libSDL2_ttfinclude_HEADERS = \ + SDL_ttf.h diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf-2.0.10/use.pkg-config.for.freetype2.patch b/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch similarity index 100% rename from meta-oe/recipes-support/libsdl-ttf/libsdl-ttf-2.0.10/use.pkg-config.for.freetype2.patch rename to meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf-2.0.10/configure.patch b/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf-2.0.10/configure.patch deleted file mode 100644 index de88f0a34ad..00000000000 --- a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf-2.0.10/configure.patch +++ /dev/null @@ -1,52 +0,0 @@ -Index: SDL_ttf-2.0.10/configure.in -=================================================================== ---- SDL_ttf-2.0.10.orig/configure.in 2009-10-12 23:06:38.000000000 +0000 -+++ SDL_ttf-2.0.10/configure.in 2014-07-17 12:33:34.011662505 +0000 -@@ -1,5 +1,4 @@ - dnl Process this file with autoconf to produce a configure script. --AC_INIT(README) - - dnl Set various version strings - taken gratefully from the GTk sources - -@@ -11,12 +10,19 @@ - # if backwards compatibility has been broken, - # set BINARY_AGE and INTERFACE_AGE to 0. - --MAJOR_VERSION=2 --MINOR_VERSION=0 --MICRO_VERSION=10 -+m4_define([sdlttf_major_version],[2]) -+m4_define([sdlttf_minor_version],[0]) -+m4_define([sdlttf_micro_version],[10]) -+m4_define([sdlttf_version], [sdlttf_major_version.sdlttf_minor_version.sdlttf_micro_version]) -+ -+AC_INIT([SDL_ttf], [sdlttf_version]) -+ -+MAJOR_VERSION=sdlttf_major_version -+MINOR_VERSION=sdlttf_minor_version -+MICRO_VERSION=sdlttf_micro_version - INTERFACE_AGE=0 - BINARY_AGE=10 --VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION -+VERSION=sdlttf_version - - AC_SUBST(MAJOR_VERSION) - AC_SUBST(MINOR_VERSION) -@@ -25,6 +31,8 @@ - AC_SUBST(BINARY_AGE) - AC_SUBST(VERSION) - -+AC_CONFIG_MACRO_DIR([acinclude]) -+ - # libtool versioning - LT_INIT([win32-dll]) - -@@ -42,7 +50,7 @@ - AC_CANONICAL_HOST - - dnl Setup for automake --AM_INIT_AUTOMAKE(SDL_ttf, $VERSION) -+AM_INIT_AUTOMAKE([foreign]) - - dnl Check for tools - AC_PROG_LIBTOOL diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.10.bb b/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.10.bb deleted file mode 100644 index ad3792e22ef..00000000000 --- a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.10.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Simple DirectMedia Layer truetype font library" -SECTION = "libs" -DEPENDS = "virtual/libsdl freetype" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=27818cd7fd83877a8e3ef82b82798ef4" - -PR = "r2" - -SRC_URI = "http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PV}.tar.gz \ - file://configure.patch \ - file://use.pkg-config.for.freetype2.patch \ -" - -S = "${WORKDIR}/SDL_ttf-${PV}" -EXTRA_OECONF += "SDL_CONFIG=${STAGING_BINDIR_CROSS}/sdl-config " - -inherit autotools - -TARGET_CC_ARCH += "${LDFLAGS}" - -do_configure_prepend() { - - # Removing these files fixes a libtool version mismatch. - MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" - - for i in ${MACROS}; do - rm -f ${S}/acinclude/$i - done - -} - -SRC_URI[md5sum] = "814e6e17e8879254208d23b3b7e0354b" -SRC_URI[sha256sum] = "7d38704bcc7c34029c2dcb73b2d4857e8ad76341c6e0faed279eb9f743c66c6a" diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb b/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb new file mode 100644 index 00000000000..d8b378f2cdf --- /dev/null +++ b/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb @@ -0,0 +1,29 @@ +SUMMARY = "Simple DirectMedia Layer truetype font library" +SECTION = "libs" +DEPENDS = "virtual/libsdl freetype" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING;md5=22800d1b3701377aae0b61ee36f5c303" + +SRC_URI = "http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PV}.tar.gz \ + file://use.pkg-config.for.freetype2.patch \ +" +SRC_URI[md5sum] = "61e29bd9da8d245bc2471d1b2ce591aa" +SRC_URI[sha256sum] = "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7" + +S = "${WORKDIR}/SDL_ttf-${PV}" + +inherit autotools pkgconfig + +LDFLAGS += "-lm" + +do_configure_prepend() { + # make autoreconf happy + touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog + + # Removing these files fixes a libtool version mismatch. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + + for i in ${MACROS}; do + rm -f ${S}/acinclude/$i + done +} diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb b/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb new file mode 100644 index 00000000000..4601593ad80 --- /dev/null +++ b/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb @@ -0,0 +1,30 @@ +SUMMARY = "Simple DirectMedia Layer truetype font library" +SECTION = "libs" +DEPENDS = "virtual/libsdl2 freetype virtual/libgl" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=cb33e7c4df9fbde389f149ad6bc93ce5" + +SRC_URI = " \ + http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \ + file://use.pkg-config.for.freetype2.patch \ + file://automake_foreign.patch \ +" +SRC_URI[md5sum] = "e53c05e1e7f1382c316afd6c763388b1" +SRC_URI[sha256sum] = "34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62fe39276" + +S = "${WORKDIR}/SDL2_ttf-${PV}" + +inherit autotools pkgconfig distro_features_check + +# links to libGL.so +REQUIRED_DISTRO_FEATURES += "x11 opengl" + +do_configure_prepend() { + # Removing these files fixes a libtool version mismatch. + MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" + + for i in ${MACROS}; do + rm -f ${S}/acinclude/$i + done +} +ASNEEDED = "" diff --git a/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch b/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch new file mode 100644 index 00000000000..134a8bb4104 --- /dev/null +++ b/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch @@ -0,0 +1,277 @@ +From 460d3a5ef450c30b34a663a073ee53329441ef6e Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Tue, 23 Feb 2016 16:34:38 +0800 +Subject: [PATCH] libsmi: fix the test dump files + +These test dump files were generated by smidump 0.4.5 +which would not match with the ones generated by 0.4.8, +so update them with the ones for 0.4.8. + +Upstream-Status: Pending + +Signed-off-by: Jackie Huang +--- + test/dumps/cm/MAU-MIB | 8 ++++---- + test/dumps/cm/RMON2-MIB | 6 +++--- + test/dumps/sming/IF-MIB | 22 +++++++++++++--------- + test/dumps/sming/MAU-MIB | 19 +++++++++++-------- + test/dumps/sming/RMON2-MIB | 40 ++++++++++++++++++++++++---------------- + test/dumps/sming/SNMPv2-MIB | 11 +++++++---- + 6 files changed, 62 insertions(+), 44 deletions(-) + +diff --git a/test/dumps/cm/MAU-MIB b/test/dumps/cm/MAU-MIB +index 0d97284..0cfd4e1 100644 +--- a/test/dumps/cm/MAU-MIB ++++ b/test/dumps/cm/MAU-MIB +@@ -53,7 +53,7 @@ + + + +- #Conceptual model of MAU-MIB - generated by smidump 0.4.5# ++ #Conceptual model of MAU-MIB - generated by smidump 0.4.8# + + + +@@ -1294,7 +1294,7 @@ + + + +- ++ + + + +@@ -1678,7 +1678,7 @@ + + + +- ++ + + + +@@ -1737,7 +1737,7 @@ + + + +- ++ + + + +diff --git a/test/dumps/cm/RMON2-MIB b/test/dumps/cm/RMON2-MIB +index 30ae8dd..1b9d268 100644 +--- a/test/dumps/cm/RMON2-MIB ++++ b/test/dumps/cm/RMON2-MIB +@@ -53,7 +53,7 @@ + + + +- #Conceptual model of RMON2-MIB - generated by smidump 0.4.5# ++ #Conceptual model of RMON2-MIB - generated by smidump 0.4.8# + + + +@@ -2841,8 +2841,8 @@ + + + +- +- ++ ++ + + + +diff --git a/test/dumps/sming/IF-MIB b/test/dumps/sming/IF-MIB +index 21432cb..c2ffc06 100644 +--- a/test/dumps/sming/IF-MIB ++++ b/test/dumps/sming/IF-MIB +@@ -1,16 +1,18 @@ + // +-// This module has been generated by smidump 0.4.5. Do not edit. ++// This module has been generated by smidump 0.4.8. Do not edit. + // + module IF-MIB { + +- import IANAifType-MIB (IANAifType); +- import IRTF-NMRG-SMING (Counter32, Counter64, +- DisplayString255, Gauge32, +- PhysAddress, TimeStamp, TimeTicks, +- TruthValue); +- import IRTF-NMRG-SMING-SNMP (AutonomousType, RowStatus, +- TestAndIncr, mib-2); +- import SNMPv2-MIB (snmpTraps); ++ import SNMPv2-SMI (MODULE-IDENTITY, OBJECT-TYPE, Counter32, ++ Gauge32, Counter64, Integer32, TimeTicks, ++ mib-2, NOTIFICATION-TYPE); ++ import SNMPv2-TC (TEXTUAL-CONVENTION, DisplayString, ++ PhysAddress, TruthValue, RowStatus, ++ TimeStamp, AutonomousType, TestAndIncr); ++ import SNMPv2-CONF (MODULE-COMPLIANCE, OBJECT-GROUP, ++ NOTIFICATION-GROUP); ++ import SNMPv2-MIB (snmpTraps); ++ import IANAifType-MIB (IANAifType); + + // + // MODULE META INFORMATION +@@ -79,6 +81,7 @@ module IF-MIB { + typedef InterfaceIndex { + type Integer32 (1..2147483647); + format "d"; ++ status current; + description + "A unique value, greater than zero, for each interface or + interface sub-layer in the managed system. It is +@@ -91,6 +94,7 @@ module IF-MIB { + typedef InterfaceIndexOrZero { + type Integer32 (0..2147483647); + format "d"; ++ status current; + description + "This textual convention is an extension of the + InterfaceIndex convention. The latter defines a greater +diff --git a/test/dumps/sming/MAU-MIB b/test/dumps/sming/MAU-MIB +index 2cffd99..64cf714 100644 +--- a/test/dumps/sming/MAU-MIB ++++ b/test/dumps/sming/MAU-MIB +@@ -1,15 +1,18 @@ + // +-// This module has been generated by smidump 0.4.5. Do not edit. ++// This module has been generated by smidump 0.4.8. Do not edit. + // + module MAU-MIB { + +- import IANA-MAU-MIB (IANAifJackType, +- IANAifMauAutoNegCapBits, +- IANAifMauMediaAvailable, +- IANAifMauTypeListBits); +- import IF-MIB (InterfaceIndex); +- import IRTF-NMRG-SMING (Counter32, Counter64, TruthValue); +- import IRTF-NMRG-SMING-SNMP (AutonomousType, mib-2); ++ import SNMPv2-SMI (Counter32, Integer32, Counter64, OBJECT-TYPE, ++ MODULE-IDENTITY, NOTIFICATION-TYPE, mib-2); ++ import SNMPv2-TC (TruthValue, AutonomousType, ++ TEXTUAL-CONVENTION); ++ import SNMPv2-CONF (OBJECT-GROUP, MODULE-COMPLIANCE, ++ NOTIFICATION-GROUP); ++ import IF-MIB (InterfaceIndex); ++ import IANA-MAU-MIB (IANAifMauTypeListBits, ++ IANAifMauMediaAvailable, ++ IANAifMauAutoNegCapBits, IANAifJackType); + + // + // MODULE META INFORMATION +diff --git a/test/dumps/sming/RMON2-MIB b/test/dumps/sming/RMON2-MIB +index 423b9bc..04763e5 100644 +--- a/test/dumps/sming/RMON2-MIB ++++ b/test/dumps/sming/RMON2-MIB +@@ -1,23 +1,26 @@ + // +-// This module has been generated by smidump 0.4.5. Do not edit. ++// This module has been generated by smidump 0.4.8. Do not edit. + // + module RMON2-MIB { + +- import IF-MIB (ifIndex); +- import IRTF-NMRG-SMING (Counter32, DisplayString255, +- Gauge32, IpAddress, TimeStamp, +- TimeTicks); +- import IRTF-NMRG-SMING-SNMP (RowStatus, mib-2); +- import RMON-MIB (OwnerString, channelEntry, +- etherStatsEntry, filter, +- filterEntry, history, +- historyControlEntry, +- hostControlEntry, hosts, matrix, +- matrixControlEntry, statistics); +- import TOKEN-RING-RMON-MIB (ringStationControlEntry, +- sourceRoutingStatsEntry, +- tokenRing, tokenRingMLStatsEntry, +- tokenRingPStatsEntry); ++ import SNMPv2-SMI (MODULE-IDENTITY, OBJECT-TYPE, ++ Counter32, Integer32, Gauge32, ++ IpAddress, TimeTicks, mib-2); ++ import SNMPv2-TC (TEXTUAL-CONVENTION, RowStatus, ++ DisplayString, TimeStamp); ++ import SNMPv2-CONF (MODULE-COMPLIANCE, OBJECT-GROUP); ++ import IF-MIB (ifIndex); ++ import RMON-MIB (OwnerString, statistics, history, ++ hosts, matrix, filter, ++ etherStatsEntry, ++ historyControlEntry, ++ hostControlEntry, ++ matrixControlEntry, filterEntry, ++ channelEntry); ++ import TOKEN-RING-RMON-MIB (tokenRing, tokenRingMLStatsEntry, ++ tokenRingPStatsEntry, ++ ringStationControlEntry, ++ sourceRoutingStatsEntry); + + // + // MODULE META INFORMATION +@@ -167,6 +170,7 @@ module RMON2-MIB { + + typedef ZeroBasedCounter32 { + type Gauge32; ++ status current; + description + "This TC describes an object that counts events with the + following semantics: objects of this type will be set to +@@ -188,6 +192,7 @@ module RMON2-MIB { + + typedef LastCreateTime { + type TimeTicks; ++ status current; + description + "This TC describes an object that stores the value of the + sysUpTime object at the last time its entry was created. +@@ -208,6 +213,7 @@ module RMON2-MIB { + + typedef TimeFilter { + type TimeTicks; ++ status current; + description + "To be used for the index to a table. Allows an application + to download only those rows changed since a particular time. +@@ -424,6 +430,7 @@ module RMON2-MIB { + + typedef DataSource { + type ObjectIdentifier; ++ status current; + description + "Identifies the source of the data that the associated + function is configured to analyze. This source can be any +@@ -439,6 +446,7 @@ module RMON2-MIB { + + typedef ControlString { + type OctetString (0..255); ++ status current; + description + "This data type is used to communicate with a modem or a + +diff --git a/test/dumps/sming/SNMPv2-MIB b/test/dumps/sming/SNMPv2-MIB +index ca355c8..0c88939 100644 +--- a/test/dumps/sming/SNMPv2-MIB ++++ b/test/dumps/sming/SNMPv2-MIB +@@ -1,11 +1,14 @@ + // +-// This module has been generated by smidump 0.4.5. Do not edit. ++// This module has been generated by smidump 0.4.8. Do not edit. + // + module SNMPv2-MIB { + +- import IRTF-NMRG-SMING (Counter32, DisplayString255, +- TimeStamp, TimeTicks, snmpModules); +- import IRTF-NMRG-SMING-SNMP (TestAndIncr, mib-2); ++ import SNMPv2-SMI (MODULE-IDENTITY, OBJECT-TYPE, ++ NOTIFICATION-TYPE, TimeTicks, Counter32, ++ snmpModules, mib-2); ++ import SNMPv2-TC (DisplayString, TestAndIncr, TimeStamp); ++ import SNMPv2-CONF (MODULE-COMPLIANCE, OBJECT-GROUP, ++ NOTIFICATION-GROUP); + + // + // MODULE META INFORMATION +-- +1.9.1 + diff --git a/meta-oe/recipes-support/libsmi/libsmi/smi.conf b/meta-oe/recipes-support/libsmi/libsmi/smi.conf new file mode 100644 index 00000000000..7e4da86d9a7 --- /dev/null +++ b/meta-oe/recipes-support/libsmi/libsmi/smi.conf @@ -0,0 +1,48 @@ +# +# smi.conf - Global/User SMI configuration file. (EXAMPLE) +# +# Copyright (c) 2000 Frank Strauss, Technical University of Braunschweig. +# +# See the file "COPYING" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# @(#) $Id: smi.conf-example 1134 2001-06-11 09:59:13Z strauss $ +# +# +# See smi_config(3) for detailed information on configuration files. +# + +# Extend (note the semicolon) the libsmi default module search path. +path :/usr/share/mibs/iana +path :/usr/share/mibs/ietf +path :/usr/share/mibs/irtf +path :/usr/share/mibs/tubs + +# EXPERIMENTAL: Add a caching method (works only on UNIX systems). +# NOTE: the cache directory must exist and permissions must be +# handled appropriately. A simple but insecure way is to apply +# a tmp flag to the directory (chmod 1777 /usr/local/share/mibs/cache). +#cache /usr/local/share/mibs/cache /usr/local/bin/smicache -d /usr/local/share/mibs/cache -p http://www.ibr.cs.tu-bs.de/projects/libsmi/smicache/ + +# Don't show any errors by default. +level 0 + +# Preload some basic SMIv2 modules. +load SNMPv2-SMI +load SNMPv2-TC +load SNMPv2-CONF + +# Make smilint shout loud to report all errors and warnings. +smilint: level 9 + +# But please don't claim about any names longer than 32 chars. +# (note: this is the prefix of errors `namelength-32-module, +# -type, -object, -enumeration, and -bit) +smilint: hide namelength-32 + +# Preloading some more modules for special applications. +tcpdump: load DISMAN-SCRIPT-MIB +tcpdump: load IF-MIB + +smiquery: load IF-MIB + diff --git a/meta-oe/recipes-support/libsmi/libsmi_0.4.8.bb b/meta-oe/recipes-support/libsmi/libsmi_0.4.8.bb deleted file mode 100644 index 2b036f9016a..00000000000 --- a/meta-oe/recipes-support/libsmi/libsmi_0.4.8.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "A Library to Access SMI MIB Information" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=3ad3076f9332343a21636cfd351f05b7" - -SRC_URI = "ftp://ftp.ibr.cs.tu-bs.de/pub/local/libsmi/${BP}.tar.gz" - -SRC_URI[md5sum] = "760b6b1070738158708649ed2c63425e" -SRC_URI[sha256sum] = "f048a5270f41bc88b0c3b0a8fe70ca4d716a46b531a0ecaaa87c462f49d74849" - -inherit autotools - -PACKAGES += "${PN}-mibs ${PN}-pibs" - -FILES_${PN}-mibs += "${datadir}/mibs" -FILES_${PN}-pibs += "${datadir}/pibs" diff --git a/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb b/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb new file mode 100644 index 00000000000..b537ce67dcb --- /dev/null +++ b/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb @@ -0,0 +1,32 @@ +SUMMARY = "A Library to Access SMI MIB Information" +HOMEPAGE = "https://www.ibr.cs.tu-bs.de/projects/libsmi" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=3ad3076f9332343a21636cfd351f05b7" + +SRC_URI = "https://www.ibr.cs.tu-bs.de/projects/${BPN}/download/${BP}.tar.gz \ + file://smi.conf \ + file://libsmi-fix-the-test-dump-files.patch \ + " + +SRC_URI[md5sum] = "4bf47483c06c9f07d1b10fbc74eddf11" +SRC_URI[sha256sum] = "f21accdadb1bb328ea3f8a13fc34d715baac6e2db66065898346322c725754d3" + +RDEPENDS_${PN} += "wget" + +inherit autotools + +EXTRA_OECONF = "ac_cv_path_SH=${base_bindir}/sh ac_cv_path_WGET=${bindir}/wget" + +do_install_append () { + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/smi.conf ${D}${sysconfdir}/smi.conf +} + +PACKAGES += "${PN}-mibs ${PN}-pibs ${PN}-yang" + +FILES_${PN}-mibs += "${datadir}/mibs" +FILES_${PN}-pibs += "${datadir}/pibs" +FILES_${PN}-yang += "${datadir}/yang" + +RRECOMMENDS_${PN} = "${BPN}-mibs" diff --git a/meta-oe/recipes-support/libsoc/libsoc_0.6.bb b/meta-oe/recipes-support/libsoc/libsoc_0.6.bb deleted file mode 100644 index 79c171adf24..00000000000 --- a/meta-oe/recipes-support/libsoc/libsoc_0.6.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Library for interfacing with common SoC peripherals" -DESCRIPTION = "libsoc is a C library to interface with common peripherals (gpio, i2c, spi, pwm) \ - found in SoC (System on Chips) through generic Linux Kernel interfaces." - -HOMEPAGE = "https://github.com/jackmitch/libsoc" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=e0bfebea12a718922225ba987b2126a5" - -inherit autotools - -SRCREV = "3643cf161a4b37bfbdfd05437166c4a29ac3ed8d" -SRC_URI = "git://github.com/jackmitch/libsoc.git" - -S = "${WORKDIR}/git" - -RDEPENDS_${PN} = "libgcc" diff --git a/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb b/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb new file mode 100644 index 00000000000..01708df35a0 --- /dev/null +++ b/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb @@ -0,0 +1,32 @@ +SUMMARY = "Library for interfacing with common SoC peripherals" +DESCRIPTION = "libsoc is a C library to interface with common peripherals (gpio, i2c, spi, pwm) \ + found in SoC (System on Chips) through generic Linux Kernel interfaces." + +HOMEPAGE = "https://github.com/jackmitch/libsoc" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENCE;md5=e0bfebea12a718922225ba987b2126a5" + +inherit autotools pkgconfig python-dir + +SRCREV = "fd1ad6e7823fa76d8db0d3c5884faffa8ffddafb" +SRC_URI = "git://github.com/jackmitch/libsoc.git" + +S = "${WORKDIR}/git" + +BOARD ??= "devboard" + +PACKAGECONFIG ?= "" + +PACKAGECONFIG[disabledebug] = "--disable-debug,," +PACKAGECONFIG[allboardconfigs] = "--with-board-configs,," +PACKAGECONFIG[enableboardconfig] = "--enable-board=${BOARD},," +PACKAGECONFIG[python] = "--enable-python=${PYTHON_PN},,${PYTHON_PN}" + +PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'python', \ + '${PYTHON_PN}-libsoc-staticdev ${PYTHON_PN}-libsoc', '', d)}" + +RDEPENDS_${PN} = "libgcc" + +FILES_${PYTHON_PN}-libsoc-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*/*.a" +FILES_${PYTHON_PN}-libsoc += "${PYTHON_SITEPACKAGES_DIR}" diff --git a/meta-oe/recipes-support/libsodium/libsodium_1.0.11.bb b/meta-oe/recipes-support/libsodium/libsodium_1.0.11.bb new file mode 100644 index 00000000000..cbcbe96cd70 --- /dev/null +++ b/meta-oe/recipes-support/libsodium/libsodium_1.0.11.bb @@ -0,0 +1,12 @@ +SUMMARY = "The Sodium crypto library" +HOMEPAGE = "http://libsodium.org/" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c9f00492f01f5610253fde01c3d2e866" + +SRC_URI = "https://download.libsodium.org/libsodium/releases/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "b58928d035064b2a46fb564937b83540" +SRC_URI[sha256sum] = "a14549db3c49f6ae2170cbbf4664bd48ace50681045e8dbea7c8d9fb96f9c765" + +inherit autotools + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-support/libssh/libssh_0.7.3.bb b/meta-oe/recipes-support/libssh/libssh_0.7.3.bb new file mode 100644 index 00000000000..79e7dc59985 --- /dev/null +++ b/meta-oe/recipes-support/libssh/libssh_0.7.3.bb @@ -0,0 +1,34 @@ +SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol" +HOMEPAGE = "http://www.libssh.org" +SECTION = "libs" + +DEPENDS = "zlib openssl libgcrypt" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139" + +SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=v0-7" +SRCREV = "cdf7690e038230623cbbf6b024ece62f41efa98d" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = " \ + -DWITH_GCRYPT=1 \ + -DWITH_PCAP=1 \ + -DWITH_SFTP=1 \ + -DWITH_ZLIB=1 \ + -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ + " + +PACKAGECONFIG ??="" +PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, " + +inherit cmake + +do_configure_prepend () { + # Disable building of examples + sed -i -e '/add_subdirectory(examples)/s/^/#DONOTWANT/' ${S}/CMakeLists.txt \ + || bbfatal "Failed to disable examples" +} + +FILES_${PN}-dev += "${libdir}/cmake" +TOOLCHAIN = "gcc" diff --git a/meta-oe/recipes-support/libssh/libssh_git.bb b/meta-oe/recipes-support/libssh/libssh_git.bb deleted file mode 100644 index 47fb39a5b68..00000000000 --- a/meta-oe/recipes-support/libssh/libssh_git.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol" -HOMEPAGE = "http://www.libssh.org" -SECTION = "libs" - -DEPENDS = "zlib openssl libgcrypt" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139" - -SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=v0-6" -SRCREV = "3880a8ed80a4b1e2c052bd62f328bba2f869d5ae" -S = "${WORKDIR}/git" - -PV = "0.6.4+git${SRCPV}" - -EXTRA_OECMAKE = " \ - -DWITH_GCRYPT=1 \ - -DWITH_PCAP=1 \ - -DWITH_SFTP=1 \ - -DWITH_ZLIB=1 \ - " - -PACKAGECONFIG ??="" -PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, " - -inherit cmake - -do_configure_prepend () { - # Disable building of examples - sed -i -e '/add_subdirectory(examples)/s/^/#DONOTWANT/' ${S}/CMakeLists.txt \ - || bbfatal "Failed to disable examples" -} - -FILES_${PN}-dev += "${libdir}/cmake" diff --git a/meta-oe/recipes-support/libssh2/libssh2_1.4.3.bb b/meta-oe/recipes-support/libssh2/libssh2_1.4.3.bb deleted file mode 100644 index b53766333be..00000000000 --- a/meta-oe/recipes-support/libssh2/libssh2_1.4.3.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "A client-side C library implementing the SSH2 protocol" -HOMEPAGE = "http://www.libssh2.org/" -SECTION = "libs" - -DEPENDS = "zlib openssl" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=d00afe44f336a79a2ca7e1681ce14509" - -SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz" -SRC_URI[md5sum] = "071004c60c5d6f90354ad1b701013a0b" -SRC_URI[sha256sum] = "eac6f85f9df9db2e6386906a6227eb2cd7b3245739561cad7d6dc1d5d021b96d" - -inherit autotools pkgconfig - -EXTRA_OECONF += "--with-openssl \ - --with-libz \ - " diff --git a/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb b/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb new file mode 100644 index 00000000000..94bfb8f87ec --- /dev/null +++ b/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb @@ -0,0 +1,26 @@ +SUMMARY = "A client-side C library implementing the SSH2 protocol" +HOMEPAGE = "http://www.libssh2.org/" +SECTION = "libs" + +DEPENDS = "zlib" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca" + +SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz" +SRC_URI[md5sum] = "3d1147cae66e2959ea5441b183de1b1c" +SRC_URI[sha256sum] = "39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4" + +inherit autotools pkgconfig + +EXTRA_OECONF += "\ + --with-libz \ + --with-libz-prefix=${STAGING_LIBDIR} \ + " + +# only one of openssl and gcrypt could be set +PACKAGECONFIG ??= "openssl" +PACKAGECONFIG[openssl] = "--with-openssl --with-libssl-prefix=${STAGING_LIBDIR},--without-openssl,openssl" +PACKAGECONFIG[gcrypt] = "--with-libgcrypt --with-libgcrypt-prefix=${STAGING_EXECPREFIXDIR},--without-libgcrypt,libgcrypt" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch b/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch new file mode 100644 index 00000000000..31c0d29e93e --- /dev/null +++ b/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch @@ -0,0 +1,25 @@ +From e9fee689430af7791b932a1ee3c2cc103ccf290f Mon Sep 17 00:00:00 2001 +From: Stefan Eichenberger +Date: Wed, 2 Nov 2016 05:43:43 -0400 +Subject: [PATCH] Do not strip libtar. + +--- + libtar/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libtar/Makefile.in b/libtar/Makefile.in +index 7c6f1bc..80bb8d9 100644 +--- a/libtar/Makefile.in ++++ b/libtar/Makefile.in +@@ -20,7 +20,7 @@ SHELL = @SHELL@ + + ### Installation programs and flags + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ -s ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_DATA = @INSTALL_DATA@ + LN_S = @LN_S@ + MKDIR = @MKDIR@ +-- +2.8.1 + diff --git a/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch b/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch new file mode 100644 index 00000000000..178a970299e --- /dev/null +++ b/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch @@ -0,0 +1,19 @@ +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 4623100..1c6b43d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -13,6 +13,7 @@ AC_CONFIG_MACRO_DIR([autoconf]) + AM_INIT_AUTOMAKE([dist-bzip2]) + ENCAP_PKG([], [postinstall-encap]) + ++LT_INIT + + dnl ### Load subdirectory modules. ################################## + PSG_MODULE([compat]) +-- +2.8.1 + diff --git a/meta-oe/recipes-support/libtar/libtar_1.2.20.bb b/meta-oe/recipes-support/libtar/libtar_1.2.20.bb new file mode 100644 index 00000000000..60710f416a9 --- /dev/null +++ b/meta-oe/recipes-support/libtar/libtar_1.2.20.bb @@ -0,0 +1,21 @@ +SUMMARY = "libtar, tar manipulating library" +DESCRIPTION = "libtar is a library for manipulating POSIX tar files" +HOMEPAGE = "http://www.feep.net/libtar" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=61cbac6719ae682ce6cd45b5c11e21af" + +SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://fix_libtool_sysroot.patch \ + file://0002-Do-not-strip-libtar.patch \ + " + +S = "${WORKDIR}/${BPN}" + +SRC_URI[md5sum] = "6ced95ab3a4b33fbfe2dfb231d156cdb" +SRC_URI[sha256sum] = "50f24c857a7ef1cb092e6508758b86d06f1188508f897f3e6b40c573e8879109" + +inherit autotools-brokensep + +PACKAGECONFIG ??= "zlib" +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" diff --git a/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch b/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch new file mode 100644 index 00000000000..a4a17ed85bc --- /dev/null +++ b/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch @@ -0,0 +1,28 @@ +From 0ab69dc18a2057ff5bf41abcdf2b983b72d5a903 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 15:34:49 -0700 +Subject: [PATCH 1/2] include sys/select.h for fd_set definition + +Fixes +teamnl.c:160:2: error: unknown type name 'fd_set'; did you mean 'fpos_t'? + +Signed-off-by: Khem Raj +--- + utils/teamnl.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/utils/teamnl.c b/utils/teamnl.c +index e8de7e2..25129e8 100644 +--- a/utils/teamnl.c ++++ b/utils/teamnl.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.13.2 + diff --git a/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch b/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch new file mode 100644 index 00000000000..beabf63ca3a --- /dev/null +++ b/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch @@ -0,0 +1,40 @@ +From a5b945cb3c62a18dcd7047f62707c09076c4e48b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 15:35:51 -0700 +Subject: [PATCH 2/2] teamd: Re-adjust include header order + +So it gets the library definition before kernel definition + +usr/include/ne +tinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr' + struct ethhdr { + ^~~~~~ + +Signed-off-by: Khem Raj +--- + teamd/teamd_runner_lacp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c +index 9c77fae..8800854 100644 +--- a/teamd/teamd_runner_lacp.c ++++ b/teamd/teamd_runner_lacp.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -30,7 +31,6 @@ + #include + #include + #include +-#include + + #include "teamd.h" + #include "teamd_config.h" +-- +2.13.2 + diff --git a/meta-oe/recipes-support/libteam/libteam_1.27.bb b/meta-oe/recipes-support/libteam/libteam_1.27.bb new file mode 100644 index 00000000000..32227009e31 --- /dev/null +++ b/meta-oe/recipes-support/libteam/libteam_1.27.bb @@ -0,0 +1,36 @@ +SUMMARY = "Library for controlling team network device" +HOMEPAGE = "http://www.libteam.org/" +SECTION = "libs/network" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "libnl libdaemon jansson" + +SRC_URI = "git://github.com/jpirko/libteam \ + file://0001-include-sys-select.h-for-fd_set-definition.patch \ + file://0002-teamd-Re-adjust-include-header-order.patch \ + " +SRCREV = "91a928a56a501daac5ce8b3c16bd9943661f1d16" + +SRC_URI[md5sum] = "565114d70c41bff6093d8e57be284e8a" +SRC_URI[sha256sum] = "d65286379141db141bea33424ec0507bb0f827a0bf03d9c65004bb593e3d5545" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +FILES_${PN} = "${libdir}/libteam${SOLIBS} \ +" + +PACKAGES += "${PN}-dctl ${PN}-utils" +FILES_${PN}-dctl = "${libdir}/libteamdctl${SOLIBS} \ +" +FILES_${PN}-utils = "${bindir}/bond2team \ + ${bindir}/teamd \ + ${bindir}/teamdctl \ + ${bindir}/teamnl \ +" + +RDEPENDS_${PN}-utils = "bash" + diff --git a/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb b/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb index e09a5393da5..138df9f300c 100644 --- a/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb +++ b/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb @@ -1,4 +1,4 @@ -# (c) Copyright 2012 Hewlett-Packard Development Company, L.P. +# (c) Copyright 2012 Hewlett-Packard Development Company, L.P. SUMMARY = "a simple, small, minimal, C++ XML parser" HOMEPAGE = "http://www.sourceforge.net/projects/tinyxml" @@ -42,4 +42,4 @@ do_install() { install -m 0644 ${S}/tinyxml.h ${D}${includedir} } -BBCLASSEXTEND += "native" +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb new file mode 100644 index 00000000000..8b5ab44fddc --- /dev/null +++ b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs" +HOMEPAGE = "http://www.grinninglizard.com/tinyxml2/" +SECTION = "libs" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://tinyxml2.cpp;endline=22;md5=c19221dbd8a66ad3090462af4c5de5e7" + +SRC_URI = "git://github.com/leethomason/tinyxml2.git" + +SRCREV = "37bc3aca429f0164adf68c23444540b4a24b5778" + +S = "${WORKDIR}/git" + +inherit cmake + +FILES_${PN}-dev += "${libdir}/cmake/" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_git.bb b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_git.bb deleted file mode 100644 index 1d3cffd778e..00000000000 --- a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_git.bb +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs." -HOMEPAGE = "http://www.grinninglizard.com/tinyxml2/" -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://readme.md;md5=0033b2f8a25283414b21354670bb1334" -SECTION = "libs" - -SRCREV = "d211bb13512cf4edb408e2c4badbcf4100ce0fd0" - -PV = "2.2.0+git${SRCPV}" - -SRC_URI = "git://github.com/leethomason/tinyxml2.git" - -S = "${WORKDIR}/git" - -EXTRA_CXXFLAGS = "-I. -fPIC" - -do_compile() { - ${CXX} ${CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o tinyxml2.o tinyxml2.cpp - ${CXX} ${CXXFLAGS} \ - -shared \ - -Wl,-soname,libtinyxml2.so.${PV} \ - -o libtinyxml2.so.${PV} \ - ${LDFLAGS} \ - tinyxml2.o \ - -} - -do_install() { - install -d ${D}${libdir} - install -m 0755 ${S}/libtinyxml2.so.${PV} ${D}${libdir} - ln -sf libtinyxml2.so.${PV} ${D}${libdir}/libtinyxml2.so - - install -d ${D}${includedir} - install -m 0644 ${S}/tinyxml2.h ${D}${includedir} -} - -BBCLASSEXTEND += "native" - diff --git a/meta-oe/recipes-support/libutempter/libutempter.bb b/meta-oe/recipes-support/libutempter/libutempter.bb new file mode 100644 index 00000000000..8c84cb376f6 --- /dev/null +++ b/meta-oe/recipes-support/libutempter/libutempter.bb @@ -0,0 +1,41 @@ +SUMMARY = "A privileged helper for utmp/wtmp updates" +DESCRIPTION = "\ +This library provides interface for terminal emulators such as \ +screen and xterm to record user sessions to utmp and wtmp files." +HOMEPAGE = "ftp://ftp.altlinux.org/pub/people/ldv/utempter" +SECTION = "System Environment/Libraries" +LICENSE = "GPLv2 & GPLv2+ & LGPLv2 & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +SRCREV = "3ef74fff310f09e2601e241b9f042cd39d591018" +PV = "1.1.6-alt2+git${SRCPV}" + +SRC_URI = "git://git.altlinux.org/people/ldv/packages/libutempter.git \ + file://0001-Fix-macro-error.patch \ + file://libutempter-remove-glibc-assumption.patch \ + " + +S = "${WORKDIR}/git/${BPN}" + +CFLAGS += "-DLIBEXECDIR=${libexecdir}" + +do_compile() { + oe_runmake \ + libdir=${libdir} \ + libexecdir=${libexecdir} +} + +do_install() { + oe_runmake install \ + DESTDIR=${D} \ + libdir="${libdir}" \ + libexecdir="${libexecdir}" \ + includedir=${includedir} \ + mandir=${mandir} + + rm -f ${D}${libdir}/*.a +} + +FILES_${PN} = "${libdir}/*.so.*" +FILES_${PN} += "${libexecdir}/utempter/utempter" +FILES_${PN}-dbg += "${libexecdir}/utempter/.debug/utempter" diff --git a/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch b/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch new file mode 100644 index 00000000000..6ed93355bbf --- /dev/null +++ b/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch @@ -0,0 +1,81 @@ +diff -Naur libutempter-1.1.6.orig/utempter.c libutempter-1.1.6/utempter.c +--- libutempter-1.1.6.orig/utempter.c 2010-11-04 13:14:53.000000000 -0400 ++++ libutempter-1.1.6/utempter.c 2014-06-20 16:37:09.762403323 -0400 +@@ -34,13 +34,7 @@ + #include + #include + +-#ifdef __GLIBC__ + # include +-#elif defined(__FreeBSD__) +-# include +-#else +-# error Unsupported platform +-#endif /* __GLIBC__ || __FreeBSD__ */ + + #define DEV_PREFIX "/dev/" + #define DEV_PREFIX_LEN (sizeof(DEV_PREFIX)-1) +@@ -106,17 +100,12 @@ + + static int + write_uwtmp_record(const char *user, const char *term, const char *host, +-#ifdef __GLIBC__ + pid_t pid, +-#endif + int add) + { + struct utmp ut; + struct timeval tv; +- +-#ifdef __GLIBC__ + size_t offset; +-#endif + + memset(&ut, 0, sizeof(ut)); + +@@ -128,8 +117,6 @@ + if (host) + strncpy(ut.ut_host, host, sizeof(ut.ut_host)); + +-#ifdef __GLIBC__ +- + offset = (strlen(term) <= sizeof(ut.ut_id)) ? 0 : + strlen(term) - sizeof(ut.ut_id); + strncpy(ut.ut_id, term + offset, sizeof(ut.ut_id)); +@@ -156,27 +143,6 @@ + + (void) updwtmp(_PATH_WTMP, &ut); + +-#elif defined(__FreeBSD__) +- +- ut.ut_time = tv.tv_sec; +- +- if (add) +- { +- login(&ut); +- } else +- { +- if (logout(term) != 1) +- { +-#ifdef UTEMPTER_DEBUG +- fprintf(stderr, "utempter: logout: %s\n", +- strerror(errno)); +-#endif +- exit(EXIT_FAILURE); +- } +- } +- +-#endif /* __GLIBC__ || __FreeBSD__ */ +- + #ifdef UTEMPTER_DEBUG + fprintf(stderr, + "utempter: DEBUG: utmp/wtmp record %s for terminal '%s'\n", +@@ -255,8 +221,6 @@ + validate_device(device); + + return write_uwtmp_record(pw->pw_name, device + DEV_PREFIX_LEN, host, +-#ifdef __GLIBC__ + pid, +-#endif + add); + } diff --git a/meta-oe/recipes-support/libutempter/libutempter_1.1.6.bb b/meta-oe/recipes-support/libutempter/libutempter_1.1.6.bb deleted file mode 100644 index f84e6493c75..00000000000 --- a/meta-oe/recipes-support/libutempter/libutempter_1.1.6.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "A privileged helper for utmp/wtmp updates" -DESCRIPTION = "\ -This library provides interface for terminal emulators such as \ -screen and xterm to record user sessions to utmp and wtmp files." -HOMEPAGE = "ftp://ftp.altlinux.org/pub/people/ldv/utempter" -SECTION = "System Environment/Libraries" -LICENSE = "GPLv2 & GPLv2+ & LGPLv2 & MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" - -SRC_URI = "ftp://ftp.altlinux.org/pub/people/ldv/utempter/${BP}.tar.bz2 \ - file://0001-Fix-macro-error.patch" -SRC_URI[md5sum] = "b43827806923903aba2bc7cd3a2d45b7" -SRC_URI[sha256sum] = "b898565f31ced7e5c1fa0a2eaa0f6ff0ed862b5fe375d26375b64bfbdfeac397" - -CFLAGS += "-DLIBEXECDIR=${libexecdir}" - -do_compile() { - oe_runmake \ - libdir=${libdir} \ - libexecdir=${libexecdir} -} - -do_install() { - oe_runmake install \ - DESTDIR=${D} \ - libdir="${libdir}" \ - libexecdir="${libexecdir}" \ - includedir=${includedir} \ - mandir=${mandir} - - rm -f ${D}${libdir}/*.a -} - -FILES_${PN} = "${libdir}/*.so.*" -FILES_${PN} += "${libexecdir}/utempter/utempter" -FILES_${PN}-dbg += "${libexecdir}/utempter/.debug/utempter" diff --git a/meta-oe/recipes-support/libyaml/files/libyaml-CVE-2014-2525.patch b/meta-oe/recipes-support/libyaml/files/libyaml-CVE-2014-2525.patch deleted file mode 100644 index 2fdcba3eca0..00000000000 --- a/meta-oe/recipes-support/libyaml/files/libyaml-CVE-2014-2525.patch +++ /dev/null @@ -1,42 +0,0 @@ -Heap-based buffer overflow in the yaml_parser_scan_uri_escapes function -in LibYAML before 0.1.6 allows context-dependent attackers to execute -arbitrary code via a long sequence of percent-encoded characters in a -URI in a YAML file. - -Upstream-Status: Backport - -Signed-off-by: Kai Kang ---- -diff --git a/src/scanner.c.old b/src/scanner.c -index a2e8619..c6cde3b 100644 ---- a/src/scanner.c.old -+++ b/src/scanner.c -@@ -2619,6 +2619,9 @@ yaml_parser_scan_tag_uri(yaml_parser_t *parser, int directive, - /* Check if it is a URI-escape sequence. */ - - if (CHECK(parser->buffer, '%')) { -+ if (!STRING_EXTEND(parser, string)) -+ goto error; -+ - if (!yaml_parser_scan_uri_escapes(parser, - directive, start_mark, &string)) goto error; - } -diff --git a/src/yaml_private.h.old b/src/yaml_private.h -index ed5ea66..d72acb4 100644 ---- a/src/yaml_private.h.old -+++ b/src/yaml_private.h -@@ -132,9 +132,12 @@ yaml_string_join( - (string).start = (string).pointer = (string).end = 0) - - #define STRING_EXTEND(context,string) \ -- (((string).pointer+5 < (string).end) \ -+ ((((string).pointer+5 < (string).end) \ - || yaml_string_extend(&(string).start, \ -- &(string).pointer, &(string).end)) -+ &(string).pointer, &(string).end)) ? \ -+ 1 : \ -+ ((context)->error = YAML_MEMORY_ERROR, \ -+ 0)) - - #define CLEAR(context,string) \ - ((string).pointer = (string).start, \ diff --git a/meta-oe/recipes-support/libyaml/libyaml_0.1.5.bb b/meta-oe/recipes-support/libyaml/libyaml_0.1.5.bb deleted file mode 100644 index 1279541966d..00000000000 --- a/meta-oe/recipes-support/libyaml/libyaml_0.1.5.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "LibYAML is a YAML 1.1 parser and emitter written in C." -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" -SECTION = "libs/devel" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17" - -SRC_URI = "http://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz \ - file://libyaml-CVE-2014-2525.patch \ - " - -SRC_URI[md5sum] = "24f6093c1e840ca5df2eb09291a1dbf1" -SRC_URI[sha256sum] = "fa87ee8fb7b936ec04457bc044cd561155e1000a4d25029867752e543c2d3bef" - -S = "${WORKDIR}/yaml-${PV}" - -inherit autotools - -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch b/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch new file mode 100644 index 00000000000..9608b7e7536 --- /dev/null +++ b/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch @@ -0,0 +1,61 @@ +From 2cc2315eecaa48fd24792aaa889dc7d9fb96978b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 20 Mar 2017 22:18:44 -0700 +Subject: [PATCH] Makefiles: Respect environment variables and add LDFLAGS to + linker cmdline + +Fixes QA errors about GNU_HASH + +Signed-off-by: Khem Raj +--- + mib-modules/Makefile | 10 +++++----- + tools/Makefile | 2 +- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/mib-modules/Makefile b/mib-modules/Makefile +index 0d54c9b..051d4d2 100644 +--- a/mib-modules/Makefile ++++ b/mib-modules/Makefile +@@ -17,13 +17,13 @@ TARG = iscsiTargetMib.so + OBJS = iscsiTargetMib.o iscsiMib.o scsiMib.o ipsAuthMib.o \ + iscsiAuthData.o + +-CC = gcc +-CFLAGS = -I$(INCLDIR) -I$(INCLDIR)/agent -I$(INCLDIR)/agent/mibgroup -shared -fPIC ++CC ?= gcc ++CFLAGS += -I$(INCLDIR) -I$(INCLDIR)/agent -I$(INCLDIR)/agent/mibgroup -shared -fPIC + CFLAGS += -I../include -Wall -Werror + #CFLAGS +=$(AUTO_CFLAGS) + +-LD = gcc -shared +- ++LD ?= gcc ++LDFLAGS += -shared + INSTALL = install + + all: $(TARG) +@@ -32,7 +32,7 @@ all: $(TARG) + $(CC) $(CFLAGS) -o $@ -c $< + + $(TARG): $(OBJS) +- $(LD) -o $@ $(OBJS) ++ $(LD) -o $@ $(OBJS) $(LDFLAGS) + + clean: + rm -f $(OBJS) $(TARG) +diff --git a/tools/Makefile b/tools/Makefile +index 79ed3cd..ffd9bf3 100644 +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -6,7 +6,7 @@ ISCSI_NAME_OBJS = $(ISCSI_NAME_SRCS:.c=.o) + all:: $(ISCSI_NAME) + + $(ISCSI_NAME): $(ISCSI_NAME_OBJS) +- $(CC) -o $@ $(CFLAGS) $(ISCSI_NAME_OBJS) ++ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(ISCSI_NAME_OBJS) + + clean: + rm -f $(ISCSI_NAME_OBJS) $(ISCSI_NAME) +-- +2.12.0 + diff --git a/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb index bbedb784a80..3a6319c3149 100644 --- a/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb +++ b/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb @@ -6,7 +6,9 @@ LIC_FILES_CHKSUM = "file://debian/copyright;md5=c3ea231a32635cbb5debedf3e88aa3df PV = "4.1+git${SRCPV}" -SRC_URI = "git://risingtidesystems.com/lio-utils.git" +SRC_URI = "git://risingtidesystems.com/lio-utils.git \ + file://0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch \ + " SRCREV = "28bd928655bdc7bd3cf380f0196630690c51e05f" S = "${WORKDIR}/git" @@ -54,6 +56,7 @@ do_install() { } RDEPENDS_${PN} += "python-stringold python-subprocess python-shell \ - python-datetime python-textutils python-crypt python-netclient python-email" + python-datetime python-textutils python-crypt python-netclient python-email \ + bash" FILES_${PN} += "${sbindir}/* /etc/init.d/* /etc/target/*" diff --git a/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord b/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord new file mode 100644 index 00000000000..a58362e43db --- /dev/null +++ b/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord @@ -0,0 +1,16 @@ +# configuration for hardware sensors monitoring daemon +# in intervals use suffix "m" for minutes, "s" for seconds, "h" for hours +# 0 means turning facility off + +# interval between scanning alarms +INTERVAL=1m + +# interval between logging +LOG_INTERVAL=20m + +# interval between RRD logging +# RRD_INTERVAL=1m + +# RRD db location +# RRD_LOGFILE=/var/log/sensors.rrd + diff --git a/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb b/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb index 343971f1a45..b0091d6574f 100644 --- a/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb +++ b/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb @@ -10,15 +10,17 @@ SRC_URI = "file://fancontrol \ file://sensord.cgi \ file://sensord.conf \ file://sensors.conf \ + file://sensord \ " +S = "${WORKDIR}" RDEPENDS_${PN}-dev = "" do_install() { # Install fancontrol configuration file - install -d ${D}${sysconfdir} + install -d ${D}${sysconfdir}/sysconfig install -m 0644 ${WORKDIR}/fancontrol ${D}${sysconfdir} - + install -m 0644 ${WORKDIR}/sensord ${D}${sysconfdir}/sysconfig # Install libsensors configuration file install -d ${D}${sysconfdir}/sensors.d install -m 0644 ${WORKDIR}/sensors.conf ${D}${sysconfdir}/sensors.d @@ -45,14 +47,17 @@ PACKAGES =+ "${PN}-fancontrol" # sensord web cgi support PACKAGES =+ "${PN}-cgi" RRECOMMENDS_${PN}-cgi = "lighttpd lighttpd-module-cgi" -RDEPENDS_${PN}-cgi = "${PN}-sensord" -FILES_${PN}-cgi = "/www/*" +RDEPENDS_${PN}-cgi = "${PN}-sensord rrdtool" +FILES_${PN}-cgi = "/www/*" # libsensors configuration file FILES_${PN}-libsensors = "${sysconfdir}/sensors.d/sensors.conf" # sensord logging daemon configuration files -FILES_${PN}-sensord = "${sysconfdir}/sensord.conf" +FILES_${PN}-sensord = "\ + ${sysconfdir}/sensord.conf \ + ${sysconfdir}/sysconfig/sensord \ +" # fancontrol script configuration file FILES_${PN}-fancontrol = "${sysconfdir}/fancontrol" diff --git a/meta-oe/recipes-support/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch b/meta-oe/recipes-support/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch new file mode 100644 index 00000000000..abf6e752afb --- /dev/null +++ b/meta-oe/recipes-support/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch @@ -0,0 +1,40 @@ +From c4428260e7685ebaf5c26c6ecaae5a56849853e8 Mon Sep 17 00:00:00 2001 +From: Li Zhou +Date: Tue, 6 Sep 2016 14:04:29 +0800 +Subject: [PATCH] lmsensors: sensors-detect: print a special message when there + isn't enough cpu info + +When running sensors-detect, if there isn't enough information in +/proc/cpuinfo for this arch (e.g. ppc64), "Use of uninitialized value +in concatenation (.) or string at /usr/sbin/sensors-detect line 2867" +and incomplete "# Processor: (//)" will be printed. +Here print out a prompt for such a case. + +Upstream-Status: Pending + +Signed-off-by: Li Zhou +--- + prog/detect/sensors-detect | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index 3c2b44f..5f62405 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -2864,7 +2864,12 @@ sub initialize_cpu_list + sub print_cpu_info + { + my $cpu = $cpu[0]; +- print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n"; ++ if ( $cpu->{'model name'} && $cpu->{'cpu family'} && $cpu->{model} && $cpu->{stepping} ) { ++ print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n"; ++ } ++ else { ++ print "# Processor: There isn't enough cpu info for this arch!!!\n"; ++ } + } + + # @i2c_adapters is a list of references to hashes, one hash per I2C/SMBus +-- +1.9.1 + diff --git a/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch b/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch new file mode 100644 index 00000000000..fb3878dc391 --- /dev/null +++ b/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch @@ -0,0 +1,88 @@ +From 727524453f115ddc05109e9bbb3d0e60a7db9185 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 16 Jul 2017 15:05:50 -0700 +Subject: [PATCH] prog: Do not limit sys/io.h header include to just glibc + +musl provides it too. + +Signed-off-by: Khem Raj +--- + prog/dump/isadump.c | 6 ------ + prog/dump/isaset.c | 6 ------ + prog/dump/superio.c | 5 ----- + prog/dump/util.c | 5 ----- + 4 files changed, 22 deletions(-) + +diff --git a/prog/dump/isadump.c b/prog/dump/isadump.c +index e0e6f00..8794537 100644 +--- a/prog/dump/isadump.c ++++ b/prog/dump/isadump.c +@@ -36,13 +36,7 @@ + #include "util.h" + #include "superio.h" + +- +-/* To keep glibc2 happy */ +-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0 + #include +-#else +-#include +-#endif + + #ifdef __powerpc__ + unsigned long isa_io_base = 0; /* XXX for now */ +diff --git a/prog/dump/isaset.c b/prog/dump/isaset.c +index e743755..85a4f64 100644 +--- a/prog/dump/isaset.c ++++ b/prog/dump/isaset.c +@@ -32,13 +32,7 @@ + #include + #include "util.h" + +- +-/* To keep glibc2 happy */ +-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0 + #include +-#else +-#include +-#endif + + #ifdef __powerpc__ + unsigned long isa_io_base = 0; /* XXX for now */ +diff --git a/prog/dump/superio.c b/prog/dump/superio.c +index 64ef27b..906fe55 100644 +--- a/prog/dump/superio.c ++++ b/prog/dump/superio.c +@@ -20,12 +20,7 @@ + */ + + #include +- +-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0 + #include +-#else +-#include +-#endif + + #include "superio.h" + +diff --git a/prog/dump/util.c b/prog/dump/util.c +index 874c1b9..197fa64 100644 +--- a/prog/dump/util.c ++++ b/prog/dump/util.c +@@ -11,12 +11,7 @@ + #include + #include "util.h" + +-/* To keep glibc2 happy */ +-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0 + #include +-#else +-#include +-#endif + + /* Return 1 if we should continue, 0 if we should abort */ + int user_ack(int def) +-- +2.13.3 + diff --git a/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.service b/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.service deleted file mode 100644 index 4836d8ff055..00000000000 --- a/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Sensor Information Logging - -[Service] -Type=forking -EnvironmentFile=-@SYSCONFDIR@/sensord.conf -PIDFile=@LOCALSTATEDIR@/run/sensord.pid -ExecStart=@SBINDIR@/sensord $SENSORD_ARGS - -[Install] -WantedBy=multi-user.target diff --git a/meta-oe/recipes-support/lm_sensors/lmsensors_3.3.5.bb b/meta-oe/recipes-support/lm_sensors/lmsensors_3.3.5.bb deleted file mode 100644 index d2cd31716e6..00000000000 --- a/meta-oe/recipes-support/lm_sensors/lmsensors_3.3.5.bb +++ /dev/null @@ -1,138 +0,0 @@ -SUMMARY = "lm_sensors" -DESCRIPTION = "Hardware health monitoring applications" -HOMEPAGE = "http://www.lm-sensors.org/" -LICENSE = "GPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ - file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS = "sysfsutils virtual/libiconv bison-native flex-native rrdtool" - -SRC_URI = "http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-${PV}.tar.bz2 \ - file://fancontrol.init \ - file://sensord.init \ - file://sensord.service \ -" -SRC_URI[md5sum] = "da506dedceb41822e64865f6ba34828a" -SRC_URI[sha256sum] = "5dae6a665e1150159a93743c4ff1943a7efe02cd9d3bb12c4805e7d7adcf4fcf" - -inherit update-rc.d systemd - -RDEPENDS_${PN}-dev = "" - -INITSCRIPT_PACKAGES = "${PN}-fancontrol ${PN}-sensord" -INITSCRIPT_NAME_${PN}-fancontrol = "fancontrol" -INITSCRIPT_NAME_${PN}-sensord = "sensord" -INITSCRIPT_PARAMS_${PN}-fancontrol = "defaults 66" -INITSCRIPT_PARAMS_${PN}-sensord = "defaults 67" - -SYSTEMD_PACKAGES = "${PN}-sensord" -SYSTEMD_SERVICE_${PN}-sensord = "sensord.service" -SYSTEMD_AUTO_ENABLE = "disable" - -S = "${WORKDIR}/lm_sensors-${PV}" - -EXTRA_OEMAKE = 'LINUX=${STAGING_KERNEL_DIR} EXLDFLAGS="${LDFLAGS}" \ - MACHINE=${TARGET_ARCH} PREFIX=${prefix} MANDIR=${mandir} \ - LIBDIR=${libdir} \ - CC="${CC}" AR="${AR}"' - -do_compile() { - oe_runmake user PROG_EXTRA="sensors sensord" -} - -do_install() { - oe_runmake user_install DESTDIR=${D} - install -m 0755 ${S}/prog/sensord/sensord ${D}${sbindir} - install -m 0644 ${S}/prog/sensord/sensord.8 ${D}${mandir}/man8 - - # Install directory - install -d ${D}${sysconfdir}/init.d - - # Install fancontrol init script - install -m 0755 ${WORKDIR}/fancontrol.init \ - ${D}${sysconfdir}/init.d/fancontrol - - # Install sensord init script - install -m 0755 ${WORKDIR}/sensord.init ${D}${sysconfdir}/init.d/sensord - - # Insall sensord service script - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/sensord.service ${D}${systemd_unitdir}/system - - sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/sensord.service - sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/sensord.service - sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/sensord.service - fi -} - -# libsensors packages -PACKAGES =+ "${PN}-libsensors ${PN}-libsensors-dbg ${PN}-libsensors-dev ${PN}-libsensors-staticdev ${PN}-libsensors-doc" - -# sensors command packages -PACKAGES =+ "${PN}-sensors ${PN}-sensors-dbg ${PN}-sensors-doc" - -# sensord logging daemon -PACKAGES =+ "${PN}-sensord ${PN}-sensord-dbg ${PN}-sensord-doc" - -# fancontrol script -PACKAGES =+ "${PN}-fancontrol ${PN}-fancontrol-doc" - -# sensors-detect script -PACKAGES =+ "${PN}-sensorsdetect ${PN}-sensorsdetect-doc" - -# sensors-conf-convert script -PACKAGES =+ "${PN}-sensorsconfconvert ${PN}-sensorsconfconvert-doc" - -# pwmconfig script -PACKAGES =+ "${PN}-pwmconfig ${PN}-pwmconfig-doc" - -# isadump and isaset helper program -PACKAGES =+ "${PN}-isatools ${PN}-isatools-dbg ${PN}-isatools-doc" - -# libsensors files -FILES_${PN}-libsensors = "${libdir}/libsensors.so.* ${sysconfdir}/sensors3.conf ${sysconfdir}/sensors.d" -FILES_${PN}-libsensors-dbg = "${libdir}/.debug ${prefix}/src/debug" -FILES_${PN}-libsensors-dev = "${libdir}/libsensors.so ${includedir}" -FILES_${PN}-libsensors-staticdev = "${libdir}/libsensors.a" -FILES_${PN}-libsensors-doc = "${mandir}/man3" -RRECOMMENDS_${PN}-libsensors = "lmsensors-config-libsensors" - -# sensors command files -FILES_${PN}-sensors = "${bindir}/sensors" -FILES_${PN}-sensors-dbg = "${bindir}/.debug/sensors" -FILES_${PN}-sensors-doc = "${mandir}/man1 ${mandir}/man5" -RDEPENDS_${PN}-sensors = "${PN}-libsensors" - -# sensord logging daemon -FILES_${PN}-sensord = "${sbindir}/sensord ${sysconfdir}/init.d/sensord ${systemd_unitdir}/system/sensord.service" -FILES_${PN}-sensord-dbg = "${bindir}/.debug/sensord" -FILES_${PN}-sensord-doc = "${mandir}/man8/sensord.8" -RDEPENDS_${PN}-sensord = "${PN}-sensors rrdtool" -RRECOMMENDS_${PN}-sensord = "lmsensors-config-sensord" - -# fancontrol script files -FILES_${PN}-fancontrol = "${sbindir}/fancontrol ${sysconfdir}/init.d/fancontrol" -FILES_${PN}-fancontrol-doc = "${mandir}/man8/fancontrol.8" -RDEPENDS_${PN}-fancontrol = "bash" -RRECOMMENDS_${PN}-fancontrol = "lmsensors-config-fancontrol" - -# sensors-detect script files -FILES_${PN}-sensorsdetect = "${sbindir}/sensors-detect" -FILES_${PN}-sensorsdetect-doc = "${mandir}/man8/sensors-detect.8" -RDEPENDS_${PN}-sensorsdetect = "${PN}-sensors perl perl-modules" - -# sensors-conf-convert script files -FILES_${PN}-sensorsconfconvert = "${bindir}/sensors-conf-convert" -FILES_${PN}-sensorsconfconvert-doc = "${mandir}/man8/sensors-conf-convert.8" -RDEPENDS_${PN}-sensorsconfconvert = "${PN}-sensors perl perl-modules" - -# pwmconfig script files -FILES_${PN}-pwmconfig = "${sbindir}/pwmconfig" -FILES_${PN}-pwmconfig-doc = "${mandir}/man8/pwmconfig.8" -RDEPENDS_${PN}-pwmconfig = "${PN}-fancontrol" - -# isadump and isaset helper program files -FILES_${PN}-isatools = "${sbindir}/isa*" -FILES_${PN}-isatools-dbg = "${sbindir}/.debug/isa*" -FILES_${PN}-isatools-doc = "${mandir}/man8/isa*" diff --git a/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb b/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb new file mode 100644 index 00000000000..454a69f40b4 --- /dev/null +++ b/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb @@ -0,0 +1,140 @@ +SUMMARY = "lm_sensors" +DESCRIPTION = "Hardware health monitoring applications" +HOMEPAGE = "http://www.lm-sensors.org/" +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "sysfsutils virtual/libiconv bison-native flex-native rrdtool" + +SRC_URI = "https://github.com/groeck/lm-sensors/archive/V3-4-0.tar.gz \ + file://fancontrol.init \ + file://sensord.init \ + file://0001-lmsensors-sensors-detect-print-a-special-message-whe.patch \ + file://0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch \ +" +SRC_URI[md5sum] = "1e9f117cbfa11be1955adc96df71eadb" +SRC_URI[sha256sum] = "e334c1c2b06f7290e3e66bdae330a5d36054701ffd47a5dde7a06f9a7402cb4e" + +inherit update-rc.d systemd + +RDEPENDS_${PN}-dev = "" + +INITSCRIPT_PACKAGES = "${PN}-fancontrol ${PN}-sensord" +INITSCRIPT_NAME_${PN}-fancontrol = "fancontrol" +INITSCRIPT_NAME_${PN}-sensord = "sensord" +INITSCRIPT_PARAMS_${PN}-fancontrol = "defaults 66" +INITSCRIPT_PARAMS_${PN}-sensord = "defaults 67" + +SYSTEMD_PACKAGES = "${PN}-sensord" +SYSTEMD_SERVICE_${PN}-sensord = "sensord.service lm_sensors.service fancontrol.service" +SYSTEMD_AUTO_ENABLE = "disable" + +S = "${WORKDIR}/lm-sensors-3-4-0" + +EXTRA_OEMAKE = 'EXLDFLAGS="${LDFLAGS}" \ + MACHINE=${TARGET_ARCH} PREFIX=${prefix} MANDIR=${mandir} \ + LIBDIR=${libdir} \ + CC="${CC}" AR="${AR}"' + +do_compile() { + sed -i -e 's:^# \(PROG_EXTRA\):\1:' ${S}/Makefile + # Respect LDFLAGS + sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' ${S}/Makefile + sed -i -e 's/\$(LIBSHSONAME) -o/$(LIBSHSONAME) \$(LDFLAGS) -o/g' \ + ${S}/lib/Module.mk + oe_runmake user PROG_EXTRA="sensors sensord" +} + +do_install() { + oe_runmake user_install DESTDIR=${D} + install -m 0755 ${S}/prog/sensord/sensord ${D}${sbindir} + install -m 0644 ${S}/prog/sensord/sensord.8 ${D}${mandir}/man8 + + # Install directory + install -d ${D}${sysconfdir}/init.d + + # Install fancontrol init script + install -m 0755 ${WORKDIR}/fancontrol.init \ + ${D}${sysconfdir}/init.d/fancontrol + + # Install sensord init script + install -m 0755 ${WORKDIR}/sensord.init ${D}${sysconfdir}/init.d/sensord + + # Insall sensord service script + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${S}/prog/init/*.service ${D}${systemd_unitdir}/system + fi +} + +# libsensors packages +PACKAGES =+ "${PN}-libsensors ${PN}-libsensors-dbg ${PN}-libsensors-dev ${PN}-libsensors-staticdev ${PN}-libsensors-doc" + +# sensors command packages +PACKAGES =+ "${PN}-sensors ${PN}-sensors-dbg ${PN}-sensors-doc" + +# sensord logging daemon +PACKAGES =+ "${PN}-sensord ${PN}-sensord-dbg ${PN}-sensord-doc" + +# fancontrol script +PACKAGES =+ "${PN}-fancontrol ${PN}-fancontrol-doc" + +# sensors-detect script +PACKAGES =+ "${PN}-sensorsdetect ${PN}-sensorsdetect-doc" + +# sensors-conf-convert script +PACKAGES =+ "${PN}-sensorsconfconvert ${PN}-sensorsconfconvert-doc" + +# pwmconfig script +PACKAGES =+ "${PN}-pwmconfig ${PN}-pwmconfig-doc" + +# isadump and isaset helper program +PACKAGES =+ "${PN}-isatools ${PN}-isatools-dbg ${PN}-isatools-doc" + +# libsensors files +FILES_${PN}-libsensors = "${libdir}/libsensors.so.* ${sysconfdir}/sensors3.conf ${sysconfdir}/sensors.d" +FILES_${PN}-libsensors-dbg = "${libdir}/.debug ${prefix}/src/debug" +FILES_${PN}-libsensors-dev = "${libdir}/libsensors.so ${includedir}" +FILES_${PN}-libsensors-staticdev = "${libdir}/libsensors.a" +FILES_${PN}-libsensors-doc = "${mandir}/man3" +RRECOMMENDS_${PN}-libsensors = "lmsensors-config-libsensors" + +# sensors command files +FILES_${PN}-sensors = "${bindir}/sensors" +FILES_${PN}-sensors-dbg = "${bindir}/.debug/sensors" +FILES_${PN}-sensors-doc = "${mandir}/man1 ${mandir}/man5" +RDEPENDS_${PN}-sensors = "${PN}-libsensors" + +# sensord logging daemon +FILES_${PN}-sensord = "${sbindir}/sensord ${sysconfdir}/init.d/sensord ${systemd_unitdir}/system/sensord.service" +FILES_${PN}-sensord-dbg = "${bindir}/.debug/sensord" +FILES_${PN}-sensord-doc = "${mandir}/man8/sensord.8" +RDEPENDS_${PN}-sensord = "${PN}-sensors rrdtool" +RRECOMMENDS_${PN}-sensord = "lmsensors-config-sensord" + +# fancontrol script files +FILES_${PN}-fancontrol = "${sbindir}/fancontrol ${sysconfdir}/init.d/fancontrol" +FILES_${PN}-fancontrol-doc = "${mandir}/man8/fancontrol.8" +RDEPENDS_${PN}-fancontrol = "bash" +RRECOMMENDS_${PN}-fancontrol = "lmsensors-config-fancontrol" + +# sensors-detect script files +FILES_${PN}-sensorsdetect = "${sbindir}/sensors-detect" +FILES_${PN}-sensorsdetect-doc = "${mandir}/man8/sensors-detect.8" +RDEPENDS_${PN}-sensorsdetect = "${PN}-sensors perl perl-modules" + +# sensors-conf-convert script files +FILES_${PN}-sensorsconfconvert = "${bindir}/sensors-conf-convert" +FILES_${PN}-sensorsconfconvert-doc = "${mandir}/man8/sensors-conf-convert.8" +RDEPENDS_${PN}-sensorsconfconvert = "${PN}-sensors perl perl-modules" + +# pwmconfig script files +FILES_${PN}-pwmconfig = "${sbindir}/pwmconfig" +FILES_${PN}-pwmconfig-doc = "${mandir}/man8/pwmconfig.8" +RDEPENDS_${PN}-pwmconfig = "${PN}-fancontrol" + +# isadump and isaset helper program files +FILES_${PN}-isatools = "${sbindir}/isa*" +FILES_${PN}-isatools-dbg = "${sbindir}/.debug/isa*" +FILES_${PN}-isatools-doc = "${mandir}/man8/isa*" diff --git a/meta-oe/recipes-support/lockdev/lockdev_git.bb b/meta-oe/recipes-support/lockdev/lockdev_git.bb index 023b9a7ddc3..507ce3fe578 100644 --- a/meta-oe/recipes-support/lockdev/lockdev_git.bb +++ b/meta-oe/recipes-support/lockdev/lockdev_git.bb @@ -18,3 +18,5 @@ do_configure_prepend () { # Make automake happy touch ChangeLog } + +CFLAGS_append_libc-musl = " -D__GNU_LIBRARY__" diff --git a/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch b/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch new file mode 100644 index 00000000000..9ff9d700259 --- /dev/null +++ b/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch @@ -0,0 +1,26 @@ +From 97f0b7b25474fab25f5757f7c50a77e20be5d05b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= +Date: Mon, 7 Sep 2015 15:00:48 +0200 +Subject: [PATCH] Use the API properly in the example (format security error + fixed). + +--- + examples/helloworld1/mylog.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/examples/helloworld1/mylog.h b/examples/helloworld1/mylog.h +index 280f3dc..57e5369 100644 +--- a/examples/helloworld1/mylog.h ++++ b/examples/helloworld1/mylog.h +@@ -39,7 +39,7 @@ static LOG4C_INLINE int mylog_fini(){ + + static LOG4C_INLINE void mylog_msg(char *catName,int a_priority, char *msg){ + #ifndef WITHOUT_LOG4C +- log4c_category_log(log4c_category_get(catName), a_priority, msg); ++ log4c_category_log(log4c_category_get(catName), a_priority, "%s", msg); + #else + printf(msg); + #endif +-- +2.12.0 + diff --git a/meta-oe/recipes-support/log4c/log4c_1.2.4.bb b/meta-oe/recipes-support/log4c/log4c_1.2.4.bb index 3286b08eeb2..ef7ad847a65 100644 --- a/meta-oe/recipes-support/log4c/log4c_1.2.4.bb +++ b/meta-oe/recipes-support/log4c/log4c_1.2.4.bb @@ -4,7 +4,9 @@ LICENSE = "LGPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ - file://fix_configure_with-expat.patch" + file://fix_configure_with-expat.patch \ + file://0001-Use-the-API-properly-in-the-example-format-security-.patch \ + " SRC_URI[md5sum] = "0d94919136e1d16b68427562e74cb3dd" SRC_URI[sha256sum] = "5991020192f52cc40fa852fbf6bbf5bd5db5d5d00aa9905c67f6f0eadeed48ea" @@ -15,3 +17,5 @@ PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat" BINCONFIG = "${bindir}/log4c-config" inherit autotools binconfig-disabled + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/log4cpp/files/fix-pc.patch b/meta-oe/recipes-support/log4cpp/files/fix-pc.patch new file mode 100644 index 00000000000..b8fb42e5fdd --- /dev/null +++ b/meta-oe/recipes-support/log4cpp/files/fix-pc.patch @@ -0,0 +1,20 @@ +diff -Nurd ./log4cpp.orig/configure.in ./log4cpp/configure.in +--- ./log4cpp.orig/configure.in 2009-09-07 16:57:46.000000000 -0400 ++++ ./log4cpp/configure.in 2016-02-23 12:57:11.567240018 -0500 +@@ -130,7 +130,6 @@ + # ---------------------------------------------------------------------------- + + AC_CONFIG_LIBCONFIG_IN([log4cpp]) +-AC_CONFIG_PKGCONFIG_IN([log4cpp], [C++ library for flexible logging, modeled after Log4j]) + + AC_CONFIG_FILES([ + Makefile +diff -Nurd ./log4cpp.orig/log4cpp.pc.in ./log4cpp/log4cpp.pc.in +--- ./log4cpp.orig/log4cpp.pc.in 2004-01-27 05:24:25.000000000 -0500 ++++ ./log4cpp/log4cpp.pc.in 2016-02-22 15:06:55.769327491 -0500 +@@ -7,4 +7,4 @@ + Description: C++ library for flexible logging, modeled after Log4j + Version: @VERSION@ + Libs: -L${libdir} @log4cpp_libs@ +-Cflags: -I${includedir} @log4cpp_cflags@ ++Cflags: -I${includedir} diff --git a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.1.bb b/meta-oe/recipes-support/log4cpp/log4cpp_1.1.1.bb deleted file mode 100644 index dba4fa07aaa..00000000000 --- a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.1.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations." -HOMEPAGE = "http://sourceforge.net/projects/log4cpp/" -PRIORITY = "optional" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -SRC_URI[md5sum] = "1e173df8ee97205f412ff84aa93b8fbe" -SRC_URI[sha256sum] = "35abf332630a6809c969276b1d60b90c81a95daf24c86cfd7866ffef72f9bed0" - -SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}.tar.gz" - -S="${WORKDIR}/${BPN}" - -inherit autotools pkgconfig - -EXTRA_OECONF = "\ - --enable-doxygen=no \ - --enable-dot=no \ - --enable-html-docs=no \ - --enable-latex-docs=no \ - LDFLAGS=-lpthread \ -" diff --git a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb b/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb new file mode 100644 index 00000000000..dc52c9ff417 --- /dev/null +++ b/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations." +HOMEPAGE = "http://sourceforge.net/projects/log4cpp/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +RC = "rc5" +SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}${RC}.tar.gz \ + file://fix-pc.patch;striplevel=2 \ + " +SRC_URI[md5sum] = "58b4591a2f3e7ef3d5e3e7cfb3a81a62" +SRC_URI[sha256sum] = "a611d99a20af6676c60219762771c0bfac90f4879bbde70038ece75338b588ec" + +S = "${WORKDIR}/${BPN}" + +inherit autotools pkgconfig + +EXTRA_OECONF = "\ + --enable-doxygen=no \ + --enable-dot=no \ + --enable-html-docs=no \ + --enable-latex-docs=no \ +" diff --git a/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb b/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb new file mode 100644 index 00000000000..5ae36bb67c8 --- /dev/null +++ b/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb @@ -0,0 +1,52 @@ +SUMMARY = "A utility for finding interesting messages in log files" +DESCRIPTION = "Logwarn searches for interesting messages in log files, \ + where 'interesting' is defined by a user-supplied list of positive and \ + negative extended regular expressions. \ +" +HOMEPAGE = "https://github.com/archiecobbs/logwarn/wiki" +SECTION = "console/utils" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI = "https://s3.amazonaws.com/archie-public/${BPN}/${BP}.tar.gz" + +SRC_URI[md5sum] = "e544a6230673ea54f7430bf817bb39d8" +SRC_URI[sha256sum] = "8dbfcf9b28c782ab3bddd6a620d4fb95d1b0ffcbe93276996cdc4800aa9aebd1" + +inherit autotools-brokensep + +# This directory is NOT volatile. +# +lcl_default_state_dir = "${localstatedir}/lib/logwarn" + +CFLAGS += '-DDEFAULT_STATE_DIR=\""${lcl_default_state_dir}\""' + +CACHED_CONFIGUREVARS += " \ + ac_cv_path_BASH_SHELL=${base_bindir}/bash \ + ac_cv_path_CAT=${base_bindir}/cat \ + ac_cv_path_RM=${base_bindir}/rm \ + ac_cv_path_SED=${base_bindir}/sed \ +" + +# Make sure some files exist for autoreconf. +# +do_configure_prepend () { + touch ${S}/NEWS + touch ${S}/ChangeLog + touch ${S}/README +} + +# Create a directory for logfile state info, usually under /var/lib. +# +do_install_append () { + install -d ${D}${lcl_default_state_dir} +} + +# Make a package for the nagios plug-in (script). +# +PACKAGES += "${PN}-nagios" + +FILES_${PN}-nagios = "${nonarch_libdir}/nagios" + +RDEPENDS_${PN}-nagios += "bash coreutils sed" diff --git a/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch b/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch new file mode 100644 index 00000000000..e86ab25e620 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch @@ -0,0 +1,182 @@ +From 916ea0c70fd063ab7b81f16fd917a75dc02edf4f Mon Sep 17 00:00:00 2001 +From: Peter Kjellerstedt +Date: Fri, 17 Mar 2017 03:18:28 +0100 +Subject: [PATCH] Avoid bashisms in init scripts + +Upstream-Status: Inappropriate + +Signed-off-by: Peter Kjellerstedt +--- + scripts/blk_availability_init_red_hat.in | 4 ++-- + scripts/clvmd_init_red_hat.in | 6 +++--- + scripts/cmirrord_init_red_hat.in | 4 ++-- + scripts/lvm2_cluster_activation_red_hat.sh.in | 4 ++-- + scripts/lvm2_lvmetad_init_red_hat.in | 4 ++-- + scripts/lvm2_lvmpolld_init_red_hat.in | 4 ++-- + scripts/lvm2_monitoring_init_red_hat.in | 4 ++-- + scripts/lvm2_monitoring_init_rhel4 | 4 ++-- + 8 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in +index a84ffe7..6b855b7 100644 +--- a/scripts/blk_availability_init_red_hat.in ++++ b/scripts/blk_availability_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2012 Red Hat, Inc. All rights reserved. + # +@@ -53,6 +53,6 @@ case "$1" in + status) + ;; + *) +- echo $"Usage: $0 {start|stop|status}" ++ echo "Usage: $0 {start|stop|status}" + ;; + esac +diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in +index d7f3392..abc8011 100644 +--- a/scripts/clvmd_init_red_hat.in ++++ b/scripts/clvmd_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # clvmd - Clustered LVM Daemon init script + # +@@ -161,7 +161,7 @@ restart() { + fi + } + +-[ "$EUID" != "0" ] && { ++[ "$(id -u)" != "0" ] && { + echo "clvmd init script can only be executed as root user" + exit 4 + } +@@ -206,7 +206,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" ++ echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + rtrn=2 + ;; + esac +diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in +index d4b7e37..d442cbc 100755 +--- a/scripts/cmirrord_init_red_hat.in ++++ b/scripts/cmirrord_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # chkconfig: - 22 78 + # description: Starts and stops cmirrord +@@ -101,7 +101,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|restart|status}" ++ echo "Usage: $0 {start|stop|restart|status}" + ;; + esac + +diff --git a/scripts/lvm2_cluster_activation_red_hat.sh.in b/scripts/lvm2_cluster_activation_red_hat.sh.in +index abea026..d8cba2e 100644 +--- a/scripts/lvm2_cluster_activation_red_hat.sh.in ++++ b/scripts/lvm2_cluster_activation_red_hat.sh.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + sbindir=@sbindir@ + +@@ -54,7 +54,7 @@ case "$1" in + rtrn=$? + ;; + *) +- echo $"Usage: $0 {activate|deactivate}" ++ echo "Usage: $0 {activate|deactivate}" + rtrn=3 + ;; + esac +diff --git a/scripts/lvm2_lvmetad_init_red_hat.in b/scripts/lvm2_lvmetad_init_red_hat.in +index b2f5d50..96269a9 100644 +--- a/scripts/lvm2_lvmetad_init_red_hat.in ++++ b/scripts/lvm2_lvmetad_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2012 Red Hat, Inc. All rights reserved. + # +@@ -105,7 +105,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" ++ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" + ;; + esac + +diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in +index c521955..cdbaece 100644 +--- a/scripts/lvm2_lvmpolld_init_red_hat.in ++++ b/scripts/lvm2_lvmpolld_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2015 Red Hat, Inc. All rights reserved. + # +@@ -107,7 +107,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" ++ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" + ;; + esac + +diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in +index de7ff0d..9ff6bb7 100644 +--- a/scripts/lvm2_monitoring_init_red_hat.in ++++ b/scripts/lvm2_monitoring_init_red_hat.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2007-2009 Red Hat, Inc. All rights reserved. + # +@@ -128,7 +128,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|restart|status|force-stop}" ++ echo "Usage: $0 {start|stop|restart|status|force-stop}" + ;; + esac + +diff --git a/scripts/lvm2_monitoring_init_rhel4 b/scripts/lvm2_monitoring_init_rhel4 +index 8eb06c5..2e8d0f7 100644 +--- a/scripts/lvm2_monitoring_init_rhel4 ++++ b/scripts/lvm2_monitoring_init_rhel4 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (C) 2007 Red Hat, Inc. All rights reserved. + # +@@ -93,7 +93,7 @@ case "$1" in + ;; + + *) +- echo $"Usage: $0 {start|stop|restart|status|force-stop}" ++ echo "Usage: $0 {start|stop|restart|status|force-stop}" + ;; + esac + +-- +2.12.0 + diff --git a/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch b/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch new file mode 100644 index 00000000000..5d72402bd1c --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch @@ -0,0 +1,79 @@ +From e3103459416616d3b8508e7176e897b0ae6c90f2 Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Tue, 25 Oct 2016 11:49:40 +0000 +Subject: [PATCH] implement libc specific reopen_stream + +musl defines stdin/stdio/stderr as constant types which means +we can not assign to them as we are doing here but works ok with glibc +therefore abstract out the _reopen_stream definition depending upon if +we are using glibc or otherwise + +Origin: +http://git.alpinelinux.org/cgit/aports/tree/main/lvm2/fix-stdio-usage.patch + +Signed-off-by: Khem Raj +Signed-off-by: Dengke Du + +--- + lib/log/log.c | 6 ++++++ + tools/lvmcmdline.c | 6 +++--- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/lib/log/log.c b/lib/log/log.c +index c933154..3581084 100644 +--- a/lib/log/log.c ++++ b/lib/log/log.c +@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_ + * Close and reopen standard stream on file descriptor fd. + */ + int reopen_standard_stream(FILE **stream, const char *mode) ++#ifdef __GLIBC__ + { + int fd, fd_copy, new_fd; + const char *name; +@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode) + *stream = new_stream; + return 1; + } ++#else ++{ ++ return (freopen(NULL, mode, *stream) != NULL); ++} ++#endif + + void init_log_fn(lvm2_log_fn_t log_fn) + { +diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c +index 9a4deb7..f1f18e6 100644 +--- a/tools/lvmcmdline.c ++++ b/tools/lvmcmdline.c +@@ -1818,7 +1818,7 @@ static int _check_standard_fds(void) + int err = is_valid_fd(STDERR_FILENO); + + if (!is_valid_fd(STDIN_FILENO) && +- !(stdin = fopen(_PATH_DEVNULL, "r"))) { ++ !freopen(_PATH_DEVNULL, "r", stdin)) { + if (err) + perror("stdin stream open"); + else +@@ -1828,7 +1828,7 @@ static int _check_standard_fds(void) + } + + if (!is_valid_fd(STDOUT_FILENO) && +- !(stdout = fopen(_PATH_DEVNULL, "w"))) { ++ !freopen(_PATH_DEVNULL, "w", stdout)) { + if (err) + perror("stdout stream open"); + /* else no stdout */ +@@ -1836,7 +1836,7 @@ static int _check_standard_fds(void) + } + + if (!is_valid_fd(STDERR_FILENO) && +- !(stderr = fopen(_PATH_DEVNULL, "w"))) { ++ !freopen(_PATH_DEVNULL, "w", stderr)) { + printf("stderr stream open: %s\n", + strerror(errno)); + return 0; +-- +2.12.0 + diff --git a/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch b/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch new file mode 100644 index 00000000000..95dcede33c5 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch @@ -0,0 +1,30 @@ +From 3ae9c0b607ec33fb07f32a41e9d28cc9068dd39a Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Tue, 25 Oct 2016 11:52:44 +0000 +Subject: [PATCH] Guard use of mallinfo() with __GLIBC__ + +This API is glibc-only + +Signed-off-by: Khem Raj +Signed-off-by: Dengke Du + +--- + lib/mm/memlock.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/mm/memlock.c b/lib/mm/memlock.c +index da90144..f34f890 100644 +--- a/lib/mm/memlock.c ++++ b/lib/mm/memlock.c +@@ -150,7 +150,7 @@ static void _touch_memory(void *mem, size_t size) + + static void _allocate_memory(void) + { +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + void *stack_mem; + struct rlimit limit; + int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks; +-- +2.12.0 + diff --git a/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch b/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch new file mode 100644 index 00000000000..9ab1c06d27e --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch @@ -0,0 +1,30 @@ +From b1ad91a059d99afd1ce25823b7c0a8d3ac63d2fd Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Tue, 25 Oct 2016 11:55:49 +0000 +Subject: [PATCH 3/4] include fcntl.h for O_* defines and fcntl() signature + +On glibc _somehow_ this header gets pulled in indirectly + +Signed-off-by: Khem Raj +Signed-off-by: Dengke Du +--- +Upstream-Status: Pending +--- + libdaemon/server/daemon-server.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c +index 6af6de9..a9590e7 100644 +--- a/libdaemon/server/daemon-server.c ++++ b/libdaemon/server/daemon-server.c +@@ -18,6 +18,7 @@ + #include "daemon-server.h" + #include "daemon-log.h" + ++#include + #include + #include + #include +-- +2.9.3 + diff --git a/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch b/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch new file mode 100644 index 00000000000..aaeaa725d3f --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch @@ -0,0 +1,38 @@ +From 0012ea63f6070a5d41fa380970f9c30b953237d2 Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Tue, 25 Oct 2016 11:59:40 +0000 +Subject: [PATCH 4/4] tweak MODPROBE_CMD for cross compile + +Lvm uses variable MODPROBE_CMD at runtime, so build time detection of modprobe +is incorrect. +------ +|lvm lvcreate --thinpool wrl/pool00 --size 5556m --config devices +{ preferred_names=["^/dev/mapper/", "^/dev/md/", "^/dev/sd"] +filter=["r|/loop1$|","r|/loop2$|","r|/loop3$|","r|/loop4$|","r|/loop5$|","r|/loop6$|","r|/loop7$|"] } +|tmp/sysroots/x86_64-linux/usr/bin/modprobe: execvp failed: No such file or directory +|tmp/sysroots/x86_64-linux/usr/bin/modprobe failed: 2 +------ + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +Signed-off-by: Dengke Du +--- + configure.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/configure.in b/configure.in +index cc77aab..a3579f2 100644 +--- a/configure.in ++++ b/configure.in +@@ -1853,7 +1853,6 @@ if test "$UDEV_SYNC" = yes; then + fi + + ################################################################################ +-AC_PATH_TOOL(MODPROBE_CMD, modprobe) + + if test -n "$MODPROBE_CMD"; then + AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.]) +-- +2.9.3 + diff --git a/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch b/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch new file mode 100644 index 00000000000..15aa9f5002d --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch @@ -0,0 +1,58 @@ +From d8bb25e34d6533ba78eaae697771ee499a66706f Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 2 Aug 2017 03:41:37 -0400 +Subject: [PATCH] do not build manual + +On some host (ubuntu 1404), build manual failed. +... +./tools/man-generator --primary lvscan lvscan.8_des +Failed to stat description file lvscan.8_des. +... + +Do not build man to workaround the issue. + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + Makefile.in | 4 ++-- + configure.in | 1 - + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 31d428d..24f89a2 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -18,7 +18,7 @@ top_builddir = @top_builddir@ + abs_top_builddir = @abs_top_builddir@ + abs_top_srcdir = @abs_top_srcdir@ + +-SUBDIRS = conf daemons include lib libdaemon libdm man scripts tools ++SUBDIRS = conf daemons include lib libdaemon libdm scripts tools + + ifeq ("@UDEV_RULES@", "yes") + SUBDIRS += udev +@@ -69,7 +69,7 @@ liblvm.device-mapper: include.device-mapper + daemons.device-mapper: libdm.device-mapper + tools.device-mapper: libdm.device-mapper + scripts.device-mapper: include.device-mapper +-device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper ++device-mapper: tools.device-mapper daemons.device-mapper + + ifeq ("@INTL@", "yes") + lib.pofile: include.pofile +diff --git a/configure.in b/configure.in +index 1dc8819..108ace4 100644 +--- a/configure.in ++++ b/configure.in +@@ -2213,7 +2213,6 @@ libdm/Makefile + libdm/libdevmapper.pc + liblvm/Makefile + liblvm/liblvm2app.pc +-man/Makefile + po/Makefile + python/Makefile + python/setup.py +-- +2.8.1 + diff --git a/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch b/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch new file mode 100644 index 00000000000..0e68d62fc21 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch @@ -0,0 +1,32 @@ +From 24a2c47fd01dde1710f1fa66f5c30ce7010c5956 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 21 Sep 2017 15:28:10 +0800 +Subject: [PATCH] start lvm2-monitor.service after tmp.mount + +The lvm2-monitor.service reqires the existence of locking_dir +("/tmp/lock/lvm"), and unit tmp.mount is to mount /tmp. +So start lvm2-monitor.service after tmp.mount + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + scripts/lvm2_monitoring_systemd_red_hat.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/lvm2_monitoring_systemd_red_hat.service.in b/scripts/lvm2_monitoring_systemd_red_hat.service.in +index 22238b7..93b2bee 100644 +--- a/scripts/lvm2_monitoring_systemd_red_hat.service.in ++++ b/scripts/lvm2_monitoring_systemd_red_hat.service.in +@@ -2,7 +2,7 @@ + Description=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling + Documentation=man:dmeventd(8) man:lvcreate(8) man:lvchange(8) man:vgchange(8) + Requires=dm-event.socket lvm2-lvmetad.socket +-After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service ++After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service tmp.mount + Before=local-fs-pre.target + DefaultDependencies=no + Conflicts=shutdown.target +-- +1.8.3.1 + diff --git a/meta-oe/recipes-support/lvm2/lvm2/lvm.conf b/meta-oe/recipes-support/lvm2/files/lvm.conf similarity index 88% rename from meta-oe/recipes-support/lvm2/lvm2/lvm.conf rename to meta-oe/recipes-support/lvm2/files/lvm.conf index c44c6a7a090..c2bb85d8bf4 100644 --- a/meta-oe/recipes-support/lvm2/lvm2/lvm.conf +++ b/meta-oe/recipes-support/lvm2/files/lvm.conf @@ -214,7 +214,7 @@ global { # Local non-LV directory that holds file-based locks while commands are # in progress. A directory like /tmp that may get wiped on reboot is OK. - locking_dir = "/var/lock/lvm" + locking_dir = "/tmp/lock/lvm" # Other entries can go here to allow you to load shared libraries # e.g. if support for LVM1 metadata was compiled as a shared library use @@ -289,4 +289,38 @@ activation { # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ] #} +# Event daemon +# +dmeventd { + # mirror_library is the library used when monitoring a mirror device. + # + # "libdevmapper-event-lvm2mirror.so" attempts to recover from + # failures. It removes failed devices from a volume group and + # reconfigures a mirror as necessary. If no mirror library is + # provided, mirrors are not monitored through dmeventd. + + mirror_library = "@libdir@/device-mapper/libdevmapper-event-lvm2mirror.so" + + # snapshot_library is the library used when monitoring a snapshot device. + # + # "libdevmapper-event-lvm2snapshot.so" monitors the filling of + # snapshots and emits a warning through syslog when the use of + # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and + # 95% of the snapshot is filled. + + snapshot_library = "@libdir@/device-mapper/libdevmapper-event-lvm2snapshot.so" + + # thin_library is the library used when monitoring a thin device. + # + # "libdevmapper-event-lvm2thin.so" monitors the filling of + # pool and emits a warning through syslog when the use of + # the pool exceeds 80%. The warning is repeated when 85%, 90% and + # 95% of the pool is filled. + + thin_library = "@libdir@/device-mapper/libdevmapper-event-lvm2thin.so" + + # Full path of the dmeventd binary. + # + # executable = "@DMEVENTD_PATH@" +} diff --git a/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb b/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb new file mode 100644 index 00000000000..b6ae90240e5 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb @@ -0,0 +1,16 @@ +require lvm2.inc + +SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f" +SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964" + +DEPENDS += "autoconf-archive-native" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install() { + oe_runmake 'DESTDIR=${D}' -C libdm install +} + +RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-oe/recipes-support/lvm2/lvm2.inc index 42f6e3a43ef..289e07d8dff 100644 --- a/meta-oe/recipes-support/lvm2/lvm2.inc +++ b/meta-oe/recipes-support/lvm2/lvm2.inc @@ -1,52 +1,60 @@ +HOMEPAGE = "https://www.sourceware.org/lvm2/" SECTION = "utils" DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux." -DEPENDS = "udev" LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ +LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \ file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24" -INC_PR = "r4" +DEPENDS += "util-linux" -S = "${WORKDIR}/LVM2.${PV}" SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \ - file://0001-Replace-CPPFunction-with-rl_completion_func_t.patch \ - file://mlock-ignore-vectors-gate_vma.patch \ - file://lvm.conf" + file://lvm.conf \ + file://0001-implement-libc-specific-reopen_stream.patch \ + file://0002-Guard-use-of-mallinfo-with-__GLIBC__.patch \ + file://0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch \ + file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \ + file://0001-Avoid-bashisms-in-init-scripts.patch \ + file://0005-do-not-build-manual.patch \ + file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \ + " +S = "${WORKDIR}/LVM2.${PV}" -PACKAGECONFIG ??= "readline" +inherit autotools-brokensep pkgconfig systemd license + +LVM2_PACKAGECONFIG = "dmeventd lvmetad" +LVM2_PACKAGECONFIG_append_class-target = " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \ + ${@incompatible_license_contains('GPLv3', '', 'thin-provisioning-tools', d)} \ + udev \ +" + +# odirect is always enabled because there currently is a bug in +# lib/device/dev-io.c which prevents compiling without it. It is +# better to stick to configurations that were actually tested by +# upstream... +PACKAGECONFIG ??= "odirect ${LVM2_PACKAGECONFIG}" + +PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd" +PACKAGECONFIG[lvmetad] = "--enable-lvmetad,--disable-lvmetad" +PACKAGECONFIG[odirect] = "--enable-o_direct,--disable-o_direct" PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline" +PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux" +PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools" +PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev" # Unset user/group to unbreak install. EXTRA_OECONF = "--with-user= \ --with-group= \ - --disable-o_direct \ --enable-realtime \ --enable-applib \ --enable-cmdlib \ - --enable-udev_sync \ - --enable-udev_rules \ --enable-pkgconfig \ - --enable-dmeventd \ - --with-udev-prefix= \ --with-usrlibdir=${libdir} \ + --with-systemdsystemunitdir=${systemd_system_unitdir} \ + --disable-thin_check_needs_check \ + --with-thin-check=${sbindir}/thin_check \ + --with-thin-dump=${sbindir}/thin_dump \ + --with-thin-repair=${sbindir}/thin_repair \ + --with-thin-restore=${sbindir}/thin_restore \ " -PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}" - -PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux," - -inherit autotools pkgconfig - -do_install_append() { - # Install machine specific configuration file - install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf -} - -TARGET_CC_ARCH += "${LDFLAGS}" - -FILES_${PN} += "${libdir}/device-mapper/*.so ${base_libdir}/udev" -FILES_${PN}-dbg += "${libdir}/device-mapper/.debug" - -RDEPENDS_${PN} = "bash" - -CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf" diff --git a/meta-oe/recipes-support/lvm2/lvm2/0001-Replace-CPPFunction-with-rl_completion_func_t.patch b/meta-oe/recipes-support/lvm2/lvm2/0001-Replace-CPPFunction-with-rl_completion_func_t.patch deleted file mode 100644 index 98c21fdb37f..00000000000 --- a/meta-oe/recipes-support/lvm2/lvm2/0001-Replace-CPPFunction-with-rl_completion_func_t.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e2484e179c389b98366c8b66b451d9d2ba8f35e8 Mon Sep 17 00:00:00 2001 -From: Zhenhua Luo -Date: Tue, 25 Mar 2014 17:39:43 +0800 -Subject: [PATCH] Replace CPPFunction with rl_completion_func_t - -lvm2 depends on readline, CPPFunction has been replaced by rl_completion_func_t -in recent readline, - -Upstream-Status: Inappropriate [configuration] -The change depends on the build environment, it is required by OpenEmbedded env -due to readline upgrade. - -Signed-off-by: Zhenhua Luo ---- - tools/lvm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/lvm.c b/tools/lvm.c -index e002a76..5fa35d2 100644 ---- a/tools/lvm.c -+++ b/tools/lvm.c -@@ -186,7 +186,7 @@ int lvm_shell(struct cmd_context *cmd, struct cmdline_context *cmdline) - char *input = NULL, *args[MAX_ARGS], **argv; - - rl_readline_name = "lvm"; -- rl_attempted_completion_function = (CPPFunction *) _completion; -+ rl_attempted_completion_function = (rl_completion_func_t *) _completion; - - _read_history(cmd); - --- -1.9.1 - diff --git a/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch new file mode 100644 index 00000000000..e85818dbd45 --- /dev/null +++ b/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch @@ -0,0 +1,36 @@ +From 0a8e466fcf99622896e070c5133165e4278e8cfb Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 25 May 2017 05:27:11 -0400 +Subject: [PATCH] explicitly do not install libdm + +Already have package libdevmapper which split from lvm2, +explicitly do not do the installation here. + +Upstream-Status: Inappropriate [meta-oe specific] + +Signed-off-by: Hongxu Jia +--- + libdm/Makefile.in | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libdm/Makefile.in b/libdm/Makefile.in +index 3c9a4ce..45c91c6 100644 +--- a/libdm/Makefile.in ++++ b/libdm/Makefile.in +@@ -77,9 +77,11 @@ ifeq ("@PKGCONFIG@", "yes") + INSTALL_TYPE += install_pkgconfig + endif + +-install: $(INSTALL_TYPE) install_include ++install: ++ echo "Do not install device mappler in lvm2" + +-install_device-mapper: install ++install_device-mapper: ++ echo "Do not install device mappler in lvm2" + + install_include: $(srcdir)/libdevmapper.h + $(INSTALL_DATA) -D $< $(includedir)/$( ---- - lib/mm/memlock.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/mm/memlock.c b/lib/mm/memlock.c -index 8c631bf..a6b1955 100644 ---- a/lib/mm/memlock.c -+++ b/lib/mm/memlock.c -@@ -84,6 +84,7 @@ static int _default_priority; - static const char * const _ignore_maps[] = { - "[vdso]", - "[vsyscall]", -+ "[vectors]", - }; - - /* default blacklist for maps */ --- -1.7.9.5 - diff --git a/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb b/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb new file mode 100644 index 00000000000..84881e7442a --- /dev/null +++ b/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb @@ -0,0 +1,54 @@ +require lvm2.inc + +SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f" +SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964" + +SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch" + +DEPENDS += "autoconf-archive-native" + +CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe" + +do_install_append() { + # Install machine specific configuration file + install -d ${D}${sysconfdir}/lvm + install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf + sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + oe_runmake 'DESTDIR=${D}' install install_systemd_units + sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service + else + oe_runmake 'DESTDIR=${D}' install install_initscripts + mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d + rm -rf ${D}${sysconfdir}/rc.d + fi +} + +PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \ + blk-availability.service" +SYSTEMD_AUTO_ENABLE = "disable" + +TARGET_CC_ARCH += "${LDFLAGS}" + +FILES_${PN} += "${libdir}/device-mapper/*.so" +FILES_${PN}-scripts = " \ + ${sbindir}/blkdeactivate \ + ${sbindir}/fsadm \ + ${sbindir}/lvmconf \ + ${sbindir}/lvmdump \ +" +# Specified explicitly for the udev rules, just in case that it does not get picked +# up automatically: +FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d" +RDEPENDS_${PN}_append_class-target = " libdevmapper" + +RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash" +RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})" + +CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-support/lvm2/lvm2_2.02.97.bb b/meta-oe/recipes-support/lvm2/lvm2_2.02.97.bb deleted file mode 100644 index 2de17cfe34a..00000000000 --- a/meta-oe/recipes-support/lvm2/lvm2_2.02.97.bb +++ /dev/null @@ -1,6 +0,0 @@ -require lvm2.inc - -PR = "${INC_PR}.0" - -SRC_URI[md5sum] = "d18bd01334309db1c422b9bf6b181057" -SRC_URI[sha256sum] = "edda82012e8a9e1f0b00ba5a331468d3e0201992be14c0dbea71bf564a51fc2b" diff --git a/meta-oe/recipes-support/lzip/lzip_1.16.bb b/meta-oe/recipes-support/lzip/lzip_1.16.bb deleted file mode 100644 index af0b6ae8e6f..00000000000 --- a/meta-oe/recipes-support/lzip/lzip_1.16.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "Lossless data compressor based on the LZMA algorithm" -HOMEPAGE = "http://lzip.nongnu.org/lzip.html" -SECTION = "console/utils" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \ - file://decoder.cc;endline=16;md5=0809128ac32163252846e09a70c8b80b" - -SRC_URI = "${SAVANNAH_GNU_MIRROR}/lzip/lzip-${PV}.tar.gz" - -SRC_URI[md5sum] = "716a9876dc595ec52d4f3bda81e42471" -SRC_URI[sha256sum] = "128cc25baf92c8b69700831e6f984d954016318cc78edca87870d0c033112751" - -CONFIGUREOPTS = "\ - '--srcdir=${S}' \ - '--prefix=${prefix}' \ - '--exec-prefix=${exec_prefix}' \ - '--bindir=${bindir}' \ - '--datadir=${datadir}' \ - '--infodir=${infodir}' \ - '--sysconfdir=${sysconfdir}' \ - 'CXX=${CXX}' \ - 'CPPFLAGS=${CPPFLAGS}' \ - 'CXXFLAGS=${CXXFLAGS}' \ - 'LDFLAGS=${LDFLAGS}' \ -" -EXTRA_OEMAKE = "" - -B = "${S}/obj" -do_configure () { - ${S}/configure ${CONFIGUREOPTS} -} - -do_install () { - oe_runmake 'DESTDIR=${D}' install - # Info dir listing isn't interesting at this point so remove it if it exists. - if [ -e "${D}${infodir}/dir" ]; then - rm -f ${D}${infodir}/dir - fi -} - -BBCLASSEXTEND += "native nativesdk" diff --git a/meta-oe/recipes-support/mailcap/mailcap_2.1.43.bb b/meta-oe/recipes-support/mailcap/mailcap_2.1.43.bb deleted file mode 100644 index 95d7d1107ee..00000000000 --- a/meta-oe/recipes-support/mailcap/mailcap_2.1.43.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Helper application and MIME type associations for file types" -DESCRIPTION = "The mailcap file is used by the metamail program. Metamail reads the \ -mailcap file to determine how it should display non-text or multimedia \ -material. Basically, mailcap associates a particular type of file \ -with a particular program that a mail agent or other program can call \ -in order to handle the file. Mailcap should be installed to allow \ -certain programs to be able to handle non-text files. \ -\ -Also included in this package is the mime.types file which contains a \ -list of MIME types and their filename extension associations, used \ -by several applications e.g. to determine MIME types for filenames." - -SECTION = "System Environment/Base" - -SRC_URI = "https://git.fedorahosted.org/cgit/${PN}.git/snapshot/r2-1-43.tar.gz" -SRC_URI[md5sum] = "8fd185ffae710301de3bc297877a404b" -SRC_URI[sha256sum] = "a630892b5fe59eb9e3bef30c597de1c2b7f35243dea4b0c995fd482aa20c2d6b" -LICENSE = "PD & MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=100fcfb84512ccc03ffc7d89ac391305" -S = "${WORKDIR}/r2-1-43" -do_install() { - oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir} -} diff --git a/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb b/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb new file mode 100644 index 00000000000..114ce4607cf --- /dev/null +++ b/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb @@ -0,0 +1,26 @@ +SUMMARY = "Helper application and MIME type associations for file types" +HOMEPAGE = "https://pagure.io/mailcap" +DESCRIPTION = "The mailcap file is used by the metamail program. Metamail reads the \ +mailcap file to determine how it should display non-text or multimedia \ +material. Basically, mailcap associates a particular type of file \ +with a particular program that a mail agent or other program can call \ +in order to handle the file. Mailcap should be installed to allow \ +certain programs to be able to handle non-text files. \ +\ +Also included in this package is the mime.types file which contains a \ +list of MIME types and their filename extension associations, used \ +by several applications e.g. to determine MIME types for filenames." + +SECTION = "System Environment/Base" + +LICENSE = "PD & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=100fcfb84512ccc03ffc7d89ac391305" + +SRC_URI = "https://releases.pagure.org/${BPN}/${BP}.tar.xz" + +SRC_URI[md5sum] = "2c26e18e912a5cf00318fcf7f8f2d747" +SRC_URI[sha256sum] = "d7b023b237d6053bf05ff6786e0663c55c614efcc99cdf856120be13b5c29157" + +do_install() { + oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir} +} diff --git a/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch b/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch deleted file mode 100644 index acd9a57a57d..00000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 33554f9b3fd493c7e28617fd01466ffa87251f27 Mon Sep 17 00:00:00 2001 -From: Samuel Stirtzel -Date: Wed, 1 Aug 2012 13:21:51 +0200 -Subject: [PATCH] Fix MALIIT_INSTALL_PRF to allow the build with openembedded - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Samuel Stirtzel ---- - config.pri | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/config.pri b/config.pri -index b037b8c..43409f3 100644 ---- a/config.pri -+++ b/config.pri -@@ -161,9 +161,11 @@ contains(QT_MAJOR_VERSION, 4) { - QT_WIDGETS = gui widgets - } - --MALIIT_INSTALL_PRF = $$[QT_INSTALL_DATA]/mkspecs/features --local-install { -- MALIIT_INSTALL_PRF = $$replace(MALIIT_INSTALL_PRF, $$[QT_INSTALL_PREFIX], $$PREFIX) -+isEmpty(MALIIT_INSTALL_PRF) { -+ MALIIT_INSTALL_PRF = $$[QT_INSTALL_DATA]/mkspecs/features -+ local-install { -+ MALIIT_INSTALL_PRF = $$replace(MALIIT_INSTALL_PRF, $$[QT_INSTALL_PREFIX], $$PREFIX) -+ } - } - - defineTest(outputFile) { --- -1.7.9.5 - diff --git a/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch b/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch deleted file mode 100644 index 830e6deb4ed..00000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch +++ /dev/null @@ -1,34 +0,0 @@ -From fb6acbd2af9ed288c1c4f4200fc73d8d9955486a Mon Sep 17 00:00:00 2001 -From: Samuel Stirtzel -Date: Wed, 1 Aug 2012 13:33:10 +0200 -Subject: [PATCH] Fix QT_IM_PLUGIN_PATH to allow openembedded to build Maliit - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Samuel Stirtzel ---- - input-context/input-context.pri | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/input-context/input-context.pri b/input-context/input-context.pri -index d94e6a3..d460e70 100644 ---- a/input-context/input-context.pri -+++ b/input-context/input-context.pri -@@ -25,8 +25,10 @@ for(OPTION,$$list($$lower($$COV_OPTION))){ - - QMAKE_CLEAN += $$OBJECTS_DIR/*.gcno $$OBJECTS_DIR/*.gcda - --QT_IM_PLUGIN_PATH = $$[QT_INSTALL_PLUGINS]/inputmethods --QT_PREFIX = $$[QT_INSTALL_PREFIX] --local-install { -- QT_IM_PLUGIN_PATH = $$replace(QT_IM_PLUGIN_PATH, $$QT_PREFIX, $$PREFIX) -+isEmpty(QT_IM_PLUGIN_PATH) { -+ QT_IM_PLUGIN_PATH = $$[QT_INSTALL_PLUGINS]/inputmethods -+ QT_PREFIX = $$[QT_INSTALL_PREFIX] -+ local-install { -+ QT_IM_PLUGIN_PATH = $$replace(QT_IM_PLUGIN_PATH, $$QT_PREFIX, $$PREFIX) -+ } - } --- -1.7.9.5 - diff --git a/meta-oe/recipes-support/maliit/maliit-framework/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch b/meta-oe/recipes-support/maliit/maliit-framework/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch deleted file mode 100644 index c2291c6b7bd..00000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch +++ /dev/null @@ -1,23 +0,0 @@ -From cc33efdedbec9e9a55e9a0c6756516fd84d42e53 Mon Sep 17 00:00:00 2001 -From: Samuel Stirtzel -Date: Fri, 1 Mar 2013 11:31:41 +0100 -Subject: [PATCH] Link to libmaliit-1,0 in inputcontext plugin - -Signed-off-by: Samuel Stirtzel ---- - .../input-context-plugin/input-context-plugin.pro | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/input-context/input-context-plugin/input-context-plugin.pro b/input-context/input-context-plugin/input-context-plugin.pro -index eefbe93..296e2fa 100644 ---- a/input-context/input-context-plugin/input-context-plugin.pro -+++ b/input-context/input-context-plugin/input-context-plugin.pro -@@ -15,3 +15,5 @@ CONFIG += plugin - - INSTALLS += target - target.path += $$QT_IM_PLUGIN_PATH -+ -+LIBS += -L../../lib -l"maliit-1.0" --- -1.7.9.5 - diff --git a/meta-oe/recipes-support/maliit/maliit-framework/0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch b/meta-oe/recipes-support/maliit/maliit-framework/0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch deleted file mode 100644 index df4f1794e37..00000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 839e0933f09309a0374aa58cc58439c3a1f157b2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 14 May 2013 10:24:48 +0200 -Subject: [PATCH] ut_maliit_glib_settings: fix build for glib 2.36 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Inappropriate [code removed upstream] - -Signed-off-by: Andreas Müller ---- - .../ut_maliit_glib_settings.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/tests/ut_maliit_glib_settings/ut_maliit_glib_settings.c b/tests/ut_maliit_glib_settings/ut_maliit_glib_settings.c -index 476ba33..09b6261 100644 ---- a/tests/ut_maliit_glib_settings/ut_maliit_glib_settings.c -+++ b/tests/ut_maliit_glib_settings/ut_maliit_glib_settings.c -@@ -188,8 +188,9 @@ test_settings_manager_emits_disconnected(void) - int - main (int argc, char **argv) { - g_test_init(&argc, &argv, NULL); -+#if !GLIB_CHECK_VERSION (2, 36, 0) - g_type_init(); -- -+#endif - g_test_add_func("/ut_maliit_glib_settings/MaliitSettingsManager/preferred_description_locale/default", - test_preferred_description_locale_default); - g_test_add_func("/ut_maliit_glib_settings/MaliitSettingsManager/preferred_description_locale/set-get-roundtrip", --- -1.7.6.5 - diff --git a/meta-oe/recipes-support/maliit/maliit-framework/maliit-server.desktop b/meta-oe/recipes-support/maliit/maliit-framework/maliit-server.desktop deleted file mode 100644 index 24bdf9b5256..00000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework/maliit-server.desktop +++ /dev/null @@ -1,6 +0,0 @@ -[Desktop Entry] -Name=Maliit server -Exec=/usr/bin/maliit-server -Icon= -Type=Application -Categories=Utility; diff --git a/meta-oe/recipes-support/maliit/maliit-framework_git.bb b/meta-oe/recipes-support/maliit/maliit-framework_git.bb deleted file mode 100644 index 3eb7f30dfcb..00000000000 --- a/meta-oe/recipes-support/maliit/maliit-framework_git.bb +++ /dev/null @@ -1,101 +0,0 @@ -SUMMARY = "A virtual keyboard for touch-screen based user interfaces" -HOMEPAGE = "https://wiki.maliit.org/Main_Page" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=5c917f6ce94ceb8d8d5e16e2fca5b9ad" - -inherit autotools qt4x11 gtk-immodules-cache - -PNBLACKLIST[maliit-framework] ?= "BROKEN: Wasn't updated to work with B!=S, maybe incorrectly inherits autotools" - -DEPENDS = "libxcomposite dbus gtk+3 gtk+" - -SRC_URI = "git://github.com/maliit/framework.git;branch=master \ - file://0001-Fix-MALIIT_INSTALL_PRF-to-allow-the-build-with-opene.patch \ - file://0001-Fix-QT_IM_PLUGIN_PATH-to-allow-openembedded-to-build.patch \ - file://0001-Link-to-libmaliit-1-0-in-inputcontext-plugin.patch \ - file://0002-ut_maliit_glib_settings-fix-build-for-glib-2.36.patch \ - file://maliit-server.desktop \ -" - -SRCREV = "750842dec74a9b17dca91ef779c4fc5a43c4d9dc" -PV = "0.92.3+git${SRCPV}" -PR = "r1" - - -PACKAGES =+ "${PN}-gtk" -GTKIMMODULES_PACKAGES = "${PN}-gtk" - -RDEPENDS_${PN} = "qt4-plugin-inputmethod-imsw-multi libqtsvg4" - -RRECOMMENDS_${PN} = "maliit-plugins" - - -FILES_${PN} += "\ - ${libdir}/maliit/plugins-*/factories/libmaliit-plugins-quick-factory-*.so \ - ${libdir}/qt4/plugins/inputmethods/*.so \ - ${datadir}/applications/maliit-server.desktop \ -" - -FILES_${PN}-dbg += "\ - ${libdir}/maliit-framework-tests \ - ${libdir}/gtk-*/*/immodules/.debug \ - ${libdir}/maliit/plugins-*/factories/.debug \ - ${libdir}/qt4/plugins/.debug \ - ${libdir}/qt4/plugins/inputmethods/.debug \ -" - -FILES_${PN}-dev += "${datadir}/qt4" - -FILES_${PN}-gtk +="\ - ${bindir}/maliit-exampleapp-gtk* \ - \ - ${libdir}/gtk-*/*/immodules/libim-maliit.so\ -" - -EXTRA_QMAKEVARS_PRE = "\ - PREFIX=${prefix} \ - LIBDIR=${libdir} \ - QT_IM_PLUGIN_PATH=${libdir}/qt4/plugins/inputmethods \ - MALIIT_INSTALL_PRF=${datadir}/qt4/mkspecs/features \ - SCHEMADIR=${sysconfdir}/gconf/schemas \ - CONFIG+=disable-gconf \ - CONFIG+=disable-gtk-cache-update \ - CONFIG+=local-install \ - CONFIG+=nosdk \ -" - -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" - -do_install_append() { - #Fix absolute paths - sed -i -e "s|/usr|${STAGING_DIR_TARGET}${prefix}|" ${D}/${datadir}/qt4/mkspecs/features/maliit-framework.prf - sed -i -e "s|/usr|${STAGING_DIR_TARGET}${prefix}|" ${D}/${datadir}/qt4/mkspecs/features/maliit-plugins.prf - - install -d ${D}${datadir}/applications - install -m 644 ${WORKDIR}/maliit-server.desktop ${D}${datadir}/applications -} - -pkg_postinst_${PN} () { -#!/bin/sh -# should run online -if [ "x$D" != "x" ]; then - exit 1 -fi -echo "export QT_IM_MODULE=Maliit" >> /etc/xprofile -ln -s /usr/share/applications/maliit-server.desktop /etc/xdg/autostart/maliit-server.desktop -} - -pkg_postrm_${PN} () { -#!/bin/sh -# should run online -if [ "x$D" = "x" ]; then - exit 1 -fi -if [ -e "/etc/xprofile" ]; then - sed -i -e "g|export QT_IM_MODULE=Maliit|d" /etc/xprofile -fi -rm -f /etc/xdg/autostart/maliit-server.desktop -} - -S = "${WORKDIR}/git" diff --git a/meta-oe/recipes-support/maliit/maliit-plugins_git.bb b/meta-oe/recipes-support/maliit/maliit-plugins_git.bb deleted file mode 100644 index 3c040d87a75..00000000000 --- a/meta-oe/recipes-support/maliit/maliit-plugins_git.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Plugins for a virtual keyboard for touch-screen based user interfaces" -HOMEPAGE = "https://wiki.maliit.org/Main_Page" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f29b21caa8e460097bfad9c026a33621" - -inherit autotools qt4x11 - -PNBLACKLIST[maliit-plugins] ?= "BROKEN: depends on broken maliit-framework" - -DEPENDS = "maliit-framework" - -RDEPENDS_${PN} += "qt4-plugin-iconengine-svgicon qt4-plugin-imageformat-svg" - -SRC_URI = "git://github.com/maliit/plugins.git;branch=master" - -SRCREV = "0760e585df494b394df1b887e5138ffef19c481f" -PV = "0.92.3+git${SRCPV}" - -EXTRA_QMAKEVARS_PRE = "\ - PREFIX=${prefix} \ - LIBDIR=${libdir} \ - CONFIG+=nodoc \ -" - -FILES_${PN} += "\ - ${libdir}/maliit \ - ${datadir} \ -" - -FILES_${PN}-dbg += "${libdir}/maliit/plugins-*/.debug" - -S= "${WORKDIR}/git" - -EXTRA_OEMAKE += "INSTALL_ROOT=${D}" diff --git a/meta-oe/recipes-support/mcelog/mce-inject_git.bb b/meta-oe/recipes-support/mcelog/mce-inject_git.bb new file mode 100644 index 00000000000..f8761449194 --- /dev/null +++ b/meta-oe/recipes-support/mcelog/mce-inject_git.bb @@ -0,0 +1,20 @@ +SUMMARY = "Linux machine check injector tool" +DESCRIPTION = "mce-inject allows to inject machine check errors on the \ +software level into a running Linux kernel. This is intended for \ +validation of the kernel machine check handler." +SECTION = "System Environment/Base" + +SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git" + +SRCREV = "4cbe46321b4a81365ff3aafafe63967264dbfec5" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://README;beginline=30;md5=94c18755082a2da9c9cf97cba3ad47d6" + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' + +inherit autotools-brokensep + +EXTRA_OEMAKE = "destdir=${D}" diff --git a/meta-oe/recipes-support/mcelog/mcelog/run-ptest b/meta-oe/recipes-support/mcelog/mcelog/run-ptest new file mode 100644 index 00000000000..ba7a2c7683b --- /dev/null +++ b/meta-oe/recipes-support/mcelog/mcelog/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +make -C tests test diff --git a/meta-oe/recipes-support/mcelog/mcelog_1.09.bb b/meta-oe/recipes-support/mcelog/mcelog_1.09.bb deleted file mode 100644 index 34ff643a565..00000000000 --- a/meta-oe/recipes-support/mcelog/mcelog_1.09.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "mcelog daemon accounts memory and some other errors in various ways." -DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \ -and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \ -and should run on all Linux systems that need error handling." -HOMEPAGE = "http://mcelog.org/" -SECTION = "System Environment/Base" -DEPENDS += "bash" -SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git" -SRCREV = "0fc9f702232cb2d9969916f899c67c3e64deedda" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://README;md5=3eb76ca64fa07ad53ebb0ebb5b4c8ede" - -S = "${WORKDIR}/git" - -do_install() { - install -d ${D}/${sbindir} - install -m 0755 ${S}/mcelog ${D}/${sbindir} - install -d ${D}/${mandir}/man8 - install -m 0644 ${S}/mcelog.8 ${D}/${mandir}/man8/ - install -d ${D}/etc/cron.hourly - install -m 0755 ${S}/mcelog.cron ${D}/etc/cron.hourly/ -} - -COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' - -RDEPENDS_${PN} = "bash" diff --git a/meta-oe/recipes-support/mcelog/mcelog_1.49.bb b/meta-oe/recipes-support/mcelog/mcelog_1.49.bb new file mode 100644 index 00000000000..84633a76c99 --- /dev/null +++ b/meta-oe/recipes-support/mcelog/mcelog_1.49.bb @@ -0,0 +1,35 @@ +SUMMARY = "mcelog daemon accounts memory and some other errors in various ways." +DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \ +and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \ +and should run on all Linux systems that need error handling." +HOMEPAGE = "http://mcelog.org/" +SECTION = "System Environment/Base" + +SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \ + file://run-ptest \ +" + +SRCREV = "2cfdf29b2ef98ccd5ed42cdde8bbe437e0d6412f" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://README.md;md5=279840fabb191e6cd9150492d31b0e20" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep ptest + +COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' + +do_install_append() { + install -d ${D}${sysconfdir}/cron.hourly + install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/ + sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH} + cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH} + sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test +} + +RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject" diff --git a/meta-oe/recipes-support/mg/files/remove_ncurses_check.patch b/meta-oe/recipes-support/mg/files/remove_ncurses_check.patch deleted file mode 100644 index 16137da2b14..00000000000 --- a/meta-oe/recipes-support/mg/files/remove_ncurses_check.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -uwr mg-20110905/configure mg-20110905-changed/configure ---- mg-20110905/configure 2011-09-05 13:36:16.000000000 -0500 -+++ mg-20110905-changed/configure 2014-08-14 10:46:14.168715425 -0500 -@@ -163,32 +163,6 @@ - echo 'Fails.' - fi - -- --if [ ! -r /usr/include/term.h ]; then -- note 'term.h' -- if [ -r /usr/include/ncurses/term.h ]; then -- echo "Found in /usr/include/ncurses" -- extraflags="$extraflags -I/usr/include/ncurses" -- else -- for i in pkg local; do -- if [ -r /usr/$i/include/term.h ]; then -- echo "Found in /usr/$i/include" -- extralibs="$extralibs -L/usr/$i/lib" -- extraflags="$extraflags -I/usr/$i/include" -- break -- else -- false -- fi -- done || -- { -- echo 'Not found!' >&2 -- echo 'Do you have the ncurses devel package installed?' >&2 -- echo 'If you know where term.h is, please email the author!' >&2 -- exit 1 -- } -- fi --fi -- - note 'base and dirname' - if gcc_defines "__GLIBC__" || gcc_defines "__CYGWIN__" ; then - echo 'Not present, adding.' diff --git a/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch b/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch new file mode 100644 index 00000000000..13026793150 --- /dev/null +++ b/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch @@ -0,0 +1,39 @@ +From a370ccd9447752c555aeca04f64021efedde4db3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Apr 2017 17:16:19 -0700 +Subject: [PATCH] Undefine REGEX for musl based systems + +Signed-off-by: Khem Raj +--- + GNUmakefile | 1 - + Makefile | 2 +- + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/GNUmakefile b/GNUmakefile +index 7bf7dca..0e10030 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -41,7 +41,6 @@ endif + CC?= gcc + CFLAGS?= -O2 -pipe + CFLAGS+= -g -Wall +-CPPFLAGS= -DREGEX + CPPFLAGS+= -D_GNU_SOURCE + CPPFLAGS+= $(BSD_CPPFLAGS) -D__dead=__dead2 + LIBS= $(CURSES_LIBS) $(BSD_LIBS) +diff --git a/Makefile b/Makefile +index 94ce340..d516bbc 100644 +--- a/Makefile ++++ b/Makefile +@@ -10,7 +10,7 @@ DPADD+= ${LIBCURSES} ${LIBUTIL} + # REGEX -- create regular expression functions. + # STARTUPFILE -- look for and handle initialization file. + # +-CFLAGS+=-Wall -DREGEX ++CFLAGS+=-Wall + + SRCS= autoexec.c basic.c bell.c buffer.c cinfo.c dir.c display.c \ + echo.c extend.c file.c fileio.c funmap.c help.c kbd.c keymap.c \ +-- +2.12.2 + diff --git a/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch b/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch new file mode 100644 index 00000000000..551f1df1637 --- /dev/null +++ b/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch @@ -0,0 +1,25 @@ +From 51539bcd2ee9f765595c0be16eebc1daee112b27 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Apr 2017 16:52:59 -0700 +Subject: [PATCH 1/2] fileio: Include sys/param.h for MAXNAMLEN + +Signed-off-by: Khem Raj +--- + fileio.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/fileio.c b/fileio.c +index 48a67a2..9b69665 100644 +--- a/fileio.c ++++ b/fileio.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.12.2 + diff --git a/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch b/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch new file mode 100644 index 00000000000..907d67064a3 --- /dev/null +++ b/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch @@ -0,0 +1,28 @@ +From ce24a29cabb8f1774d262e120e5764a2afeb3825 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Apr 2017 16:53:49 -0700 +Subject: [PATCH 2/2] fileio: Define DEFFILEMODE if platform is missing + +Signed-off-by: Khem Raj +--- + fileio.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/fileio.c b/fileio.c +index 9b69665..a852fd2 100644 +--- a/fileio.c ++++ b/fileio.c +@@ -28,6 +28,10 @@ + #include "kbd.h" + #include "pathnames.h" + ++#if !defined(DEFFILEMODE) ++# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/ ++#endif ++ + static char *bkuplocation(const char *); + static int bkupleavetmp(const char *); + +-- +2.12.2 + diff --git a/meta-oe/recipes-support/mg/mg_20110905.bb b/meta-oe/recipes-support/mg/mg_20110905.bb deleted file mode 100644 index b9a4d33922e..00000000000 --- a/meta-oe/recipes-support/mg/mg_20110905.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "A portable version of the mg maintained by the OpenBSD team" -HOMEPAGE = "http://homepage.boetes.org/software/mg/" -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://version.c;md5=811e1b67a5cd60c12b218a2b7c1adbf2" -DEPENDS = "ncurses" -SECTION = "console/editors" - -SRC_URI = "http://homepage.boetes.org/software/mg/mg-${PV}.tar.gz \ - file://remove_ncurses_check.patch" - -SRC_URI[md5sum] = "2de35316fa8ebafe6003efaae70b723e" -SRC_URI[sha256sum] = "1cd37d7e6a3eecc890a5718c38b8f38495057ba93856762a756ccee2f9618229" - -do_configure () { - sed -i Makefile.in -e 's,^prefix=.*,prefix=${prefix},' - ./configure -} - -do_install () { - oe_runmake install DESTDIR=${D} -} diff --git a/meta-oe/recipes-support/mg/mg_20170401.bb b/meta-oe/recipes-support/mg/mg_20170401.bb new file mode 100644 index 00000000000..dad1d008bf8 --- /dev/null +++ b/meta-oe/recipes-support/mg/mg_20170401.bb @@ -0,0 +1,37 @@ +SUMMARY = "A portable version of the mg maintained by the OpenBSD team" +HOMEPAGE = "http://homepage.boetes.org/software/mg/" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://version.c;md5=1895eb37bf6bd79cdc5c89d8166fabfb" +DEPENDS = "ncurses libbsd" +SECTION = "console/editors" + +SRC_URI = "http://homepage.boetes.org/software/mg/mg-${PV}.tar.gz \ + file://0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch \ + file://0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch \ + " +SRC_URI_append_libc-musl = "\ + file://0001-Undefine-REGEX-for-musl-based-systems.patch \ + " +SRC_URI[md5sum] = "884388589fb38c2109ad9fed328be20a" +SRC_URI[sha256sum] = "0a3608b17c153960cb1d954ca3b62445a77c0c1a18aa5c8c58aba9f6b8d62aab" + +# CFLAGS isn't in EXTRA_OEMAKE, as the makefile picks it up via ?= +EXTRA_OEMAKE = "\ + 'CC=${CC}' \ + 'LDFLAGS=${LDFLAGS}' \ + \ + 'prefix=${prefix}' \ + 'bindir=${bindir}' \ + 'libdir=${libdir}' \ + 'includedir=${includedir}' \ + 'mandir=${mandir}' \ + 'PKG_CONFIG=pkg-config' \ +" + +CFLAGS += "-I${STAGING_INCDIR}/bsd" + +do_install () { + oe_runmake install DESTDIR=${D} +} + +inherit pkgconfig diff --git a/meta-oe/recipes-support/mime-support/mime-support_3.48.bb b/meta-oe/recipes-support/mime-support/mime-support_3.48.bb index 7f8b40a48be..d617b6620c7 100644 --- a/meta-oe/recipes-support/mime-support/mime-support_3.48.bb +++ b/meta-oe/recipes-support/mime-support/mime-support_3.48.bb @@ -8,11 +8,11 @@ RDEPENDS_${PN} = "perl" RRECOMMENDS_${PN} = "file" SRC_URI = "${DEBIAN_MIRROR}/main/m/mime-support/mime-support_${PV}-1.tar.gz" -S = "${WORKDIR}/${PN}" +S = "${WORKDIR}/${BPN}" FILES_${PN} += " ${libdir}/mime" -docdir_append = "/${PN}" +docdir_append = "/${BPN}" do_install () { install -d ${D}${sysconfdir} diff --git a/meta-oe/recipes-support/minini/minini_1.2.b.bb b/meta-oe/recipes-support/minini/minini_1.2.b.bb new file mode 100644 index 00000000000..4a73f12129f --- /dev/null +++ b/meta-oe/recipes-support/minini/minini_1.2.b.bb @@ -0,0 +1,39 @@ +SUMMARY = "A minimal INI file parser" +DESCRIPTION = "minIni is a programmer's library to read and write INI files in \ +embedded systems. minIni takes little resources, has a deterministic memory \ +footprint and can be configured for various kinds of file I/O libraries. minIni \ +provides functionality for reading, writing and deleting keys from an INI file, \ +all in 830 lines of (commented) source code (version 1.2) in C (the code also \ +compiles in C++ and comes with a wrapper class)." +HOMEPAGE = "https://code.google.com/p/minini/" + +# License is Apache 2.0 with an exception to allow object code built from +# unmodified original sources to be distributed more freely. See LICENSE +# file for details. + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=eb21481ad45c5578ae8c8d37b8c8d76d" + +SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/minini/minIni_12b.zip;subdir=${BP}" + +SRC_URI[md5sum] = "32740621098e3f0a321c7c23f4bcbc5d" +SRC_URI[sha256sum] = "b08839af74acb36061fb76e1123bf56711bc5cf7a08b32e189b0ad78a2e888e2" + +do_configure[noexec] = "1" + +do_compile() { + ${CC} ${CFLAGS} -fPIC -c minIni.c -o minIni.o + ${CC} ${LDFLAGS} -shared -Wl,-soname,libminini.so.0 minIni.o -o libminini.so.0.0 +} + +do_install () { + + install -d ${D}${libdir} + install -m 0644 libminini.so.0.0 ${D}${libdir}/ + ln -s libminini.so.0.0 ${D}${libdir}/libminini.so + ln -s libminini.so.0.0 ${D}${libdir}/libminini.so.0 + + install -d ${D}${includedir}/minini + install -m 0644 minIni.h ${D}${includedir}/minini/ + install -m 0644 minGlue-stdio.h ${D}${includedir}/minini/minGlue.h +} diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch new file mode 100644 index 00000000000..5da34480e7e --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch @@ -0,0 +1,36 @@ +From fbfceebce2121831904f2f7115252dd03b413a6d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 19 Sep 2017 18:52:53 -0700 +Subject: [PATCH] IntelRDFPMathLib20U1: Check for __DEFINED_wchar_t + +This is defined by musl if wchar_t is already defined + +avoids errors like + +src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h:46:15: error: typedef redefinition with different types + ('int' vs 'unsigned int') +typedef int wchar_t; + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h +index 2b3f76db86..cc80305775 100755 +--- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h ++++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h +@@ -42,7 +42,7 @@ + #include + + // Fix system header issue on Sun solaris and define required type by ourselves +-#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) ++#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) && !defined(__DEFINED_wchar_t) + typedef int wchar_t; + #endif + +-- +2.14.1 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch deleted file mode 100644 index 650389e16a0..00000000000 --- a/meta-oe/recipes-support/mongodb/mongodb/0001-Make-it-possible-to-disable-the-use-of-v8.patch +++ /dev/null @@ -1,50 +0,0 @@ -From f1bd00e7f54aad6479bc809c27d5cd3c2fb993eb Mon Sep 17 00:00:00 2001 -From: Michael Hudson-Doyle -Date: Fri, 20 Dec 2013 11:10:43 +1300 -Subject: [PATCH 1/5] Make it possible to disable the use of v8. - -Currently v8 is always built in, no matter what you pass to scons. - -This removes the (useless) --usev8 flag for scons and replaces it with a ---disable-scripting option instead. ---- - SConstruct | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/SConstruct b/SConstruct -index 3886d1b..6e0ef3b 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -225,7 +225,7 @@ add_option( "asio" , "Use Asynchronous IO (NOT READY YET)" , 0 , True ) - add_option( "ssl" , "Enable SSL" , 0 , True ) - - # library choices --add_option( "usev8" , "use v8 for javascript" , 0 , True ) -+add_option( "disable-scripting" , "do not build support for javascript" , 0 , True ) - add_option( "libc++", "use libc++ (experimental, requires clang)", 0, True ) - - # mongo feature options -@@ -442,7 +442,7 @@ static = has_option( "static" ) - - noshell = has_option( "noshell" ) - --usev8 = has_option( "usev8" ) -+disable_scripting = has_option( "disable-scripting" ) - - asio = has_option( "asio" ) - -@@ -600,7 +600,10 @@ if has_option( "durableDefaultOn" ): - if has_option( "durableDefaultOff" ): - env.Append( CPPDEFINES=[ "_DURABLEDEFAULTOFF" ] ) - --usev8 = True -+if disable_scripting or justClientLib: -+ usev8 = False -+else: -+ usev8 = True - - extraLibPlaces = [] - --- -1.9.0 - diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch new file mode 100644 index 00000000000..09d49d28cd3 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch @@ -0,0 +1,67 @@ +From 53368d3f4adc09dd84234a9af31771bcd8ca2757 Mon Sep 17 00:00:00 2001 +From: Sven Ebenfeld +Date: Fri, 15 Jan 2016 22:41:28 +0100 +Subject: [PATCH] Tell scons to use build settings from environment variables + +Signed-off-by: Sven Ebenfeld +--- + SConstruct | 8 ++++++-- + src/mongo/util/SConscript | 2 ++ + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 5082a4b..3370f70 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -507,6 +507,7 @@ def variable_arch_converter(val): + 'amd64': 'x86_64', + 'emt64': 'x86_64', + 'x86': 'i386', ++ 'aarch64': 'arm64', + } + val = val.lower() + +@@ -568,7 +569,8 @@ env_vars.Add('ARFLAGS', + converter=variable_shlex_converter) + + env_vars.Add('CC', +- help='Select the C compiler to use') ++ help='Select the C compiler to use', ++ default=os.getenv('CC')) + + env_vars.Add('CCFLAGS', + help='Sets flags for the C and C++ compiler', +@@ -588,7 +590,8 @@ env_vars.Add('CPPPATH', + converter=variable_shlex_converter) + + env_vars.Add('CXX', +- help='Select the C++ compiler to use') ++ help='Select the C++ compiler to use', ++ default=os.getenv('CXX')) + + env_vars.Add('CXXFLAGS', + help='Sets flags for the C++ compiler', +@@ -818,6 +821,7 @@ envDict = dict(BUILD_ROOT=buildDir, + ) + + env = Environment(variables=env_vars, **envDict) ++env.PrependENVPath('PATH', os.getenv('PATH')) + del envDict + + env.AddMethod(env_os_is_wrapper, 'TargetOSIs') +diff --git a/src/mongo/util/SConscript b/src/mongo/util/SConscript +index 6add602..8d05a62 100644 +--- a/src/mongo/util/SConscript ++++ b/src/mongo/util/SConscript +@@ -251,6 +251,8 @@ if get_option('allocator') == 'tcmalloc': + 'MONGO_HAVE_GPERFTOOLS_GET_THREAD_CACHE_SIZE' + ] + ) ++ if not use_system_version_of_library('valgrind'): ++ tcmspEnv.InjectThirdPartyIncludePaths('valgrind') + + tcmspEnv.Library( + target='tcmalloc_set_parameter', +-- +1.9.1 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch new file mode 100644 index 00000000000..f8c419d8a3a --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch @@ -0,0 +1,50 @@ +From 3eed8388b49d5d3cbc2db74fee1b017eb4b40d0a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Sep 2017 10:06:24 -0700 +Subject: [PATCH] Use __GLIBC__ to control use of gnu_get_libc_version + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + src/mongo/util/processinfo_linux.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp +index 910015215e..bf8c1ffd15 100644 +--- a/src/mongo/util/processinfo_linux.cpp ++++ b/src/mongo/util/processinfo_linux.cpp +@@ -40,7 +40,7 @@ + #include + #include + #include +-#ifdef __UCLIBC__ ++#ifndef __GLIBC__ + #include + #else + #include +@@ -451,11 +451,13 @@ double ProcessInfo::getSystemMemoryPressurePercentage() { + } + + void ProcessInfo::getExtraInfo(BSONObjBuilder& info) { ++#if defined(__GLIBC__) + LinuxProc p(_pid); + if (p._maj_flt <= std::numeric_limits::max()) + info.appendNumber("page_faults", static_cast(p._maj_flt)); + else + info.appendNumber("page_faults", static_cast(p._maj_flt)); ++#endif + } + + /** +@@ -491,7 +493,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() { + stringstream ss; + ss << "uClibc-" << __UCLIBC_MAJOR__ << "." << __UCLIBC_MINOR__ << "." << __UCLIBC_SUBLEVEL__; + bExtra.append("libcVersion", ss.str()); +-#else ++#elif defined(__GLIBC__) + bExtra.append("libcVersion", gnu_get_libc_version()); + #endif + if (!verSig.empty()) +-- +2.14.1 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch new file mode 100644 index 00000000000..c43beb4c125 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch @@ -0,0 +1,67 @@ +From a4951489d649c2b609cbb80f6cfb49fdcad8bd43 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Sep 2017 10:03:37 -0700 +Subject: [PATCH] Use long long instead of int64_t + +Fixes +error: call to member function 'appendNumber' is ambiguous +since this function expects long long as parameter and not int64_t + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + src/mongo/util/procparser.cpp | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/mongo/util/procparser.cpp b/src/mongo/util/procparser.cpp +index 36f2ae0254..2c164bcbf3 100644 +--- a/src/mongo/util/procparser.cpp ++++ b/src/mongo/util/procparser.cpp +@@ -260,7 +260,7 @@ Status parseProcStat(const std::vector& keys, + + StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin()); + +- uint64_t value; ++ long long value; + + if (!parseNumberFromString(stringValue, &value).isOK()) { + value = 0; +@@ -272,7 +272,7 @@ Status parseProcStat(const std::vector& keys, + } else { + StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin()); + +- uint64_t value; ++ long long value; + + if (!parseNumberFromString(stringValue, &value).isOK()) { + value = 0; +@@ -365,7 +365,7 @@ Status parseProcMemInfo(const std::vector& keys, + + StringData stringValue((*partIt).begin(), (*partIt).end()); + +- uint64_t value; ++ long long value; + + if (!parseNumberFromString(stringValue, &value).isOK()) { + value = 0; +@@ -426,7 +426,7 @@ Status parseProcDiskStats(const std::vector& disks, + StringData data, + BSONObjBuilder* builder) { + bool foundKeys = false; +- std::vector stats; ++ std::vector stats; + stats.reserve(kDiskFieldCount); + + using string_split_iterator = boost::split_iterator; +@@ -501,7 +501,7 @@ Status parseProcDiskStats(const std::vector& disks, + + StringData stringValue((*partIt).begin(), (*partIt).end()); + +- uint64_t value; ++ long long value; + + if (!parseNumberFromString(stringValue, &value).isOK()) { + value = 0; +-- +2.14.1 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch new file mode 100644 index 00000000000..0334d994e47 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch @@ -0,0 +1,26 @@ +From a4dfc92ff342e59596ab64267a8d4f22f173c23b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Sep 2017 12:40:41 -0700 +Subject: [PATCH 1/4] Use strerror_r only on glibc systems + +Signed-off-by: Khem Raj +--- + src/mongo/util/log.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mongo/util/log.cpp b/src/mongo/util/log.cpp +index 1957eb4791..ddf3908818 100644 +--- a/src/mongo/util/log.cpp ++++ b/src/mongo/util/log.cpp +@@ -101,7 +101,7 @@ string errnoWithDescription(int errNumber) { + char buf[kBuflen]; + char* msg{nullptr}; + +-#if defined(__GNUC__) && defined(_GNU_SOURCE) ++#if defined(__GNUC__) && defined(_GNU_SOURCE) && defined(__GLIBC__) + msg = strerror_r(errNumber, buf, kBuflen); + #elif defined(_WIN32) + +-- +2.14.1 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch b/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch new file mode 100644 index 00000000000..e517d53d10f --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch @@ -0,0 +1,72 @@ +From 5fdec9592285f5976345fbccb3d07fae1245ab53 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 2 Aug 2017 15:41:22 -0700 +Subject: [PATCH] mongo: Add using std::string + +This is needed with latest clang +Fixes +src/mongo/db/dbwebserver.cpp:206:23: error: use of undeclared identifier 'string'; did you mean 'String'? + static vector commands; + ^~~~~~ + String + +Signed-off-by: Khem Raj +--- + src/mongo/db/dbwebserver.cpp | 1 + + src/mongo/db/matcher/expression_leaf.cpp | 2 ++ + src/mongo/db/repl/master_slave.cpp | 1 + + src/mongo/util/net/miniwebserver.cpp | 1 + + 4 files changed, 5 insertions(+) + +diff --git a/src/mongo/db/dbwebserver.cpp b/src/mongo/db/dbwebserver.cpp +index b202e0500b..0255613524 100644 +--- a/src/mongo/db/dbwebserver.cpp ++++ b/src/mongo/db/dbwebserver.cpp +@@ -67,6 +67,7 @@ namespace mongo { + using std::map; + using std::stringstream; + using std::vector; ++using std::string; + + using namespace html; + +diff --git a/src/mongo/db/matcher/expression_leaf.cpp b/src/mongo/db/matcher/expression_leaf.cpp +index d562bff141..4d931985e2 100644 +--- a/src/mongo/db/matcher/expression_leaf.cpp ++++ b/src/mongo/db/matcher/expression_leaf.cpp +@@ -44,6 +44,8 @@ + #include "mongo/stdx/memory.h" + #include "mongo/util/mongoutils/str.h" + ++using std::string; ++ + namespace mongo { + + Status LeafMatchExpression::setPath(StringData path) { +diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp +index 05faad1259..ea25d7151b 100644 +--- a/src/mongo/db/repl/master_slave.cpp ++++ b/src/mongo/db/repl/master_slave.cpp +@@ -78,6 +78,7 @@ using std::endl; + using std::max; + using std::min; + using std::set; ++using std::string; + using std::stringstream; + using std::unique_ptr; + using std::vector; +diff --git a/src/mongo/util/net/miniwebserver.cpp b/src/mongo/util/net/miniwebserver.cpp +index 5f4165d42f..239720c349 100644 +--- a/src/mongo/util/net/miniwebserver.cpp ++++ b/src/mongo/util/net/miniwebserver.cpp +@@ -46,6 +46,7 @@ namespace mongo { + + using std::shared_ptr; + using std::stringstream; ++using std::string; + using std::vector; + + MiniWebServer::MiniWebServer(const string& name, const string& ip, int port, ServiceContext* ctx) +-- +2.13.3 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch new file mode 100644 index 00000000000..098306f5002 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch @@ -0,0 +1,35 @@ +From df7ef16afcc6ab55daa686e4f15c16e3d1280337 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Sep 2017 12:42:30 -0700 +Subject: [PATCH 2/4] Add a definition for the macro __ELF_NATIVE_CLASS + +It depends on the native arch's word size. + +Signed-off-by: Khem Raj +--- + src/mongo/util/stacktrace_posix.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/mongo/util/stacktrace_posix.cpp b/src/mongo/util/stacktrace_posix.cpp +index 53ab85f56f..7c458e7ef2 100644 +--- a/src/mongo/util/stacktrace_posix.cpp ++++ b/src/mongo/util/stacktrace_posix.cpp +@@ -37,6 +37,15 @@ + #include + #include + ++#if !defined(__GLIBC__) ++#if defined __x86_64__ && !defined __ILP32__ ++# define __WORDSIZE 64 ++#else ++# define __WORDSIZE 32 ++#endif ++#define __ELF_NATIVE_CLASS __WORDSIZE ++#endif ++ + #include "mongo/base/init.h" + #include "mongo/config.h" + #include "mongo/db/jsobj.h" +-- +2.14.1 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch b/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch deleted file mode 100644 index b4388d8f0d5..00000000000 --- a/meta-oe/recipes-support/mongodb/mongodb/0002-Fix-linking-when-scripting-is-disabled.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5b22f64a2e2237082d2733698b07147d27b09ad2 Mon Sep 17 00:00:00 2001 -From: Michael Hudson-Doyle -Date: Fri, 20 Dec 2013 12:28:27 +1300 -Subject: [PATCH 2/5] Fix linking when scripting is disabled. - ---- - src/mongo/scripting/engine_none.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/mongo/scripting/engine_none.cpp b/src/mongo/scripting/engine_none.cpp -index f5c7109..9ae9d57 100644 ---- a/src/mongo/scripting/engine_none.cpp -+++ b/src/mongo/scripting/engine_none.cpp -@@ -33,4 +33,8 @@ namespace mongo { - void ScriptEngine::setup() { - // noop - } -+ -+ std::string ScriptEngine::getInterpreterVersionString() { -+ return "none"; -+ } - } --- -1.9.0 - diff --git a/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch b/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch new file mode 100644 index 00000000000..95f9c1c1c6a --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch @@ -0,0 +1,28 @@ +From 5759878e5d278f11a1063e8fccd1e6b7b54caadf Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 2 Aug 2017 16:25:37 -0700 +Subject: [PATCH 2/2] d_state.cpp: Add missing dependenncy on + local_sharding_info + +Fixes +| src/mongo/s/d_state.cpp:81: error: undefined reference to 'mongo::enableLocalShardingInfo(mongo::ServiceContext*, std::function, std::allocator > const&)>)' + +Signed-off-by: Khem Raj +--- + src/mongo/s/SConscript | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/mongo/s/SConscript b/src/mongo/s/SConscript +index 71720be517..51bd199127 100644 +--- a/src/mongo/s/SConscript ++++ b/src/mongo/s/SConscript +@@ -317,5 +317,6 @@ env.Library( + "$BUILD_DIR/mongo/db/s/sharding", + "$BUILD_DIR/mongo/executor/network_interface_factory", + "$BUILD_DIR/mongo/s/client/shard_local", ++ "$BUILD_DIR/mongo/s/local_sharding_info", + ], + ) +-- +2.13.3 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch b/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch new file mode 100644 index 00000000000..1591f94c966 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch @@ -0,0 +1,39 @@ +From 458f80f482a201b427a1c92235804d0c3f98fd51 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Sep 2017 13:01:11 -0700 +Subject: [PATCH 3/4] Conditionalize glibc specific strerror_r + +Signed-off-by: Khem Raj +--- + .../asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp +index 4e7badb14a..0eeae884e2 100644 +--- a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp ++++ b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp +@@ -97,17 +97,14 @@ public: + #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__) + using namespace std; + return strerror(value); +-#elif defined(__MACH__) && defined(__APPLE__) \ +- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \ +- || defined(_AIX) || defined(__hpux) || defined(__osf__) \ +- || defined(__ANDROID__) ++#elif defined(__GLIBC__) && defined(_GNU_SOURCE) ++ char buf[256] = ""; ++ return strerror_r(value, buf, sizeof(buf)); ++#else + char buf[256] = ""; + using namespace std; + strerror_r(value, buf, sizeof(buf)); + return buf; +-#else +- char buf[256] = ""; +- return strerror_r(value, buf, sizeof(buf)); + #endif + #endif // defined(ASIO_WINDOWS) + } +-- +2.14.1 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch b/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch deleted file mode 100644 index 016ac3584be..00000000000 --- a/meta-oe/recipes-support/mongodb/mongodb/0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch +++ /dev/null @@ -1,64 +0,0 @@ -From eab4316597a8e9e7bbf845a054564c6daa4a95b7 Mon Sep 17 00:00:00 2001 -From: Michael Hudson-Doyle -Date: Wed, 22 Jan 2014 13:53:10 +1300 -Subject: [PATCH 3/5] * Do not build 'mongo' binary when scripting is disabled - * Do not build the jstests when scripting is disabled - ---- - SConstruct | 8 ++++++-- - src/mongo/SConscript | 4 +++- - 2 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/SConstruct b/SConstruct -index 6e0ef3b..c84a669 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -440,10 +440,13 @@ else: - - static = has_option( "static" ) - --noshell = has_option( "noshell" ) -- - disable_scripting = has_option( "disable-scripting" ) - -+if not disable_scripting: -+ noshell = has_option( "noshell" ) -+else: -+ noshell = True -+ - asio = has_option( "asio" ) - - usePCH = has_option( "usePCH" ) -@@ -1662,6 +1665,7 @@ Export("get_option") - Export("has_option use_system_version_of_library") - Export("mongoCodeVersion") - Export("usev8") -+Export("disable_scripting") - Export("darwin windows solaris linux freebsd nix") - Export('module_sconscripts') - Export("debugBuild optBuild") -diff --git a/src/mongo/SConscript b/src/mongo/SConscript -index 58f8406..b4379e7 100644 ---- a/src/mongo/SConscript -+++ b/src/mongo/SConscript -@@ -6,6 +6,7 @@ import os - import itertools - from buildscripts import utils - -+Import("disable_scripting") - Import("env") - Import("shellEnv") - Import("testEnv") -@@ -1043,7 +1044,8 @@ test = testEnv.Install( - [ f for f in Glob("dbtests/*.cpp") - if not str(f).endswith('framework.cpp') and - not str(f).endswith('framework_options.cpp') and -- not str(f).endswith('framework_options_init.cpp') ], -+ not str(f).endswith('framework_options_init.cpp') and -+ not (str(f).endswith('jstests.cpp') and disable_scripting)], - LIBDEPS = [ - "mutable_bson_test_utils", - "mongocommon", --- -1.9.0 - diff --git a/meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch b/meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch deleted file mode 100644 index ade7ec02ab8..00000000000 --- a/meta-oe/recipes-support/mongodb/mongodb/0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch +++ /dev/null @@ -1,50 +0,0 @@ -From d02f33d860f2d11f71e9056782a2e75603d6ec25 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 4 Feb 2014 10:56:35 +0100 -Subject: [PATCH 4/5] replace os.uname with os.getenv(OE_TARGET_ARCH) - -This fixes crosscompilation - -Signed-off-by: Koen Kooi -Upstream-Status: Inappropiate [OE specific] ---- - SConstruct | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/SConstruct b/SConstruct -index c84a669..05e2ea0 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -257,9 +257,9 @@ add_option( "pch" , "use precompiled headers to speed up the build (experimental - add_option( "distcc" , "use distcc for distributing builds" , 0 , False ) - - # debugging/profiling help --if os.sys.platform.startswith("linux") and (os.uname()[-1] == 'x86_64'): -+if os.sys.platform.startswith("linux") and (os.getenv("OE_TARGET_ARCH") == 'x86_64'): - defaultAllocator = 'tcmalloc' --elif (os.sys.platform == "darwin") and (os.uname()[-1] == 'x86_64'): -+elif (os.sys.platform == "darwin") and (os.getenv("OE_TARGET_ARCH") == 'x86_64'): - defaultAllocator = 'tcmalloc' - else: - defaultAllocator = 'system' -@@ -633,7 +633,7 @@ if has_option( "extralib" ): - # ---- other build setup ----- - - if "uname" in dir(os): -- processor = os.uname()[4] -+ processor = os.getenv("OE_TARGET_ARCH") - else: - processor = "i386" - -@@ -662,7 +662,7 @@ elif linux: - - env.Append( LIBS=['m'] ) - -- if os.uname()[4] == "x86_64" and not force32: -+ if os.getenv("OE_TARGET_ARCH") == "x86_64" and not force32: - linux64 = True - nixLibPrefix = "lib64" - env.Append( EXTRALIBPATH=["/usr/lib64" , "/lib64" ] ) --- -1.9.0 - diff --git a/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch b/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch new file mode 100644 index 00000000000..e871f2ba90c --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch @@ -0,0 +1,26 @@ +From a1c77702926eb8546ff96b00b5b994f7478dabae Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 2 Sep 2017 13:13:15 -0700 +Subject: [PATCH 4/4] wiredtiger: Disable strtouq on musl + +Signed-off-by: Khem Raj +--- + src/third_party/wiredtiger/build_linux/wiredtiger_config.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h +index 1122e1e319..fdfd48687b 100644 +--- a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h ++++ b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h +@@ -101,7 +101,7 @@ + #define HAVE_STRING_H 1 + + /* Define to 1 if you have the `strtouq' function. */ +-#define HAVE_STRTOUQ 1 ++/* #undef HAVE_STRTOUQ 1 */ + + /* Define to 1 if you have the `sync_file_range' function. */ + /* #undef HAVE_SYNC_FILE_RANGE */ +-- +2.14.1 + diff --git a/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch b/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch deleted file mode 100644 index 490d56485f3..00000000000 --- a/meta-oe/recipes-support/mongodb/mongodb/0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch +++ /dev/null @@ -1,127 +0,0 @@ -From e31f85e6915d4bf6ed76c5da71c235525fa4ecc3 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Mon, 14 Apr 2014 10:29:42 +0200 -Subject: [PATCH 5/5] GCC 4.7+ supports atomic ops for armv5 and up, but only - exports the functions for armv6 and up. This patch works around the linker - problems associated with that. - -Forward ported from http://pkgs.fedoraproject.org/cgit/mongodb.git/tree/mongodb-2.4.5-atomics.patch - -Upstream-status: pending ---- - src/mongo/bson/util/atomic_int.h | 26 ++++++++++++ - src/mongo/platform/atomic_intrinsics_gcc_generic.h | 47 ++++++++++++++++++++++ - 2 files changed, 73 insertions(+) - -diff --git a/src/mongo/bson/util/atomic_int.h b/src/mongo/bson/util/atomic_int.h -index 0b85363..ed02c23 100644 ---- a/src/mongo/bson/util/atomic_int.h -+++ b/src/mongo/bson/util/atomic_int.h -@@ -24,6 +24,10 @@ - - #include "mongo/platform/compiler.h" - -+#define GCC_VERSION (__GNUC__ * 10000 \ -+ + __GNUC_MINOR__ * 100 \ -+ + __GNUC_PATCHLEVEL__) -+ - namespace mongo { - - /** -@@ -72,6 +76,28 @@ namespace mongo { - InterlockedAdd((volatile long *)&x,by); - } - # endif -+#elif defined(GCC_VERSION) && GCC_VERSION >= 40700 -+// in GCC version >= 4.7.0 we can use the built-in atomic operations -+ -+ inline void AtomicUInt::set(unsigned newX) { -+ __atomic_store_n (&x, newX, __ATOMIC_SEQ_CST); -+ } -+ AtomicUInt AtomicUInt::operator++() { // ++prefix -+ return __atomic_add_fetch(&x, 1, __ATOMIC_SEQ_CST); -+ } -+ AtomicUInt AtomicUInt::operator++(int) { // postfix++ -+ return __atomic_fetch_add(&x, 1, __ATOMIC_SEQ_CST); -+ } -+ AtomicUInt AtomicUInt::operator--() { // --prefix -+ return __atomic_add_fetch(&x, -1, __ATOMIC_SEQ_CST); -+ } -+ AtomicUInt AtomicUInt::operator--(int) { // postfix-- -+ return __atomic_fetch_add(&x, -1, __ATOMIC_SEQ_CST); -+ } -+ void AtomicUInt::signedAdd(int by) { -+ __atomic_fetch_add(&x, by, __ATOMIC_SEQ_CST); -+ } -+ - #elif defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) - // this is in GCC >= 4.1 - inline void AtomicUInt::set(unsigned newX) { __sync_synchronize(); x = newX; } -diff --git a/src/mongo/platform/atomic_intrinsics_gcc_generic.h b/src/mongo/platform/atomic_intrinsics_gcc_generic.h -index 64a2499..b7cc176 100644 ---- a/src/mongo/platform/atomic_intrinsics_gcc_generic.h -+++ b/src/mongo/platform/atomic_intrinsics_gcc_generic.h -@@ -22,8 +22,53 @@ - - #include - -+#define GCC_VERSION (__GNUC__ * 10000 \ -+ + __GNUC_MINOR__ * 100 \ -+ + __GNUC_PATCHLEVEL__) -+ - namespace mongo { - -+// If GCC version >= 4.7.0, we can use the built-in atomic operations -+#if defined(GCC_VERSION) && GCC_VERSION >= 40700 -+ -+ /** -+ * Instantiation of AtomicIntrinsics<>. -+ */ -+ template -+ class AtomicIntrinsics { -+ public: -+ -+ static T compareAndSwap(volatile T* dest, T expected, T newValue) { -+ return __atomic_compare_exchange_n (dest, &expected, newValue, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); -+ } -+ -+ static T swap(volatile T* dest, T newValue) { -+ return __atomic_exchange_n (dest, newValue, __ATOMIC_SEQ_CST); -+ } -+ -+ static T load(volatile const T* value) { -+ return __atomic_load_n (value, __ATOMIC_SEQ_CST); -+ } -+ -+ static T loadRelaxed(volatile const T* value) { -+ return *value; -+ } -+ -+ static void store(volatile T* dest, T newValue) { -+ __atomic_store_n (dest, newValue, __ATOMIC_SEQ_CST); -+ } -+ -+ static T fetchAndAdd(volatile T* dest, T increment) { -+ return __atomic_fetch_add (dest, increment, __ATOMIC_SEQ_CST); -+ } -+ -+ private: -+ AtomicIntrinsics(); -+ ~AtomicIntrinsics(); -+ }; -+ -+#else // GCC version < 4.7, so we must use legacy (platform-specific) atomic operations -+ - /** - * Instantiation of AtomicIntrinsics<> for all word types T. - */ -@@ -67,4 +112,6 @@ namespace mongo { - ~AtomicIntrinsics(); - }; - -+#endif // GCC_VERSION >= 40700 -+ - } // namespace mongo --- -1.9.0 - diff --git a/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch b/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch new file mode 100644 index 00000000000..9046bb2f458 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch @@ -0,0 +1,43 @@ +Add alises for arm64 which is same as aarch64 + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +Index: git/SConstruct +=================================================================== +--- git.orig/SConstruct ++++ git/SConstruct +@@ -990,6 +990,7 @@ elif endian == "big": + processor_macros = { + 'arm' : { 'endian': 'little', 'defines': ('__arm__',) }, + 'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')}, ++ 'arm64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')}, + 'i386' : { 'endian': 'little', 'defines': ('__i386', '_M_IX86')}, + 'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)}, + 's390x' : { 'endian': 'big', 'defines': ('__s390x__',)}, +Index: git/src/third_party/IntelRDFPMathLib20U1/SConscript +=================================================================== +--- git.orig/src/third_party/IntelRDFPMathLib20U1/SConscript ++++ git/src/third_party/IntelRDFPMathLib20U1/SConscript +@@ -301,7 +301,7 @@ if processor == 'i386': + elif processor == 'arm': + cpp_defines['IA32'] = '1' + cpp_defines['ia32'] = '1' +-elif processor == "aarch64": ++elif processor == "aarch64" or processor == 'arm64': + cpp_defines['efi2'] = '1' + cpp_defines['EFI2'] = '1' + # Using 64 bit little endian +Index: git/src/third_party/wiredtiger/SConscript +=================================================================== +--- git.orig/src/third_party/wiredtiger/SConscript ++++ git/src/third_party/wiredtiger/SConscript +@@ -139,7 +139,7 @@ condition_map = { + 'POSIX_HOST' : not env.TargetOSIs('windows'), + 'WINDOWS_HOST' : env.TargetOSIs('windows'), + +- 'ARM64_HOST' : env['TARGET_ARCH'] == 'aarch64', ++ 'ARM64_HOST' : env['TARGET_ARCH'] in ('aarch64', 'arm64'), + 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le', + 'X86_HOST' : env['TARGET_ARCH'] == 'x86_64', + 'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x', diff --git a/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch b/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch new file mode 100644 index 00000000000..5c5c20ce348 --- /dev/null +++ b/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch @@ -0,0 +1,50 @@ +imported from debian + +Upstream-Status: Pending +Index: git/src/third_party/wiredtiger/SConscript +=================================================================== +--- git.orig/src/third_party/wiredtiger/SConscript ++++ git/src/third_party/wiredtiger/SConscript +@@ -169,7 +169,9 @@ if useSnappy: + # If not available at runtime, we fall back to software in some cases. + # + # On zSeries we may disable because SLES 11 kernel doe not support the instructions. +-if not (env['TARGET_ARCH'] == 's390x' and get_option("use-s390x-crc32") == "off"): ++# Debian: disable hardware-assisted crc32 on s390x and arm64, as at least the ++# buildd's do not support the instructions. ++if env['TARGET_ARCH'] not in ('s390x', 'arm64', 'aarch64'): + env.Append(CPPDEFINES=["HAVE_CRC32_HARDWARE"]) + + wtlib = env.Library( +Index: git/src/third_party/wiredtiger/dist/filelist +=================================================================== +--- git.orig/src/third_party/wiredtiger/dist/filelist ++++ git/src/third_party/wiredtiger/dist/filelist +@@ -54,7 +54,6 @@ src/checksum/power8/crc32_wrapper.c POWE + src/checksum/software/checksum.c + src/checksum/x86/crc32-x86.c X86_HOST + src/checksum/zseries/crc32-s390x.c ZSERIES_HOST +-src/checksum/zseries/crc32le-vx.sx ZSERIES_HOST + src/config/config.c + src/config/config_api.c + src/config/config_check.c +Index: git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c +=================================================================== +--- git.orig/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c ++++ git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c +@@ -78,6 +78,7 @@ unsigned int __wt_crc32c_le(unsigned int + return crc; \ + } + ++#if defined(HAVE_CRC32_HARDWARE) + /* Main CRC-32 functions */ + DEFINE_CRC32_VX(__wt_crc32c_le_vx, __wt_crc32c_le_vgfm_16, __wt_crc32c_le) + +@@ -90,6 +91,7 @@ __wt_checksum_hw(const void *chunk, size + { + return (~__wt_crc32c_le_vx(0xffffffff, chunk, len)); + } ++#endif + + #endif + diff --git a/meta-oe/recipes-support/mongodb/mongodb_git.bb b/meta-oe/recipes-support/mongodb/mongodb_git.bb index 879fc7c9ed2..0ff7d0b59fe 100644 --- a/meta-oe/recipes-support/mongodb/mongodb_git.bb +++ b/meta-oe/recipes-support/mongodb/mongodb_git.bb @@ -1,46 +1,77 @@ SUMMARY = "mongodb" -LICENSE = "AGPL-3.0 & Apache-2.0" +LICENSE = "AGPL-3.0 & Apache-2.0 & Zlib" LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788 \ file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" -DEPENDS = "openssl libpcre boost libpcap" -# Mongo uses tcmalloc on x86_64, which is provided by gperftools -DEPENDS_append_x86-64 = " gperftools" - -inherit scons - -# Target 'build/linux2/disable-scripting/ld_arm-oe-linux-gnueabi-g++/ssl/use-system-boost/use-system-pcre/use-system-tcmalloc/mongo/mongod' depends on the availability of a system provided library for 'boost_program_options', but no suitable library was found during configuration. -# | Target 'build/linux2/disable-scripting/ld_arm-oe-linux-gnueabi-g++/ssl/use-system-boost/use-system-pcre/use-system-tcmalloc/mongo/mongod' depends on the availability of a system provided library for 'boost_program_options', but no suitable library was found during configuration. -# | scons: *** [build/linux2/disable-scripting/ld_arm-oe-linux-gnueabi-g++/ssl/use-system-boost/use-system-pcre/use-system-tcmalloc/mongo/mongod] Error 1 -# | scons: building terminated because of errors. -# | ERROR: scons build execution failed. -PNBLACKLIST[mongodb] ?= "Fails to build with system boost" - -PV = "2.6.0+git${SRCPV}" -SRCREV = "be1905c24c7e5ea258e537fbf0d2c502c4fc6de2" -SRC_URI = "git://github.com/mongodb/mongo.git;branch=v2.6 \ - file://0001-Make-it-possible-to-disable-the-use-of-v8.patch \ - file://0002-Fix-linking-when-scripting-is-disabled.patch \ - file://0003-Do-not-build-mongo-binary-when-scripting-is-disabled.patch \ - file://0004-replace-os.uname-with-os.getenv-OE_TARGET_ARCH.patch \ - file://0005-GCC-4.7-supports-atomic-ops-for-armv5-and-up-but-onl.patch \ - " +DEPENDS = "openssl libpcre libpcap zlib python boost" +inherit scons dos2unix siteinfo + +PV = "3.4.6+git${SRCPV}" +SRCREV = "c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5" +SRC_URI = "git://github.com/mongodb/mongo.git;branch=v3.4 \ + file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \ + file://0001-mongo-Add-using-std-string.patch \ + file://0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch \ + file://0001-Use-long-long-instead-of-int64_t.patch \ + file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \ + file://0001-Use-strerror_r-only-on-glibc-systems.patch \ + file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \ + file://0003-Conditionalize-glibc-specific-strerror_r.patch \ + file://arm64-support.patch \ + file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \ + file://disable-hw-crc32-on-arm64-s390x.patch \ + " +SRC_URI_append_libc-musl ="\ + file://0004-wiredtiger-Disable-strtouq-on-musl.patch \ + " S = "${WORKDIR}/git" -export OE_TARGET_ARCH="${TARGET_ARCH}" +# Wiredtiger supports only 64-bit platforms +PACKAGECONFIG_x86-64 ??= "tcmalloc wiredtiger" +PACKAGECONFIG_aarch64 ??= "tcmalloc wiredtiger" +PACKAGECONFIG ??= "tcmalloc" +# gperftools compilation fails for arm below v7 because of missing support of +# dmb operation. So we use system-allocator instead of tcmalloc +PACKAGECONFIG_remove_armv6 = "tcmalloc" +PACKAGECONFIG_remove_libc-musl = "tcmalloc" + +#std::current_exception is undefined for arm < v6 +COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*" +COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*" +COMPATIBLE_MACHINE_armv7a = "(!.*armv7a).*" +COMPATIBLE_MACHINE_armv7ve = "(!.*armv7ve).*" +COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*" +COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*" + +PACKAGECONFIG[tcmalloc] = "--use-system-tcmalloc,--allocator=system,gperftools," +PACKAGECONFIG[wiredtiger] = "--wiredtiger=on,--wiredtiger=off,," EXTRA_OESCONS = "--prefix=${D}${prefix} \ - --propagate-shell-environment \ - --cc-use-shell-environment \ - --cxx-use-shell-environment \ - --ld='${TARGET_PREFIX}g++' \ + LIBPATH=${STAGING_LIBDIR} \ + LINKFLAGS='${LDFLAGS}' \ + CXXFLAGS='${CXXFLAGS}' \ + TARGET_ARCH=${TARGET_ARCH} \ --ssl \ - --use-system-pcre \ - --use-system-boost \ - --use-system-tcmalloc \ - --disable-scripting \ + --disable-warnings-as-errors \ + --use-system-pcre \ + --use-system-zlib \ + --js-engine=none \ --nostrip \ + --endian=${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \ + ${PACKAGECONFIG_CONFARGS} \ mongod mongos" +do_configure_prepend() { + # tests use hex floats, not supported in plain C++ + sed -e 's|-std=c++11|-std=gnu++11|g' -i ${S}/SConstruct +} +scons_do_compile() { + ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} || \ + die "scons build execution failed." +} +scons_do_install() { + ${STAGING_BINDIR_NATIVE}/scons install ${EXTRA_OESCONS}|| \ + die "scons install execution failed." +} diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch b/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch new file mode 100644 index 00000000000..46dd8e23b40 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch @@ -0,0 +1,29 @@ +From 330028a5a904a0da3788141030e614569dc5aaa7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 23:28:12 -0700 +Subject: [PATCH] kpartx: include limits.h for PATH_MAX + +lopart.c:76:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'INT8_MAX'? + char path[PATH_MAX]; + ^~~~~~~~ + +Signed-off-by: Khem Raj +--- + kpartx/lopart.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/kpartx/lopart.c b/kpartx/lopart.c +index 7005445..5efe5dc 100644 +--- a/kpartx/lopart.c ++++ b/kpartx/lopart.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.13.3 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch b/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch new file mode 100644 index 00000000000..acb42695434 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch @@ -0,0 +1,107 @@ +From 5ab50e0cb888e553a2635bbbf81eea3cdeffee60 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Wed, 12 Apr 2017 09:07:51 -0500 +Subject: [PATCH 01/14] multipath: attempt at common multipath.rules + +This is a proposal to try and bring the Redhat and SuSE multipath.rules +closer. There are a couple of changes that I'd like some input on. + +The big change is moving the kpartx call into the multipath rules. Half +of the current kpartx.rules file is about creating symlinks for multiple +types of dm devices. The other half auto-creates kpartx devices on top +of multipath devices. Since it is only creating kpartx devices on top of +multipath devices, I've moved the these rules into multipath.rules, or +rather, I've replaced them with the redhat rules in multipath.rules. The +biggest difference is the kpartx isn't run on every reload. It works +with the 11-dm-mpath.rules code to not run kpartx on multipathd +generated reloads or when there aren't any working paths. It does +remember if it didn't get to run kpartx when it was supposed to (because +there were no valid paths or the device was suspended) and will make +sure to run it on the next possible uevent. + +The other change is the redhat multipath rules remove the partition +device nodes for devices claimed by multipath. The udev rule will only +do this one time (both to keep from running partx on every event, and so +that if users manually reread the partition table, we don't keep +removing them when clearly they are wanted). Redhat does this because we +had multiple customer issues where they were using the scsi partitions +instead of the kpartx devices. Obviously, with setting the partition +devices to not ready and clearing their fs_type, this isn't essential, +but it has helped make customers do the right thing. + +Signed-off-by: Benjamin Marzinski +--- + kpartx/kpartx.rules | 8 -------- + multipath/multipath.rules | 27 ++++++++++++++++++++++++--- + 2 files changed, 24 insertions(+), 11 deletions(-) + +diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules +index a958791..906e320 100644 +--- a/kpartx/kpartx.rules ++++ b/kpartx/kpartx.rules +@@ -34,12 +34,4 @@ ENV{ID_FS_LABEL_ENC}=="?*", IMPORT{db}="ID_FS_LABEL_ENC" + ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", \ + SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" + +-# Create dm tables for partitions +-ENV{DM_ACTION}=="PATH_FAILED|PATH_REINSTATED", GOTO="kpartx_end" +-ENV{DM_NR_VALID_PATHS}=="0", GOTO="kpartx_end" +-ENV{ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1" +-ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="kpartx_end" +-ENV{DM_STATE}!="SUSPENDED", ENV{DM_UUID}=="mpath-*", \ +- RUN+="/sbin/kpartx -un -p -part /dev/$name" +- + LABEL="kpartx_end" +diff --git a/multipath/multipath.rules b/multipath/multipath.rules +index 86defc0..616a04c 100644 +--- a/multipath/multipath.rules ++++ b/multipath/multipath.rules +@@ -1,13 +1,13 @@ + # Set DM_MULTIPATH_DEVICE_PATH if the device should be handled by multipath + SUBSYSTEM!="block", GOTO="end_mpath" + ACTION!="add|change", GOTO="end_mpath" +-KERNEL!="sd*|dasd*", GOTO="end_mpath" +- ++KERNEL!="sd*|dasd*|rbd*|dm-*", GOTO="end_mpath" + IMPORT{cmdline}="nompath" + ENV{nompath}=="?*", GOTO="end_mpath" + IMPORT{cmdline}="multipath" + ENV{multipath}=="off", GOTO="end_mpath" + ++KERNEL=="dm-*", GOTO="check_kpartx" + ENV{DEVTYPE}!="partition", GOTO="test_dev" + IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH" + ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{ID_FS_TYPE}="none", \ +@@ -21,7 +21,28 @@ TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin" + + ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \ + PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -u %k", \ +- ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="none", \ ++ ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="mpath_member", \ + ENV{SYSTEMD_READY}="0" + ++ENV{DM_MULTIPATH_DEVICE_PATH}!="1", GOTO="end_mpath" ++ ++IMPORT{db}="DM_MULTIPATH_WIPE_PARTS" ++ENV{DM_MULTIPATH_WIPE_PARTS}!="1", ENV{DM_MULTIPATH_WIPE_PARTS}="1", \ ++ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}" ++GOTO="end_mpath" ++ ++LABEL="check_kpartx" ++ ++IMPORT{db}="DM_MULTIPATH_NEED_KPARTX" ++ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1" ++ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath" ++ACTION!="change", GOTO="end_mpath" ++ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath" ++ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1" ++ENV{DM_SUSPENDED}=="1", GOTO="end_mpath" ++ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath" ++ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath" ++RUN+="/sbin/kpartx -un -p -part /dev/$name" ++ENV{DM_MULTIPATH_NEED_KPARTX}="" ++ + LABEL="end_mpath" +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch b/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch new file mode 100644 index 00000000000..e63d2eb33f9 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch @@ -0,0 +1,110 @@ +From 158255383c02d3fb81c82fb9ec6fd36fb234f68e Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 13 Apr 2017 07:22:23 -0500 +Subject: [PATCH 02/14] RH: fixup udev rules for redhat + +The multipath rules need to run after scsi_id is run. This means moving +them after 60-persistent-storage.rules for redhat. Also, we don't +currently set up all the symlinks that SuSE does. If we want them, they +should be done in the device-mapper package, since they are for all +device-mapper devices. Redhat also uses a different naming scheme for +partitions than SuSE. + +Signed-off-by: Benjamin Marzinski +--- + Makefile.inc | 2 +- + kpartx/Makefile | 14 +++++++------- + multipath/Makefile | 4 ++-- + multipath/multipath.rules | 3 ++- + 4 files changed, 12 insertions(+), 11 deletions(-) + +diff --git a/Makefile.inc b/Makefile.inc +index 1815f9a..2591fa9 100644 +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -47,7 +47,7 @@ endif + + prefix = + exec_prefix = $(prefix) +-bindir = $(exec_prefix)/sbin ++bindir = $(exec_prefix)/usr/sbin + libudevdir = $(prefix)/$(SYSTEMDPATH)/udev + udevrulesdir = $(libudevdir)/rules.d + multipathdir = $(TOPDIR)/libmultipath +diff --git a/kpartx/Makefile b/kpartx/Makefile +index 7b75032..bfa6fe8 100644 +--- a/kpartx/Makefile ++++ b/kpartx/Makefile +@@ -26,19 +26,19 @@ $(EXEC): $(OBJS) + install: $(EXEC) $(EXEC).8 + $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir) +- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir) +- $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir) +- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d +- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules ++# $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir) ++# $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir) ++# $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d ++# $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules + $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir) + $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir) + + uninstall: + $(RM) $(DESTDIR)$(bindir)/$(EXEC) + $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz +- $(RM) $(DESTDIR)$(libudevdir)/kpartx_id +- $(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules +- $(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules ++# $(RM) $(DESTDIR)$(libudevdir)/kpartx_id ++# $(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules ++# $(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules + + clean: + $(RM) core *.o $(EXEC) *.gz +diff --git a/multipath/Makefile b/multipath/Makefile +index c85314e..1e9ee4b 100644 +--- a/multipath/Makefile ++++ b/multipath/Makefile +@@ -24,7 +24,7 @@ install: + $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/ + $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir) + $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir) +- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules ++ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules + $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir) + $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir) + $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir) +@@ -33,7 +33,7 @@ install: + uninstall: + $(RM) $(DESTDIR)$(bindir)/$(EXEC) + $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules +- $(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules ++ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules + $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz + $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz + +diff --git a/multipath/multipath.rules b/multipath/multipath.rules +index 616a04c..4d78b98 100644 +--- a/multipath/multipath.rules ++++ b/multipath/multipath.rules +@@ -33,6 +33,7 @@ GOTO="end_mpath" + + LABEL="check_kpartx" + ++ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10" + IMPORT{db}="DM_MULTIPATH_NEED_KPARTX" + ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1" + ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath" +@@ -42,7 +43,7 @@ ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1" + ENV{DM_SUSPENDED}=="1", GOTO="end_mpath" + ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath" + ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath" +-RUN+="/sbin/kpartx -un -p -part /dev/$name" ++RUN+="/sbin/kpartx -un /dev/$name" + ENV{DM_MULTIPATH_NEED_KPARTX}="" + + LABEL="end_mpath" +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch new file mode 100644 index 00000000000..684e959d66e --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch @@ -0,0 +1,70 @@ +From 69a67c2ed09ae51b53de402966a9f7a4cc737715 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Wed, 2 Jul 2014 12:49:53 -0500 +Subject: [PATCH 03/14] RH: Remove the property blacklist exception builtin + +Multipath set the default property blacklist exceptions to +(ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal +devices. These devices may never have multiple paths, but it is nice +to be able to set multipath up on them all the same. This patch simply +removes the default, and makes it so that if no property +blacklist_exception is given, then devices aren't failed for not matching +it. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/blacklist.c | 15 ++++++--------- + multipath/multipath.conf.5 | 4 ---- + 2 files changed, 6 insertions(+), 13 deletions(-) + +diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c +index ee396e2..19d4697 100644 +--- a/libmultipath/blacklist.c ++++ b/libmultipath/blacklist.c +@@ -181,12 +181,6 @@ setup_default_blist (struct config * conf) + if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT)) + return 1; + +- str = STRDUP("(SCSI_IDENT_|ID_WWN)"); +- if (!str) +- return 1; +- if (store_ble(conf->elist_property, str, ORIGIN_DEFAULT)) +- return 1; +- + vector_foreach_slot (conf->hwtable, hwe, i) { + if (hwe->bl_product) { + if (_blacklist_device(conf->blist_device, hwe->vendor, +@@ -390,9 +384,12 @@ filter_property(struct config * conf, struct udev_device * udev) + * This is the inverse of the 'normal' matching; + * the environment variable _has_ to match. + */ +- log_filter(devname, NULL, NULL, NULL, NULL, +- MATCH_PROPERTY_BLIST_MISSING); +- return MATCH_PROPERTY_BLIST_MISSING; ++ if (VECTOR_SIZE(conf->elist_property)) { ++ log_filter(devname, NULL, NULL, NULL, NULL, ++ MATCH_PROPERTY_BLIST_MISSING); ++ return MATCH_PROPERTY_BLIST_MISSING; ++ } ++ return 0; + } + + void +diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5 +index f04ff19..fbbbb27 100644 +--- a/multipath/multipath.conf.5 ++++ b/multipath/multipath.conf.5 +@@ -1014,10 +1014,6 @@ The \fIWorld Wide Identification\fR of a device. + .TP + .B property + Regular expression of the udev property to be whitelisted. +-.RS +-.TP +-The default is: \fB(SCSI_IDENT_|ID_WWN)\fR +-.RE + .TP + .B device + Subsection for the device description. This subsection recognizes the +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch b/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch new file mode 100644 index 00000000000..87a6d3fb652 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch @@ -0,0 +1,108 @@ +From b2b504fc1959c7a3f0a843c3c204e8e193b675b7 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Wed, 15 Oct 2014 10:39:30 -0500 +Subject: [PATCH 04/14] RH: don't start without a config file + +If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist +all devices when running multipath. A completely blank configuration file +is almost never what users want. Also, people may have the multipath +packages installed but don't want to use them. This patch provides a +simple way to disable multipath. Simply removing or renaming +/etc/multipath.conf will keep multipath from doing anything. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/config.c | 17 +++++++++++++++++ + libmultipath/config.h | 1 + + multipath/multipath.rules | 1 + + multipathd/multipathd.8 | 2 ++ + multipathd/multipathd.service | 1 + + 5 files changed, 22 insertions(+) + +diff --git a/libmultipath/config.c b/libmultipath/config.c +index bb6619b..aae69b8 100644 +--- a/libmultipath/config.c ++++ b/libmultipath/config.c +@@ -25,6 +25,7 @@ + #include "prio.h" + #include "devmapper.h" + #include "mpath_cmd.h" ++#include "version.h" + + static int + hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2) +@@ -667,6 +668,22 @@ load_config (char * file) + factorize_hwtable(conf->hwtable, builtin_hwtable_size); + } + ++ } else { ++ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices."); ++ condlog(0, "A default multipath.conf file is located at"); ++ condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE)); ++ if (conf->blist_devnode == NULL) { ++ conf->blist_devnode = vector_alloc(); ++ if (!conf->blist_devnode) { ++ condlog(0, "cannot allocate blacklist\n"); ++ goto out; ++ } ++ } ++ if (store_ble(conf->blist_devnode, strdup(".*"), ++ ORIGIN_NO_CONFIG)) { ++ condlog(0, "cannot store default no-config blacklist\n"); ++ goto out; ++ } + } + + conf->processed_main_config = 1; +diff --git a/libmultipath/config.h b/libmultipath/config.h +index ffc69b5..614331c 100644 +--- a/libmultipath/config.h ++++ b/libmultipath/config.h +@@ -7,6 +7,7 @@ + + #define ORIGIN_DEFAULT 0 + #define ORIGIN_CONFIG 1 ++#define ORIGIN_NO_CONFIG 2 + + /* + * In kernel, fast_io_fail == 0 means immediate failure on rport delete. +diff --git a/multipath/multipath.rules b/multipath/multipath.rules +index 4d78b98..5753766 100644 +--- a/multipath/multipath.rules ++++ b/multipath/multipath.rules +@@ -6,6 +6,7 @@ IMPORT{cmdline}="nompath" + ENV{nompath}=="?*", GOTO="end_mpath" + IMPORT{cmdline}="multipath" + ENV{multipath}=="off", GOTO="end_mpath" ++TEST!="/etc/multipath.conf", GOTO="end_mpath" + + KERNEL=="dm-*", GOTO="check_kpartx" + ENV{DEVTYPE}!="partition", GOTO="test_dev" +diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8 +index 4c765af..c1499a5 100644 +--- a/multipathd/multipathd.8 ++++ b/multipathd/multipathd.8 +@@ -39,6 +39,8 @@ map regains its maximum performance and redundancy. + This daemon executes the external \fBmultipath\fR tool when events occur. + In turn, the multipath tool signals the multipathd daemon when it is done with + devmap reconfiguration, so that it can refresh its failed path list. ++ ++In this Linux distribution, multipathd does not run unless a /etc/multipath.conffile exists + . + . + .\" ---------------------------------------------------------------------------- +diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service +index fd66cf6..fafd088 100644 +--- a/multipathd/multipathd.service ++++ b/multipathd/multipathd.service +@@ -4,6 +4,7 @@ Wants=systemd-udev-trigger.service systemd-udev-settle.service + Before=iscsi.service iscsid.service lvm2-lvmetad.service lvm2-activation-early.service + Before=local-fs-pre.target blk-availability.service + After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service ++ConditionPathExists=/etc/multipath.conf + DefaultDependencies=no + Conflicts=shutdown.target + ConditionKernelCommandLine=!nompath +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch b/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch new file mode 100644 index 00000000000..acef41023b4 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch @@ -0,0 +1,648 @@ +From de44504fe7f7802cd474efd92ac15b5a8857db1f Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 16 Oct 2014 15:49:01 -0500 +Subject: [PATCH 05/14] RH: add mpathconf + +mpathconf is a program (largely based on lvmcomf) to help users +configure /etc/multipath.conf and enable or disable multipathing. It +has a couple of built-in options that can be set directly from the +command line. But, mostly it is used to get a multipath.conf file +with the OS defaults, and to enable and disable multipathing via +a single command. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/config.c | 1 + + multipath/Makefile | 5 + + multipath/mpathconf | 464 ++++++++++++++++++++++++++++++++++++++++++++++++++ + multipath/mpathconf.8 | 101 +++++++++++ + 4 files changed, 571 insertions(+) + create mode 100644 multipath/mpathconf + create mode 100644 multipath/mpathconf.8 + +diff --git a/libmultipath/config.c b/libmultipath/config.c +index aae69b8..c485748 100644 +--- a/libmultipath/config.c ++++ b/libmultipath/config.c +@@ -672,6 +672,7 @@ load_config (char * file) + condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices."); + condlog(0, "A default multipath.conf file is located at"); + condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE)); ++ condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf"); + if (conf->blist_devnode == NULL) { + conf->blist_devnode = vector_alloc(); + if (!conf->blist_devnode) { +diff --git a/multipath/Makefile b/multipath/Makefile +index 1e9ee4b..3d4d459 100644 +--- a/multipath/Makefile ++++ b/multipath/Makefile +@@ -18,10 +18,12 @@ $(EXEC): $(OBJS) + $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS) $(LIBDEPS) + $(GZIP) $(EXEC).8 > $(EXEC).8.gz + $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz ++ $(GZIP) mpathconf.8 > mpathconf.8.gz + + install: + $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/ ++ $(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/ + $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir) + $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir) + $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules +@@ -29,13 +31,16 @@ install: + $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir) + $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir) + $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir) ++ $(INSTALL_PROGRAM) -m 644 mpathconf.8.gz $(DESTDIR)$(man8dir) + + uninstall: + $(RM) $(DESTDIR)$(bindir)/$(EXEC) + $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules + $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules ++ $(RM) $(DESTDIR)$(bindir)/mpathconf + $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz + $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz ++ $(RM) $(DESTDIR)$(man8dir)/mpathconf.8.gz + + clean: + $(RM) core *.o $(EXEC) *.gz +diff --git a/multipath/mpathconf b/multipath/mpathconf +new file mode 100644 +index 0000000..e839134 +--- /dev/null ++++ b/multipath/mpathconf +@@ -0,0 +1,464 @@ ++#!/bin/bash ++# ++# Copyright (C) 2010 Red Hat, Inc. All rights reserved. ++# ++# This file is part of the device-mapper-multipath package. ++# ++# This copyrighted material is made available to anyone wishing to use, ++# modify, copy, or redistribute it subject to the terms and conditions ++# of the GNU General Public License v.2. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software Foundation, ++# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ ++# ++# Simple editting of /etc/multipath.conf ++# This program was largely ripped off from lvmconf ++# ++ ++unset ENABLE FIND FRIENDLY MODULE MULTIPATHD HAVE_DISABLE HAVE_WWID_DISABLE HAVE_FIND HAVE_BLACKLIST HAVE_EXCEPTIONS HAVE_DEFAULTS HAVE_FRIENDLY HAVE_MULTIPATHD HAVE_MODULE HAVE_OUTFILE SHOW_STATUS CHANGED_CONFIG WWID_LIST ++ ++DEFAULT_CONFIG="# device-mapper-multipath configuration file ++ ++# For a complete list of the default configuration values, run either: ++# # multipath -t ++# or ++# # multipathd show config ++ ++# For a list of configuration options with descriptions, see the ++# multipath.conf man page. ++ ++defaults { ++ user_friendly_names yes ++ find_multipaths yes ++} ++ ++blacklist_exceptions { ++ property \"(SCSI_IDENT_|ID_WWN)\" ++}" ++ ++CONFIGFILE="/etc/multipath.conf" ++OUTPUTFILE="/etc/multipath.conf" ++MULTIPATHDIR="/etc/multipath" ++TMPFILE="/etc/multipath/.multipath.conf.tmp" ++WWIDS=0 ++ ++function usage ++{ ++ echo "usage: $0 " ++ echo "" ++ echo "Commands:" ++ echo "Enable: --enable " ++ echo "Disable: --disable" ++ echo "Only allow certain wwids (instead of enable): --allow " ++ echo "Set user_friendly_names (Default y): --user_friendly_names " ++ echo "Set find_multipaths (Default y): --find_multipaths " ++ echo "Load the dm-multipath modules on enable (Default y): --with_module " ++ echo "start/stop/reload multipathd (Default n): --with_multipathd " ++ echo "select output file (Default /etc/multipath.conf): --outfile " ++ echo "" ++} ++ ++function add_wwid ++{ ++ INDEX=0 ++ while [ "$INDEX" -lt "$WWIDS" ] ; do ++ if [ "$1" = "${WWID_LIST[$INDEX]}" ] ; then ++ return ++ fi ++ ((INDEX++)) ++ done ++ WWID_LIST[$WWIDS]="$1" ++ ((WWIDS++)) ++} ++ ++function get_dm_deps ++{ ++ shift 3 ++ while [ -n "$1" -a -n "$2" ]; do ++ MAJOR=$(echo $1 | tr -d '(,') ++ MINOR=$(echo $2 | tr -d ')') ++ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null` ++ if [ -n "$UUID" ] ; then ++ set_dm_wwid $UUID ++ fi ++ shift 2 ++ done ++} ++ ++function set_dm_wwid ++{ ++ if [[ "$1" =~ ^part[[:digit:]]+-mpath- ]] ; then ++ add_wwid "${1##part*-mpath-}" ++ elif [[ "$1" =~ ^mpath- ]] ; then ++ add_wwid "${1##mpath-}" ++ else ++ get_dm_deps `dmsetup deps -u $1` ++ fi ++} ++ ++function set_wwid ++{ ++ UUID="" ++ if [[ "$1" =~ ^[[:digit:]]+:[[:digit:]]+$ ]] ; then ++ MAJOR=${1%%:*} ++ MINOR=${1##*:} ++ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null` ++ else ++ UUID=`dmsetup info -c --noheadings -o uuid $1 2> /dev/null` ++ fi ++ if [ -n "$UUID" ] ; then ++ set_dm_wwid $UUID ++ else ++ add_wwid "$1" ++ fi ++} ++ ++function parse_args ++{ ++ while [ -n "$1" ]; do ++ case $1 in ++ --enable) ++ ENABLE=1 ++ shift ++ ;; ++ --disable) ++ ENABLE=0 ++ shift ++ ;; ++ --allow) ++ ENABLE=2 ++ if [ -n "$2" ]; then ++ set_wwid $2 ++ shift 2 ++ else ++ usage ++ exit 1 ++ fi ++ ;; ++ --user_friendly_names) ++ if [ -n "$2" ]; then ++ FRIENDLY=$2 ++ shift 2 ++ else ++ usage ++ exit 1 ++ fi ++ ;; ++ --find_multipaths) ++ if [ -n "$2" ]; then ++ FIND=$2 ++ shift 2 ++ else ++ usage ++ exit 1 ++ fi ++ ;; ++ --with_module) ++ if [ -n "$2" ]; then ++ MODULE=$2 ++ shift 2 ++ else ++ usage ++ exit 1 ++ fi ++ ;; ++ --with_multipathd) ++ if [ -n "$2" ]; then ++ MULTIPATHD=$2 ++ shift 2 ++ else ++ usage ++ exit 1 ++ fi ++ ;; ++ --outfile) ++ if [ -n "$2" ]; then ++ OUTPUTFILE=$2 ++ HAVE_OUTFILE=1 ++ shift 2 ++ else ++ usage ++ exit 1 ++ fi ++ ;; ++ *) ++ usage ++ exit ++ esac ++ done ++} ++ ++function validate_args ++{ ++ if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" -o -n "$MODULE" ]; then ++ echo "ignoring extra parameters on disable" ++ FRIENDLY="" ++ FIND="" ++ MODULE="" ++ fi ++ if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then ++ echo "--user_friendly_names must be either 'y' or 'n'" ++ exit 1 ++ fi ++ if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then ++ echo "--find_multipaths must be either 'y' or 'n'" ++ exit 1 ++ fi ++ if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then ++ SHOW_STATUS=1 ++ fi ++ if [ -n "$MODULE" ] && [ "$MODULE" != "y" -a "$MODULE" != "n" ]; then ++ echo "--with_module must be either 'y' or 'n'" ++ exit 1 ++ fi ++ if [ -n "$MULTIPATHD" ] && [ "$MULTIPATHD" != "y" -a "$MULTIPATHD" != "n" ]; then ++ echo "--with_multipathd must be either 'y' or 'n'" ++ exit 1 ++ fi ++ if [ "$ENABLE" = 2 -a -z "$HAVE_OUTFILE" ]; then ++ echo "Because --allow makes changes that cannot be automatically reversed," ++ echo "you must set --outfile when you set --allow" ++ exit 1 ++ fi ++} ++ ++function add_blacklist_exceptions ++{ ++ INDEX=0 ++ while [ "$INDEX" -lt "$WWIDS" ] ; do ++ sed -i '/^blacklist_exceptions[[:space:]]*{/ a\ ++ wwid '"\"${WWID_LIST[$INDEX]}\""' ++' $TMPFILE ++ ((INDEX++)) ++ done ++} ++ ++umask 0077 ++ ++parse_args "$@" ++ ++validate_args ++ ++if [ ! -d "$MULTIPATHDIR" ]; then ++ echo "/etc/multipath/ does not exist. failing" ++ exit 1 ++fi ++ ++rm $TMPFILE 2> /dev/null ++echo "$DEFAULT_CONFIG" > $TMPFILE ++if [ -f "$CONFIGFILE" ]; then ++ cp $CONFIGFILE $TMPFILE ++fi ++ ++if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then ++ HAVE_BLACKLIST=1 ++fi ++ ++if grep -q "^blacklist_exceptions[[:space:]]*{" $TMPFILE ; then ++ HAVE_EXCEPTIONS=1 ++fi ++ ++if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then ++ HAVE_DEFAULTS=1 ++fi ++ ++if [ -z "$MODULE" -o "$MODULE" = "y" ]; then ++ if lsmod | grep -q "dm_multipath" ; then ++ HAVE_MODULE=1 ++ else ++ HAVE_MODULE=0 ++ fi ++fi ++ ++if [ "$MULTIPATHD" = "y" ]; then ++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then ++ HAVE_MULTIPATHD=1 ++ else ++ HAVE_MULTIPATHD=0 ++ fi ++fi ++ ++if [ "$HAVE_BLACKLIST" = "1" ]; then ++ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then ++ HAVE_DISABLE=1 ++ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"" ; then ++ HAVE_DISABLE=0 ++ fi ++fi ++ ++if [ "$HAVE_BLACKLIST" = "1" ]; then ++ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*wwid \"\.\?\*\"" ; then ++ HAVE_WWID_DISABLE=1 ++ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"" ; then ++ HAVE_WWID_DISABLE=0 ++ fi ++fi ++ ++if [ "$HAVE_DEFAULTS" = "1" ]; then ++ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then ++ HAVE_FIND=1 ++ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then ++ HAVE_FIND=0 ++ fi ++ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then ++ HAVE_FRIENDLY=1 ++ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then ++ HAVE_FRIENDLY=0 ++ fi ++fi ++ ++if [ -n "$SHOW_STATUS" ]; then ++ if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then ++ echo "multipath is enabled" ++ else ++ echo "multipath is disabled" ++ fi ++ if [ -z "$HAVE_FIND" -o "$HAVE_FIND" = 0 ]; then ++ echo "find_multipaths is disabled" ++ else ++ echo "find_multipaths is enabled" ++ fi ++ if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then ++ echo "user_friendly_names is disabled" ++ else ++ echo "user_friendly_names is enabled" ++ fi ++ if [ -n "$HAVE_MODULE" ]; then ++ if [ "$HAVE_MODULE" = 1 ]; then ++ echo "dm_multipath module is loaded" ++ else ++ echo "dm_multipath module is not loaded" ++ fi ++ fi ++ if [ -z "$HAVE_MULTIPATHD" ]; then ++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then ++ HAVE_MULTIPATHD=1 ++ else ++ HAVE_MULTIPATHD=0 ++ fi ++ fi ++ if [ "$HAVE_MULTIPATHD" = 1 ]; then ++ echo "multipathd is running" ++ else ++ echo "multipathd is not running" ++ fi ++ exit 0 ++fi ++ ++if [ -z "$HAVE_BLACKLIST" ]; then ++ cat >> $TMPFILE <<- _EOF_ ++ ++blacklist { ++} ++_EOF_ ++fi ++ ++if [ -z "$HAVE_DEFAULTS" ]; then ++ cat >> $TMPFILE <<- _EOF_ ++ ++defaults { ++} ++_EOF_ ++fi ++ ++if [ "$ENABLE" = 2 ]; then ++ if [ "$HAVE_DISABLE" = 1 ]; then ++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE ++ fi ++ if [ -z "$HAVE_WWID_DISABLE" ]; then ++ sed -i '/^blacklist[[:space:]]*{/ a\ ++ wwid ".*" ++' $TMPFILE ++ elif [ "$HAVE_WWID_DISABLE" = 0 ]; then ++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"/ wwid ".*"/' $TMPFILE ++ fi ++ if [ "$HAVE_EXCEPTIONS" = 1 ]; then ++ sed -i '/^blacklist_exceptions[[:space:]]*{/,/^}/ {/^[[:space:]]*wwid/ d}' $TMPFILE ++ else ++ cat >> $TMPFILE <<- _EOF_ ++ ++blacklist_exceptions { ++} ++_EOF_ ++ fi ++ add_blacklist_exceptions ++elif [ "$ENABLE" = 1 ]; then ++ if [ "$HAVE_DISABLE" = 1 ]; then ++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE ++ fi ++elif [ "$ENABLE" = 0 ]; then ++ if [ -z "$HAVE_DISABLE" ]; then ++ sed -i '/^blacklist[[:space:]]*{/ a\ ++ devnode ".*" ++' $TMPFILE ++ elif [ "$HAVE_DISABLE" = 0 ]; then ++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"/ devnode ".*"/' $TMPFILE ++ fi ++fi ++ ++if [ "$FIND" = "n" ]; then ++ if [ "$HAVE_FIND" = 1 ]; then ++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/ find_multipaths no/' $TMPFILE ++ CHANGED_CONFIG=1 ++ fi ++elif [ "$FIND" = "y" ]; then ++ if [ -z "$HAVE_FIND" ]; then ++ sed -i '/^defaults[[:space:]]*{/ a\ ++ find_multipaths yes ++' $TMPFILE ++ CHANGED_CONFIG=1 ++ elif [ "$HAVE_FIND" = 0 ]; then ++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/ find_multipaths yes/' $TMPFILE ++ CHANGED_CONFIG=1 ++ fi ++fi ++ ++if [ "$FRIENDLY" = "n" ]; then ++ if [ "$HAVE_FRIENDLY" = 1 ]; then ++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/ user_friendly_names no/' $TMPFILE ++ CHANGED_CONFIG=1 ++ fi ++elif [ "$FRIENDLY" = "y" ]; then ++ if [ -z "$HAVE_FRIENDLY" ]; then ++ sed -i '/^defaults[[:space:]]*{/ a\ ++ user_friendly_names yes ++' $TMPFILE ++ CHANGED_CONFIG=1 ++ elif [ "$HAVE_FRIENDLY" = 0 ]; then ++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/ user_friendly_names yes/' $TMPFILE ++ CHANGED_CONFIG=1 ++ fi ++fi ++ ++if [ -f "$OUTPUTFILE" ]; then ++ cp $OUTPUTFILE $OUTPUTFILE.old ++ if [ $? != 0 ]; then ++ echo "failed to backup old config file, $OUTPUTFILE not updated" ++ exit 1 ++ fi ++fi ++ ++cp $TMPFILE $OUTPUTFILE ++if [ $? != 0 ]; then ++ echo "failed to copy new config file into place, check $OUTPUTFILE is still OK" ++ exit 1 ++fi ++ ++rm -f $TMPFILE ++ ++if [ "$ENABLE" = 1 ]; then ++ if [ "$HAVE_MODULE" = 0 ]; then ++ modprobe dm_multipath ++ fi ++ if [ "$HAVE_MULTIPATHD" = 0 ]; then ++ systemctl start multipathd.service ++ fi ++elif [ "$ENABLE" = 0 ]; then ++ if [ "$HAVE_MULTIPATHD" = 1 ]; then ++ systemctl stop multipathd.service ++ fi ++elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then ++ systemctl reload multipathd.service ++fi +diff --git a/multipath/mpathconf.8 b/multipath/mpathconf.8 +new file mode 100644 +index 0000000..4cd3267 +--- /dev/null ++++ b/multipath/mpathconf.8 +@@ -0,0 +1,101 @@ ++.TH MPATHCONF 8 "June 2010" "" "Linux Administrator's Manual" ++.SH NAME ++mpathconf - A tool for configuring device-mapper-multipath ++.SH SYNOPSIS ++.B mpathconf ++.RB [\| commands \|] ++.RB [\| options \|] ++.SH DESCRIPTION ++.B mpathconf ++is a utility that creates or modifies ++.B /etc/multipath.conf. ++It can enable or disable multipathing and configure some common options. ++.B mpathconf ++can also load the ++.B dm_multipath ++module, start and stop the ++.B multipathd ++daemon, and configure the ++.B multipathd ++service to start automatically or not. If ++.B mpathconf ++is called with no commands, it will display the current configuration. ++ ++The default options for mpathconf are ++.B --with_module ++The ++.B --with_multipathd ++option is not set by default. Enabling multipathing will load the ++.B dm_multipath ++module but it will not immediately start it. This is so ++that users can manually edit their config file if necessary, before starting ++.B multipathd. ++ ++If ++.B /etc/multipath.conf ++already exists, mpathconf will edit it. If it does not exist, mpathconf will ++create a default file with ++.B user_friendly_names ++and ++.B find_multipaths ++set. To disable these, use the ++.B --user_friendly_names n ++and ++.B --find_multipaths n ++options ++.SH COMMANDS ++.TP ++.B --enable ++Removes any line that blacklists all device nodes from the ++.B /etc/multipath.conf ++blacklist section. ++.TP ++.B --disable ++Adds a line that blacklists all device nodes to the ++.B /etc/multipath.conf ++blacklist section. If no blacklist section exists, it will create one. ++.TP ++.B --user_friendly_name \fP { \fBy\fP | \fBn\fP } ++If set to \fBy\fP, this adds the line ++.B user_friendly_names yes ++to the ++.B /etc/multipath.conf ++defaults section. If set to \fBn\fP, this removes the line, if present. This ++command can be used along with any other command. ++.TP ++.B --find_multipaths\fP { \fBy\fP | \fBn\fP } ++If set to \fBy\fP, this adds the line ++.B find_multipaths yes ++to the ++.B /etc/multipath.conf ++defaults section. If set to \fBn\fP, this removes the line, if present. This ++command can be used aldong with any other command. ++.SH OPTIONS ++.TP ++.B --with_module\fP { \fBy\fP | \fBn\fP } ++If set to \fBy\fP, this runs ++.B modprobe dm_multipath ++to install the multipath modules. This option only works with the ++.B --enable ++command. This option is set to \fBy\fP by default. ++.TP ++.B --with_multipathd { \fBy\fP | \fBn\fP } ++If set to \fBy\fP, this runs ++.B service multipathd start ++to start the multipathd daemon on \fB--enable\fP, ++.B service multipathd stop ++to stop the multipathd daemon on \fB--disable\fP, and ++.B service multipathd reload ++to reconfigure multipathd on \fB--user_frindly_names\fP and ++\fB--find_multipaths\fP. ++This option is set to \fBn\fP by default. ++.SH FILES ++.BR /etc/multipath.conf ++.SH "SEE ALSO" ++.BR multipath.conf (5), ++.BR modprobe (8), ++.BR multipath (8), ++.BR multipathd (8), ++.BR service (8), ++.SH AUTHOR ++Benjamin Marzinski +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch new file mode 100644 index 00000000000..dc291b81287 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch @@ -0,0 +1,166 @@ +From 15179c830521d8f37f9254ebc6bbf150a409f956 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Fri, 17 Oct 2014 11:20:34 -0500 +Subject: [PATCH 06/14] RH: add wwids from kernel cmdline mpath.wwids with -A + +This patch adds another option to multipath, "-A", which reads +/proc/cmdline for mpath.wwid= options, and adds any wwids it finds +to /etc/multipath/wwids. While this isn't usually important during +normal operation, since these wwids should already be added, it can be +helpful during installation, to make sure that multipath can claim +devices as its own, before LVM or something else makes use of them. The +patch also execs "/sbin/multipath -A" before running multipathd in +multipathd.service + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/wwids.c | 44 +++++++++++++++++++++++++++++++++++++++++++ + libmultipath/wwids.h | 1 + + multipath/main.c | 10 ++++++++-- + multipath/multipath.8 | 5 ++++- + multipathd/multipathd.service | 1 + + 5 files changed, 58 insertions(+), 3 deletions(-) + +diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c +index bc70a27..88bb72b 100644 +--- a/libmultipath/wwids.c ++++ b/libmultipath/wwids.c +@@ -321,3 +321,47 @@ remember_wwid(char *wwid) + condlog(4, "wwid %s already in wwids file", wwid); + return 0; + } ++ ++int remember_cmdline_wwid(void) ++{ ++ FILE *f = NULL; ++ char buf[LINE_MAX], *next, *ptr; ++ int ret = 0; ++ ++ f = fopen("/proc/cmdline", "re"); ++ if (!f) { ++ condlog(0, "can't open /proc/cmdline : %s", strerror(errno)); ++ return -1; ++ } ++ ++ if (!fgets(buf, sizeof(buf), f)) { ++ if (ferror(f)) ++ condlog(0, "read of /proc/cmdline failed : %s", ++ strerror(errno)); ++ else ++ condlog(0, "couldn't read /proc/cmdline"); ++ fclose(f); ++ return -1; ++ } ++ fclose(f); ++ next = buf; ++ while((ptr = strstr(next, "mpath.wwid="))) { ++ ptr += 11; ++ next = strpbrk(ptr, " \t\n"); ++ if (next) { ++ *next = '\0'; ++ next++; ++ } ++ if (strlen(ptr)) { ++ if (remember_wwid(ptr) != 0) ++ ret = -1; ++ } ++ else { ++ condlog(0, "empty mpath.wwid kernel command line option"); ++ ret = -1; ++ } ++ if (!next) ++ break; ++ } ++ return ret; ++} +diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h +index 9527012..b665232 100644 +--- a/libmultipath/wwids.h ++++ b/libmultipath/wwids.h +@@ -17,5 +17,6 @@ int remember_wwid(char *wwid); + int check_wwids_file(char *wwid, int write_wwid); + int remove_wwid(char *wwid); + int replace_wwids(vector mp); ++int remember_cmdline_wwid(void); + + #endif /* _WWIDS_H */ +diff --git a/multipath/main.c b/multipath/main.c +index 4174d43..72585b0 100644 +--- a/multipath/main.c ++++ b/multipath/main.c +@@ -102,7 +102,7 @@ usage (char * progname) + { + fprintf (stderr, VERSION_STRING); + fprintf (stderr, "Usage:\n"); +- fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); ++ fprintf (stderr, " %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); + fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname); + fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname); + fprintf (stderr, " %s -t\n", progname); +@@ -116,6 +116,8 @@ usage (char * progname) + " -f flush a multipath device map\n" + " -F flush all multipath device maps\n" + " -a add a device wwid to the wwids file\n" ++ " -A add devices from kernel command line mpath.wwids\n" ++ " parameters to wwids file\n" + " -c check if a device should be a path in a multipath device\n" + " -q allow queue_if_no_path when multipathd is not running\n" + " -d dry run, do not create or update devmaps\n" +@@ -522,7 +524,7 @@ main (int argc, char *argv[]) + exit(1); + multipath_conf = conf; + conf->retrigger_tries = 0; +- while ((arg = getopt(argc, argv, ":adchl::FfM:v:p:b:BrR:itquwW")) != EOF ) { ++ while ((arg = getopt(argc, argv, ":aAdchl::FfM:v:p:b:BrR:itquwW")) != EOF ) { + switch(arg) { + case 1: printf("optarg : %s\n",optarg); + break; +@@ -586,6 +588,10 @@ main (int argc, char *argv[]) + case 't': + r = dump_config(conf); + goto out_free_config; ++ case 'A': ++ if (remember_cmdline_wwid() != 0) ++ exit(1); ++ exit(0); + case 'h': + usage(argv[0]); + exit(0); +diff --git a/multipath/multipath.8 b/multipath/multipath.8 +index b9436e5..b9ad6b1 100644 +--- a/multipath/multipath.8 ++++ b/multipath/multipath.8 +@@ -25,7 +25,7 @@ multipath \- Device mapper target autoconfig. + .RB [\| \-b\ \c + .IR bindings_file \|] + .RB [\| \-d \|] +-.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \|-u | \-w | \-W \|] ++.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \-A | \-u | \-w | \-W \|] + .RB [\| \-p\ \c + .IR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|] + .RB [\| \-R\ \c +@@ -122,6 +122,9 @@ Add the WWID for the specified device to the WWIDs file. + Check if the device specified in the program environment should be + a path in a multipath device. + . ++.B \-A ++add wwids from any kernel command line mpath.wwid parameters to the wwids file ++. + .TP + .B \-w + Remove the WWID for the specified device from the WWIDs file. +diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service +index fafd088..a623a3f 100644 +--- a/multipathd/multipathd.service ++++ b/multipathd/multipathd.service +@@ -15,6 +15,7 @@ Type=notify + NotifyAccess=main + LimitCORE=infinity + ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath ++ExecStartPre=-/sbin/multipath -A + ExecStart=/sbin/multipathd -d -s + ExecReload=/sbin/multipathd reconfigure + +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch b/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch new file mode 100644 index 00000000000..025a3512e3c --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch @@ -0,0 +1,138 @@ +From 0d2c9afbd89d79fd700f9c99aa20e5f7c7382027 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Mon, 24 Apr 2017 09:39:57 -0500 +Subject: [PATCH 07/14] RH: trigger change uevent on new device creation + +When multipath first sees a path device with user_friendly names +enabled, it can't know if the device should be multipathed. This means +that it will not claim the device in udev. If the device is eventually +multipathed, multipath should trigger a change uevent to update the udev +database to claim the device. + +This also reverts commit 64e27ec066a001012f44550f095c93443e91d845. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/configure.c | 26 ++++++++++++++++++++++++-- + libmultipath/configure.h | 1 + + libmultipath/wwids.c | 4 ++-- + multipath/main.c | 2 +- + multipathd/main.c | 7 ++----- + 5 files changed, 30 insertions(+), 10 deletions(-) + +diff --git a/libmultipath/configure.c b/libmultipath/configure.c +index bd090d9..843dd09 100644 +--- a/libmultipath/configure.c ++++ b/libmultipath/configure.c +@@ -422,6 +422,28 @@ trigger_udev_change(const struct multipath *mpp) + udev_device_unref(udd); + } + ++void ++trigger_paths_udev_change(const struct multipath *mpp) ++{ ++ struct pathgroup * pgp; ++ struct path * pp; ++ int i, j; ++ ++ if (!mpp || !mpp->pg) ++ return; ++ ++ vector_foreach_slot (mpp->pg, pgp, i) { ++ if (!pgp->paths) ++ continue; ++ vector_foreach_slot(pgp->paths, pp, j) { ++ if (!pp->udev) ++ continue; ++ sysfs_attr_set_value(pp->udev, "uevent", "change", ++ strlen("change")); ++ } ++ } ++} ++ + static int + is_mpp_known_to_udev(const struct multipath *mpp) + { +@@ -802,8 +824,8 @@ int domap(struct multipath *mpp, char *params, int is_daemon) + * succeeded + */ + mpp->force_udev_reload = 0; +- if (mpp->action == ACT_CREATE) +- remember_wwid(mpp->wwid); ++ if (mpp->action == ACT_CREATE && remember_wwid(mpp->wwid) == 1) ++ trigger_paths_udev_change(mpp); + if (!is_daemon) { + /* multipath client mode */ + dm_switchgroup(mpp->alias, mpp->bestpg); +diff --git a/libmultipath/configure.h b/libmultipath/configure.h +index fd7f581..253e29b 100644 +--- a/libmultipath/configure.h ++++ b/libmultipath/configure.h +@@ -36,3 +36,4 @@ int get_refwwid (enum mpath_cmds cmd, char * dev, enum devtypes dev_type, + vector pathvec, char **wwid); + int reload_map(struct vectors *vecs, struct multipath *mpp, int refresh, int is_daemon); + int sysfs_get_host_adapter_name(struct path *pp, char *adapter_name); ++void trigger_paths_udev_change(const struct multipath *mpp); +diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c +index 88bb72b..249c6c1 100644 +--- a/libmultipath/wwids.c ++++ b/libmultipath/wwids.c +@@ -319,7 +319,7 @@ remember_wwid(char *wwid) + condlog(3, "wrote wwid %s to wwids file", wwid); + else + condlog(4, "wwid %s already in wwids file", wwid); +- return 0; ++ return ret; + } + + int remember_cmdline_wwid(void) +@@ -353,7 +353,7 @@ int remember_cmdline_wwid(void) + next++; + } + if (strlen(ptr)) { +- if (remember_wwid(ptr) != 0) ++ if (remember_wwid(ptr) < 0) + ret = -1; + } + else { +diff --git a/multipath/main.c b/multipath/main.c +index 72585b0..2eda6a3 100644 +--- a/multipath/main.c ++++ b/multipath/main.c +@@ -336,7 +336,7 @@ configure (struct config *conf, enum mpath_cmds cmd, + } + if (cmd == CMD_ADD_WWID) { + r = remember_wwid(refwwid); +- if (r == 0) ++ if (r >= 0) + printf("wwid '%s' added\n", refwwid); + else + printf("failed adding '%s' to wwids file\n", +diff --git a/multipathd/main.c b/multipathd/main.c +index 81c76ca..874bcce 100644 +--- a/multipathd/main.c ++++ b/multipathd/main.c +@@ -2093,7 +2093,8 @@ configure (struct vectors * vecs, int start_waiters) + + sync_maps_state(mpvec); + vector_foreach_slot(mpvec, mpp, i){ +- remember_wwid(mpp->wwid); ++ if (remember_wwid(mpp->wwid) == 1) ++ trigger_paths_udev_change(mpp); + update_map_pr(mpp); + } + +@@ -2175,10 +2176,6 @@ reconfigure (struct vectors * vecs) + conf->verbosity = verbosity; + if (bindings_read_only) + conf->bindings_read_only = bindings_read_only; +- if (conf->find_multipaths) { +- condlog(2, "find_multipaths is set: -n is implied"); +- ignore_new_devs = 1; +- } + if (ignore_new_devs) + conf->ignore_new_devs = ignore_new_devs; + uxsock_timeout = conf->uxsock_timeout; +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch b/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch new file mode 100644 index 00000000000..f6788099319 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch @@ -0,0 +1,56 @@ +From 0be174dbedd861d7694b0c7799fe26be31eb32b0 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Fri, 26 May 2017 17:52:57 -0500 +Subject: [PATCH 08/14] libmultipath: change how RADOS checker is enabled + +Instead of making the user call "make", "make install" and "make clean" +with ENABLE_RADOS set correctly, have the makefile check if +/usr/include/rados/librados.h exists, just like it checks if specific +functions exist in a file. + +Signed-off-by: Benjamin Marzinski +--- + Makefile.inc | 13 +++++++++++++ + libmultipath/checkers/Makefile | 3 ++- + 2 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/Makefile.inc b/Makefile.inc +index 2591fa9..e084fd1 100644 +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -109,5 +109,18 @@ check_func = \ + echo "$$found" \ + ) + ++# Checker whether a file with name $1 exists ++check_file = $(shell \ ++ if [ -f "$1" ]; then \ ++ found=1; \ ++ status="yes"; \ ++ else \ ++ found=0; \ ++ status="no"; \ ++ fi; \ ++ echo 1>&2 "Checking if $1 exists ... $$status"; \ ++ echo "$$found" \ ++ ) ++ + %.o: %.c + $(CC) $(CFLAGS) -c -o $@ $< +diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile +index 732ca9d..bce6b8b 100644 +--- a/libmultipath/checkers/Makefile ++++ b/libmultipath/checkers/Makefile +@@ -14,7 +14,8 @@ LIBS= \ + libcheckemc_clariion.so \ + libcheckhp_sw.so \ + libcheckrdac.so +-ifneq ($(ENABLE_RADOS),0) ++ ++ifneq ($(call check_file,/usr/include/rados/librados.h),0) + LIBS += libcheckrbd.so + endif + +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch b/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch new file mode 100644 index 00000000000..17d2d917967 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch @@ -0,0 +1,40 @@ +From 526e539628e051128abf46a60ec22e18c9b5d84f Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Wed, 31 May 2017 15:03:02 -0500 +Subject: [PATCH 09/14] multipath: set verbosity to default during config + +condlog was setting the verbosity to 0 if there was no configuration. +This keeps multipath from printing warning messages about config file +problems that are found while loading the configuration. Instead, it +should use the default config level until it loads the configuration +to find the current value. + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/debug.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libmultipath/debug.c b/libmultipath/debug.c +index fbe171a..f89b264 100644 +--- a/libmultipath/debug.c ++++ b/libmultipath/debug.c +@@ -11,6 +11,7 @@ + #include "../third-party/valgrind/drd.h" + #include "vector.h" + #include "config.h" ++#include "defaults.h" + + void dlog (int sink, int prio, const char * fmt, ...) + { +@@ -21,7 +22,7 @@ void dlog (int sink, int prio, const char * fmt, ...) + va_start(ap, fmt); + conf = get_multipath_config(); + ANNOTATE_IGNORE_READS_BEGIN(); +- thres = (conf) ? conf->verbosity : 0; ++ thres = (conf) ? conf->verbosity : DEFAULT_VERBOSITY; + ANNOTATE_IGNORE_READS_END(); + put_multipath_config(conf); + +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch b/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch new file mode 100644 index 00000000000..396b6d32e34 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch @@ -0,0 +1,37 @@ +From f88d60a93e98d86ae294f2317a122c4efde276f0 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Wed, 31 May 2017 17:58:59 -0500 +Subject: [PATCH 10/14] mpath: skip device configs without vendor/product + +Right now if multipath.conf includes a device configuration without a +vendor or product string, it will automatically be applied to all +devices, skipping all other configs entirely. This is clearly wrong. +This patch makes sure that user added configs include vendor and +product strings + +Signed-off-by: Benjamin Marzinski +--- + libmultipath/config.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/libmultipath/config.c b/libmultipath/config.c +index c485748..bdde113 100644 +--- a/libmultipath/config.c ++++ b/libmultipath/config.c +@@ -452,6 +452,13 @@ restart: + break; + j = n; + vector_foreach_slot_after(hw, hwe2, j) { ++ /* drop invalid device configs */ ++ if (!hwe2->vendor || !hwe2->product) { ++ condlog(0, "device config missing vendor or product parameter"); ++ vector_del_slot(hw, j--); ++ free_hwe(hwe2); ++ continue; ++ } + if (hwe_regmatch(hwe1, hwe2)) + continue; + /* dup */ +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch b/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch new file mode 100644 index 00000000000..12d6d38a78c --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch @@ -0,0 +1,38 @@ +From bc3ceda747104afdc24386df5dc45ca86f6c2936 Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 1 Jun 2017 17:52:28 -0500 +Subject: [PATCH 11/14] multipathd: fix "show maps json" crash + +If there are no multipath devices, show_maps_json sets the maximum size +of the reply buffer to 0. Having a size of 0 causes the calls to calloc +and realloc to behave in ways that the code isn't designed to handle, +leading to a double-free crash. Instead, show_maps_json should just +use the INITIAL_REPLY_LEN if there are no multipath devices. + +Signed-off-by: Benjamin Marzinski +--- + multipathd/cli_handlers.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c +index 04c7386..7b0d00c 100644 +--- a/multipathd/cli_handlers.c ++++ b/multipathd/cli_handlers.c +@@ -162,10 +162,12 @@ show_maps_json (char ** r, int * len, struct vectors * vecs) + struct multipath * mpp; + char * c; + char * reply; +- unsigned int maxlen = INITIAL_REPLY_LEN * +- PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec); ++ unsigned int maxlen = INITIAL_REPLY_LEN; + int again = 1; + ++ if (VECTOR_SIZE(vecs->mpvec) > 0) ++ maxlen *= PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec); ++ + vector_foreach_slot(vecs->mpvec, mpp, i) { + if (update_multipath(vecs, mpp->alias, 0)) { + return 1; +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch new file mode 100644 index 00000000000..5ccd4aed8b0 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch @@ -0,0 +1,58 @@ +From 6864ba28dec61609662ce5dc8bc7ed1925abb546 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 5 Jul 2017 02:56:13 -0400 +Subject: [PATCH 12/14] multipath-tools: modify Makefile.inc for + cross-compilation + +Do not look for systemd info on the host, and allow us to pass in CFLAGS +using the OPTFLAGS variable. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Joe Slater + +Update for version 0.5.0-144-g770e6d0 + +Signed-off-by: Kai Kang + +Update for version 0.7.1 + +Signed-off-by: Hongxu Jia +--- + Makefile.inc | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/Makefile.inc b/Makefile.inc +index e084fd1..c7f45fa 100644 +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -35,12 +35,6 @@ ifndef RUN + endif + endif + +-ifndef SYSTEMD +- ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1) +- SYSTEMD = $(shell systemctl --version 2> /dev/null | sed -n 's/systemd \([0-9]*\)/\1/p') +- endif +-endif +- + ifndef SYSTEMDPATH + SYSTEMDPATH=usr/lib + endif +@@ -82,11 +76,13 @@ TEST_CC_OPTION = $(shell \ + + STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector) + ++ifndef OPTFLAGS + OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \ + -Werror=implicit-function-declaration -Werror=format-security \ + -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \ + -Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \ + --param=ssp-buffer-size=4 ++endif + + CFLAGS = $(OPTFLAGS) -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" + BIN_CFLAGS = -fPIE -DPIE +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch b/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch new file mode 100644 index 00000000000..52240f64394 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch @@ -0,0 +1,53 @@ +From 1498338970a093fccbda3e33f5588a289ef2c66a Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 5 Jul 2017 02:59:46 -0400 +Subject: [PATCH 13/14] Always use devmapper + +Do not try to compute several _API_ make variables +from host information when cross-compiling. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Aws Ismail +Signed-off-by: Joe Slater + +Rebase to 0.7.1 + +Signed-off-by: Hongxu Jia +--- + libmultipath/Makefile | 19 ++++--------------- + 1 file changed, 4 insertions(+), 15 deletions(-) + +diff --git a/libmultipath/Makefile b/libmultipath/Makefile +index b3244fc..9006b3f 100644 +--- a/libmultipath/Makefile ++++ b/libmultipath/Makefile +@@ -20,21 +20,10 @@ ifdef SYSTEMD + endif + endif + +-ifneq ($(call check_func,dm_task_no_flush,/usr/include/libdevmapper.h),0) +- CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE +-endif +- +-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0) +- CFLAGS += -DLIBDM_API_COOKIE +-endif +- +-ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,/usr/include/libudev.h),0) +- CFLAGS += -DLIBUDEV_API_RECVBUF +-endif +- +-ifneq ($(call check_func,dm_task_deferred_remove,/usr/include/libdevmapper.h),0) +- CFLAGS += -DLIBDM_API_DEFERRED +-endif ++CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE ++CFLAGS += -DLIBDM_API_COOKIE ++CFLAGS += -DLIBUDEV_API_RECVBUF ++CFLAGS += -DLIBDM_API_DEFERRED + + OBJS = memory.o parser.o vector.o devmapper.o callout.o \ + hwtable.o blacklist.o util.o dmparser.o config.o \ +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch b/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch new file mode 100644 index 00000000000..f951213c181 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch @@ -0,0 +1,37 @@ +From 7f5869cd32a7b3f717d9544b35562d9d01ca6510 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 5 Jul 2017 03:03:16 -0400 +Subject: [PATCH 14/14] Always use devmapper for kpartx + +Do not try to compute the LIBDM_API_COOKIE make variable +from host information when cross-compiling. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Aws Ismail +Signed-off-by: Joe Slater + +Rebase to 0.7.1 +Signed-off-by: Hongxu Jia +--- + kpartx/Makefile | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/kpartx/Makefile b/kpartx/Makefile +index bfa6fe8..be87124 100644 +--- a/kpartx/Makefile ++++ b/kpartx/Makefile +@@ -8,9 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS) + + LIBDEPS += -ldevmapper + +-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0) +- CFLAGS += -DLIBDM_API_COOKIE +-endif ++CFLAGS += -DLIBDM_API_COOKIE + + OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \ + gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o +-- +2.8.1 + diff --git a/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch b/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch deleted file mode 100644 index a16a8540522..00000000000 --- a/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch +++ /dev/null @@ -1,29 +0,0 @@ -Always use devmapper for kpartx - -Do not try to compute the LIBDM_API_COOKIE make variable -from host information when cross-compiling. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Aws Ismail -Signed-off-by: Joe Slater - -diff --git a/kpartx/Makefile b/kpartx/Makefile -index 2a07334..24bdabc 100644 ---- a/kpartx/Makefile -+++ b/kpartx/Makefile -@@ -4,13 +4,7 @@ - # - include ../Makefile.inc - --CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -- --LIBDM_API_COOKIE = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_set_cookie' /usr/include/libdevmapper.h) -- --ifneq ($(strip $(LIBDM_API_COOKIE)),0) -- CFLAGS += -DLIBDM_API_COOKIE --endif -+CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DLIBDM_API_COOKIE - - LDFLAGS = -ldevmapper - OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \ diff --git a/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch b/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch deleted file mode 100644 index 89d2352dab3..00000000000 --- a/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch +++ /dev/null @@ -1,44 +0,0 @@ -Always use devmapper - -Do not try to compute several _API_ make variables -from host information when cross-compiling. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Aws Ismail -Signed-off-by: Joe Slater - -diff --git a/libmultipath/Makefile b/libmultipath/Makefile -index e5b06b3..efd6cf6 100644 ---- a/libmultipath/Makefile -+++ b/libmultipath/Makefile -@@ -17,23 +17,18 @@ OBJS = memory.o parser.o vector.o devmapper.o \ - log.o configure.o structs_vec.o sysfs.o prio.o checkers.o \ - lock.o waiter.o file.o wwids.o - --LIBDM_API_FLUSH = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_no_flush' /usr/include/libdevmapper.h) - --ifneq ($(strip $(LIBDM_API_FLUSH)),0) -+#ifneq ($(strip $(LIBDM_API_FLUSH)),0) - CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE --endif -+#endif - --LIBDM_API_COOKIE = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_set_cookie' /usr/include/libdevmapper.h) -- --ifneq ($(strip $(LIBDM_API_COOKIE)),0) -+#ifneq ($(strip $(LIBDM_API_COOKIE)),0) - CFLAGS += -DLIBDM_API_COOKIE --endif -- --LIBUDEV_API_RECVBUF = $(shell grep -Ecs '^[a-z]*[[:space:]]+udev_monitor_set_resolve_buffer_size' /usr/include/libudev.h) -+#endif - --ifneq ($(strip $(LIBUDEV_API_RECVBUF)),0) -+#ifneq ($(strip $(LIBUDEV_API_RECVBUF)),0) - CFLAGS += -DLIBUDEV_API_RECVBUF --endif -+#endif - - - all: $(LIBS) diff --git a/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch b/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch deleted file mode 100644 index ff71f396759..00000000000 --- a/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch +++ /dev/null @@ -1,36 +0,0 @@ -multipath-tools: modify Makefile.inc for cross-compilation - -Do not look for systemd info on the host, and allow us to pass in CFLAGS -using the OPTFLAGS variable. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Joe Slater - - ---- a/Makefile.inc -+++ b/Makefile.inc -@@ -21,12 +21,6 @@ ifndef LIB - endif - endif - --ifndef SYSTEMD -- ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1) -- SYSTEMD = $(shell systemctl --version 2> /dev/null | sed -n 's/systemd \([0-9]*\)/\1/p') -- endif --endif -- - prefix = - exec_prefix = $(prefix) - bindir = $(exec_prefix)/sbin -@@ -49,7 +43,10 @@ ifndef RPM_OPT_FLAGS - RPM_OPT_FLAGS = -O2 -g -pipe -Wformat-security -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 - endif - -+ifndef OPTFLAGS - OPTFLAGS = $(RPM_OPT_FLAGS) -Wunused -Wstrict-prototypes -+endif -+ - CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" - SHARED_FLAGS = -shared - diff --git a/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example b/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example new file mode 100644 index 00000000000..6bbeadba272 --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example @@ -0,0 +1,90 @@ +# This is a basic configuration file with some examples, for device mapper +# multipath. +# For a complete list of the default configuration values, see +# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults +# For a list of configuration options with descriptions, see +# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.annotated + +## By default, devices with vendor = "IBM" and product = "S/390.*" are +## blacklisted. To enable mulitpathing on these devies, uncomment the +## following lines. +#blacklist_exceptions { +# device { +# vendor "IBM" +# product "S/390.*" +# } +#} + +## Use user friendly names, instead of using WWIDs as names. +defaults { + user_friendly_names yes +} +## +## Here is an example of how to configure some standard options. +## +# +#defaults { +# udev_dir /dev +# polling_interval 10 +# selector "round-robin 0" +# path_grouping_policy multibus +# getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" +# prio alua +# path_checker readsector0 +# rr_min_io 100 +# max_fds 8192 +# rr_weight priorities +# failback immediate +# no_path_retry fail +# user_friendly_names yes +#} +## +## The wwid line in the following blacklist section is shown as an example +## of how to blacklist devices by wwid. The 2 devnode lines are the +## compiled in default blacklist. If you want to blacklist entire types +## of devices, such as all scsi devices, you should use a devnode line. +## However, if you want to blacklist specific devices, you should use +## a wwid line. Since there is no guarantee that a specific device will +## not change names on reboot (from /dev/sda to /dev/sdb for example) +## devnode lines are not recommended for blacklisting specific devices. +## +#blacklist { +# wwid 26353900f02796769 +# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" +# devnode "^hd[a-z]" +#} +#multipaths { +# multipath { +# wwid 3600508b4000156d700012000000b0000 +# alias yellow +# path_grouping_policy multibus +# path_checker readsector0 +# path_selector "round-robin 0" +# failback manual +# rr_weight priorities +# no_path_retry 5 +# } +# multipath { +# wwid 1DEC_____321816758474 +# alias red +# } +#} +#devices { +# device { +# vendor "COMPAQ " +# product "HSV110 (C)COMPAQ" +# path_grouping_policy multibus +# getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" +# path_checker readsector0 +# path_selector "round-robin 0" +# hardware_handler "0" +# failback 15 +# rr_weight priorities +# no_path_retry queue +# } +# device { +# vendor "COMPAQ " +# product "MSA1000 " +# path_grouping_policy multibus +# } +#} diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb new file mode 100644 index 00000000000..6ec5dffcc0b --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb @@ -0,0 +1,113 @@ +SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver" + +DESCRIPTION = "It provides tools to manage multipath devices \ +by instructing the device-mapper kernel module what to do. These \ +tools include: \ +1. multipath - Scan the system for multipath devices and assemble them.\ +2. multipathd - Detects when paths fail and execs multipath to update \ +things.\ +3. mpathpersist - Persistent reservation management feature allows \ +cluster management software to manage persistent reservation through \ +mpath device. It processes management requests from callers and hides \ +the management task details. It also handles persistent reservation \ +management of data path life cycle and state changes.\ +4. kpartx - This tool, derived from util-linux's partx, reads partition \ +tables on specified device and create device maps over partitions \ +segments detected. It is called from hotplug upon device maps creation \ +and deletion" + +HOMEPAGE = "http://christophe.varoqui.free.fr/" + +DEPENDS = "libdevmapper \ + libaio \ + liburcu \ + readline \ + udev \ + json-c \ + " + +LICENSE = "GPLv2" + +SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ + file://multipathd.oe \ + file://multipath.conf.example \ + file://0001-multipath-attempt-at-common-multipath.rules.patch \ + file://0002-RH-fixup-udev-rules-for-redhat.patch \ + file://0003-RH-Remove-the-property-blacklist-exception-builtin.patch \ + file://0004-RH-don-t-start-without-a-config-file.patch \ + file://0005-RH-add-mpathconf.patch \ + file://0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \ + file://0007-RH-trigger-change-uevent-on-new-device-creation.patch \ + file://0008-libmultipath-change-how-RADOS-checker-is-enabled.patch \ + file://0009-multipath-set-verbosity-to-default-during-config.patch \ + file://0010-mpath-skip-device-configs-without-vendor-product.patch \ + file://0011-multipathd-fix-show-maps-json-crash.patch \ + file://0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \ + file://0013-Always-use-devmapper.patch \ + file://0014-Always-use-devmapper-for-kpartx.patch \ + file://0001-kpartx-include-limits.h-for-PATH_MAX.patch \ + " +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +SRCREV = "f21166a812a2cfb50ecf9550d32947c83103f83a" + +S = "${WORKDIR}/git" + +inherit systemd pkgconfig + +SYSTEMD_SERVICE_${PN} = "multipathd.service" + +TARGET_CC_ARCH += "${LDFLAGS}" + +# multipath-tools includes a copy of the valgrind.h header +# file and uses the macros to suppress some false positives. However, +# that only works on ARM when thumb is disabled. Otherwise one gets: +# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3' +# ../Makefile.inc:66: recipe for target 'debug.o' failed +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +# The exact version of SYSTEMD does not matter but should be greater than 209. +# +EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \ + OPTFLAGS="${CFLAGS}" \ + bindir=${base_sbindir} \ + LIB=${base_libdir} libdir=${base_libdir}/multipath \ + unitdir=${systemd_system_unitdir} \ + ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \ + ' + +do_install() { + oe_runmake install + + # We copy an initscript, but do not start multipathd at init time. + # + if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then + install -d ${D}${sysconfdir}/init.d + cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd + fi + + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/multipath.conf.example \ + ${D}${sysconfdir}/multipath.conf.example +} + +FILES_${PN}-dbg += "${base_libdir}/multipath/.debug" + +PACKAGES =+ "${PN}-libs" +FILES_${PN}-libs = "${base_libdir}/lib*.so.* \ + ${base_libdir}/multipath/lib*.so*" +RDEPENDS_${PN} += "${PN}-libs bash" + +PROVIDES += "device-mapper-multipath" +RPROVIDES_${PN} += "device-mapper-multipath" +RPROVIDES_${PN}-libs += "device-mapper-multipath-libs" + +FILES_${PN}-dev += "${base_libdir}/pkgconfig" + +PACKAGES =+ "kpartx" +FILES_kpartx = "${base_sbindir}/kpartx \ + ${nonarch_libdir}/udev/kpartx_id \ + " + +RDEPENDS_${PN} += "bash kpartx" diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb deleted file mode 100644 index 055cfe64c92..00000000000 --- a/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb +++ /dev/null @@ -1,70 +0,0 @@ -SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver" - -DEPENDS = "lvm2 libaio readline udev" - -LICENSE = "LGPLv2" - -SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ - file://multipathd.oe \ - file://makefile_inc.patch \ - file://always-use-libdevmapper.patch \ - file://always-use-libdevmapper-kpartx.patch \ - " -# 0.5.0 -# -#SRCREV = "82f391e787dc02e9d9294aa391137ab424bb83c4" -#LIC_FILES_CHKSUM = "file://COPYING;md5=7be2873b6270e45abacc503abbe2aa3d" - -# 0.5.0 + commits thru 7/18/2014 -# -#SRCREV = "0d72f46c12207a6b7b89f5ef4f5ab5f87ed8bc90" -#LIC_FILES_CHKSUM = "file://COPYING;md5=b06690e7a95c166eefe0199b39118eb1" - -# 0.5.0 + commits thru 9/12/2014 -# -# includes important systemd related structure size fix -# -SRCREV = "aec68ab217fd2956443b27ceeb97dd6475267789" -LIC_FILES_CHKSUM = "file://COPYING;md5=b06690e7a95c166eefe0199b39118eb1" - -inherit systemd - - -S = "${WORKDIR}/git" - -PV = "0.5.0+git${@'${SRCPV}'.split('+')[-1]}" - -# The exact version of SYSTEMD does not matter but should be greater than 209. -# -EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \ - OPTFLAGS="${CFLAGS}" \ - LIB=${base_libdir} libdir=${base_libdir}/multipath \ - unitdir=/lib/systemd/system \ - ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \ - ' - -do_install() { - oe_runmake install - - # Copy a sample conf file, but do not rename it multipath.conf. - # - cp multipath.conf.defaults ${D}${sysconfdir} - - # We copy an initscript, but do not start multipathd at init time. - # - cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd - -} - -FILES_${PN}-dbg += "${base_libdir}/multipath/.debug" - -# systemd and udev stuff always goes under /lib! -# -FILES_${PN} += "${base_libdir}/multipath \ - /lib/systemd" - -PACKAGES =+ "kpartx" -FILES_kpartx = "${base_sbindir}/kpartx \ - /lib/udev/kpartx_id" - -RDEPENDS_${PN} += "kpartx" diff --git a/meta-oe/recipes-support/mysql/mariadb-native_5.5.41.bb b/meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb similarity index 100% rename from meta-oe/recipes-support/mysql/mariadb-native_5.5.41.bb rename to meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb diff --git a/meta-oe/recipes-support/mysql/mariadb.inc b/meta-oe/recipes-support/mysql/mariadb.inc index f385bfcda51..263b3139e77 100644 --- a/meta-oe/recipes-support/mysql/mariadb.inc +++ b/meta-oe/recipes-support/mysql/mariadb.inc @@ -4,17 +4,23 @@ SECTION = "libs" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SRC_URI = "http://mirror.stshosting.co.uk/mariadb/mariadb-${PV}/source/mariadb-${PV}.tar.gz \ +SRC_URI = "https://downloads.mariadb.org/f/${BP}/source/${BP}.tar.gz \ file://fix-cmake-module-path.patch \ file://remove-bad-path.patch \ file://fix-mysqlclient-r-version.patch \ file://my.cnf \ file://mysqld.service \ + file://install_db.service \ + file://install_db \ + file://mysql-systemd-start \ file://configure.cmake-fix-valgrind.patch \ + file://fix-a-building-failure.patch \ + file://change-cc-to-cc-version.patch \ + file://0001-disable-ucontext-on-musl.patch \ " -SRC_URI[md5sum] = "d2415efc6a6d73d7a58f3c79bb42f2e8" -SRC_URI[sha256sum] = "a16dc62e4bcabecd5c483f2f8b657483a8c51934e7be5ad4ab21b8baea1f5332" +SRC_URI[md5sum] = "2d4104aae0b9e5efa8878918bd329cb4" +SRC_URI[sha256sum] = "5dbde98d7e4a5a1721b6cbed7898b2549a88866247951cf586057975c6cea641" S = "${WORKDIR}/mariadb-${PV}" @@ -22,30 +28,43 @@ BINCONFIG_GLOB = "mysql_config" inherit cmake gettext binconfig update-rc.d useradd systemd -INITSCRIPT_PACKAGES = "${PN}-server" -INITSCRIPT_NAME = "mysqld" -INITSCRIPT_PARAMS = "start 45 5 . stop 45 0 6 1 ." +INITSCRIPT_PACKAGES = "${PN}-server ${PN}-setupdb" +INITSCRIPT_NAME_${PN}-server = "mysqld" +INITSCRIPT_PARAMS_${PN}-server ?= "start 45 5 . stop 45 0 6 1 ." USERADD_PACKAGES = "${PN}-server" USERADD_PARAM_${PN}-server = "--system --home-dir /var/mysql -g mysql --shell /bin/false mysql" GROUPADD_PARAM_${PN}-server = "--system mysql" -SYSTEMD_PACKAGES = "${PN}-server" +INITSCRIPT_NAME_${PN}-setupdb = "install_db" +INITSCRIPT_PARAMS_${PN}-setupdb ?= "defaults 44 44" + +SYSTEMD_PACKAGES = "${PN}-server ${PN}-setupdb" SYSTEMD_SERVICE_${PN}-server = "mysqld.service" -SYSTEMD_AUTO_ENABLE_${PN}-server = "disable" +SYSTEMD_AUTO_ENABLE_${PN}-server ?= "disable" + +SYSTEMD_SERVICE_${PN}-setupdb = "install_db.service" +SYSTEMD_AUTO_ENABLE_${PN}-setupdb ?= "enable" +ALLOW_EMPTY_${PN}-setupdb ?= "1" +FILES_${PN}-setupdb = "${sysconfdir}/init.d/install_db" EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} setupdb" PACKAGECONFIG_class-native = "" PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam" -PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITHOUT_VALGRIND=TRUE,valgrind" +PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind" PACKAGECONFIG[libedit] = "-DLIBEDIT_INTERFACE=TRUE,-DLIBEDIT_INTERFACE=FALSE,libedit" +PACKAGECONFIG[krb5] = ", ,krb5" +PACKAGECONFIG[setupdb] = ", ,,${PN}-setupdb" # MariaDB doesn't link properly with gold # https://mariadb.atlassian.net/browse/MDEV-5982 TARGET_CFLAGS += "-fuse-ld=bfd" +BUILD_CFLAGS += "-fuse-ld=bfd" +BUILD_CXXFLAGS += "-fuse-ld=bfd" + EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \ -DWITH_JEMALLOC=no \ -DWITHOUT_TOKUDB=TRUE \ @@ -63,6 +82,9 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \ -DCAT_EXECUTABLE=`which cat` \ -DCMAKE_AR:FILEPATH=${AR}" +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + do_configure_append() { # handle distros with different values of ${libexecdir} libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'` @@ -83,6 +105,16 @@ do_compile_prepend_class-target () { # and since we're cross-compiling that is disabled cp ${STAGING_BINDIR_NATIVE}/comp_err ${S}/extra cp ${STAGING_BINDIR_NATIVE}/comp_sql ${S}/scripts + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'krb5', 'yes', 'no', d)}" = "no" ]; then + if ! [ -e ${B}/include/openssl/kssl.h ] ; then + mkdir -p ${B}/include/openssl + echo "#ifndef KSSL_H" >${B}/include/openssl/kssl.h + echo "#define KSSL_H" >>${B}/include/openssl/kssl.h + echo "#include ">>${B}/include/openssl/kssl.h + echo "#endif" >>${B}/include/openssl/kssl.h + fi + fi } SYSROOT_PREPROCESS_FUNCS += "mariadb_sysroot_preprocess" @@ -102,39 +134,32 @@ do_install() { install -d ${D}/${sysconfdir}/init.d install -m 0644 ${WORKDIR}/my.cnf ${D}/${sysconfdir}/ + install -m 0755 ${WORKDIR}/install_db ${D}/${sysconfdir}/init.d/ mv ${D}/${sysconfdir}/init.d/mysql ${D}/${sysconfdir}/init.d/mysqld install -d ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/mysqld.service ${D}${systemd_unitdir}/system - sed -i -e 's,@BINDIR@,${bindir},g' -e 's,@PREFIX@,${prefix},g' ${D}${systemd_unitdir}/system/mysqld.service + install -m 0644 ${WORKDIR}/install_db.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BINDIR@,${bindir},g' -e 's,@PREFIX@,${prefix},g' ${D}${systemd_unitdir}/system/mysqld.service \ + ${D}${systemd_unitdir}/system/install_db.service if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d - echo "f /var/log/mysqld.err 0640 mysql mysql -" \ + install -d ${D}${sysconfdir}/tmpfiles.d + echo "f /var/log/mysqld.err 0640 mysql mysql -" \ > ${D}${sysconfdir}/tmpfiles.d/99-mysqld.conf fi -} - -pkg_postinst_${PN}-server () { - if [ "x$D" != "x" ]; then - exit 1 + install -d ${D}${bindir} + install -m 755 ${WORKDIR}/mysql-systemd-start ${D}${bindir} + install -d ${D}${datadir}/doc/${PN} + if [ -f ${D}${datadir}/doc/README ]; then + mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/ fi - - #Install the database - test -d /usr/bin || mkdir -p /usr/bin - test -e /usr/bin/hostname || ln -s /bin/hostname /usr/bin/hostname - mkdir /var/lib/mysql - chown mysql.mysql /var/lib/mysql - - mysql_install_db --basedir=${prefix} --user=mysql - - [ -x /sbin/restorecon ] && /sbin/restorecon -RF /var/lib/mysql } PACKAGES = "${PN}-dbg ${PN} \ libmysqlclient-r libmysqlclient-r-dev libmysqlclient-r-staticdev libmysqlclient-r-dbg \ libmysqlclient libmysqlclient-dev libmysqlclient-staticdev libmysqlclient-dbg \ - libmysqld libmysqld-dev ${PN}-client ${PN}-server ${PN}-leftovers" + libmysqld libmysqld-dev ${PN}-client ${PN}-server ${PN}-setupdb ${PN}-leftovers" CONFFILES_${PN}-server += "${sysconfdir}/my.cnf ${sysconfdir}/my.cnf.d/server.cnf" CONFFILES_${PN}-client += "${sysconfdir}/my.cnf.d/mysql-clients.cnf" CONFFILES_libmysqlclient += "${sysconfdir}/my.cnf.d/client.cnf" @@ -149,13 +174,17 @@ RDEPENDS_${PN}-client = "perl perl-module-getopt-long perl-module-file-temp \ RDEPENDS_${PN}-server = "perl perl-module-getopt-long perl-module-data-dumper \ perl-module-file-basename perl-module-file-path perl-module-sys-hostname \ perl-module-file-copy perl-module-file-temp perl-module-posix \ - ${PN}-client" + ${PN}-client libdbi-perl libdbd-mysql-perl" RDEPENDS_${PN}-leftovers = "perl perl-module-cwd perl-module-benchmark perl-module-getopt-long \ perl-module-posix perl-module-data-dumper perl-module-sigtrap perl-module-threads \ perl-module-threads-shared perl-module-io-socket perl-module-sys-hostname perl-module-file-copy \ perl-module-file-spec perl-module-file-find perl-module-file-basename perl-module-file-path \ perl-module-constant perl-module-lib perl-module-file-temp perl-module-file-spec-functions \ perl-module-io-socket-inet perl-module-io-select" +RDEPENDS_${PN}-setupdb = "coreutils" + +# Allow old code to link to the backward compatible library +RDEPENDS_libmysqlclient-dev = "libmysqlclient-r-dev" FILES_libmysqlclient = "\ ${libdir}/libmysqlclient.so.* \ @@ -173,7 +202,7 @@ FILES_libmysqlclient-dbg = "${libdir}/plugin/.debug/ \ # Avoid warnings about ha_xtradb.so.0.0.0 and ha_innodb_plugin.so.0.0.0 # which are intentionally non-PIC on 32-bit x86 (see e.g. # storage/xtradb/plug.in in the source) -INSANE_SKIP_libmysqlclient_append_i586 = " textrel" +INSANE_SKIP_libmysqlclient_append_x86 = " textrel" FILES_libmysqlclient-r = "${libdir}/libmysqlclient_r.so.*" FILES_libmysqlclient-r-dev = "\ @@ -221,6 +250,7 @@ FILES_${PN}-server = "\ ${bindir}/mysql_install_db \ ${bindir}/mysql_secure_installation \ ${bindir}/mysql_setpermission \ + ${bindir}/mysql-systemd-start \ ${bindir}/mysql_tzinfo_to_sql \ ${bindir}/mysql_upgrade \ ${bindir}/mysql_plugin \ @@ -228,6 +258,7 @@ FILES_${PN}-server = "\ ${bindir}/mysqlbinlog \ ${bindir}/mysqld_multi \ ${bindir}/mysqld_safe \ + ${bindir}/mysqld_safe_helper \ ${bindir}/mysqlhotcopy \ ${bindir}/mysqltest \ ${bindir}/ndb_delete_all \ @@ -253,7 +284,7 @@ FILES_${PN}-server = "\ ${libdir}/plugin/*.so \ ${datadir}/mysql/ \ ${localstatedir}/mysql/ \ - ${sysconfdir}/init.d \ + ${sysconfdir}/init.d/mysqld \ ${sysconfdir}/my.cnf \ ${sysconfdir}/my.cnf.d/server.cnf \ ${sysconfdir}/tmpfiles.d" diff --git a/meta-oe/recipes-support/mysql/mariadb/0001-disable-ucontext-on-musl.patch b/meta-oe/recipes-support/mysql/mariadb/0001-disable-ucontext-on-musl.patch new file mode 100644 index 00000000000..60e9199f952 --- /dev/null +++ b/meta-oe/recipes-support/mysql/mariadb/0001-disable-ucontext-on-musl.patch @@ -0,0 +1,28 @@ +From 5bc3e7ef9700d12054e0125a126f1bb093f01ef9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 26 Mar 2017 14:30:33 -0700 +Subject: [PATCH] disable ucontext on musl + +musl does not have *contex() APIs even though it has ucontext.h header + +Signed-off-by: Khem Raj +--- + include/my_context.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/my_context.h b/include/my_context.h +index dd44103..9b28c17 100644 +--- a/include/my_context.h ++++ b/include/my_context.h +@@ -31,7 +31,7 @@ + #define MY_CONTEXT_USE_X86_64_GCC_ASM + #elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__i386__) + #define MY_CONTEXT_USE_I386_GCC_ASM +-#elif defined(HAVE_UCONTEXT_H) ++#elif defined(__GLIBC__) && defined(HAVE_UCONTEXT_H) + #define MY_CONTEXT_USE_UCONTEXT + #else + #define MY_CONTEXT_DISABLE +-- +2.12.1 + diff --git a/meta-oe/recipes-support/mysql/mariadb/change-cc-to-cc-version.patch b/meta-oe/recipes-support/mysql/mariadb/change-cc-to-cc-version.patch new file mode 100644 index 00000000000..02bda24f7b3 --- /dev/null +++ b/meta-oe/recipes-support/mysql/mariadb/change-cc-to-cc-version.patch @@ -0,0 +1,26 @@ +mariadb: replace the CC with CC_VERSION and CXX with CXX_VERSION + +mysqlbug.sh is a bug report script. It makes a report with the build information, +including gcc version. The CC is the local path of gcc, which is useless for bug +report, and the path may expose private information, so change it to CC_VERSION. + +Upstream-Status: Pending + +Signed-off-by: Yue Tao +Signed-off-by: Wenzong Fan +================================ +diff --git a/scripts/mysqlbug.sh.old b/scripts/mysqlbug.sh +index e9df210..d4b8d53 100644 +--- a/scripts/mysqlbug.sh.old ++++ b/scripts/mysqlbug.sh +@@ -24,8 +24,8 @@ VERSION="@VERSION@@MYSQL_SERVER_SUFFIX@" + COMPILATION_COMMENT="@COMPILATION_COMMENT@" + BUGmysql="maria-developers@lists.launchpad.net" + # This is set by configure +-COMP_CALL_INFO="CC='@SAVE_CC@' CFLAGS='@SAVE_CFLAGS@' CXX='@SAVE_CXX@' CXXFLAGS='@SAVE_CXXFLAGS@' LDFLAGS='@SAVE_LDFLAGS@' ASFLAGS='@SAVE_ASFLAGS@'" +-COMP_RUN_INFO="CC='@CC@' CFLAGS='@CFLAGS@' CXX='@CXX@' CXXFLAGS='@CXXFLAGS@' LDFLAGS='@LDFLAGS@' ASFLAGS='@ASFLAGS@'" ++COMP_CALL_INFO="CC='@CC_VERSION@' CFLAGS='@SAVE_CFLAGS@' CXX='@CXX_VERSION@' CXXFLAGS='@SAVE_CXXFLAGS@' LDFLAGS='@SAVE_LDFLAGS@' ASFLAGS='@SAVE_ASFLAGS@'" ++COMP_RUN_INFO="CC='@CC_VERSION@' CFLAGS='@CFLAGS@' CXX='@CXX_VERSION@' CXXFLAGS='@CXXFLAGS@' LDFLAGS='@LDFLAGS@' ASFLAGS='@ASFLAGS@'" + CONFIGURE_LINE="@CONF_COMMAND@" + + LIBC_INFO="" diff --git a/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch b/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch new file mode 100644 index 00000000000..0c4e10237ca --- /dev/null +++ b/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch @@ -0,0 +1,31 @@ +[PATCH] fix a building failure + +Upstream-Status: Inappropriate [configuration] + +building failed since native does not generate import_executables.cmake +In fact, our building system will export the needed commands + +Signed-off-by: Roy Li +--- + CMakeLists.txt | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c1ce1c5..83b3a7e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -350,11 +350,6 @@ MYSQL_CHECK_READLINE() + + CHECK_JEMALLOC() + +-IF(CMAKE_CROSSCOMPILING) +- SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build") +- INCLUDE(${IMPORT_EXECUTABLES}) +-ENDIF() +- + # + # Setup maintainer mode options by the end. Platform checks are + # not run with the warning options as to not perturb fragile checks +-- +1.9.1 + diff --git a/meta-oe/recipes-support/mysql/mariadb/install_db b/meta-oe/recipes-support/mysql/mariadb/install_db new file mode 100755 index 00000000000..512a7da7eeb --- /dev/null +++ b/meta-oe/recipes-support/mysql/mariadb/install_db @@ -0,0 +1,13 @@ +#! /bin/sh +case "$1" in + start) + echo "Starting to install database for mariadb" + /usr/bin/mysql-systemd-start pre + echo "done." + ;; + *) + echo "Usage: /etc/init.d/install_db start" + exit 1 +esac + +exit 0 diff --git a/meta-oe/recipes-support/mysql/mariadb/install_db.service b/meta-oe/recipes-support/mysql/mariadb/install_db.service new file mode 100644 index 00000000000..c8369f569ba --- /dev/null +++ b/meta-oe/recipes-support/mysql/mariadb/install_db.service @@ -0,0 +1,17 @@ +# +# Simple install MySQL database service file +# It shoulb be done before mysqld.service + +[Unit] +Description=Install MySQL Community Server Database +After=network.target +After=syslog.target +Before=mysqld.service + +[Install] +WantedBy=multi-user.target + +[Service] +Type=oneshot +ExecStart=@BINDIR@/mysql-systemd-start pre + diff --git a/meta-oe/recipes-support/mysql/mariadb/my.cnf b/meta-oe/recipes-support/mysql/mariadb/my.cnf index 28d389922be..dc4c172e548 100644 --- a/meta-oe/recipes-support/mysql/mariadb/my.cnf +++ b/meta-oe/recipes-support/mysql/mariadb/my.cnf @@ -4,7 +4,6 @@ port = 3306 socket = /var/lib/mysql/mysql.sock [mysqld_safe] -err-log = /var/log/mysql.err [mysqld] user = mysql diff --git a/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start b/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start new file mode 100644 index 00000000000..189c02021d3 --- /dev/null +++ b/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start @@ -0,0 +1,66 @@ +#! /bin/sh +# +# Needed argument: pre | post +# +# pre mode : try to run mysql_install_db and fix perms and SELinux contexts +# post mode : ping server until answer is received +# + +get_option () { + local section=$1 + local option=$2 + local default=$3 + ret=$(/usr/bin/my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-) + [ -z $ret ] && ret=$default + echo $ret +} + +install_db () { + # Note: something different than datadir=/var/lib/mysql requires SELinux policy changes (in enforcing mode) + datadir=$(get_option mysqld datadir "/var/lib/mysql") + + # Restore log, dir, perms and SELinux contexts + [ -d "$datadir" ] || install -d -m 0755 -omysql -gmysql "$datadir" || exit 1 + log=/var/log/mysqld.log + [ -e $log ] || touch $log + chmod 0640 $log + chown mysql:mysql $log || exit 1 + if [ -x /usr/sbin/restorecon ]; then + /usr/sbin/restorecon "$datadir" + /usr/sbin/restorecon $log + fi + + # If special mysql dir is in place, skip db install + [ -d "$datadir/mysql" ] && exit 0 + + # Create initial db + /usr/bin/mysql_install_db --rpm --datadir="$datadir" --user=mysql + exit 0 +} + +pinger () { + # Wait for ping to answer to signal startup completed, + # might take a while in case of e.g. crash recovery + # MySQL systemd service will timeout script if no answer + datadir=$(get_option mysqld datadir "/var/lib/mysql") + socket=$(get_option mysqld socket "$datadir/mysql.sock") + case $socket in + /*) adminsocket="$socket" ;; + *) adminsocket="$datadir/$socket" ;; + esac + + while /bin/true ; do + sleep 1 + mysqladmin --no-defaults --socket="$adminsocket" --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break + done + exit 0 +} + +# main +case $1 in + "pre") install_db ;; + "post") pinger ;; +esac + +exit 0 + diff --git a/meta-oe/recipes-support/mysql/mariadb/mysqld.service b/meta-oe/recipes-support/mysql/mariadb/mysqld.service index 757d0386c39..d88361703da 100644 --- a/meta-oe/recipes-support/mysql/mariadb/mysqld.service +++ b/meta-oe/recipes-support/mysql/mariadb/mysqld.service @@ -8,7 +8,16 @@ PIDFile=/var/lib/mysql/mysqld.pid Type=simple User=mysql Group=mysql + +# Execute post scripts as root +PermissionsStartOnly=true + +# Start main service ExecStart=@BINDIR@/mysqld_safe --basedir=@PREFIX@ + +# Don't signal startup success before a ping works +ExecStartPost=@BINDIR@/mysql-systemd-start post + TimeoutSec=300 PrivateTmp=true diff --git a/meta-oe/recipes-support/mysql/mariadb_5.5.41.bb b/meta-oe/recipes-support/mysql/mariadb_5.5.41.bb deleted file mode 100644 index 8f998a3a566..00000000000 --- a/meta-oe/recipes-support/mysql/mariadb_5.5.41.bb +++ /dev/null @@ -1,27 +0,0 @@ -require mariadb.inc - -EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1" - -DEPENDS += "mariadb-native ncurses zlib readline libaio libevent" - -PROVIDES += "mysql5" - -RPROVIDES_${PN} += "mysql5" -RREPLACES_${PN} += "mysql5" -RCONFLICTS_${PN} += "mysql5" - -RPROVIDES_${PN}-dbg += "mysql5-dbg" -RREPLACES_${PN}-dbg += "mysql5-dbg" -RCONFLICTS_${PN}-dbg += "mysql5-dbg" - -RPROVIDES_${PN}-leftovers += "mysql5-leftovers" -RREPLACES_${PN}-leftovers += "mysql5-leftovers" -RCONFLICTS_${PN}-leftovers += "mysql5-leftovers" - -RPROVIDES_${PN}-client += "mysql5-client" -RREPLACES_${PN}-client += "mysql5-client" -RCONFLICTS_${PN}-client += "mysql5-client" - -RPROVIDES_${PN}-server += "mysql5-server" -RREPLACES_${PN}-server += "mysql5-server" -RCONFLICTS_${PN}-server += "mysql5-server" diff --git a/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb b/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb new file mode 100644 index 00000000000..d7895732a66 --- /dev/null +++ b/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb @@ -0,0 +1,27 @@ +require mariadb.inc + +EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1" + +DEPENDS += "mariadb-native ncurses zlib readline libaio libevent" + +PROVIDES += "mysql5 libmysqlclient" + +RPROVIDES_${PN} += "mysql5" +RREPLACES_${PN} += "mysql5" +RCONFLICTS_${PN} += "mysql5" + +RPROVIDES_${PN}-dbg += "mysql5-dbg" +RREPLACES_${PN}-dbg += "mysql5-dbg" +RCONFLICTS_${PN}-dbg += "mysql5-dbg" + +RPROVIDES_${PN}-leftovers += "mysql5-leftovers" +RREPLACES_${PN}-leftovers += "mysql5-leftovers" +RCONFLICTS_${PN}-leftovers += "mysql5-leftovers" + +RPROVIDES_${PN}-client += "mysql5-client" +RREPLACES_${PN}-client += "mysql5-client" +RCONFLICTS_${PN}-client += "mysql5-client" + +RPROVIDES_${PN}-server += "mysql5-server" +RREPLACES_${PN}-server += "mysql5-server" +RCONFLICTS_${PN}-server += "mysql5-server" diff --git a/meta-oe/recipes-support/mysql/mysql-python/remove-distribute.patch b/meta-oe/recipes-support/mysql/mysql-python/remove-distribute.patch deleted file mode 100644 index 0ce750d63d2..00000000000 --- a/meta-oe/recipes-support/mysql/mysql-python/remove-distribute.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status: Innapropriate - -Index: MySQL-python-1.2.4/setup.py -=================================================================== ---- MySQL-python-1.2.4.orig/setup.py -+++ MySQL-python-1.2.4/setup.py -@@ -3,8 +3,8 @@ - import os - import sys - --from distribute_setup import use_setuptools --use_setuptools() -+#from distribute_setup import use_setuptools -+#use_setuptools() - from setuptools import setup, Extension - - if not hasattr(sys, "hexversion") or sys.hexversion < 0x02040000: diff --git a/meta-oe/recipes-support/mysql/mysql-python_1.2.4.bb b/meta-oe/recipes-support/mysql/mysql-python_1.2.4.bb deleted file mode 100644 index 6fc974ecde1..00000000000 --- a/meta-oe/recipes-support/mysql/mysql-python_1.2.4.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Python interface to MySQL" -HOMEPAGE = "https://github.com/farcepest/MySQLdb1" -SECTION = "devel/python" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://GPL-2.0;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -DEPENDS = "mysql5" - -SRCNAME = "MySQL-python" - -SRC_URI = "https://pypi.python.org/packages/source/M/${SRCNAME}/${SRCNAME}-${PV}.zip \ - file://remove-distribute.patch" - -SRC_URI[md5sum] = "ddf2386daf10a97af115ffad2ed4a9a0" -SRC_URI[sha256sum] = "e405f9d6be33923d428acaa4db4f4470427f1d15ea0d2d82a933449ace26bbd9" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools diff --git a/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb b/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb new file mode 100644 index 00000000000..ac0df4f0661 --- /dev/null +++ b/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb @@ -0,0 +1,17 @@ +SUMMARY = "Python interface to MySQL" +HOMEPAGE = "https://github.com/farcepest/MySQLdb1" +SECTION = "devel/python" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://GPL-2.0;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "mysql5" + +SRCNAME = "MySQL-python" + +SRC_URI = "https://pypi.python.org/packages/source/M/${SRCNAME}/${SRCNAME}-${PV}.zip" +SRC_URI[md5sum] = "654f75b302db6ed8dc5a898c625e030c" +SRC_URI[sha256sum] = "811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e140c74" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools diff --git a/meta-oe/recipes-support/nano/nano-2.2.5/ncursesw.includedir.patch b/meta-oe/recipes-support/nano/nano-2.2.5/ncursesw.includedir.patch deleted file mode 100644 index 0f224be396d..00000000000 --- a/meta-oe/recipes-support/nano/nano-2.2.5/ncursesw.includedir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -uNr nano-2.2.5.orig//configure.ac nano-2.2.5/configure.ac ---- nano-2.2.5.orig//configure.ac 2010-08-06 03:00:51.000000000 +0200 -+++ nano-2.2.5/configure.ac 2010-08-10 14:11:52.000000000 +0200 -@@ -442,7 +442,7 @@ - AC_CHECK_HEADERS(ncurses.h) - - if test x$enable_utf8 != xno; then -- AC_CHECK_LIB(ncursesw, get_wch, [CURSES_LIB="-lncursesw" CPPFLAGS="-I/usr/include/ncursesw $CPPFLAGS" CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes]) -+ AC_CHECK_LIB(ncursesw, get_wch, [CURSES_LIB="-lncursesw" CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes]) - fi - - if eval "test x$CURSES_LIB_NAME = x"; then diff --git a/meta-oe/recipes-support/nano/nano.inc b/meta-oe/recipes-support/nano/nano.inc index bdefe9bd015..22f0fb2a0a9 100644 --- a/meta-oe/recipes-support/nano/nano.inc +++ b/meta-oe/recipes-support/nano/nano.inc @@ -2,18 +2,16 @@ DESCRIPTION = "GNU nano (Nano's ANOther editor, or \ Not ANOther editor) is an enhanced clone of the \ Pico text editor." HOMEPAGE = "http://www.nano-editor.org/" -LICENSE = "GPLv2" +LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" SECTION = "console/utils" -DEPENDS = "ncurses" +DEPENDS = "ncurses file" RDEPENDS_${PN} = "ncurses-terminfo" -INC_PR = "r3" +PV_MAJOR = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" -PV_MAJOR = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}" +SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz" -SRC_URI = "ftp://nano-editor.org/pub/nano/v${PV_MAJOR}/nano-${PV}.tar.gz" +inherit autotools gettext pkgconfig -inherit autotools gettext - -PACKAGECONFIG[tiny] = "--enable-tiny,--enable-all," +PACKAGECONFIG[tiny] = "--enable-tiny," diff --git a/meta-oe/recipes-support/nano/nano_2.2.5.bb b/meta-oe/recipes-support/nano/nano_2.2.5.bb deleted file mode 100644 index e656f46dfa4..00000000000 --- a/meta-oe/recipes-support/nano/nano_2.2.5.bb +++ /dev/null @@ -1,8 +0,0 @@ -include nano.inc - -PR = "${INC_PR}.0" - -SRC_URI += "file://ncursesw.includedir.patch" - -SRC_URI[md5sum] = "77a10a49589f975ce98350a4527a2ebf" -SRC_URI[sha256sum] = "9015945d1badabbada203b37c4779d3dd1066234235c714deb439989c5cd7d9e" diff --git a/meta-oe/recipes-support/nano/nano_2.7.4.bb b/meta-oe/recipes-support/nano/nano_2.7.4.bb new file mode 100644 index 00000000000..eaf393e180f --- /dev/null +++ b/meta-oe/recipes-support/nano/nano_2.7.4.bb @@ -0,0 +1,4 @@ +include nano.inc + +SRC_URI[md5sum] = "c011c7f9e47cb1da27d4e7cc8b56ec6a" +SRC_URI[sha256sum] = "752170643039e2c95a433de357f0c70a8c4c4c561a90a7e7259a63e225b659b9" diff --git a/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch b/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch new file mode 100644 index 00000000000..9f2faaa5295 --- /dev/null +++ b/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch @@ -0,0 +1,44 @@ +From 8a0d1cbfcc0649b2696c9cf20f877366de259ce3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 12 Nov 2016 18:15:26 +0000 +Subject: [PATCH] CMakeLists.txt: Remove -mthumb-interwork + +This option is meaningless with aapcs ABI +which is the default for Linux and android +for armv7+ architectures + +As an aside it helps in compiling with clang +where this option is absent + +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 784a5a8..68da920 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -117,7 +117,7 @@ if(ANDROID_PLATFORM) + + # Adding cflags for armv7. Aarch64 does not need such flags. + if(${NE10_TARGET_ARCH} STREQUAL "armv7") +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfloat-abi=${FLOAT_ABI} -mfpu=vfp3") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfloat-abi=${FLOAT_ABI} -mfpu=vfp3") + if(NE10_ARM_HARD_FLOAT) + # "--no-warn-mismatch" is needed for linker to suppress linker error about not all functions use VFP register to pass argument, eg. + # .../arm-linux-androideabi/bin/ld: error: ..../test-float.o +@@ -138,8 +138,8 @@ if(ANDROID_PLATFORM) + ${CMAKE_C_FLAGS}") + elseif(GNULINUX_PLATFORM) + if("${NE10_TARGET_ARCH}" STREQUAL "armv7") +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations") +- set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfpu=neon") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations") ++ set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=neon") + # Turn on asm optimization for Linux on ARM v7. + set(NE10_ASM_OPTIMIZATION on) + endif() +-- +1.8.3.1 + diff --git a/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch b/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch new file mode 100644 index 00000000000..a8fea82dc37 --- /dev/null +++ b/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch @@ -0,0 +1,38 @@ +From 66d332e4b631eef800c6f62cd347b164ee3b59d4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 19 Apr 2017 10:11:21 -0700 +Subject: [PATCH] Dont specify -march explicitly + +it assumes armv7-a for all armv7 based machines but that may +not be true e.g. machines based on armv7ve and cortexa-7 +it causes conflicts in OE builds because it specifies -march +in recipes anyway so this is redundant in CMakeLists.txt + +Fixes + +| cc1: warning: switch -mcpu=cortex-a7 conflicts with -march=armv7-a switch +| cc1: warning: switch -mcpu=cortex-a7 conflicts with -march=armv7-a switch + +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 68da920..a4b94b9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -138,8 +138,8 @@ if(ANDROID_PLATFORM) + ${CMAKE_C_FLAGS}") + elseif(GNULINUX_PLATFORM) + if("${NE10_TARGET_ARCH}" STREQUAL "armv7") +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations") +- set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=neon") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -mfpu=vfp3 -funsafe-math-optimizations") ++ set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -mfpu=neon") + # Turn on asm optimization for Linux on ARM v7. + set(NE10_ASM_OPTIMIZATION on) + endif() +-- +2.12.2 + diff --git a/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/meta-oe/recipes-support/ne10/ne10_1.2.1.bb new file mode 100644 index 00000000000..e5b50ce7553 --- /dev/null +++ b/meta-oe/recipes-support/ne10/ne10_1.2.1.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "Library containing NEON-optimized implementations for a common set of functions" +HOMEPAGE = "http://projectne10.github.io/Ne10/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e7fe20c9be97be5579e3ab5d92d3a218" +SECTION = "libs" + +SRC_URI = "git://github.com/projectNe10/Ne10.git \ + file://0001-CMakeLists.txt-Remove-mthumb-interwork.patch \ + file://0001-Dont-specify-march-explicitly.patch \ + " +SRCREV = "18c4c982a595dad069cd8df4932aefb1d257591f" + +S = "${WORKDIR}/git" +PV .= "gitr+${SRCPV}" + +inherit cmake + +NE10_TARGET_ARCH = "" +EXTRA_OECMAKE = '-DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH="${NE10_TARGET_ARCH}"' + +COMPATIBLE_MACHINE_aarch64 = "(.*)" +COMPATIBLE_MACHINE_armv7a = "(.*)" + +python () { + if any(t.startswith('armv7') for t in d.getVar('TUNE_FEATURES').split()): + d.setVar('NE10_TARGET_ARCH', 'armv7') + bb.debug(2, 'Building Ne10 for armv7') + elif any(t.startswith('aarch64') for t in d.getVar('TUNE_FEATURES').split()): + d.setVar('NE10_TARGET_ARCH', 'aarch64') + bb.debug(2, 'Building Ne10 for aarch64') + else: + raise bb.parse.SkipPackage("Incompatible with archs other than armv7 and aarch64") +} + +do_install() { + install -d ${D}${libdir} + install -d ${D}${includedir} + install -m 0644 ${S}/inc/NE10*.h ${D}${includedir}/ + install -m 0644 ${B}/modules/libNE10.a ${D}${libdir}/ + install -m 0755 ${B}/modules/libNE10.so.* ${D}${libdir}/ + cp -a ${B}/modules/libNE10.so ${D}${libdir}/ +} + +# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel] +# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel] +INSANE_SKIP_${PN} += "textrel" diff --git a/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb b/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb new file mode 100644 index 00000000000..3e6b10a436b --- /dev/null +++ b/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "HTTP/2 C Library and tools" +HOMEPAGE = "https://nghttp2.org/" +SECTION = "libs" + +DEPENDS = "pkgconfig cunit zlib openssl libxml2 jansson c-ares" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.bz2" +SRC_URI[md5sum] = "926f07ad3b50f38f7d8935ced04716cf" +SRC_URI[sha256sum] = "0df4229f4123b5aa96e834ebcfdffe954e93d986f0252fd10123d50c6f010983" + +inherit cmake pythonnative python-dir + +EXTRA_OECMAKE = "" diff --git a/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch b/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch new file mode 100644 index 00000000000..e8debe56af0 --- /dev/null +++ b/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch @@ -0,0 +1,46 @@ +From d977b5170027926eb97ab9742ddc51d2a5555a34 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 10:06:49 -0700 +Subject: [PATCH] lmon16g.c: Adjust system headers + +fstab.h is unused +errno.h is in /usr/include +defines from sys/cdefs.h is used + +Signed-off-by: Khem Raj +--- + lmon16g.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lmon16g.c b/lmon16g.c +index cb27e09..d2a11c5 100644 +--- a/lmon16g.c ++++ b/lmon16g.c +@@ -63,7 +63,7 @@ static char *SccsId = "nmon " VERSION; + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -71,6 +71,7 @@ static char *SccsId = "nmon " VERSION; + #include + #include + #include ++#include + + /* Windows moved here so they can be cleared when the screen mode changes */ + WINDOW *padwelcome = NULL; +@@ -576,7 +577,6 @@ struct procsinfo { + int isroot = 0; + + #include +-#include + #include + #include + #include +-- +2.13.3 + diff --git a/meta-oe/recipes-support/nmon/nmon_13g.bb b/meta-oe/recipes-support/nmon/nmon_13g.bb deleted file mode 100644 index 1f7518972b8..00000000000 --- a/meta-oe/recipes-support/nmon/nmon_13g.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "nmon performance monitor" -HOMEPAGE = "http://nmon.sf.net" -SECTION = "console/utils" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a" -DEPENDS = "ncurses" -PR = "r2" - -SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon13g.c;name=lmon \ - ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \ -" - -SRC_URI[lmon.md5sum] = "b1b8e6c0123ad232394991f2d4f40494" -SRC_URI[lmon.sha256sum] = "456ab2a342b31d1a352d0d940af5962fa65a12ae8757ff73e6e73210832ae8b5" -SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a" -SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278" - -CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM" -LDFLAGS += "-ltinfo -lncursesw" -ASNEEDED_pn-nmon = "" - -do_compile() { - ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/lmon13g.c -o nmon -} - -do_install() { - install -d ${D}${bindir} - install -m 0755 nmon ${D}${bindir} -} diff --git a/meta-oe/recipes-support/nmon/nmon_16g.bb b/meta-oe/recipes-support/nmon/nmon_16g.bb new file mode 100644 index 00000000000..e77faa30adf --- /dev/null +++ b/meta-oe/recipes-support/nmon/nmon_16g.bb @@ -0,0 +1,31 @@ +SUMMARY = "nmon performance monitor" +HOMEPAGE = "http://nmon.sf.net" +SECTION = "console/utils" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a" +DEPENDS = "ncurses" +DEPENDS_append_libc-musl = " bsd-headers" + +SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon${PV}.c;name=lmon \ + ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \ + file://0001-lmon16g.c-Adjust-system-headers.patch \ +" +SRC_URI[lmon.md5sum] = "246ccfc74d5af55d992601fc4d3d4a72" +SRC_URI[lmon.sha256sum] = "da82dd693b503b062854dfe7dbb5d36b347872ab44a4aa05b97e9d577747f688" +SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a" +SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278" + +CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM" +LDFLAGS += "-ltinfo -lncursesw -lm" +ASNEEDED_pn-nmon = "" + +S = "${WORKDIR}" + +do_compile() { + ${CC} ${CFLAGS} ${LDFLAGS} lmon${PV}.c -o nmon +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 nmon ${D}${bindir} +} diff --git a/meta-oe/recipes-support/nonworking/fftw/benchfft_3.1.bb b/meta-oe/recipes-support/nonworking/fftw/benchfft_3.1.bb deleted file mode 100644 index feb3c3c25d1..00000000000 --- a/meta-oe/recipes-support/nonworking/fftw/benchfft_3.1.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "FFTW benchmarks" -SECTION = "libs" -LICENSE = "GPLv2" - -# single precision fftw is called fftwf -DEPENDS = "virtual/fftw" - -SRC_URI = "http://www.fftw.org/benchfft/benchfft-${PV}.tar.gz" - -EXTRA_OECONF = "--disable-fortran --enable-single --enable-shared" - -inherit autotools pkgconfig - -do_compile_prepend() { - sed -i -e 's:all-recursive:$(RECURSIVE_TARGETS):g' ${S}/Makefile -} - -SRC_URI[md5sum] = "9356e5e9dcb3f1481977009720a2ccf8" -SRC_URI[sha256sum] = "1b4a5b5e48ad5e61a21586b7b59d5c0a88691a981e73e2c6dc5868197461791b" diff --git a/meta-oe/recipes-support/nonworking/freerdp/freerdp.inc b/meta-oe/recipes-support/nonworking/freerdp/freerdp.inc deleted file mode 100644 index 34dac4b7e74..00000000000 --- a/meta-oe/recipes-support/nonworking/freerdp/freerdp.inc +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved -# Released under the MIT license - -DESCRIPTION = "FreeRDP RDP client" -HOMEPAGE = "http://www.freerdp.com" -DEPENDS = "virtual/libx11 openssl libxcursor libxv cups alsa-lib pulseaudio pcsc-lite libxkbfile libxinerama" -SECTION = "x11/network" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - -inherit pkgconfig cmake - -EXTRA_OECMAKE += "-DWITH_PULSEAUDIO=ON \ - -DWITH_PCSC=ON \ - -DWITH_CUPS=ON \ - -DWITH_FFMPEG=OFF \ - -DWITH_CUNIT=OFF \ - -DWITH_X11=ON \ - -DWITH_XKBFILE=ON \ - -DWITH_XINERAMA=ON" - -PACKAGES =+ "libfreerdp" - -LEAD_SONAME = "libfreerdp.so" -FILES_libfreerdp = "${libdir}/lib*${SOLIBS}" - -PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*" - -python populate_packages_prepend () { - freerdp_root = d.expand('${libdir}/freerdp') - - do_split_packages(d, freerdp_root, '^(audin_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-audin') - - do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-rdpsnd') - - do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='libfreerdp-plugin-tsmf') - - do_split_packages(d, freerdp_root, '^([^-]*)\.so$', - output_pattern='libfreerdp-plugin-%s', - description='FreeRDP plugin %s', - prepend=True, extra_depends='') -} diff --git a/meta-oe/recipes-support/nonworking/freerdp/freerdp_git.bb b/meta-oe/recipes-support/nonworking/freerdp/freerdp_git.bb deleted file mode 100644 index 0e9bf065c6c..00000000000 --- a/meta-oe/recipes-support/nonworking/freerdp/freerdp_git.bb +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (C) 2010-2012, O.S. Systems Software Ltda. -# Released under the MIT license - -include freerdp.inc - -inherit gitpkgv - -PV = "1.0.2+gitr${SRCPV}" -PKGV = "${GITPKGVTAG}" - -EXTRA_OECMAKE += "-DWITH_MANPAGES=OFF" - -SRCREV = "f311acaffb9190567e2b478a98d7cbfaf2709f6b" -SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-1.0" - -S = "${WORKDIR}/git" diff --git a/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch b/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch new file mode 100644 index 00000000000..78ffb22f89b --- /dev/null +++ b/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch @@ -0,0 +1,32 @@ +rename test target as run-test + +Upstream-Statue: Pending + +test target not only compile the test files, but also run them, which is +not suitable for cross-compile environment, so rename it as run-test. + +and define test target to compile the test files. + +Signed-off-by: Roy Li +--- + Makefile.am | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index b6db339..de176c4 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -124,7 +124,9 @@ regress2: $(check_PROGRAMS) + test_numademo: numademo + ./numademo -t -e 10M + +-test: all $(check_PROGRAMS) regress1 regress2 test_numademo ++test: all $(check_PROGRAMS) ++ ++run-test: all $(check_PROGRAMS) regress1 regress2 test_numademo + + TESTS_ENVIRONMENT = builddir='$(builddir)'; export builddir; + +-- +1.9.1 + diff --git a/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch b/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch index 8c309a4b5c3..9812ecc8b3a 100644 --- a/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch +++ b/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch @@ -1,26 +1,30 @@ -[PATCH] Fix the test output format +From 59fd750a84bbe5874dec936d2bee9ef11a1b6505 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Tue, 21 Jul 2015 02:01:22 +0900 +Subject: [PATCH] Fix the test output format Upstream-Status: Pending Signed-off-by: Roy Li +Signed-off-by: Li Xin --- - test/regress | 6 +++--- - test/regress2 | 9 ++++----- - 2 files changed, 7 insertions(+), 8 deletions(-) + test/regress | 6 +++--- + test/regress2 | 11 +++++------ + 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/test/regress b/test/regress -index 05eff5b..10d72f7 100755 +index 2ce1705..d086a47 100755 --- a/test/regress +++ b/test/regress -@@ -73,6 +73,7 @@ probe_hardware() +@@ -74,6 +74,7 @@ probe_hardware() if [ $numnodes -lt 2 ] ; then echo "need at least two nodes with at least $NEEDPAGES each of" echo "free memory for mempolicy regression tests" + echo "FAIL: numa regress" - exit 1 + exit 77 # Skip test fi } -@@ -206,10 +207,9 @@ main() +@@ -207,10 +208,9 @@ main() rm A B if [ "$EXIT" = 0 ] ; then @@ -34,26 +38,27 @@ index 05eff5b..10d72f7 100755 } diff --git a/test/regress2 b/test/regress2 -index 6a254fa..9c97943 100755 +index aa6ea41..450c510 100755 --- a/test/regress2 +++ b/test/regress2 -@@ -6,12 +6,11 @@ VALGRIND=${VALGRIND:-} - export LD_LIBRARY_PATH=`pwd`/.. +@@ -9,12 +9,11 @@ testdir=`dirname "$0"` + export PATH=${builddir}:$PATH T() { - echo "$@" - if ! $VALGRIND "$@" ; then - echo $1 FAILED!!!! - exit 1 -+ if ! $VALGRIND "$@" 2>&1 1>/dev/null; then -+ echo "FAIL: $1" -+ else -+ echo "PASS: $1" - fi +- fi - echo ++ if ! $VALGRIND "$@" 2>&1 1>/dev/null; then ++ echo "FAIL: $1" ++ else ++ echo "PASS: $1" ++ fi } - # various tests + # still broken -- -1.7.10.4 +1.8.4.2 diff --git a/meta-oe/recipes-support/numactl/numactl_2.0.9.bb b/meta-oe/recipes-support/numactl/numactl_2.0.9.bb deleted file mode 100644 index 651277dab4d..00000000000 --- a/meta-oe/recipes-support/numactl/numactl_2.0.9.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Development package for building Applications that use numa" -DESCRIPTION = "Simple NUMA policy support. It consists of a numactl program \ -to run other programs with a specific NUMA policy and a libnuma to do \ -allocations with NUMA policy in applications." -LICENSE = "GPL-2.0 & LGPL-2.1" -SECTION = "apps" -RDEPENDS_${PN} = "perl" - -inherit autotools-brokensep ptest - -LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9" -SRC_URI[md5sum] = "136685c8eaf9d6569c351fe1d453b30c" -SRC_URI[sha256sum] = "9ca033e6c14c0f26c20379b0cf9299429fd5a354a79c3c7880fd41ef69f7751c" - -SRC_URI = "ftp://oss.sgi.com/www/projects/libnuma/download/${BPN}-${PV}.tar.gz \ - file://fix-null-pointer.patch \ - file://Fix-the-test-output-format.patch \ - file://Makefile \ - file://run-ptest \ - " - -# ARM does not currently support NUMA -COMPATIBLE_HOST = "^((?!arm).*)$" - -do_install() { - oe_runmake DESTDIR=${D} prefix=${D}/usr libdir=${D}/${libdir} install - #remove the empty man2 directory - rm -r ${D}${mandir}/man2 -} - -do_install_ptest() { - #install tests binaries - local test_binaries="checkaffinity checktopology distance \ - ftok mbind_mig_pages migrate_pages move_pages mynode \ - nodemap pagesize prefered printcpu randmap realloc_test \ - regress regress2 runltp shmtest tbitmap tshared bind_range" - - [ ! -d ${D}/${PTEST_PATH}/test ] && mkdir -p ${D}/${PTEST_PATH}/test - for i in $test_binaries; do - install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test - done - install -m 0755 ${WORKDIR}/Makefile ${D}${PTEST_PATH}/ - install -m 0755 ${B}/numactl ${D}${PTEST_PATH}/ -} diff --git a/meta-oe/recipes-support/numactl/numactl_git.bb b/meta-oe/recipes-support/numactl/numactl_git.bb new file mode 100644 index 00000000000..b9cbcf09d0f --- /dev/null +++ b/meta-oe/recipes-support/numactl/numactl_git.bb @@ -0,0 +1,61 @@ +SUMMARY = "Development package for building Applications that use numa" +HOMEPAGE = "http://oss.sgi.com/projects/libnuma/" +DESCRIPTION = "Simple NUMA policy support. It consists of a numactl program \ +to run other programs with a specific NUMA policy and a libnuma to do \ +allocations with NUMA policy in applications." +LICENSE = "GPL-2.0 & LGPL-2.1" +SECTION = "apps" +RDEPENDS_${PN} = "perl" + +inherit autotools-brokensep ptest + +LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9" + +SRCREV = "ea3a70681c2f523fe58e1d44527f478ca76db74e" +PV = "2.0.11+git${SRCPV}" + +SRC_URI = "git://github.com/numactl/numactl \ + file://fix-null-pointer.patch \ + file://Fix-the-test-output-format.patch \ + file://Makefile \ + file://run-ptest \ + file://0001-define-run-test-target.patch \ +" + +S = "${WORKDIR}/git" + +# ARM does not currently support NUMA +COMPATIBLE_HOST = "^((?!arm).*)$" + +do_install() { + oe_runmake DESTDIR=${D} prefix=${D}/usr install + #remove the empty man2 directory + rm -r ${D}${mandir}/man2 +} + +do_compile_ptest() { + oe_runmake test +} + +do_install_ptest() { + #install tests binaries + local test_binaries="distance ftok mbind_mig_pages migrate_pages move_pages \ + mynode nodemap node-parse pagesize prefered randmap realloc_test \ + tbitmap tshared" + + [ ! -d ${D}/${PTEST_PATH}/test ] && mkdir -p ${D}/${PTEST_PATH}/test + for i in $test_binaries; do + install -m 0755 ${B}/test/.libs/$i ${D}${PTEST_PATH}/test + done + + local test_scripts="checktopology checkaffinity printcpu regress regress2 \ + shmtest runltp bind_range" + for i in $test_scripts; do + install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test + done + + install -m 0755 ${WORKDIR}/Makefile ${D}${PTEST_PATH}/ + install -m 0755 ${B}/.libs/numactl ${D}${PTEST_PATH}/ +} + +RDEPENDS_${PN}-ptest = "bash" diff --git a/meta-oe/recipes-support/ode/ode/configure.patch b/meta-oe/recipes-support/ode/ode/configure.patch deleted file mode 100644 index 246b2e2c27d..00000000000 --- a/meta-oe/recipes-support/ode/ode/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: ode-0.13/libccd/configure.ac -=================================================================== ---- ode-0.13.orig/libccd/configure.ac 2013-08-19 17:48:03.000000000 +0000 -+++ ode-0.13/libccd/configure.ac 2014-07-17 22:04:16.580595690 +0000 -@@ -5,7 +5,7 @@ - AC_INIT([libccd], [1.0], [danfis@danfis.cz]) - AC_CONFIG_SRCDIR([src/ccd.c]) - AC_CONFIG_HEADERS([src/config.h]) --AM_INIT_AUTOMAKE -+AM_INIT_AUTOMAKE([foreign]) - - # Checks for programs. - AC_PROG_CXX diff --git a/meta-oe/recipes-support/ode/ode_0.13.bb b/meta-oe/recipes-support/ode/ode_0.13.bb deleted file mode 100644 index 2dc82a8e1b4..00000000000 --- a/meta-oe/recipes-support/ode/ode_0.13.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "ODE is an Open Source Physics Engine" -SECTION = "libs" -HOMEPAGE = "http://www.ode.org" -LICENSE = "LGPLv2.1 & BSD" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=1de906ee96808d9776dd72a5f9a79a22 \ - file://LICENSE.TXT;md5=771782cb6245c7fbbe74bc0ec059beff \ -" -# LICENSE-BSD.TXT is missing in 0.13 tarball, but COPYING still says it's dual licensed -# and svn repo still contains LICENSE-BSD.TXT so maybe it will return in next tarball -# file://LICENSE-BSD.TXT;md5=c74e6304a772117e059458fb9763a928 - - -SRC_URI = "${SOURCEFORGE_MIRROR}/opende/ode-${PV}.tar.bz2 \ - file://configure.patch" -SRC_URI[md5sum] = "04b32c9645c147e18caff7a597a19f84" -SRC_URI[sha256sum] = "34ce3e236e313bf109a0cb5546d2fca462aed99f29a42e62bc1463b803c31ef9" - -inherit autotools binconfig - -EXTRA_OECONF = "--disable-demos --enable-soname" - -FILES_${PN} = "${libdir}/lib*${SOLIBS}" - -PACKAGECONFIG ?= "" -# if it isn't explicitly selected and "$build_os" == "$target_os", then configure will run -# series of AC_TRY_RUN which won't work for cross-compilation and configure fails -PACKAGECONFIG[double-precision] = "--enable-double-precision,--disable-double-precision" diff --git a/meta-oe/recipes-support/onig/onig_5.9.3.bb b/meta-oe/recipes-support/onig/onig_5.9.3.bb deleted file mode 100644 index 22db78afe7c..00000000000 --- a/meta-oe/recipes-support/onig/onig_5.9.3.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "Regular expressions library. The characteristics of this \ -library is that different character encoding for every regular expression \ -object can be specified." -HOMEPAGE = "http://www.geocities.jp/kosako3/oniguruma/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=0d4861b5bc0c392a5aa90d9d76ebd86f" - -SRC_URI = "http://www.geocities.jp/kosako3/oniguruma/archive/onig-${PV}.tar.gz \ - file://do-not-use-system-headers.patch \ - file://configure.patch" - -SRC_URI[md5sum] = "0d4eda2066d3c92970842a6790ce897a" -SRC_URI[sha256sum] = "c3bba66b2a84760e6582c40881db97c839d94f327870009724bb8b4d0c051f2a" - -DEPENDS = "libevent" - -inherit autotools binconfig diff --git a/meta-oe/recipes-support/onig/onig_5.9.6.bb b/meta-oe/recipes-support/onig/onig_5.9.6.bb new file mode 100644 index 00000000000..abbaf98c0a7 --- /dev/null +++ b/meta-oe/recipes-support/onig/onig_5.9.6.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Regular expressions library. The characteristics of this \ +library is that different character encoding for every regular expression \ +object can be specified." +HOMEPAGE = "https://web.archive.org/web/20150807014439/http://www.geocities.jp/kosako3/oniguruma/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=0d4861b5bc0c392a5aa90d9d76ebd86f" + +SRC_URI = "https://web.archive.org/web/20150807014439/http://www.geocities.jp/kosako3/oniguruma/archive/${BP}.tar.gz \ + file://do-not-use-system-headers.patch \ + file://configure.patch" + +SRC_URI[md5sum] = "d08f10ea5c94919780e6b7bed1ef9830" +SRC_URI[sha256sum] = "d5642010336a6f68b7f2e34b1f1cb14be333e4d95c2ac02b38c162caf44e47a7" + +BINCONFIG = "${bindir}/onig-config" + +inherit autotools binconfig-disabled + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb b/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb deleted file mode 100644 index e6942d01f80..00000000000 --- a/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "An encoder/decoder for the VCDIFF (RFC3284) format" -DESCRIPTION = "A library with a simple API is included, as well as a \ - command-line executable that can apply the encoder and \ - decoder to source, target, and delta files. \ - A slight variation from the draft standard is defined \ - to allow chunk-by-chunk decoding when only a partial \ - delta file window is available." -HOMEPAGE = "http://code.google.com/p/open-vcdiff/" -SECTION = "console/utils" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=ff820d4ddc1ba05b6fd37b41a21506f9" - -SRC_URI = "https://drive.google.com/uc?id=0B5WpIi2fQU1aNGJwVE9hUjU5clU&export=download;downloadfilename=${BP}.tar.gz" -SRC_URI[md5sum] = "5c0d378d907bebc38b51c3d7e4117011" -SRC_URI[sha256sum] = "2b142b1027fb0a62c41347600e01a53fa274dad15445a7da48083c830c3138b3" - -inherit autotools diff --git a/meta-oe/recipes-support/open-vm-tools/files/tools.conf b/meta-oe/recipes-support/open-vm-tools/files/tools.conf new file mode 100644 index 00000000000..f6cae70cc5c --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/files/tools.conf @@ -0,0 +1,2 @@ +[guestinfo] +disable-perf-mon=1 diff --git a/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service b/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service new file mode 100644 index 00000000000..d30e38055ca --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Open Virtual Machine Tools (VMware Tools) +ConditionVirtualization=vmware + +[Service] +ExecStart=/usr/bin/vmtoolsd +Restart=on-failure +KillSignal=SIGKILL + +[Install] +WantedBy=multi-user.target diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch new file mode 100644 index 00000000000..9773b4a9498 --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch @@ -0,0 +1,45 @@ +From a0983d84185f04c4e40778fe951fde4439894882 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 16 Jul 2017 07:37:03 -0700 +Subject: [PATCH 01/11] Remove assumptions about glibc being only libc + implementation on linux + +Signed-off-by: Khem Raj +--- + open-vm-tools/lib/file/fileIOPosix.c | 2 +- + open-vm-tools/lib/include/vm_basic_defs.h | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +Index: open-vm-tools/lib/file/fileIOPosix.c +=================================================================== +--- open-vm-tools.orig/lib/file/fileIOPosix.c ++++ open-vm-tools/lib/file/fileIOPosix.c +@@ -205,7 +205,7 @@ static AlignedPool alignedPool; + * are not available in any header file. + */ + +-#if defined(__linux__) && !defined(__ANDROID__) ++#if defined(__linux__) && defined(__GLIBC__) + #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) + /* + * We want preadv/pwritev. But due to FOB=64, the symbols are -64. +Index: open-vm-tools/lib/include/vm_basic_defs.h +=================================================================== +--- open-vm-tools.orig/lib/include/vm_basic_defs.h ++++ open-vm-tools/lib/include/vm_basic_defs.h +@@ -571,6 +571,7 @@ typedef int pid_t; + #if defined __linux__ && !defined __KERNEL__ && !defined MODULE && \ + !defined VMM && !defined FROBOS && !defined __ANDROID__ + #include ++#if __GLIBC__ + #if __GLIBC_PREREQ(2, 1) && !defined GLIBC_VERSION_21 + #define GLIBC_VERSION_21 + #endif +@@ -590,6 +591,7 @@ typedef int pid_t; + #define GLIBC_VERSION_212 + #endif + #endif ++#endif + + /* + * Convenience definitions of unicode characters. diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch new file mode 100644 index 00000000000..e9cb873f1ae --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch @@ -0,0 +1,41 @@ +From 929150608c16644695f19cd2e0cc8a06a41cd497 Mon Sep 17 00:00:00 2001 +From: Martin Kelly +Date: Fri, 7 Apr 2017 15:20:30 -0700 +Subject: [PATCH] configure.ac: don't use dnet-config + +The dnet-config tool doesn't know about cross-compilation, so it injects +-I/usr/include into the path, causing compiler errors. So instead find dnet via +-ldnet. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Martin Kelly +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 3400b86..7d6119e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -942,7 +942,7 @@ if test "$with_dnet" = "yes"; then + AC_VMW_CHECK_LIB([dnet], + [DNET], + [], +- [dnet-config], ++ [], + [], + [dnet.h], + [intf_open], +@@ -952,7 +952,7 @@ if test "$with_dnet" = "yes"; then + + if test $have_dnet = "no"; then + AC_MSG_ERROR( +- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) ++ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) + fi + fi + +-- +2.1.4 + diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch new file mode 100644 index 00000000000..f905601d52a --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch @@ -0,0 +1,33 @@ +From 5818acc8032e3247257730376e947330340a07b3 Mon Sep 17 00:00:00 2001 +From: Martin Kelly +Date: Mon, 22 May 2017 17:00:05 -0700 +Subject: [PATCH 2/2] add #include + +In newer glibc versions, the definition for major() has been moved to +sys/sysmacros.h, and using the older version in has been +deprecated. So, add an include for . + +Upstream-Status: Pending + +Signed-off-by: Martin Kelly +--- + lib/wiper/wiperPosix.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/open-vm-tools/lib/wiper/wiperPosix.c b/open-vm-tools/lib/wiper/wiperPosix.c +index d389eee..1f221fc 100644 +--- a/lib/wiper/wiperPosix.c ++++ b/lib/wiper/wiperPosix.c +@@ -40,6 +40,9 @@ + # include + # endif /* __FreeBSD_version >= 500000 */ + #endif ++#if defined(__linux__) ++#include ++#endif + #include + + #include "vmware.h" +-- +2.7.4 + diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch new file mode 100644 index 00000000000..d26bf2dd30f --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch @@ -0,0 +1,24 @@ +From d44c7c9de7380ad7b284231bd5b5c99b5c19758d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 16 Jul 2017 07:37:59 -0700 +Subject: [PATCH 02/11] include poll.h instead of obsolete sys/poll.h + +Signed-off-by: Khem Raj +--- + open-vm-tools/lib/asyncsocket/asyncSocketInt.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: open-vm-tools/lib/asyncsocket/asyncSocketInt.h +=================================================================== +--- open-vm-tools.orig/lib/asyncsocket/asyncSocketInt.h ++++ open-vm-tools/lib/asyncsocket/asyncSocketInt.h +@@ -71,8 +71,8 @@ + #else + #include + #include ++#include + #include +-#include + #include + #include + #include diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch new file mode 100644 index 00000000000..8641778d0e9 --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch @@ -0,0 +1,756 @@ +From 687fca20b3417ac885b6961e6fe1126d4a3fe7a4 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Tue, 17 Nov 2015 10:57:31 +0000 +Subject: [PATCH 03/11] Rename poll.h to vm_poll.h + +musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this +we rename poll.h to vm_poll.h. + +Signed-off-by: Natanael Copa +--- + open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +- + open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +- + open-vm-tools/lib/include/asyncsocket.h | 2 +- + open-vm-tools/lib/include/pollImpl.h | 2 +- + open-vm-tools/lib/include/{poll.h => vm_poll.h} | 0 + open-vm-tools/lib/rpcIn/rpcin.c | 2 +- + open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +- + 7 files changed, 6 insertions(+), 6 deletions(-) + rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (100%) + +Index: open-vm-tools/lib/asyncsocket/asyncsocket.c +=================================================================== +--- open-vm-tools.orig/lib/asyncsocket/asyncsocket.c ++++ open-vm-tools/lib/asyncsocket/asyncsocket.c +@@ -52,7 +52,7 @@ + #include "vmware.h" + #include "asyncsocket.h" + #include "asyncSocketInt.h" +-#include "poll.h" ++#include "vm_poll.h" + #include "log.h" + #include "err.h" + #include "hostinfo.h" +Index: open-vm-tools/lib/hgfsServer/hgfsServer.c +=================================================================== +--- open-vm-tools.orig/lib/hgfsServer/hgfsServer.c ++++ open-vm-tools/lib/hgfsServer/hgfsServer.c +@@ -48,7 +48,7 @@ + #include "hgfsServerOplock.h" + #include "hgfsDirNotify.h" + #include "userlock.h" +-#include "poll.h" ++#include "vm_poll.h" + #include "mutexRankLib.h" + #include "vm_basic_asm.h" + #include "unicodeOperations.h" +Index: open-vm-tools/lib/include/asyncsocket.h +=================================================================== +--- open-vm-tools.orig/lib/include/asyncsocket.h ++++ open-vm-tools/lib/include/asyncsocket.h +@@ -129,7 +129,7 @@ typedef struct AsyncSocket AsyncSocket; + * Or the client can specify its favorite poll class and locking behavior. + * Use of IVmdbPoll is only supported for regular sockets and for Attach. + */ +-#include "poll.h" ++#include "vm_poll.h" + struct IVmdbPoll; + typedef struct AsyncSocketPollParams { + int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ +Index: open-vm-tools/lib/include/poll.h +=================================================================== +--- open-vm-tools.orig/lib/include/poll.h ++++ /dev/null +@@ -1,324 +0,0 @@ +-/********************************************************* +- * Copyright (C) 1998-2016 VMware, Inc. All rights reserved. +- * +- * This program is free software; you can redistribute it and/or modify it +- * under the terms of the GNU Lesser General Public License as published +- * by the Free Software Foundation version 2.1 and no later version. +- * +- * This program is distributed in the hope that it will be useful, but +- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +- * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public +- * License for more details. +- * +- * You should have received a copy of the GNU Lesser General Public License +- * along with this program; if not, write to the Free Software Foundation, Inc., +- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- *********************************************************/ +- +-/********************************************************* +- * The contents of this file are subject to the terms of the Common +- * Development and Distribution License (the "License") version 1.0 +- * and no later version. You may not use this file except in +- * compliance with the License. +- * +- * You can obtain a copy of the License at +- * http://www.opensource.org/licenses/cddl1.php +- * +- * See the License for the specific language governing permissions +- * and limitations under the License. +- * +- *********************************************************/ +- +- +-#ifndef _POLL_H_ +-#define _POLL_H_ +- +-#define INCLUDE_ALLOW_USERLEVEL +-#define INCLUDE_ALLOW_VMCORE +-#include "includeCheck.h" +- +-#include "vm_basic_types.h" +-#include "vm_basic_defs.h" +-#include "vmware.h" +-#include "userlock.h" +- +-#ifdef _WIN32 +-#define HZ 100 +-#elif defined linux +-#include +-#elif __APPLE__ +-#include +-/* +- * Old SDKs don't define TARGET_OS_IPHONE at all. +- * New ones define it to 0 on Mac OS X, 1 on iOS. +- */ +-#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 +-#include +-#endif +-#include +-#define HZ 100 +-#endif +-#ifdef __ANDROID__ +-/* +- * of android should be included, but its name is same +- * with this file. So its content is put here to avoid conflict. +- */ +-#include +-#define HZ 100 +-typedef unsigned int nfds_t; +-int poll(struct pollfd *, nfds_t, long); +-#endif +- +- +-/* +- * Poll event types: each type has a different reason for firing, +- * or condition that must be met before firing. +- */ +- +-typedef enum { +- /* +- * Actual Poll queue types against which you can register callbacks. +- */ +- POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ +- POLL_VTIME = 0, +- POLL_REALTIME, +- POLL_DEVICE, +- POLL_MAIN_LOOP, +- POLL_NUM_QUEUES +-} PollEventType; +- +- +-/* +- * Classes of events +- * +- * These are the predefined classes. More can be declared +- * with Poll_AllocClass(). +- */ +- +-typedef enum PollClass { +- POLL_CLASS_MAIN, +- POLL_CLASS_PAUSE, +- POLL_CLASS_IPC, +- POLL_CLASS_CPT, +- POLL_CLASS_MKS, +- POLL_FIXED_CLASSES, +- POLL_MAX_CLASSES = 320 /* Size enum to maximum */ +-} PollClass; +- +- +-/* +- * Each callback is registered in a set of classes +- */ +- +-typedef struct PollClassSet { +- /* Type is uintptr_t to give best 32/64-bit code. */ +-#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8) +- uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)]; +-} PollClassSet; +- +-/* An empty PollClassSet. */ +-static INLINE PollClassSet +-PollClassSet_Empty(void) +-{ +- PollClassSet set = { { 0 } }; +- return set; +-} +- +-/* A PollClassSet with the single member. */ +-static INLINE PollClassSet +-PollClassSet_Singleton(PollClass c) +-{ +- PollClassSet s = PollClassSet_Empty(); +- +- ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */ +- ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */ +- ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE); +- ASSERT(c < POLL_MAX_CLASSES); +- +- s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE); +- return s; +-} +- +-/* Combine two PollClassSets. */ +-static INLINE PollClassSet +-PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) +-{ +- PollClassSet u; +- unsigned i; +- +- for (i = 0; i < ARRAYSIZE(u.bits); i++) { +- u.bits[i] = lhs.bits[i] | rhs.bits[i]; +- } +- return u; +-} +- +-/* Add single class to PollClassSet. */ +-static INLINE PollClassSet +-PollClassSet_Include(PollClassSet set, PollClass c) +-{ +- return PollClassSet_Union(set, PollClassSet_Singleton(c)); +-} +- +- +-#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) +-#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ +- PollClassSet_Singleton(POLL_CLASS_PAUSE)) +-#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ +- PollClassSet_Singleton(POLL_CLASS_CPT)) +-#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ +- PollClassSet_Singleton(POLL_CLASS_IPC)) +-#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ +-#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) +-/* +- * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. +- */ +-#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) +- +-/* +- * Poll class-set taxonomy: +- * POLL_CS_MAIN +- * - Unless you NEED another class, use POLL_CS_MAIN. +- * POLL_CS_PAUSE +- * - For callbacks that must occur even if the guest is paused. +- * Most VMDB or Foundry commands are in this category. +- * POLL_CS_CPT +- * - Only for callbacks which can trigger intermediate Checkpoint +- * transitions. +- * The ONLY such callback is Migrate. +- * POLL_CS_IPC +- * - Only for callbacks which can contain Msg_(Post|Hint|Question) +- * responses, and for signal handlers (why)? +- * Vigor, VMDB, and Foundry can contain Msg_* responses. +- * POLL_CS_MKS +- * - Callback runs in MKS thread. +- * POLL_CS_ALWAYS +- * - Only for events that must be processed immediately. +- * The ONLY such callback is OvhdMemVmxSizeCheck. +- */ +- +- +-/* +- * Poll_Callback flags +- */ +- +-#define POLL_FLAG_PERIODIC 0x01 // keep after firing +-#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory +-#define POLL_FLAG_READ 0x04 // device is ready for reading +-#define POLL_FLAG_WRITE 0x08 // device is ready for writing +-#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket +-#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking +-#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events +-#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. +-#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl +-#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop +- +- +-/* +- * Advisory minimum time period. +- * Users that want the fastest running real-time poll +- * should use TICKS_TO_USECS(1). +- */ +- +-#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ)) +-#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ)) +- +- +-typedef void (*PollerFunction)(void *clientData); +-typedef void (*PollerFireWrapper)(PollerFunction func, +- void *funcData, +- void *wrapperData); +-typedef Bool (*PollerErrorFn)(const char *errorStr); +- +-/* +- * Initialisers: +- * +- * For the sake of convenience, we declare the initialisers +- * for custom implmentations here, even though the actual +- * implementations are distinct from the core poll code. +- */ +- +-typedef struct PollOptions { +- Bool locked; // Use internal MXUser for locking +- Bool allowFullQueue; // Don't assert when device event queue is full. +- VThreadID windowsMsgThread; // thread that processes Windows messages +- PollerFireWrapper fireWrapperFn; // optional; may be useful for stats +- void *fireWrapperData; // optional +- PollerErrorFn errorFn; // optional; called upon unrecoverable error +-} PollOptions; +- +- +-void Poll_InitDefault(void); +-void Poll_InitDefaultEx(const PollOptions *opts); +-void Poll_InitGtk(void); // On top of glib for Linux +-void Poll_InitCF(void); // On top of CoreFoundation for OSX +- +- +-/* +- * Functions +- */ +-int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); +-void Poll_Loop(Bool loop, Bool *exit, PollClass c); +-void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); +-Bool Poll_LockingEnabled(void); +-void Poll_Exit(void); +- +- +-/* +- * Poll_Callback adds a callback regardless of whether an identical one exists. +- * +- * Likewise, Poll_CallbackRemove removes exactly one callback. +- */ +- +-VMwareStatus Poll_Callback(PollClassSet classSet, +- int flags, +- PollerFunction f, +- void *clientData, +- PollEventType type, +- PollDevHandle info, // fd/microsec delay +- MXUserRecLock *lck); +-Bool Poll_CallbackRemove(PollClassSet classSet, +- int flags, +- PollerFunction f, +- void *clientData, +- PollEventType type); +-Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, +- int flags, +- PollerFunction f, +- PollEventType type, +- void **clientData); +- +-void Poll_NotifyChange(PollClassSet classSet); +- +-/* +- * Wrappers for Poll_Callback and Poll_CallbackRemove that present +- * simpler subsets of those interfaces. +- */ +- +-VMwareStatus Poll_CB_Device(PollerFunction f, +- void *clientData, +- PollDevHandle device, +- Bool periodic); +- +-Bool Poll_CB_DeviceRemove(PollerFunction f, +- void *clientData, +- Bool periodic); +- +- +-VMwareStatus Poll_CB_RTime(PollerFunction f, +- void *clientData, +- int delay, // microseconds +- Bool periodic, +- MXUserRecLock *lock); +- +-Bool Poll_CB_RTimeRemove(PollerFunction f, +- void *clientData, +- Bool periodic); +- +- +-#ifdef _WIN32 +-void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); +-Bool Poll_FireWndCallback(void *lparam); +-#endif +- +-#endif // _POLL_H_ +Index: open-vm-tools/lib/include/pollImpl.h +=================================================================== +--- open-vm-tools.orig/lib/include/pollImpl.h ++++ open-vm-tools/lib/include/pollImpl.h +@@ -44,7 +44,7 @@ + #define INCLUDE_ALLOW_USERLEVEL + #include "includeCheck.h" + +-#include "poll.h" ++#include "vm_poll.h" + + /* + * PollImpl: +Index: open-vm-tools/lib/include/vm_poll.h +=================================================================== +--- /dev/null ++++ open-vm-tools/lib/include/vm_poll.h +@@ -0,0 +1,324 @@ ++/********************************************************* ++ * Copyright (C) 1998-2016 VMware, Inc. All rights reserved. ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published ++ * by the Free Software Foundation version 2.1 and no later version. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public ++ * License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ *********************************************************/ ++ ++/********************************************************* ++ * The contents of this file are subject to the terms of the Common ++ * Development and Distribution License (the "License") version 1.0 ++ * and no later version. You may not use this file except in ++ * compliance with the License. ++ * ++ * You can obtain a copy of the License at ++ * http://www.opensource.org/licenses/cddl1.php ++ * ++ * See the License for the specific language governing permissions ++ * and limitations under the License. ++ * ++ *********************************************************/ ++ ++ ++#ifndef _POLL_H_ ++#define _POLL_H_ ++ ++#define INCLUDE_ALLOW_USERLEVEL ++#define INCLUDE_ALLOW_VMCORE ++#include "includeCheck.h" ++ ++#include "vm_basic_types.h" ++#include "vm_basic_defs.h" ++#include "vmware.h" ++#include "userlock.h" ++ ++#ifdef _WIN32 ++#define HZ 100 ++#elif defined linux ++#include ++#elif __APPLE__ ++#include ++/* ++ * Old SDKs don't define TARGET_OS_IPHONE at all. ++ * New ones define it to 0 on Mac OS X, 1 on iOS. ++ */ ++#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 ++#include ++#endif ++#include ++#define HZ 100 ++#endif ++#ifdef __ANDROID__ ++/* ++ * of android should be included, but its name is same ++ * with this file. So its content is put here to avoid conflict. ++ */ ++#include ++#define HZ 100 ++typedef unsigned int nfds_t; ++int poll(struct pollfd *, nfds_t, long); ++#endif ++ ++ ++/* ++ * Poll event types: each type has a different reason for firing, ++ * or condition that must be met before firing. ++ */ ++ ++typedef enum { ++ /* ++ * Actual Poll queue types against which you can register callbacks. ++ */ ++ POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ ++ POLL_VTIME = 0, ++ POLL_REALTIME, ++ POLL_DEVICE, ++ POLL_MAIN_LOOP, ++ POLL_NUM_QUEUES ++} PollEventType; ++ ++ ++/* ++ * Classes of events ++ * ++ * These are the predefined classes. More can be declared ++ * with Poll_AllocClass(). ++ */ ++ ++typedef enum PollClass { ++ POLL_CLASS_MAIN, ++ POLL_CLASS_PAUSE, ++ POLL_CLASS_IPC, ++ POLL_CLASS_CPT, ++ POLL_CLASS_MKS, ++ POLL_FIXED_CLASSES, ++ POLL_MAX_CLASSES = 320 /* Size enum to maximum */ ++} PollClass; ++ ++ ++/* ++ * Each callback is registered in a set of classes ++ */ ++ ++typedef struct PollClassSet { ++ /* Type is uintptr_t to give best 32/64-bit code. */ ++#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8) ++ uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)]; ++} PollClassSet; ++ ++/* An empty PollClassSet. */ ++static INLINE PollClassSet ++PollClassSet_Empty(void) ++{ ++ PollClassSet set = { { 0 } }; ++ return set; ++} ++ ++/* A PollClassSet with the single member. */ ++static INLINE PollClassSet ++PollClassSet_Singleton(PollClass c) ++{ ++ PollClassSet s = PollClassSet_Empty(); ++ ++ ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */ ++ ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */ ++ ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE); ++ ASSERT(c < POLL_MAX_CLASSES); ++ ++ s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE); ++ return s; ++} ++ ++/* Combine two PollClassSets. */ ++static INLINE PollClassSet ++PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) ++{ ++ PollClassSet u; ++ unsigned i; ++ ++ for (i = 0; i < ARRAYSIZE(u.bits); i++) { ++ u.bits[i] = lhs.bits[i] | rhs.bits[i]; ++ } ++ return u; ++} ++ ++/* Add single class to PollClassSet. */ ++static INLINE PollClassSet ++PollClassSet_Include(PollClassSet set, PollClass c) ++{ ++ return PollClassSet_Union(set, PollClassSet_Singleton(c)); ++} ++ ++ ++#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) ++#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ ++ PollClassSet_Singleton(POLL_CLASS_PAUSE)) ++#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ ++ PollClassSet_Singleton(POLL_CLASS_CPT)) ++#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ ++ PollClassSet_Singleton(POLL_CLASS_IPC)) ++#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ ++#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) ++/* ++ * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. ++ */ ++#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) ++ ++/* ++ * Poll class-set taxonomy: ++ * POLL_CS_MAIN ++ * - Unless you NEED another class, use POLL_CS_MAIN. ++ * POLL_CS_PAUSE ++ * - For callbacks that must occur even if the guest is paused. ++ * Most VMDB or Foundry commands are in this category. ++ * POLL_CS_CPT ++ * - Only for callbacks which can trigger intermediate Checkpoint ++ * transitions. ++ * The ONLY such callback is Migrate. ++ * POLL_CS_IPC ++ * - Only for callbacks which can contain Msg_(Post|Hint|Question) ++ * responses, and for signal handlers (why)? ++ * Vigor, VMDB, and Foundry can contain Msg_* responses. ++ * POLL_CS_MKS ++ * - Callback runs in MKS thread. ++ * POLL_CS_ALWAYS ++ * - Only for events that must be processed immediately. ++ * The ONLY such callback is OvhdMemVmxSizeCheck. ++ */ ++ ++ ++/* ++ * Poll_Callback flags ++ */ ++ ++#define POLL_FLAG_PERIODIC 0x01 // keep after firing ++#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory ++#define POLL_FLAG_READ 0x04 // device is ready for reading ++#define POLL_FLAG_WRITE 0x08 // device is ready for writing ++#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket ++#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking ++#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events ++#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. ++#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl ++#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop ++ ++ ++/* ++ * Advisory minimum time period. ++ * Users that want the fastest running real-time poll ++ * should use TICKS_TO_USECS(1). ++ */ ++ ++#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ)) ++#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ)) ++ ++ ++typedef void (*PollerFunction)(void *clientData); ++typedef void (*PollerFireWrapper)(PollerFunction func, ++ void *funcData, ++ void *wrapperData); ++typedef Bool (*PollerErrorFn)(const char *errorStr); ++ ++/* ++ * Initialisers: ++ * ++ * For the sake of convenience, we declare the initialisers ++ * for custom implmentations here, even though the actual ++ * implementations are distinct from the core poll code. ++ */ ++ ++typedef struct PollOptions { ++ Bool locked; // Use internal MXUser for locking ++ Bool allowFullQueue; // Don't assert when device event queue is full. ++ VThreadID windowsMsgThread; // thread that processes Windows messages ++ PollerFireWrapper fireWrapperFn; // optional; may be useful for stats ++ void *fireWrapperData; // optional ++ PollerErrorFn errorFn; // optional; called upon unrecoverable error ++} PollOptions; ++ ++ ++void Poll_InitDefault(void); ++void Poll_InitDefaultEx(const PollOptions *opts); ++void Poll_InitGtk(void); // On top of glib for Linux ++void Poll_InitCF(void); // On top of CoreFoundation for OSX ++ ++ ++/* ++ * Functions ++ */ ++int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); ++void Poll_Loop(Bool loop, Bool *exit, PollClass c); ++void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); ++Bool Poll_LockingEnabled(void); ++void Poll_Exit(void); ++ ++ ++/* ++ * Poll_Callback adds a callback regardless of whether an identical one exists. ++ * ++ * Likewise, Poll_CallbackRemove removes exactly one callback. ++ */ ++ ++VMwareStatus Poll_Callback(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ void *clientData, ++ PollEventType type, ++ PollDevHandle info, // fd/microsec delay ++ MXUserRecLock *lck); ++Bool Poll_CallbackRemove(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ void *clientData, ++ PollEventType type); ++Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, ++ int flags, ++ PollerFunction f, ++ PollEventType type, ++ void **clientData); ++ ++void Poll_NotifyChange(PollClassSet classSet); ++ ++/* ++ * Wrappers for Poll_Callback and Poll_CallbackRemove that present ++ * simpler subsets of those interfaces. ++ */ ++ ++VMwareStatus Poll_CB_Device(PollerFunction f, ++ void *clientData, ++ PollDevHandle device, ++ Bool periodic); ++ ++Bool Poll_CB_DeviceRemove(PollerFunction f, ++ void *clientData, ++ Bool periodic); ++ ++ ++VMwareStatus Poll_CB_RTime(PollerFunction f, ++ void *clientData, ++ int delay, // microseconds ++ Bool periodic, ++ MXUserRecLock *lock); ++ ++Bool Poll_CB_RTimeRemove(PollerFunction f, ++ void *clientData, ++ Bool periodic); ++ ++ ++#ifdef _WIN32 ++void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); ++Bool Poll_FireWndCallback(void *lparam); ++#endif ++ ++#endif // _POLL_H_ +Index: open-vm-tools/lib/rpcIn/rpcin.c +=================================================================== +--- open-vm-tools.orig/lib/rpcIn/rpcin.c ++++ open-vm-tools/lib/rpcIn/rpcin.c +@@ -57,7 +57,7 @@ + + #if defined(VMTOOLS_USE_VSOCKET) + # include +-# include "poll.h" ++# include "vm_poll.h" + # include "asyncsocket.h" + # include "vmci_defs.h" + #include "dataMap.h" +Index: open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c +=================================================================== +--- open-vm-tools.orig/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c ++++ open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c +@@ -48,7 +48,7 @@ + #include "rpcout.h" + #include "rabbitmqProxyConst.h" + #include "vm_basic_types.h" +-#include "poll.h" ++#include "vm_poll.h" + #ifdef OPEN_VM_TOOLS + #include "vmci_sockets.h" + #include "sslDirect.h" diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch new file mode 100644 index 00000000000..010516761ff --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch @@ -0,0 +1,31 @@ +From cdb0b3c898c6b6b6c8259d9ddb8b00163ac5e419 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 16 Jul 2017 09:43:18 -0700 +Subject: [PATCH 04/11] Add -Wno-incompatible-pointer-types and + -Wno-error=address + +Signed-off-by: Khem Raj +--- + open-vm-tools/lib/dynxdr/Makefile.am | 2 +- + open-vm-tools/lib/file/Makefile.am | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +Index: open-vm-tools/lib/dynxdr/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/dynxdr/Makefile.am ++++ open-vm-tools/lib/dynxdr/Makefile.am +@@ -20,4 +20,4 @@ noinst_LTLIBRARIES = libDynxdr.la + libDynxdr_la_SOURCES = + libDynxdr_la_SOURCES += dynxdr.c + libDynxdr_la_SOURCES += xdrutil.c +- ++libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types +Index: open-vm-tools/lib/file/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/file/Makefile.am ++++ open-vm-tools/lib/file/Makefile.am +@@ -27,3 +27,4 @@ libFile_la_SOURCES += fileLockPrimitive. + libFile_la_SOURCES += fileLockPosix.c + libFile_la_SOURCES += fileTempPosix.c + libFile_la_SOURCES += fileTemp.c ++libFile_la_CPPFLAGS = -Wno-error=address diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch new file mode 100644 index 00000000000..f02d00f8419 --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch @@ -0,0 +1,45 @@ +From bf1eafb07297711baf9320b1edcca8a3376f117d Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Wed, 18 Nov 2015 09:03:00 +0000 +Subject: [PATCH 05/11] Use configure test for struct timespec + +Use the configure script to test for struct time spec instead of trying +to keep track of what platforms has it. + +Signed-off-by: Natanael Copa +--- + open-vm-tools/configure.ac | 1 + + open-vm-tools/lib/include/hgfsUtil.h | 8 +------- + 2 files changed, 2 insertions(+), 7 deletions(-) + +Index: open-vm-tools/configure.ac +=================================================================== +--- open-vm-tools.orig/configure.ac ++++ open-vm-tools/configure.ac +@@ -1127,6 +1127,7 @@ AC_TYPE_OFF_T + AC_TYPE_PID_T + AC_TYPE_SIZE_T + AC_CHECK_MEMBERS([struct stat.st_rdev]) ++AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include ]]) + AC_HEADER_TIME + AC_STRUCT_TM + AC_C_VOLATILE +Index: open-vm-tools/lib/include/hgfsUtil.h +=================================================================== +--- open-vm-tools.orig/lib/include/hgfsUtil.h ++++ open-vm-tools/lib/include/hgfsUtil.h +@@ -53,13 +53,7 @@ + # include + # endif + # include "vm_basic_types.h" +-# if !defined _STRUCT_TIMESPEC && \ +- !defined _TIMESPEC_DECLARED && \ +- !defined __timespec_defined && \ +- !defined sun && \ +- !defined __FreeBSD__ && \ +- !__APPLE__ && \ +- !defined _WIN32 ++# if !defined HAVE_STRUCT_TIMESPEC_TV_SEC + struct timespec { + time_t tv_sec; + long tv_nsec; diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch new file mode 100644 index 00000000000..d1f4eff9be5 --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch @@ -0,0 +1,58 @@ +From 31ae6f42458f90d4994a4ad8e2b7673691612c36 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Wed, 18 Nov 2015 09:10:14 +0000 +Subject: [PATCH 06/11] Fix definition of ALLPERMS and ACCESSPERMS + +The ALLPERMS and ACCESSPERMS defines are not specified in POSIX so +assume it is not there instead of testing for specific implementations. + +This is needed for musl libc. + +Signed-off-by: Natanael Copa +--- + open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 8 +++++--- + open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c | 3 +-- + 2 files changed, 6 insertions(+), 5 deletions(-) + +Index: open-vm-tools/lib/hgfsServer/hgfsServerLinux.c +=================================================================== +--- open-vm-tools.orig/lib/hgfsServer/hgfsServerLinux.c ++++ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c +@@ -107,11 +107,13 @@ typedef struct DirectoryEntry { + #endif + + /* +- * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the +- * Solaris version of . ++ * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in ++ * POSIX. + */ +-#ifdef sun ++#ifndef ACCESSPERMS + # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) ++#endif ++#ifndef ALLPERMS + # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) + #endif + +Index: open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c +=================================================================== +--- open-vm-tools.orig/services/plugins/dndcp/dnd/dndLinux.c ++++ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c +@@ -51,7 +51,7 @@ + + #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO) + #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) +-#ifdef sun ++#ifndef ACCESSPERMS + #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) + #endif + #ifdef __ANDROID__ +@@ -60,7 +60,6 @@ + */ + #define NO_SETMNTENT + #define NO_ENDMNTENT +-#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) + #endif + + diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch new file mode 100644 index 00000000000..5adf9b0f902 --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch @@ -0,0 +1,144 @@ +From 6cc1c22cc30320f56da552a76bd956db8f255b6a Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Wed, 18 Nov 2015 10:05:07 +0000 +Subject: [PATCH 07/11] Use configure to test for feature instead of platform + +Test for various functions instead of trying to keep track of what +platform and what version of the given platform has support for what. + +This should make it easier to port to currently unknown platforms and +will solve the issue if a platform add support for a missing feature in +the future. + +The features we test for are: +- getifaddrs +- getauxval +- issetugid +- __secure_getenv + +This is needed for musl libc. + +Signed-off-by: Natanael Copa +--- + open-vm-tools/configure.ac | 4 ++++ + open-vm-tools/lib/misc/idLinux.c | 30 ++++++++++++++---------------- + open-vm-tools/lib/nicInfo/nicInfoPosix.c | 8 ++++++-- + 3 files changed, 24 insertions(+), 18 deletions(-) + +Index: open-vm-tools/configure.ac +=================================================================== +--- open-vm-tools.orig/configure.ac ++++ open-vm-tools/configure.ac +@@ -798,6 +798,7 @@ AC_CHECK_FUNCS( + + AC_CHECK_FUNCS([ecvt]) + AC_CHECK_FUNCS([fcvt]) ++AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv]) + + AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes]) + +@@ -1063,10 +1064,13 @@ AC_PATH_PROG( + ### + + AC_CHECK_HEADERS([crypt.h]) ++AC_CHECK_HEADERS([ifaddrs.h]) + AC_CHECK_HEADERS([inttypes.h]) + AC_CHECK_HEADERS([stdint.h]) + AC_CHECK_HEADERS([stdlib.h]) + AC_CHECK_HEADERS([wchar.h]) ++AC_CHECK_HEADERS([net/if.h]) ++AC_CHECK_HEADERS([sys/auxv.h]) + AC_CHECK_HEADERS([sys/inttypes.h]) + AC_CHECK_HEADERS([sys/io.h]) + AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD +Index: open-vm-tools/lib/misc/idLinux.c +=================================================================== +--- open-vm-tools.orig/lib/misc/idLinux.c ++++ open-vm-tools/lib/misc/idLinux.c +@@ -27,12 +27,9 @@ + #include + #include + #include +-#ifdef __linux__ +-#if defined(__GLIBC__) && \ +- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) ++#ifdef HAVE_SYS_AUXV_H + #include + #endif +-#endif + #ifdef __APPLE__ + #include + #include +@@ -997,31 +994,32 @@ Id_EndSuperUser(uid_t uid) // IN: + static Bool + IdIsSetUGid(void) + { +-#if defined(__ANDROID__) +- /* Android does not have a secure_getenv, so be conservative. */ +- return TRUE; +-#else + /* + * We use __secure_getenv, which returns NULL if the binary is +- * setuid or setgid. Alternatives include, ++ * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not ++ * available. Alternatives include, + * +- * a) getauxval(AT_SECURE); not available until glibc 2.16. +- * b) __libc_enable_secure; may not be exported. ++ * a) issetugid(); not (yet?) available in glibc. ++ * b) getauxval(AT_SECURE); not available until glibc 2.16. ++ * c) __libc_enable_secure; may not be exported. + * +- * Use (a) when we are based on glibc 2.16, or newer. ++ * Use (b) when we are based on glibc 2.16, or newer. + */ + +-#if defined(__GLIBC__) && \ +- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) ++#if HAVE_ISSETUGID ++ return issetugid(); ++#elif HAVE_GETAUXVAL + return getauxval(AT_SECURE) != 0; +-#else ++#elif HAVE___SECURE_GETENV + static const char envName[] = "VMW_SETUGID_TEST"; + + if (setenv(envName, "1", TRUE) == -1) { + return TRUE; /* Conservative */ + } + return __secure_getenv(envName) == NULL; +-#endif ++#else ++ /* Android does not have a secure_getenv, so be conservative. */ ++ return TRUE; + #endif + } + #endif +Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c +=================================================================== +--- open-vm-tools.orig/lib/nicInfo/nicInfoPosix.c ++++ open-vm-tools/lib/nicInfo/nicInfoPosix.c +@@ -34,9 +34,13 @@ + #include + #include + #include +-#if defined(__FreeBSD__) || defined(__APPLE__) ++#if HAVE_SYS_SYSCTL_H + # include ++#endif ++#if HAVE_IFADDRS_H + # include ++#endif ++#if HAVE_NET_IF_H + # include + #endif + #ifndef NO_DNET +@@ -348,7 +352,7 @@ GuestInfoGetNicInfo(NicInfoV3 *nicInfo) + * + ****************************************************************************** + */ +-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(USERWORLD) ++#if defined(NO_DNET) && defined(HAVE_GETIFADDRS) + + char * + GuestInfoGetPrimaryIP(void) diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch new file mode 100644 index 00000000000..3d1291c9fae --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch @@ -0,0 +1,30 @@ +From d4d1e7146ca2698089f6bd532f2fb8b9c1134ca7 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Mon, 2 Jan 2017 14:39:27 +0000 +Subject: [PATCH 08/11] use posix strerror_r unless gnu + +--- + open-vm-tools/lib/err/errPosix.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +Index: open-vm-tools/lib/err/errPosix.c +=================================================================== +--- open-vm-tools.orig/lib/err/errPosix.c ++++ open-vm-tools/lib/err/errPosix.c +@@ -63,11 +63,13 @@ ErrErrno2String(Err_Number errorNumber, + { + char *p; + +-#if defined(linux) && !defined(N_PLAT_NLM) && !defined(__ANDROID__) ++#if defined(__GLIBC__) + p = strerror_r(errorNumber, buf, bufSize); + #else +- p = strerror(errorNumber); +-#endif ++ if (strerror_r(errorNumber, buf, bufSize) != 0) ++ snprintf(buf, bufSize, "unknown error %i", errorNumber); ++ p = buf; ++#endif /* defined __GLIBC__ */ + ASSERT(p != NULL); + return p; + } diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch new file mode 100644 index 00000000000..2bee5ac8217 --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch @@ -0,0 +1,342 @@ +From 5ae6c662fefa621f4600559e299a7d97c2254e69 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Sun, 16 Jul 2017 10:20:10 -0700 +Subject: [PATCH 1/3] Add support for building with system libtirpc + +Signed-off-by: Natanael Copa +Signed-off-by: Khem Raj + +--- + open-vm-tools/configure.ac | 14 ++++++++++++++ + open-vm-tools/lib/dynxdr/Makefile.am | 8 ++++++-- + open-vm-tools/lib/err/errPosix.c | 1 + + open-vm-tools/lib/guestRpc/Makefile.am | 6 ++++++ + open-vm-tools/lib/misc/Makefile.am | 1 + + open-vm-tools/lib/netUtil/Makefile.am | 4 ++++ + open-vm-tools/lib/nicInfo/Makefile.am | 2 ++ + open-vm-tools/lib/rpcChannel/Makefile.am | 4 ++++ + open-vm-tools/lib/slashProc/Makefile.am | 4 ++++ + open-vm-tools/lib/string/bsd_output_shared.c | 2 +- + open-vm-tools/libguestlib/Makefile.am | 2 ++ + open-vm-tools/rpctool/Makefile.am | 3 +++ + open-vm-tools/rpctool/rpctool.c | 2 ++ + open-vm-tools/services/plugins/dndcp/Makefile.am | 2 ++ + open-vm-tools/services/plugins/guestInfo/Makefile.am | 1 + + open-vm-tools/services/plugins/resolutionSet/Makefile.am | 2 ++ + open-vm-tools/services/plugins/vix/Makefile.am | 2 ++ + open-vm-tools/services/plugins/vmbackup/Makefile.am | 2 ++ + open-vm-tools/toolbox/Makefile.am | 2 ++ + 19 files changed, 61 insertions(+), 3 deletions(-) + +Index: open-vm-tools/configure.ac +=================================================================== +--- open-vm-tools.orig/configure.ac ++++ open-vm-tools/configure.ac +@@ -405,6 +405,20 @@ AC_VMW_CHECK_LIB([fuse], + AC_MSG_WARN([Fuse is missing, vmblock-fuse/vmhgfs-fuse will be disabled.])]) + + # ++# Check for libtirpc ++# ++AC_VMW_CHECK_LIB([libtirpc], ++ [LIBTIRPC], ++ [libtirpc], ++ [], ++ [], ++ [rpc/xdr.h], ++ [xdr_void], ++ [have_libtirpc=yes], ++ [have_libtitirpc=no; ++ AC_MSG_WARN([libtirpc is missing.])]) ++ ++# + # Check for PAM. + # + AC_ARG_WITH([pam], +Index: open-vm-tools/lib/dynxdr/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/dynxdr/Makefile.am ++++ open-vm-tools/lib/dynxdr/Makefile.am +@@ -17,7 +17,11 @@ + + noinst_LTLIBRARIES = libDynxdr.la + +-libDynxdr_la_SOURCES = ++libDynxdr_la_SOURCES = + libDynxdr_la_SOURCES += dynxdr.c + libDynxdr_la_SOURCES += xdrutil.c +-libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types ++libDynxdr_la_CPPFLAGS = @LIBTIRPC_CPPFLAGS@ -Wno-incompatible-pointer-types ++ ++libDynxdr_la_LIBADD = ++libDynxdr_la_LIBADD += @LIBTIRPC_LIBS@ ++ +Index: open-vm-tools/lib/err/errPosix.c +=================================================================== +--- open-vm-tools.orig/lib/err/errPosix.c ++++ open-vm-tools/lib/err/errPosix.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include "vmware.h" + #include "errInt.h" +Index: open-vm-tools/lib/guestRpc/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/guestRpc/Makefile.am ++++ open-vm-tools/lib/guestRpc/Makefile.am +@@ -20,6 +20,12 @@ noinst_LTLIBRARIES = libGuestRpc.la + libGuestRpc_la_SOURCES = + libGuestRpc_la_SOURCES += nicinfo_xdr.c + ++libGuestRpc_la_CPPFLAGS = ++libGuestRpc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ ++ ++libGuestRpc_la_LIBADD = ++libGuestRpc_la_LIBADD += @LIBTIRPC_LIBS@ ++ + # XXX: Autoreconf complains about this and recommends using AM_CFLAGS instead. + # Problem is, $(CFLAGS) is appended to the compiler command line after AM_CFLAGS + # and after libGuestRpc_la_CFLAGS, so "-Wall -Werror" will override this flag. +Index: open-vm-tools/lib/misc/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/misc/Makefile.am ++++ open-vm-tools/lib/misc/Makefile.am +@@ -52,4 +52,5 @@ libMisc_la_SOURCES += utilMem.c + libMisc_la_SOURCES += vmstdio.c + libMisc_la_SOURCES += strutil.c + libMisc_la_SOURCES += vthreadBase.c ++libMisc_la_CPPFLAGS = -Wno-error=int-conversion + +Index: open-vm-tools/lib/netUtil/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/netUtil/Makefile.am ++++ open-vm-tools/lib/netUtil/Makefile.am +@@ -20,3 +20,7 @@ noinst_LTLIBRARIES = libNetUtil.la + libNetUtil_la_SOURCES = + libNetUtil_la_SOURCES += netUtilLinux.c + ++libNetUtil_la_CPPFLAGS = ++libNetUtil_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ ++ ++libNetUtil_la_LIBADD = @LIBTIRPC_LIBS@ +Index: open-vm-tools/lib/nicInfo/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/nicInfo/Makefile.am ++++ open-vm-tools/lib/nicInfo/Makefile.am +@@ -25,12 +25,14 @@ libNicInfo_la_SOURCES += nicInfoPosix.c + + libNicInfo_la_CPPFLAGS = + libNicInfo_la_CPPFLAGS += @GLIB2_CPPFLAGS@ ++libNicInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ + + AM_CFLAGS = $(DNET_CPPFLAGS) + if USE_SLASH_PROC + AM_CFLAGS += -DUSE_SLASH_PROC + endif + libNicInfo_la_LIBADD = ++libNicInfo_la_LIBADD += @LIBTIRPC_LIBS@ + if HAVE_DNET + libNicInfo_la_LIBADD += @DNET_LIBS@ + endif +Index: open-vm-tools/lib/rpcChannel/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/rpcChannel/Makefile.am ++++ open-vm-tools/lib/rpcChannel/Makefile.am +@@ -27,3 +27,7 @@ endif + + libRpcChannel_la_CPPFLAGS = + libRpcChannel_la_CPPFLAGS += @VMTOOLS_CPPFLAGS@ ++libRpcChannel_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ ++ ++libRpcChannel_la_LIBADD = ++libRpcChannel_la_LIBADD += @LIBTIRPC_LIBS@ +Index: open-vm-tools/lib/slashProc/Makefile.am +=================================================================== +--- open-vm-tools.orig/lib/slashProc/Makefile.am ++++ open-vm-tools/lib/slashProc/Makefile.am +@@ -22,6 +22,10 @@ libSlashProc_la_SOURCES += net.c + + libSlashProc_la_CPPFLAGS = + libSlashProc_la_CPPFLAGS += @GLIB2_CPPFLAGS@ ++libSlashProc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ ++ ++libSlashProc_la_LIBADD = ++libSlashProc_la_LIBADD += @LIBTIRPC_LIBS@ + + AM_CFLAGS = $(DNET_CPPFLAGS) + +Index: open-vm-tools/lib/string/bsd_output_shared.c +=================================================================== +--- open-vm-tools.orig/lib/string/bsd_output_shared.c ++++ open-vm-tools/lib/string/bsd_output_shared.c +@@ -38,7 +38,7 @@ + //#include + + #if !defined(STR_NO_WIN32_LIBS) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__ANDROID__) +- ++#define _GNU_SOURCE + #include + #include + #ifndef _WIN32 +Index: open-vm-tools/libguestlib/Makefile.am +=================================================================== +--- open-vm-tools.orig/libguestlib/Makefile.am ++++ open-vm-tools/libguestlib/Makefile.am +@@ -22,6 +22,7 @@ AM_CFLAGS += -I$(top_srcdir)/include + + libguestlib_la_LIBADD = + libguestlib_la_LIBADD += @VMTOOLS_LIBS@ ++libguestlib_la_LIBADD += @LIBTIRPC_LIBS@ + + libguestlib_la_SOURCES = + libguestlib_la_SOURCES += guestlibV3_xdr.c +@@ -56,6 +57,7 @@ CFLAGS += -Wno-unused + libguestlib_la_CPPFLAGS = + libguestlib_la_CPPFLAGS += -DVMTOOLS_USE_GLIB + libguestlib_la_CPPFLAGS += @GLIB2_CPPFLAGS@ ++libguestlib_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ + + EXTRA_DIST = vmguestlib.pc.in + +Index: open-vm-tools/rpctool/Makefile.am +=================================================================== +--- open-vm-tools.orig/rpctool/Makefile.am ++++ open-vm-tools/rpctool/Makefile.am +@@ -17,10 +17,13 @@ + + bin_PROGRAMS = vmware-rpctool + ++vmware_rpctool_CFLAGS= @LIBTIRPC_LIBS@ ++ + vmware_rpctool_SOURCES = + vmware_rpctool_SOURCES += rpctool.c + + vmware_rpctool_LDADD = ++vmware_rpctool_LDADD += @LIBTIRPC_LIBS@ + vmware_rpctool_LDADD += ../lib/rpcOut/libRpcOut.la + vmware_rpctool_LDADD += ../lib/message/libMessage.la + vmware_rpctool_LDADD += ../lib/backdoor/libBackdoor.la +Index: open-vm-tools/rpctool/rpctool.c +=================================================================== +--- open-vm-tools.orig/rpctool/rpctool.c ++++ open-vm-tools/rpctool/rpctool.c +@@ -23,6 +23,8 @@ + */ + + #ifndef _WIN32 ++#define _GNU_SOURCE ++#include + #include "sigPosixRegs.h" + #include + #include +Index: open-vm-tools/services/plugins/dndcp/Makefile.am +=================================================================== +--- open-vm-tools.orig/services/plugins/dndcp/Makefile.am ++++ open-vm-tools/services/plugins/dndcp/Makefile.am +@@ -23,6 +23,7 @@ plugin_LTLIBRARIES = libdndcp.la + libdndcp_la_CPPFLAGS = + libdndcp_la_CPPFLAGS += @GTK_CPPFLAGS@ + libdndcp_la_CPPFLAGS += @PLUGIN_CPPFLAGS@ ++libdndcp_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ + libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dnd + libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dndGuest + libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/stringxx +@@ -44,6 +45,7 @@ libdndcp_la_LIBADD += @GTK_LIBS@ + libdndcp_la_LIBADD += @GTKMM_LIBS@ + libdndcp_la_LIBADD += @VMTOOLS_LIBS@ + libdndcp_la_LIBADD += @HGFS_LIBS@ ++libdndcp_la_LIBADD += @LIBTIRPC_LIBS@ + libdndcp_la_LIBADD += $(top_builddir)/lib/hgfsUri/hgfsUriPosix.lo + + libdndcp_la_SOURCES = +Index: open-vm-tools/services/plugins/guestInfo/Makefile.am +=================================================================== +--- open-vm-tools.orig/services/plugins/guestInfo/Makefile.am ++++ open-vm-tools/services/plugins/guestInfo/Makefile.am +@@ -22,6 +22,7 @@ plugin_LTLIBRARIES = libguestInfo.la + + libguestInfo_la_CPPFLAGS = + libguestInfo_la_CPPFLAGS += @PLUGIN_CPPFLAGS@ ++libguestInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ + + libguestInfo_la_LDFLAGS = + libguestInfo_la_LDFLAGS += @PLUGIN_LDFLAGS@ +Index: open-vm-tools/services/plugins/resolutionSet/Makefile.am +=================================================================== +--- open-vm-tools.orig/services/plugins/resolutionSet/Makefile.am ++++ open-vm-tools/services/plugins/resolutionSet/Makefile.am +@@ -21,6 +21,7 @@ plugin_LTLIBRARIES = libresolutionSet.la + libresolutionSet_la_CPPFLAGS = + libresolutionSet_la_CPPFLAGS += @GTK_CPPFLAGS@ + libresolutionSet_la_CPPFLAGS += @PLUGIN_CPPFLAGS@ ++libresolutionSet_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ + libresolutionSet_la_CPPFLAGS += -DRESOLUTION_X11 + + libresolutionSet_la_LDFLAGS = +@@ -30,6 +31,7 @@ libresolutionSet_la_LIBADD = + libresolutionSet_la_LIBADD += @COMMON_XLIBS@ + libresolutionSet_la_LIBADD += @GTK_LIBS@ + libresolutionSet_la_LIBADD += @VMTOOLS_LIBS@ ++libresolutionSet_la_LIBADD += @LIBTIRPC_LIBS@ + + libresolutionSet_la_SOURCES = + libresolutionSet_la_SOURCES += libvmwarectrl.c +Index: open-vm-tools/services/plugins/vix/Makefile.am +=================================================================== +--- open-vm-tools.orig/services/plugins/vix/Makefile.am ++++ open-vm-tools/services/plugins/vix/Makefile.am +@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvix.la + + libvix_la_CPPFLAGS = + libvix_la_CPPFLAGS += @PLUGIN_CPPFLAGS@ ++libvix_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ + libvix_la_CPPFLAGS += -I$(top_srcdir)/vgauth/public + + libvix_la_LDFLAGS = +@@ -29,6 +30,7 @@ libvix_la_LIBADD = + libvix_la_LIBADD += @VIX_LIBADD@ + libvix_la_LIBADD += @VMTOOLS_LIBS@ + libvix_la_LIBADD += @HGFS_LIBS@ ++libvix_la_LIBADD += @LIBTIRPC_LIBS@ + libvix_la_LIBADD += $(top_builddir)/lib/auth/libAuth.la + libvix_la_LIBADD += $(top_builddir)/lib/foundryMsg/libFoundryMsg.la + libvix_la_LIBADD += $(top_builddir)/lib/impersonate/libImpersonate.la +Index: open-vm-tools/services/plugins/vmbackup/Makefile.am +=================================================================== +--- open-vm-tools.orig/services/plugins/vmbackup/Makefile.am ++++ open-vm-tools/services/plugins/vmbackup/Makefile.am +@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvmbackup.la + + libvmbackup_la_CPPFLAGS = + libvmbackup_la_CPPFLAGS += @PLUGIN_CPPFLAGS@ ++libvmbackup_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ + + libvmbackup_la_LDFLAGS = + libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAGS@ +@@ -27,6 +28,7 @@ libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAG + libvmbackup_la_LIBADD = + libvmbackup_la_LIBADD += @GOBJECT_LIBS@ + libvmbackup_la_LIBADD += @VMTOOLS_LIBS@ ++libvmbackup_la_LIBADD += @LIBTIRPC_LIBS@ + + libvmbackup_la_SOURCES = + libvmbackup_la_SOURCES += nullProvider.c +Index: open-vm-tools/toolbox/Makefile.am +=================================================================== +--- open-vm-tools.orig/toolbox/Makefile.am ++++ open-vm-tools/toolbox/Makefile.am +@@ -20,9 +20,11 @@ bin_PROGRAMS = vmware-toolbox-cmd + vmware_toolbox_cmd_LDADD = + vmware_toolbox_cmd_LDADD += ../libguestlib/libguestlib.la + vmware_toolbox_cmd_LDADD += @VMTOOLS_LIBS@ ++vmware_toolbox_cmd_LDADD += @LIBTIRPC_LIBS@ + + vmware_toolbox_cmd_CPPFLAGS = + vmware_toolbox_cmd_CPPFLAGS += @VMTOOLS_CPPFLAGS@ ++vmware_toolbox_cmd_CPPFLAGS += @LIBTIRPC_CPPFLAGS@ + + vmware_toolbox_cmd_SOURCES = + vmware_toolbox_cmd_SOURCES += toolbox-cmd.c diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch new file mode 100644 index 00000000000..c9beac1fcd4 --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch @@ -0,0 +1,65 @@ +From 27442e2dd287d393d7b3f8bf164a887affef84df Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Wed, 18 Nov 2015 10:27:51 +0000 +Subject: [PATCH 10/11] gnu-ucontext + +--- + open-vm-tools/lib/include/sigPosixRegs.h | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +Index: open-vm-tools/lib/include/sigPosixRegs.h +=================================================================== +--- open-vm-tools.orig/lib/include/sigPosixRegs.h ++++ open-vm-tools/lib/include/sigPosixRegs.h +@@ -33,7 +33,7 @@ + #include "includeCheck.h" + + +-#if __linux__ // We need the REG_foo offsets in the gregset_t; ++#if defined(__GLIBC__) // We need the REG_foo offsets in the gregset_t; + # define _GNU_SOURCE // _GNU_SOURCE maps to __USE_GNU + + /* And, the REG_foo definitions conflict with our own in x86.h */ +@@ -73,7 +73,7 @@ + #include + #endif + +-#if __linux__ ++#if defined(__GLIBC__) + # if defined(__x86_64__) + # undef REG_RAX + # undef REG_RBX +@@ -199,7 +199,7 @@ + #define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.mc_esp) + #define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.mc_eip) + #endif +-#elif defined (sun) ++#elif !defined (__GLIBC__) + #ifdef __x86_64__ + #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RAX]) + #define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RBX]) +@@ -219,15 +219,15 @@ + #define SC_R14(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R14]) + #define SC_R15(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R15]) + #else +-#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EAX]) +-#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBX]) +-#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ECX]) +-#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDX]) +-#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDI]) +-#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESI]) +-#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBP]) +-#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESP]) +-#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EIP]) ++#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EAX]) ++#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBX]) ++#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ECX]) ++#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDX]) ++#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDI]) ++#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESI]) ++#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBP]) ++#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESP]) ++#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EIP]) + #endif + #elif defined(ANDROID_X86) + #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.eax) diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch new file mode 100644 index 00000000000..78722390e80 --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch @@ -0,0 +1,25 @@ +From 95c6184d9ff70a47c41768850923a96de9e544aa Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Wed, 18 Nov 2015 10:41:01 +0000 +Subject: [PATCH 11/11] Use configure test for sys/stat.h include + +This is needed for musl libc. + +Signed-off-by: Natanael Copa +--- + open-vm-tools/services/plugins/vix/vixTools.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: open-vm-tools/services/plugins/vix/vixTools.c +=================================================================== +--- open-vm-tools.orig/services/plugins/vix/vixTools.c ++++ open-vm-tools/services/plugins/vix/vixTools.c +@@ -66,7 +66,7 @@ + #include + #endif + +-#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__) ++#ifdef HAVE_SYS_STAT_H + #include + #endif + diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb b/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb new file mode 100644 index 00000000000..81e8e96249a --- /dev/null +++ b/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb @@ -0,0 +1,103 @@ +# This recipe is modified from the recipe originally found in the Open-Switch +# repository: +# +# https://github.com/open-switch/ops-build +# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb +# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9 +# +# The recipe packaging has been relicensed under the MIT license for inclusion +# in meta-openembedded by agreement of the author (Diego Dompe). +# + +SUMMARY = "Tools to enhance VMWare guest integration and performance" +HOMEPAGE = "https://github.com/vmware/open-vm-tools" +SECTION = "vmware-tools" + +LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b66ba4cb4fc017682c95efc300410e79" +LICENSE_modules/freebsd/vmblock = "BSD" +LICENSE_modules/freebsd/vmmemctl = "GPL-2.0" +LICENSE_modules/freebsd/vmxnet = "GPL-2.0" +LICENSE_modules/linux = "GPL-2.0" +LICENSE_modules/solaris = "CDDL-1.0" + +SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \ + file://tools.conf \ + file://vmtoolsd.service \ + file://0001-configure.ac-don-t-use-dnet-config.patch \ + file://0002-add-include-sys-sysmacros.h.patch \ + file://0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch \ + file://0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch \ + file://0003-Rename-poll.h-to-vm_poll.h.patch \ + file://0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch \ + file://0005-Use-configure-test-for-struct-timespec.patch \ + file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \ + file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \ + file://0008-use-posix-strerror_r-unless-gnu.patch \ + file://0011-Use-configure-test-for-sys-stat.h-include.patch \ + " +SRC_URI_append_libc-musl = "\ + file://0009-Add-support-for-building-with-system-libtirpc.patch \ + file://0010-gnu-ucontext.patch \ + " +SRCREV = "854c0bb374612f7e633b448ca273f970f154458b" + +S = "${WORKDIR}/git/open-vm-tools" + +DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps" +DEPENDS_append_libc-musl = " libtirpc" + +# open-vm-tools is supported only on x86. +COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' + +inherit autotools pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "vmtoolsd.service" + +EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \ + --disable-tests --without-gtkmm --without-xerces --without-pam \ + --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \ + --without-root-privileges --without-kernel-modules" + +NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3" +X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf" +PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}" + +# fuse gets implicitly detected; there is no --without-fuse option. +PACKAGECONFIG[fuse] = ",,fuse" + +CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member" +FILES_${PN} += "\ + ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \ + ${libdir}/open-vm-tools/plugins/common/lib*.so \ + ${sysconfdir}/vmware-tools/tools.conf \ + " +FILES_${PN}-locale += "${datadir}/open-vm-tools/messages" +FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la" +FILES_${PN}-dbg += "\ + ${libdir}/open-vm-tools/plugins/common/.debug \ + ${libdir}/open-vm-tools/plugins/vmsvc/.debug \ + " + +CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf" + +RDEPENDS_${PN} = "util-linux libdnet fuse" + +do_install_append() { + ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs + install -d ${D}${systemd_unitdir}/system ${D}${sysconfdir}/vmware-tools + install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf +} + +do_configure_prepend() { + export CUSTOM_DNET_NAME=dnet + export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so +} + +python() { + if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \ + 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): + raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.') +} + diff --git a/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-oe/recipes-support/openct/openct_0.6.20.bb index 70c73fd6e6d..c7d7203edac 100644 --- a/meta-oe/recipes-support/openct/openct_0.6.20.bb +++ b/meta-oe/recipes-support/openct/openct_0.6.20.bb @@ -1,4 +1,5 @@ Summanry = "Middleware framework for smart card terminals" +HOMEPAGE = "https://github.com/OpenSC/openct/wiki" DESCRIPTION = " \ OpenCT implements drivers for several smart card readers. \ It comes as driver in ifdhandler format for PC/SC-Lite, \ @@ -10,7 +11,7 @@ readers to remote machines via TCP/IP." DEPENDS += "libtool pcsc-lite libusb-compat" SRC_URI = " \ - ${DEBIAN_MIRROR}/main/o/${PN}/${PN}_${PV}.orig.tar.gz \ + ${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \ file://etc-openct.udev.in-disablePROGRAM.patch \ file://etc-openct_usb.in-modify-UDEVINFO.patch \ file://openct.init \ @@ -24,7 +25,7 @@ SRC_URI[sha256sum] = "6cd3e2933d29eb1f875c838ee58b8071fd61f0ec8ed5922a86c01c805d LICENSE = "LGPLv2+" LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1" -inherit ${@base_contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)} +inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)} SYSTEMD_SERVICE_${PN} += "openct.service " SYSTEMD_AUTO_ENABLE = "enable" @@ -34,7 +35,7 @@ EXTRA_OECONF=" \ --enable-pcsc \ --enable-doc \ --enable-api-doc \ - --with-udev=/lib/udev \ + --with-udev=${nonarch_base_libdir}/udev \ --with-bundle=${libdir}/pcsc/drivers \ " @@ -42,7 +43,7 @@ inherit autotools pkgconfig FILES_${PN} += " \ ${libdir}/ctapi \ - /lib/udev \ + ${nonarch_base_libdir}/udev \ ${libdir}/openct-ifd.so \ ${libdir}/pcsc \ /run/openct/status \ @@ -55,11 +56,14 @@ FILES_${PN}-dbg += " \ INSANE_SKIP_${PN} += "dev-deps" +do_install_append() { + rm -r ${D}/${localstatedir}/run +} do_install () { rm -rf ${D} install -d ${D}/etc - install -dm 755 ${D}/lib/udev + install -dm 755 ${D}${nonarch_base_libdir}/udev # fix up hardcoded paths sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \ ${WORKDIR}/openct.service ${WORKDIR}/openct.init @@ -73,7 +77,7 @@ do_install () { install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}/${systemd_unitdir}/system install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system fi diff --git a/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb b/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb deleted file mode 100644 index 9d862fe910f..00000000000 --- a/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Opencv : The Open Computer Vision Library" -HOMEPAGE = "http://opencv.willowgarage.com/wiki/" -SECTION = "libs" -LICENSE = "BSD" - -DEPENDS = "opencv" - -LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14 \ -" -SRCREV = "6fae07ba8867b8fd2c53344a774aab669afa7c5e" -SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \ - " -PV = "2.4.3+git${SRCPV}" - -S = "${WORKDIR}/git" - -do_install() { - cd samples/c - install -d ${D}/${bindir} - install -d ${D}/${datadir}/opencv/samples - - cp * ${D}/${datadir}/opencv/samples || true - - for i in *.c; do - echo "compiling $i" - ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv` || true - install -m 0755 `basename $i .c` ${D}/${bindir} || true - rm ${D}/${datadir}/opencv/samples/`basename $i .c` || true - done - for i in *.cpp; do - echo "compiling $i" - ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv` || true - install -m 0755 `basename $i .cpp` ${D}/${bindir} || true - rm ${D}/${datadir}/opencv/samples/`basename $i .cpp` || true - done -} - -FILES_${PN}-dev += "${datadir}/opencv/samples/*.c* ${datadir}/opencv/samples/*.vcp* ${datadir}/opencv/samples/build*" -FILES_${PN} += "${bindir} ${datadir}/opencv" diff --git a/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch new file mode 100644 index 00000000000..4d76ad40ce1 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch @@ -0,0 +1,38 @@ +From 4801a057730632225337d7f6d26b9335e6b9b078 Mon Sep 17 00:00:00 2001 +From: Ricardo Ribalda Delgado +Date: Thu, 31 Mar 2016 00:20:15 +0200 +Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp + +Signed-off-by: Ricardo Ribalda Delgado +Signed-off-by: Ismo Puustinen +--- + 3rdparty/ippicv/ippicv.cmake | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake +index d601da4bb..f6fc1098c 100644 +--- a/3rdparty/ippicv/ippicv.cmake ++++ b/3rdparty/ippicv/ippicv.cmake +@@ -39,18 +39,5 @@ function(download_ippicv root_var) + endif() + + set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv") +- ocv_download(FILENAME ${OPENCV_ICV_NAME} +- HASH ${OPENCV_ICV_HASH} +- URL +- "${OPENCV_IPPICV_URL}" +- "$ENV{OPENCV_IPPICV_URL}" +- "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/" +- DESTINATION_DIR "${THE_ROOT}" +- ID IPPICV +- STATUS res +- UNPACK RELATIVE_URL) +- +- if(res) +- set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE) +- endif() ++ set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE) + endfunction() +-- +2.13.4 + diff --git a/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch new file mode 100644 index 00000000000..6dd48fcdc3d --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch @@ -0,0 +1,26 @@ +From 2bc6bb9831d07f035fea74ea745cea43dd5f9ef9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 9 Sep 2017 23:48:31 -0700 +Subject: [PATCH] Dont use isystem + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + cmake/OpenCVPCHSupport.cmake | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +Index: git/cmake/OpenCVPCHSupport.cmake +=================================================================== +--- git.orig/cmake/OpenCVPCHSupport.cmake ++++ git/cmake/OpenCVPCHSupport.cmake +@@ -17,7 +17,8 @@ IF(CMAKE_COMPILER_IS_GNUCXX) + IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2.0") + SET(PCHSupport_FOUND TRUE) + ENDIF() +- ++ SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I") ++ SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I") + SET(_PCH_include_prefix "-I") + SET(_PCH_isystem_prefix "-isystem") + SET(_PCH_define_prefix "-D") diff --git a/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch b/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch new file mode 100644 index 00000000000..0140633db3b --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch @@ -0,0 +1,127 @@ +Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/0d854db361106dfcb055231fd0112c5b85ef2287] + +Fix CVEs for opencv 3.3. + +* CVE-2017-12597 +* CVE-2017-12598 +* CVE-2017-12599 +* CVE-2017-12600 +* CVE-2017-12601 +* CVE-2017-12602 +* CVE-2017-12603 +* CVE-2017-12604 +* CVE-2017-12605 +* CVE-2017-12606 +* CVE-2017-12862 +* CVE-2017-12863 +* CVE-2017-12864 + +Signed-off-by: Kai Kang +--- +From 0d854db361106dfcb055231fd0112c5b85ef2287 Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin +Date: Tue, 15 Aug 2017 21:45:05 +0000 +Subject: [PATCH 1/3] build: workaround GCC 7.1.1 compilation issue with + sanitize flags + +Version: gcc (GCC) 7.1.1 20170622 (Red Hat 7.1.1-3) +Flags: -fsanitize=address,undefined +--- + modules/ts/src/cuda_test.cpp | 56 ++++++++++++++++++++++++++------------------ + 1 file changed, 33 insertions(+), 23 deletions(-) + +diff --git a/modules/ts/src/cuda_test.cpp b/modules/ts/src/cuda_test.cpp +index a48e0a087..eb4cee136 100644 +--- a/modules/ts/src/cuda_test.cpp ++++ b/modules/ts/src/cuda_test.cpp +@@ -322,16 +322,20 @@ namespace cvtest + + if (m1.size() != m2.size()) + { +- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \"" +- << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \"" +- << expr2 << "\" [" << PrintToString(m2.size()) << "]"; ++ std::stringstream msg; ++ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \"" ++ << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \"" ++ << expr2 << "\" [" << PrintToString(m2.size()) << "]"; ++ return AssertionFailure() << msg.str(); + } + + if (m1.type() != m2.type()) + { +- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \"" +- << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \"" +- << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]"; ++ std::stringstream msg; ++ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \"" ++ << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \"" ++ << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]"; ++ return AssertionFailure() << msg.str(); + } + + Mat diff; +@@ -343,12 +347,14 @@ namespace cvtest + + if (maxVal > eps) + { +- return AssertionFailure() << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2 +- << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")" +- << ", which exceeds \"" << eps_expr << "\", where \"" +- << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \"" +- << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \"" +- << eps_expr << "\" evaluates to " << eps; ++ std::stringstream msg; ++ msg << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2 ++ << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")" ++ << ", which exceeds \"" << eps_expr << "\", where \"" ++ << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \"" ++ << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \"" ++ << eps_expr << "\" evaluates to " << eps; ++ return AssertionFailure() << msg.str(); + } + + return AssertionSuccess(); +@@ -469,9 +475,11 @@ namespace cvtest + { + if (gold.size() != actual.size()) + { +- return testing::AssertionFailure() << "KeyPoints size mistmach\n" +- << "\"" << gold_expr << "\" : " << gold.size() << "\n" +- << "\"" << actual_expr << "\" : " << actual.size(); ++ std::stringstream msg; ++ msg << "KeyPoints size mistmach\n" ++ << "\"" << gold_expr << "\" : " << gold.size() << "\n" ++ << "\"" << actual_expr << "\" : " << actual.size(); ++ return AssertionFailure() << msg.str(); + } + + std::sort(actual.begin(), actual.end(), KeyPointLess()); +@@ -484,14 +492,16 @@ namespace cvtest + + if (!keyPointsEquals(p1, p2)) + { +- return testing::AssertionFailure() << "KeyPoints differ at " << i << "\n" +- << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n" +- << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n" +- << "size : " << p1.size << " vs " << p2.size << "\n" +- << "angle : " << p1.angle << " vs " << p2.angle << "\n" +- << "response : " << p1.response << " vs " << p2.response << "\n" +- << "octave : " << p1.octave << " vs " << p2.octave << "\n" +- << "class_id : " << p1.class_id << " vs " << p2.class_id; ++ std::stringstream msg; ++ msg << "KeyPoints differ at " << i << "\n" ++ << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n" ++ << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n" ++ << "size : " << p1.size << " vs " << p2.size << "\n" ++ << "angle : " << p1.angle << " vs " << p2.angle << "\n" ++ << "response : " << p1.response << " vs " << p2.response << "\n" ++ << "octave : " << p1.octave << " vs " << p2.octave << "\n" ++ << "class_id : " << p1.class_id << " vs " << p2.class_id; ++ return AssertionFailure() << msg.str(); + } + } + +-- +2.14.1 + diff --git a/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch b/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch new file mode 100644 index 00000000000..a1a56e0e4da --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch @@ -0,0 +1,1250 @@ +From 353fc92618ce0dc6bab4a3e8bff1c13c3b613110 Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin +Date: Wed, 23 Aug 2017 17:41:23 +0300 +Subject: [PATCH 1/2] carotene: don't use __asm__ with aarch64 + +--- +Upstream-Status: Backport + + 3rdparty/carotene/src/channel_extract.cpp | 4 +- + 3rdparty/carotene/src/channels_combine.cpp | 2 +- + 3rdparty/carotene/src/colorconvert.cpp | 104 ++++++++++++++--------------- + 3rdparty/carotene/src/convert.cpp | 54 +++++++-------- + 3rdparty/carotene/src/convert_scale.cpp | 72 ++++++++++---------- + 3rdparty/carotene/src/gaussian_blur.cpp | 6 +- + 3rdparty/carotene/src/pyramid.cpp | 20 +++--- + 3rdparty/carotene/src/scharr.cpp | 4 +- + 8 files changed, 133 insertions(+), 133 deletions(-) + +diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp +index f663bc6005..8238a3ece8 100644 +--- a/3rdparty/carotene/src/channel_extract.cpp ++++ b/3rdparty/carotene/src/channel_extract.cpp +@@ -231,7 +231,7 @@ void extract4(const Size2D &size, + srcStride == dst2Stride && \ + srcStride == dst3Stride && + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + + #define SPLIT_ASM2(sgn, bits) __asm__ ( \ + "vld2." #bits " {d0, d2}, [%[in0]] \n\t" \ +@@ -351,7 +351,7 @@ void extract4(const Size2D &size, + } \ + } + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + + #define ALPHA_QUAD(sgn, bits) { \ + internal::prefetch(src + sj); \ +diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp +index 157c8b8121..fc98fb9181 100644 +--- a/3rdparty/carotene/src/channels_combine.cpp ++++ b/3rdparty/carotene/src/channels_combine.cpp +@@ -77,7 +77,7 @@ namespace CAROTENE_NS { + dstStride == src2Stride && \ + dstStride == src3Stride && + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + + #define MERGE_ASM2(sgn, bits) __asm__ ( \ + "vld1." #bits " {d0-d1}, [%[in0]] \n\t" \ +diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp +index 3037fe672a..26ae54b15c 100644 +--- a/3rdparty/carotene/src/colorconvert.cpp ++++ b/3rdparty/carotene/src/colorconvert.cpp +@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space, + const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709; + const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y); + register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y); + register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y); +@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + for (; dj < roiw8; sj += 24, dj += 8) + { + internal::prefetch(src + sj); +@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space, + const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709; + const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y); + register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y); + register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y); +@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + for (; dj < roiw8; sj += 32, dj += 8) + { + internal::prefetch(src + sj); +@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space, + const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709; + const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y); + register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y); + register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y); +@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + for (; dj < roiw8; sj += 24, dj += 8) + { + internal::prefetch(src + sj); +@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space, + const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709; + const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y); + register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y); + register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y); +@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + for (; dj < roiw8; sj += 32, dj += 8) + { + internal::prefetch(src + sj); +@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size, + for (; sj < roiw16; sj += 16, dj += 48) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld1.8 {d0-d1}, [%[in0]] \n\t" + "vmov.8 q1, q0 \n\t" +@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size, + + if (sj < roiw8) + { +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld1.8 {d0}, [%[in]] \n\t" + "vmov.8 d1, d0 \n\t" +@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size, + size_t roiw16 = size.width >= 15 ? size.width - 15 : 0; + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register uint8x16_t vc255 asm ("q4") = vmovq_n_u8(255); + #else + uint8x16x4_t vRgba; +@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size, + for (; sj < roiw16; sj += 16, dj += 64) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld1.8 {d0-d1}, [%[in0]] \n\t" + "vmov.8 q1, q0 \n\t" +@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size, + + if (sj < roiw8) + { +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld1.8 {d5}, [%[in]] \n\t" + "vmov.8 d6, d5 \n\t" +@@ -672,7 +672,7 @@ void rgb2rgbx(const Size2D &size, + internal::assertSupportedConfiguration(); + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + register uint8x8_t vc255_0 asm ("d3") = vmov_n_u8(255); + #else + size_t roiw16 = size.width >= 15 ? size.width - 15 : 0; +@@ -688,7 +688,7 @@ void rgb2rgbx(const Size2D &size, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u, j = 0u; + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + for (; j < roiw8; sj += 24, dj += 32, j += 8) + { + internal::prefetch(src + sj); +@@ -742,7 +742,7 @@ void rgbx2rgb(const Size2D &size, + internal::assertSupportedConfiguration(); + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; +-#if !defined(__GNUC__) || !defined(__arm__) ++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)) + size_t roiw16 = size.width >= 15 ? size.width - 15 : 0; + union { uint8x16x4_t v4; uint8x16x3_t v3; } v_dst0; + union { uint8x8x4_t v4; uint8x8x3_t v3; } v_dst; +@@ -754,7 +754,7 @@ void rgbx2rgb(const Size2D &size, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u, j = 0u; + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +@@ -805,7 +805,7 @@ void rgb2bgr(const Size2D &size, + { + internal::assertSupportedConfiguration(); + #ifdef CAROTENE_NEON +-#if !defined(__GNUC__) || !defined(__arm__) ++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)) + size_t roiw16 = size.width >= 15 ? size.width - 15 : 0; + #endif + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; +@@ -817,7 +817,7 @@ void rgb2bgr(const Size2D &size, + size_t sj = 0u, dj = 0u, j = 0u; + + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +@@ -874,7 +874,7 @@ void rgbx2bgrx(const Size2D &size, + { + internal::assertSupportedConfiguration(); + #ifdef CAROTENE_NEON +-#if !defined(__GNUC__) || !defined(__arm__) ++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)) + size_t roiw16 = size.width >= 15 ? size.width - 15 : 0; + #endif + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; +@@ -885,7 +885,7 @@ void rgbx2bgrx(const Size2D &size, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u, j = 0u; + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + for (; j < roiw8; sj += 32, dj += 32, j += 8) + { + internal::prefetch(src + sj); +@@ -943,7 +943,7 @@ void rgbx2bgr(const Size2D &size, + { + internal::assertSupportedConfiguration(); + #ifdef CAROTENE_NEON +-#if !defined(__GNUC__) || !defined(__arm__) ++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)) + size_t roiw16 = size.width >= 15 ? size.width - 15 : 0; + #endif + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; +@@ -954,7 +954,7 @@ void rgbx2bgr(const Size2D &size, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u, j = 0u; + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +@@ -1010,7 +1010,7 @@ void rgb2bgrx(const Size2D &size, + { + internal::assertSupportedConfiguration(); + #ifdef CAROTENE_NEON +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + register uint8x8_t vc255 asm ("d3") = vmov_n_u8(255); + #else + union { uint8x16x4_t v4; uint8x16x3_t v3; } vals0; +@@ -1019,7 +1019,7 @@ void rgb2bgrx(const Size2D &size, + vals8.v4.val[3] = vmov_n_u8(255); + #endif + +-#if !defined(__GNUC__) || !defined(__arm__) ++#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)) + size_t roiw16 = size.width >= 15 ? size.width - 15 : 0; + #endif + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; +@@ -1030,7 +1030,7 @@ void rgb2bgrx(const Size2D &size, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u, j = 0u; + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + for (; j < roiw8; sj += 24, dj += 32, j += 8) + { + internal::prefetch(src + sj); +@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b, + "d24","d25","d26","d27","d28","d29","d30","d31" \ + ); + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + + #define YCRCB_CONSTS \ + register int16x4_t vcYR asm ("d31") = vmov_n_s16(4899); \ +@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con + #define COEFF_G ( 8663) + #define COEFF_B (-17705) + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + #define YUV420ALPHA3_CONST + #define YUV420ALPHA4_CONST register uint8x16_t c255 asm ("q13") = vmovq_n_u8(255); + #define YUV420ALPHA3_CONVERT +@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size, + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + const s32 hsv_shift = 12; +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register const f32 vsdiv_table = f32(255 << hsv_shift); + register f32 vhdiv_table = f32(hrange << hsv_shift); + register const s32 vhrange = hrange; +@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size, + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2) + #else + uint8x8x3_t vRgb = vld3_u8(src + sj); +@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size, + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + const s32 hsv_shift = 12; +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register const f32 vsdiv_table = f32(255 << hsv_shift); + register f32 vhdiv_table = f32(hrange << hsv_shift); + register const s32 vhrange = hrange; +@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size, + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2) + #else + uint8x8x4_t vRgb = vld4_u8(src + sj); +@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size, + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + const s32 hsv_shift = 12; +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register const f32 vsdiv_table = f32(255 << hsv_shift); + register f32 vhdiv_table = f32(hrange << hsv_shift); + register const s32 vhrange = hrange; +@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size, + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0) + #else + uint8x8x3_t vRgb = vld3_u8(src + sj); +@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size, + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + const s32 hsv_shift = 12; +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register const f32 vsdiv_table = f32(255 << hsv_shift); + register f32 vhdiv_table = f32(hrange << hsv_shift); + register const s32 vhrange = hrange; +@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size, + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0) + #else + uint8x8x4_t vRgb = vld4_u8(src + sj); +@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size, + for (; j < roiw16; sj += 64, dj += 32, j += 16) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld4.8 {d2, d4, d6, d8}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t" + "vld4.8 {d3, d5, d7, d9}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t" +@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size, + for (; j < roiw16; sj += 48, dj += 32, j += 16) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld3.8 {d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t" + "vld3.8 {d3, d5, d7}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t" +@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size, + for (; j < roiw16; sj += 64, dj += 32, j += 16) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld4.8 {d0, d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 \n\t" + "vld4.8 {d1, d3, d5, d7}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA \n\t" +@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size, + for (; j < roiw16; sj += 48, dj += 32, j += 16) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld3.8 {d0, d2, d4}, [%[in0]] @ q0 q1 q2 q3 \n\t" + "vld3.8 {d1, d3, d5}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t" +@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size, + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2) + #else + uint8x8x3_t vRgb = vld3_u8(src + sj); +@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size, + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2) + #else + uint8x8x4_t vRgba = vld4_u8(src + sj); +@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size, + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0) + #else + uint8x8x3_t vBgr = vld3_u8(src + sj); +@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size, + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0) + #else + uint8x8x4_t vBgra = vld4_u8(src + sj); +@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTYUV420TORGB(3, d1, d0, q5, q6) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTYUV420TORGB(4, d1, d0, q5, q6) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTYUV420TORGB(3, d0, d1, q5, q6) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTYUV420TORGB(4, d0, d1, q5, q6) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTYUV420TORGB(3, d1, d0, q6, q5) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTYUV420TORGB(4, d1, d0, q6, q5) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTYUV420TORGB(3, d0, d1, q6, q5) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CONVERTYUV420TORGB(4, d0, d1, q6, q5) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp +index 403f16d86a..64b6db78ab 100644 +--- a/3rdparty/carotene/src/convert.cpp ++++ b/3rdparty/carotene/src/convert.cpp +@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16, + } + }) + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVT_FUNC(u8, u16, 16, + register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);, + { +@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVT_FUNC(u8, s32, 16, + register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0); + register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0); +@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(u8, f32, 16, + , + { +@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16, + } + }) + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVT_FUNC(s8, u16, 16, + register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);, + { +@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s8, s16, 16, + , + { +@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVT_FUNC(s8, s32, 16, + , + { +@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s8, f32, 16, + , + { +@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(u16, u8, 16, + , + { +@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(u16, s8, 16, + register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);, + { +@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVT_FUNC(u16, s16, 8, + register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);, + { +@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVT_FUNC(u16, s32, 8, + register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);, + { +@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(u16, f32, 8, + , + { +@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s16, u8, 16, + , + { +@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s16, s8, 16, + , + { +@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVT_FUNC(s16, u16, 8, + register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);, + { +@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s16, s32, 8, + , + { +@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s16, f32, 8, + , + { +@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s32, u8, 8, + , + { +@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s32, s8, 8, + , + { +@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s32, u16, 8, + , + { +@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s32, s16, 8, + , + { +@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(s32, f32, 8, + , + { +@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(f32, u8, 8, + register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16)); + register uint32x4_t vmask asm ("q1") = vdupq_n_u32(1<<16);, +@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(f32, s8, 8, + register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);, + { +@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(f32, u16, 8, + register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);, + { +@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(f32, s16, 8, + register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);, + { +@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + CVT_FUNC(f32, s32, 8, + register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);, + { +diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp +index 0a14a8035c..ae41a985c8 100644 +--- a/3rdparty/carotene/src/convert_scale.cpp ++++ b/3rdparty/carotene/src/convert_scale.cpp +@@ -135,7 +135,7 @@ namespace CAROTENE_NS { + + #endif + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + CVTS_FUNC1(u8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -220,7 +220,7 @@ CVTS_FUNC1(u8, 16, + }) + #endif + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + CVTS_FUNC(u8, s8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -305,7 +305,7 @@ CVTS_FUNC(u8, s8, 16, + }) + #endif + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + CVTS_FUNC(u8, u16, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -389,7 +389,7 @@ CVTS_FUNC(u8, u16, 16, + }) + #endif + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + CVTS_FUNC(u8, s16, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(u8, s32, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(u8, f32, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -643,7 +643,7 @@ CVTS_FUNC(u8, f32, 16, + }) + #endif + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + CVTS_FUNC(s8, u8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -728,7 +728,7 @@ CVTS_FUNC(s8, u8, 16, + }) + #endif + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + CVTS_FUNC1(s8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -813,7 +813,7 @@ CVTS_FUNC1(s8, 16, + }) + #endif + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + CVTS_FUNC(s8, u16, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -899,7 +899,7 @@ CVTS_FUNC(s8, u16, 16, + }) + #endif + +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + CVTS_FUNC(s8, s16, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s8, s32, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s8, f32, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(u16, u8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(u16, s8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC1(u16, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(u16, s16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(u16, s32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(u16, f32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s16, u8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s16, s8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s16, u16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC1(s16, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s16, s32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s16, f32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s32, u8, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s32, s8, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s32, u16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s32, s16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC1(s32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(s32, f32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(f32, u8, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha)); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta)); +@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(f32, s8, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(f32, u16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(f32, s16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC(f32, s32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8, + }) + #endif + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + CVTS_FUNC1(f32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp +index 1b5399436f..f7b5f18d79 100644 +--- a/3rdparty/carotene/src/gaussian_blur.cpp ++++ b/3rdparty/carotene/src/gaussian_blur.cpp +@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn, + u16* lidx1 = lane + x - 1*2; + u16* lidx3 = lane + x + 1*2; + u16* lidx4 = lane + x + 2*2; +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ __volatile__ ( + "vld2.16 {d0, d2}, [%[in0]]! \n\t" + "vld2.16 {d1, d3}, [%[in0]] \n\t" +@@ -398,7 +398,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn, + u16* lidx1 = lane + x - 1*3; + u16* lidx3 = lane + x + 1*3; + u16* lidx4 = lane + x + 2*3; +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + __asm__ __volatile__ ( + "vld3.16 {d0, d2, d4}, [%[in0]]! \n\t" + "vld3.16 {d1, d3, d5}, [%[in0]] \n\t" +@@ -482,7 +482,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn, + u16* lidx1 = lane + x - 1*4; + u16* lidx3 = lane + x + 1*4; + u16* lidx4 = lane + x + 2*4; +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + __asm__ __volatile__ ( + "vld4.16 {d0, d2, d4, d6}, [%[in0]]! \n\t" + "vld4.16 {d1, d3, d5, d7}, [%[in0]] \n\t" +diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp +index 8ef1268933..232ccf3efd 100644 +--- a/3rdparty/carotene/src/pyramid.cpp ++++ b/3rdparty/carotene/src/pyramid.cpp +@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize, + for (; x < roiw8; x += 8) + { + internal::prefetch(lane + 2 * x); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld2.16 {d0-d3}, [%[in0]] \n\t" + "vld2.16 {d4-d7}, [%[in4]] \n\t" +@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize, + for (; x < roiw4; x += 4) + { + internal::prefetch(lane + 2 * x); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld2.32 {d0-d3}, [%[in0]] \n\t" + "vld2.32 {d4-d7}, [%[in4]] \n\t" +@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize, + std::vector _buf(cn*(srcSize.width + 4) + 32/sizeof(f32)); + f32* lane = internal::alignPtr(&_buf[2*cn], 32); + +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + register float32x4_t vc6d4f32 asm ("q11") = vmovq_n_f32(1.5f); // 6/4 + register float32x4_t vc1d4f32 asm ("q12") = vmovq_n_f32(0.25f); // 1/4 + +@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize, + for (; x < roiw4; x += 4) + { + internal::prefetch(lane + 2 * x); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ __volatile__ ( + "vld2.32 {d0-d3}, [%[in0]] \n\t" + "vld2.32 {d8-d11}, [%[in4]] \n\t" +@@ -932,7 +932,7 @@ pyrUp8uHorizontalConvolution: + for (; x < lim; x += 8) + { + internal::prefetch(lane + x); +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + __asm__ ( + "vld1.16 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t" + "vld1.16 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t" +@@ -973,7 +973,7 @@ pyrUp8uHorizontalConvolution: + for (; x < lim; x += 24) + { + internal::prefetch(lane + x); +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + __asm__ ( + "vmov.u16 q9, #6 \n\t" + "vld3.16 {d0, d2, d4}, [%[in0]] /*v0*/ \n\t" +@@ -1064,7 +1064,7 @@ pyrUp8uHorizontalConvolution: + for (; x < lim; x += 8) + { + internal::prefetch(lane + x); +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + __asm__ ( + "vld1.16 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t" + "vld1.16 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t" +@@ -1210,7 +1210,7 @@ pyrUp16sHorizontalConvolution: + for (; x < lim; x += 4) + { + internal::prefetch(lane + x); +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + __asm__ ( + "vld1.32 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t" + "vld1.32 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t" +@@ -1251,7 +1251,7 @@ pyrUp16sHorizontalConvolution: + for (; x < lim; x += 12) + { + internal::prefetch(lane + x + 3); +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + __asm__ ( + "vmov.s32 q9, #6 \n\t" + "vld3.32 {d0, d2, d4}, [%[in0]] /*v0*/ \n\t" +@@ -1343,7 +1343,7 @@ pyrUp16sHorizontalConvolution: + for (; x < lim; x += 4) + { + internal::prefetch(lane + x); +-#if defined(__GNUC__) && defined(__arm__) ++#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__) + __asm__ ( + "vld1.32 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t" + "vld1.32 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t" +diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp +index 5695804fe4..8d3b6328b1 100644 +--- a/3rdparty/carotene/src/scharr.cpp ++++ b/3rdparty/carotene/src/scharr.cpp +@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn, + internal::prefetch(srow0 + x); + internal::prefetch(srow1 + x); + internal::prefetch(srow2 + x); +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 + __asm__ ( + "vld1.8 {d0}, [%[src0]] \n\t" + "vld1.8 {d2}, [%[src2]] \n\t" +@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn, + x = 0; + for( ; x < roiw8; x += 8 ) + { +-#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 + __asm__ ( + "vld1.16 {d4-d5}, [%[s2ptr]] \n\t" + "vld1.16 {d8-d9}, [%[s4ptr]] \n\t" +-- +2.14.1 + diff --git a/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch b/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch new file mode 100644 index 00000000000..22e868a031c --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch @@ -0,0 +1,993 @@ +From 333f60165b6737588eb975a5e4393d847011a1cd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 19 Sep 2017 18:07:35 -0700 +Subject: [PATCH 2/2] Do not enable asm with clang + +clang pretends to be gcc 4.2.0 which means we will +use inline asm for no reason, instead of builtins +on clang when possible. + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + 3rdparty/carotene/src/channel_extract.cpp | 4 +- + 3rdparty/carotene/src/channels_combine.cpp | 2 +- + 3rdparty/carotene/src/colorconvert.cpp | 78 +++++++++++++++--------------- + 3rdparty/carotene/src/convert.cpp | 54 ++++++++++----------- + 3rdparty/carotene/src/convert_scale.cpp | 56 ++++++++++----------- + 3rdparty/carotene/src/gaussian_blur.cpp | 2 +- + 3rdparty/carotene/src/pyramid.cpp | 8 +-- + 3rdparty/carotene/src/scharr.cpp | 4 +- + 8 files changed, 104 insertions(+), 104 deletions(-) + +diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp +index 8238a3ece8..ff4fb3770c 100644 +--- a/3rdparty/carotene/src/channel_extract.cpp ++++ b/3rdparty/carotene/src/channel_extract.cpp +@@ -231,7 +231,7 @@ void extract4(const Size2D &size, + srcStride == dst2Stride && \ + srcStride == dst3Stride && + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + + #define SPLIT_ASM2(sgn, bits) __asm__ ( \ + "vld2." #bits " {d0, d2}, [%[in0]] \n\t" \ +@@ -351,7 +351,7 @@ void extract4(const Size2D &size, + } \ + } + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + + #define ALPHA_QUAD(sgn, bits) { \ + internal::prefetch(src + sj); \ +diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp +index fc98fb9181..5d9251d51c 100644 +--- a/3rdparty/carotene/src/channels_combine.cpp ++++ b/3rdparty/carotene/src/channels_combine.cpp +@@ -77,7 +77,7 @@ namespace CAROTENE_NS { + dstStride == src2Stride && \ + dstStride == src3Stride && + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + + #define MERGE_ASM2(sgn, bits) __asm__ ( \ + "vld1." #bits " {d0-d1}, [%[in0]] \n\t" \ +diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp +index 26ae54b15c..d3a40fe64e 100644 +--- a/3rdparty/carotene/src/colorconvert.cpp ++++ b/3rdparty/carotene/src/colorconvert.cpp +@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space, + const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709; + const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y); + register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y); + register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y); +@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + for (; dj < roiw8; sj += 24, dj += 8) + { + internal::prefetch(src + sj); +@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space, + const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709; + const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y); + register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y); + register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y); +@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + for (; dj < roiw8; sj += 32, dj += 8) + { + internal::prefetch(src + sj); +@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space, + const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709; + const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y); + register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y); + register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y); +@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + for (; dj < roiw8; sj += 24, dj += 8) + { + internal::prefetch(src + sj); +@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space, + const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709; + const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y); + register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y); + register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y); +@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space, + u8 * dst = internal::getRowPtr(dstBase, dstStride, i); + size_t sj = 0u, dj = 0u; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + for (; dj < roiw8; sj += 32, dj += 8) + { + internal::prefetch(src + sj); +@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size, + for (; sj < roiw16; sj += 16, dj += 48) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld1.8 {d0-d1}, [%[in0]] \n\t" + "vmov.8 q1, q0 \n\t" +@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size, + + if (sj < roiw8) + { +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld1.8 {d0}, [%[in]] \n\t" + "vmov.8 d1, d0 \n\t" +@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size, + size_t roiw16 = size.width >= 15 ? size.width - 15 : 0; + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register uint8x16_t vc255 asm ("q4") = vmovq_n_u8(255); + #else + uint8x16x4_t vRgba; +@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size, + for (; sj < roiw16; sj += 16, dj += 64) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld1.8 {d0-d1}, [%[in0]] \n\t" + "vmov.8 q1, q0 \n\t" +@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size, + + if (sj < roiw8) + { +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld1.8 {d5}, [%[in]] \n\t" + "vmov.8 d6, d5 \n\t" +@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b, + "d24","d25","d26","d27","d28","d29","d30","d31" \ + ); + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + + #define YCRCB_CONSTS \ + register int16x4_t vcYR asm ("d31") = vmov_n_s16(4899); \ +@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con + #define COEFF_G ( 8663) + #define COEFF_B (-17705) + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + #define YUV420ALPHA3_CONST + #define YUV420ALPHA4_CONST register uint8x16_t c255 asm ("q13") = vmovq_n_u8(255); + #define YUV420ALPHA3_CONVERT +@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size, + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + const s32 hsv_shift = 12; +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register const f32 vsdiv_table = f32(255 << hsv_shift); + register f32 vhdiv_table = f32(hrange << hsv_shift); + register const s32 vhrange = hrange; +@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size, + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2) + #else + uint8x8x3_t vRgb = vld3_u8(src + sj); +@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size, + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + const s32 hsv_shift = 12; +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register const f32 vsdiv_table = f32(255 << hsv_shift); + register f32 vhdiv_table = f32(hrange << hsv_shift); + register const s32 vhrange = hrange; +@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size, + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2) + #else + uint8x8x4_t vRgb = vld4_u8(src + sj); +@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size, + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + const s32 hsv_shift = 12; +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register const f32 vsdiv_table = f32(255 << hsv_shift); + register f32 vhdiv_table = f32(hrange << hsv_shift); + register const s32 vhrange = hrange; +@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size, + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0) + #else + uint8x8x3_t vRgb = vld3_u8(src + sj); +@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size, + #ifdef CAROTENE_NEON + size_t roiw8 = size.width >= 7 ? size.width - 7 : 0; + const s32 hsv_shift = 12; +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register const f32 vsdiv_table = f32(255 << hsv_shift); + register f32 vhdiv_table = f32(hrange << hsv_shift); + register const s32 vhrange = hrange; +@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size, + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0) + #else + uint8x8x4_t vRgb = vld4_u8(src + sj); +@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size, + for (; j < roiw16; sj += 64, dj += 32, j += 16) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld4.8 {d2, d4, d6, d8}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t" + "vld4.8 {d3, d5, d7, d9}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t" +@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size, + for (; j < roiw16; sj += 48, dj += 32, j += 16) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld3.8 {d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t" + "vld3.8 {d3, d5, d7}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t" +@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size, + for (; j < roiw16; sj += 64, dj += 32, j += 16) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld4.8 {d0, d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 \n\t" + "vld4.8 {d1, d3, d5, d7}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA \n\t" +@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size, + for (; j < roiw16; sj += 48, dj += 32, j += 16) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld3.8 {d0, d2, d4}, [%[in0]] @ q0 q1 q2 q3 \n\t" + "vld3.8 {d1, d3, d5}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t" +@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size, + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2) + #else + uint8x8x3_t vRgb = vld3_u8(src + sj); +@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size, + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2) + #else + uint8x8x4_t vRgba = vld4_u8(src + sj); +@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size, + for (; j < roiw8; sj += 24, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0) + #else + uint8x8x3_t vBgr = vld3_u8(src + sj); +@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size, + for (; j < roiw8; sj += 32, dj += 24, j += 8) + { + internal::prefetch(src + sj); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0) + #else + uint8x8x4_t vBgra = vld4_u8(src + sj); +@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTYUV420TORGB(3, d1, d0, q5, q6) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTYUV420TORGB(4, d1, d0, q5, q6) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTYUV420TORGB(3, d0, d1, q5, q6) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTYUV420TORGB(4, d0, d1, q5, q6) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTYUV420TORGB(3, d1, d0, q6, q5) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTYUV420TORGB(4, d1, d0, q6, q5) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTYUV420TORGB(3, d0, d1, q6, q5) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size, + internal::prefetch(uv + j); + internal::prefetch(y1 + j); + internal::prefetch(y2 + j); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CONVERTYUV420TORGB(4, d0, d1, q6, q5) + #else + convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj); +diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp +index 64b6db78ab..f0c2d153f2 100644 +--- a/3rdparty/carotene/src/convert.cpp ++++ b/3rdparty/carotene/src/convert.cpp +@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16, + } + }) + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVT_FUNC(u8, u16, 16, + register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);, + { +@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVT_FUNC(u8, s32, 16, + register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0); + register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0); +@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(u8, f32, 16, + , + { +@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16, + } + }) + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVT_FUNC(s8, u16, 16, + register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);, + { +@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s8, s16, 16, + , + { +@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVT_FUNC(s8, s32, 16, + , + { +@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s8, f32, 16, + , + { +@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(u16, u8, 16, + , + { +@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(u16, s8, 16, + register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);, + { +@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVT_FUNC(u16, s16, 8, + register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);, + { +@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVT_FUNC(u16, s32, 8, + register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);, + { +@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(u16, f32, 8, + , + { +@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s16, u8, 16, + , + { +@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s16, s8, 16, + , + { +@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVT_FUNC(s16, u16, 8, + register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);, + { +@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s16, s32, 8, + , + { +@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s16, f32, 8, + , + { +@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s32, u8, 8, + , + { +@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s32, s8, 8, + , + { +@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s32, u16, 8, + , + { +@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s32, s16, 8, + , + { +@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(s32, f32, 8, + , + { +@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(f32, u8, 8, + register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16)); + register uint32x4_t vmask asm ("q1") = vdupq_n_u32(1<<16);, +@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(f32, s8, 8, + register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);, + { +@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(f32, u16, 8, + register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);, + { +@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(f32, s16, 8, + register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);, + { +@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + CVT_FUNC(f32, s32, 8, + register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);, + { +diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp +index ae41a985c8..d599d24c1e 100644 +--- a/3rdparty/carotene/src/convert_scale.cpp ++++ b/3rdparty/carotene/src/convert_scale.cpp +@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(u8, s32, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(u8, f32, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s8, s32, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s8, f32, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(u16, u8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(u16, s8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC1(u16, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(u16, s16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(u16, s32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(u16, f32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s16, u8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s16, s8, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s16, u16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC1(s16, 16, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s16, s32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s16, f32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s32, u8, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s32, s8, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s32, u16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s32, s16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC1(s32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(s32, f32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(f32, u8, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha)); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta)); +@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(f32, s8, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(f32, u16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(f32, s16, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC(f32, s32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);, +@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8, + }) + #endif + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + CVTS_FUNC1(f32, 8, + register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha); + register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);, +diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp +index f7b5f18d79..e5aa8fc75b 100644 +--- a/3rdparty/carotene/src/gaussian_blur.cpp ++++ b/3rdparty/carotene/src/gaussian_blur.cpp +@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn, + u16* lidx1 = lane + x - 1*2; + u16* lidx3 = lane + x + 1*2; + u16* lidx4 = lane + x + 2*2; +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ __volatile__ ( + "vld2.16 {d0, d2}, [%[in0]]! \n\t" + "vld2.16 {d1, d3}, [%[in0]] \n\t" +diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp +index 232ccf3efd..d4e32ea50f 100644 +--- a/3rdparty/carotene/src/pyramid.cpp ++++ b/3rdparty/carotene/src/pyramid.cpp +@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize, + for (; x < roiw8; x += 8) + { + internal::prefetch(lane + 2 * x); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld2.16 {d0-d3}, [%[in0]] \n\t" + "vld2.16 {d4-d7}, [%[in4]] \n\t" +@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize, + for (; x < roiw4; x += 4) + { + internal::prefetch(lane + 2 * x); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld2.32 {d0-d3}, [%[in0]] \n\t" + "vld2.32 {d4-d7}, [%[in4]] \n\t" +@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize, + std::vector _buf(cn*(srcSize.width + 4) + 32/sizeof(f32)); + f32* lane = internal::alignPtr(&_buf[2*cn], 32); + +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + register float32x4_t vc6d4f32 asm ("q11") = vmovq_n_f32(1.5f); // 6/4 + register float32x4_t vc1d4f32 asm ("q12") = vmovq_n_f32(0.25f); // 1/4 + +@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize, + for (; x < roiw4; x += 4) + { + internal::prefetch(lane + 2 * x); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ __volatile__ ( + "vld2.32 {d0-d3}, [%[in0]] \n\t" + "vld2.32 {d8-d11}, [%[in4]] \n\t" +diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp +index 8d3b6328b1..36f6b2276e 100644 +--- a/3rdparty/carotene/src/scharr.cpp ++++ b/3rdparty/carotene/src/scharr.cpp +@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn, + internal::prefetch(srow0 + x); + internal::prefetch(srow1 + x); + internal::prefetch(srow2 + x); +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__) + __asm__ ( + "vld1.8 {d0}, [%[src0]] \n\t" + "vld1.8 {d2}, [%[src2]] \n\t" +@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn, + x = 0; + for( ; x < roiw8; x += 8 ) + { +-#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 ++#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__) + __asm__ ( + "vld1.16 {d4-d5}, [%[s2ptr]] \n\t" + "vld1.16 {d8-d9}, [%[s4ptr]] \n\t" +-- +2.14.1 + diff --git a/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch b/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch new file mode 100644 index 00000000000..a845505a85d --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch @@ -0,0 +1,26 @@ +From 350525293aef65490e80104ddd99e1b21c5d54b0 Mon Sep 17 00:00:00 2001 +From: Bian Naimeng +Date: Wed, 19 Apr 2017 03:11:37 +0900 +Subject: [PATCH 2/3] Make opencv-ts create share library intead of static. + +Signed-off-by: Lei Maohui +--- + modules/ts/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt +index f95bed079..ee67858df 100644 +--- a/modules/ts/CMakeLists.txt ++++ b/modules/ts/CMakeLists.txt +@@ -4,7 +4,7 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS) + ocv_module_disable(ts) + endif() + +-set(OPENCV_MODULE_TYPE STATIC) ++#set(OPENCV_MODULE_TYPE STATIC) + set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE) + + if(WINRT) +-- +2.13.4 + diff --git a/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch b/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch new file mode 100644 index 00000000000..39f33af9de5 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch @@ -0,0 +1,656 @@ +Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3] + +Fix CVEs for opencv 3.3: + +* CVE-2017-12597 +* CVE-2017-12598 +* CVE-2017-12599 +* CVE-2017-12600 +* CVE-2017-12601 +* CVE-2017-12602 +* CVE-2017-12603 +* CVE-2017-12604 +* CVE-2017-12605 +* CVE-2017-12606 +* CVE-2017-12862 +* CVE-2017-12863 +* CVE-2017-12864 + +Signed-off-by: Kai Kang +--- +From 999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3 Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin +Date: Tue, 15 Aug 2017 22:04:55 +0000 +Subject: [PATCH 2/3] imgcodecs: refactoring, improve code quality + +--- + modules/imgcodecs/src/bitstrm.cpp | 2 + + modules/imgcodecs/src/bitstrm.hpp | 19 +++-- + modules/imgcodecs/src/grfmt_bmp.cpp | 13 ++- + modules/imgcodecs/src/grfmt_pxm.cpp | 122 ++++++++++++++++----------- + modules/imgcodecs/src/loadsave.cpp | 164 +++++++++++++++++++++++++++++------- + 5 files changed, 231 insertions(+), 89 deletions(-) + +diff --git a/modules/imgcodecs/src/bitstrm.cpp b/modules/imgcodecs/src/bitstrm.cpp +index a7e187fa0..0a8941aec 100644 +--- a/modules/imgcodecs/src/bitstrm.cpp ++++ b/modules/imgcodecs/src/bitstrm.cpp +@@ -209,6 +209,8 @@ int RLByteStream::getByte() + current = m_current; + } + ++ CV_Assert(current < m_end); ++ + val = *((uchar*)current); + m_current = current + 1; + return val; +diff --git a/modules/imgcodecs/src/bitstrm.hpp b/modules/imgcodecs/src/bitstrm.hpp +index 465c0a847..26947971f 100644 +--- a/modules/imgcodecs/src/bitstrm.hpp ++++ b/modules/imgcodecs/src/bitstrm.hpp +@@ -48,13 +48,20 @@ + namespace cv + { + +-enum +-{ +- RBS_THROW_EOS=-123, // exception code +- RBS_THROW_FORB=-124, // exception code +- RBS_HUFF_FORB=2047, // forrbidden huffman code "value" +- RBS_BAD_HEADER=-125 // invalid header ++#define DECLARE_RBS_EXCEPTION(name) \ ++class RBS_ ## name ## _Exception : public cv::Exception \ ++{ \ ++public: \ ++ RBS_ ## name ## _Exception(int code_, const String& err_, const String& func_, const String& file_, int line_) : \ ++ cv::Exception(code_, err_, func_, file_, line_) \ ++ {} \ + }; ++DECLARE_RBS_EXCEPTION(THROW_EOS) ++#define RBS_THROW_EOS RBS_THROW_EOS_Exception(cv::Error::StsError, "Unexpected end of input stream", CV_Func, __FILE__, __LINE__) ++DECLARE_RBS_EXCEPTION(THROW_FORB) ++#define RBS_THROW_FORB RBS_THROW_FORB_Exception(cv::Error::StsError, "Forrbidden huffman code", CV_Func, __FILE__, __LINE__) ++DECLARE_RBS_EXCEPTION(BAD_HEADER) ++#define RBS_BAD_HEADER RBS_BAD_HEADER_Exception(cv::Error::StsError, "Invalid header", CV_Func, __FILE__, __LINE__) + + typedef unsigned long ulong; + +diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp +index 86cacd316..257f97c2d 100644 +--- a/modules/imgcodecs/src/grfmt_bmp.cpp ++++ b/modules/imgcodecs/src/grfmt_bmp.cpp +@@ -118,8 +118,9 @@ bool BmpDecoder::readHeader() + + if( m_bpp <= 8 ) + { +- memset( m_palette, 0, sizeof(m_palette)); +- m_strm.getBytes( m_palette, (clrused == 0? 1< 2 ) // absolute mode + { + if( data + code*nch > line_end ) goto decode_rle4_bad; +- m_strm.getBytes( src, (((code + 1)>>1) + 1) & -2 ); ++ int sz = (((code + 1)>>1) + 1) & (~1); ++ CV_Assert((size_t)sz < _src.size()); ++ m_strm.getBytes(src, sz); + if( color ) + data = FillColorRow4( data, src, code, m_palette ); + else +@@ -379,7 +382,9 @@ decode_rle4_bad: ; + + if( data + code3 > line_end ) + goto decode_rle8_bad; +- m_strm.getBytes( src, (code + 1) & -2 ); ++ int sz = (code + 1) & (~1); ++ CV_Assert((size_t)sz < _src.size()); ++ m_strm.getBytes(src, sz); + if( color ) + data = FillColorRow8( data, src, code, m_palette ); + else +diff --git a/modules/imgcodecs/src/grfmt_pxm.cpp b/modules/imgcodecs/src/grfmt_pxm.cpp +index 1750cb705..68bd8fd93 100644 +--- a/modules/imgcodecs/src/grfmt_pxm.cpp ++++ b/modules/imgcodecs/src/grfmt_pxm.cpp +@@ -43,50 +43,58 @@ + #include "precomp.hpp" + #include "utils.hpp" + #include "grfmt_pxm.hpp" ++#include + + namespace cv + { + + ///////////////////////// P?M reader ////////////////////////////// + +-static int ReadNumber( RLByteStream& strm, int maxdigits ) ++static int ReadNumber(RLByteStream& strm, int maxdigits = 0) + { + int code; +- int val = 0; ++ int64 val = 0; + int digits = 0; + + code = strm.getByte(); + +- if( !isdigit(code)) ++ while (!isdigit(code)) + { +- do ++ if (code == '#' ) + { +- if( code == '#' ) ++ do + { +- do +- { +- code = strm.getByte(); +- } +- while( code != '\n' && code != '\r' ); ++ code = strm.getByte(); + } +- ++ while (code != '\n' && code != '\r'); + code = strm.getByte(); +- +- while( isspace(code)) ++ } ++ else if (isspace(code)) ++ { ++ while (isspace(code)) + code = strm.getByte(); + } +- while( !isdigit( code )); ++ else ++ { ++#if 1 ++ CV_ErrorNoReturn_(Error::StsError, ("PXM: Unexpected code in ReadNumber(): 0x%x (%d)", code, code)); ++#else ++ code = strm.getByte(); ++#endif ++ } + } + + do + { +- val = val*10 + code - '0'; +- if( ++digits >= maxdigits ) break; ++ val = val*10 + (code - '0'); ++ CV_Assert(val <= INT_MAX && "PXM: ReadNumber(): result is too large"); ++ digits++; ++ if (maxdigits != 0 && digits >= maxdigits) break; + code = strm.getByte(); + } +- while( isdigit(code)); ++ while (isdigit(code)); + +- return val; ++ return (int)val; + } + + +@@ -122,13 +130,13 @@ ImageDecoder PxMDecoder::newDecoder() const + return makePtr(); + } + +-void PxMDecoder::close() ++void PxMDecoder::close() + { + m_strm.close(); + } + + +-bool PxMDecoder::readHeader() ++bool PxMDecoder::readHeader() + { + bool result = false; + +@@ -158,10 +166,10 @@ bool PxMDecoder::readHeader() + m_binary = code >= '4'; + m_type = m_bpp > 8 ? CV_8UC3 : CV_8UC1; + +- m_width = ReadNumber( m_strm, INT_MAX ); +- m_height = ReadNumber( m_strm, INT_MAX ); ++ m_width = ReadNumber(m_strm); ++ m_height = ReadNumber(m_strm); + +- m_maxval = m_bpp == 1 ? 1 : ReadNumber( m_strm, INT_MAX ); ++ m_maxval = m_bpp == 1 ? 1 : ReadNumber(m_strm); + if( m_maxval > 65535 ) + throw RBS_BAD_HEADER; + +@@ -175,8 +183,14 @@ bool PxMDecoder::readHeader() + result = true; + } + } +- catch(...) ++ catch (const cv::Exception&) ++ { ++ throw; ++ } ++ catch (...) + { ++ std::cerr << "PXM::readHeader(): unknown C++ exception" << std::endl << std::flush; ++ throw; + } + + if( !result ) +@@ -189,33 +203,28 @@ bool PxMDecoder::readHeader() + } + + +-bool PxMDecoder::readData( Mat& img ) ++bool PxMDecoder::readData( Mat& img ) + { + int color = img.channels() > 1; + uchar* data = img.ptr(); + PaletteEntry palette[256]; + bool result = false; +- int bit_depth = CV_ELEM_SIZE1(m_type)*8; +- int src_pitch = (m_width*m_bpp*bit_depth/8 + 7)/8; ++ const int bit_depth = CV_ELEM_SIZE1(m_type)*8; ++ const int src_pitch = divUp(m_width*m_bpp*(bit_depth/8), 8); + int nch = CV_MAT_CN(m_type); + int width3 = m_width*nch; +- int i, x, y; + + if( m_offset < 0 || !m_strm.isOpened()) + return false; + +- AutoBuffer _src(src_pitch + 32); +- uchar* src = _src; +- AutoBuffer _gray_palette; +- uchar* gray_palette = _gray_palette; ++ uchar gray_palette[256] = {0}; + + // create LUT for converting colors + if( bit_depth == 8 ) + { +- _gray_palette.allocate(m_maxval + 1); +- gray_palette = _gray_palette; ++ CV_Assert(m_maxval < 256); + +- for( i = 0; i <= m_maxval; i++ ) ++ for (int i = 0; i <= m_maxval; i++) + gray_palette[i] = (uchar)((i*255/m_maxval)^(m_bpp == 1 ? 255 : 0)); + + FillGrayPalette( palette, m_bpp==1 ? 1 : 8 , m_bpp == 1 ); +@@ -229,12 +238,16 @@ bool PxMDecoder::readData( Mat& img ) + { + ////////////////////////// 1 BPP ///////////////////////// + case 1: ++ CV_Assert(CV_MAT_DEPTH(m_type) == CV_8U); + if( !m_binary ) + { +- for( y = 0; y < m_height; y++, data += img.step ) ++ AutoBuffer _src(m_width); ++ uchar* src = _src; ++ ++ for (int y = 0; y < m_height; y++, data += img.step) + { +- for( x = 0; x < m_width; x++ ) +- src[x] = ReadNumber( m_strm, 1 ) != 0; ++ for (int x = 0; x < m_width; x++) ++ src[x] = ReadNumber(m_strm, 1) != 0; + + if( color ) + FillColorRow8( data, src, m_width, palette ); +@@ -244,7 +257,10 @@ bool PxMDecoder::readData( Mat& img ) + } + else + { +- for( y = 0; y < m_height; y++, data += img.step ) ++ AutoBuffer _src(src_pitch); ++ uchar* src = _src; ++ ++ for (int y = 0; y < m_height; y++, data += img.step) + { + m_strm.getBytes( src, src_pitch ); + +@@ -260,13 +276,17 @@ bool PxMDecoder::readData( Mat& img ) + ////////////////////////// 8 BPP ///////////////////////// + case 8: + case 24: +- for( y = 0; y < m_height; y++, data += img.step ) ++ { ++ AutoBuffer _src(std::max(width3*2, src_pitch)); ++ uchar* src = _src; ++ ++ for (int y = 0; y < m_height; y++, data += img.step) + { + if( !m_binary ) + { +- for( x = 0; x < width3; x++ ) ++ for (int x = 0; x < width3; x++) + { +- int code = ReadNumber( m_strm, INT_MAX ); ++ int code = ReadNumber(m_strm); + if( (unsigned)code > (unsigned)m_maxval ) code = m_maxval; + if( bit_depth == 8 ) + src[x] = gray_palette[code]; +@@ -279,7 +299,7 @@ bool PxMDecoder::readData( Mat& img ) + m_strm.getBytes( src, src_pitch ); + if( bit_depth == 16 && !isBigEndian() ) + { +- for( x = 0; x < width3; x++ ) ++ for (int x = 0; x < width3; x++) + { + uchar v = src[x * 2]; + src[x * 2] = src[x * 2 + 1]; +@@ -290,7 +310,7 @@ bool PxMDecoder::readData( Mat& img ) + + if( img.depth() == CV_8U && bit_depth == 16 ) + { +- for( x = 0; x < width3; x++ ) ++ for (int x = 0; x < width3; x++) + { + int v = ((ushort *)src)[x]; + src[x] = (uchar)(v >> 8); +@@ -331,12 +351,19 @@ bool PxMDecoder::readData( Mat& img ) + } + result = true; + break; ++ } + default: +- assert(0); ++ CV_ErrorNoReturn(Error::StsError, "m_bpp is not supported"); + } + } +- catch(...) ++ catch (const cv::Exception&) ++ { ++ throw; ++ } ++ catch (...) + { ++ std::cerr << "PXM::readData(): unknown exception" << std::endl << std::flush; ++ throw; + } + + return result; +@@ -412,8 +439,9 @@ bool PxMEncoder::write( const Mat& img, const std::vector& params ) + char* buffer = _buffer; + + // write header; +- sprintf( buffer, "P%c\n%d %d\n%d\n", ++ sprintf( buffer, "P%c\n# Generated by OpenCV %s\n%d %d\n%d\n", + '2' + (channels > 1 ? 1 : 0) + (isBinary ? 3 : 0), ++ CV_VERSION, + width, height, (1 << depth) - 1 ); + + strm.putBytes( buffer, (int)strlen(buffer) ); +diff --git a/modules/imgcodecs/src/loadsave.cpp b/modules/imgcodecs/src/loadsave.cpp +index 3b2366217..5ee4ca354 100644 +--- a/modules/imgcodecs/src/loadsave.cpp ++++ b/modules/imgcodecs/src/loadsave.cpp +@@ -55,6 +55,27 @@ + /****************************************************************************************\ + * Image Codecs * + \****************************************************************************************/ ++ ++namespace cv { ++ ++// TODO Add runtime configuration ++#define CV_IO_MAX_IMAGE_PARAMS (50) ++#define CV_IO_MAX_IMAGE_WIDTH (1<<20) ++#define CV_IO_MAX_IMAGE_HEIGHT (1<<20) ++#define CV_IO_MAX_IMAGE_PIXELS (1<<30) // 1 Gigapixel ++ ++static Size validateInputImageSize(const Size& size) ++{ ++ CV_Assert(size.width > 0); ++ CV_Assert(size.width <= CV_IO_MAX_IMAGE_WIDTH); ++ CV_Assert(size.height > 0); ++ CV_Assert(size.height <= CV_IO_MAX_IMAGE_HEIGHT); ++ uint64 pixels = (uint64)size.width * (uint64)size.height; ++ CV_Assert(pixels <= CV_IO_MAX_IMAGE_PIXELS); ++ return size; ++} ++ ++ + namespace { + + class ByteStreamBuffer: public std::streambuf +@@ -94,9 +115,6 @@ protected: + + } + +-namespace cv +-{ +- + /** + * @struct ImageCodecInitializer + * +@@ -408,14 +426,26 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 ) + /// set the filename in the driver + decoder->setSource( filename ); + +- // read the header to make sure it succeeds +- if( !decoder->readHeader() ) ++ try ++ { ++ // read the header to make sure it succeeds ++ if( !decoder->readHeader() ) ++ return 0; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imread_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush; + return 0; ++ } ++ catch (...) ++ { ++ std::cerr << "imread_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush; ++ return 0; ++ } ++ + + // established the required input image size +- CvSize size; +- size.width = decoder->width(); +- size.height = decoder->height(); ++ Size size = validateInputImageSize(Size(decoder->width(), decoder->height())); + + // grab the decoded type + int type = decoder->type(); +@@ -451,7 +481,21 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 ) + } + + // read the image data +- if( !decoder->readData( *data )) ++ bool success = false; ++ try ++ { ++ if (decoder->readData(*data)) ++ success = true; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imread_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush; ++ } ++ catch (...) ++ { ++ std::cerr << "imread_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush; ++ } ++ if (!success) + { + cvReleaseImage( &image ); + cvReleaseMat( &matrix ); +@@ -504,8 +548,22 @@ imreadmulti_(const String& filename, int flags, std::vector& mats) + decoder->setSource(filename); + + // read the header to make sure it succeeds +- if (!decoder->readHeader()) ++ try ++ { ++ // read the header to make sure it succeeds ++ if( !decoder->readHeader() ) ++ return 0; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imreadmulti_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush; + return 0; ++ } ++ catch (...) ++ { ++ std::cerr << "imreadmulti_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush; ++ return 0; ++ } + + for (;;) + { +@@ -523,17 +581,32 @@ imreadmulti_(const String& filename, int flags, std::vector& mats) + type = CV_MAKETYPE(CV_MAT_DEPTH(type), 1); + } + ++ // established the required input image size ++ Size size = validateInputImageSize(Size(decoder->width(), decoder->height())); ++ + // read the image data +- Mat mat(decoder->height(), decoder->width(), type); +- if (!decoder->readData(mat)) ++ Mat mat(size.height, size.width, type); ++ bool success = false; ++ try + { +- // optionally rotate the data if EXIF' orientation flag says so +- if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED ) +- { +- ApplyExifOrientation(filename, mat); +- } +- ++ if (decoder->readData(mat)) ++ success = true; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imreadmulti_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush; ++ } ++ catch (...) ++ { ++ std::cerr << "imreadmulti_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush; ++ } ++ if (!success) + break; ++ ++ // optionally rotate the data if EXIF' orientation flag says so ++ if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED ) ++ { ++ ApplyExifOrientation(filename, mat); + } + + mats.push_back(mat); +@@ -616,6 +689,7 @@ static bool imwrite_( const String& filename, const Mat& image, + } + + encoder->setDestination( filename ); ++ CV_Assert(params.size() <= CV_IO_MAX_IMAGE_PARAMS*2); + bool code = encoder->write( *pimage, params ); + + // CV_Assert( code ); +@@ -663,22 +737,35 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 ) + decoder->setSource(filename); + } + +- if( !decoder->readHeader() ) ++ bool success = false; ++ try ++ { ++ if (decoder->readHeader()) ++ success = true; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imdecode_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush; ++ } ++ catch (...) ++ { ++ std::cerr << "imdecode_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush; ++ } ++ if (!success) + { + decoder.release(); +- if ( !filename.empty() ) ++ if (!filename.empty()) + { +- if ( remove(filename.c_str()) != 0 ) ++ if (0 != remove(filename.c_str())) + { +- CV_Error( CV_StsError, "unable to remove temporary file" ); ++ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush; + } + } + return 0; + } + +- CvSize size; +- size.width = decoder->width(); +- size.height = decoder->height(); ++ // established the required input image size ++ Size size = validateInputImageSize(Size(decoder->width(), decoder->height())); + + int type = decoder->type(); + if( (flags & IMREAD_LOAD_GDAL) != IMREAD_LOAD_GDAL && flags != IMREAD_UNCHANGED ) +@@ -712,17 +799,30 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 ) + temp = cvarrToMat(image); + } + +- bool code = decoder->readData( *data ); ++ success = false; ++ try ++ { ++ if (decoder->readData(*data)) ++ success = true; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imdecode_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush; ++ } ++ catch (...) ++ { ++ std::cerr << "imdecode_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush; ++ } + decoder.release(); +- if ( !filename.empty() ) ++ if (!filename.empty()) + { +- if ( remove(filename.c_str()) != 0 ) ++ if (0 != remove(filename.c_str())) + { +- CV_Error( CV_StsError, "unable to remove temporary file" ); ++ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush; + } + } + +- if( !code ) ++ if (!success) + { + cvReleaseImage( &image ); + cvReleaseMat( &matrix ); +@@ -859,7 +959,7 @@ cvSaveImage( const char* filename, const CvArr* arr, const int* _params ) + if( _params ) + { + for( ; _params[i] > 0; i += 2 ) +- ; ++ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons + } + return cv::imwrite_(filename, cv::cvarrToMat(arr), + i > 0 ? std::vector(_params, _params+i) : std::vector(), +@@ -890,7 +990,7 @@ cvEncodeImage( const char* ext, const CvArr* arr, const int* _params ) + if( _params ) + { + for( ; _params[i] > 0; i += 2 ) +- ; ++ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons + } + cv::Mat img = cv::cvarrToMat(arr); + if( CV_IS_IMAGE(arr) && ((const IplImage*)arr)->origin == IPL_ORIGIN_BL ) +-- +2.14.1 + diff --git a/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch new file mode 100644 index 00000000000..a22b04a905c --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch @@ -0,0 +1,80 @@ +From ace48a628dca34d742615598afeef42ed323a029 Mon Sep 17 00:00:00 2001 +From: Huang Qiyu +Date: Fri, 19 May 2017 04:27:50 +0900 +Subject: [PATCH 3/3] To fix errors as following: + +"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'" +"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'" +"test_superres.cpp:270: undefined reference to `checkIppStatus()'" + +Signed-off-by: Huang Qiyu + +Also add the visibility changes for certain OpenCL-related functions in +ts module. + +Signed-off-by: Ismo Puustinen +--- + modules/ts/include/opencv2/ts.hpp | 6 +++--- + modules/ts/include/opencv2/ts/ocl_test.hpp | 2 +- + modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp +index 41a76b13e..205646140 100644 +--- a/modules/ts/include/opencv2/ts.hpp ++++ b/modules/ts/include/opencv2/ts.hpp +@@ -555,7 +555,7 @@ protected: + } + }; + +-extern uint64 param_seed; ++CV_EXPORTS extern uint64 param_seed; + + struct CV_EXPORTS DefaultRngAuto + { +@@ -611,14 +611,14 @@ CV_EXPORTS std::string findDataFile(const std::string& relative_path, bool requi + + #ifdef HAVE_OPENCL + namespace ocl { +-void dumpOpenCLDevice(); ++CV_EXPORTS void dumpOpenCLDevice(); + } + #define TEST_DUMP_OCL_INFO cvtest::ocl::dumpOpenCLDevice(); + #else + #define TEST_DUMP_OCL_INFO + #endif + +-void parseCustomOptions(int argc, char **argv); ++CV_EXPORTS void parseCustomOptions(int argc, char **argv); + + #define CV_TEST_INIT0_NOOP (void)0 + +diff --git a/modules/ts/include/opencv2/ts/ocl_test.hpp b/modules/ts/include/opencv2/ts/ocl_test.hpp +index 54b33ece8..ef56bf9ef 100644 +--- a/modules/ts/include/opencv2/ts/ocl_test.hpp ++++ b/modules/ts/include/opencv2/ts/ocl_test.hpp +@@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src) + return dst; + } + +-extern int test_loop_times; ++CV_EXPORTS extern int test_loop_times; + + #define MAX_VALUE 357 + +diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp +index 0bdd346dd..2cd34dfce 100644 +--- a/modules/ts/include/opencv2/ts/ts_ext.hpp ++++ b/modules/ts/include/opencv2/ts/ts_ext.hpp +@@ -9,7 +9,7 @@ + #define OPENCV_TS_EXT_HPP + + namespace cvtest { +-void checkIppStatus(); ++CV_EXPORTS void checkIppStatus(); + } + + #define CV_TEST_INIT \ +-- +2.13.4 + diff --git a/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch b/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch new file mode 100644 index 00000000000..5f4a60c9601 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch @@ -0,0 +1,186 @@ +Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/78a310630fb0a1f6d089576202343e672f27609d] + +Fix CVEs for opencv 3.3. + +* CVE-2017-12597 +* CVE-2017-12598 +* CVE-2017-12599 +* CVE-2017-12600 +* CVE-2017-12601 +* CVE-2017-12602 +* CVE-2017-12603 +* CVE-2017-12604 +* CVE-2017-12605 +* CVE-2017-12606 +* CVE-2017-12862 +* CVE-2017-12863 +* CVE-2017-12864 + +Signed-off-by: Kai Kang +--- +From 78a310630fb0a1f6d089576202343e672f27609d Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin +Date: Wed, 16 Aug 2017 13:53:12 +0300 +Subject: [PATCH 3/3] imgproc(test): add checks for remove() call + +--- + modules/imgcodecs/test/test_grfmt.cpp | 2 +- + modules/imgcodecs/test/test_jpeg.cpp | 12 ++++++------ + modules/imgcodecs/test/test_png.cpp | 2 +- + modules/imgcodecs/test/test_read_write.cpp | 4 ++-- + modules/imgcodecs/test/test_tiff.cpp | 8 ++++---- + modules/imgcodecs/test/test_webp.cpp | 6 +++--- + 6 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/modules/imgcodecs/test/test_grfmt.cpp b/modules/imgcodecs/test/test_grfmt.cpp +index 64a0c1e3a..74b72c3b3 100644 +--- a/modules/imgcodecs/test/test_grfmt.cpp ++++ b/modules/imgcodecs/test/test_grfmt.cpp +@@ -175,7 +175,7 @@ TEST_P(Imgcodecs_ExtSize, write_imageseq) + EXPECT_LT(n, 1.); + EXPECT_PRED_FORMAT2(cvtest::MatComparator(0, 0), img, img_gt); + } +- remove(filename.c_str()); ++ EXPECT_EQ(0, remove(filename.c_str())); + } + } + +diff --git a/modules/imgcodecs/test/test_jpeg.cpp b/modules/imgcodecs/test/test_jpeg.cpp +index 5546f2d91..6ddb02840 100644 +--- a/modules/imgcodecs/test/test_jpeg.cpp ++++ b/modules/imgcodecs/test/test_jpeg.cpp +@@ -123,8 +123,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_progressive_jpeg) + + EXPECT_EQ(0, cvtest::norm(img_jpg_progressive, img_jpg_normal, NORM_INF)); + +- remove(output_progressive.c_str()); +- remove(output_normal.c_str()); ++ EXPECT_EQ(0, remove(output_progressive.c_str())); ++ EXPECT_EQ(0, remove(output_normal.c_str())); + } + + TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg) +@@ -148,8 +148,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg) + + EXPECT_EQ(0, cvtest::norm(img_jpg_optimized, img_jpg_normal, NORM_INF)); + +- remove(output_optimized.c_str()); +- remove(output_normal.c_str()); ++ EXPECT_EQ(0, remove(output_optimized.c_str())); ++ EXPECT_EQ(0, remove(output_normal.c_str())); + } + + TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg) +@@ -173,8 +173,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg) + + EXPECT_EQ(0, cvtest::norm(img_jpg_rst, img_jpg_normal, NORM_INF)); + +- remove(output_rst.c_str()); +- remove(output_normal.c_str()); ++ EXPECT_EQ(0, remove(output_rst.c_str())); ++ EXPECT_EQ(0, remove(output_normal.c_str())); + } + + #endif // HAVE_JPEG +diff --git a/modules/imgcodecs/test/test_png.cpp b/modules/imgcodecs/test/test_png.cpp +index c46f90119..4e97043e1 100644 +--- a/modules/imgcodecs/test/test_png.cpp ++++ b/modules/imgcodecs/test/test_png.cpp +@@ -17,7 +17,7 @@ TEST(Imgcodecs_Png, write_big) + EXPECT_EQ(13043, img.cols); + EXPECT_EQ(13917, img.rows); + ASSERT_NO_THROW(imwrite(dst_file, img)); +- remove(dst_file.c_str()); ++ EXPECT_EQ(0, remove(dst_file.c_str())); + } + + TEST(Imgcodecs_Png, encode) +diff --git a/modules/imgcodecs/test/test_read_write.cpp b/modules/imgcodecs/test/test_read_write.cpp +index 38f10225f..5119813bf 100644 +--- a/modules/imgcodecs/test/test_read_write.cpp ++++ b/modules/imgcodecs/test/test_read_write.cpp +@@ -50,7 +50,7 @@ TEST(Imgcodecs_Image, read_write_bmp) + psnr = cvtest::PSNR(buf_loaded, image); + EXPECT_GT(psnr, thresDbell); + +- remove(dst_name.c_str()); ++ EXPECT_EQ(0, remove(dst_name.c_str())); + } + } + +@@ -95,7 +95,7 @@ TEST_P(Imgcodecs_Image, read_write) + psnr = cvtest::PSNR(buf_loaded, image); + EXPECT_GT(psnr, thresDbell); + +- remove(full_name.c_str()); ++ EXPECT_EQ(0, remove(full_name.c_str())); + } + + const string exts[] = { +diff --git a/modules/imgcodecs/test/test_tiff.cpp b/modules/imgcodecs/test/test_tiff.cpp +index 0264da4cd..6ef0c1748 100644 +--- a/modules/imgcodecs/test/test_tiff.cpp ++++ b/modules/imgcodecs/test/test_tiff.cpp +@@ -41,8 +41,8 @@ TEST(Imgcodecs_Tiff, decode_tile16384x16384) + // not enough memory + } + +- remove(file3.c_str()); +- remove(file4.c_str()); ++ EXPECT_EQ(0, remove(file3.c_str())); ++ EXPECT_EQ(0, remove(file4.c_str())); + } + + TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian) +@@ -88,7 +88,7 @@ TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian) + EXPECT_EQ(0xDEAD, img.at(0,0)); + EXPECT_EQ(0xBEEF, img.at(0,1)); + +- remove(filename.c_str()); ++ EXPECT_EQ(0, remove(filename.c_str())); + } + } + +@@ -143,7 +143,7 @@ TEST(Imgcodecs_Tiff, decode_infinite_rowsperstrip) + + EXPECT_NO_THROW(cv::imread(filename, IMREAD_UNCHANGED)); + +- remove(filename.c_str()); ++ EXPECT_EQ(0, remove(filename.c_str())); + } + + //================================================================================================== +diff --git a/modules/imgcodecs/test/test_webp.cpp b/modules/imgcodecs/test/test_webp.cpp +index 6d40ce21e..d82fdd289 100644 +--- a/modules/imgcodecs/test/test_webp.cpp ++++ b/modules/imgcodecs/test/test_webp.cpp +@@ -44,7 +44,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossless_webp) + } + } + +- remove(output.c_str()); ++ EXPECT_EQ(0, remove(output.c_str())); + + cv::Mat decode = cv::imdecode(buf, IMREAD_COLOR); + ASSERT_FALSE(decode.empty()); +@@ -71,7 +71,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossy_webp) + + EXPECT_NO_THROW(cv::imwrite(output, img, params)); + cv::Mat img_webp = cv::imread(output); +- remove(output.c_str()); ++ EXPECT_EQ(0, remove(output.c_str())); + EXPECT_FALSE(img_webp.empty()); + EXPECT_EQ(3, img_webp.channels()); + EXPECT_EQ(512, img_webp.cols); +@@ -96,7 +96,7 @@ TEST(Imgcodecs_WebP, encode_decode_with_alpha_webp) + + EXPECT_NO_THROW(cv::imwrite(output, img)); + cv::Mat img_webp = cv::imread(output); +- remove(output.c_str()); ++ EXPECT_EQ(0, remove(output.c_str())); + EXPECT_FALSE(img_webp.empty()); + EXPECT_EQ(4, img_webp.channels()); + EXPECT_EQ(512, img_webp.cols); +-- +2.14.1 + diff --git a/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch b/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch new file mode 100644 index 00000000000..7ad50a2d2f4 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch @@ -0,0 +1,288 @@ +Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9448/commits/aacae20] + +Backport patch to fix CVE-2017-14136. + +Ref: https://github.com/opencv/opencv/issues/9443 + +Signed-off-by: Kai Kang +--- +From aacae2065744adb05e858d327198c7bbe7f452b0 Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin +Date: Wed, 23 Aug 2017 15:15:27 +0300 +Subject: [PATCH] imgcodesc: fix code problems with integer overflow / address + arithmetic / UB + +--- + modules/imgcodecs/src/grfmt_bmp.cpp | 8 ++--- + modules/imgcodecs/src/grfmt_exr.cpp | 10 +++---- + modules/imgcodecs/src/grfmt_jpeg.cpp | 2 +- + modules/imgcodecs/src/grfmt_jpeg2000.cpp | 6 ++-- + modules/imgcodecs/src/grfmt_pam.cpp | 2 +- + modules/imgcodecs/src/grfmt_sunras.cpp | 6 ++-- + modules/imgcodecs/src/utils.cpp | 51 +++++++++++++++++++------------- + modules/imgcodecs/src/utils.hpp | 2 ++ + 8 files changed, 50 insertions(+), 37 deletions(-) + +diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp +index 257f97c2d8b..69768e276a3 100644 +--- a/modules/imgcodecs/src/grfmt_bmp.cpp ++++ b/modules/imgcodecs/src/grfmt_bmp.cpp +@@ -193,7 +193,7 @@ bool BmpDecoder::readHeader() + bool BmpDecoder::readData( Mat& img ) + { + uchar* data = img.ptr(); +- int step = (int)img.step; ++ int step = validateToInt(img.step); + bool color = img.channels() > 1; + uchar gray_palette[256] = {0}; + bool result = false; +@@ -206,7 +206,7 @@ bool BmpDecoder::readData( Mat& img ) + + if( m_origin == IPL_ORIGIN_BL ) + { +- data += (m_height - 1)*step; ++ data += (m_height - 1)*(size_t)step; + step = -step; + } + +@@ -530,7 +530,7 @@ bool BmpEncoder::write( const Mat& img, const std::vector& ) + int bitmapHeaderSize = 40; + int paletteSize = channels > 1 ? 0 : 1024; + int headerSize = 14 /* fileheader */ + bitmapHeaderSize + paletteSize; +- int fileSize = fileStep*height + headerSize; ++ size_t fileSize = (size_t)fileStep*height + headerSize; + PaletteEntry palette[256]; + + if( m_buf ) +@@ -540,7 +540,7 @@ bool BmpEncoder::write( const Mat& img, const std::vector& ) + strm.putBytes( fmtSignBmp, (int)strlen(fmtSignBmp) ); + + // write file header +- strm.putDWord( fileSize ); // file size ++ strm.putDWord( validateToInt(fileSize) ); // file size + strm.putDWord( 0 ); + strm.putDWord( headerSize ); + +diff --git a/modules/imgcodecs/src/grfmt_exr.cpp b/modules/imgcodecs/src/grfmt_exr.cpp +index 0d2ae9fa7d2..78ffe6c7668 100644 +--- a/modules/imgcodecs/src/grfmt_exr.cpp ++++ b/modules/imgcodecs/src/grfmt_exr.cpp +@@ -195,7 +195,7 @@ bool ExrDecoder::readData( Mat& img ) + bool color = img.channels() > 1; + + uchar* data = img.ptr(); +- int step = img.step; ++ size_t step = img.step; + bool justcopy = m_native_depth; + bool chromatorgb = false; + bool rgbtogray = false; +@@ -203,8 +203,8 @@ bool ExrDecoder::readData( Mat& img ) + FrameBuffer frame; + int xsample[3] = {1, 1, 1}; + char *buffer; +- int xstep; +- int ystep; ++ size_t xstep = 0; ++ size_t ystep = 0; + + xstep = m_native_depth ? 4 : 1; + +@@ -593,7 +593,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector& ) + bool issigned = depth == CV_8S || depth == CV_16S || depth == CV_32S; + bool isfloat = depth == CV_32F || depth == CV_64F; + depth = CV_ELEM_SIZE1(depth)*8; +- const int step = img.step; ++ const size_t step = img.step; + + Header header( width, height ); + Imf::PixelType type; +@@ -623,7 +623,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector& ) + FrameBuffer frame; + + char *buffer; +- int bufferstep; ++ size_t bufferstep; + int size; + if( type == FLOAT && depth == 32 ) + { +diff --git a/modules/imgcodecs/src/grfmt_jpeg.cpp b/modules/imgcodecs/src/grfmt_jpeg.cpp +index ce942ca1995..caf768d2569 100644 +--- a/modules/imgcodecs/src/grfmt_jpeg.cpp ++++ b/modules/imgcodecs/src/grfmt_jpeg.cpp +@@ -396,7 +396,7 @@ int my_jpeg_load_dht (struct jpeg_decompress_struct *info, unsigned char *dht, + bool JpegDecoder::readData( Mat& img ) + { + volatile bool result = false; +- int step = (int)img.step; ++ size_t step = img.step; + bool color = img.channels() > 1; + + if( m_state && m_width && m_height ) +diff --git a/modules/imgcodecs/src/grfmt_jpeg2000.cpp b/modules/imgcodecs/src/grfmt_jpeg2000.cpp +index 950ec21375f..24dfb38bb9d 100644 +--- a/modules/imgcodecs/src/grfmt_jpeg2000.cpp ++++ b/modules/imgcodecs/src/grfmt_jpeg2000.cpp +@@ -156,7 +156,7 @@ bool Jpeg2KDecoder::readData( Mat& img ) + bool result = false; + int color = img.channels() > 1; + uchar* data = img.ptr(); +- int step = (int)img.step; ++ size_t step = img.step; + jas_stream_t* stream = (jas_stream_t*)m_stream; + jas_image_t* image = (jas_image_t*)m_image; + +@@ -252,9 +252,9 @@ bool Jpeg2KDecoder::readData( Mat& img ) + if( !jas_image_readcmpt( image, cmptlut[i], 0, 0, xend / xstep, yend / ystep, buffer )) + { + if( img.depth() == CV_8U ) +- result = readComponent8u( data + i, buffer, step, cmptlut[i], maxval, offset, ncmpts ); ++ result = readComponent8u( data + i, buffer, validateToInt(step), cmptlut[i], maxval, offset, ncmpts ); + else +- result = readComponent16u( ((unsigned short *)data) + i, buffer, step / 2, cmptlut[i], maxval, offset, ncmpts ); ++ result = readComponent16u( ((unsigned short *)data) + i, buffer, validateToInt(step / 2), cmptlut[i], maxval, offset, ncmpts ); + if( !result ) + { + i = ncmpts; +diff --git a/modules/imgcodecs/src/grfmt_pam.cpp b/modules/imgcodecs/src/grfmt_pam.cpp +index 11195dc342c..8eb9e012309 100644 +--- a/modules/imgcodecs/src/grfmt_pam.cpp ++++ b/modules/imgcodecs/src/grfmt_pam.cpp +@@ -479,7 +479,7 @@ bool PAMDecoder::readData( Mat& img ) + { + uchar* data = img.ptr(); + int target_channels = img.channels(); +- int imp_stride = (int)img.step; ++ size_t imp_stride = img.step; + int sample_depth = CV_ELEM_SIZE1(m_type); + int src_elems_per_row = m_width*m_channels; + int src_stride = src_elems_per_row*sample_depth; +diff --git a/modules/imgcodecs/src/grfmt_sunras.cpp b/modules/imgcodecs/src/grfmt_sunras.cpp +index aca9b369318..6d448f94ed3 100644 +--- a/modules/imgcodecs/src/grfmt_sunras.cpp ++++ b/modules/imgcodecs/src/grfmt_sunras.cpp +@@ -160,7 +160,7 @@ bool SunRasterDecoder::readData( Mat& img ) + { + int color = img.channels() > 1; + uchar* data = img.ptr(); +- int step = (int)img.step; ++ size_t step = img.step; + uchar gray_palette[256] = {0}; + bool result = false; + int src_pitch = ((m_width*m_bpp + 7)/8 + 1) & -2; +@@ -308,11 +308,11 @@ bool SunRasterDecoder::readData( Mat& img ) + code = m_strm.getByte(); + + if( color ) +- data = FillUniColor( data, line_end, step, width3, ++ data = FillUniColor( data, line_end, validateToInt(step), width3, + y, m_height, len, + m_palette[code] ); + else +- data = FillUniGray( data, line_end, step, width3, ++ data = FillUniGray( data, line_end, validateToInt(step), width3, + y, m_height, len, + gray_palette[code] ); + if( y >= m_height ) +diff --git a/modules/imgcodecs/src/utils.cpp b/modules/imgcodecs/src/utils.cpp +index 2ee5bafc712..474dae008ca 100644 +--- a/modules/imgcodecs/src/utils.cpp ++++ b/modules/imgcodecs/src/utils.cpp +@@ -42,6 +42,13 @@ + #include "precomp.hpp" + #include "utils.hpp" + ++int validateToInt(size_t sz) ++{ ++ int valueInt = (int)sz; ++ CV_Assert((size_t)valueInt == sz); ++ return valueInt; ++} ++ + #define SCALE 14 + #define cR (int)(0.299*(1 << SCALE) + 0.5) + #define cG (int)(0.587*(1 << SCALE) + 0.5) +@@ -537,23 +544,25 @@ uchar* FillColorRow1( uchar* data, uchar* indices, int len, PaletteEntry* palett + { + uchar* end = data + len*3; + ++ const PaletteEntry p0 = palette[0], p1 = palette[1]; ++ + while( (data += 24) < end ) + { + int idx = *indices++; +- *((PaletteEntry*)(data - 24)) = palette[(idx & 128) != 0]; +- *((PaletteEntry*)(data - 21)) = palette[(idx & 64) != 0]; +- *((PaletteEntry*)(data - 18)) = palette[(idx & 32) != 0]; +- *((PaletteEntry*)(data - 15)) = palette[(idx & 16) != 0]; +- *((PaletteEntry*)(data - 12)) = palette[(idx & 8) != 0]; +- *((PaletteEntry*)(data - 9)) = palette[(idx & 4) != 0]; +- *((PaletteEntry*)(data - 6)) = palette[(idx & 2) != 0]; +- *((PaletteEntry*)(data - 3)) = palette[(idx & 1) != 0]; ++ *((PaletteEntry*)(data - 24)) = (idx & 128) ? p1 : p0; ++ *((PaletteEntry*)(data - 21)) = (idx & 64) ? p1 : p0; ++ *((PaletteEntry*)(data - 18)) = (idx & 32) ? p1 : p0; ++ *((PaletteEntry*)(data - 15)) = (idx & 16) ? p1 : p0; ++ *((PaletteEntry*)(data - 12)) = (idx & 8) ? p1 : p0; ++ *((PaletteEntry*)(data - 9)) = (idx & 4) ? p1 : p0; ++ *((PaletteEntry*)(data - 6)) = (idx & 2) ? p1 : p0; ++ *((PaletteEntry*)(data - 3)) = (idx & 1) ? p1 : p0; + } + +- int idx = indices[0] << 24; ++ int idx = indices[0]; + for( data -= 24; data < end; data += 3, idx += idx ) + { +- PaletteEntry clr = palette[idx < 0]; ++ const PaletteEntry clr = (idx & 128) ? p1 : p0; + WRITE_PIX( data, clr ); + } + +@@ -565,23 +574,25 @@ uchar* FillGrayRow1( uchar* data, uchar* indices, int len, uchar* palette ) + { + uchar* end = data + len; + ++ const uchar p0 = palette[0], p1 = palette[1]; ++ + while( (data += 8) < end ) + { + int idx = *indices++; +- *((uchar*)(data - 8)) = palette[(idx & 128) != 0]; +- *((uchar*)(data - 7)) = palette[(idx & 64) != 0]; +- *((uchar*)(data - 6)) = palette[(idx & 32) != 0]; +- *((uchar*)(data - 5)) = palette[(idx & 16) != 0]; +- *((uchar*)(data - 4)) = palette[(idx & 8) != 0]; +- *((uchar*)(data - 3)) = palette[(idx & 4) != 0]; +- *((uchar*)(data - 2)) = palette[(idx & 2) != 0]; +- *((uchar*)(data - 1)) = palette[(idx & 1) != 0]; ++ *((uchar*)(data - 8)) = (idx & 128) ? p1 : p0; ++ *((uchar*)(data - 7)) = (idx & 64) ? p1 : p0; ++ *((uchar*)(data - 6)) = (idx & 32) ? p1 : p0; ++ *((uchar*)(data - 5)) = (idx & 16) ? p1 : p0; ++ *((uchar*)(data - 4)) = (idx & 8) ? p1 : p0; ++ *((uchar*)(data - 3)) = (idx & 4) ? p1 : p0; ++ *((uchar*)(data - 2)) = (idx & 2) ? p1 : p0; ++ *((uchar*)(data - 1)) = (idx & 1) ? p1 : p0; + } + +- int idx = indices[0] << 24; ++ int idx = indices[0]; + for( data -= 8; data < end; data++, idx += idx ) + { +- data[0] = palette[idx < 0]; ++ data[0] = (idx & 128) ? p1 : p0; + } + + return data; +diff --git a/modules/imgcodecs/src/utils.hpp b/modules/imgcodecs/src/utils.hpp +index cab10609db2..7af4c6174ee 100644 +--- a/modules/imgcodecs/src/utils.hpp ++++ b/modules/imgcodecs/src/utils.hpp +@@ -42,6 +42,8 @@ + #ifndef _UTILS_H_ + #define _UTILS_H_ + ++int validateToInt(size_t step); ++ + struct PaletteEntry + { + unsigned char b, g, r, a; diff --git a/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch b/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch new file mode 100644 index 00000000000..3aeda7d4439 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch @@ -0,0 +1,29 @@ +diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake +index b8cb8777c06b..75281ee964fd 100644 +--- a/cmake/OpenCVGenPkgconfig.cmake ++++ b/cmake/OpenCVGenPkgconfig.cmake +@@ -27,7 +27,7 @@ macro(fix_prefix lst isown) + get_filename_component(libdir "${item}" PATH) + get_filename_component(libname "${item}" NAME_WE) + string(REGEX REPLACE "^lib(.*)" "\\1" libname "${libname}") +- list(APPEND _lst "-L${libdir}" "-l${libname}") ++ list(APPEND _lst "-l${libname}") + else() + list(APPEND _lst "-l${item}") + endif() +@@ -66,10 +66,14 @@ ocv_list_unique(_3rdparty) + + set(OPENCV_PC_LIBS + "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}" ++ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}" + "${_modules}" + ) + if (BUILD_SHARED_LIBS) +- set(OPENCV_PC_LIBS_PRIVATE "${_extra}") ++ set(OPENCV_PC_LIBS_PRIVATE ++ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}" ++ "${_extra}" ++ ) + else() + set(OPENCV_PC_LIBS_PRIVATE + "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}" diff --git a/meta-oe/recipes-support/opencv/opencv/javagen.patch b/meta-oe/recipes-support/opencv/opencv/javagen.patch new file mode 100644 index 00000000000..56526ecd80a --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/javagen.patch @@ -0,0 +1,16 @@ +Upstream-status: Inappropriate [OE specific] https://github.com/opencv/opencv/pull/10039#issuecomment-342539288 + +Signed-off-by: Ricardo Ribalda +diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt +index 74bc0ef04169..4622fbf9a5f1 100644 +--- a/modules/java/CMakeLists.txt ++++ b/modules/java/CMakeLists.txt +@@ -291,7 +291,7 @@ foreach(java_file ${step3_input_files}) + endif() + if(__configure) + configure_file("${java_file}" "${java_src_dir}/${output_name}" @ONLY) +- elseif(NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/") ++ elseif(EXISTS "${java_file}" AND NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/") + configure_file("${java_file}" "${java_src_dir}/${output_name}" COPYONLY) + else() + add_custom_command(OUTPUT "${java_src_dir}/${output_name}" diff --git a/meta-oe/recipes-support/opencv/opencv/protobuf.patch b/meta-oe/recipes-support/opencv/opencv/protobuf.patch new file mode 100644 index 00000000000..c63dc142ea3 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/protobuf.patch @@ -0,0 +1,57 @@ +Upstream-status: Inappropriate [OE specific] + +Signed-off-by: Ricardo Ribalda +diff --git a/cmake/OpenCVFindLibProtobuf.cmake b/cmake/OpenCVFindLibProtobuf.cmake +index b6ce1e7fd56b..e916ec0df2a6 100644 +--- a/cmake/OpenCVFindLibProtobuf.cmake ++++ b/cmake/OpenCVFindLibProtobuf.cmake +@@ -7,21 +7,21 @@ OCV_OPTION(BUILD_PROTOBUF "Force to build libprotobuf from sources" ON) + OCV_OPTION(PROTOBUF_UPDATE_FILES "Force to rebuild .proto files" OFF) + + if(PROTOBUF_UPDATE_FILES) +- if(NOT DEFINED Protobuf_PROTOC_EXECUTABLE) ++ if(NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE) + find_package(Protobuf QUIET) + endif() +- if(DEFINED Protobuf_PROTOC_EXECUTABLE AND EXISTS ${Protobuf_PROTOC_EXECUTABLE}) +- message(STATUS "The protocol buffer compiler is found (${Protobuf_PROTOC_EXECUTABLE})") ++ if(DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE}) ++ message(STATUS "The protocol buffer compiler is found (${PROTOBUF_PROTOC_EXECUTABLE})") + else() +- message(FATAL_ERROR "The protocol buffer compiler is not found (Protobuf_PROTOC_EXECUTABLE='${Protobuf_PROTOC_EXECUTABLE}')") ++ message(FATAL_ERROR "The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='${PROTOBUF_PROTOC_EXECUTABLE}')") + endif() + endif() + +-if(NOT BUILD_PROTOBUF AND NOT (DEFINED Protobuf_INCLUDE_DIRS AND DEFINED Protobuf_LIBRARIES)) ++if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES)) + find_package(Protobuf QUIET) + endif() + +-if(Protobuf_FOUND) ++if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES)) + # nothing + else() + set(Protobuf_LIBRARIES libprotobuf) +diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt +index 2a71568d1a44..c6329a742263 100644 +--- a/modules/dnn/CMakeLists.txt ++++ b/modules/dnn/CMakeLists.txt +@@ -7,7 +7,7 @@ if(DEFINED BUILD_opencv_dnn AND NOT BUILD_opencv_dnn) + endif() + + include(${OpenCV_SOURCE_DIR}/cmake/OpenCVFindLibProtobuf.cmake) +-if(NOT Protobuf_FOUND) ++if(NOT PROTOBUF_FOUND) + ocv_module_disable(opencv_dnn) + endif() + +@@ -72,7 +72,7 @@ ocv_source_group("Src\\protobuf" FILES ${Protobuf_SRCS} ${Protobuf_HDRS}) + ocv_module_include_directories(include ${Protobuf_INCLUDE_DIRS}) + + ocv_glob_module_sources(${Protobuf_SRCS} ${Protobuf_HDRS} ${CBLAS_H_PROXY_PATH}) +-ocv_create_module(${Protobuf_LIBRARIES} ${LAPACK_LIBRARIES}) ++ocv_create_module(${PROTOBUF_LIBRARIES} ${LAPACK_LIBRARIES}) + ocv_add_samples() + ocv_add_accuracy_tests() + ocv_add_perf_tests() diff --git a/meta-oe/recipes-support/opencv/opencv/tinydnn.patch b/meta-oe/recipes-support/opencv/opencv/tinydnn.patch new file mode 100644 index 00000000000..c433fc312d2 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/tinydnn.patch @@ -0,0 +1,34 @@ +Upstream-status: Inappropriate [OE specific] + +Signed-off-by: Ricardo Ribalda +diff --git a/modules/dnn_modern/CMakeLists.txt b/modules/dnn_modern/CMakeLists.txt +index 79b64b12160b..ba06a0a163e4 100644 +--- a/modules/dnn_modern/CMakeLists.txt ++++ b/modules/dnn_modern/CMakeLists.txt +@@ -15,24 +15,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + # MODULE REQUIREMENTS + # ---------------------------------------------------------------------------- + +-set(TINY_DNN_CPP_PATH "${OpenCV_BINARY_DIR}/3rdparty/tinydnn") +-set(TINY_DNN_CPP_ROOT "${TINY_DNN_CPP_PATH}/tiny-dnn-1.0.0a3") +-ocv_download(FILENAME "v1.0.0a3.tar.gz" +- HASH "adb1c512e09ca2c7a6faef36f9c53e59" +- URL +- "${OPENCV_TINY_DNN_URL}" +- "$ENV{OPENCV_TINY_DNN_URL}" +- "https://github.com/tiny-dnn/tiny-dnn/archive/" +- DESTINATION_DIR "${TINY_DNN_CPP_PATH}" +- STATUS TINY_DNN_DOWNLOAD_SUCCESS +- ID "tiny-dnn" +- UNPACK RELATIVE_URL) +- +-if(NOT TINY_DNN_DOWNLOAD_SUCCESS) +- message(STATUS "Failed to download tiny-dnn sources") +-endif() +- +-find_package(TinyDNN QUIET) ++set(TINYDNN_INCLUDE_DIRS "${OpenCV_SOURCE_DIR}/3rdparty/tinydnn/tiny-dnn-1.0.0a3") ++set(TinyDNN_FOUND TRUE) + + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) diff --git a/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch b/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch new file mode 100644 index 00000000000..fc273a8911e --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch @@ -0,0 +1,20 @@ +diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt +index e1755595..c7009c47 100644 +--- a/modules/xfeatures2d/CMakeLists.txt ++++ b/modules/xfeatures2d/CMakeLists.txt +@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake) + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake) + set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d") +-download_boost_descriptors("${DOWNLOAD_DIR}" boost_status) +-download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status) +-if(NOT boost_status OR NOT vgg_status) +- ocv_module_disable(xfeatures2d) +-endif() ++#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status) ++#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status) ++#if(NOT boost_status OR NOT vgg_status) ++# ocv_module_disable(xfeatures2d) ++#endif() + + ocv_module_include_directories("${DOWNLOAD_DIR}") diff --git a/meta-oe/recipes-support/opencv/opencv_2.4.bb b/meta-oe/recipes-support/opencv/opencv_2.4.bb deleted file mode 100644 index 27546161d21..00000000000 --- a/meta-oe/recipes-support/opencv/opencv_2.4.bb +++ /dev/null @@ -1,99 +0,0 @@ -SUMMARY = "Opencv : The Open Computer Vision Library" -HOMEPAGE = "http://opencv.willowgarage.com/wiki/" -SECTION = "libs" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14" - -ARM_INSTRUCTION_SET = "arm" - -DEPENDS = "python-numpy libtool swig swig-native python bzip2 zlib glib-2.0" - -SRCREV = "2c9547e3147779001811d01936aed38f560929fc" -SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4" - -PV = "2.4.11+git${SRCPV}" - -S = "${WORKDIR}/git" - -# Do an out-of-tree build -OECMAKE_SOURCEPATH = "${S}" -OECMAKE_BUILDPATH = "${WORKDIR}/build-${TARGET_ARCH}" - -EXTRA_OECMAKE = "-DPYTHON_NUMPY_INCLUDE_DIR:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include \ - -DBUILD_PYTHON_SUPPORT=ON \ - -DWITH_GSTREAMER=OFF \ - -DWITH_1394=OFF \ - -DCMAKE_SKIP_RPATH=ON \ - ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \ - ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \ - ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \ -" - -PACKAGECONFIG ??= "eigen jpeg libav png tiff v4l \ - ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)}" -PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen," -PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+," -PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg," -PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav," -PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng," -PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff," -PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils," -PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper," - -inherit distutils-base pkgconfig cmake - -export BUILD_SYS -export HOST_SYS -export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}" -export PYTHON="${STAGING_BINDIR_NATIVE}/python" - -TARGET_CC_ARCH += "-I${S}/include " - -PACKAGES += "${PN}-apps python-opencv" - -python populate_packages_prepend () { - cv_libdir = d.expand('${libdir}') - cv_libdir_dbg = d.expand('${libdir}/.debug') - 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) - - pn = d.getVar('PN', 1) - metapkg = pn + '-dev' - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - blacklist = [ metapkg ] - metapkg_rdepends = [ ] - packages = d.getVar('PACKAGES', 1).split() - for pkg in packages[1:]: - if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'): - metapkg_rdepends.append(pkg) - d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends)) -} - -PACKAGES_DYNAMIC += "^libopencv-.*" - -FILES_${PN} = "" -FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV" -FILES_${PN}-dbg += "${libdir}/.debug" -FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig" -FILES_${PN}-doc = "${datadir}/OpenCV/doc" - -ALLOW_EMPTY_${PN} = "1" - -INSANE_SKIP_python-opencv = "True" -SUMMARY_python-opencv = "Python bindings to opencv" -FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" -RDEPENDS_python-opencv = "python-core python-numpy" - -do_install_append() { - cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/ - sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h - - # Move Python files into correct library folder (for multilib build) - if [ "$libdir" != "/usr/lib" ]; then - mv ${D}/usr/lib/* ${D}/${libdir}/ - rm -rf ${D}/usr/lib - fi -} diff --git a/meta-oe/recipes-support/opencv/opencv_3.3.bb b/meta-oe/recipes-support/opencv/opencv_3.3.bb new file mode 100644 index 00000000000..773bfe9f7a0 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv_3.3.bb @@ -0,0 +1,202 @@ +SUMMARY = "Opencv : The Open Computer Vision Library" +HOMEPAGE = "http://opencv.org/" +SECTION = "libs" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2b2f8752cc5edf504d283107d033f544" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp" + +SRCREV_opencv = "87c27a074db9f6d9d60513f351daa903606ca370" +SRCREV_contrib = "2a9d1b22ed76eb22fad1a5edf6faf4d05f207b13" +SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db" +SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26" +SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d" +SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59" +SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b" + +def ipp_filename(d): + import re + arch = d.getVar('TARGET_ARCH', True) + if re.match("i.86$", arch): + return "ippicv_2017u2_lnx_ia32_20170418.tgz" + else: + return "ippicv_2017u2_lnx_intel64_20170418.tgz" + +def ipp_md5sum(d): + import re + arch = d.getVar('TARGET_ARCH', True) + if re.match("i.86$", arch): + return "f2cece00d802d4dea86df52ed095257e" + else: + return "808b791a6eac9ed78d32a7666804320e" + +IPP_FILENAME = "${@ipp_filename(d)}" +IPP_MD5 = "${@ipp_md5sum(d)}" + +SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg" +SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \ + git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \ + git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \ + https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \ + file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \ + file://fixpkgconfig.patch \ + file://uselocalxfeatures.patch;patchdir=../contrib/ \ + file://tinydnn.patch;patchdir=../contrib/ \ + file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \ + file://0003-To-fix-errors-as-following.patch \ + file://0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch \ + file://0002-imgcodecs-refactoring-improve-code-quality.patch \ + file://0003-imgproc-test-add-checks-for-remove-call.patch \ + file://0001-Dont-use-isystem.patch \ + file://0001-carotene-don-t-use-__asm__-with-aarch64.patch \ + file://0002-Do-not-enable-asm-with-clang.patch \ + file://CVE-2017-14136.patch \ + file://javagen.patch \ + file://protobuf.patch \ +" +PV = "3.3+git${SRCPV}" + +S = "${WORKDIR}/git" + +do_unpack_extra() { + mkdir -p ${S}/3rdparty/tinydnn/ + tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/ + tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR} + cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src + cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src +} +addtask unpack_extra after do_unpack before do_patch + +EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \ + -DWITH_1394=OFF \ + -DCMAKE_SKIP_RPATH=ON \ + -DOPENCV_ICV_HASH=${IPP_MD5} \ + -DIPPROOT=${WORKDIR}/ippicv_lnx \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \ + ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \ + ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \ +" +EXTRA_OECMAKE_append_x86 = " -DX86=ON" + +PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \ + ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}" + +PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas," +PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft," +PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native," +PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog," +PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype," +PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2," +PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base," +PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3," +PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper," +PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native," +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg," +PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav," +PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils," +PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd," +PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native," +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng," +PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy," +PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy," +PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,," +PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb," +PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract," +PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff," +PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils," + +inherit pkgconfig cmake + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)} +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)} + +export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}" +export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}" +export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java" +export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native" +export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/" + +TARGET_CC_ARCH += "-I${S}/include " + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \ + ${PN}-apps" + +python populate_packages_prepend () { + cv_libdir = d.expand('${libdir}') + 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) + + pn = d.getVar('PN') + metapkg = pn + '-dev' + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + blacklist = [ metapkg ] + metapkg_rdepends = [ ] + packages = d.getVar('PACKAGES').split() + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'): + metapkg_rdepends.append(pkg) + d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends)) + + metapkg = pn + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + blacklist = [ metapkg, "libopencv-ts" ] + metapkg_rdepends = [ ] + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'): + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) +} + +PACKAGES_DYNAMIC += "^libopencv-.*" + +FILES_${PN} = "" +FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*" +FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake" +FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a" +FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV" +FILES_${PN}-java = "${datadir}/OpenCV/java" +FILES_${PN}-samples = "${datadir}/OpenCV/samples/" + +INSANE_SKIP_${PN}-java = "libdir" +INSANE_SKIP_${PN}-dbg = "libdir" + +ALLOW_EMPTY_${PN} = "1" + +SUMMARY_python-opencv = "Python bindings to opencv" +FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python-opencv = "python-core python-numpy" + +SUMMARY_python3-opencv = "Python bindings to opencv" +FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python3-opencv = "python3-core python3-numpy" + +do_install_append() { + cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/ + sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h + + # Move Python files into correct library folder (for multilib build) + if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then + mv ${D}/usr/lib/* ${D}/${libdir}/ + rm -rf ${D}/usr/lib + fi + + if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then + install -d ${D}${datadir}/OpenCV/samples/bin/ + cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/ + fi +} diff --git a/meta-oe/recipes-support/openldap/openldap-2.4.39/ITS-7723-fix-reference-counting.patch b/meta-oe/recipes-support/openldap/openldap-2.4.39/ITS-7723-fix-reference-counting.patch deleted file mode 100644 index 9a0f4cb1425..00000000000 --- a/meta-oe/recipes-support/openldap/openldap-2.4.39/ITS-7723-fix-reference-counting.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 59688044386dfeee0c837a15133f4e878f1bb661 Mon Sep 17 00:00:00 2001 -From: Jan Synacek -Date: Wed, 13 Nov 2013 09:06:54 +0100 -Subject: [PATCH] ITS#7723 fix reference counting - -Upstream-Status: Backport - -Commit 59688044386dfeee0c837a15133f4e878f1bb661 upstream - -Signed-off-by: Yue Tao -Signed-off-by: Jackie Huang ---- - libraries/librewrite/session.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/libraries/librewrite/session.c b/libraries/librewrite/session.c -index fcc7698..02fc054 100644 ---- a/libraries/librewrite/session.c -+++ b/libraries/librewrite/session.c -@@ -161,6 +161,7 @@ rewrite_session_find( - #ifdef USE_REWRITE_LDAP_PVT_THREADS - if ( session ) { - ldap_pvt_thread_mutex_lock( &session->ls_mutex ); -+ session->ls_count++; - } - ldap_pvt_thread_rdwr_runlock( &info->li_cookies_mutex ); - #endif /* USE_REWRITE_LDAP_PVT_THREADS */ -@@ -178,6 +179,7 @@ rewrite_session_return( - ) - { - assert( session != NULL ); -+ session->ls_count--; - ldap_pvt_thread_mutex_unlock( &session->ls_mutex ); - } - --- -1.7.5.4 - diff --git a/meta-oe/recipes-support/openldap/openldap-2.4.39/gnutls-Avoid-use-of-deprecated-function.patch b/meta-oe/recipes-support/openldap/openldap-2.4.39/gnutls-Avoid-use-of-deprecated-function.patch deleted file mode 100644 index dffd3ca512b..00000000000 --- a/meta-oe/recipes-support/openldap/openldap-2.4.39/gnutls-Avoid-use-of-deprecated-function.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0205e83f4670d10ad3c6ae4b8fc5ec1d0c7020c0 Mon Sep 17 00:00:00 2001 -From: Howard Chu -Date: Sat, 7 Sep 2013 09:39:24 -0700 -Subject: [PATCH] ITS#7430 GnuTLS: Avoid use of deprecated function - -Upstream-status: Backport - ---- - libraries/libldap/tls_g.c | 12 ++++++++++++ - 1 files changed, 12 insertions(+), 0 deletions(-) - -diff --git a/libraries/libldap/tls_g.c b/libraries/libldap/tls_g.c -index 9acffaf..c793828 100644 ---- a/libraries/libldap/tls_g.c -+++ b/libraries/libldap/tls_g.c -@@ -368,6 +368,17 @@ tlsg_ctx_init( struct ldapoptions *lo, struct ldaptls *lt, int is_server ) - * then we have to build the cert chain. - */ - if ( max == 1 && !gnutls_x509_crt_check_issuer( certs[0], certs[0] )) { -+#if GNUTLS_VERSION_NUMBER >= 0x020c00 -+ unsigned int i; -+ for ( i = 1; icred, certs[i-1], &certs[i], 0 )) -+ break; -+ max++; -+ /* If this CA is self-signed, we're done */ -+ if ( gnutls_x509_crt_check_issuer( certs[i], certs[i] )) -+ break; -+ } -+#else - gnutls_x509_crt_t *cas; - unsigned int i, j, ncas; - -@@ -387,6 +398,7 @@ tlsg_ctx_init( struct ldapoptions *lo, struct ldaptls *lt, int is_server ) - if ( j == ncas ) - break; - } -+#endif - } - rc = gnutls_certificate_set_x509_key( ctx->cred, certs, max, key ); - if ( rc ) return -1; --- -1.7.4.2 - diff --git a/meta-oe/recipes-support/openldap/openldap-2.4.39/initscript b/meta-oe/recipes-support/openldap/openldap/initscript similarity index 100% rename from meta-oe/recipes-support/openldap/openldap-2.4.39/initscript rename to meta-oe/recipes-support/openldap/openldap/initscript diff --git a/meta-oe/recipes-support/openldap/openldap-2.4.39/install-strip.patch b/meta-oe/recipes-support/openldap/openldap/install-strip.patch similarity index 100% rename from meta-oe/recipes-support/openldap/openldap-2.4.39/install-strip.patch rename to meta-oe/recipes-support/openldap/openldap/install-strip.patch diff --git a/meta-oe/recipes-support/openldap/openldap-2.4.39/kill-icu.patch b/meta-oe/recipes-support/openldap/openldap/kill-icu.patch similarity index 100% rename from meta-oe/recipes-support/openldap/openldap-2.4.39/kill-icu.patch rename to meta-oe/recipes-support/openldap/openldap/kill-icu.patch diff --git a/meta-oe/recipes-support/openldap/openldap-2.4.39/openldap-2.4.28-gnutls-gcrypt.patch b/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch similarity index 100% rename from meta-oe/recipes-support/openldap/openldap-2.4.39/openldap-2.4.28-gnutls-gcrypt.patch rename to meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch diff --git a/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch b/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch new file mode 100644 index 00000000000..de9ca528a21 --- /dev/null +++ b/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch @@ -0,0 +1,59 @@ +openldap CVE-2015-3276 + +the patch comes from: +https://bugzilla.redhat.com/show_bug.cgi?id=1238322 +https://bugzilla.redhat.com/attachment.cgi?id=1055640 + +The nss_parse_ciphers function in libraries/libldap/tls_m.c in +OpenLDAP does not properly parse OpenSSL-style multi-keyword mode +cipher strings, which might cause a weaker than intended cipher to +be used and allow remote attackers to have unspecified impact via +unknown vectors. + +Signed-off-by: Li Wang +--- + libraries/libldap/tls_m.c | 27 ++++++++++++++++----------- + 1 file changed, 16 insertions(+), 11 deletions(-) + +diff --git a/libraries/libldap/tls_m.c b/libraries/libldap/tls_m.c +index 9b101f9..e6f3051 100644 +--- a/libraries/libldap/tls_m.c ++++ b/libraries/libldap/tls_m.c +@@ -621,18 +621,23 @@ nss_parse_ciphers(const char *cipherstr, int cipher_list[ciphernum]) + */ + if (mask || strength || protocol) { + for (i=0; i ${D}${sysconfdir}/init.d/openldap - chmod 755 ${D}${sysconfdir}/init.d/openldap - # This is duplicated in /etc/openldap and is for slapd - rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example - - # Installing slapd under ${sbin} is more FHS and LSB compliance - mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd - SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema" - cd ${D}/${sbindir}/ - rm -f ${SLAPTOOLS} - for i in ${SLAPTOOLS}; do ln -sf slapd $i; done - - rmdir "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" - - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service -} - -INITSCRIPT_PACKAGES = "${PN}-slapd" -INITSCRIPT_NAME_${PN}-slapd = "openldap" -INITSCRIPT_PARAMS_${PN}-slapd = "defaults" -SYSTEMD_SERVICE_${PN}-slapd = "hostapd.service" -SYSTEMD_AUTO_ENABLE_${PN}-slapd ?= "disable" - - -PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*" - -python populate_packages_prepend () { - backend_dir = d.expand('${libexecdir}/openldap') - do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True) - - metapkg = "${PN}-backends" - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - d.setVar('FILES_' + metapkg, "") - metapkg_rdepends = [] - packages = d.getVar('PACKAGES', 1).split() - for pkg in packages[1:]: - if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"): - metapkg_rdepends.append(pkg) - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) - d.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package') - packages.append(metapkg) - d.setVar('PACKAGES', ' '.join(packages)) -} diff --git a/meta-oe/recipes-support/openldap/openldap_2.4.45.bb b/meta-oe/recipes-support/openldap/openldap_2.4.45.bb new file mode 100644 index 00000000000..06d2467ec7d --- /dev/null +++ b/meta-oe/recipes-support/openldap/openldap_2.4.45.bb @@ -0,0 +1,255 @@ +# OpenLDAP, a license free (see http://www.OpenLDAP.org/license.html) +# +SUMMARY = "OpenLDAP Directory Service" +DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol." +HOMEPAGE = "http://www.OpenLDAP.org/license.html" +# The OpenLDAP Public License - see the HOMEPAGE - defines +# the license. www.openldap.org claims this is Open Source +# (see http://www.openldap.org), the license appears to be +# basically BSD. opensource.org does not record this license +# at present (so it is apparently not OSI certified). +LICENSE = "OpenLDAP" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25fd3721960f39128cd15a749fd21139 \ + file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \ +" +SECTION = "libs" + +LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" + +SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \ + file://openldap-m4-pthread.patch \ + file://kill-icu.patch \ + file://openldap-2.4.28-gnutls-gcrypt.patch \ + file://use-urandom.patch \ + file://initscript \ + file://slapd.service \ + file://thread_stub.patch \ + file://openldap-CVE-2015-3276.patch \ +" + +SRC_URI[md5sum] = "00ff8301277cdfd0af728a6927042a13" +SRC_URI[sha256sum] = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824" + +DEPENDS = "util-linux groff-native" + +# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when +# installing .so and executables, this fails in cross compilation +# environments +SRC_URI += "file://install-strip.patch" + +inherit autotools-brokensep update-rc.d systemd + +# CV SETTINGS +# Required to work round AC_FUNC_MEMCMP which gets the wrong answer +# when cross compiling (should be in site?) +EXTRA_OECONF += "ac_cv_func_memcmp_working=yes" + +# CONFIG DEFINITIONS +# The following is necessary because it cannot be determined for a +# cross compile automagically. Select should yield fine on all OE +# systems... +EXTRA_OECONF += "--with-yielding-select=yes" +# Shared libraries are nice... +EXTRA_OECONF += "--enable-dynamic" + +PACKAGECONFIG ??= "gnutls modules \ + mdb ldap meta monitor null passwd shell proxycache dnssrv \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +#--with-tls with TLS/SSL support auto|openssl|gnutls [auto] +PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt" +PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl" + +PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl" +PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" + +# SLAPD options +# +# UNIX crypt(3) passwd support: +EXTRA_OECONF += "--enable-crypt" + +# SLAPD BACKEND +# +# The backend must be set by the configuration. This controls the +# required database. +# +# Backends="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql" +# +# Note that multiple backends can be built. The ldbm backend requires a +# build-time choice of database API. The bdb backend forces this to be +# DB4. To use the gdbm (or other) API the Berkely database module must +# be removed from the build. +md = "${libexecdir}/openldap" +# +#--enable-bdb enable Berkeley DB backend no|yes|mod yes +# The Berkely DB is the standard choice. This version of OpenLDAP requires +# the version 4 implementation or better. +PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db" + +#--enable-dnssrv enable dnssrv backend no|yes|mod no +PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no" + +#--enable-hdb enable Hierarchical DB backend no|yes|mod no +PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db" + +#--enable-ldap enable ldap backend no|yes|mod no +PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no," + +#--enable-mdb enable mdb database backend no|yes|mod [yes] +PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no," + +#--enable-meta enable metadirectory backend no|yes|mod no +PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no," + +#--enable-monitor enable monitor backend no|yes|mod yes +PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=no," + +#--enable-ndb enable MySQL NDB Cluster backend no|yes|mod [no] +PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no," + +#--enable-null enable null backend no|yes|mod no +PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no," + +#--enable-passwd enable passwd backend no|yes|mod no +PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no," + +#--enable-perl enable perl backend no|yes|mod no +# This requires a loadable perl dynamic library, if enabled without +# doing something appropriate (building perl?) the build will pick +# up the build machine perl - not good (inherit perlnative?) +PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl" + +#--enable-relay enable relay backend no|yes|mod [yes] +PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no," + +#--enable-shell enable shell backend no|yes|mod no +# configure: WARNING: Use of --without-threads is recommended with back-shell +PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=no," + +#--enable-sock enable sock backend no|yes|mod [no] +PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no," + +#--enable-sql enable sql backend no|yes|mod no +# sql requires some sql backend which provides sql.h, sqlite* provides +# sqlite.h (which may be compatible but hasn't been tried.) +PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3" + +#--enable-dyngroup Dynamic Group overlay no|yes|mod no +# This is a demo, Proxy Cache defines init_module which conflicts with the +# same symbol in dyngroup +PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no," + +#--enable-proxycache Proxy Cache overlay no|yes|mod no +PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no," +FILES_${PN}-overlay-proxycache = "${md}/pcache-*.so.*" +PACKAGES += "${PN}-overlay-proxycache" + +# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS: +# This allows tls to obtain random bits from /dev/urandom, by default +# it was disabled for cross-compiling. +CPPFLAGS_append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\' -fPIC" + +LDFLAGS_append = " -pthread" + +do_configure() { + cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build + rm -f ${S}/libtool + aclocal + libtoolize --force --copy + gnu-configize + autoconf + oe_runconf +} + +LEAD_SONAME = "libldap-${LDAP_VER}.so.*" + +# The executables go in a separate package. This allows the +# installation of the libraries with no daemon support. +# Each module also has its own package - see above. +PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin" + +# Package contents - shift most standard contents to -bin +FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data" +FILES_${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \ + ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \ + ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*" +FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run ${localstatedir}/volatile/run" +FILES_${PN}-bin = "${bindir}" +FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so" +FILES_${PN}-dbg += "${libexecdir}/openldap/.debug" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d + cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap + chmod 755 ${D}${sysconfdir}/init.d/openldap + # This is duplicated in /etc/openldap and is for slapd + rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example + + # Installing slapd under ${sbin} is more FHS and LSB compliance + mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd + SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema" + cd ${D}/${sbindir}/ + rm -f ${SLAPTOOLS} + for i in ${SLAPTOOLS}; do ln -sf slapd $i; done + + rmdir "${D}${localstatedir}/run" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service + + # Uses mdm as the database + # and localstatedir as data directory ... + sed -e 's/# modulepath/modulepath/' \ + -e 's/# moduleload\s*back_bdb.*/moduleload back_mdb/' \ + -e 's/database\s*bdb/database mdb/' \ + -e 's%^directory\s*.*%directory ${localstatedir}/${BPN}/data/%' \ + -i ${D}${sysconfdir}/openldap/slapd.conf + + mkdir -p ${D}${localstatedir}/${BPN}/data + + +} + +INITSCRIPT_PACKAGES = "${PN}-slapd" +INITSCRIPT_NAME_${PN}-slapd = "openldap" +INITSCRIPT_PARAMS_${PN}-slapd = "defaults" +SYSTEMD_SERVICE_${PN}-slapd = "hostapd.service" +SYSTEMD_AUTO_ENABLE_${PN}-slapd ?= "disable" + + +PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*" + +# The modules require their .so to be dynamicaly loaded +INSANE_SKIP_${PN}-backend-dnssrv += "dev-so" +INSANE_SKIP_${PN}-backend-ldap += "dev-so" +INSANE_SKIP_${PN}-backend-meta += "dev-so" +INSANE_SKIP_${PN}-backend-mdb += "dev-so" +INSANE_SKIP_${PN}-backend-monitor += "dev-so" +INSANE_SKIP_${PN}-backend-null += "dev-so" +INSANE_SKIP_${PN}-backend-passwd += "dev-so" +INSANE_SKIP_${PN}-backend-shell += "dev-so" + + +python populate_packages_prepend () { + backend_dir = d.expand('${libexecdir}/openldap') + do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True) + do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True) + + metapkg = "${PN}-backends" + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + d.setVar('FILES_' + metapkg, "") + metapkg_rdepends = [] + packages = d.getVar('PACKAGES').split() + for pkg in packages[1:]: + if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"): + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) + d.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package') + packages.append(metapkg) + d.setVar('PACKAGES', ' '.join(packages)) +} + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/openmotif/openmotif/configure.patch b/meta-oe/recipes-support/openmotif/openmotif/configure.patch deleted file mode 100644 index 8868e805a40..00000000000 --- a/meta-oe/recipes-support/openmotif/openmotif/configure.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/configure.ac~ 2009-10-27 14:10:23.000000000 -0200 -+++ b/configure.ac 2011-05-31 10:51:00.207232036 -0300 -@@ -3,12 +3,6 @@ - AC_CONFIG_SRCDIR([lib/Xm/Form.c]) - AC_PREREQ(2.52) - AC_CONFIG_AUX_DIR(.) --AC_CHECK_FILE(/usr/X/include/X11/X.h, -- AC_PREFIX_DEFAULT(/usr/X), -- AC_PREFIX_DEFAULT(/usr)) --AC_CHECK_FILE(/usr/X11R6/include/X11/X.h, -- AC_PREFIX_DEFAULT(/usr/X11R6), -- AC_PREFIX_DEFAULT(/usr)) - - dnl AM_MAINTAINER_MODE - AC_CANONICAL_TARGET diff --git a/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb b/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb deleted file mode 100644 index 2baeda0251a..00000000000 --- a/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb +++ /dev/null @@ -1,48 +0,0 @@ -SECTION = "libs" -SUMMARY = "OSM/Motif implementation" -LICENSE = "OGPL" -DEPENDS = "xbitmaps virtual/libx11 libxt libxft xproto" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=14f692c82491db3d52419929d2f3b343" - -PR = "r3" - -PNBLACKLIST[openmotif] ?= "BROKEN: doesn't build with B!=S" - -SRC_URI = "http://motif.ics.com/sites/default/files/openmotif-2.3.3.tar.gz \ - file://configure.patch;patch=1" - -SRC_URI[md5sum] = "fd27cd3369d6c7d5ef79eccba524f7be" -SRC_URI[sha256sum] = "c85f5545e218fa0c59a3789192132d472fc5a33e914a221a568eee4fc10cd103" - -inherit autotools - -PACKAGECONFIG ??= "" -PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" -PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" - -EXTRA_OECONF = "X_CFLAGS=-I${STAGING_INCDIR} --disable-printing" - -PACKAGES += "${PN}-bin" - -FILES_${PN}-bin = "${bindir}" - -do_compile() { - ( - # HACK: build a native binaries need during the build - unset CC LD CXX CCLD CFLAGS - oe_runmake -C config/util CC="${BUILD_CC}" LD="${BUILD_LD}" CXX="${BUILD_CXX}" LIBS="" makestrs - ) - if [ "$?" != "0" ]; then - exit 1 - fi - oe_runmake -C lib - oe_runmake -C include -} - -do_install() { - oe_runmake DESTDIR=${D} -C lib install - oe_runmake DESTDIR=${D} -C include install -} - -LEAD_SONAME = "libXm.so.4" diff --git a/meta-oe/recipes-support/opensc/opensc_0.14.0.bb b/meta-oe/recipes-support/opensc/opensc_0.14.0.bb deleted file mode 100644 index 87ea2addd8c..00000000000 --- a/meta-oe/recipes-support/opensc/opensc_0.14.0.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "Smart card library and applications" -DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\ -functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\ -7816-4 compatible smart card. Encryption and decryption using private\ -keys on the smart card is possible with PKCS\ -such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\ -eID cards have also been confirmed to work." - -HOMEPAGE = "http://www.opensc-project.org/opensc/" -SECTION = "System Environment/Libraries" - -SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz" - -SRC_URI[md5sum] = "1ee31dc2e89860458fd984e0cac9795e" -SRC_URI[sha256sum] = "ffe8bcc704f2ab9a05c6781bc815f00eaf75cba0a1bd21e3142b9194a7bed5c9" - -S = "${WORKDIR}/OpenSC-${PV}" -DEPENDS = "openct pcsc-lite virtual/libiconv openssl" - -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -inherit autotools pkgconfig - -EXTRA_OECONF = " \ - --disable-static \ - --enable-openct \ - --disable-pcsc \ - --disable-ctapi \ - --disable-doc \ -" -EXTRA_OEMAKE = "DESTDIR=${D}" - -RDEPENDS_${PN} = "readline" - -FILES_${PN} += "\ - ${libdir}/opensc-pkcs11.so \ - ${libdir}/onepin-opensc-pkcs11.so \ - ${libdir}/pkcs11-spy.so \ -" -FILES_${PN}-dev += "\ - ${libdir}/pkcs11/opensc-pkcs11.so \ - ${libdir}/pkcs11/onepin-opensc-pkcs11.so \ - ${libdir}/pkcs11/pkcs11-spy.so \ -" diff --git a/meta-oe/recipes-support/opensc/opensc_0.16.0.bb b/meta-oe/recipes-support/opensc/opensc_0.16.0.bb new file mode 100644 index 00000000000..fd67181dc22 --- /dev/null +++ b/meta-oe/recipes-support/opensc/opensc_0.16.0.bb @@ -0,0 +1,44 @@ +SUMMARY = "Smart card library and applications" +DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\ +functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\ +7816-4 compatible smart card. Encryption and decryption using private\ +keys on the smart card is possible with PKCS\ +such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\ +eID cards have also been confirmed to work." + +HOMEPAGE = "http://www.opensc-project.org/opensc/" +SECTION = "System Environment/Libraries" + +SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz" + +SRC_URI[md5sum] = "724d128f23cd7a74b28d04300ce7bcbd" +SRC_URI[sha256sum] = "3ac8c29542bb48179e7086d35a1b8907a4e86aca3de3323c2f48bd74eaaf5729" + +DEPENDS = "openct pcsc-lite virtual/libiconv openssl" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +inherit autotools pkgconfig + +EXTRA_OECONF = " \ + --disable-static \ + --enable-openct \ + --disable-pcsc \ + --disable-ctapi \ + --disable-doc \ +" +EXTRA_OEMAKE = "DESTDIR=${D}" + +RDEPENDS_${PN} = "readline" + +FILES_${PN} += "\ + ${libdir}/opensc-pkcs11.so \ + ${libdir}/onepin-opensc-pkcs11.so \ + ${libdir}/pkcs11-spy.so \ +" +FILES_${PN}-dev += "\ + ${libdir}/pkcs11/opensc-pkcs11.so \ + ${libdir}/pkcs11/onepin-opensc-pkcs11.so \ + ${libdir}/pkcs11/pkcs11-spy.so \ +" diff --git a/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb b/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb deleted file mode 100644 index e740b6da2c1..00000000000 --- a/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Libsyncml is an implementation of the SyncML protocol" -HOMEPAGE = "https://libsyncml.opensync.org/" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" - -DEPENDS = "libxml2 glib-2.0 libsoup-2.4 openobex wbxml2" - -SRC_URI = "${SOURCEFORGE_MIRROR}/libsyncml/libsyncml-${PV}.tar.gz" -SRC_URI[md5sum] = "84879ed7cb94618530fbcb801a1a4f95" -SRC_URI[sha256sum] = "05d6513637adb1300a3a58b6e29d53ab6373c8f370807d0d925bae72b2920e53" - -inherit cmake pkgconfig - -PACKAGES += "${PN}-tools" - -FILES_${PN}-tools = "${bindir}" -FILES_${PN} = "${libdir}/*.so.*" diff --git a/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb b/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb index d383c659ca9..8c948c5655e 100644 --- a/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb +++ b/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb @@ -15,6 +15,8 @@ S = "${WORKDIR}/libwbxml-${PV}" inherit cmake pkgconfig +EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" + PACKAGES += "${PN}-tools" FILES_${PN}-tools = "${bindir}" diff --git a/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb b/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb deleted file mode 100644 index 1b186329ce5..00000000000 --- a/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb +++ /dev/null @@ -1,112 +0,0 @@ -SUMMARY = "Web Based Enterprise Management (WBEM) Implementation" -DESCRIPTION = "OpenWBEM is a set of software components that help facilitate \ -deployment of the Common Information Model (CIM) and Web-Based \ -Enterprise Management (WBEM) technologies of the Distributed Management \ -Task Force (DMTF). \ - \ -Web-Based Enterprise Management (WBEM) is a set of management and \ -Internet standard technologies developed to unify the management of \ -distributed computing environments. WBEM provides the ability for the \ -industry to deliver a well-integrated set of standards-based management \ -tools, facilitating the exchange of data across otherwise disparate \ -technologies and platforms. \ - \ -For more information about DMTF and its technologies, visit \ -http://www.dmtf.org/standards. " -SECTION = "System/Management" -HOMEPAGE = "http://openwbem.sourceforge.net/" - -inherit autotools-brokensep pkgconfig - -SOURCE1="novell-openwbem-root-acl.mof" -SOURCE2="loadmof.sh" -SOURCE3="rmmof.sh" -SOURCE4="openwbem-owcimomd.init" -SOURCE5="openwbem-etc_pam.d_openwbem" -SOURCE6="openwbem-rpmlintrc" - -SRC_URI = " \ - git://github.com/kkaempf/openwbem.git \ - file://${SOURCE1} \ - file://${SOURCE2} \ - file://${SOURCE3} \ - file://${SOURCE4} \ - file://${SOURCE5} \ - file://${SOURCE6} \ - file://checkserverkey \ - file://owcimomd.service \ -" -SRCREV = "5c688eefc1f8e35a4b1c58529aae5f114c25c2a8" -S = "${WORKDIR}/git" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM += "file://COPYING;md5=0504a2eb85e01aa92c9efd4125a34660" -INSANE_SKIP_${PN} = "dev-so" -DEPENDS += "openssl libpam bash" -RDEPENDS_${PN} += "bash" -EXTRA_OECONF = " \ - --prefix=/usr \ - --sysconfdir=/etc \ - --libdir=${libdir} \ - --localstatedir=/var/lib \ - --libexecdir=${libdir}/openwbem/bin \ - --mandir=/usr/share/man \ - --enable-threads-run-as-user \ -" -do_configure_prepend() { - autoreconf --force --install -} - -do_install() { - oe_runmake DESTDIR=${D} install - install -d ${D}/etc/openwbem/openwbem.conf.d - install -d ${D}/var/adm/fillup-templates - install -m 644 etc/sysconfig/daemons/owcimomd ${D}/var/adm/fillup-templates/sysconfig.owcimomd - - # fix up hardcoded paths - sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/owcimomd.service - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}/${systemd_unitdir}/system - install -m 644 ${WORKDIR}/owcimomd.service ${D}/${systemd_unitdir}/system - install -m 755 ${WORKDIR}/checkserverkey ${D}${sysconfdir}/openwbem/ - fi - - install -d ${D}/etc/init.d - ln -sf ../../etc/init.d/owcimomd ${D}/usr/sbin/rcowcimomd - install -m 755 ${WORKDIR}/${SOURCE4} ${D}/etc/init.d/owcimomd - install -d ${D}${sbindir} - install -d ${D}/usr/bin - install -d ${D}/etc/pam.d - install -d ${D}/${libdir}/openwbem/cmpiproviders - install -m 644 etc/pam.d/openwbem ${D}/etc/pam.d - install -d ${D}/${libdir}/openwbem/c++providers - install -d ${D}/var/lib/openwbem - install -m 755 ${WORKDIR}/${SOURCE2} ${D}/usr/bin/ow-loadmof.sh - install -m 755 ${WORKDIR}/${SOURCE3} ${D}/usr/bin/ow-rmmof.sh - install -m 644 ${WORKDIR}/${SOURCE5} ${D}/etc/pam.d/openwbem - - MOFPATH=${D}/usr/share/mof/openwbem - install -d $MOFPATH - mv ${D}/usr/share/openwbem/* $MOFPATH/ - rmdir ${D}/usr/share/openwbem - install -m 644 ${WORKDIR}/${SOURCE1} $MOFPATH/ - - touch ${D}/var/lib/openwbem/{classassociation,instances,instassociation,namespaces,schema}.{dat,ndx,lock} -} - -inherit ${@base_contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)} -SYSTEMD_SERVICE_${PN} = "owcimomd.service" -SYSTEMD_AUTO_ENABLE = "disable" -FILES_${PN} += " \ - ${libdir} \ - ${datadir}/mof \ - ${systemd_unitdir} \ -" -FILES_${PN}-dbg += " \ - ${libdir}/openwbem/c++providers/.debug \ - ${libdir}/openwbem/provifcs/.debug \ - ${libdir}/openwbem/bin/openwbem/.debug \ -" -FILES_${PN}-dev = " \ - ${includedir} \ - ${datadir}/aclocal/openwbem.m4 \ -" diff --git a/meta-oe/recipes-support/p11-kit/p11-kit_0.19.1.bb b/meta-oe/recipes-support/p11-kit/p11-kit_0.19.1.bb deleted file mode 100644 index e0ebe7da9cd..00000000000 --- a/meta-oe/recipes-support/p11-kit/p11-kit_0.19.1.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Provides a way to load and enumerate PKCS#11 modules" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50" - -inherit autotools gettext pkgconfig - -DEPENDS = "libtasn1 libffi" - -SRC_URI = "http://p11-glue.freedesktop.org/releases/${BP}.tar.gz" -SRC_URI[md5sum] = "d96046ab6ac00d005342caf416ed76ab" -SRC_URI[sha256sum] = "94fbed372c11d0a404762aad966e54eb4f44c1d5b871a1b79a1a3b4cf36ed256" - -FILES_${PN}-dev += " \ - ${libdir}/p11-kit-proxy.so \ - ${libdir}/pkcs11/p11-kit-trust.so \ -" -FILES_${PN}-dev += "${libdir}/pkcs11/*.la" -FILES_${PN}-dbg += "${libdir}/pkcs11/.debug" diff --git a/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch b/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch deleted file mode 100644 index 366d461eb83..00000000000 --- a/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch +++ /dev/null @@ -1,156 +0,0 @@ -diff -urNp pam_passwdqc-1.0.5-orig/pam_passwdqc.c pam_passwdqc-1.0.5/pam_passwdqc.c ---- pam_passwdqc-1.0.5-orig/pam_passwdqc.c 2008-02-12 15:11:13.000000000 -0500 -+++ pam_passwdqc-1.0.5/pam_passwdqc.c 2009-09-28 12:10:32.171696694 -0400 -@@ -70,6 +70,8 @@ typedef struct { - passwdqc_params_t qc; - int flags; - int retry; -+ char oldpass_prompt_file[FILE_LEN+1]; -+ char newpass_prompt_file[FILE_LEN+1]; - } params_t; - - static params_t defaults = { -@@ -79,10 +81,13 @@ static params_t defaults = { - 3, /* passphrase_words */ - 4, /* match_length */ - 1, /* similar_deny */ -- 42 /* random_bits */ -+ 42, /* random_bits */ -+ 1 /* firstupper_lastdigit_check */ - }, - F_ENFORCE_EVERYONE, /* flags */ -- 3 /* retry */ -+ 3, /* retry */ -+ "", /* oldpass_prompt_file */ -+ "" /* newpass_prompt_file */ - }; - - #define PROMPT_OLDPASS \ -@@ -361,6 +366,37 @@ static int parse(params_t *params, pam_h - if (!strcmp(*argv, "use_authtok")) { - params->flags |= F_USE_AUTHTOK; - } else -+ if (!strcmp(*argv, "disable_firstupper_lastdigit_check")) { -+ params->qc.firstupper_lastdigit_check = 0; -+ } else -+ if (!strncmp(*argv, "oldpass_prompt_file=", 20)) { -+ int n; -+ FILE *fp = fopen(*argv + 20, "r"); -+ if (fp) { -+ n=fread(params->oldpass_prompt_file, sizeof(char), FILE_LEN, fp); -+ if (0==n || ferror(fp)!=0 ) { -+ memset(params->oldpass_prompt_file, '\0', FILE_LEN+1); -+ } -+ else { -+ feof(fp)? (params->oldpass_prompt_file[n-1]='\0'): (params->oldpass_prompt_file[n]='\0'); -+ } -+ fclose(fp); -+ } -+ } else -+ if (!strncmp(*argv, "newpass_prompt_file=", 20)) { -+ int n; -+ FILE *fp = fopen(*argv + 20, "r"); -+ if (fp) { -+ n=fread(params->newpass_prompt_file, sizeof(char), FILE_LEN, fp); -+ if (0==n || ferror(fp)!=0 ) { -+ memset(params->newpass_prompt_file, '\0', FILE_LEN+1); -+ } -+ else { -+ feof(fp)? (params->newpass_prompt_file[n-1]='\0'): (params->newpass_prompt_file[n]='\0'); -+ } -+ fclose(fp); -+ } -+ } else - break; - argc--; argv++; - } -@@ -406,7 +442,7 @@ PAM_EXTERN int pam_sm_chauthtok(pam_hand - - if (ask_oldauthtok && !am_root(pamh)) { - status = converse(pamh, PAM_PROMPT_ECHO_OFF, -- PROMPT_OLDPASS, &resp); -+ strlen(params.oldpass_prompt_file) ? params.oldpass_prompt_file : PROMPT_OLDPASS, &resp); - - if (status == PAM_SUCCESS) { - if (resp && resp->resp) { -@@ -540,8 +576,7 @@ retry: - MESSAGE_RANDOMFAILED : MESSAGE_MISCONFIGURED); - return PAM_AUTHTOK_ERR; - } -- -- status = converse(pamh, PAM_PROMPT_ECHO_OFF, PROMPT_NEWPASS1, &resp); -+ status = converse(pamh, PAM_PROMPT_ECHO_OFF, strlen(params.newpass_prompt_file) ? params.newpass_prompt_file : PROMPT_NEWPASS1, &resp); - if (status == PAM_SUCCESS && (!resp || !resp->resp)) - status = PAM_AUTHTOK_ERR; - -diff -urNp pam_passwdqc-1.0.5-orig/passwdqc_check.c pam_passwdqc-1.0.5/passwdqc_check.c ---- pam_passwdqc-1.0.5-orig/passwdqc_check.c 2008-02-12 14:31:52.000000000 -0500 -+++ pam_passwdqc-1.0.5/passwdqc_check.c 2009-09-25 22:45:16.080842425 -0400 -@@ -90,10 +90,12 @@ static int is_simple(passwdqc_params_t * - - /* Upper case characters and digits used in common ways don't increase the - * strength of a password */ -- c = (unsigned char)newpass[0]; -- if (uppers && isascii(c) && isupper(c)) uppers--; -- c = (unsigned char)newpass[length - 1]; -- if (digits && isascii(c) && isdigit(c)) digits--; -+ if (params->firstupper_lastdigit_check) { -+ c = (unsigned char)newpass[0]; -+ if (uppers && isascii(c) && isupper(c)) uppers--; -+ c = (unsigned char)newpass[length - 1]; -+ if (digits && isascii(c) && isdigit(c)) digits--; -+ } - - /* Count the number of different character classes we've seen. We assume - * that there are no non-ASCII characters for digits. */ -diff -urNp pam_passwdqc-1.0.5-orig/passwdqc.h pam_passwdqc-1.0.5/passwdqc.h ---- pam_passwdqc-1.0.5-orig/passwdqc.h 2008-02-12 14:30:00.000000000 -0500 -+++ pam_passwdqc-1.0.5/passwdqc.h 2009-09-25 14:08:56.214695858 -0400 -@@ -7,12 +7,15 @@ - - #include - -+#define FILE_LEN 4096 /* Max file len = 4096 */ -+ - typedef struct { - int min[5], max; - int passphrase_words; - int match_length; - int similar_deny; - int random_bits; -+ int firstupper_lastdigit_check; - } passwdqc_params_t; - - extern char _passwdqc_wordset_4k[0x1000][6]; -diff -urNp pam_passwdqc-1.0.5-orig/README pam_passwdqc-1.0.5/README ---- pam_passwdqc-1.0.5-orig/README 2008-02-12 14:43:33.000000000 -0500 -+++ pam_passwdqc-1.0.5/README 2009-09-28 12:12:40.251016423 -0400 -@@ -41,9 +41,12 @@ words (see the "passphrase" option below - N3 and N4 are used for passwords consisting of characters from three - and four character classes, respectively. - -+ disable_firstupper_lastdigit_check [] -+ - When calculating the number of character classes, upper-case letters - used as the first character and digits used as the last character of a --password are not counted. -+password are not counted. To disable this, you can specify -+"disable_firstupper_lastdigit_check". - - In addition to being sufficiently long, passwords are required to - contain enough different characters for the character classes and -@@ -142,6 +145,14 @@ This disables user interaction within pa - the only difference between "use_first_pass" and "use_authtok" is that - the former is incompatible with "ask_oldauthtok". - -+ oldpass_prompt_file=absolute-file-path [] -+ newpass_prompt_file=abosulte-file-path [] -+ -+The options "oldpass_prompt_file" and "newpass_prompt_file" can be used -+to override prompts while requesting old password and new password, -+respectively. The maximum size of the prompt files can be 4096 -+characters at present. If the file size is more than 4096 characters, the -+output will be truncated to 4096 characters. - -- - Solar Designer - diff --git a/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch b/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch deleted file mode 100644 index 536fba13295..00000000000 --- a/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- pam_passwdqc-1.0.5/Makefile.orig 2012-10-02 20:53:55.443592886 +0900 -+++ pam_passwdqc-1.0.5/Makefile 2012-10-02 20:54:19.076108001 +0900 -@@ -2,7 +2,7 @@ - # Copyright (c) 2000-2003,2005 by Solar Designer. See LICENSE. - # - --CC = gcc -+#CC = gcc - LD = $(CC) - RM = rm -f - MKDIR = mkdir -p diff --git a/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb b/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb deleted file mode 100644 index 4add367d5cd..00000000000 --- a/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Pluggable password quality-control module." -DESCRIPTION = "pam_passwdqc is a simple password strength checking module for \ -PAM-aware password changing programs, such as passwd(1). In addition \ -to checking regular passwords, it offers support for passphrases and \ -can provide randomly generated passwords. All features are optional \ -and can be (re-)configured without rebuilding." - -HOMEPAGE = "http://www.openwall.com/passwdqc/" -SECTION = "System Environment/Base" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e284d013ef08e66d4737f446c5890550" - -SRC_URI = "http://www.openwall.com/pam/modules/pam_passwdqc/pam_passwdqc-1.0.5.tar.gz \ - file://1000patch-219201.patch \ - file://7000Makefile-fix-CC.patch \ - " -SRC_URI[md5sum] = "cd9c014f736158b1a60384a8e2bdc28a" -SRC_URI[sha256sum] = "32528ddf7d8219c788b6e7702361611ff16c6340b6dc0f418ff164aadc4a4a88" - - -S = "${WORKDIR}/pam_passwdqc-${PV}" - -DEPENDS = "libpam" - -EXTRA_OEMAKE = "CFLAGS="${CFLAGS} -Wall -fPIC -DHAVE_SHADOW"" - -do_install() { - oe_runmake install DESTDIR=${D} -} - -FILES_${PN} += "/lib/security/pam_passwdqc.so" -FILES_${PN}-dbg += "/lib/security/.debug" - diff --git a/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch b/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch new file mode 100644 index 00000000000..e9023492e01 --- /dev/null +++ b/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch @@ -0,0 +1,31 @@ +Add LDFLAGS variable to Makefile so that extra linker flags can be sent via this variable. + +Upstream-Status: Pending + +Signed-off-by: Yi Zhao + +diff --git a/Makefile b/Makefile +index 49d622d..cd17334 100644 +--- a/Makefile ++++ b/Makefile +@@ -48,18 +48,17 @@ CFLAGS = -Wall -W -O2 + CFLAGS_lib = $(CFLAGS) -fPIC + CFLAGS_bin = $(CFLAGS) -fomit-frame-pointer + +-LDFLAGS = + LDFLAGS_shared = --shared + LDFLAGS_shared_LINUX = --shared + LDFLAGS_shared_SUN = -G + LDFLAGS_shared_HP = -b + LDFLAGS_lib = $(LDFLAGS_shared) +-LDFLAGS_lib_LINUX = $(LDFLAGS_shared_LINUX) \ ++LDFLAGS_lib_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \ + -Wl,--soname,$(SHARED_LIB),--version-script,$(MAP_LIB) + LDFLAGS_lib_SUN = $(LDFLAGS_shared_SUN) + LDFLAGS_lib_HP = $(LDFLAGS_shared_HP) + LDFLAGS_pam = $(LDFLAGS_shared) +-LDFLAGS_pam_LINUX = $(LDFLAGS_shared_LINUX) \ ++LDFLAGS_pam_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \ + -Wl,--version-script,$(MAP_PAM) + LDFLAGS_pam_SUN = $(LDFLAGS_shared_SUN) + LDFLAGS_pam_HP = $(LDFLAGS_shared_HP) diff --git a/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb b/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb new file mode 100644 index 00000000000..b8f923c29a0 --- /dev/null +++ b/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb @@ -0,0 +1,63 @@ +SUMMARY = "A password/passphrase strength checking and enforcement toolset" +DESCRIPTION = "\ +passwdqc is a password/passphrase strength checking and policy enforcement \ +toolset, including an optional PAM module (pam_passwdqc), command-line \ +programs (pwqcheck and pwqgen), and a library (libpasswdqc). \ +pam_passwdqc is normally invoked on password changes by programs such as \ +passwd(1). It is capable of checking password or passphrase strength, \ +enforcing a policy, and offering randomly-generated passphrases, with \ +all of these features being optional and easily (re-)configurable. \ +\ +pwqcheck and pwqgen are standalone password/passphrase strength checking \ +and random passphrase generator programs, respectively, which are usable \ +from scripts. \ +\ +libpasswdqc is the underlying library, which may also be used from \ +third-party programs. \ +" + +HOMEPAGE = "http://www.openwall.com/passwdqc" +SECTION = "System Environment/Base" + +DEPENDS += "libpam" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d" + +SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \ + file://makefile-add-ldflags.patch \ + " +SRC_URI[md5sum] = "3878b57bcd3fdbcf3d4b362dbc6228b9" +SRC_URI[sha256sum] = "d1fedeaf759e8a0f32d28b5811ef11b5a5365154849190f4b7fab670a70ffb14" + +# explicitly define LINUX_PAM in case DISTRO_FEATURES no pam +# this package's pam_passwdqc.so needs pam +CFLAGS_append += "-Wall -fPIC -DHAVE_SHADOW -DLINUX_PAM" + +# -e is no longer default setting in bitbake.conf +EXTRA_OEMAKE = "-e" + +do_compile() { + # make sure sub make use environment to override variables in Makefile + # Linux) $(MAKE), there is a tab between + sed -i -e 's/Linux) $(MAKE) CFLAGS_lib/Linux) $(MAKE) -e CFLAGS_lib/' ${S}/Makefile + + # LD_lib and LD must be CC because of Makefile + oe_runmake LD="${CC}" +} + +do_install() { + oe_runmake install DESTDIR=${D} SHARED_LIBDIR=${base_libdir} \ + DEVEL_LIBDIR=${libdir} SECUREDIR=${base_libdir}/security \ + INSTALL="install -p" +} + +PROVIDES += "pam-${BPN}" +PACKAGES =+ "lib${BPN} pam-${BPN}" + +FILES_lib${BPN} = "${base_libdir}/libpasswdqc.so.0" +FILES_pam-${BPN} = "${base_libdir}/security/pam_passwdqc.so" +FILES_${PN}-dbg += "${base_libdir}/security/.debug" + +RDEPENDS_${PN} = "lib${BPN}" +RDEPENDS_pam-${BPN} = "lib${BPN}" diff --git a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb new file mode 100644 index 00000000000..90d58b00d9c --- /dev/null +++ b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb @@ -0,0 +1,49 @@ +SUMMARY = "PC/SC Lite smart card framework and applications" +HOMEPAGE = "http://pcsclite.alioth.debian.org/" +LICENSE = "BSD & GPLv3+" +LICENSE_${PN} = "BSD" +LICENSE_${PN}-lib = "BSD" +LICENSE_${PN}-doc = "BSD" +LICENSE_${PN}-dev = "BSD" +LICENSE_${PN}-dbg = "BSD & GPLv3+" +LICENSE_${PN}-spy = "GPLv3+" +LICENSE_${PN}-spy-dev = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=f38b3d1c7ef7fc2c8b6d20cd38efdc29" +DEPENDS = "udev" + +SRC_URI = "https://alioth.debian.org/frs/download.php/file/4225/pcsc-lite-${PV}.tar.bz2" +SRC_URI[md5sum] = "0ec103b1ef298d0c58d6ef6b00b9cf17" +SRC_URI[sha256sum] = "6a358f61ed3b66a7f6e1f4e794a94c7be4c81b7a58ec360c33791e8d7d9bd405" + + +inherit autotools systemd pkgconfig + +EXTRA_OECONF = " \ + --disable-libusb \ + --enable-libudev \ + --enable-usbdropdir=${libdir}/pcsc/drivers \ +" + +S = "${WORKDIR}/pcsc-lite-${PV}" + +PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-lib ${PN}-doc ${PN}-spy ${PN}-spy-dev" + +RRECOMMENDS_${PN} = "ccid" + +FILES_${PN} = "${sbindir}/pcscd" +FILES_${PN}-lib = "${libdir}/libpcsclite*${SOLIBS}" +FILES_${PN}-dev = "${includedir} \ + ${libdir}/pkgconfig \ + ${libdir}/libpcsclite.la \ + ${libdir}/libpcsclite.so" + +FILES_${PN}-spy = "${bindir}/pcsc-spy \ + ${libdir}/libpcscspy*${SOLIBS}" +FILES_${PN}-spy-dev = "${libdir}/libpcscspy.la \ + ${libdir}/libpcscspy.so " + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "pcscd.socket" +RDEPENDS_${PN}-spy +="python" diff --git a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.6.bb b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.6.bb deleted file mode 100644 index 5a58389ab74..00000000000 --- a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.6.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "PC/SC Lite smart card framework and applications" -HOMEPAGE = "http://pcsclite.alioth.debian.org/" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=a39d325b7d9cf2f07826a5154b16500c" -DEPENDS = "udev" - -SRC_URI = "https://alioth.debian.org/frs/download.php/file/3757/pcsc-lite-${PV}.tar.bz2" -SRC_URI[md5sum] = "3e4b777231d35ce35c15c0704f936eaa" -SRC_URI[sha256sum] = "1e44049168d1ce55fd56c175f61206955254df0f385455f2a20ec7e8a0e6a77a" - -PR = "r3" - -inherit autotools systemd pkgconfig - -EXTRA_OECONF = " \ - --disable-libusb \ - --enable-libudev \ - --enable-usbdropdir=${libdir}/pcsc/drivers \ -" - -S = "${WORKDIR}/pcsc-lite-${PV}" - -PACKAGES =+ "${PN}-lib" - -RRECOMMENDS_${PN} = "ccid" - -FILES_${PN}-lib = "${libdir}/lib*${SOLIBS}" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "pcscd.socket" diff --git a/meta-oe/recipes-support/picocom/picocom_1.7.bb b/meta-oe/recipes-support/picocom/picocom_1.7.bb deleted file mode 100644 index 8141106bf00..00000000000 --- a/meta-oe/recipes-support/picocom/picocom_1.7.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Lightweight and minimal (~20K) dumb-terminal emulation program" -SECTION = "console/utils" -LICENSE = "GPLv2+" -HOMEPAGE = "http://code.google.com/p/picocom/" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=393a5ca445f6965873eca0259a17f833" - -SRC_URI = "http://picocom.googlecode.com/files/picocom-${PV}.tar.gz" - -SRC_URI[md5sum] = "8eaba1d31407e8408674d6e57af447ef" -SRC_URI[sha256sum] = "d0f31c8f7a215a76922d30c81a52b9a2348c89e02a84935517002b3bc2c1129e" - -CPPFLAGS_append = '-DVERSION_STR=\\"${PV}\\" -DUUCP_LOCK_DIR=\\"/var/lock\\" -DHIGH_BAUD' - -do_install () { - install -d ${D}${bindir} - install -m 0755 ${PN} pcasc pcxm pcym pczm ${D}${bindir}/ -} - diff --git a/meta-oe/recipes-support/picocom/picocom_git.bb b/meta-oe/recipes-support/picocom/picocom_git.bb new file mode 100644 index 00000000000..e091094cf46 --- /dev/null +++ b/meta-oe/recipes-support/picocom/picocom_git.bb @@ -0,0 +1,23 @@ +SUMMARY = "Lightweight and minimal (~20K) dumb-terminal emulation program" +SECTION = "console/utils" +LICENSE = "GPLv2+" +HOMEPAGE = "http://code.google.com/p/picocom/" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3000e4830620e310fe65c0eb69df9e8a" + +BASEPV = "2.2" +PV = "${BASEPV}+git${SRCPV}" + +SRCREV = "deffd18c24145bd6f965f44e735a50b65810ccdc" + +SRC_URI = "git://github.com/npat-efault/picocom" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "'CC=${CC}' 'LD=${CC}' 'VERSION=${BASEPV}' \ + 'CFLAGS=${CFLAGS}' 'LDFLAGS=${LDFLAGS}' " + +do_install () { + install -d ${D}${bindir} + install -m 0755 ${BPN} pcasc pcxm pcym pczm ${D}${bindir}/ +} + diff --git a/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch b/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch index b78663310a3..ecdbffb5139 100644 --- a/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch +++ b/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch @@ -11,8 +11,8 @@ Signed-off-by: Jakob Drexel --- a/toolkit/Makefile.am 2012-05-03 15:52:22.000000000 +0200 +++ b/toolkit/Makefile.am 2014-01-13 12:12:26.030369357 +0100 @@ -1,4 +1,4 @@ --INCLUDES = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@ -+INCLUDES = -I../src @LIBGCRYPT_CFLAGS@ +-AM_CPPFLAGS = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@ ++AM_CPPFLAGS = -I../src @LIBGCRYPT_CFLAGS@ noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h diff --git a/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch b/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch index f66e52881cd..dda17a95775 100644 --- a/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch +++ b/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch @@ -9,8 +9,8 @@ Index: libotr-4.0.0/toolkit/Makefile.am --- libotr-4.0.0.orig/toolkit/Makefile.am 2014-07-16 18:09:59.777858022 +0000 +++ libotr-4.0.0/toolkit/Makefile.am 2014-07-17 06:28:51.359066155 +0000 @@ -1,4 +1,4 @@ --INCLUDES = -I../src @LIBGCRYPT_CFLAGS@ -+INCLUDES = -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@ +-AM_CPPFLAGS = -I../src @LIBGCRYPT_CFLAGS@ ++AM_CPPFLAGS = -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@ noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h diff --git a/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb b/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb deleted file mode 100644 index dd9eeab7a93..00000000000 --- a/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging" -HOMEPAGE = "http://www.cypherpunks.ca/otr/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24" -DEPENDS = "libgcrypt libgpg-error" - -SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \ - file://fix_qa-issue_include.patch \ - file://sepbuild.patch \ -" - -SRC_URI[md5sum] = "00979dca82d70383fcd1b01f3974363c" -SRC_URI[sha256sum] = "3f911994409898e74527730745ef35ed75c352c695a1822a677a34b2cf0293b4" - -inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb b/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb new file mode 100644 index 00000000000..c7012442194 --- /dev/null +++ b/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb @@ -0,0 +1,15 @@ +SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging" +HOMEPAGE = "http://www.cypherpunks.ca/otr/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24" +DEPENDS = "libgcrypt libgpg-error" + +SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \ + file://fix_qa-issue_include.patch \ + file://sepbuild.patch \ +" + +SRC_URI[md5sum] = "dac5a8778a35f674c046ddf5d97e4d81" +SRC_URI[sha256sum] = "8b3b182424251067a952fb4e6c7b95a21e644fbb27fbd5f8af2b2ed87ca419f5" + +inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch b/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch deleted file mode 100644 index db0ad873b08..00000000000 --- a/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch +++ /dev/null @@ -1,19 +0,0 @@ -pidgin-otr: Silence no-extra-portability warnings - -Make it build with OE, was not building with warning turned on - -Upstream-Status: Pending - -Signed-off-by: Jakob Drexel - ---- a/configure.ac 2012-09-01 17:03:19.000000000 +0200 -+++ b/configure.ac 2014-01-12 21:59:24.920300215 +0100 -@@ -4,7 +4,7 @@ - - AM_CONFIG_HEADER(config.h) - --AM_INIT_AUTOMAKE([-Wall -Werror]) -+AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability]) - - AC_PROG_CC - diff --git a/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb b/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb deleted file mode 100644 index 18dbe0959ff..00000000000 --- a/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging" -HOMEPAGE = "http://www.cypherpunks.ca/otr/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24" -DEPENDS = "libgcrypt libotr pidgin intltool-native" - -SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \ - file://ignore_extra-portability_warnings.patch \ -" - -SRC_URI[md5sum] = "eadb953376acc474e56041d4c12aa2c8" -SRC_URI[sha256sum] = "d56b3f092dbe9ee6597641c7d2dd294884dc04ba47aaf4ec571cd54977df4691" - - -FILES_${PN} = "${libdir}/pidgin/*" -FILES_${PN}-dbg = "${libdir}/pidgin/.debug" -FILES_${PN}-dbg += "${libdir}/pidgin/.debug/pidgin-otr.so" -FILES_${PN}-dbg += "/usr/src/debug/pidgin-otr/${PV}-${PR}/${P}/*" -inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb b/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb new file mode 100644 index 00000000000..5a21cd3fc94 --- /dev/null +++ b/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging" +HOMEPAGE = "https://otr.cypherpunks.ca/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24" +DEPENDS = "libgcrypt libotr pidgin gtk+ intltool-native glib-2.0 glib-2.0-native" +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "https://otr.cypherpunks.ca/${BP}.tar.gz \ +" +SRC_URI[md5sum] = "7ef14e1334a4bc80e5d530f9a3cfc626" +SRC_URI[sha256sum] = "f4b59eef4a94b1d29dbe0c106dd00cdc630e47f18619fc754e5afbf5724ebac4" + +FILES_${PN} = "${libdir}/pidgin/*" + +inherit autotools pkgconfig distro_features_check diff --git a/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch b/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch index 57c4c468145..72bf4ed41bc 100644 --- a/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch +++ b/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch @@ -1,16 +1,34 @@ -Index: pidgin-2.6.5/configure.ac -=================================================================== ---- pidgin-2.6.5.orig/configure.ac -+++ pidgin-2.6.5/configure.ac -@@ -1470,8 +1470,9 @@ if test "_$pythonpath" != _ ; then - AC_CHECK_LIB(pthread, pthread_create, ) - AC_CHECK_LIB(util, openpty, ) - AC_CHECK_LIB(db, dbopen, ) -- PY_LIBS="-L$PY_EXEC_PREFIX/lib/python$PY_VERSION/config -lpython$PY_VERSION" -- PY_CFLAGS="-I$PY_PREFIX/include/python$PY_VERSION" -+ m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$]) -+ PY_LIBS="-L$PKG_CONFIG_SYSROOT_DIR/usr/lib/python$PY_VERSION/config -lpython$PY_VERSION" -+ PY_CFLAGS="-I$PKG_CONFIG_SYSROOT_DIR/usr/include/python$PY_VERSION" - AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.]) - AC_MSG_RESULT(ok) - else +Use pkg-config instead of ${PYTHON}-config to find python + +diff -uNr pidgin-2.10.12.orig/configure.ac pidgin-2.10.12/configure.ac +--- pidgin-2.10.12.orig/configure.ac 2016-01-01 00:19:40.000000000 +0100 ++++ pidgin-2.10.12/configure.ac 2016-05-05 16:55:13.258945925 +0200 +@@ -1585,20 +1585,15 @@ + dnl Check for Python headers (currently useful only for libgnt) + dnl (Thanks to XChat) + if test "x$enable_consoleui" = "xyes" -a ! -z "$PYTHON" -a x"$PYTHON" != x"no" ; then +- AC_MSG_CHECKING(for Python compile flags) +- if test -f ${PYTHON}-config; then +- PY_CFLAGS=`${PYTHON}-config --includes` +- PY_LIBS=`${PYTHON}-config --libs` +- AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.]) +- AC_MSG_RESULT(ok) +- else +- AC_MSG_RESULT([Cannot find ${PYTHON}-config]) +- PY_CFLAGS="" +- PY_LIBS="" +- fi ++ AC_MSG_CHECKING(for Python compile flags) ++ PKG_CHECK_MODULES(PY, python, [ ++ AC_SUBST(PY_CFLAGS) ++ AC_SUBST(PY_LIBS) ++ ], [ ++ AC_MSG_RESULT(no) ++ AC_MSG_ERROR([Can't find python]) ++ ]) + fi +-AC_SUBST(PY_CFLAGS) +-AC_SUBST(PY_LIBS) + + dnl ####################################################################### + dnl # Check for Mono support diff --git a/meta-oe/recipes-support/pidgin/pidgin/pidgin.desktop-set-icon.patch b/meta-oe/recipes-support/pidgin/pidgin/pidgin.desktop-set-icon.patch deleted file mode 100644 index 05f76895baf..00000000000 --- a/meta-oe/recipes-support/pidgin/pidgin/pidgin.desktop-set-icon.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- pidgin-2.0.1/pidgin.desktop.in.orig 2007-06-20 23:50:44.000000000 +0000 -+++ pidgin-2.0.1/pidgin.desktop.in 2007-06-20 23:51:05.000000000 +0000 -@@ -4,7 +4,7 @@ - _GenericName=Internet Messenger - _Comment=Send instant messages over multiple protocols - Exec=pidgin --Icon=pidgin -+Icon=/usr/share/icons/hicolor/48x48/apps/pidgin.png - StartupNotify=true - Terminal=false - Type=Application diff --git a/meta-oe/recipes-support/pidgin/pidgin_2.10.9.bb b/meta-oe/recipes-support/pidgin/pidgin_2.10.9.bb deleted file mode 100644 index b635352374c..00000000000 --- a/meta-oe/recipes-support/pidgin/pidgin_2.10.9.bb +++ /dev/null @@ -1,106 +0,0 @@ -DESCRIPTION = "multi-protocol instant messaging client" -SECTION = "x11/network" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -DEPENDS = "python startup-notification avahi gtk+ ncurses gnutls virtual/libintl gstreamer dbus intltool-native farsight2 libidn" - -inherit autotools gettext pkgconfig gconf perlnative - -SRC_URI = "\ - ${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \ - file://sanitize-configure.ac.patch \ - file://pidgin.desktop-set-icon.patch \ - file://purple-OE-branding-25.patch \ - file://pidgin-cross-python-265.patch \ -" - -SRC_URI[md5sum] = "10a4a69d077893f6dd3438cd8af94e81" -SRC_URI[sha256sum] = "dc362ed8577f623eea4554a79e917073aa726825074fea402f2e515f0f51f319" - -EXTRA_OECONF = " \ - --enable-vv \ - --disable-perl \ - --disable-tcl \ - --disable-gevolution \ - --disable-schemas-install \ - --x-includes=${STAGING_INCDIR} \ - --x-libraries=${STAGING_LIBDIR} \ - --enable-gnutls=yes \ - --with-ncurses-headers=${STAGING_INCDIR} \ - --with-gnutls-includes=${STAGING_INCDIR} \ - --with-gnutls-libs=${STAGING_LIBDIR} \ - --disable-gtkspell \ - --disable-meanwhile \ - --disable-nm \ - --disable-screensaver \ - --enable-nss=no \ -" - -do_configure_prepend() { - touch ${S}/po/Makefile - sed -i "s#PY_VERSION=`$PYTHON -c 'import sys ; print sys.version[0:3]'`#PY_VERSION=${PYTHON_BASEVERSION}#g" ${S}/configure.ac -} - -OE_LT_RPATH_ALLOW=":${libdir}/purple-2:" -OE_LT_RPATH_ALLOW[export]="1" - -PACKAGES =+ "libpurple-dbg libpurple-dev libpurple libgnt-dbg libgnt libgnt-dev finch-dbg finch finch-dev ${PN}-data" - -LEAD_SONAME = "libpurple.so.0" -FILES_libpurple = "${libdir}/libpurple*.so.* ${libdir}/purple-2 ${bindir}/purple-* ${sysconfdir}/gconf/schemas/purple* ${datadir}/purple/ca-certs" -FILES_libpurple-dev = "${libdir}/libpurple*.la \ - ${libdir}/libpurple*.so \ - ${libdir}/purple-2/*.la \ - ${libdir}/purple-2/libjabber.so \ - ${libdir}/purple-2/liboscar.so \ - ${libdir}/purple-2/libymsg.so \ - ${datadir}/aclocal" -FILES_libpurple-dbg += "${libdir}/.debug/libpurple* \ - ${libdir}/purple-2/.debug" -FILES_libgnt = "${libdir}/libgnt.so.* ${libdir}/gnt/*.so" -FILES_libgnt-dev = "${libdir}/gnt/*.la" -FILES_libgnt-dbg = "${libdir}/gnt/.debug" -FILES_finch = "${bindir}/finch" -FILES_finch-dev = "${libdir}/finch/*.la" -FILES_finch-dbg = "${bindir}/.debug/finch \ - ${libdir}/finch/.debug" - -FILES_${PN} = "${bindir} ${datadir}/${PN} ${libdir}/${PN}/*.so \ - ${datadir}/applications" -RRECOMMENDS_${PN} = "${PN}-data libpurple-plugin-ssl-gnutls libpurple-protocol-irc libpurple-protocol-xmpp" - -FILES_${PN}-data = "${datadir}/pixmaps ${datadir}/sounds ${datadir}/icons" -FILES_${PN}-dev += "${libdir}/${PN}/*.la" - -PACKAGES_DYNAMIC += "^libpurple-protocol-.* ^libpurple-plugin-.* ^pidgin-plugin-.* ^finch-plugin-.*" - -python populate_packages_prepend () { - pidgroot = d.expand('${libdir}/pidgin') - purple = d.expand('${libdir}/purple-2') - finch = d.expand('${libdir}/finch') - - do_split_packages(d, pidgroot, '^([^l][^i][^b].*)\.so$', - output_pattern='pidgin-plugin-%s', - description='Pidgin plugin %s', - prepend=True, extra_depends='') - - do_split_packages(d, purple, '^lib(.*)\.so$', - output_pattern='libpurple-protocol-%s', - description='Libpurple protocol plugin for %s', - prepend=True, extra_depends='') - - do_split_packages(d, purple, '^(ssl-.*)\.so$', - output_pattern='libpurple-plugin-%s', - description='libpurple plugin %s', - prepend=True, extra_depends='libpurple-plugin-ssl') - - do_split_packages(d, purple, '^([^l][^i][^b].*)\.so$', - output_pattern='libpurple-plugin-%s', - description='libpurple plugin %s', - prepend=True, extra_depends='') - - do_split_packages(d, finch, '^([^l][^i][^b].*)\.so$', - output_pattern='finch-plugin-%s', - description='Finch plugin %s', - prepend=True, extra_depends='') -} diff --git a/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb b/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb new file mode 100644 index 00000000000..088f08b7d60 --- /dev/null +++ b/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb @@ -0,0 +1,120 @@ +SUMMARY = "multi-protocol instant messaging client" +SECTION = "x11/network" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +DEPENDS = "python virtual/libintl intltool-native libxml2 gconf glib-2.0-native" + +inherit autotools gettext pkgconfig gconf perlnative + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \ + file://sanitize-configure.ac.patch \ + file://purple-OE-branding-25.patch \ + file://pidgin-cross-python-265.patch \ +" + +SRC_URI[md5sum] = "8287400c4e5663e0e7844e868d5152af" +SRC_URI[sha256sum] = "8c3d3536d6d3c971bd433ff9946678af70a0f6aa4e6969cc2a83bb357015b7f8" + +PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \ +" +PACKAGECONFIG[farsight2] = "--enable-farstream,--disable-farstream,farsight2" +# --disable-gstreamer compile without GStreamer audio support +# --disable-gstreamer-video +# compile without GStreamer 1.0 Video Overlay support +# --disable-gstreamer-interfaces +# compile without GStreamer 0.10 interface support +# --with-gstreamer= +# compile with GStreamer 0.10 or 1.0 interface +PACKAGECONFIG[gstreamer] = "--enable-gstreamer,--disable-gstreamer,gstreamer" +PACKAGECONFIG[vv] = "--enable-vv,--disable-vv,gstreamer" +PACKAGECONFIG[idn] = "--enable-idn,--disable-idn,libidn" +PACKAGECONFIG[gtk] = "--enable-gtkui,--disable-gtkui,gtk+" +PACKAGECONFIG[x11] = "--with-x=yes --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--with-x=no,virtual/libx11" +PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" +PACKAGECONFIG[consoleui] = "--enable-consoleui --with-ncurses-headers=${STAGING_INCDIR},--disable-consoleui,ncurses" +PACKAGECONFIG[gnutls] = "--enable-gnutls --with-gnutls-includes=${STAGING_INCDIR} --with-gnutls-libs=${STAGING_LIBDIR},--disable-gnutls,gnutls,libpurple-plugin-ssl-gnutls" +PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib" +PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi" +PACKAGECONFIG[nss] = "--enable-nss,--disable-nss,nss nspr,libpurple-plugin-ssl-nss" + +EXTRA_OECONF = " \ + --disable-perl \ + --disable-tcl \ + --disable-gevolution \ + --disable-schemas-install \ + --disable-gtkspell \ + --disable-meanwhile \ + --disable-nm \ + --disable-screensaver \ +" + +do_configure_prepend() { + touch ${S}/po/Makefile + sed -i "s#PY_VERSION=`$PYTHON -c 'import sys ; print sys.version[0:3]'`#PY_VERSION=${PYTHON_BASEVERSION}#g" ${S}/configure.ac +} + +OE_LT_RPATH_ALLOW=":${libdir}/purple-2:" +OE_LT_RPATH_ALLOW[export]="1" + +PACKAGES =+ "libpurple-dbg libpurple-dev libpurple libgnt-dbg libgnt libgnt-dev finch-dbg finch finch-dev ${PN}-data" + +LEAD_SONAME = "libpurple.so.0" +FILES_libpurple = "${libdir}/libpurple*.so.* ${libdir}/purple-2 ${bindir}/purple-* ${sysconfdir}/gconf/schemas/purple* ${datadir}/purple/ca-certs" +FILES_libpurple-dev = "${libdir}/libpurple*.la \ + ${libdir}/libpurple*.so \ + ${libdir}/purple-2/*.la \ + ${libdir}/purple-2/libjabber.so \ + ${libdir}/purple-2/liboscar.so \ + ${libdir}/purple-2/libymsg.so \ + ${datadir}/aclocal" +FILES_libpurple-dbg += "${libdir}/.debug/libpurple* \ + ${libdir}/purple-2/.debug" +FILES_libgnt = "${libdir}/libgnt.so.* ${libdir}/gnt/*.so" +FILES_libgnt-dev = "${libdir}/gnt/*.la" +FILES_libgnt-dbg = "${libdir}/gnt/.debug" +FILES_finch = "${bindir}/finch" +FILES_finch-dev = "${libdir}/finch/*.la" +FILES_finch-dbg = "${bindir}/.debug/finch \ + ${libdir}/finch/.debug" + +FILES_${PN} = "${bindir} ${datadir}/${PN} ${libdir}/${PN}/*.so \ + ${datadir}/applications" +RRECOMMENDS_${PN} = "${PN}-data libpurple-protocol-irc libpurple-protocol-xmpp" + +FILES_${PN}-data = "${datadir}/pixmaps ${datadir}/sounds ${datadir}/icons ${datadir}/appdata" +FILES_${PN}-dev += "${libdir}/${PN}/*.la" + +PACKAGES_DYNAMIC += "^libpurple-protocol-.* ^libpurple-plugin-.* ^pidgin-plugin-.* ^finch-plugin-.*" + +python populate_packages_prepend () { + pidgroot = d.expand('${libdir}/pidgin') + purple = d.expand('${libdir}/purple-2') + finch = d.expand('${libdir}/finch') + + do_split_packages(d, pidgroot, '^([^l][^i][^b].*)\.so$', + output_pattern='pidgin-plugin-%s', + description='Pidgin plugin %s', + prepend=True, extra_depends='') + + do_split_packages(d, purple, '^lib(.*)\.so$', + output_pattern='libpurple-protocol-%s', + description='Libpurple protocol plugin for %s', + prepend=True, extra_depends='') + + do_split_packages(d, purple, '^(ssl-.*)\.so$', + output_pattern='libpurple-plugin-%s', + description='libpurple plugin %s', + prepend=True, extra_depends='libpurple-plugin-ssl') + + do_split_packages(d, purple, '^([^l][^i][^b].*)\.so$', + output_pattern='libpurple-plugin-%s', + description='libpurple plugin %s', + prepend=True, extra_depends='') + + do_split_packages(d, finch, '^([^l][^i][^b].*)\.so$', + output_pattern='finch-plugin-%s', + description='Finch plugin %s', + prepend=True, extra_depends='') +} diff --git a/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb b/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb index a833297500a..db71bd03b7f 100644 --- a/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb +++ b/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb @@ -22,7 +22,7 @@ SRC_URI[sha256sum] = "494ec59c93e7c56c528f335d9353849e2e7c94a6b1b41c89604694e738 S = "${WORKDIR}/git" SRCREV = "e7adf8f35be232a4f04c53b4ac409be52792093e" -DEPENDS = "zlib nettle gnutls gmp openssl" +DEPENDS = "zlib nettle gnutls gmp openssl nss nspr" inherit autotools pkgconfig diff --git a/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch b/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch new file mode 100644 index 00000000000..2d0ea0252cf --- /dev/null +++ b/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch @@ -0,0 +1,60 @@ +From 6245f18091cad11520c159248c1cf7a84f12857c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 5 Apr 2017 13:15:43 -0700 +Subject: [PATCH] make: Respect variables from environement + +link with shared zlib + +Signed-off-by: Khem Raj +--- + Makefile.unx | 18 ++++++++---------- + 1 file changed, 8 insertions(+), 10 deletions(-) + +diff --git a/Makefile.unx b/Makefile.unx +index 772da46..4ae7061 100644 +--- a/Makefile.unx ++++ b/Makefile.unx +@@ -24,18 +24,16 @@ ZINC = -I$(ZPATH) + ZLIB = $(ZPATH)/libz.a + + INCS = $(ZINC) +-LIBS = $(ZLIB) ++LIBS = -lz + +-CC = gcc +-LD = gcc +-RM = rm +-CFLAGS = -O -Wall $(INCS) -DUSE_ZLIB ++CC ?= gcc ++LD ?= gcc ++RM ?= rm ++CFLAGS += -O -Wall $(INCS) -DUSE_ZLIB + # [note that -Wall is a gcc-specific compilation flag ("all warnings on")] + O = .o + E = + +-LDFLAGS = +- + PROG = pngcheck + PROG2 = pngsplit + PROG3 = png-fix-IDAT-windowsize +@@ -57,13 +55,13 @@ EXES = $(PROG)$(E) $(PROG2)$(E) $(PROG3)$(E) + all: $(EXES) + + $(PROG)$(E): $(PROG).c +- $(CC) $(CFLAGS) -o $@ $(PROG).c $(LIBS) ++ $(CC) $(CFLAGS) -o $@ $(PROG).c $(LDFLAGS) $(LIBS) + + $(PROG2)$(E): gpl/$(PROG2).c +- $(CC) $(CFLAGS) -o $@ gpl/$(PROG2).c $(LIBS) ++ $(CC) $(CFLAGS) -o $@ gpl/$(PROG2).c $(LDFLAGS) $(LIBS) + + $(PROG3)$(E): gpl/$(PROG3).c +- $(CC) $(CFLAGS) -o $@ gpl/$(PROG3).c $(LIBS) ++ $(CC) $(CFLAGS) -o $@ gpl/$(PROG3).c $(LDFLAGS) $(LIBS) + + + # maintenance --------------------------------------------------------------- +-- +2.12.2 + diff --git a/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch b/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch new file mode 100644 index 00000000000..6d4465fbed0 --- /dev/null +++ b/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch @@ -0,0 +1,36 @@ +From d4d8257953bd1e7be167aed24c0578362cc5f675 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 5 Apr 2017 13:12:30 -0700 +Subject: [PATCH 1/2] png-fix-IDAT-windowsize: Fix format string errors in + fprintf + +Signed-off-by: Khem Raj +--- + gpl/png-fix-IDAT-windowsize.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gpl/png-fix-IDAT-windowsize.c b/gpl/png-fix-IDAT-windowsize.c +index 6d4ef9c..d212017 100644 +--- a/gpl/png-fix-IDAT-windowsize.c ++++ b/gpl/png-fix-IDAT-windowsize.c +@@ -127,7 +127,7 @@ int main(int argc, char *argv[]) + fprintf(stderr, " Compiled with zlib %s; using zlib %s.\n", + ZLIB_VERSION, zlib_version); + fprintf(stderr, "\n"); +- fprintf(stderr, png_fix_IDAT_windowsize_usage); ++ fprintf(stderr, "%s", png_fix_IDAT_windowsize_usage); + fflush(stderr); + return 1; + } +@@ -143,7 +143,7 @@ int main(int argc, char *argv[]) + fflush(stdout); + + if ( argn == argc ) { +- fprintf(stderr, png_fix_IDAT_windowsize_usage); ++ fprintf(stderr, "%s", png_fix_IDAT_windowsize_usage); + fflush(stderr); + return 5; + } else { +-- +2.12.2 + diff --git a/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch b/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch new file mode 100644 index 00000000000..f2c86689ec4 --- /dev/null +++ b/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch @@ -0,0 +1,40 @@ +From: Jari Aalto +Subject: Correct fomat strings fro hardened build flags + +--- + gpl/pngsplit.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/gpl/pngsplit.c ++++ b/gpl/pngsplit.c +@@ -141,8 +141,8 @@ + 0 == strncmp( argv[argn], "-quiet", 2 ) ) + verbose = 0; + else { +- fprintf(stderr, pngsplit_hdr); +- fprintf(stderr, pngsplit_usage); ++ fprintf(stderr, "%s", pngsplit_hdr); ++ fprintf(stderr, "%s", pngsplit_usage); + fflush(stderr); + return 1; + } +@@ -150,8 +150,8 @@ + } + + if ( argn == argc ) { +- fprintf(stderr, pngsplit_hdr); +- fprintf(stderr, pngsplit_usage); ++ fprintf(stderr, "%s", pngsplit_hdr); ++ fprintf(stderr, "%s", pngsplit_usage); + fflush(stderr); + return 5; + } else { +@@ -162,7 +162,7 @@ + + /*============================= MAIN LOOP =============================*/ + +- fprintf(stdout, pngsplit_hdr); ++ fprintf(stdout, "%s", pngsplit_hdr); + fflush(stdout); + + while (argn <= argc) { diff --git a/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb b/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb index 445e8ad8e8a..9f617ecda5c 100644 --- a/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb +++ b/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb @@ -4,13 +4,21 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://gpl/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "zlib libpng" -SRC_URI = "${SOURCEFORGE_MIRROR}/project/png-mng/${BPN}/${PV}/${BPN}-${PV}.tar.gz" +SRC_URI = "${SOURCEFORGE_MIRROR}/project/png-mng/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://10-pngsplit-format-strings.patch \ + file://0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch \ + file://0001-make-Respect-variables-from-environement.patch \ + " SRC_URI[md5sum] = "980bd6d9a3830fdce746d7fe3c9166ee" SRC_URI[sha256sum] = "77f0a039ac64df55fbd06af6f872fdbad4f639d009bbb5cd5cbe4db25690f35f" +CFLAGS += "-DUSE_ZLIB" + +EXTRA_OEMAKE = "-f ${S}/Makefile.unx" + do_compile() { - oe_runmake -f Makefile.unx INCS=-I${STAGING_DIR_HOST}${incdir} LIBS=${STAGING_DIR_HOST}${libdir}/libz.a + oe_runmake } do_install() { @@ -19,4 +27,3 @@ do_install() { install png-fix-IDAT-windowsize ${D}${bindir} install pngsplit ${D}${bindir} } - diff --git a/meta-oe/recipes-support/poco/poco/run-ptest b/meta-oe/recipes-support/poco/poco/run-ptest new file mode 100644 index 00000000000..c479f7ac107 --- /dev/null +++ b/meta-oe/recipes-support/poco/poco/run-ptest @@ -0,0 +1,9 @@ +#!/bin/sh +while read runner; do + pushd . >/dev/null + cd bin + echo Testing $runner + ./$runner-testrunner -all + popd >/dev/null +done < testrunners + diff --git a/meta-oe/recipes-support/poco/poco_1.7.9.bb b/meta-oe/recipes-support/poco/poco_1.7.9.bb new file mode 100644 index 00000000000..ac657350721 --- /dev/null +++ b/meta-oe/recipes-support/poco/poco_1.7.9.bb @@ -0,0 +1,106 @@ +SUMMARY = "Modern, powerful open source cross-platform C++ class libraries" +DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems." +SECTION = "libs" +HOMEPAGE = "http://pocoproject.org/" +LICENSE = "BSL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc" + +# These dependencies are required by Foundation +DEPENDS = "libpcre zlib" + +inherit cmake ptest + +BBCLASSEXTEND = "native" + +SRCREV = "bfbe6a328744eaa84cb443b93ee20947aa0be91f" +SRC_URI = " \ + git://github.com/pocoproject/poco.git;branch=master \ + file://run-ptest \ + " + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \ + -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \ + ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}" + +# For the native build we want to use the bundled version +EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF" + +# do not use rpath +EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON" + +# By default the most commonly used poco components are built +# Foundation is built anyway and doesn't need to be listed explicitly +# these don't have dependencies outside oe-core +PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip" + +PACKAGECONFIG[XML] = "-DENABLE_XML=ON -DEXPAT_LIBRARY:STRING=expat,-DENABLE_XML=OFF,expat" +PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF" +PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF" +PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib" +PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF" +PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF" +PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_NETSSL=OFF,openssl" +PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_CRYPTO=OFF,openssl" +PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF" +PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3" +PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF" + +# Additional components not build by default, +# they might have dependencies not included in oe-core +# or they don't work on all architectures +PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2" +PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF" +PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON -DMYSQL_LIB:STRING=mysqlclient_r,-DENABLE_DATA_MYSQL=OFF,mariadb" +PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc" +PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF" +PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF" +PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF" + +# Make a package for each library +PACKAGES = "${PN}-dbg ${POCO_PACKAGES}" +python __anonymous () { + packages = [] + testrunners = [] + components = d.getVar("PACKAGECONFIG").split() + components.append("Foundation") + for lib in components: + pkg = ("poco-%s" % lib.lower()).replace("_","") + packages.append(pkg) + if not d.getVar("FILES_%s" % pkg): + d.setVar("FILES_%s" % pkg, "${libdir}/libPoco%s.so.*" % lib) + testrunners.append("%s" % lib) + + d.setVar("POCO_PACKAGES", " ".join(packages)) + d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners)) +} + +# "poco" is a metapackage which pulls in all Poco components +PACKAGES += "${PN}" +RRECOMMENDS_${PN} += "${POCO_PACKAGES}" +RRECOMMENDS_${PN}_class-native = "" +ALLOW_EMPTY_${PN} = "1" + +# -dev last to pick up the remaining stuff +PACKAGES += "${PN}-dev ${PN}-staticdev" +FILES_${PN}-dev = "${includedir} ${libdir}/libPoco*.so ${libdir}/cmake" +FILES_${PN}-staticdev = "${libdir}/libPoco*.a" + +# ptest support +FILES_${PN}-dbg += "${PTEST_PATH}/bin/.debug" + +# cppunit is only built if tests are enabled +PACKAGES += "${PN}-cppunit" +FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*" +ALLOW_EMPTY_${PN}-cppunit = "1" + +RDEPENDS_${PN}-ptest += "${PN}-cppunit" + +do_install_ptest () { + cp -rf ${B}/bin/ ${D}${PTEST_PATH} + cp -f ${B}/lib/libCppUnit.so* ${D}${libdir} + cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/ + find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \; + echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners" +} diff --git a/meta-oe/recipes-support/poppler/poppler-data_0.4.6.bb b/meta-oe/recipes-support/poppler/poppler-data_0.4.6.bb deleted file mode 100644 index 014ba7cdda3..00000000000 --- a/meta-oe/recipes-support/poppler/poppler-data_0.4.6.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base" -LICENSE = "Adobe" -LIC_FILES_CHKSUM = "file://COPYING;md5=4870b98343f0bbb25fa43b9d2ba59448 \ - file://COPYING.adobe;md5=63c6a8a9df204c00461fa5f163d8a663 \ - file://COPYING.gpl2;md5=751419260aa954499f7abaabaa882bbe \ -" - -inherit allarch - -SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz" -SRC_URI[md5sum] = "a8a7ca808827dd674faba6e4fc73b471" -SRC_URI[sha256sum] = "f306901dfa5bda90cd6663d4eedb1c773c3c709de78018c79f1282b2c8f90afa" - -do_compile() { -} - -do_install() { - oe_runmake install DESTDIR=${D} -} - -FILES_${PN} += "${datadir}" diff --git a/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb b/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb new file mode 100644 index 00000000000..e530a48bd1f --- /dev/null +++ b/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb @@ -0,0 +1,36 @@ +SUMMARY = "Encoding files for Poppler" +DESCRIPTION = "Encoding files for use with poppler that enable poppler to \ + correctly render CJK and Cyrrilic." +LICENSE = "BSD & GPLv2 & GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4870b98343f0bbb25fa43b9d2ba59448 \ + file://COPYING.adobe;md5=63c6a8a9df204c00461fa5f163d8a663 \ + file://COPYING.gpl2;md5=751419260aa954499f7abaabaa882bbe \ +" + +inherit allarch + +INHIBIT_DEFAULT_DEPS = "1" + +CMAP_RESOURCES_BASE = "https://github.com/adobe-type-tools/cmap-resources/raw/0561ebca035813ed04c3485bca636a0aa7abdc1d/cmapresources_identity-0/CMap" + +SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz \ + ${CMAP_RESOURCES_BASE}/Identity-H;name=idh \ + ${CMAP_RESOURCES_BASE}/Identity-V;name=idv" + +SRC_URI[md5sum] = "636a8f2b9f6df9e7ced8ec0946961eaf" +SRC_URI[sha256sum] = "e752b0d88a7aba54574152143e7bf76436a7ef51977c55d6bd9a48dccde3a7de" +SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc" +SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95" +SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf" +SRC_URI[idv.sha256sum] = "89a85daf7031e93c883e76b9168a226dfd585bf5506e9e1956772163f15cb082" + +do_compile() { +} + +do_install() { + oe_runmake install DESTDIR=${D} prefix=${prefix} datadir=${datadir} + install -d ${D}${datadir}/poppler/cMap + install -m644 ${WORKDIR}/Identity-* ${D}${datadir}/poppler/cMap/ +} + +FILES_${PN} += "${datadir}" diff --git a/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch b/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch new file mode 100644 index 00000000000..4e80d240fa2 --- /dev/null +++ b/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch @@ -0,0 +1,91 @@ +From 91b6275f0e91c25beb040b4ef9484053ae305d86 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 26 May 2015 12:45:47 +0200 +Subject: [PATCH] add manadatory options to find qt4/qt5 moc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andreas Müller +--- + configure.ac | 55 ++++++++----------------------------------------------- + 1 file changed, 8 insertions(+), 47 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c4cfc2c..8e961c7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -712,25 +712,10 @@ AC_SUBST(POPPLER_QT4_LIBS) + AC_SUBST(POPPLER_QT4_TEST_LIBS) + + if test x$enable_poppler_qt4 = xyes; then +- AC_CHECK_TOOL(MOCQT4, moc) +- AC_MSG_CHECKING([for Qt4 moc]) +- mocversion=`$MOCQT4 -v 2>&1` +- mocversiongrep=`echo $mocversion | grep "Qt 4"` +- if test x"$mocversiongrep" != x"$mocversion"; then +- AC_MSG_RESULT([no]) +- # moc was not the qt4 one, try with moc-qt4 +- AC_CHECK_TOOL(MOCQT42, moc-qt4) +- AC_MSG_CHECKING([for Qt4 moc-qt4]) +- mocversion=`$MOCQT42 -v 2>&1` +- mocversiongrep=`echo $mocversion | grep "Qt 4"` +- if test x"$mocversiongrep" != x"$mocversion"; then +- # no valid moc found +- enable_poppler_qt4=no; +- MOCQT4="not found" +- else +- MOCQT4=$MOCQT42 +- fi +- fi ++ AC_ARG_WITH([moc-qt4], ++ AS_HELP_STRING([--with-moc-qt4], [Set location of qt4 moc]), ++ [MOCQT4=$withval] ++ ) + AC_SUBST(MOCQT4) + AC_MSG_RESULT([$MOCQT4]) + fi +@@ -769,34 +754,10 @@ AC_SUBST(POPPLER_QT5_LIBS) + AC_SUBST(POPPLER_QT5_TEST_LIBS) + + if test x$enable_poppler_qt5 = xyes; then +- AC_CHECK_TOOL(MOCQT5, moc) +- AC_MSG_CHECKING([for Qt5 moc]) +- mocversion=`$MOCQT5 -v 2>&1` +- mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"` +- if test x"$mocversiongrep" != x"$mocversion"; then +- AC_MSG_RESULT([no]) +- # moc was not the qt5 one, try with moc-qt5 +- AC_CHECK_TOOL(MOCQT52, moc-qt5) +- AC_MSG_CHECKING([for Qt5 moc-qt5]) +- mocversion=`$MOCQT52 -v 2>&1` +- mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"` +- if test x"$mocversiongrep" != x"$mocversion"; then +- AC_CHECK_TOOL(QTCHOOSER, qtchooser) +- AC_MSG_CHECKING([for qtchooser]) +- qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2` +- mocversion=`$qt5tooldir/moc -v 2>&1` +- mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"` +- if test x"$mocversiongrep" != x"$mocversion"; then +- # no valid moc found +- enable_poppler_qt5=no; +- MOCQT5="not found" +- else +- MOCQT5=$qt5tooldir/moc +- fi +- else +- MOCQT5=$MOCQT52 +- fi +- fi ++ AC_ARG_WITH([moc-qt5], ++ AS_HELP_STRING([--with-moc-qt5], [Set location of qt5 moc]), ++ [MOCQT5=$withval] ++ ) + AC_SUBST(MOCQT5) + AC_MSG_RESULT([$MOCQT5]) + fi +-- +2.5.5 + diff --git a/meta-oe/recipes-support/poppler/poppler/0002-fix-gcc-6-math-ambiguous-errors.patch b/meta-oe/recipes-support/poppler/poppler/0002-fix-gcc-6-math-ambiguous-errors.patch new file mode 100644 index 00000000000..406009f4fa1 --- /dev/null +++ b/meta-oe/recipes-support/poppler/poppler/0002-fix-gcc-6-math-ambiguous-errors.patch @@ -0,0 +1,11 @@ +--- poppler-0.45.0/poppler/CairoOutputDev.cc.orig 2016-06-17 14:23:35.399083929 -0400 ++++ poppler-0.45.0/poppler/CairoOutputDev.cc 2016-06-17 14:36:53.351097825 -0400 +@@ -42,7 +42,7 @@ + #endif + + #include +-#include ++#include + #include + #include + diff --git a/meta-oe/recipes-support/poppler/poppler_0.26.5.bb b/meta-oe/recipes-support/poppler/poppler_0.26.5.bb deleted file mode 100644 index d11963961cb..00000000000 --- a/meta-oe/recipes-support/poppler/poppler_0.26.5.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SRC_URI = " \ - http://poppler.freedesktop.org/${BP}.tar.xz \ -" -SRC_URI[md5sum] = "786c943eee550e3a977c181e7778b1c8" -SRC_URI[sha256sum] = "de7de5fa337431e5d1f372e8577b3707322f1dbc1dc28a70f2927476f134d1ee" - -DEPENDS = "fontconfig zlib cairo lcms" - -inherit autotools pkgconfig gtk-doc - -PACKAGECONFIG ??= "jpeg png tiff" -PACKAGECONFIG[jpeg] = "--enable-libjpeg,--disable-libjpeg,jpeg" -PACKAGECONFIG[png] = "--enable-libpng,--disable-libpng,libpng" -PACKAGECONFIG[tiff] = "--enable-libtiff,--disable-libtiff,tiff" - -EXTRA_OECONF = "\ - --enable-xpdf-headers \ - --disable-gtk-test \ - --disable-poppler-qt4 \ - --enable-zlib \ -" - -# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points -def get_poppler_fpu_setting(bb, d): - if d.getVar('TARGET_FPU', 1) in [ 'soft' ]: - return "--enable-fixedpoint" - return "" - -EXTRA_OECONF += "${@get_poppler_fpu_setting(bb, d)}" - -PACKAGES =+ "libpoppler libpoppler-glib" -FILES_libpoppler = "${libdir}/libpoppler.so.*" -FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*" - -RDEPENDS_${PN} = "poppler-data" diff --git a/meta-oe/recipes-support/poppler/poppler_0.57.0.bb b/meta-oe/recipes-support/poppler/poppler_0.57.0.bb new file mode 100644 index 00000000000..63b77aafe8a --- /dev/null +++ b/meta-oe/recipes-support/poppler/poppler_0.57.0.bb @@ -0,0 +1,55 @@ +SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = " \ + http://poppler.freedesktop.org/${BP}.tar.xz \ + file://0001-add-manadatory-options-to-find-qt4-qt5-moc.patch \ + file://0002-fix-gcc-6-math-ambiguous-errors.patch \ +" +SRC_URI[md5sum] = "bc5a191741604552c90d484103229374" +SRC_URI[sha256sum] = "0ea37de71b7db78212ebc79df59f99b66409a29c2eac4d882dae9f2397fe44d8" + +DEPENDS = "fontconfig zlib cairo lcms" + +inherit autotools pkgconfig gtk-doc gobject-introspection + +PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}" +PACKAGECONFIG[jpeg] = "--enable-dctdecoder=libjpeg,--enable-dctdecoder=none,jpeg" +PACKAGECONFIG[png] = "--enable-libpng,--disable-libpng,libpng" +PACKAGECONFIG[tiff] = "--enable-libtiff,--disable-libtiff,tiff" +PACKAGECONFIG[curl] = "--enable-libcurl,--disable-libcurl,curl" +PACKAGECONFIG[openjpeg] = "--enable-libopenjpeg=openjpeg2,--disable-libopenjpeg,openjpeg" +PACKAGECONFIG[qt5] = "--enable-poppler-qt5 --with-moc-qt5=${STAGING_BINDIR_NATIVE}/qt5/moc,--disable-poppler-qt5,qtbase qttools-native" +PACKAGECONFIG[qt4e] = "--enable-poppler-qt4 --with-moc-qt4=${STAGING_BINDIR_NATIVE}/moc4,--disable-poppler-qt4,qt4-embedded" +PACKAGECONFIG[nss] = "--enable-libnss,--disable-libnss,nss" + +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" + +EXTRA_OECONF = "\ + --enable-xpdf-headers \ + --disable-gtk-test \ + --enable-zlib \ +" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/poppler/.libs" +} + +# Adjust library names when building for QT4e +QT4E_PATCHES = "${@bb.utils.contains('PACKAGECONFIG', 'qt4e', 'file://fix-qt4e-library-dependencies.patch', '', d)}" +SRC_URI_append = "${QT4E_PATCHES}" + +# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points +def get_poppler_fpu_setting(bb, d): + if d.getVar('TARGET_FPU') in [ 'soft' ]: + return "--enable-fixedpoint" + return "" + +EXTRA_OECONF += "${@get_poppler_fpu_setting(bb, d)}" + +PACKAGES =+ "libpoppler libpoppler-glib" +FILES_libpoppler = "${libdir}/libpoppler.so.*" +FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*" + +RDEPENDS_libpoppler = "poppler-data" diff --git a/meta-oe/recipes-support/portaudio/files/ldflags.patch b/meta-oe/recipes-support/portaudio/files/ldflags.patch new file mode 100644 index 00000000000..aca93a51f29 --- /dev/null +++ b/meta-oe/recipes-support/portaudio/files/ldflags.patch @@ -0,0 +1,51 @@ +Upstream forgot to pass LDFLAGS to everything apart from the main library. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/Makefile.in b/Makefile.in +index 5e1a764..61ecdd1 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -171,20 +171,20 @@ lib/$(PALIB): lib-stamp $(LTOBJS) $(MAKEFILE) $(PAINC) + @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) $(PA_LDFLAGS) -o lib/$(PALIB) $(LTOBJS) $(DLL_LIBS) + + $(ALL_TESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) test/%.c +- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS) +- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS) ++ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS) ++ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS) + + $(EXAMPLES): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) examples/%.c +- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS) +- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS) ++ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS) ++ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS) + + $(SELFTESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) qa/%.c +- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS) +- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS) ++ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS) ++ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS) + + bin/paloopback: lib/$(PALIB) $(MAKEFILE) $(PAINC) $(LOOPBACK_OBJS) +- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS) +- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS) ++ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS) ++ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS) + + install: lib/$(PALIB) portaudio-2.0.pc + $(INSTALL) -d $(DESTDIR)$(libdir) +@@ -224,10 +224,10 @@ distclean: clean + $(CC) -c $(CFLAGS) $< -o $@ + + %.lo: %.c $(MAKEFILE) $(PAINC) +- $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@ ++ $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $(LDFLAGS) $< -o $@ + + %.lo: %.cpp $(MAKEFILE) $(PAINC) +- $(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $< -o $@ ++ $(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $(LDFLAGS) $< -o $@ + + %.o: %.cpp $(MAKEFILE) $(PAINC) + $(CXX) -c $(CXXFLAGS) $< -o $@ diff --git a/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb b/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb new file mode 100644 index 00000000000..489f8ad9e21 --- /dev/null +++ b/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb @@ -0,0 +1,32 @@ +SUMMARY = "A portable audio library" +SECTION = "libs/multimedia" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df" + +PV = "v190600" + +SRC_URI = "http://www.portaudio.com/archives/pa_stable_v190600_20161030.tgz \ + file://ldflags.patch" +SRC_URI[md5sum] = "4df8224e047529ca9ad42f0521bf81a8" +SRC_URI[sha256sum] = "f5a21d7dcd6ee84397446fa1fa1a0675bb2e8a4a6dceb4305a8404698d8d1513" + +S = "${WORKDIR}/portaudio" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "alsa jack" +PACKAGECONFIG[alsa] = "--with-alsa, --without-alsa, alsa-lib," +PACKAGECONFIG[jack] = "--with-jack, --without-jack, jack," + +EXTRA_OECONF = "--without-oss --without-asihpi" + +do_install_append() { + mkdir --parents ${D}${bindir} + for b in ${B}/bin/pa*; do + # Bit nasty, should always work + ${B}/*-libtool --mode install install $b ${D}${bindir} + done +} + +PACKAGES += "portaudio-examples" +FILES_portaudio-examples = "${bindir}" diff --git a/meta-oe/recipes-support/portaudio/portaudio-v19_svn.bb b/meta-oe/recipes-support/portaudio/portaudio-v19_svn.bb deleted file mode 100644 index c8d7378eb77..00000000000 --- a/meta-oe/recipes-support/portaudio/portaudio-v19_svn.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "A portable audio library" -SECTION = "libs/multimedia" -LICENSE = "PortAudio" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df" - -PV = "v19+svnr${SRCPV}" - -SRCREV = "1387" -SRC_URI = "svn://subversion.assembla.com/svn/portaudio/portaudio;module=trunk;protocol=http" -S = "${WORKDIR}/trunk" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= "alsa jack" -PACKAGECONFIG[alsa] = "--with-alsa, --without-alsa, alsa-lib," -PACKAGECONFIG[jack] = "--with-jack, --without-jack, jack," - -EXTRA_OECONF = "--without-oss" - -TESTS = " pa_devs patest1 patest_hang patest_many patest_prime patest_sine patest_stop patest_write_sine \ -pa_fuzz patest_buffer patest_in_overflow patest_maxsines patest_read_record patest_sine8 patest_sync \ -pa_minlat patest_callbackstop patest_latency patest_multi_sine patest_record patest_sine_formats patest_toomanysines \ -paqa_devs patest_clip patest_leftright patest_out_underflow patest_ringmix patest_sine_time patest_underflow \ -paqa_errs patest_dither patest_longsine patest_pink patest_saw patest_start_stop patest_wire" - -# DEFINES = PA_USE_OSS=1 HAVE_LIBPTHREAD=1 -# DEFINES += PA_LITTLE_ENDIAN - -# INCLUDEPATH = ../pa_common - -PACKAGES += "portaudio-examples" -FILES_portaudio-examples = "${bindir}" diff --git a/meta-oe/recipes-support/postgresql/files/0002-Predict-integer-overflow-to-avoid-buffer-overruns.patch b/meta-oe/recipes-support/postgresql/files/0002-Predict-integer-overflow-to-avoid-buffer-overruns.patch deleted file mode 100644 index c8b4c80aa3b..00000000000 --- a/meta-oe/recipes-support/postgresql/files/0002-Predict-integer-overflow-to-avoid-buffer-overruns.patch +++ /dev/null @@ -1,605 +0,0 @@ -From 12bbce15d93d7692ddff1405aa04b67f8a327f57 Mon Sep 17 00:00:00 2001 -From: Noah Misch -Date: Mon, 17 Feb 2014 09:33:31 -0500 -Subject: [PATCH] Predict integer overflow to avoid buffer overruns. - -commit 12bbce15d93d7692ddff1405aa04b67f8a327f57 REL9_2_STABLE - -Several functions, mostly type input functions, calculated an allocation -size such that the calculation wrapped to a small positive value when -arguments implied a sufficiently-large requirement. Writes past the end -of the inadvertent small allocation followed shortly thereafter. -Coverity identified the path_in() vulnerability; code inspection led to -the rest. In passing, add check_stack_depth() to prevent stack overflow -in related functions. - -Back-patch to 8.4 (all supported versions). The non-comment hstore -changes touch code that did not exist in 8.4, so that part stops at 9.0. - -Noah Misch and Heikki Linnakangas, reviewed by Tom Lane. - -Security: CVE-2014-0064 - -Upstream-Status: Backport - -Signed-off-by: Kai Kang ---- - contrib/hstore/hstore.h | 15 ++++++++++++--- - contrib/hstore/hstore_io.c | 21 +++++++++++++++++++++ - contrib/hstore/hstore_op.c | 15 +++++++++++++++ - contrib/intarray/_int.h | 2 ++ - contrib/intarray/_int_bool.c | 9 +++++++++ - contrib/ltree/ltree.h | 3 +++ - contrib/ltree/ltree_io.c | 11 +++++++++++ - contrib/ltree/ltxtquery_io.c | 13 ++++++++++++- - src/backend/utils/adt/geo_ops.c | 30 ++++++++++++++++++++++++++++-- - src/backend/utils/adt/tsquery.c | 7 ++++++- - src/backend/utils/adt/tsquery_util.c | 5 +++++ - src/backend/utils/adt/txid.c | 15 +++++---------- - src/backend/utils/adt/varbit.c | 32 ++++++++++++++++++++++++++++++-- - src/include/tsearch/ts_type.h | 3 +++ - src/include/utils/varbit.h | 7 +++++++ - 15 files changed, 169 insertions(+), 19 deletions(-) - -diff --git a/contrib/hstore/hstore.h b/contrib/hstore/hstore.h -index 8906397..4e55f6e 100644 ---- a/contrib/hstore/hstore.h -+++ b/contrib/hstore/hstore.h -@@ -49,9 +49,12 @@ typedef struct - } HStore; - - /* -- * it's not possible to get more than 2^28 items into an hstore, -- * so we reserve the top few bits of the size field. See hstore_compat.c -- * for one reason why. Some bits are left for future use here. -+ * It's not possible to get more than 2^28 items into an hstore, so we reserve -+ * the top few bits of the size field. See hstore_compat.c for one reason -+ * why. Some bits are left for future use here. MaxAllocSize makes the -+ * practical count limit slightly more than 2^28 / 3, or INT_MAX / 24, the -+ * limit for an hstore full of 4-byte keys and null values. Therefore, we -+ * don't explicitly check the format-imposed limit. - */ - #define HS_FLAG_NEWVERSION 0x80000000 - -@@ -59,6 +62,12 @@ typedef struct - #define HS_SETCOUNT(hsp_,c_) ((hsp_)->size_ = (c_) | HS_FLAG_NEWVERSION) - - -+/* -+ * "x" comes from an existing HS_COUNT() (as discussed, <= INT_MAX/24) or a -+ * Pairs array length (due to MaxAllocSize, <= INT_MAX/40). "lenstr" is no -+ * more than INT_MAX, that extreme case arising in hstore_from_arrays(). -+ * Therefore, this calculation is limited to about INT_MAX / 5 + INT_MAX. -+ */ - #define HSHRDSIZE (sizeof(HStore)) - #define CALCDATASIZE(x, lenstr) ( (x) * 2 * sizeof(HEntry) + HSHRDSIZE + (lenstr) ) - -diff --git a/contrib/hstore/hstore_io.c b/contrib/hstore/hstore_io.c -index dde6c4b..5bcdc95 100644 ---- a/contrib/hstore/hstore_io.c -+++ b/contrib/hstore/hstore_io.c -@@ -9,6 +9,7 @@ - #include "funcapi.h" - #include "libpq/pqformat.h" - #include "utils/lsyscache.h" -+#include "utils/memutils.h" - #include "utils/typcache.h" - - #include "hstore.h" -@@ -437,6 +438,11 @@ hstore_recv(PG_FUNCTION_ARGS) - PG_RETURN_POINTER(out); - } - -+ if (pcount < 0 || pcount > MaxAllocSize / sizeof(Pairs)) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("number of pairs (%d) exceeds the maximum allowed (%d)", -+ pcount, (int) (MaxAllocSize / sizeof(Pairs))))); - pairs = palloc(pcount * sizeof(Pairs)); - - for (i = 0; i < pcount; ++i) -@@ -552,6 +558,13 @@ hstore_from_arrays(PG_FUNCTION_ARGS) - TEXTOID, -1, false, 'i', - &key_datums, &key_nulls, &key_count); - -+ /* see discussion in hstoreArrayToPairs() */ -+ if (key_count > MaxAllocSize / sizeof(Pairs)) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("number of pairs (%d) exceeds the maximum allowed (%d)", -+ key_count, (int) (MaxAllocSize / sizeof(Pairs))))); -+ - /* value_array might be NULL */ - - if (PG_ARGISNULL(1)) -@@ -674,6 +687,13 @@ hstore_from_array(PG_FUNCTION_ARGS) - - count = in_count / 2; - -+ /* see discussion in hstoreArrayToPairs() */ -+ if (count > MaxAllocSize / sizeof(Pairs)) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("number of pairs (%d) exceeds the maximum allowed (%d)", -+ count, (int) (MaxAllocSize / sizeof(Pairs))))); -+ - pairs = palloc(count * sizeof(Pairs)); - - for (i = 0; i < count; ++i) -@@ -805,6 +825,7 @@ hstore_from_record(PG_FUNCTION_ARGS) - my_extra->ncolumns = ncolumns; - } - -+ Assert(ncolumns <= MaxTupleAttributeNumber); /* thus, no overflow */ - pairs = palloc(ncolumns * sizeof(Pairs)); - - if (rec) -diff --git a/contrib/hstore/hstore_op.c b/contrib/hstore/hstore_op.c -index fee2c3c..8de175a 100644 ---- a/contrib/hstore/hstore_op.c -+++ b/contrib/hstore/hstore_op.c -@@ -7,6 +7,7 @@ - #include "catalog/pg_type.h" - #include "funcapi.h" - #include "utils/builtins.h" -+#include "utils/memutils.h" - - #include "hstore.h" - -@@ -89,6 +90,19 @@ hstoreArrayToPairs(ArrayType *a, int *npairs) - return NULL; - } - -+ /* -+ * A text array uses at least eight bytes per element, so any overflow in -+ * "key_count * sizeof(Pairs)" is small enough for palloc() to catch. -+ * However, credible improvements to the array format could invalidate -+ * that assumption. Therefore, use an explicit check rather than relying -+ * on palloc() to complain. -+ */ -+ if (key_count > MaxAllocSize / sizeof(Pairs)) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("number of pairs (%d) exceeds the maximum allowed (%d)", -+ key_count, (int) (MaxAllocSize / sizeof(Pairs))))); -+ - key_pairs = palloc(sizeof(Pairs) * key_count); - - for (i = 0, j = 0; i < key_count; i++) -@@ -647,6 +661,7 @@ hstore_slice_to_hstore(PG_FUNCTION_ARGS) - PG_RETURN_POINTER(out); - } - -+ /* hstoreArrayToPairs() checked overflow */ - out_pairs = palloc(sizeof(Pairs) * nkeys); - bufsiz = 0; - -diff --git a/contrib/intarray/_int.h b/contrib/intarray/_int.h -index 11c0698..755cd9e 100644 ---- a/contrib/intarray/_int.h -+++ b/contrib/intarray/_int.h -@@ -5,6 +5,7 @@ - #define ___INT_H__ - - #include "utils/array.h" -+#include "utils/memutils.h" - - /* number ranges for compression */ - #define MAXNUMRANGE 100 -@@ -137,6 +138,7 @@ typedef struct QUERYTYPE - - #define HDRSIZEQT offsetof(QUERYTYPE, items) - #define COMPUTESIZE(size) ( HDRSIZEQT + (size) * sizeof(ITEM) ) -+#define QUERYTYPEMAXITEMS ((MaxAllocSize - HDRSIZEQT) / sizeof(ITEM)) - #define GETQUERY(x) ( (x)->items ) - - /* "type" codes for ITEM */ -diff --git a/contrib/intarray/_int_bool.c b/contrib/intarray/_int_bool.c -index 4e63f6d..62294d1 100644 ---- a/contrib/intarray/_int_bool.c -+++ b/contrib/intarray/_int_bool.c -@@ -451,6 +451,9 @@ boolop(PG_FUNCTION_ARGS) - static void - findoprnd(ITEM *ptr, int4 *pos) - { -+ /* since this function recurses, it could be driven to stack overflow. */ -+ check_stack_depth(); -+ - #ifdef BS_DEBUG - elog(DEBUG3, (ptr[*pos].type == OPR) ? - "%d %c" : "%d %d", *pos, ptr[*pos].val); -@@ -511,7 +514,13 @@ bqarr_in(PG_FUNCTION_ARGS) - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("empty query"))); - -+ if (state.num > QUERYTYPEMAXITEMS) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("number of query items (%d) exceeds the maximum allowed (%d)", -+ state.num, (int) QUERYTYPEMAXITEMS))); - commonlen = COMPUTESIZE(state.num); -+ - query = (QUERYTYPE *) palloc(commonlen); - SET_VARSIZE(query, commonlen); - query->size = state.num; -diff --git a/contrib/ltree/ltree.h b/contrib/ltree/ltree.h -index aec4458..49e9907 100644 ---- a/contrib/ltree/ltree.h -+++ b/contrib/ltree/ltree.h -@@ -5,6 +5,7 @@ - - #include "fmgr.h" - #include "tsearch/ts_locale.h" -+#include "utils/memutils.h" - - typedef struct - { -@@ -111,6 +112,8 @@ typedef struct - - #define HDRSIZEQT MAXALIGN(VARHDRSZ + sizeof(int4)) - #define COMPUTESIZE(size,lenofoperand) ( HDRSIZEQT + (size) * sizeof(ITEM) + (lenofoperand) ) -+#define LTXTQUERY_TOO_BIG(size,lenofoperand) \ -+ ((size) > (MaxAllocSize - HDRSIZEQT - (lenofoperand)) / sizeof(ITEM)) - #define GETQUERY(x) (ITEM*)( (char*)(x)+HDRSIZEQT ) - #define GETOPERAND(x) ( (char*)GETQUERY(x) + ((ltxtquery*)x)->size * sizeof(ITEM) ) - -diff --git a/contrib/ltree/ltree_io.c b/contrib/ltree/ltree_io.c -index 3e88b81..d64debb 100644 ---- a/contrib/ltree/ltree_io.c -+++ b/contrib/ltree/ltree_io.c -@@ -8,6 +8,7 @@ - #include - - #include "ltree.h" -+#include "utils/memutils.h" - #include "crc32.h" - - PG_FUNCTION_INFO_V1(ltree_in); -@@ -64,6 +65,11 @@ ltree_in(PG_FUNCTION_ARGS) - ptr += charlen; - } - -+ if (num + 1 > MaxAllocSize / sizeof(nodeitem)) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("number of levels (%d) exceeds the maximum allowed (%d)", -+ num + 1, (int) (MaxAllocSize / sizeof(nodeitem))))); - list = lptr = (nodeitem *) palloc(sizeof(nodeitem) * (num + 1)); - ptr = buf; - while (*ptr) -@@ -228,6 +234,11 @@ lquery_in(PG_FUNCTION_ARGS) - } - - num++; -+ if (num > MaxAllocSize / ITEMSIZE) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("number of levels (%d) exceeds the maximum allowed (%d)", -+ num, (int) (MaxAllocSize / ITEMSIZE)))); - curqlevel = tmpql = (lquery_level *) palloc0(ITEMSIZE * num); - ptr = buf; - while (*ptr) -diff --git a/contrib/ltree/ltxtquery_io.c b/contrib/ltree/ltxtquery_io.c -index 826f4e1..13ea58d 100644 ---- a/contrib/ltree/ltxtquery_io.c -+++ b/contrib/ltree/ltxtquery_io.c -@@ -9,6 +9,7 @@ - - #include "crc32.h" - #include "ltree.h" -+#include "miscadmin.h" - - PG_FUNCTION_INFO_V1(ltxtq_in); - Datum ltxtq_in(PG_FUNCTION_ARGS); -@@ -213,6 +214,9 @@ makepol(QPRS_STATE *state) - int4 lenstack = 0; - uint16 flag = 0; - -+ /* since this function recurses, it could be driven to stack overflow */ -+ check_stack_depth(); -+ - while ((type = gettoken_query(state, &val, &lenval, &strval, &flag)) != END) - { - switch (type) -@@ -277,6 +281,9 @@ makepol(QPRS_STATE *state) - static void - findoprnd(ITEM *ptr, int4 *pos) - { -+ /* since this function recurses, it could be driven to stack overflow. */ -+ check_stack_depth(); -+ - if (ptr[*pos].type == VAL || ptr[*pos].type == VALTRUE) - { - ptr[*pos].left = 0; -@@ -341,8 +348,12 @@ queryin(char *buf) - errmsg("syntax error"), - errdetail("Empty query."))); - -- /* make finish struct */ -+ if (LTXTQUERY_TOO_BIG(state.num, state.sumlen)) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("ltxtquery is too large"))); - commonlen = COMPUTESIZE(state.num, state.sumlen); -+ - query = (ltxtquery *) palloc(commonlen); - SET_VARSIZE(query, commonlen); - query->size = state.num; -diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c -index ac7b4b8..7ebcaaa 100644 ---- a/src/backend/utils/adt/geo_ops.c -+++ b/src/backend/utils/adt/geo_ops.c -@@ -1403,6 +1403,7 @@ path_in(PG_FUNCTION_ARGS) - char *s; - int npts; - int size; -+ int base_size; - int depth = 0; - - if ((npts = pair_count(str, ',')) <= 0) -@@ -1421,7 +1422,15 @@ path_in(PG_FUNCTION_ARGS) - depth++; - } - -- size = offsetof(PATH, p[0]) +sizeof(path->p[0]) * npts; -+ base_size = sizeof(path->p[0]) * npts; -+ size = offsetof(PATH, p[0]) + base_size; -+ -+ /* Check for integer overflow */ -+ if (base_size / npts != sizeof(path->p[0]) || size <= base_size) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("too many points requested"))); -+ - path = (PATH *) palloc(size); - - SET_VARSIZE(path, size); -@@ -3465,6 +3474,7 @@ poly_in(PG_FUNCTION_ARGS) - POLYGON *poly; - int npts; - int size; -+ int base_size; - int isopen; - char *s; - -@@ -3473,7 +3483,15 @@ poly_in(PG_FUNCTION_ARGS) - (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), - errmsg("invalid input syntax for type polygon: \"%s\"", str))); - -- size = offsetof(POLYGON, p[0]) +sizeof(poly->p[0]) * npts; -+ base_size = sizeof(poly->p[0]) * npts; -+ size = offsetof(POLYGON, p[0]) + base_size; -+ -+ /* Check for integer overflow */ -+ if (base_size / npts != sizeof(poly->p[0]) || size <= base_size) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("too many points requested"))); -+ - poly = (POLYGON *) palloc0(size); /* zero any holes */ - - SET_VARSIZE(poly, size); -@@ -4379,6 +4397,10 @@ path_poly(PG_FUNCTION_ARGS) - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("open path cannot be converted to polygon"))); - -+ /* -+ * Never overflows: the old size fit in MaxAllocSize, and the new size is -+ * just a small constant larger. -+ */ - size = offsetof(POLYGON, p[0]) +sizeof(poly->p[0]) * path->npts; - poly = (POLYGON *) palloc(size); - -@@ -4484,6 +4506,10 @@ poly_path(PG_FUNCTION_ARGS) - int size; - int i; - -+ /* -+ * Never overflows: the old size fit in MaxAllocSize, and the new size is -+ * smaller by a small constant. -+ */ - size = offsetof(PATH, p[0]) +sizeof(path->p[0]) * poly->npts; - path = (PATH *) palloc(size); - -diff --git a/src/backend/utils/adt/tsquery.c b/src/backend/utils/adt/tsquery.c -index 6e1f8cf..1322b5e 100644 ---- a/src/backend/utils/adt/tsquery.c -+++ b/src/backend/utils/adt/tsquery.c -@@ -515,8 +515,13 @@ parse_tsquery(char *buf, - return query; - } - -- /* Pack the QueryItems in the final TSQuery struct to return to caller */ -+ if (TSQUERY_TOO_BIG(list_length(state.polstr), state.sumlen)) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("tsquery is too large"))); - commonlen = COMPUTESIZE(list_length(state.polstr), state.sumlen); -+ -+ /* Pack the QueryItems in the final TSQuery struct to return to caller */ - query = (TSQuery) palloc0(commonlen); - SET_VARSIZE(query, commonlen); - query->size = list_length(state.polstr); -diff --git a/src/backend/utils/adt/tsquery_util.c b/src/backend/utils/adt/tsquery_util.c -index 0724d33..9003702 100644 ---- a/src/backend/utils/adt/tsquery_util.c -+++ b/src/backend/utils/adt/tsquery_util.c -@@ -333,6 +333,11 @@ QTN2QT(QTNode *in) - QTN2QTState state; - - cntsize(in, &sumlen, &nnode); -+ -+ if (TSQUERY_TOO_BIG(nnode, sumlen)) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("tsquery is too large"))); - len = COMPUTESIZE(nnode, sumlen); - - out = (TSQuery) palloc0(len); -diff --git a/src/backend/utils/adt/txid.c b/src/backend/utils/adt/txid.c -index 08a8c89..c71daaf 100644 ---- a/src/backend/utils/adt/txid.c -+++ b/src/backend/utils/adt/txid.c -@@ -27,6 +27,7 @@ - #include "miscadmin.h" - #include "libpq/pqformat.h" - #include "utils/builtins.h" -+#include "utils/memutils.h" - #include "utils/snapmgr.h" - - -@@ -66,6 +67,8 @@ typedef struct - - #define TXID_SNAPSHOT_SIZE(nxip) \ - (offsetof(TxidSnapshot, xip) + sizeof(txid) * (nxip)) -+#define TXID_SNAPSHOT_MAX_NXIP \ -+ ((MaxAllocSize - offsetof(TxidSnapshot, xip)) / sizeof(txid)) - - /* - * Epoch values from xact.c -@@ -445,20 +448,12 @@ txid_snapshot_recv(PG_FUNCTION_ARGS) - txid last = 0; - int nxip; - int i; -- int avail; -- int expect; - txid xmin, - xmax; - -- /* -- * load nxip and check for nonsense. -- * -- * (nxip > avail) check is against int overflows in 'expect'. -- */ -+ /* load and validate nxip */ - nxip = pq_getmsgint(buf, 4); -- avail = buf->len - buf->cursor; -- expect = 8 + 8 + nxip * 8; -- if (nxip < 0 || nxip > avail || expect > avail) -+ if (nxip < 0 || nxip > TXID_SNAPSHOT_MAX_NXIP) - goto bad_format; - - xmin = pq_getmsgint64(buf); -diff --git a/src/backend/utils/adt/varbit.c b/src/backend/utils/adt/varbit.c -index 2bcf5b8..0deefda 100644 ---- a/src/backend/utils/adt/varbit.c -+++ b/src/backend/utils/adt/varbit.c -@@ -148,12 +148,22 @@ bit_in(PG_FUNCTION_ARGS) - sp = input_string; - } - -+ /* -+ * Determine bitlength from input string. MaxAllocSize ensures a regular -+ * input is small enough, but we must check hex input. -+ */ - slen = strlen(sp); -- /* Determine bitlength from input string */ - if (bit_not_hex) - bitlen = slen; - else -+ { -+ if (slen > VARBITMAXLEN / 4) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("bit string length exceeds the maximum allowed (%d)", -+ VARBITMAXLEN))); - bitlen = slen * 4; -+ } - - /* - * Sometimes atttypmod is not supplied. If it is supplied we need to make -@@ -450,12 +460,22 @@ varbit_in(PG_FUNCTION_ARGS) - sp = input_string; - } - -+ /* -+ * Determine bitlength from input string. MaxAllocSize ensures a regular -+ * input is small enough, but we must check hex input. -+ */ - slen = strlen(sp); -- /* Determine bitlength from input string */ - if (bit_not_hex) - bitlen = slen; - else -+ { -+ if (slen > VARBITMAXLEN / 4) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("bit string length exceeds the maximum allowed (%d)", -+ VARBITMAXLEN))); - bitlen = slen * 4; -+ } - - /* - * Sometimes atttypmod is not supplied. If it is supplied we need to make -@@ -535,6 +555,9 @@ varbit_in(PG_FUNCTION_ARGS) - /* - * varbit_out - - * Prints the string as bits to preserve length accurately -+ * -+ * XXX varbit_recv() and hex input to varbit_in() can load a value that this -+ * cannot emit. Consider using hex output for such values. - */ - Datum - varbit_out(PG_FUNCTION_ARGS) -@@ -944,6 +967,11 @@ bit_catenate(VarBit *arg1, VarBit *arg2) - bitlen1 = VARBITLEN(arg1); - bitlen2 = VARBITLEN(arg2); - -+ if (bitlen1 > VARBITMAXLEN - bitlen2) -+ ereport(ERROR, -+ (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), -+ errmsg("bit string length exceeds the maximum allowed (%d)", -+ VARBITMAXLEN))); - bytelen = VARBITTOTALLEN(bitlen1 + bitlen2); - - result = (VarBit *) palloc(bytelen); -diff --git a/src/include/tsearch/ts_type.h b/src/include/tsearch/ts_type.h -index 3adc336..9ee5610 100644 ---- a/src/include/tsearch/ts_type.h -+++ b/src/include/tsearch/ts_type.h -@@ -13,6 +13,7 @@ - #define _PG_TSTYPE_H_ - - #include "fmgr.h" -+#include "utils/memutils.h" - #include "utils/pg_crc.h" - - -@@ -244,6 +245,8 @@ typedef TSQueryData *TSQuery; - * QueryItems, and lenofoperand is the total length of all operands - */ - #define COMPUTESIZE(size, lenofoperand) ( HDRSIZETQ + (size) * sizeof(QueryItem) + (lenofoperand) ) -+#define TSQUERY_TOO_BIG(size, lenofoperand) \ -+ ((size) > (MaxAllocSize - HDRSIZETQ - (lenofoperand)) / sizeof(QueryItem)) - - /* Returns a pointer to the first QueryItem in a TSQuery */ - #define GETQUERY(x) ((QueryItem*)( (char*)(x)+HDRSIZETQ )) -diff --git a/src/include/utils/varbit.h b/src/include/utils/varbit.h -index 52dca8b..61531a8 100644 ---- a/src/include/utils/varbit.h -+++ b/src/include/utils/varbit.h -@@ -15,6 +15,8 @@ - #ifndef VARBIT_H - #define VARBIT_H - -+#include -+ - #include "fmgr.h" - - /* -@@ -53,6 +55,11 @@ typedef struct - /* Number of bytes needed to store a bit string of a given length */ - #define VARBITTOTALLEN(BITLEN) (((BITLEN) + BITS_PER_BYTE-1)/BITS_PER_BYTE + \ - VARHDRSZ + VARBITHDRSZ) -+/* -+ * Maximum number of bits. Several code sites assume no overflow from -+ * computing bitlen + X; VARBITTOTALLEN() has the largest such X. -+ */ -+#define VARBITMAXLEN (INT_MAX - BITS_PER_BYTE + 1) - /* pointer beyond the end of the bit string (like end() in STL containers) */ - #define VARBITEND(PTR) (((bits8 *) (PTR)) + VARSIZE(PTR)) - /* Mask that will cover exactly one byte, i.e. BITS_PER_BYTE bits */ --- -1.7.5.4 - diff --git a/meta-oe/recipes-support/postgresql/files/0003-Shore-up-ADMIN-OPTION-restrictions.patch b/meta-oe/recipes-support/postgresql/files/0003-Shore-up-ADMIN-OPTION-restrictions.patch deleted file mode 100644 index abbe142495e..00000000000 --- a/meta-oe/recipes-support/postgresql/files/0003-Shore-up-ADMIN-OPTION-restrictions.patch +++ /dev/null @@ -1,273 +0,0 @@ -From 15a8f97b9d16aaf659f58c981242b9da591cf24c Mon Sep 17 00:00:00 2001 -From: Noah Misch -Date: Mon, 17 Feb 2014 09:33:31 -0500 -Subject: [PATCH] Shore up ADMIN OPTION restrictions. - -commit 15a8f97b9d16aaf659f58c981242b9da591cf24c REL9_2_STABLE - -Granting a role without ADMIN OPTION is supposed to prevent the grantee -from adding or removing members from the granted role. Issuing SET ROLE -before the GRANT bypassed that, because the role itself had an implicit -right to add or remove members. Plug that hole by recognizing that -implicit right only when the session user matches the current role. -Additionally, do not recognize it during a security-restricted operation -or during execution of a SECURITY DEFINER function. The restriction on -SECURITY DEFINER is not security-critical. However, it seems best for a -user testing his own SECURITY DEFINER function to see the same behavior -others will see. Back-patch to 8.4 (all supported versions). - -The SQL standards do not conflate roles and users as PostgreSQL does; -only SQL roles have members, and only SQL users initiate sessions. An -application using PostgreSQL users and roles as SQL users and roles will -never attempt to grant membership in the role that is the session user, -so the implicit right to add or remove members will never arise. - -The security impact was mostly that a role member could revoke access -from others, contrary to the wishes of his own grantor. Unapproved role -member additions are less notable, because the member can still largely -achieve that by creating a view or a SECURITY DEFINER function. - -Reviewed by Andres Freund and Tom Lane. Reported, independently, by -Jonas Sundman and Noah Misch. - -Security: CVE-2014-0060 - - -Upstream-Status: Backport - -Signed-off-by: Kai Kang ---- - doc/src/sgml/ref/grant.sgml | 12 ++++--- - src/backend/commands/user.c | 11 ++++++- - src/backend/utils/adt/acl.c | 50 ++++++++++++++++++++++++------ - src/test/regress/expected/privileges.out | 36 +++++++++++++++++++++- - src/test/regress/sql/privileges.sql | 29 ++++++++++++++++- - 5 files changed, 120 insertions(+), 18 deletions(-) - -diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml -index fb81af4..2b5a843 100644 ---- a/doc/src/sgml/ref/grant.sgml -+++ b/doc/src/sgml/ref/grant.sgml -@@ -396,11 +396,13 @@ GRANT role_name [, ...] TO - If WITH ADMIN OPTION is specified, the member can - in turn grant membership in the role to others, and revoke membership -- in the role as well. Without the admin option, ordinary users cannot do -- that. However, -- database superusers can grant or revoke membership in any role to anyone. -- Roles having CREATEROLE privilege can grant or revoke -- membership in any role that is not a superuser. -+ in the role as well. Without the admin option, ordinary users cannot -+ do that. A role is not considered to hold WITH ADMIN -+ OPTION on itself, but it may grant or revoke membership in -+ itself from a database session where the session user matches the -+ role. Database superusers can grant or revoke membership in any role -+ to anyone. Roles having CREATEROLE privilege can grant -+ or revoke membership in any role that is not a superuser. - - - -diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c -index a22092c..39bf172 100644 ---- a/src/backend/commands/user.c -+++ b/src/backend/commands/user.c -@@ -1334,7 +1334,16 @@ AddRoleMems(const char *rolename, Oid roleid, - rolename))); - } - -- /* XXX not sure about this check */ -+ /* -+ * The role membership grantor of record has little significance at -+ * present. Nonetheless, inasmuch as users might look to it for a crude -+ * audit trail, let only superusers impute the grant to a third party. -+ * -+ * Before lifting this restriction, give the member == role case of -+ * is_admin_of_role() a fresh look. Ensure that the current role cannot -+ * use an explicit grantor specification to take advantage of the session -+ * user's self-admin right. -+ */ - if (grantorId != GetUserId() && !superuser()) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), -diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c -index 1d6ae8b..9a52edb 100644 ---- a/src/backend/utils/adt/acl.c -+++ b/src/backend/utils/adt/acl.c -@@ -4580,6 +4580,11 @@ pg_role_aclcheck(Oid role_oid, Oid roleid, AclMode mode) - { - if (mode & ACL_GRANT_OPTION_FOR(ACL_CREATE)) - { -+ /* -+ * XXX For roleid == role_oid, is_admin_of_role() also examines the -+ * session and call stack. That suits two-argument pg_has_role(), but -+ * it gives the three-argument version a lamentable whimsy. -+ */ - if (is_admin_of_role(roleid, role_oid)) - return ACLCHECK_OK; - } -@@ -4897,11 +4902,9 @@ is_member_of_role_nosuper(Oid member, Oid role) - - - /* -- * Is member an admin of role (directly or indirectly)? That is, is it -- * a member WITH ADMIN OPTION? -- * -- * We could cache the result as for is_member_of_role, but currently this -- * is not used in any performance-critical paths, so we don't. -+ * Is member an admin of role? That is, is member the role itself (subject to -+ * restrictions below), a member (directly or indirectly) WITH ADMIN OPTION, -+ * or a superuser? - */ - bool - is_admin_of_role(Oid member, Oid role) -@@ -4910,14 +4913,41 @@ is_admin_of_role(Oid member, Oid role) - List *roles_list; - ListCell *l; - -- /* Fast path for simple case */ -- if (member == role) -- return true; -- -- /* Superusers have every privilege, so are part of every role */ - if (superuser_arg(member)) - return true; - -+ if (member == role) -+ /* -+ * A role can admin itself when it matches the session user and we're -+ * outside any security-restricted operation, SECURITY DEFINER or -+ * similar context. SQL-standard roles cannot self-admin. However, -+ * SQL-standard users are distinct from roles, and they are not -+ * grantable like roles: PostgreSQL's role-user duality extends the -+ * standard. Checking for a session user match has the effect of -+ * letting a role self-admin only when it's conspicuously behaving -+ * like a user. Note that allowing self-admin under a mere SET ROLE -+ * would make WITH ADMIN OPTION largely irrelevant; any member could -+ * SET ROLE to issue the otherwise-forbidden command. -+ * -+ * Withholding self-admin in a security-restricted operation prevents -+ * object owners from harnessing the session user identity during -+ * administrative maintenance. Suppose Alice owns a database, has -+ * issued "GRANT alice TO bob", and runs a daily ANALYZE. Bob creates -+ * an alice-owned SECURITY DEFINER function that issues "REVOKE alice -+ * FROM carol". If he creates an expression index calling that -+ * function, Alice will attempt the REVOKE during each ANALYZE. -+ * Checking InSecurityRestrictedOperation() thwarts that attack. -+ * -+ * Withholding self-admin in SECURITY DEFINER functions makes their -+ * behavior independent of the calling user. There's no security or -+ * SQL-standard-conformance need for that restriction, though. -+ * -+ * A role cannot have actual WITH ADMIN OPTION on itself, because that -+ * would imply a membership loop. Therefore, we're done either way. -+ */ -+ return member == GetSessionUserId() && -+ !InLocalUserIdChange() && !InSecurityRestrictedOperation(); -+ - /* - * Find all the roles that member is a member of, including multi-level - * recursion. We build a list in the same way that is_member_of_role does -diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out -index e8930cb..bc6d731 100644 ---- a/src/test/regress/expected/privileges.out -+++ b/src/test/regress/expected/privileges.out -@@ -32,7 +32,7 @@ ALTER GROUP regressgroup1 ADD USER regressuser4; - ALTER GROUP regressgroup2 ADD USER regressuser2; -- duplicate - NOTICE: role "regressuser2" is already a member of role "regressgroup2" - ALTER GROUP regressgroup2 DROP USER regressuser2; --ALTER GROUP regressgroup2 ADD USER regressuser4; -+GRANT regressgroup2 TO regressuser4 WITH ADMIN OPTION; - -- test owner privileges - SET SESSION AUTHORIZATION regressuser1; - SELECT session_user, current_user; -@@ -929,6 +929,40 @@ SELECT has_table_privilege('regressuser1', 'atest4', 'SELECT WITH GRANT OPTION') - t - (1 row) - -+-- Admin options -+SET SESSION AUTHORIZATION regressuser4; -+CREATE FUNCTION dogrant_ok() RETURNS void LANGUAGE sql SECURITY DEFINER AS -+ 'GRANT regressgroup2 TO regressuser5'; -+GRANT regressgroup2 TO regressuser5; -- ok: had ADMIN OPTION -+SET ROLE regressgroup2; -+GRANT regressgroup2 TO regressuser5; -- fails: SET ROLE suspended privilege -+ERROR: must have admin option on role "regressgroup2" -+SET SESSION AUTHORIZATION regressuser1; -+GRANT regressgroup2 TO regressuser5; -- fails: no ADMIN OPTION -+ERROR: must have admin option on role "regressgroup2" -+SELECT dogrant_ok(); -- ok: SECURITY DEFINER conveys ADMIN -+NOTICE: role "regressuser5" is already a member of role "regressgroup2" -+CONTEXT: SQL function "dogrant_ok" statement 1 -+ dogrant_ok -+------------ -+ -+(1 row) -+ -+SET ROLE regressgroup2; -+GRANT regressgroup2 TO regressuser5; -- fails: SET ROLE did not help -+ERROR: must have admin option on role "regressgroup2" -+SET SESSION AUTHORIZATION regressgroup2; -+GRANT regressgroup2 TO regressuser5; -- ok: a role can self-admin -+NOTICE: role "regressuser5" is already a member of role "regressgroup2" -+CREATE FUNCTION dogrant_fails() RETURNS void LANGUAGE sql SECURITY DEFINER AS -+ 'GRANT regressgroup2 TO regressuser5'; -+SELECT dogrant_fails(); -- fails: no self-admin in SECURITY DEFINER -+ERROR: must have admin option on role "regressgroup2" -+CONTEXT: SQL function "dogrant_fails" statement 1 -+DROP FUNCTION dogrant_fails(); -+SET SESSION AUTHORIZATION regressuser4; -+DROP FUNCTION dogrant_ok(); -+REVOKE regressgroup2 FROM regressuser5; - -- has_sequence_privilege tests - \c - - CREATE SEQUENCE x_seq; -diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql -index d4d328e..5f1018a 100644 ---- a/src/test/regress/sql/privileges.sql -+++ b/src/test/regress/sql/privileges.sql -@@ -37,7 +37,7 @@ ALTER GROUP regressgroup1 ADD USER regressuser4; - - ALTER GROUP regressgroup2 ADD USER regressuser2; -- duplicate - ALTER GROUP regressgroup2 DROP USER regressuser2; --ALTER GROUP regressgroup2 ADD USER regressuser4; -+GRANT regressgroup2 TO regressuser4 WITH ADMIN OPTION; - - -- test owner privileges - -@@ -581,6 +581,33 @@ SELECT has_table_privilege('regressuser3', 'atest4', 'SELECT'); -- false - SELECT has_table_privilege('regressuser1', 'atest4', 'SELECT WITH GRANT OPTION'); -- true - - -+-- Admin options -+ -+SET SESSION AUTHORIZATION regressuser4; -+CREATE FUNCTION dogrant_ok() RETURNS void LANGUAGE sql SECURITY DEFINER AS -+ 'GRANT regressgroup2 TO regressuser5'; -+GRANT regressgroup2 TO regressuser5; -- ok: had ADMIN OPTION -+SET ROLE regressgroup2; -+GRANT regressgroup2 TO regressuser5; -- fails: SET ROLE suspended privilege -+ -+SET SESSION AUTHORIZATION regressuser1; -+GRANT regressgroup2 TO regressuser5; -- fails: no ADMIN OPTION -+SELECT dogrant_ok(); -- ok: SECURITY DEFINER conveys ADMIN -+SET ROLE regressgroup2; -+GRANT regressgroup2 TO regressuser5; -- fails: SET ROLE did not help -+ -+SET SESSION AUTHORIZATION regressgroup2; -+GRANT regressgroup2 TO regressuser5; -- ok: a role can self-admin -+CREATE FUNCTION dogrant_fails() RETURNS void LANGUAGE sql SECURITY DEFINER AS -+ 'GRANT regressgroup2 TO regressuser5'; -+SELECT dogrant_fails(); -- fails: no self-admin in SECURITY DEFINER -+DROP FUNCTION dogrant_fails(); -+ -+SET SESSION AUTHORIZATION regressuser4; -+DROP FUNCTION dogrant_ok(); -+REVOKE regressgroup2 FROM regressuser5; -+ -+ - -- has_sequence_privilege tests - \c - - --- -1.7.5.4 - diff --git a/meta-oe/recipes-support/postgresql/files/0004-Prevent-privilege-escalation-in-explicit-calls-to-PL.patch b/meta-oe/recipes-support/postgresql/files/0004-Prevent-privilege-escalation-in-explicit-calls-to-PL.patch deleted file mode 100644 index cc2183a2ab2..00000000000 --- a/meta-oe/recipes-support/postgresql/files/0004-Prevent-privilege-escalation-in-explicit-calls-to-PL.patch +++ /dev/null @@ -1,267 +0,0 @@ -From 1d701d28a796ea2d1a4d2be9e9ee06209eaea040 Mon Sep 17 00:00:00 2001 -From: Noah Misch -Date: Mon, 17 Feb 2014 09:33:31 -0500 -Subject: [PATCH] Prevent privilege escalation in explicit calls to PL - validators. - -commit 1d701d28a796ea2d1a4d2be9e9ee06209eaea040 REL9_2_STABLE - -The primary role of PL validators is to be called implicitly during -CREATE FUNCTION, but they are also normal functions that a user can call -explicitly. Add a permissions check to each validator to ensure that a -user cannot use explicit validator calls to achieve things he could not -otherwise achieve. Back-patch to 8.4 (all supported versions). -Non-core procedural language extensions ought to make the same two-line -change to their own validators. - -Andres Freund, reviewed by Tom Lane and Noah Misch. - -Security: CVE-2014-0061 - -Upstream-Status: Backport -Signed-off-by: Kai Kang ---- - doc/src/sgml/plhandler.sgml | 5 ++- - src/backend/catalog/pg_proc.c | 9 ++++ - src/backend/commands/functioncmds.c | 1 - - src/backend/utils/fmgr/fmgr.c | 84 +++++++++++++++++++++++++++++++++++ - src/include/fmgr.h | 1 + - src/pl/plperl/plperl.c | 4 ++ - src/pl/plpgsql/src/pl_handler.c | 3 + - src/pl/plpython/plpy_main.c | 4 ++ - 8 files changed, 109 insertions(+), 2 deletions(-) - -diff --git a/doc/src/sgml/plhandler.sgml b/doc/src/sgml/plhandler.sgml -index 024ef9d..aa4bba3 100644 ---- a/doc/src/sgml/plhandler.sgml -+++ b/doc/src/sgml/plhandler.sgml -@@ -178,7 +178,10 @@ CREATE LANGUAGE plsample - or updated a function written in the procedural language. - The passed-in OID is the OID of the function's pg_proc - row. The validator must fetch this row in the usual way, and do -- whatever checking is appropriate. Typical checks include verifying -+ whatever checking is appropriate. -+ First, call CheckFunctionValidatorAccess() to diagnose -+ explicit calls to the validator that the user could not achieve through -+ CREATE FUNCTION. Typical checks then include verifying - that the function's argument and result types are supported by the - language, and that the function's body is syntactically correct - in the language. If the validator finds the function to be okay, -diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c -index 3812408..3124868 100644 ---- a/src/backend/catalog/pg_proc.c -+++ b/src/backend/catalog/pg_proc.c -@@ -718,6 +718,9 @@ fmgr_internal_validator(PG_FUNCTION_ARGS) - Datum tmp; - char *prosrc; - -+ if (!CheckFunctionValidatorAccess(fcinfo->flinfo->fn_oid, funcoid)) -+ PG_RETURN_VOID(); -+ - /* - * We do not honor check_function_bodies since it's unlikely the function - * name will be found later if it isn't there now. -@@ -763,6 +766,9 @@ fmgr_c_validator(PG_FUNCTION_ARGS) - char *prosrc; - char *probin; - -+ if (!CheckFunctionValidatorAccess(fcinfo->flinfo->fn_oid, funcoid)) -+ PG_RETURN_VOID(); -+ - /* - * It'd be most consistent to skip the check if !check_function_bodies, - * but the purpose of that switch is to be helpful for pg_dump loading, -@@ -814,6 +820,9 @@ fmgr_sql_validator(PG_FUNCTION_ARGS) - bool haspolyarg; - int i; - -+ if (!CheckFunctionValidatorAccess(fcinfo->flinfo->fn_oid, funcoid)) -+ PG_RETURN_VOID(); -+ - tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcoid)); - if (!HeapTupleIsValid(tuple)) - elog(ERROR, "cache lookup failed for function %u", funcoid); -diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c -index 9ba6dd8..ea74b5e 100644 ---- a/src/backend/commands/functioncmds.c -+++ b/src/backend/commands/functioncmds.c -@@ -997,7 +997,6 @@ CreateFunction(CreateFunctionStmt *stmt, const char *queryString) - prorows); - } - -- - /* - * Guts of function deletion. - * -diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c -index 2ec63fa..8d6f183 100644 ---- a/src/backend/utils/fmgr/fmgr.c -+++ b/src/backend/utils/fmgr/fmgr.c -@@ -24,6 +24,7 @@ - #include "miscadmin.h" - #include "nodes/nodeFuncs.h" - #include "pgstat.h" -+#include "utils/acl.h" - #include "utils/builtins.h" - #include "utils/fmgrtab.h" - #include "utils/guc.h" -@@ -2445,3 +2446,86 @@ get_call_expr_arg_stable(Node *expr, int argnum) - - return false; - } -+ -+/*------------------------------------------------------------------------- -+ * Support routines for procedural language implementations -+ *------------------------------------------------------------------------- -+ */ -+ -+/* -+ * Verify that a validator is actually associated with the language of a -+ * particular function and that the user has access to both the language and -+ * the function. All validators should call this before doing anything -+ * substantial. Doing so ensures a user cannot achieve anything with explicit -+ * calls to validators that he could not achieve with CREATE FUNCTION or by -+ * simply calling an existing function. -+ * -+ * When this function returns false, callers should skip all validation work -+ * and call PG_RETURN_VOID(). This never happens at present; it is reserved -+ * for future expansion. -+ * -+ * In particular, checking that the validator corresponds to the function's -+ * language allows untrusted language validators to assume they process only -+ * superuser-chosen source code. (Untrusted language call handlers, by -+ * definition, do assume that.) A user lacking the USAGE language privilege -+ * would be unable to reach the validator through CREATE FUNCTION, so we check -+ * that to block explicit calls as well. Checking the EXECUTE privilege on -+ * the function is often superfluous, because most users can clone the -+ * function to get an executable copy. It is meaningful against users with no -+ * database TEMP right and no permanent schema CREATE right, thereby unable to -+ * create any function. Also, if the function tracks persistent state by -+ * function OID or name, validating the original function might permit more -+ * mischief than creating and validating a clone thereof. -+ */ -+bool -+CheckFunctionValidatorAccess(Oid validatorOid, Oid functionOid) -+{ -+ HeapTuple procTup; -+ HeapTuple langTup; -+ Form_pg_proc procStruct; -+ Form_pg_language langStruct; -+ AclResult aclresult; -+ -+ /* Get the function's pg_proc entry */ -+ procTup = SearchSysCache1(PROCOID, ObjectIdGetDatum(functionOid)); -+ if (!HeapTupleIsValid(procTup)) -+ elog(ERROR, "cache lookup failed for function %u", functionOid); -+ procStruct = (Form_pg_proc) GETSTRUCT(procTup); -+ -+ /* -+ * Fetch pg_language entry to know if this is the correct validation -+ * function for that pg_proc entry. -+ */ -+ langTup = SearchSysCache1(LANGOID, ObjectIdGetDatum(procStruct->prolang)); -+ if (!HeapTupleIsValid(langTup)) -+ elog(ERROR, "cache lookup failed for language %u", procStruct->prolang); -+ langStruct = (Form_pg_language) GETSTRUCT(langTup); -+ -+ if (langStruct->lanvalidator != validatorOid) -+ ereport(ERROR, -+ (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), -+ errmsg("language validation function %u called for language %u instead of %u", -+ validatorOid, procStruct->prolang, -+ langStruct->lanvalidator))); -+ -+ /* first validate that we have permissions to use the language */ -+ aclresult = pg_language_aclcheck(procStruct->prolang, GetUserId(), -+ ACL_USAGE); -+ if (aclresult != ACLCHECK_OK) -+ aclcheck_error(aclresult, ACL_KIND_LANGUAGE, -+ NameStr(langStruct->lanname)); -+ -+ /* -+ * Check whether we are allowed to execute the function itself. If we can -+ * execute it, there should be no possible side-effect of -+ * compiling/validation that execution can't have. -+ */ -+ aclresult = pg_proc_aclcheck(functionOid, GetUserId(), ACL_EXECUTE); -+ if (aclresult != ACLCHECK_OK) -+ aclcheck_error(aclresult, ACL_KIND_PROC, NameStr(procStruct->proname)); -+ -+ ReleaseSysCache(procTup); -+ ReleaseSysCache(langTup); -+ -+ return true; -+} -diff --git a/src/include/fmgr.h b/src/include/fmgr.h -index 0a25776..f944cc6 100644 ---- a/src/include/fmgr.h -+++ b/src/include/fmgr.h -@@ -624,6 +624,7 @@ extern Oid get_fn_expr_argtype(FmgrInfo *flinfo, int argnum); - extern Oid get_call_expr_argtype(fmNodePtr expr, int argnum); - extern bool get_fn_expr_arg_stable(FmgrInfo *flinfo, int argnum); - extern bool get_call_expr_arg_stable(fmNodePtr expr, int argnum); -+extern bool CheckFunctionValidatorAccess(Oid validatorOid, Oid functionOid); - - /* - * Routines in dfmgr.c -diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c -index 7c2aee9..49d50c4 100644 ---- a/src/pl/plperl/plperl.c -+++ b/src/pl/plperl/plperl.c -@@ -1847,6 +1847,9 @@ plperl_validator(PG_FUNCTION_ARGS) - bool istrigger = false; - int i; - -+ if (!CheckFunctionValidatorAccess(fcinfo->flinfo->fn_oid, funcoid)) -+ PG_RETURN_VOID(); -+ - /* Get the new function's pg_proc entry */ - tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcoid)); - if (!HeapTupleIsValid(tuple)) -@@ -1926,6 +1929,7 @@ PG_FUNCTION_INFO_V1(plperlu_validator); - Datum - plperlu_validator(PG_FUNCTION_ARGS) - { -+ /* call plperl validator with our fcinfo so it gets our oid */ - return plperl_validator(fcinfo); - } - -diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c -index 022ec3f..00b1a6f 100644 ---- a/src/pl/plpgsql/src/pl_handler.c -+++ b/src/pl/plpgsql/src/pl_handler.c -@@ -227,6 +227,9 @@ plpgsql_validator(PG_FUNCTION_ARGS) - bool istrigger = false; - int i; - -+ if (!CheckFunctionValidatorAccess(fcinfo->flinfo->fn_oid, funcoid)) -+ PG_RETURN_VOID(); -+ - /* Get the new function's pg_proc entry */ - tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcoid)); - if (!HeapTupleIsValid(tuple)) -diff --git a/src/pl/plpython/plpy_main.c b/src/pl/plpython/plpy_main.c -index c4de762..3847847 100644 ---- a/src/pl/plpython/plpy_main.c -+++ b/src/pl/plpython/plpy_main.c -@@ -159,6 +159,9 @@ plpython_validator(PG_FUNCTION_ARGS) - Form_pg_proc procStruct; - bool is_trigger; - -+ if (!CheckFunctionValidatorAccess(fcinfo->flinfo->fn_oid, funcoid)) -+ PG_RETURN_VOID(); -+ - if (!check_function_bodies) - { - PG_RETURN_VOID(); -@@ -184,6 +187,7 @@ plpython_validator(PG_FUNCTION_ARGS) - Datum - plpython2_validator(PG_FUNCTION_ARGS) - { -+ /* call plpython validator with our fcinfo so it gets our oid */ - return plpython_validator(fcinfo); - } - #endif /* PY_MAJOR_VERSION < 3 */ --- -1.7.5.4 - diff --git a/meta-oe/recipes-support/postgresql/files/0005-Avoid-repeated-name-lookups-during-table-and-index-D.patch b/meta-oe/recipes-support/postgresql/files/0005-Avoid-repeated-name-lookups-during-table-and-index-D.patch deleted file mode 100644 index f1aa2125025..00000000000 --- a/meta-oe/recipes-support/postgresql/files/0005-Avoid-repeated-name-lookups-during-table-and-index-D.patch +++ /dev/null @@ -1,1082 +0,0 @@ -From 820ab11fbfd508fc75a39c43ad2c1b3e79c4982b Mon Sep 17 00:00:00 2001 -From: Robert Haas -Date: Mon, 17 Feb 2014 09:33:31 -0500 -Subject: [PATCH] Avoid repeated name lookups during table and index DDL. - -commit 820ab11fbfd508fc75a39c43ad2c1b3e79c4982b REL9_2_STABLE - -If the name lookups come to different conclusions due to concurrent -activity, we might perform some parts of the DDL on a different table -than other parts. At least in the case of CREATE INDEX, this can be -used to cause the permissions checks to be performed against a -different table than the index creation, allowing for a privilege -escalation attack. - -This changes the calling convention for DefineIndex, CreateTrigger, -transformIndexStmt, transformAlterTableStmt, CheckIndexCompatible -(in 9.2 and newer), and AlterTable (in 9.1 and older). In addition, -CheckRelationOwnership is removed in 9.2 and newer and the calling -convention is changed in older branches. A field has also been added -to the Constraint node (FkConstraint in 8.4). Third-party code calling -these functions or using the Constraint node will require updating. - -Report by Andres Freund. Patch by Robert Haas and Andres Freund, -reviewed by Tom Lane. - -Security: CVE-2014-0062 - -Upstream-Status: Backport - -Signed-off-by: Kai Kang ---- - src/backend/bootstrap/bootparse.y | 17 ++++- - src/backend/catalog/index.c | 10 +-- - src/backend/catalog/pg_constraint.c | 19 +++++ - src/backend/commands/indexcmds.c | 22 ++++-- - src/backend/commands/tablecmds.c | 137 +++++++++++++++++++++++++---------- - src/backend/commands/trigger.c | 28 ++++++-- - src/backend/nodes/copyfuncs.c | 1 + - src/backend/nodes/equalfuncs.c | 1 + - src/backend/nodes/outfuncs.c | 1 + - src/backend/parser/parse_utilcmd.c | 64 ++++++----------- - src/backend/tcop/utility.c | 73 +++++++------------ - src/include/catalog/pg_constraint.h | 1 + - src/include/commands/defrem.h | 4 +- - src/include/commands/tablecmds.h | 2 + - src/include/commands/trigger.h | 2 +- - src/include/nodes/parsenodes.h | 2 + - src/include/parser/parse_utilcmd.h | 5 +- - src/include/tcop/utility.h | 2 - - 18 files changed, 234 insertions(+), 157 deletions(-) - -diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y -index f4a1b8f..eeffb0f 100644 ---- a/src/backend/bootstrap/bootparse.y -+++ b/src/backend/bootstrap/bootparse.y -@@ -27,6 +27,7 @@ - #include "bootstrap/bootstrap.h" - #include "catalog/catalog.h" - #include "catalog/heap.h" -+#include "catalog/namespace.h" - #include "catalog/pg_am.h" - #include "catalog/pg_attribute.h" - #include "catalog/pg_authid.h" -@@ -281,6 +282,7 @@ Boot_DeclareIndexStmt: - XDECLARE INDEX boot_ident oidspec ON boot_ident USING boot_ident LPAREN boot_index_params RPAREN - { - IndexStmt *stmt = makeNode(IndexStmt); -+ Oid relationId; - - do_start(); - -@@ -302,7 +304,12 @@ Boot_DeclareIndexStmt: - stmt->initdeferred = false; - stmt->concurrent = false; - -- DefineIndex(stmt, -+ /* locks and races need not concern us in bootstrap mode */ -+ relationId = RangeVarGetRelid(stmt->relation, NoLock, -+ false); -+ -+ DefineIndex(relationId, -+ stmt, - $4, - false, - false, -@@ -316,6 +323,7 @@ Boot_DeclareUniqueIndexStmt: - XDECLARE UNIQUE INDEX boot_ident oidspec ON boot_ident USING boot_ident LPAREN boot_index_params RPAREN - { - IndexStmt *stmt = makeNode(IndexStmt); -+ Oid relationId; - - do_start(); - -@@ -337,7 +345,12 @@ Boot_DeclareUniqueIndexStmt: - stmt->initdeferred = false; - stmt->concurrent = false; - -- DefineIndex(stmt, -+ /* locks and races need not concern us in bootstrap mode */ -+ relationId = RangeVarGetRelid(stmt->relation, NoLock, -+ false); -+ -+ DefineIndex(relationId, -+ stmt, - $5, - false, - false, -diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c -index 7d6346a..ca8acf3 100644 ---- a/src/backend/catalog/index.c -+++ b/src/backend/catalog/index.c -@@ -1202,18 +1202,13 @@ index_constraint_create(Relation heapRelation, - */ - if (deferrable) - { -- RangeVar *heapRel; - CreateTrigStmt *trigger; - -- heapRel = makeRangeVar(get_namespace_name(namespaceId), -- pstrdup(RelationGetRelationName(heapRelation)), -- -1); -- - trigger = makeNode(CreateTrigStmt); - trigger->trigname = (constraintType == CONSTRAINT_PRIMARY) ? - "PK_ConstraintTrigger" : - "Unique_ConstraintTrigger"; -- trigger->relation = heapRel; -+ trigger->relation = NULL; - trigger->funcname = SystemFuncName("unique_key_recheck"); - trigger->args = NIL; - trigger->row = true; -@@ -1226,7 +1221,8 @@ index_constraint_create(Relation heapRelation, - trigger->initdeferred = initdeferred; - trigger->constrrel = NULL; - -- (void) CreateTrigger(trigger, NULL, conOid, indexRelationId, true); -+ (void) CreateTrigger(trigger, NULL, RelationGetRelid(heapRelation), -+ InvalidOid, conOid, indexRelationId, true); - } - - /* -diff --git a/src/backend/catalog/pg_constraint.c b/src/backend/catalog/pg_constraint.c -index 107a780..08a94cf 100644 ---- a/src/backend/catalog/pg_constraint.c -+++ b/src/backend/catalog/pg_constraint.c -@@ -746,6 +746,25 @@ AlterConstraintNamespaces(Oid ownerId, Oid oldNspId, - } - - /* -+ * get_constraint_relation_oids -+ * Find the IDs of the relations to which a constraint refers. -+ */ -+void -+get_constraint_relation_oids(Oid constraint_oid, Oid *conrelid, Oid *confrelid) -+{ -+ HeapTuple tup; -+ Form_pg_constraint con; -+ -+ tup = SearchSysCache1(CONSTROID, ObjectIdGetDatum(constraint_oid)); -+ if (!HeapTupleIsValid(tup)) /* should not happen */ -+ elog(ERROR, "cache lookup failed for constraint %u", constraint_oid); -+ con = (Form_pg_constraint) GETSTRUCT(tup); -+ *conrelid = con->conrelid; -+ *confrelid = con->confrelid; -+ ReleaseSysCache(tup); -+} -+ -+/* - * get_relation_constraint_oid - * Find a constraint on the specified relation with the specified name. - * Returns constraint's OID. -diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c -index f3ee278..ec5fb0d 100644 ---- a/src/backend/commands/indexcmds.c -+++ b/src/backend/commands/indexcmds.c -@@ -111,7 +111,6 @@ static void RangeVarCallbackForReindexIndex(const RangeVar *relation, - */ - bool - CheckIndexCompatible(Oid oldId, -- RangeVar *heapRelation, - char *accessMethodName, - List *attributeList, - List *exclusionOpNames) -@@ -139,7 +138,7 @@ CheckIndexCompatible(Oid oldId, - Datum d; - - /* Caller should already have the relation locked in some way. */ -- relationId = RangeVarGetRelid(heapRelation, NoLock, false); -+ relationId = IndexGetRelation(oldId, false); - - /* - * We can pretend isconstraint = false unconditionally. It only serves to -@@ -279,6 +278,8 @@ CheckIndexCompatible(Oid oldId, - * DefineIndex - * Creates a new index. - * -+ * 'relationId': the OID of the heap relation on which the index is to be -+ * created - * 'stmt': IndexStmt describing the properties of the new index. - * 'indexRelationId': normally InvalidOid, but during bootstrap can be - * nonzero to specify a preselected OID for the index. -@@ -292,7 +293,8 @@ CheckIndexCompatible(Oid oldId, - * Returns the OID of the created index. - */ - Oid --DefineIndex(IndexStmt *stmt, -+DefineIndex(Oid relationId, -+ IndexStmt *stmt, - Oid indexRelationId, - bool is_alter_table, - bool check_rights, -@@ -305,7 +307,6 @@ DefineIndex(IndexStmt *stmt, - Oid *collationObjectId; - Oid *classObjectId; - Oid accessMethodId; -- Oid relationId; - Oid namespaceId; - Oid tablespaceId; - List *indexColNames; -@@ -325,6 +326,7 @@ DefineIndex(IndexStmt *stmt, - int n_old_snapshots; - LockRelId heaprelid; - LOCKTAG heaplocktag; -+ LOCKMODE lockmode; - Snapshot snapshot; - int i; - -@@ -343,14 +345,18 @@ DefineIndex(IndexStmt *stmt, - INDEX_MAX_KEYS))); - - /* -- * Open heap relation, acquire a suitable lock on it, remember its OID -- * - * Only SELECT ... FOR UPDATE/SHARE are allowed while doing a standard - * index build; but for concurrent builds we allow INSERT/UPDATE/DELETE - * (but not VACUUM). -+ * -+ * NB: Caller is responsible for making sure that relationId refers -+ * to the relation on which the index should be built; except in bootstrap -+ * mode, this will typically require the caller to have already locked -+ * the relation. To avoid lock upgrade hazards, that lock should be at -+ * least as strong as the one we take here. - */ -- rel = heap_openrv(stmt->relation, -- (stmt->concurrent ? ShareUpdateExclusiveLock : ShareLock)); -+ lockmode = stmt->concurrent ? ShareUpdateExclusiveLock : ShareLock; -+ rel = heap_open(relationId, lockmode); - - relationId = RelationGetRelid(rel); - namespaceId = RelationGetNamespace(rel); -diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c -index 7c1f779..bcb81ea 100644 ---- a/src/backend/commands/tablecmds.c -+++ b/src/backend/commands/tablecmds.c -@@ -283,7 +283,8 @@ static void validateCheckConstraint(Relation rel, HeapTuple constrtup); - static void validateForeignKeyConstraint(char *conname, - Relation rel, Relation pkrel, - Oid pkindOid, Oid constraintOid); --static void createForeignKeyTriggers(Relation rel, Constraint *fkconstraint, -+static void createForeignKeyTriggers(Relation rel, Oid refRelOid, -+ Constraint *fkconstraint, - Oid constraintOid, Oid indexOid); - static void ATController(Relation rel, List *cmds, bool recurse, LOCKMODE lockmode); - static void ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd, -@@ -360,8 +361,9 @@ static void ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel, - static void ATExecAlterColumnGenericOptions(Relation rel, const char *colName, - List *options, LOCKMODE lockmode); - static void ATPostAlterTypeCleanup(List **wqueue, AlteredTableInfo *tab, LOCKMODE lockmode); --static void ATPostAlterTypeParse(Oid oldId, char *cmd, -- List **wqueue, LOCKMODE lockmode, bool rewrite); -+static void ATPostAlterTypeParse(Oid oldId, Oid oldRelId, Oid refRelId, -+ char *cmd, List **wqueue, LOCKMODE lockmode, -+ bool rewrite); - static void TryReuseIndex(Oid oldId, IndexStmt *stmt); - static void TryReuseForeignKey(Oid oldId, Constraint *con); - static void change_owner_fix_column_acls(Oid relationOid, -@@ -5406,7 +5408,8 @@ ATExecAddIndex(AlteredTableInfo *tab, Relation rel, - - /* The IndexStmt has already been through transformIndexStmt */ - -- new_index = DefineIndex(stmt, -+ new_index = DefineIndex(RelationGetRelid(rel), -+ stmt, - InvalidOid, /* no predefined OID */ - true, /* is_alter_table */ - check_rights, -@@ -5728,7 +5731,10 @@ ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel, - * table; trying to start with a lesser lock will just create a risk of - * deadlock.) - */ -- pkrel = heap_openrv(fkconstraint->pktable, AccessExclusiveLock); -+ if (OidIsValid(fkconstraint->old_pktable_oid)) -+ pkrel = heap_open(fkconstraint->old_pktable_oid, AccessExclusiveLock); -+ else -+ pkrel = heap_openrv(fkconstraint->pktable, AccessExclusiveLock); - - /* - * Validity checks (permission checks wait till we have the column -@@ -6066,7 +6072,8 @@ ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel, - /* - * Create the triggers that will enforce the constraint. - */ -- createForeignKeyTriggers(rel, fkconstraint, constrOid, indexOid); -+ createForeignKeyTriggers(rel, RelationGetRelid(pkrel), fkconstraint, -+ constrOid, indexOid); - - /* - * Tell Phase 3 to check that the constraint is satisfied by existing -@@ -6736,7 +6743,7 @@ validateForeignKeyConstraint(char *conname, - } - - static void --CreateFKCheckTrigger(RangeVar *myRel, Constraint *fkconstraint, -+CreateFKCheckTrigger(Oid myRelOid, Oid refRelOid, Constraint *fkconstraint, - Oid constraintOid, Oid indexOid, bool on_insert) - { - CreateTrigStmt *fk_trigger; -@@ -6752,7 +6759,7 @@ CreateFKCheckTrigger(RangeVar *myRel, Constraint *fkconstraint, - */ - fk_trigger = makeNode(CreateTrigStmt); - fk_trigger->trigname = "RI_ConstraintTrigger_c"; -- fk_trigger->relation = myRel; -+ fk_trigger->relation = NULL; - fk_trigger->row = true; - fk_trigger->timing = TRIGGER_TYPE_AFTER; - -@@ -6773,10 +6780,11 @@ CreateFKCheckTrigger(RangeVar *myRel, Constraint *fkconstraint, - fk_trigger->isconstraint = true; - fk_trigger->deferrable = fkconstraint->deferrable; - fk_trigger->initdeferred = fkconstraint->initdeferred; -- fk_trigger->constrrel = fkconstraint->pktable; -+ fk_trigger->constrrel = NULL; - fk_trigger->args = NIL; - -- (void) CreateTrigger(fk_trigger, NULL, constraintOid, indexOid, true); -+ (void) CreateTrigger(fk_trigger, NULL, myRelOid, refRelOid, constraintOid, -+ indexOid, true); - - /* Make changes-so-far visible */ - CommandCounterIncrement(); -@@ -6786,18 +6794,13 @@ CreateFKCheckTrigger(RangeVar *myRel, Constraint *fkconstraint, - * Create the triggers that implement an FK constraint. - */ - static void --createForeignKeyTriggers(Relation rel, Constraint *fkconstraint, -+createForeignKeyTriggers(Relation rel, Oid refRelOid, Constraint *fkconstraint, - Oid constraintOid, Oid indexOid) - { -- RangeVar *myRel; -+ Oid myRelOid; - CreateTrigStmt *fk_trigger; - -- /* -- * Reconstruct a RangeVar for my relation (not passed in, unfortunately). -- */ -- myRel = makeRangeVar(get_namespace_name(RelationGetNamespace(rel)), -- pstrdup(RelationGetRelationName(rel)), -- -1); -+ myRelOid = RelationGetRelid(rel); - - /* Make changes-so-far visible */ - CommandCounterIncrement(); -@@ -6808,14 +6811,14 @@ createForeignKeyTriggers(Relation rel, Constraint *fkconstraint, - */ - fk_trigger = makeNode(CreateTrigStmt); - fk_trigger->trigname = "RI_ConstraintTrigger_a"; -- fk_trigger->relation = fkconstraint->pktable; -+ fk_trigger->relation = NULL; - fk_trigger->row = true; - fk_trigger->timing = TRIGGER_TYPE_AFTER; - fk_trigger->events = TRIGGER_TYPE_DELETE; - fk_trigger->columns = NIL; - fk_trigger->whenClause = NULL; - fk_trigger->isconstraint = true; -- fk_trigger->constrrel = myRel; -+ fk_trigger->constrrel = NULL; - switch (fkconstraint->fk_del_action) - { - case FKCONSTR_ACTION_NOACTION: -@@ -6850,7 +6853,8 @@ createForeignKeyTriggers(Relation rel, Constraint *fkconstraint, - } - fk_trigger->args = NIL; - -- (void) CreateTrigger(fk_trigger, NULL, constraintOid, indexOid, true); -+ (void) CreateTrigger(fk_trigger, NULL, refRelOid, myRelOid, constraintOid, -+ indexOid, true); - - /* Make changes-so-far visible */ - CommandCounterIncrement(); -@@ -6861,14 +6865,14 @@ createForeignKeyTriggers(Relation rel, Constraint *fkconstraint, - */ - fk_trigger = makeNode(CreateTrigStmt); - fk_trigger->trigname = "RI_ConstraintTrigger_a"; -- fk_trigger->relation = fkconstraint->pktable; -+ fk_trigger->relation = NULL; - fk_trigger->row = true; - fk_trigger->timing = TRIGGER_TYPE_AFTER; - fk_trigger->events = TRIGGER_TYPE_UPDATE; - fk_trigger->columns = NIL; - fk_trigger->whenClause = NULL; - fk_trigger->isconstraint = true; -- fk_trigger->constrrel = myRel; -+ fk_trigger->constrrel = NULL; - switch (fkconstraint->fk_upd_action) - { - case FKCONSTR_ACTION_NOACTION: -@@ -6903,7 +6907,8 @@ createForeignKeyTriggers(Relation rel, Constraint *fkconstraint, - } - fk_trigger->args = NIL; - -- (void) CreateTrigger(fk_trigger, NULL, constraintOid, indexOid, true); -+ (void) CreateTrigger(fk_trigger, NULL, refRelOid, myRelOid, constraintOid, -+ indexOid, true); - - /* Make changes-so-far visible */ - CommandCounterIncrement(); -@@ -6912,8 +6917,10 @@ createForeignKeyTriggers(Relation rel, Constraint *fkconstraint, - * Build and execute CREATE CONSTRAINT TRIGGER statements for the CHECK - * action for both INSERTs and UPDATEs on the referencing table. - */ -- CreateFKCheckTrigger(myRel, fkconstraint, constraintOid, indexOid, true); -- CreateFKCheckTrigger(myRel, fkconstraint, constraintOid, indexOid, false); -+ CreateFKCheckTrigger(myRelOid, refRelOid, fkconstraint, constraintOid, -+ indexOid, true); -+ CreateFKCheckTrigger(myRelOid, refRelOid, fkconstraint, constraintOid, -+ indexOid, false); - } - - /* -@@ -7832,15 +7839,36 @@ ATPostAlterTypeCleanup(List **wqueue, AlteredTableInfo *tab, LOCKMODE lockmode) - * lock on the table the constraint is attached to, and we need to get - * that before dropping. It's safe because the parser won't actually look - * at the catalogs to detect the existing entry. -+ * -+ * We can't rely on the output of deparsing to tell us which relation -+ * to operate on, because concurrent activity might have made the name -+ * resolve differently. Instead, we've got to use the OID of the -+ * constraint or index we're processing to figure out which relation -+ * to operate on. - */ - forboth(oid_item, tab->changedConstraintOids, - def_item, tab->changedConstraintDefs) -- ATPostAlterTypeParse(lfirst_oid(oid_item), (char *) lfirst(def_item), -+ { -+ Oid oldId = lfirst_oid(oid_item); -+ Oid relid; -+ Oid confrelid; -+ -+ get_constraint_relation_oids(oldId, &relid, &confrelid); -+ ATPostAlterTypeParse(oldId, relid, confrelid, -+ (char *) lfirst(def_item), - wqueue, lockmode, tab->rewrite); -+ } - forboth(oid_item, tab->changedIndexOids, - def_item, tab->changedIndexDefs) -- ATPostAlterTypeParse(lfirst_oid(oid_item), (char *) lfirst(def_item), -+ { -+ Oid oldId = lfirst_oid(oid_item); -+ Oid relid; -+ -+ relid = IndexGetRelation(oldId, false); -+ ATPostAlterTypeParse(oldId, relid, InvalidOid, -+ (char *) lfirst(def_item), - wqueue, lockmode, tab->rewrite); -+ } - - /* - * Now we can drop the existing constraints and indexes --- constraints -@@ -7873,12 +7901,13 @@ ATPostAlterTypeCleanup(List **wqueue, AlteredTableInfo *tab, LOCKMODE lockmode) - } - - static void --ATPostAlterTypeParse(Oid oldId, char *cmd, -+ATPostAlterTypeParse(Oid oldId, Oid oldRelId, Oid refRelId, char *cmd, - List **wqueue, LOCKMODE lockmode, bool rewrite) - { - List *raw_parsetree_list; - List *querytree_list; - ListCell *list_item; -+ Relation rel; - - /* - * We expect that we will get only ALTER TABLE and CREATE INDEX -@@ -7894,16 +7923,21 @@ ATPostAlterTypeParse(Oid oldId, char *cmd, - - if (IsA(stmt, IndexStmt)) - querytree_list = lappend(querytree_list, -- transformIndexStmt((IndexStmt *) stmt, -+ transformIndexStmt(oldRelId, -+ (IndexStmt *) stmt, - cmd)); - else if (IsA(stmt, AlterTableStmt)) - querytree_list = list_concat(querytree_list, -- transformAlterTableStmt((AlterTableStmt *) stmt, -+ transformAlterTableStmt(oldRelId, -+ (AlterTableStmt *) stmt, - cmd)); - else - querytree_list = lappend(querytree_list, stmt); - } - -+ /* Caller should already have acquired whatever lock we need. */ -+ rel = relation_open(oldRelId, NoLock); -+ - /* - * Attach each generated command to the proper place in the work queue. - * Note this could result in creation of entirely new work-queue entries. -@@ -7915,7 +7949,6 @@ ATPostAlterTypeParse(Oid oldId, char *cmd, - foreach(list_item, querytree_list) - { - Node *stm = (Node *) lfirst(list_item); -- Relation rel; - AlteredTableInfo *tab; - - switch (nodeTag(stm)) -@@ -7928,14 +7961,12 @@ ATPostAlterTypeParse(Oid oldId, char *cmd, - if (!rewrite) - TryReuseIndex(oldId, stmt); - -- rel = relation_openrv(stmt->relation, lockmode); - tab = ATGetQueueEntry(wqueue, rel); - newcmd = makeNode(AlterTableCmd); - newcmd->subtype = AT_ReAddIndex; - newcmd->def = (Node *) stmt; - tab->subcmds[AT_PASS_OLD_INDEX] = - lappend(tab->subcmds[AT_PASS_OLD_INDEX], newcmd); -- relation_close(rel, NoLock); - break; - } - case T_AlterTableStmt: -@@ -7943,7 +7974,6 @@ ATPostAlterTypeParse(Oid oldId, char *cmd, - AlterTableStmt *stmt = (AlterTableStmt *) stm; - ListCell *lcmd; - -- rel = relation_openrv(stmt->relation, lockmode); - tab = ATGetQueueEntry(wqueue, rel); - foreach(lcmd, stmt->cmds) - { -@@ -7964,6 +7994,7 @@ ATPostAlterTypeParse(Oid oldId, char *cmd, - case AT_AddConstraint: - Assert(IsA(cmd->def, Constraint)); - con = (Constraint *) cmd->def; -+ con->old_pktable_oid = refRelId; - /* rewriting neither side of a FK */ - if (con->contype == CONSTR_FOREIGN && - !rewrite && !tab->rewrite) -@@ -7977,7 +8008,6 @@ ATPostAlterTypeParse(Oid oldId, char *cmd, - (int) cmd->subtype); - } - } -- relation_close(rel, NoLock); - break; - } - default: -@@ -7985,6 +8015,8 @@ ATPostAlterTypeParse(Oid oldId, char *cmd, - (int) nodeTag(stm)); - } - } -+ -+ relation_close(rel, NoLock); - } - - /* -@@ -7995,7 +8027,6 @@ static void - TryReuseIndex(Oid oldId, IndexStmt *stmt) - { - if (CheckIndexCompatible(oldId, -- stmt->relation, - stmt->accessMethod, - stmt->indexParams, - stmt->excludeOpNames)) -@@ -10291,6 +10322,38 @@ RangeVarCallbackOwnsTable(const RangeVar *relation, - } - - /* -+ * Callback to RangeVarGetRelidExtended(), similar to -+ * RangeVarCallbackOwnsTable() but without checks on the type of the relation. -+ */ -+void -+RangeVarCallbackOwnsRelation(const RangeVar *relation, -+ Oid relId, Oid oldRelId, void *arg) -+{ -+ HeapTuple tuple; -+ -+ /* Nothing to do if the relation was not found. */ -+ if (!OidIsValid(relId)) -+ return; -+ -+ tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relId)); -+ if (!HeapTupleIsValid(tuple)) /* should not happen */ -+ elog(ERROR, "cache lookup failed for relation %u", relId); -+ -+ if (!pg_class_ownercheck(relId, GetUserId())) -+ aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CLASS, -+ relation->relname); -+ -+ if (!allowSystemTableMods && -+ IsSystemClass((Form_pg_class) GETSTRUCT(tuple))) -+ ereport(ERROR, -+ (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), -+ errmsg("permission denied: \"%s\" is a system catalog", -+ relation->relname))); -+ -+ ReleaseSysCache(tuple); -+} -+ -+/* - * Common RangeVarGetRelid callback for rename, set schema, and alter table - * processing. - */ -diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c -index f546d94..9e6c954 100644 ---- a/src/backend/commands/trigger.c -+++ b/src/backend/commands/trigger.c -@@ -42,6 +42,7 @@ - #include "pgstat.h" - #include "rewrite/rewriteManip.h" - #include "storage/bufmgr.h" -+#include "storage/lmgr.h" - #include "tcop/utility.h" - #include "utils/acl.h" - #include "utils/builtins.h" -@@ -94,6 +95,13 @@ static void AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo, - * queryString is the source text of the CREATE TRIGGER command. - * This must be supplied if a whenClause is specified, else it can be NULL. - * -+ * relOid, if nonzero, is the relation on which the trigger should be -+ * created. If zero, the name provided in the statement will be looked up. -+ * -+ * refRelOid, if nonzero, is the relation to which the constraint trigger -+ * refers. If zero, the constraint relation name provided in the statement -+ * will be looked up as needed. -+ * - * constraintOid, if nonzero, says that this trigger is being created - * internally to implement that constraint. A suitable pg_depend entry will - * be made to link the trigger to that constraint. constraintOid is zero when -@@ -116,7 +124,7 @@ static void AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo, - */ - Oid - CreateTrigger(CreateTrigStmt *stmt, const char *queryString, -- Oid constraintOid, Oid indexOid, -+ Oid relOid, Oid refRelOid, Oid constraintOid, Oid indexOid, - bool isInternal) - { - int16 tgtype; -@@ -145,7 +153,10 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, - ObjectAddress myself, - referenced; - -- rel = heap_openrv(stmt->relation, AccessExclusiveLock); -+ if (OidIsValid(relOid)) -+ rel = heap_open(relOid, AccessExclusiveLock); -+ else -+ rel = heap_openrv(stmt->relation, AccessExclusiveLock); - - /* - * Triggers must be on tables or views, and there are additional -@@ -194,7 +205,7 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, - errmsg("permission denied: \"%s\" is a system catalog", - RelationGetRelationName(rel)))); - -- if (stmt->isconstraint && stmt->constrrel != NULL) -+ if (stmt->isconstraint) - { - /* - * We must take a lock on the target relation to protect against -@@ -203,7 +214,14 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, - * might end up creating a pg_constraint entry referencing a - * nonexistent table. - */ -- constrrelid = RangeVarGetRelid(stmt->constrrel, AccessShareLock, false); -+ if (OidIsValid(refRelOid)) -+ { -+ LockRelationOid(refRelOid, AccessShareLock); -+ constrrelid = refRelOid; -+ } -+ else if (stmt->constrrel != NULL) -+ constrrelid = RangeVarGetRelid(stmt->constrrel, AccessShareLock, -+ false); - } - - /* permission checks */ -@@ -513,7 +531,7 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, - ereport(ERROR, - (errcode(ERRCODE_DUPLICATE_OBJECT), - errmsg("trigger \"%s\" for relation \"%s\" already exists", -- trigname, stmt->relation->relname))); -+ trigname, RelationGetRelationName(rel)))); - } - systable_endscan(tgscan); - } -diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c -index 9bac994..dbe0f6a 100644 ---- a/src/backend/nodes/copyfuncs.c -+++ b/src/backend/nodes/copyfuncs.c -@@ -2357,6 +2357,7 @@ _copyConstraint(const Constraint *from) - COPY_SCALAR_FIELD(fk_upd_action); - COPY_SCALAR_FIELD(fk_del_action); - COPY_NODE_FIELD(old_conpfeqop); -+ COPY_SCALAR_FIELD(old_pktable_oid); - COPY_SCALAR_FIELD(skip_validation); - COPY_SCALAR_FIELD(initially_valid); - -diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c -index d185654..f8770b0 100644 ---- a/src/backend/nodes/equalfuncs.c -+++ b/src/backend/nodes/equalfuncs.c -@@ -2143,6 +2143,7 @@ _equalConstraint(const Constraint *a, const Constraint *b) - COMPARE_SCALAR_FIELD(fk_upd_action); - COMPARE_SCALAR_FIELD(fk_del_action); - COMPARE_NODE_FIELD(old_conpfeqop); -+ COMPARE_SCALAR_FIELD(old_pktable_oid); - COMPARE_SCALAR_FIELD(skip_validation); - COMPARE_SCALAR_FIELD(initially_valid); - -diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c -index 1df71f6..888ffd2 100644 ---- a/src/backend/nodes/outfuncs.c -+++ b/src/backend/nodes/outfuncs.c -@@ -2653,6 +2653,7 @@ _outConstraint(StringInfo str, const Constraint *node) - WRITE_CHAR_FIELD(fk_upd_action); - WRITE_CHAR_FIELD(fk_del_action); - WRITE_NODE_FIELD(old_conpfeqop); -+ WRITE_OID_FIELD(old_pktable_oid); - WRITE_BOOL_FIELD(skip_validation); - WRITE_BOOL_FIELD(initially_valid); - break; -diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c -index e3f9c62..5df939a 100644 ---- a/src/backend/parser/parse_utilcmd.c -+++ b/src/backend/parser/parse_utilcmd.c -@@ -1867,14 +1867,18 @@ transformFKConstraints(CreateStmtContext *cxt, - * a predicate expression. There are several code paths that create indexes - * without bothering to call this, because they know they don't have any - * such expressions to deal with. -+ * -+ * To avoid race conditions, it's important that this function rely only on -+ * the passed-in relid (and not on stmt->relation) to determine the target -+ * relation. - */ - IndexStmt * --transformIndexStmt(IndexStmt *stmt, const char *queryString) -+transformIndexStmt(Oid relid, IndexStmt *stmt, const char *queryString) - { -- Relation rel; - ParseState *pstate; - RangeTblEntry *rte; - ListCell *l; -+ Relation rel; - - /* - * We must not scribble on the passed-in IndexStmt, so copy it. (This is -@@ -1882,26 +1886,17 @@ transformIndexStmt(IndexStmt *stmt, const char *queryString) - */ - stmt = (IndexStmt *) copyObject(stmt); - -- /* -- * Open the parent table with appropriate locking. We must do this -- * because addRangeTableEntry() would acquire only AccessShareLock, -- * leaving DefineIndex() needing to do a lock upgrade with consequent risk -- * of deadlock. Make sure this stays in sync with the type of lock -- * DefineIndex() wants. If we are being called by ALTER TABLE, we will -- * already hold a higher lock. -- */ -- rel = heap_openrv(stmt->relation, -- (stmt->concurrent ? ShareUpdateExclusiveLock : ShareLock)); -- - /* Set up pstate */ - pstate = make_parsestate(NULL); - pstate->p_sourcetext = queryString; - - /* - * Put the parent table into the rtable so that the expressions can refer -- * to its fields without qualification. -+ * to its fields without qualification. Caller is responsible for locking -+ * relation, but we still need to open it. - */ -- rte = addRangeTableEntry(pstate, stmt->relation, NULL, false, true); -+ rel = relation_open(relid, NoLock); -+ rte = addRangeTableEntryForRelation(pstate, rel, NULL, false, true); - - /* no to join list, yes to namespaces */ - addRTEtoQuery(pstate, rte, false, true, true); -@@ -1955,7 +1950,7 @@ transformIndexStmt(IndexStmt *stmt, const char *queryString) - - free_parsestate(pstate); - -- /* Close relation, but keep the lock */ -+ /* Close relation */ - heap_close(rel, NoLock); - - return stmt; -@@ -2277,9 +2272,14 @@ transformRuleStmt(RuleStmt *stmt, const char *queryString, - * Returns a List of utility commands to be done in sequence. One of these - * will be the transformed AlterTableStmt, but there may be additional actions - * to be done before and after the actual AlterTable() call. -+ * -+ * To avoid race conditions, it's important that this function rely only on -+ * the passed-in relid (and not on stmt->relation) to determine the target -+ * relation. - */ - List * --transformAlterTableStmt(AlterTableStmt *stmt, const char *queryString) -+transformAlterTableStmt(Oid relid, AlterTableStmt *stmt, -+ const char *queryString) - { - Relation rel; - ParseState *pstate; -@@ -2291,7 +2291,6 @@ transformAlterTableStmt(AlterTableStmt *stmt, const char *queryString) - List *newcmds = NIL; - bool skipValidation = true; - AlterTableCmd *newcmd; -- LOCKMODE lockmode; - - /* - * We must not scribble on the passed-in AlterTableStmt, so copy it. (This -@@ -2299,29 +2298,8 @@ transformAlterTableStmt(AlterTableStmt *stmt, const char *queryString) - */ - stmt = (AlterTableStmt *) copyObject(stmt); - -- /* -- * Determine the appropriate lock level for this list of subcommands. -- */ -- lockmode = AlterTableGetLockLevel(stmt->cmds); -- -- /* -- * Acquire appropriate lock on the target relation, which will be held -- * until end of transaction. This ensures any decisions we make here -- * based on the state of the relation will still be good at execution. We -- * must get lock now because execution will later require it; taking a -- * lower grade lock now and trying to upgrade later risks deadlock. Any -- * new commands we add after this must not upgrade the lock level -- * requested here. -- */ -- rel = relation_openrv_extended(stmt->relation, lockmode, stmt->missing_ok); -- if (rel == NULL) -- { -- /* this message is consistent with relation_openrv */ -- ereport(NOTICE, -- (errmsg("relation \"%s\" does not exist, skipping", -- stmt->relation->relname))); -- return NIL; -- } -+ /* Caller is responsible for locking the relation */ -+ rel = relation_open(relid, NoLock); - - /* Set up pstate and CreateStmtContext */ - pstate = make_parsestate(NULL); -@@ -2434,7 +2412,7 @@ transformAlterTableStmt(AlterTableStmt *stmt, const char *queryString) - IndexStmt *idxstmt = (IndexStmt *) lfirst(l); - - Assert(IsA(idxstmt, IndexStmt)); -- idxstmt = transformIndexStmt(idxstmt, queryString); -+ idxstmt = transformIndexStmt(relid, idxstmt, queryString); - newcmd = makeNode(AlterTableCmd); - newcmd->subtype = OidIsValid(idxstmt->indexOid) ? AT_AddIndexConstraint : AT_AddIndex; - newcmd->def = (Node *) idxstmt; -@@ -2458,7 +2436,7 @@ transformAlterTableStmt(AlterTableStmt *stmt, const char *queryString) - newcmds = lappend(newcmds, newcmd); - } - -- /* Close rel but keep lock */ -+ /* Close rel */ - relation_close(rel, NoLock); - - /* -diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c -index 509bf4d..7903e03 100644 ---- a/src/backend/tcop/utility.c -+++ b/src/backend/tcop/utility.c -@@ -67,49 +67,6 @@ ProcessUtility_hook_type ProcessUtility_hook = NULL; - - - /* -- * Verify user has ownership of specified relation, else ereport. -- * -- * If noCatalogs is true then we also deny access to system catalogs, -- * except when allowSystemTableMods is true. -- */ --void --CheckRelationOwnership(RangeVar *rel, bool noCatalogs) --{ -- Oid relOid; -- HeapTuple tuple; -- -- /* -- * XXX: This is unsafe in the presence of concurrent DDL, since it is -- * called before acquiring any lock on the target relation. However, -- * locking the target relation (especially using something like -- * AccessExclusiveLock) before verifying that the user has permissions is -- * not appealing either. -- */ -- relOid = RangeVarGetRelid(rel, NoLock, false); -- -- tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relOid)); -- if (!HeapTupleIsValid(tuple)) /* should not happen */ -- elog(ERROR, "cache lookup failed for relation %u", relOid); -- -- if (!pg_class_ownercheck(relOid, GetUserId())) -- aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CLASS, -- rel->relname); -- -- if (noCatalogs) -- { -- if (!allowSystemTableMods && -- IsSystemClass((Form_pg_class) GETSTRUCT(tuple))) -- ereport(ERROR, -- (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), -- errmsg("permission denied: \"%s\" is a system catalog", -- rel->relname))); -- } -- -- ReleaseSysCache(tuple); --} -- -- --/* - * CommandIsReadOnly: is an executable query read-only? - * - * This is a much stricter test than we apply for XactReadOnly mode; -@@ -723,7 +680,8 @@ standard_ProcessUtility(Node *parsetree, - if (OidIsValid(relid)) - { - /* Run parse analysis ... */ -- stmts = transformAlterTableStmt(atstmt, queryString); -+ stmts = transformAlterTableStmt(relid, atstmt, -+ queryString); - - /* ... and do it */ - foreach(l, stmts) -@@ -910,18 +868,36 @@ standard_ProcessUtility(Node *parsetree, - case T_IndexStmt: /* CREATE INDEX */ - { - IndexStmt *stmt = (IndexStmt *) parsetree; -+ Oid relid; -+ LOCKMODE lockmode; - - if (stmt->concurrent) - PreventTransactionChain(isTopLevel, - "CREATE INDEX CONCURRENTLY"); - -- CheckRelationOwnership(stmt->relation, true); -+ /* -+ * Look up the relation OID just once, right here at the -+ * beginning, so that we don't end up repeating the name -+ * lookup later and latching onto a different relation -+ * partway through. To avoid lock upgrade hazards, it's -+ * important that we take the strongest lock that will -+ * eventually be needed here, so the lockmode calculation -+ * needs to match what DefineIndex() does. -+ */ -+ lockmode = stmt->concurrent ? ShareUpdateExclusiveLock -+ : ShareLock; -+ relid = -+ RangeVarGetRelidExtended(stmt->relation, lockmode, -+ false, false, -+ RangeVarCallbackOwnsRelation, -+ NULL); - - /* Run parse analysis ... */ -- stmt = transformIndexStmt(stmt, queryString); -+ stmt = transformIndexStmt(relid, stmt, queryString); - - /* ... and do it */ -- DefineIndex(stmt, -+ DefineIndex(relid, /* OID of heap relation */ -+ stmt, - InvalidOid, /* no predefined OID */ - false, /* is_alter_table */ - true, /* check_rights */ -@@ -1057,7 +1033,8 @@ standard_ProcessUtility(Node *parsetree, - - case T_CreateTrigStmt: - (void) CreateTrigger((CreateTrigStmt *) parsetree, queryString, -- InvalidOid, InvalidOid, false); -+ InvalidOid, InvalidOid, InvalidOid, -+ InvalidOid, false); - break; - - case T_CreatePLangStmt: -diff --git a/src/include/catalog/pg_constraint.h b/src/include/catalog/pg_constraint.h -index d9d40b2..d8f8da4 100644 ---- a/src/include/catalog/pg_constraint.h -+++ b/src/include/catalog/pg_constraint.h -@@ -246,6 +246,7 @@ extern char *ChooseConstraintName(const char *name1, const char *name2, - - extern void AlterConstraintNamespaces(Oid ownerId, Oid oldNspId, - Oid newNspId, bool isType, ObjectAddresses *objsMoved); -+extern void get_constraint_relation_oids(Oid constraint_oid, Oid *conrelid, Oid *confrelid); - extern Oid get_relation_constraint_oid(Oid relid, const char *conname, bool missing_ok); - extern Oid get_domain_constraint_oid(Oid typid, const char *conname, bool missing_ok); - -diff --git a/src/include/commands/defrem.h b/src/include/commands/defrem.h -index 9b6d57a..a00fd37 100644 ---- a/src/include/commands/defrem.h -+++ b/src/include/commands/defrem.h -@@ -20,7 +20,8 @@ - extern void RemoveObjects(DropStmt *stmt); - - /* commands/indexcmds.c */ --extern Oid DefineIndex(IndexStmt *stmt, -+extern Oid DefineIndex(Oid relationId, -+ IndexStmt *stmt, - Oid indexRelationId, - bool is_alter_table, - bool check_rights, -@@ -35,7 +36,6 @@ extern char *makeObjectName(const char *name1, const char *name2, - extern char *ChooseRelationName(const char *name1, const char *name2, - const char *label, Oid namespaceid); - extern bool CheckIndexCompatible(Oid oldId, -- RangeVar *heapRelation, - char *accessMethodName, - List *attributeList, - List *exclusionOpNames); -diff --git a/src/include/commands/tablecmds.h b/src/include/commands/tablecmds.h -index 4f32062..d41f8a1 100644 ---- a/src/include/commands/tablecmds.h -+++ b/src/include/commands/tablecmds.h -@@ -78,4 +78,6 @@ extern void AtEOSubXact_on_commit_actions(bool isCommit, - extern void RangeVarCallbackOwnsTable(const RangeVar *relation, - Oid relId, Oid oldRelId, void *arg); - -+extern void RangeVarCallbackOwnsRelation(const RangeVar *relation, -+ Oid relId, Oid oldRelId, void *noCatalogs); - #endif /* TABLECMDS_H */ -diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h -index 9303341..0869c0b 100644 ---- a/src/include/commands/trigger.h -+++ b/src/include/commands/trigger.h -@@ -109,7 +109,7 @@ extern PGDLLIMPORT int SessionReplicationRole; - #define TRIGGER_DISABLED 'D' - - extern Oid CreateTrigger(CreateTrigStmt *stmt, const char *queryString, -- Oid constraintOid, Oid indexOid, -+ Oid relOid, Oid refRelOid, Oid constraintOid, Oid indexOid, - bool isInternal); - - extern void RemoveTriggerById(Oid trigOid); -diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h -index 327f7cf..31f5479 100644 ---- a/src/include/nodes/parsenodes.h -+++ b/src/include/nodes/parsenodes.h -@@ -1566,6 +1566,8 @@ typedef struct Constraint - /* Fields used for constraints that allow a NOT VALID specification */ - bool skip_validation; /* skip validation of existing rows? */ - bool initially_valid; /* mark the new constraint as valid? */ -+ -+ Oid old_pktable_oid; /* pg_constraint.confrelid of my former self */ - } Constraint; - - /* ---------------------- -diff --git a/src/include/parser/parse_utilcmd.h b/src/include/parser/parse_utilcmd.h -index 4ad793a..d8b340e 100644 ---- a/src/include/parser/parse_utilcmd.h -+++ b/src/include/parser/parse_utilcmd.h -@@ -18,9 +18,10 @@ - - - extern List *transformCreateStmt(CreateStmt *stmt, const char *queryString); --extern List *transformAlterTableStmt(AlterTableStmt *stmt, -+extern List *transformAlterTableStmt(Oid relid, AlterTableStmt *stmt, - const char *queryString); --extern IndexStmt *transformIndexStmt(IndexStmt *stmt, const char *queryString); -+extern IndexStmt *transformIndexStmt(Oid relid, IndexStmt *stmt, -+ const char *queryString); - extern void transformRuleStmt(RuleStmt *stmt, const char *queryString, - List **actions, Node **whereClause); - extern List *transformCreateSchemaStmt(CreateSchemaStmt *stmt); -diff --git a/src/include/tcop/utility.h b/src/include/tcop/utility.h -index 54190b2..ae871ca 100644 ---- a/src/include/tcop/utility.h -+++ b/src/include/tcop/utility.h -@@ -42,6 +42,4 @@ extern LogStmtLevel GetCommandLogLevel(Node *parsetree); - - extern bool CommandIsReadOnly(Node *parsetree); - --extern void CheckRelationOwnership(RangeVar *rel, bool noCatalogs); -- - #endif /* UTILITY_H */ --- -1.7.5.4 - diff --git a/meta-oe/recipes-support/postgresql/files/0006-Fix-handling-of-wide-datetime-input-output.patch b/meta-oe/recipes-support/postgresql/files/0006-Fix-handling-of-wide-datetime-input-output.patch deleted file mode 100644 index fac0a7347cd..00000000000 --- a/meta-oe/recipes-support/postgresql/files/0006-Fix-handling-of-wide-datetime-input-output.patch +++ /dev/null @@ -1,465 +0,0 @@ -From f416622be81d1320417bbc7892fd562cae0dba72 Mon Sep 17 00:00:00 2001 -From: Noah Misch -Date: Mon, 17 Feb 2014 09:33:31 -0500 -Subject: [PATCH] Fix handling of wide datetime input/output. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit f416622be81d1320417bbc7892fd562cae0dba72 REL9_2_STABLE - -Many server functions use the MAXDATELEN constant to size a buffer for -parsing or displaying a datetime value. It was much too small for the -longest possible interval output and slightly too small for certain -valid timestamp input, particularly input with a long timezone name. -The long input was rejected needlessly; the long output caused -interval_out() to overrun its buffer. ECPG's pgtypes library has a copy -of the vulnerable functions, which bore the same vulnerabilities along -with some of its own. In contrast to the server, certain long inputs -caused stack overflow rather than failing cleanly. Back-patch to 8.4 -(all supported versions). - -Reported by Daniel Schüssler, reviewed by Tom Lane. - -Security: CVE-2014-0063 - - -Upstream-Status: Backport - -Signed-off-by: Kai Kang ---- - src/include/utils/datetime.h | 17 +++++--- - src/interfaces/ecpg/pgtypeslib/datetime.c | 4 +- - src/interfaces/ecpg/pgtypeslib/dt.h | 17 +++++--- - src/interfaces/ecpg/pgtypeslib/dt_common.c | 44 ++++++++++++++------ - src/interfaces/ecpg/pgtypeslib/interval.c | 2 +- - src/interfaces/ecpg/pgtypeslib/timestamp.c | 2 +- - .../ecpg/test/expected/pgtypeslib-dt_test2.c | 22 +++++++--- - .../ecpg/test/expected/pgtypeslib-dt_test2.stdout | 19 ++++++++ - src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc | 10 ++++ - src/test/regress/expected/interval.out | 7 +++ - src/test/regress/sql/interval.sql | 2 + - 11 files changed, 111 insertions(+), 35 deletions(-) - -diff --git a/src/include/utils/datetime.h b/src/include/utils/datetime.h -index d73cc8d..4b805b6 100644 ---- a/src/include/utils/datetime.h -+++ b/src/include/utils/datetime.h -@@ -188,12 +188,17 @@ struct tzEntry; - #define DTK_DATE_M (DTK_M(YEAR) | DTK_M(MONTH) | DTK_M(DAY)) - #define DTK_TIME_M (DTK_M(HOUR) | DTK_M(MINUTE) | DTK_ALL_SECS_M) - --#define MAXDATELEN 63 /* maximum possible length of an input date -- * string (not counting tr. null) */ --#define MAXDATEFIELDS 25 /* maximum possible number of fields in a date -- * string */ --#define TOKMAXLEN 10 /* only this many chars are stored in -- * datetktbl */ -+/* -+ * Working buffer size for input and output of interval, timestamp, etc. -+ * Inputs that need more working space will be rejected early. Longer outputs -+ * will overrun buffers, so this must suffice for all possible output. As of -+ * this writing, interval_out() needs the most space at ~90 bytes. -+ */ -+#define MAXDATELEN 128 -+/* maximum possible number of fields in a date string */ -+#define MAXDATEFIELDS 25 -+/* only this many chars are stored in datetktbl */ -+#define TOKMAXLEN 10 - - /* keep this struct small; it gets used a lot */ - typedef struct -diff --git a/src/interfaces/ecpg/pgtypeslib/datetime.c b/src/interfaces/ecpg/pgtypeslib/datetime.c -index 823626f..4adcd1e 100644 ---- a/src/interfaces/ecpg/pgtypeslib/datetime.c -+++ b/src/interfaces/ecpg/pgtypeslib/datetime.c -@@ -61,14 +61,14 @@ PGTYPESdate_from_asc(char *str, char **endptr) - int nf; - char *field[MAXDATEFIELDS]; - int ftype[MAXDATEFIELDS]; -- char lowstr[MAXDATELEN + 1]; -+ char lowstr[MAXDATELEN + MAXDATEFIELDS]; - char *realptr; - char **ptr = (endptr != NULL) ? endptr : &realptr; - - bool EuroDates = FALSE; - - errno = 0; -- if (strlen(str) >= sizeof(lowstr)) -+ if (strlen(str) > MAXDATELEN) - { - errno = PGTYPES_DATE_BAD_DATE; - return INT_MIN; -diff --git a/src/interfaces/ecpg/pgtypeslib/dt.h b/src/interfaces/ecpg/pgtypeslib/dt.h -index dfe6f9e..2780593 100644 ---- a/src/interfaces/ecpg/pgtypeslib/dt.h -+++ b/src/interfaces/ecpg/pgtypeslib/dt.h -@@ -192,12 +192,17 @@ typedef double fsec_t; - #define DTK_DATE_M (DTK_M(YEAR) | DTK_M(MONTH) | DTK_M(DAY)) - #define DTK_TIME_M (DTK_M(HOUR) | DTK_M(MINUTE) | DTK_M(SECOND)) - --#define MAXDATELEN 63 /* maximum possible length of an input date -- * string (not counting tr. null) */ --#define MAXDATEFIELDS 25 /* maximum possible number of fields in a date -- * string */ --#define TOKMAXLEN 10 /* only this many chars are stored in -- * datetktbl */ -+/* -+ * Working buffer size for input and output of interval, timestamp, etc. -+ * Inputs that need more working space will be rejected early. Longer outputs -+ * will overrun buffers, so this must suffice for all possible output. As of -+ * this writing, PGTYPESinterval_to_asc() needs the most space at ~90 bytes. -+ */ -+#define MAXDATELEN 128 -+/* maximum possible number of fields in a date string */ -+#define MAXDATEFIELDS 25 -+/* only this many chars are stored in datetktbl */ -+#define TOKMAXLEN 10 - - /* keep this struct small; it gets used a lot */ - typedef struct -diff --git a/src/interfaces/ecpg/pgtypeslib/dt_common.c b/src/interfaces/ecpg/pgtypeslib/dt_common.c -index 6b89e4a..18178dd 100644 ---- a/src/interfaces/ecpg/pgtypeslib/dt_common.c -+++ b/src/interfaces/ecpg/pgtypeslib/dt_common.c -@@ -1171,15 +1171,22 @@ DecodeNumberField(int len, char *str, int fmask, - if ((cp = strchr(str, '.')) != NULL) - { - #ifdef HAVE_INT64_TIMESTAMP -- char fstr[MAXDATELEN + 1]; -+ char fstr[7]; -+ int i; -+ -+ cp++; - - /* - * OK, we have at most six digits to care about. Let's construct a -- * string and then do the conversion to an integer. -+ * string with those digits, zero-padded on the right, and then do -+ * the conversion to an integer. -+ * -+ * XXX This truncates the seventh digit, unlike rounding it as do -+ * the backend and the !HAVE_INT64_TIMESTAMP case. - */ -- strcpy(fstr, (cp + 1)); -- strcpy(fstr + strlen(fstr), "000000"); -- *(fstr + 6) = '\0'; -+ for (i = 0; i < 6; i++) -+ fstr[i] = *cp != '\0' ? *cp++ : '0'; -+ fstr[i] = '\0'; - *fsec = strtol(fstr, NULL, 10); - #else - *fsec = strtod(cp, NULL); -@@ -1531,15 +1538,22 @@ DecodeTime(char *str, int *tmask, struct tm * tm, fsec_t *fsec) - else if (*cp == '.') - { - #ifdef HAVE_INT64_TIMESTAMP -- char fstr[MAXDATELEN + 1]; -+ char fstr[7]; -+ int i; -+ -+ cp++; - - /* -- * OK, we have at most six digits to work with. Let's construct a -- * string and then do the conversion to an integer. -+ * OK, we have at most six digits to care about. Let's construct a -+ * string with those digits, zero-padded on the right, and then do -+ * the conversion to an integer. -+ * -+ * XXX This truncates the seventh digit, unlike rounding it as do -+ * the backend and the !HAVE_INT64_TIMESTAMP case. - */ -- strncpy(fstr, (cp + 1), 7); -- strcpy(fstr + strlen(fstr), "000000"); -- *(fstr + 6) = '\0'; -+ for (i = 0; i < 6; i++) -+ fstr[i] = *cp != '\0' ? *cp++ : '0'; -+ fstr[i] = '\0'; - *fsec = strtol(fstr, &cp, 10); - #else - str = cp; -@@ -1665,6 +1679,9 @@ DecodePosixTimezone(char *str, int *tzp) - * DTK_NUMBER can hold date fields (yy.ddd) - * DTK_STRING can hold months (January) and time zones (PST) - * DTK_DATE can hold Posix time zones (GMT-8) -+ * -+ * The "lowstr" work buffer must have at least strlen(timestr) + MAXDATEFIELDS -+ * bytes of space. On output, field[] entries will point into it. - */ - int - ParseDateTime(char *timestr, char *lowstr, -@@ -1677,7 +1694,10 @@ ParseDateTime(char *timestr, char *lowstr, - /* outer loop through fields */ - while (*(*endstr) != '\0') - { -+ /* Record start of current field */ - field[nf] = lp; -+ if (nf >= MAXDATEFIELDS) -+ return -1; - - /* leading digit? then date or time */ - if (isdigit((unsigned char) *(*endstr))) -@@ -1818,8 +1838,6 @@ ParseDateTime(char *timestr, char *lowstr, - /* force in a delimiter after each field */ - *lp++ = '\0'; - nf++; -- if (nf > MAXDATEFIELDS) -- return -1; - } - - *numfields = nf; -diff --git a/src/interfaces/ecpg/pgtypeslib/interval.c b/src/interfaces/ecpg/pgtypeslib/interval.c -index bcc10ee..fdd8f49 100644 ---- a/src/interfaces/ecpg/pgtypeslib/interval.c -+++ b/src/interfaces/ecpg/pgtypeslib/interval.c -@@ -1092,7 +1092,7 @@ PGTYPESinterval_from_asc(char *str, char **endptr) - tm->tm_sec = 0; - fsec = 0; - -- if (strlen(str) >= sizeof(lowstr)) -+ if (strlen(str) > MAXDATELEN) - { - errno = PGTYPES_INTVL_BAD_INTERVAL; - return NULL; -diff --git a/src/interfaces/ecpg/pgtypeslib/timestamp.c b/src/interfaces/ecpg/pgtypeslib/timestamp.c -index 7d3f7c8..4f91e63 100644 ---- a/src/interfaces/ecpg/pgtypeslib/timestamp.c -+++ b/src/interfaces/ecpg/pgtypeslib/timestamp.c -@@ -297,7 +297,7 @@ PGTYPEStimestamp_from_asc(char *str, char **endptr) - char *realptr; - char **ptr = (endptr != NULL) ? endptr : &realptr; - -- if (strlen(str) >= sizeof(lowstr)) -+ if (strlen(str) > MAXDATELEN) - { - errno = PGTYPES_TS_BAD_TIMESTAMP; - return (noresult); -diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c -index d3ebb0e..0ba1936 100644 ---- a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c -+++ b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c -@@ -45,6 +45,15 @@ char *dates[] = { "19990108foobar", - "1999.008", - "J2451187", - "January 8, 99 BC", -+ /* -+ * Maximize space usage in ParseDateTime() with 25 -+ * (MAXDATEFIELDS) fields and 128 (MAXDATELEN) total length. -+ */ -+ "........................Xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" -+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", -+ /* 26 fields */ -+ ".........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" -+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - NULL }; - - /* do not conflict with libc "times" symbol */ -@@ -52,6 +61,7 @@ static char *times[] = { "0:04", - "1:59 PDT", - "13:24:40 -8:00", - "13:24:40.495+3", -+ "13:24:40.123456789+3", - NULL }; - - char *intervals[] = { "1 minute", -@@ -73,22 +83,22 @@ main(void) - - - --#line 52 "dt_test2.pgc" -+#line 62 "dt_test2.pgc" - date date1 ; - --#line 53 "dt_test2.pgc" -+#line 63 "dt_test2.pgc" - timestamp ts1 , ts2 ; - --#line 54 "dt_test2.pgc" -+#line 64 "dt_test2.pgc" - char * text ; - --#line 55 "dt_test2.pgc" -+#line 65 "dt_test2.pgc" - interval * i1 ; - --#line 56 "dt_test2.pgc" -+#line 66 "dt_test2.pgc" - date * dc ; - /* exec sql end declare section */ --#line 57 "dt_test2.pgc" -+#line 67 "dt_test2.pgc" - - - int i, j; -diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.stdout b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.stdout -index 24e9d26..9a4587b 100644 ---- a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.stdout -+++ b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.stdout -@@ -8,85 +8,104 @@ TS[3,0]: 1999-01-08 00:04:00 - TS[3,1]: 1999-01-08 01:59:00 - TS[3,2]: 1999-01-08 13:24:40 - TS[3,3]: 1999-01-08 13:24:40.495 -+TS[3,4]: 1999-01-08 13:24:40.123456 - Date[4]: 1999-01-08 (N - F) - TS[4,0]: 1999-01-08 00:04:00 - TS[4,1]: 1999-01-08 01:59:00 - TS[4,2]: 1999-01-08 13:24:40 - TS[4,3]: 1999-01-08 13:24:40.495 -+TS[4,4]: 1999-01-08 13:24:40.123456 - Date[5]: 1999-01-08 (N - F) - TS[5,0]: 1999-01-08 00:04:00 - TS[5,1]: 1999-01-08 01:59:00 - TS[5,2]: 1999-01-08 13:24:40 - TS[5,3]: 1999-01-08 13:24:40.495 -+TS[5,4]: 1999-01-08 13:24:40.123456 - Date[6]: 1999-01-18 (N - F) - TS[6,0]: 1999-01-18 00:04:00 - TS[6,1]: 1999-01-18 01:59:00 - TS[6,2]: 1999-01-18 13:24:40 - TS[6,3]: 1999-01-18 13:24:40.495 -+TS[6,4]: 1999-01-18 13:24:40.123456 - Date[7]: 2003-01-02 (N - F) - TS[7,0]: 2003-01-02 00:04:00 - TS[7,1]: 2003-01-02 01:59:00 - TS[7,2]: 2003-01-02 13:24:40 - TS[7,3]: 2003-01-02 13:24:40.495 -+TS[7,4]: 2003-01-02 13:24:40.123456 - Date[8]: 1999-01-08 (N - F) - TS[8,0]: 1999-01-08 00:04:00 - TS[8,1]: 1999-01-08 01:59:00 - TS[8,2]: 1999-01-08 13:24:40 - TS[8,3]: 1999-01-08 13:24:40.495 -+TS[8,4]: 1999-01-08 13:24:40.123456 - Date[9]: 1999-01-08 (N - F) - TS[9,0]: 1999-01-08 00:04:00 - TS[9,1]: 1999-01-08 01:59:00 - TS[9,2]: 1999-01-08 13:24:40 - TS[9,3]: 1999-01-08 13:24:40.495 -+TS[9,4]: 1999-01-08 13:24:40.123456 - Date[10]: 1999-01-08 (N - F) - TS[10,0]: 1999-01-08 00:04:00 - TS[10,1]: 1999-01-08 01:59:00 - TS[10,2]: 1999-01-08 13:24:40 - TS[10,3]: 1999-01-08 13:24:40.495 -+TS[10,4]: 1999-01-08 13:24:40.123456 - Date[11]: 1999-01-08 (N - F) - TS[11,0]: 1999-01-08 00:04:00 - TS[11,1]: 1999-01-08 01:59:00 - TS[11,2]: 1999-01-08 13:24:40 - TS[11,3]: 1999-01-08 13:24:40.495 -+TS[11,4]: 1999-01-08 13:24:40.123456 - Date[12]: 1999-01-08 (N - F) - TS[12,0]: 1999-01-08 00:04:00 - TS[12,1]: 1999-01-08 01:59:00 - TS[12,2]: 1999-01-08 13:24:40 - TS[12,3]: 1999-01-08 13:24:40.495 -+TS[12,4]: 1999-01-08 13:24:40.123456 - Date[13]: 2006-01-08 (N - F) - TS[13,0]: 2006-01-08 00:04:00 - TS[13,1]: 2006-01-08 01:59:00 - TS[13,2]: 2006-01-08 13:24:40 - TS[13,3]: 2006-01-08 13:24:40.495 -+TS[13,4]: 2006-01-08 13:24:40.123456 - Date[14]: 1999-01-08 (N - F) - TS[14,0]: 1999-01-08 00:04:00 - TS[14,1]: 1999-01-08 01:59:00 - TS[14,2]: 1999-01-08 13:24:40 - TS[14,3]: 1999-01-08 13:24:40.495 -+TS[14,4]: 1999-01-08 13:24:40.123456 - Date[15]: 1999-01-08 (N - F) - TS[15,0]: 1999-01-08 00:04:00 - TS[15,1]: 1999-01-08 01:59:00 - TS[15,2]: 1999-01-08 13:24:40 - TS[15,3]: 1999-01-08 13:24:40.495 -+TS[15,4]: 1999-01-08 13:24:40.123456 - Date[16]: 1999-01-08 (N - F) - TS[16,0]: 1999-01-08 00:04:00 - TS[16,1]: 1999-01-08 01:59:00 - TS[16,2]: 1999-01-08 13:24:40 - TS[16,3]: 1999-01-08 13:24:40.495 -+TS[16,4]: 1999-01-08 13:24:40.123456 - Date[17]: 1999-01-08 (N - F) - TS[17,0]: 1999-01-08 00:04:00 - TS[17,1]: 1999-01-08 01:59:00 - TS[17,2]: 1999-01-08 13:24:40 - TS[17,3]: 1999-01-08 13:24:40.495 -+TS[17,4]: 1999-01-08 13:24:40.123456 - Date[18]: 1999-01-08 (N - F) - TS[18,0]: 1999-01-08 00:04:00 - TS[18,1]: 1999-01-08 01:59:00 - TS[18,2]: 1999-01-08 13:24:40 - TS[18,3]: 1999-01-08 13:24:40.495 -+TS[18,4]: 1999-01-08 13:24:40.123456 - Date[19]: 0099-01-08 BC (N - F) - TS[19,0]: 0099-01-08 00:04:00 BC - TS[19,1]: 0099-01-08 01:59:00 BC - TS[19,2]: 0099-01-08 13:24:40 BC -+TS[19,4]: 0099-01-08 13:24:40.123456 BC -+Date[20]: - (N - T) -+Date[21]: - (N - T) - interval[0]: @ 1 min - interval_copy[0]: @ 1 min - interval[1]: @ 1 day 12 hours 59 mins 10 secs -diff --git a/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc b/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc -index 0edf012..a127dd9 100644 ---- a/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc -+++ b/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc -@@ -27,6 +27,15 @@ char *dates[] = { "19990108foobar", - "1999.008", - "J2451187", - "January 8, 99 BC", -+ /* -+ * Maximize space usage in ParseDateTime() with 25 -+ * (MAXDATEFIELDS) fields and 128 (MAXDATELEN) total length. -+ */ -+ "........................Xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" -+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", -+ /* 26 fields */ -+ ".........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" -+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - NULL }; - - /* do not conflict with libc "times" symbol */ -@@ -34,6 +43,7 @@ static char *times[] = { "0:04", - "1:59 PDT", - "13:24:40 -8:00", - "13:24:40.495+3", -+ "13:24:40.123456789+3", - NULL }; - - char *intervals[] = { "1 minute", -diff --git a/src/test/regress/expected/interval.out b/src/test/regress/expected/interval.out -index 3bf2211..99fd0ca 100644 ---- a/src/test/regress/expected/interval.out -+++ b/src/test/regress/expected/interval.out -@@ -306,6 +306,13 @@ select '4 millenniums 5 centuries 4 decades 1 year 4 months 4 days 17 minutes 31 - @ 4541 years 4 mons 4 days 17 mins 31 secs - (1 row) - -+-- test long interval output -+select '100000000y 10mon -1000000000d -1000000000h -10min -10.000001s ago'::interval; -+ interval -+------------------------------------------------------------------------------------------- -+ @ 100000000 years 10 mons -1000000000 days -1000000000 hours -10 mins -10.000001 secs ago -+(1 row) -+ - -- test justify_hours() and justify_days() - SELECT justify_hours(interval '6 months 3 days 52 hours 3 minutes 2 seconds') as "6 mons 5 days 4 hours 3 mins 2 seconds"; - 6 mons 5 days 4 hours 3 mins 2 seconds -diff --git a/src/test/regress/sql/interval.sql b/src/test/regress/sql/interval.sql -index f1da4c2..7cee286 100644 ---- a/src/test/regress/sql/interval.sql -+++ b/src/test/regress/sql/interval.sql -@@ -108,6 +108,8 @@ select avg(f1) from interval_tbl; - -- test long interval input - select '4 millenniums 5 centuries 4 decades 1 year 4 months 4 days 17 minutes 31 seconds'::interval; - -+-- test long interval output -+select '100000000y 10mon -1000000000d -1000000000h -10min -10.000001s ago'::interval; - - -- test justify_hours() and justify_days() - --- -1.7.5.4 - diff --git a/meta-oe/recipes-support/postgresql/files/0007-Make-pqsignal-available-to-pg_regress-of-ECPG-and-is.patch b/meta-oe/recipes-support/postgresql/files/0007-Make-pqsignal-available-to-pg_regress-of-ECPG-and-is.patch deleted file mode 100644 index 3cffc0a852c..00000000000 --- a/meta-oe/recipes-support/postgresql/files/0007-Make-pqsignal-available-to-pg_regress-of-ECPG-and-is.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 0ae841a98c21c53901d5bc9a9323a8cc800364f6 Mon Sep 17 00:00:00 2001 -From: Noah Misch -Date: Sat, 14 Jun 2014 10:52:25 -0400 -Subject: [PATCH] Make pqsignal() available to pg_regress of ECPG and - isolation suites. - -commit 0ae841a98c21c53901d5bc9a9323a8cc800364f6 REL9_2_STABLE - -Commit 453a5d91d49e4d35054f92785d830df4067e10c1 made it available to the -src/test/regress build of pg_regress, but all pg_regress builds need the -same treatment. Patch 9.2 through 8.4; in 9.3 and later, pg_regress -gets pqsignal() via libpgport. - - -Upstream-Status: Backport - -Signed-off-by: Kai Kang ---- - src/interfaces/ecpg/test/Makefile | 4 ++-- - src/test/isolation/Makefile | 12 +++++++----- - 2 files changed, 9 insertions(+), 7 deletions(-) - -diff --git a/src/interfaces/ecpg/test/Makefile b/src/interfaces/ecpg/test/Makefile -index e9944c6..4bb9525 100644 ---- a/src/interfaces/ecpg/test/Makefile -+++ b/src/interfaces/ecpg/test/Makefile -@@ -47,10 +47,10 @@ clean distclean maintainer-clean: - - all: pg_regress$(X) - --pg_regress$(X): pg_regress_ecpg.o $(top_builddir)/src/test/regress/pg_regress.o -+pg_regress$(X): pg_regress_ecpg.o $(top_builddir)/src/test/regress/pg_regress.o $(top_builddir)/src/test/regress/pqsignal.o - $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) $^ $(LIBS) -o $@ - --$(top_builddir)/src/test/regress/pg_regress.o: -+$(top_builddir)/src/test/regress/pg_regress.o $(top_builddir)/src/test/regress/pqsignal.o: - $(MAKE) -C $(dir $@) $(notdir $@) - - # dependencies ensure that path changes propagate -diff --git a/src/test/isolation/Makefile b/src/test/isolation/Makefile -index 46ea6f0..e20ba48 100644 ---- a/src/test/isolation/Makefile -+++ b/src/test/isolation/Makefile -@@ -15,13 +15,15 @@ OBJS = specparse.o isolationtester.o - - all: isolationtester$(X) pg_isolation_regress$(X) - --submake-regress: -+pg_regress.o: - $(MAKE) -C $(top_builddir)/src/test/regress pg_regress.o -- --pg_regress.o: | submake-regress - rm -f $@ && $(LN_S) $(top_builddir)/src/test/regress/pg_regress.o . - --pg_isolation_regress$(X): isolation_main.o pg_regress.o -+pqsignal.o: -+ $(MAKE) -C $(top_builddir)/src/test/regress pqsignal.o -+ rm -f $@ && $(LN_S) $(top_builddir)/src/test/regress/pqsignal.o . -+ -+pg_isolation_regress$(X): isolation_main.o pg_regress.o pqsignal.o - $(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@ - - isolationtester$(X): $(OBJS) | submake-libpq submake-libpgport -@@ -59,7 +61,7 @@ endif - # so do not clean them here - clean distclean: - rm -f isolationtester$(X) pg_isolation_regress$(X) $(OBJS) isolation_main.o -- rm -f pg_regress.o -+ rm -f pg_regress.o pqsignal.o - rm -rf $(pg_regress_clean_files) - - maintainer-clean: distclean --- -1.7.5.4 - diff --git a/meta-oe/recipes-support/postgresql/files/0008-Prevent-potential-overruns-of-fixed-size-buffers.patch b/meta-oe/recipes-support/postgresql/files/0008-Prevent-potential-overruns-of-fixed-size-buffers.patch deleted file mode 100644 index 62ec9354d4b..00000000000 --- a/meta-oe/recipes-support/postgresql/files/0008-Prevent-potential-overruns-of-fixed-size-buffers.patch +++ /dev/null @@ -1,393 +0,0 @@ -From 655b665f745e2e07cf6936c6063b0250f5caa98f Mon Sep 17 00:00:00 2001 -From: Tom Lane -Date: Mon, 17 Feb 2014 11:20:27 -0500 -Subject: [PATCH] Prevent potential overruns of fixed-size buffers. - -commit 655b665f745e2e07cf6936c6063b0250f5caa98f REL9_2_STABLE - -Coverity identified a number of places in which it couldn't prove that a -string being copied into a fixed-size buffer would fit. We believe that -most, perhaps all of these are in fact safe, or are copying data that is -coming from a trusted source so that any overrun is not really a security -issue. Nonetheless it seems prudent to forestall any risk by using -strlcpy() and similar functions. - -Fixes by Peter Eisentraut and Jozef Mlich based on Coverity reports. - -In addition, fix a potential null-pointer-dereference crash in -contrib/chkpass. The crypt(3) function is defined to return NULL on -failure, but chkpass.c didn't check for that before using the result. -The main practical case in which this could be an issue is if libc is -configured to refuse to execute unapproved hashing algorithms (e.g., -"FIPS mode"). This ideally should've been a separate commit, but -since it touches code adjacent to one of the buffer overrun changes, -I included it in this commit to avoid last-minute merge issues. -This issue was reported by Honza Horak. - -Security: CVE-2014-0065 for buffer overruns, CVE-2014-0066 for crypt() - -Upsteam-Status: Backport - -Signed-off-by: Kai Kang ---- - contrib/chkpass/chkpass.c | 29 ++++++++++++++++++++++++++--- - contrib/pg_standby/pg_standby.c | 2 +- - src/backend/access/transam/xlog.c | 10 +++++----- - src/backend/tsearch/spell.c | 2 +- - src/backend/utils/adt/datetime.c | 11 ++++++----- - src/bin/initdb/findtimezone.c | 4 ++-- - src/bin/pg_basebackup/pg_basebackup.c | 8 ++++---- - src/interfaces/ecpg/preproc/pgc.l | 2 +- - src/interfaces/libpq/fe-protocol2.c | 2 +- - src/interfaces/libpq/fe-protocol3.c | 2 +- - src/port/exec.c | 4 ++-- - src/test/regress/pg_regress.c | 6 +++--- - src/timezone/pgtz.c | 2 +- - 13 files changed, 54 insertions(+), 30 deletions(-) - -diff --git a/contrib/chkpass/chkpass.c b/contrib/chkpass/chkpass.c -index 0c9fec0..1795b8c 100644 ---- a/contrib/chkpass/chkpass.c -+++ b/contrib/chkpass/chkpass.c -@@ -70,6 +70,7 @@ chkpass_in(PG_FUNCTION_ARGS) - char *str = PG_GETARG_CSTRING(0); - chkpass *result; - char mysalt[4]; -+ char *crypt_output; - static char salt_chars[] = - "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - -@@ -92,7 +93,15 @@ chkpass_in(PG_FUNCTION_ARGS) - mysalt[1] = salt_chars[random() & 0x3f]; - mysalt[2] = 0; /* technically the terminator is not necessary - * but I like to play safe */ -- strcpy(result->password, crypt(str, mysalt)); -+ -+ crypt_output = crypt(str, mysalt); -+ if (crypt_output == NULL) -+ ereport(ERROR, -+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE), -+ errmsg("crypt() failed"))); -+ -+ strlcpy(result->password, crypt_output, sizeof(result->password)); -+ - PG_RETURN_POINTER(result); - } - -@@ -141,9 +150,16 @@ chkpass_eq(PG_FUNCTION_ARGS) - chkpass *a1 = (chkpass *) PG_GETARG_POINTER(0); - text *a2 = PG_GETARG_TEXT_PP(1); - char str[9]; -+ char *crypt_output; - - text_to_cstring_buffer(a2, str, sizeof(str)); -- PG_RETURN_BOOL(strcmp(a1->password, crypt(str, a1->password)) == 0); -+ crypt_output = crypt(str, a1->password); -+ if (crypt_output == NULL) -+ ereport(ERROR, -+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE), -+ errmsg("crypt() failed"))); -+ -+ PG_RETURN_BOOL(strcmp(a1->password, crypt_output) == 0); - } - - PG_FUNCTION_INFO_V1(chkpass_ne); -@@ -153,7 +169,14 @@ chkpass_ne(PG_FUNCTION_ARGS) - chkpass *a1 = (chkpass *) PG_GETARG_POINTER(0); - text *a2 = PG_GETARG_TEXT_PP(1); - char str[9]; -+ char *crypt_output; - - text_to_cstring_buffer(a2, str, sizeof(str)); -- PG_RETURN_BOOL(strcmp(a1->password, crypt(str, a1->password)) != 0); -+ crypt_output = crypt(str, a1->password); -+ if (crypt_output == NULL) -+ ereport(ERROR, -+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE), -+ errmsg("crypt() failed"))); -+ -+ PG_RETURN_BOOL(strcmp(a1->password, crypt_output) != 0); - } -diff --git a/contrib/pg_standby/pg_standby.c b/contrib/pg_standby/pg_standby.c -index 84941ed..0f1e0c1 100644 ---- a/contrib/pg_standby/pg_standby.c -+++ b/contrib/pg_standby/pg_standby.c -@@ -338,7 +338,7 @@ SetWALFileNameForCleanup(void) - if (strcmp(restartWALFileName, nextWALFileName) > 0) - return false; - -- strcpy(exclusiveCleanupFileName, restartWALFileName); -+ strlcpy(exclusiveCleanupFileName, restartWALFileName, sizeof(exclusiveCleanupFileName)); - return true; - } - -diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c -index d639c4a..49bb453 100644 ---- a/src/backend/access/transam/xlog.c -+++ b/src/backend/access/transam/xlog.c -@@ -3017,7 +3017,7 @@ KeepFileRestoredFromArchive(char *path, char *xlogfname) - xlogfpath, oldpath))); - } - #else -- strncpy(oldpath, xlogfpath, MAXPGPATH); -+ strlcpy(oldpath, xlogfpath, MAXPGPATH); - #endif - if (unlink(oldpath) != 0) - ereport(FATAL, -@@ -5913,7 +5913,7 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis) - - recordRestorePointData = (xl_restore_point *) XLogRecGetData(record); - recordXtime = recordRestorePointData->rp_time; -- strncpy(recordRPName, recordRestorePointData->rp_name, MAXFNAMELEN); -+ strlcpy(recordRPName, recordRestorePointData->rp_name, MAXFNAMELEN); - } - else - return false; -@@ -6008,7 +6008,7 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis) - } - else - { -- strncpy(recoveryStopName, recordRPName, MAXFNAMELEN); -+ strlcpy(recoveryStopName, recordRPName, MAXFNAMELEN); - - ereport(LOG, - (errmsg("recovery stopping at restore point \"%s\", time %s", -@@ -6348,7 +6348,7 @@ StartupXLOG(void) - * see them - */ - XLogCtl->RecoveryTargetTLI = recoveryTargetTLI; -- strncpy(XLogCtl->archiveCleanupCommand, -+ strlcpy(XLogCtl->archiveCleanupCommand, - archiveCleanupCommand ? archiveCleanupCommand : "", - sizeof(XLogCtl->archiveCleanupCommand)); - -@@ -8760,7 +8760,7 @@ XLogRestorePoint(const char *rpName) - xl_restore_point xlrec; - - xlrec.rp_time = GetCurrentTimestamp(); -- strncpy(xlrec.rp_name, rpName, MAXFNAMELEN); -+ strlcpy(xlrec.rp_name, rpName, MAXFNAMELEN); - - rdata.buffer = InvalidBuffer; - rdata.data = (char *) &xlrec; -diff --git a/src/backend/tsearch/spell.c b/src/backend/tsearch/spell.c -index 449aa6a..4acc33e 100644 ---- a/src/backend/tsearch/spell.c -+++ b/src/backend/tsearch/spell.c -@@ -255,7 +255,7 @@ NIAddSpell(IspellDict *Conf, const char *word, const char *flag) - } - Conf->Spell[Conf->nspell] = (SPELL *) tmpalloc(SPELLHDRSZ + strlen(word) + 1); - strcpy(Conf->Spell[Conf->nspell]->word, word); -- strncpy(Conf->Spell[Conf->nspell]->p.flag, flag, MAXFLAGLEN); -+ strlcpy(Conf->Spell[Conf->nspell]->p.flag, flag, MAXFLAGLEN); - Conf->nspell++; - } - -diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c -index 4763a6f..4105f17 100644 ---- a/src/backend/utils/adt/datetime.c -+++ b/src/backend/utils/adt/datetime.c -@@ -90,10 +90,10 @@ char *days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", - * Note that this table must be strictly alphabetically ordered to allow an - * O(ln(N)) search algorithm to be used. - * -- * The text field is NOT guaranteed to be NULL-terminated. -+ * The token field is NOT guaranteed to be NULL-terminated. - * -- * To keep this table reasonably small, we divide the lexval for TZ and DTZ -- * entries by 15 (so they are on 15 minute boundaries) and truncate the text -+ * To keep this table reasonably small, we divide the value for TZ and DTZ -+ * entries by 15 (so they are on 15 minute boundaries) and truncate the token - * field at TOKMAXLEN characters. - * Formerly, we divided by 10 rather than 15 but there are a few time zones - * which are 30 or 45 minutes away from an even hour, most are on an hour -@@ -108,7 +108,7 @@ static datetkn *timezonetktbl = NULL; - static int sztimezonetktbl = 0; - - static const datetkn datetktbl[] = { --/* text, token, lexval */ -+ /* token, type, value */ - {EARLY, RESERV, DTK_EARLY}, /* "-infinity" reserved for "early time" */ - {DA_D, ADBC, AD}, /* "ad" for years > 0 */ - {"allballs", RESERV, DTK_ZULU}, /* 00:00:00 */ -@@ -188,7 +188,7 @@ static const datetkn datetktbl[] = { - static int szdatetktbl = sizeof datetktbl / sizeof datetktbl[0]; - - static datetkn deltatktbl[] = { -- /* text, token, lexval */ -+ /* token, type, value */ - {"@", IGNORE_DTF, 0}, /* postgres relative prefix */ - {DAGO, AGO, 0}, /* "ago" indicates negative time offset */ - {"c", UNITS, DTK_CENTURY}, /* "century" relative */ -@@ -4201,6 +4201,7 @@ ConvertTimeZoneAbbrevs(TimeZoneAbbrevTable *tbl, - tbl->numabbrevs = n; - for (i = 0; i < n; i++) - { -+ /* do NOT use strlcpy here; token field need not be null-terminated */ - strncpy(newtbl[i].token, abbrevs[i].abbrev, TOKMAXLEN); - newtbl[i].type = abbrevs[i].is_dst ? DTZ : TZ; - TOVAL(&newtbl[i], abbrevs[i].offset / MINS_PER_HOUR); -diff --git a/src/bin/initdb/findtimezone.c b/src/bin/initdb/findtimezone.c -index 6d6f96a..6d38151 100644 ---- a/src/bin/initdb/findtimezone.c -+++ b/src/bin/initdb/findtimezone.c -@@ -68,7 +68,7 @@ pg_open_tzfile(const char *name, char *canonname) - if (canonname) - strlcpy(canonname, name, TZ_STRLEN_MAX + 1); - -- strcpy(fullname, pg_TZDIR()); -+ strlcpy(fullname, pg_TZDIR(), sizeof(fullname)); - if (strlen(fullname) + 1 + strlen(name) >= MAXPGPATH) - return -1; /* not gonna fit */ - strcat(fullname, "/"); -@@ -375,7 +375,7 @@ identify_system_timezone(void) - } - - /* Search for the best-matching timezone file */ -- strcpy(tmptzdir, pg_TZDIR()); -+ strlcpy(tmptzdir, pg_TZDIR(), sizeof(tmptzdir)); - bestscore = -1; - resultbuf[0] = '\0'; - scan_available_timezones(tmptzdir, tmptzdir + strlen(tmptzdir) + 1, -diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c -index 9d840a1..26cc758 100644 ---- a/src/bin/pg_basebackup/pg_basebackup.c -+++ b/src/bin/pg_basebackup/pg_basebackup.c -@@ -735,9 +735,9 @@ ReceiveAndUnpackTarFile(PGconn *conn, PGresult *res, int rownum) - FILE *file = NULL; - - if (PQgetisnull(res, rownum, 0)) -- strcpy(current_path, basedir); -+ strlcpy(current_path, basedir, sizeof(current_path)); - else -- strcpy(current_path, PQgetvalue(res, rownum, 1)); -+ strlcpy(current_path, PQgetvalue(res, rownum, 1), sizeof(current_path)); - - /* - * Get the COPY data -@@ -1053,7 +1053,7 @@ BaseBackup(void) - progname); - disconnect_and_exit(1); - } -- strcpy(xlogstart, PQgetvalue(res, 0, 0)); -+ strlcpy(xlogstart, PQgetvalue(res, 0, 0), sizeof(xlogstart)); - if (verbose && includewal) - fprintf(stderr, "transaction log start point: %s\n", xlogstart); - PQclear(res); -@@ -1153,7 +1153,7 @@ BaseBackup(void) - progname); - disconnect_and_exit(1); - } -- strcpy(xlogend, PQgetvalue(res, 0, 0)); -+ strlcpy(xlogend, PQgetvalue(res, 0, 0), sizeof(xlogend)); - if (verbose && includewal) - fprintf(stderr, "transaction log end point: %s\n", xlogend); - PQclear(res); -diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l -index f2e7edd..7ae8556 100644 ---- a/src/interfaces/ecpg/preproc/pgc.l -+++ b/src/interfaces/ecpg/preproc/pgc.l -@@ -1315,7 +1315,7 @@ parse_include(void) - yytext[i] = '\0'; - memmove(yytext, yytext+1, strlen(yytext)); - -- strncpy(inc_file, yytext, sizeof(inc_file)); -+ strlcpy(inc_file, yytext, sizeof(inc_file)); - yyin = fopen(inc_file, "r"); - if (!yyin) - { -diff --git a/src/interfaces/libpq/fe-protocol2.c b/src/interfaces/libpq/fe-protocol2.c -index 1ba5885..af4c412 100644 ---- a/src/interfaces/libpq/fe-protocol2.c -+++ b/src/interfaces/libpq/fe-protocol2.c -@@ -500,7 +500,7 @@ pqParseInput2(PGconn *conn) - if (!conn->result) - return; - } -- strncpy(conn->result->cmdStatus, conn->workBuffer.data, -+ strlcpy(conn->result->cmdStatus, conn->workBuffer.data, - CMDSTATUS_LEN); - checkXactStatus(conn, conn->workBuffer.data); - conn->asyncStatus = PGASYNC_READY; -diff --git a/src/interfaces/libpq/fe-protocol3.c b/src/interfaces/libpq/fe-protocol3.c -index d289f82..6f8a470 100644 ---- a/src/interfaces/libpq/fe-protocol3.c -+++ b/src/interfaces/libpq/fe-protocol3.c -@@ -206,7 +206,7 @@ pqParseInput3(PGconn *conn) - if (!conn->result) - return; - } -- strncpy(conn->result->cmdStatus, conn->workBuffer.data, -+ strlcpy(conn->result->cmdStatus, conn->workBuffer.data, - CMDSTATUS_LEN); - conn->asyncStatus = PGASYNC_READY; - break; -diff --git a/src/port/exec.c b/src/port/exec.c -index c79e8ba..0726dbe 100644 ---- a/src/port/exec.c -+++ b/src/port/exec.c -@@ -66,7 +66,7 @@ validate_exec(const char *path) - if (strlen(path) >= strlen(".exe") && - pg_strcasecmp(path + strlen(path) - strlen(".exe"), ".exe") != 0) - { -- strcpy(path_exe, path); -+ strlcpy(path_exe, path, sizeof(path_exe) - 4); - strcat(path_exe, ".exe"); - path = path_exe; - } -@@ -275,7 +275,7 @@ resolve_symlinks(char *path) - } - - /* must copy final component out of 'path' temporarily */ -- strcpy(link_buf, fname); -+ strlcpy(link_buf, fname, sizeof(link_buf)); - - if (!getcwd(path, MAXPGPATH)) - { -diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c -index d991a5c..a6466eb 100644 ---- a/src/test/regress/pg_regress.c -+++ b/src/test/regress/pg_regress.c -@@ -1233,7 +1233,7 @@ results_differ(const char *testname, const char *resultsfile, const char *defaul - */ - platform_expectfile = get_expectfile(testname, resultsfile); - -- strcpy(expectfile, default_expectfile); -+ strlcpy(expectfile, default_expectfile, sizeof(expectfile)); - if (platform_expectfile) - { - /* -@@ -1288,7 +1288,7 @@ results_differ(const char *testname, const char *resultsfile, const char *defaul - { - /* This diff was a better match than the last one */ - best_line_count = l; -- strcpy(best_expect_file, alt_expectfile); -+ strlcpy(best_expect_file, alt_expectfile, sizeof(best_expect_file)); - } - free(alt_expectfile); - } -@@ -1316,7 +1316,7 @@ results_differ(const char *testname, const char *resultsfile, const char *defaul - { - /* This diff was a better match than the last one */ - best_line_count = l; -- strcpy(best_expect_file, default_expectfile); -+ strlcpy(best_expect_file, default_expectfile, sizeof(best_expect_file)); - } - } - -diff --git a/src/timezone/pgtz.c b/src/timezone/pgtz.c -index d5bc83e..80c5635 100644 ---- a/src/timezone/pgtz.c -+++ b/src/timezone/pgtz.c -@@ -83,7 +83,7 @@ pg_open_tzfile(const char *name, char *canonname) - * Loop to split the given name into directory levels; for each level, - * search using scan_directory_ci(). - */ -- strcpy(fullname, pg_TZDIR()); -+ strlcpy(fullname, pg_TZDIR(), sizeof(fullname)); - orignamelen = fullnamelen = strlen(fullname); - fname = name; - for (;;) --- -1.7.5.4 - diff --git a/meta-oe/recipes-support/postgresql/files/no-ecpg-test.patch b/meta-oe/recipes-support/postgresql/files/no-ecpg-test.patch deleted file mode 100644 index c0f28f4258b..00000000000 --- a/meta-oe/recipes-support/postgresql/files/no-ecpg-test.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/interfaces/ecpg/Makefile b/src/interfaces/ecpg/Makefile -index dcd578f..1428423 100644 ---- a/src/interfaces/ecpg/Makefile -+++ b/src/interfaces/ecpg/Makefile -@@ -8,7 +8,6 @@ all install installdirs uninstall dep depend distprep: - $(MAKE) -C ecpglib $@ - $(MAKE) -C compatlib $@ - $(MAKE) -C preproc $@ -- $(MAKE) -C test $@ - - clean distclean maintainer-clean: - -$(MAKE) -C include $@ diff --git a/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch b/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch new file mode 100644 index 00000000000..e199f391438 --- /dev/null +++ b/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch @@ -0,0 +1,31 @@ +[PATCH] not check libperl under cross compiling + +Upstream-Status: Inappropriate [configuration] + +libperl ldflags returned by PGAC_CHECK_PERL_EMBED_LDFLAGS are native, +can not be used to check target library. + +postpresql has the dependency on perl, so not need to check libperl +again, like in postgresql-9.2.4 + +Signed-off-by: Roy Li +--- + configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index ae1a5a0..9a0970d 100644 +--- a/configure.in ++++ b/configure.in +@@ -1877,7 +1877,7 @@ if test "$with_tcl" = yes; then + fi + + # check for +-if test "$with_perl" = yes; then ++if test "$with_perl" = yes && test "$cross_compiling" = no; then + ac_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I$perl_archlibexp/CORE" + AC_CHECK_HEADER(perl.h, [], [AC_MSG_ERROR([header file is required for Perl])], +-- +1.9.1 + diff --git a/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch b/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch new file mode 100644 index 00000000000..be23fd419d4 --- /dev/null +++ b/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch @@ -0,0 +1,16 @@ +Index: postgresql-9.2.4/configure.in +=================================================================== +--- postgresql-9.2.4.orig/configure.in ++++ postgresql-9.2.4/configure.in +@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch un + + AC_INIT([PostgreSQL], [9.4.2], [pgsql-bugs@postgresql.org]) + +-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. +-Untested combinations of 'autoconf' and PostgreSQL versions are not +-recommended. You can remove the check from 'configure.in' but it is then +-your responsibility whether the result works or not.])]) + AC_COPYRIGHT([Copyright (c) 1996-2014, PostgreSQL Global Development Group]) + AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) + AC_CONFIG_AUX_DIR(config) + diff --git a/meta-oe/recipes-support/postgresql/postgresql-9.2.4/ecpg-parallel-make-fix.patch b/meta-oe/recipes-support/postgresql/postgresql-9.2.4/ecpg-parallel-make-fix.patch deleted file mode 100644 index 63615cd5174..00000000000 --- a/meta-oe/recipes-support/postgresql/postgresql-9.2.4/ecpg-parallel-make-fix.patch +++ /dev/null @@ -1,31 +0,0 @@ -Upstream-status: backport - -From 602070f9cce790debd8d1469254e7726ab499ae7 Mon Sep 17 00:00:00 2001 -From: Peter Eisentraut -Date: Fri, 29 Mar 2013 21:39:55 -0400 -Subject: [PATCH] ecpg: Parallel make fix - -In some parallel make situations, the install-headers target could be -called before the installation directories are created by installdirs, -causing the installation to fail. Fix that by making install-headers -depend on installdirs. ---- - src/interfaces/ecpg/include/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/interfaces/ecpg/include/Makefile b/src/interfaces/ecpg/include/Makefile -index eab833b..e92e56f 100644 ---- a/src/interfaces/ecpg/include/Makefile -+++ b/src/interfaces/ecpg/include/Makefile -@@ -18,7 +18,7 @@ ecpg_headers = ecpgerrno.h ecpglib.h ecpgtype.h sqlca.h sql3types.h ecpg_informi - sqlda.h sqlda-compat.h sqlda-native.h - informix_headers = datetime.h decimal.h sqltypes.h - --install-headers: $(ecpg_headers) $(informix_headers) -+install-headers: $(ecpg_headers) $(informix_headers) installdirs - $(INSTALL_DATA) $(addprefix $(srcdir)/,$(ecpg_headers)) '$(DESTDIR)$(includedir)/' - $(INSTALL_DATA) $(addprefix $(srcdir)/,$(informix_headers)) '$(DESTDIR)$(informix_esql_dir)/' - $(INSTALL_DATA) $(ecpg_config_h) '$(DESTDIR)$(includedir)' --- -1.8.3.4 - diff --git a/meta-oe/recipes-support/postgresql/postgresql-9.2.4/remove.autoconf.version.check.patch b/meta-oe/recipes-support/postgresql/postgresql-9.2.4/remove.autoconf.version.check.patch deleted file mode 100644 index 022aa3d760f..00000000000 --- a/meta-oe/recipes-support/postgresql/postgresql-9.2.4/remove.autoconf.version.check.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: postgresql-9.2.4/configure.in -=================================================================== ---- postgresql-9.2.4.orig/configure.in -+++ postgresql-9.2.4/configure.in -@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch un - - AC_INIT([PostgreSQL], [9.2.4], [pgsql-bugs@postgresql.org]) - --m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.63], [], [m4_fatal([Autoconf version 2.63 is required. --Untested combinations of 'autoconf' and PostgreSQL versions are not --recommended. You can remove the check from 'configure.in' but it is then --your responsibility whether the result works or not.])]) - AC_COPYRIGHT([Copyright (c) 1996-2012, PostgreSQL Global Development Group]) - AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) - AC_CONFIG_AUX_DIR(config) diff --git a/meta-oe/recipes-support/postgresql/postgresql.inc b/meta-oe/recipes-support/postgresql/postgresql.inc index 1397f564de9..812c2aed488 100644 --- a/meta-oe/recipes-support/postgresql/postgresql.inc +++ b/meta-oe/recipes-support/postgresql/postgresql.inc @@ -12,40 +12,34 @@ DESCRIPTION = "\ server over a network connection. This package contains the docs \ in HTML for the whole package, as well as command-line utilities for \ managing PostgreSQL databases on a PostgreSQL server. \ - \ + \ If you want to manipulate a PostgreSQL database on a local or remote \ PostgreSQL server, you need this package. You also need to install \ this package if you're installing the postgresql-server package. \ - " +" HOMEPAGE = "http://www.postgresql.com" LICENSE = "BSD" DEPENDS = "zlib readline tzcode-native" -INC_PR = "r0" ARM_INSTRUCTION_SET = "arm" SRC_URI = "http://ftp.postgresql.org/pub/source/v${PV}/${BP}.tar.bz2 \ - file://postgresql.init \ - file://postgresql-bashprofile \ - file://postgresql.pam \ - file://postgresql-setup \ - file://postgresql.service \ - file://0001-Use-pkg-config-for-libxml2-detection.patch \ - file://0002-Predict-integer-overflow-to-avoid-buffer-overruns.patch \ - file://0003-Shore-up-ADMIN-OPTION-restrictions.patch \ - file://0004-Prevent-privilege-escalation-in-explicit-calls-to-PL.patch \ - file://0005-Avoid-repeated-name-lookups-during-table-and-index-D.patch \ - file://0006-Fix-handling-of-wide-datetime-input-output.patch \ - file://0007-Make-pqsignal-available-to-pg_regress-of-ECPG-and-is.patch \ - file://0008-Prevent-potential-overruns-of-fixed-size-buffers.patch \ - " + file://postgresql.init \ + file://postgresql-bashprofile \ + file://postgresql.pam \ + file://postgresql-setup \ + file://postgresql.service \ + file://0001-Use-pkg-config-for-libxml2-detection.patch \ +" LEAD_SONAME = "libpq.so" # LDFLAGS for shared libraries export LDFLAGS_SL = "${LDFLAGS}" -inherit autotools pkgconfig perlnative pythonnative useradd update-rc.d systemd +inherit autotools pkgconfig perlnative pythonnative useradd update-rc.d systemd gettext + +CFLAGS += "-I${STAGING_INCDIR}/${PYTHON_DIR} -I${STAGING_INCDIR}/tcl8.6" SYSTEMD_SERVICE_${PN} = "postgresql.service" SYSTEMD_AUTO_ENABLE_${PN} = "disable" @@ -60,30 +54,27 @@ pkg_postinst_${PN} () { fi } -enable_pam = "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" +enable_pam = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" PACKAGECONFIG ??= "${enable_pam} openssl python uuid libxml tcl nls libxml perl" PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl," PACKAGECONFIG[python] = "--with-python,--without-python,python,python" PACKAGECONFIG[uuid] = "--with-ossp-uuid,--without-ossp-uuid,ossp-uuid," -# when tcl native package is fixed change WORKDIR to STAGING_BINDIR_CROSS -PACKAGECONFIG[tcl] = \ - "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl," +PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl tcl-native," PACKAGECONFIG[nls] = "--enable-nls,--disable-nls,," PACKAGECONFIG[libxml] = "--with-libxml,--without-libxml,libxml2,libxml2" PACKAGECONFIG[perl] = "--with-perl,--without-perl,perl,perl" EXTRA_OECONF += "--enable-thread-safety --disable-rpath \ - --datadir=${datadir}/${BPN} \ - --sysconfdir=${sysconfdir}/${BPN} \ - --without-krb5 \ + --datadir=${datadir}/${BPN} \ + --sysconfdir=${sysconfdir}/${BPN} \ " EXTRA_OECONF_sh4 += "--disable-spinlocks" EXTRA_OECONF_aarch64 += "--disable-spinlocks" PACKAGES_DYNAMIC += "^${PN}-plperl ^${PN}-plperl-dbg \ - ^${PN}-pltcl ^${PN}-pltcl-dbg \ - ^${PN}-plpython ^${PN}-plpython-dbg \ + ^${PN}-pltcl ^${PN}-pltcl-dbg \ + ^${PN}-plpython ^${PN}-plpython-dbg \ " python populate_packages_prepend() { @@ -92,14 +83,14 @@ python populate_packages_prepend() { if name is None or name.strip() == "": return - fpack=d.getVar('PACKAGES') or "" + fpack=d.getVar('PACKAGES', False) or "" fpack="${PN}-" + name + " " + fpack if dbg: fpack="${PN}-" + name + "-dbg" + " " + fpack d.setVar('PACKAGES', fpack) - conf=(d.getVar('PACKAGECONFIG', True) or "").split() - pack=d.getVar('PACKAGES') or "" + conf=(d.getVar('PACKAGECONFIG') or "").split() + pack=d.getVar('PACKAGES', False) or "" bb.debug(1, "PACKAGECONFIG=%s" % conf) bb.debug(1, "PACKAGES1=%s" % pack ) @@ -112,52 +103,49 @@ python populate_packages_prepend() { if "python" in conf: fill_more("plpython") - pack=d.getVar('PACKAGES', True) or "" + pack=d.getVar('PACKAGES') or "" bb.debug(1, "PACKAGES2=%s" % pack) } do_configure() { - # do_configure_prepend - # make sure configure finds python includdirs with these envs - export BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ - STAGING_INCDIR=${STAGING_INCDIR} \ - STAGING_LIBDIR=${STAGING_LIBDIR} - - # do_configure - autotools_do_configure - - # do_configure_append - # workaround perl package related bugs - sed -i -e "s:-L/usr/local/lib:-L=/usr/local/lib:g" \ - ${B}/src/Makefile.global - LIBPNA="\${STAGING_LIBDIR_NATIVE}/perl-native" - LIBNA="\${STAGING_LIBDIR_NATIVE}" - BLIBNA="\${STAGING_BASE_LIBDIR_NATIVE}" - sed -i -e "/^perl_archlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \ - ${B}/src/Makefile.global - sed -i -e "/^perl_privlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \ - ${B}/src/Makefile.global - # remove the rpath, replace with correct lib path - sed -i \ - -e "/^perl_embed_ldflags/s:-Wl,-rpath,${LIBNA}::g" \ - -e "/^perl_embed_ldflags/s:-Wl,-rpath,${BLIBNA}::g" \ - -e "/^perl_embed_ldflags/s:-Wl,-rpath-link,${LIBNA}::g" \ - -e "/^perl_embed_ldflags/s:-Wl,-rpath-link,${BLIBNA}::g" \ - -e "/^perl_embed_ldflags/s:${LIBPNA}:${STAGING_LIBDIR}:g" \ - -e "/^perl_embed_ldflags/s:${LIBNA}:${STAGING_LIBDIR}:g" \ - -e "/^perl_embed_ldflags/s:${BLIBNA}:${STAGING_BASELIBDIR}:g" \ - ${B}/src/Makefile.global - - # workaround perl package's libperl.so problem - # we are using perlnative so this perl should have same version - perl_version=`perl -v 2>/dev/null | \ + # do_configure + autotools_do_configure + + # do_configure_append + # workaround perl package related bugs + sed -i -e "s:-L/usr/local/lib:-L=/usr/local/lib:g" \ + ${B}/src/Makefile.global + LIBPNA="\${STAGING_LIBDIR_NATIVE}/perl-native" + LIBNA="\${STAGING_LIBDIR_NATIVE}" + BLIBNA="\${STAGING_BASE_LIBDIR_NATIVE}" + sed -i -e "/^perl_archlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \ + ${B}/src/Makefile.global + sed -i -e "/^perl_privlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \ + ${B}/src/Makefile.global + # remove the rpath, replace with correct lib path + sed -i \ + -e "/^perl_embed_ldflags/s:-Wl,-rpath,${LIBNA}::g" \ + -e "/^perl_embed_ldflags/s:-Wl,-rpath,${BLIBNA}::g" \ + -e "/^perl_embed_ldflags/s:-Wl,-rpath-link,${LIBNA}::g" \ + -e "/^perl_embed_ldflags/s:-Wl,-rpath-link,${BLIBNA}::g" \ + -e "/^perl_embed_ldflags/s:${LIBPNA}:${STAGING_LIBDIR}:g" \ + -e "/^perl_embed_ldflags/s:${LIBNA}:${STAGING_LIBDIR}:g" \ + -e "/^perl_embed_ldflags/s:${BLIBNA}:${STAGING_BASELIBDIR}:g" \ + -e "/^TCLSH/s:=.*:= ${bindir}/tclsh:g" \ + ${B}/src/Makefile.global + + if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then + # workaround perl package's libperl.so problem + # we are using perlnative so this perl should have same version + perl_version=`perl -v 2>/dev/null | \ sed -n 's/This is perl.*v[a-z ]*\([0-9]\.[0-9][0-9.]*\).*$/\1/p'` - if [ ! -h "${STAGING_LIBDIR}/perl/$perl_version/CORE/libperl.so" -a \ - ! -h "${STAGING_LIBDIR}/libperl.so" ]; then - ln -sf ../../../libperl.so.5 \ - ${STAGING_LIBDIR}/perl/$perl_version/CORE/libperl.so - fi + if [ ! -h "${STAGING_LIBDIR}/perl/$perl_version/CORE/libperl.so" -a \ + ! -h "${STAGING_LIBDIR}/libperl.so" ]; then + ln -sf ../../../libperl.so.5 \ + ${STAGING_LIBDIR}/perl/$perl_version/CORE/libperl.so + fi + fi } do_compile_append() { @@ -185,7 +173,7 @@ do_install_append() { # install COPYRIGHT README HISTORY install -d -m 0755 ${D}${docdir}/${BPN} - for i in ${B}/{COPYRIGHT,README,HISTORY} ${B}/doc/{KNOWN_BUGS,MISSING_FEATURES,README*,bug.template}; do + for i in ${B}/COPYRIGHT ${B}/README ${B}/HISTORY ${B}/doc/KNOWN_BUGS ${B}/doc/MISSING_FEATURES ${B}/doc/README* ${B}/doc/bug.template; do [ -f $i ] && install $i ${D}${docdir}/${BPN} done @@ -201,7 +189,7 @@ do_install_append() { # multiple server config directory install -d -m 700 ${D}${sysconfdir}/default/${BPN} - if [ "${@d.getVar('enable_pam', True)}" = "pam" ]; then + if [ "${@d.getVar('enable_pam')}" = "pam" ]; then install -d ${D}${sysconfdir}/pam.d install -m 644 ${WORKDIR}/postgresql.pam ${D}${sysconfdir}/pam.d/postgresql fi @@ -216,11 +204,11 @@ do_install_append() { SSTATE_SCAN_FILES += "Makefile.global" PACKAGES =+ "${PN}-client ${PN}-server-dev ${PN}-timezone \ - libecpg-compat-dbg libecpg-compat libecpg-compat-dev \ - libecpg-dbg libecpg libecpg-dev libecpg-staticdev libecpg-doc \ - libpq-dbg libpq libpq-dev libpq-staticdev \ - libpgtypes-dbg libpgtypes libpgtypes-staticdev libpgtypes-dev \ - ${PN}-contrib ${PN}-contrib-dbg \ + libecpg-compat-dbg libecpg-compat libecpg-compat-dev \ + libecpg-dbg libecpg libecpg-dev libecpg-staticdev libecpg-doc \ + libpq-dbg libpq libpq-dev libpq-staticdev \ + libpgtypes-dbg libpgtypes libpgtypes-staticdev libpgtypes-dev \ + ${PN}-contrib ${PN}-contrib-dbg \ " FILES_${PN} += "${sysconfdir}/init.d/${BPN}-server \ @@ -231,7 +219,7 @@ FILES_${PN} += "${sysconfdir}/init.d/${BPN}-server \ ${libdir}/${BPN}/libpqwalreceiver.so \ ${libdir}/${BPN}/*_and_*.so \ ${@'${sysconfdir}/pam.d/postgresql' \ - if 'pam' == d.getVar('enable_pam', True) \ + if 'pam' == d.getVar('enable_pam') \ else ''} \ " @@ -243,21 +231,21 @@ FILES_${PN}-dbg += " ${libdir}/${BPN}/.debug/dict_snowball.so \ " FILES_${PN}-client = "${bindir}/clusterdb \ - ${bindir}/createdb \ - ${bindir}/createlang \ - ${bindir}/createuser \ - ${bindir}/dropdb \ - ${bindir}/droplang \ - ${bindir}/dropuser \ - ${bindir}/pg_dump \ - ${bindir}/pg_dumpall \ - ${bindir}/pg_restore \ - ${bindir}/psql \ - ${bindir}/reindexdb \ - ${bindir}/vacuumdb \ - ${bindir}/vacuumlo \ - ${datadir}/${BPN}/psqlrc.sample" - + ${bindir}/createdb \ + ${bindir}/createlang \ + ${bindir}/createuser \ + ${bindir}/dropdb \ + ${bindir}/droplang \ + ${bindir}/dropuser \ + ${bindir}/pg_dump \ + ${bindir}/pg_dumpall \ + ${bindir}/pg_restore \ + ${bindir}/psql \ + ${bindir}/reindexdb \ + ${bindir}/vacuumdb \ + ${bindir}/vacuumlo \ + ${datadir}/${BPN}/psqlrc.sample \ +" FILES_${PN}-client-doc = "${mandir}/man1/clusterdb.* \ ${mandir}/man1/createdb.* ${mandir}/man1/createlang.* \ ${mandir}/man1/createuser.* ${mandir}/man1/dropdb.* \ @@ -267,13 +255,11 @@ FILES_${PN}-client-doc = "${mandir}/man1/clusterdb.* \ ${mandir}/man1/reindexdb.* ${mandir}/man1/vacuumdb.* \ ${mandir}/man7/* \ " - FILES_${PN}-doc += "${docdir}/${BPN}/html ${libdir}/${BPN}/tutorial/ \ ${mandir}/man1/initdb.* ${mandir}/man1/pg_controldata.* \ ${mandir}/man1/pg_ctl.* ${mandir}/man1/pg_resetxlog.* \ ${mandir}/man1/postgres.* ${mandir}/man1/postmaster.* \ " - FILES_${PN}-timezone = "${datadir}/${BPN}/timezone \ ${datadir}/${BPN}/timezonesets \ " @@ -283,10 +269,11 @@ FILES_${PN}-server-dev = "${includedir}/${BPN}/server" FILES_libecpg = "${libdir}/libecpg*${SOLIBS}" FILES_libecpg-dbg = "${libdir}/.debug/libecpg*" FILES_libecpg-dev = "${libdir}/libecpg*${SOLIBSDEV} \ - ${libdir}/libpgtypes*${SOLIBSDEV} \ - ${includedir}/ecpg*.h ${includedir}/${BPN}/ecpg*.h \ - ${includedir}/pgtypes*.h ${includedir}/${BPN}/informix \ - ${includedir}/sql3types.h ${includedir}/sqlca.h" + ${libdir}/libpgtypes*${SOLIBSDEV} \ + ${includedir}/ecpg*.h ${includedir}/${BPN}/ecpg*.h \ + ${includedir}/pgtypes*.h ${includedir}/${BPN}/informix \ + ${includedir}/sql3types.h ${includedir}/sqlca.h \ +" FILES_libecpg-doc = "${mandir}/man1/ecpg.*" FILES_libecpg-staticdev = "${libdir}/libecpg*.a" SECTION_libecpg-staticdev = "devel" @@ -295,7 +282,8 @@ RDEPENDS_libecpg-staticdev = "libecpg-dev (= ${EXTENDPKGV})" FILES_libpq = "${libdir}/libpq*${SOLIBS}" FILES_libpq-dbg = "${libdir}/.debug/libpq* ${libdir}/${BPN}/pgxs/src/test/regress/.debug/*" FILES_libpq-dev = "${libdir}/libpq*${SOLIBSDEV} \ - ${includedir}" + ${includedir} \ +" FILES_libpq-staticdev = "${libdir}/libpq*.a ${libdir}/libpgport.a" SECTION_libpq-staticdev = "devel" RDEPENDS_libpq-staticdev = "libpq-dev (= ${EXTENDPKGV})" diff --git a/meta-oe/recipes-support/postgresql/postgresql_9.2.4.bb b/meta-oe/recipes-support/postgresql/postgresql_9.2.4.bb deleted file mode 100644 index 49ca53fae3e..00000000000 --- a/meta-oe/recipes-support/postgresql/postgresql_9.2.4.bb +++ /dev/null @@ -1,13 +0,0 @@ -require postgresql.inc - -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ab55a5887d3f8ba77d0fd7db787e4bab" - -PR = "${INC_PR}.0" - -SRC_URI += "\ - file://remove.autoconf.version.check.patch \ - file://ecpg-parallel-make-fix.patch \ -" - -SRC_URI[md5sum] = "6ee5bb53b97da7c6ad9cb0825d3300dd" -SRC_URI[sha256sum] = "d97dd918a88a4449225998f46aafa85216a3f89163a3411830d6890507ffae93" diff --git a/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb b/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb new file mode 100644 index 00000000000..eec099a1296 --- /dev/null +++ b/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb @@ -0,0 +1,15 @@ +require postgresql.inc + +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=81b69ddb31a8be66baafd14a90146ee2" + +SRC_URI += "\ + file://remove.autoconf.version.check.patch \ + file://not-check-libperl.patch \ +" + +do_compile_prepend_libc-musl() { + sed -i -e 's/\-lnsl//g' ${B}/src/Makefile.global +} + +SRC_URI[md5sum] = "0aada0833a9208ae5fab966c73c39379" +SRC_URI[sha256sum] = "12bfb3c7e8e45515ef921ad365e122682a5c4935dcc0032644433af2de31acc4" diff --git a/meta-oe/recipes-support/pps-tools/pps-tools_git.bb b/meta-oe/recipes-support/pps-tools/pps-tools_git.bb index 73c46eecdec..8bf9036990d 100644 --- a/meta-oe/recipes-support/pps-tools/pps-tools_git.bb +++ b/meta-oe/recipes-support/pps-tools/pps-tools_git.bb @@ -1,4 +1,5 @@ SUMMARY = "User-space tools for LinuxPPS" +HOMEPAGE = "http://linuxpps.org" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" diff --git a/meta-oe/recipes-support/procmail/procmail_3.22.bb b/meta-oe/recipes-support/procmail/procmail_3.22.bb index 1063654f5c0..aa474ceb14e 100644 --- a/meta-oe/recipes-support/procmail/procmail_3.22.bb +++ b/meta-oe/recipes-support/procmail/procmail_3.22.bb @@ -29,16 +29,17 @@ do_configure() { export CFLAGS="${BUILD_CFLAGS}" export AR="${BUILD_AR}" export AS="${BUILD_AS}" - make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" autoconf.h + make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}" autoconf.h } do_compile() { - oe_runmake -i TARGET_CFLAGS="$TARGET_CFLAGS -Wno-comments -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" + oe_runmake -i TARGET_CFLAGS="$TARGET_CFLAGS -Wno-comments -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}" } do_install() { install -d ${D}${bindir} - install -d ${D}${mandir}/man{1,5} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man5 oe_runmake -i BASENAME=${D}/usr MANDIR=${D}${mandir} install install -m 0644 debian/mailstat.1 ${D}${mandir}/man1 } diff --git a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch new file mode 100644 index 00000000000..7eda0387565 --- /dev/null +++ b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch @@ -0,0 +1,26 @@ +[PATCH] do not use the hardcode libdir + +Upstream-status: Pending + +Signed-off-by: Roy.Li +Signed-off-by: Jackie Huang +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 9b88d4c..df5ad7a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -140,7 +140,7 @@ if test "$with_libpq" != yes; then + if test -d "$with_libpq"; then + PATH="$PATH:$with_libpq/bin" + CPPFLAGS="$CPPFLAGS -I$with_libpq/include" +- LDFLAGS="$LDFLAGS -L$with_libpq/lib" ++ LDFLAGS="$LDFLAGS -L$with_libpq/${base_libdir}" + else + if test -x "$with_libpq"; then + PG_CONFIG=$with_libpq +-- +2.8.1 + diff --git a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch new file mode 100644 index 00000000000..a8f14e7689f --- /dev/null +++ b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch @@ -0,0 +1,148 @@ +Subject: [PATCH] psqlodbc: fixes for ptest support + +* Fix the LIBODBC since we don't use ODBC_CONFIG. +* Fix the path for driver. +* Add the default info of postgresql server. +* Fix the output format for ptest. +* Fix the results and exe dir. + +Upstream-Status: Inappropriate [OE ptest specific] + +Signed-off-by: Jackie Huang +--- + test/Makefile.in | 2 +- + test/odbcini-gen.sh | 8 ++++---- + test/runsuite.c | 26 +++++++++++++------------- + 3 files changed, 18 insertions(+), 18 deletions(-) + +diff --git a/test/Makefile.in b/test/Makefile.in +index 8710616..fcb470e 100644 +--- a/test/Makefile.in ++++ b/test/Makefile.in +@@ -18,7 +18,7 @@ CFLAGS = @CFLAGS@ + ODBC_CONFIG = @ODBC_CONFIG@ + PROVE = @PROVE@ + +-LIBODBC := $(shell $(ODBC_CONFIG) --libs) ++LIBODBC = -lodbc + + all: $(TESTBINS) runsuite reset-db + +diff --git a/test/odbcini-gen.sh b/test/odbcini-gen.sh +index d2c2c87..6068d9d 100755 +--- a/test/odbcini-gen.sh ++++ b/test/odbcini-gen.sh +@@ -6,7 +6,7 @@ + outini=odbc.ini + outinstini=odbcinst.ini + +-drvr=../.libs/psqlodbcw ++drvr=@LIBDIR@/psqlodbca + driver=${drvr}.so + if test ! -e $driver ; then + driver=${drvr}.dll +@@ -33,10 +33,10 @@ Driver = psqlodbc test driver + Trace = No + TraceFile = + Database = contrib_regression +-Servername = +-Username = ++Servername = localhost ++Username = postgres + Password = +-Port = ++Port = 5432 + ReadOnly = No + RowVersioning = No + ShowSystemTables = No +diff --git a/test/runsuite.c b/test/runsuite.c +index 583cf35..fd2a90e 100644 +--- a/test/runsuite.c ++++ b/test/runsuite.c +@@ -51,7 +51,7 @@ bailout(const char *fmt, ...) + + /* Given a test program's name, get the test name */ + void +-parse_argument(const char *in, char *testname, char *binname) ++parse_argument(const char *in, char *testname, char *binname, const char *inputdir) + { + const char *basename; + #ifdef WIN32 +@@ -65,7 +65,7 @@ parse_argument(const char *in, char *testname, char *binname) + if (strchr(in, DIR_SEP) == NULL) + { + strcpy(testname, in); +- sprintf(binname, "exe%c%s-test", DIR_SEP, in); ++ sprintf(binname, "%s%cexe%c%s-test", inputdir, DIR_SEP, DIR_SEP, in); + return; + } + +@@ -127,7 +127,7 @@ int main(int argc, char **argv) + failures = 0; + for (i = 1, j = 1; i <= numtests; i++, j++) + { +- parse_argument(argv[j], testname, binname); ++ parse_argument(argv[j], testname, binname, inputdir); + if (runtest(binname, testname, i, inputdir) != 0) + failures++; + } +@@ -157,29 +157,29 @@ runtest(const char *binname, const char *testname, int testno, const char *input + #ifndef WIN32 + snprintf(cmdline, sizeof(cmdline), + "ODBCSYSINI=. ODBCINSTINI=./odbcinst.ini ODBCINI=./odbc.ini " +- "%s > results/%s.out", +- binname, testname); ++ "%s > %s/results/%s.out", ++ binname, inputdir, testname); + #else + snprintf(cmdline, sizeof(cmdline), +- "%s > results\\%s.out", +- binname, testname); ++ "%s > %s/results\\%s.out", ++ binname, inputdir, testname); + #endif + rc = system(cmdline); + + diff = rundiff(testname, inputdir); + if (rc != 0) + { +- printf("not ok %d - %s test returned %d\n", testno, testname, rc); ++ printf("FAIL: %d - %s\n\ttest returned %d\n", testno, testname, rc); + ret = 1; + } + else if (diff != 0) + { +- printf("not ok %d - %s test output differs\n", testno, testname); ++ printf("FAIL: %d - %s\n\ttest output differs\n", testno, testname); + ret = 1; + } + else + { +- printf("ok %d - %s\n", testno, testname); ++ printf("PASS: %d - %s\n", testno, testname); + ret = 0; + } + fflush(stdout); +@@ -196,7 +196,7 @@ rundiff(const char *testname, const char *inputdir) + char *result; + size_t result_len; + +- snprintf(filename, sizeof(filename), "results/%s.out", testname); ++ snprintf(filename, sizeof(filename), "%s/results/%s.out", inputdir, testname); + result = slurpfile(filename, &result_len); + + outputno = 0; +@@ -244,8 +244,8 @@ rundiff(const char *testname, const char *inputdir) + * files and print the smallest diff? + */ + snprintf(cmdline, sizeof(cmdline), +- "diff -c %s/expected/%s.out results/%s.out >> regression.diffs", +- inputdir, testname, testname); ++ "diff -c %s/expected/%s.out %s/results/%s.out >> regression.diffs", ++ inputdir, testname, inputdir, testname); + if (system(cmdline) == -1) + printf("# diff failed\n"); + +-- +2.8.2 + diff --git a/meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch new file mode 100644 index 00000000000..1d988182e78 --- /dev/null +++ b/meta-oe/recipes-support/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch @@ -0,0 +1,118 @@ +Subject: [PATCH] remove some checks for cross-compiling + +some lib check is not suitable for +cross-compiling, so remove them. + +Upstream-Status: Inappropriate [not a real bug,just for cross-compiling] + +Signed-off-by: Song.Li +Signed-off-by: Kai Kang +Signed-off-by: Jackie Huang +--- + configure.ac | 66 +++++++----------------------------------------------------- + 1 file changed, 7 insertions(+), 59 deletions(-) + +diff --git a/configure.ac b/configure.ac +index df5ad7a..b72bd4c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -46,57 +46,19 @@ AC_ARG_WITH(iodbc, [ --with-iodbc[[=DIR]] [[default=no]] DIR is the iODBC bas + if test "$with_iodbc" != no; then + with_unixodbc=no + AC_DEFINE(WITH_IODBC, 1, [Define to 1 to build with iODBC support]) +- if test "$with_iodbc" = yes; then +- AC_PATH_PROGS(ODBC_CONFIG, iodbc-config) +- else +- ODBC_CONFIG=$with_iodbc +- fi +- if test ! -x "${ODBC_CONFIG}/bin/iodbc-config"; then +- if test ! -x "${ODBC_CONFIG}"; then +- AC_MSG_ERROR([iodbc-config not found (required for iODBC build)]) +- fi +- else +- ODBC_CONFIG=${ODBC_CONFIG}/bin/iodbc-config +- fi + fi + + if test "$with_unixodbc" != no; then + AC_DEFINE(WITH_UNIXODBC, 1, + [Define to 1 to build with unixODBC support]) +- if test "$with_unixodbc" = yes; then +- AC_PATH_PROGS(ODBC_CONFIG, odbc_config) +- else +- ODBC_CONFIG=$with_unixodbc +- fi +- if test ! -x "${ODBC_CONFIG}/bin/odbc_config"; then +- if test ! -x "${ODBC_CONFIG}"; then +- AC_MSG_ERROR([odbc_config not found (required for unixODBC build)]) +- fi +- else +- ODBC_CONFIG=${ODBC_CONFIG}/bin/odbc_config +- fi + fi + + # + # ODBC include and library + # +- +-if test "$ODBC_CONFIG" != ""; then +- if test "$with_iodbc" != no; then +- ODBC_INCLUDE=`${ODBC_CONFIG} --cflags` +- CPPFLAGS="$CPPFLAGS ${ODBC_INCLUDE}" +- # Linking libiodoc is rather problematic +- [ODBC_LIBDIR=`${ODBC_CONFIG} --libs | sed -e "s/^\(-L\|.*[ \t]-L\)\([^ \n\r\f\t]*\).*$/-L\2/"`] +- LDFLAGS="$LDFLAGS ${ODBC_LIBDIR}" +- else +- ODBC_INCLUDE=`${ODBC_CONFIG} --include-prefix` +- CPPFLAGS="$CPPFLAGS -I${ODBC_INCLUDE}" +- # Linking libodoc is rather problematic +- ODBC_LIBDIR=`${ODBC_CONFIG} --lib-prefix` +- LDFLAGS="$LDFLAGS -L${ODBC_LIBDIR}" +- fi +- AC_MSG_NOTICE([using $ODBC_INCLUDE $ODBC_LIBDIR]) +-fi ++ODBC_LIBS="-lodbcinst" ++LIBS="$LIBS ${ODBC_LIBS}" ++AC_MSG_NOTICE([using $ODBC_INCLUDE $ODBC_LIBS]) + + # + # SQLCOLATTRIBUTE_SQLLEN check +@@ -176,18 +138,10 @@ PGAC_ARG_BOOL(enable, pthreads, yes, + # Find libpq headers and libraries + # + +-if test -z "$PG_CONFIG"; then +- AC_PATH_PROGS(PG_CONFIG, pg_config) +-fi +- +-if test -n "$PG_CONFIG"; then +- pg_includedir=`"$PG_CONFIG" --includedir` +- pg_libdir=`"$PG_CONFIG" --libdir` +- CPPFLAGS="$CPPFLAGS -I$pg_includedir" +- LDFLAGS="$LDFLAGS -L$pg_libdir" +-fi +- +- ++pg_includedir="" ++pg_libdir="" ++CPPFLAGS="$CPPFLAGS" ++LDFLAGS="$LDFLAGS" + + # 1. Programs + +@@ -211,12 +165,6 @@ if test "$with_iodbc" != no; then + [AC_MSG_ERROR([iODBC library "iodbcinst" not found])]) + fi + +-if test "$enable_pthreads" = yes; then +- AC_CHECK_LIB(pthreads, pthread_create, +- [], +- [AC_CHECK_LIB(pthread, pthread_create)]) +-fi +- + AC_CHECK_LIB(pq, PQsetSingleRowMode, [], + [AC_MSG_ERROR([libpq library version >= 9.2 is required])]) + +-- +2.8.1 + diff --git a/meta-oe/recipes-support/psqlodbc/files/run-ptest b/meta-oe/recipes-support/psqlodbc/files/run-ptest new file mode 100644 index 00000000000..6b41c636934 --- /dev/null +++ b/meta-oe/recipes-support/psqlodbc/files/run-ptest @@ -0,0 +1,46 @@ +#!/bin/sh + +BASEDIR="$(dirname $(readlink -f $0))" + +# init and start postgresql server for testing +PGDATA="/var/lib/postgresql/data" +if [ -f "${PGDATA}/PG_VERSION" ]; then + echo "Data directory is not empty! Skip initdb." +else + echo "Initializing database: " + chown -R postgres:postgres ${PGDATA} + su -l postgres -c "/usr/bin/initdb --pgdata='$PGDATA'" +fi + +SYSV_INIT="/etc/init.d/postgresql-server" +if [ -e ${SYSV_INIT} ]; then + RESTART_POSTGRESQL="${SYSV_INIT} restart" + STOP_POSTGRESQL="${SYSV_INIT} stop" +else + RESTART_POSTGRESQL="systemctl restart postgresql" + STOP_POSTGRESQL="systemctl stop postgresql" +fi + +${RESTART_POSTGRESQL} || echo "Failed to restart postgresql, skip the tests." + +if [ ! -d ${BASEDIR}/results ]; then + mkdir ${BASEDIR}/results +fi + +# Generate odbc config files and reset db +${BASEDIR}/odbcini-gen.sh || echo "FAIL: Generate odbc config files" +ODBCSYSINI=. ODBCINSTINI=./odbcinst.ini ODBCINI=./odbc.ini \ + ${BASEDIR}/reset-db < ${BASEDIR}/sampletables.sql \ + || echo "FAIL: reset db with sample tables" + +# Run the actual tests +TESTS= +for i in `ls ${BASEDIR}/exe/*-test`; do + TESTS="$TESTS $(basename ${i%-test})" +done + +${BASEDIR}/runsuite ${TESTS} --inputdir=${BASEDIR} + +# Cleanup +${STOP_POSTGRESQL} +rm -f regression.diffs odbcinst.ini odbc.ini diff --git a/meta-oe/recipes-support/psqlodbc/psqlodbc.inc b/meta-oe/recipes-support/psqlodbc/psqlodbc.inc new file mode 100644 index 00000000000..5337b45695a --- /dev/null +++ b/meta-oe/recipes-support/psqlodbc/psqlodbc.inc @@ -0,0 +1,50 @@ +SUMMARY = "ODBC driver for PostgreSQL" +DESCRIPTION = "\ + This package provides a driver that allows ODBC-enabled applications to \ + access PostgreSQL databases. ODBC is an abstraction layer that allows \ + applications written for that layer to access databases in a manner \ + that is relatively independent of the particular database management \ + system. \ + . \ + You need to install this package if you want to use an application that \ + provides database access through ODBC and you want that application to \ + access a PostgreSQL database. This package would need to be installed \ + on the same machine as that client application; the PostgreSQL database \ + server can be on a different machine and does not need any additional \ + software to accept ODBC clients. \ +" +SECTION = "libs" +HOMEPAGE = "http://psqlodbc.projects.postgresql.org/" + +DEPENDS += "postgresql unixodbc" + +EXTRA_OECONF = "\ + ac_cv_lib_ltdl_lt_dlopen=no \ + ac_cv_lib_pq_PQconnectdb=yes \ + --with-unixodbc=yes \ + --with-libpq=${STAGING_LIBDIR}/.. \ + --enable-pthreads \ + --disable-unicode \ + LIBS="-lpthread" \ +" + +inherit autotools pkgconfig ptest + +do_compile_ptest() { + oe_runmake -C ${B}/test +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH} + cp -a --no-preserve=ownership ${B}/test/exe ${S}/test/expected ${D}${PTEST_PATH} + install -m 0755 ${B}/test/reset-db ${D}${PTEST_PATH} + install -m 0755 ${B}/test/runsuite ${D}${PTEST_PATH} + install -m 0755 ${S}/test/odbcini-gen.sh ${D}${PTEST_PATH} + install -m 0755 ${S}/test/sampletables.sql ${D}${PTEST_PATH} + sed -i -e 's|@LIBDIR@|${libdir}|' ${D}${PTEST_PATH}/odbcini-gen.sh +} + +FILES_${PN} += "${libdir}" + +# The tests need a local PostgreSQL server running +RDEPENDS_${PN}-ptest = "postgresql" diff --git a/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb b/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb new file mode 100644 index 00000000000..6e1c8ab4a0f --- /dev/null +++ b/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb @@ -0,0 +1,14 @@ +require ${PN}.inc + +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://license.txt;md5=6db3822fc7512e83087ba798da013692" + +SRC_URI = "http://ftp.postgresql.org/pub/odbc/versions/src/${BPN}-${PV}.tar.gz \ + file://psqlodbc-remove-some-checks-for-cross-compiling.patch \ + file://psqlodbc-donot-use-the-hardcode-libdir.patch \ + file://psqlodbc-fix-for-ptest-support.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "4c6e0b22187d7bb1c998ffac89e50f6b" +SRC_URI[sha256sum] = "9521f328bf28aaaf5c8488dc89792b614f9d6271742c0baf9bb41c97537764a8" diff --git a/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch b/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch new file mode 100644 index 00000000000..7faeb130a73 --- /dev/null +++ b/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch @@ -0,0 +1,34 @@ +From 3f97aac5a1f43ef57b02fb9ccdcadd41a6b69fa9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 27 Oct 2015 10:21:24 +0100 +Subject: [PATCH] configure.ac: do additional checks on libxml2 also when + detected by pkg-config +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Applied [1] + +[1] https://github.com/dajobe/raptor/pull/33 + +Signed-off-by: Andreas Müller +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 10ff870..35fa08e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -601,7 +601,7 @@ have_libxml=0 + need_libxml=0 + + oCPPFLAGS="$CPPFLAGS" +-if test "X$XML_CONFIG" != X; then ++if test "X$libxml_source" != X; then + CPPFLAGS="$LIBXML_CFLAGS $CPPFLAGS" + LIBS="$LIBS $LIBXML_LIBS" + AC_CHECK_FUNC(xmlCreatePushParserCtxt, have_xmlCreatePushParserCtxt=yes, have_xmlCreatePushParserCtxt=no) +-- +2.1.0 + diff --git a/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb b/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb new file mode 100644 index 00000000000..dd00c14f72f --- /dev/null +++ b/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb @@ -0,0 +1,25 @@ +SUMMARY = "Library for parsing and serializing RDF syntaxes" +LICENSE = "GPLv2 | LGPLv2.1 | Apache-2.0" +LIC_FILES_CHKSUM = " \ + file://LICENSE.txt;md5=b840e5ae3aeb897f45b473341348cd9c \ + file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \ +" + +DEPENDS = "libxml2 libxslt curl yajl" + +SRC_URI = " \ + http://download.librdf.org/source/${BPN}-${PV}.tar.gz \ + file://0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch \ +" +SRC_URI[md5sum] = "a39f6c07ddb20d7dd2ff1f95fa21e2cd" +SRC_URI[sha256sum] = "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed" + +inherit autotools pkgconfig + +EXTRA_OECONF = " \ + --without-xml2-config \ + --without-curl-config \ + --without-xslt-config \ +" diff --git a/meta-oe/recipes-support/rdfind/files/reproducible_build.patch b/meta-oe/recipes-support/rdfind/files/reproducible_build.patch new file mode 100644 index 00000000000..36728a78858 --- /dev/null +++ b/meta-oe/recipes-support/rdfind/files/reproducible_build.patch @@ -0,0 +1,46 @@ +Description: sort the filelist when it is complete to get reproducible behaviour +Author: Reiner Herrmann +Bug-Debian: https://bugs.debian.org/795790 + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy + +Index: rdfind-1.3.4/Fileinfo.hh +=================================================================== +--- rdfind-1.3.4.orig/Fileinfo.hh ++++ rdfind-1.3.4/Fileinfo.hh +@@ -189,6 +189,10 @@ public: + static bool compareondepth(const Fileinfo &a, const Fileinfo &b) + {return (a.depth() < b.depth());} + ++ //returns true if a has lower filename than b) ++ static bool compareonfilename(const Fileinfo &a, const Fileinfo &b) ++ {return (a.name().compare(b.name()) < 0);} ++ + //fills with bytes from the file. if lasttype is supplied, + //it is used to see if the file needs to be read again - useful if + //file is shorter than the length of the bytes field. +@@ -235,6 +239,10 @@ public: + static bool equaldepth(const Fileinfo &a, const Fileinfo &b) + {return (a.depth()==b.depth());} + ++ //returns true if filenames are equal ++ static bool equalfilename(const Fileinfo &a, const Fileinfo &b) ++ {return (a.name()==b.name());} ++ + //returns true if file is a regular file. call readfileinfo first! + bool isRegularFile() {return m_info.is_file;} + +Index: rdfind-1.3.4/rdfind.cc +=================================================================== +--- rdfind-1.3.4.orig/rdfind.cc ++++ rdfind-1.3.4/rdfind.cc +@@ -349,6 +349,7 @@ int main(int narg, char *argv[]) + cout< update-rc.d rng-tools defaults 60 -# - -rngd=/usr/sbin/rngd -test -x "$rngd" || exit 1 - -if [ -e /etc/default/rng-tools ]; then - . /etc/default/rng-tools -fi - -if [ -n "$RNG_DEVICE" ]; then - EXTRA_ARGS="-- -r $RNG_DEVICE" -fi - - -case "$1" in - start) - echo -n "Starting random number generator daemon" - start-stop-daemon -S -q -x $rngd $EXTRA_ARGS - echo "." - ;; - stop) - echo -n "Stopping random number generator daemon" - start-stop-daemon -K -q -n rngd - echo "." - ;; - reload|force-reload) - echo -n "Signalling rng daemon restart" - start-stop-daemon -K -q -s 1 -x $rngd - start-stop-daemon -K -q -s 1 -x $rngd - ;; - restart) - echo -n "Stopping random number generator daemon" - start-stop-daemon -K -q -n rngd - echo "." - echo -n "Starting random number generator daemon" - start-stop-daemon -S -q -x $rngd $EXTRA_ARGS - echo "." - ;; - *) - echo "Usage: /etc/init.d/rng-tools {start|stop|reload|restart|force-reload}" - exit 1 -esac - -exit 0 diff --git a/meta-oe/recipes-support/rng-tools/rng-tools_4.bb b/meta-oe/recipes-support/rng-tools/rng-tools_4.bb deleted file mode 100644 index b3d880ff351..00000000000 --- a/meta-oe/recipes-support/rng-tools/rng-tools_4.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "Random number generator daemon" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS_append_libc-uclibc = " argp-standalone" - -SRC_URI = "http://heanet.dl.sourceforge.net/sourceforge/gkernel/${BP}.tar.gz \ - file://init \ - file://default" - -SRC_URI[md5sum] = "ae89dbfcf08bdfbea19066cfbf599127" -SRC_URI[sha256sum] = "b71bdfd4222c05e8316001556be90e1606f2a1bac3efde60153bd84e873cc195" - -# As the recipe doesn't inherit systemd.bbclass, we need to set this variable -# manually to avoid unnecessary postinst/preinst generated. -python () { - if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): - d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") -} - -inherit autotools update-rc.d - -do_install_append() { - # Only install the init script when 'sysvinit' is in DISTRO_FEATURES. - if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -d "${D}${sysconfdir}/init.d" - install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools - sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \ - ${D}${sysconfdir}/init.d/rng-tools - - install -d "${D}${sysconfdir}/default" - install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/rng-tools - fi -} - -INITSCRIPT_NAME = "rng-tools" -INITSCRIPT_PARAMS = "start 30 S . stop 30 0 6 1 ." diff --git a/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch b/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch index 7b2361b4a22..6466df4e02d 100644 --- a/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch +++ b/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch @@ -34,7 +34,7 @@ index bc9df9e..2a33d29 100644 dnl bail out if we can't find it if test "$RSYNC" = "no"; then - AC_MSG_ERROR(rsync is required) -+ RSYNC=/usr/bin/rsync ++ RSYNC=${bindir}/rsync + AC_SUBST(CMD_RSYNC, "cmd_rsync $RSYNC") fi diff --git a/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb b/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb index d6805110c9d..aefe3627eba 100644 --- a/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb +++ b/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb @@ -20,8 +20,8 @@ RDEPENDS_${PN} = "rsync \ perl-module-overloading \ " -SRCREV = "1047cbb57937c29233388e2fcd847fecd3babe74" -PV = "1.3.1+git${SRCPV}" +SRCREV = "27209563f924a22f510698ea225f53ea52f07cb4" +PV = "1.4.2+git${SRCPV}" SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=git \ file://configure-fix-cmd_rsync.patch \ @@ -40,4 +40,14 @@ EXTRA_OECONF += "--without-cp \ --without-logger \ --without-rsync \ ac_cv_path_PERL=${bindir}/perl \ + ac_cv_path_MOUNT=${base_bindir}/mount \ + ac_cv_path_UMOUNT=${base_bindir}/umount \ " + +# Create 't/include.ac' before starting the autoreconf to fix configure +# error: configure.ac:302: file 't/include.ac' does not exist +do_configure_prepend(){ + saved_dir=`pwd` + cd ${S}; ./autogen.sh + cd ${saved_dir} +} diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb index 269c1b75e24..255754d5d19 100644 --- a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb +++ b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb @@ -10,8 +10,10 @@ PR = "r2" SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" S = "${WORKDIR}/gpio" +CLEANBROKEN = "1" + do_compile() { - ${CC} ${CFLAGS} ${LDFLAGS} -static -o ${PN} gpio.c + ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio.c } do_install() { diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb index 256da092d05..976a4f15ec5 100644 --- a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb +++ b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb @@ -9,8 +9,10 @@ PV = "1.0+svnr${SRCPV}" SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http" S = "${WORKDIR}/gpio" +CLEANBROKEN = "1" + do_compile() { - ${CC} ${CFLAGS} ${LDFLAGS} -static -o ${PN} gpio-s3c6410.c + ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio-s3c6410.c } do_install() { diff --git a/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch b/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch new file mode 100644 index 00000000000..9e95a3f9d16 --- /dev/null +++ b/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch @@ -0,0 +1,84 @@ +From 206f334d62da17093e784094c9d9e80c853f704f Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 12 May 2017 03:03:46 -0400 +Subject: [PATCH] do not support python2 + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + configure.ac | 16 ---------------- + python/Makefile.am | 24 ------------------------ + 2 files changed, 40 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 200a7cc..8431c51 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -22,22 +22,6 @@ AM_MISSING_PROG([AUTOM4TE], [autom4te]) + # Needed by tests/atlocal.in. + AC_SUBST([O0CFLAGS], [`echo $CFLAGS | sed 's/-O[[0-9]] *//'`]) + +-AM_PATH_PYTHON +-AM_CONDITIONAL([HAVE_PYTHON], test -n "$PYTHON") +-[if test -z "$PYTHON"; then] +- [echo "The python interpreter was not found in the search path. The Python language bindings"] +- [echo "will not be built. If you want to build the Python language bindings, please ensure"] +- [echo "that python is installed and its directory is included in the search path."] +- [echo "Then run configure again before attempting to build Satyr."] +-[fi] +- +-# Just PKG_CHECK_MODULES([PYTHON], [python]) works only with python2.7+ +-# Below, if python is not found, we set up for python2.6 w/o checking: +-PKG_CHECK_MODULES([PYTHON], [python2],,[ +- PYTHON_LIBS='-L/usr/lib64 -lpython2.6' +- PYTHON_CFLAGS='-I/usr/include/python2.6' +-]) +- + AC_ARG_ENABLE([python-manpage], + [AS_HELP_STRING([--disable-python-manpage], + [Disable python bindings manpage build])], +diff --git a/python/Makefile.am b/python/Makefile.am +index 36fc2e9..0b73f66 100644 +--- a/python/Makefile.am ++++ b/python/Makefile.am +@@ -1,12 +1,5 @@ + SUBDIRS = . doc + +-py2satyrdir = $(pyexecdir)/satyr +- +-py2satyr_PYTHON = \ +- __init__.py +- +-py2satyr_LTLIBRARIES = _satyr.la +- + PYEXTFILES = \ + py_cluster.h \ + py_cluster.c \ +@@ -75,23 +68,6 @@ PYEXTLDFLAGS = \ + -module \ + -avoid-version + +-_satyr_la_SOURCES = $(PYEXTFILES) +-_satyr_la_CPPFLAGS = \ +- $(PYEXTCPPFLAGS) \ +- $(PYTHON_CFLAGS) +-_satyr_la_LDFLAGS = \ +- $(PYEXTLDFLAGS) \ +- -export-symbols-regex init_satyr +- +-# Depending on the configure option, we either link libsatyr.so dynamically (as +-# is usual), or directly include its object files (by including the +-# convenience library). +-if ENABLE_STATIC_PYTHON_MODULE +-_satyr_la_LIBADD = ../lib/libsatyr_conv.la +-else +-_satyr_la_LIBADD = ../lib/libsatyr.la +-endif +- + if WITH_PYTHON3 + py3satyrdir = $(py3execdir)/satyr + +-- +2.8.1 + diff --git a/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch b/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch new file mode 100644 index 00000000000..5827eb4d189 --- /dev/null +++ b/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch @@ -0,0 +1,28 @@ +From 23f827ea94284656972652f61f2c6aad96092cc8 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 20 Jul 2017 23:00:29 -0400 +Subject: [PATCH] fix compile failure against musl C library + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + lib/rpm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/rpm.c b/lib/rpm.c +index 920e145..58140bf 100644 +--- a/lib/rpm.c ++++ b/lib/rpm.c +@@ -188,7 +188,7 @@ sr_rpm_package_sort(struct sr_rpm_package *packages) + } + + /* Sort the array. */ +- qsort(array, count, sizeof(struct sr_rpm_package*), (comparison_fn_t)cmp_nevra_qsort_wrapper); ++ qsort(array, count, sizeof(struct sr_rpm_package*), cmp_nevra_qsort_wrapper); + + /* Create a linked list from the sorted array. */ + for (size_t loop = 0; loop < count; ++loop) +-- +2.8.1 + diff --git a/meta-oe/recipes-support/satyr/satyr_0.23.bb b/meta-oe/recipes-support/satyr/satyr_0.23.bb new file mode 100644 index 00000000000..f795c3717b6 --- /dev/null +++ b/meta-oe/recipes-support/satyr/satyr_0.23.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "Satyr is a collection of low-level algorithms for program \ +failure processing, analysis, and reporting supporting kernel space, user \ +space, Python, and Java programs" + +HOMEPAGE = "https://github.com/abrt/satyr" +LICENSE = "GPLv2" + +inherit autotools-brokensep python3native pkgconfig + +SRC_URI = "git://github.com/abrt/satyr.git \ + file://0001-do-not-support-python2.patch \ + file://0002-fix-compile-failure-against-musl-C-library.patch \ +" +SRCREV = "4742fd4857c446b96f712d52e2e4cd0b6cfe7398" +S = "${WORKDIR}/git" + +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS += " \ + gdb \ +" + +PACKAGES += "python3-${PN}" +FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}" + +PACKAGECONFIG ??= "python3 rpm" +PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" +PACKAGECONFIG[pythonmanpage] = "--enable-python-manpage, --disable-python-manpage" +PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm" + +do_configure_prepend() { + ${S}/gen-version +} diff --git a/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch b/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch index 5405ed802e3..3fd85d9e25e 100644 --- a/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch +++ b/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch @@ -1,27 +1,31 @@ -[PATCH] make sysroot work +From 15f0722bc5481cca5ba92adceab8c769112e4ea6 Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Mon, 24 Oct 2016 07:28:13 +0000 +Subject: [PATCH] sdparm: make sysroot work Upstream-Status: Pending Add = before the included dir to make sysroot work Signed-off-by: Roy.Li +Signed-off-by: Dengke Du --- src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile.am b/src/Makefile.am -index c83788c..9f62115 100644 +index 61dd9f8..42c911f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am -@@ -32,7 +32,7 @@ sglib_SOURCES = ../lib/sg_lib.c \ +@@ -41,7 +41,7 @@ sglib_SOURCES = ../lib/sg_lib.c \ ../lib/sg_pt_common.c if HAVE_SGUTILS --INCLUDES = -I/usr/include/scsi +-INCLUDES = -I/scsi +INCLUDES = -I=@includedir@/scsi sdparm_LDADD = @GETOPT_O_FILES@ @os_libs@ @SGUTILS_LIBS@ sdparm_DEPENDENCIES = @GETOPT_O_FILES@ else -- -1.9.1 +2.7.4 diff --git a/meta-oe/recipes-support/sdparm/sdparm_1.08.bb b/meta-oe/recipes-support/sdparm/sdparm_1.08.bb deleted file mode 100644 index b603a568241..00000000000 --- a/meta-oe/recipes-support/sdparm/sdparm_1.08.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "fetch and change SCSI mode pages" -DESCRIPTION = "The sdparm utility accesses and optionally modifies \ -SCSI devices' mode page and inquiry data." -HOMEPAGE = "http://sg.danny.cz/sg/sdparm.html" -SECTION = "console/utils" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \ - file://lib/BSD_LICENSE;md5=1d52f4a66f1e0ed96776bf354ab7a2ed" -DEPENDS="sg3-utils" -SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \ - file://make-sysroot-work.patch \ - " - -PACKAGES =+ "${PN}-scripts" -RDEPENDS_${PN}-scripts += "bash ${PN}" - -SRC_URI[md5sum] = "be5786f37499018ef44f409597c92d42" -SRC_URI[sha256sum] = "376b78a414b1a9c47f3f13dbeb963e7a3ec7be126f83927d6856b5f7ac425e57" - -inherit autotools - -# Put the bash scripts to ${PN}-scripts -FILES_${PN}-scripts = "${bindir}/sas_disk_blink ${bindir}/scsi_ch_swp" diff --git a/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/meta-oe/recipes-support/sdparm/sdparm_1.10.bb new file mode 100644 index 00000000000..3299a77aaaa --- /dev/null +++ b/meta-oe/recipes-support/sdparm/sdparm_1.10.bb @@ -0,0 +1,24 @@ +SUMMARY = "fetch and change SCSI mode pages" +DESCRIPTION = "The sdparm utility accesses and optionally modifies \ +SCSI devices' mode page and inquiry data." +HOMEPAGE = "http://sg.danny.cz/sg/sdparm.html" +SECTION = "console/utils" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \ + file://lib/BSD_LICENSE;md5=1d52f4a66f1e0ed96776bf354ab7a2ed" +DEPENDS="sg3-utils" +SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \ + file://make-sysroot-work.patch \ + " +MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc" + +PACKAGES =+ "${PN}-scripts" +RDEPENDS_${PN}-scripts += "bash ${PN}" + +SRC_URI[md5sum] = "bdae64375376ce8fe4bf9521c1db858f" +SRC_URI[sha256sum] = "1ea1ed1bb1ee2aef62392618fa42da9ed027d5e655f174525c39235778292ab3" + +inherit autotools + +# Put the bash scripts to ${PN}-scripts +FILES_${PN}-scripts = "${bindir}/sas_disk_blink ${bindir}/scsi_ch_swp" diff --git a/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch b/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch new file mode 100644 index 00000000000..7dcc67d1146 --- /dev/null +++ b/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch @@ -0,0 +1,29 @@ +From a0d815ad9918aba977aed9275b3bf3d750a1709b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 30 Aug 2017 19:24:40 -0700 +Subject: [PATCH] serial_forward: Disable default static linking + +This does not work with ssp turned on with hardening flags on musl + +Signed-off-by: Khem Raj +--- + tools/serial_forward/src/Makefile.am | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/tools/serial_forward/src/Makefile.am b/tools/serial_forward/src/Makefile.am +index 3f598286..bcac9bc9 100644 +--- a/tools/serial_forward/src/Makefile.am ++++ b/tools/serial_forward/src/Makefile.am +@@ -20,9 +20,6 @@ serial_forward_SOURCES = \ + cy8mrln.h \ + $(NULL) + +-serial_forward_LDFLAGS = \ +- -all-static +- + pty_forward_SOURCES = \ + pty_forward.c \ + $(NULL) +-- +2.14.1 + diff --git a/meta-oe/recipes-support/serial-utils/serial-forward_git.bb b/meta-oe/recipes-support/serial-utils/serial-forward_git.bb index ad1e1eddcda..0ef829856c8 100644 --- a/meta-oe/recipes-support/serial-utils/serial-forward_git.bb +++ b/meta-oe/recipes-support/serial-utils/serial-forward_git.bb @@ -3,10 +3,12 @@ AUTHOR = "Holger 'Zecke' Freyther'" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07" SECTION = "console/devel" -SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec" +SRCREV = "07c6fdede0870edc37a8d51d033b6e7e29aa7c91" PV = "1.1+gitr${SRCPV}" -SRC_URI = "git://github.com/freesmartphone/cornucopia.git;protocol=https" +SRC_URI = "git://github.com/freesmartphone/cornucopia.git \ + file://0001-serial_forward-Disable-default-static-linking.patch;striplevel=3 \ + " S = "${WORKDIR}/git/tools/serial_forward" inherit autotools diff --git a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.38.bb b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.38.bb deleted file mode 100644 index 5ce11b62dab..00000000000 --- a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.38.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Utilities for working with generic SCSI devices" - -DESCRIPTION = "This package contains low level utilities for devices that use the SCSI command set" - -HOMEPAGE = "http://sg.danny.cz/sg/sg3_utils.html" -SECTION = "console/admin" - -LICENSE = "GPLv2+ & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca" - -SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz" -SRC_URI[md5sum] = "e532a3d6648c422347f6d84cac469263" -SRC_URI[sha256sum] = "d7d3a8b4b698e2c17c8f16bb876946720260d4d659d471c5d7c12ce652ba38f1" - -inherit autotools-brokensep - -S = "${WORKDIR}/sg3_utils-${PV}" - -RDEPENDS_${PN} += "bash" diff --git a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb new file mode 100644 index 00000000000..c7de0574026 --- /dev/null +++ b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb @@ -0,0 +1,21 @@ +SUMMARY = "Utilities for working with generic SCSI devices" + +DESCRIPTION = "This package contains low level utilities for devices that use the SCSI command set" + +HOMEPAGE = "http://sg.danny.cz/sg/sg3_utils.html" +SECTION = "console/admin" + +LICENSE = "GPLv2+ & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca" + +SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz" +MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc" + +SRC_URI[md5sum] = "28080de5bf2222f8b55a29093bec8aea" +SRC_URI[sha256sum] = "1dcb7a0309bd0ba3d4a83acb526973b80106ee26cd9f7398186cd3f0633c9ef3" + +inherit autotools-brokensep + +S = "${WORKDIR}/sg3_utils-${PV}" + +RDEPENDS_${PN} += "bash" diff --git a/meta-oe/recipes-support/sharutils/sharutils-4.14/fix-for-cross-compiling.patch b/meta-oe/recipes-support/sharutils/sharutils-4.14/fix-for-cross-compiling.patch deleted file mode 100644 index 86a7da63c27..00000000000 --- a/meta-oe/recipes-support/sharutils/sharutils-4.14/fix-for-cross-compiling.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 990234af84a5399017d1c4fe03c5c756a8e51e23 Mon Sep 17 00:00:00 2001 -From: Hongjun Yang -Date: Tue, 20 Aug 2013 09:41:43 +0800 -Subject: [PATCH] fix cross compiling issue - -Upstream-Status: Pending - -Signed-off-by: Hongjun.Yang - ---- - configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure b/configure -index 6ee98e0..8067f54 100755 ---- a/configure -+++ b/configure -@@ -26965,7 +26965,7 @@ fi - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error $? "cannot run test program while cross compiling -+$as_echo "cannot run test program while cross compiling - See \`config.log' for more details" "$LINENO" 5; } - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext --- -1.8.1.4 - diff --git a/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch new file mode 100644 index 00000000000..7b627c16dd8 --- /dev/null +++ b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch @@ -0,0 +1,29 @@ +From fa8371d348f6a8b0799b2e6c38247dd1399d85e3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 8 Apr 2017 08:49:48 -0700 +Subject: [PATCH] Fix build with clang + +ATTRIBUTE_FORMAT_ARG macro gets computed to be empty with clang +whereas it does support format attribute, we hard code it + +Signed-off-by: Khem Raj +--- + src/shar-opts.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shar-opts.h b/src/shar-opts.h +index a287046..172676f 100644 +--- a/src/shar-opts.h ++++ b/src/shar-opts.h +@@ -377,7 +377,7 @@ extern tOptions sharOptions; + # define ATTRIBUTE_FORMAT_ARG(_a) + # endif + +-static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1); ++static inline char* aoGetsText(char const* pz) __attribute__ ((format_arg(1))); + static inline char* aoGetsText(char const* pz) { + if (pz == NULL) return NULL; + return (char*)gettext(pz); +-- +2.12.2 + diff --git a/meta-oe/recipes-support/sharutils/sharutils_4.14.bb b/meta-oe/recipes-support/sharutils/sharutils_4.14.bb deleted file mode 100644 index 49981e7f7a6..00000000000 --- a/meta-oe/recipes-support/sharutils/sharutils_4.14.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "This is the set of GNU shar utilities." -HOMEPAGE = "http://www.gnu.org/software/sharutils/" -SECTION = "console/utils" -LICENSE="GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -inherit gettext autotools-brokensep - -SRC_URI = "ftp://ftp.gnu.org/gnu/sharutils/sharutils-4.14.tar.gz \ - file://fix-for-cross-compiling.patch \ - " - -SRC_URI[md5sum] = "5686c11131b4c4c0841f8f3ef34d136a" -SRC_URI[sha256sum] = "90f5107c167cfd1b299bb211828d2586471087863dbed698f53109cd5f717208" - -do_configure () { - oe_runconf -} diff --git a/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb new file mode 100644 index 00000000000..812fee955b5 --- /dev/null +++ b/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb @@ -0,0 +1,21 @@ +SUMMARY = "This is the set of GNU shar utilities." +HOMEPAGE = "http://www.gnu.org/software/sharutils/" +SECTION = "console/utils" +LICENSE="GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit gettext autotools + +SRC_URI = "ftp://ftp.gnu.org/gnu/${BPN}/${BP}.tar.gz \ + file://0001-Fix-build-with-clang.patch \ +" +SRC_URI[md5sum] = "32a51b23e25ad5e6af4b89f228be1800" +SRC_URI[sha256sum] = "ee336e68549664e7a19b117adf02edfdeac6307f22e5ba78baca457116914637" + +do_install_append() { + if [ -e ${D}${libdir}/charset.alias ] + then + rm -rf ${D}${libdir}/charset.alias + rmdir --ignore-fail-on-non-empty ${D}${libdir} + fi +} diff --git a/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-oe/recipes-support/smem/smem_1.4.bb index 8768c4896b8..519020f3b0d 100644 --- a/meta-oe/recipes-support/smem/smem_1.4.bb +++ b/meta-oe/recipes-support/smem/smem_1.4.bb @@ -24,3 +24,4 @@ do_install() { install -m 0755 ${S}/smemcap ${D}${bindir}/ install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/ } +RDEPENDS_${PN} += "python-textutils python-compression python-shell python-codecs" diff --git a/meta-oe/recipes-support/soci/soci_3.2.2.bb b/meta-oe/recipes-support/soci/soci_3.2.2.bb index 887f5a2b2be..1f5a485a7d5 100644 --- a/meta-oe/recipes-support/soci/soci_3.2.2.bb +++ b/meta-oe/recipes-support/soci/soci_3.2.2.bb @@ -9,7 +9,7 @@ SECTION = "libs" DEPENDS = "boost" -SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${P}/${P}.tar.gz \ +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BP}/${BP}.tar.gz \ file://soci_libdir.patch \ " SRC_URI[md5sum] = "bc3c35f6cd3f80a1be19fe30b3c111bf" @@ -36,6 +36,7 @@ PACKAGECONFIG ??= "empty" # Take the flags added by PACKAGECONFIG and pass them to cmake. EXTRA_OECMAKE = "${EXTRA_OECONF} -DSOCI_LIBDIR=${libdir}" +DISABLE_STATIC = "" inherit cmake diff --git a/meta-oe/recipes-support/spitools/spitools_git.bb b/meta-oe/recipes-support/spitools/spitools_git.bb index adb67cd1d72..2eedf8c412d 100644 --- a/meta-oe/recipes-support/spitools/spitools_git.bb +++ b/meta-oe/recipes-support/spitools/spitools_git.bb @@ -4,11 +4,16 @@ AUTHOR = "Christophe BLAESS" LICENSE="GPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381" +PR = "r0" + +BPV = "0.8.1" +PV = "${BPV}" +SRCREV = "03405ab45884e4264dfa0371c032b2baaeeaaa98" + S = "${WORKDIR}/git" SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=git" -SRCREV = "cc6a41fdcec60610703ba6db488c621c64952898" inherit autotools diff --git a/meta-oe/recipes-support/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch b/meta-oe/recipes-support/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch new file mode 100644 index 00000000000..c5d7c0c81ae --- /dev/null +++ b/meta-oe/recipes-support/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch @@ -0,0 +1,32 @@ +From 443980ddc82fb40e2e1f9544f2be169bd23dd246 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 Jun 2017 16:49:24 -0700 +Subject: [PATCH] shell.c: Fix format not a string literal warning + +src/shell.c:695:20: error: format not a string literal and no format arguments [-Werror=format-security] +| fprintf(stderr,zHelp); +| ^~~~~ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/shell.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shell.c b/src/shell.c +index bb46c49..3c6fe0f 100644 +--- a/src/shell.c ++++ b/src/shell.c +@@ -692,7 +692,7 @@ static int do_meta_command(char *zLine, struct callback_data *p){ + }else + + if( c=='h' && strncmp(azArg[0], "help", n)==0 ){ +- fprintf(stderr,zHelp); ++ fprintf(stderr, "%s", zHelp); + }else + + if( c=='i' && strncmp(azArg[0], "indices", n)==0 && nArg>1 ){ +-- +2.13.1 + diff --git a/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb b/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb index e6e14c2ad50..501c0e3e778 100644 --- a/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb +++ b/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb @@ -8,9 +8,11 @@ LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=10;md5=e98469a8efa024a PR = "r7" SRC_URI = "http://www.hwaci.com/sw/sqlite/sqlite-${PV}.tar.gz \ - file://mainmk_build_dynamic.patch \ - file://mainmk_no_tcl.patch \ - file://sqlite.pc" + file://mainmk_build_dynamic.patch \ + file://mainmk_no_tcl.patch \ + file://sqlite.pc \ + file://0001-shell.c-Fix-format-not-a-string-literal-warning.patch \ + " SOURCES = "attach.o auth.o btree.o btree_rb.o build.o copy.o date.o delete.o \ expr.o func.o hash.o insert.o main.o opcodes.o os.o pager.o \ diff --git a/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch b/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch new file mode 100644 index 00000000000..9b2bd997957 --- /dev/null +++ b/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch @@ -0,0 +1,57 @@ +Add option to build this utility without a documentation. + +For full documentation building are necessary utilities like +groff and ps2pdf. Full documentation can takes a lot of space. +So it can be disabled by overloading makefile variable WITHOUT_DOC. + +Upstream-Status: Inappropriate [Other] +Workaround specific to our build system. + +Signed-off-by: Andrej Valek + +diff --git a/Makefile.in b/Makefile.in +index 9bdd8f1..a2b5494 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -141,6 +141,14 @@ GROFF = @GROFF@ + # + SOELIM = @SOELIM@ + ++# Option to build this utility without building and installing the documentation. ++WITHOUT_DOC ?= 0 ++ifeq ($(WITHOUT_DOC),0) ++ BUILD_DOC = all-doc ++ INST_DOC = install-doc ++ CLR_DOC = clean-doc ++endif ++ + # --------------------------------------------------------- + # You should not need to change anything below this line. + +@@ -4090,7 +4098,7 @@ bin/test_url_decode: $(test_url_decode_obj) .bin srecord/libsrecord.la + $(LIBTOOL) --mode=link --tag=CXX $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ \ + $(test_url_decode_obj) srecord/libsrecord.la $(LDFLAGS) $(LIBS) + +-all: all-bin all-doc ++all: all-bin $(BUILD_DOC) + + all-bin: bin/srec_cat bin/srec_cmp bin/srec_info bin/test_arglex_ambiguous \ + bin/test_crc16 bin/test_fletcher16 bin/test_gecos \ +@@ -4156,7 +4164,7 @@ test_files = t0001a t0002a t0003a t0004a t0005a t0006a t0007a t0008a t0009a \ + sure: $(test_files) + @echo Passed All Tests + +-clean: clean-bin clean-doc clean-misc clean-obj ++clean: clean-bin $(CLR_DOC) clean-misc clean-obj + + clean-bin: + rm -f bin/srec_cat bin/srec_cmp bin/srec_info bin/test_arglex_ambiguous +@@ -4443,7 +4451,7 @@ distclean-directories: + rm -rf test/fletcher16/.libs test/gecos/.libs test/hyphen/.libs + rm -rf test/url_decode/.libs + +-install: install-bin install-doc install-include install-libdir install-man ++install: install-bin $(INST_DOC) install-include install-libdir install-man + + install-bin: $(bindir)/srec_cat $(bindir)/srec_cmp $(bindir)/srec_info + diff --git a/meta-oe/recipes-support/srecord/srecord_1.64.bb b/meta-oe/recipes-support/srecord/srecord_1.64.bb new file mode 100644 index 00000000000..fe1af476f29 --- /dev/null +++ b/meta-oe/recipes-support/srecord/srecord_1.64.bb @@ -0,0 +1,23 @@ +SUMMARY = "A collection of powerful tools for manipulating EPROM load files." +SECTION = "devel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8dfcbf2f0a144b97f0931b6394debea7" + +SRC_URI = " \ + http://srecord.sourceforge.net/srecord-${PV}.tar.gz \ + file://add-option-to-remove-docs.patch \ +" + +SRC_URI[md5sum] = "4de4a7497472d7972645c2af91313769" +SRC_URI[sha256sum] = "49a4418733c508c03ad79a29e95acec9a2fbc4c7306131d2a8f5ef32012e67e2" + +DEPENDS = "libtool-native boost groff-native" + +inherit autotools-brokensep + +EXTRA_OECONF = "--without-gcrypt LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool" + +# Set variable WITHOUT_DOC=0 to enable documentation generation +EXTRA_OEMAKE = "WITHOUT_DOC=1" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch new file mode 100644 index 00000000000..ef6ae00e3d4 --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch @@ -0,0 +1,872 @@ +From 3100e23c50e38bff0c2ec77bc30049c113c29414 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 16 Jun 2017 20:44:31 -0700 +Subject: [PATCH 1/6] Use pragma once unconditionally + +in OE we do not worry about supporting +gcc 3.4 anyway + +Upstream-Status: Inappropriate[Bumps required gcc to be > 3.4] + +Signed-off-by: Khem Raj +--- + lib/efi/efi.h | 2 -- + lib/engine/ahci.h | 2 -- + lib/engine/ahci_cdrom.h | 2 -- + lib/engine/ahci_disk.h | 2 -- + lib/engine/ahci_multiplier.h | 2 -- + lib/engine/ahci_multiplier_phy.h | 2 -- + lib/engine/ahci_multiplier_port.h | 2 -- + lib/engine/ahci_phy.h | 2 -- + lib/engine/ahci_port.h | 2 -- + lib/engine/ahci_raid_info.h | 2 -- + lib/engine/ahci_tape.h | 2 -- + lib/engine/array.h | 2 -- + lib/engine/block_device.h | 2 -- + lib/engine/cache.h | 2 -- + lib/engine/container.h | 2 -- + lib/engine/context_manager.h | 2 -- + lib/engine/controller.h | 2 -- + lib/engine/enclosure.h | 2 -- + lib/engine/end_device.h | 2 -- + lib/engine/event.h | 2 -- + lib/engine/event_manager.h | 2 -- + lib/engine/exception.h | 2 -- + lib/engine/filesystem.h | 2 -- + lib/engine/isci.h | 2 -- + lib/engine/isci_cdrom.h | 2 -- + lib/engine/isci_disk.h | 2 -- + lib/engine/isci_expander.h | 2 -- + lib/engine/isci_expander_phy.h | 2 -- + lib/engine/isci_expander_port.h | 2 -- + lib/engine/isci_phy.h | 2 -- + lib/engine/isci_port.h | 2 -- + lib/engine/isci_raid_info.h | 2 -- + lib/engine/isci_tape.h | 2 -- + lib/engine/list.h | 2 -- + lib/engine/mdadm_config.h | 2 -- + lib/engine/multimedia_device.h | 2 -- + lib/engine/nondisk_device.h | 2 -- + lib/engine/object.h | 2 -- + lib/engine/pci_header.h | 2 -- + lib/engine/phy.h | 2 -- + lib/engine/port.h | 2 -- + lib/engine/raid_device.h | 2 -- + lib/engine/raid_info.h | 2 -- + lib/engine/remote_port.h | 2 -- + lib/engine/routing_device.h | 2 -- + lib/engine/session.h | 2 -- + lib/engine/session_manager.h | 2 -- + lib/engine/storage_device.h | 2 -- + lib/engine/stream_device.h | 2 -- + lib/engine/string.h | 2 -- + lib/engine/unique_id_manager.h | 2 -- + lib/engine/utils.h | 2 -- + lib/engine/volume.h | 2 -- + lib/log/log.h | 2 -- + lib/mpb/machine_bytes.h | 2 -- + lib/mpb/mpb.h | 2 -- + lib/orom/orom.h | 2 -- + 57 files changed, 114 deletions(-) + +diff --git a/lib/efi/efi.h b/lib/efi/efi.h +index 9e7e41b..804e567 100644 +--- a/lib/efi/efi.h ++++ b/lib/efi/efi.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __EFI_H__INCLUDED__ + #define __EFI_H__INCLUDED__ +diff --git a/lib/engine/ahci.h b/lib/engine/ahci.h +index e883d1a..80a9699 100644 +--- a/lib/engine/ahci.h ++++ b/lib/engine/ahci.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_H__INCLUDED__ + #define __AHCI_H__INCLUDED__ +diff --git a/lib/engine/ahci_cdrom.h b/lib/engine/ahci_cdrom.h +index 442f301..d8ca042 100644 +--- a/lib/engine/ahci_cdrom.h ++++ b/lib/engine/ahci_cdrom.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_CDROM_H__INCLUDED__ + #define __AHCI_CDROM_H__INCLUDED__ +diff --git a/lib/engine/ahci_disk.h b/lib/engine/ahci_disk.h +index 7892a53..1bad9ad 100644 +--- a/lib/engine/ahci_disk.h ++++ b/lib/engine/ahci_disk.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_DISK_H__INCLUDED__ + #define __AHCI_DISK_H__INCLUDED__ +diff --git a/lib/engine/ahci_multiplier.h b/lib/engine/ahci_multiplier.h +index d63e9bc..1029af2 100644 +--- a/lib/engine/ahci_multiplier.h ++++ b/lib/engine/ahci_multiplier.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_MULTIPLIER_H__INCLUDED__ + #define __AHCI_MULTIPLIER_H__INCLUDED__ +diff --git a/lib/engine/ahci_multiplier_phy.h b/lib/engine/ahci_multiplier_phy.h +index 58ecebc..2132c23 100644 +--- a/lib/engine/ahci_multiplier_phy.h ++++ b/lib/engine/ahci_multiplier_phy.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_MULTIPLIER_PHY_H__INCLUDED__ + #define __AHCI_MULTIPLIER_PHY_H__INCLUDED__ +diff --git a/lib/engine/ahci_multiplier_port.h b/lib/engine/ahci_multiplier_port.h +index 5ff4cf7..2402473 100644 +--- a/lib/engine/ahci_multiplier_port.h ++++ b/lib/engine/ahci_multiplier_port.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_MULTIPLIER_PORT_H__INCLUDED__ + #define __AHCI_MULTIPLIER_PORT_H__INCLUDED__ +diff --git a/lib/engine/ahci_phy.h b/lib/engine/ahci_phy.h +index e2254e7..a44dae0 100644 +--- a/lib/engine/ahci_phy.h ++++ b/lib/engine/ahci_phy.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_PHY_H__INCLUDED__ + #define __AHCI_PHY_H__INCLUDED__ +diff --git a/lib/engine/ahci_port.h b/lib/engine/ahci_port.h +index f9e3308..03c109b 100644 +--- a/lib/engine/ahci_port.h ++++ b/lib/engine/ahci_port.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_PORT_H__INCLUDED__ + #define __AHCI_PORT_H__INCLUDED__ +diff --git a/lib/engine/ahci_raid_info.h b/lib/engine/ahci_raid_info.h +index e1c81ae..c70e63e 100644 +--- a/lib/engine/ahci_raid_info.h ++++ b/lib/engine/ahci_raid_info.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_RAID_INFO_H__INCLUDED__ + #define __AHCI_RAID_INFO_H__INCLUDED__ +diff --git a/lib/engine/ahci_tape.h b/lib/engine/ahci_tape.h +index cdd9f13..a91fd2c 100644 +--- a/lib/engine/ahci_tape.h ++++ b/lib/engine/ahci_tape.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __AHCI_TAPE_H__INCLUDED__ + #define __AHCI_TAPE_H__INCLUDED__ +diff --git a/lib/engine/array.h b/lib/engine/array.h +index 36fb4a4..0986ce3 100644 +--- a/lib/engine/array.h ++++ b/lib/engine/array.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ARRAY_H__INCLUDED__ + #define __ARRAY_H__INCLUDED__ +diff --git a/lib/engine/block_device.h b/lib/engine/block_device.h +index 4503914..45dd3db 100644 +--- a/lib/engine/block_device.h ++++ b/lib/engine/block_device.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __BLOCK_DEVICE_H__INCLUDED__ + #define __BLOCK_DEVICE_H__INCLUDED__ +diff --git a/lib/engine/cache.h b/lib/engine/cache.h +index 72cf521..72da20b 100644 +--- a/lib/engine/cache.h ++++ b/lib/engine/cache.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3,4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __CACHE_H__INCLUDED__ + #define __CACHE_H__INCLUDED__ +diff --git a/lib/engine/container.h b/lib/engine/container.h +index 53867b0..c71180c 100644 +--- a/lib/engine/container.h ++++ b/lib/engine/container.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3,4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __CONTAINER_H__INCLUDED__ + #define __CONTAINER_H__INCLUDED__ +diff --git a/lib/engine/context_manager.h b/lib/engine/context_manager.h +index fe9c256..6b4a2e7 100644 +--- a/lib/engine/context_manager.h ++++ b/lib/engine/context_manager.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3,4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __CONTEXT_H__INCLUDED__ + #define __CONTEXT_H__INCLUDED__ +diff --git a/lib/engine/controller.h b/lib/engine/controller.h +index a2f188a..6bd078f 100644 +--- a/lib/engine/controller.h ++++ b/lib/engine/controller.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __CONTROLLER_H__INCLUDED__ + #define __CONTROLLER_H__INCLUDED__ +diff --git a/lib/engine/enclosure.h b/lib/engine/enclosure.h +index 3faef0c..f4b13cc 100644 +--- a/lib/engine/enclosure.h ++++ b/lib/engine/enclosure.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ENCLOSURE_H__INCLUDED__ + #define __ENCLOSURE_H__INCLUDED__ +diff --git a/lib/engine/end_device.h b/lib/engine/end_device.h +index f147e41..269b236 100644 +--- a/lib/engine/end_device.h ++++ b/lib/engine/end_device.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __END_DEVICE_H__INCLUDED__ + #define __END_DEVICE_H__INCLUDED__ +diff --git a/lib/engine/event.h b/lib/engine/event.h +index cf9bb4f..11a4926 100644 +--- a/lib/engine/event.h ++++ b/lib/engine/event.h +@@ -12,9 +12,7 @@ Redistribution and use in source and binary forms, with or without modification, + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __EVENT_H__INCLUDED__ + #define __EVENT_H__INCLUDED__ +diff --git a/lib/engine/event_manager.h b/lib/engine/event_manager.h +index 65007b9..a7a8fc3 100644 +--- a/lib/engine/event_manager.h ++++ b/lib/engine/event_manager.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __EVENT_MANAGER_H__INCLUDED__ + #define __EVENT_MANAGER_H__INCLUDED__ +diff --git a/lib/engine/exception.h b/lib/engine/exception.h +index 171e45d..183ebb5 100644 +--- a/lib/engine/exception.h ++++ b/lib/engine/exception.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __EXCEPTION_H__INCLUDED__ + #define __EXCEPTION_H__INCLUDED__ +diff --git a/lib/engine/filesystem.h b/lib/engine/filesystem.h +index 9c2ce39..b49df07 100644 +--- a/lib/engine/filesystem.h ++++ b/lib/engine/filesystem.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __FILESYSTEM_H__INCLUDED__ + #define __FILESYSTEM_H__INCLUDED__ +diff --git a/lib/engine/isci.h b/lib/engine/isci.h +index ea35cd4..0fa602a 100644 +--- a/lib/engine/isci.h ++++ b/lib/engine/isci.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_H__INCLUDED__ + #define __ISCI_H__INCLUDED__ +diff --git a/lib/engine/isci_cdrom.h b/lib/engine/isci_cdrom.h +index 87b7e7b..25637f9 100644 +--- a/lib/engine/isci_cdrom.h ++++ b/lib/engine/isci_cdrom.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_CDROM_H__INCLUDED__ + #define __ISCI_CDROM_H__INCLUDED__ +diff --git a/lib/engine/isci_disk.h b/lib/engine/isci_disk.h +index 596c3cf..8dd0dae 100644 +--- a/lib/engine/isci_disk.h ++++ b/lib/engine/isci_disk.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_DISK_H__INCLUDED__ + #define __ISCI_DISK_H__INCLUDED__ +diff --git a/lib/engine/isci_expander.h b/lib/engine/isci_expander.h +index ca7c2f1..7dc1920 100644 +--- a/lib/engine/isci_expander.h ++++ b/lib/engine/isci_expander.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_EXPANDER_H__INCLUDED__ + #define __ISCI_EXPANDER_H__INCLUDED__ +diff --git a/lib/engine/isci_expander_phy.h b/lib/engine/isci_expander_phy.h +index c9cd770..d3d2832 100644 +--- a/lib/engine/isci_expander_phy.h ++++ b/lib/engine/isci_expander_phy.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_EXPANDER_PHY_H__INCLUDED__ + #define __ISCI_EXPANDER_PHY_H__INCLUDED__ +diff --git a/lib/engine/isci_expander_port.h b/lib/engine/isci_expander_port.h +index e65a124..4fc9310 100644 +--- a/lib/engine/isci_expander_port.h ++++ b/lib/engine/isci_expander_port.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_EXPANDER_PORT_H__INCLUDED__ + #define __ISCI_EXPANDER_PORT_H__INCLUDED__ +diff --git a/lib/engine/isci_phy.h b/lib/engine/isci_phy.h +index 767a5b2..105c697 100644 +--- a/lib/engine/isci_phy.h ++++ b/lib/engine/isci_phy.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_PHY_H__INCLUDED__ + #define __ISCI_PHY_H__INCLUDED__ +diff --git a/lib/engine/isci_port.h b/lib/engine/isci_port.h +index b80be7f..5ccc151 100644 +--- a/lib/engine/isci_port.h ++++ b/lib/engine/isci_port.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_PORT_H__INCLUDED__ + #define __ISCI_PORT_H__INCLUDED__ +diff --git a/lib/engine/isci_raid_info.h b/lib/engine/isci_raid_info.h +index 1df6477..b0b046a 100644 +--- a/lib/engine/isci_raid_info.h ++++ b/lib/engine/isci_raid_info.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_RAID_INFO_H__INCLUDED__ + #define __ISCI_RAID_INFO_H__INCLUDED__ +diff --git a/lib/engine/isci_tape.h b/lib/engine/isci_tape.h +index 985f767..a2cef2d 100644 +--- a/lib/engine/isci_tape.h ++++ b/lib/engine/isci_tape.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ISCI_TAPE_H__INCLUDED__ + #define __ISCI_TAPE_H__INCLUDED__ +diff --git a/lib/engine/list.h b/lib/engine/list.h +index 9a7c3c3..6395830 100644 +--- a/lib/engine/list.h ++++ b/lib/engine/list.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __LIST_H__INCLUDED__ + #define __LIST_H__INCLUDED__ +diff --git a/lib/engine/mdadm_config.h b/lib/engine/mdadm_config.h +index c94020f..e415b4f 100644 +--- a/lib/engine/mdadm_config.h ++++ b/lib/engine/mdadm_config.h +@@ -11,9 +11,7 @@ Redistribution and use in source and binary forms, with or without modification, + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __MDADM_CONFIG_H__INCLUDED__ + #define __MDADM_CONFIG_H__INCLUDED__ +diff --git a/lib/engine/multimedia_device.h b/lib/engine/multimedia_device.h +index 533370e..694e2a5 100644 +--- a/lib/engine/multimedia_device.h ++++ b/lib/engine/multimedia_device.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __MULTIMEDIA_DEVICE_H__INCLUDED__ + #define __MULTIMEDIA_DEVICE_H__INCLUDED__ +diff --git a/lib/engine/nondisk_device.h b/lib/engine/nondisk_device.h +index 70ebb32..0f00e52 100644 +--- a/lib/engine/nondisk_device.h ++++ b/lib/engine/nondisk_device.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __CHARACTER_DEVICE_H__INCLUDED__ + #define __CHARACTER_DEVICE_H__INCLUDED__ +diff --git a/lib/engine/object.h b/lib/engine/object.h +index b52d3d3..345d58c 100644 +--- a/lib/engine/object.h ++++ b/lib/engine/object.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __OBJECT_H__INCLUDED__ + #define __OBJECT_H__INCLUDED__ +diff --git a/lib/engine/pci_header.h b/lib/engine/pci_header.h +index 376f296..c5129a0 100644 +--- a/lib/engine/pci_header.h ++++ b/lib/engine/pci_header.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __PCI_HEADER_H__INCLUDED__ + #define __PCI_HEADER_H__INCLUDED__ +diff --git a/lib/engine/phy.h b/lib/engine/phy.h +index f5730a0..c59f7c8 100644 +--- a/lib/engine/phy.h ++++ b/lib/engine/phy.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __PHY_H__INCLUDED__ + #define __PHY_H__INCLUDED__ +diff --git a/lib/engine/port.h b/lib/engine/port.h +index 2f33876..cc48c7c 100644 +--- a/lib/engine/port.h ++++ b/lib/engine/port.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3,4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __PORT_H__INCLUDED__ + #define __PORT_H__INCLUDED__ +diff --git a/lib/engine/raid_device.h b/lib/engine/raid_device.h +index 998e80c..2174162 100644 +--- a/lib/engine/raid_device.h ++++ b/lib/engine/raid_device.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __RAID_DEVICE_H__INCLUDED__ + #define __RAID_DEVICE_H__INCLUDED__ +diff --git a/lib/engine/raid_info.h b/lib/engine/raid_info.h +index 174698a..302be9b 100644 +--- a/lib/engine/raid_info.h ++++ b/lib/engine/raid_info.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __RAID_INFO_H__INCLUDED__ + #define __RAID_INFO_H__INCLUDED__ +diff --git a/lib/engine/remote_port.h b/lib/engine/remote_port.h +index c086656..4ddfee3 100644 +--- a/lib/engine/remote_port.h ++++ b/lib/engine/remote_port.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __REMOTE_PORT_H__INCLUDED__ + #define __REMOTE_PORT_H__INCLUDED__ +diff --git a/lib/engine/routing_device.h b/lib/engine/routing_device.h +index 5f857a6..284621e 100644 +--- a/lib/engine/routing_device.h ++++ b/lib/engine/routing_device.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ROUTING_DEVICE_H__INCLUDED__ + #define __ROUTING_DEVICE_H__INCLUDED__ +diff --git a/lib/engine/session.h b/lib/engine/session.h +index a901d1c..3200da1 100644 +--- a/lib/engine/session.h ++++ b/lib/engine/session.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __SESSION_H__INCLUDED__ + #define __SESSION_H__INCLUDED__ +diff --git a/lib/engine/session_manager.h b/lib/engine/session_manager.h +index 7177064..87e16c3 100644 +--- a/lib/engine/session_manager.h ++++ b/lib/engine/session_manager.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __SESSION_MANAGER_H__INCLUDED__ + #define __SESSION_MANAGER_H__INCLUDED__ +diff --git a/lib/engine/storage_device.h b/lib/engine/storage_device.h +index ddeb66f..20bdab2 100644 +--- a/lib/engine/storage_device.h ++++ b/lib/engine/storage_device.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __STORAGE_DEVICE_H__INCLUDED__ + #define __STORAGE_DEVICE_H__INCLUDED__ +diff --git a/lib/engine/stream_device.h b/lib/engine/stream_device.h +index 9bc111a..b29bd68 100644 +--- a/lib/engine/stream_device.h ++++ b/lib/engine/stream_device.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __STREAM_DEVICE_H__INCLUDED__ + #define __STREAM_DEVICE_H__INCLUDED__ +diff --git a/lib/engine/string.h b/lib/engine/string.h +index 3007dc7..6f348c9 100644 +--- a/lib/engine/string.h ++++ b/lib/engine/string.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __STRING_H__INCLUDED__ + #define __STRING_H__INCLUDED__ +diff --git a/lib/engine/unique_id_manager.h b/lib/engine/unique_id_manager.h +index fe79eac..4a13627 100644 +--- a/lib/engine/unique_id_manager.h ++++ b/lib/engine/unique_id_manager.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __UNIQUE_ID_MANAGER_H__INCLUDED__ + #define __UNIQUE_ID_MANAGER_H__INCLUDED__ +diff --git a/lib/engine/utils.h b/lib/engine/utils.h +index 86c20cf..5525303 100644 +--- a/lib/engine/utils.h ++++ b/lib/engine/utils.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __UTILS_H__INCLUDED__ + #define __UTILS_H__INCLUDED__ +diff --git a/lib/engine/volume.h b/lib/engine/volume.h +index 9a63cbf..3347b31 100644 +--- a/lib/engine/volume.h ++++ b/lib/engine/volume.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + // Forward declarations + class Array; +diff --git a/lib/log/log.h b/lib/log/log.h +index c0bd63e..8b5f171 100644 +--- a/lib/log/log.h ++++ b/lib/log/log.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __LOG_H__INCLUDED__ + #define __LOG_H__INCLUDED__ +diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h +index 7fbb0e9..800b120 100644 +--- a/lib/mpb/machine_bytes.h ++++ b/lib/mpb/machine_bytes.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __ENDIAN_H__INCLUDED__ + #define __ENDIAN_H__INCLUDED__ +diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h +index 01782af..c42cdfb 100644 +--- a/lib/mpb/mpb.h ++++ b/lib/mpb/mpb.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __MPB_H__INCLUDED__ + #define __MPB_H__INCLUDED__ +diff --git a/lib/orom/orom.h b/lib/orom/orom.h +index f76e3ee..e10311d 100644 +--- a/lib/orom/orom.h ++++ b/lib/orom/orom.h +@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + + + +-#if __GNUC_PREREQ(3, 4) + #pragma once +-#endif /* __GNUC_PREREQ */ + + #ifndef __OROM_H__INCLUDED__ + #define __OROM_H__INCLUDED__ +-- +2.13.1 + diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch new file mode 100644 index 00000000000..27df9b5de3b --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch @@ -0,0 +1,39 @@ +From ea9ecf4bf305f9509d5822b3823658a40162f43c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Jul 2017 19:08:21 -0700 +Subject: [PATCH] ssieventmonitor: ordered comparison between pointers and + zero, actually with NULL + +Comparing which is large or small between a pointer and NULL +however, looks completely illogical. Ordered comparison of +two valid pointers is legit, but no pointer will be smaller +than NULL , so comparing if a pointer is larger than NULL +simply means if the pointer is not NULL. + +Fixes errors found with clang e.g. + +| ssieventmonitor.cpp:339:53: error: ordered comparison between pointer and zero ('char *' and 'int') +| if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) { +| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~ + +Signed-off-by: Khem Raj +--- + tools/ssieventmonitor.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp +index f04b8f0..7a00122 100644 +--- a/tools/ssieventmonitor.cpp ++++ b/tools/ssieventmonitor.cpp +@@ -336,7 +336,7 @@ static int _read_mdstat(int fd) + if (!strncmp(line, "md", 2)) { + if (strstr(line, INACTIVE_STR)) { /* possibly container */ + char nextline[1024]; +- if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) { ++ if (fgets(nextline, sizeof(nextline) - 1, mdstat) != (char *) NULL) { + fclose(mdstat); + return 1; + } +-- +2.13.3 + diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch new file mode 100644 index 00000000000..351301cdc3e --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch @@ -0,0 +1,123 @@ +From 1338ee4e69c465f8f381ec3bfe5058080236edba Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 16 Jun 2017 22:08:35 -0700 +Subject: [PATCH 2/6] Convert macros into functions + +This helps in fixing the security format warnings +add -fno-builtin-log + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + lib/engine/Makefile.am | 3 ++- + lib/log/Makefile.am | 2 ++ + lib/log/log.h | 34 +++++++++++++++++++++------------- + src/Makefile.am | 3 ++- + 4 files changed, 27 insertions(+), 15 deletions(-) + +Index: ssiapi.1.0.1/lib/engine/Makefile.am +=================================================================== +--- ssiapi.1.0.1.orig/lib/engine/Makefile.am ++++ ssiapi.1.0.1/lib/engine/Makefile.am +@@ -113,4 +113,5 @@ libengine_la_SOURCES = \ + libengine_la_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/include \ +- -I$(top_srcdir)/lib ++ -I$(top_srcdir)/lib \ ++ -fno-builtin-log +Index: ssiapi.1.0.1/lib/log/Makefile.am +=================================================================== +--- ssiapi.1.0.1.orig/lib/log/Makefile.am ++++ ssiapi.1.0.1/lib/log/Makefile.am +@@ -5,3 +5,5 @@ noinst_LTLIBRARIES = liblog.la + liblog_la_SOURCES = \ + log.c \ + log.h ++ ++liblog_la_CPPFLAGS = -fno-builtin-log +Index: ssiapi.1.0.1/lib/log/log.h +=================================================================== +--- ssiapi.1.0.1.orig/lib/log/log.h ++++ ssiapi.1.0.1/lib/log/log.h +@@ -23,7 +23,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIG + #if defined(__cplusplus) + extern "C" { + #endif /* __cplusplus */ +- ++#include + /* */ + enum log_level { + LOG_FIRST = 0, +@@ -37,26 +37,34 @@ enum log_level { + }; + + /* */ +-#define log(__level, __format, ...) \ +- do { if (log_get_level() >= (enum log_level)(__level)) \ +- __log(__level, __format, ## __VA_ARGS__); \ +- } while (0) +- +-#define dlog(__format, ...) \ +- log(LOG_DEBUG, __format, ## __VA_ARGS__); ++void __log(enum log_level level, const char *format, ...) ++ __attribute__((format(printf, 2, 3))); + + /* */ +-void log_init(enum log_level level, const char *path); ++enum log_level log_get_level(void); + + /* */ +-void log_fini(void); +- ++static inline void log(enum log_level __level, const char* __format, ...) { ++ va_list ap; ++ va_start(ap, __format); ++ do { ++ if (log_get_level() >= (enum log_level)(__level)) ++ __log(__level, __format, ap); ++ } while (0); ++ va_end(ap); ++} ++ ++static inline void dlog(const char* __format, ...) { ++ va_list ap; ++ va_start(ap, __format); ++ log(LOG_DEBUG, __format, ap); ++ va_end(ap); ++} + /* */ +-void __log(enum log_level level, const char *format, ...) +- __attribute__((format(printf, 2, 3))); ++void log_init(enum log_level level, const char *path); + + /* */ +-enum log_level log_get_level(void); ++void log_fini(void); + + /* */ + void log_set_level(enum log_level level); +Index: ssiapi.1.0.1/src/Makefile.am +=================================================================== +--- ssiapi.1.0.1.orig/src/Makefile.am ++++ ssiapi.1.0.1/src/Makefile.am +@@ -7,7 +7,8 @@ lib_LTLIBRARIES = libssi.la + libssi_la_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/include \ +- -I$(top_srcdir)/lib ++ -I$(top_srcdir)/lib \ ++ -fno-builtin-log + + libssi_la_LDFLAGS = \ + $(SGUTILS_LDFLAGS) \ +Index: ssiapi.1.0.1/lib/efi/Makefile.am +=================================================================== +--- ssiapi.1.0.1.orig/lib/efi/Makefile.am ++++ ssiapi.1.0.1/lib/efi/Makefile.am +@@ -5,3 +5,4 @@ noinst_LTLIBRARIES = libefi.la + libefi_la_SOURCES = \ + efi.cpp \ + efi.h ++libefi_la_CPPFLAGS = -fno-builtin-log diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch new file mode 100644 index 00000000000..98cd40c84c4 --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch @@ -0,0 +1,33 @@ +From 781288d6307002cce70ddafb6efb200b7f60294d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 16 Jun 2017 22:12:43 -0700 +Subject: [PATCH 3/6] Replace canonicalize_file_name with realpath() API + +Fixed build on musl where canonicalize_file_name is not implemented + +filesystem.cpp:46:15: error: 'canonicalize_file_name' was not declared in this scope + char *p = canonicalize_file_name(path); + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + lib/engine/filesystem.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp +index b99257e..6064837 100644 +--- a/lib/engine/filesystem.cpp ++++ b/lib/engine/filesystem.cpp +@@ -43,7 +43,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path) + if (path == 0) { + throw E_NULL_POINTER; + } +- char *p = canonicalize_file_name(path); ++ char *p = realpath(path, NULL); + assign(p); + if (p) { + free(p); +-- +2.13.1 + diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch new file mode 100644 index 00000000000..7dce0da40be --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch @@ -0,0 +1,54 @@ +From 04e8b99d8195a0e39982ecd27802421610633724 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 16 Jun 2017 22:18:31 -0700 +Subject: [PATCH 4/6] engine: Fix indentation and missing semi-colon + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + lib/engine/mdadm_config.cpp | 5 +++-- + lib/engine/unique_id_manager.cpp | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/lib/engine/mdadm_config.cpp b/lib/engine/mdadm_config.cpp +index 1914ddc..e40c2c7 100644 +--- a/lib/engine/mdadm_config.cpp ++++ b/lib/engine/mdadm_config.cpp +@@ -118,9 +118,10 @@ void check_configuration() + attr >> config; + configOk = correct_config(config); + } catch (Exception ex) { +- if (ex != E_NOT_FOUND) ++ if (ex != E_NOT_FOUND) { + dlog("Warning: mdadm config file cannot be read, new one will be written"); + backup = false; ++ } + } + + if (configOk && monitor_running()) { +@@ -134,7 +135,7 @@ void check_configuration() + dlog("Warning: failed to update mdadm.conf"); + } + if (restart_monitor() == 0) +- dlog("Monitor restarted successfully") ++ dlog("Monitor restarted successfully"); + else + dlog("Error starting Monitor"); + } +diff --git a/lib/engine/unique_id_manager.cpp b/lib/engine/unique_id_manager.cpp +index 99c153c..87d6ddc 100644 +--- a/lib/engine/unique_id_manager.cpp ++++ b/lib/engine/unique_id_manager.cpp +@@ -185,7 +185,7 @@ void UniqueIdManager::refresh() + keyFile >> keyList; + keyList += "\n"; + } catch (...) { +- dlog("ssi.keys file missing") ++ dlog("ssi.keys file missing"); + /* no file? that's ok */ + } + /* process the list to update IdCaches */ +-- +2.13.1 + diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch new file mode 100644 index 00000000000..6f4dbf18e02 --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch @@ -0,0 +1,40 @@ +From a2e3a2e332c406ea3c56a8d74b61978107df68e6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 16 Jun 2017 22:23:08 -0700 +Subject: [PATCH 5/6] engine: Define SENTINEL + +Fix warnings with gcc7 +test.cpp:12: warning: missing sentinel in function call + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + lib/engine/utils.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/engine/utils.cpp b/lib/engine/utils.cpp +index 44579a1..8812a8c 100644 +--- a/lib/engine/utils.cpp ++++ b/lib/engine/utils.cpp +@@ -35,7 +35,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + #include "filesystem.h" + #include "utils.h" + #include "log/log.h" +- ++#define SENTINEL (const char *)0 + /** + * @brief capture shell output as binary data + * +@@ -139,7 +139,7 @@ int shell(const String &s) + * Before switching into new executable close all non standard + * file handlers.*/ + close_parent_fds(); +- execl("/bin/sh", "sh", "-c", cmd.get(), NULL); ++ execl("/bin/sh", "sh", "-c", cmd.get(), SENTINEL); + /* If we're here then execl failed*/ + exit(-1); + break; +-- +2.13.1 + diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch new file mode 100644 index 00000000000..a7b70e3f492 --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch @@ -0,0 +1,40 @@ +From df1d56d6b6a6b15d0137619eb8a4b623de6c9633 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 16 Jun 2017 22:28:59 -0700 +Subject: [PATCH 6/6] tools: Add missing includes and use realpath() instead of + canonicalize_file_name + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + tools/ssieventmonitor.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp +index 0553386..f04b8f0 100644 +--- a/tools/ssieventmonitor.cpp ++++ b/tools/ssieventmonitor.cpp +@@ -18,7 +18,9 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + #include + #include + #include +-#include ++#include ++#include ++#include + #include + #include + #include +@@ -99,7 +101,7 @@ static int _exec_ssimsg(void) + int status; + switch (pid) { + case 0: { +- cp = canonicalize_file_name("/proc/self/exe"); ++ cp = realpath("/proc/self/exe", NULL); + if (cp) { + strcpy(buffer, cp); + free(cp); +-- +2.13.1 + diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch b/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch new file mode 100644 index 00000000000..d45be590c7e --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch @@ -0,0 +1,21 @@ +Do not override flags thereby respect the flags coming from environment, +e.g. we need some optimization level turned on when security flags are enabled +without this change, the build would fail + +Signed-off-by: Khem Raj +Index: ssiapi.1.0.1/configure.ac +=================================================================== +--- ssiapi.1.0.1.orig/configure.ac ++++ ssiapi.1.0.1/configure.ac +@@ -15,11 +15,6 @@ AC_SUBST(VERSION) + AM_INIT_AUTOMAKE(ssi, ${VERSION}) + AM_CONFIG_HEADER(config.h) + +-dnl Set the language we use +-CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -D_GNU_SOURCE" +-CFLAGS="-std=gnu99" +-CXXFLAGS="-std=gnu++98" +- + dnl Automake 1.11 - silent build rules + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb b/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb new file mode 100644 index 00000000000..5eb4696b57d --- /dev/null +++ b/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb @@ -0,0 +1,35 @@ +SUMMARY = "Intel RSTe with Linux OS SSI API Library" + +DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \ +The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset." + +HOMEPAGE = "http://irstessi.sourceforge.net/" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=0413ff365e0bd733c4869a6797551c6f" + +DEPENDS += "sg3-utils" + +SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \ + file://0001-Use-pragma-once-unconditionally.patch \ + file://0002-Convert-macros-into-functions.patch \ + file://0003-Replace-canonicalize_file_name-with-realpath-API.patch \ + file://0004-engine-Fix-indentation-and-missing-semi-colon.patch \ + file://0005-engine-Define-SENTINEL.patch \ + file://0006-tools-Add-missing-includes-and-use-realpath-instead-.patch \ + file://configure-cflags.patch \ + file://0001-ssieventmonitor-ordered-comparison-between-pointers-.patch \ + " +SRC_URI[md5sum] = "02f16d7cbd30d28034093212906591f5" +SRC_URI[sha256sum] = "e10d283b0f211afb8ebd0bde87c097769613d30a052cdf164753e35e803264c7" + +S ="${WORKDIR}/${BPN}.${PV}" + +inherit autotools-brokensep +CXXFLAGS="-std=gnu++98 -D_GNU_SOURCE" + +do_configure_prepend(){ + ./autogen.sh +} + +RDEPENDS_${PN} += "mdadm" diff --git a/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch b/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch new file mode 100644 index 00000000000..e988efded6a --- /dev/null +++ b/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch @@ -0,0 +1,39 @@ +From 685645a20e39cf2ab7db8d1f5e3666a4228abca8 Mon Sep 17 00:00:00 2001 +From: Ioan-Adrian Ratiu +Date: Wed, 8 Jul 2015 09:44:57 +0300 +Subject: [PATCH 1/1] dpkg start-stop-daemon: Accept SIG prefixed signal names + +--- + utils/start-stop-daemon.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/utils/start-stop-daemon.c b/utils/start-stop-daemon.c +index 6aebe9b..e805082 100644 +--- a/utils/start-stop-daemon.c ++++ b/utils/start-stop-daemon.c +@@ -18,6 +18,9 @@ + * and Andreas Schuldei + * + * Changes by Ian Jackson: added --retry (and associated rearrangements). ++ * ++ * Changes by Haris Okanovic to support 'SIG' ++ * prefixed signal names placed in public domain as well. + */ + + #include +@@ -661,6 +664,12 @@ parse_signal(const char *sig_str, int *sig_num) + if (parse_unsigned(sig_str, 10, sig_num) == 0) + return 0; + ++ /* Skip over optional "SIG" prefix */ ++ if (strncmp(sig_str, "SIG", 3) == 0) { ++ warning("Using deprecated signal name %s. Drop the 'SIG' prefix.\n", sig_str); ++ sig_str += 3; ++ } ++ + for (i = 0; i < array_count(siglist); i++) { + if (strcmp(sig_str, siglist[i].name) == 0) { + *sig_num = siglist[i].signal; +-- +2.1.4 + diff --git a/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.16.0.2.bb b/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.16.0.2.bb deleted file mode 100644 index c8d88b7f4ed..00000000000 --- a/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.16.0.2.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Debian's start-stop-daemon utility extracted from the dpkg \ -package" -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://utils/start-stop-daemon.c;md5=a963623e4588f70122865aaa7a370ce4" -# start-stop-daemon is usually shipped by dpkg -DEPENDS = "ncurses" -RCONFLICS_${PN} = "dpkg" - -PNBLACKLIST[start-stop-daemon] ?= "BROKEN: fails because of gettext, partial fix is available here http://patchwork.openembedded.org/patch/89867/" - -SRC_URI = "http://sources.openembedded.org/dpkg_${PV}.tar.bz2" -SRC_URI[md5sum] = "d211a84f38987771a49ad1c0f144334a" -SRC_URI[sha256sum] = "2a3d4ba83c743b3f004533fdd52372cb7b22f5c1da2042d0a31bbcc2b54c0ea5" - -inherit autotools gettext pkgconfig - -S = "${WORKDIR}/dpkg-${PV}" - -EXTRA_OECONF = " \ - --with-start-stop-daemon \ - --without-bz2 \ - --without-install-info \ - --without-selinux \ - --without-update-alternatives \ -" - -do_install_append () { - # remove everything that is not related to start-stop-daemon, since there - # is no explicit rule for only installing ssd - find ${D} -type f -not -name "*start-stop-daemon*" -exec rm {} \; - find ${D} -depth -type d -empty -exec rmdir {} \; -} diff --git a/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb new file mode 100644 index 00000000000..cc2727b7586 --- /dev/null +++ b/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb @@ -0,0 +1,38 @@ +SUMMARY = "Debian's start-stop-daemon utility extracted from the dpkg \ +package" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://utils/start-stop-daemon.c;endline=21;md5=8fbd0497a7d0b01e99820bffcb58e9ad" +# start-stop-daemon is usually shipped by dpkg +DEPENDS = "ncurses" +RCONFLICTS_${PN} = "dpkg" + +SRC_URI = " \ + ${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \ + file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \ +" + +SRC_URI[md5sum] = "e48fcfdb2162e77d72c2a83432d537ca" +SRC_URI[sha256sum] = "07019d38ae98fb107c79dbb3690cfadff877f153b8c4970e3a30d2e59aa66baa" + +inherit autotools gettext pkgconfig + +S = "${WORKDIR}/dpkg-${PV}" + +EXTRA_OECONF = " \ + --without-bz2 \ + --without-selinux \ +" + +do_install_append () { + # remove everything that is not related to start-stop-daemon, since there + # is no explicit rule for only installing ssd + find ${D} -type f -not -name "*start-stop-daemon*" -exec rm {} \; + find ${D} -depth -type d -empty -exec rmdir {} \; + + # support for buggy init.d scripts that refer to an alternative + # explicit path to start-stop-daemon + if [ "${base_sbindir}" != "${sbindir}" ]; then + mkdir -p ${D}${base_sbindir} + ln -sf ${sbindir}/start-stop-daemon ${D}${base_sbindir}/start-stop-daemon + fi +} diff --git a/meta-oe/recipes-support/synergy/synergy_1.3.8.bb b/meta-oe/recipes-support/synergy/synergy_1.3.8.bb deleted file mode 100644 index 45c0bc2f528..00000000000 --- a/meta-oe/recipes-support/synergy/synergy_1.3.8.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Synergy - control multiple computers with one keyboard and mouse" -HOMEPAGE = "http://synergy.googlecode.com" -LIC_FILES_CHKSUM = "file://COPYING;md5=9772a11e3569985855e2ce450e56f991" -LICENSE = "GPL-2.0" -SECTION = "x11/utils" - -DEPENDS = "virtual/libx11 libxtst libxinerama" - -SRC_URI = "http://synergy.googlecode.com/files/synergy-${PV}-Source.tar.gz" - -SRC_URI[md5sum] = "3534c65ecfa6e47d7899c57975442f03" -SRC_URI[sha256sum] = "0afc83e4ed0b46ed497d4229b2b2854e8d3c581a112f4da05110943edbfacc03" - -S = "${WORKDIR}/${PN}-${PV}-Source" - -inherit cmake distro_features_check -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -do_install() { - install -d ${D}/usr/bin - install -m 0755 ${S}/bin/synergy* ${D}/usr/bin/ -} - diff --git a/meta-oe/recipes-support/synergy/synergy_git.bb b/meta-oe/recipes-support/synergy/synergy_git.bb new file mode 100644 index 00000000000..68f0387ba97 --- /dev/null +++ b/meta-oe/recipes-support/synergy/synergy_git.bb @@ -0,0 +1,35 @@ +SUMMARY = "Synergy - control multiple computers with one keyboard and mouse" +HOMEPAGE = "http://synergy-project.org" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d2ba51ca68e055566aade24662f9eb41" +LICENSE = "GPL-2.0-with-OpenSSL-exception" +SECTION = "x11/utils" + +DEPENDS = "virtual/libx11 libxtst libxinerama curl openssl" +do_unpack_extra[depends] = "unzip-native:do_populate_sysroot" + +# depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "git://github.com/symless/synergy.git;protocol=http" + +# Version 1.8.8-stable +SRCREV ?= "c30301e23424db1125664da17deb8c3aa6aec52d" +PV = "1.8.8+${SRCPV}" + +S = "${WORKDIR}/git" + +inherit cmake distro_features_check + +do_unpack_extra() { + cd ${S}/ext + for file in *.zip; do + fname="${file##*/}" + unzip $file -d ${fname%.*} + done +} +addtask unpack_extra after do_unpack before do_patch + +do_install() { + install -d ${D}/usr/bin + install -m 0755 ${S}/bin/synergy* ${D}/usr/bin/ +} diff --git a/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-for-mutex.patch b/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-for-mutex.patch deleted file mode 100644 index 89022aaf008..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-for-mutex.patch +++ /dev/null @@ -1,58 +0,0 @@ -Fix the memory leak problem for mutex - -Upstream-Status: Pending - -Signed-off-by: Xufeng Zhang ---- - lib/logqueue.c | 1 + - modules/affile/affile-dest.c | 2 ++ - modules/dbparser/dbparser.c | 1 + - 3 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/lib/logqueue.c b/lib/logqueue.c -index 337a3c1..10edcf0 100644 ---- a/lib/logqueue.c -+++ b/lib/logqueue.c -@@ -188,6 +188,7 @@ log_queue_init_instance(LogQueue *self, const gchar *persist_name) - void - log_queue_free_method(LogQueue *self) - { -+ g_static_mutex_free(&self->lock); - g_free(self->persist_name); - g_free(self); - } -diff --git a/modules/affile/affile-dest.c b/modules/affile/affile-dest.c -index a2bcdad..ce79f6f 100644 ---- a/modules/affile/affile-dest.c -+++ b/modules/affile/affile-dest.c -@@ -305,6 +305,7 @@ affile_dw_free(LogPipe *s) - { - AFFileDestWriter *self = (AFFileDestWriter *) s; - -+ g_static_mutex_free(&self->lock); - log_pipe_unref((LogPipe *) self->writer); - self->writer = NULL; - g_free(self->filename); -@@ -687,6 +688,7 @@ affile_dd_free(LogPipe *s) - /* NOTE: this must be NULL as deinit has freed it, otherwise we'd have circular references */ - g_assert(self->single_writer == NULL && self->writer_hash == NULL); - -+ g_static_mutex_free(&self->lock); - log_template_unref(self->filename_template); - log_writer_options_destroy(&self->writer_options); - log_dest_driver_free(s); -diff --git a/modules/dbparser/dbparser.c b/modules/dbparser/dbparser.c -index f1248b5..9775701 100644 ---- a/modules/dbparser/dbparser.c -+++ b/modules/dbparser/dbparser.c -@@ -284,6 +284,7 @@ log_db_parser_free(LogPipe *s) - { - LogDBParser *self = (LogDBParser *) s; - -+ g_static_mutex_free(&self->lock); - if (self->db) - pattern_db_free(self->db); - --- -1.7.1 - diff --git a/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch b/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch deleted file mode 100644 index 42e181bb1f4..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch +++ /dev/null @@ -1,494 +0,0 @@ -From 23e80b75508187baaa823a68ea019b72e0b2305c Mon Sep 17 00:00:00 2001 -From: Budai Laszlo -Date: Tue, 12 Nov 2013 13:19:04 +0100 -Subject: [PATCH] afsql: afsql_dd_insert_db() refactor - -Upstream-Status: Backport - -A lot of the code that was previously in afsql_dd_insert_db() have been -extracted to smaller functions, and afsql_dd_insert_db() was rebuilt on -top of these. At the same time, memory leaks were plugged, and in case -of a transaction error, backlog rewinding has been fixed too, to not -loose messages since the last BEGIN command. - -Signed-off-by: Juhasz Viktor -Signed-off-by: Laszlo Budai ---- - modules/afsql/afsql.c | 301 ++++++++++++++++++++++++++++++++------------------ - 1 file changed, 192 insertions(+), 109 deletions(-) - -diff --git a/modules/afsql/afsql.c b/modules/afsql/afsql.c -index 12f6aab..a6a8190 100644 ---- a/modules/afsql/afsql.c -+++ b/modules/afsql/afsql.c -@@ -456,24 +456,21 @@ afsql_dd_create_index(AFSqlDestDriver *s - * - * NOTE: This function can only be called from the database thread. - **/ --static GString * --afsql_dd_validate_table(AFSqlDestDriver *self, LogMessage *msg) -+static gboolean -+afsql_dd_validate_table(AFSqlDestDriver *self, GString *table) - { -- GString *query_string, *table; -+ GString *query_string; - dbi_result db_res; - gboolean success = FALSE; - gint i; - -- table = g_string_sized_new(32); -- log_template_format(self->table, msg, &self->template_options, LTZ_LOCAL, 0, NULL, table); -- - if (self->flags & AFSQL_DDF_DONT_CREATE_TABLES) -- return table; -+ return TRUE; - - afsql_dd_check_sql_identifier(table->str, TRUE); - - if (g_hash_table_lookup(self->validated_tables, table->str)) -- return table; -+ return TRUE; - - query_string = g_string_sized_new(32); - g_string_printf(query_string, "SELECT * FROM %s WHERE 0=1", table->str); -@@ -544,14 +541,9 @@ afsql_dd_validate_table(AFSqlDestDriver - /* we have successfully created/altered the destination table, record this information */ - g_hash_table_insert(self->validated_tables, g_strdup(table->str), GUINT_TO_POINTER(TRUE)); - } -- else -- { -- g_string_free(table, TRUE); -- table = NULL; -- } - g_string_free(query_string, TRUE); - -- return table; -+ return success; - } - - /** -@@ -581,6 +573,20 @@ afsql_dd_begin_txn(AFSqlDestDriver *self - } - - /** -+ * afsql_dd_handle_transaction_error: -+ * -+ * Handle errors inside during a SQL transaction (e.g. INSERT or COMMIT failures). -+ * -+ * NOTE: This function can only be called from the database thread. -+ **/ -+static void -+afsql_dd_handle_transaction_error(AFSqlDestDriver *self) -+{ -+ log_queue_rewind_backlog(self->queue); -+ self->flush_lines_queued = 0; -+} -+ -+/** - * afsql_dd_begin_txn: - * - * Commit SQL transaction. -@@ -596,14 +602,14 @@ afsql_dd_commit_txn(AFSqlDestDriver *sel - if (success) - { - log_queue_ack_backlog(self->queue, self->flush_lines_queued); -+ self->flush_lines_queued = 0; - } - else - { -- msg_notice("SQL transaction commit failed, rewinding backlog and starting again", -- NULL); -- log_queue_rewind_backlog(self->queue); -+ msg_error("SQL transaction commit failed, rewinding backlog and starting again", -+ NULL); -+ afsql_dd_handle_transaction_error(self); - } -- self->flush_lines_queued = 0; - return success; - } - -@@ -644,12 +650,13 @@ afsql_dd_set_dbd_opt_numeric(gpointer ke - } - - static gboolean --afsql_dd_connect(AFSqlDestDriver *self) -+afsql_dd_ensure_initialized_connection(AFSqlDestDriver *self) - { - if (self->dbi_ctx) - return TRUE; - - self->dbi_ctx = dbi_conn_new(self->type); -+ - if (!self->dbi_ctx) - { - msg_error("No such DBI driver", -@@ -659,10 +666,12 @@ afsql_dd_connect(AFSqlDestDriver *self) - } - - dbi_conn_set_option(self->dbi_ctx, "host", self->host); -+ - if (strcmp(self->type, "mysql")) - dbi_conn_set_option(self->dbi_ctx, "port", self->port); - else - dbi_conn_set_option_numeric(self->dbi_ctx, "port", atoi(self->port)); -+ - dbi_conn_set_option(self->dbi_ctx, "username", self->user); - dbi_conn_set_option(self->dbi_ctx, "password", self->password); - dbi_conn_set_option(self->dbi_ctx, "dbname", self->database); -@@ -691,6 +700,7 @@ afsql_dd_connect(AFSqlDestDriver *self) - evt_tag_str("database", self->database), - evt_tag_str("error", dbi_error), - NULL); -+ - return FALSE; - } - -@@ -713,104 +723,145 @@ afsql_dd_connect(AFSqlDestDriver *self) - return TRUE; - } - --static gboolean --afsql_dd_insert_fail_handler(AFSqlDestDriver *self, LogMessage *msg, -- LogPathOptions *path_options) -+static GString * -+afsql_dd_ensure_accessible_database_table(AFSqlDestDriver *self, LogMessage *msg) - { -- if (self->failed_message_counter < self->num_retries - 1) -- { -- log_queue_push_head(self->queue, msg, path_options); -- -- /* database connection status sanity check after failed query */ -- if (dbi_conn_ping(self->dbi_ctx) != 1) -- { -- const gchar *dbi_error; -- -- dbi_conn_error(self->dbi_ctx, &dbi_error); -- msg_error("Error, no SQL connection after failed query attempt", -- evt_tag_str("type", self->type), -- evt_tag_str("host", self->host), -- evt_tag_str("port", self->port), -- evt_tag_str("username", self->user), -- evt_tag_str("database", self->database), -- evt_tag_str("error", dbi_error), -- NULL); -- return FALSE; -- } -+ GString *table = g_string_sized_new(32); -+ log_template_format(self->table, msg, &self->template_options, LTZ_LOCAL, 0, NULL, table); - -- self->failed_message_counter++; -- return FALSE; -+ if (!afsql_dd_validate_table(self, table)) -+ { -+ /* If validate table is FALSE then close the connection and wait time_reopen time (next call) */ -+ msg_error("Error checking table, disconnecting from database, trying again shortly", -+ evt_tag_int("time_reopen", self->time_reopen), -+ NULL); -+ g_string_free(table, TRUE); -+ return NULL; - } - -- msg_error("Multiple failures while inserting this record into the database, message dropped", -- evt_tag_int("attempts", self->num_retries), -- NULL); -- stats_counter_inc(self->dropped_messages); -- log_msg_drop(msg, path_options); -- self->failed_message_counter = 0; -- return TRUE; -+ return table; - } - - static GString * --afsql_dd_construct_query(AFSqlDestDriver *self, GString *table, -- LogMessage *msg) -+afsql_dd_build_insert_command(AFSqlDestDriver *self, LogMessage *msg, GString *table) - { -- GString *value; -- GString *query_string; -- gint i; -+ GString *insert_command = g_string_sized_new(256); -+ GString *value = g_string_sized_new(512); -+ gint i, j; - -- value = g_string_sized_new(256); -- query_string = g_string_sized_new(512); -+ g_string_printf(insert_command, "INSERT INTO %s (", table->str); - -- g_string_printf(query_string, "INSERT INTO %s (", table->str); - for (i = 0; i < self->fields_len; i++) - { -- g_string_append(query_string, self->fields[i].name); -- if (i != self->fields_len - 1) -- g_string_append(query_string, ", "); -+ if ((self->fields[i].flags & AFSQL_FF_DEFAULT) == 0 && self->fields[i].value != NULL) -+ { -+ g_string_append(insert_command, self->fields[i].name); -+ -+ j = i + 1; -+ while (j < self->fields_len && (self->fields[j].flags & AFSQL_FF_DEFAULT) == AFSQL_FF_DEFAULT) -+ j++; -+ -+ if (j < self->fields_len) -+ g_string_append(insert_command, ", "); -+ } - } -- g_string_append(query_string, ") VALUES ("); -+ -+ g_string_append(insert_command, ") VALUES ("); - - for (i = 0; i < self->fields_len; i++) - { - gchar *quoted; - -- if (self->fields[i].value == NULL) -- { -- /* the config used the 'default' value for this column -> the fields[i].value is NULL, use SQL default */ -- g_string_append(query_string, "DEFAULT"); -- } -- else -+ if ((self->fields[i].flags & AFSQL_FF_DEFAULT) == 0 && self->fields[i].value != NULL) - { - log_template_format(self->fields[i].value, msg, &self->template_options, LTZ_SEND, self->seq_num, NULL, value); -- - if (self->null_value && strcmp(self->null_value, value->str) == 0) - { -- g_string_append(query_string, "NULL"); -+ g_string_append(insert_command, "NULL"); - } - else - { - dbi_conn_quote_string_copy(self->dbi_ctx, value->str, "ed); - if (quoted) - { -- g_string_append(query_string, quoted); -+ g_string_append(insert_command, quoted); - free(quoted); - } - else - { -- g_string_append(query_string, "''"); -+ g_string_append(insert_command, "''"); - } - } -- } - -- if (i != self->fields_len - 1) -- g_string_append(query_string, ", "); -+ j = i + 1; -+ while (j < self->fields_len && (self->fields[j].flags & AFSQL_FF_DEFAULT) == AFSQL_FF_DEFAULT) -+ j++; -+ if (j < self->fields_len) -+ g_string_append(insert_command, ", "); -+ } - } -- g_string_append(query_string, ")"); -+ -+ g_string_append(insert_command, ")"); - - g_string_free(value, TRUE); - -- return query_string; -+ return insert_command; -+} -+ -+static inline gboolean -+afsql_dd_is_transaction_handling_enabled(const AFSqlDestDriver *self) -+{ -+ return self->flush_lines_queued != -1; -+} -+ -+static inline gboolean -+afsql_dd_should_start_new_transaction(const AFSqlDestDriver *self) -+{ -+ return self->flush_lines_queued == 0; -+} -+ -+static inline gboolean -+afsql_dd_should_commit_transaction(const AFSqlDestDriver *self) -+{ -+ return afsql_dd_is_transaction_handling_enabled(self) && self->flush_lines_queued == self->flush_lines; -+} -+ -+static inline gboolean -+afsql_dd_handle_insert_row_error_depending_on_connection_availability(AFSqlDestDriver *self, -+ LogMessage *msg, -+ LogPathOptions *path_options) -+{ -+ const gchar *dbi_error, *error_message; -+ -+ if (dbi_conn_ping(self->dbi_ctx) == 1) -+ { -+ log_queue_push_head(self->queue, msg, path_options); -+ return TRUE; -+ } -+ -+ if (afsql_dd_is_transaction_handling_enabled(self)) -+ { -+ error_message = "SQL connection lost in the middle of a transaction," -+ " rewinding backlog and starting again"; -+ afsql_dd_handle_transaction_error(self); -+ } -+ else -+ { -+ error_message = "Error, no SQL connection after failed query attempt"; -+ log_queue_push_head(self->queue, msg, path_options); -+ } -+ -+ dbi_conn_error(self->dbi_ctx, &dbi_error); -+ msg_error(error_message, -+ evt_tag_str("type", self->type), -+ evt_tag_str("host", self->host), -+ evt_tag_str("port", self->port), -+ evt_tag_str("username", self->user), -+ evt_tag_str("database", self->database), -+ evt_tag_str("error", dbi_error), -+ NULL); -+ -+ return FALSE; - } - - /** -@@ -824,61 +875,93 @@ afsql_dd_construct_query(AFSqlDestDriver - static gboolean - afsql_dd_insert_db(AFSqlDestDriver *self) - { -- GString *table, *query_string; -+ GString *table = NULL; -+ GString *insert_command = NULL; - LogMessage *msg; - gboolean success; - LogPathOptions path_options = LOG_PATH_OPTIONS_INIT; - -- afsql_dd_connect(self); -+ if (!afsql_dd_ensure_initialized_connection(self)) -+ return FALSE; - -- success = log_queue_pop_head(self->queue, &msg, &path_options, (self->flags & AFSQL_DDF_EXPLICIT_COMMITS), FALSE); -+ /* connection established, try to insert a message */ -+ success = log_queue_pop_head(self->queue, &msg, &path_options, FALSE, self->flags & AFSQL_DDF_EXPLICIT_COMMITS); - if (!success) - return TRUE; - - msg_set_context(msg); - -- table = afsql_dd_validate_table(self, msg); -+ table = afsql_dd_ensure_accessible_database_table(self, msg); -+ - if (!table) - { -- /* If validate table is FALSE then close the connection and wait time_reopen time (next call) */ -- msg_error("Error checking table, disconnecting from database, trying again shortly", -- evt_tag_int("time_reopen", self->time_reopen), -- NULL); -- msg_set_context(NULL); -- g_string_free(table, TRUE); -- return afsql_dd_insert_fail_handler(self, msg, &path_options); -+ success = FALSE; -+ goto out; - } - -- query_string = afsql_dd_construct_query(self, table, msg); -+ if (afsql_dd_should_start_new_transaction(self) && !afsql_dd_begin_txn(self)) -+ { -+ success = FALSE; -+ goto out; -+ } - -- if (self->flush_lines_queued == 0 && !afsql_dd_begin_txn(self)) -- return FALSE; -+ insert_command = afsql_dd_build_insert_command(self, msg, table); -+ success = afsql_dd_run_query(self, insert_command->str, FALSE, NULL); - -- success = afsql_dd_run_query(self, query_string->str, FALSE, NULL); - if (success && self->flush_lines_queued != -1) - { - self->flush_lines_queued++; - -- if (self->flush_lines && self->flush_lines_queued == self->flush_lines && !afsql_dd_commit_txn(self)) -- return FALSE; -+ if (afsql_dd_should_commit_transaction(self) && !afsql_dd_commit_txn(self)) -+ { -+ /* Assuming that in case of error, the queue is rewound by afsql_dd_commit_txn() */ -+ -+ g_string_free(insert_command, TRUE); -+ msg_set_context(NULL); -+ -+ return FALSE; -+ } - } - -- g_string_free(table, TRUE); -- g_string_free(query_string, TRUE); -+ out: -+ -+ if (table != NULL) -+ g_string_free(table, TRUE); -+ -+ if (insert_command != NULL) -+ g_string_free(insert_command, TRUE); - - msg_set_context(NULL); - -- if (!success) -- return afsql_dd_insert_fail_handler(self, msg, &path_options); -+ if (success) -+ { -+ log_msg_ack(msg, &path_options); -+ log_msg_unref(msg); -+ step_sequence_number(&self->seq_num); -+ self->failed_message_counter = 0; -+ } -+ else -+ { -+ if (self->failed_message_counter < self->num_retries - 1) -+ { -+ if (!afsql_dd_handle_insert_row_error_depending_on_connection_availability(self, msg, &path_options)) -+ return FALSE; - -- /* we only ACK if each INSERT is a separate transaction */ -- if ((self->flags & AFSQL_DDF_EXPLICIT_COMMITS) == 0) -- log_msg_ack(msg, &path_options); -- log_msg_unref(msg); -- step_sequence_number(&self->seq_num); -- self->failed_message_counter = 0; -+ self->failed_message_counter++; -+ } -+ else -+ { -+ msg_error("Multiple failures while inserting this record into the database, message dropped", -+ evt_tag_int("attempts", self->num_retries), -+ NULL); -+ stats_counter_inc(self->dropped_messages); -+ log_msg_drop(msg, &path_options); -+ self->failed_message_counter = 0; -+ success = TRUE; -+ } -+ } - -- return TRUE; -+ return success; - } - - static void -@@ -895,7 +978,7 @@ afsql_dd_message_became_available_in_the - static void - afsql_dd_wait_for_suspension_wakeup(AFSqlDestDriver *self) - { -- /* we got suspended, probably because of a connection error, -+ /* we got suspended, probably because of a connection error, - * during this time we only get wakeups if we need to be - * terminated. */ - if (!self->db_thread_terminate) -@@ -974,8 +1057,7 @@ afsql_dd_database_thread(gpointer arg) - - afsql_dd_commit_txn(self); - } -- -- exit: -+exit: - afsql_dd_disconnect(self); - - msg_verbose("Database thread finished", --- -1.8.4.1 - diff --git a/meta-oe/recipes-support/syslog-ng/files/configure.patch b/meta-oe/recipes-support/syslog-ng/files/configure.patch deleted file mode 100644 index 109f58cf72e..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/configure.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: syslog-ng-3.5.4.1/configure.ac -=================================================================== ---- syslog-ng-3.5.4.1.orig/configure.ac 2014-07-18 13:49:36.794141441 +0000 -+++ syslog-ng-3.5.4.1/configure.ac 2014-07-18 14:23:57.738197606 +0000 -@@ -8,7 +8,8 @@ dnl SNAPSHOT_VERSION - snapshot version to add to version number - dnl BINARY_BRANCH - the value is added to all source/binary packages - dnl SOURCE_REVISION - Revision of the source-tree, will added to the version string - dnl --AC_INIT(syslog-ng/main.c) -+AC_INIT(syslog-ng, 3.5.4.1) -+AC_CONFIG_SRCDIR(syslog-ng/main.c) - AC_CONFIG_MACRO_DIR([m4]) - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - -@@ -53,7 +54,7 @@ else - CURRDATE=`date +"%a, %d %b %Y %H:%M:%S %Z"` - fi - --AM_INIT_AUTOMAKE($PACKAGE, $VERSION, [foreign no-define subdir-objects]) -+AM_INIT_AUTOMAKE([foreign no-define subdir-objects]) - _AM_PROG_TAR([ustar]) - if test -n "$SNAPSHOT_VERSION"; then - VERSION=$VERSION+$SNAPSHOT_VERSION diff --git a/meta-oe/recipes-support/syslog-ng/files/dbifix.patch b/meta-oe/recipes-support/syslog-ng/files/dbifix.patch deleted file mode 100644 index 15dfb688550..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/dbifix.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: syslog-ng-3.5.4.1/configure.ac -=================================================================== ---- syslog-ng-3.5.4.1.orig/configure.ac 2014-07-18 14:35:03.134215740 +0000 -+++ syslog-ng-3.5.4.1/configure.ac 2014-07-18 15:31:52.510308653 +0000 -@@ -576,13 +576,14 @@ - dnl *************************************************************************** - - AC_CHECK_LIB(dl, dlsym, DL_LIBS="-ldl") -+if test "x$enable_sql" != "xno"; then - PKG_CHECK_MODULES(LIBDBI, dbi >= $LIBDBI_MIN_VERSION, libdbi_pkgconfig_not_found="0", libdbi_pkgconfig_not_found="1") - - if test "$libdbi_pkgconfig_not_found" -eq 1; then - dnl if libdbi has no .pc file, try it without one - AC_CHECK_LIB(dbi, dbi_initialize, LIBDBI_LIBS="-ldbi"; LIBDBI_CFLAGS="-I/usr/include") - fi -- -+fi - if test "x$enable_sql" = "xauto"; then - AC_MSG_CHECKING(whether to enable SQL support) - if test "x$LIBDBI_LIBS" != "x"; then diff --git a/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch b/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch deleted file mode 100644 index 484af7e2ef9..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 86842df8bff5c97e44fc55d2fb7fc6c10f56ab84 Mon Sep 17 00:00:00 2001 -From: Gergely Nagy -Date: Fri, 13 Dec 2013 13:46:15 +0100 -Subject: [PATCH] mainloop: Deinit the new config when reverting to the old one - -Upstream-Status: Backport - -When reloading, and the new config fails, deinit it before initializing -the old config. This is so that conflicting things do not remain held by -the half-initialized new config, while the old tries to take it -over. (It also removed a couple of memory leaks, most likely.) - -The reason we can do this, is because cfg_tree_stop() (called by -cfg_deinit()) goes over all the known nodes, and log_pipe_deinit() is -also smart enough to not deinit a node that has not been inited before. - -Signed-off-by: Gergely Nagy ---- - lib/mainloop.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/mainloop.c b/lib/mainloop.c -index 34655fa..e6fbb59 100644 ---- a/lib/mainloop.c -+++ b/lib/mainloop.c -@@ -510,6 +510,7 @@ main_loop_reload_config_apply(void) - { - msg_error("Error initializing new configuration, reverting to old config", NULL); - cfg_persist_config_move(main_loop_new_config, main_loop_old_config); -+ cfg_deinit(main_loop_new_config); - if (!cfg_init(main_loop_old_config)) - { - /* hmm. hmmm, error reinitializing old configuration, we're hosed. --- -1.8.4.1 - diff --git a/meta-oe/recipes-support/syslog-ng/files/fix-a-memory-leak-in-log_driver_free.patch b/meta-oe/recipes-support/syslog-ng/files/fix-a-memory-leak-in-log_driver_free.patch deleted file mode 100644 index 260347413b8..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/fix-a-memory-leak-in-log_driver_free.patch +++ /dev/null @@ -1,33 +0,0 @@ -From a269669ba3cb6d1c06a3322b4a6a035cb787d085 Mon Sep 17 00:00:00 2001 -From: Gergely Nagy -Date: Tue, 14 Jan 2014 13:58:05 +0100 -Subject: [PATCH] driver: Fix a memory leak in log_driver_free() - -Upstream-Status: Backport - -After freeing up the members of self->plugins, free self->plugins itself -too. - -Signed-off-by: Gergely Nagy ---- - lib/driver.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/lib/driver.c b/lib/driver.c -index d77fe57..a6867b9 100644 ---- a/lib/driver.c -+++ b/lib/driver.c -@@ -91,6 +91,10 @@ log_driver_free(LogPipe *s) - { - log_driver_plugin_free((LogDriverPlugin *) l->data); - } -+ if (self->plugins) -+ { -+ g_list_free(self->plugins); -+ } - if (self->group) - g_free(self->group); - if (self->id) --- -1.8.4.1 - diff --git a/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch b/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch deleted file mode 100644 index d439a2607b0..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 3ef6ca8044260c77118edca6dead807a2edcb5ef Mon Sep 17 00:00:00 2001 -From: Balazs Scheidler -Date: Thu, 31 Oct 2013 13:20:12 +0100 -Subject: [PATCH] cfg: free global LogTemplateOptions - -Upstream-Status: Backport - -This fixes a potential memory leak when global template specific -options were specified, such as local-time-zone(), send-time-zone() etc. - -Signed-off-by: Balazs Scheidler ---- - lib/cfg.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/cfg.c b/lib/cfg.c -index 7f040b8..adeaaf8 100644 ---- a/lib/cfg.c -+++ b/lib/cfg.c -@@ -411,6 +411,7 @@ cfg_free(GlobalConfig *self) - g_free(self->proto_template_name); - log_template_unref(self->file_template); - log_template_unref(self->proto_template); -+ log_template_options_destroy(&self->template_options); - - if (self->bad_hostname_compiled) - regfree(&self->bad_hostname); --- -1.8.4.1 - diff --git a/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch b/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch deleted file mode 100644 index 9e3d64bbf21..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch +++ /dev/null @@ -1,26 +0,0 @@ -logwriter: Don't allocate a new buffer if fails to consume current item - -Upstream-Status: Pending - -Signed-off-by: Xufeng Zhang ---- ---- a/lib/logwriter.c -+++ b/lib/logwriter.c -@@ -1010,7 +1010,7 @@ - { - status = log_proto_client_post(proto, (guchar *) self->line_buffer->str, self->line_buffer->len, &consumed); - -- if (consumed) -+ if (consumed && status != LPS_ERROR) - log_writer_realloc_line_buffer(self); - - if (status == LPS_ERROR) -@@ -1028,7 +1028,7 @@ - NULL); - consumed = TRUE; - } -- if (consumed) -+ if (consumed && status != LPS_ERROR) - { - if (lm->flags & LF_LOCAL) - step_sequence_number(&self->seq_num); diff --git a/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch b/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch deleted file mode 100644 index 1951af9fcc7..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch +++ /dev/null @@ -1,17 +0,0 @@ -rewrite-expr-grammar.ym: Free up token. - -Upsteam-Status: Backport - -Reported-by: Xufeng Zhang -Signed-off-by: Viktor Tusa ---- ---- a/lib/rewrite/rewrite-expr-grammar.ym -+++ b/lib/rewrite/rewrite-expr-grammar.ym -@@ -78,6 +78,7 @@ - - $$ = log_template_new(configuration, $1); - CHECK_ERROR(log_template_compile($$, $1, &error), @1, "Error compiling template (%s)", error->message); -+ free($1); - } - ; - diff --git a/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch b/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch deleted file mode 100644 index ea18682300b..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 365020c5c0823c91a8011e34597f970a7cfb4fb3 Mon Sep 17 00:00:00 2001 -From: Tusa Viktor -Date: Wed, 23 Apr 2014 17:10:58 +0000 -Subject: [PATCH] logwriter: still free the unconsumed item during reloading - configuration - -Upstream-Status: Backport - -Otherwise we have no chance to free this stuff. - -Reported-by: Xufeng Zhang -Signed-off-by: Tusa Viktor -Signed-off-by: Gergely Nagy ---- - lib/logproto/logproto-client.h | 2 +- - lib/logproto/logproto-text-client.c | 11 +++++++++++ - lib/logwriter.c | 9 +++++++-- - 3 files changed, 19 insertions(+), 3 deletions(-) - -diff --git a/lib/logproto/logproto-client.h b/lib/logproto/logproto-client.h -index 254ecf9..5adc917 100644 ---- a/lib/logproto/logproto-client.h -+++ b/lib/logproto/logproto-client.h -@@ -47,7 +47,6 @@ void log_proto_client_options_defaults(LogProtoClientOptions *options); - void log_proto_client_options_init(LogProtoClientOptions *options, GlobalConfig *cfg); - void log_proto_client_options_destroy(LogProtoClientOptions *options); - -- - struct _LogProtoClient - { - LogProtoStatus status; -@@ -107,6 +106,7 @@ log_proto_client_reset_error(LogProtoClient *s) - gboolean log_proto_client_validate_options(LogProtoClient *self); - void log_proto_client_init(LogProtoClient *s, LogTransport *transport, const LogProtoClientOptions *options); - void log_proto_client_free(LogProtoClient *s); -+void log_proto_client_free_method(LogProtoClient *s); - - #define DEFINE_LOG_PROTO_CLIENT(prefix) \ - static gpointer \ -diff --git a/lib/logproto/logproto-text-client.c b/lib/logproto/logproto-text-client.c -index 3248759..a5100f3 100644 ---- a/lib/logproto/logproto-text-client.c -+++ b/lib/logproto/logproto-text-client.c -@@ -146,12 +146,23 @@ log_proto_text_client_post(LogProtoClient *s, guchar *msg, gsize msg_len, gboole - } - - void -+log_proto_text_client_free(LogProtoClient *s) -+{ -+ LogProtoTextClient *self = (LogProtoTextClient *)s; -+ if (self->partial_free) -+ self->partial_free(self->partial); -+ self->partial = NULL; -+ log_proto_client_free_method(s); -+}; -+ -+void - log_proto_text_client_init(LogProtoTextClient *self, LogTransport *transport, const LogProtoClientOptions *options) - { - log_proto_client_init(&self->super, transport, options); - self->super.prepare = log_proto_text_client_prepare; - self->super.flush = log_proto_text_client_flush; - self->super.post = log_proto_text_client_post; -+ self->super.free_fn = log_proto_text_client_free; - self->super.transport = transport; - self->next_state = -1; - } -diff --git a/lib/logwriter.c b/lib/logwriter.c -index 3292e31..470bcdb 100644 ---- a/lib/logwriter.c -+++ b/lib/logwriter.c -@@ -1063,8 +1063,13 @@ log_writer_flush(LogWriter *self, LogWriterFlushMode flush_mode) - } - else - { -- /* push back to the queue */ -- log_queue_push_head(self->queue, lm, &path_options); -+ if (flush_mode == LW_FLUSH_QUEUE) -+ log_msg_unref(lm); -+ else -+ { -+ /* push back to the queue */ -+ log_queue_push_head(self->queue, lm, &path_options); -+ } - msg_set_context(NULL); - log_msg_refcache_stop(); - break; --- -1.7.10.4 - diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch b/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch deleted file mode 100644 index e8119b84bc0..00000000000 --- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch +++ /dev/null @@ -1,38 +0,0 @@ -Verify the validity of the pointer before delete it - -Otherwise, we got a crash at logqueue-fifo.c:344 - 344 iv_list_del(&node->list); - -Upstream-Status: Pending - -Signed-off-by: Xufeng Zhang ---- ---- a/lib/logqueue-fifo.c -+++ b/lib/logqueue-fifo.c -@@ -339,15 +339,18 @@ - *msg = node->msg; - path_options->ack_needed = node->ack_needed; - self->qoverflow_output_len--; -- if (!push_to_backlog) -+ if ((&node->list) && (&node->list)->next && (&node->list)->prev) - { -- iv_list_del(&node->list); -- log_msg_free_queue_node(node); -- } -- else -- { -- iv_list_del_init(&node->list); -- } -+ if (!push_to_backlog) -+ { -+ iv_list_del(&node->list); -+ log_msg_free_queue_node(node); -+ } -+ else -+ { -+ iv_list_del_init(&node->list); -+ } -+ } - } - else - { diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf index f0da2b703c7..0c6f543551a 100644 --- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf +++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf @@ -1,4 +1,4 @@ -@version: 3.5 +@version: 3.8 # # Syslog-ng configuration file, compatible with default Debian syslogd # installation. Originally written by anonymous (I can't find his name) @@ -52,7 +52,7 @@ destination d_newscrit { file("/var/log/news/news.crit"); }; destination d_newserr { file("/var/log/news/news.err"); }; destination d_newsnotice { file("/var/log/news/news.notice"); }; -# Some `catch-all' logfiles. +# Some 'catch-all' logfiles. # destination d_debug { file("/var/log/debug"); }; destination d_error { file("/var/log/error"); }; diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch new file mode 100644 index 00000000000..6b30c20c15c --- /dev/null +++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch @@ -0,0 +1,31 @@ +From 0be9c08dd3f825e92fa02d4a08d8aff743109e61 Mon Sep 17 00:00:00 2001 +From: Li xin +Date: Wed, 17 Jun 2015 14:46:30 +0900 +Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start + successfully,so modify it. + +Upstream-Status: pending + +Signed-off-by: Li Xin +--- + contrib/systemd/syslog-ng.service | 5 ++--- + 1 file changed, 2 insertion(+), 3 deletions(-) + +diff --git a/contrib/systemd/syslog-ng.service b/contrib/systemd/syslog-ng.service +index fc16f8d..8e09deb 100644 +--- a/contrib/systemd/syslog-ng.service ++++ b/contrib/systemd/syslog-ng.service +@@ -4,8 +4,8 @@ Description=System Logger Daemon + + [Service] + Type=notify +-ExecStart=/usr/sbin/syslog-ng -F $SYSLOGNG_OPTS +-ExecReload=/bin/kill -HUP $MAINPID ++ExecStart=@SBINDIR@/syslog-ng -F $SYSLOGNG_OPTS -p @LOCALSTATEDIR@/run/syslogd.pid ++ExecReload=@BASEBINDIR@/kill -HUP $MAINPID + EnvironmentFile=-/etc/default/syslog-ng + EnvironmentFile=-/etc/sysconfig/syslog-ng + StandardOutput=journal +-- +1.8.4.2 + diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-oe/recipes-support/syslog-ng/syslog-ng.inc index 4aead31b758..f1bf9b06f65 100644 --- a/meta-oe/recipes-support/syslog-ng/syslog-ng.inc +++ b/meta-oe/recipes-support/syslog-ng/syslog-ng.inc @@ -10,63 +10,77 @@ ideal for firewalled environments. \ HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system" LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=e0e8658d9be248f01b7933df24dc1408" +LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240" -DEPENDS = "flex eventlog glib-2.0" +# util-linux added to get libuuid +DEPENDS = "libpcre flex eventlog glib-2.0 openssl util-linux" -SRC_URI = "http://www.balabit.com/downloads/files/syslog-ng/sources/${PV}/source/${BPN}_${PV}.tar.gz \ +SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \ file://syslog-ng.conf \ file://initscript \ file://volatiles.03_syslog-ng \ file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \ " -inherit autotools systemd pkgconfig update-rc.d update-alternatives +inherit autotools gettext systemd pkgconfig update-rc.d EXTRA_OECONF = " \ --enable-dynamic-linking \ --disable-sub-streams \ --disable-pacct \ - --localstatedir=${localstatedir}/run/${BPN} \ + --localstatedir=${localstatedir}/lib/${BPN} \ --sysconfdir=${sysconfdir}/${BPN} \ --with-module-dir=${libdir}/${BPN} \ --with-sysroot=${STAGING_DIR_HOST} \ - --with-libmongo-client=no --disable-mongodb \ + --without-mongoc --disable-mongodb \ --with-librabbitmq-client=no \ + --disable-python \ + --disable-java --disable-java-modules \ + --with-pidfile-dir=${localstatedir}/run/${BPN} \ ${CONFIG_TLS} \ " CONFIG_TLS = "--enable-thread-tls" CONFIG_TLS_arm = "${@base_conditional( "DEBUG_BUILD", "1", " --disable-thread-tls", " --enable-thread-tls", d )}" -PACKAGECONFIG ??= "openssl \ - ${@base_contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ - ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \ " -PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl,openssl," PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,," PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/,--disable-systemd --without-systemdsystemunitdir,systemd," PACKAGECONFIG[linux-caps] = "--enable-linux-caps,--disable-linux-caps,libcap," -PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre," PACKAGECONFIG[dbi] = "--enable-sql,--disable-sql,libdbi," PACKAGECONFIG[libnet] = "--enable-libnet --with-libnet=${STAGING_BINDIR_CROSS},--disable-libnet,libnet," +PACKAGECONFIG[http] = "--enable-http,--disable-http,curl," PACKAGECONFIG[smtp] = "--enable-smtp --with-libesmtp=${STAGING_LIBDIR},--disable-smtp,libesmtp," PACKAGECONFIG[json] = "--enable-json,--disable-json,json-c," PACKAGECONFIG[tcp-wrapper] = "--enable-tcp-wrapper,--disable-tcp-wrapper,tcp-wrappers," PACKAGECONFIG[geoip] = "--enable-geoip,--disable-geoip,geoip," +PACKAGECONFIG[native] = "--enable-native,--disable-native,," do_configure_prepend() { - eval "${@base_contains('DISTRO_FEATURES', 'largefile', '', 'sed -i -e "s/-D_LARGEFILE_SOURCE//" -e "s/-D_FILE_OFFSET_BITS=64//" ${S}/configure.in', d)}" + olddir=$(pwd) + cd ${AUTOTOOLS_SCRIPT_PATH} + + ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} -I ${S}/m4 ${ACLOCALEXTRAPATH} || die "extra autoreconf execution failed." + + cd $olddir +} + +do_install_prepend() { + sed -i -e 's,@SBINDIR@,${sbindir},g' ${S}/contrib/systemd/*.service + sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${S}/contrib/systemd/*.service + sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${S}/contrib/systemd/*.service } do_install_append() { install -d ${D}/${sysconfdir}/${BPN} install ${WORKDIR}/syslog-ng.conf ${D}${sysconfdir}/${BPN}/${BPN}.conf install -d ${D}/${sysconfdir}/init.d - install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog.${BPN} + install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog install -d ${D}/${sysconfdir}/default/volatiles/ install -m 755 ${WORKDIR}/volatiles.03_syslog-ng ${D}/${sysconfdir}/default/volatiles/03_syslog-ng - + install -d ${D}/${localstatedir}/lib/${BPN} # Remove /var/run as it is created on startup rm -rf ${D}${localstatedir}/run } @@ -79,6 +93,7 @@ PACKAGES =+ "${PN}-libs ${PN}-libs-dev ${PN}-libs-dbg" FILES_${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*" FILES_${PN}-libs-dev = "${libdir}/${BPN}/lib*.la" FILES_${PN}-libs-dbg = "${libdir}/${BPN}/.debug" +FILES_${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a" INSANE_SKIP_${PN}-libs = "dev-so" RDEPENDS_${PN} += "${PN}-libs" @@ -88,20 +103,12 @@ CONFFILES_${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf" # update-rc.d and update-alternatives is important RDEPENDS_${PN} += " ${@base_conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}" +RCONFLICTS_${PN} = "busybox-syslog sysklogd rsyslog" + RPROVIDES_${PN} += "${PN}-systemd" RREPLACES_${PN} += "${PN}-systemd" RCONFLICTS_${PN} += "${PN}-systemd" SYSTEMD_SERVICE_${PN} = "${BPN}.service" -# no syslog-init for systemd -python () { - if 'sysvinit' in d.getVar("DISTRO_FEATURES", True).split(): - pn = d.getVar('PN', True) - sysconfdir = d.getVar('sysconfdir', True) - d.appendVar('ALTERNATIVE_%s' % (pn), ' syslog-init') - d.setVarFlag('ALTERNATIVE_PRIORITY', 'syslog-init', '200') - d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-init', '%s/init.d/syslog' % (sysconfdir)) -} - INITSCRIPT_NAME = "syslog" INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ." diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng_3.5.4.1.bb b/meta-oe/recipes-support/syslog-ng/syslog-ng_3.5.4.1.bb deleted file mode 100644 index b54842030c1..00000000000 --- a/meta-oe/recipes-support/syslog-ng/syslog-ng_3.5.4.1.bb +++ /dev/null @@ -1,21 +0,0 @@ -require syslog-ng.inc - -SRC_URI += " \ - file://afsql-afsql_dd_insert_db-refactor.patch \ - file://deinit-the-new-config-when-reverting-to-the.patch \ - file://fix-a-memory-leak-in-log_driver_free.patch \ - file://fix-config-libnet.patch \ - file://fix-invalid-ownership.patch \ - file://Fix-the-memory-leak-problem-for-mutex.patch \ - file://Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch \ - file://free-global-LogTemplateOptions.patch \ - file://still-free-the-unconsumed-item.patch \ - file://syslog-ng-verify-the-list-before-del.patch \ - file://configure.patch \ - file://dbifix.patch \ - file://rewrite-expr-grammar.ym-Free-up-token.patch \ - file://logwriter-dont-allocate-a-new-buffer.patch \ -" - -SRC_URI[md5sum] = "ff3bf223ebafbaa92b69a2d5b729f368" -SRC_URI[sha256sum] = "92c6969e4172b4fd32390f80043b4de7b116f29989d8c2e5a8a687ee6dcd6f66" diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb b/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb new file mode 100644 index 00000000000..91a0e469996 --- /dev/null +++ b/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb @@ -0,0 +1,11 @@ +require syslog-ng.inc + +SRC_URI += " \ + file://fix-config-libnet.patch \ + file://fix-invalid-ownership.patch \ + file://Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch \ + file://syslog-ng.service-the-syslog-ng-service.patch \ +" + +SRC_URI[md5sum] = "acf14563cf5ce435db8db35486ce66af" +SRC_URI[sha256sum] = "84b081f6e5f98cbc52052e342bcfdc5de5fe0ebe9f5ec32fe9eaec5759224cc5" diff --git a/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb b/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb index eaca96dcaad..26b4412f520 100644 --- a/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb +++ b/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb @@ -5,8 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SRC_URI = "https://fedorahosted.org/releases/s/y/${BPN}/${BP}.tar.bz2" SRC_URI[md5sum] = "c267db0ee7a2131ba418399dc17f9e72" SRC_URI[sha256sum] = "218c883e4e2bfcc82bfe07e785707b5c2ece28df772f2155fd044b9bb1614284" -inherit python-dir -DEPENDS = "intltool" + +inherit python-dir gettext +DEPENDS += "intltool-native gettext-native" EXTRA_OEMAKE = " \ PYTHON='${STAGING_BINDIR_NATIVE}'/python-native/python \ diff --git a/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb b/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb deleted file mode 100644 index d2199c2cf71..00000000000 --- a/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "xorg.conf keyboard layout callout" -DESCRIPTION = "system-setup-keyboard is a daemon to monitor the keyboard layout configured in \ -/etc/sysconfig/keyboard and transfer this into the matching xorg.conf.d snippet." - -HOMEPAGE = "https://git.fedorahosted.org/git/system-setup-keyboard.git" -SECTION = "Applications/System" - -SRC_URI = "https://git.fedorahosted.org/cgit/${PN}.git/snapshot/${BP}.tar.gz" -SRC_URI[md5sum] = "399003968ccc739cddd9cc370af377a0" -SRC_URI[sha256sum] = "1ef6ef79c3588e85d7f42e99eb80a2e459f966284cf029c2d6fc1b645abcb860" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=bf57969a59612c5aca007b340c49d3a2" - -inherit pythonnative - -DEPENDS = "glib-2.0 system-config-keyboard-native" - -do_compile_prepend() { - ${PYTHON} -v get_layouts.py > keyboards.h -} - -do_install() { - oe_runmake install DESTDIR=${D} - install -d ${D}/etc/X11/xorg.conf.d - touch ${D}/etc/X11/xorg.conf.d/00-system-setup-keyboard.conf -} - -FILES_${PN} += "${systemd_unitdir}/system/${PN}.service" diff --git a/meta-oe/recipes-support/talloc/talloc/install-swig-interface-in-SWINGLIBDIR.patch b/meta-oe/recipes-support/talloc/talloc/install-swig-interface-in-SWINGLIBDIR.patch deleted file mode 100644 index 635c60e4619..00000000000 --- a/meta-oe/recipes-support/talloc/talloc/install-swig-interface-in-SWINGLIBDIR.patch +++ /dev/null @@ -1,23 +0,0 @@ -Using the way swig interface is installed leads to a bad path in ${D}. -The interface ended up in ${D}/${STAGING_DIR_NATIVE} which is wrong. The -fix is to define a variable in recipe which is used in install rule by -talloc. - -Upstream-Status: Inappropriate [build system specific] -Signed-off-by: Andrei Gherzan - -Index: talloc-2.0.1/talloc.mk -=================================================================== ---- talloc-2.0.1.orig/talloc.mk 2009-10-11 16:42:24.000000000 +0300 -+++ talloc-2.0.1/talloc.mk 2012-09-13 23:15:05.283539702 +0300 -@@ -23,8 +23,8 @@ - ${INSTALLCMD} -m 644 talloc.pc $(DESTDIR)$(libdir)/pkgconfig - if [ -f talloc.3 ];then ${INSTALLCMD} -d $(DESTDIR)$(mandir)/man3; fi - if [ -f talloc.3 ];then ${INSTALLCMD} -m 644 talloc.3 $(DESTDIR)$(mandir)/man3; fi -- which swig >/dev/null 2>&1 && ${INSTALLCMD} -d $(DESTDIR)`swig -swiglib` || true -- which swig >/dev/null 2>&1 && ${INSTALLCMD} -m 644 talloc.i $(DESTDIR)`swig -swiglib` || true -+ which swig >/dev/null 2>&1 && ${INSTALLCMD} -d $(DESTDIR)/$(SWIGLIBDIR) || true -+ which swig >/dev/null 2>&1 && ${INSTALLCMD} -m 644 $(srcdir)/$(tallocdir)/talloc.i $(DESTDIR)/$(SWIGLIBDIR) || true - - doc:: talloc.3 talloc.3.html - diff --git a/meta-oe/recipes-support/talloc/talloc/sepbuild.patch b/meta-oe/recipes-support/talloc/talloc/sepbuild.patch deleted file mode 100644 index 05506c34231..00000000000 --- a/meta-oe/recipes-support/talloc/talloc/sepbuild.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: talloc-2.0.1/Makefile.in -=================================================================== ---- talloc-2.0.1.orig/Makefile.in -+++ talloc-2.0.1/Makefile.in -@@ -33,8 +33,8 @@ EXPORTSFILE = @EXPORTSFILE@ - - all:: showflags $(EXTRA_TARGETS) - --include $(tallocdir)/rules.mk --include $(tallocdir)/talloc.mk -+include $(srcdir)/$(tallocdir)/rules.mk -+include $(srcdir)/$(tallocdir)/talloc.mk - - @TALLOC_COMPAT1_MK@ - -Index: talloc-2.0.1/libtalloc.m4 -=================================================================== ---- talloc-2.0.1.orig/libtalloc.m4 -+++ talloc-2.0.1/libtalloc.m4 -@@ -33,6 +33,6 @@ if test $ac_cv_sizeof_size_t -lt $ac_cv_ - fi - - if test x"$VERSIONSCRIPT" != "x"; then -- EXPORTSFILE=talloc.exports -+ EXPORTSFILE=$srcdir/$tallocdir/talloc.exports - AC_SUBST(EXPORTSFILE) - fi diff --git a/meta-oe/recipes-support/talloc/talloc_2.0.1.bb b/meta-oe/recipes-support/talloc/talloc_2.0.1.bb deleted file mode 100644 index 7bbfbc291c4..00000000000 --- a/meta-oe/recipes-support/talloc/talloc_2.0.1.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "Hierarchical, reference counted memory pool system with destructors" -HOMEPAGE = "http://talloc.samba.org" -LICENSE = "LGPL-3.0" -LIC_FILES_CHKSUM = "file://NEWS;md5=5fe776b23a711c9153ee94bc87e47334" - -inherit autotools pkgconfig - -SRC_URI = "http://samba.org/ftp/${BPN}/${BPN}-${PV}.tar.gz \ - file://install-swig-interface-in-SWINGLIBDIR.patch \ - file://sepbuild.patch \ -" -SRC_URI[md5sum] = "c6e736540145ca58cb3dcb42f91cf57b" -SRC_URI[sha256sum] = "5b810527405f29d54f50efd78bf2c89e318f2cd8bed001f22f2a1412fd27c9b4" - -TARGET_CC_ARCH += "${LDFLAGS}" - -PR = "r2" - -EXTRA_AUTORECONF = "--exclude=autopoint --exclude=aclocal" - -DEPENDS += "swig-native" - -do_install_prepend() { - # Hack the way swig interface for talloc is installed - # This hack is accompanied by install-swig-interface-in-SWINGLIBDIR.patch - if which swig > /dev/null; then - SWIGLIBDIR="$(echo $(readlink -f $(swig -swiglib)) | \ - sed -e 's#^${STAGING_DIR_NATIVE}##')" - fi - if [ -n "$SWIGLIBDIR" ]; then - export SWIGLIBDIR - else - echo "No swig found" - fi -} - -do_install_append() { - install -d ${D}${libdir} - ln -s libtalloc.so.2.0.1 ${D}${libdir}/libtalloc.so.2.0 - ln -s libtalloc.so.2.0 ${D}${libdir}/libtalloc.so.2 - ln -s libtalloc.so.2 ${D}${libdir}/libtalloc.so -} - -PACKAGES += "${PN}-swig" -FILES_${PN}-swig += "${datadir}" diff --git a/meta-oe/recipes-support/tbb/tbb.bb b/meta-oe/recipes-support/tbb/tbb.bb new file mode 100644 index 00000000000..bad9481f7de --- /dev/null +++ b/meta-oe/recipes-support/tbb/tbb.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "Parallelism library for C++ - runtime files \ + TBB is a library that helps you leverage multi-core processor \ + performance without having to be a threading expert. It represents a \ + higher-level, task-based parallelism that abstracts platform details \ + and threading mechanism for performance and scalability." +HOMEPAGE = "http://threadingbuildingblocks.org/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" +PRDATE = "20170412" +BRANCH = "tbb_2017" +SRCREV = "a2cfdfe946933cbe38bffe1d8086ae36f06691a3" +PV = "${PRDATE}+${SRCPV}" +SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \ + file://cross-compile.patch \ + file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \ + file://tbb.pc \ +" + +S = "${WORKDIR}/git" + +COMPILER ?= "gcc" +COMPILER_toolchain-clang = "clang" + +do_compile() { + oe_runmake compiler=${COMPILER} arch=${HOST_ARCH} runtime=cc4 +} + +do_install() { + install -d ${D}${includedir} ${D}${libdir}/pkgconfig + rm ${S}/include/tbb/index.html -f + cp -R --no-dereference --preserve=mode,links -v ${S}/include/tbb ${D}${includedir} + install -m 0755 ${B}/build/linux_*_release/lib*.so* ${D}${libdir} + install -m 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig +} + +# fails with thumb enabled: +# | arm-oe-linux-gnueabi-g++ -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp +# | {standard input}: Assembler messages: +# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]' +# ... +# | make[1]: *** [concurrent_queue.o] Error 1 +ARM_INSTRUCTION_SET = "arm" +SECURITY_CFLAGS_append = " -fPIC" + diff --git a/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch b/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch new file mode 100644 index 00000000000..7e66945fa2e --- /dev/null +++ b/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch @@ -0,0 +1,37 @@ +From 6b2b136caa68912d77ffe26143cd3da768b9ef80 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 3 Jun 2017 08:39:37 -0700 +Subject: [PATCH] mallinfo() is glibc specific API mark it so + +Helps compiling with musl + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + src/tbbmalloc/proxy.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/tbbmalloc/proxy.cpp b/src/tbbmalloc/proxy.cpp +index 5ef279d..06c4872 100644 +--- a/src/tbbmalloc/proxy.cpp ++++ b/src/tbbmalloc/proxy.cpp +@@ -185,6 +185,7 @@ int mallopt(int /*param*/, int /*value*/) __THROW + return 1; + } + ++#ifdef __GLIBC__ + struct mallinfo mallinfo() __THROW + { + struct mallinfo m; +@@ -192,6 +193,7 @@ struct mallinfo mallinfo() __THROW + + return m; + } ++#endif + + #if __ANDROID__ + // Android doesn't have malloc_usable_size, provide it to be compatible +-- +2.13.0 + diff --git a/meta-oe/recipes-support/tbb/tbb/allow-to-build-for-older-arm-cores.patch b/meta-oe/recipes-support/tbb/tbb/allow-to-build-for-older-arm-cores.patch deleted file mode 100644 index cd2ec9499cd..00000000000 --- a/meta-oe/recipes-support/tbb/tbb/allow-to-build-for-older-arm-cores.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Marcin Juszkiewicz -Description: Allow to build TBB for ARM cores older than ARMv7a - -| ../../include/tbb/machine/gcc_armv7.h:39:2: error: #error Threading -Building Blocks ARM port requires an ARMv7-a architecture. -| make[1]: *** [concurrent_hash_map.o] Error 1 - -https://bugs.launchpad.net/linaro-oe/+bug/1167144 - -Upstream-status: pending - ---- - include/tbb/tbb_machine.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- tbb41_20130314oss.orig/include/tbb/tbb_machine.h -+++ tbb41_20130314oss/include/tbb/tbb_machine.h -@@ -237,11 +237,11 @@ template<> struct atomic_selector<8> { - #include "machine/linux_intel64.h" - #elif __ia64__ - #include "machine/linux_ia64.h" - #elif __powerpc__ - #include "machine/mac_ppc.h" -- #elif __arm__ -+ #elif __ARM_ARCH_7A__ - #include "machine/gcc_armv7.h" - #elif __TBB_GCC_BUILTIN_ATOMICS_PRESENT - #include "machine/gcc_generic.h" - #endif - #include "machine/linux_common.h" diff --git a/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/meta-oe/recipes-support/tbb/tbb/cross-compile.patch index b970a374e57..d54b307ee9d 100644 --- a/meta-oe/recipes-support/tbb/tbb/cross-compile.patch +++ b/meta-oe/recipes-support/tbb/tbb/cross-compile.patch @@ -5,14 +5,14 @@ Upstream-Status: unsuitable build/linux.gcc.inc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---- tbb41_20121003oss.orig/build/linux.gcc.inc -+++ tbb41_20121003oss/build/linux.gcc.inc -@@ -40,12 +40,13 @@ DYLIB_KEY = -shared +Index: tbb2017_20170118oss/build/linux.gcc.inc +=================================================================== +--- tbb2017_20170118oss.orig/build/linux.gcc.inc ++++ tbb2017_20170118oss/build/linux.gcc.inc +@@ -32,8 +32,9 @@ DYLIB_KEY = -shared EXPORT_KEY = -Wl,--version-script, LIBDL = -ldl - TBB_NOSTRICT = 1 - -CPLUS = g++ -CONLY = gcc +CPLUS = $(CXX) @@ -20,6 +20,20 @@ Upstream-Status: unsuitable +CPLUS_FLAGS = $(CXXFLAGS) LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) LIBS += -lpthread -lrt - LINK_FLAGS = -Wl,-rpath-link=. - C_FLAGS = $(CPLUS_FLAGS) - # gcc 4.4 and higher support -std=c++0x + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +Index: tbb2017_20170118oss/build/linux.clang.inc +=================================================================== +--- tbb2017_20170118oss.orig/build/linux.clang.inc ++++ tbb2017_20170118oss/build/linux.clang.inc +@@ -31,8 +31,9 @@ DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = clang++ +-CONLY = clang ++CPLUS = $(CXX) ++CONLY = $(CC) ++CPLUS_FLAGS = $(CXXFLAGS) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic diff --git a/meta-oe/recipes-support/tbb/tbb_4.1.bb b/meta-oe/recipes-support/tbb/tbb_4.1.bb deleted file mode 100644 index 55212dc6ca3..00000000000 --- a/meta-oe/recipes-support/tbb/tbb_4.1.bb +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION = "Parallelism library for C++ - runtime files \ - TBB is a library that helps you leverage multi-core processor \ - performance without having to be a threading expert. It represents a \ - higher-level, task-based parallelism that abstracts platform details \ - and threading mechanism for performance and scalability." -HOMEPAGE = "http://threadingbuildingblocks.org/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=2c7f2caf277a3933e3acdf7f89d54cc1" -PRDATE = "20130314" -PR = "r${PRDATE}" - -SRC_URI = "http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb41_${PRDATE}oss_src.tgz \ - file://cross-compile.patch \ - file://allow-to-build-for-older-arm-cores.patch \ - file://tbb.pc" - -S = "${WORKDIR}/tbb41_${PRDATE}oss/" - -SRC_URI[md5sum] = "ed4af7ccfa122f16cf9920b241633a3a" -SRC_URI[sha256sum] = "32fd5979971b772caa96d40646cee585ed0070516ba2dbbcb1f9b6033d08a92d" - -do_compile() { - oe_runmake compiler=gcc arch=${HOST_ARCH} runtime=cc4 -} - -do_install() { - install -d ${D}${includedir} ${D}${libdir}/pkgconfig - rm ${S}/include/tbb/index.html -f - cp -a ${S}/include/tbb ${D}${includedir} - install -m 0755 ${B}/build/linux_*_release/lib*.so* ${D}${libdir} - install -m 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig -} - -# fails with thumb enabled: -# | arm-oe-linux-gnueabi-g++ -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp -# | {standard input}: Assembler messages: -# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]' -# ... -# | make[1]: *** [concurrent_queue.o] Error 1 -ARM_INSTRUCTION_SET = "arm" diff --git a/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch b/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch new file mode 100644 index 00000000000..b4cdda13273 --- /dev/null +++ b/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch @@ -0,0 +1,33 @@ +From e8be402e20cbdfbd8192a171ac9904d9362103bf Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 31 Aug 2016 01:35:40 -0400 +Subject: [PATCH] do not strip pdata_tools at do_install + +It caused QA Issue: +-------------- +|ERROR: QA Issue: File '/usr/sbin/pdata_tools' from thin-provisioning-tools +was already stripped, this will prevent future debugging! [already-stripped] +-------------- + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + Makefile.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 4264191..ac22042 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -189,7 +189,6 @@ distclean: clean + install: bin/pdata_tools + $(INSTALL_DIR) $(BINDIR) + $(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR) +- $(STRIP) $(BINDIR)/pdata_tools + ln -s -f pdata_tools $(BINDIR)/cache_check + ln -s -f pdata_tools $(BINDIR)/cache_dump + ln -s -f pdata_tools $(BINDIR)/cache_metadata_size +-- +2.8.1 + diff --git a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb new file mode 100755 index 00000000000..c9d6690d717 --- /dev/null +++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb @@ -0,0 +1,18 @@ +SUMMARY = "Tools of dm-thin device-mapper" +DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target." +HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools" +LICENSE = "GPLv3" +SECTION = "devel" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +S = "${WORKDIR}/git" + +SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \ + file://0001-do-not-strip-pdata_tools-at-do_install.patch \ +" + +SRCREV = "49bfc12e9c7956c1ac134b24afbe1a6a602ce7d5" + +DEPENDS += "expat libaio boost" + +inherit autotools-brokensep diff --git a/meta-oe/recipes-support/tokyocabinet/tokyocabinet/remove-hard-coded-include-and-lib-paths.patch b/meta-oe/recipes-support/tokyocabinet/tokyocabinet/remove-hard-coded-include-and-lib-paths.patch new file mode 100644 index 00000000000..a8ab23de71e --- /dev/null +++ b/meta-oe/recipes-support/tokyocabinet/tokyocabinet/remove-hard-coded-include-and-lib-paths.patch @@ -0,0 +1,43 @@ +Upstream-Status: Inappropriate [embedded specific] + +There are hardcode paths in configure.in eg: /usr/include, $HOME/include etc. +These paths will cause Makefile to search host path when doing cross-compiling. +and bitbake will prompt this as an error. So remove them. + +Signed-off-by: Song.Li +Signed-off-by: Kai Kang +--- + configure.in | 10 ++-------- + 1 file changed, 2 insertions(+), 8 deletions(-) + +diff --git a/configure.in b/configure.in +index bcfd5bc..5b24947 100644 +--- a/configure.in ++++ b/configure.in +@@ -32,21 +32,15 @@ MYPCFILES="tokyocabinet.pc" + + # Building flags + MYCFLAGS="-std=c99 -Wall -fPIC -fsigned-char -O2" +-MYCPPFLAGS="-I. -I\$(INCLUDEDIR) -I$HOME/include -I/usr/local/include" ++MYCPPFLAGS="-I." + MYCPPFLAGS="$MYCPPFLAGS -DNDEBUG -D_GNU_SOURCE=1 -D_REENTRANT -D__EXTENSIONS__" +-MYLDFLAGS="-L. -L\$(LIBDIR) -L$HOME/lib -L/usr/local/lib" ++MYLDFLAGS="-L." + MYCMDLDFLAGS="" + MYRUNPATH="\$(LIBDIR)" + MYLDLIBPATHENV="LD_LIBRARY_PATH" + MYPOSTCMD="true" + + # Building paths +-PATH="$PATH:$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" +-PATH="$PATH:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/xpg4/bin:/usr/xpg6/bin:/usr/ucb" +-CPATH="$HOME/include:/usr/local/include:$CPATH" +-LIBRARY_PATH="$HOME/lib:/usr/local/lib:$LIBRARY_PATH" +-LD_LIBRARY_PATH="$HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH" +-PKG_CONFIG_PATH="$HOME/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" + export PATH CPATH LIBRARY_PATH LD_LIBRARY_PATH PKG_CONFIG_PATH + + +-- +1.7.9.5 + diff --git a/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb b/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb new file mode 100644 index 00000000000..9f75cf047d6 --- /dev/null +++ b/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb @@ -0,0 +1,27 @@ +# +# Copyright (C) 2012 - 2016 Wind River Systems, Inc. +# +SUMMARY = "A modern implementation of DBM" + +DESCRIPTION = "Tokyo Cabinet is a library of routines for managing a database. \ +The database is a simple data file containing records, each is a pair of a key \ +and a value. Every key and value is serial bytes with variable length. \ +Both binary data and character string can be used as a key and a value. \ +There is neither concept of data tables nor data types. \ +Records are organized in hash table, B+ tree, or fixed-length array." + +HOMEPAGE = "http://fallabs.com/tokyocabinet/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +SRC_URI = "http://fallabs.com/tokyocabinet/${BP}.tar.gz \ + file://remove-hard-coded-include-and-lib-paths.patch \ +" + +SRC_URI[md5sum] = "fd03df6965f8f56dd5b8518ca43b4f5e" +SRC_URI[sha256sum] = "a003f47c39a91e22d76bc4fe68b9b3de0f38851b160bbb1ca07a4f6441de1f90" + +DEPENDS = "bzip2 zlib" + +inherit autotools-brokensep diff --git a/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb b/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb index adb538b7b42..4a1b4ce6706 100644 --- a/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb +++ b/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb @@ -18,12 +18,13 @@ FILES_${PN} += "${libdir}/tomoyo" FILES_${PN}-dbg += "${libdir}/tomoyo/.debug" DEPENDS = "linux-libc-headers ncurses" -CFLAGS_append += "-D_GNU_SOURCE" + +EXTRA_OEMAKE = "-e USRLIBDIR=${libdir}" do_compile () { - oe_runmake 'CC=${CC}' + oe_runmake 'CC=${CC}' } do_install() { - oe_runmake install INSTALLDIR=${D} + oe_runmake install INSTALLDIR=${D} } diff --git a/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/meta-oe/recipes-support/toscoterm/toscoterm_git.bb index 24f813b62c2..aa031fef876 100644 --- a/meta-oe/recipes-support/toscoterm/toscoterm_git.bb +++ b/meta-oe/recipes-support/toscoterm/toscoterm_git.bb @@ -1,6 +1,6 @@ SUMMARY = "A very small and simple terminal emulator" SECTION = "x11/applications" -DEPENDS = "vte" +DEPENDS = "vte9" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://main.c;start_line=5;end_line=16;md5=9ae4bf20caf291afa94530026bd15229" @@ -24,4 +24,4 @@ do_install() { oe_runmake PREFIX="${prefix}" DESTDIR="${D}" install } -RDEPENDS_${PN}_append_libc-glibc += "glibc-gconv-ibm437" +RDEPENDS_${PN}_append_libc-glibc = " glibc-gconv-ibm437" diff --git a/meta-oe/recipes-support/tree/tree_1.7.0.bb b/meta-oe/recipes-support/tree/tree_1.7.0.bb new file mode 100644 index 00000000000..2e8ebdb4d99 --- /dev/null +++ b/meta-oe/recipes-support/tree/tree_1.7.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "A recursive directory listing command" +HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/" +SECTION = "console/utils" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833" + +SRC_URI = "ftp://mama.indstate.edu/linux/${BPN}/${BP}.tgz" +SRC_URI[md5sum] = "abe3e03e469c542d8e157cdd93f4d8a6" +SRC_URI[sha256sum] = "6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12" + +# tree's default CFLAGS for Linux +CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" + +EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'" + +do_configure[noexec] = "1" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/${BPN} ${D}${bindir}/ +} diff --git a/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch b/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch new file mode 100644 index 00000000000..3cc040075fa --- /dev/null +++ b/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch @@ -0,0 +1,91 @@ +From 32278297170ffb49116b5789e4a0588b99d02bd0 Mon Sep 17 00:00:00 2001 +From: Amarnath Valluri +Date: Thu, 9 Feb 2017 11:02:53 +0200 +Subject: [PATCH] Make udev rules directory configurable. + +udev rules directory can be configurable via undevrulesdir variable. And use +libdir, sbindir for installing librares and binaries. + +Upstream-Status: Inappropriate[Embedded specific] + +Signed-off-by: Amarnath Valluri +--- + configure.ac | 14 +++----------- + data/Makefile.am | 1 - + src/probers/Makefile.am | 2 +- + tools/Makefile.am | 2 +- + 4 files changed, 5 insertions(+), 14 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 8c4e4c2..a143397 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -227,15 +227,8 @@ if test "x$GCC" = "xyes"; then + LDFLAGS="-Wl,--as-needed $LDFLAGS" + fi + +-if test "$prefix" = "/usr" -o "$prefix" = "/usr/local" ; then +- slashlibdir=/lib +- slashsbindir=/sbin +-else +- slashlibdir=$prefix/lib +- slashsbindir=$prefix/sbin +-fi +-AC_SUBST(slashlibdir) +-AC_SUBST(slashsbindir) ++udevrulesdir=/lib/udev/udev.d ++AC_SUBST(udevrulesdir) + + # ************* + # Remote Access +@@ -299,8 +292,7 @@ echo " + sysconfdir: ${sysconfdir} + localstatedir: ${localstatedir} + docdir: ${docdir} +- slashlibdir: ${slashlibdir} +- slashsbindir: ${slashsbindir} ++ udevrulesdir: ${udevrulesdir} + systemdsystemunitdir: ${systemdsystemunitdir} + + compiler: ${CC} +diff --git a/data/Makefile.am b/data/Makefile.am +index 411ea0f..4834960 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -34,7 +34,6 @@ $(systemdservice_DATA): $(systemdservice_in_files) Makefile + @sed -e "s|\@libexecdir\@|$(prefix)/lib/udisks|" $< > $@ + endif + +-udevrulesdir = $(slashlibdir)/udev/rules.d + udevrules_DATA = 80-udisks.rules + + pkgconfigdir = $(datadir)/pkgconfig +diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am +index 01c693b..6a0361a 100644 +--- a/src/probers/Makefile.am ++++ b/src/probers/Makefile.am +@@ -20,7 +20,7 @@ INCLUDES = \ + # TODO: ideally move most of this to udev and/or util-linux + # + +-udevhelperdir = $(slashlibdir)/udev ++udevhelperdir = $(libdir)/udev + udevhelper_PROGRAMS = udisks-part-id \ + udisks-probe-sas-expander \ + $(NULL) +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 18325f7..0aaec11 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -54,7 +54,7 @@ udisks_LDADD = \ + $(DBUS_GLIB_LIBS) \ + $(POLKIT_DBUS_LIBS) + +-slashsbin_PROGRAMS = umount.udisks ++sbin_PROGRAMS = umount.udisks + + umount_udisks_SOURCES = umount-udisks.c + umount_udisks_LDADD = $(DBUS_GLIB_LIBS) $(POLKIT_DBUS_LIBS) +-- +2.7.4 + diff --git a/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch b/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch new file mode 100644 index 00000000000..520655a213e --- /dev/null +++ b/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch @@ -0,0 +1,29 @@ +From 9829152b12a8924d2e091a00133ed1a3a7ba75c0 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev +Date: Fri, 29 May 2015 21:09:39 -0400 +Subject: [PATCH] fix build with newer glibc versions + +https://bugs.freedesktop.org/show_bug.cgi?id=90778 + +Upstream-Status: Applied [1] + +[1] http://cgit.freedesktop.org/udisks/commit/?h=udisks1&id=9829152b12a8924d2e091a00133ed1a3a7ba75c0 +--- + src/helpers/job-drive-detach.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/helpers/job-drive-detach.c b/src/helpers/job-drive-detach.c +index eeafcab..d122a1f 100644 +--- a/src/helpers/job-drive-detach.c ++++ b/src/helpers/job-drive-detach.c +@@ -18,6 +18,7 @@ + * + */ + ++#include + #include + #include + #include +-- +2.1.0 + diff --git a/meta-oe/recipes-support/udisks/udisks/add-systemd-support.patch b/meta-oe/recipes-support/udisks/udisks/add-systemd-support.patch deleted file mode 100644 index 29df8a4da4b..00000000000 --- a/meta-oe/recipes-support/udisks/udisks/add-systemd-support.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 7a485d491697906b445020dfcb37fe91806d7134 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 22 Jul 2010 02:20:22 +0200 -Subject: [PATCH] systemd: install systemd unit files -Upstream-Status: ? -Based on: https://www.libreoffice.org/bugzilla/show_bug.cgi?id=29205 ---- - Makefile.am | 5 ++++- - configure.ac | 9 +++++++++ - data/.gitignore | 1 + - data/Makefile.am | 11 ++++++++++- - data/org.freedesktop.UDisks.service.in | 2 +- - data/udisks-daemon.service.in | 12 ++++++++++++ - 6 files changed, 37 insertions(+), 3 deletions(-) - create mode 100644 data/udisks-daemon.service.in - -diff --git a/Makefile.am b/Makefile.am -index 588f05d..c3aaeea 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -24,7 +24,10 @@ EXTRA_DIST = \ - ChangeLog - - # xsltproc barfs on 'make distcheck'; disable for now --DISTCHECK_CONFIGURE_FLAGS=--disable-man-pages --disable-gtk-doc -+DISTCHECK_CONFIGURE_FLAGS = \ -+ --disable-man-pages \ -+ --disable-gtk-doc \ -+ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) - - clean-local : - rm -f *~ -diff --git a/configure.ac b/configure.ac -index a9141bf..39bbd7a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -232,6 +232,15 @@ AC_SUBST([GETTEXT_PACKAGE]) - AM_GLIB_GNU_GETTEXT - AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[gettext domain]) - -+# systemd -+ -+AC_ARG_WITH([systemdsystemunitdir], -+ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), -+ [], -+ [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) -+AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) -+AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"]) -+ - AC_OUTPUT([ - Makefile - data/Makefile -diff --git a/data/Makefile.am b/data/Makefile.am -index ca6d8ac..bf5c1a7 100644 ---- a/data/Makefile.am -+++ b/data/Makefile.am -@@ -35,6 +35,14 @@ avahiservicedir = $(sysconfdir)/avahi/services - avahiservice_DATA = udisks.service - endif # REMOTE_ACCESS_ENABLED - -+if HAVE_SYSTEMD -+systemdsystemunit_DATA = \ -+ udisks-daemon.service -+ -+udisks-daemon.service: udisks-daemon.service.in -+ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ -+endif -+ - EXTRA_DIST = \ - 80-udisks.rules \ - $(dbusif_DATA) \ -@@ -42,7 +50,8 @@ EXTRA_DIST = \ - $(dbusconf_in_files) \ - udisks.pc.in \ - udisks.service \ -+ udisks-daemon.service.in \ - $(NULL) - - clean-local : -- rm -f *~ $(service_DATA) $(dbusconf_DATA) -+ rm -f *~ $(service_DATA) $(dbusconf_DATA) udisks-daemon.service -diff --git a/data/org.freedesktop.UDisks.service.in b/data/org.freedesktop.UDisks.service.in -index b3606a6..6ba2cd0 100644 ---- a/data/org.freedesktop.UDisks.service.in -+++ b/data/org.freedesktop.UDisks.service.in -@@ -2,4 +2,4 @@ - Name=org.freedesktop.UDisks - Exec=@libexecdir@/udisks-daemon - User=root -- -+SystemdService=udisks-daemon.service -diff --git a/data/udisks-daemon.service.in b/data/udisks-daemon.service.in -new file mode 100644 -index 0000000..78379b2 ---- /dev/null -+++ b/data/udisks-daemon.service.in -@@ -0,0 +1,12 @@ -+[Unit] -+Description=Disk Manager -+After=syslog.target -+ -+[Service] -+Type=dbus -+BusName=org.freedesktop.UDisks -+ExecStart=@libexecdir@/udisks-daemon -+StandardOutput=syslog -+ -+[Install] -+WantedBy=graphical.target --- -1.7.0.1 - diff --git a/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch b/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch new file mode 100644 index 00000000000..d5e84d34df0 --- /dev/null +++ b/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch @@ -0,0 +1,33 @@ +From 7d61ad048856ee239870b917d6933e3ad63f0789 Mon Sep 17 00:00:00 2001 +From: David King +Date: Thu, 2 Jul 2015 13:49:22 +0100 +Subject: [PATCH] Fix systemd service file + +udisks-daemon is installed to $(libexecdir), not $(prefix)/lib/udisks. + +https://bugzilla.redhat.com/show_bug.cgi?id=1238664 +https://bugs.freedesktop.org/show_bug.cgi?id=91191 + +Taken-From: [1] +[1] http://pkgs.fedoraproject.org/cgit/udisks.git/tree/udisks-1.0.5-fix-service-file.patch + +Upstream-Status: Pending +--- + data/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/Makefile.am b/data/Makefile.am +index 411ea0f..08af5f4 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -31,7 +31,7 @@ systemdservicedir = $(systemdsystemunitdir) + systemdservice_DATA = $(systemdservice_in_files:.service.in=.service) + + $(systemdservice_DATA): $(systemdservice_in_files) Makefile +- @sed -e "s|\@libexecdir\@|$(prefix)/lib/udisks|" $< > $@ ++ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ + endif + + udevrulesdir = $(slashlibdir)/udev/rules.d +-- +2.4.5 diff --git a/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch b/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch new file mode 100644 index 00000000000..98e6c75f24d --- /dev/null +++ b/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch @@ -0,0 +1,26 @@ +musl does not define __GNUC_PREREQ therefore check for C library being glibc +if not then define the macro + +Upstream-Status: Pending +Signed-off-by: Khem Raj +Index: udisks-2.1.7/udisks/udisksclient.c +=================================================================== +--- udisks-2.1.7.orig/udisks/udisksclient.c ++++ udisks-2.1.7/udisks/udisksclient.c +@@ -27,8 +27,15 @@ + #include "udisksobjectinfo.h" + + /* For __GNUC_PREREQ usage below */ +-#ifdef __GNUC__ ++#ifdef __GLIBC__ + # include ++#else ++#if defined(__GNUC__) ++#define __GNUC_PREREQ(__maj, __min) \ ++ (__GNUC__ > (__maj) || __GNUC__ == (__maj) && __GNUC_MINOR__ >= (__min)) ++#else ++#define __GNUC_PREREQ(__maj, __min) 0 ++#endif + #endif + + /** diff --git a/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb b/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb new file mode 100644 index 00000000000..a3efc5160da --- /dev/null +++ b/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb @@ -0,0 +1,39 @@ +SUMMARY = "udisks provides dbus interfaces for disks and storage devices" +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43" + +DEPENDS = "acl libatasmart polkit libgudev dbus-glib glib-2.0 intltool-native gnome-common-native libxslt-native" +DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" + +RDEPENDS_${PN} = "acl" + +SRC_URI = "http://udisks.freedesktop.org/releases/udisks-${PV}.tar.bz2 \ + file://non-gnu-libc.patch \ +" +SRC_URI[md5sum] = "501d11c243bd8c6c00650474cd2afaab" +SRC_URI[sha256sum] = "da416914812a77e5f4d82b81deb8c25799fd3228d27d52f7bf89a501b1857dda" + +CVE_PRODUCT = "udisks" + +inherit autotools systemd gtk-doc gobject-introspection + +S = "${WORKDIR}/udisks-${PV}" + +EXTRA_OECONF = "--disable-man --disable-gtk-doc" + +FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \ + ${datadir}/dbus-1/ \ + ${datadir}/polkit-1 \ + ${nonarch_base_libdir}/udev/* \ + ${exec_prefix}${nonarch_base_libdir}/udisks2/* \ +" + +PACKAGES =+ "${PN}-libs" + +FILES_${PN} += "${datadir}/bash-completion" +FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}" + +FILES_${PN}-dbg += "${exec_prefix}${nonarch_base_libdir}/udisks2/.debug" + +SYSTEMD_SERVICE_${PN} = "${BPN}.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-oe/recipes-support/udisks/udisks_1.0.4.bb b/meta-oe/recipes-support/udisks/udisks_1.0.4.bb deleted file mode 100644 index e306e89990c..00000000000 --- a/meta-oe/recipes-support/udisks/udisks_1.0.4.bb +++ /dev/null @@ -1,39 +0,0 @@ -DESCRIPTION = "A storage daemon that implements well-defined D-Bus interfaces that can be used to query and manipulate storage devices." -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=73d83aebe7e4b62346afde80e0e94273" - -DEPENDS = "libatasmart sg3-utils polkit udev dbus-glib glib-2.0 intltool-native" -# optional dependencies: device-mapper parted - -DEPENDS += "${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" - -SRC_URI = "http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \ - file://optional-depends.patch" - -SRC_URI += "${@base_contains('DISTRO_FEATURES', 'systemd', 'file://add-systemd-support.patch', '', d)}" - -SRC_URI[udisks.md5sum] = "86c63b2b5484f2060499a052b5b6256b" -SRC_URI[udisks.sha256sum] = "854b89368733b9c3a577101b761ad5397ae75a05110c8698ac5b29de9a8bf8f5" - -PR = "r9" - -inherit autotools systemd gtk-doc - -PACKAGECONFIG ??= "" -PACKAGECONFIG[parted] = "--enable-parted,--disable-parted,parted" - -EXTRA_OECONF = "--disable-man-pages" - -FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \ - ${datadir}/dbus-1/ \ - ${datadir}/polkit-1 \ - ${base_libdir}/udev/* \ -" - -FILES_${PN}-dbg += "${base_libdir}/udev/.debug" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "udisks-daemon.service" -SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/meta-oe/recipes-support/udisks/udisks_1.0.5.bb new file mode 100644 index 00000000000..e33266001eb --- /dev/null +++ b/meta-oe/recipes-support/udisks/udisks_1.0.5.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "A storage daemon that implements well-defined D-Bus interfaces that can be used to query and manipulate storage devices." +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=73d83aebe7e4b62346afde80e0e94273" + +DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native \ + dbus-glib-native \ +" +# optional dependencies: device-mapper parted + +DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + dbus-glib-native \ +" + +SRC_URI = " \ + http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \ + file://optional-depends.patch \ + file://0001-fix-build-with-newer-glibc-versions.patch \ + file://udisks-1.0.5-fix-service-file.patch \ + file://0001-Make-udev-rules-directory-configurable.patch \ +" + +SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd" +SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71" + +inherit autotools-brokensep systemd gtk-doc + +PACKAGECONFIG ??= "libdevmapper" +PACKAGECONFIG[libdevmapper] = "--enable-devmapper,--disable-devmapper,libdevmapper" +PACKAGECONFIG[parted] = "--enable-parted,--disable-parted,parted" + +EXTRA_OECONF = "--disable-man-pages --libdir=${base_libdir} --sbindir=${base_sbindir}" +EXTRA_OEMAKE = "udevrulesdir=${nonarch_base_libdir}/udev/rules.d/" + +FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \ + ${datadir}/dbus-1/ \ + ${datadir}/polkit-1 \ + ${nonarch_base_libdir}/udev/* \ +" + +FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "udisks.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch b/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch new file mode 100644 index 00000000000..4b124943617 --- /dev/null +++ b/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch @@ -0,0 +1,82 @@ +From 24fd52cc45f7b5ff45afe072f5fbe66485df8c8e Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Wed, 29 Oct 2014 14:18:28 +0100 +Subject: [PATCH] Add support for aarch64 + +* include/private/gcconfig.h: Add support for aarch64. +--- + sigscheme/libgcroots/include/private/gcconfig.h | 37 +++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) + +diff --git a/sigscheme/libgcroots/include/private/gcconfig.h b/sigscheme/libgcroots/include/private/gcconfig.h +index 4d42b03..0f13db6 100644 +--- a/sigscheme/libgcroots/include/private/gcconfig.h ++++ b/sigscheme/libgcroots/include/private/gcconfig.h +@@ -62,6 +62,13 @@ + # endif + + /* Determine the machine type: */ ++# if defined(__aarch64__) ++# define AARCH64 ++# if !defined(LINUX) ++# define NOSYS ++# define mach_type_known ++# endif ++# endif + # if defined(__arm__) || defined(__thumb__) + # define ARM32 + # if !defined(LINUX) && !defined(NETBSD) +@@ -231,6 +238,10 @@ + # define IA64 + # define mach_type_known + # endif ++# if defined(LINUX) && defined(__aarch64__) ++# define AARCH64 ++# define mach_type_known ++# endif + # if defined(LINUX) && defined(__arm__) + # define ARM32 + # define mach_type_known +@@ -504,6 +515,7 @@ + /* running Amdahl UTS4 */ + /* S390 ==> 390-like machine */ + /* running LINUX */ ++ /* AARCH64 ==> ARM AArch64 */ + /* ARM32 ==> Intel StrongARM */ + /* IA64 ==> Intel IPF */ + /* (e.g. Itanium) */ +@@ -1724,6 +1736,31 @@ + # endif + # endif + ++# ifdef AARCH64 ++# define CPP_WORDSZ 64 ++# define MACH_TYPE "AARCH64" ++# define ALIGNMENT 8 ++# ifndef HBLKSIZE ++# define HBLKSIZE 4096 ++# endif ++# ifdef LINUX ++# define OS_TYPE "LINUX" ++# define LINUX_STACKBOTTOM ++# define DYNAMIC_LOADING ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)__data_start) ++ extern char _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# endif ++# ifdef NOSYS ++ /* __data_start is usually defined in the target linker script. */ ++ extern int __data_start[]; ++# define DATASTART ((ptr_t)__data_start) ++ extern void *__stack_base__; ++# define STACKBOTTOM ((ptr_t)__stack_base__) ++# endif ++# endif ++ + # ifdef ARM32 + # define CPP_WORDSZ 32 + # define MACH_TYPE "ARM32" +-- +2.13.2 + diff --git a/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch b/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch new file mode 100644 index 00000000000..df82b07aac3 --- /dev/null +++ b/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch @@ -0,0 +1,28 @@ +From 2918196ba782dfa4401bdca917ad4de1910505e0 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Fri, 21 Aug 2015 15:58:42 +0900 +Subject: [PATCH] fix bug for cross compile + +Signed-off-by: Lei Maohui +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 9be879c..9249bfd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1208,8 +1208,8 @@ AC_HELP_STRING([--with-libedit[=DIR], Enable libedit support + if test "x$use_libedit" != "xno"; then + saved_CPPFLAGS=$CPPFLAGS + saved_LDFLAGS=$LDFLAGS +- CPPFLAGS="${CPPFLAGS} -I$libedit_path/include" +- LDFLAGS="${LDFLAGS} -L$libedit_path/lib" ++ CPPFLAGS="${CPPFLAGS} " ++ LDFLAGS="${LDFLAGS} " + AC_CHECK_LIB(curses, tgetent, LIBEDIT_LIBS="-lcurses", + [AC_CHECK_LIB(ncurses, tgetent, LIBEDIT_LIBS="-lncurses", + AC_MSG_WARN("libedit needs libcurses or libncurses. disabled...") +-- +1.8.4.2 + diff --git a/meta-oe/recipes-support/uim/uim/uim-module-manager.patch b/meta-oe/recipes-support/uim/uim/uim-module-manager.patch new file mode 100644 index 00000000000..8569bf39efa --- /dev/null +++ b/meta-oe/recipes-support/uim/uim/uim-module-manager.patch @@ -0,0 +1,11 @@ +--- uim-1.1.0/scm/Makefile.am~ 2006-06-09 10:46:12.000000000 +0900 ++++ uim-1.1.0/scm/Makefile.am 2006-06-19 23:00:15.620000000 +0900 +@@ -58,7 +58,7 @@ + module_names += "scim" + endif + +-UIM_MODULE_MANAGER = $(top_builddir)/uim/uim-module-manager ++UIM_MODULE_MANAGER = uim-module-manager + UIM_MODULE_MANAGER_ENV = \ + LIBUIM_SCM_FILES=$(abs_srcdir) \ + LIBUIM_PLUGIN_LIB_DIR=$(abs_top_builddir)/uim/.libs diff --git a/meta-oe/recipes-support/uim/uim_1.8.6.bb b/meta-oe/recipes-support/uim/uim_1.8.6.bb new file mode 100644 index 00000000000..271718e5e45 --- /dev/null +++ b/meta-oe/recipes-support/uim/uim_1.8.6.bb @@ -0,0 +1,140 @@ +DESCRIPTION = "A multilingual user input method library" +HOMEPAGE = "http://uim.freedesktop.org/" +LICENSE = "BSD-3-Clause & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=32463fd29aa303fb2360faeeae17256b" +SECTION = "inputmethods" + +SRC_URI = "http://uim.googlecode.com/files/uim-${PV}.tar.bz2" + +SRC_URI_append_class-target = " file://uim-module-manager.patch \ + file://0001-fix-bug-for-cross-compile.patch \ + file://0001-Add-support-for-aarch64.patch \ +" +SRC_URI[md5sum] = "ecea4c597bab1fd4ba98ea84edcece59" +SRC_URI[sha256sum] = "7b1ea803c73f3478917166f04f67cce6e45ad7ea5ab6df99b948c17eb1cb235f" + +DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool" +DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts" + +RDEPENDS_uim = "libuim0 libedit" +RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0 glibc-utils glibc-gconv-euc-jp" + +LEAD_SONAME = "libuim.so.1" + +inherit autotools pkgconfig gettext qemu gtk-immodules-cache +GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3" + +EXTRA_OECONF += "--disable-emacs \ + --without-scim \ + --without-m17nlib \ + --without-prime \ + --without-canna \ + --without-mana \ + --without-eb \ +" + +CONFIGUREOPTS_remove_class-target = "--disable-silent-rules" + +#Because m4 file's find maxdepth=2, so copy the m4 files of the deep depth. +do_configure_prepend () { + cp ${S}/sigscheme/m4/* ${S}/m4/ +} + +do_install_append() { + rm -rf ${D}/${datadir}/applications +} + +PACKAGES =+ "uim-xim uim-utils uim-skk uim-gtk2.0 uim-gtk3 uim-fep uim-anthy uim-common libuim0 libuim-dev" + +FILES_${PN} = "${bindir}/uim-help \ + ${libdir}/uim/plugin/libuim-* \ + ${libdir}/libuim-scm* \ + ${libdir}/libgcroots* \ + ${libdir}/uim/plugin/libuim-* \ +" + +FILES_libuim0 = "${libdir}/uim/plugin/libuim-custom-enabler.* \ + ${libdir}/libuim-custom.so.* \ + ${datadir}/locale/ja/LC_MESSAGES/uim.mo \ + ${datadir}/locale/fr/LC_MESSAGES/uim.mo \ + ${datadir}/locale/ko/LC_MESSAGES/uim.mo \ + ${libdir}/libuim.so.* \ +" +FILES_libuim-dev = "${libdir}/libuim*.a \ + ${libdir}/libuim*.la \ + ${libdir}/libuim*.so \ + ${includedir}/uim \ + ${libdir}/pkgconfig/uim.pc \ +" +FILES_uim-anthy = "${libdir}/uim/plugin/libuim-anthy.* \ + ${datadir}/uim/anthy*.scm \ +" +FILES_${PN}-dbg += "${libdir}/*/*/*/.debug ${libdir}/*/*/.debug" +FILES_${PN}-dev += "${libdir}/uim/plugin/*.la" + +FILES_uim-utils = "${bindir}/uim-sh \ + ${bindir}/uim-module-manager \ + ${libexecdir}/uim-helper-server \ +" +FILES_uim-xim = "${bindir}/uim-xim \ + ${libexecdir}/uim-candwin-*gtk \ + ${libexecdir}/uim-candwin-*gtk3 \ + ${datadir}/man/man1/uim-xim.1 \ + ${sysconfdir}/X11/xinit/xinput.d/uim* \ +" +FILES_uim-common = "${datadir}/uim/pixmaps/*.png \ + ${datadir}/uim \ +" +FILES_uim-fep = "${bindir}/uim-fep*" + +FILES_uim-gtk2.0 = "${libdir}/gtk-2.0 \ + ${bindir}/uim-toolbar-gtk \ + ${bindir}/uim-toolbar-gtk-systray \ + ${bindir}/uim-*-gtk \ + ${bindir}/uim-input-pad-ja \ + ${libdir}/uim/uim-*-gtk \ +" +FILES_uim-gtk3 = "${libdir}/gtk-3.0 \ + ${bindir}/uim-toolbar-gtk3 \ + ${bindir}/uim-toolbar-gtk3-systray \ + ${bindir}/uim-*-gtk3 \ + ${libdir}/uim/uim-*-gtk3 \ +" +FILES_uim-skk = "${libdir}/uim/plugin/libuim-skk.* \ + ${datadir}/uim/skk*.scm \ +" + +PACKAGE_WRITE_DEPS += "qemu-native" +pkg_postinst_uim-anthy() { + if test -n "$D"; then + ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim + else + uim-module-manager --register anthy --path ${datadir}/uim + fi +} + +pkg_prerm_uim-anthy() { + if test -n "$D"; then + ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy + else + uim-module-manager --path ${datadir}/uim --unregister anthy + fi +} + +pkg_postinst_uim-skk() { + if test -n "$D"; then + ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim + else + uim-module-manager --register skk --path ${datadir}/uim + fi +} + +pkg_postrm_uim-skk() { + if test -n "$D"; then + ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk + else + uim-module-manager --path ${datadir}/uim --unregister skk + fi +} + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch b/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch new file mode 100644 index 00000000000..69d26adca98 --- /dev/null +++ b/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch @@ -0,0 +1,43 @@ +Subject: [PATCH] do not use libltdl source directory + +Don't use the included libltdl, use the one provided +by our libtool instead. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Song.Li +Signed-off-by: Jackie Huang +--- + Makefile.am | 1 - + configure.ac | 2 -- + 2 files changed, 3 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index e881cca..1321802 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -5,7 +5,6 @@ SUBDIRS = \ + log \ + lst \ + ini \ +- libltdl \ + odbcinst \ + DriverManager \ + exe \ +diff --git a/configure.ac b/configure.ac +index 218502f..d50b7af 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -136,9 +136,7 @@ dnl AC_CONFIG_MACRO_DIR([libltdl/m4]) + dnl LT_CONFIG_LTDL_DIR([libltdl]) + dnl LTDL_INIT + +-LT_CONFIG_LTDL_DIR([libltdl]) + LT_INIT([dlopen]) +-LTDL_INIT([convenience]) + + dnl Substitute INCLTDL and LIBLTDL in the Makefiles + AC_SUBST(LTDLINCL) +-- +2.8.1 + diff --git a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.4.bb b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.4.bb new file mode 100644 index 00000000000..6f57f375e8b --- /dev/null +++ b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.4.bb @@ -0,0 +1,27 @@ +SUMMARY = "An Open Source ODBC sub-system" +DESCRIPTION = "unixODBC is an Open Source ODBC sub-system and an ODBC SDK \ +for Linux, Mac OSX, and UNIX." + +HOMEPAGE = "http://www.unixodbc.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7b37bf80a3df5a65b355433ae36d206" + +DEPENDS = "libtool mysql5" + +SRC_URI = "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-${PV}.tar.gz \ + file://do-not-use-libltdl-source-directory.patch \ +" +SRC_URI[md5sum] = "bd25d261ca1808c947cb687e2034be81" +SRC_URI[sha256sum] = "2e1509a96bb18d248bf08ead0d74804957304ff7c6f8b2e5965309c632421e39" + +inherit autotools-brokensep + +S = "${WORKDIR}/unixODBC-${PV}" + +EXTRA_OEMAKE += "LIBS=-lltdl" + +do_configure_prepend() { + # old m4 files will cause libtool version don't match + rm -rf m4/* + rm -fr libltdl +} diff --git a/meta-oe/recipes-support/upower/upower_0.9.14.bb b/meta-oe/recipes-support/upower/upower_0.9.14.bb deleted file mode 100644 index 0aa9ec9f285..00000000000 --- a/meta-oe/recipes-support/upower/upower_0.9.14.bb +++ /dev/null @@ -1,35 +0,0 @@ -DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. " -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08" - -PR = "r2" - -DEPENDS = "libusb1 udev glib-2.0 dbus-glib polkit gobject-introspection-stub" - -SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "18803f82102d56aac90949d1e4251645" -SRC_URI[sha256sum] = "81eb44c0453b264a737d32f763a31d5b1776f050a47d5be85fc5e9caf874a4c5" - -inherit autotools pkgconfig gettext - -PACKAGECONFIG ??= "" -PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist" - -EXTRA_OECONF = " --with-backend=linux" - -do_configure_prepend() { - sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am - sed -i -e 's: doc : :g' ${S}/Makefile.am -} - - -RRECOMMENDS_${PN} += "pm-utils" -FILES_${PN} += "${datadir}/dbus-1/ \ - ${datadir}/polkit-1/ \ - ${base_libdir}/udev/* \ -" - -FILES_${PN}-dbg += "${base_libdir}/udev/.debug" - - - diff --git a/meta-oe/recipes-support/upower/upower_0.99.5.bb b/meta-oe/recipes-support/upower/upower_0.99.5.bb new file mode 100644 index 00000000000..9314534d7c4 --- /dev/null +++ b/meta-oe/recipes-support/upower/upower_0.99.5.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. " +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08" + +DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit" + +SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "ec57b4b7bf0af568f9a7a5603c921d97" +SRC_URI[sha256sum] = "78605664d027c788f6ab63c50950be6e86c6ba5d030c4cf35a6664337d87f3b2" + +inherit autotools pkgconfig gettext gobject-introspection systemd + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist" +PACKAGECONFIG[systemd] = "--with-systemdutildir=${systemd_unitdir} --with-systemdsystemunitdir=${systemd_system_unitdir}, \ + --without-systemdutildir --without-systemdsystemunitdir,systemd" + +EXTRA_OECONF = " --with-backend=linux" + +SYSTEMD_SERVICE_${PN} = "upower.service" +# don't start on boot by default - dbus does that on demand +SYSTEMD_AUTO_ENABLE = "disable" + +do_configure_prepend() { + sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am + sed -i -e 's: doc : :g' ${S}/Makefile.am +} + +RDEPENDS_${PN} += "dbus" +RRECOMMENDS_${PN} += "pm-utils" +FILES_${PN} += "${datadir}/dbus-1/ \ + ${datadir}/polkit-1/ \ + ${base_libdir}/udev/* \ +" + +FILES_${PN}-dbg += "${base_libdir}/udev/.debug" + + + diff --git a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20140529.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20140529.bb deleted file mode 100644 index a265411c1e0..00000000000 --- a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20140529.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Data files for usbmodeswitch" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit allarch - -SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2" -SRC_URI[md5sum] = "dff94177781298aaf0b3c2a3c3dea6b2" -SRC_URI[sha256sum] = "53889157937109e04dafe897c098ec94f3f44f9c0c83fc6ec8417aa9a587e536" - -do_install() { - oe_runmake install DESTDIR=${D} -} - -RDEPENDS_${PN} = "usb-modeswitch (>= 2.2.0)" -FILES_${PN} += "${base_libdir}/udev/rules.d/ \ - ${datadir}/usb_modeswitch" diff --git a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb new file mode 100644 index 00000000000..eeed5e275d6 --- /dev/null +++ b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb @@ -0,0 +1,19 @@ +SUMMARY = "Data files for usbmodeswitch" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit allarch + +DEPENDS += "tcl-native" + +SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2" +SRC_URI[md5sum] = "0cc107cd0c4c83df0d9400c999e21dfd" +SRC_URI[sha256sum] = "e2dcfd9d28928d8d8f03381571a23442b3c50d48d343bc40a1a07d01662738d1" + +do_install() { + oe_runmake install DESTDIR=${D} +} + +RDEPENDS_${PN} = "usb-modeswitch (>= 2.4.0)" +FILES_${PN} += "${base_libdir}/udev/rules.d/ \ + ${datadir}/usb_modeswitch" diff --git a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.2.0.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.2.0.bb deleted file mode 100644 index 5e95bb9442d..00000000000 --- a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.2.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS = "libusb1" - -SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2" -SRC_URI[md5sum] = "f323fe700edd6ea404c40934ddf32b22" -SRC_URI[sha256sum] = "2752103de171ed5f6c8d6a6e3e73e16c9ee3e8e394dd39c5991f7680eb908a3a" - -EXTRA_OEMAKE = "TCL=${bindir}/tclsh" - -FILES_${PN} = "${bindir} ${sysconfdir} ${base_libdir}/udev/usb_modeswitch ${sbindir} ${localstatedir}/lib/usb_modeswitch" -RDEPENDS_${PN} = "tcl" -RRECOMMENDS_${PN} = "usb-modeswitch-data" - -do_install() { - oe_runmake DESTDIR=${D} install -} diff --git a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb new file mode 100644 index 00000000000..ac0df8bab41 --- /dev/null +++ b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "libusb1" + +SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2" +SRC_URI[md5sum] = "38ad5c9d70e06227a00361bdc2b1e568" +SRC_URI[sha256sum] = "31c0be280d49a99ec3dc0be3325bef320d9c04b50714ef0ce1e36a614d687633" + +inherit pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "usb_modeswitch@.service" + +EXTRA_OEMAKE = "TCL=${bindir}/tclsh" + +FILES_${PN} = "${bindir} ${sysconfdir} ${nonarch_base_libdir}/udev/usb_modeswitch ${sbindir} ${localstatedir}/lib/usb_modeswitch" +RDEPENDS_${PN} = "tcl" +RRECOMMENDS_${PN} = "usb-modeswitch-data" + +do_install() { + oe_runmake DESTDIR=${D} install + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${S}/usb_modeswitch@.service ${D}/${systemd_unitdir}/system + fi +} diff --git a/meta-oe/recipes-support/usbpath/usbpath_svn.bb b/meta-oe/recipes-support/usbpath/usbpath_svn.bb index 134192bd67f..6c9cd049fed 100644 --- a/meta-oe/recipes-support/usbpath/usbpath_svn.bb +++ b/meta-oe/recipes-support/usbpath/usbpath_svn.bb @@ -4,7 +4,7 @@ SECTION = "console/utils" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://usbpath.c;endline=20;md5=0aa8c7d2af9110c78a99fbf9a504dc3f" DEPENDS = "virtual/libusb0" -DEPENDS_virtclass-native = "virtual/libusb0-native" +DEPENDS_class-native = "virtual/libusb0-native" BBCLASSEXTEND = "native" @@ -17,3 +17,5 @@ SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \ S = "${WORKDIR}/usbpath" inherit autotools pkgconfig + +RDEPENDS_${PN} += "perl" diff --git a/meta-oe/recipes-support/uthash_1.9.7.bb b/meta-oe/recipes-support/uthash/uthash_1.9.7.bb similarity index 94% rename from meta-oe/recipes-support/uthash_1.9.7.bb rename to meta-oe/recipes-support/uthash/uthash_1.9.7.bb index e5dde1a578e..82a9f2a6a31 100644 --- a/meta-oe/recipes-support/uthash_1.9.7.bb +++ b/meta-oe/recipes-support/uthash/uthash_1.9.7.bb @@ -12,3 +12,5 @@ do_install () { install -dm755 ${D}${includedir} install -m 0644 ${S}/src/*.h ${D}${includedir} } + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch b/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch new file mode 100644 index 00000000000..f3c8eeb4189 --- /dev/null +++ b/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch @@ -0,0 +1,29 @@ +From 08b17ec505e09e8f5a4d73ffc3aa61561ec2e0da Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 30 Mar 2017 00:27:54 -0700 +Subject: [PATCH] include sys/stat.h for fixing build issue on musl + +error: field has incomplete + type 'struct stat' + struct stat fs; + +Signed-off-by: Khem Raj +--- + tools/utouch-frame-test-mtdev.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/utouch-frame-test-mtdev.c b/tools/utouch-frame-test-mtdev.c +index 5253320..2032af4 100644 +--- a/tools/utouch-frame-test-mtdev.c ++++ b/tools/utouch-frame-test-mtdev.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + #include "common-defs.h" + + struct frame_test { +-- +2.12.1 + diff --git a/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch b/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch new file mode 100644 index 00000000000..8706d912346 --- /dev/null +++ b/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch @@ -0,0 +1,16 @@ +configure.ac: never generate the docs even if a2x is found as xmllint will fail finding custom dtd files + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Derek Straka +--- git/configure.ac.orig 2016-08-15 09:53:46.787003658 -0400 ++++ git/configure.ac 2016-08-15 09:53:51.698972432 -0400 +@@ -37,7 +37,7 @@ + ]) + + AC_CHECK_PROG([ASCIIDOC], [a2x], [a2x]) +-AM_CONDITIONAL([HAVE_DOCTOOLS], [test "x$ASCIIDOC" != "x"]) ++AM_CONDITIONAL([HAVE_DOCTOOLS], [false]) + AS_IF([test "x$ASCIIDOC" = "x"], + [AC_MSG_WARN([asciidoc not installed, man pages will not be created])]) + diff --git a/meta-oe/recipes-support/utouch/utouch-frame_git.bb b/meta-oe/recipes-support/utouch/utouch-frame_git.bb index d9b38ae2048..39d46af8e94 100644 --- a/meta-oe/recipes-support/utouch/utouch-frame_git.bb +++ b/meta-oe/recipes-support/utouch/utouch-frame_git.bb @@ -9,7 +9,10 @@ DEPENDS += "mtdev utouch-evemu" inherit autotools pkgconfig -SRC_URI = "git://bitmath.org/git/frame.git;protocol=http" +SRC_URI = "git://bitmath.org/git/frame.git;protocol=http \ + file://remove-man-page-creation.patch \ + file://0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch \ + " SRCREV = "95363d5a1f7394d71144bf3b408ef4e6db4350fc" PV = "1.1.2+git${SRCPV}" diff --git a/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb b/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb deleted file mode 100644 index 07ff3182037..00000000000 --- a/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "A lightweight Terminal Emulator based on libvte, written in Vala" -SECTION = "x11/applications" -DEPENDS = "vte intltool-native" -SRCREV = "0fefa38087581f85fa0631b40500b9428369c146" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -PV = "1.3+gitr${SRCPV}" -PE = "1" -PR = "r1" - -PNBLACKLIST[vala-terminal] ?= "BROKEN: Doesn't work with B!=S, touch: cannot touch `src/.stamp': No such file or directory" - -inherit autotools perlnative vala - -SRC_URI = "${FREESMARTPHONE_GIT}/vala-terminal.git;branch=master" -S = "${WORKDIR}/git" - -RDEPENDS_${PN} = "ttf-liberation-mono" -RREPLACES_${PN} = "openmoko-terminal2" -RPROVIDES_${PN} = "openmoko-terminal2" diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils index 3749b95add6..495601f08f4 100644 --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils +++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils @@ -10,8 +10,10 @@ ## ## ----------------------------------------------------------------------- -INCLUDES = -I. -I../vboxsf -CFLAGS = ${INCLUDES} +INCLUDES = -I. -I../vboxsf -I../vboxsf/include +MOD_DEFS = -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 \ + -DIN_SUP_R0 -DVBOX -DVBOX_WITH_HGCM -DIN_MODULE -DIN_GUEST_R0 +CFLAGS = ${INCLUDES} ${MOD_DEFS} LDFLAGS = SRCS = mount.vboxsf.c \ diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.22.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.22.bb deleted file mode 100644 index 46a7be17a37..00000000000 --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.22.bb +++ /dev/null @@ -1,65 +0,0 @@ -SUMMARY = "VirtualBox Linux Guest Drivers" -SECTION = "core" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660" - -DEPENDS = "virtual/kernel" - -inherit module kernel-module-split - -COMPATIBLE_MACHINE = "(qemux86|qemux86-64)" - -VBOX_NAME = "VirtualBox-${PV}" - -SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \ - file://Makefile.utils \ -" -SRC_URI[md5sum] = "fc21ecc1044dc13cd6c6b601823c6df3" -SRC_URI[sha256sum] = "0d41e044589d3371f765a98ddc071d9cf9788289f72b7efbb5db64f5488c8eba" - -S = "${WORKDIR}/vbox_module" - -export BUILD_TARGET_ARCH="${ARCH}" -export BUILD_TARGET_ARCH_x86-64="amd64" -export KERN_DIR="${STAGING_KERNEL_DIR}" - -addtask export_sources before do_patch after do_unpack - -do_export_sources() { - mkdir -p "${S}" - ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules ${T}/vbox_modules.tar.gz - tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz - - # add a mount utility to use shared folder from VBox Addition Source Code - mkdir -p "${S}/utils" - install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils - install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils - install ${S}/../Makefile.utils ${S}/utils/Makefile - -} - -# compile and install mount utility -do_compile_append() { - oe_runmake -C ${S}/utils -} - -module_do_install() { - MODULE_DIR=${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/misc - install -d $MODULE_DIR - install -m 644 vboxguest.ko $MODULE_DIR - install -m 644 vboxsf.ko $MODULE_DIR - install -m 644 vboxvideo.ko $MODULE_DIR -} - -do_install_append() { - install -d ${D}${base_sbindir} - install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir} -} - -PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo" -RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo" - -FILES_${PN} = "${base_sbindir}" - -# autoload if installed -KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo" diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb new file mode 100644 index 00000000000..fdefe03172d --- /dev/null +++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb @@ -0,0 +1,69 @@ +SUMMARY = "VirtualBox Linux Guest Drivers" +SECTION = "core" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660" + +DEPENDS = "virtual/kernel" + +inherit module kernel-module-split + +COMPATIBLE_MACHINE = "(qemux86|qemux86-64)" + +VBOX_NAME = "VirtualBox-${PV}" + +SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \ + file://Makefile.utils \ +" +SRC_URI[md5sum] = "d3aec8190c649d7e0d92ba374779dfe3" +SRC_URI[sha256sum] = "b5715035e681a11ef1475f83f9503d34a00f0276b89c572eebec363dda80c8a9" + +S = "${WORKDIR}/vbox_module" + +export BUILD_TARGET_ARCH="${ARCH}" +export BUILD_TARGET_ARCH_x86-64="amd64" +export KERN_DIR="${STAGING_KERNEL_DIR}" + +addtask export_sources before do_patch after do_unpack + +do_export_sources() { + mkdir -p "${S}" + ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules ${T}/vbox_modules.tar.gz + tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz + + # add a mount utility to use shared folder from VBox Addition Source Code + mkdir -p "${S}/utils" + install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils + install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils + install ${S}/../Makefile.utils ${S}/utils/Makefile + +} + +# compile and install mount utility +do_compile_append() { + oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils + if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then + echo "ERROR: One of vbox*.ko modules wasn't built" + exit 1 + fi +} + +module_do_install() { + MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc + install -d $MODULE_DIR + install -m 644 vboxguest.ko $MODULE_DIR + install -m 644 vboxsf.ko $MODULE_DIR + install -m 644 vboxvideo.ko $MODULE_DIR +} + +do_install_append() { + install -d ${D}${base_sbindir} + install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir} +} + +PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo" +RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo" + +FILES_${PN} = "${base_sbindir}" + +# autoload if installed +KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo" diff --git a/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch b/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch index 8f824e78b02..65e5f58c61d 100644 --- a/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch +++ b/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch @@ -4,10 +4,10 @@ Don't check 'sys/acl.h' if acl support disabled for vim/vim-tiny. Signed-off-by: Wenzong Fan ================================================ -diff --git a/src/configure.in b/src/configure.in +diff --git a/src/configure.ac b/src/configure.ac index fb965e5..d734064 100644 ---- a/src/configure.in -+++ b/src/configure.in +--- a/src/configure.ac ++++ b/src/configure.ac @@ -2511,7 +2511,7 @@ AC_CHECK_HEADERS(stdarg.h stdint.h stdlib.h string.h \ sys/systeminfo.h locale.h sys/stream.h termios.h \ libc.h sys/statfs.h poll.h sys/poll.h pwd.h \ diff --git a/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch index 693d130e494..6c620f9f279 100644 --- a/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch +++ b/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch @@ -7,13 +7,13 @@ Upstream-status: Pending Signed-off-by: Chong Lu --- - src/configure.in | 7 +++++++ + src/configure.ac | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/src/configure.in b/src/configure.in +diff --git a/src/configure.ac b/src/configure.ac index d734064..f504fa6 100644 ---- a/src/configure.in -+++ b/src/configure.in +--- a/src/configure.ac ++++ b/src/configure.ac @@ -2483,11 +2483,18 @@ AC_TRY_COMPILE([#include ], [int x __attribute__((unused));], AC_MSG_RESULT(no)) diff --git a/meta-oe/recipes-support/vim/vim-tiny_7.4.481.bb b/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb similarity index 100% rename from meta-oe/recipes-support/vim/vim-tiny_7.4.481.bb rename to meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb diff --git a/meta-oe/recipes-support/vim/vim_7.4.481.bb b/meta-oe/recipes-support/vim/vim_7.4.481.bb deleted file mode 100644 index afdea84d455..00000000000 --- a/meta-oe/recipes-support/vim/vim_7.4.481.bb +++ /dev/null @@ -1,109 +0,0 @@ -SUMMARY = "Vi IMproved - enhanced vi editor" -SECTION = "console/utils" -DEPENDS = "ncurses gettext-native" -# vimdiff doesn't like busybox diff -RSUGGESTS_${PN} = "diffutils" -LICENSE = "vim" -LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=b779e18be6ed77facc770691c967b8f8" - -SRC_URI = "hg://vim.googlecode.com/hg/;protocol=https;module=vim \ - file://disable_acl_header_check.patch;patchdir=.. \ - file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \ -" -SRCREV = "v7-4-481" - -S = "${WORKDIR}/vim/src" - -VIMDIR = "vim${@d.getVar('PV',1).split('.')[0]}${@d.getVar('PV',1).split('.')[1]}" - -inherit autotools update-alternatives -inherit autotools-brokensep - -# vim configure.in contains functions which got 'dropped' by autotools.bbclass -do_configure () { - rm -f auto/* - touch auto/config.mk - aclocal - autoconf - oe_runconf - touch auto/configure - touch auto/config.mk auto/config.h -} - -#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny -PACKAGECONFIG ??= "" -PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'acl', 'acl', '', d)}" -PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}" - -PACKAGECONFIG[gtkgui] = "--enable-gtk2-test --enable-gui=gtk2,--enable-gui=no,gtk+," -PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," -PACKAGECONFIG[x11] = "--with-x,--without-x,xt," -PACKAGECONFIG[tiny] = "--with-features=tiny,--with-features=big,," -PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux," -PACKAGECONFIG[elfutils] = "--enable-elf-check,,elfutils," - -EXTRA_OECONF = " \ - --disable-gpm \ - --disable-gtktest \ - --disable-xim \ - --disable-netbeans \ - --with-tlib=ncurses \ - ac_cv_small_wchar_t=no \ - vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=no \ - vim_cv_terminfo=yes \ - vim_cv_tgent=non-zero \ - vim_cv_toupper_broken=no \ - vim_cv_tty_group=world \ - STRIP=/bin/true \ -" - -do_install() { - autotools_do_install - - # Work around rpm picking up csh or awk or perl as a dep - chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/vim132 - chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk - chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl - - # Install example vimrc from runtime files - install -m 0644 ../runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc - - # we use --with-features=big as default - mv ${D}${bindir}/${BPN} ${D}${bindir}/${BPN}.${BPN} -} - -PARALLEL_MAKEINST = "" - -PACKAGES =+ "${PN}-common ${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc" -FILES_${PN}-syntax = "${datadir}/${BPN}/${VIMDIR}/syntax" -FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc" -FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor" -FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc" -FILES_${PN}-data = "${datadir}/${BPN}" -FILES_${PN}-common = " \ - ${datadir}/${BPN}/${VIMDIR}/*.vim \ - ${datadir}/${BPN}/${VIMDIR}/autoload \ - ${datadir}/${BPN}/${VIMDIR}/colors \ - ${datadir}/${BPN}/${VIMDIR}/compiler \ - ${datadir}/${BPN}/${VIMDIR}/ftplugin \ - ${datadir}/${BPN}/${VIMDIR}/indent \ - ${datadir}/${BPN}/${VIMDIR}/keymap \ - ${datadir}/${BPN}/${VIMDIR}/lang \ - ${datadir}/${BPN}/${VIMDIR}/macros \ - ${datadir}/${BPN}/${VIMDIR}/plugin \ - ${datadir}/${BPN}/${VIMDIR}/print \ - ${datadir}/${BPN}/${VIMDIR}/spell \ - ${datadir}/${BPN}/${VIMDIR}/tools \ -" - -RDEPENDS_${PN} = "ncurses-terminfo-base" -# Recommend that runtime data is installed along with vim -RRECOMMENDS_${PN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common" - -ALTERNATIVE_${PN} = "vi vim" -ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}" -ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi" -ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim" -ALTERNATIVE_PRIORITY = "100" diff --git a/meta-oe/recipes-support/vim/vim_8.0.0983.bb b/meta-oe/recipes-support/vim/vim_8.0.0983.bb new file mode 100644 index 00000000000..407ce5e7303 --- /dev/null +++ b/meta-oe/recipes-support/vim/vim_8.0.0983.bb @@ -0,0 +1,112 @@ +SUMMARY = "Vi IMproved - enhanced vi editor" +SECTION = "console/utils" +DEPENDS = "ncurses gettext-native" +# vimdiff doesn't like busybox diff +RSUGGESTS_${PN} = "diffutils" +LICENSE = "vim" +LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=eea32ac1424bba14096736a494ae9045" + +SRC_URI = "git://github.com/vim/vim.git \ + file://disable_acl_header_check.patch;patchdir=.. \ + file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \ +" +SRCREV = "3f9a1ff141412e9e85f7dff47d02946cb9be9228" + +S = "${WORKDIR}/git/src" + +VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}" + +inherit autotools update-alternatives +inherit autotools-brokensep + +# vim configure.in contains functions which got 'dropped' by autotools.bbclass +do_configure () { + rm -f auto/* + touch auto/config.mk + aclocal + autoconf + oe_runconf + touch auto/configure + touch auto/config.mk auto/config.h +} + +#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny +PACKAGECONFIG ??= "" +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}" + +PACKAGECONFIG[gtkgui] = "--enable-gtk2-test --enable-gui=gtk2,--enable-gui=no,gtk+," +PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," +PACKAGECONFIG[x11] = "--with-x,--without-x,xt," +PACKAGECONFIG[tiny] = "--with-features=tiny,--with-features=big,," +PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux," +PACKAGECONFIG[elfutils] = "--enable-elf-check,,elfutils," + +EXTRA_OECONF = " \ + --disable-gpm \ + --disable-gtktest \ + --disable-xim \ + --disable-netbeans \ + --with-tlib=ncurses \ + ac_cv_small_wchar_t=no \ + vim_cv_getcwd_broken=no \ + vim_cv_memmove_handles_overlap=yes \ + vim_cv_stat_ignores_slash=no \ + vim_cv_terminfo=yes \ + vim_cv_tgent=non-zero \ + vim_cv_toupper_broken=no \ + vim_cv_tty_group=world \ + STRIP=/bin/true \ +" + +do_install() { + autotools_do_install + + # Work around file-rdeps picking up csh, awk, perl or python as a dep + chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/vim132 + chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk + chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl + chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.py + + # Install example vimrc from runtime files + install -m 0644 ../runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc + + # we use --with-features=big as default + mv ${D}${bindir}/${BPN} ${D}${bindir}/${BPN}.${BPN} +} + +PARALLEL_MAKEINST = "" + +PACKAGES =+ "${PN}-common ${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-tools" +FILES_${PN}-syntax = "${datadir}/${BPN}/${VIMDIR}/syntax" +FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc" +FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor" +FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc" +FILES_${PN}-data = "${datadir}/${BPN}" +FILES_${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools" +FILES_${PN}-common = " \ + ${datadir}/${BPN}/${VIMDIR}/*.vim \ + ${datadir}/${BPN}/${VIMDIR}/autoload \ + ${datadir}/${BPN}/${VIMDIR}/colors \ + ${datadir}/${BPN}/${VIMDIR}/compiler \ + ${datadir}/${BPN}/${VIMDIR}/ftplugin \ + ${datadir}/${BPN}/${VIMDIR}/indent \ + ${datadir}/${BPN}/${VIMDIR}/keymap \ + ${datadir}/${BPN}/${VIMDIR}/lang \ + ${datadir}/${BPN}/${VIMDIR}/macros \ + ${datadir}/${BPN}/${VIMDIR}/plugin \ + ${datadir}/${BPN}/${VIMDIR}/print \ + ${datadir}/${BPN}/${VIMDIR}/spell \ + ${datadir}/icons \ +" + +RDEPENDS_${BPN} = "ncurses-terminfo-base" +# Recommend that runtime data is installed along with vim +RRECOMMENDS_${BPN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common" + +ALTERNATIVE_${PN} = "vi vim" +ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}" +ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi" +ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim" +ALTERNATIVE_PRIORITY = "100" + +BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch new file mode 100644 index 00000000000..90eff5bb0f1 --- /dev/null +++ b/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch @@ -0,0 +1,26 @@ +From 0378cbb323c662a565f7f3de2dee3d8a646e7bd1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 09:32:42 -0700 +Subject: [PATCH 1/2] makefile: Pass CFLAGS to compile + +Set CC if not already set + +Signed-off-by: Khem Raj +--- + host/tools/wmiconfig/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/host/tools/wmiconfig/Makefile b/host/tools/wmiconfig/Makefile +index c6738c5..3253a7e 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,4 +1,4 @@ +-CC :=$(ATH_CROSS_COMPILE_TYPE)gcc ++CC ?= $(ATH_CROSS_COMPILE_TYPE)gcc + + all: +- $(CC) -Wall -DUSER_KEYS -g $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig ++ $(CC) -Wall -DUSER_KEYS -g $(CFLAGS) $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig +-- +2.13.2 + diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch new file mode 100644 index 00000000000..f67f784c1fd --- /dev/null +++ b/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch @@ -0,0 +1,656 @@ +From 909ebdde4ee2233d65de8fa01fde8e9a3bec12b7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 09:33:26 -0700 +Subject: [PATCH 2/2] fix err() API to have format string + +Fixes errors with hardening flags + +Signed-off-by: Khem Raj +--- + host/tools/wmiconfig/wmiconfig.c | 148 +++++++++++++++++++-------------------- + 1 file changed, 74 insertions(+), 74 deletions(-) + +diff --git a/host/tools/wmiconfig/wmiconfig.c b/host/tools/wmiconfig/wmiconfig.c +index 21c9dcd..a6ec481 100644 +--- a/wmiconfig.c ++++ b/wmiconfig.c +@@ -483,7 +483,7 @@ main (int argc, char **argv) + strcpy(ifname, ethIf); + s = socket(AF_INET, SOCK_DGRAM, 0); + if (s < 0) { +- err(1, "socket"); ++ err(1, "%s", "socket"); + } + + while (1) { +@@ -1506,28 +1506,28 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)filterCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SETBSSFILTER, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_POWER_MODE: + ifr.ifr_data = (void *)pwrCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SETPWR, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_PM_PARAMS: + ifr.ifr_data = (void *)pmParamCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SET_PMPARAMS, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_IBSS_PM_CAPS: + ifr.ifr_data = (void *)adhocPmCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_ERROR_DETECTION: +@@ -1535,7 +1535,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_HB_CHALLENGE_RESP: +@@ -1543,7 +1543,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + #ifdef USER_KEYS +@@ -1554,7 +1554,7 @@ main (int argc, char **argv) + + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + + break; +@@ -1575,7 +1575,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)sParamCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SETSCAN, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_VERSION: +@@ -1586,7 +1586,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)revinfo; + if (ioctl(s, AR6000_IOCTL_WMI_GETREV, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + printf("Host Rev = 0x%x(%u.%u.%u.%u), Target Rev = 0x%x(%u.%u.%u.%u)\n", + revinfo->host_ver, +@@ -1606,14 +1606,14 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)listenCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SETLISTENINT, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_BMISS_TIME: + ifr.ifr_data = (void *)bmissCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SET_BMISS_TIME, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_RSSI_THRESHOLDS: +@@ -1621,14 +1621,14 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_SNR_THRESHOLDS: + ifr.ifr_data = (void *)snrThresholdParam; + if (ioctl(s, AR6000_IOCTL_WMI_SET_SNRTHRESHOLD, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_CLR_RSSISNR: +@@ -1636,7 +1636,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_LQ_THRESHOLDS: +@@ -1644,7 +1644,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_CHANNEL: +@@ -1693,18 +1693,18 @@ main (int argc, char **argv) + + if (ioctl(s, AR6000_IOCTL_WMI_SET_CHANNELPARAMS, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_SSID: + if (index > MAX_PROBED_SSID_INDEX) { + printf("num option for ssid command too large\n"); +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + break; + } + if (strlen((char *)ssid) > sizeof (ssidCmd->ssid)) { + printf("ssid name too large\n"); +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + break; + } + ssidCmd->entryIndex = index; +@@ -1722,7 +1722,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)ssidCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SET_PROBEDSSID, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_BADAP: +@@ -1735,7 +1735,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)badApCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SET_BADAP, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_CREATE_QOS: +@@ -1794,7 +1794,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)crePStreamCmd; + if (ioctl(s, AR6000_IOCTL_WMI_CREATE_QOS, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_TARGET_STATS: +@@ -1807,7 +1807,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)&tgtStatsCmd; + if (ioctl(s, AR6000_IOCTL_WMI_GET_TARGET_STATS, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + printTargetStats(&(tgtStatsCmd.targetStats)); + break; +@@ -1815,7 +1815,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)pBitMask; + if (ioctl(s, AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_DELETE_QOS: +@@ -1824,7 +1824,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)delPStreamCmd; + if (ioctl(s, AR6000_IOCTL_WMI_DELETE_QOS, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_QOS_QUEUE: +@@ -1840,7 +1840,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)getQosQueueCmd; + if (ioctl(s, AR6000_IOCTL_WMI_GET_QOS_QUEUE, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + + printf("Active TSIDs \n"); +@@ -1855,7 +1855,7 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)ieInfo; + if (ioctl(s, AR6000_IOCTL_WMI_SET_ASSOC_INFO, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_AC_PARAMS: +@@ -1871,14 +1871,14 @@ main (int argc, char **argv) + ifr.ifr_data = (void *)acParamsCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SET_ACCESS_PARAMS, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_DISC_TIMEOUT: + ifr.ifr_data = (void *)discCmd; + if (ioctl(s, AR6000_IOCTL_WMI_SET_DISC_TIMEOUT, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_ADHOC_BSSID: +@@ -1887,7 +1887,7 @@ main (int argc, char **argv) + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { + printf("fail to set adhoc bssid \n"); +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_OPT_MODE: +@@ -1895,7 +1895,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_OPT_SEND_FRAME: +@@ -1903,7 +1903,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_BEACON_INT: +@@ -1911,7 +1911,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_VOICE_PKT_SIZE: +@@ -1919,7 +1919,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_MAX_SP: +@@ -1927,7 +1927,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_ROAM_TBL: +@@ -1935,7 +1935,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_ROAM_CTRL: +@@ -1943,7 +1943,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_POWERSAVE_TIMERS: +@@ -1951,7 +1951,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_POWER_MODE: +@@ -1959,7 +1959,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + printf("Power mode is %s\n", + (getPowerMode->powerMode == MAX_PERF_POWER) ? "maxperf" : "rec"); +@@ -1969,7 +1969,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_ROAM_DATA: +@@ -1977,7 +1977,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_BT_STATUS: +@@ -1985,7 +1985,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_BT_PARAMS: +@@ -1993,7 +1993,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_RETRYLIMITS: +@@ -2001,14 +2001,14 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_START_SCAN: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_STARTSCAN; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_FIX_RATES: +@@ -2031,14 +2031,14 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_FIX_RATES: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_GETFIXRATES; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } else { + int i; + printf("Fix rate set index:"); +@@ -2057,7 +2057,7 @@ main (int argc, char **argv) + index--; + setAuthMode->mode = atoi(argv[index]); + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_REASSOC_MODE: +@@ -2067,42 +2067,42 @@ main (int argc, char **argv) + index--; + setReassocMode->mode = atoi(argv[index]); + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_LPREAMBLE: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_LPREAMBLE; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_RTS: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_RTS; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_WMM: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WMM; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_TXOP: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_TXOP; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case DIAG_READ: + ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + printf("diagdata: 0x%x\n", *diagdata); + break; +@@ -2110,7 +2110,7 @@ main (int argc, char **argv) + ((int *)buf)[0] = AR6000_XIOCTL_DIAG_WRITE; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_RD: +@@ -2118,7 +2118,7 @@ main (int argc, char **argv) + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) + { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + else + { +@@ -2139,14 +2139,14 @@ main (int argc, char **argv) + index--; + setKeepAlive->keepaliveInterval = atoi(argv[index]); + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_KEEPALIVE: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_KEEPALIVE; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + printf("Keepalive interval is %d secs and AP is %s\n", + getKeepAlive->keepaliveInterval, (getKeepAlive->configured ? +@@ -2156,63 +2156,63 @@ main (int argc, char **argv) + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_APPIE; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_MGMT_FRM_RX_FILTER: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_DBGLOG_CFG_MODULE: + ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_CFG_MODULE; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_DBGLOG_GET_DEBUG_LOGS: + ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_HOST_SLEEP_MODE: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_WOW_MODE: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WOW_MODE; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_ADD_WOW_PATTERN: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_ADD_WOW_PATTERN; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_DEL_WOW_PATTERN: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_DEL_WOW_PATTERN; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_GET_WOW_LIST: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_WOW_LIST; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case DIAG_DUMP_CHIP_MEM: +@@ -2225,7 +2225,7 @@ main (int argc, char **argv) + ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + printf("0x%04x:0x%04x\n", *diagaddr, *diagdata); + } +@@ -2237,21 +2237,21 @@ main (int argc, char **argv) + index = optind - 1; + *connectCtrlFlags = strtoul(argv[index], NULL, 0); + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case DUMP_HTC_CREDITS: + ((int *)buf)[0] = AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_AKMP_INFO: + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_AKMP_PARAMS; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_PMKID_LIST: +@@ -2259,7 +2259,7 @@ main (int argc, char **argv) + ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_PMKID_LIST; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + } else { + printf("No PMKIDs entered\n"); +@@ -2269,7 +2269,7 @@ main (int argc, char **argv) + ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_PMKID_LIST; + ifr.ifr_data = buf; + if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) { +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + case WMI_SET_BSS_PMKID_INFO: +@@ -2277,7 +2277,7 @@ main (int argc, char **argv) + iwr.u.data.length = sizeof(*pi_cmd); + if (ioctl(s, IEEE80211_IOCTL_ADDPMKID, &iwr) < 0) { + printf("ADDPMKID IOCTL Error\n"); +- err(1, ifr.ifr_name); ++ err(1, "%s", ifr.ifr_name); + } + break; + default: +-- +2.13.2 + diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb b/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb index a114d2f0dd2..c66572b1c19 100644 --- a/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb +++ b/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb @@ -6,9 +6,16 @@ SRCREV = "5394" PV = "0.0.0+svnr${SRCPV}" PR = "r2" -SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http" +SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http \ + file://0001-makefile-Pass-CFLAGS-to-compile.patch \ + file://0002-fix-err-API-to-have-format-string.patch \ + " S = "${WORKDIR}/AR6kSDK.build_sw.18/host/tools/wmiconfig" +CLEANBROKEN = "1" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + TARGET_CC_ARCH += "${LDFLAGS}" do_install() { diff --git a/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch b/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch deleted file mode 100644 index cfa2f6c7fe6..00000000000 --- a/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/configure.in 2014-08-18 01:25:43.911597023 -0700 -+++ b/configure.in 2014-08-18 01:26:27.763786629 -0700 -@@ -8,7 +8,7 @@ - AC_CONFIG_HEADERS([config.h]) - AC_CONFIG_SRCDIR([configure.in]) - --AM_INIT_AUTOMAKE([1.9 dist-bzip2 subdir-objects no-define]) -+AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 subdir-objects no-define]) - - AM_MAINTAINER_MODE - AC_PROG_CC diff --git a/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch b/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch deleted file mode 100644 index 4394e5257a0..00000000000 --- a/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch +++ /dev/null @@ -1,78 +0,0 @@ -diff -ur xchat-2.8.8-orig/plugins/perl/perl.c xchat-2.8.8/plugins/perl/perl.c ---- xchat-2.8.8-orig/plugins/perl/perl.c 2014-08-30 14:09:05.125116286 -0700 -+++ xchat-2.8.8/plugins/perl/perl.c 2014-08-30 14:09:45.281106532 -0700 -@@ -31,7 +31,7 @@ - #endif - - #undef PACKAGE --#include "../../config.h" /* for #define OLD_PERL */ -+#include /* for #define OLD_PERL */ - #include "xchat-plugin.h" - - static xchat_plugin *ph; /* plugin handle */ -diff -ur xchat-2.8.8-orig/src/common/network.c xchat-2.8.8/src/common/network.c ---- xchat-2.8.8-orig/src/common/network.c 2014-08-30 14:09:05.137116222 -0700 -+++ xchat-2.8.8/src/common/network.c 2014-08-30 14:13:52.729116323 -0700 -@@ -24,7 +24,7 @@ - #include - #include - --#include "../../config.h" /* grab USE_IPV6 and LOOKUPD defines */ -+#include /* grab USE_IPV6 and LOOKUPD defines */ - - #define WANTSOCKET - #define WANTARPA -diff -ur xchat-2.8.8-orig/src/common/ssl.c xchat-2.8.8/src/common/ssl.c ---- xchat-2.8.8-orig/src/common/ssl.c 2014-08-30 14:09:05.137116222 -0700 -+++ xchat-2.8.8/src/common/ssl.c 2014-08-30 14:14:08.449133899 -0700 -@@ -23,7 +23,7 @@ - #include /* strncpy() */ - #include "ssl.h" /* struct cert_info */ - #include "inet.h" --#include "../../config.h" /* HAVE_SNPRINTF */ -+#include /* HAVE_SNPRINTF */ - - #ifndef HAVE_SNPRINTF - #define snprintf g_snprintf -diff -ur xchat-2.8.8-orig/src/common/util.c xchat-2.8.8/src/common/util.c ---- xchat-2.8.8-orig/src/common/util.c 2014-08-30 14:09:05.133116243 -0700 -+++ xchat-2.8.8/src/common/util.c 2014-08-30 14:10:23.633116070 -0700 -@@ -41,7 +41,7 @@ - #include "xchatc.h" - #include - #include "util.h" --#include "../../config.h" -+#include - - #define WANTSOCKET - #include "inet.h" -diff -ur xchat-2.8.8-orig/src/common/xchat.h xchat-2.8.8/src/common/xchat.h ---- xchat-2.8.8-orig/src/common/xchat.h 2014-08-30 14:09:05.133116243 -0700 -+++ xchat-2.8.8/src/common/xchat.h 2014-08-30 14:13:42.797116472 -0700 -@@ -1,4 +1,4 @@ --#include "../../config.h" -+#include - - #include - #include /* need time_t */ -diff -ur xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h xchat-2.8.8/src/fe-gtk/fe-gtk.h ---- xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h 2014-08-30 14:09:05.129116272 -0700 -+++ xchat-2.8.8/src/fe-gtk/fe-gtk.h 2014-08-30 14:10:13.309115951 -0700 -@@ -1,4 +1,4 @@ --#include "../../config.h" -+#include - - #ifdef WIN32 - /* If you're compiling this for Windows, your release is un-official -diff -ur xchat-2.8.8-orig/src/fe-gtk/xtext.c xchat-2.8.8/src/fe-gtk/xtext.c ---- xchat-2.8.8-orig/src/fe-gtk/xtext.c 2014-08-30 14:09:05.129116272 -0700 -+++ xchat-2.8.8/src/fe-gtk/xtext.c 2014-08-30 14:10:00.313138254 -0700 -@@ -51,7 +51,7 @@ - #include - - #ifdef XCHAT --#include "../../config.h" /* can define USE_XLIB here */ -+#include /* can define USE_XLIB here */ - #else - #define USE_XLIB - #endif diff --git a/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch b/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch deleted file mode 100644 index c9bce6a9c44..00000000000 --- a/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- xchat-2.8.8.orig/src/common/xchat.h 2009-08-16 11:40:16.000000000 +0200 -+++ xchat-2.8.8/src/common/xchat.h 2012-05-06 08:30:16.125755497 +0200 -@@ -1,10 +1,6 @@ - #include "../../config.h" - --#include --#include --#include --#include --#include -+#include - #include /* need time_t */ - - #ifndef XCHAT_H ---- xchat-2.8.8.orig/src/common/servlist.c 2010-05-16 09:24:26.000000000 +0200 -+++ xchat-2.8.8/src/common/servlist.c 2012-05-06 08:30:45.681758019 +0200 -@@ -24,7 +24,6 @@ - #include - - #include "xchat.h" --#include - - #include "cfgfiles.h" - #include "fe.h" ---- xchat-2.8.8.orig/src/common/util.c 2009-08-16 11:40:16.000000000 +0200 -+++ xchat-2.8.8/src/common/util.c 2012-05-06 08:31:10.389760122 +0200 -@@ -39,7 +39,6 @@ - #include - #include "xchat.h" - #include "xchatc.h" --#include - #include - #include "util.h" - #include "../../config.h" ---- xchat-2.8.8.orig/src/common/text.c 2010-05-30 04:14:41.000000000 +0200 -+++ xchat-2.8.8/src/common/text.c 2012-05-06 08:31:22.300761137 +0200 -@@ -28,7 +28,6 @@ - #include - - #include "xchat.h" --#include - #include "cfgfiles.h" - #include "chanopt.h" - #include "plugin.h" diff --git a/meta-oe/recipes-support/xchat/xchat_2.8.8.bb b/meta-oe/recipes-support/xchat/xchat_2.8.8.bb deleted file mode 100644 index 6da11cd9469..00000000000 --- a/meta-oe/recipes-support/xchat/xchat_2.8.8.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "Full-featured IRC chat client with scripting support" -LICENSE = "GPLv2+" -HOMEPAGE = "http://www.xchat.org" -SECTION = "x11/network" - -DEPENDS = "libgcrypt zlib gtk+ libsexy" -DEPENDS += "gdk-pixbuf-native" - -LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b" - -PR = "r2" - -SRC_URI = "http://xchat.org/files/source/2.8/xchat-${PV}.tar.bz2 \ - file://glib-2.32.patch \ - file://automake-foreign.patch \ - file://fix-includes-for-separate-build.patch \ -" - -inherit autotools gettext pkgconfig - -PACKAGECONFIG ??= "dbus" -PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus-glib" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -PACKAGECONFIG[python] = "--enable-python,--disable-python,python" - -EXTRA_OECONF = "\ - --enable-maintainer-mode \ - --disable-perl \ - --disable-tcl \ -" - -RDEPENDS_${PN} += "dbus" -FILES_${PN} += "${datadir}/dbus-1" -FILES_${PN}-dbg += "${libdir}/xchat/plugins/.debug" - -SRC_URI[md5sum] = "6775c44f38e84d06c06c336b32c4a452" -SRC_URI[sha256sum] = "0d6d69437b5e1e45f3e66270fe369344943de8a1190e498fafa5296315a27db0" diff --git a/meta-oe/recipes-support/xdelta/files/compilation-fix.patch b/meta-oe/recipes-support/xdelta/files/compilation-fix.patch deleted file mode 100644 index 377a0436d3f..00000000000 --- a/meta-oe/recipes-support/xdelta/files/compilation-fix.patch +++ /dev/null @@ -1,29 +0,0 @@ -Upstream-Status: Pending -http://code.google.com/p/xdelta/issues/detail?id=174 - -Compilation fix: - -| testing/regtest.cc:763:3: error: no matching function for call to 'max(xoff_t, size_t&)' - - -Signed-off-by: Matthieu Crapet ---- - testing/regtest.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/testing/regtest.cc b/testing/regtest.cc -index 12b712e..b63a1f9 100644 ---- a/testing/regtest.cc -+++ b/testing/regtest.cc -@@ -12,7 +12,7 @@ public: - Options() : encode_srcwin_maxsz(1<<20), - block_size(Constants::BLOCK_SIZE), - size_known(false) { } -- size_t encode_srcwin_maxsz; -+ xoff_t encode_srcwin_maxsz; - size_t block_size; - bool size_known; - }; --- -1.8.5.4 - diff --git a/meta-oe/recipes-support/xdelta/files/with-liblzma-configure-option.patch b/meta-oe/recipes-support/xdelta/files/with-liblzma-configure-option.patch deleted file mode 100644 index 4b99290d2da..00000000000 --- a/meta-oe/recipes-support/xdelta/files/with-liblzma-configure-option.patch +++ /dev/null @@ -1,55 +0,0 @@ -Upstream-Status: Pending, Submitted -http://code.google.com/p/xdelta/issues/detail?id=178 - -xdelta3: add --with-liblzma configure option - -As xdelta3 can be compiled with or without liblzma external library, make it configurable. -Default is autodetect (unchanged behavior). - -Signed-off-by: Matthieu Crapet ---- - configure.ac | 21 +++++++++++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 3b430d7..8c53ba8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -8,8 +8,6 @@ AM_INIT_AUTOMAKE([1.9 no-define foreign tar-ustar]) - AX_CHECK_ALIGNED_ACCESS_REQUIRED - AC_PROG_CC - AC_PROG_CXX --AC_CHECK_HEADERS([lzma.h]) --AC_CHECK_LIB(lzma, lzma_easy_buffer_encode) - AC_CHECK_SIZEOF(size_t) - #AM_PATH_PYTHON(,, [:]) - #AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :]) -@@ -22,6 +20,25 @@ AC_ARG_ENABLE(debug-symbols, - AS_HELP_STRING(--enable-debug-symbols,[Build with debug symbols (default is NO)]),,enableval=no) - AM_CONDITIONAL([DEBUG_SYMBOLS], [test ${enableval} = "yes"]) - -+AC_ARG_WITH( -+ [liblzma], -+ [AC_HELP_STRING( -+ [--with-liblzma], -+ [build with liblzma support @<:@default=autodetect@:>@])], -+ [USE_LIBLZMA=$withval], -+ [USE_LIBLZMA=auto]) -+ -+if test "x$USE_LIBLZMA" != xno ; then -+ AC_CHECK_HEADERS([lzma.h],,[ -+ if test "x$with_liblzma" = xyes ; then -+ AC_MSG_FAILURE([liblzma includes was not found]) -+ fi]) -+ AC_CHECK_LIB([lzma], [lzma_easy_buffer_encode],,[ -+ if test "x$with_liblzma" = xyes ; then -+ AC_MSG_FAILURE([liblzma library was not found]) -+ fi]) -+fi -+ - AC_CONFIG_HEADERS([config.h]) - AC_CONFIG_FILES([Makefile]) - AC_OUTPUT --- -1.8.5.4 - diff --git a/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb b/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb new file mode 100644 index 00000000000..9669d9bbb68 --- /dev/null +++ b/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb @@ -0,0 +1,18 @@ +SUMMARY = "Xdelta is a tool for differential compression" +DESCRIPTION = "Open-source binary diff, differential compression tools, \ + VCDIFF (RFC 3284) delta compression." +HOMEPAGE = "http://xdelta.org/" +SECTION = "console/utils" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" +SRC_URI = "https://github.com/jmacd/xdelta-devel/releases/download/v${PV}/${BPN}-${PV}.tar.gz \ + " +SRC_URI[md5sum] = "445d8be2ac512113d5ca601ae8359626" +SRC_URI[sha256sum] = "0ccc9751ceaa4d90d6b06938a4deddb481816f5d9284bd07d2e728609cb300aa" + +inherit autotools + +# Optional secondary compression +PACKAGECONFIG ??= "" +PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz" diff --git a/meta-oe/recipes-support/xdelta/xdelta3_3.0.8.bb b/meta-oe/recipes-support/xdelta/xdelta3_3.0.8.bb deleted file mode 100644 index baa92e4bb2c..00000000000 --- a/meta-oe/recipes-support/xdelta/xdelta3_3.0.8.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Xdelta is a tool for differential compression" -DESCRIPTION = "Open-source binary diff, differential compression tools, \ - VCDIFF (RFC 3284) delta compression." -HOMEPAGE = "http://xdelta.org/" -SECTION = "console/utils" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" - -SRC_URI = "http://xdelta.googlecode.com/files/${BPN}-${PV}.tar.xz \ - file://compilation-fix.patch \ - file://with-liblzma-configure-option.patch \ -" -SRC_URI[md5sum] = "c3ae3286ce4193de8e03d5bcaccf3bc3" -SRC_URI[sha256sum] = "3a86f29c95664fb44b8a40ff22d9bcc3e87aa8c01f0ff75931a7fa78ed3d2e55" - -inherit autotools - -# Optional secondary compression -PACKAGECONFIG ??= "" -PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz" diff --git a/meta-oe/recipes-support/xdg-user-dirs/files/0001-explicitly-disable-man-generation-disable-documentat.patch b/meta-oe/recipes-support/xdg-user-dirs/files/0001-explicitly-disable-man-generation-disable-documentat.patch new file mode 100644 index 00000000000..b2b0e49988d --- /dev/null +++ b/meta-oe/recipes-support/xdg-user-dirs/files/0001-explicitly-disable-man-generation-disable-documentat.patch @@ -0,0 +1,31 @@ +From 41093d9634bfeddcaec866745d8d4022f4c6f8c1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 19 Feb 2017 21:01:39 +0100 +Subject: [PATCH] explicitly disable man generation --disable-documentation is + not enough +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index c01c54f..dcdf7a2 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,6 +1,6 @@ + NULL = + +-SUBDIRS=po man ++SUBDIRS=po + + INCLUDES = \ + -I$(top_srcdir) \ +-- +2.9.3 + diff --git a/meta-oe/recipes-support/xdg-user-dirs/files/xdg-user-dirs.desktop b/meta-oe/recipes-support/xdg-user-dirs/files/xdg-user-dirs.desktop new file mode 100644 index 00000000000..a9a22d3be71 --- /dev/null +++ b/meta-oe/recipes-support/xdg-user-dirs/files/xdg-user-dirs.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Name=User folders update +Exec=xdg-user-dirs-update +StartupNotify=false +NoDisplay=true +X-GNOME-Autostart-Phase=Initialization +X-KDE-autostart-phase=1 + diff --git a/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.15.bb b/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.15.bb new file mode 100644 index 00000000000..c05675976d5 --- /dev/null +++ b/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.15.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "xdg-user-dirs is a tool to help manage user directories like the desktop folder and the music folder" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = " \ + http://user-dirs.freedesktop.org/releases/${BPN}-${PV}.tar.gz \ + file://0001-explicitly-disable-man-generation-disable-documentat.patch \ + file://xdg-user-dirs.desktop \ +" +SRC_URI[md5sum] = "f5aaf5686ad7d8809a664bfb4566a54d" +SRC_URI[sha256sum] = "20b4a751f41d0554bce3e0ce5e8d934be98cc62d48f0b90a894c3e1916552786" + +inherit autotools gettext + +EXTRA_OECONF = "--disable-documentation" + +do_install_append () { + install -d ${D}${sysconfdir}/xdg/autostart + install -m 644 ${WORKDIR}/xdg-user-dirs.desktop ${D}${sysconfdir}/xdg/autostart +} + +CONFFILES_${PN} += " \ + ${sysconfdir}/xdg/user-dirs.conf \ + ${sysconfdir}/xdg/user-dirs.defaults \ +" diff --git a/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb b/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb deleted file mode 100644 index d9a03c6d406..00000000000 --- a/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "Command line XML toolkit" -DESCRIPTION = "XMLStarlet is a command line XML toolkit which can be used to \ - transform, query, validate, and edit XML documents and files \ - using simple set of shell commands in similar way it is done \ - for plain text files using grep/sed/awk/tr/diff/patch." -HOMEPAGE = "http://xmlstar.sourceforge.net/" -BUGTRACKER = "http://xmlstar.sourceforge.net/bugs/" - -SECTION = "console/utils" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=c04760d09e8b0fe73283d0cc9e8bea53" - -DEPENDS = "libxml2 libxslt" - -SRC_URI = "${SOURCEFORGE_MIRROR}/xmlstar/${BP}.tar.gz \ - file://configure.ac.patch \ - file://0001-usage2c.awk-fix-wrong-basename-regexp.patch" -SRC_URI[md5sum] = "0c6db295d0cf9ff0d439edb755b7e8f6" -SRC_URI[sha256sum] = "47b4ed042ea2909257f2a386001af49fceb303f84da7214779ccf99fffc6bbba" - -inherit autotools - -# doc build: requires (native) xstlproc, fop, pdf2ps -EXTRA_OECONF="--disable-build-docs \ - --with-libxml-prefix=${STAGING_LIBDIR}/.. \ - --with-libxslt-prefix=${STAGING_LIBDIR}/.." diff --git a/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb b/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb new file mode 100644 index 00000000000..e3d52e616ac --- /dev/null +++ b/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb @@ -0,0 +1,26 @@ +SUMMARY = "Command line XML toolkit" +DESCRIPTION = "XMLStarlet is a command line XML toolkit which can be used to \ + transform, query, validate, and edit XML documents and files \ + using simple set of shell commands in similar way it is done \ + for plain text files using grep/sed/awk/tr/diff/patch." +HOMEPAGE = "http://xmlstar.sourceforge.net/" +BUGTRACKER = "http://xmlstar.sourceforge.net/bugs/" + +SECTION = "console/utils" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c04760d09e8b0fe73283d0cc9e8bea53" + +DEPENDS = "libxml2 libxslt" + +SRC_URI = "${SOURCEFORGE_MIRROR}/xmlstar/${BP}.tar.gz \ + file://configure.ac.patch \ + file://0001-usage2c.awk-fix-wrong-basename-regexp.patch" +SRC_URI[md5sum] = "f3c5dfa3b1a2ee06cd57c255cc8b70a0" +SRC_URI[sha256sum] = "15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca" + +inherit autotools + +# doc build: requires (native) xstlproc, fop, pdf2ps +EXTRA_OECONF="--disable-build-docs \ + --with-libxml-prefix=${STAGING_LIBDIR}/.. \ + --with-libxslt-prefix=${STAGING_LIBDIR}/.." diff --git a/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch b/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch new file mode 100644 index 00000000000..04239bacdb2 --- /dev/null +++ b/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch @@ -0,0 +1,32 @@ +From 224507bc4b6e58f7a6e445bfebfb59d6b8d78bd6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 2 Dec 2016 17:38:51 -0800 +Subject: [PATCH] make relies GNU extentions + +We get errors like +`%'-style pattern rules are a GNU make extension + +Disable this warning, since we use gmake with OE +anyway + +Signed-off-by: Khem Raj +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 56d3dd0..9f85fd7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,7 @@ AC_PREREQ([2.61]) + AC_INIT([zbar], [0.10], [spadix@users.sourceforge.net]) + AC_CONFIG_AUX_DIR(config) + AC_CONFIG_MACRO_DIR(config) +-AM_INIT_AUTOMAKE([1.10 -Wall -Werror foreign subdir-objects std-options dist-bzip2]) ++AM_INIT_AUTOMAKE([1.10 -Wall -Werror -Wno-portability foreign subdir-objects std-options dist-bzip2]) + AC_CONFIG_HEADERS([include/config.h]) + AC_CONFIG_SRCDIR(zbar/scanner.c) + LT_PREREQ([2.2]) +-- +2.10.2 + diff --git a/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch b/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch new file mode 100644 index 00000000000..f7d8ba1e964 --- /dev/null +++ b/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch @@ -0,0 +1,51 @@ +From f842872244219d9881fbec77054702412b1e16f8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 2 Dec 2016 16:41:27 -0800 +Subject: [PATCH] undefine __va_arg_pack + +dprintf() is also a libc function. This fixes +the compile errors + +/usr/include/bits/stdio2.h:140:1: error: expected identifier or '(' before '{' token +| { + +Signed-off-by: Khem Raj +--- + zbar/debug.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/zbar/debug.h b/zbar/debug.h +index 482ca8d..68948f6 100644 +--- a/zbar/debug.h ++++ b/zbar/debug.h +@@ -23,6 +23,7 @@ + + /* varargs variations on compile time debug spew */ + ++#undef __va_arg_pack + #ifndef DEBUG_LEVEL + + # ifdef __GNUC__ +@@ -36,15 +37,14 @@ + #else + + # include +- + # ifdef __GNUC__ +-# define dprintf(level, args...) \ ++# define dprintf(level, format, args...) \ + if((level) <= DEBUG_LEVEL) \ +- fprintf(stderr, args) ++ fprintf(stderr, format, args) + # else +-# define dprintf(level, ...) \ ++# define dprintf(level, format, ...) \ + if((level) <= DEBUG_LEVEL) \ +- fprintf(stderr, __VA_ARGS__) ++ fprintf(stderr, format, __VA_ARGS__) + # endif + + #endif /* DEBUG_LEVEL */ +-- +2.10.2 + diff --git a/meta-oe/recipes-support/zbar/zbar_0.10.bb b/meta-oe/recipes-support/zbar/zbar_0.10.bb new file mode 100644 index 00000000000..6b6e501114f --- /dev/null +++ b/meta-oe/recipes-support/zbar/zbar_0.10.bb @@ -0,0 +1,28 @@ +DESRIPTION = "2D barcode scanner toolkit." +SECTION = "graphics" +LICENSE = "LGPL-2.1" + +DEPENDS = "pkgconfig intltool-native libpng jpeg" + +LIC_FILES_CHKSUM = "file://COPYING;md5=42bafded1b380c6fefbeb6c5cd5448d9" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.bz2 \ + file://0001-undefine-__va_arg_pack.patch \ + file://0001-make-relies-GNU-extentions.patch \ +" + +SRC_URI[md5sum] = "0fd61eb590ac1bab62a77913c8b086a5" +SRC_URI[sha256sum] = "234efb39dbbe5cef4189cc76f37afbe3cfcfb45ae52493bfe8e191318bdbadc6" + +inherit autotools pkgconfig + +PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[x11] = "--with-x,-without-x,libxcb libx11 libsm libxau libxext libxv libice libxdmcp" + +EXTRA_OECONF = " --without-imagemagick --without-qt --without-python --disable-video --without-gtk" + +do_install_append() { + #remove usr/bin if empty + rmdir ${D}${bindir} +} diff --git a/meta-oe/recipes-support/zile/zile_2.4.11.bb b/meta-oe/recipes-support/zile/zile_2.4.11.bb new file mode 100644 index 00000000000..d663f44b9e9 --- /dev/null +++ b/meta-oe/recipes-support/zile/zile_2.4.11.bb @@ -0,0 +1,25 @@ +SUMMARY = "Zile is lossy Emacs" +HOMEPAGE = "http://zile.sourceforge.net/" +DEPENDS = "ncurses bdwgc" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "http://ftp.gnu.org/gnu/zile/${BP}.tar.gz \ + file://remove-help2man.patch \ +" + +SRC_URI[md5sum] = "7a460ccec64e3bec2835697b2eae533c" +SRC_URI[sha256sum] = "1fd27bbddc61491b1fbb29a345d0d344734aa9e80cfa07b02892eedf831fa9cc" + +inherit autotools pkgconfig + +do_install_append() { + rm -rf ${D}${libdir}/charset.alias + rmdir --ignore-fail-on-non-empty ${D}${libdir} || true +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)}" + +PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," diff --git a/meta-oe/recipes-support/zile/zile_2.4.9.bb b/meta-oe/recipes-support/zile/zile_2.4.9.bb deleted file mode 100644 index 2551a80e92a..00000000000 --- a/meta-oe/recipes-support/zile/zile_2.4.9.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Zile is lossy Emacs" -HOMEPAGE = "http://zile.sourceforge.net/" -DEPENDS = "ncurses bdwgc" - -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -SRC_URI = "http://ftp.gnu.org/gnu/zile/${BP}.tar.gz \ - file://remove-help2man.patch \ -" - -SRC_URI[md5sum] = "84a0af58fb4fbe3af16bde2ef2b8f5ae" -SRC_URI[sha256sum] = "c71959c7aca02ac66be526ecccbc7954fb0ea7591ed3c13311a95e8f040b0049" - -inherit autotools diff --git a/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch b/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch new file mode 100644 index 00000000000..192e05f1cb8 --- /dev/null +++ b/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch @@ -0,0 +1,37 @@ +From 232daf5fca6fb52cced5e810f2601fe1a71b96d8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 16:49:50 -0700 +Subject: [PATCH 1/3] Add correct printf qualifier for off_t + +Signed-off-by: Khem Raj +--- + src/bios/ebda_region/ebda_region.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: git/src/bios/ebda_region/ebda_region.c +=================================================================== +--- git.orig/src/bios/ebda_region/ebda_region.c ++++ git/src/bios/ebda_region/ebda_region.c +@@ -83,9 +83,9 @@ static int ebda_test1(fwts_framework *fw + if ((entry != NULL) && + (entry->type == FWTS_MEMORY_MAP_RESERVED || + entry->type == FWTS_MEMORY_MAP_ACPI)) { +- fwts_passed(fw, "EBDA region mapped at 0x%lx and reserved as a %" PRId64 ++ fwts_passed(fw, "EBDA region mapped at 0x%jdx and reserved as a %" PRId64 + "K region in the %s table at 0x%" PRIx64 "..0x%" PRIx64 ".", +- ebda_addr, ++ (intmax_t)ebda_addr, + (entry->end_address - entry->start_address) / 1024, + memory_map_name, + entry->start_address, +@@ -93,8 +93,8 @@ static int ebda_test1(fwts_framework *fw + } else + fwts_failed(fw, LOG_LEVEL_MEDIUM, + "EBDAMappedNotReserved", +- "EBDA region mapped at 0x%lx but not reserved in the %s table.", +- ebda_addr, memory_map_name); ++ "EBDA region mapped at 0x%jdx but not reserved in the %s table.", ++ (intmax_t)ebda_addr, memory_map_name); + + return FWTS_OK; + } diff --git a/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch b/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch new file mode 100644 index 00000000000..8ad07893615 --- /dev/null +++ b/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch @@ -0,0 +1,48 @@ +From 100a107a53d5dc9b0554252ac5dbf2c9330615e9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Jun 2017 07:25:09 -0700 +Subject: [PATCH 1/3] Include poll.h instead of deprecated sys/poll.h + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/lib/src/fwts_ipmi.c | 3 ++- + src/lib/src/fwts_pipeio.c | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/lib/src/fwts_ipmi.c b/src/lib/src/fwts_ipmi.c +index cbb27611..70d11cfa 100644 +--- a/src/lib/src/fwts_ipmi.c ++++ b/src/lib/src/fwts_ipmi.c +@@ -18,10 +18,11 @@ + * + */ + ++#include ++ + #include + #include + #include +-#include + #include + #include + +diff --git a/src/lib/src/fwts_pipeio.c b/src/lib/src/fwts_pipeio.c +index fd719640..bdc5b2ea 100644 +--- a/src/lib/src/fwts_pipeio.c ++++ b/src/lib/src/fwts_pipeio.c +@@ -30,9 +30,9 @@ + #include + #include + #include ++#include + + #include +-#include + #include + #include + #include +-- +2.13.0 + diff --git a/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch b/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch new file mode 100644 index 00000000000..a3cc1ff8e5c --- /dev/null +++ b/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch @@ -0,0 +1,83 @@ +From 953cff93c85d3cfd5cbcac56e14443dc5f6e5fbd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 19 Oct 2016 01:57:16 +0000 +Subject: [PATCH] ignore constant-logical-operand warning with clang + +Signed-off-by: Khem Raj +--- + src/dmi/dmicheck/dmicheck.c | 3 +++ + src/lib/src/fwts_acpi_tables.c | 5 +++++ + src/uefi/uefirtauthvar/uefirtauthvar.c | 5 +++++ + 3 files changed, 13 insertions(+) + +diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c +index ecd98223..7fca4a64 100644 +--- a/src/dmi/dmicheck/dmicheck.c ++++ b/src/dmi/dmicheck/dmicheck.c +@@ -209,6 +209,8 @@ static const char *uuid_patterns[] = { + "0A0A0A0A-0A0A-0A0A-0A0A-0A0A0A0A0A0A", + NULL, + }; ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Wunneeded-internal-declaration" + + static const fwts_chassis_type_map fwts_dmi_chassis_type[] = { + { "Invalid", FWTS_SMBIOS_CHASSIS_INVALID }, +@@ -245,6 +247,7 @@ static const fwts_chassis_type_map fwts_dmi_chassis_type[] = { + { "Convertible", FWTS_SMBIOS_CHASSIS_CONVERTIBLE }, + { "Detachable", FWTS_SMBIOS_CHASSIS_DETACHABLE }, + }; ++#pragma clang diagnostic pop + + /* Remapping table from buggy version numbers to correct values */ + static const fwts_dmi_version dmi_versions[] = { +diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c +index 30b4060e..d5339bf7 100644 +--- a/src/lib/src/fwts_acpi_tables.c ++++ b/src/lib/src/fwts_acpi_tables.c +@@ -394,10 +394,14 @@ static int fwts_acpi_handle_fadt( + /* Determine FACS addr and load it. + * Will ignore the missing FACS in the hardware-reduced mode. + */ ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Waddress-of-packed-member" ++ + result = fwts_acpi_handle_fadt_tables(fw, fadt, + "FACS", "FIRMWARE_CTRL", "X_FIRMWARE_CTRL", + &fadt->firmware_control, &fadt->x_firmware_ctrl, + provenance); ++ + if (result != FWTS_OK) { + if ((result == FWTS_NULL_POINTER) && + fwts_acpi_is_reduced_hardware(fadt)) { +@@ -416,6 +420,7 @@ static int fwts_acpi_handle_fadt( + return FWTS_ERROR; + } + return FWTS_OK; ++#pragma clang diagnostic pop + } + + /* +diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c +index cdfd7aa3..001e8cc8 100644 +--- a/src/uefi/uefirtauthvar/uefirtauthvar.c ++++ b/src/uefi/uefirtauthvar/uefirtauthvar.c +@@ -142,6 +142,9 @@ static int uefirtauthvar_deinit(fwts_framework *fw) + return FWTS_OK; + } + ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Wconstant-logical-operand" ++ + static int check_fw_support(fwts_framework *fw, uint64_t status) + { + if ((status == EFI_INVALID_PARAMETER) && +@@ -172,6 +175,8 @@ static int check_fw_support(fwts_framework *fw, uint64_t status) + return FWTS_OK; + } + ++#pragma clang diagnostic pop ++ + /* + * Set the created authenticated variable, AuthVarCreate, + * and checking the data size and data. diff --git a/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch b/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch new file mode 100644 index 00000000000..35ce883a2ab --- /dev/null +++ b/meta-oe/recipes-test/fwts/fwts/0002-Add-C99-defined-format-for-printing-uint64_t.patch @@ -0,0 +1,53 @@ +From 25f18b9ac37960dc12a3b648a5c866bd56ef2cbe Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 16:50:23 -0700 +Subject: [PATCH 2/3] Add C99 defined format for printing uint64_t + +Signed-off-by: Khem Raj +--- + src/opal/reserv_mem.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/opal/reserv_mem.c b/src/opal/reserv_mem.c +index eeec2947..f0672e05 100644 +--- a/src/opal/reserv_mem.c ++++ b/src/opal/reserv_mem.c +@@ -185,7 +185,7 @@ static int reserv_mem_limits_test(fwts_framework *fw) + regions[j].start = (uint64_t)be64toh(ranges[2 * j]); + regions[j].len = (uint64_t)be64toh(ranges[2 * j + 1]); + fwts_log_info(fw, "Region name %80s" +- " start: 0x%08lx, len: 0x%08lx\n", ++ " start: 0x%08" PRIx64 ", len: 0x%08" PRIx64 "\n", + regions[j].name, regions[j].start, regions[j].len); + } + +@@ -248,7 +248,7 @@ static int reserv_mem_limits_test(fwts_framework *fw) + fwts_failed(fw, LOG_LEVEL_MEDIUM, + "ImageSizeMismatch", + "Mismatch in homer-image size, " +- "expected: 0x%lx, actual: 0x%lx", ++ "expected: 0x%" PRIx64 ", actual: 0x%" PRIx64 "", + configstruct.homer, regions[j].len); + ok = false; + } else +@@ -261,7 +261,7 @@ static int reserv_mem_limits_test(fwts_framework *fw) + fwts_failed(fw, LOG_LEVEL_MEDIUM, + "ImageSizeMismatch", + "Mismatch in slw-image size, " +- "expected: 0x%lx, actual: 0x%lx", ++ "expected: 0x%" PRIx64 ", actual: 0x%" PRIx64 "", + configstruct.slw, regions[j].len); + ok = false; + } else +@@ -274,7 +274,7 @@ static int reserv_mem_limits_test(fwts_framework *fw) + fwts_failed(fw, LOG_LEVEL_MEDIUM, + "ImageSizeMismatch", + "Mismatch in occ-common-area size, " +- "expected: 0x%lx, actual: 0x%lx", ++ "expected: 0x%" PRIx64", actual: 0x%" PRIx64"", + configstruct.occ_common, + regions[j].len); + ok = false; +-- +2.13.1 + diff --git a/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch b/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch new file mode 100644 index 00000000000..3b83ca57c80 --- /dev/null +++ b/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch @@ -0,0 +1,33 @@ +From 0e89127cd02ecd5ea4506b935cb2b59eb94107d2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Jun 2017 07:37:20 -0700 +Subject: [PATCH 2/3] Define __SWORD_TYPE if not defined by libc + +__SWORD_TYPE is internal to glibc, therefore +check and define it if needed e.g. on musl + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/lib/src/fwts_uefi.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/lib/src/fwts_uefi.c b/src/lib/src/fwts_uefi.c +index 1f9d31fa..2d925f8d 100644 +--- a/src/lib/src/fwts_uefi.c ++++ b/src/lib/src/fwts_uefi.c +@@ -59,6 +59,10 @@ typedef struct { + #define UEFI_IFACE_SYSFS (2) /* sysfs */ + #define UEFI_IFACE_EFIVARS (3) /* efivar fs */ + ++#ifndef __SWORD_TYPE ++typedef __typeof__( ((struct statfs *)0)->f_type ) __SWORD_TYPE; ++#endif ++ + /* File system magic numbers */ + #define PSTOREFS_MAGIC ((__SWORD_TYPE)0x6165676C) + #define EFIVARFS_MAGIC ((__SWORD_TYPE)0xde5e81e4) +-- +2.13.0 + diff --git a/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch b/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch new file mode 100644 index 00000000000..f84fbffd88d --- /dev/null +++ b/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch @@ -0,0 +1,30 @@ +From 0857269d5a053b5b4c31cfa01b6501526b24035f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Jun 2017 07:39:28 -0700 +Subject: [PATCH 3/3] Undefine PAGE_SIZE + +musl defines PAGE_SIZE and build complains +of multiple definitions + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + src/lib/src/fwts_acpi_tables.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c +index 1d4fc705..71023ad2 100644 +--- a/src/lib/src/fwts_acpi_tables.c ++++ b/src/lib/src/fwts_acpi_tables.c +@@ -42,6 +42,7 @@ + #define BIOS_START (0x000e0000) /* Start of BIOS memory */ + #define BIOS_END (0x000fffff) /* End of BIOS memory */ + #define BIOS_LENGTH (BIOS_END - BIOS_START) /* Length of BIOS memory */ ++#undef PAGE_SIZE + #define PAGE_SIZE (4096) + + static fwts_acpi_table_info tables[ACPI_MAX_TABLES]; +-- +2.13.0 + diff --git a/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch b/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch new file mode 100644 index 00000000000..3cd3fbbc1be --- /dev/null +++ b/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch @@ -0,0 +1,76 @@ +From d0d76820efe51dd404d381fc4c46544008e757dd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 8 Jun 2017 16:50:59 -0700 +Subject: [PATCH 3/3] use intptr_t to fix pointer-to-int-cast issues + +uintptr_t is guaranteed to be wide enough that +converting a void* to uintptr_t and back again +will yield the original pointer value + +Signed-off-by: Khem Raj +--- + src/lib/src/fwts_acpi_tables.c | 4 ++-- + src/lib/src/fwts_mmap.c | 2 +- + src/lib/src/fwts_smbios.c | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c +index 832f8d66..d0006529 100644 +--- a/src/lib/src/fwts_acpi_tables.c ++++ b/src/lib/src/fwts_acpi_tables.c +@@ -150,7 +150,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_get_rsdp(fwts_framework *fw, void *addr, + fwts_acpi_table_rsdp *rsdp = NULL; + *rsdp_len = 0; + +- if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED) ++ if ((mem = fwts_mmap((uintptr_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED) + return NULL; + + if (fwts_safe_memread(mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) { +@@ -456,7 +456,7 @@ static int fwts_acpi_load_tables_from_firmware(fwts_framework *fw) + if ((rsdp = fwts_acpi_get_rsdp(fw, rsdp_addr, &rsdp_len)) == NULL) + return FWTS_ERROR; + +- fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(off_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE); ++ fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(uintptr_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE); + + /* Load any tables from XSDT if it's valid */ + if (rsdp->xsdt_address) { +diff --git a/src/lib/src/fwts_mmap.c b/src/lib/src/fwts_mmap.c +index a09f688e..9fe6329a 100644 +--- a/src/lib/src/fwts_mmap.c ++++ b/src/lib/src/fwts_mmap.c +@@ -81,7 +81,7 @@ int fwts_munmap(void *mem, const size_t size) + off_t offset; + + page_size = fwts_page_size(); +- offset = ((off_t)(mem)) & (page_size - 1); ++ offset = ((uintptr_t)(mem)) & (page_size - 1); + + if (munmap((void *)((uint8_t *)mem - offset), size + offset) < 0) + return FWTS_ERROR; +diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c +index 8d0ea39b..63b4bf25 100644 +--- a/src/lib/src/fwts_smbios.c ++++ b/src/lib/src/fwts_smbios.c +@@ -54,7 +54,7 @@ static void *fwts_smbios_find_entry_uefi(fwts_framework *fw, fwts_smbios_entry * + if ((addr = fwts_scan_efi_systab("SMBIOS")) != NULL) { + fwts_smbios_entry *mapped_entry; + +- if ((mapped_entry = fwts_mmap((off_t)addr, sizeof(fwts_smbios_entry))) != FWTS_MAP_FAILED) { ++ if ((mapped_entry = fwts_mmap((uintptr_t)addr, sizeof(fwts_smbios_entry))) != FWTS_MAP_FAILED) { + *entry = *mapped_entry; + (void)fwts_munmap(mapped_entry, sizeof(fwts_smbios_entry)); + *type = FWTS_SMBIOS; +@@ -84,7 +84,7 @@ static void *fwts_smbios30_find_entry_uefi(fwts_framework *fw, fwts_smbios30_ent + if ((addr = fwts_scan_efi_systab("SMBIOS3")) != NULL) { + fwts_smbios30_entry *mapped_entry; + +- if ((mapped_entry = fwts_mmap((off_t)addr, sizeof(fwts_smbios30_entry))) != FWTS_MAP_FAILED) { ++ if ((mapped_entry = fwts_mmap((uintptr_t)addr, sizeof(fwts_smbios30_entry))) != FWTS_MAP_FAILED) { + *entry = *mapped_entry; + (void)fwts_munmap(mapped_entry, sizeof(fwts_smbios30_entry)); + return addr; +-- +2.13.1 + diff --git a/meta-oe/recipes-test/fwts/fwts_git.bb b/meta-oe/recipes-test/fwts/fwts_git.bb index b943d6d48e6..87a23af19f1 100644 --- a/meta-oe/recipes-test/fwts/fwts_git.bb +++ b/meta-oe/recipes-test/fwts/fwts_git.bb @@ -3,22 +3,37 @@ DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=deb8af5388e838d133eaa036f4d1496f" +LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519" -PV = "14.12.00" +PV = "17.03.00+git${SRCPV}" -SRCREV = "efc18d16294f492b7f72bba64344b2eed50e6a69" -SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git" +SRCREV = "0153ea51cb648b3067a1b327eee6a075b6cfa330" +SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git \ + file://0001-ignore-constant-logical-operand-warning-with-clang.patch \ + file://0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch \ + file://0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ + file://0003-Undefine-PAGE_SIZE.patch \ + file://0001-Add-correct-printf-qualifier-for-off_t.patch \ + file://0002-Add-C99-defined-format-for-printing-uint64_t.patch \ + file://0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ + " S = "${WORKDIR}/git" -DEPENDS = "libpcre json-c glib-2.0" +COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" -inherit autotools-brokensep +DEPENDS = "libpcre json-c glib-2.0 dtc" +DEPENDS_append_libc-musl = " libexecinfo" -CFLAGS += "-I${STAGING_INCDIR}/json-c" +inherit autotools pkgconfig + +CFLAGS += "-I${STAGING_INCDIR}/json-c -Wno-error=unknown-pragmas" +LDFLAGS_append_libc-musl = " -lexecinfo" FILES_${PN} += "${libdir}/fwts/lib*${SOLIBS}" FILES_${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" FILES_${PN}-staticdev += "${libdir}/fwts/lib*a" FILES_${PN}-dbg += "${libdir}/fwts/.debug" + +TOOLCHAIN = "gcc" + diff --git a/meta-oe/recipes-test/gmock/gmock/cmake-Add-install-command-for-libraries-and-headers.patch b/meta-oe/recipes-test/gmock/gmock/cmake-Add-install-command-for-libraries-and-headers.patch deleted file mode 100644 index 92a63936551..00000000000 --- a/meta-oe/recipes-test/gmock/gmock/cmake-Add-install-command-for-libraries-and-headers.patch +++ /dev/null @@ -1,40 +0,0 @@ -From ba0a7d65c918cb7e3f2073553c4cc7af5858ed03 Mon Sep 17 00:00:00 2001 -From: Otavio Salvador -Date: Thu, 31 Jul 2014 16:54:00 -0300 -Subject: [PATCH] cmake: Add install command for libraries and headers -Organization: O.S. Systems Software LTDA. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Otavio Salvador ---- - CMakeLists.txt | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 572d044..90e797a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -63,6 +63,8 @@ include_directories("${gmock_SOURCE_DIR}/include" - # Test sources. - "${gtest_SOURCE_DIR}") - -+install(DIRECTORY ${gmock_SOURCE_DIR}/include/gmock DESTINATION include) -+ - ######################################################################## - # - # Defines the gmock & gmock_main libraries. User tests should link -@@ -82,6 +84,10 @@ cxx_library(gmock_main - src/gmock-all.cc - src/gmock_main.cc) - -+ -+install(TARGETS gmock DESTINATION lib) -+install(TARGETS gmock_main DESTINATION lib) -+ - ######################################################################## - # - # Google Mock's own tests. --- -1.9.1 - diff --git a/meta-oe/recipes-test/gmock/gmock/cmake-gmock.pc.in-Add-pkg-config-support.patch b/meta-oe/recipes-test/gmock/gmock/cmake-gmock.pc.in-Add-pkg-config-support.patch deleted file mode 100644 index aa38fe49ffd..00000000000 --- a/meta-oe/recipes-test/gmock/gmock/cmake-gmock.pc.in-Add-pkg-config-support.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 45661183a7c78d8c4f75adcf53c6ddd663dc8b2d Mon Sep 17 00:00:00 2001 -From: Mario Domenech Goulart -Date: Mon, 20 Oct 2014 17:12:58 -0200 -Subject: [PATCH] CMakeLists, gmock.pc.in: Add pkg-config support -Organization: O.S. Systems Software LTDA. - -Signed-off-by: Mario Domenech Goulart ---- - CMakeLists.txt | 7 ++++++- - gmock.pc.in | 9 +++++++++ - 2 files changed, 15 insertions(+), 1 deletion(-) - create mode 100644 gmock.pc.in - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 90e797a..98fd824 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -27,6 +27,9 @@ if (COMMAND pre_project_set_up_hermetic_build) - pre_project_set_up_hermetic_build() - endif() - -+# pkg-config support -+configure_file("gmock.pc.in" "gmock.pc" @ONLY) -+ - ######################################################################## - # - # Project-wide settings -@@ -87,7 +90,9 @@ cxx_library(gmock_main - - install(TARGETS gmock DESTINATION lib) - install(TARGETS gmock_main DESTINATION lib) -- -+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gmock.pc" -+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/" -+) - ######################################################################## - # - # Google Mock's own tests. -diff --git a/gmock.pc.in b/gmock.pc.in -new file mode 100644 -index 0000000..08ad8d2 ---- /dev/null -+++ b/gmock.pc.in -@@ -0,0 +1,9 @@ -+Name: libgmock -+Version: 1.7.0 -+Description: Google's framework for writing C++ tests on a variety of platforms -+ -+prefix=@CMAKE_INSTALL_PREFIX@ -+includedir=${prefix}/include -+libdir=${prefix}/lib -+Cflags:-I${includedir}/gmock -+Libs: -L${libdir} -lgmock -lgmock_main --- -1.9.1 - diff --git a/meta-oe/recipes-test/gmock/gmock_1.7.0.bb b/meta-oe/recipes-test/gmock/gmock_1.7.0.bb deleted file mode 100644 index bd5cf4e2001..00000000000 --- a/meta-oe/recipes-test/gmock/gmock_1.7.0.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "Google C++ Mocking Framework" -SECTION = "libs" -HOMEPAGE = "http://code.google.com/p/googlemock/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbd27594afd089daa160d3a16dd515a" - -SRC_URI = "\ - http://googlemock.googlecode.com/files/${BPN}-${PV}.zip \ - file://cmake-Add-install-command-for-libraries-and-headers.patch \ - file://cmake-gmock.pc.in-Add-pkg-config-support.patch \ -" - -SRC_URI[md5sum] = "073b984d8798ea1594f5e44d85b20d66" -SRC_URI[sha256sum] = "26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b" - -inherit lib_package cmake - -ALLOW_EMPTY_${PN} = "1" -ALLOW_EMPTY_${PN}-dbg = "1" - -RDEPENDS_${PN}-dev += "${PN}-staticdev" - -BBCLASSEXTEND = "nativesdk" diff --git a/meta-oe/recipes-test/gtest/gtest/Add-pkg-config-support.patch b/meta-oe/recipes-test/gtest/gtest/Add-pkg-config-support.patch new file mode 100644 index 00000000000..4c8977b499e --- /dev/null +++ b/meta-oe/recipes-test/gtest/gtest/Add-pkg-config-support.patch @@ -0,0 +1,106 @@ +From ec9256bb704e94f41407fc8ace6a580491430196 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Thu, 15 Dec 2016 04:35:41 -0800 +Subject: [PATCH] Add pkg-config support + +Signed-off-by: Mario Domenech Goulart +Signed-off-by: Rodrigo Caimi +Signed-off-by: Andre McCurdy +--- + googlemock/CMakeLists.txt | 9 +++++++-- + googlemock/gmock.pc.in | 9 +++++++++ + googletest/CMakeLists.txt | 9 +++++++-- + googletest/gtest.pc.in | 9 +++++++++ + 4 files changed, 32 insertions(+), 4 deletions(-) + create mode 100644 googlemock/gmock.pc.in + create mode 100644 googletest/gtest.pc.in + +diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt +index beb259a..f17e2d7 100644 +--- a/googlemock/CMakeLists.txt ++++ b/googlemock/CMakeLists.txt +@@ -27,6 +27,9 @@ if (COMMAND pre_project_set_up_hermetic_build) + pre_project_set_up_hermetic_build() + endif() + ++# pkg-config support ++configure_file("gmock.pc.in" "gmock.pc" @ONLY) ++ + ######################################################################## + # + # Project-wide settings +@@ -104,9 +107,11 @@ endif() + # + # Install rules + install(TARGETS gmock gmock_main +- DESTINATION lib) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(DIRECTORY ${gmock_SOURCE_DIR}/include/gmock +- DESTINATION include) ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gmock.pc" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/") + + ######################################################################## + # +diff --git a/googlemock/gmock.pc.in b/googlemock/gmock.pc.in +new file mode 100644 +index 0000000..04bc0b4 +--- /dev/null ++++ b/googlemock/gmock.pc.in +@@ -0,0 +1,9 @@ ++Name: libgmock ++Version: 1.8.0 ++Description: Google's framework for writing C++ tests on a variety of platforms ++ ++prefix=@CMAKE_INSTALL_PREFIX@ ++includedir=@CMAKE_INSTALL_INCLUDEDIR@ ++libdir=@CMAKE_INSTALL_LIBDIR@ ++Cflags:-I${includedir}/gmock ++Libs: -L${libdir} -lgmock -lgmock_main +diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt +index 621d0f0..58aaf54 100644 +--- a/googletest/CMakeLists.txt ++++ b/googletest/CMakeLists.txt +@@ -34,6 +34,9 @@ if (COMMAND pre_project_set_up_hermetic_build) + pre_project_set_up_hermetic_build() + endif() + ++# pkg-config support ++configure_file("gtest.pc.in" "gtest.pc" @ONLY) ++ + ######################################################################## + # + # Project-wide settings +@@ -103,9 +106,11 @@ endif() + # + # Install rules + install(TARGETS gtest gtest_main +- DESTINATION lib) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(DIRECTORY ${gtest_SOURCE_DIR}/include/gtest +- DESTINATION include) ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gtest.pc" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/") + + ######################################################################## + # +diff --git a/googletest/gtest.pc.in b/googletest/gtest.pc.in +new file mode 100644 +index 0000000..fb95152 +--- /dev/null ++++ b/googletest/gtest.pc.in +@@ -0,0 +1,9 @@ ++Name: libgtest ++Version: 1.8.0 ++Description: Google's framework for writing C++ tests on a variety of platforms ++ ++prefix=@CMAKE_INSTALL_PREFIX@ ++includedir=@CMAKE_INSTALL_INCLUDEDIR@ ++libdir=@CMAKE_INSTALL_LIBDIR@ ++Cflags:-I${includedir}/gtest ++Libs: -L${libdir} -lgtest -lgtest_main +-- +1.9.1 + diff --git a/meta-oe/recipes-test/gtest/gtest/CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch b/meta-oe/recipes-test/gtest/gtest/CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch deleted file mode 100644 index 1ece136b6a0..00000000000 --- a/meta-oe/recipes-test/gtest/gtest/CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch +++ /dev/null @@ -1,55 +0,0 @@ -From d4b25ce723812faf78d8ee038b7cbed00cbba682 Mon Sep 17 00:00:00 2001 -From: Rodrigo Caimi -Date: Tue, 7 Oct 2014 15:37:10 -0300 -Subject: [PATCH] CMakeLists, gtest.pc.in: Add pkg-config support to gtest - 1.7.0 - -Signed-off-by: Rodrigo Caimi ---- - CMakeLists.txt | 6 ++++++ - gtest.pc.in | 9 +++++++++ - 2 files changed, 15 insertions(+) - create mode 100644 gtest.pc.in - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 281c4c2..e4354a8 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -29,6 +29,9 @@ if (COMMAND pre_project_set_up_hermetic_build) - pre_project_set_up_hermetic_build() - endif() - -+# pkg-config support -+configure_file("gtest.pc.in" "gtest.pc" @ONLY) -+ - ######################################################################## - # - # Project-wide settings -@@ -75,6 +78,9 @@ target_link_libraries(gtest_main gtest) - - install(TARGETS gtest DESTINATION lib) - install(TARGETS gtest_main DESTINATION lib) -+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gtest.pc" -+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/" -+) - - ######################################################################## - # -diff --git a/gtest.pc.in b/gtest.pc.in -new file mode 100644 -index 0000000..57b1049 ---- /dev/null -+++ b/gtest.pc.in -@@ -0,0 +1,9 @@ -+Name: libgtest -+Version: 1.7.0 -+Description: Google's framework for writing C++ tests on a variety of platforms -+ -+prefix=@CMAKE_INSTALL_PREFIX@ -+includedir=${prefix}/include -+libdir=${prefix}/lib -+Cflags:-I${includedir}/gtest -+Libs: -L${libdir} -lgtest -lgtest_main --- -1.9.1 - diff --git a/meta-oe/recipes-test/gtest/gtest/cmake-Add-install-command-for-libraries-and-headers.patch b/meta-oe/recipes-test/gtest/gtest/cmake-Add-install-command-for-libraries-and-headers.patch deleted file mode 100644 index 0c160b02a9f..00000000000 --- a/meta-oe/recipes-test/gtest/gtest/cmake-Add-install-command-for-libraries-and-headers.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5318983562be6babeb5a6996e7dda4b31acfdba8 Mon Sep 17 00:00:00 2001 -From: Otavio Salvador -Date: Wed, 30 Jul 2014 16:49:53 -0300 -Subject: [PATCH] cmake: Add install command for libraries and headers -Organization: O.S. Systems Software LTDA. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Otavio Salvador ---- - CMakeLists.txt | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 57470c8..281c4c2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -56,6 +56,8 @@ include_directories( - ${gtest_SOURCE_DIR}/include - ${gtest_SOURCE_DIR}) - -+install(DIRECTORY ${gtest_SOURCE_DIR}/include/gtest DESTINATION include) -+ - # Where Google Test's libraries can be found. - link_directories(${gtest_BINARY_DIR}/src) - -@@ -71,6 +73,9 @@ cxx_library(gtest "${cxx_strict}" src/gtest-all.cc) - cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc) - target_link_libraries(gtest_main gtest) - -+install(TARGETS gtest DESTINATION lib) -+install(TARGETS gtest_main DESTINATION lib) -+ - ######################################################################## - # - # Samples on how to link user tests with gtest or gtest_main. --- -1.9.1 - diff --git a/meta-oe/recipes-test/gtest/gtest_1.7.0.bb b/meta-oe/recipes-test/gtest/gtest_1.7.0.bb deleted file mode 100644 index 9f148d549ea..00000000000 --- a/meta-oe/recipes-test/gtest/gtest_1.7.0.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "Google's framework for writing C++ tests" -HOMEPAGE = "http://code.google.com/p/googletest/" -SECTION = "libs" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbd27594afd089daa160d3a16dd515a" - -SRC_URI = "\ - http://googletest.googlecode.com/files/${BPN}-${PV}.zip \ - file://cmake-Add-install-command-for-libraries-and-headers.patch \ - file://CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch \ -" - -SRC_URI[md5sum] = "2d6ec8ccdf5c46b05ba54a9fd1d130d7" -SRC_URI[sha256sum] = "247ca18dd83f53deb1328be17e4b1be31514cedfc1e3424f672bf11fd7e0d60d" - -inherit lib_package cmake - -ALLOW_EMPTY_${PN} = "1" -ALLOW_EMPTY_${PN}-dbg = "1" - -RDEPENDS_${PN}-dev += "${PN}-staticdev" - -BBCLASSEXTEND = "nativesdk" diff --git a/meta-oe/recipes-test/gtest/gtest_1.8.0.bb b/meta-oe/recipes-test/gtest/gtest_1.8.0.bb new file mode 100644 index 00000000000..483dc1f2e9e --- /dev/null +++ b/meta-oe/recipes-test/gtest/gtest_1.8.0.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Google's framework for writing C++ tests" +HOMEPAGE = "https://github.com/google/googletest" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://googlemock/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \ + file://googletest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a" + +PROVIDES += "gmock" + +SRC_URI = "\ + https://github.com/google/googletest/archive/release-${PV}.tar.gz \ + file://Add-pkg-config-support.patch \ +" + +SRC_URI[md5sum] = "16877098823401d1bf2ed7891d7dce36" +SRC_URI[sha256sum] = "58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8" + +S = "${WORKDIR}/googletest-release-${PV}" + +inherit cmake + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-dbg = "1" + +RDEPENDS_${PN}-dev += "${PN}-staticdev" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch b/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch new file mode 100644 index 00000000000..3ed7efc7e09 --- /dev/null +++ b/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch @@ -0,0 +1,170 @@ +From d50203b233cb8820bf83b6651c2a8487e0db1fcf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= +Date: Tue, 17 Oct 2017 10:13:20 -0500 +Subject: [PATCH] Several changes to fix musl build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +stress-{context, stackmmap}.c: Set tests to non-implemented because uses +swapcontext, musl provide the definition but not the implementation due + to that functions are pre-POSIX and set to be deprecated. + stress-{resources, pty}.c: Doesn't include termio.h and remove stress + operations that uses struct termio, musl doesn't provide that struct. +stress-pthread.c: Change pthread_yield to sched_yield to be more compatible. +stress-malloc.c: Check for definition of M_MMAP_THRESHOLD musl doesn't + ptovide that constant. +stress-madvise.c: Add static poision_count integer, definition of + MADV_SOFT_OFFLINE doesn't grauntee MADV_HWPOISON to be defined. +cache.c: Define GLOB_ONLYDIR not available on MUSL. + +Signed-off-by: Aníbal Limón +Upstream-status: Pending +--- + cache.c | 4 ++++ + stress-context.c | 2 +- + stress-madvise.c | 1 + + stress-malloc.c | 2 +- + stress-pthread.c | 2 +- + stress-pty.c | 18 ------------------ + stress-resources.c | 1 - + stress-stackmmap.c | 2 +- + 8 files changed, 9 insertions(+), 23 deletions(-) + +diff --git a/cache.c b/cache.c +index e01fad0..27870ee 100644 +--- a/cache.c ++++ b/cache.c +@@ -27,6 +27,10 @@ typedef struct { + + #include + ++#ifndef GLOB_ONLYDIR ++#define GLOB_ONLYDIR 0x100 ++#endif ++ + #if defined(__linux__) + #define SYS_CPU_PREFIX "/sys/devices/system/cpu" + #define GLOB_PATTERN SYS_CPU_PREFIX "/cpu[0-9]*" +diff --git a/stress-context.c b/stress-context.c +index c5f50ed..67209e5 100644 +--- a/stress-context.c ++++ b/stress-context.c +@@ -24,7 +24,7 @@ + */ + #include "stress-ng.h" + +-#if !defined(__OpenBSD__) ++#if !defined(__OpenBSD__) && False + + #include + +diff --git a/stress-madvise.c b/stress-madvise.c +index 43ea454..2e1f8ee 100644 +--- a/stress-madvise.c ++++ b/stress-madvise.c +@@ -141,6 +141,7 @@ static int stress_random_advise(const args_t *args) + #if defined(MADV_SOFT_OFFLINE) + if (advise == MADV_SOFT_OFFLINE) { + static int soft_offline_count; ++ static int poison_count; + + /* ..and minimize number of soft offline pages */ + if ((soft_offline_count >= NUM_SOFT_OFFLINE_MAX) || +diff --git a/stress-malloc.c b/stress-malloc.c +index 8dbe5cc..f505f32 100644 +--- a/stress-malloc.c ++++ b/stress-malloc.c +@@ -99,7 +99,7 @@ int stress_malloc(const args_t *args) + malloc_max = MIN_MALLOC_MAX; + } + +-#if defined(__GNUC__) && defined(__linux__) ++#if defined(__GNUC__) && defined(__linux__) && defined(M_MMAP_THRESHOLD) + if (get_setting("malloc-threshold", &malloc_threshold)) + (void)mallopt(M_MMAP_THRESHOLD, (int)malloc_threshold); + #endif +diff --git a/stress-pthread.c b/stress-pthread.c +index 323a1d4..8269f4c 100644 +--- a/stress-pthread.c ++++ b/stress-pthread.c +@@ -139,7 +139,7 @@ static void *stress_pthread_func(void *parg) + break; + } + #if !defined(__NetBSD__) && !defined(__sun__) +- (void)pthread_yield(); ++ (void)sched_yield(); + #endif + } + ret = pthread_mutex_unlock(&mutex); +diff --git a/stress-pty.c b/stress-pty.c +index 8c3edf8..518f118 100644 +--- a/stress-pty.c ++++ b/stress-pty.c +@@ -26,7 +26,6 @@ + + #if defined(__linux__) + +-#include + #include + + typedef struct { +@@ -108,7 +107,6 @@ int stress_pty(const args_t *args) + */ + for (i = 0; i < n; i++) { + struct termios ios; +- struct termio io; + struct winsize ws; + int arg; + +@@ -130,22 +128,6 @@ int stress_pty(const args_t *args) + if (ioctl(ptys[i].slave, TCSETSF, &ios) < 0) + pr_fail_err("ioctl TCSETSF on slave pty"); + #endif +-#if defined(TCGETA) +- if (ioctl(ptys[i].slave, TCGETA, &io) < 0) +- pr_fail_err("ioctl TCGETA on slave pty"); +-#endif +-#if defined(TCSETA) +- if (ioctl(ptys[i].slave, TCSETA, &io) < 0) +- pr_fail_err("ioctl TCSETA on slave pty"); +-#endif +-#if defined(TCSETAW) +- if (ioctl(ptys[i].slave, TCSETAW, &io) < 0) +- pr_fail_err("ioctl TCSETAW on slave pty"); +-#endif +-#if defined(TCSETAF) +- if (ioctl(ptys[i].slave, TCSETAF, &io) < 0) +- pr_fail_err("ioctl TCSETAF on slave pty"); +-#endif + #if defined(TIOCGLCKTRMIOS) + if (ioctl(ptys[i].slave, TIOCGLCKTRMIOS, &ios) < 0) + pr_fail_err("ioctl TIOCGLCKTRMIOS on slave pty"); +diff --git a/stress-resources.c b/stress-resources.c +index 182e176..880433d 100644 +--- a/stress-resources.c ++++ b/stress-resources.c +@@ -31,7 +31,6 @@ + #include + #endif + #if defined(__linux__) +-#include + #include + #endif + #if defined(HAVE_LIB_PTHREAD) && defined(__linux__) +diff --git a/stress-stackmmap.c b/stress-stackmmap.c +index e1378e2..00d1268 100644 +--- a/stress-stackmmap.c ++++ b/stress-stackmmap.c +@@ -24,7 +24,7 @@ + */ + #include "stress-ng.h" + +-#if defined(__linux__) ++#if defined(__linux__) && False + + #include + +-- +2.11.0 + diff --git a/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb b/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb new file mode 100644 index 00000000000..dc5b2e8ebe0 --- /dev/null +++ b/meta-oe/recipes-test/stress-ng/stress-ng_0.08.17.bb @@ -0,0 +1,20 @@ +SUMMARY = "A tool to load and stress a computer system" +HOMEPAGE = "http://kernel.ubuntu.com/~cking/stress-ng/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "zlib libaio" + +SRC_URI = "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.gz \ + " +SRC_URI_append_libc-musl = "file://0001-Several-changes-to-fix-musl-build.patch" + +SRC_URI[md5sum] = "e0f6497a8c06f5d652bc2ad88d449c12" +SRC_URI[sha256sum] = "37cc73e42f5bdb0e0571ba88f6a69b8f05ee28e51afcafc2231c1058b1a5dd18" + +CFLAGS += "-Wall -Wextra -DVERSION='"$(VERSION)"'" + +do_install_append() { + install -d ${D}${bindir} + install -m 755 ${S}/stress-ng ${D}${bindir}/stress-ng +} diff --git a/meta-perl/README b/meta-perl/README index 68160a628ce..67f291079f3 100644 --- a/meta-perl/README +++ b/meta-perl/README @@ -80,7 +80,9 @@ Send patches / pull requests to openembedded-devel@lists.openembedded.org with When sending single patches, please using something like: 'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-perl][PATCH' -Layer maintainer: Hongxu Jia +Layer maintainers: + Hongxu Jia + Tim "moto-timo" Orling License ------- diff --git a/meta-perl/conf/layer.conf b/meta-perl/conf/layer.conf index 0485ac8df1c..a861c3edb79 100644 --- a/meta-perl/conf/layer.conf +++ b/meta-perl/conf/layer.conf @@ -13,4 +13,4 @@ BBFILE_PRIORITY_perl-layer = "6" # cause compatibility issues with other layers LAYERVERSION_perl-layer = "1" -LAYERDEPENDS_perl-layer = "core" +LAYERDEPENDS_perl-layer = "core openembedded-layer" diff --git a/meta-perl/recipes-extended/logcheck/files/99_logcheck b/meta-perl/recipes-extended/logcheck/files/99_logcheck new file mode 100644 index 00000000000..4de33aca340 --- /dev/null +++ b/meta-perl/recipes-extended/logcheck/files/99_logcheck @@ -0,0 +1,2 @@ +# +d logcheck logcheck 0755 /var/lock/logcheck none diff --git a/meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb b/meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb new file mode 100644 index 00000000000..b8766a7c7f0 --- /dev/null +++ b/meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb @@ -0,0 +1,79 @@ +SUMMARY = "Analyzes log files and sends noticeable events as email" +DESCRIPTION = "\ +Logcheck is a simple utility which is designed to allow a system administrator \ +to view the log-files which are produced upon hosts under their control. \ +It does this by mailing summaries of the log-files to them, after first \ +filtering out "normal" entries. \ +Normal entries are entries which match one of the many included regular \ +expression files contain in the database." +SECTION = "Applications/System" +HOMEPAGE = "http://logcheck.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c93c0550bd3173f4504b2cbd8991e50b" + +SRC_URI = "git://git.debian.org/git/logcheck/logcheck.git \ + file://99_logcheck \ +" +SRCREV = "0a5865d80fa34c55387a1917a3e6f885bcff7f1d" + +S = "${WORKDIR}/git" + +inherit useradd + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "-m -g ${BPN} -G adm -r -d ${localstatedir}/lib/${BPN} \ + -s /bin/false -c 'logcheck account' ${BPN}" +GROUPADD_PARAM_${PN} = "-r ${BPN}" + +do_install() { + # Fix QA Issue + sed -i '/install -d $(DESTDIR)\/var\/lock\/logcheck/s/^/#/' Makefile + + # "make install" do not install the manpages. Install them manually. + install -m 755 -d ${D}${mandir}/man1 + install -m 755 -d ${D}${mandir}/man8 + install -m 644 docs/logcheck-test.1 ${D}${mandir}/man1/ + install -m 644 docs/logtail.8 ${D}${mandir}/man8/ + install -m 644 docs/logtail2.8 ${D}${mandir}/man8/ + + install -m 755 -d ${D}${sysconfdir}/cron.d + install -m 644 debian/logcheck.cron.d ${D}${sysconfdir}/cron.d/logcheck + install -m 755 -d ${D}/var/lib/logcheck + + oe_runmake install DESTDIR=${D} + + # install header.txt for generated mails + install -m 0644 ${S}/debian/header.txt ${D}${sysconfdir}/${BPN} + + chown -R ${BPN}:${BPN} ${D}${localstatedir}/lib/${BPN} + chown -R root:${BPN} ${D}${sysconfdir}/${BPN} + + # Don't install /var/lock when populating rootfs. Do it through volatile + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/99_logcheck ${D}${sysconfdir}/default/volatiles + fi + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /var/lock/logcheck 0755 logcheck logcheck -" \ + > ${D}${sysconfdir}/tmpfiles.d/logcheck.conf + fi +} + +VIRTUAL-RUNTIME_syslog ??= "rsyslog" + +RDEPENDS_${PN} = "\ + bash \ + cronie \ + debianutils-run-parts \ + grep \ + lockfile-progs \ + mime-construct \ + perl \ + perl-module-file-basename \ + perl-module-getopt-std \ + perl-module-file-glob \ + ${VIRTUAL-RUNTIME_syslog} \ +" + +FILES_${PN} += "${datadir}/logtail" diff --git a/meta-perl/recipes-extended/mime-construct/files/fix-mime-construct-help-return-value.patch b/meta-perl/recipes-extended/mime-construct/files/fix-mime-construct-help-return-value.patch new file mode 100644 index 00000000000..5e4281d4e39 --- /dev/null +++ b/meta-perl/recipes-extended/mime-construct/files/fix-mime-construct-help-return-value.patch @@ -0,0 +1,39 @@ +From 2b9ed06850410d70371b31de5f131e484ba1c851 Mon Sep 17 00:00:00 2001 +From: Lu Chong +Date: Thu, 17 Oct 2013 16:06:04 +0800 +Subject: [PATCH] fix mime-construct --help return value + +Upstream-Status: Pending + +Signed-off-by: Lu Chong + +--- + mime-construct | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/mime-construct b/mime-construct +index cad7d0e..707ed19 100755 +--- a/mime-construct ++++ b/mime-construct +@@ -39,7 +39,7 @@ usage: $Me switch... + + Global settings: + --debug turn debugging on +- --help show this and then die ++ --help show this + --output don\'t mail, output to stdout (loses bcc info) + --subpart generate subpart rather than whole message (turns + on --output, changes other semantics a bit) +@@ -150,7 +150,8 @@ sub xwarn { + + sub usage { + xwarn @_ if @_; +- die $Usage; ++ print $Usage; ++ exit 0; + } + + sub init { +-- +1.7.9.5 + diff --git a/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb b/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb new file mode 100644 index 00000000000..501f3bf140a --- /dev/null +++ b/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb @@ -0,0 +1,28 @@ +SUMMARY = "Construct and optionally mail MIME messages" +DESCRIPTION = "Constructs and (by default) mails MIME messages. \ + It is entirely driven from the command line, it is \ + designed to be used by other programs, or people who act \ + like programs." +HOMEPAGE = "http://search.cpan.org/~rosch/mime-construct/mime-construct" +SECTION = "mail" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=5e2e5da619ac8ef8c84767ccc4656e96" + +SRC_URI = "${CPAN_MIRROR}/authors/id/R/RO/ROSCH/mime-construct-${PV}.tar.gz \ + file://fix-mime-construct-help-return-value.patch \ +" + +SRC_URI[md5sum] = "73834ea780fbea81b89dbd9b2fb54f58" +SRC_URI[sha256sum] = "4cd7bb61b51d41192d1498c1051aa6a4ccd75aeb09b71d2ec706a7084a4a9303" + +inherit cpan + +RDEPENDS_${PN} = "libmime-types-perl libproc-waitstat-perl msmtp \ + perl-module-filehandle perl-module-mime-base64 perl-module-mime-quotedprint perl-module-posix \ +" + +do_install_append() { + #change the interpreter in file + sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl -w|${bindir}/env perl|g" \ + ${D}/${bindir}/mime-construct +} diff --git a/meta-perl/recipes-perl/adduser/adduser_3.113+nmu3.bb b/meta-perl/recipes-perl/adduser/adduser_3.113+nmu3.bb deleted file mode 100644 index 969a739d493..00000000000 --- a/meta-perl/recipes-perl/adduser/adduser_3.113+nmu3.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "a utility to add users/groups to the system" -DESCRIPTION = "adduser, addgroup - add a user or group to the system" -HOMEPAGE = "http://alioth.debian.org/projects/adduser/" -SECTION = "base/utils" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef" - -SRC_URI = "http://ftp.de.debian.org/debian/pool/main/a/${BPN}/${BPN}_${PV}.tar.gz \ - file://adduser-add-M-option-for-useradd-when-no-create-home.patch \ -" - -SRC_URI[md5sum] = "ccb5864bde56683182c89c44474e7182" -SRC_URI[sha256sum] = "02682be3f51f3e732121f20a3e4922bb8bef15cfacb8767fc250a01d09502122" - -inherit cpan-base update-alternatives - -do_install() { - install -d ${D}${sbindir} - install -m 0755 ${S}/adduser ${D}${sbindir} - install -m 0755 ${S}/deluser ${D}${sbindir} - - install -d ${D}${libdir}/perl/${PERLVERSION}/Debian - install -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl/${PERLVERSION}/Debian - sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/* - - install -d ${D}/${sysconfdir} - install -m 0644 ${S}/*.conf ${D}/${sysconfdir} - - install -d ${D}${mandir}/man5 - install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5 - install -d ${D}${mandir}/man8 - install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8 - install -d ${D}${docdir}/${BPN} - cp -rf ${S}/examples ${D}${docdir}/${BPN} -} - -RDEPENDS_${PN} += "\ - shadow \ - perl-module-getopt-long \ - perl-module-overloading \ - perl-module-file-find \ - perl-module-file-temp \ -" - -ALTERNATIVE_${PN} = "adduser deluser addgroup delgroup" -ALTERNATIVE_PRIORITY = "60" -ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser" -ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser" -ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup" -ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup" -ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}" -ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}" diff --git a/meta-perl/recipes-perl/adduser/adduser_3.116.bb b/meta-perl/recipes-perl/adduser/adduser_3.116.bb new file mode 100644 index 00000000000..112a5f022a2 --- /dev/null +++ b/meta-perl/recipes-perl/adduser/adduser_3.116.bb @@ -0,0 +1,54 @@ +SUMMARY = "a utility to add users/groups to the system" +DESCRIPTION = "adduser, addgroup - add a user or group to the system" +HOMEPAGE = "http://alioth.debian.org/projects/adduser/" +SECTION = "base/utils" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef" + +SRC_URI = "http://ftp.de.debian.org/debian/pool/main/a/${BPN}/${BPN}_${PV}.tar.xz \ + file://adduser-add-M-option-for-useradd.patch \ +" + +SRC_URI[md5sum] = "e042a5842b8f24312d6f5a99a1af8f2c" +SRC_URI[sha256sum] = "72d811ad3ba17d2794b14d19acd1d6b57f9dd31d9250d51e786895dee2daeac0" + +inherit cpan-base update-alternatives + +S = "${WORKDIR}/${BPN}" + +do_install() { + install -d ${D}${sbindir} + install -m 0755 ${S}/adduser ${D}${sbindir} + install -m 0755 ${S}/deluser ${D}${sbindir} + + install -D -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl/${@get_perl_version(d)}/Debian/AdduserCommon.pm + sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/* + + install -d ${D}/${sysconfdir} + install -m 0644 ${S}/*.conf ${D}/${sysconfdir} + + install -d ${D}${mandir}/man5 + install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5 + install -d ${D}${mandir}/man8 + install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8 + install -d ${D}${docdir}/${BPN} + cp -rf ${S}/examples ${D}${docdir}/${BPN} +} + +RDEPENDS_${PN} += "\ + shadow \ + perl-module-getopt-long \ + perl-module-overloading \ + perl-module-file-find \ + perl-module-file-temp \ +" + +ALTERNATIVE_${PN} = "adduser deluser addgroup delgroup" +ALTERNATIVE_PRIORITY = "60" +ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser" +ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser" +ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup" +ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup" +ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}" +ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}" diff --git a/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-when-no-create-home.patch b/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-when-no-create-home.patch deleted file mode 100644 index 4b0a03f02a3..00000000000 --- a/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-when-no-create-home.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 809f00a6ef0224b41b2e1207194c8da3cd3e3c7e Mon Sep 17 00:00:00 2001 -From: Jackie Huang -Date: Thu, 18 Dec 2014 17:23:37 +0800 -Subject: [PATCH] adduser: add -M option for useradd when --no-create-home is specified - -The useradd (from package passwd) in debian based system sets -M (--no-create-home) by default, -but the one we are using (from package shadow) sets -m (--create-home) by default, so we -need to explicitly add -M option for useradd call when --no-create-home is specified for adduser. - -Upstream-Status: Pending - -Signed-off-by: Jackie Huang ---- - adduser | 20 ++++++++++++++++---- - 1 files changed, 16 insertions(+), 4 deletions(-) - -diff --git a/adduser b/adduser -index c3bd8b0..9a07f9f 100755 ---- a/adduser -+++ b/adduser -@@ -434,8 +434,14 @@ if ($action eq "addsysuser") { - $shell = $special_shell || '/bin/false'; - $undouser = $new_name; - my $useradd = &which('useradd'); -- &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -- $shell, '-u', $new_uid, $new_name); -+ if ($no_create_home) { -+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -+ $shell, '-u', $new_uid, '-M', $new_name); -+ } -+ else { -+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -+ $shell, '-u', $new_uid, $new_name); -+ } - if(!$disabled_login) { - my $usermod = &which('usermod'); - &systemcall($usermod, '-p', '*', $new_name); -@@ -524,8 +530,14 @@ if ($action eq "adduser") { - $shell = $special_shell || $config{"dshell"}; - $undouser = $new_name; - my $useradd = &which('useradd'); -- &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -- $shell, '-u', $new_uid, $new_name); -+ if ($no_create_home) { -+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -+ $shell, '-u', $new_uid, '-M', $new_name); -+ } -+ else { -+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -+ $shell, '-u', $new_uid, $new_name); -+ } - &invalidate_nscd(); - - create_homedir (1); # copy skeleton data --- -1.7.1 - diff --git a/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch b/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch new file mode 100644 index 00000000000..2ecec512fbd --- /dev/null +++ b/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch @@ -0,0 +1,45 @@ +From 55a0adfc416ad85dbc440eaa667d98c200a8ce62 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Thu, 18 Dec 2014 17:23:37 +0800 +Subject: [PATCH] adduser: add -M option for useradd + +The useradd (from package passwd) in debian based system sets -M (--no-create-home) by default, +but the one we are using (from package shadow) sets -m (--create-home) by default, so we +need to explicitly add -M option for useradd call or it will try to create home twice and +throw a confused message: +"The home directory `/home/newuser' already exists. Not copying from `/etc/skel'" + +Upstream-Status: Submitted [1] + +[1] https://lists.alioth.debian.org/pipermail/adduser-devel/2016-October/005478.html + +Signed-off-by: Jackie Huang +--- + adduser | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/adduser b/adduser +index a5f83f3..f6cb52c 100755 +--- a/adduser ++++ b/adduser +@@ -435,7 +435,7 @@ if ($action eq "addsysuser") { + $undouser = $new_name; + my $useradd = &which('useradd'); + &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', +- $shell, '-u', $new_uid, $new_name); ++ $shell, '-u', $new_uid, '-M', $new_name); + if(!$disabled_login) { + my $usermod = &which('usermod'); + &systemcall($usermod, '-p', '*', $new_name); +@@ -525,7 +525,7 @@ if ($action eq "adduser") { + $undouser = $new_name; + my $useradd = &which('useradd'); + &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', +- $shell, '-u', $new_uid, $new_name); ++ $shell, '-u', $new_uid, '-M', $new_name); + &invalidate_nscd(); + + create_homedir (1); # copy skeleton data +-- +1.8.5.2 + diff --git a/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb b/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb index 361bdf157e2..e658a5ff117 100644 --- a/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb +++ b/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb @@ -25,6 +25,4 @@ do_install_ptest () { cp -r ${B}/t ${D}${PTEST_PATH} } -PACKAGE_ARCH = "all" BBCLASSEXTEND = "native" - diff --git a/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.24.bb b/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.24.bb deleted file mode 100644 index 02374850849..00000000000 --- a/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.24.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "Capture::Tiny - Capture STDOUT and STDERR from Perl, XS or external programs." -DESCRIPTION = "Capture::Tiny provies a simple, portable way to capture \ -almost anything sent to STDOUT or STDERR, regardless of whether it comes \ -from Perl, from XS code or from an external program. Optionally, output can \ -be teed so that it is captured while being passed through to the original \ -filehandles. Yes, it even works on Windows (usually). Stop guessing which of \ -a dozen capturing modules to use in any particular situation and just use \ -this one." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~dagolden/Capture-Tiny/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=37a4918a30ace24395020e5b8c03b83f" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Capture-Tiny-${PV}.tar.gz" -SRC_URI[md5sum] = "718e9d62c4a27a3207cf8506cb99d846" -SRC_URI[sha256sum] = "9bcf6f8472f8ea50401536cb070ac0c7770837d155c4d6abe212759863aae065" - -S = "${WORKDIR}/Capture-Tiny-${PV}" - -inherit cpan - -RDEPENDS_${PN} = " perl-module-scalar-util \ - perl-module-io-file \ - perl-module-extutils-makemaker \ - perl-module-file-spec \ - perl-module-exporter \ - perl-module-carp \ - perl-module-test-more \ - perl-module-file-temp \ - perl-module-lib \ - perl-module-build \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb b/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb new file mode 100644 index 00000000000..2719811ce44 --- /dev/null +++ b/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb @@ -0,0 +1,37 @@ +SUMMARY = "Capture::Tiny - Capture STDOUT and STDERR from Perl, XS or external programs." +DESCRIPTION = "Capture::Tiny provies a simple, portable way to capture \ +almost anything sent to STDOUT or STDERR, regardless of whether it comes \ +from Perl, from XS code or from an external program. Optionally, output can \ +be teed so that it is captured while being passed through to the original \ +filehandles. Yes, it even works on Windows (usually). Stop guessing which of \ +a dozen capturing modules to use in any particular situation and just use \ +this one." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~dagolden/Capture-Tiny/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=37a4918a30ace24395020e5b8c03b83f" + +SRCNAME = "Capture-Tiny" +SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DAGOLDEN/${SRCNAME}-${PV}.tar.gz" +SRC_URI[md5sum] = "d718af07729d26a793949ca6ba2580a7" +SRC_URI[sha256sum] = "5d7a6a830cf7f2b2960bf8b8afaac16a537ede64f3023827acea5bd24ca77015" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-scalar-util \ + perl-module-io-file \ + perl-module-extutils-makemaker \ + perl-module-file-spec \ + perl-module-exporter \ + perl-module-carp \ + perl-module-test-more \ + perl-module-file-temp \ + perl-module-lib \ + perl-module-overloading \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libcgi/libcgi-perl_4.36.bb b/meta-perl/recipes-perl/libcgi/libcgi-perl_4.36.bb new file mode 100644 index 00000000000..8f26ab0f7eb --- /dev/null +++ b/meta-perl/recipes-perl/libcgi/libcgi-perl_4.36.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "CGI.pm is a stable, complete and mature solution for processing and preparing \ +HTTP requests and responses. Major features including processing form \ +submissions, file uploads, reading and writing cookies, query string generation \ +and manipulation, and processing and preparing HTTP headers." +HOMEPAGE = "http://search.cpan.org/~leejo/CGI-4.28/lib/CGI.pod" +SECTION = "libs" +LICENSE = "Artistic-2.0 | GPL-2.0" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=2e9769f0a2613a98bc7fce15dee0c533" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/L/LE/LEEJO/CGI-${PV}.tar.gz" + +SRC_URI[md5sum] = "48566d81f430a7f755bb4d8f426ce35d" +SRC_URI[sha256sum] = "fefe84d4f2461e867f9be80f3f988e17bcbbcb4e306952cf2fd1dea7e4515490" + +S = "${WORKDIR}/CGI-${PV}" + +inherit cpan + +RPROVIDES_${PN} += "perl-module-cgi" diff --git a/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb b/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb new file mode 100644 index 00000000000..3979b314215 --- /dev/null +++ b/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb @@ -0,0 +1,28 @@ +SUMMARY = "Class::Method::Modifiers - provides Moose-like method modifiers" +DESCRIPTION = "Method modifiers are a convenient feature from the CLOS \ +(Common Lisp Object System) world." + +SECTION = "libs" + +HOMEPAGE = "https://github.com/moose/Class-Method-Modifiers/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=16fd0ec7b73c0e158426f753943f1058" + +SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Class-Method-Modifiers-${PV}.tar.gz" +SRC_URI[md5sum] = "f55400c7a8134acf3657f8af89bdd7af" +SRC_URI[sha256sum] = "e44c1073020bf55b8c97975ed77235fd7e2a6a56f29b5c702301721184e27ac8" + +S = "${WORKDIR}/Class-Method-Modifiers-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-b \ + perl-module-base \ + perl-module-carp \ + perl-module-exporter \ + perl-module-strict \ + perl-module-warnings \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.04.bb b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.04.bb deleted file mode 100644 index 1f99be036f4..00000000000 --- a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.04.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Crypt Openssl Random cpan module" -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=385c55653886acac3821999a3ccd17b3" - -SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Random-${PV}.tar.gz " -SRC_URI[md5sum] = "c56ac5dbdd46122eb9b8da59613b7b0a" -SRC_URI[sha256sum] = "acf7eb81023cd1f40d8c60b893096d041513df2be2aefe145cc7ae1a3dcc78c7" - -S = "${WORKDIR}/Crypt-OpenSSL-Random-${PV}" - -DEPENDS += " openssl \ -" -inherit cpan diff --git a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb new file mode 100644 index 00000000000..8456e313df8 --- /dev/null +++ b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb @@ -0,0 +1,15 @@ +SUMMARY = "Crypt Openssl Random cpan module" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=089c18d635ae273e1727ec385e64063b" + +SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Random-${PV}.tar.gz " +SRC_URI[md5sum] = "5d71337503e0356ce1ce1481504e5885" +SRC_URI[sha256sum] = "bb8c81c6a39b9b13a22d818ee9a746242f136f0fadceb6b9776ae615e7524c7a" + +S = "${WORKDIR}/Crypt-OpenSSL-Random-${PV}" + +DEPENDS += " openssl \ +" +inherit cpan diff --git a/meta-perl/recipes-perl/libcurses/libcurses-perl_1.32.bb b/meta-perl/recipes-perl/libcurses/libcurses-perl_1.32.bb deleted file mode 100644 index d78ca478d22..00000000000 --- a/meta-perl/recipes-perl/libcurses/libcurses-perl_1.32.bb +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION = "lib-curses provides an interface between Perl programs and \ -the curses library." - -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" - -LIC_FILES_CHKSUM = "file://README;beginline=26;endline=30;md5=0b37356c5e9e28080a3422d82af8af09" - -DEPENDS += "perl ncurses " - -SRC_URI = "http://www.cpan.org/authors/id/G/GI/GIRAFFED/Curses-${PV}.tgz" - -SRC_URI[md5sum] = "e4d9066bfc5a69cb2cee3e1dfc3209b3" -SRC_URI[sha256sum] = "5dba44fd7964806d9765e6692bc7eb8eb30aeced2740f28b9a4070a5d14ba650" - -S = "${WORKDIR}/Curses-${PV}" - -EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR} LIBS=-L${STAGING_LIBDIR}" - -inherit cpan - -do_compile() { - export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" - cpan_do_compile -} - diff --git a/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb b/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb new file mode 100644 index 00000000000..782b973b58d --- /dev/null +++ b/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "lib-curses provides an interface between Perl programs and \ +the curses library." + +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +LIC_FILES_CHKSUM = "file://README;beginline=26;endline=30;md5=0b37356c5e9e28080a3422d82af8af09" + +DEPENDS += "perl ncurses " + +SRC_URI = "http://www.cpan.org/authors/id/G/GI/GIRAFFED/Curses-${PV}.tar.gz" + +SRC_URI[md5sum] = "389c70ee5530b887f8e5dc1303cb5294" +SRC_URI[sha256sum] = "a414795ba031c5918c70279fe534fee594a96ec4b0c78f44ce453090796add64" + +S = "${WORKDIR}/Curses-${PV}" + +EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR} LIBS=-L${STAGING_LIBDIR}" + +inherit cpan + +do_compile() { + export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" + cpan_do_compile +} + diff --git a/meta-perl/recipes-perl/libdata/files/run-ptest b/meta-perl/recipes-perl/libdata/files/run-ptest new file mode 100644 index 00000000000..c9f9ca94d0a --- /dev/null +++ b/meta-perl/recipes-perl/libdata/files/run-ptest @@ -0,0 +1,16 @@ +#!/bin/sh + +for case in `find t -type f -name '*.t'`; do + perl $case >$case.output 2>&1 + ret=$? + cat $case.output + if [ $ret -ne 0 ]; then + echo "FAIL: ${case%.t}" + elif grep -i 'SKIP' $case.output; then + echo "SKIP: ${case%.t}" + else + echo "PASS: ${case%.t}" + fi + + rm -f $case.output +done diff --git a/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb b/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb new file mode 100644 index 00000000000..6ab5a420431 --- /dev/null +++ b/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb @@ -0,0 +1,33 @@ +SUMMARY = "Data::HexDump - Hexadecial Dumper" +DESCRIPTION = "Dump in hexadecimal the content of a scalar. The result \ +is returned in a string. Each line of the result consists of the offset \ +in the source in the leftmost column of each line, followed by one or \ +more columns of data from the source in hexadecimal. The rightmost column \ +of each line shows the printable characters \ +(all others are shown as single dots).\ +" + +HOMEPAGE = "http://search.cpan.org/~ftassin/Data-HexDump-0.02/lib/Data/HexDump.pm" +SECTION = "libs" + +LICENSE = "Artistic-1.0" +LIC_FILES_CHKSUM = "file://lib/Data/HexDump.pm;beginline=215;endline=217;md5=bf1cd9373f8d1f85fe091ee069a480e9" + +DEPENDS = "perl" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/F/FT/FTASSIN/Data-HexDump-${PV}.tar.gz \ + file://run-ptest \ +" +SRC_URI[md5sum] = "467b7183d1062ab4a502b50c34e7d67f" +SRC_URI[sha256sum] = "1a9d843e7f667c1c6f77c67af5d77e7462ff23b41937cb17454d03535cd9be70" + +S = "${WORKDIR}/Data-HexDump-${PV}" + +inherit cpan ptest + +do_install_ptest () { + install -d ${D}${PTEST_PATH}/t + install -m 0755 ${B}/t/* ${D}${PTEST_PATH}/t +} + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.40.bb b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.40.bb deleted file mode 100644 index fad03d81787..00000000000 --- a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.40.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "A Perl DBI driver for SQLite" -DESCRIPTION = "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire \ -thing in the distribution. So in order to get a fast transaction capable \ -RDBMS working for your perl project you simply have to install this \ -module, and nothing else. \ -" -HOMEPAGE = "http://search.cpan.org/~ishigaki/DBD-SQLite/" - -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" -DEPENDS += "libdbi-perl-native" -RDEPENDS_${PN} += "libdbi-perl \ - sqlite3 \ - perl-module-constant \ - perl-module-locale \ - perl-module-tie-hash \ -" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \ - file://sqlite-perl-test.pl \ -" - -SRC_URI[md5sum] = "b9876882186499583428b14cf5c0e29c" -SRC_URI[sha256sum] = "21fb65e740b6265512c82232b4ad8f75c19ac84c216830112656274eb8e375fb" - -S = "${WORKDIR}/DBD-SQLite-${PV}" - -inherit cpan - -BBCLASSEXTEND = "native" - -do_install_append() { - if [ ${PERL_DBM_TEST} = "1" ]; then - install -m 755 -D ${WORKDIR}/sqlite-perl-test.pl ${D}/${bindir}/sqlite-perl-test.pl - fi -} - diff --git a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb new file mode 100644 index 00000000000..0b27b5cb1c1 --- /dev/null +++ b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb @@ -0,0 +1,39 @@ +SUMMARY = "A Perl DBI driver for SQLite" +DESCRIPTION = "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire \ +thing in the distribution. So in order to get a fast transaction capable \ +RDBMS working for your perl project you simply have to install this \ +module, and nothing else. \ +" +HOMEPAGE = "http://search.cpan.org/~ishigaki/DBD-SQLite/" + +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" +DEPENDS += "libdbi-perl-native" +RDEPENDS_${PN} += "libdbi-perl \ + sqlite3 \ + perl-module-constant \ + perl-module-locale \ + perl-module-tie-hash \ +" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \ + file://sqlite-perl-test.pl \ +" + +SRC_URI[md5sum] = "8f835ddacb9a4a92a52bbe2d24d18a8e" +SRC_URI[sha256sum] = "3929a6dbd8d71630f0cb57f85dcef9588cd7ac4c9fa12db79df77b9d3a4d7269" + +S = "${WORKDIR}/DBD-SQLite-${PV}" + +inherit cpan + +BBCLASSEXTEND = "native" + +do_install_append() { + if [ ${PERL_DBM_TEST} = "1" ]; then + install -m 755 -D ${WORKDIR}/sqlite-perl-test.pl ${D}/${bindir}/sqlite-perl-test.pl + fi +} + diff --git a/meta-perl/recipes-perl/libdb/libdbi-perl_1.628.bb b/meta-perl/recipes-perl/libdb/libdbi-perl_1.628.bb deleted file mode 100644 index 38bdf614bb7..00000000000 --- a/meta-perl/recipes-perl/libdb/libdbi-perl_1.628.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "The Perl Database Interface" -DESCRIPTION = "DBI is a database access Application Programming Interface \ -(API) for the Perl Language. The DBI API Specification defines a set \ -of functions, variables and conventions that provide a consistent \ -database interface independent of the actual database being used. \ -" -HOMEPAGE = "http://search.cpan.org/dist/DBI/" -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" -RDEPENDS_${PN} = " perl-module-carp \ - perl-module-exporter \ - perl-module-exporter-heavy \ - perl-module-dynaloader \ -" - -LIC_FILES_CHKSUM = "file://DBI.pm;beginline=8147;endline=8151;md5=7d9e154a9ca3c093d2422f7c692d5861" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz" -SRC_URI[md5sum] = "4273f8cc6ee3979ce448c7eb3f8a6a5a" -SRC_URI[sha256sum] = "46c834f4ba1b28c8d8a2db8095835a67fc69a9585761523aea3a74437a969b52" - -S = "${WORKDIR}/DBI-${PV}" - -inherit cpan - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb b/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb new file mode 100644 index 00000000000..0ce242454f0 --- /dev/null +++ b/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb @@ -0,0 +1,23 @@ +SUMMARY = "Function returning \"${^GLOBAL_PHASE} eq \'DESTRUCT\'\"" +DESCRIPTION = "Perl's global destruction is a little trick to deal with \ +WRT finalizers because it's not ordered and objects can sometimes disappear." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/pod/Devel-GlobalDestruction/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=53;endline=55;md5=935dadb9423774f53548e5cd5055d41a" + +SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Devel-GlobalDestruction-${PV}.tar.gz" +SRC_URI[md5sum] = "24221ba322cf2dc46a1fc99b53e2380b" +SRC_URI[sha256sum] = "34b8a5f29991311468fe6913cadaba75fd5d2b0b3ee3bb41fe5b53efab9154ab" + +S = "${WORKDIR}/Devel-GlobalDestruction-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " libsub-exporter-progressive-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb b/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb index affc9f668f1..8f1c98c67ab 100644 --- a/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb +++ b/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb @@ -22,5 +22,4 @@ do_install_ptest () { cp -r ${B}/t ${D}${PTEST_PATH} } -PACKAGE_ARCH = "all" BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb b/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb new file mode 100644 index 00000000000..748f746a04d --- /dev/null +++ b/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb @@ -0,0 +1,21 @@ +SUMMARY = "Encode::Locale - Determine the locale encoding" +AUTHOR = "Gisle Aas " +HOMEPAGE = "https://metacpan.org/module/Encode::Locale" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;md5=14e8006c2134045725fd81292a323d24" + +SRC_URI = "${CPAN_MIRROR}/authors/id/G/GA/GAAS/Encode-Locale-${PV}.tar.gz" +SRC_URI[md5sum] = "fcfdb8e4ee34bcf62aed429b4a23db27" +SRC_URI[sha256sum] = "176fa02771f542a4efb1dbc2a4c928e8f4391bf4078473bd6040d8f11adb0ec1" + +S = "${WORKDIR}/Encode-Locale-${PV}" + +inherit cpan + +RDEPENDS_${PN} += "libencode-perl \ + libencode-alias-perl \ + perl-module-base \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libencode/libencode-perl_2.83.bb b/meta-perl/recipes-perl/libencode/libencode-perl_2.83.bb new file mode 100644 index 00000000000..ee8c67d6863 --- /dev/null +++ b/meta-perl/recipes-perl/libencode/libencode-perl_2.83.bb @@ -0,0 +1,54 @@ +SUMMARY = "Encode - character encodings" +DESCRIPTION = "The \"Encode\" module provides the interfaces between \ +Perl's strings and the rest of the system. Perl strings are sequences \ +of characters." + +AUTHOR = "Dan Kogai " +HOMEPAGE = "https://metacpan.org/release/Encode" +SECTION = "lib" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://META.json;md5=fdbebc82e925d8acbce42cfad131c4d1" + +SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DANKOGAI/Encode-${PV}.tar.gz" +SRC_URI[md5sum] = "0d3f59e8ea704497647eded665919053" +SRC_URI[sha256sum] = "5d3a90e30aabe78dfcf5e816ffb1da1e33475892dbd0075320315cdce5682988" + +S = "${WORKDIR}/Encode-${PV}" + +inherit cpan + +RDEPENDS_${PN} += " perl-module-bytes \ + perl-module-constant \ + perl-module-xsloader \ +" + +RPROVIDES_${PN} += "libencode-alias-perl \ + libencode-byte-perl \ + libencode-cjkconstants-perl \ + libencode-cn-perl \ + libencode-cn-hz-perl \ + libencode-config-perl \ + libencode-ebcdic-perl \ + libencode-encoder-perl \ + libencode-encoding-perl \ + libencode-gsm0338-perl \ + libencode-guess-perl \ + libencode-jp-perl \ + libencode-jp-h2z-perl \ + libencode-jp-jis7-perl \ + libencode-kr-perl \ + libencode-kr-2022_kr-perl \ + libencode-mime-header-perl \ + libencode-mime-name-perl \ + libencode-symbol-perl \ + libencode-tw-perl \ + libencode-unicode--perl \ + libencode-unicode-utf7-perl \ + libencoding-perl \ + libencode-internal-perl \ + libencode-mime-header-iso_2022_jp-perl \ + libencode-utf8-perl \ + libencode-utf_ebcdic-perl \ + " + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.007.bb b/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.007.bb deleted file mode 100644 index 78483b4e609..00000000000 --- a/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.007.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "ExtUtils::Config - A wrapper for perl's configuration" -DESCRIPTION = "ExtUtils::Config is an abstraction around the %Config hash." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-Config/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b1b813683bd988732e7fd6a796bf7f47" - -SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-Config-${PV}.tar.gz" -SRC_URI[md5sum] = "2829c0dfa8a7e51b3f582efbee4bb128" -SRC_URI[sha256sum] = "2c1465078b876fd16a90507092805265528c2532d4937b03547a6dbdb8ac0eef" - -S = "${WORKDIR}/ExtUtils-Config-${PV}" - -inherit cpan - -RDEPENDS_${PN} = " perl-module-extutils-makemaker \ - perl-module-data-dumper \ - perl-module-test-more \ - perl-module-file-temp \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb b/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb new file mode 100644 index 00000000000..e93d388e9ca --- /dev/null +++ b/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb @@ -0,0 +1,24 @@ +SUMMARY = "ExtUtils::Config - A wrapper for perl's configuration" +DESCRIPTION = "ExtUtils::Config is an abstraction around the %Config hash." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-Config/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1932ab4d8b84c25fd7967aa18088e57e" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-Config-${PV}.tar.gz" +SRC_URI[md5sum] = "565a7b09c7cac5907a25bbe2c959a717" +SRC_URI[sha256sum] = "ae5104f634650dce8a79b7ed13fb59d67a39c213a6776cfdaa3ee749e62f1a8c" + +S = "${WORKDIR}/ExtUtils-Config-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-extutils-makemaker \ + perl-module-data-dumper \ + perl-module-test-more \ + perl-module-file-temp \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.07.bb b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.07.bb deleted file mode 100644 index 47e0904050a..00000000000 --- a/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.07.bb +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "ExtUtils::CppGuess - guess C++ compiler and flags" -DESCRIPTION = "ExtUtils::CppGuess attempts to guess the system's C++ \ -compiler that is compatible with the C compiler that your perl was built \ -with. \ -It can generate the necessary options to the Module::Build constructor or \ -to ExtUtils::MakeMaker's WriteMakefile function." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~smueller/ExtUtils-CppGuess/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://README;beginline=81;endline=84;md5=84c0390b90ea8c6702ce659b67bed699" - -SRC_URI = "${CPAN_MIRROR}/authors/id/S/SM/SMUELLER/ExtUtils-CppGuess-${PV}.tar.gz" -SRC_URI[md5sum] = "350dd7c661189ea770d6c9354ebbc6c2" -SRC_URI[sha256sum] = "1cd83ee8452351219b987c79ddb25cc25ee8c396318ba36c5211a92b5c87e7a8" - -S = "${WORKDIR}/ExtUtils-CppGuess-${PV}" - -inherit cpan_build - -do_install () { - cpan_build_do_install -} - -RDEPENDS_${PN} = " libcapture-tiny-perl \ - perl-module-scalar-util \ - perl-module-io-file \ - perl-module-extutils-makemaker \ - perl-module-file-spec \ - perl-module-exporter \ - perl-module-carp \ - perl-module-file-temp \ - perl-module-lib \ - perl-module-build \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.09.bb b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.09.bb new file mode 100644 index 00000000000..d13cb03ee92 --- /dev/null +++ b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.09.bb @@ -0,0 +1,37 @@ +SUMMARY = "ExtUtils::CppGuess - guess C++ compiler and flags" +DESCRIPTION = "ExtUtils::CppGuess attempts to guess the system's C++ \ +compiler that is compatible with the C compiler that your perl was built \ +with. \ +It can generate the necessary options to the Module::Build constructor or \ +to ExtUtils::MakeMaker's WriteMakefile function." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~smueller/ExtUtils-CppGuess/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=81;endline=84;md5=84c0390b90ea8c6702ce659b67bed699" + +SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETJ/ExtUtils-CppGuess-${PV}.tar.gz" +SRC_URI[md5sum] = "f8ada38ee4ad86a4f1e20d8525ce0c99" +SRC_URI[sha256sum] = "48625195a88c0f2ddc37bbd7a06346aa68ffb6948ba78da3aea47c0db2540f65" + +S = "${WORKDIR}/ExtUtils-CppGuess-${PV}" + +inherit cpan + +do_install () { + cpan_do_install +} + +RDEPENDS_${PN} = " libcapture-tiny-perl \ + perl-module-scalar-util \ + perl-module-io-file \ + perl-module-extutils-makemaker \ + perl-module-file-spec \ + perl-module-exporter \ + perl-module-carp \ + perl-module-file-temp \ + perl-module-lib \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.022.bb b/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.022.bb deleted file mode 100644 index 9a0234e5977..00000000000 --- a/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.022.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "ExtUtils::Helpers - Various portability utilities for module builders" -DESCRIPTION = "This module provides various portable helper function for module building modules." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-Helpers/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=307057ce232899f5caa8858560c7274b" - -SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-Helpers-${PV}.tar.gz" -SRC_URI[md5sum] = "cf4fd6f8caa6daac33b1111c9e93162b" -SRC_URI[sha256sum] = "d3f8cf700fb3414ca1260089755cbf64041455e4b744110677b1ba5bb9a3aa95" - -S = "${WORKDIR}/ExtUtils-Helpers-${PV}" - -inherit cpan - -RDEPENDS_${PN} = " perl-module-file-copy \ - perl-module-extutils-makemaker \ - perl-module-exporter \ - perl-module-carp \ - perl-module-test-more \ - perl-module-text-parsewords \ - perl-module-load \ - perl-module-file-temp \ - perl-module-file-spec-functions \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb b/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb new file mode 100644 index 00000000000..c027250b00c --- /dev/null +++ b/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb @@ -0,0 +1,29 @@ +SUMMARY = "ExtUtils::Helpers - Various portability utilities for module builders" +DESCRIPTION = "This module provides various portable helper function for module building modules." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-Helpers/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=223c04045664f72c3a6556462612bddd" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-Helpers-${PV}.tar.gz" +SRC_URI[md5sum] = "83b00c1e401321c425ae5db6b2b2fd12" +SRC_URI[sha256sum] = "de901b6790a4557cf4ec908149e035783b125bf115eb9640feb1bc1c24c33416" + +S = "${WORKDIR}/ExtUtils-Helpers-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-file-copy \ + perl-module-extutils-makemaker \ + perl-module-exporter \ + perl-module-carp \ + perl-module-test-more \ + perl-module-text-parsewords \ + perl-module-load \ + perl-module-file-temp \ + perl-module-file-spec-functions \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.010.bb b/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.010.bb deleted file mode 100644 index 8de375d2e33..00000000000 --- a/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.010.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "ExtUtils::InstallPaths - Build.PL install path logic made easy" -DESCRIPTION = "This module tries to make install path resolution as easy \ -as possible." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-InstallPaths/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=15bbcc2806d297df9e944b8955b38d82" - -SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-${PV}.tar.gz" -SRC_URI[md5sum] = "f0b00cc6c04653588a6298fa1f16c07f" -SRC_URI[sha256sum] = "d14cbff118e467900c2c488b55b83ef697d6eb1b8f592c0521f1d82848bf2156" - -S = "${WORKDIR}/ExtUtils-InstallPaths-${PV}" - -inherit cpan - -RDEPENDS_${PN} = " perl-module-extutils-makemaker \ - perl-module-data-dumper \ - perl-module-test-more \ - perl-module-file-temp \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb b/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb new file mode 100644 index 00000000000..6eb434a95ec --- /dev/null +++ b/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb @@ -0,0 +1,25 @@ +SUMMARY = "ExtUtils::InstallPaths - Build.PL install path logic made easy" +DESCRIPTION = "This module tries to make install path resolution as easy \ +as possible." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-InstallPaths/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b6fa54d873ce6bcf4809ea88bdf97769" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-${PV}.tar.gz" +SRC_URI[md5sum] = "9c75894c3c8c899ab6bfafc5eaa97999" +SRC_URI[sha256sum] = "7609fa048cdcf1451cad5b1d7d494f30e3d5bad0672d15404f1ea60e1df0067c" + +S = "${WORKDIR}/ExtUtils-InstallPaths-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-extutils-makemaker \ + perl-module-data-dumper \ + perl-module-test-more \ + perl-module-file-temp \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb b/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb new file mode 100644 index 00000000000..33707a0af6f --- /dev/null +++ b/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb @@ -0,0 +1,47 @@ +SUMMARY = "ExtUtils::ParseXS - converts Perl XS code into C code" +DESCRIPTION = "\"ExtUtils::ParseXS\" will compile XS code into C code by \ +embedding the constructs necessary to let C functions manipulate Perl \ +values and creates the glue necessary to let Perl access those functions. \ +The compiler uses typesmapes to determine how to map C function parameters \ +and variables to Perl values." + +SECTION = "libs" + +HOMEPAGE = "http://metapan.org/release/ExtUtils-ParseXS/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=120;endline=129;md5=eb858f0e3b1b0bee0c05b86a474ae2b6" + +SRCNAME = "ExtUtils-ParseXS" +SRC_URI = "${CPAN_MIRROR}/authors/id/S/SM/SMUELLER/${SRCNAME}-${PV}.tar.gz" +SRC_URI[md5sum] = "2ae41036d85e98e1369645724962dd16" +SRC_URI[sha256sum] = "41def0511278a2a8ba9afa25ccab45b0453f75e7fd774e8644b5f9a57cc4ee1c" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-carp \ + perl-module-cwd \ + perl-module-dynaloader \ + perl-module-extutils-cbuilder \ + perl-module-extutils-makemaker \ + perl-module-file-basename \ + perl-module-file-spec \ + perl-module-lib \ + perl-module-symbol \ + perl-module-test-more \ +" + +RPROVIDES_${PN} += " libextutils-parsexs-constants-perl \ + libextutils-parsexs-countlines-perl \ + libextutils-parsexs-eval-perl \ + libextutils-parsexs-utilities-perl \ + libextutils-typemaps-perl \ + libextutils-typemaps-cmd-perl \ + libextutils-typemaps-inputmap-perl \ + libextutils-typemaps-outputmap-perl \ + libextutils-typemaps-type-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb b/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb new file mode 100644 index 00000000000..945b4c1c872 --- /dev/null +++ b/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb @@ -0,0 +1,19 @@ +SUMMARY = "Slurp entire files into variables." +DESCRIPTION = "This module provides subroutines to read or write \ + entire files with a simple call. It also has a subroutine for \ + reading the list of filenames in a directory. \ +" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +LIC_FILES_CHKSUM = "file://README;beginline=37;endline=41;md5=255fbd5f98a90d51d9908d31271ae4d4" +SRC_URI = "http://search.cpan.org/CPAN/authors/id/U/UR/URI/File-Slurp-${PV}.tar.gz" + +S = "${WORKDIR}/File-Slurp-${PV}" + +inherit cpan + +SRC_URI[md5sum] = "7d584cd15c4f8b9547765eff8c4ef078" +SRC_URI[sha256sum] = "ce29ebe995097ebd6e9bc03284714cdfa0c46dc94f6b14a56980747ea3253643" + +BBCLASSEXTEND="native" diff --git a/meta-perl/recipes-perl/libhtml/files/bin-htmltree-fix-shebang.patch b/meta-perl/recipes-perl/libhtml/files/bin-htmltree-fix-shebang.patch new file mode 100644 index 00000000000..4266f059d71 --- /dev/null +++ b/meta-perl/recipes-perl/libhtml/files/bin-htmltree-fix-shebang.patch @@ -0,0 +1,25 @@ +From 28ee994780459c3552d3cbbd6b011d054a41c439 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Sun, 8 Nov 2015 23:33:31 -0500 +Subject: [PATCH] bin/htmltree: fix shebang + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + bin/htmltree | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bin/htmltree b/bin/htmltree +index 8bf3db2..f9927e5 100755 +--- a/bin/htmltree ++++ b/bin/htmltree +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + # Time-stamp: "2000-10-02 14:48:15 MDT" + # + # Parse the given HTML file(s) and dump the parse tree +-- +1.9.1 + diff --git a/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.71.bb b/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.71.bb deleted file mode 100644 index be0f4b29f10..00000000000 --- a/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.71.bb +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION = "This package contains the Parser.pm module with friends." - -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" - -LIC_FILES_CHKSUM = "file://README;md5=6c3dacf9f405c7483870ab5f148770c3" - -DEPENDS += "perl" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-${PV}.tar.gz" - -SRC_URI[md5sum] = "9128a45893097dfa3bf03301b19c5efe" -SRC_URI[sha256sum] = "be918b3749d3ff93627f72ee4b825683332ecb4c81c67a3a8d72b0435ffbd802" - -S = "${WORKDIR}/HTML-Parser-${PV}" - -EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}" - -inherit cpan - -do_compile() { - export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" - cpan_do_compile -} -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb b/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb new file mode 100644 index 00000000000..e202de05a72 --- /dev/null +++ b/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "This package contains the Parser.pm module with friends." +HOMEPAGE = "https://metacpan.org/release/HTML-Parser" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +LIC_FILES_CHKSUM = "file://README;md5=b0459e4426b94753b9a9b8a15f1223b8" + +DEPENDS += "perl" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-${PV}.tar.gz" + +SRC_URI[md5sum] = "eb7505e5f626913350df9dd4a03d54a8" +SRC_URI[sha256sum] = "ec28c7e1d9e67c45eca197077f7cdc41ead1bb4c538c7f02a3296a4bb92f608b" + +S = "${WORKDIR}/HTML-Parser-${PV}" + +EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}" + +inherit cpan + +do_compile() { + export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" + cpan_do_compile +} +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb b/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb new file mode 100644 index 00000000000..56dc19c85ab --- /dev/null +++ b/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb @@ -0,0 +1,42 @@ +SUMMARY = "HTML::TreeBuilder - Parser that builds a HTML syntax tree" +DESCRIPTION = "This distribution contains a suite of modules for representing, \ +creating, and extracting information from HTML syntax trees; there is \ +also relevent documentation. These modules used to be part of the \ +libwww-perl distribution, but are now unbundled in order to facilitate \ +a separate development track." +SECTION = "libs" + +HOMEPAGE = "http://www.cpan.org/authors/id/C/CJ/CJM/HTML-Tree-${PV}.readme" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3eb57a8958cae73cb65e7d0c26339242" + +SRC_URI = "${CPAN_MIRROR}/authors/id/C/CJ/CJM/HTML-Tree-${PV}.tar.gz \ + file://bin-htmltree-fix-shebang.patch \ +" +SRC_URI[md5sum] = "d9271d60b872ed6fbe68b2d0fe8c450e" +SRC_URI[sha256sum] = "7d6d73fca622aa74855a8b088faa39454a0f91b7af83c9ec0387f01eefc2148f" + +S = "${WORKDIR}/HTML-Tree-${PV}" + +inherit cpan_build + +DEPENDS += "libmodule-build-perl-native \ +" + +RPROVIDES_${PN} = " libhtml-element-perl \ + libhtml-tree-assubs-perl \ + libhtml-tree-perl \ + libhtml-treebuilder-perl \ +" + +RDEPENDS_${PN} = " perl-module-b \ + perl-module-base \ + perl-module-strict \ + perl-module-warnings \ + perl-module-exporter \ + perl-module-carp \ +" + +BBCLASSEXTEND = "native" + diff --git a/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb b/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb new file mode 100644 index 00000000000..af08d630ac4 --- /dev/null +++ b/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb @@ -0,0 +1,32 @@ +SUMMARY = "Import::Into - import packages into other packages" +DESCRIPTION = "Writing exporters is a pain. Some use \"Exporter\", some use \ +\"Sub::Exporter\", some use \"Moose::Exporter\", some use \ +\"Exporter::Declare\"... and some things are pragmas.\ +\ +Exporting on someone else's behalf is harder. The exporters don't provide a \ +consistent API for this, and pragmas need to have their import method called \ +directly, since they effect the current unit of compilation. \ +\ +\"Import::Into\" provides global methods to make this painless." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/pod/Import-Into/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=209;endline=223;md5=3cf363f1e405dea6db2c6cd0ef23680c" + +SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Import-Into-${PV}.tar.gz" +SRC_URI[md5sum] = "70f2f3b08a5b706ee382a8448c346cb1" +SRC_URI[sha256sum] = "decb259bc2ff015fe3dac85e4a287d4128e9b0506a0b2c5fa7244836a68b1084" + +S = "${WORKDIR}/Import-Into-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " libmodule-runtime-perl \ + perl-module-strict \ + perl-module-warnings \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_1.997.bb b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_1.997.bb index 19dec83a58f..ba5788a016d 100644 --- a/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_1.997.bb +++ b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_1.997.bb @@ -24,8 +24,6 @@ S = "${WORKDIR}/IO-Socket-SSL-${PV}" inherit cpan ptest -PACKAGE_ARCH = "all" - do_install_append () { mkdir -p ${D}${docdir}/${PN}/ cp ${S}/BUGS ${D}${docdir}/${PN}/ diff --git a/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb b/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb new file mode 100644 index 00000000000..0e566c0f234 --- /dev/null +++ b/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb @@ -0,0 +1,31 @@ +SUMMARY = "IO-stringy - I/O on in-core objects like strings and arrays" +DESCRIPTION = "This toolkit primarily provides modules for performing both \ +traditional and object-oriented i/o on things *other* than normal \ +filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines." + +HOMEPAGE = "http://www.zeegee.com/products/IO-stringy/" +SECTION = "devel" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=01406e4ff2e60d88d42ef1caebdd0011" + + +SRC_URI = "${CPAN_MIRROR}/authors/id/D/DS/DSKOLL/IO-stringy-${PV}.tar.gz" +SRC_URI[md5sum] = "e91acf0a800b190d13585a47de775bdd" +SRC_URI[sha256sum] = "8c67fd6608c3c4e74f7324f1404a856c331dbf48d9deda6aaa8296ea41bf199d" + +S = "${WORKDIR}/IO-stringy-${PV}" + +inherit cpan + +RPROVIDES_${PN} += " libio-atomicfile-perl \ + libio-innerfile-perl \ + libio-lines-perl \ + libio-scalar-perl \ + libio-scalararray-perl \ + libio-wrap-perl \ + libio-wraptie-perl \ + libio-wraptie-master-perl \ + libio-wraptie-slave-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb b/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb new file mode 100644 index 00000000000..b518164df9e --- /dev/null +++ b/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb @@ -0,0 +1,18 @@ +SUMMARY = "IPC::Signal - Utility functions dealing with signals" +DESCRIPTION = "IPC::Signal - This module contains utility functions for \ +dealing with signals." + +HOMEPAGE = "http://search.cpan.org/~rosch/IPC-Signal-1.00/" +SECTION = "libs" + +LICENSE = "Artistic-1.0|GPLv1+" +LIC_FILES_CHKSUM = "file://README;beginline=16;endline=18;md5=f36550f59a0ae5e6e3b0be6a4da60d26" + +S = "${WORKDIR}/IPC-Signal-${PV}" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RO/ROSCH/IPC-Signal-${PV}.tar.gz" + +SRC_URI[md5sum] = "4cebf17fdf1785eaf8c151bf2e8c360a" +SRC_URI[sha256sum] = "7c21f9c8c2d0c0f0f0f46e77de7c3d879dd562668ddf0525875c38cef2076fd0" + +inherit cpan diff --git a/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb b/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb new file mode 100644 index 00000000000..fdc72a2b924 --- /dev/null +++ b/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb @@ -0,0 +1,21 @@ +SUMMARY = "Locale::gettext - message handling functions." +DESCRIPTION = "The gettext module permits access from perl to the gettext() family of \ +functions for retrieving message strings from databases constructed to \ +internationalize software." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~pvandry/Locale-gettext-${PV}/" + +LICENSE = "Artistic-1.0 | GPLv1+" +LIC_FILES_CHKSUM = "file://README;md5=d028249c2d08dca6ca6c5bb43b56d926" + +SRC_URI = "${CPAN_MIRROR}/authors/id/P/PV/PVANDRY/Locale-gettext-${PV}.tar.gz" + +SRC_URI[md5sum] = "bc652758af65c24500f1d06a77415019" +SRC_URI[sha256sum] = "909d47954697e7c04218f972915b787bd1244d75e3bd01620bc167d5bbc49c15" + +S = "${WORKDIR}/Locale-gettext-${PV}" + +inherit cpan + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb b/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb new file mode 100644 index 00000000000..79b4681a635 --- /dev/null +++ b/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "MIME::Charset - Charset Information for MIME." +DESCRIPTION = "MIME::Charset provides information about character sets used for MIME \ +messages on Internet." +HOMEPAGE = "http://search.cpan.org/~nezumi/MIME-Charset-${PV}/" +SECTION = "libs" + +LICENSE = "Artistic-1.0 | GPLv1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/MIME-Charset-${PV}.tar.gz" + +SRC_URI[md5sum] = "71440416376248c31aa3bef753fae28d" +SRC_URI[sha256sum] = "878c779c0256c591666bd06c0cde4c0d7820eeeb98fd1183082aee9a1e7b1d13" + +S = "${WORKDIR}/MIME-Charset-${PV}" + +inherit cpan + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libmime/libmime-types-perl_2.04.bb b/meta-perl/recipes-perl/libmime/libmime-types-perl_2.04.bb deleted file mode 100644 index ef530292286..00000000000 --- a/meta-perl/recipes-perl/libmime/libmime-types-perl_2.04.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "MIME::Types - Definition of MIME types" -DESCRIPTION = "MIME types are used in MIME compliant lines, for instance \ -as part of e-mail and HTTP traffic, to indicate the type of content which \ -is transmitted. Sometimes real knowledge about a mime-type is need.\ -\n\ -This module maintains a set of MIME::Type objects, which each describe \ -one known mime type." -HOMEPAGE = "http://search.cpan.org/~markov/MIME-Types-${PV}" -SECTION = "libraries" - -LICENSE = "Artistic-1.0|GPLv1+" -LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;md5=963ce28228347875ace682de56eef8e8" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARKOV/MIME-Types-${PV}.tar.gz \ - file://run-ptest \ - " -SRC_URI[md5sum] = "e292bbf7756bb4999407f3f660697168" -SRC_URI[sha256sum] = "22b6069d372d587b1f2ecc6d0aaf50fb5c64920caed8c214b9884e64538acc8f" - -S = "${WORKDIR}/MIME-Types-${PV}" - -inherit cpan ptest - -do_install_ptest () { - cp -r ${B}/t ${D}${PTEST_PATH} -} diff --git a/meta-perl/recipes-perl/libmime/libmime-types-perl_2.13.bb b/meta-perl/recipes-perl/libmime/libmime-types-perl_2.13.bb new file mode 100644 index 00000000000..fd51c16ac9c --- /dev/null +++ b/meta-perl/recipes-perl/libmime/libmime-types-perl_2.13.bb @@ -0,0 +1,26 @@ +SUMMARY = "MIME::Types - Definition of MIME types" +DESCRIPTION = "MIME types are used in MIME compliant lines, for instance \ +as part of e-mail and HTTP traffic, to indicate the type of content which \ +is transmitted. Sometimes real knowledge about a mime-type is need.\ +\n\ +This module maintains a set of MIME::Type objects, which each describe \ +one known mime type." +HOMEPAGE = "http://search.cpan.org/~markov/MIME-Types-${PV}" +SECTION = "libraries" + +LICENSE = "Artistic-1.0|GPLv1+" +LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;md5=963ce28228347875ace682de56eef8e8" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARKOV/MIME-Types-${PV}.tar.gz \ + file://run-ptest \ + " +SRC_URI[md5sum] = "f2892ae9e6ea660a58746699c3924817" +SRC_URI[sha256sum] = "99c3376357bbe22cc8b6c78f560aa18d81621287695cd629008a6c4e66b77bf8" + +S = "${WORKDIR}/MIME-Types-${PV}" + +inherit cpan ptest + +do_install_ptest () { + cp -r ${B}/t ${D}${PTEST_PATH} +} diff --git a/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb b/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb new file mode 100644 index 00000000000..d523a7a0c7b --- /dev/null +++ b/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb @@ -0,0 +1,34 @@ +SUMMARY = "Module::Build - Build and install Perl modules" +DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \ +Makefile.PL file to drive distribution configuration, build, test and \ +installation. Traditionally, Build.PL uses Module::Build as the underlying \ +build system. This module provides a simple, lightweight, drop-in replacement. \ +Whereas Module::Build has over 6,700 lines of code; this module has less than \ +120, yet supports the features needed by most distributions." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/release/Module-Build" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=960;endline=965;md5=624c06db56a2af4d70cf9edc29fcae1b" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz" +SRC_URI[md5sum] = "b74c2f6e84b60aad3a3defd30b6f0f4d" +SRC_URI[sha256sum] = "a6ca15d78244a7b50fdbf27f85c85f4035aa799ce7dd018a0d98b358ef7bc782" + +S = "${WORKDIR}/Module-Build-${PV}" + +inherit cpan_build + +# From: +# https://github.com/rehsack/meta-cpan/blob/master/recipes-devel/module-build-perl/module-build-perl_0.4216.bb +# +do_patch_module_build () { + cd ${S} + sed -i -e 's,my $interpreter = $self->{properties}{perl};,my $interpreter = "${bindir}/perl";,g' lib/Module/Build/Base.pm +} + +do_patch[postfuncs] += "do_patch_module_build" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.036.bb b/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.036.bb deleted file mode 100644 index 761f17cc34d..00000000000 --- a/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.036.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "Module::Build::Tiny - A tiny replacement for Module::Build" -DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \ -Makefile.PL file to drive distribution configuration, build, test and \ -installation. Traditionally, Build.PL uses Module::Build as the underlying \ -build system. This module provides a simple, lightweight, drop-in replacement. \ -Whereas Module::Build has over 6,700 lines of code; this module has less than \ -120, yet supports the features needed by most distributions." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~leont/Module-Build-Tiny/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://LICENSE;md5=aaca61412962cf972aec0cdad99d0a84" - -DEPENDS = "libextutils-config-perl-native libextutils-helpers-perl-native libextutils-installpaths-perl-native" - -SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-Tiny-${PV}.tar.gz" -SRC_URI[md5sum] = "bfc92c655158ce623f0ced94f4ef02e5" -SRC_URI[sha256sum] = "d6706bf35e080e5af20cccf4fd565cc8af9c2a1e2e2075cee0a7de42cf0d6df9" - -S = "${WORKDIR}/Module-Build-Tiny-${PV}" - -inherit cpan_build - -do_install () { - cpan_build_do_install -} - -RDEPENDS_${PN} = " libextutils-config-perl \ - libextutils-helpers-perl \ - libextutils-installpaths-perl \ - perl-module-xsloader \ - perl-module-file-spec \ - perl-module-io-handle \ - perl-module-tap-harness-env \ - perl-module-ipc-open3 \ - perl-module-file-path \ - perl-module-cpan \ - perl-module-extutils-cbuilder \ - perl-module-getopt-long \ - perl-module-extutils-makemaker \ - perl-module-exporter \ - perl-module-carp \ - perl-module-test-more \ - perl-module-text-parsewords \ - perl-module-load \ - perl-module-file-temp \ - perl-module-data-dumper \ - perl-module-extutils-parsexs \ - perl-module-pod-man \ - perl-module-json-pp \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb b/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb new file mode 100644 index 00000000000..b1a56e56db7 --- /dev/null +++ b/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb @@ -0,0 +1,54 @@ +SUMMARY = "Module::Build::Tiny - A tiny replacement for Module::Build" +DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \ +Makefile.PL file to drive distribution configuration, build, test and \ +installation. Traditionally, Build.PL uses Module::Build as the underlying \ +build system. This module provides a simple, lightweight, drop-in replacement. \ +Whereas Module::Build has over 6,700 lines of code; this module has less than \ +120, yet supports the features needed by most distributions." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~leont/Module-Build-Tiny/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=57b8100f0b648cd37fbc3725fe3c111a" + +DEPENDS = "libextutils-config-perl-native libextutils-helpers-perl-native libextutils-installpaths-perl-native" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-Tiny-${PV}.tar.gz" +SRC_URI[md5sum] = "2332c90c17454107fea3f2614e11a3a9" +SRC_URI[sha256sum] = "7d580ff6ace0cbe555bf36b86dc8ea232581530cbeaaea09bccb57b55797f11c" + +S = "${WORKDIR}/Module-Build-Tiny-${PV}" + +inherit cpan_build + +do_install () { + cpan_build_do_install +} + +RDEPENDS_${PN} = " libextutils-config-perl \ + libextutils-helpers-perl \ + libextutils-installpaths-perl \ + perl-module-xsloader \ + perl-module-file-spec \ + perl-module-io-handle \ + perl-module-tap-harness-env \ + perl-module-ipc-open3 \ + perl-module-file-path \ + perl-module-cpan \ + perl-module-extutils-cbuilder \ + perl-module-getopt-long \ + perl-module-extutils-makemaker \ + perl-module-exporter \ + perl-module-carp \ + perl-module-test-more \ + perl-module-text-parsewords \ + perl-module-load \ + perl-module-file-temp \ + perl-module-data-dumper \ + perl-module-extutils-parsexs \ + perl-module-pod-man \ + perl-module-json-pp \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.1.bb b/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.1.bb deleted file mode 100644 index b9169180708..00000000000 --- a/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.1.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Automatically give your module the ability to have plugins" -DESCRIPTION = "Provides a simple but, hopefully, extensible way of \ -having 'plugins' for your module. Obviously this isn't going to be the \ -be all and end all of solutions but it works for me.\ -\ -Essentially all it does is export a method into your namespace that \ -looks through a search path for .pm files and turn those into class \ -names.\ -\ -Optionally it instantiates those classes for you." -SECTION = "libs" - -AUTHOR = "Simon Wistow " -HOMEPAGE = "https://github.com/simonwistow/Module-Pluggable" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://README;beginline=322;endline=325;md5=086450ce010f6fda25db0b38fcc41086" - -SRCNAME = "Module-Pluggable" -SRC_URI = "${CPAN_MIRROR}/authors/id/S/SI/SIMONW/${SRCNAME}-${PV}.tar.gz" -SRC_URI[md5sum] = "1b71ed7a67ad8c048d1499540bc892ba" -SRC_URI[sha256sum] = "e2dc354043bb16f1f3df8c4bb26070b26e594819f218cf8b8ac19e79c720916f" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit cpan_build - -RDEPENDS_${PN} = " perl-module-base \ - perl-module-deprecate \ - perl-module-file-basename \ - perl-module-file-find \ - perl-module-file-spec \ - perl-module-file-spec-functions \ - perl-module-if \ - perl-module-test-more \ -" - -BBCLASSEXTEND = "native" - diff --git a/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb b/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb new file mode 100644 index 00000000000..c73a15a4fec --- /dev/null +++ b/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb @@ -0,0 +1,39 @@ +SUMMARY = "Automatically give your module the ability to have plugins" +DESCRIPTION = "Provides a simple but, hopefully, extensible way of \ +having 'plugins' for your module. Obviously this isn't going to be the \ +be all and end all of solutions but it works for me.\ +\ +Essentially all it does is export a method into your namespace that \ +looks through a search path for .pm files and turn those into class \ +names.\ +\ +Optionally it instantiates those classes for you." +SECTION = "libs" + +AUTHOR = "Simon Wistow " +HOMEPAGE = "https://github.com/simonwistow/Module-Pluggable" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=322;endline=325;md5=086450ce010f6fda25db0b38fcc41086" + +SRCNAME = "Module-Pluggable" +SRC_URI = "https://github.com/moto-timo/${SRCNAME}/archive/${PV}.tar.gz" +SRC_URI[md5sum] = "e32475d6ff5843f738cedacd3b7a2cdb" +SRC_URI[sha256sum] = "58c62292eea6d06959eba1b97598650813211265403242d57efb2f605c96059f" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-base \ + perl-module-deprecate \ + perl-module-file-basename \ + perl-module-file-find \ + perl-module-file-spec \ + perl-module-file-spec-functions \ + perl-module-if \ + perl-module-test-more \ +" + +BBCLASSEXTEND = "native" + diff --git a/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.014.bb b/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.014.bb deleted file mode 100644 index d68ae2a888b..00000000000 --- a/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.014.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Module::Runtime - runtime module handling" -DESCRIPTION = "The functions exported by this module deal with runtime \ -handling of Perl modules, which are normally handled at compile time. This \ -module avoids using any other modules, so that it can be used in low-level \ -infrastructure. \ -The parts of this module that work with module names apply the same syntax \ -that is used for barewords in Perl source. In principle this syntax can vary \ -between versions of Perl, and this module applies the syntax of the Perl on \ -which it is running. In practice the usable syntax hasn't changed yet, but \ -there's a good chance of it changing in Perl 5.18. \ -The functions of this module whose purpose is to load modules include \ -workarounds for three old Perl core bugs regarding require. These workarounds \ -are applied on any Perl version where the bugs exist, except for a case where \ -one of the bugs cannot be adequately worked around in pure Perl." -SECTION = "libs" - -HOMEPAGE = "http://search.cpan.org/~zefram/Module-Runtime/" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://README;beginline=43;endline=44;md5=62e24a93342fede7221d66335c716f34" - -SRC_URI = "${CPAN_MIRROR}/authors/id/Z/ZE/ZEFRAM/Module-Runtime-${PV}.tar.gz" -SRC_URI[md5sum] = "a6597bc25536a30476f0d75b64d35734" -SRC_URI[sha256sum] = "4c44fe0ea255a9fd00741ee545063f6692d2a28e7ef2fbaad1b24a92803362a4" - -S = "${WORKDIR}/Module-Runtime-${PV}" - -inherit cpan_build - -RDEPENDS_${PN} = " perl-module-test-more \ - perl-module-strict \ - perl-module-build \ -" - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.015.bb b/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.015.bb new file mode 100644 index 00000000000..b92842c463a --- /dev/null +++ b/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.015.bb @@ -0,0 +1,35 @@ +SUMMARY = "Module::Runtime - runtime module handling" +DESCRIPTION = "The functions exported by this module deal with runtime \ +handling of Perl modules, which are normally handled at compile time. This \ +module avoids using any other modules, so that it can be used in low-level \ +infrastructure. \ +The parts of this module that work with module names apply the same syntax \ +that is used for barewords in Perl source. In principle this syntax can vary \ +between versions of Perl, and this module applies the syntax of the Perl on \ +which it is running. In practice the usable syntax hasn't changed yet, but \ +there's a good chance of it changing in Perl 5.18. \ +The functions of this module whose purpose is to load modules include \ +workarounds for three old Perl core bugs regarding require. These workarounds \ +are applied on any Perl version where the bugs exist, except for a case where \ +one of the bugs cannot be adequately worked around in pure Perl." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~zefram/Module-Runtime/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=45;endline=46;md5=62e24a93342fede7221d66335c716f34" + +SRCNAME = "module-runtime" +SRC_URI = "https://github.com/moto-timo/${SRCNAME}/archive/${PV}.tar.gz" +SRC_URI[md5sum] = "ad6ca179c978aa02ac8aa29244ef9beb" +SRC_URI[sha256sum] = "59effa82b3f6986d28de6154a8f2428157691004d951f936a81e851f4dbcb045" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-test-more \ + perl-module-strict \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003002.bb b/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003002.bb new file mode 100644 index 00000000000..a0fe4927fa0 --- /dev/null +++ b/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003002.bb @@ -0,0 +1,44 @@ +SUMMARY = "Moo - Minimalist Object Orientation (with Moose compatibility)" +DESCRIPTION = "This module us an extremely light-weight subset of \"Moose\" \ +optimised for rapid startup and \"pay only for what you use\"." + +SECTION = "libs" + +HOMEPAGE = "http://metapan.org/release/Moo/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=731;endline=776;md5=27efedd175eeaddbd18f4e3572bd72a8" + +SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Moo-${PV}.tar.gz" +SRC_URI[md5sum] = "e9f1f3159555ecebcd062e998f297a94" +SRC_URI[sha256sum] = "f3e9741e79baa63e89f5a08706cd80d18c0a5a37e3d898847e002310e06582f1" + +S = "${WORKDIR}/Moo-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " libclass-method-modifiers-perl \ + libdevel-globaldestruction-perl \ + libmodule-runtime-perl \ + librole-tiny-perl \ + perl-module-constant \ + perl-module-exporter \ + perl-module-mro \ + perl-module-scalar-util \ +" + +RPROVIDES_${PN} = " libmethod-inliner-perl \ + libmethod-generate-accessor-perl \ + libmethod-generate-buildall-perl \ + libmethod-generate-constructor-perl \ + libmethod-generate-demolishall-perl \ + libmoo-perl \ + libmoo-handlemoose-perl \ + libmoo-handlemoose-fakemetaclass-perl \ + libmoo-object-perl \ + libmoo-role-perl \ + libsub-defer-perl \ + libsub-quote-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libnet/libnet-dns-perl_0.81.bb b/meta-perl/recipes-perl/libnet/libnet-dns-perl_0.81.bb deleted file mode 100644 index 9dc426860e0..00000000000 --- a/meta-perl/recipes-perl/libnet/libnet-dns-perl_0.81.bb +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION = "This package contains the DNS.pm module with friends." - -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" - -LIC_FILES_CHKSUM = "file://README;md5=524da96a3365f2caff73fea0ae67c3a0" - -DEPENDS += "perl" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz" - -SRC_URI[md5sum] = "26375d4310beb108b0e2b3bf30403ee5" -SRC_URI[sha256sum] = "b36c8ead6edf68da5d9de2b0a22a47d7216e2d7eb52c8cde96724988f68a6d46" - -S = "${WORKDIR}/Net-DNS-${PV}" - -EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}" - -inherit cpan - -do_compile() { - export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" - cpan_do_compile -} -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.13.bb b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.13.bb new file mode 100644 index 00000000000..da274efdf47 --- /dev/null +++ b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.13.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "This package contains the DNS.pm module with friends." +HOMEPAGE = "http://www.net-dns.org/" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +LIC_FILES_CHKSUM = "file://README;md5=92d93d8c5bf22de77578531e283dd219" + +DEPENDS += "perl" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz" + +SRC_URI[md5sum] = "ed0c4c22daaf88c4071bae13b6f71f99" +SRC_URI[sha256sum] = "7ec76663365f2f96de46fe07bd6c9d45ab21171ae83954e8d1b816428b518c36" + +S = "${WORKDIR}/Net-DNS-${PV}" + +EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}" + +inherit cpan + +do_compile() { + export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" + cpan_do_compile +} +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb b/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb new file mode 100644 index 00000000000..f2b1f1634d9 --- /dev/null +++ b/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb @@ -0,0 +1,29 @@ +SUMMARY = "LDAP Perl module" +DESCRIPTION = "Net::LDAP is a collection of modules that implements \ +a LDAP services API for Perl programs. The module may be used to \ +search directories or perform maintenance functions such as adding, \ +deleting or modifying entries." + +SECTION = "libs" + +LICENSE = "Artistic-1.0|GPLv1+" +LIC_FILES_CHKSUM = "file://README;beginline=3;endline=5;md5=4d6588c2fa0d38ae162f6314d201d89e" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARSCHAP/perl-ldap-${PV}.tar.gz" + +SRC_URI[md5sum] = "d057c8db76913d95c0e460c7bdd98b27" +SRC_URI[sha256sum] = "5f57dd261dc16ebf942a272ddafe69526598df71151a51916edc37a4f2f23834" + +S = "${WORKDIR}/perl-ldap-${PV}" + +inherit cpan + +do_configure_prepend() { + perl -pi -e 's/auto_install_now.*//g' Makefile.PL +} + +RDEPENDS_${PN} = "perl \ + libconvert-asn1-perl \ + libio-socket-ssl-perl \ + libauthen-sasl-perl \ +" diff --git a/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb b/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb index fd3ff8d9587..1ef9f0bc356 100644 --- a/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb +++ b/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb @@ -10,7 +10,7 @@ HOMEPAGE = "http://search.cpan.org/dist/Net-LibIDN/" DEPENDS += "libidn" # We must need glibc-gconvs to enable charset related functions, # such as Net::LibIDN::idn_to_ascii(). -RDEPENDS_${PN} += "glibc-gconvs" +RDEPENDS_${PN}_append_libc-glibc = " glibc-gconvs" SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TH/THOR/Net-LibIDN-${PV}.tar.gz" SRC_URI[md5sum] = "c3e4de2065009d67bcb1df0afb473e12" @@ -30,5 +30,5 @@ inherit cpan FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Net/LibIDN/.debug/" do_configure_prepend() { - rm -rf ${S}/.pc/ + rm -rf ${S}/.pc/ } diff --git a/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.65.bb b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.65.bb deleted file mode 100644 index f6c4b8b36ca..00000000000 --- a/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.65.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "Net::SSLeay - Perl extension for using OpenSSL" -DESCRIPTION = "This module offers some high level convenience functions for accessing \ -web pages on SSL servers (for symmetry, same API is offered for \ -accessing http servers, too), a sslcat() function for writing your own \ -clients, and finally access to the SSL api of SSLeay/OpenSSL package \ -so you can write servers or clients for more complicated applications." -HOMEPAGE = "http://search.cpan.org/dist/Net-SSLeay/" -SECTION = "libs" - -LICENSE = "OpenSSL" -LIC_FILES_CHKSUM = "file://README;beginline=274;endline=294;md5=49f415984b387be999ee2ad0e5c692fe" - -DEPENDS = "openssl zlib" -RDEPENDS_${PN} += "perl-module-carp \ - perl-module-errno \ - perl-module-extutils-makemaker \ - perl-module-mime-base64 \ - perl-module-socket \ - " - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-${PV}.tar.gz \ - file://run-ptest \ - " -SRC_URI[md5sum] = "19600c036e9e0bbfbf9157f083e40755" -SRC_URI[sha256sum] = "2fb1371120b85f018944d95736c107163f04ba56b6029c0709a2c3d6247b9c06" - -S = "${WORKDIR}/Net-SSLeay-${PV}" - -inherit cpan ptest - -EXTRA_CPANFLAGS = "LIBS='-L=${STAGING_LIBDIR} -L=${STAGING_BASELIBDIR}' \ - INC=-I=${STAGING_INCDIR} \ - 'EXTRALIBS=-lssl -lcrypto -lz' \ - 'LDLOADLIBS=-lssl -lcrypto -lz' \ - " - -do_configure_prepend() { - export OPENSSL_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} -} - -do_install_ptest() { - cp -r ${B}/t ${D}${PTEST_PATH} -} - -BBCLASSEXTEND = "native" - -FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Net/SSLeay/.debug/" diff --git a/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.81.bb b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.81.bb new file mode 100644 index 00000000000..a861b69e995 --- /dev/null +++ b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.81.bb @@ -0,0 +1,44 @@ +SUMMARY = "Net::SSLeay - Perl extension for using OpenSSL" +DESCRIPTION = "This module offers some high level convenience functions for accessing \ +web pages on SSL servers (for symmetry, same API is offered for \ +accessing http servers, too), a sslcat() function for writing your own \ +clients, and finally access to the SSL api of SSLeay/OpenSSL package \ +so you can write servers or clients for more complicated applications." +HOMEPAGE = "http://search.cpan.org/dist/Net-SSLeay/" +SECTION = "libs" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=274;endline=294;md5=67d67095d83e339da538a082fad5f38e" + +DEPENDS = "openssl zlib openssl-native" +RDEPENDS_${PN} += "perl-module-carp \ + perl-module-errno \ + perl-module-extutils-makemaker \ + perl-module-mime-base64 \ + perl-module-socket \ + " + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-${PV}.tar.gz \ + file://run-ptest \ + " +SRC_URI[md5sum] = "71932ce34d4db44de8d00399c3405792" +SRC_URI[sha256sum] = "00cbb6174e628b42178e1445c9fd5a3c5ae2cfd6a5a43e03610ba14786f21b7d" + +S = "${WORKDIR}/Net-SSLeay-${PV}" + +inherit cpan ptest + +EXTRA_CPANFLAGS = "LIBS='-L=${STAGING_LIBDIR} -L=${STAGING_BASELIBDIR}' \ + INC=-I=${STAGING_INCDIR} \ + '-lssl -lcrypto -lz' \ + " + +do_install_ptest() { + cp -r ${B}/t ${D}${PTEST_PATH} +} + +BBCLASSEXTEND = "native" + +FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Net/SSLeay/.debug/" + +RDEPENDS_${PN}-ptest = " perl" diff --git a/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb b/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb new file mode 100644 index 00000000000..652e8c941e1 --- /dev/null +++ b/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb @@ -0,0 +1,25 @@ +SUMMARY = "Net-Telnet Perl module" +DESCRIPTION = "Net::Telnet allows you to make client connections to a TCP port and do \ +network I/O, especially to a port using the TELNET protocol. Simple I/O \ +methods such as print, get, and getline are provided. More sophisticated \ +interactive features are provided because connecting to a TELNET port \ +ultimately means communicating with a program designed for human interaction. \ +These interactive features include the ability to specify a time-out and to \ +wait for patterns to appear in the input stream, such as the prompt from a \ +shell." + +HOMEPAGE = "http://search.cpan.org/dist/Net-Telnet/" +SECTION = "Development/Libraries" + +LICENSE = "Artistic-1.0|GPLv1+" +LIC_FILES_CHKSUM = "file://README;beginline=4;endline=7;md5=3fd238bfb6ee1810cb15d5d95e07b0f5" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JR/JROGERS/Net-Telnet-${PV}.tar.gz" +SRC_URI[md5sum] = "d2514080116c1b0fa5f96295c84538e3" +SRC_URI[sha256sum] = "e64d567a4e16295ecba949368e7a6b8b5ae2a16b3ad682121d9b007dc5d2a37a" + +S = "${WORKDIR}/Net-Telnet-${PV}" + +inherit cpan + +RDEPENDS_${PN} = "perl" diff --git a/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb b/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb new file mode 100644 index 00000000000..1599e61f134 --- /dev/null +++ b/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb @@ -0,0 +1,20 @@ +SUMMARY = "Interpret and act on wait() status values" +DESCRIPTION = "This module contains functions for interpreting and acting \ +on wait status values." + +HOMEPAGE = "http://search.cpan.org/~rosch/Proc-WaitStat/" +SECTION = "libraries" + +LICENSE = "Artistic-1.0|GPLv1+" +LIC_FILES_CHKSUM = "file://README;beginline=21;endline=23;md5=f36550f59a0ae5e6e3b0be6a4da60d26" + +RDEPENDS_${PN} += "perl libipc-signal-perl" + +S = "${WORKDIR}/Proc-WaitStat-${PV}" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RO/ROSCH/Proc-WaitStat-${PV}.tar.gz" + +SRC_URI[md5sum] = "b911bd579b6b142391b21de1efa30c95" +SRC_URI[sha256sum] = "d07563f5e787909d16e7390241e877f49ab739b1de9d0e2ea1a41bd0bf4474bc" + +inherit cpan diff --git a/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000005.bb b/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000005.bb new file mode 100644 index 00000000000..f684f684bf2 --- /dev/null +++ b/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000005.bb @@ -0,0 +1,29 @@ +SUMMARY = "Role::Tiny - Roles. Like a nouvelle cousine portion size of Moose." +DESCRIPTION = "\"Role::Tiny\" is a minimalist role composition tool." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/pod/Role::Tiny" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=177;endline=214;md5=26df7e7c20551fb1906e2286624f0b71" + +SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Role-Tiny-${PV}.tar.gz" +SRC_URI[md5sum] = "c8c5cf1e02d2e0a1ed22530b55b67d66" +SRC_URI[sha256sum] = "593a29b621e029bf0218d0154d5dfdf6ec502afc49adeeadae6afd0c70063115" + +S = "${WORKDIR}/Role-Tiny-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-exporter \ + perl-module-strict \ + perl-module-test-more \ + perl-module-warnings \ +" + +RPROVIDES_${PN} = " librole-tiny-perl \ + librole-tiny-with-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb b/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb new file mode 100644 index 00000000000..a6808d3f8e7 --- /dev/null +++ b/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb @@ -0,0 +1,45 @@ +SUMMARY = "strictures - turn on strict and make all warnings fatal" +DESCRIPTION = "I've been writing the equivalent of this module at the top \ +of my code for about a year now. I figured it was time to make it shorter. \ +\ +Things like the importer in \"use Moose\" don't help me because they turn \ +warnings on but don't make them fatal -- which from my point of view is \ +useless because I want an exception to tell me my code isn't warnings-clean. \ +\ +Any time I see a warning from my code, that indicates a mistake. \ +\ +Any time my code encounters a mistake, I want a crash -- not spew to STDERR \ +and then unknown (and probably undesired) subsequent behaviour. \ +\ +I also want to ensure that obvious coding mistakes, like indirect object \ +syntax (and not so obvious mistakes that cause things to accidentally compile \ +as such) get caught, but not at the cost of an XS dependency and not at the \ +cost of blowing things up on another machine. \ +\ +Therefore, \"strictures\" turns on additional checking, but only when it \ +thinks it's running in a test file in a VCS checkout -- although if this \ +causes undesired behaviour this can be overridden by setting the \ +PERL_STRICTURES_EXTRA environment variable." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/pod/strictures" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=246;endline=262;md5=43be558cf4f19823cdd6af22135cf5f8" + +SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/strictures-${PV}.tar.gz" +SRC_URI[md5sum] = "78244cfab6168dcf196370d1e2309536" +SRC_URI[sha256sum] = "27f8ea096a521e9754d36ea32889c2cda28346d04e3e399e7ea118d182dbaf22" + +S = "${WORKDIR}/strictures-${PV}" + +inherit cpan + +RDEPENDS_${PN} = " perl-module-carp \ + perl-module-strict \ + perl-module-test-more \ + perl-module-warnings \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb b/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb new file mode 100644 index 00000000000..64d19c0f1f2 --- /dev/null +++ b/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb @@ -0,0 +1,30 @@ +SUMMARY = "Sub::Exporter::Progressive - Only use Sub::Exporter if you need it." +DESCRIPTION = "\"Sub::Exporter\" is an incredibly powerful module, but with \ +that power comes great responsibility, er- as well as some runtime penalties. \ +This module is a \"Sub::Exporter\" wrapper that will let your users just use \ +\"Exporter\" if all they are doing is picking exports, but use \ +\"Sub::Exporter\" if your users try to use \"Sub::Exporter's\" more advanced \ +features, like renaming exports, if they try to use them." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/pod/Sub-Exporter-Progressive/" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=003fa970662359a43ac2c2961108b0f1" + +DEPENDS_${PN} = " perl-module-test-more" + +SRC_URI = "${CPAN_MIRROR}/authors/id/F/FR/FREW/Sub-Exporter-Progressive-${PV}.tar.gz" +SRC_URI[md5sum] = "72cf6acdd2a0a8b105821a4db98e4ebe" +SRC_URI[sha256sum] = "d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056" + +S = "${WORKDIR}/Sub-Exporter-Progressive-${PV}" + +inherit cpan + +RDEPENDS_${PN} += " perl-module-carp \ + perl-module-list-util \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb b/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb new file mode 100644 index 00000000000..6b76682c681 --- /dev/null +++ b/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb @@ -0,0 +1,36 @@ +SUMMARY = "Term::ReadKey - A perl module for simple terminal control." +DESCRIPTION = "Term::ReadKey is a compiled perl module dedicated to providing simple \ +control over terminal driver modes (cbreak, raw, cooked, etc.,) support \ +for non-blocking reads, if the architecture allows, and some generalized \ +handy functions for working with terminals. One of the main goals is to \ +have the functions as portable as possible, so you can just plug in "use \ +Term::ReadKey" on any architecture and have a good likelihood of it \ +working." +HOMEPAGE = "http://search.cpan.org/~jstowe/TermReadKey-${PV}" +SECTION = "libraries" + +LICENSE = "Artistic-1.0 | GPLv1+" +LIC_FILES_CHKSUM = "file://README;md5=c275db663c8489a5709ebb22b185add5" + +SRC_URI = "${CPAN_MIRROR}/authors/id/J/JS/JSTOWE/TermReadKey-${PV}.tar.gz" + +SRC_URI[md5sum] = "e8ea15c16333ac4f8d146d702e83cc0c" +SRC_URI[sha256sum] = "4a9383cf2e0e0194668fe2bd546e894ffad41d556b41d2f2f577c8db682db241" + +S = "${WORKDIR}/TermReadKey-${PV}" + +# It needs depend on native to let dynamic loader use native modules +# rather than target ones. +DEPENDS = "libterm-readkey-perl-native" + +inherit cpan + +do_configure_append () { + # Hack the dynamic module loader so that it use native modules since it can't load + # the target ones. + if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then + sed -i -e "s#-I\$(INST_ARCHLIB)#-I${STAGING_BINDIR_NATIVE}/perl-native/perl/vendor_perl/${@get_perl_version(d)}#g" Makefile + fi +} + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.30.bb b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.30.bb deleted file mode 100644 index c3d9674bf80..00000000000 --- a/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.30.bb +++ /dev/null @@ -1,80 +0,0 @@ -SUMMARY = "Test::Harness - Run Perl standard test scripts with statistics" -DESCRIPTION = "Although, for historical reasons, the Test::Harness \ -distribution takes its name from this module it now exists only to provide \ -TAP::Harness with an interface that is somewhat backwards compatible \ -with Test::Harness 2.xx. If you're writing new code consider using \ -TAP::Harness directly instead. \ -\ -Emulation is provided for runtests and execute_tests but the \ -pluggable 'Straps' interface that previous versions of Test::Harness \ -supported is not reproduced here. Straps is now available as a stand \ -alone module: Test::Harness::Straps. \ -\ -See TAP::Parser, TAP::Harness for the main documentation for this \ -distribution." - -SECTION = "libs" - -HOMEPAGE = "http://testanything.org" - -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://README;beginline=29;endline=30;md5=b08db4360eec119e875dddd7cb8a5ddd" - -SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Test-Harness-${PV}.tar.gz" -SRC_URI[md5sum] = "c1ff25da5dfdf77adea13dc3465638dd" -SRC_URI[sha256sum] = "ff1900f3b3e61321d3c4b3283298f3106d43d55446605e9cfcf1dcec036acec1" - -S = "${WORKDIR}/Test-Harness-${PV}" - -inherit cpan - -RPROVIDES_${PN} += "libapp-prove-perl \ - libapp-prove-state-perl \ - libapp-prove-state-result-perl \ - libapp-prove-state-result-test-perl \ - libtap-base-perl \ - libtap-formatter-base-perl \ - libtap-formatter-color-perl \ - libtap-formatter-console-perl \ - libtap-formatter-console-parallelsession-perl \ - libtap-formatter-console-session-perl \ - libtap-formatter-file-perl \ - libtap-formatter-file-session-perl \ - libtap-formatter-session-perl \ - libtap-harness-perl \ - libtap-harness-env-perl \ - libtap-object-perl \ - libtap-parser-perl \ - libtap-parser-aggregator-perl \ - libtap-parser-grammar-perl \ - libtap-parser-iterator-perl \ - libtap-parser-iterator-array-perl \ - libtap-parser-iterator-process-perl \ - libtap-parser-iterator-stream-perl \ - libtap-parser-iteratorfactory-perl \ - libtap-parser-multiplexer-perl \ - libtap-parser-result-perl \ - libtap-parsser-result-bailout-perl \ - libtap-parser-result-comment-perl \ - libtap-parser-result-plan-perl \ - libtap-parser-result-pragma-perl \ - libtap-parser-result-test-perl \ - libtap-parser-result-unknown-perl \ - libtap-parser-result-version-perl \ - libtap-parser-result-yaml-perl \ - libtap-parser-resultfactory-perl \ - libtap-parser-scheduler-perl \ - libtap-parser-scheduler-job-perl \ - libtap-parser-scheduler-spinner-perl \ - libtap-parser-source-perl \ - libtap-parser-sourcehandler-perl \ - libtap-parser-sourcehandler-executable-perl \ - libtap-parser-sourcehandler-file-perl \ - libtap-parser-sourcehandler-handle-perl \ - libtap-parser-sourcehandler-perl-perl \ - libtap-parser-sourcehandler-rawtap-perl \ - libtap-parser-yamlish-reader-perl \ - libtap-parser-yamlish-writer-perl \ - " - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.36.bb b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.36.bb new file mode 100644 index 00000000000..1aed5e0d621 --- /dev/null +++ b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.36.bb @@ -0,0 +1,80 @@ +SUMMARY = "Test::Harness - Run Perl standard test scripts with statistics" +DESCRIPTION = "Although, for historical reasons, the Test::Harness \ +distribution takes its name from this module it now exists only to provide \ +TAP::Harness with an interface that is somewhat backwards compatible \ +with Test::Harness 2.xx. If you're writing new code consider using \ +TAP::Harness directly instead. \ +\ +Emulation is provided for runtests and execute_tests but the \ +pluggable 'Straps' interface that previous versions of Test::Harness \ +supported is not reproduced here. Straps is now available as a stand \ +alone module: Test::Harness::Straps. \ +\ +See TAP::Parser, TAP::Harness for the main documentation for this \ +distribution." + +SECTION = "libs" + +HOMEPAGE = "http://testanything.org" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=29;endline=30;md5=b08db4360eec119e875dddd7cb8a5ddd" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Test-Harness-${PV}.tar.gz" +SRC_URI[md5sum] = "4c8d9c77e8e06ca96c7383c05c8f3616" +SRC_URI[sha256sum] = "e7566f13b041d028b56f184b77ec2545ec6f0bb5a0f8f5368f7e4a08b496b63e" + +S = "${WORKDIR}/Test-Harness-${PV}" + +inherit cpan + +RPROVIDES_${PN} += "libapp-prove-perl \ + libapp-prove-state-perl \ + libapp-prove-state-result-perl \ + libapp-prove-state-result-test-perl \ + libtap-base-perl \ + libtap-formatter-base-perl \ + libtap-formatter-color-perl \ + libtap-formatter-console-perl \ + libtap-formatter-console-parallelsession-perl \ + libtap-formatter-console-session-perl \ + libtap-formatter-file-perl \ + libtap-formatter-file-session-perl \ + libtap-formatter-session-perl \ + libtap-harness-perl \ + libtap-harness-env-perl \ + libtap-object-perl \ + libtap-parser-perl \ + libtap-parser-aggregator-perl \ + libtap-parser-grammar-perl \ + libtap-parser-iterator-perl \ + libtap-parser-iterator-array-perl \ + libtap-parser-iterator-process-perl \ + libtap-parser-iterator-stream-perl \ + libtap-parser-iteratorfactory-perl \ + libtap-parser-multiplexer-perl \ + libtap-parser-result-perl \ + libtap-parsser-result-bailout-perl \ + libtap-parser-result-comment-perl \ + libtap-parser-result-plan-perl \ + libtap-parser-result-pragma-perl \ + libtap-parser-result-test-perl \ + libtap-parser-result-unknown-perl \ + libtap-parser-result-version-perl \ + libtap-parser-result-yaml-perl \ + libtap-parser-resultfactory-perl \ + libtap-parser-scheduler-perl \ + libtap-parser-scheduler-job-perl \ + libtap-parser-scheduler-spinner-perl \ + libtap-parser-source-perl \ + libtap-parser-sourcehandler-perl \ + libtap-parser-sourcehandler-executable-perl \ + libtap-parser-sourcehandler-file-perl \ + libtap-parser-sourcehandler-handle-perl \ + libtap-parser-sourcehandler-perl-perl \ + libtap-parser-sourcehandler-rawtap-perl \ + libtap-parser-yamlish-reader-perl \ + libtap-parser-yamlish-writer-perl \ + " + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb b/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb new file mode 100644 index 00000000000..9057ae7fa49 --- /dev/null +++ b/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb @@ -0,0 +1,27 @@ +SUMMARY = "Text::CharWidth - Get number of occupied columns of a string on terminal." +DESCRIPTION = "This module supplies features similar as wcwidth(3) and wcswidth(3) \ +in C language. \ +Characters have its own width on terminal depending on locale. For \ +example, ASCII characters occupy one column per character, east Asian \ +fullwidth characters (like Hiragana or Han Ideograph) occupy two columns \ +per character, and combining characters (apperaring in ISO-8859-11 Thai, \ +Unicode, and so on) occupy zero columns per character. mbwidth() gives the \ +width of the first character of the given string and mbswidth() gives the \ +width of the whole given string." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~kubota/Text-CharWidth-${PV}/" + +LICENSE = "Artistic-1.0 | GPLv1+" +LIC_FILES_CHKSUM = "file://README;md5=d8d54c8c500cbdd57a4c15911d9d96db" + +SRC_URI = "${CPAN_MIRROR}/authors/id/K/KU/KUBOTA/Text-CharWidth-${PV}.tar.gz" + +SRC_URI[md5sum] = "37a723df0580c0758c0ee67b37336c15" +SRC_URI[sha256sum] = "abded5f4fdd9338e89fd2f1d8271c44989dae5bf50aece41b6179d8e230704f8" + +S = "${WORKDIR}/Text-CharWidth-${PV}" + +inherit cpan + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb b/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb index 934be0399f0..275ccb8c969 100644 --- a/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb +++ b/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb @@ -10,7 +10,7 @@ documentation." SECTION = "libs" LICENSE = "Artistic-1.0 | GPL-1.0+" LIC_FILES_CHKSUM = "file://README;beginline=3;endline=6;md5=fadf2919c7128e887d26b4d905f90649" -RRECOMMENDS_${PN} += "glibc-gconvs" +RRECOMMENDS_${PN}_append_libc-glibc = " glibc-gconvs" SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MP/MPIOTR/Text-Iconv-${PV}.tar.gz" diff --git a/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb b/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb new file mode 100644 index 00000000000..b2c239d79b2 --- /dev/null +++ b/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb @@ -0,0 +1,32 @@ +SUMMARY = "Text::WrapI18N - Line wrapping module with support for multibyte, \ +fullwidth, and combining characters and languages without whitespaces \ +between words." +DESCRIPTION = "This module intends to be a better Text::Wrap module. This module is \ +needed to support multibyte character encodings such as UTF-8, EUC-JP, \ +EUC-KR, GB2312, and Big5. This module also supports characters with \ +irregular widths, such as combining characters (which occupy zero columns \ +on terminal, like diacritical marks in UTF-8) and fullwidth characters \ +(which occupy two columns on terminal, like most of east Asian \ +characters). Also, minimal handling of languages which doesn't use \ +whitespaces between words (like Chinese and Japanese) is supported." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~kubota/Text-WrapI18N-${PV}/" + +LICENSE = "Artistic-1.0 | GPLv1+" +LIC_FILES_CHKSUM = "file://README;md5=080862e1e40cdcddef4393e137285858" + +SRC_URI = "${CPAN_MIRROR}/authors/id/K/KU/KUBOTA/Text-WrapI18N-${PV}.tar.gz" + +SRC_URI[md5sum] = "0799c16a00926e6c18d400c2e2861d5f" +SRC_URI[sha256sum] = "4bd29a17f0c2c792d12c1005b3c276f2ab0fae39c00859ae1741d7941846a488" + +S = "${WORKDIR}/Text-WrapI18N-${PV}" + +DEPENDS = "libtext-charwidth-perl" + +RDEPENDS_${PN} = "libtext-charwidth-perl" + +inherit cpan + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb b/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb new file mode 100644 index 00000000000..5ccb411fa51 --- /dev/null +++ b/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb @@ -0,0 +1,26 @@ +SUMMARY = "Unicode::LineBreak - UAX #14 Unicode Line Breaking Algorithm." +DESCRIPTION = "Unicode::LineBreak performs Line Breaking Algorithm described in Unicode \ +Standard Annex #14 [UAX #14]. East_Asian_Width informative property \ +defined by Annex #11 [UAX #11] will be concerned to determine breaking \ +positions." +SECTION = "libs" + +HOMEPAGE = "http://search.cpan.org/~nezumi/Unicode-LineBreak-${PV}/" + +LICENSE = "Artistic-1.0 | GPLv1+" +LIC_FILES_CHKSUM = "file://README;md5=77241abd74fec561b3f3de1b44c0241b" + +SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/Unicode-LineBreak-${PV}.tar.gz" + +SRC_URI[md5sum] = "de7672227922260ac92d20bbad29660b" +SRC_URI[sha256sum] = "655bc3c4cb60ad0770d97816716cfe322f24e602c70e595f5941dfa02c40cb76" + +S = "${WORKDIR}/Unicode-LineBreak-${PV}" + +DEPENDS = "libsombok3 libmime-charset-perl" + +RDEPENDS_${PN} = "libsombok3 libmime-charset-perl" + +inherit cpan + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0116.bb b/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0116.bb deleted file mode 100644 index 2a6dbc280c0..00000000000 --- a/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0116.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "Perl interface to the libxml2 library" -DESCRIPTION = "This module is an interface to libxml2, providing XML and HTML parsers \ -with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3 \ -interface and a XML::XPath-like interface to XPath API of libxml2. \ -The module is split into several packages which are not described in this \ -section; unless stated otherwise, you only need to use XML::LibXML; in \ -your programs." - -HOMEPAGE = "http://search.cpan.org/dist/XML-LibXML-1.99/" -SECTION = "libs" -LICENSE = "Artistic-1.0|GPLv1+" -DEPENDS += "libxml2 \ - libxml-sax-perl-native \ - zlib \ -" -RDEPENDS_${PN} += "libxml2 \ - libxml-sax-perl \ - libxml-sax-base-perl \ - zlib \ -" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-${PV}.tar.gz;name=libxml \ - file://disable-libxml2-check.patch \ - file://fix-CATALOG-conditional-compile.patch \ - file://using-DOCB-conditional.patch \ -" -LIC_FILES_CHKSUM = "file://debian/copyright;md5=75e021e35a906347f46c9ff163653e2a \ - file://LICENSE;md5=97871bde150daeb5e61ad95137ff2446" -SRC_URI[libxml.md5sum] = "a53a743bf053a0cb4afb41513fb8a684" -SRC_URI[libxml.sha256sum] = "b154f2dad3033b30d22ac81b8985b69ad35450b0c552db394cd03bb36845812a" - -S = "${WORKDIR}/XML-LibXML-${PV}" - -inherit cpan - -EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR}/libxml2 LIBS=-L${STAGING_LIBDIR}" - -BBCLASSEXTEND = "native" - -CFLAGS += " -D_GNU_SOURCE " -BUILD_CFLAGS += " -D_GNU_SOURCE " - -do_configure_prepend() { - rm -rf ${S}/.pc/* -} - -FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/XML/LibXML/.debug/" diff --git a/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0131.bb b/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0131.bb new file mode 100644 index 00000000000..41052495389 --- /dev/null +++ b/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0131.bb @@ -0,0 +1,44 @@ +SUMMARY = "Perl interface to the libxml2 library" +DESCRIPTION = "This module is an interface to libxml2, providing XML and HTML parsers \ +with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3 \ +interface and a XML::XPath-like interface to XPath API of libxml2. \ +The module is split into several packages which are not described in this \ +section; unless stated otherwise, you only need to use XML::LibXML; in \ +your programs." + +HOMEPAGE = "http://search.cpan.org/dist/XML-LibXML-1.99/" +SECTION = "libs" +LICENSE = "Artistic-1.0|GPLv1+" +DEPENDS += "libxml2 \ + libxml-sax-perl-native \ + zlib \ +" +RDEPENDS_${PN} += "libxml2 \ + libxml-sax-perl \ + libxml-sax-base-perl \ + zlib \ +" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-${PV}.tar.gz;name=libxml \ + file://disable-libxml2-check.patch \ + file://fix-CATALOG-conditional-compile.patch \ + file://using-DOCB-conditional.patch \ +" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=64eda1bc135f0ece1d1187f2a8ac82c1 \ + file://LICENSE;md5=97871bde150daeb5e61ad95137ff2446 \ +" +SRC_URI[libxml.md5sum] = "4dd1efcda5159c9e73139a4546190665" +SRC_URI[libxml.sha256sum] = "b04c77dea55f9f270e1040e3a1d4f79b81dcdcd4da3e648f92dcf6c80bbe19df" + +S = "${WORKDIR}/XML-LibXML-${PV}" + +inherit cpan + +EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR}/libxml2 LIBS=-L${STAGING_LIBDIR}" + +BBCLASSEXTEND = "native" + +CFLAGS += " -D_GNU_SOURCE " +BUILD_CFLAGS += " -D_GNU_SOURCE " + +FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/XML/LibXML/.debug/" diff --git a/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.54.bb b/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.54.bb deleted file mode 100644 index 914c20801e8..00000000000 --- a/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.54.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "XML::SAX::Writer - SAX2 Writer" -DESCRIPTION = "\ -XML::SAX::Writer helps to serialize SAX2 representations of XML documents to \ -strings, files, and other flat representations. It handles charset encodings, \ -XML escaping conventions, and so forth. It is still considered alpha, \ -although it has been put to limited use in settings such as XML::LibXML and \ -the AxKit XML Application Server. \ -" -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPLv1+" -HOMEPAGE = "http://search.cpan.org/dist/XML-SAX-Writer/" -DEPENDS += "libxml-filter-buffertext-perl-native" -RDEPENDS_${PN} += "libxml-filter-buffertext-perl" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-${PV}.tar.gz" -SRC_URI[md5sum] = "383139d76418a82b9800dc4f8b568891" -SRC_URI[sha256sum] = "a1b4d959aed8f8337523c4cef4b431e56e619c795dc6f99a868548952101cf3d" - -LIC_FILES_CHKSUM = "file://README;beginline=45;endline=46;md5=d41d8cd98f00b204e9800998ecf8427e" - -S = "${WORKDIR}/XML-SAX-Writer-${PV}" - -inherit cpan - -BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb b/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb new file mode 100644 index 00000000000..d1b0de093c6 --- /dev/null +++ b/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb @@ -0,0 +1,25 @@ +SUMMARY = "XML::SAX::Writer - SAX2 Writer" +DESCRIPTION = "\ +XML::SAX::Writer helps to serialize SAX2 representations of XML documents to \ +strings, files, and other flat representations. It handles charset encodings, \ +XML escaping conventions, and so forth. It is still considered alpha, \ +although it has been put to limited use in settings such as XML::LibXML and \ +the AxKit XML Application Server. \ +" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPLv1+" +HOMEPAGE = "http://search.cpan.org/dist/XML-SAX-Writer/" +DEPENDS += "libxml-filter-buffertext-perl-native" +RDEPENDS_${PN} += "libxml-filter-buffertext-perl" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-${PV}.tar.gz" +SRC_URI[md5sum] = "3e3023c648e3003c04de2fb04435f8bd" +SRC_URI[sha256sum] = "3d61d07ef43b0126f5b4de4f415a256fa859fa88dc4fdabaad70b7be7c682cf0" + +LIC_FILES_CHKSUM = "file://README;beginline=45;endline=46;md5=d41d8cd98f00b204e9800998ecf8427e" + +S = "${WORKDIR}/XML-SAX-Writer-${PV}" + +inherit cpan + +BBCLASSEXTEND = "native" diff --git a/meta-perl/recipes-perl/po4a/po4a_0.49.bb b/meta-perl/recipes-perl/po4a/po4a_0.49.bb new file mode 100644 index 00000000000..5db5b8f8bc5 --- /dev/null +++ b/meta-perl/recipes-perl/po4a/po4a_0.49.bb @@ -0,0 +1,33 @@ +SUMMARY = "PO for anything" +DESCRIPTION = "The po4a (PO for anything) project goal is to ease translations \ +(and more interestingly, the maintenance of translations) using gettext tools \ +on areas where they were not expected like documentation." +HOMEPAGE = "https://po4a.alioth.debian.org" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a96fc9b4cc36d80659e694ea109f0325" + +SRC_URI = "git://alioth.debian.org/anonscm/git/po4a/po4a.git;protocol=https" + +# v0.49 +SRCREV = "79ed87a577a543538fe39c7b60079981f5997072" + +S = "${WORKDIR}/git" + +DEPENDS = " \ + libmodule-build-perl-native \ + libtext-wrapi18n-perl \ + libterm-readkey-perl \ + liblocale-gettext-perl \ + libunicode-linebreak-perl \ +" + +RRECOMMENDS_${PN} = " \ + libtext-wrapi18n-perl \ + libterm-readkey-perl \ + liblocale-gettext-perl \ + libunicode-linebreak-perl \ +" + +inherit cpan_build + +BBCLASSEXTEND = "native" diff --git a/meta-python/README b/meta-python/README index f62ab8fe8e0..905d5ee5e5a 100644 --- a/meta-python/README +++ b/meta-python/README @@ -50,4 +50,5 @@ Maintenance Maintainers: Tim "moto-timo" Orling Paul "bluelightning" Eggleton + Derek Straka diff --git a/meta-python/classes/pypi.bbclass b/meta-python/classes/pypi.bbclass index 41a70e25c33..e5d7ab3ce10 100644 --- a/meta-python/classes/pypi.bbclass +++ b/meta-python/classes/pypi.bbclass @@ -1,15 +1,19 @@ def pypi_package(d): - bpn = d.getVar('BPN', True) + bpn = d.getVar('BPN') if bpn.startswith('python-'): return bpn[7:] + elif bpn.startswith('python3-'): + return bpn[8:] return bpn PYPI_PACKAGE ?= "${@pypi_package(d)}" +PYPI_PACKAGE_EXT ?= "tar.gz" def pypi_src_uri(d): - package = d.getVar('PYPI_PACKAGE', True) - pv = d.getVar('PV', True) - return 'https://pypi.python.org/packages/source/%s/%s/%s-%s.tar.gz' % (package[0], package, package, pv) + package = d.getVar('PYPI_PACKAGE') + package_ext = d.getVar('PYPI_PACKAGE_EXT') + pv = d.getVar('PV') + return 'https://files.pythonhosted.org/packages/source/%s/%s/%s-%s.%s' % (package[0], package, package, pv, package_ext) PYPI_SRC_URI ?= "${@pypi_src_uri(d)}" @@ -18,4 +22,5 @@ SECTION = "devel/python" SRC_URI += "${PYPI_SRC_URI}" S = "${WORKDIR}/${PYPI_PACKAGE}-${PV}" -inherit setuptools +UPSTREAM_CHECK_URI ?= "https://pypi.python.org/pypi/${PYPI_PACKAGE}/" +UPSTREAM_CHECK_REGEX ?= "/${PYPI_PACKAGE}/(?P(\d+[\.\-_]*)+)" diff --git a/meta-python/conf/layer.conf b/meta-python/conf/layer.conf index 55169e4fbbf..d53677fef8c 100644 --- a/meta-python/conf/layer.conf +++ b/meta-python/conf/layer.conf @@ -13,3 +13,5 @@ BBFILE_PRIORITY_meta-python = "7" LAYERVERSION_meta-python = "1" LAYERDEPENDS_meta-python = "core openembedded-layer" + +LICENSE_PATH += "${LAYERDIR}/licenses" diff --git a/meta-python/licenses/LLNL b/meta-python/licenses/LLNL new file mode 100644 index 00000000000..1127d56ce95 --- /dev/null +++ b/meta-python/licenses/LLNL @@ -0,0 +1,16 @@ +Legal Notice + +*** Legal Notice for all LLNL-contributed files *** + +Copyright (c) 1996. The Regents of the University of California. All rights reserved. + +Permission to use, copy, modify, and distribute this software for any purpose without +fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software. + +This work was produced at the University of California, Lawrence Livermore National +Laboratory under contract no. W-7405-ENG-48 between the U.S. Department of Energy and The Regents of the University of California for the operation of UC LLNL. + +DISCLAIMER + +This software was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor the University of California nor any of their employees, makes any warranty, express or implied, or assumes any liability or responsibility for the accuracy, completeness, or usefulness of any +information, apparatus, product, or process disclosed, or represents that its use would not infringe privately-owned rights. Reference herein to any specific commercial products, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or the University of California. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or the University of California, and shall not be used for advertising or product endorsement purposes. diff --git a/meta-python/licenses/Unicode b/meta-python/licenses/Unicode new file mode 100644 index 00000000000..5d2cc4a626c --- /dev/null +++ b/meta-python/licenses/Unicode @@ -0,0 +1,37 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright 1991-2015 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in +http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, +(b) this copyright and permission notice appear in associated +documentation, and +(c) there is clear notice in each modified Data File or in the Software +as well as in the documentation associated with the Data File(s) or +Software that the data or software has been modified. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. diff --git a/meta-python/recipes-connectivity/gateone/gateone/0001-configuration.py-Hack-around-broken-gethostname-thin.patch b/meta-python/recipes-connectivity/gateone/gateone/0001-configuration.py-Hack-around-broken-gethostname-thin.patch deleted file mode 100644 index 5f5fa9117e5..00000000000 --- a/meta-python/recipes-connectivity/gateone/gateone/0001-configuration.py-Hack-around-broken-gethostname-thin.patch +++ /dev/null @@ -1,26 +0,0 @@ -From d811d3bdf06d78c93c48bef762c19c392c879077 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 26 Nov 2013 15:54:10 +0100 -Subject: [PATCH] configuration.py: Hack around broken gethostname thingy - -Signed-off-by: Koen Kooi ---- - gateone/core/configuration.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gateone/core/configuration.py b/gateone/core/configuration.py -index da41cbd..d1c8222 100644 ---- a/gateone/core/configuration.py -+++ b/gateone/core/configuration.py -@@ -162,7 +162,7 @@ def define_options(installed=True): - ] - # Used both http and https above to demonstrate that both are acceptable - try: -- additional_origins = socket.gethostbyname_ex(socket.gethostname()) -+ additional_origins = [] # additional_origins = socket.gethostbyname_ex(socket.gethostname()) - except socket.gaierror: - # Couldn't get any IPs from the hostname - additional_origins = [] --- -1.8.4.2 - diff --git a/meta-python/recipes-connectivity/gateone/gateone/80oe.conf b/meta-python/recipes-connectivity/gateone/gateone/80oe.conf deleted file mode 100644 index cde98bc10df..00000000000 --- a/meta-python/recipes-connectivity/gateone/gateone/80oe.conf +++ /dev/null @@ -1,23 +0,0 @@ -// Some custom Gate One settings for OpenEmbedded -{ - "*": { - "gateone": { // These settings apply to all of Gate One - "log_file_max_size": 5242880, // 5 megabyte logs for OE by default (default would normally be 100Mb) - "log_file_num_backups": 2, // Default is normally 10 - "origins": ["*"], // Every device has a unique origin - "logging": "info", - "pid_file": "/var/run/gateone.pid", - "session_dir": "/tmp/gateone", - "user_dir": "/var/lib/gateone/users" - }, - "terminal": { - // Disabling session logging for embedded devices is a good idea (limited/slow storage) - "session_logging": false, - "syslog_session_logging": false -// "commands": { -// // For some reason this doesn't work (never asks for the password) -// "login": "setsid /bin/login" // Normally this would emulate logging into the host console -// } - } - } -} diff --git a/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in b/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in new file mode 100644 index 00000000000..4503da4221c --- /dev/null +++ b/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in @@ -0,0 +1,24 @@ +// Some custom Gate One settings for OpenEmbedded +{ + "*": { + "gateone": { // These settings apply to all of Gate One + "log_file_prefix": "@localstate@/log/gateone.log", // default would be /var/log/gateone/gateone.log + "log_file_max_size": 5242880, // 5 megabyte logs for OE by default (default would normally be 100Mb) + "log_file_num_backups": 2, // Default is normally 10 + "origins": ["*"], // Every device has a unique origin + "logging": "info", + "pid_file": "/run/gateone.pid", + "session_dir": "/tmp/gateone", + "user_dir": "@localstate@/lib/gateone/users" + }, + "terminal": { + // Disabling session logging for embedded devices is a good idea (limited/slow storage) + "session_logging": false, + "syslog_session_logging": false +// "commands": { +// // For some reason this doesn't work (never asks for the password) +// "login": "setsid /bin/login" // Normally this would emulate logging into the host console +// } + } + } +} diff --git a/meta-python/recipes-connectivity/gateone/gateone/gateone-init b/meta-python/recipes-connectivity/gateone/gateone/gateone-init deleted file mode 100644 index a1cf5ce7e9b..00000000000 --- a/meta-python/recipes-connectivity/gateone/gateone/gateone-init +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -e -### BEGIN INIT INFO -# Provides: gateone -# Required-Start: networking -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Gateone HTML5 ssh client -# Description: Gateone HTML5 terminal emulator and SSH client. -### END INIT INFO - -. /etc/init.d/functions - -NAME=gateone -DAEMON=/var/lib/gateone/gateone.py -PIDFILE=/var/run/gateone.pid -WORKDIR=/var/lib/gateone - -do_start() { - cd $WORKDIR - /usr/bin/python $DAEMON > /dev/null 2>&1 & - cd $OLDPWD -} - -do_stop() { - kill -TERM `cat $PIDFILE` -} - -case "$1" in - start) - echo "Starting gateone" - do_start - ;; - stop) - echo "Stopping gateone" - do_stop - ;; - restart|force-reload) - echo "Restart gateone" - do_stop - sleep 1 - do_start - ;; - *) - echo "Usage: $0 {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac diff --git a/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in b/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in new file mode 100644 index 00000000000..86d655c94d6 --- /dev/null +++ b/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in @@ -0,0 +1,47 @@ +#!/bin/sh -e +### BEGIN INIT INFO +# Provides: gateone +# Required-Start: networking +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Gateone HTML5 ssh client +# Description: Gateone HTML5 terminal emulator and SSH client. +### END INIT INFO + +. /etc/init.d/functions + +NAME=gateone +DAEMON=@bindir@/gateone +PIDFILE=/run/gateone.pid +WORKDIR=@localstate@/lib/gateone + +do_start() { + cd $WORKDIR + @bindir@/python $DAEMON > /dev/null 2>&1 & + cd $OLDPWD +} + +do_stop() { + kill -TERM `cat $PIDFILE` +} + +case "$1" in + start) + echo "Starting gateone" + do_start + ;; + stop) + echo "Stopping gateone" + do_stop + ;; + restart|force-reload) + echo "Restart gateone" + do_stop + sleep 1 + do_start + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac diff --git a/meta-python/recipes-connectivity/gateone/gateone/gateone.service b/meta-python/recipes-connectivity/gateone/gateone/gateone.service deleted file mode 100644 index 7b14d3e6de2..00000000000 --- a/meta-python/recipes-connectivity/gateone/gateone/gateone.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=GateOne daemon -ConditionPathExists=|/var/lib/gateone - -[Service] -WorkingDirectory=/var/lib/gateone -ExecStart=/usr/bin/python /usr/bin/gateone - -[Install] -WantedBy=multi-user.target diff --git a/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in b/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in new file mode 100644 index 00000000000..44667275a21 --- /dev/null +++ b/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in @@ -0,0 +1,10 @@ +[Unit] +Description=GateOne daemon +ConditionPathExists=|@localstate@/lib/gateone + +[Service] +WorkingDirectory=@localstate@/lib/gateone +ExecStart=@bindir@/python @bindir@/gateone + +[Install] +WantedBy=multi-user.target diff --git a/meta-python/recipes-connectivity/gateone/gateone_git.bb b/meta-python/recipes-connectivity/gateone/gateone_git.bb index edc99772169..8b2a19263ec 100644 --- a/meta-python/recipes-connectivity/gateone/gateone_git.bb +++ b/meta-python/recipes-connectivity/gateone/gateone_git.bb @@ -3,20 +3,18 @@ LICENSE = "AGPL-3.0" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=834cbc6995db88433db17cdf8953a428" HOMEPAGE = "http://liftoffsoftware.com/Products/GateOne" -PV = "1.2" -SRCREV = "1528d324088fc1c180b7fdf50f5b5c1af057eef6" -SRC_URI = "git://github.com/liftoff/GateOne.git \ - file://0001-configuration.py-Hack-around-broken-gethostname-thin.patch \ +PV = "1.2+git${SRCPV}" +SRCREV = "f7a9be46cb90f57459ebd363d24702de0e651034" +SRC_URI = "git://github.com/liftoff/GateOne.git;branch=master \ file://gateone-avahi.service \ - file://80oe.conf \ - file://gateone.service \ - file://gateone-init \ + file://80oe.conf.in \ + file://gateone.service.in \ + file://gateone-init.in \ " S = "${WORKDIR}/git" -inherit distutils python-dir systemd update-rc.d -export prefix = "${localstatedir}" +inherit setuptools python-dir systemd update-rc.d DISTUTILS_INSTALL_ARGS = "--root=${D} \ --prefix=${prefix} \ @@ -28,14 +26,19 @@ DISTUTILS_INSTALL_ARGS = "--root=${D} \ do_install_append() { # fix up hardcoded paths - sed -i -e s:/usr/bin:${bindir}:g ${WORKDIR}/gateone.service - + for file in gateone.service gateone-init 80oe.conf; do + sed -e s:@bindir@:${bindir}:g \ + -e s:@localstate@:${localstatedir}:g \ + < ${WORKDIR}/$file.in \ + > ${WORKDIR}/$file + done + install -d ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/gateone.service ${D}${systemd_unitdir}/system install -d ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/gateone-init ${D}${sysconfdir}/init.d/gateone - + install -m 0755 -d ${D}${sysconfdir}/avahi/services/ install -m 0644 ${WORKDIR}/gateone-avahi.service ${D}${sysconfdir}/avahi/services/ @@ -49,6 +52,7 @@ FILES_${PN} = "${localstatedir}/lib ${bindir} ${base_libdir} ${sysconfdir} ${PYT RDEPENDS_${PN} = "mime-support \ openssh-ssh \ python-compression \ + python-contextlib \ python-crypt \ python-datetime \ python-email \ @@ -76,6 +80,8 @@ RDEPENDS_${PN} = "mime-support \ python-tornado \ python-unixadmin \ python-xml \ + python-html5lib \ + bash \ " SYSTEMD_SERVICE_${PN} = "gateone.service" diff --git a/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc b/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc new file mode 100644 index 00000000000..11971dc4a42 --- /dev/null +++ b/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc @@ -0,0 +1,12 @@ +SUMMARY = "A simple connection pool for gevent" +DESCRIPTION = "creates a pool of connections that can be used with gevent" +HOMEPAGE = "https://github.com/studio-ousia/gsocketpool" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859" +DEPENDS += "${PYTHON_PN}-gevent" +RDEPENDS_${PN} += "${PYTHON_PN}-gevent" + +SRC_URI[md5sum] = "49f5f292ef1b60944ae92ca426a5e550" +SRC_URI[sha256sum] = "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14" + +inherit pypi diff --git a/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool_0.1.6.bb b/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool_0.1.6.bb new file mode 100644 index 00000000000..e96ad1ca1bf --- /dev/null +++ b/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool_0.1.6.bb @@ -0,0 +1,2 @@ +require python-gsocketpool.inc +inherit setuptools diff --git a/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb b/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb new file mode 100644 index 00000000000..883621e2149 --- /dev/null +++ b/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb @@ -0,0 +1,2 @@ +require python-gsocketpool.inc +inherit setuptools3 diff --git a/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc b/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc new file mode 100644 index 00000000000..05fbae48b4e --- /dev/null +++ b/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc @@ -0,0 +1,13 @@ +SUMMARY = "A gevent based messagpack rpc library" +DESCRIPTION = "mprpc is a fast implementation of the messagepack rpc protocol for python. \ +It is based on gevent for handling connections and enabling concurrent connections." +HOMEPAGE = "https://github.com/studio-ousia/mprpc" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859" +DEPENDS += "${PYTHON_PN}-gevent" +RDEPENDS_${PN} += "${PYTHON_PN}-gevent ${PYTHON_PN}-msgpack ${PYTHON_PN}-gsocketpool" + +SRC_URI[md5sum] = "acde1f346411997d76ab89790a356823" +SRC_URI[sha256sum] = "e8ddd47e7a2fb2d3b203fcc522443ee5be56c8f7e2c6d915c047445951cef1fb" + +inherit pypi diff --git a/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb b/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb new file mode 100644 index 00000000000..6b2ea219325 --- /dev/null +++ b/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb @@ -0,0 +1,2 @@ +require python-mprpc.inc +inherit setuptools diff --git a/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb b/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb new file mode 100644 index 00000000000..837d604ed56 --- /dev/null +++ b/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb @@ -0,0 +1,2 @@ +require python-mprpc.inc +inherit setuptools3 diff --git a/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb b/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb new file mode 100644 index 00000000000..77b5e4dcff8 --- /dev/null +++ b/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Python-based Network Connectivity Management" +HOMEPAGE = "https://pypi.python.org/pypi/pyconnman/" +LICENSE = "Apache-2.0" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI[md5sum] = "b7fa82034b1c0e1fb1b518ffe3bb4fc0" +SRC_URI[sha256sum] = "46c64c0692063fd0c9fb0216d49f7884bec9fa9760d8473db4b1e2f8162fab4a" + +inherit pypi setuptools + +RDEPENDS_${PN} = "connman python-dbus python-pprint" diff --git a/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.62.bb b/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.62.bb new file mode 100644 index 00000000000..041c4ff61e3 --- /dev/null +++ b/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.62.bb @@ -0,0 +1,18 @@ +SUMMARY = "Python Remote Objects" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=378acef375e17a3bff03bd0f78c53220" + +SRC_URI[md5sum] = "6e2fef3dc8b29773a87abbaa8e9abe15" +SRC_URI[sha256sum] = "e301edfb2bc47768b7222a68cae8de8be796d1d9f61cdbd1af9039985ed5009c" + +PYPI_PACKAGE = "Pyro4" + +inherit pypi setuptools + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-selectors34 \ + ${PYTHON_PN}-serpent \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-zlib \ + " diff --git a/meta-python/recipes-connectivity/python-pytun/python-pytun.inc b/meta-python/recipes-connectivity/python-pytun/python-pytun.inc new file mode 100644 index 00000000000..79a8bfb21bf --- /dev/null +++ b/meta-python/recipes-connectivity/python-pytun/python-pytun.inc @@ -0,0 +1,10 @@ +SUMMARY = "Python TUN/TAP tunnel module" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=13f7629e8e4989b66b4a913ab05a91de" + +SRC_URI[md5sum] = "5b35b1cf80a02cca7ec72eb95d6b0192" +SRC_URI[sha256sum] = "07595dadf85f5176eb08c8d4d9ba5b862a180e96633f670f91437c47a1bead0d" + +PYPI_PACKAGE = "python-pytun" + +inherit pypi diff --git a/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb b/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb new file mode 100644 index 00000000000..3fc587f3a38 --- /dev/null +++ b/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb @@ -0,0 +1,2 @@ +require python-pytun.inc +inherit setuptools diff --git a/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb b/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb new file mode 100644 index 00000000000..938d9d73986 --- /dev/null +++ b/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb @@ -0,0 +1,2 @@ +require python-pytun.inc +inherit setuptools3 diff --git a/meta-python/recipes-connectivity/python-thrift/python-thrift_0.10.0.bb b/meta-python/recipes-connectivity/python-thrift/python-thrift_0.10.0.bb new file mode 100644 index 00000000000..e6f61bdd0f4 --- /dev/null +++ b/meta-python/recipes-connectivity/python-thrift/python-thrift_0.10.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "Python bindings for the Apache Thrift RPC system" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=26a2009ddcb7c4162f8bafd5ef73c670" + +SRC_URI[md5sum] = "76bb768a210257dd203923110042e560" +SRC_URI[sha256sum] = "b7f6c09155321169af03f9fb20dc15a4a0c7481e7c334a5ba8f7f0d864633209" + +PYPI_PACKAGE_EXT = "zip" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb b/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb new file mode 100644 index 00000000000..0b2ac118af8 --- /dev/null +++ b/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb @@ -0,0 +1,15 @@ +SUMMARY = "Twisted Web Sockets" +HOMEPAGE = "https://github.com/MostAwesomeDude/txWS" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=76699830db7fa9e897f6a1ad05f98ec8" + +DEPENDS = "python-twisted python-six python-vcversioner" + +SRC_URI = "git://github.com/MostAwesomeDude/txWS.git" +SRCREV= "88cf6d9b9b685ffa1720644bd53c742afb10a414" + +S = "${WORKDIR}/git" + +inherit setuptools + diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch b/meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch similarity index 100% rename from meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch rename to meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch b/meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch similarity index 100% rename from meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch rename to meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch b/meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch similarity index 100% rename from meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch rename to meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb b/meta-python/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb similarity index 100% rename from meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb rename to meta-python/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb diff --git a/meta-python/recipes-devtools/python/pyrtm_0.2.bb b/meta-python/recipes-devtools/python/pyrtm_0.2.bb deleted file mode 100644 index 706515bc4a5..00000000000 --- a/meta-python/recipes-devtools/python/pyrtm_0.2.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Python interface for Remember The Milk API" -AUTHOR = "Sridhar Ratnakumar / srid" -HOMEPAGE = "http://pypi.python.org/pypi/pyrtm" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df" -DEPENDS = "python-native" - -inherit distutils - -SRC_URI = "http://pypi.python.org/packages/source/p/${BPN}/${BP}.tar.gz" -SRC_URI[md5sum] = "34423f39caf7df8a9db8e243be9cf1a0" -SRC_URI[sha256sum] = "d9d46d096a38cb692b55f4ee9f364d54348298e9497b11c1ef057539b5de1567" diff --git a/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb b/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb new file mode 100644 index 00000000000..72f0921e701 --- /dev/null +++ b/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb @@ -0,0 +1,16 @@ +SUMMARY = "Python interface for Remember The Milk API" +AUTHOR = "Sridhar Ratnakumar / srid" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df" + +PYPI_PACKAGE_EXT = "tar.bz2" + +SRC_URI[md5sum] = "7c87da94656b620dfe532ca63d642eb8" +SRC_URI[sha256sum] = "b2d701b25ad3f9a1542057f3eb492c5c1d7dbe2b8d1e8f763043dcc14ee1d933" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-netclient \ + " diff --git a/meta-python/recipes-devtools/python/python-anyjson.inc b/meta-python/recipes-devtools/python/python-anyjson.inc new file mode 100644 index 00000000000..a0d20ff4d0f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-anyjson.inc @@ -0,0 +1,13 @@ +SUMMARY = "Wraps the best available JSON implementation available in a common interface" +DESCRIPTION = "Anyjson loads whichever is the fastest JSON module installed and \ +provides a uniform API regardless of which JSON implementation is used." +HOMEPAGE = "https://bitbucket.org/runeh/anyjson" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=989aa97e73c912a83a3c873fa11deb08" + +inherit pypi + +SRC_URI[md5sum] = "2ea28d6ec311aeeebaf993cb3008b27c" +SRC_URI[sha256sum] = "37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba" + +RDEPENDS_${PN} += "${PYTHON_PN}-simplejson" diff --git a/meta-python/recipes-devtools/python/python-anyjson_0.3.3.bb b/meta-python/recipes-devtools/python/python-anyjson_0.3.3.bb new file mode 100644 index 00000000000..31b8749fe2d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-anyjson_0.3.3.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-anyjson.inc diff --git a/meta-python/recipes-devtools/python/python-appdirs.inc b/meta-python/recipes-devtools/python/python-appdirs.inc new file mode 100644 index 00000000000..c4826723e80 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-appdirs.inc @@ -0,0 +1,8 @@ +SUMMARY = "A small Python module for determining appropriate + platform-specific dirs, e.g. a user data dir." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=31625363c45eb0c67c630a2f73e438e4" + +SRC_URI[md5sum] = "44c679904082a2133f5566c8a0d3ab42" +SRC_URI[sha256sum] = "9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-appdirs_1.4.3.bb b/meta-python/recipes-devtools/python/python-appdirs_1.4.3.bb new file mode 100644 index 00000000000..e9ff9b3fc3c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-appdirs_1.4.3.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-appdirs.inc diff --git a/meta-python/recipes-devtools/python/python-asn1crypto.inc b/meta-python/recipes-devtools/python/python-asn1crypto.inc new file mode 100644 index 00000000000..3bdb4b23525 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-asn1crypto.inc @@ -0,0 +1,12 @@ +DESCRIPTION = "Python binding to the Networking and Cryptography (NaCl) library" +HOMEPAGE = "https://github.com/pyca/pynacl" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=52010cd3c7d7bd965b55721ef4d93ec2" + +PYPI_PACKAGE = "asn1crypto" + +SRC_URI[md5sum] = "97d54665c397b72b165768398dfdd876" +SRC_URI[sha256sum] = "0874981329cfebb366d6584c3d16e913f2a0eb026c9463efcc4aaf42a9d94d70" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-asn1crypto_0.23.0.bb b/meta-python/recipes-devtools/python/python-asn1crypto_0.23.0.bb new file mode 100644 index 00000000000..6af60c2d42b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-asn1crypto_0.23.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-asn1crypto.inc diff --git a/meta-python/recipes-devtools/python/python-astroid.inc b/meta-python/recipes-devtools/python/python-astroid.inc new file mode 100644 index 00000000000..4cb1a3c4b6b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-astroid.inc @@ -0,0 +1,20 @@ +SUMMARY = "An abstract syntax tree for Python with inference support." +HOMEPAGE = "https://pypi.python.org/pypi/astroid" +SECTION = "devel/python" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI[md5sum] = "6f65e4ea8290ec032320460905afb828" +SRC_URI[sha256sum] = "492c2a2044adbf6a84a671b7522e9295ad2f6a7c781b899014308db25312dd35" + +inherit pypi + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-lazy-object-proxy \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-wrapt \ + ${PYTHON_PN}-re \ + ${PYTHON_PN}-setuptools \ +" diff --git a/meta-python/recipes-devtools/python/python-astroid_1.5.3.bb b/meta-python/recipes-devtools/python/python-astroid_1.5.3.bb new file mode 100644 index 00000000000..f7a0a5e736a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-astroid_1.5.3.bb @@ -0,0 +1,7 @@ +inherit setuptools +require python-astroid.inc + +RDEPENDS_${PN}_class-target += "${PYTHON_PN}-enum34 \ + ${PYTHON_PN}-importlib \ + ${PYTHON_PN}-singledispatch \ + " diff --git a/meta-python/recipes-devtools/python/python-attr.inc b/meta-python/recipes-devtools/python/python-attr.inc new file mode 100644 index 00000000000..8ebf9b97be7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-attr.inc @@ -0,0 +1,9 @@ +DESCRIPTION = "Simple decorator to set attributes of target function or class in a DRY way" +HOMEPAGE = "https://github.com/denis-ryzhkov/attr" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=598841c0e09b76883d9ff37a3b6100bf" + +SRC_URI[md5sum] = "de69ad11c8872a6dfdbdace7eb81efb4" +SRC_URI[sha256sum] = "826135ffdd4d0b4bc8a580ce491c33fd90b55e169217539c34b7bfdbe2086ee3" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-attr_0.2.0.bb b/meta-python/recipes-devtools/python/python-attr_0.2.0.bb new file mode 100644 index 00000000000..979d6cb6872 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-attr_0.2.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-attr.inc diff --git a/meta-python/recipes-devtools/python/python-attrs.inc b/meta-python/recipes-devtools/python/python-attrs.inc new file mode 100644 index 00000000000..edde79e5d2f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-attrs.inc @@ -0,0 +1,9 @@ +DESCRIPTION = "Classes Without Boilerplate" +HOMEPAGE = "http://www.attrs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff" + +SRC_URI[md5sum] = "4314f784ca3174d91956da9828248960" +SRC_URI[sha256sum] = "c78f53e32d7cf36d8597c8a2c7e3c0ad210f97b9509e152e4c37fa80869f823c" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-attrs_17.3.0.bb b/meta-python/recipes-devtools/python/python-attrs_17.3.0.bb new file mode 100644 index 00000000000..a6fdf158dc6 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-attrs_17.3.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-attrs.inc diff --git a/meta-python/recipes-devtools/python/python-autobahn_0.8.6.bb b/meta-python/recipes-devtools/python/python-autobahn_0.8.6.bb deleted file mode 100644 index ac775c4c330..00000000000 --- a/meta-python/recipes-devtools/python/python-autobahn_0.8.6.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "AutobahnPython provides a WebSocket (RFC6455, Hybi-10 to -17, Hixie-76) framework for creating WebSocket-based clients and servers. \ -AutobahnPython also includes an implementation of WAMP (The WebSockets Application Messaging Protocol), a light-weight, \ -asynchronous RPC/PubSub over JSON/WebSocket protocol." -HOMEPAGE = "http://autobahn.ws/python" -SECTION = "console/network" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = " file://autobahn/__init__.py;beginline=1;endline=17;md5=1fdeccf6e5b70cda64cc1345597c18e3" - -SRC_URI = "https://pypi.python.org/packages/source/a/autobahn/autobahn-${PV}.zip" -SRC_URI[md5sum] = "160429e7fb043940e79aa7f4ebbab57a" -SRC_URI[sha256sum] = "94ae5c6f37f9fe7c9d3f12c170fcc273afed4104a1c5508b26d6014bb9e6373e" - -S = "${WORKDIR}/autobahn-${PV}" - -inherit setuptools - -RDEPENDS_${PN} = "python python-pprint python-twisted-protocols python-netserver python-twisted-web" - diff --git a/meta-python/recipes-devtools/python/python-automat.inc b/meta-python/recipes-devtools/python/python-automat.inc new file mode 100644 index 00000000000..1ac5d3b3237 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-automat.inc @@ -0,0 +1,16 @@ +DESCRIPTION = "Self-service finite-state machines for the programmer on the go" +HOMEPAGE = "https://github.com/glyph/Automat" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477" + +SRC_URI[md5sum] = "ad7bba58d262d8956d732330cb5ef53d" +SRC_URI[sha256sum] = "3c1fd04ecf08ac87b4dd3feae409542e9bf7827257097b2b6ed5692f69d6f6a8" + +PYPI_PACKAGE = "Automat" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-attrs \ + ${PYTHON_PN}-six \ +" diff --git a/meta-python/recipes-devtools/python/python-automat_0.6.0.bb b/meta-python/recipes-devtools/python/python-automat_0.6.0.bb new file mode 100644 index 00000000000..8ac8c9c0ff1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-automat_0.6.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-automat.inc diff --git a/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc b/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc new file mode 100644 index 00000000000..eaeb020c0b7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc @@ -0,0 +1,18 @@ +DESCRIPTION = "SDK for connecting to AWS IoT using Python." +HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30" + +SRC_URI[md5sum] = "e6781f6c42bbc547d508d6fa6720ac8f" +SRC_URI[sha256sum] = "6b2865d4f518794b96a834fc81b568428daa0ef92037da2e9288b4af5d8dd736" + +inherit pypi + +PYPI_PACKAGE = "AWSIoTPythonSDK" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-pyopenssl \ + ${PYTHON_PN}-json \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.2.0.bb b/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.2.0.bb new file mode 100644 index 00000000000..12ae978e345 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.2.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-aws-iot-device-sdk-python.inc diff --git a/meta-python/recipes-devtools/python/python-babel.inc b/meta-python/recipes-devtools/python/python-babel.inc new file mode 100644 index 00000000000..5e6ca3d8a0d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-babel.inc @@ -0,0 +1,20 @@ +DESCRIPTION = "A collection of tools for internationalizing Python applications" +HOMEPAGE = "http://babel.edgewall.org/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e6eeaabc92cfc2d03f53e789324d7292" + +SRC_URI[md5sum] = "60228b3ce93a203357158b909afe8ae1" +SRC_URI[sha256sum] = "6007daf714d0cd5524bbe436e2d42b3c20e68da66289559341e48d2cd6d25811" + +PYPI_PACKAGE = "Babel" + +inherit pypi + +CLEANBROKEN = "1" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-pytz \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-python/recipes-devtools/python/python-babel_2.5.1.bb b/meta-python/recipes-devtools/python/python-babel_2.5.1.bb new file mode 100644 index 00000000000..e0eadcda8a6 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-babel_2.5.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-babel.inc diff --git a/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb b/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb new file mode 100644 index 00000000000..6a4d267bc7a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb @@ -0,0 +1,18 @@ +SUMMARY = "collections.abc from Python 3.4" +DESCRIPTION = "A backport of recent additions to the 'collections.abc' module" + +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03" + +# pypi package doesn't have valid entry for license +SRC_URI += "https://raw.githubusercontent.com/cython/backports_abc/master/LICENSE;name=license" + +SRC_URI[md5sum] = "0b65a216ce9dc9c1a7e20a729dd7c05b" +SRC_URI[sha256sum] = "8b3e4092ba3d541c7a2f9b7d0d9c0275b21c6a01c53a61c731eba6686939d0a5" +SRC_URI[license.md5sum] = "dd98d01d471fac8d8dbdd975229dba03" +SRC_URI[license.sha256sum] = "0a4f3b38055f50f047a42521568fa6ddb9a5976c2884f6ae138796d0f71150ca" + + + +PYPI_PACKAGE = "backports_abc" +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb b/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb new file mode 100644 index 00000000000..961436f5335 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb @@ -0,0 +1,19 @@ +SUMMARY = "Backport of functools.lru_cache from Python 3.3" +HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://setup.py;beginline=47;endline=47;md5=98fc3658e5970d26f6b2109808c766be" + +PYPI_PACKAGE = "backports.functools_lru_cache" + +SRC_URI[md5sum] = "b954e7d5e2ca0f0f66ad2ed12ba800e5" +SRC_URI[sha256sum] = "31f235852f88edc1558d428d890663c49eb4514ffec9f3650e7f3c9e4a12e36f" + +DEPENDS += "python-setuptools-scm-native" + +inherit setuptools pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-threading \ + " diff --git a/meta-python/recipes-devtools/python/python-backports-ssl_3.4.0.2.bb b/meta-python/recipes-devtools/python/python-backports-ssl_3.4.0.2.bb deleted file mode 100644 index 9caae41bf85..00000000000 --- a/meta-python/recipes-devtools/python/python-backports-ssl_3.4.0.2.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "The ssl.match_hostname() function from Python 3.4" -DESCRIPTION = "The Secure Sockets layer is only actually secure if you check the hostname in the \ -certificate returned by the server to which you are connecting, and verify that it matches to hostname \ -that you are trying to reach. But the matching logic, defined in RFC2818, can be a bit tricky to implement \ -on your own. So the ssl package in the Standard Library of Python 3.2 and greater now includes a \ -match_hostname() function for performing this check instead of requiring every application to \ -implement the check separately. This backport brings match_hostname() to users of earlier versions of Python" -HOMEPAGE = "https://pypi.python.org/pypi/backports.ssl_match_hostname" -SECTION = "devel/python" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=77b684960b86b7a4bb4a450ffde08605" - -SRCNAME = "backports.ssl_match_hostname" - -SRC_URI = "https://pypi.python.org/packages/source/b/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "788214f20214c64631f0859dc79f23c6" -SRC_URI[sha256sum] = "07410e7fb09aab7bdaf5e618de66c3dac84e2e3d628352814dc4c37de321d6ae" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb b/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb new file mode 100644 index 00000000000..45492daa6e4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb @@ -0,0 +1,18 @@ +SUMMARY = "The ssl.match_hostname() function from Python 3.4" +DESCRIPTION = "The Secure Sockets layer is only actually secure if you check the hostname in the \ +certificate returned by the server to which you are connecting, and verify that it matches to hostname \ +that you are trying to reach. But the matching logic, defined in RFC2818, can be a bit tricky to implement \ +on your own. So the ssl package in the Standard Library of Python 3.2 and greater now includes a \ +match_hostname() function for performing this check instead of requiring every application to \ +implement the check separately. This backport brings match_hostname() to users of earlier versions of Python" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=95a5ee8fd779fbeca8b4cbca64433c87" + +SRC_URI[md5sum] = "c03fc5e2c7b3da46b81acf5cbacfe1e6" +SRC_URI[sha256sum] = "502ad98707319f4a51fa2ca1c677bd659008d27ded9f6380c79e8932e38dcdf2" + +PYPI_PACKAGE = "backports.ssl_match_hostname" +inherit pypi setuptools + +RDEPENDS_${PN} += "${PYTHON_PN}-pkgutil" diff --git a/meta-python/recipes-devtools/python/python-bcrypt.inc b/meta-python/recipes-devtools/python/python-bcrypt.inc new file mode 100644 index 00000000000..1ea62a3a8e4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-bcrypt.inc @@ -0,0 +1,15 @@ +DESCRIPTION = "Modern password hashing for your software and your servers." +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c" + +DEPENDS += "${PYTHON_PN}-cffi-native" + +SRC_URI[md5sum] = "8408abc974446e64862a9742104e97b6" +SRC_URI[sha256sum] = "67ed1a374c9155ec0840214ce804616de49c3df9c5bc66740687c1c9b1cd9e8d" + +inherit pypi + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-cffi \ + ${PYTHON_PN}-six \ +" diff --git a/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb b/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb new file mode 100644 index 00000000000..24333540b62 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-bcrypt.inc diff --git a/meta-python/recipes-devtools/python/python-beautifulsoup4.inc b/meta-python/recipes-devtools/python/python-beautifulsoup4.inc new file mode 100644 index 00000000000..d60d987ca09 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-beautifulsoup4.inc @@ -0,0 +1,17 @@ +SUMMARY = "Screen-scraping library" +HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=f2d38d8a40bf73fd4b3d16ca2e5882d1" + +SRC_URI[md5sum] = "c17714d0f91a23b708a592cb3c697728" +SRC_URI[sha256sum] = "808b6ac932dccb0a4126558f7dfdcf41710dd44a4ef497a0bb59a77f9f078e89" + +inherit pypi + +RDEPENDS_${PN}_class-target = "\ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-html5lib \ + ${PYTHON_PN}-lxml \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-beautifulsoup4_4.6.0.bb b/meta-python/recipes-devtools/python/python-beautifulsoup4_4.6.0.bb new file mode 100644 index 00000000000..907285ac104 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-beautifulsoup4_4.6.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-beautifulsoup4.inc diff --git a/meta-python/recipes-devtools/python/python-behave_1.2.5.bb b/meta-python/recipes-devtools/python/python-behave_1.2.5.bb new file mode 100644 index 00000000000..541a79d7bd3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-behave_1.2.5.bb @@ -0,0 +1,10 @@ +SUMMARY = "A behavior-driven development framework, Python style" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06" + +SRC_URI[md5sum] = "3af4bc2886d2be982e41bfaba61da3bc" +SRC_URI[sha256sum] = "81b731ac5187e31e4aad2594944fa914943683a9818320846d037c5ebd6d5d0b" + +RDEPENDS_${PN} += "python-difflib python-setuptools python-pkgutil python-misc python-argparse python-xml python-importlib python-enum34 python-parse python-parse-type python-six" + +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-bitarray.inc b/meta-python/recipes-devtools/python/python-bitarray.inc new file mode 100644 index 00000000000..7b6e0d1b350 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-bitarray.inc @@ -0,0 +1,11 @@ +SUMMARY = "A high-level Python efficient arrays of booleans -- C extension" +HOMEPAGE = "https://github.com/ilanschnell/bitarray" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3ba469353f9f2a244b2075902351e37d" + +SRC_URI[md5sum] = "3825184f54f4d93508a28031b4c65d3b" +SRC_URI[sha256sum] = "7da501356e48a83c61f479393681c1bc4b94e5a34ace7e08cb29e7dd9290ab18" + +inherit pypi + +BBCLASSEXTEND = "nativesdk" diff --git a/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb b/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb new file mode 100644 index 00000000000..f78c7abd23a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-bitarray.inc diff --git a/meta-python/recipes-devtools/python/python-blinker_1.4.bb b/meta-python/recipes-devtools/python/python-blinker_1.4.bb new file mode 100644 index 00000000000..0ce141ff57c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-blinker_1.4.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "Fast, simple object-to-object and broadcast signaling." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=946d7e89af6f7733aeaebed5635d2682" + +SRC_URI[md5sum] = "8b3722381f83c2813c52de3016b68d33" +SRC_URI[sha256sum] = "471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6" + +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-can.inc b/meta-python/recipes-devtools/python/python-can.inc new file mode 100644 index 00000000000..1dbc8099001 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-can.inc @@ -0,0 +1,9 @@ +SUMMARY = "Controller Area Network (CAN) interface module for Python" +SECTION = "devel/python" +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=38138baa100d7259934590850bc0406e" + +SRC_URI[md5sum] = "b2a164887c1c6a2a2490b5afb36e36db" +SRC_URI[sha256sum] = "b961b6ce75a7f08b586f4d2cae8cdc409881731b851fc405fa21cb16bad00d87" + +PYPI_PACKAGE="python-can" diff --git a/meta-python/recipes-devtools/python/python-can_2.0.0b1.bb b/meta-python/recipes-devtools/python/python-can_2.0.0b1.bb new file mode 100644 index 00000000000..ec81a9e48d4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-can_2.0.0b1.bb @@ -0,0 +1,4 @@ +require python-can.inc +inherit pypi setuptools + +RDEPENDS_${PN} += "python-sqlite3" diff --git a/meta-python/recipes-devtools/python/python-cassandra-driver.inc b/meta-python/recipes-devtools/python/python-cassandra-driver.inc new file mode 100644 index 00000000000..a522e672bd7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cassandra-driver.inc @@ -0,0 +1,33 @@ +SUMMARY = "DataStax Python Driver for Apache Cassandra" +DESCRIPTION = "A modern, feature-rich and highly-tunable Python client \ +library for Apache Cassandra (1.2+) and DataStax Enterprise (3.1+) using \ +exclusively Cassandra's binary protocol and Cassandra Query Language v3." +HOMEPAGE = "https://github.com/datastax/python-driver" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" +SRCNAME = "cassandra-driver" + +SRC_URI[md5sum] = "1659b074e10c613e5ba1cdf92974a57a" +SRC_URI[sha256sum] = "643bed0fac08ee91630f0f35556bb62c3b4b007c20d4e6e8d349f769ea648150" + +DISTUTILS_BUILD_ARGS += " \ + --no-libev \ +" +DISTUTILS_INSTALL_ARGS += " \ + --no-libev \ +" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-cython \ + ${PYTHON_PN}-multiprocessing \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-json \ + libevent \ +" + +DEPENDS_${PN} += "\ + ${PYTHON_PN}-cython \ +" diff --git a/meta-python/recipes-devtools/python/python-certifi.inc b/meta-python/recipes-devtools/python/python-certifi.inc new file mode 100644 index 00000000000..97be1fb3bde --- /dev/null +++ b/meta-python/recipes-devtools/python/python-certifi.inc @@ -0,0 +1,13 @@ +SUMMARY = "Python package for providing Mozilla's CA Bundle." +DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \ +Python code. This is useful for verifying HTTP requests, for example. This is the same CA Bundle \ +which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set." +HOMEPAGE = " http://certifi.io/" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f77f61d14ee6feac4228d3ebd26cc1f1" + +SRC_URI[md5sum] = "c15ac46ed1fe4b607ff3405928f9a992" +SRC_URI[sha256sum] = "5ec74291ca1136b40f0379e1128ff80e866597e4e2c1e755739a913bbc3613c0" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-certifi_14.05.14.bb b/meta-python/recipes-devtools/python/python-certifi_14.05.14.bb deleted file mode 100644 index 5e0404e9606..00000000000 --- a/meta-python/recipes-devtools/python/python-certifi_14.05.14.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Python package for providing Mozilla's CA Bundle." -DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \ -Python code. This is useful for verifying HTTP requests, for example. This is the same CA Bundle \ -which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set." -HOMEPAGE = "https://pypi.python.org/pypi/certifi" -SECTION = "devel/python" - -LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f77f61d14ee6feac4228d3ebd26cc1f1" - -SRCNAME = "certifi" - -SRC_URI = "https://pypi.python.org/packages/source/c/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "315ea4e50673a16ab047099f816fd32a" -SRC_URI[sha256sum] = "1e1bcbacd6357c151ae37cf0290dcc809721d32ce21fd6b7339568f3ddef1b69" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-certifi_2017.11.5.bb b/meta-python/recipes-devtools/python/python-certifi_2017.11.5.bb new file mode 100644 index 00000000000..adfe6238ec7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-certifi_2017.11.5.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-certifi.inc diff --git a/meta-python/recipes-devtools/python/python-cffi.inc b/meta-python/recipes-devtools/python/python-cffi.inc new file mode 100644 index 00000000000..8dcdb63341b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cffi.inc @@ -0,0 +1,14 @@ +SUMMARY = "Foreign Function Interface for Python calling C code" +HOMEPAGE = "http://cffi.readthedocs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" +DEPENDS += "libffi ${PYTHON_PN}-pycparser" + +SRC_URI[md5sum] = "a731487324b501c8295221b629d3f5f3" +SRC_URI[sha256sum] = "ab87dd91c0c4073758d07334c1e5f712ce8fe48f007b86f8238773963ee700a6" + +RDEPENDS_${PN}_class-target = " \ + ${PYTHON_PN}-io \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-cffi_0.9.2.bb b/meta-python/recipes-devtools/python/python-cffi_0.9.2.bb deleted file mode 100644 index 6c34b6760c5..00000000000 --- a/meta-python/recipes-devtools/python/python-cffi_0.9.2.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Foreign Function Interface for Python calling C code" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf" -DEPENDS = "libffi python-pycparser" - -SRC_URI[md5sum] = "b1bf4625ae07a8a932f2f1a2eb200c54" -SRC_URI[sha256sum] = "1988ce7ff9c64ecd5077776175e90fd8f0a8c827cb241a23647175ce08126bb2" - -inherit pypi diff --git a/meta-python/recipes-devtools/python/python-cffi_1.11.2.bb b/meta-python/recipes-devtools/python/python-cffi_1.11.2.bb new file mode 100644 index 00000000000..3cd62d1f78a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cffi_1.11.2.bb @@ -0,0 +1,2 @@ +require python-cffi.inc +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-chardet.inc b/meta-python/recipes-devtools/python/python-chardet.inc new file mode 100644 index 00000000000..6035488a7a0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-chardet.inc @@ -0,0 +1,13 @@ +SUMMARY = "Universal encoding detector for Python 2 and 3" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343" + +inherit pypi + +# setup.py of chardet needs this. +DEPENDS += "${PYTHON_PN}-pytest-runner-native" + +SRC_URI[md5sum] = "7dd1ba7f9c77e32351b0a0cfacf4055c" +SRC_URI[sha256sum] = "84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-chardet_3.0.4.bb b/meta-python/recipes-devtools/python/python-chardet_3.0.4.bb new file mode 100644 index 00000000000..b7a46e9d7bc --- /dev/null +++ b/meta-python/recipes-devtools/python/python-chardet_3.0.4.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-chardet.inc diff --git a/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb b/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb index e015d0b0239..20fc2fdc3f2 100644 --- a/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb +++ b/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb @@ -1,16 +1,11 @@ SUMMARY = "Python template engine and code generation tool" -SECTION = "devel/python" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=aff1107514aa6aae948f9fe71fdc393b" -SRCNAME = "Cheetah" - PR = "r3" -SRC_URI = "http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools +PYPI_PACKAGE = "Cheetah" +inherit pypi setuptools RDEPENDS_${PN} = "python-pickle python-pprint" RDEPENDS_${PN}_class-native = "" diff --git a/meta-python/recipes-devtools/python/python-click.inc b/meta-python/recipes-devtools/python/python-click.inc new file mode 100644 index 00000000000..718bbabcf38 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-click.inc @@ -0,0 +1,21 @@ +SUMMARY = "A simple wrapper around optparse for powerful command line utilities." +DESCRIPTION = "\ +Click is a Python package for creating beautiful command line interfaces \ +in a composable way with as little code as necessary. It's the "Command \ +Line Interface Creation Kit". It's highly configurable but comes with \ +sensible defaults out of the box." +HOMEPAGE = "http://click.pocoo.org/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=09e8b7869f94ba9e9a7b260d53c65dab" + +SRC_URI[md5sum] = "fc4cc00c4863833230d3af92af48abd4" +SRC_URI[sha256sum] = "f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b" + +CLEANBROKEN = "1" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-threading \ + " + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-click_6.7.bb b/meta-python/recipes-devtools/python/python-click_6.7.bb new file mode 100644 index 00000000000..f63e27c8438 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-click_6.7.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools +require python-click.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-contextlib" diff --git a/meta-python/recipes-devtools/python/python-cloudeebus_0.6.0.bb b/meta-python/recipes-devtools/python/python-cloudeebus_0.6.0.bb deleted file mode 100644 index 120a8a79279..00000000000 --- a/meta-python/recipes-devtools/python/python-cloudeebus_0.6.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -DESCRIPTION = "A component which enables calling DBus methods and registering on DBus signals from Javascript" -HOMEPAGE = "https://github.com/01org/cloudeebus" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" - -SRC_URI = "git://github.com/01org/cloudeebus.git;protocol=http;branch=master " -SRCREV = "b5cc957eeabfe98cb996baf8e5a0ac848993c3d4" - -S = "${WORKDIR}/git" - -inherit distutils - -DEPENDS_${PN} = "python python-distribute" -RDEPENDS_${PN} = "python python-dbus python-json python-argparse python-pygobject python-autobahn python-twisted python-subprocess" - -do_install_prepend() { - install -d ${D}${PYTHON_SITEPACKAGES_DIR}/${PN} -} - -DISTUTILS_INSTALL_ARGS = "--root=${D} \ - --single-version-externally-managed \ - --prefix=${prefix} \ - --install-lib=${PYTHON_SITEPACKAGES_DIR} \ - --install-data=${datadir}" - -do_install_append() { - distutils_do_install - install -d ${D}${datadir}/doc/${BPN}/ - install -m 0644 ${S}/README.md ${D}${datadir}/doc/${BPN}/ -} - -FILES_${PN} += "${datadir}/cloudeebus" -FILES_${PN} += "${sysconfdir}/dbus-1/system.d/org.cloudeebus.conf" - diff --git a/meta-python/recipes-devtools/python/python-cmd2_0.6.7.bb b/meta-python/recipes-devtools/python/python-cmd2_0.6.7.bb deleted file mode 100644 index fc7f024a471..00000000000 --- a/meta-python/recipes-devtools/python/python-cmd2_0.6.7.bb +++ /dev/null @@ -1,20 +0,0 @@ -# Imported from git://git.yoctoproject.org/meta-cloud-services - -SUMMARY = "Extra features for standard library's cmd module" -HOMEPAGE = "http://packages.python.org/cmd2/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://setup.py;beginline=21;endline=21;md5=a00047b7e92e0781452d0beba4e7b44e" - -SRCNAME = "cmd2" - -SRC_URI = "http://pypi.python.org/packages/source/c/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "842df29ff2f72d64d7f0d917039c0e51" -SRC_URI[sha256sum] = "8e98c7a1cfd106183559240b269e7cd9fe97e8342b5c05295f591aab6fd2f4f0" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += "python-pyparsing" diff --git a/meta-python/recipes-devtools/python/python-cmd2_0.7.8.bb b/meta-python/recipes-devtools/python/python-cmd2_0.7.8.bb new file mode 100644 index 00000000000..82393db8e60 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cmd2_0.7.8.bb @@ -0,0 +1,20 @@ +SUMMARY = "Extra features for standard library's cmd module" +HOMEPAGE = "http://packages.python.org/cmd2/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://setup.py;beginline=49;endline=49;md5=0f13c9cfc75288223cf7edd2f3b985a2" + +SRC_URI[md5sum] = "afa5c55fd94bb4a38a01232a511585eb" +SRC_URI[sha256sum] = "e132db7d1f5a2faf2310606ee4b2e49c7b4e1e5ed533f1e4ca9474c51475eb0f" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-doctest \ + ${PYTHON_PN}-pyparsing \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-textutils \ + " diff --git a/meta-python/recipes-devtools/python/python-constantly.inc b/meta-python/recipes-devtools/python/python-constantly.inc new file mode 100644 index 00000000000..81535049293 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-constantly.inc @@ -0,0 +1,11 @@ +DESCRIPTION = "Symbolic constants in Python" +HOMEPAGE = "https://github.com/twisted/constantly" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e393e4ddd223e3a74982efa784f89fd7" + +SRC_URI[md5sum] = "f0762f083d83039758e53f8cf0086eef" +SRC_URI[sha256sum] = "586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35" + +inherit pypi + +RDEPENDS_${PN} += "${PYTHON_PN}-json" diff --git a/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb b/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb new file mode 100644 index 00000000000..29b15eb6053 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-constantly.inc diff --git a/meta-python/recipes-devtools/python/python-cryptography-vectors.inc b/meta-python/recipes-devtools/python/python-cryptography-vectors.inc new file mode 100644 index 00000000000..922ef5a7212 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cryptography-vectors.inc @@ -0,0 +1,18 @@ +SUMMARY = "Test vectors for the cryptography package." +HOMEPAGE = "https://cryptography.io/" +SECTION = "devel/python" +LICENSE = "Apache-2.0 | BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4" + +DEPENDS += " \ + ${PYTHON_PN}-cryptography \ +" + +SRC_URI[md5sum] = "32e8bd5d5f6a9329a6753dabc8db1e5b" +SRC_URI[sha256sum] = "2de4957fdfd567d69e179d6e9ecf54a085387c953e20abf97a35a5c313aa3053" + +PYPI_PACKAGE = "cryptography_vectors" + +BBCLASSEXTEND = "native nativesdk" + +UPSTREAM_CHECK_REGEX = "" diff --git a/meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.3.bb b/meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.3.bb new file mode 100644 index 00000000000..4975278a990 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.3.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-cryptography-vectors.inc diff --git a/meta-python/recipes-devtools/python/python-cryptography.inc b/meta-python/recipes-devtools/python/python-cryptography.inc new file mode 100644 index 00000000000..c21c59d5cc0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cryptography.inc @@ -0,0 +1,58 @@ +SUMMARY = "Provides cryptographic recipes and primitives to python developers" +HOMEPAGE = "https://cryptography.io/" +LICENSE = "Apache-2.0 | BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d5ede125ed08d4fd14ec44d334bdb388" + +DEPENDS += " \ + ${PYTHON_PN}-cffi \ + ${PYTHON_PN}-cffi-native \ + ${PYTHON_PN}-asn1crypto \ + ${PYTHON_PN}-six \ +" + +SRC_URI[md5sum] = "65c0963048a88fcf725cfa265ed2fd5c" +SRC_URI[sha256sum] = "68a26c353627163d74ee769d4749f2ee243866e9dac43c93bb33ebd8fbed1199" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-cffi \ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-asn1crypto \ + ${PYTHON_PN}-pycparser \ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-six \ +" + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-cffi \ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-asn1crypto \ + ${PYTHON_PN}-pycparser \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-setuptools \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-threading \ +" + +RDEPENDS_${PN}-ptest += " \ + ${PN} \ + ${PYTHON_PN}-cryptography-vectors \ + ${PYTHON_PN}-iso8601 \ + ${PYTHON_PN}-pretend \ + ${PYTHON_PN}-pytest \ +" + +inherit ptest + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ + install -d ${D}${PTEST_PATH}/tests/hazmat + cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/ +} + +FILES_${PN}-dbg += " \ + ${libdir}/${PYTHON_PN}2.7/site-packages/${SRCNAME}/hazmat/bindings/.debug \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-cryptography/run-ptest b/meta-python/recipes-devtools/python/python-cryptography/run-ptest new file mode 100644 index 00000000000..0ba239c2a42 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cryptography/run-ptest @@ -0,0 +1,2 @@ +#!/bin/sh +py.test diff --git a/meta-python/recipes-devtools/python/python-cryptography_2.1.3.bb b/meta-python/recipes-devtools/python/python-cryptography_2.1.3.bb new file mode 100644 index 00000000000..f5b1e0b3b52 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cryptography_2.1.3.bb @@ -0,0 +1,21 @@ +inherit pypi setuptools +require python-cryptography.inc + +SRC_URI += " \ + file://run-ptest \ +" + +DEPENDS += " \ + ${PYTHON_PN}-enum34 \ +" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-enum34 \ + ${PYTHON_PN}-ipaddress \ +" + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-enum34 \ + ${PYTHON_PN}-ipaddress \ + ${PYTHON_PN}-contextlib \ +" diff --git a/meta-python/recipes-devtools/python/python-cython.inc b/meta-python/recipes-devtools/python/python-cython.inc new file mode 100644 index 00000000000..8d8f27c0276 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cython.inc @@ -0,0 +1,26 @@ +DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \ +It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \ +and the messy, low-level world of C." +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" +PYPI_PACKAGE = "Cython" +BBCLASSEXTEND = "native" + +SRC_URI[md5sum] = "6149238287d662bd5d5e572482252493" +SRC_URI[sha256sum] = "6a00512de1f2e3ce66ba35c5420babaef1fe2d9c43a8faab4080b0dbcc26bc64" + +inherit pypi + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-shell \ +" + +do_install_append() { + # Make sure we use /usr/bin/env python + for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do + sed -i -e '1s|^#!.*|#!/usr/bin/env ${PYTHON_PN}|' $PYTHSCRIPT + done +} diff --git a/meta-python/recipes-devtools/python/python-cython_0.20.2.bb b/meta-python/recipes-devtools/python/python-cython_0.20.2.bb deleted file mode 100644 index 3966e0b96e9..00000000000 --- a/meta-python/recipes-devtools/python/python-cython_0.20.2.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \ -It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \ -and the messy, low-level world of C." -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" -SRCNAME = "Cython" -BBCLASSEXTEND = "native" - -SRC_URI = "http://www.cython.org/release/${SRCNAME}-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -SRC_URI[md5sum] = "7fc13e1c665bdf7cea19ad08906af91f" -SRC_URI[sha256sum] = "ed13b606a2aeb5bd6c235f8ed6c9988c99d01a033d0d21d56137c13d5c7be63f" - -inherit setuptools - -RDEPENDS_${PN} += "\ - python-distribute \ - python-netserver \ - python-subprocess \ - python-shell \ -" -RDEPENDS_${PN}_class-native = "" diff --git a/meta-python/recipes-devtools/python/python-cython_0.27.3.bb b/meta-python/recipes-devtools/python/python-cython_0.27.3.bb new file mode 100644 index 00000000000..bdf9490c637 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-cython_0.27.3.bb @@ -0,0 +1,9 @@ +inherit setuptools +require python-cython.inc + +UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/Cython/" +UPSTREAM_CHECK_REGEX = "/Cython/(?P(\d+[\.\-_]*)+)" + +RDEPENDS_${PN} += "\ + python-distribute \ +" diff --git a/meta-python/recipes-devtools/python/python-daemon/0001-Workaround-for-issue-2-1.patch b/meta-python/recipes-devtools/python/python-daemon/0001-Workaround-for-issue-2-1.patch new file mode 100644 index 00000000000..dbb84071861 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-daemon/0001-Workaround-for-issue-2-1.patch @@ -0,0 +1,31 @@ +From 0981eee9f0198c2045dc0eaa78a005d06fc7bfe4 Mon Sep 17 00:00:00 2001 +From: Carlos Eduardo Moreira dos Santos +Date: Tue, 28 Mar 2017 18:23:44 -0300 +Subject: [PATCH] Workaround for issue 2 [1] + +[1] https://pagure.io/python-daemon/issue/2 +--- + version.py | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/version.py b/version.py +index d58422a377ee..293e2d64c2b7 100644 +--- a/version.py ++++ b/version.py +@@ -648,9 +648,10 @@ class ChangelogAwareDistribution(distutils.dist.Distribution, object): + + @lru_cache(maxsize=128) + def get_version_info(self): +- changelog_path = get_changelog_path(self) +- version_info = generate_version_info_from_changelog(changelog_path) +- return version_info ++ return { ++ 'version': '2.1.2', ++ 'maintainer': 'Ben Finney' ++ } + + def get_version(self): + version_info = self.get_version_info() +-- +2.7.4 + diff --git a/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb b/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb new file mode 100644 index 00000000000..4c18e2bad5c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Library to implement a well-behaved Unix daemon process" +HOMEPAGE = "https://pagure.io/python-daemon/" +SECTION = "devel/python" + +DEPENDS = "python-docutils" +RDEPENDS_${PN} = "python-docutils \ + python-lockfile (>= 0.10) \ + python-resource \ +" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit pypi setuptools + +SRC_URI[md5sum] = "9c57343d81f2a96c51cffeab982b04d2" +SRC_URI[sha256sum] = "261c859be5c12ae7d4286dc6951e87e9e1a70a882a8b41fd926efc1ec4214f73" + +# Fix for build error in Yocto: +# i = p.rfind('/') + 1 +# AttributeError: 'NoneType' object has no attribute 'rfind' +#S = "${WORKDIR}/python-daemon" +SRC_URI_append = " \ + file://0001-Workaround-for-issue-2-1.patch \ +" + +PYPI_PACKAGE = "python-daemon" diff --git a/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb b/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb new file mode 100644 index 00000000000..98f23aba10a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb @@ -0,0 +1,16 @@ +SUMMARY = "Library to enable your code run as a daemon process on Unix-like systems" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=13e982bf1b7b164b9d6d1665dac83873" +SRCNAME = "daemonize" + +inherit pypi setuptools + +RDEPENDS_${PN} = "\ + python-fcntl \ + python-unixadmin \ + python-logging \ + python-resource \ +" + +SRC_URI[md5sum] = "6759005b12dfeea0d4305f8536b4b0c2" +SRC_URI[sha256sum] = "c0194e861826be456c7c69985825ac7b79632d8ac7ad4cde8e12fee7971468c8" diff --git a/meta-python/recipes-devtools/python/python-dateutil.inc b/meta-python/recipes-devtools/python/python-dateutil.inc new file mode 100644 index 00000000000..ca51059b097 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-dateutil.inc @@ -0,0 +1,20 @@ +SUMMARY = "Extensions to the standard Python datetime module" +DESCRIPTION = "The dateutil module provides powerful extensions to the datetime module available in the Python standard library." +HOMEPAGE = "https://dateutil.readthedocs.org" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=31f72d4cad3675fb091537b9b2f32de0" + +SRC_URI[md5sum] = "db38f6b4511cefd76014745bb0cc45a4" +SRC_URI[sha256sum] = "891c38b2a02f5bb1be3e4793866c8df49c7d19baabf9c1bad62547e0b4866aca" + +PYPI_PACKAGE = "python-dateutil" +inherit pypi + +PACKAGES =+ "${PN}-zoneinfo" +FILES_${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo" + +RDEPENDS_${PN}_class-target = "\ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-six \ + " diff --git a/meta-python/recipes-devtools/python/python-dateutil_1.5.bb b/meta-python/recipes-devtools/python/python-dateutil_1.5.bb deleted file mode 100644 index 37f19a839af..00000000000 --- a/meta-python/recipes-devtools/python/python-dateutil_1.5.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Extensions to the standard Python date/time support" -HOMEPAGE = "http://labix.org/python-dateutil" -SECTION = "devel/python" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d82268718c68bda0b091006ec6e583c6" -SRCNAME = "${BPN}" - -SRC_URI = "http://labix.org/download/python-dateutil/${SRCNAME}-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -PACKAGES =+ "${PN}-zoneinfo" -FILES_${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo" - -RDEPENDS_${PN} = "\ - python-core \ - python-datetime \ -" - -SRC_URI[md5sum] = "35f3732db3f2cc4afdc68a8533b60a52" -SRC_URI[sha256sum] = "c08aca7d85f8f8eed61e83b3423b829262c596a9a78f7ca3de0bcee2217d0e3b" diff --git a/meta-python/recipes-devtools/python/python-dateutil_2.6.1.bb b/meta-python/recipes-devtools/python/python-dateutil_2.6.1.bb new file mode 100644 index 00000000000..12ae4c31180 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-dateutil_2.6.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-dateutil.inc diff --git a/meta-python/recipes-devtools/python/python-dbus_1.2.4.bb b/meta-python/recipes-devtools/python/python-dbus_1.2.4.bb new file mode 100644 index 00000000000..271b559b778 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-dbus_1.2.4.bb @@ -0,0 +1,31 @@ +SUMMARY = "Python bindings for the DBus inter-process communication system" +SECTION = "devel/python" +HOMEPAGE = "http://www.freedesktop.org/Software/dbus" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=0b83047ce9e948b67c0facc5f233476a" +DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native" + +SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \ +" + +SRC_URI[md5sum] = "7372a588c83a7232b4e08159bfd48fe5" +SRC_URI[sha256sum] = "e2f1d6871f74fba23652e51d10873e54f71adab0525833c19bad9e99b1b2f9cc" +S = "${WORKDIR}/dbus-python-${PV}" + +inherit distutils-base autotools pkgconfig + +PACKAGECONFIG ?= "" +PACKAGECONFIG[docs] = "--enable-html-docs,--disable-html-docs,python3-docutils-native" +PACKAGECONFIG[api-docs] = "--enable-api-docs,--disable-api-docs,python3-docutils-native python3-epydoc-native" + +export STAGING_LIBDIR +export STAGING_INCDIR + +RDEPENDS_${PN} = "python-io python-logging python-stringold python-threading python-xml" + +FILES_${PN}-dev += "${libdir}/pkgconfig" + +do_install_append() { + # Remove files that clash with python3-dbus; their content is same + rm ${D}${includedir}/dbus-1.0/dbus/dbus-python.h ${D}${libdir}/pkgconfig/dbus-python.pc +} diff --git a/meta-python/recipes-devtools/python/python-dbusmock/0001-Don-t-use-gobject-introspection-for-bindings.patch b/meta-python/recipes-devtools/python/python-dbusmock/0001-Don-t-use-gobject-introspection-for-bindings.patch deleted file mode 100644 index f3ab53c5464..00000000000 --- a/meta-python/recipes-devtools/python/python-dbusmock/0001-Don-t-use-gobject-introspection-for-bindings.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 29960f2fce7ab42ed0a1bf8ce96499fdb6eedf3c Mon Sep 17 00:00:00 2001 -From: Simon Busch -Date: Tue, 25 Mar 2014 15:28:54 +0100 -Subject: [PATCH] Don't use gobject introspection for bindings - -In our environment we're not providing the glib python bindings through -introspection but just pygobject so we need to use the right import. - -Signed-off-by: Simon Busch ---- - dbusmock/__main__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dbusmock/__main__.py b/dbusmock/__main__.py -index 44b63fb..bfd089c 100644 ---- a/dbusmock/__main__.py -+++ b/dbusmock/__main__.py -@@ -51,7 +51,7 @@ def parse_args(): - - if __name__ == '__main__': - import dbus.mainloop.glib -- from gi.repository import GLib -+ import glib as GLib - - args = parse_args() - dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) --- -1.7.9.5 - diff --git a/meta-python/recipes-devtools/python/python-dbusmock_0.10.1.bb b/meta-python/recipes-devtools/python/python-dbusmock_0.10.1.bb deleted file mode 100644 index b24794395a3..00000000000 --- a/meta-python/recipes-devtools/python/python-dbusmock_0.10.1.bb +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (c) 2014 LG Electronics, Inc. - -SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus" -AUTHOR = "Martin Pitt " -SECTION = "devel/python" - -LICENSE = "GPL-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" - -DEPENDS += "python-pygobject python-dbus" - -SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BP}.tar.gz" -SRC_URI[md5sum] = "7370d325c4a75494dd71885ca65b79e8" -SRC_URI[sha256sum] = "03aadc93bdc26ea18d4d78fcff7b6cb34f4e18623bc5cc41cf9539d663cee11e" - -SRC_URI += " \ - file://0001-Don-t-use-gobject-introspection-for-bindings.patch \ - file://0001-Add-functionality-to-add-own-objects-to-internal-obj.patch \ - file://0002-Add-possibility-to-import-templates-from-packages.patch \ -" - -inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-dbusmock_0.16.7.bb b/meta-python/recipes-devtools/python/python-dbusmock_0.16.7.bb new file mode 100644 index 00000000000..fb8c0aa6027 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-dbusmock_0.16.7.bb @@ -0,0 +1,26 @@ +# Copyright (c) 2014 LG Electronics, Inc. + +SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus" +AUTHOR = "Martin Pitt " + +LICENSE = "GPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI[md5sum] = "80f8caa838fad96483a8751e11d384f9" +SRC_URI[sha256sum] = "2d2ea892fa4633c3ec6ac1e912120ec493047a5c6522849b7d1c95ad755bce75" + +SRC_URI += " \ + file://0001-Add-functionality-to-add-own-objects-to-internal-obj.patch \ + file://0002-Add-possibility-to-import-templates-from-packages.patch \ +" + +PYPI_PACKAGE = "python-dbusmock" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-dbus \ + ${PYTHON_PN}-importlib \ + ${PYTHON_PN}-pygobject \ + ${PYTHON_PN}-xml \ + " diff --git a/meta-python/recipes-devtools/python/python-decorator.inc b/meta-python/recipes-devtools/python/python-decorator.inc new file mode 100644 index 00000000000..859f97269cc --- /dev/null +++ b/meta-python/recipes-devtools/python/python-decorator.inc @@ -0,0 +1,19 @@ +SUMMARY = "Python decorator utilities" +DESCRIPTION = "\ +The aim of the decorator module it to simplify the usage of decorators \ +for the average programmer, and to popularize decorators by showing \ +various non-trivial examples. Of course, as all techniques, decorators \ +can be abused and you should not try to solve every problem with a \ +decorator, just because you can." + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=893f896413826096ce5270c700a498fd" + +SRC_URI[md5sum] = "a0f7f4fe00ae2dde93494d90c192cf8c" +SRC_URI[sha256sum] = "7cb64d38cb8002971710c8899fbdfb859a23a364b7c99dab19d1f719c2ba16b5" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-stringold \ + " diff --git a/meta-python/recipes-devtools/python/python-decorator_3.4.0.bb b/meta-python/recipes-devtools/python/python-decorator_3.4.0.bb deleted file mode 100644 index 43166304a21..00000000000 --- a/meta-python/recipes-devtools/python/python-decorator_3.4.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Python decorator utilities" -HOMEPAGE = "http://pypi.python.org/pypi/decorator/" -DESCRIPTION = "\ -The aim of the decorator module it to simplify the usage of decorators \ -for the average programmer, and to popularize decorators by showing \ -various non-trivial examples. Of course, as all techniques, decorators \ -can be abused and you should not try to solve every problem with a \ -decorator, just because you can." - -SECTION = "devel/python" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://documentation3.py;beginline=848;endline=877;md5=0b56661417fb7b841afc8892e14ba241" - -SRCNAME = "decorator" - -SRC_URI = "https://pypi.python.org/packages/source/d/decorator/decorator-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -SRC_URI[md5sum] = "1e8756f719d746e2fc0dd28b41251356" -SRC_URI[sha256sum] = "c20b404cbb7ee5cebd506688e0114e3cd76f5ce233805a51f36e1a7988d9d783" diff --git a/meta-python/recipes-devtools/python/python-decorator_4.1.2.bb b/meta-python/recipes-devtools/python/python-decorator_4.1.2.bb new file mode 100644 index 00000000000..2a2b455f562 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-decorator_4.1.2.bb @@ -0,0 +1,4 @@ +inherit setuptools +require python-decorator.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-contextlib" diff --git a/meta-python/recipes-devtools/python/python-django-south.inc b/meta-python/recipes-devtools/python/python-django-south.inc new file mode 100644 index 00000000000..ce904b69472 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-django-south.inc @@ -0,0 +1,17 @@ +SUMMARY = "Migrations for Django" +DESCRIPTION = "South is an intelligent database migrations library for the Django web framework. It is database-independent and DVCS-friendly, as well as a whole host of other features." +HOMEPAGE = "http://south.aeracode.org/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=17;endline=18;md5=2155d8ae21e7c23101d5febac696b27e" + +SRC_URI[md5sum] = "c76a9758b2011bc3b6c39f881bba2f66" +SRC_URI[sha256sum] = "d360bd31898f9df59f6faa786551065bba45b35e7ee3c39b381b4fbfef7392f4" + +PYPI_PACKAGE = "South" +inherit pypi + +BBCLASSEXTEND = "nativesdk" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-django \ + " diff --git a/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb b/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb index 9eab13d04a7..357b766a3df 100644 --- a/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb +++ b/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb @@ -1,19 +1,2 @@ -SUMMARY = "Migrations for Django" -DESCRIPTION = "South is an intelligent database migrations library for the Django web framework. It is database-independent and DVCS-friendly, as well as a whole host of other features." -HOMEPAGE = "http://south.aeracode.org/" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=17;endline=18;md5=2155d8ae21e7c23101d5febac696b27e" - -SRCNAME = "South" - -SRC_URI = "https://pypi.python.org/packages/source/S/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "c76a9758b2011bc3b6c39f881bba2f66" -SRC_URI[sha256sum] = "d360bd31898f9df59f6faa786551065bba45b35e7ee3c39b381b4fbfef7392f4" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit distutils - -BBCLASSEXTEND = "nativesdk" +require python-django-south.inc +inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-django.inc b/meta-python/recipes-devtools/python/python-django.inc new file mode 100644 index 00000000000..58fd70aebb8 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-django.inc @@ -0,0 +1,24 @@ +SUMMARY = "A high-level Python Web framework" +HOMEPAGE = "http://www.djangoproject.com/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa" + +SRC_URI[md5sum] = "8cef0d42aabacbc414ec4fbbb6056f3c" +SRC_URI[sha256sum] = "1836878162dfdf865492bacfdff0321e4ee8f1e7d51d93192546000b54982b29" + +PYPI_PACKAGE = "Django" +inherit pypi + +FILES_${PN} += "${datadir}/django" + +BBCLASSEXTEND = "nativesdk" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-importlib \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pip \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-threading \ + " diff --git a/meta-python/recipes-devtools/python/python-django_1.11.5.bb b/meta-python/recipes-devtools/python/python-django_1.11.5.bb new file mode 100644 index 00000000000..ccd7714e9f7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-django_1.11.5.bb @@ -0,0 +1,2 @@ +require python-django.inc +inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-django_1.6.10.bb b/meta-python/recipes-devtools/python/python-django_1.6.10.bb deleted file mode 100644 index a7ca803f238..00000000000 --- a/meta-python/recipes-devtools/python/python-django_1.6.10.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "A high-level Python Web framework" -HOMEPAGE = "http://www.djangoproject.com/" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=fa8608154dcdd4029ae653131d4b7365" - -SRCNAME = "Django" - -SRC_URI = "https://pypi.python.org/packages/source/D/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "d7123f14ac19ae001be02ed841937b91" -SRC_URI[sha256sum] = "54eb59ce785401c7d1fdeed245efce597e90f811d6a20f6b5c6931c0049d63a6" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit distutils - -FILES_${PN} += "${datadir}/django" - -BBCLASSEXTEND = "nativesdk" diff --git a/meta-python/recipes-devtools/python/python-dnspython.inc b/meta-python/recipes-devtools/python/python-dnspython.inc new file mode 100644 index 00000000000..6a04429b7ba --- /dev/null +++ b/meta-python/recipes-devtools/python/python-dnspython.inc @@ -0,0 +1,20 @@ +DESCRIPTION = "DNS toolkit for Python" +HOMEPAGE = "http://www.dnspython.org/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b9d855ee0d7bea17c8b0994d37985e1e" + +SRC_URI[md5sum] = "05d33ffb5d8f35ae0474bb952778a344" +SRC_URI[sha256sum] = "40f563e1f7a7b80dc5a4e76ad75c23da53d62f1e15e6e517293b04e1f84ead7c" + +PYPI_PACKAGE_EXT = "zip" + +inherit pypi + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-crypt \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb b/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb new file mode 100644 index 00000000000..9dbcd0ffbd4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-dnspython.inc diff --git a/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb b/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb new file mode 100644 index 00000000000..68436a1a544 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb @@ -0,0 +1,18 @@ +SUMMARY = "Text processing system for documentation" +HOMEPAGE = "http://docutils.sourceforge.net" +SECTION = "devel/python" +LICENSE = "PSF & BSD-2-Clause & GPLv3" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=35a23d42b615470583563132872c97d6" + +DEPENDS = "python" + +SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz" +SRC_URI[md5sum] = "2f4bee6451958252f7bec71f18b05be3" +SRC_URI[sha256sum] = "3caee0bcb2a49fdf24fcfa70849a60abb7a181aa68b030f7cb7494096181830c" + +S = "${WORKDIR}/docutils-${PV}" + +inherit distutils + +BBCLASSEXTEND = "native" + diff --git a/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb b/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb new file mode 100644 index 00000000000..13ebf92b657 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb @@ -0,0 +1,13 @@ +SUMMARY = "Dominate is a Python library for creating and manipulating HTML documents using an elegant DOM API." +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24" + +SRC_URI[md5sum] = "45bd97e6f7888aac24ae86013c57638e" +SRC_URI[sha256sum] = "4b8ce6f33633c9dd9175b228d21c00c801b6bd0327747cd5e17fc2da934c3a69" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-threading \ + " diff --git a/meta-python/recipes-devtools/python/python-enum34_1.0.4.bb b/meta-python/recipes-devtools/python/python-enum34_1.0.4.bb deleted file mode 100644 index 2ef5df1fa6c..00000000000 --- a/meta-python/recipes-devtools/python/python-enum34_1.0.4.bb +++ /dev/null @@ -1,8 +0,0 @@ -SUMMARY = "backport of Python 3.4's enum package" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://enum/LICENSE;md5=0a97a53a514564c20efd7b2e8976c87e" - -SRC_URI[md5sum] = "ac80f432ac9373e7d162834b264034b6" -SRC_URI[sha256sum] = "d3c19f26a6a34629c18c775f59dfc5dd595764c722b57a2da56ebfb69b94e447" - -inherit pypi diff --git a/meta-python/recipes-devtools/python/python-enum34_1.1.6.bb b/meta-python/recipes-devtools/python/python-enum34_1.1.6.bb new file mode 100644 index 00000000000..d50b5c7c584 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-enum34_1.1.6.bb @@ -0,0 +1,11 @@ +SUMMARY = "backport of Python 3.4's enum package" +HOMEPAGE = "https://bitbucket.org/stoneleaf/enum34" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://enum/LICENSE;md5=0a97a53a514564c20efd7b2e8976c87e" + +SRC_URI[md5sum] = "5f13a0841a61f7fc295c514490d120d0" +SRC_URI[sha256sum] = "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1" + +inherit pypi setuptools + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb b/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb index 4ec0668575e..dd9799faf13 100644 --- a/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb +++ b/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb @@ -1,18 +1,19 @@ -DESCRIPTION = "Epydoc is a tool for generating API documentation for Python modules, based on their docstrings" -SECTION = "devel/python" -LICENSE = "MIT" +DESCRIPTION = "Epydoc is a tool for generating API documentation for Python modules, based on their docstrings" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=011c0d78eb6054d731c879132d7313f0" -HOMEPAGE = "http://epydoc.sourceforge.net/" -SRCNAME = "epydoc" -DEPENDS += "python" -DEPENDS_virtclass-native += "python-native" +HOMEPAGE = "http://epydoc.sourceforge.net/" -SRC_URI = "http://downloads.sourceforge.net/project/${SRCNAME}/${SRCNAME}/${PV}/${SRCNAME}-${PV}.tar.gz" SRC_URI[md5sum] = "cdd6f6c76dd8bab5e653a343a0544294" SRC_URI[sha256sum] = "d4e5c8d90937d01b05170f592c1fa9b29e9ed0498dfe7f0eb2a3af61725b6ad1" -S = "${WORKDIR}/${SRCNAME}-${PV}" +inherit pypi distutils -inherit distutils +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-codecs \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-re \ + ${PYTHON_PN}-xml \ + " BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb b/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb new file mode 100644 index 00000000000..0875da45c37 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "Python evdev lib" +HOMEPAGE = "https://github.com/gvalkov/python-evdev" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2" + +SRC_URI[md5sum] = "c7e855ae9f97f869a59e75b29f05ce74" +SRC_URI[sha256sum] = "57edafc469a414f58b51af1bfb9ee2babb9f626dd2df530d71c1176871850aa1" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-fcntl \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-stringold \ + " diff --git a/meta-python/recipes-devtools/python/python-feedformatter.inc b/meta-python/recipes-devtools/python/python-feedformatter.inc new file mode 100644 index 00000000000..a333ef4eea4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-feedformatter.inc @@ -0,0 +1,16 @@ +DESCRIPTION = "A Python library for generating news feeds in RSS and Atom formats" +HOMEPAGE = "http://code.google.com/p/feedformatter/" +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=258e3f39e2383fbd011035d04311008d" +SRCREV = "7391193c83e10420b5a2d8ef846d23fc368c6d85" + +SRC_URI = "git://github.com/marianoguerra/feedformatter.git" + +S = "${WORKDIR}/git" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-xml \ + " diff --git a/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb b/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb new file mode 100644 index 00000000000..175f94478a3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-feedformatter.inc diff --git a/meta-python/recipes-devtools/python/python-feedparser_5.1.3.bb b/meta-python/recipes-devtools/python/python-feedparser_5.1.3.bb deleted file mode 100644 index 92d55682f54..00000000000 --- a/meta-python/recipes-devtools/python/python-feedparser_5.1.3.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Python Atom and RSS feed parser" -HOMEPAGE = "http://code.google.com/p/feedparser" -SECTION = "devel/python" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f5fbe7f8b71b4019eca5ac5f900fd8ad" - -SRC_URI = "http://feedparser.googlecode.com/files/feedparser-${PV}.tar.bz2" -SRC_URI[md5sum] = "6fb6372a1dc2f56d4d79d740b8f49f25" -SRC_URI[sha256sum] = "7f6507d400d07edfd1ea8205da36808009b0c539f5b8a6e0ab54337b955e6dc3" - -S = "${WORKDIR}/feedparser-${PV}" - -inherit setuptools - diff --git a/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb b/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb new file mode 100644 index 00000000000..b8ee700f04b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "Python Atom and RSS feed parser" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c21a7713ef6dc1b99644061c397e7c2a" + +SRC_URI[md5sum] = "d552f7a2a55e8e33b2a3fe1082505b42" +SRC_URI[sha256sum] = "bd030652c2d08532c034c27fcd7c85868e7fa3cb2b17f230a44a6bbc92519bf9" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-codecs \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-html \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-stringold \ + " + diff --git a/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb b/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb new file mode 100644 index 00000000000..f035862de35 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Bcrypt hashing for Flask." +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0ee2ee5bee7fe96597770e92db5719a8" + +SRC_URI[md5sum] = "d345c36ac6637d3ca9fa942e238d00ca" +SRC_URI[sha256sum] = "d71c8585b2ee1c62024392ebdbc447438564e2c8c02b4e57b56a4cafd8d13c5f" + +PYPI_PACKAGE = "Flask-Bcrypt" + +inherit pypi setuptools + +RDEPENDS_${PN} += "${PYTHON_PN}-bcrypt ${PYTHON_PN}-flask" diff --git a/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.7.1.bb b/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.7.1.bb new file mode 100644 index 00000000000..2b2a6f9bdad --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.7.1.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "An extension that includes Bootstrap in your project, without any boilerplate code." +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=a03749709f06118a17349deb5a210619" + +SRC_URI[md5sum] = "e40d50f5c5b6438c1c6200a6f2871f81" +SRC_URI[sha256sum] = "cb08ed940183f6343a64e465e83b3a3f13c53e1baabb8d72b5da4545ef123ac8" + +PYPI_PACKAGE = "Flask-Bootstrap" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-dominate \ + ${PYTHON_PN}-flask \ + ${PYTHON_PN}-visitor \ + " diff --git a/meta-python/recipes-devtools/python/python-flask-login.inc b/meta-python/recipes-devtools/python/python-flask-login.inc new file mode 100644 index 00000000000..7dddba04348 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-login.inc @@ -0,0 +1,14 @@ +SUMMARY = "User session management for Flask" +DESCRIPTION = "Flask-Login provides user session management for Flask. \ +It handles the common tasks of logging in, logging out, and remembering \ +your users’ sessions over extended periods of time." +HOMEPAGE = " https://github.com/maxcountryman/flask-login" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8aa87a1cd9fa41d969ad32cfdac2c596" + +SRC_URI[md5sum] = "e050efaa2c4dbc2d97f480a70f4d44aa" +SRC_URI[sha256sum] = "d25e356b14a59f52da0ab30c31c2ad285fa23a840f0f6971df7ed247c77082a7" + +PYPI_PACKAGE = "Flask-Login" + +RDEPENDS_${PN}_class-target = "${PYTHON_PN}-flask" diff --git a/meta-python/recipes-devtools/python/python-flask-login_0.4.0.bb b/meta-python/recipes-devtools/python/python-flask-login_0.4.0.bb new file mode 100644 index 00000000000..510cedf220b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-login_0.4.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-flask-login.inc diff --git a/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb b/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb new file mode 100644 index 00000000000..b2dc96e3c09 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "The navigation of Flask application." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=af2ec695dc1f3eb7bd74f79a68a0d789" + +SRC_URI[md5sum] = "d1075ee02a3f69da37e5cadad3395f31" +SRC_URI[sha256sum] = "c42d30efa989ca877444a410e8a1cd2563546f9effe3d9fe388eedf7a6c69285" + +PYPI_PACKAGE = "Flask-Navigation" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-blinker \ + ${PYTHON_PN}-flask \ + " diff --git a/meta-python/recipes-devtools/python/python-flask-pymongo.inc b/meta-python/recipes-devtools/python/python-flask-pymongo.inc new file mode 100644 index 00000000000..e11283ed34f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-pymongo.inc @@ -0,0 +1,13 @@ +SUMMARY = "PyMongo support for Flask applications" +DESCRIPTION = "PyMongo support for Flask applications." +HOMEPAGE = "https://github.com/mitsuhiko/flask/" +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://flask_pymongo/wrappers.py;startline=1;endline=24;md5=424c4e1047d28e01b4e4634a069c019d" + +SRC_URI[md5sum] = "d7a1b717f27154e1f3a355f8ec2467d6" +SRC_URI[sha256sum] = "2baaa2ba5107d72b3a8bd4b5c0c8881316e35340ad1ae979cc13f1f3c8843b3d" + +PYPI_PACKAGE = "Flask-PyMongo" + +RDEPENDS_${PN} = "${PYTHON_PN}-pymongo ${PYTHON_PN}-flask" diff --git a/meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb b/meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb new file mode 100644 index 00000000000..d41d023480e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-flask-pymongo.inc diff --git a/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb b/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb new file mode 100644 index 00000000000..76509171f19 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Adds SQLAlchemy support to your Flask application." +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5ed1b8cc741515a835a7f6bf2f62ef4a" + +SRC_URI[md5sum] = "373ce61dfd03b593ad2eaba68c9fee35" +SRC_URI[sha256sum] = "5971b9852b5888655f11db634e87725a9031e170f37c0ce7851cf83497f56e53" + +PYPI_PACKAGE = "Flask-SQLAlchemy" + +inherit pypi setuptools + +RDEPENDS_${PN} = "${PYTHON_PN}-sqlalchemy ${PYTHON_PN}-flask" diff --git a/meta-python/recipes-devtools/python/python-flask-wtf/import-simplejson-as-json.patch b/meta-python/recipes-devtools/python/python-flask-wtf/import-simplejson-as-json.patch new file mode 100644 index 00000000000..678f7062b7d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-wtf/import-simplejson-as-json.patch @@ -0,0 +1,28 @@ +Upstream-Status: Inappropriate [configuration] + +Subject: [PATCH] import simplejson as json + +At runtime python-Flask-WTF tries to import json, but the module is not +available, import simplejson as json solve the issue. + +Signed-off-by: Fabio Berton +--- + flask_wtf/recaptcha/validators.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/flask_wtf/recaptcha/validators.py b/flask_wtf/recaptcha/validators.py +index bcff23d..4a244bb 100644 +--- a/flask_wtf/recaptcha/validators.py ++++ b/flask_wtf/recaptcha/validators.py +@@ -8,7 +8,7 @@ from flask import request, current_app + from wtforms import ValidationError + from werkzeug import url_encode + from .._compat import to_bytes, to_unicode +-import json ++import simplejson as json + + RECAPTCHA_VERIFY_SERVER = 'https://www.google.com/recaptcha/api/siteverify' + RECAPTCHA_ERROR_CODES = { +-- +2.1.4 + diff --git a/meta-python/recipes-devtools/python/python-flask-wtf_0.12.bb b/meta-python/recipes-devtools/python/python-flask-wtf_0.12.bb new file mode 100644 index 00000000000..79afaf6595a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask-wtf_0.12.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Simple integration of Flask and WTForms." +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=507e8635f25a06dc4f041a3a1b3359b3" + +SRC_URI[md5sum] = "c53a74e8ba481bf53405fd5efdf0339e" +SRC_URI[sha256sum] = "bd99316c97ed1d1cb90b8f0c242c86420a891a6a2058f20717e424bf5b0bb80e" + +SRC_URI += " file://import-simplejson-as-json.patch" + +PYPI_PACKAGE = "Flask-WTF" + +inherit pypi setuptools + +RDEPENDS_${PN} = "\ + python-wtforms \ + python-simplejson \ +" diff --git a/meta-python/recipes-devtools/python/python-flask.inc b/meta-python/recipes-devtools/python/python-flask.inc new file mode 100644 index 00000000000..76b5fbae267 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask.inc @@ -0,0 +1,16 @@ +SUMMARY = "A microframework based on Werkzeug, Jinja2 and good intentions" +DESCRIPTION = "\ +Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \ +intentions. And before you ask: It’s BSD licensed!" +HOMEPAGE = "https://github.com/mitsuhiko/flask/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=19866b76b054ab30c270c0eb9d7e43d7" + +SRC_URI[md5sum] = "97278dfdafda98ba7902e890b0289177" +SRC_URI[sha256sum] = "49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1" + +CLEANBROKEN = "1" + +PYPI_PACKAGE = "Flask" + +RDEPENDS_${PN} = "${PYTHON_PN}-werkzeug ${PYTHON_PN}-jinja2 ${PYTHON_PN}-itsdangerous ${PYTHON_PN}-click" diff --git a/meta-python/recipes-devtools/python/python-flask_0.12.2.bb b/meta-python/recipes-devtools/python/python-flask_0.12.2.bb new file mode 100644 index 00000000000..a0a28ab8bd2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-flask_0.12.2.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-flask.inc diff --git a/meta-python/recipes-devtools/python/python-flufl-enum_4.0.1.bb b/meta-python/recipes-devtools/python/python-flufl-enum_4.0.1.bb deleted file mode 100644 index a7376db5d12..00000000000 --- a/meta-python/recipes-devtools/python/python-flufl-enum_4.0.1.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "A Python enumeration package." -DESCRIPTION = "The flufl.enum library is a Python enumeration package. Its goal is to provide simple, \ -specific, concise semantics in an easy to read and write syntax. flufl.enum has just enough of the \ -features needed to make enumerations useful, but without a lot of extra baggage to weigh them down. " -HOMEPAGE = "https://pypi.python.org/pypi/flufl.enum" -SECTION = "devel/python" - -LICENSE = "LGPLv3" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=1fa25baed15d3be23c902636379438e8" - -SRCNAME = "flufl.enum" - -SRC_URI = " \ - http://pypi.python.org/packages/source/f/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \ -" - -SRC_URI[md5sum] = "b3ad23761a78232bc78499ced7cb85d9" -SRC_URI[sha256sum] = "4af7e7cf2dcc7517251570c7ef9ad194e30ee4b6f860eba500c03954ae95f9d8" - -inherit setuptools - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -PACKAGES =+ "\ - ${PN}-test \ -" - -FILES_${PN}-doc += "\ - ${libdir}/${PYTHON_DIR}/site-packages/flufl/enum/*.rst \ - ${libdir}/${PYTHON_DIR}/site-packages/flufl/enum/docs \ -" - -FILES_${PN}-test += "${libdir}/${PYTHON_DIR}/site-packages/flufl/enum/tests" diff --git a/meta-python/recipes-devtools/python/python-funcsigs_1.0.2.bb b/meta-python/recipes-devtools/python/python-funcsigs_1.0.2.bb new file mode 100644 index 00000000000..dad15ee0f30 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-funcsigs_1.0.2.bb @@ -0,0 +1,18 @@ +SUMMARY = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+" +DESCRPTION = " \ +funcsigs is a backport of the `PEP 362`_ function signature features from \ +Python 3.3's `inspect`_ module. The backport is compatible with Python 2.6, \ +2.7 as well as 3.3 and up. 3.2 was supported by version 0.4, but with \ +setuptools and pip no longer supporting 3.2, we cannot make any statement \ +about 3.2 compatibility. \ +" + +HOMEPAGE = "http://funcsigs.readthedocs.org" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d6bc91dc8e5793892189fe7481a2d354" + +SRC_URI[md5sum] = "7e583285b1fb8a76305d6d68f4ccc14e" +SRC_URI[sha256sum] = "a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50" + +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-functools32_3.2.3-2.bb b/meta-python/recipes-devtools/python/python-functools32_3.2.3-2.bb new file mode 100644 index 00000000000..cb4bba49685 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-functools32_3.2.3-2.bb @@ -0,0 +1,10 @@ +SUMMARY = "Backport of the functools module from Python 3.2.3 for use on 2.7 and PyPy." +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE;md5=27cf2345969ed18e6730e90fb0063a10" + +SRC_URI[md5sum] = "09f24ffd9af9f6cd0f63cb9f4e23d4b2" +SRC_URI[sha256sum] = "f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d" + +inherit pypi setuptools + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-future_0.16.0.bb b/meta-python/recipes-devtools/python/python-future_0.16.0.bb new file mode 100644 index 00000000000..46f7fe50f6f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-future_0.16.0.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Clean single-source support for Python 3 and 2" +HOMEPAGE = "https://python-future.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3f457538b297bd0ef86564b8ac216ad7" + +SRC_URI[md5sum] = "3e8e88a2bda48d54b1da7634d04760d7" +SRC_URI[sha256sum] = "e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb" + +PYPI_PACKAGE_HASH = "99abde815842bc6e97d5a7806ad51236630da14ca2f3b1fce94c0bb94d3d" + +inherit pypi setuptools + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-gdata_1.2.4.bb b/meta-python/recipes-devtools/python/python-gdata_1.2.4.bb deleted file mode 100644 index ea602779bed..00000000000 --- a/meta-python/recipes-devtools/python/python-gdata_1.2.4.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Google Data APIs Python Client Library" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://README.txt;md5=473bd4dff0ddca1f958244b2dc7a162c" -HOMEPAGE = "http://code.google.com/p/gdata-python-client/" - -inherit distutils - -SRC_URI = "http://gdata-python-client.googlecode.com/files/gdata.py-${PV}.tar.gz" -SRC_URI[md5sum] = "521f33a377d64f8a6505ba119415b787" -SRC_URI[sha256sum] = "fc5ddb8f76b17abd728721a0e0177ea35f55a70106f44dc9010b22eceb06abde" - -S = "${WORKDIR}/gdata.py-${PV}" - -FILES_${PN} += "${datadir}" - -RDEPENDS_${PN} = "python-elementtree" - diff --git a/meta-python/recipes-devtools/python/python-gdata_2.0.18.bb b/meta-python/recipes-devtools/python/python-gdata_2.0.18.bb new file mode 100644 index 00000000000..897581f1940 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-gdata_2.0.18.bb @@ -0,0 +1,21 @@ +SUMMARY = "Google Data APIs Python Client Library" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.txt;md5=4c8f0e6846e52a7fe4943acf462d808d" +HOMEPAGE = "http://code.google.com/p/gdata-python-client/" + +SRC_URI[md5sum] = "13b6e6dd8f9e3e9a8e005e05a8329408" +SRC_URI[sha256sum] = "56e7d22de819c22b13ceb0fe1869729b4287f89ebbd4bb55380d7bcf61a1fdb6" + +S = "${WORKDIR}/gdata.py-${PV}" + +inherit pypi distutils + +FILES_${PN} += "${datadir}" + +RDEPENDS_${PN} = " \ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-xml \ +" diff --git a/meta-python/recipes-devtools/python/python-gevent.inc b/meta-python/recipes-devtools/python/python-gevent.inc new file mode 100644 index 00000000000..8889cfb5a75 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-gevent.inc @@ -0,0 +1,34 @@ +SUMMARY = "A coroutine-based Python networking library" +DESCRIPTION = "gevent is a coroutine-based Python networking library that uses greenlet to provide \ +a high-level synchronous API on top of the libevent event loop." +HOMEPAGE = "http://www.gevent.org" +LICENSE = "MIT & Python-2.0 & BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4de99aac27b470c29c6c309e0c279b65 \ + file://NOTICE;md5=5966cd2c6582656d28ab3c33da3860f8 \ + file://deps/libev/LICENSE;md5=d6ad416afd040c90698edcdf1cbee347" +DEPENDS += "libevent" +DEPENDS += "${PYTHON_PN}-greenlet" +RDEPENDS_${PN} = "${PYTHON_PN}-greenlet \ + ${PYTHON_PN}-mime \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-re \ + " + +FILESEXTRAPATHS_prepend := "${THISDIR}/python-gevent:" + +SRC_URI_append = " \ + file://libev-conf.patch;patch=1;pnum=1 \ +" + +SRC_URI[md5sum] = "7f0baf355384fe5ff2ecf66853422554" +SRC_URI[sha256sum] = "4791c8ae9c57d6f153354736e1ccab1e2baf6c8d9ae5a77a9ac90f41e2966b2d" + +# The python-gevent has no autoreconf ability +# and the logic for detecting a cross compile is flawed +# so always force a cross compile +do_configure_append() { + sed -i -e 's/^cross_compiling=no/cross_compiling=yes/' ${S}/deps/libev/configure + sed -i -e 's/^cross_compiling=no/cross_compiling=yes/' ${S}/deps/c-ares/configure +} + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch b/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch new file mode 100644 index 00000000000..79c1867ba78 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch @@ -0,0 +1,26 @@ +From 2294734ef9d5e2efb05820e9759a1635799bdea9 Mon Sep 17 00:00:00 2001 +From: Andrej Rode +Date: Mon, 10 Apr 2017 19:25:18 -0700 +Subject: [PATCH] libev: make configure crosscompile compatible + +Signed-off-by: Andrej Rode +--- + deps/libev/configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/deps/libev/configure b/deps/libev/configure +index 743817e..96c2366 100755 +--- a/deps/libev/configure ++++ b/deps/libev/configure +@@ -2208,7 +2208,7 @@ fi + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_link='$CC -static -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +-- +2.10.2 + diff --git a/meta-python/recipes-devtools/python/python-gevent_0.13.8.bb b/meta-python/recipes-devtools/python/python-gevent_0.13.8.bb deleted file mode 100644 index 3fd3e7c536b..00000000000 --- a/meta-python/recipes-devtools/python/python-gevent_0.13.8.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "A coroutine-based Python networking library" -DESCRIPTION = "gevent is a coroutine-based Python networking library that uses greenlet to provide \ -a high-level synchronous API on top of the libevent event loop." -HOMEPAGE = "http://www.gevent.org" -SECTION = "devel/python" -LICENSE = "MIT & BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2dbb33d00e1fd31c7041460a81ac0bd2 \ - file://LICENSE.pyevent;md5=718070c63de243053e2c616268b00fdd" -DEPENDS += "python-greenlet libevent" -RDEPENDS_${PN} += "python-greenlet python-mime python-pprint python-re" - -SRC_URI = "http://pypi.python.org/packages/source/g/gevent/gevent-${PV}.tar.gz" -SRC_URI[md5sum] = "ca9dcaa7880762d8ebbc266b11252960" -SRC_URI[sha256sum] = "54b8d26300ce408c0916a3e63ef6cd3e6aca76230833558deb7de15196ed955e" - -S = "${WORKDIR}/gevent-${PV}" - -inherit setuptools - diff --git a/meta-python/recipes-devtools/python/python-gevent_1.2.2.bb b/meta-python/recipes-devtools/python/python-gevent_1.2.2.bb new file mode 100644 index 00000000000..f357c952731 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-gevent_1.2.2.bb @@ -0,0 +1,3 @@ +require python-gevent.inc +inherit setuptools + diff --git a/meta-python/recipes-devtools/python/python-greenlet.inc b/meta-python/recipes-devtools/python/python-greenlet.inc new file mode 100644 index 00000000000..35820db2f20 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-greenlet.inc @@ -0,0 +1,9 @@ +SUMMARY = "Python lightweight in-process concurrent programming" +LICENSE = "MIT & PSF" +LIC_FILES_CHKSUM = "file://LICENSE;md5=03143d7a1a9f5d8a0fee825f24ca9c36 \ + file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a" + +SRC_URI[md5sum] = "e8637647d58a26c4a1f51ca393e53c00" +SRC_URI[sha256sum] = "e4c99c6010a5d153d481fdaf63b8a0782825c0721506d880403a3b9b82ae347e" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-greenlet_0.4.1.bb b/meta-python/recipes-devtools/python/python-greenlet_0.4.1.bb deleted file mode 100644 index a6db8ab7b38..00000000000 --- a/meta-python/recipes-devtools/python/python-greenlet_0.4.1.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Python lightweight in-process concurrent programming" -HOMEPAGE = "http://pypi.python.org/pypi/greenlet" -SECTION = "devel/python" -LICENSE = "MIT & PSF" -LIC_FILES_CHKSUM = "file://LICENSE;md5=03143d7a1a9f5d8a0fee825f24ca9c36 \ - file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a" -SRC_URI = "http://pypi.python.org/packages/source/g/greenlet/greenlet-${PV}.zip" -SRC_URI[md5sum] = "c2deda75bdda59c38cae12a77cc53adc" -SRC_URI[sha256sum] = "ea671592f8460541286b133ed46a6cf5311a6b75051cc31b53e2bc38992b775a" - -S = "${WORKDIR}/greenlet-${PV}" - -inherit distutils - diff --git a/meta-python/recipes-devtools/python/python-greenlet_0.4.12.bb b/meta-python/recipes-devtools/python/python-greenlet_0.4.12.bb new file mode 100644 index 00000000000..c14976ed322 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-greenlet_0.4.12.bb @@ -0,0 +1,2 @@ +inherit distutils +require python-greenlet.inc diff --git a/meta-python/recipes-devtools/python/python-grpcio-tools_1.6.3.bb b/meta-python/recipes-devtools/python/python-grpcio-tools_1.6.3.bb new file mode 100644 index 00000000000..0fb136baff1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-grpcio-tools_1.6.3.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Google gRPC tools" +HOMEPAGE = "http://www.grpc.io/" +SECTION = "devel/python" + +DEPENDS = "python-grpcio" +RDEPENDS_${PN} = "python-grpcio" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +inherit pypi setuptools + +SRC_URI[md5sum] = "835f19142e26cb7ad68cec3a083ecda2" +SRC_URI[sha256sum] = "57b3110ced50a18f1b2bf7da58ed011f57278b48084ed8013c67a34d42a5ca37" + +# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools) +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch new file mode 100644 index 00000000000..3abbc6d6f16 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch @@ -0,0 +1,36 @@ +From b02be74a2eff8abc612ef84f30e0fbce6a7f65f5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 4 Aug 2017 09:04:07 -0700 +Subject: [PATCH] setup.py: Do not mix C and C++ compiler options + +EXTRA_ENV_COMPILE_ARGS is used both with CC and CXX +so using -std=c++11 or -std=gnu99 together will cause +build time errors espcially with clang + +error: invalid argument '-std=gnu99' not allowed with 'C++' + +gcc7 ( defaults are -std=gnu11 and -std=gnu++14 ) + as well clang default to these standards mode or newer +anyway + +Signed-off-by: Khem Raj +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index cb85273..f79878d 100644 +--- a/setup.py ++++ b/setup.py +@@ -116,7 +116,7 @@ if EXTRA_ENV_COMPILE_ARGS is None: + elif 'win32' in sys.platform: + EXTRA_ENV_COMPILE_ARGS += ' -D_PYTHON_MSVC' + elif "linux" in sys.platform: +- EXTRA_ENV_COMPILE_ARGS += ' -std=c++11 -std=gnu99 -fvisibility=hidden -fno-wrapv -fno-exceptions' ++ EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions' + elif "darwin" in sys.platform: + EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv' + +-- +2.13.4 + diff --git a/meta-python/recipes-devtools/python/python-grpcio_1.6.3.bb b/meta-python/recipes-devtools/python/python-grpcio_1.6.3.bb new file mode 100644 index 00000000000..203bb36c217 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-grpcio_1.6.3.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Google gRPC" +HOMEPAGE = "http://www.grpc.io/" +SECTION = "devel/python" + +DEPENDS = "python-protobuf" + +SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \ + " +RDEPENDS_${PN} = "python-enum34 \ + python-futures \ + python-protobuf \ + python-setuptools \ + python-six \ +" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +inherit pypi setuptools + +SRC_URI[md5sum] = "6637c4dfee8166f69be7571591b6c57c" +SRC_URI[sha256sum] = "e9662782c58bc21be26163b78136eaed091dfd45fac699cb711ee9eeeb7e2f9b" + +# For usage in other recipes when compiling protobuf files (e.g. by grpcio-tools) +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-html5lib.inc b/meta-python/recipes-devtools/python/python-html5lib.inc new file mode 100644 index 00000000000..9c59e0d18c3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-html5lib.inc @@ -0,0 +1,14 @@ +SUMMARY = "HTML parser based on the WHATWG HTML specifcation" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1ba5ada9e6fead1fdc32f43c9f10ba7c" + +SRC_URI[md5sum] = "8578e4e3a341436cb9743a9e4a299239" +SRC_URI[sha256sum] = "ee747c0ffd3028d2722061936b5c65ee4fe13c8e4613519b4447123fc4546298" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-webencodings \ + ${PYTHON_PN}-xml \ + " diff --git a/meta-python/recipes-devtools/python/python-html5lib_0.999999999.bb b/meta-python/recipes-devtools/python/python-html5lib_0.999999999.bb new file mode 100644 index 00000000000..f5941a2a116 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-html5lib_0.999999999.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-html5lib.inc diff --git a/meta-python/recipes-devtools/python/python-humanize.inc b/meta-python/recipes-devtools/python/python-humanize.inc new file mode 100644 index 00000000000..d9fac090981 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-humanize.inc @@ -0,0 +1,10 @@ +SUMMARY = "Python humanize utilities" +HOMEPAGE = "http://github.com/jmoiron/humanize" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE;md5=d2eff82fc25dd07c919a02465884f02e" + +SRC_URI[md5sum] = "e8473d9dc1b220911cac2edd53b1d973" +SRC_URI[sha256sum] = "a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-humanize_0.5.1.bb b/meta-python/recipes-devtools/python/python-humanize_0.5.1.bb new file mode 100644 index 00000000000..57693093dd5 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-humanize_0.5.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-humanize.inc diff --git a/meta-python/recipes-devtools/python/python-hyperlink.inc b/meta-python/recipes-devtools/python/python-hyperlink.inc new file mode 100644 index 00000000000..2b5b0a0ff3d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-hyperlink.inc @@ -0,0 +1,17 @@ +DESCRIPTION = "A featureful, correct URL for Python" +HOMEPAGE = "https://github.com/python-hyper/hyperlink" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3893d4ed05dcc823f8ed685a9ea19bcb" + +SRC_URI[md5sum] = "eaccb9845b559817e838846669cbc68a" +SRC_URI[sha256sum] = "bc4ffdbde9bdad204d507bd8f554f16bba82dd356f6130cb16f41422909c33bc" + +inherit pypi + +RDEPENDS_${PN} += "${PYTHON_PN}-stringold ${PYTHON_PN}-netclient" + +PACKAGES =. "${PN}-test " + +FILES_${PN}-test += " \ + ${PYTHON_SITEPACKAGES_DIR}/hyperlinkt/test \ +" diff --git a/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb b/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb new file mode 100644 index 00000000000..59a9a5c8dd0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-hyperlink.inc diff --git a/meta-python/recipes-devtools/python/python-idna.inc b/meta-python/recipes-devtools/python/python-idna.inc new file mode 100644 index 00000000000..b1d0d18959b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-idna.inc @@ -0,0 +1,13 @@ +SUMMARY = "Internationalised Domain Names in Applications" +HOMEPAGE = "https://github.com/kjd/idna" +LICENSE = "BSD-3-Clause & Python-2.0 & Unicode" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c9ba5acd829579492fd5eb306c7a0565" + +SRC_URI[md5sum] = "c706e2790b016bd0ed4edd2d4ba4d147" +SRC_URI[sha256sum] = "2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f" + +RDEPENDS_${PN}_class-target = "\ + ${PYTHON_PN}-codecs \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-idna_2.6.bb b/meta-python/recipes-devtools/python/python-idna_2.6.bb new file mode 100644 index 00000000000..2dcf72a2922 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-idna_2.6.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-idna.inc diff --git a/meta-python/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch b/meta-python/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch new file mode 100644 index 00000000000..2575306bec9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch @@ -0,0 +1,55 @@ +From 07d4f095a9e22ae676a8d68073101131e65012dc Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Tue, 15 Nov 2011 13:16:54 +0100 +Subject: [PATCH] python imaging setup.py: force paths for zlib, freetype and jpeg and don't add host paths + +Signed-off-by: Koen Kooi + +Upstream-Status: Inappropriate [embedded specific] +--- + setup.py | 14 +++----------- + 1 files changed, 3 insertions(+), 11 deletions(-) + +diff --git a/setup.py b/setup.py +index 5d4d53a..b1a22ec 100644 +--- a/setup.py ++++ b/setup.py +@@ -34,10 +34,10 @@ def libinclude(root): + # TIFF_ROOT = libinclude("/opt/tiff") + + TCL_ROOT = None +-JPEG_ROOT = None +-ZLIB_ROOT = None ++JPEG_ROOT = os.environ['STAGING_LIBDIR'] ++ZLIB_ROOT = os.environ['STAGING_LIBDIR'] + TIFF_ROOT = None +-FREETYPE_ROOT = None ++FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR'] + LCMS_ROOT = None + + # FIXME: add mechanism to explicitly *disable* the use of a library +@@ -147,7 +147,6 @@ class pil_build_ext(build_ext): + add_directory(library_dirs, "/opt/local/lib") + add_directory(include_dirs, "/opt/local/include") + +- add_directory(library_dirs, "/usr/local/lib") + # FIXME: check /opt/stuff directories here? + + prefix = sysconfig.get_config_var("prefix") +@@ -207,13 +206,6 @@ class pil_build_ext(build_ext): + if os.path.isfile(os.path.join(tcl_dir, "tk.h")): + add_directory(include_dirs, tcl_dir) + +- # standard locations +- add_directory(library_dirs, "/usr/local/lib") +- add_directory(include_dirs, "/usr/local/include") +- +- add_directory(library_dirs, "/usr/lib") +- add_directory(include_dirs, "/usr/include") +- + # + # insert new dirs *before* default libs, to avoid conflicts + # between Python PYD stub libs and real libraries +-- +1.7.2.5 + diff --git a/meta-python/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch b/meta-python/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch new file mode 100644 index 00000000000..4960ed4661f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch @@ -0,0 +1,65 @@ +At least lcms wasn't deterministicly detected from sysroot. + +This will allow to export LCMS_ENABLED=False when lcms isn't in PACKAGECONFIG. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Martin Jansa + +diff -uNr Imaging-1.1.7.orig/setup.py Imaging-1.1.7/setup.py +--- Imaging-1.1.7.orig/setup.py 2013-07-22 10:17:02.081457075 +0200 ++++ Imaging-1.1.7/setup.py 2013-07-22 13:10:09.029707492 +0200 +@@ -39,6 +39,12 @@ + TIFF_ROOT = None + FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR'] + LCMS_ROOT = None ++TCL_ENABLED = os.getenv('TCL_ENABLED', "True") ++JPEG_ENABLED = os.getenv('JPEG_ENABLED', "True") ++ZLIB_ENABLED = os.getenv('ZLIB_ENABLED', "True") ++TIFF_ENABLED = os.getenv('TIFF_ENABLED', "True") ++FREETYPE_ENABLED = os.getenv('FREETYPE_ENABLED', "True") ++LCMS_ENABLED = os.getenv('LCMS_ENABLED', "True") + + # FIXME: add mechanism to explicitly *disable* the use of a library + +@@ -220,22 +226,22 @@ + zlib = jpeg = tiff = freetype = tcl = tk = lcms = None + feature = feature() + +- if find_include_file(self, "zlib.h"): ++ if ZLIB_ENABLED == 'True' and find_include_file(self, "zlib.h"): + if find_library_file(self, "z"): + feature.zlib = "z" + elif sys.platform == "win32" and find_library_file(self, "zlib"): + feature.zlib = "zlib" # alternative name + +- if find_include_file(self, "jpeglib.h"): ++ if JPEG_ENABLED == 'True' and find_include_file(self, "jpeglib.h"): + if find_library_file(self, "jpeg"): + feature.jpeg = "jpeg" + elif sys.platform == "win32" and find_library_file(self, "libjpeg"): + feature.jpeg = "libjpeg" # alternative name + +- if find_library_file(self, "tiff"): ++ if TIFF_ENABLED == 'True' and find_library_file(self, "tiff"): + feature.tiff = "tiff" + +- if find_library_file(self, "freetype"): ++ if FREETYPE_ENABLED == 'True' and find_library_file(self, "freetype"): + # look for freetype2 include files + freetype_version = 0 + for dir in self.compiler.include_dirs: +@@ -256,11 +262,11 @@ + if dir: + add_directory(self.compiler.include_dirs, dir, 0) + +- if find_include_file(self, "lcms.h"): ++ if LCMS_ENABLED == 'True' and find_include_file(self, "lcms.h"): + if find_library_file(self, "lcms"): + feature.lcms = "lcms" + +- if _tkinter and find_include_file(self, "tk.h"): ++ if TCL_ENABLED == 'True' and _tkinter and find_include_file(self, "tk.h"): + # the library names may vary somewhat (e.g. tcl84 or tcl8.4) + version = TCL_VERSION[0] + TCL_VERSION[2] + if find_library_file(self, "tcl" + version): diff --git a/meta-python/recipes-devtools/python/python-imaging/fix-freetype-includes.patch b/meta-python/recipes-devtools/python/python-imaging/fix-freetype-includes.patch new file mode 100644 index 00000000000..9ecc63a0d67 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-imaging/fix-freetype-includes.patch @@ -0,0 +1,30 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From c6040f618d8f2706a7b46d1cdf37d1a587f9701f Mon Sep 17 00:00:00 2001 +From: Andrew Stromnov +Date: Thu, 28 Nov 2013 16:58:43 +0400 +Subject: [PATCH] fix compiling with FreeType 2.5.1 + +--- + _imagingft.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/_imagingft.c b/_imagingft.c +index 47d50bd..f19555b 100644 +--- a/_imagingft.c ++++ b/_imagingft.c +@@ -59,7 +59,11 @@ struct { + const char* message; + } ft_errors[] = + ++#if defined(USE_FREETYPE_2_1) ++#include FT_ERRORS_H ++#else + #include ++#endif + + /* -------------------------------------------------------------------- */ + /* font objects */ +-- +1.8.5.1 diff --git a/meta-python/recipes-devtools/python/python-imaging/python-imaging-CVE-2016-2533.patch b/meta-python/recipes-devtools/python/python-imaging/python-imaging-CVE-2016-2533.patch new file mode 100644 index 00000000000..b01136f9ac3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-imaging/python-imaging-CVE-2016-2533.patch @@ -0,0 +1,38 @@ +python-imaging: CVE-2016-2533 + +the patch comes from: +https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-2533 +https://github.com/python-pillow/Pillow/commit/ae453aa18b66af54e7ff716f4ccb33adca60afd4#diff-8ff6909c159597e22288ad818938fd6b + +PCD decoder overruns the shuffle buffer, Fixes #568 + +Signed-off-by: Li Wang +--- + libImaging/PcdDecode.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libImaging/PcdDecode.c b/libImaging/PcdDecode.c +index b6898e3..c02d005 100644 +--- a/libImaging/PcdDecode.c ++++ b/libImaging/PcdDecode.c +@@ -47,7 +47,7 @@ ImagingPcdDecode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes) + out[0] = ptr[x]; + out[1] = ptr[(x+4*state->xsize)/2]; + out[2] = ptr[(x+5*state->xsize)/2]; +- out += 4; ++ out += 3; + } + + state->shuffle((UINT8*) im->image[state->y], +@@ -62,7 +62,7 @@ ImagingPcdDecode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes) + out[0] = ptr[x+state->xsize]; + out[1] = ptr[(x+4*state->xsize)/2]; + out[2] = ptr[(x+5*state->xsize)/2]; +- out += 4; ++ out += 3; + } + + state->shuffle((UINT8*) im->image[state->y], +-- +1.7.9.5 + diff --git a/meta-python/recipes-devtools/python/python-imaging/remove-host-libdir.patch b/meta-python/recipes-devtools/python/python-imaging/remove-host-libdir.patch new file mode 100644 index 00000000000..028a51ad599 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-imaging/remove-host-libdir.patch @@ -0,0 +1,25 @@ +Avoid getting host sysroot paths in the library paths to fix issue like: + +| /home/andrei/work/yocto/build-rpi-master/tmp/sysroots/x86_64-linux/usr/lib/libz.so: file not recognized: File format not recognized + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andrei Gherzan + + +Index: Imaging-1.1.7/setup.py +=================================================================== +--- Imaging-1.1.7.orig/setup.py ++++ Imaging-1.1.7/setup.py +@@ -155,11 +155,6 @@ class pil_build_ext(build_ext): + + # FIXME: check /opt/stuff directories here? + +- prefix = sysconfig.get_config_var("prefix") +- if prefix: +- add_directory(library_dirs, os.path.join(prefix, "lib")) +- add_directory(include_dirs, os.path.join(prefix, "include")) +- + # + # locate tkinter libraries + diff --git a/meta-python/recipes-devtools/python/python-imaging_1.1.7.bb b/meta-python/recipes-devtools/python/python-imaging_1.1.7.bb new file mode 100644 index 00000000000..60dd7d0a363 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-imaging_1.1.7.bb @@ -0,0 +1,48 @@ +SUMMARY = "Python Imaging Library (PIL)" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://README;beginline=92;endline=120;md5=c4371af4579f1e489cf881c1443dd4ec" +DEPENDS = "freetype jpeg tiff" +SRCNAME = "Imaging" +PR = "r5" + +SRC_URI = "http://effbot.org/downloads/Imaging-${PV}.tar.gz \ + file://0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch \ + file://allow.to.disable.some.features.patch \ + file://fix-freetype-includes.patch \ + file://remove-host-libdir.patch \ + file://python-imaging-CVE-2016-2533.patch \ +" + +SRC_URI[md5sum] = "fc14a54e1ce02a0225be8854bfba478e" +SRC_URI[sha256sum] = "895bc7c2498c8e1f9b99938f1a40dc86b3f149741f105cf7c7bd2e0725405211" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +# There isn't enable/disable option, and lcms is in meta-oe, at least make it explicit when enabled +# setup.py already has FIXME: add mechanism to explicitly *disable* the use of a library +PACKAGECONFIG ??= "" +PACKAGECONFIG[lcms] = ",,lcms" + +inherit distutils + +do_compile() { + export STAGING_LIBDIR=${STAGING_LIBDIR} + export STAGING_INCDIR=${STAGING_INCDIR} + export LCMS_ENABLED=${@bb.utils.contains('PACKAGECONFIG', 'lcms', 'True', 'False', d)} + distutils_do_compile +} + +do_install() { + export STAGING_LIBDIR=${STAGING_LIBDIR} + export STAGING_INCDIR=${STAGING_INCDIR} + export LCMS_ENABLED=${@bb.utils.contains('PACKAGECONFIG', 'lcms', 'True', 'False', d)} + distutils_do_install + install -d ${D}${datadir}/doc/${BPN}/html/ + install -m 0644 ${S}/README ${D}${datadir}/doc/${BPN}/ + install -m 0644 ${S}/Docs/* ${D}${datadir}/doc/${BPN}/html/ + + # get rid of #!/usr/local/bin/python + sed -i -e 's:/usr/local/bin/:${bindir}/env :g' ${D}${bindir}/* +} + +RDEPENDS_${PN} += "python-lang python-stringold" diff --git a/meta-python/recipes-devtools/python/python-incremental.inc b/meta-python/recipes-devtools/python/python-incremental.inc new file mode 100644 index 00000000000..3675458688d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-incremental.inc @@ -0,0 +1,14 @@ +DESCRIPTION = "Incremental is a small library that versions your Python projects" +HOMEPAGE = "https://github.com/twisted/incremental" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6ca9b07f08e2c72d48c74d363d1e0e15" + +SRC_URI[md5sum] = "602746e0d438e075a5a9e0678140bba2" +SRC_URI[sha256sum] = "7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3" + +inherit pypi + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-twisted \ + ${PYTHON_PN}-click \ +" diff --git a/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb b/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb new file mode 100644 index 00000000000..139ac0c522c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-incremental.inc diff --git a/meta-python/recipes-devtools/python/python-ipaddress_1.0.18.bb b/meta-python/recipes-devtools/python/python-ipaddress_1.0.18.bb new file mode 100644 index 00000000000..cc4f589808f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-ipaddress_1.0.18.bb @@ -0,0 +1,13 @@ +SUMMARY = "Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2." +HOMEPAGE = "https://github.com/phihag/ipaddress" +LICENSE = "Python-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a" + +DEPENDS += "python-pip" + +SRC_URI[md5sum] = "310c2dfd64eb6f0df44aa8c59f2334a7" +SRC_URI[sha256sum] = "5d8534c8e185f2d8a1fda1ef73f2c8f4b23264e8e30063feeb9511d492a413e1" + +inherit pypi setuptools + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-iso8601.inc b/meta-python/recipes-devtools/python/python-iso8601.inc new file mode 100644 index 00000000000..45da75f6b91 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-iso8601.inc @@ -0,0 +1,9 @@ +SUMMARY = "Simple module to parse ISO 8601 dates" +HOMEPAGE = "http://pyiso8601.readthedocs.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b05625f2336fa024e8d57e65c6595844" + +SRC_URI[md5sum] = "4de940f691c5ea759fb254384c8ddcf6" +SRC_URI[sha256sum] = "49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-iso8601_0.1.12.bb b/meta-python/recipes-devtools/python/python-iso8601_0.1.12.bb new file mode 100644 index 00000000000..c543cf9f977 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-iso8601_0.1.12.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-iso8601.inc diff --git a/meta-python/recipes-devtools/python/python-isort.inc b/meta-python/recipes-devtools/python/python-isort.inc new file mode 100644 index 00000000000..9884c44f188 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-isort.inc @@ -0,0 +1,10 @@ +SUMMARY = "A Python utility / library to sort Python imports." +HOMEPAGE = "https://pypi.python.org/pypi/isort" +LICENSE = "MIT" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489" + +SRC_URI[md5sum] = "34915a2ce60e6fe3dbcbf5982deef9b4" +SRC_URI[sha256sum] = "79f46172d3a4e2e53e7016e663cc7a8b538bec525c36675fcfd2767df30b3983" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-isort_4.2.15.bb b/meta-python/recipes-devtools/python/python-isort_4.2.15.bb new file mode 100644 index 00000000000..fa46d89b5ed --- /dev/null +++ b/meta-python/recipes-devtools/python/python-isort_4.2.15.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-isort.inc diff --git a/meta-python/recipes-devtools/python/python-itsdangerous.inc b/meta-python/recipes-devtools/python/python-itsdangerous.inc new file mode 100644 index 00000000000..73951fa5611 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-itsdangerous.inc @@ -0,0 +1,9 @@ +SUMMARY = "Various helpers to pass trusted data to untrusted environments and back." +HOMEPAGE = "http://github.com/mitsuhiko/itsdangerous" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b61841e2bf5f07884148e2a6f1bcab0c" + +SRC_URI[md5sum] = "a3d55aa79369aef5345c036a8a26307f" +SRC_URI[sha256sum] = "cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519" + +CLEANBROKEN = "1" diff --git a/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb b/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb new file mode 100644 index 00000000000..0e156be2f74 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-itsdangerous.inc diff --git a/meta-python/recipes-devtools/python/python-jinja2.inc b/meta-python/recipes-devtools/python/python-jinja2.inc new file mode 100644 index 00000000000..35cbb0bf37a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-jinja2.inc @@ -0,0 +1,15 @@ +DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python." +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=20c831f91dd3bd486020f672ba2be386" + +PYPI_PACKAGE = "Jinja2" + +SRC_URI[md5sum] = "6411537324b4dba0956aaa8109f3c77b" +SRC_URI[sha256sum] = "ddaa01a212cd6d641401cb01b605f4a4d9f37bfc93043d7f760ec70fb99ff9ff" + +RDEPENDS_${PN} += "${PYTHON_PN}-io ${PYTHON_PN}-pickle ${PYTHON_PN}-crypt \ + ${PYTHON_PN}-math ${PYTHON_PN}-netclient ${PYTHON_PN}-re ${PYTHON_PN}-textutils \ + ${PYTHON_PN}-lang ${PYTHON_PN}-pprint ${PYTHON_PN}-shell ${PYTHON_PN}-markupsafe \ + ${PYTHON_PN}-json ${PYTHON_PN}-threading ${PYTHON_PN}-numbers" + +CLEANBROKEN = "1" diff --git a/meta-python/recipes-devtools/python/python-jinja2_2.7.3.bb b/meta-python/recipes-devtools/python/python-jinja2_2.7.3.bb deleted file mode 100644 index e66077af178..00000000000 --- a/meta-python/recipes-devtools/python/python-jinja2_2.7.3.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python." -HOMEPAGE = "https://pypi.python.org/pypi/Jinja2" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=20c831f91dd3bd486020f672ba2be386" - -PR = "r0" -SRCNAME = "Jinja2" - -SRC_URI = "https://pypi.python.org/packages/source/J/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "b9dffd2f3b43d673802fe857c8445b1a" -SRC_URI[sha256sum] = "2e24ac5d004db5714976a04ac0e80c6df6e47e98c354cb2c0d82f8879d4f8fdb" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += "python-io python-pickle python-crypt python-math python-netclient python-re python-textutils python-lang python-pprint python-shell python-markupsafe" diff --git a/meta-python/recipes-devtools/python/python-jinja2_2.9.6.bb b/meta-python/recipes-devtools/python/python-jinja2_2.9.6.bb new file mode 100644 index 00000000000..ec8e7ed2d81 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-jinja2_2.9.6.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-jinja2.inc diff --git a/meta-python/recipes-devtools/python/python-jsonpatch_1.16.bb b/meta-python/recipes-devtools/python/python-jsonpatch_1.16.bb new file mode 100644 index 00000000000..bbc61a4e9a9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-jsonpatch_1.16.bb @@ -0,0 +1,12 @@ +SUMMARY = "Appling JSON patches in Python 2.6+ and 3.x" +HOMEPAGE = "https://github.com/stefankoegl/python-json-patch" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=32b15c843b7a329130f4e266a281ebb3" + +inherit pypi setuptools + +SRC_URI[md5sum] = "8ef1ceb00dcf992c9e43611f698f9279" +SRC_URI[sha256sum] = "f025c28a08ce747429ee746bb21796c3b6417ec82288f8fe6514db7398f2af8a" + +RDEPENDS_${PN} += "${PYTHON_PN}-json ${PYTHON_PN}-jsonpointer ${PYTHON_PN}-netclient ${PYTHON_PN}-re ${PYTHON_PN}-stringold" + diff --git a/meta-python/recipes-devtools/python/python-jsonpointer_1.14.bb b/meta-python/recipes-devtools/python/python-jsonpointer_1.14.bb new file mode 100644 index 00000000000..96b71e3bd8d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-jsonpointer_1.14.bb @@ -0,0 +1,11 @@ +SUMMARY = "Resolve JSON Pointers in Python" +HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b15c843b7a329130f4e266a281ebb3" + +inherit pypi setuptools + +SRC_URI[md5sum] = "190aeb8afcb0efddfe831a4e533e163b" +SRC_URI[sha256sum] = "c681af823545c731b7b38aedd5d4eee4c5eff87bc0f25e0ff25444a4189eac4d" + +RDEPENDS_${PN} += "python-re python-json" diff --git a/meta-python/recipes-devtools/python/python-jsonschema.inc b/meta-python/recipes-devtools/python/python-jsonschema.inc new file mode 100644 index 00000000000..db57c69a4ca --- /dev/null +++ b/meta-python/recipes-devtools/python/python-jsonschema.inc @@ -0,0 +1,28 @@ +SUMMARY = "An implementation of JSON Schema validation for Python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8" + +SRC_URI[md5sum] = "50c6b69a373a8b55ff1e0ec6e78f13f4" +SRC_URI[sha256sum] = "6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02" + +DEPENDS += "${PYTHON_PN}-vcversioner-native" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-lang \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-re \ + ${PYTHON_PN}-rfc3987 \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-strict-rfc3339 \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-textutils \ + ${PYTHON_PN}-unittest \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb b/meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb new file mode 100644 index 00000000000..3bb5220188b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb @@ -0,0 +1,8 @@ +inherit pypi setuptools +require python-jsonschema.inc + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-argparse \ + ${PYTHON_PN}-contextlib \ + ${PYTHON_PN}-functools32 \ +" diff --git a/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc b/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc new file mode 100644 index 00000000000..83d2ea3cd31 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc @@ -0,0 +1,10 @@ +SUMMARY = "A fast and thorough lazy object proxy" +HOMEPAGE = "https://python-lazy-object-proxy.readthedocs.io/" +LICENSE = "BSD" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ec680df42d8ad56427a83308817658cc" + +SRC_URI[md5sum] = "e128152b76eb5b9ba759504936139fd0" +SRC_URI[sha256sum] = "eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb b/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb new file mode 100644 index 00000000000..df4d60bffe1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-lazy-object-proxy.inc diff --git a/meta-python/recipes-devtools/python/python-ldap/setup.cfg.patch b/meta-python/recipes-devtools/python/python-ldap/setup.cfg.patch deleted file mode 100644 index a703d342e9b..00000000000 --- a/meta-python/recipes-devtools/python/python-ldap/setup.cfg.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- python-ldap-2.3.9/setup.cfg.orig 2009-08-13 11:07:23.000000000 +0200 -+++ python-ldap-2.3.9/setup.cfg 2009-08-13 11:07:37.000000000 +0200 -@@ -1,9 +1,9 @@ - [_ldap] - extra_objects = - extra_compile_args = --libs = ldap_r lber sasl2 ssl crypto -+libs = ldap_r lber ssl crypto - library_dirs = /opt/openldap-RE24/lib --include_dirs = /opt/openldap-RE24/include /usr/include/sasl -+include_dirs = /opt/openldap-RE24/include - - [egg_info] - tag_build = diff --git a/meta-python/recipes-devtools/python/python-ldap_2.3.9.bb b/meta-python/recipes-devtools/python/python-ldap_2.3.9.bb deleted file mode 100644 index bc4993bdb93..00000000000 --- a/meta-python/recipes-devtools/python/python-ldap_2.3.9.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "LDAP client API for Python, C wrapper module around OpenLDAP 2.x with an object-oriented API" -SECTION = "devel/python" -LICENSE = "Python-style" -LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555" -HOMEPAGE = "http://www.python-ldap.org/" -DEPENDS = "python openldap" - -SRC_URI = "http://pypi.python.org/packages/source/p/${BPN}/${BP}.tar.gz \ - file://setup.cfg.patch" -SRC_URI[md5sum] = "a9f9f16338288d118a1ae6266c993247" -SRC_URI[sha256sum] = "62f75b21c5ee744408c9d8b59878328b3bdf47899d30e8abf0c09b3ffb893ed4" - -inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-ldap_2.4.10.bb b/meta-python/recipes-devtools/python/python-ldap_2.4.10.bb deleted file mode 100644 index 78a878a15bf..00000000000 --- a/meta-python/recipes-devtools/python/python-ldap_2.4.10.bb +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright (C) 2012 Wind River Systems, Inc. -# -SUMMARY = "Provides a wrapper in Python to LDAP" -DESCRIPTION = "This module provides access to the LDAP \ -(Lightweight Directory Access Protocol) through Python operations \ -instead of C API. The module mainly acts as a wrapper for the \ -OpenLDAP 2.x libraries. Errors will appear as exceptions." - -SECTION = "devel/python" -PRIORITY = "optional" -LICENSE = "PSF" -HOMEPAGE = "http://www.python-ldap.org/" -DEPENDS = "python openldap cyrus-sasl" - -SRC_URI = "http://pypi.python.org/packages/source/p/${PN}/${BPN}-${PV}.tar.gz" - -inherit setuptools - -LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555" -SRC_URI[md5sum] = "a15827ca13c90e9101e5e9405c1d83be" -SRC_URI[sha256sum] = "67cc7801bf24c29386ab99966ceb68d6a60fa9e0566cc95a4fbb2c4695a8ce54" - -do_configure_prepend() { - sed -i -e 's:^library_dirs =.*::' setup.cfg - sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' setup.cfg -} diff --git a/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb b/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb new file mode 100644 index 00000000000..cd15760d46a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Platform-independent file locking module" +HOMEPAGE = "http://launchpad.net/pylockfile" +SECTION = "devel/python" + +RDEPENDS_${PN} = "python-threading" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +inherit pypi setuptools + +SRC_URI[md5sum] = "a6a1a82957a23afdf44cfdd039b65ff9" +SRC_URI[sha256sum] = "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799" diff --git a/meta-python/recipes-devtools/python/python-lxml.inc b/meta-python/recipes-devtools/python/python-lxml.inc new file mode 100644 index 00000000000..f153c0ae8cb --- /dev/null +++ b/meta-python/recipes-devtools/python/python-lxml.inc @@ -0,0 +1,43 @@ +SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \ +libxslt libraries. It provides safe and convenient access to these \ +libraries using the ElementTree API. It extends the ElementTree API \ +significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \ +C14N and much more." +HOMEPAGE = "http://codespeak.net/lxml" +SECTION = "devel/python" +LICENSE = "BSD & GPLv2 & MIT & PSF" +LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \ + file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \ + file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \ + file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;startline=2;endline=7;md5=a2914d12acc7066b3f5b60e8f94a012e \ + file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;startline=2;endline=24;md5=96976dcc66249c51e8026b159ca5e755 \ + file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;startline=2;endline=7;md5=5cac4ad4b5e131a10e9af755b10fbbb7 \ + " + +DEPENDS += "libxml2 libxslt" + +SRC_URI[md5sum] = "0265ad6701951347f2dbbb470e3d1512" +SRC_URI[sha256sum] = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e" + +DISTUTILS_BUILD_ARGS += " \ + --with-xslt-config='pkg-config libxslt' \ + --with-xml2-config='pkg-config libxml-2.0' \ +" + +DISTUTILS_INSTALL_ARGS += " \ + --with-xslt-config='pkg-config libxslt' \ + --with-xml2-config='pkg-config libxml-2.0' \ +" + +inherit pypi + +do_configure_prepend() { + sed -i -e 's/--version/--modversion/' ${B}/setupinfo.py +} + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS_${PN} += "libxml2 libxslt ${PYTHON_PN}-compression" +RDEPENDS_${PN}_class-native = "libxml2-native libxslt-native" diff --git a/meta-python/recipes-devtools/python/python-lxml/python-lxml-3.2.5-fix-CVE-2014-3146.patch b/meta-python/recipes-devtools/python/python-lxml/python-lxml-3.2.5-fix-CVE-2014-3146.patch deleted file mode 100644 index 0a8e211bd3e..00000000000 --- a/meta-python/recipes-devtools/python/python-lxml/python-lxml-3.2.5-fix-CVE-2014-3146.patch +++ /dev/null @@ -1,91 +0,0 @@ -Upstream-status:Backport - ---- a/src/lxml/html/clean.py -+++ b/src/lxml/html/clean.py -@@ -70,9 +70,10 @@ _css_import_re = re.compile( - - # All kinds of schemes besides just javascript: that can cause - # execution: --_javascript_scheme_re = re.compile( -- r'\s*(?:javascript|jscript|livescript|vbscript|data|about|mocha):', re.I) --_substitute_whitespace = re.compile(r'\s+').sub -+_is_javascript_scheme = re.compile( -+ r'(?:javascript|jscript|livescript|vbscript|data|about|mocha):', -+ re.I).search -+_substitute_whitespace = re.compile(r'[\s\x00-\x08\x0B\x0C\x0E-\x19]+').sub - # FIXME: should data: be blocked? - - # FIXME: check against: http://msdn2.microsoft.com/en-us/library/ms537512.aspx -@@ -467,7 +468,7 @@ class Cleaner(object): - def _remove_javascript_link(self, link): - # links like "j a v a s c r i p t:" might be interpreted in IE - new = _substitute_whitespace('', link) -- if _javascript_scheme_re.search(new): -+ if _is_javascript_scheme(new): - # FIXME: should this be None to delete? - return '' - return link ---- a/src/lxml/html/tests/test_clean.txt -+++ b/src/lxml/html/tests/test_clean.txt -@@ -1,3 +1,4 @@ -+>>> import re - >>> from lxml.html import fromstring, tostring - >>> from lxml.html.clean import clean, clean_html, Cleaner - >>> from lxml.html import usedoctest -@@ -17,6 +18,7 @@ - ... - ... - ... a link -+... a control char link - ... data - ... another link - ...

    a paragraph

    -@@ -33,7 +35,7 @@ - ... - ... ''' - -->>> print(doc) -+>>> print(re.sub('[\x00-\x07\x0E]', '', doc)) - - - -@@ -49,6 +51,7 @@ - - - a link -+ a control char link - data - another link -

    a paragraph

    -@@ -81,6 +84,7 @@ - - - a link -+ a control char link - data - another link -

    a paragraph

    -@@ -104,6 +108,7 @@ - - - a link -+ a control char link - data - another link -

    a paragraph

    -@@ -123,6 +128,7 @@ - - - a link -+ a control char link - data - another link -

    a paragraph

    -@@ -146,6 +152,7 @@ - - - a link -+ a control char link - data - another link -

    a paragraph

    diff --git a/meta-python/recipes-devtools/python/python-lxml_3.2.5.bb b/meta-python/recipes-devtools/python/python-lxml_3.2.5.bb deleted file mode 100644 index 68e36771feb..00000000000 --- a/meta-python/recipes-devtools/python/python-lxml_3.2.5.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Python XML bindings for libxml2 and libxslt" -DESCRIPTION = "Powerful and Pythonic XML processing library combining \ -libxml2/libxslt with the ElementTree API." -HOMEPAGE = "http://codespeak.net/lxml" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=f9f1dc24f720c143c2240df41fe5073b" -SRCNAME = "lxml" - -DEPENDS = "libxml2 libxslt" - -SRC_URI = "http://pypi.python.org/packages/source/l/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \ - file://python-lxml-3.2.5-fix-CVE-2014-3146.patch " - -SRC_URI[md5sum] = "6c4fb9b1840631cff09b8229a12a9ef7" -SRC_URI[sha256sum] = "2bf072808a6546d0e56bf1ad3b98a43cca828724360d7419fad135141bd31f7e" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -DISTUTILS_BUILD_ARGS += " \ - --with-xslt-config='${STAGING_BINDIR_NATIVE}/pkg-config libxslt' \ - --with-xml2-config='${STAGING_BINDIR_CROSS}/pkg-config libxml2' \ -" - -DISTUTILS_INSTALL_ARGS += " \ - --with-xslt-config='${STAGING_BINDIR_NATIVE}/pkg-config libxslt' \ - --with-xml2-config='${STAGING_BINDIR_CROSS}/xml2-config' \ -" - -BBCLASSEXTEND = "native nativesdk" - -RDEPENDS_${PN} += "libxml2 libxslt python-compression" -RDEPENDS_${PN}_virtclass-native = "libxml2-native libxslt-native" - diff --git a/meta-python/recipes-devtools/python/python-lxml_4.1.1.bb b/meta-python/recipes-devtools/python/python-lxml_4.1.1.bb new file mode 100644 index 00000000000..81ccb12d872 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-lxml_4.1.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-lxml.inc diff --git a/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch b/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch index bcbdf24bb51..819c8e56975 100644 --- a/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch +++ b/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch @@ -10,30 +10,27 @@ Upstream-status: Unknown setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/setup.py b/setup.py -index e7c49eb..8deaa34 100644 ---- a/setup.py -+++ b/setup.py -@@ -40,7 +40,7 @@ class _M2CryptoBuildExt(build_ext.build_ext): +Index: M2Crypto-0.23.0/setup.py +=================================================================== +--- M2Crypto-0.23.0.orig/setup.py ++++ M2Crypto-0.23.0/setup.py +@@ -62,7 +62,7 @@ class _M2CryptoBuildExt(build_ext.build_ self.openssl = 'c:\\pkg' else: self.libraries = ['ssl', 'crypto'] - self.openssl = '/usr' + self.openssl = os.environ.get( "STAGING_DIR" ) - - + def finalize_options(self): -@@ -49,8 +49,8 @@ class _M2CryptoBuildExt(build_ext.build_ext): + '''Overloaded build_ext implementation to append custom openssl +@@ -75,8 +75,8 @@ class _M2CryptoBuildExt(build_ext.build_ + if _openssl and os.path.isdir(_openssl): + self.openssl = _openssl - build_ext.build_ext.finalize_options(self) +- self.include_dirs.append(os.path.join(self.openssl, 'include')) +- openssl_library_dir = os.path.join(self.openssl, 'lib') ++ self.include_dirs.append(os.environ.get( "STAGING_INCDIR" )) ++ openssl_library_dir = os.environ.get( "STAGING_LIBDIR" ) -- opensslIncludeDir = os.path.join(self.openssl, 'include') -- opensslLibraryDir = os.path.join(self.openssl, 'lib') -+ opensslIncludeDir = os.environ.get( "STAGING_INCDIR" ) -+ opensslLibraryDir = os.environ.get( "STAGING_LIBDIR" ) - - self.swig_opts = ['-I%s' % i for i in self.include_dirs + \ - [opensslIncludeDir]] --- -1.8.1.4 - + if platform.system() == "Linux": + if _multiarch: # on Fedora/RHEL it is an empty string diff --git a/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch b/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch new file mode 100644 index 00000000000..c6654e54020 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch @@ -0,0 +1,30 @@ +Do not compute platform, this does not work in cross compile environment +since it pokes at the system for getting architecture values + +Upstream-Status: Inappropriate +Signed-off-by: Khem Raj + +Index: M2Crypto-0.26.0/setup.py +=================================================================== +--- M2Crypto-0.26.0.orig/setup.py ++++ M2Crypto-0.26.0/setup.py +@@ -141,19 +141,6 @@ class _M2CryptoBuildExt(build_ext.build_ + self.include_dirs.append( + os.path.join(self.openssl, 'include', 'openssl')) + +- # For RedHat-based distros, the '-D__{arch}__' option for +- # Swig needs to be normalized, particularly on i386. +- mach = platform.machine().lower() +- if mach in ('i386', 'i486', 'i586', 'i686'): +- arch = '__i386__' +- elif mach in ('ppc64', 'powerpc64'): +- arch = '__powerpc64__' +- elif mach in ('ppc', 'powerpc'): +- arch = '__powerpc__' +- else: +- arch = '__%s__' % mach +- self.swig_opts.append('-D%s' % arch) +- + self.swig_opts.extend(['-I%s' % i for i in self.include_dirs]) + self.swig_opts.append('-includeall') + self.swig_opts.append('-modern') diff --git a/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch b/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch new file mode 100644 index 00000000000..2d738cc94e6 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch @@ -0,0 +1,24 @@ +Imported from Fedora + +--- M2Crypto/SWIG/_m2crypto.i 2017-09-26 11:26:33.000000000 +0200 ++++ M2Crypto-0.26.4/SWIG/_m2crypto.i 2017-09-26 21:04:14.080330741 +0200 +@@ -7,6 +7,7 @@ + * Copyright (c) 2009-2010 Heikki Toivonen. All rights reserved. + * + */ ++%import "gcc_macros.h" + + %module(threads=1) m2crypto + /* We really don't need threadblock (PyGILState_Ensure() etc.) anywhere. +@@ -15,11 +16,6 @@ + %nothreadblock; + %nothreadallow; + +-#if SWIG_VERSION >= 0x030000 +-#define __WCHAR_MAX__ __WCHAR_MAX +-#define __WCHAR_MIN__ __WCHAR_MIN +-#endif +- + %{ + #if __GNUC__ < 5 + #pragma GCC diagnostic ignored "-Wunused-label" diff --git a/meta-python/recipes-devtools/python/python-m2crypto_0.21.1.bb b/meta-python/recipes-devtools/python/python-m2crypto_0.21.1.bb deleted file mode 100644 index 67ec9214ade..00000000000 --- a/meta-python/recipes-devtools/python/python-m2crypto_0.21.1.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "A Python crypto and SSL toolkit" -HOMEPAGE = "http://chandlerproject.org/bin/view/Projects/MeTooCrypto" - -DEPENDS = "openssl swig-native python" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e" - -SRC_URI = "http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-${PV}.tar.gz \ - file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch" - -SRC_URI[md5sum] = "f93d8462ff7646397a9f77a2fe602d17" -SRC_URI[sha256sum] = "25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a" - -S = "${WORKDIR}/M2Crypto-${PV}" - -inherit setuptools - -SWIG_FEATURES_x86-64 = "-D__x86_64__" -SWIG_FEATURES ?= "" -export SWIG_FEATURES - -# Get around a problem with swig, but only if the -# multilib header file exists. -# -do_compile_prepend() { - if [ "${SITEINFO_BITS}" = "64" ];then - bit="64" - else - bit="32" - fi - - if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then - for i in SWIG/_ec.i SWIG/_evp.i; do - sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i" - done - elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then - for i in SWIG/_ec.i SWIG/_evp.i; do - sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i" - done - fi -} - -BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb b/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb new file mode 100644 index 00000000000..272c76ca17e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb @@ -0,0 +1,50 @@ +SUMMARY = "A Python crypto and SSL toolkit" +HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e" + +SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \ + file://cross-compile-platform.patch \ + file://m2crypto-0.26.4-gcc_macros.patch \ + " +SRC_URI[md5sum] = "5c74c25ba8b45122318a165a3a2059ad" +SRC_URI[sha256sum] = "5cae7acc0b34821f8c0ddf6665e482893fe1f198ad6379e61ffa9d8e65f5c199" + +PYPI_PACKAGE = "M2Crypto" +inherit pypi setuptools siteinfo + +DEPENDS += "openssl swig-native" +RDEPENDS_${PN} += "python-typing" + +DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" +DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_DIR_HOST}" + +SWIG_FEATURES_x86 = "-D__i386__" +SWIG_FEATURES ?= "-D__${HOST_ARCH}__" +export SWIG_FEATURES + +# Get around a problem with swig, but only if the +# multilib header file exists. +# +do_compile_prepend() { + ${CPP} -dM - < /dev/null | grep -v __STDC__ | grep -v __REGISTER_PREFIX__ | grep -v __GNUC__ \ + | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > SWIG/gcc_macros.h + if [ "${SITEINFO_BITS}" = "64" ];then + bit="64" + else + bit="32" + fi + + if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then + for i in SWIG/_ec.i SWIG/_evp.i; do + sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i" + done + elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then + for i in SWIG/_ec.i SWIG/_evp.i; do + sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i" + done + fi +} + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-markupsafe.inc b/meta-python/recipes-devtools/python/python-markupsafe.inc new file mode 100644 index 00000000000..e50f8ce389d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-markupsafe.inc @@ -0,0 +1,12 @@ +DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python" +HOMEPAGE = "http://github.com/mitsuhiko/markupsafe" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c6d1adcf45d69359f256c1cea3254127" + +SRC_URI[md5sum] = "2fcedc9284d50e577b5192e8e3578355" +SRC_URI[sha256sum] = "a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665" + +PYPI_PACKAGE = "MarkupSafe" +inherit pypi + +RDEPENDS_${PN} += "${PYTHON_PN}-re ${PYTHON_PN}-stringold" diff --git a/meta-python/recipes-devtools/python/python-markupsafe_0.23.bb b/meta-python/recipes-devtools/python/python-markupsafe_0.23.bb deleted file mode 100644 index 4821c0a3b60..00000000000 --- a/meta-python/recipes-devtools/python/python-markupsafe_0.23.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python" -HOMEPAGE = "http://github.com/mitsuhiko/markupsafe" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c6d1adcf45d69359f256c1cea3254127" - -PR = "r0" -SRCNAME = "MarkupSafe" - -SRC_URI = "https://pypi.python.org/packages/source/M/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "f5ab3deee4c37cd6a922fb81e730da6e" -SRC_URI[sha256sum] = "a4ec1aff59b95a14b45eb2e23761a0179e98319da5a7eb76b56ea8cdc7b871c3" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += "python-re" diff --git a/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb b/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb new file mode 100644 index 00000000000..5c9884b9f19 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb @@ -0,0 +1,4 @@ +inherit setuptools +require python-markupsafe.inc + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-matplotlib/fix_setup.patch b/meta-python/recipes-devtools/python/python-matplotlib/fix_setup.patch deleted file mode 100644 index 93815835374..00000000000 --- a/meta-python/recipes-devtools/python/python-matplotlib/fix_setup.patch +++ /dev/null @@ -1,29 +0,0 @@ -This fixes the dependency checks inside of setup.py since things like -'import numpy' won't work with bitbake. - -diff --git a/setup.py b/setup.py -index 2f13821..e6d6ed0 100644 ---- a/setup.py -+++ b/setup.py -@@ -113,12 +113,6 @@ if 1: - baseline_images = [chop_package(f) for f in baseline_images] - package_data['matplotlib'].extend(baseline_images) - --if not check_for_numpy(): -- sys.exit(1) -- --if not check_for_freetype(): -- sys.exit(1) -- - build_ft2font(ext_modules, packages) - build_ttconv(ext_modules, packages) - build_contour(ext_modules, packages) -@@ -129,7 +123,7 @@ build_tri(ext_modules, packages) - - print_raw("") - print_raw("OPTIONAL BACKEND DEPENDENCIES") --has_libpng = check_for_libpng() -+has_libpng = True - - if has_libpng and options['build_agg']: - build_agg(ext_modules, packages) diff --git a/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch b/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch index 9a13a1850fd..21b9094a142 100644 --- a/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch +++ b/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch @@ -1,40 +1,110 @@ This fixes the numpy import problem in setupext.py using a hard-coded path. -Index: matplotlib-1.1.0/setupext.py +Index: matplotlib-2.0.2/setupext.py =================================================================== ---- matplotlib-1.1.0.orig/setupext.py -+++ matplotlib-1.1.0/setupext.py -@@ -122,8 +122,8 @@ numpy_inc_dirs = [] - # matplotlib build options, which can be altered using setup.cfg - options = {'display_status': True, - 'verbose': False, -- 'provide_pytz': 'auto', -- 'provide_dateutil': 'auto', -+ 'provide_pytz': False, -+ 'provide_dateutil': False, - 'build_agg': True, - 'build_gtk': 'auto', - 'build_gtkagg': 'auto', -@@ -176,10 +176,7 @@ if os.path.exists(setup_cfg): - except: pass +--- matplotlib-2.0.2.orig/setupext.py ++++ matplotlib-2.0.2/setupext.py +@@ -148,6 +148,7 @@ def has_include_file(include_dirs, filen + Returns `True` if `filename` can be found in one of the + directories in `include_dirs`. + """ ++ return True + if sys.platform == 'win32': + include_dirs += os.environ.get('INCLUDE', '.').split(';') + for dir in include_dirs: +@@ -172,7 +173,7 @@ def get_base_dirs(): + Returns a list of standard base directories on this platform. + """ + if options['basedirlist']: +- return options['basedirlist'] ++ return [os.environ['STAGING_LIBDIR']] - # For get_base_flags: --if options['basedirlist']: -- basedirlist = options['basedirlist'].split() --else: -- basedirlist = basedir[sys.platform] -+basedirlist = [os.environ['STAGING_LIBDIR']] - print("basedirlist is: %s" % basedirlist) + basedir_map = { + 'win32': ['win32_static', ], +@@ -260,14 +261,6 @@ def make_extension(name, files, *args, * + `distutils.core.Extension` constructor. + """ + ext = DelayedExtension(name, files, *args, **kwargs) +- for dir in get_base_dirs(): +- include_dir = os.path.join(dir, 'include') +- if os.path.exists(include_dir): +- ext.include_dirs.append(include_dir) +- for lib in ('lib', 'lib64'): +- lib_dir = os.path.join(dir, lib) +- if os.path.exists(lib_dir): +- ext.library_dirs.append(lib_dir) + ext.include_dirs.append('.') - if options['display_status']: -@@ -555,8 +552,8 @@ def check_for_numpy(): + return ext +@@ -314,6 +307,7 @@ class PkgConfig(object): + " matplotlib may not be able to find some of its dependencies") - def add_numpy_flags(module): - "Add the modules flags to build extensions which use numpy" -- import numpy -- module.include_dirs.append(numpy.get_include()) -+ # Hard-coded path for OE since I know this is where numpy's include dir will be -+ module.include_dirs.append(os.path.join(os.environ['STAGING_LIBDIR'], 'python2.7/site-packages/numpy/core/include/')) + def set_pkgconfig_path(self): ++ return + pkgconfig_path = sysconfig.get_config_var('LIBDIR') + if pkgconfig_path is None: + return +@@ -875,14 +869,14 @@ class Numpy(SetupPackage): + reload(numpy) - def add_png_flags(module): - try_pkgconfig(module, 'libpng', 'png') + ext = Extension('test', []) +- ext.include_dirs.append(numpy.get_include()) ++ ext.include_dirs.append(os.path.join(os.environ['STAGING_LIBDIR'], 'python2.7/site-packages/numpy/core/include/')) + if not has_include_file( + ext.include_dirs, os.path.join("numpy", "arrayobject.h")): + warnings.warn( + "The C headers for numpy could not be found. " + "You may need to install the development package") + +- return [numpy.get_include()] ++ return [os.path.join(os.environ['STAGING_LIBDIR'], 'python2.7/site-packages/numpy/core/include/')] + + def check(self): + min_version = extract_versions()['__version__numpy__'] +Index: matplotlib-2.0.2/setup.py +=================================================================== +--- matplotlib-2.0.2.orig/setup.py ++++ matplotlib-2.0.2/setup.py +@@ -66,28 +66,6 @@ mpl_packages = [ + setupext.Python(), + setupext.Platform(), + 'Required dependencies and extensions', +- setupext.Numpy(), +- setupext.Six(), +- setupext.Dateutil(), +- setupext.FuncTools32(), +- setupext.Subprocess32(), +- setupext.Pytz(), +- setupext.Cycler(), +- setupext.Tornado(), +- setupext.Pyparsing(), +- setupext.LibAgg(), +- setupext.FreeType(), +- setupext.FT2Font(), +- setupext.Png(), +- setupext.Qhull(), +- setupext.Image(), +- setupext.TTConv(), +- setupext.Path(), +- setupext.ContourLegacy(), +- setupext.Contour(), +- setupext.Delaunay(), +- setupext.QhullWrap(), +- setupext.Tri(), + 'Optional subpackages', + setupext.SampleData(), + setupext.Toolkits(), +@@ -100,13 +78,8 @@ mpl_packages = [ + setupext.BackendMacOSX(), + setupext.BackendQt5(), + setupext.BackendQt4(), +- setupext.BackendGtk3Agg(), + setupext.BackendGtk3Cairo(), +- setupext.BackendGtkAgg(), +- setupext.BackendTkAgg(), +- setupext.BackendWxAgg(), + setupext.BackendGtk(), +- setupext.BackendAgg(), + setupext.BackendCairo(), + setupext.Windowing(), + 'Optional LaTeX dependencies', diff --git a/meta-python/recipes-devtools/python/python-matplotlib_1.1.0.bb b/meta-python/recipes-devtools/python/python-matplotlib_1.1.0.bb deleted file mode 100644 index 69f71c71168..00000000000 --- a/meta-python/recipes-devtools/python/python-matplotlib_1.1.0.bb +++ /dev/null @@ -1,36 +0,0 @@ -DESCRIPTION = "matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats" -SECTION = "devel/python" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://README.txt;md5=83c5bf8b16a5f99507f2f47a21ae3b81" -PR = "r1" - -DEPENDS += "python-numpy freetype libpng python-dateutil python-pytz" -RDEPENDS_${PN} = "python-core python-distutils python-numpy freetype libpng python-dateutil python-pytz" - -SRC_URI = "${SOURCEFORGE_MIRROR}/matplotlib/matplotlib-${PV}.tar.gz \ - file://fix_setup.patch \ - file://fix_setupext.patch \ -" - -S = "${WORKDIR}/matplotlib-${PV}" - -EXTRA_OECONF = "--disable-docs --with-python-includes=${STAGING_INCDIR}/../" - -inherit distutils - -do_compile_prepend() { - BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ - ${STAGING_BINDIR_NATIVE}/python setup.py build ${DISTUTILS_BUILD_ARGS} || \ - true -} - -# need to export these variables for python-config to work -export PYTHONPATH -export BUILD_SYS -export HOST_SYS -export STAGING_INCDIR -export STAGING_LIBDIR - - -SRC_URI[md5sum] = "57a627f30b3b27821f808659889514c2" -SRC_URI[sha256sum] = "be37e1d86c65ecacae6683f8805e051e9904e5f2e02bf2b7a34262c46a6d06a7" diff --git a/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb b/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb new file mode 100644 index 00000000000..5b1c3f05b95 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats" +SECTION = "devel/python" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74" + +DEPENDS += "python-numpy freetype libpng python-dateutil python-pytz" +RDEPENDS_${PN} = "python-core python-distutils python-numpy freetype libpng python-dateutil python-pytz" + +SRC_URI = "https://github.com/matplotlib/matplotlib/archive/v${PV}.tar.gz \ + file://fix_setupext.patch \ +" +SRC_URI[md5sum] = "89717c1ef3c6fdcd6fb1f3b597a4858c" +SRC_URI[sha256sum] = "aebed23921562792b68b8ca355de5abc176af4424f1987e2fa95f65e5c5e7e89" +S = "${WORKDIR}/matplotlib-${PV}" +EXTRA_OECONF = "--disable-docs" + +inherit setuptools pkgconfig + diff --git a/meta-python/recipes-devtools/python/python-mccabe/0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch b/meta-python/recipes-devtools/python/python-mccabe/0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch new file mode 100644 index 00000000000..941bed3d73b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-mccabe/0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch @@ -0,0 +1,33 @@ +From 3484bdfa7adbaebcf8bb8e7d4820f64b12717932 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Fri, 29 Jul 2016 15:37:18 +0800 +Subject: [PATCH] python-mccabe: remove unnecessary setup_requires + pytest-runner + +* Remove setup_requires pytest-runner as the + setup_requires pytest-runner actually is not + used for pytest which only in do_compile phase + via setup.py build + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu +--- + setup.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/setup.py b/setup.py +index e59903d..bf2aaba 100644 +--- a/setup.py ++++ b/setup.py +@@ -33,7 +33,6 @@ setup( + license='Expat license', + py_modules=['mccabe'], + zip_safe=False, +- setup_requires=['pytest-runner'], + tests_require=['pytest'], + entry_points={ + 'flake8.extension': [ +-- +2.8.1 + diff --git a/meta-python/recipes-devtools/python/python-mccabe_0.2.1.bb b/meta-python/recipes-devtools/python/python-mccabe_0.2.1.bb deleted file mode 100644 index a056c092cbd..00000000000 --- a/meta-python/recipes-devtools/python/python-mccabe_0.2.1.bb +++ /dev/null @@ -1,23 +0,0 @@ -# Imported from git://git.yoctoproject.org/meta-cloud-services - -SUMMARY = "McCabe checker, plugin for flake8" -HOMEPAGE = "https://github.com/dreamhost/cliff" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://README.rst;md5=aa0383f6aee4f5c20084a97cd13164c4" - -SRCNAME = "mccabe" - -SRC_URI = "https://pypi.python.org/packages/source/m/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "5a3f3fa6a4bad126c88aaaa7dab682f5" -SRC_URI[sha256sum] = "5a2a170e47de5593a6abfae1e9542bd2c3924ac62bbe4e6ed96c953c0352243a" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += " \ - python-prettytable \ - python-cmd2 \ - python-pyparsing" diff --git a/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb b/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb new file mode 100644 index 00000000000..a86d158007e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "McCabe checker, plugin for flake8" +HOMEPAGE = "https://github.com/dreamhost/cliff" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.rst;md5=f8b50fba1711ecac6bcdb6324f85a66d" + +SRC_URI += " \ + file://0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch \ +" + +SRC_URI[md5sum] = "8c425db05f310adcd4bb174b991f26f5" +SRC_URI[sha256sum] = "9a2b12ebd876e77c72e41ebf401cc2e7c5b566649d50105ca49822688642207b" + +inherit pypi setuptools + +RDEPENDS_${PN} += " \ + python-prettytable \ + python-cmd2 \ + python-pyparsing" diff --git a/meta-python/recipes-devtools/python/python-mock_1.0.1.bb b/meta-python/recipes-devtools/python/python-mock_1.0.1.bb deleted file mode 100644 index a23b5523f4a..00000000000 --- a/meta-python/recipes-devtools/python/python-mock_1.0.1.bb +++ /dev/null @@ -1,26 +0,0 @@ -# Imported from git://git.yoctoproject.org/meta-cloud-services - -SUMMARY = "A Python Mocking and Patching Library for Testing" -HOMEPAGE = "https://pypi.python.org/pypi/mock" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=80e5ba73891255687dff3bee2b4cbb16" - -SRCNAME = "mock" - -SRC_URI = "https://pypi.python.org/packages/source/m/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "c3971991738caa55ec7c356bbc154ee2" -SRC_URI[sha256sum] = "b839dd2d9c117c701430c149956918a423a9863b48b09c90e30a6013e7d2f44f" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += " \ - python-prettytable \ - python-cmd2 \ - python-pyparsing \ - python-mccabe \ - python-pep8 \ - python-pyflakes" diff --git a/meta-python/recipes-devtools/python/python-mock_2.0.0.bb b/meta-python/recipes-devtools/python/python-mock_2.0.0.bb new file mode 100644 index 00000000000..840c36efedb --- /dev/null +++ b/meta-python/recipes-devtools/python/python-mock_2.0.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "A Python Mocking and Patching Library for Testing" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=de9dfbf780446b18aab11f00baaf5b7e" + +SRC_URI[md5sum] = "0febfafd14330c9dcaa40de2d82d40ad" +SRC_URI[sha256sum] = "b158b6df76edd239b8208d481dc46b6afd45a846b7812ff0ce58971cf5bc8bba" + +inherit pypi setuptools + +DEPENDS += " \ + python-pbr-native" + +RDEPENDS_${PN} += " \ + python-prettytable \ + python-cmd2 \ + python-pyparsing \ + python-mccabe \ + python-pep8 \ + python-pyflakes \ + python-pbr \ + python-funcsigs \ +" diff --git a/meta-python/recipes-devtools/python/python-monotonic_1.4.bb b/meta-python/recipes-devtools/python/python-monotonic_1.4.bb new file mode 100644 index 00000000000..4c5d8aedc1e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-monotonic_1.4.bb @@ -0,0 +1,10 @@ +SUMMARY = "An implementation of time.monotonic() for Python 2.0 through 3.2" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314" + +SRC_URI[md5sum] = "29302cd6b1013b3ab0d1ed78e20d22f2" +SRC_URI[sha256sum] = "a02611d5b518cd4051bf22d21bd0ae55b3a03f2d2993a19b6c90d9d168691f84" + +inherit pypi setuptools + +RDEPENDS_${PN} += "${PYTHON_PN}-ctypes ${PYTHON_PN}-io ${PYTHON_PN}-re ${PYTHON_PN}-threading" diff --git a/meta-python/recipes-devtools/python/python-msgpack.inc b/meta-python/recipes-devtools/python/python-msgpack.inc new file mode 100644 index 00000000000..228ce592503 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-msgpack.inc @@ -0,0 +1,9 @@ +SUMMARY = "MessagePack (de)serializer" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751" + +SRC_URI[md5sum] = "dcd854fb41ee7584ebbf35e049e6be98" +SRC_URI[sha256sum] = "1a2b19df0f03519ec7f19f826afb935b202d8979b0856c6fb3dc28955799f886" + +PYPI_PACKAGE = "msgpack-python" +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-msgpack_0.4.5.bb b/meta-python/recipes-devtools/python/python-msgpack_0.4.5.bb deleted file mode 100644 index 206b03dd4d0..00000000000 --- a/meta-python/recipes-devtools/python/python-msgpack_0.4.5.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "MessagePack (de)serializer" -HOMEPAGE = "https://pypi.python.org/pypi/msgpack-python/" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751" - -PR = "r0" -SRCNAME = "msgpack-python" - -SRC_URI = "https://pypi.python.org/packages/source/m/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "3b82bc542d5599896695512e7c32f42d" -SRC_URI[sha256sum] = "a07cd6615a6bf38cfa2f010b121c7e77b74a3e7b971ef3e475c3d33308014cbb" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-msgpack_0.4.8.bb b/meta-python/recipes-devtools/python/python-msgpack_0.4.8.bb new file mode 100644 index 00000000000..2c2c8f2add1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-msgpack_0.4.8.bb @@ -0,0 +1,2 @@ +require python-msgpack.inc +inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc b/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc new file mode 100644 index 00000000000..133cab10f51 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc @@ -0,0 +1,18 @@ +DESCRIPTION = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL" +HOMEPAGE = "http://python-requests.org" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0" + +SRC_URI[md5sum] = "59a2f0a5b3b60e6c520a9cc7be9aff87" +SRC_URI[sha256sum] = "7bfd8c5cfcbc241a93ca6a4e45f952650f5c7ecf7c49b1dbcf5f4d390240be0b" + +PYPI_PACKAGE = "ndg_httpsclient" + +DEPENDS += " \ + ${PYTHON_PN}-pyopenssl \ + ${PYTHON_PN}-pyasn1 \ +" + +BBCLASSEXTEND = "native nativesdk" + +UPSTREAM_CHECK_REGEX = "" diff --git a/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.3.bb b/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.3.bb new file mode 100644 index 00000000000..ca0eb326388 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.3.bb @@ -0,0 +1,2 @@ +require python-ndg-httpsclient.inc +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-netaddr.inc b/meta-python/recipes-devtools/python/python-netaddr.inc new file mode 100644 index 00000000000..26b0f1ed0d1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-netaddr.inc @@ -0,0 +1,8 @@ +SUMMARY = "A network address manipulation library for Python." +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44" + +SRC_URI[md5sum] = "51019ef59c93f3979bcb37d3b8527e07" +SRC_URI[sha256sum] = "38aeec7cdd035081d3a4c306394b19d677623bf76fa0913f6695127c7753aefd" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-netaddr_0.7.19.bb b/meta-python/recipes-devtools/python/python-netaddr_0.7.19.bb new file mode 100644 index 00000000000..5e089a90f23 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-netaddr_0.7.19.bb @@ -0,0 +1,2 @@ +require python-netaddr.inc +inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-networkx_1.11.bb b/meta-python/recipes-devtools/python/python-networkx_1.11.bb new file mode 100644 index 00000000000..bda8ae32e3f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-networkx_1.11.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Python package for creating and manipulating graphs and networks" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=925586ea588eb990de840dc71ea3752f" + +SRC_URI[md5sum] = "6ef584a879e9163013e9a762e1cf7cd1" +SRC_URI[sha256sum] = "0d0e70e10dfb47601cbb3425a00e03e2a2e97477be6f80638fef91d54dd1e4b8" + +inherit pypi setuptools + +RDEPENDS_${PN} += "python-2to3" diff --git a/meta-python/recipes-devtools/python/python-numeric/0001-it-tries-to-define-this-function-differently-than-it.patch b/meta-python/recipes-devtools/python/python-numeric/0001-it-tries-to-define-this-function-differently-than-it.patch new file mode 100644 index 00000000000..81ed744cbdb --- /dev/null +++ b/meta-python/recipes-devtools/python/python-numeric/0001-it-tries-to-define-this-function-differently-than-it.patch @@ -0,0 +1,30 @@ +From 322e781c67d7a78fc2cfc3d377f50b825fc64abb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 2 Jun 2017 20:21:01 -0700 +Subject: [PATCH] it tries to define this function differently than it is + defined in sys/time.h. + +Use the definition from system + +Signed-off-by: Khem Raj +--- + Packages/RNG/Src/ranf.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/Packages/RNG/Src/ranf.c b/Packages/RNG/Src/ranf.c +index 5ca7dc5..e669fa8 100644 +--- a/Packages/RNG/Src/ranf.c ++++ b/Packages/RNG/Src/ranf.c +@@ -149,9 +149,6 @@ void Mixranf(int *s,u32 s48[2]) + #else + struct timeval tv; + struct timezone tz; +-#if !defined(__sgi) +- int gettimeofday(struct timeval *, struct timezone *); +-#endif + + (void)gettimeofday(&tv,&tz); + s48[0] = (u32)tv.tv_sec; +-- +2.13.0 + diff --git a/meta-python/recipes-devtools/python/python-numeric/no-lapack.patch b/meta-python/recipes-devtools/python/python-numeric/no-lapack.patch deleted file mode 100644 index c1916b8b9f4..00000000000 --- a/meta-python/recipes-devtools/python/python-numeric/no-lapack.patch +++ /dev/null @@ -1,33 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- Numeric-23.7/setup.py~nolapack -+++ Numeric-23.7/setup.py -@@ -32,7 +32,7 @@ - mathlibs = [] - - # delete all but the first one in this list if using your own LAPACK/BLAS --sourcelist = [os.path.join('Src', 'lapack_litemodule.c'), -+sourcelist = [ - #os.path.join('Src', 'blas_lite.c'), - #os.path.join('Src', 'f2c_lite.c'), - #os.path.join('Src', 'zlapack_lite.c'), -@@ -40,12 +40,12 @@ - ] - # set these to use your own BLAS; - --library_dirs_list = ['/usr/lib/atlas'] --libraries_list = ['lapack', 'cblas', 'f77blas', 'atlas', 'g2c'] -+library_dirs_list = [] -+libraries_list = [] - - # set to true (1), if you also want BLAS optimized matrixmultiply/dot/innerproduct --use_dotblas = 1 --include_dirs = ['/usr/include/atlas'] -+use_dotblas = 0 -+include_dirs = [] - # You may need to set this to find cblas.h - # e.g. on UNIX using ATLAS this should be ['/usr/include/atlas'] - extra_link_args = [] diff --git a/meta-python/recipes-devtools/python/python-numeric_24.2.bb b/meta-python/recipes-devtools/python/python-numeric_24.2.bb index c0b04e14417..c91d77c81b4 100644 --- a/meta-python/recipes-devtools/python/python-numeric_24.2.bb +++ b/meta-python/recipes-devtools/python/python-numeric_24.2.bb @@ -5,7 +5,9 @@ LIC_FILES_CHKSUM = "file://Legal.htm;md5=e3ce75dedd4043918d15979ae43e312e" PR = "ml3" -SRC_URI = "${SOURCEFORGE_MIRROR}/numpy/Numeric-${PV}.tar.gz" +SRC_URI = "${SOURCEFORGE_MIRROR}/numpy/Numeric-${PV}.tar.gz \ + file://0001-it-tries-to-define-this-function-differently-than-it.patch \ +" S = "${WORKDIR}/Numeric-${PV}" inherit distutils diff --git a/meta-python/recipes-devtools/python/python-paho-mqtt.inc b/meta-python/recipes-devtools/python/python-paho-mqtt.inc new file mode 100644 index 00000000000..9efbd2f1eeb --- /dev/null +++ b/meta-python/recipes-devtools/python/python-paho-mqtt.inc @@ -0,0 +1,19 @@ +SUMMARY = "MQTT version 3.1/3.1.1 client library" +LICENSE = "EPL-1.0 | EDL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eb48c6ee2cb9f5b8b9fe75e6f817bdfc \ + file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \ + file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \ +" +SRCNAME = "paho-mqtt" + +inherit pypi +SRC_URI[md5sum] = "2cc27d8b369700b1fc99325add0dadd2" +SRC_URI[sha256sum] = "31911f6031de306c27ed79dc77b690d7c55b0dcb0f0434ca34ec6361d0371122" + +DEPENDS += "${PYTHON_PN}-pytest-runner-native" + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb b/meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb new file mode 100644 index 00000000000..f369b2e8481 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb @@ -0,0 +1,3 @@ +inherit setuptools +require python-paho-mqtt.inc + diff --git a/meta-python/recipes-devtools/python/python-pam_1.8.2.bb b/meta-python/recipes-devtools/python/python-pam_1.8.2.bb new file mode 100644 index 00000000000..05bddd527bf --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pam_1.8.2.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Python PAM module using ctypes, py3/py2." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=64326d42471b493c5c088305364ad5da" + +SRC_URI[md5sum] = "db71b6b999246fb05d78ecfbe166629d" +SRC_URI[sha256sum] = "26efe4e79b869b10f97cd8c4a6bbb04a4e54d41186364e975b4108c9c071812c" + +PYPI_PACKAGE = "python-pam" + +inherit pypi setuptools + +RDEPENDS_${PN} = "libpam" diff --git a/meta-python/recipes-devtools/python/python-pandas.inc b/meta-python/recipes-devtools/python/python-pandas.inc new file mode 100644 index 00000000000..4c00a1a8f8a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pandas.inc @@ -0,0 +1,23 @@ +SUMMARY = "pandas library for high-performance data analysis tools" +DESCRIPTION = "pandas is an open source, BSD-licensed library providing \ +high-performance, easy-to-use data structures and data analysis tools for \ +the Python programming language." +HOMEPAGE = "http://pandas.pydata.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ee0470f2de336c370a71c2f8d5e81c11" + +SRC_URI[md5sum] = "6f14884caaa87a0824b5e93fe032b904" +SRC_URI[sha256sum] = "5cd5cb30e72eeaf202f0e5e180780b897570e889d2db328c689a5a263405c559" + +PYPI_PACKAGE = "pandas" +inherit pypi + +DEPENDS += " \ + ${PYTHON_PN}-numpy-native \ +" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-numpy \ + ${PYTHON_PN}-dateutil \ + ${PYTHON_PN}-pytz \ +" diff --git a/meta-python/recipes-devtools/python/python-pandas_0.21.0.bb b/meta-python/recipes-devtools/python/python-pandas_0.21.0.bb new file mode 100644 index 00000000000..20973c8e847 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pandas_0.21.0.bb @@ -0,0 +1,7 @@ +inherit setuptools +require python-pandas.inc + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-importlib \ +" diff --git a/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb b/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb new file mode 100644 index 00000000000..b516c5912d8 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "Simplifies building parse types based on the parse module" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d07323820cca0f1d192cbbf8a0516f95" +PYPI_PACKAGE = "parse_type" + +SRC_URI[md5sum] = "b5fa59e45965d1b2896023742df2e707" +SRC_URI[sha256sum] = "f596bdc75d3dd93036fbfe3d04127da9f6df0c26c36e01e76da85adef4336b3c" + +RDEPENDS_${PN} += "python-parse" + +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-parse_1.8.2.bb b/meta-python/recipes-devtools/python/python-parse_1.8.2.bb new file mode 100644 index 00000000000..037221a3ccb --- /dev/null +++ b/meta-python/recipes-devtools/python/python-parse_1.8.2.bb @@ -0,0 +1,13 @@ +SUMMARY = "Parse strings using a specification based on the Python format() syntax" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://parse.py;md5=a84b494563bba466a2f02b05f2e6ad4a;startline=1191;endline=1210" + +SRC_URI[md5sum] = "42002338551bdfa0f01bbe4e679a17dd" +SRC_URI[sha256sum] = "8048dde3f5ca07ad7ac7350460952d83b63eaacecdac1b37f45fd74870d849d2" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-logging \ + " diff --git a/meta-python/recipes-devtools/python/python-passlib.inc b/meta-python/recipes-devtools/python/python-passlib.inc new file mode 100644 index 00000000000..f289c0ec395 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-passlib.inc @@ -0,0 +1,13 @@ +SUMMARY = "comprehensive password hashing framework supporting over 30 schemes" +DESCRIPTION = "\ +Passlib is a password hashing library for Python 2 & 3, which provides cross-platform \ +implementations of over 30 password hashing algorithms, as well as a framework for \ +managing existing password hashes. It’s designed to be useful for a wide range of \ +tasks, from verifying a hash found in /etc/shadow, to providing full-strength password \ +hashing for multi-user applications." +HOMEPAGE = "https://bitbucket.org/ecollins/passlib" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=73eed1a5470b969951dac411086c7036" + +SRC_URI[md5sum] = "254869dae3fd9f09f0746a3cb29a0b15" +SRC_URI[sha256sum] = "3d948f64138c25633613f303bcc471126eae67c04d5e3f6b7b8ce6242f8653e0" diff --git a/meta-python/recipes-devtools/python/python-passlib_1.7.1.bb b/meta-python/recipes-devtools/python/python-passlib_1.7.1.bb new file mode 100644 index 00000000000..11c598a0849 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-passlib_1.7.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-passlib.inc diff --git a/meta-python/recipes-devtools/python/python-paste_2.0.3.bb b/meta-python/recipes-devtools/python/python-paste_2.0.3.bb new file mode 100644 index 00000000000..6b4019f846a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-paste_2.0.3.bb @@ -0,0 +1,14 @@ +SUMMARY = "Tools for using a Web Server Gateway Interface stack" +HOMEPAGE = "http://pythonpaste.org/" +LICENSE = "MIT" +RDEPENDS_${PN} = "python-six" + +LIC_FILES_CHKSUM = "file://docs/license.txt;md5=1798f29d55080c60365e6283cb49779c" + +SRC_URI[md5sum] = "1231e14eae62fa7ed76e9130b04bc61e" +SRC_URI[sha256sum] = "2346a347824c32641bf020c17967b49ae74d3310ec1bc9b958d4b84e2d985218" + +PYPI_PACKAGE = "Paste" +inherit pypi setuptools + +FILES_${PN} += "/usr/lib/*" diff --git a/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb b/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb new file mode 100644 index 00000000000..bdff867f30d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Python Build Reasonableness: PBR is a library that injects some useful and sensible default behaviors into your setuptools run" +HOMEPAGE = "https://pypi.python.org/pypi/pbr" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2" + +SRC_URI[md5sum] = "4e82c2e07af544c56a5b71c801525b00" +SRC_URI[sha256sum] = "05f61c71aaefc02d8e37c0a3eeb9815ff526ea28b3b76324769e6158d7f95be1" + +inherit pypi setuptools + +RDEPENDS_${PN}_class-target += " \ + python-pip \ + " + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-pep8_1.4.6.bb b/meta-python/recipes-devtools/python/python-pep8_1.4.6.bb deleted file mode 100644 index b3c743ebd7b..00000000000 --- a/meta-python/recipes-devtools/python/python-pep8_1.4.6.bb +++ /dev/null @@ -1,23 +0,0 @@ -# Imported from git://git.yoctoproject.org/meta-cloud-services - -SUMMARY = "Python style guide checker" -HOMEPAGE = "https://github.com/dreamhost/cliff" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://README.rst;md5=b0d37793ab91ca25ad5c200e9ea22331" - -SRCNAME = "pep8" - -SRC_URI = "https://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "a03bb494859e87b42601b61b1b043a0c" -SRC_URI[sha256sum] = "603a46e5c358ce20ac4807a0eeafac7505d1125a4c1bd8378757ada06f61bed8" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += " \ - python-prettytable \ - python-cmd2 \ - python-pyparsing" diff --git a/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb b/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb new file mode 100644 index 00000000000..b12d72d389a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "Python style guide checker" +HOMEPAGE = "https://github.com/dreamhost/cliff" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.rst;md5=d8ebbbe831259ce010179d2f310b0f3e" + +SRC_URI[md5sum] = "603821d06db945c71d811b5a8d78423c" +SRC_URI[sha256sum] = "fe249b52e20498e59e0b5c5256aa52ee99fc295b26ec9eaa85776ffdb9fe6374" + +inherit pypi setuptools + +RDEPENDS_${PN} += " \ + python-prettytable \ + python-cmd2 \ + python-pyparsing" diff --git a/meta-python/recipes-devtools/python/python-pexpect.inc b/meta-python/recipes-devtools/python/python-pexpect.inc new file mode 100644 index 00000000000..dc8bcc9f680 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pexpect.inc @@ -0,0 +1,25 @@ +SUMMARY = "A Pure Python Expect like Module for Python" +HOMEPAGE = "http://pexpect.readthedocs.org/" +SECTION = "devel/python" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1c7a725251880af8c6a148181665385b" + +SRCNAME = "pexpect" + +SRC_URI[md5sum] = "047a486dcd26134b74f2e67046bb61a0" +SRC_URI[sha256sum] = "00ab0872f80f5db740499e7a1283a7c3b97bea542d72df84d83dea17d0afd2d9" + +UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pexpect" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-terminal \ + ${PYTHON_PN}-resource \ + ${PYTHON_PN}-fcntl \ + ${PYTHON_PN}-ptyprocess \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pexpect_2.3.bb b/meta-python/recipes-devtools/python/python-pexpect_2.3.bb deleted file mode 100644 index d4c2ba477d7..00000000000 --- a/meta-python/recipes-devtools/python/python-pexpect_2.3.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "A Pure Python Expect like Module for Python" -SECTION = "devel/python" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://LICENSE;md5=04a2bf11b85ce49d4a8c0c413fd34404" -SRCNAME = "pexpect" -PR = "ml3" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit distutils - -RDEPENDS_${PN} = "\ - python-core \ - python-io \ - python-terminal \ - python-resource \ - python-fcntl \ -" - - -SRC_URI[md5sum] = "bf107cf54e67bc6dec5bea1f3e6a65c3" -SRC_URI[sha256sum] = "d315e7f3a8544fd85034d7e17fd7c5854e8f0828f5791f83cf313f8fa5740b75" diff --git a/meta-python/recipes-devtools/python/python-pexpect_4.3.0.bb b/meta-python/recipes-devtools/python/python-pexpect_4.3.0.bb new file mode 100644 index 00000000000..1c46b47a21c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pexpect_4.3.0.bb @@ -0,0 +1,2 @@ +require python-pexpect.inc +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-pip_1.5.6.bb b/meta-python/recipes-devtools/python/python-pip_1.5.6.bb deleted file mode 100644 index b4ce9e5f3cb..00000000000 --- a/meta-python/recipes-devtools/python/python-pip_1.5.6.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "PIP is a tool for installing and managing Python packages" -LICENSE = "MIT & LGPL-2.1" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=45665b53032c02b35e29ddab8e61fa91" - -SRC_URI = "https://pypi.python.org/packages/source/p/pip/pip-${PV}.tar.gz" - -SRC_URI[md5sum] = "01026f87978932060cc86c1dc527903e" -SRC_URI[sha256sum] = "b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c" - -S = "${WORKDIR}/pip-${PV}" - -inherit setuptools - -# Since PIP is like CPAN for PERL we need to drag in all python modules to ensure everything works -RDEPENDS_${PN} = "python-modules python-distribute" diff --git a/meta-python/recipes-devtools/python/python-pip_9.0.1.bb b/meta-python/recipes-devtools/python/python-pip_9.0.1.bb new file mode 100644 index 00000000000..5ddd8d5240c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pip_9.0.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "PIP is a tool for installing and managing Python packages" +HOMEPAGE = "https://pip.pypa.io/" +LICENSE = "MIT & LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=25fba45109565f87de20bae85bc39452" + +SRC_URI[md5sum] = "35f01da33009719497f01a4ba69d63c9" +SRC_URI[sha256sum] = "09f243e1a7b461f654c26a725fa373211bb7ff17a9300058b205c61658ca940d" + +inherit pypi setuptools + +# Since PIP is like CPAN for PERL we need to drag in all python modules to ensure everything works +RDEPENDS_${PN}_class-target = "python-modules python-distribute" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-ply_3.10.bb b/meta-python/recipes-devtools/python/python-ply_3.10.bb new file mode 100644 index 00000000000..9d019ae031b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-ply_3.10.bb @@ -0,0 +1,11 @@ +SUMMARY = "Python Lex and Yacc" +DESCRIPTION = "Python ply: PLY is yet another implementation of lex and yacc for Python" +HOMEPAGE = "https://pypi.python.org/pypi/ply" +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://README.md;beginline=3;endline=30;md5=fcb04bc2f765e46ab7084d6ab6e452bb" + +SRC_URI[md5sum] = "1d63c166ab250bab87d8dcc42dcca70e" +SRC_URI[sha256sum] = "96e94af7dd7031d8d6dd6e2a8e0de593b511c211a86e28a9c9621c275ac8bacb" + +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-pretend.inc b/meta-python/recipes-devtools/python/python-pretend.inc new file mode 100644 index 00000000000..78b671712a4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pretend.inc @@ -0,0 +1,9 @@ +SUMMARY = "A library for stubbing in Python" +HOMEPAGE = "https://github.com/alex/pretend" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=411780c0b7fa756753e94affeee5bc99" + +SRC_URI[md5sum] = "7147050a95c9f494248557b42b58ad79" +SRC_URI[sha256sum] = "930f2c1e18503e8f8c403abe2e02166c4a881941745147e712cdd4f49f3fb964" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pretend_1.0.8.bb b/meta-python/recipes-devtools/python/python-pretend_1.0.8.bb new file mode 100644 index 00000000000..73b8ed4d7c7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pretend_1.0.8.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-pretend.inc diff --git a/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb b/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb index fdc13eb119f..6f4390e24cd 100644 --- a/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb +++ b/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb @@ -1,25 +1,25 @@ -# Imported from git://git.yoctoproject.org/meta-cloud-services - SUMMARY = "Python library for displaying tabular data in a ASCII table format" HOMEPAGE = "http://code.google.com/p/prettytable" -SECTION = "devel/python" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=3e73500ffa52de5071cff65990055282" -SRCNAME = "prettytable" - -SRC_URI = "http://pypi.python.org/packages/source/P/PrettyTable/${SRCNAME}-${PV}.zip" - SRC_URI[md5sum] = "0c1361104caff8b09f220748f9d69899" SRC_URI[sha256sum] = "a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f" +SRCNAME = "prettytable" + +SRC_URI = "https://pypi.python.org/packages/source/P/PrettyTable/${SRCNAME}-${PV}.zip" + S = "${WORKDIR}/${SRCNAME}-${PV}" inherit setuptools do_install_append() { - perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "top_level.txt"` + perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"` for f in $perm_files; do chmod 644 "${f}" done } + +UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PrettyTable/" +UPSTREAM_CHECK_REGEX = "/PrettyTable/(?P(\d+[\.\-_]*)+)" diff --git a/meta-python/recipes-devtools/python/python-progress.inc b/meta-python/recipes-devtools/python/python-progress.inc new file mode 100644 index 00000000000..297c0d373a3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-progress.inc @@ -0,0 +1,14 @@ +SUMMARY = "Easy progress reporting for Python" +HOMEPAGE = "http://github.com/verigak/progress/" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=aef5566ac4fede9815eccf124c281317" + +SRC_URI[md5sum] = "f65ccfcc2339d522b2dd5801aaa40dc7" +SRC_URI[sha256sum] = "c88d89ee3bd06716a0b8b5504d9c3bcb3c1c0ab98f96dc7f1dc5f56812a4f60a" + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-math \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-progress_1.3.bb b/meta-python/recipes-devtools/python/python-progress_1.3.bb new file mode 100644 index 00000000000..80608627a60 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-progress_1.3.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-progress.inc diff --git a/meta-python/recipes-devtools/python/python-prompt-toolkit.inc b/meta-python/recipes-devtools/python/python-prompt-toolkit.inc new file mode 100644 index 00000000000..f5ed349f2ed --- /dev/null +++ b/meta-python/recipes-devtools/python/python-prompt-toolkit.inc @@ -0,0 +1,19 @@ +SUMMARY = "Library for building powerful interactive command lines in Python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f" + +SRC_URI[md5sum] = "8fe70295006dbc8afedd43e5eba99032" +SRC_URI[sha256sum] = "858588f1983ca497f1cf4ffde01d978a3ea02b01c8a26a8bbc5cd2e66d816917" + +PYPI_PACKAGE = "prompt_toolkit" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-core \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-terminal \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-wcwidth \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb b/meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb new file mode 100644 index 00000000000..76e841014a1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-prompt-toolkit.inc diff --git a/meta-python/recipes-devtools/python/python-protobuf.inc b/meta-python/recipes-devtools/python/python-protobuf.inc new file mode 100644 index 00000000000..2f59ef98b6a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-protobuf.inc @@ -0,0 +1,16 @@ +DESCRIPTION = "Protocol Buffers" +HOMEPAGE = "https://developers.google.com/protocol-buffers/" +SECTION = "devel/python" + +RDEPENDS_${PN} = "python-six" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +inherit pypi + +SRC_URI[md5sum] = "bfc0c61c156a995e909521697e755780" +SRC_URI[sha256sum] = "ef02609ef445987976a3a26bff77119c518e0915c96661c3a3b17856d0ef6374" + +# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools) +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-protobuf_3.4.0.bb b/meta-python/recipes-devtools/python/python-protobuf_3.4.0.bb new file mode 100644 index 00000000000..f04fc489f00 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-protobuf_3.4.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-protobuf.inc diff --git a/meta-python/recipes-devtools/python/python-psutil.inc b/meta-python/recipes-devtools/python/python-psutil.inc new file mode 100644 index 00000000000..23f8e07fbf3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-psutil.inc @@ -0,0 +1,12 @@ +SUMMARY = "A cross-platform process and system utilities module for Python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0f02e99f7f3c9a7fe8ecfc5d44c2be62" + +SRC_URI[md5sum] = "c0aa7823e416b4e2ee908c2d387d2662" +SRC_URI[sha256sum] = "42e2de159e3c987435cb3b47d6f37035db190a1499f3af714ba7af5c379b6ba2" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-python/recipes-devtools/python/python-psutil_0.6.1.bb b/meta-python/recipes-devtools/python/python-psutil_0.6.1.bb deleted file mode 100644 index ff113d0f244..00000000000 --- a/meta-python/recipes-devtools/python/python-psutil_0.6.1.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "A cross-platform process and system utilities module for Python" -SECTION = "devel/python" -HOMEPAGE = "http://code.google.com/p/psutil" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=0f02e99f7f3c9a7fe8ecfc5d44c2be62" - -SRC_URI = "http://psutil.googlecode.com/files/psutil-${PV}.tar.gz" -SRC_URI[md5sum] = "3cfcbfb8525f6e4c70110e44a85e907e" -SRC_URI[sha256sum] = "d665a4cc58c9a5d207fb0dc9869fc0ee10f4f66ad885e84886ef6339ccce0a6f" - -S = "${WORKDIR}/psutil-${PV}" - -inherit setuptools - diff --git a/meta-python/recipes-devtools/python/python-psutil_5.4.1.bb b/meta-python/recipes-devtools/python/python-psutil_5.4.1.bb new file mode 100644 index 00000000000..bf402aa4768 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-psutil_5.4.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-psutil.inc diff --git a/meta-python/recipes-devtools/python/python-ptyprocess.inc b/meta-python/recipes-devtools/python/python-ptyprocess.inc new file mode 100644 index 00000000000..43f2d094ac2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-ptyprocess.inc @@ -0,0 +1,20 @@ +SUMMARY = "Run a subprocess in a pseudo terminal" +HOMEPAGE = "http://ptyprocess.readthedocs.io/en/latest/" +SECTION = "devel/python" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=cfdcd51fa7d5808da4e74346ee394490" + +SRCNAME = "ptyprocess" + +SRC_URI[md5sum] = "d3b8febae1b8c53b054bd818d0bb8665" +SRC_URI[sha256sum] = "e64193f0047ad603b71f202332ab5527c5e52aa7c8b609704fc28c0dc20c4365" + +UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ptyprocess" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-core \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb b/meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb new file mode 100644 index 00000000000..7ca45877149 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb @@ -0,0 +1,2 @@ +require python-ptyprocess.inc +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-py.inc b/meta-python/recipes-devtools/python/python-py.inc new file mode 100644 index 00000000000..1aef0e7d582 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-py.inc @@ -0,0 +1,9 @@ +SUMMARY = "Library with cross-python path, ini-parsing, io, code, log facilities" +HOMEPAGE = "http://py.readthedocs.io/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b506f3df287708b2f99588b5cc351091" + +SRC_URI[md5sum] = "d9c3d8f734b0819ff48e355d77bf1730" +SRC_URI[sha256sum] = "0f2d585d22050e90c7d293b6451c83db097df77871974d90efd5a30dc12fcde3" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-py_1.4.34.bb b/meta-python/recipes-devtools/python/python-py_1.4.34.bb new file mode 100644 index 00000000000..5ad2c19766a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-py_1.4.34.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-py.inc diff --git a/meta-python/recipes-devtools/python/python-pyalsaaudio.inc b/meta-python/recipes-devtools/python/python-pyalsaaudio.inc new file mode 100644 index 00000000000..d150409a2a9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyalsaaudio.inc @@ -0,0 +1,11 @@ +SUMMARY = "Support for the Linux 2.6.x ALSA Sound System" +SECTION = "devel/python" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1a3b161aa0fcec32a0c8907a2219ad9d" + +SRC_URI[md5sum] = "b46f69561bc85fc52e698b2440ca251e" +SRC_URI[sha256sum] = "84e8f8da544d7f4bd96479ce4a237600077984d9be1d7f16c1d9a492ecf50085" + +DEPENDS += "alsa-lib" + +RDEPENDS_${PN} += "libasound" diff --git a/meta-python/recipes-devtools/python/python-pyalsaaudio_0.4.bb b/meta-python/recipes-devtools/python/python-pyalsaaudio_0.4.bb deleted file mode 100644 index 0e660adff66..00000000000 --- a/meta-python/recipes-devtools/python/python-pyalsaaudio_0.4.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Support for the Linux 2.6.x ALSA Sound System" -SECTION = "devel/python" -DEPENDS = "alsa-lib" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://LICENSE;md5=1a3b161aa0fcec32a0c8907a2219ad9d" -SRCNAME = "pyalsaaudio" -PR = "ml2" - -SRC_URI = "${SOURCEFORGE_MIRROR}/pyalsaaudio/${SRCNAME}-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit distutils - -SRC_URI[md5sum] = "b312c28efba7db0494836a79f0a49898" -SRC_URI[sha256sum] = "07148ce16024724b17cc24c51d0f4fb78af214b09b7dc8dcb7b06e5647f4c582" diff --git a/meta-python/recipes-devtools/python/python-pyalsaaudio_0.8.4.bb b/meta-python/recipes-devtools/python/python-pyalsaaudio_0.8.4.bb new file mode 100644 index 00000000000..e5153421b49 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyalsaaudio_0.8.4.bb @@ -0,0 +1,2 @@ +require python-pyalsaaudio.inc +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-pyasn1.inc b/meta-python/recipes-devtools/python/python-pyasn1.inc new file mode 100644 index 00000000000..aa375f66cef --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyasn1.inc @@ -0,0 +1,17 @@ +SUMMARY = "Python library implementing ASN.1 types." +HOMEPAGE = "http://pyasn1.sourceforge.net/" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=280606d9c18f200e03e0c247ac61475a" + +SRC_URI[md5sum] = "d58ecd0d9ff07218073c5acb12974254" +SRC_URI[sha256sum] = "187f2a66d617683f8e82d5c00033b7c8a0287e1da88a9d577aebec321cad4965" + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-codecs \ + ${PYTHON_PN}-lang \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-shell \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pyasn1_0.3.7.bb b/meta-python/recipes-devtools/python/python-pyasn1_0.3.7.bb new file mode 100644 index 00000000000..4461918cac4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyasn1_0.3.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-pyasn1.inc diff --git a/meta-python/recipes-devtools/python/python-pybind11.inc b/meta-python/recipes-devtools/python/python-pybind11.inc new file mode 100644 index 00000000000..e273a8d25e5 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pybind11.inc @@ -0,0 +1,7 @@ +SUMMARY = "Seamless operability between C++11 and Python" +HOMEPAGE = "https://github.com/wjakob/pybind11" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9b27fac7e937323e3de9ca3a7db38e37" + +SRC_URI[md5sum] = "f454d8991f47befe56d4126df861fc96" +SRC_URI[sha256sum] = "a96a924fae6e2721efbf24f47561284fd1ea0b655619a8621c4423036183b824" diff --git a/meta-python/recipes-devtools/python/python-pybind11_2.2.1.bb b/meta-python/recipes-devtools/python/python-pybind11_2.2.1.bb new file mode 100644 index 00000000000..e56743002e4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pybind11_2.2.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-pybind11.inc diff --git a/meta-python/recipes-devtools/python/python-pybluez_0.22.bb b/meta-python/recipes-devtools/python/python-pybluez_0.22.bb new file mode 100644 index 00000000000..eab9c542094 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pybluez_0.22.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Bluetooth Python extension module" +HOMEPAGE = "http://karulis.github.io/pybluez/" +SECTION = "devel/python" + +RDEPENDS_${PN} = "bluez5" +DEPENDS = "bluez5" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543" + +inherit pypi setuptools + +SRC_URI = "https://pypi.python.org/packages/c1/98/3149481d508bee174335be6725880f00d297afebe75c15e917af8f6fe169/PyBluez-0.22.zip" +SRC_URI[md5sum] = "49dab9d5a8f0b798c8125c7f649be3cd" +SRC_URI[sha256sum] = "4ce006716a54d9d18e8186a3f1c8b12a8e6befecffe8fd5828a291fb694ce49d" + +S = "${WORKDIR}/PyBluez-${PV}" diff --git a/meta-python/recipes-devtools/python/python-pycparser.inc b/meta-python/recipes-devtools/python/python-pycparser.inc new file mode 100644 index 00000000000..6b054824e31 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pycparser.inc @@ -0,0 +1,15 @@ +SUMMARY = "Parser of the C language, written in pure Python" +HOMEPAGE = "https://github.com/eliben/pycparser" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86f1cedb4e6410a88ce8e30b91079169" + +SRC_URI[md5sum] = "72370da54358202a60130e223d488136" +SRC_URI[sha256sum] = "99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226" + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-subprocess \ + cpp \ + cpp-symlinks \ + " diff --git a/meta-python/recipes-devtools/python/python-pycparser_2.10.bb b/meta-python/recipes-devtools/python/python-pycparser_2.10.bb deleted file mode 100644 index bee4052f4dc..00000000000 --- a/meta-python/recipes-devtools/python/python-pycparser_2.10.bb +++ /dev/null @@ -1,8 +0,0 @@ -SUMMARY = "Parser of the C language, written in pure Python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d29d3ce07825100c58ca57eea171ab65" - -SRC_URI[md5sum] = "d87aed98c8a9f386aa56d365fe4d515f" -SRC_URI[sha256sum] = "957d98b661c0b64b580ab6f94b125e09b6714154ee51de40bca16d3f0076b86c" - -inherit pypi diff --git a/meta-python/recipes-devtools/python/python-pycparser_2.18.bb b/meta-python/recipes-devtools/python/python-pycparser_2.18.bb new file mode 100644 index 00000000000..adbc1a8f46c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pycparser_2.18.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-pycparser.inc diff --git a/meta-python/recipes-devtools/python/python-pycrypto.inc b/meta-python/recipes-devtools/python/python-pycrypto.inc new file mode 100644 index 00000000000..fb2c17df1f0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pycrypto.inc @@ -0,0 +1,17 @@ +DESCRIPTION = "Cryptographic modules for Python." +HOMEPAGE = "http://www.pycrypto.org/" +LICENSE = "PSFv2" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=35f354d199e8cb7667b059a23578e63d" + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +DEPENDS += " gmp" + +inherit pypi autotools-brokensep + +SRC_URI[md5sum] = "55a61a054aa66812daf5161a0d5d7eda" +SRC_URI[sha256sum] = "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c" + +do_compile[noexec] = "1" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pycrypto/CVE-2013-7459.patch b/meta-python/recipes-devtools/python/python-pycrypto/CVE-2013-7459.patch new file mode 100644 index 00000000000..9006c5c3501 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pycrypto/CVE-2013-7459.patch @@ -0,0 +1,98 @@ +From 8dbe0dc3eea5c689d4f76b37b93fe216cf1f00d4 Mon Sep 17 00:00:00 2001 +From: Legrandin +Date: Sun, 22 Dec 2013 22:24:46 +0100 +Subject: [PATCH] Throw exception when IV is used with ECB or CTR + +The IV parameter is currently ignored when initializing +a cipher in ECB or CTR mode. + +For CTR mode, it is confusing: it takes some time to see +that a different parameter is needed (the counter). + +For ECB mode, it is outright dangerous. + +This patch forces an exception to be raised. + +Upstream-Status: Backport +[https://github.com/dlitz/pycrypto/commit/8dbe0dc3eea5c689d4f76b37b93fe216cf1f00d4] + +CVE: CVE-2013-7459 + +Signed-off-by: Yi Zhao +--- + lib/Crypto/SelfTest/Cipher/common.py | 31 +++++++++++++++++++++++-------- + src/block_template.c | 11 +++++++++++ + 2 files changed, 34 insertions(+), 8 deletions(-) + +diff --git a/lib/Crypto/SelfTest/Cipher/common.py b/lib/Crypto/SelfTest/Cipher/common.py +index 8bebed9..91ec743 100644 +--- a/lib/Crypto/SelfTest/Cipher/common.py ++++ b/lib/Crypto/SelfTest/Cipher/common.py +@@ -239,19 +239,34 @@ class RoundtripTest(unittest.TestCase): + return """%s .decrypt() output of .encrypt() should not be garbled""" % (self.module_name,) + + def runTest(self): +- for mode in (self.module.MODE_ECB, self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB, self.module.MODE_OPENPGP): ++ ++ ## ECB mode ++ mode = self.module.MODE_ECB ++ encryption_cipher = self.module.new(a2b_hex(self.key), mode) ++ ciphertext = encryption_cipher.encrypt(self.plaintext) ++ decryption_cipher = self.module.new(a2b_hex(self.key), mode) ++ decrypted_plaintext = decryption_cipher.decrypt(ciphertext) ++ self.assertEqual(self.plaintext, decrypted_plaintext) ++ ++ ## OPENPGP mode ++ mode = self.module.MODE_OPENPGP ++ encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv) ++ eiv_ciphertext = encryption_cipher.encrypt(self.plaintext) ++ eiv = eiv_ciphertext[:self.module.block_size+2] ++ ciphertext = eiv_ciphertext[self.module.block_size+2:] ++ decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv) ++ decrypted_plaintext = decryption_cipher.decrypt(ciphertext) ++ self.assertEqual(self.plaintext, decrypted_plaintext) ++ ++ ## All other non-AEAD modes (but CTR) ++ for mode in (self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB): + encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv) + ciphertext = encryption_cipher.encrypt(self.plaintext) +- +- if mode != self.module.MODE_OPENPGP: +- decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv) +- else: +- eiv = ciphertext[:self.module.block_size+2] +- ciphertext = ciphertext[self.module.block_size+2:] +- decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv) ++ decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv) + decrypted_plaintext = decryption_cipher.decrypt(ciphertext) + self.assertEqual(self.plaintext, decrypted_plaintext) + ++ + class PGPTest(unittest.TestCase): + def __init__(self, module, params): + unittest.TestCase.__init__(self) +diff --git a/src/block_template.c b/src/block_template.c +index c36b316..8746948 100644 +--- a/src/block_template.c ++++ b/src/block_template.c +@@ -170,6 +170,17 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict) + "Key cannot be the null string"); + return NULL; + } ++ if (IVlen != 0 && mode == MODE_ECB) ++ { ++ PyErr_Format(PyExc_ValueError, "ECB mode does not use IV"); ++ return NULL; ++ } ++ if (IVlen != 0 && mode == MODE_CTR) ++ { ++ PyErr_Format(PyExc_ValueError, ++ "CTR mode needs counter parameter, not IV"); ++ return NULL; ++ } + if (IVlen != BLOCK_SIZE && mode != MODE_ECB && mode != MODE_CTR) + { + PyErr_Format(PyExc_ValueError, +-- +2.7.4 + diff --git a/meta-python/recipes-devtools/python/python-pycrypto/cross-compiling.patch b/meta-python/recipes-devtools/python/python-pycrypto/cross-compiling.patch new file mode 100644 index 00000000000..712f3e8ddeb --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pycrypto/cross-compiling.patch @@ -0,0 +1,23 @@ +Index: pycrypto-2.6/setup.py +=================================================================== +--- pycrypto-2.6.orig/setup.py ++++ pycrypto-2.6/setup.py +@@ -271,7 +271,8 @@ class PCTBuildConfigure(Command): + if not os.path.exists("config.status"): + if os.system("chmod 0755 configure") != 0: + raise RuntimeError("chmod error") +- cmd = "sh configure" # we use "sh" here so that it'll work on mingw32 with standard python.org binaries ++ host = os.environ.get("HOST_SYS") ++ cmd = "ac_cv_func_malloc_0_nonnull=yes sh configure --host " + host # we use "sh" here so that it'll work on mingw32 with standard python.org binaries + if self.verbose < 1: + cmd += " -q" + if os.system(cmd) != 0: +@@ -370,7 +371,7 @@ kw = {'name':"pycrypto", + 'ext_modules': plat_ext + [ + # _fastmath (uses GNU mp library) + Extension("Crypto.PublicKey._fastmath", +- include_dirs=['src/','/usr/include/'], ++ include_dirs=['src/'], + libraries=['gmp'], + sources=["src/_fastmath.c"]), + diff --git a/meta-python/recipes-devtools/python/python-pycrypto_2.6.1.bb b/meta-python/recipes-devtools/python/python-pycrypto_2.6.1.bb new file mode 100644 index 00000000000..919f91ecb1e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pycrypto_2.6.1.bb @@ -0,0 +1,13 @@ +inherit distutils +require python-pycrypto.inc + +SRC_URI += "file://cross-compiling.patch \ + file://CVE-2013-7459.patch \ + " + +# We explicitly call distutils_do_install, since we want it to run, but +# *don't* want the autotools install to run, since this package doesn't +# provide a "make install" target. +do_install() { + distutils_do_install +} diff --git a/meta-python/recipes-devtools/python/python-pydbus.inc b/meta-python/recipes-devtools/python/python-pydbus.inc new file mode 100644 index 00000000000..0773b7ff887 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pydbus.inc @@ -0,0 +1,11 @@ +DESCRIPTION = "Pythonic DBus library" +HOMEPAGE = "https://pypi.python.org/pypi/pydbus/" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a916467b91076e631dd8edb7424769c7" + +SRC_URI[md5sum] = "c6abd44862322679bd4e907bebc3e0d0" +SRC_URI[sha256sum] = "4207162eff54223822c185da06c1ba8a34137a9602f3da5a528eedf3f78d0f2c" + +S = "${WORKDIR}/pydbus-${PV}" + +RDEPENDS_${PN} = "${PYTHON_PN}-pygobject" diff --git a/meta-python/recipes-devtools/python/python-pydbus_0.6.0.bb b/meta-python/recipes-devtools/python/python-pydbus_0.6.0.bb new file mode 100644 index 00000000000..1722a80cd3f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pydbus_0.6.0.bb @@ -0,0 +1,2 @@ +require python-pydbus.inc +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-pyfirmata.inc b/meta-python/recipes-devtools/python/python-pyfirmata.inc new file mode 100644 index 00000000000..2365379aa23 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyfirmata.inc @@ -0,0 +1,13 @@ +SUMMARY = "A Python interface for the Firmata protocol" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=84ddcef430b7c44caa22b2ff4b37a3df" +PYPI_PACKAGE = "pyFirmata" + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-pyserial \ +" + +SRC_URI[md5sum] = "ee4c23ca5c35d3091d550a63540811a3" +SRC_URI[sha256sum] = "b54d49d66a9d93c1ef9c72ca01264414cb2de177baac116c12d5cce0c380160c" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb b/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb new file mode 100644 index 00000000000..d77e0f3853e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb @@ -0,0 +1,3 @@ +inherit setuptools +require python-pyfirmata.inc + diff --git a/meta-python/recipes-devtools/python/python-pyflakes_0.7.3.bb b/meta-python/recipes-devtools/python/python-pyflakes_0.7.3.bb deleted file mode 100644 index ce48cd7323c..00000000000 --- a/meta-python/recipes-devtools/python/python-pyflakes_0.7.3.bb +++ /dev/null @@ -1,23 +0,0 @@ -# Imported from git://git.yoctoproject.org/meta-cloud-services - -SUMMARY = "passive checker of Python programs" -HOMEPAGE = "https://github.com/dreamhost/cliff" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://README.rst;md5=1815018ebbbfc8659a9df33681a0936e" - -SRCNAME = "pyflakes" - -SRC_URI = "https://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "ec94ac11cb110e6e72cca23c104b66b1" -SRC_URI[sha256sum] = "dbd2c940a1030a4f811afc1a04017a44011c0cb54f8f384b66aa624097d9b5e3" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += " \ - python-prettytable \ - python-cmd2 \ - python-pyparsing" diff --git a/meta-python/recipes-devtools/python/python-pyflakes_1.2.3.bb b/meta-python/recipes-devtools/python/python-pyflakes_1.2.3.bb new file mode 100644 index 00000000000..05e3413886c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyflakes_1.2.3.bb @@ -0,0 +1,14 @@ +SUMMARY = "passive checker of Python programs" +HOMEPAGE = "https://github.com/dreamhost/cliff" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.rst;md5=eb48916870306ef34a061cec727ccae5" + +SRC_URI[md5sum] = "995747589e97c75055cf5b4e1e031e0b" +SRC_URI[sha256sum] = "2e4a1b636d8809d8f0a69f341acf15b2e401a3221ede11be439911d23ce2139e" + +inherit pypi setuptools + +RDEPENDS_${PN} += " \ + python-prettytable \ + python-cmd2 \ + python-pyparsing" diff --git a/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch b/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch new file mode 100644 index 00000000000..f5870372a1a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch @@ -0,0 +1,88 @@ +From 1c1812def711803382cc28caea1f35fb7ef774b0 Mon Sep 17 00:00:00 2001 +From: Daniel Kahn Gillmor +Date: Tue, 26 Jan 2016 14:24:26 -0500 +Subject: [PATCH 1/5] reflect 2.1 reporting for key imports + +GnuPG 2.1 changes how it reports key imports. These changes should +make the pygpgme test suite compatible with GnuPG 2.1. + +See also: +https://lists.gnupg.org/pipermail/gnupg-devel/2016-January/030718.html + +Upstream-Status: Backport + +Signed-off-by: Catalin Enache +--- + tests/test_import.py | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/tests/test_import.py b/tests/test_import.py +index 10eb816..597eb47 100644 +--- a/tests/test_import.py ++++ b/tests/test_import.py +@@ -55,7 +55,7 @@ class ImportTestCase(GpgHomeTestCase): + ctx = gpgme.Context() + with self.keyfile('key1.sec') as fp: + result = ctx.import_(fp) +- self.assertEqual(result.considered, 1) ++ self.assertEqual(result.considered, 3) + self.assertEqual(result.no_user_id, 0) + self.assertEqual(result.imported, 1) + self.assertEqual(result.imported_rsa, 0) +@@ -64,18 +64,18 @@ class ImportTestCase(GpgHomeTestCase): + self.assertEqual(result.new_sub_keys, 0) + self.assertEqual(result.new_signatures, 0) + self.assertEqual(result.new_revocations, 0) +- self.assertEqual(result.secret_read, 1) +- self.assertEqual(result.secret_imported, 1) ++ self.assertEqual(result.secret_read, 3) ++ self.assertEqual(result.secret_imported, 2) + self.assertEqual(result.secret_unchanged, 0) + self.assertEqual(result.skipped_new_keys, 0) + self.assertEqual(result.not_imported, 0) + self.assertEqual(len(result.imports), 2) + self.assertEqual(result.imports[0], + ('E79A842DA34A1CA383F64A1546BB55F0885C65A4', +- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET)) ++ None, gpgme.IMPORT_NEW)) + self.assertEqual(result.imports[1], + ('E79A842DA34A1CA383F64A1546BB55F0885C65A4', +- None, gpgme.IMPORT_NEW)) ++ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET)) + # can we get the public key? + key = ctx.get_key('E79A842DA34A1CA383F64A1546BB55F0885C65A4') + # can we get the secret key? +@@ -102,17 +102,17 @@ class ImportTestCase(GpgHomeTestCase): + fp = BytesIO(b'\n'.join(keys)) + ctx = gpgme.Context() + result = ctx.import_(fp) +- self.assertEqual(result.considered, 3) ++ self.assertEqual(result.considered, 5) + self.assertEqual(result.no_user_id, 0) + self.assertEqual(result.imported, 2) +- self.assertEqual(result.imported_rsa, 1) ++ self.assertEqual(result.imported_rsa, 0) + self.assertEqual(result.unchanged, 0) + self.assertEqual(result.new_user_ids, 0) + self.assertEqual(result.new_sub_keys, 0) + self.assertEqual(result.new_signatures, 1) + self.assertEqual(result.new_revocations, 0) +- self.assertEqual(result.secret_read, 1) +- self.assertEqual(result.secret_imported, 1) ++ self.assertEqual(result.secret_read, 3) ++ self.assertEqual(result.secret_imported, 2) + self.assertEqual(result.secret_unchanged, 0) + self.assertEqual(result.skipped_new_keys, 0) + self.assertEqual(result.not_imported, 0) +@@ -122,10 +122,10 @@ class ImportTestCase(GpgHomeTestCase): + None, gpgme.IMPORT_NEW)) + self.assertEqual(result.imports[1], + ('E79A842DA34A1CA383F64A1546BB55F0885C65A4', +- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET)) ++ None, gpgme.IMPORT_SIG)) + self.assertEqual(result.imports[2], + ('E79A842DA34A1CA383F64A1546BB55F0885C65A4', +- None, gpgme.IMPORT_SIG)) ++ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET)) + self.assertEqual(result.imports[3], + ('93C2240D6B8AA10AB28F701D2CF46B7FC97E6B0F', diff --git a/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch b/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch new file mode 100644 index 00000000000..ccd941f7bbb --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch @@ -0,0 +1,50 @@ +From dc75482af095d667a4a92655c4e7eb312e80c42d Mon Sep 17 00:00:00 2001 +From: Daniel Kahn Gillmor +Date: Mon, 1 Feb 2016 19:25:12 -0500 +Subject: [PATCH 2/5] passphrase_cb is deprecated + +https://bugs.gnupg.org/gnupg/issue767 indicates that +gpgme_set_passphrase_cb is a deprecated corner of the API and that +developers using gpgme should really rely on the gpg-agent to handle +this stuff. This should actually simplify things for most +installations -- just strip out all passphrase handling from your +application entirely, relying on gpg to figure out how to find the +agent, and relying on the agent figuring out how to prompt the user +(if necessary). + +However, if a developer really wants to use the passphrase callback +approach, they'll have to use loopback pinentry. This sets up the +test suite to be able to make those tests. + +Upstream-Status: Backport + +Signed-off-by: Catalin Enache +--- + tests/util.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/tests/util.py b/tests/util.py +index cd803c2..86892ca 100644 +--- a/tests/util.py ++++ b/tests/util.py +@@ -28,7 +28,9 @@ keydir = os.path.join(os.path.dirname(__file__), 'keys') + + class GpgHomeTestCase(unittest.TestCase): + +- gpg_conf_contents = '' ++ gpg_conf_contents = 'pinentry-mode loopback' ++ gpg_agent_conf_contents = 'allow-loopback-pinentry' ++ + import_keys = [] + + def keyfile(self, key): +@@ -41,6 +43,10 @@ class GpgHomeTestCase(unittest.TestCase): + fp.write(self.gpg_conf_contents.encode('UTF-8')) + fp.close() + ++ fp = open(os.path.join(self._gpghome, 'gpg-agent.conf'), 'wb') ++ fp.write(self.gpg_agent_conf_contents.encode('UTF-8')) ++ fp.close() ++ + # import requested keys into the keyring + ctx = gpgme.Context() diff --git a/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch b/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch new file mode 100644 index 00000000000..462f4422869 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch @@ -0,0 +1,28 @@ +From 024fe219582143017b2f02bc924c0ed107b63619 Mon Sep 17 00:00:00 2001 +From: Daniel Kahn Gillmor +Date: Mon, 1 Feb 2016 19:27:59 -0500 +Subject: [PATCH 3/5] handle generic error when no passphrase callback present + +apparently gpg 2.1 returns ERR_GENERAL right now if the pinentry was +in loopback mode and no passphrase callback was supplied. Earlier +versions supplied ERR_BAD_PASSPHRASE. + +Upstream-Status: Backport + +Signed-off-by: Catalin Enache +--- + tests/test_passphrase.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_passphrase.py b/tests/test_passphrase.py +index 0a235e9..35b3c59 100644 +--- a/tests/test_passphrase.py ++++ b/tests/test_passphrase.py +@@ -41,7 +41,7 @@ class PassphraseTestCase(GpgHomeTestCase): + new_sigs = ctx.sign(plaintext, signature, gpgme.SIG_MODE_CLEAR) + except gpgme.GpgmeError as exc: + self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_GPGME) +- self.assertEqual(exc.args[1], gpgme.ERR_BAD_PASSPHRASE) ++ self.assertEqual(exc.args[1], gpgme.ERR_GENERAL) + else: + self.fail('gpgme.GpgmeError not raised') diff --git a/meta-python/recipes-devtools/python/python-pygpgme/run-ptest b/meta-python/recipes-devtools/python/python-pygpgme/run-ptest new file mode 100644 index 00000000000..ce2abb66a57 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pygpgme/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +GPG_AGENT_INFO= python test_all.py -v 2>&1 | sed -e '/\.\.\. ok/ s/^/PASS: /g' -e '/\.\.\. [ERROR|FAIL]/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g' diff --git a/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb b/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb new file mode 100644 index 00000000000..14e967db88a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb @@ -0,0 +1,26 @@ +SUMMARY = "A Python module for working with OpenPGP messages" +DESCRIPTION = "PyGPGME is a Python module that lets you sign, verify, \ + encrypt and decrypt messages using the OpenPGP format." +HOMEPAGE = "https://launchpad.net/pygpgme" + +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=6517bdc8f2416f27ab725d4702f7aac3" + +SRC_URI = "file://run-ptest \ + file://0001-reflect-2.1-reporting-for-key-imports.patch \ + file://0002-passphrase_cb-is-deprecated.patch \ + file://0003-handle-generic-error-when-no-passphrase-callback-pre.patch \ +" + +SRC_URI[md5sum] = "d38355af73f0352cde3d410b25f34fd0" +SRC_URI[sha256sum] = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1" + +DEPENDS += "gpgme" +RDEPENDS_${PN} += "gnupg" + +inherit pypi setuptools ptest + +do_install_ptest(){ + install ${S}/test_all.py ${D}${PTEST_PATH} + cp -r ${S}/tests ${D}${PTEST_PATH} +} diff --git a/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb b/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb new file mode 100644 index 00000000000..02d4f54e15a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "Hamcrest framework for matcher objects" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6df1318c6071dd1707f5e3b6c11f24f" + +PYPI_PACKAGE = "PyHamcrest" + +SRC_URI[md5sum] = "8b833a3fa30197455df79424f30c8c3f" +SRC_URI[sha256sum] = "8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd" + +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-pyinotify.inc b/meta-python/recipes-devtools/python/python-pyinotify.inc new file mode 100644 index 00000000000..0168f1a8706 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyinotify.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Python pyinotify: Linux filesystem events monitoring" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=ab173cade7965b411528464589a08382" + +RDEPENDS_${PN} += "python-threading python-io python-subprocess python-misc python-shell" + +SRC_URI[md5sum] = "8e580fa1ff3971f94a6f81672b76c406" +SRC_URI[sha256sum] = "9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb b/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb new file mode 100644 index 00000000000..d1f84c3ca80 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pyinotify.inc diff --git a/meta-python/recipes-devtools/python/python-pylint.inc b/meta-python/recipes-devtools/python/python-pylint.inc new file mode 100644 index 00000000000..c55bce6f20b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pylint.inc @@ -0,0 +1,32 @@ +SUMMARY="Pylint is a Python source code analyzer" +HOMEPAGE= "http://www.pylint.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4" + +SRC_URI[md5sum] = "98a1ee985a3ebc876a20eb7577dbab68" +SRC_URI[sha256sum] = "1f65b3815c3bf7524b845711d54c4242e4057dd93826586620239ecdfe591fb1" + +inherit pypi + +DEPENDS += "${PYTHON_PN}-pytest-runner-native" + +RDEPENDS_${PN} += "${PYTHON_PN}-astroid \ + ${PYTHON_PN}-isort \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-difflib \ + ${PYTHON_PN}-netserver \ + " + +do_install_append(){ + rm ${D}${bindir}/pylint + cat >> ${D}${bindir}/pylint <sequence = orig->sequence; - return dupe; - } -+#endif - - static char crypto_CRL_get_revoked_doc[] = "\n\ - Return revoked portion of the CRL structure (by value\n\ diff --git a/meta-python/recipes-devtools/python/python-pyopenssl.inc b/meta-python/recipes-devtools/python/python-pyopenssl.inc new file mode 100644 index 00000000000..1bf8324c88c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyopenssl.inc @@ -0,0 +1,23 @@ +SUMMARY = "Simple Python wrapper around the OpenSSL library" +HOMEPAGE = "https://pyopenssl.org/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +DEPENDS += "openssl ${PYTHON_PN}-cryptography" + +SRC_URI[md5sum] = "09dcd307b8d2068f9dd5aaa3a3a88992" +SRC_URI[sha256sum] = "29630b9064a82e04d8242ea01d7c93d70ec320f5e3ed48e95fcabc6b1d0f6c76" + +PYPI_PACKAGE = "pyOpenSSL" + +PACKAGES =+ "${PN}-tests" +FILES_${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/OpenSSL/test" + +RDEPENDS_${PN}_class-target = " \ + ${PYTHON_PN}-cryptography \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-threading \ +" +RDEPENDS_${PN}-tests = "${PN}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pyopenssl_0.13.bb b/meta-python/recipes-devtools/python/python-pyopenssl_0.13.bb deleted file mode 100644 index cf9d73e6363..00000000000 --- a/meta-python/recipes-devtools/python/python-pyopenssl_0.13.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Simple Python wrapper around the OpenSSL library" -SECTION = "devel/python" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - -SRCNAME = "pyOpenSSL" - -DEPENDS = "openssl" -PE = "1" - -SRC_URI = "http://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-${PV}.tar.gz \ - file://x509_revoked_dup.patch" -SRC_URI[md5sum] = "767bca18a71178ca353dff9e10941929" -SRC_URI[sha256sum] = "21e12b03abaa0e04ecc8cd9c251598f71bae11c9f385304234e4ea5618c6163b" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit distutils - -PACKAGES =+ "${PN}-tests" -FILES_${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/OpenSSL/test" - -RDEPENDS_${PN} = "python-threading" -RDEPENDS_${PN}-tests = "${PN}" diff --git a/meta-python/recipes-devtools/python/python-pyopenssl_17.3.0.bb b/meta-python/recipes-devtools/python/python-pyopenssl_17.3.0.bb new file mode 100644 index 00000000000..b7d51461300 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyopenssl_17.3.0.bb @@ -0,0 +1,2 @@ +require python-pyopenssl.inc +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-pyparsing.inc b/meta-python/recipes-devtools/python/python-pyparsing.inc new file mode 100644 index 00000000000..19f6d55f99a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyparsing.inc @@ -0,0 +1,21 @@ +SUMMARY = "Python parsing module" +HOMEPAGE = "http://pyparsing.wikispaces.com/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fb46329938e6bc829b256e37d5c1e31a" + +SRC_URI[md5sum] = "0214e42d63af850256962b6744c948d9" +SRC_URI[sha256sum] = "0832bcf47acd283788593e7a0f542407bd9550a55a8a8435214a1960e04bcb04" + +inherit pypi + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-threading \ +" + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-pyparsing_2.0.1.bb b/meta-python/recipes-devtools/python/python-pyparsing_2.0.1.bb deleted file mode 100644 index 06d6d40143a..00000000000 --- a/meta-python/recipes-devtools/python/python-pyparsing_2.0.1.bb +++ /dev/null @@ -1,18 +0,0 @@ -# Imported from git://git.yoctoproject.org/meta-cloud-services - -SUMMARY = "Python parsing module" -HOMEPAGE = "http://pyparsing.wikispaces.com/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=fb46329938e6bc829b256e37d5c1e31a" - -SRCNAME = "pyparsing" - -SRC_URI = "http://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.zip" - -SRC_URI[md5sum] = "dc7036a6f1ab01c3baed3d97af8d77c0" -SRC_URI[sha256sum] = "7e1766ee747cca79fe172b670fd53ef58fc55d2b1804fd6c66d857abb62d143a" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit distutils diff --git a/meta-python/recipes-devtools/python/python-pyparsing_2.2.0.bb b/meta-python/recipes-devtools/python/python-pyparsing_2.2.0.bb new file mode 100644 index 00000000000..90217f3c3ec --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyparsing_2.2.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pyparsing.inc diff --git a/meta-python/recipes-devtools/python/python-pyrex-native_0.9.9.bb b/meta-python/recipes-devtools/python/python-pyrex-native_0.9.9.bb new file mode 100644 index 00000000000..e8ef1aa12b3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyrex-native_0.9.9.bb @@ -0,0 +1,5 @@ +require python-pyrex_${PV}.bb +inherit native pythonnative +DEPENDS = "python-native" +RDEPENDS_${PN} = "" +PR = "r3" diff --git a/meta-python/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch b/meta-python/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch new file mode 100644 index 00000000000..c58c3280e21 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch @@ -0,0 +1,15 @@ +Upstream-Status: Pending + +Index: Pyrex-0.9.8.4/Pyrex/Distutils/extension.py +=================================================================== +--- Pyrex-0.9.8.4.orig/Pyrex/Distutils/extension.py ++++ Pyrex-0.9.8.4/Pyrex/Distutils/extension.py +@@ -15,7 +15,7 @@ except ImportError: + warnings = None + + class Extension(_Extension.Extension): +- _Extension.Extension.__doc__ + \ ++ _Extension.Extension.__doc__ or "" + \ + """pyrex_include_dirs : [string] + list of directories to search for Pyrex header files (.pxd) (in + Unix form for portability) diff --git a/meta-python/recipes-devtools/python/python-pyrex_0.9.9.bb b/meta-python/recipes-devtools/python/python-pyrex_0.9.9.bb new file mode 100644 index 00000000000..c4dd2e69b0c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyrex_0.9.9.bb @@ -0,0 +1,22 @@ +SUMMARY = "Language for writing Python extension modules" +DESCRIPTION = "Pyrex is a language specially designed for writing Python extension modules. \ +It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \ +and the messy, low-level world of C." +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=771d472f53f933033f57eeee7808e5bd" +SRCNAME = "Pyrex" +PR = "r4" + +SRC_URI = "\ + http://www.cosc.canterbury.ac.nz/greg.ewing/python/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \ + file://pyrex-fix-optimized-mode.patch \ +" + +SRC_URI[md5sum] = "515dee67d15d4393841e2d60e8341947" +SRC_URI[sha256sum] = "5f87df06831d0b3412eb4bc9d3fc2ee7bfae1b913d7da8c23ab2bf5699fb6b50" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +FILES_${PN} += "${datadir}${base_libdir}/${PYTHON_DIR}/site-packages/Pyrex/Compiler/Lexicon.pickle" diff --git a/meta-python/recipes-devtools/python/python-pyroute2.inc b/meta-python/recipes-devtools/python/python-pyroute2.inc new file mode 100644 index 00000000000..da1d4cd9b47 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyroute2.inc @@ -0,0 +1,26 @@ +SUMMARY = "A pure Python netlink and Linux network configuration library" +LICENSE = "GPLv2 & Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE.Apache.v2;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI[md5sum] = "733adb362b6603c7269c0b3df3045a55" +SRC_URI[sha256sum] = "5cdf44656cf623369f0cbf183d9d14a1a50ebdffbd50d4e30ffda62c0a05d7b3" + +SRC_URI += "file://import-simplejson-as-json.patch" + +FILESEXTRAPATHS_prepend := "${THISDIR}/python-pyroute2:" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-simplejson \ + ${PYTHON_PN}-multiprocessing \ + ${PYTHON_PN}-io ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-textutils \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-netclient \ +" diff --git a/meta-python/recipes-devtools/python/python-pyroute2/import-simplejson-as-json.patch b/meta-python/recipes-devtools/python/python-pyroute2/import-simplejson-as-json.patch new file mode 100644 index 00000000000..d73da07d25f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyroute2/import-simplejson-as-json.patch @@ -0,0 +1,26 @@ +Upstream-Status: Inappropriate [wrong dependency] + +Subject: [PATCH] import simplejson as json + +At runtime python-pyroute2 tries to import json, but the module is not +available, import simplejson as json solve the issue. + +Signed-off-by: Fabio Berton +--- + pyroute2/netlink/rtnl/ifinfmsg.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pyroute2/netlink/rtnl/ifinfmsg.py b/pyroute2/netlink/rtnl/ifinfmsg.py +index 4f14f25..55643eb 100644 +--- a/pyroute2/netlink/rtnl/ifinfmsg.py ++++ b/pyroute2/netlink/rtnl/ifinfmsg.py +@@ -1,5 +1,5 @@ + import os +-import json ++import simplejson as json + import errno + import select + import struct +-- +2.1.4 + diff --git a/meta-python/recipes-devtools/python/python-pyroute2_0.3.22.bb b/meta-python/recipes-devtools/python/python-pyroute2_0.3.22.bb new file mode 100644 index 00000000000..7b9c8e04457 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyroute2_0.3.22.bb @@ -0,0 +1,2 @@ +require python-pyroute2.inc +inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-pyserial.inc b/meta-python/recipes-devtools/python/python-pyserial.inc new file mode 100644 index 00000000000..99c6fc42c4d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyserial.inc @@ -0,0 +1,27 @@ +SUMMARY = "Serial Port Support for Python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d476d94926db6e0008a5b3860d1f5c0d" + +# FIXME might stop packaging serialwin32 and serialjava files + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-fcntl \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-threading \ +" + +SRC_URI[md5sum] = "ed6183b15519a0ae96675e9c3330c69b" +SRC_URI[sha256sum] = "6e2d401fdee0eab996cf734e67773a0143b932772ca8b42451440cfed942c627" + +inherit pypi + +do_install_append() { + # We don't support jpython now. + if [ -e ${D}${PYTHON_SITEPACKAGES_DIR}/serial/serialjava.py ]; then + rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/serial/serialjava.py + rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/serial/serialjava.pyc + fi +} diff --git a/meta-python/recipes-devtools/python/python-pyserial_2.4.bb b/meta-python/recipes-devtools/python/python-pyserial_2.4.bb deleted file mode 100644 index 2263b2ccc07..00000000000 --- a/meta-python/recipes-devtools/python/python-pyserial_2.4.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Serial Port Support for Python" -SECTION = "devel/python" -LICENSE = "PSF" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7424386ffe323e815ee62ee9ad591dd8" -SRCNAME = "pyserial" -PR = "ml4" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -# FIXME might stop packaging serialwin32 and serialjava files - -RDEPENDS_${PN} = "\ - python-fcntl \ - python-io \ - python-stringold \ -" - -SRC_URI[md5sum] = "eec19df59fd75ba5a136992897f8e468" -SRC_URI[sha256sum] = "6b6a9e3d2fd5978c92c843e0109918a4bcac481eecae316254481c0e0f7e73c8" diff --git a/meta-python/recipes-devtools/python/python-pyserial_3.4.bb b/meta-python/recipes-devtools/python/python-pyserial_3.4.bb new file mode 100644 index 00000000000..91a0f26ac38 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyserial_3.4.bb @@ -0,0 +1,4 @@ +inherit setuptools +require python-pyserial.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-importlib" diff --git a/meta-python/recipes-devtools/python/python-pysmi_0.1.2.bb b/meta-python/recipes-devtools/python/python-pysmi_0.1.2.bb new file mode 100644 index 00000000000..33a387ac7df --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pysmi_0.1.2.bb @@ -0,0 +1,16 @@ +SUMMARY = "SNMP SMI/MIB Parser" +DESCRIPTION = "A pure-Python implementation of SNMP/SMI MIB \ + parsing and conversion library. Can produce PySNMP MIB modules. \ +" +HOMEPAGE = "https://pypi.python.org/pypi/pysmi" +SECTION = "devel/python" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=d8b1bbadd635f187dee74d999a8c67b8" + +SRC_URI[md5sum] = "f8754e9ed75698cc16b40f125df85b12" +SRC_URI[sha256sum] = "e0912180fc6faa9c264df78f97e7c451f77f84f5bd840098d2ce7b1bf70082bc" + +inherit pypi setuptools + +RDEPENDS_${PN} = "python-ply" diff --git a/meta-python/recipes-devtools/python/python-pysnmp_4.3.5.bb b/meta-python/recipes-devtools/python/python-pysnmp_4.3.5.bb new file mode 100644 index 00000000000..0b38d58e4a9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pysnmp_4.3.5.bb @@ -0,0 +1,25 @@ +SUMMARY = "A pure-Python SNMPv1/v2c/v3 library" +DESCRIPTION = "SNMP v1/v2c/v3 engine and apps written in pure-Python. \ + Supports Manager/Agent/Proxy roles, scriptable MIBs, asynchronous \ + operation (asyncio, twisted, asyncore) and multiple transports.\ +" +HOMEPAGE = "https://pypi.python.org/pypi/pysnmp" +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=280606d9c18f200e03e0c247ac61475a" + +SRCNAME = "pysnmp" + +SRC_URI = "https://files.pythonhosted.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" + +SRC_URI[md5sum] = "387aaa23c168ccc0b59775cfdf519fc0" +SRC_URI[sha256sum] = "38253fe95cea33f352fb36e85f3c2874043401724300c4888df74835161169d2" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools + +RDEPENDS_${PN} += "python-pycrypto \ + python-pyasn1 \ + python-pysmi \ +" diff --git a/meta-python/recipes-devtools/python/python-pysocks.inc b/meta-python/recipes-devtools/python/python-pysocks.inc new file mode 100644 index 00000000000..cf9509a5543 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pysocks.inc @@ -0,0 +1,15 @@ +DESCRIPTION = "A Python SOCKS client module" +HOMEPAGE = "http://python-requests.org" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1d457bcffb9661b45f799d4efee72f16" + +SRC_URI[md5sum] = "07007ec7ed46292dab06013f2e3af365" +SRC_URI[sha256sum] = "d00329f27efa157db7efe3ca26fcd69033cd61f83822461ee3f8a353b48e33cf" + +PYPI_PACKAGE = "PySocks" + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-io \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pysocks_1.6.7.bb b/meta-python/recipes-devtools/python/python-pysocks_1.6.7.bb new file mode 100644 index 00000000000..8a24e4c49a0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pysocks_1.6.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-pysocks.inc diff --git a/meta-python/recipes-devtools/python/python-pysqlite.inc b/meta-python/recipes-devtools/python/python-pysqlite.inc new file mode 100644 index 00000000000..884556570d2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pysqlite.inc @@ -0,0 +1,18 @@ +DESCRIPTION = "DB-API 2.0 interface for SQLite 3.x" +HOMEPAGE = "http://github.com/ghaering/pysqlite" +LICENSE = "Zlib" +LIC_FILES_CHKSUM = "file://LICENSE;md5=28ad4f115e06c88bd737372a453369d8" + +SRC_URI[md5sum] = "033f17b8644577715aee55e8832ac9fc" +SRC_URI[sha256sum] = "17d3335863e8cf8392eea71add33dab3f96d060666fe68ab7382469d307f4490" + +inherit pypi + +DEPENDS += "${PYTHON_PN}-pip" + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-datetime \ + sqlite3 \ +" + +FILES_${PN}-doc += "${datadir}" diff --git a/meta-python/recipes-devtools/python/python-pysqlite_2.8.3.bb b/meta-python/recipes-devtools/python/python-pysqlite_2.8.3.bb new file mode 100644 index 00000000000..95938f2b687 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pysqlite_2.8.3.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pysqlite.inc diff --git a/meta-python/recipes-devtools/python/python-pytest-runner.inc b/meta-python/recipes-devtools/python/python-pytest-runner.inc new file mode 100644 index 00000000000..c173a183eed --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pytest-runner.inc @@ -0,0 +1,16 @@ +SUMMARY = "Invoke py.test as distutils command with dependency resolution" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e38b971c2b4c33b978d1b9c9ece9ae63" + +SRC_URI[md5sum] = "a8dd57c80cde37a587dd8c37740c1ab1" +SRC_URI[sha256sum] = "5c9093e7a18780409d9a389f20366f2fd39acfb1db61545fdb2e90cdbd0bcae4" + +inherit pypi + +DEPENDS += " \ + ${PYTHON_PN}-setuptools-scm-native" + +RDEPENDS_${PN} = "${PYTHON_PN}-py ${PYTHON_PN}-setuptools ${PYTHON_PN}-argparse ${PYTHON_PN}-debugger ${PYTHON_PN}-json \ + ${PYTHON_PN}-io" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pytest-runner_2.12.1.bb b/meta-python/recipes-devtools/python/python-pytest-runner_2.12.1.bb new file mode 100644 index 00000000000..0a5055cb37d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pytest-runner_2.12.1.bb @@ -0,0 +1,5 @@ +inherit setuptools +require python-pytest-runner.inc + +# Dependency only exists for python2 +RDEPENDS_${PN} += "python-compiler" diff --git a/meta-python/recipes-devtools/python/python-pytest.inc b/meta-python/recipes-devtools/python/python-pytest.inc new file mode 100644 index 00000000000..a2be36b8b08 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pytest.inc @@ -0,0 +1,22 @@ +SUMMARY = "Simple powerful teting with python" +HOMEPAGE = "http://pytest.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c39b24965f4aef64222cb35de9d47cc4" + +SRC_URI[md5sum] = "698f8929e095a1c37876b5567943be79" +SRC_URI[sha256sum] = "27fa6617efc2869d3e969a3e75ec060375bfb28831ade8b5cdd68da3a741dc3c" + +SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch \ + file://pytest_version_fix.patch " + +RDEPENDS_${PN}_class-target += " \ + ${PYTHON_PN}-argparse \ + ${PYTHON_PN}-debugger \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-py \ + ${PYTHON_PN}-setuptools \ +" + +FILESEXTRAPATHS_prepend := "${THISDIR}/python-pytest:" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch b/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch new file mode 100644 index 00000000000..e283b17c455 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch @@ -0,0 +1,29 @@ +From e2d81009c790b4ebeced8408b6bae78060cabcaf Mon Sep 17 00:00:00 2001 +From: Derek Straka +Date: Wed, 5 Jul 2017 09:35:51 -0400 +Subject: [PATCH 1/1] setup.py: remove the setup_requires for setuptools-scm + +The setup_requires argument forces the download of the egg file for setuptools-scm +during the do_compile phase. This download is incompatible with the typical fetch +and mirror structure. The only usage of scm is the generation of the _version.py +file and in the release tarball it is already correctly created + +Signed-off-by: Derek Straka +--- + setup.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 751868c..ef6ebf1 100644 +--- a/setup.py ++++ b/setup.py +@@ -71,7 +71,6 @@ def main(): + keywords="test unittest", + cmdclass={'test': PyTest}, + # the following should be enabled for release +- setup_requires=['setuptools-scm'], + install_requires=install_requires, + extras_require=extras_require, + packages=['_pytest', '_pytest.assertion', '_pytest._code', '_pytest.vendored_packages'], +-- +2.7.4 diff --git a/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch b/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch new file mode 100644 index 00000000000..908f862b528 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch @@ -0,0 +1,51 @@ +Upstream-Status: Inappropriate (OE specific) + +python-pytest: remove fetch during do_compile phase +commit: c974fbf9ebf185552ab65301e07af44f36517abf + +introduced an issue by making the version 0.0.0 +this fixes that + +Signed-off-by: Armin Kuster + +Index: pytest-3.2.2/setup.py +=================================================================== +--- pytest-3.2.2.orig/setup.py ++++ pytest-3.2.2/setup.py +@@ -1,5 +1,6 @@ + import os + import sys ++import re + import setuptools + import pkg_resources + from setuptools import setup, Command +@@ -22,6 +23,18 @@ classifiers = [ + with open('README.rst') as fd: + long_description = fd.read() + ++def read(*names, **kwargs): ++ with open(os.path.join( *names), 'r') as fp: ++ return fp.read() ++ ++def find_version(*file_paths): ++ version_file = read(*file_paths) ++ version_match = re.search(r"^version = ['\']([^'\"]*)['\']", ++ version_file, re.M) ++ ++ if version_match: ++ return version_match.group(1) ++ raise RuntimeError("Unable to find version string.") + + def has_environment_marker_support(): + """ +@@ -59,9 +72,7 @@ def main(): + name='pytest', + description='pytest: simple powerful testing with Python', + long_description=long_description, +- use_scm_version={ +- 'write_to': '_pytest/_version.py', +- }, ++ version=find_version("_pytest", "_version.py"), + url='http://pytest.org', + license='MIT license', + platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], diff --git a/meta-python/recipes-devtools/python/python-pytest_3.2.3.bb b/meta-python/recipes-devtools/python/python-pytest_3.2.3.bb new file mode 100644 index 00000000000..d322f09b24f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pytest_3.2.3.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-pytest.inc diff --git a/meta-python/recipes-devtools/python/python-pytz.inc b/meta-python/recipes-devtools/python/python-pytz.inc new file mode 100644 index 00000000000..026489a4aad --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pytz.inc @@ -0,0 +1,18 @@ +SUMMARY = "World timezone definitions, modern and historical" +HOMEPAGE = "http://pythonhosted.org/pytz" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=39ea92752a35cf67d8a885d8e3af3c69" + +inherit pypi +PYPI_PACKAGE_EXT = "zip" + +SRC_URI[md5sum] = "7006b56c0d68a162d9fe57d4249c3171" +SRC_URI[sha256sum] = "fae4cffc040921b8a2d60c6cf0b5d662c1190fe54d718271db4eb17d44a185b7" + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-threading \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pytz_2014.7.bb b/meta-python/recipes-devtools/python/python-pytz_2014.7.bb deleted file mode 100644 index 92d07961c5a..00000000000 --- a/meta-python/recipes-devtools/python/python-pytz_2014.7.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "World timezone definitions, modern and historical" -HOMEPAGE = " http://pythonhosted.org/pytz" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=22b38951eb857cf285a4560a914b7cd6" -SRCNAME = "pytz" - -SRC_URI = "https://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} = "\ - python-core \ - python-datetime \ -" - -SRC_URI[md5sum] = "8940ddae309e44b593c75a9e05dd2a0b" -SRC_URI[sha256sum] = "bfc2bd00147e5ecf75399f4a94cb84cc00ce9b511a15f9958bb6c85a455f76eb" diff --git a/meta-python/recipes-devtools/python/python-pytz_2017.3.bb b/meta-python/recipes-devtools/python/python-pytz_2017.3.bb new file mode 100755 index 00000000000..f2ffc596f8a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pytz_2017.3.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pytz.inc diff --git a/meta-python/recipes-devtools/python/python-pyudev.inc b/meta-python/recipes-devtools/python/python-pyudev.inc new file mode 100644 index 00000000000..ab4c5fd7d59 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyudev.inc @@ -0,0 +1,19 @@ +SUMMARY = "A libudev binding" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" + +SRC_URI[md5sum] = "cf4d9db7d772622144ca1be6b5d9353b" +SRC_URI[sha256sum] = "094b7a100150114748aaa3b70663485dd360457a709bfaaafe5a977371033f2b" + +do_configure_prepend() { + sed -i "/import pyudev/d" ${S}/setup.py + sed -i "s/str(pyudev.__version__)/'${PV}'/g" ${S}/setup.py +} + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-six \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-python/recipes-devtools/python/python-pyudev_0.16.1.bb b/meta-python/recipes-devtools/python/python-pyudev_0.16.1.bb deleted file mode 100644 index 964b5f92b59..00000000000 --- a/meta-python/recipes-devtools/python/python-pyudev_0.16.1.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "A libudev binding" -HOMEPAGE = "http://pypi.python.org/pypi/pyudev" -SECTION = "devel/python" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" - -SRCNAME = "pyudev" -SRC_URI = "http://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" -SRC_URI[md5sum] = "4034de584b6d9efcbfc590a047c63285" -SRC_URI[sha256sum] = "765d1c14bd9bd031f64e2612225621984cb2bbb8cbc0c03538bcc4c735ff1c95" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -do_configure_prepend() { - sed -i "/import pyudev/d" ${S}/setup.py - sed -i "s/str(pyudev.__version__)/'${PV}'/g" ${S}/setup.py -} - -RDEPENDS_${PN} = "\ - python-ctypes \ - python-subprocess \ - python-misc \ -" diff --git a/meta-python/recipes-devtools/python/python-pyudev_0.21.0.bb b/meta-python/recipes-devtools/python/python-pyudev_0.21.0.bb new file mode 100644 index 00000000000..32573b7a0d8 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyudev_0.21.0.bb @@ -0,0 +1,8 @@ +require python-pyudev.inc + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-contextlib \ +" + +inherit pypi setuptools + diff --git a/meta-python/recipes-devtools/python/python-pyusb.inc b/meta-python/recipes-devtools/python/python-pyusb.inc new file mode 100644 index 00000000000..30bbe85a918 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyusb.inc @@ -0,0 +1,10 @@ +SUMMARY = "PyUSB provides USB access on the Python language" +HOMEPAGE = "http://pyusb.sourceforge.net/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=51691ed11cc2c7ae93e383f60ed49b0f" +DEPENDS += "libusb1" + +SRC_URI[md5sum] = "862b56452c64948c787ad8ef9498590b" +SRC_URI[sha256sum] = "4e9b72cc4a4205ca64fbf1f3fff39a335512166c151ad103e55c8223ac147362" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-pyusb_1.0.0a2.bb b/meta-python/recipes-devtools/python/python-pyusb_1.0.0a2.bb deleted file mode 100644 index 360f2132214..00000000000 --- a/meta-python/recipes-devtools/python/python-pyusb_1.0.0a2.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "PyUSB provides USB access on the Python language" -HOMEPAGE = "http://pyusb.sourceforge.net/" -SECTION = "devel/python" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a53a9c39efcfb812e2464af14afab013" -DEPENDS = "libusb1" -PR = "r1" - -SRC_URI = "\ - ${SOURCEFORGE_MIRROR}/pyusb/${SRCNAME}-${PV}.tar.gz \ -" -SRC_URI[md5sum] = "9136b3dc019272c62a5b6d4eb624f89f" -SRC_URI[sha256sum] = "dacbf7d568c0bb09a974d56da66d165351f1ba3c4d5169ab5b734266623e1736" - -SRCNAME = "pyusb" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit distutils diff --git a/meta-python/recipes-devtools/python/python-pyusb_1.0.2.bb b/meta-python/recipes-devtools/python/python-pyusb_1.0.2.bb new file mode 100644 index 00000000000..99a795b225f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyusb_1.0.2.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-pyusb.inc diff --git a/meta-python/recipes-devtools/python/python-pyyaml.inc b/meta-python/recipes-devtools/python/python-pyyaml.inc new file mode 100644 index 00000000000..a3cf677f4f9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyyaml.inc @@ -0,0 +1,14 @@ +SUMMARY = "Python support for YAML" +HOMEPAGE = "http://www.pyyaml.org" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17" +DEPENDS = "libyaml ${PYTHON_PN}-cython-native ${PYTHON_PN}" + +PYPI_PACKAGE = "PyYAML" +inherit pypi + +SRC_URI[md5sum] = "4c129761b661d181ebf7ff4eb2d79950" +SRC_URI[sha256sum] = "592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-pyyaml/setup.py b/meta-python/recipes-devtools/python/python-pyyaml/setup.py deleted file mode 100644 index fb649834194..00000000000 --- a/meta-python/recipes-devtools/python/python-pyyaml/setup.py +++ /dev/null @@ -1,64 +0,0 @@ -NAME = 'PyYAML' -VERSION = '3.06' -DESCRIPTION = "YAML parser and emitter for Python" -LONG_DESCRIPTION = """\ -YAML is a data serialization format designed for human readability and -interaction with scripting languages. PyYAML is a YAML parser and -emitter for Python. - -PyYAML features a complete YAML 1.1 parser, Unicode support, pickle -support, capable extension API, and sensible error messages. PyYAML -supports standard YAML tags and provides Python-specific tags that allow -to represent an arbitrary Python object. - -PyYAML is applicable for a broad range of tasks from complex -configuration files to object serialization and persistance.""" -AUTHOR = "Kirill Simonov" -AUTHOR_EMAIL = 'xi@resolvent.net' -LICENSE = "MIT" -PLATFORMS = "Any" -URL = "http://pyyaml.org/wiki/PyYAML" -DOWNLOAD_URL = "http://pyyaml.org/download/pyyaml/%s-%s.tar.gz" % (NAME, VERSION) -CLASSIFIERS = [ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", - "Operating System :: OS Independent", - "Programming Language :: Python", - "Topic :: Software Development :: Libraries :: Python Modules", - "Topic :: Text Processing :: Markup", -] - -from distutils.core import setup -from distutils.extension import Extension -from Cython.Distutils import build_ext - -import sys, os.path - - -if __name__ == '__main__': - - setup( - name=NAME, - version=VERSION, - description=DESCRIPTION, - long_description=LONG_DESCRIPTION, - author=AUTHOR, - author_email=AUTHOR_EMAIL, - license=LICENSE, - platforms=PLATFORMS, - url=URL, - download_url=DOWNLOAD_URL, - classifiers=CLASSIFIERS, - - package_dir={'': 'lib'}, - packages=['yaml'], - - ext_modules = [ - Extension( "_yaml", ["ext/_yaml.pyx"], libraries = ["yaml"] ) - ], - - cmdclass={ - 'build_ext': build_ext, - }, - ) diff --git a/meta-python/recipes-devtools/python/python-pyyaml_3.10.bb b/meta-python/recipes-devtools/python/python-pyyaml_3.10.bb deleted file mode 100644 index 7f20e8b31ea..00000000000 --- a/meta-python/recipes-devtools/python/python-pyyaml_3.10.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Python support for YAML" -HOMEPAGE = "http://www.pyyaml.org" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17" -DEPENDS = "libyaml python-cython-native" - -SRC_URI = "http://pyyaml.org/download/pyyaml/PyYAML-${PV}.tar.gz \ - file://setup.py \ -" - -SRC_URI[md5sum] = "74c94a383886519e9e7b3dd1ee540247" -SRC_URI[sha256sum] = "e713da45c96ca53a3a8b48140d4120374db622df16ab71759c9ceb5b8d46fe7c" - -S = "${WORKDIR}/PyYAML-${PV}" - -inherit distutils - -do_configure_prepend() { - # upstream setup.py overcomplicated, use ours - install -m 0644 ${WORKDIR}/setup.py ${S} -} - -BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-pyyaml_3.12.bb b/meta-python/recipes-devtools/python/python-pyyaml_3.12.bb new file mode 100644 index 00000000000..5a4c92d88fd --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyyaml_3.12.bb @@ -0,0 +1,2 @@ +require python-pyyaml.inc +inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-pyzmq_14.5.0.bb b/meta-python/recipes-devtools/python/python-pyzmq_14.5.0.bb deleted file mode 100644 index 626e29d9606..00000000000 --- a/meta-python/recipes-devtools/python/python-pyzmq_14.5.0.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Pyzmq provides Zero message queue access for the Python language" -HOMEPAGE = "http://zeromq.org/bindings:python" -SECTION = "devel/python" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e" -DEPENDS = "zeromq" - -SRC_URI = "https://pypi.python.org/packages/source/p/pyzmq/pyzmq-${PV}.tar.gz \ - file://club-rpath-out.patch \ -" -SRC_URI[md5sum] = "8d3351a8ca2ca2a272a3f96bcb963e41" -SRC_URI[sha256sum] = "5d6e045634456cf5496f50871fd3e3a5ede2b90433284dbfe985bb67c97f77bd" - -S = "${WORKDIR}/pyzmq-${PV}" - -inherit setuptools pkgconfig - -FILES_${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/zmq/backend/cython/.debug" - -do_compile_prepend() { - echo [global] > ${S}/setup.cfg - echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg - echo have_sys_un_h = True >> ${S}/setup.cfg - echo skip_check_zmq = True >> ${S}/setup.cfg - echo libzmq_extension = False >> ${S}/setup.cfg - echo no_libzmq_extension = True >> ${S}/setup.cfg -} diff --git a/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb b/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb new file mode 100644 index 00000000000..b5baf82df1a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "Pyzmq provides Zero message queue access for the Python language" +HOMEPAGE = "http://zeromq.org/bindings:python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e" +DEPENDS = "zeromq" + +SRC_URI = "file://club-rpath-out.patch" +SRC_URI[md5sum] = "87e3abb33af5794db5ae85c667bbf324" +SRC_URI[sha256sum] = "77994f80360488e7153e64e5959dc5471531d1648e3a4bff14a714d074a38cc2" + +inherit pypi setuptools pkgconfig + +RDEPENDS_${PN} += "python-multiprocessing" + +FILES_${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/zmq/backend/cython/.debug" + +do_compile_prepend() { + echo [global] > ${S}/setup.cfg + echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg + echo have_sys_un_h = True >> ${S}/setup.cfg + echo skip_check_zmq = True >> ${S}/setup.cfg + echo libzmq_extension = False >> ${S}/setup.cfg + echo no_libzmq_extension = True >> ${S}/setup.cfg +} diff --git a/meta-python/recipes-devtools/python/python-redis.inc b/meta-python/recipes-devtools/python/python-redis.inc new file mode 100644 index 00000000000..571bb084a1b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-redis.inc @@ -0,0 +1,8 @@ +SUMMARY = "Python client for Redis key-value store" +DESCRIPTION = "The Python interface to the Redis key-value store." +HOMEPAGE = "http://github.com/andymccurdy/redis-py" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=51d9ad56299ab60ba7be65a621004f27" + +SRC_URI[md5sum] = "048348d8cfe0b5d0bba2f4d835005c3b" +SRC_URI[sha256sum] = "a22ca993cea2962dbb588f9f30d0015ac4afcc45bee27d3978c0dbe9e97c6c0f" diff --git a/meta-python/recipes-devtools/python/python-redis_2.10.6.bb b/meta-python/recipes-devtools/python/python-redis_2.10.6.bb new file mode 100644 index 00000000000..6c3ca8516c4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-redis_2.10.6.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-redis.inc diff --git a/meta-python/recipes-devtools/python/python-requests.inc b/meta-python/recipes-devtools/python/python-requests.inc new file mode 100644 index 00000000000..5d6dca5d3ad --- /dev/null +++ b/meta-python/recipes-devtools/python/python-requests.inc @@ -0,0 +1,24 @@ +DESCRIPTION = "Python HTTP for Humans." +HOMEPAGE = "http://python-requests.org" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=979d6a23b143e13ea0e5e3aa81248820" + +SRC_URI[md5sum] = "081412b2ef79bdc48229891af13f4d82" +SRC_URI[sha256sum] = "9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e" + +inherit pypi + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-ndg-httpsclient \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-pyasn1 \ + ${PYTHON_PN}-pyopenssl \ + ${PYTHON_PN}-pysocks \ + ${PYTHON_PN}-urllib3 \ + ${PYTHON_PN}-chardet \ + ${PYTHON_PN}-idna \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-requests_2.18.4.bb b/meta-python/recipes-devtools/python/python-requests_2.18.4.bb new file mode 100644 index 00000000000..0d7a29f7456 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-requests_2.18.4.bb @@ -0,0 +1,4 @@ +inherit setuptools +require python-requests.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-zlib" diff --git a/meta-python/recipes-devtools/python/python-requests_2.5.1.bb b/meta-python/recipes-devtools/python/python-requests_2.5.1.bb deleted file mode 100644 index b719dca8d39..00000000000 --- a/meta-python/recipes-devtools/python/python-requests_2.5.1.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "Python HTTP for Humans." -HOMEPAGE = "http://python-requests.org" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=c7869e52c8275537186de35e3cd5f9ec" - -PR = "r0" -SRCNAME = "requests" - -SRC_URI = "http://pypi.python.org/packages/source/r/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "c270eb5551a02e8ab7a4cbb83e22af2e" -SRC_URI[sha256sum] = "7b7735efd3b1e2323dc9fcef060b380d05f5f18bd0f247f5e9e74a628279de66" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-rfc3987.inc b/meta-python/recipes-devtools/python/python-rfc3987.inc new file mode 100644 index 00000000000..4615904119f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-rfc3987.inc @@ -0,0 +1,8 @@ +SUMMARY = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=9;md5=2b723edf67b2f3088bc5e339b1ceda2d" + +SRC_URI[md5sum] = "aa108c7590902fe609c036864ecb7f84" +SRC_URI[sha256sum] = "91a7826b0a26c246a5a91bef09c2c0809c713a689be689b9571e78a13f6557a4" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-rfc3987_1.3.7.bb b/meta-python/recipes-devtools/python/python-rfc3987_1.3.7.bb new file mode 100644 index 00000000000..dcda5aa46e4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-rfc3987_1.3.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-rfc3987.inc diff --git a/meta-python/recipes-devtools/python/python-scrypt.inc b/meta-python/recipes-devtools/python/python-scrypt.inc new file mode 100644 index 00000000000..85f1d277bd0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-scrypt.inc @@ -0,0 +1,12 @@ +DESCRIPTION = "Bindings for the scrypt key derivation function library" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=8bef8e6712b1be5aa76af1ebde9d6378" +HOMEPAGE="https://bitbucket.org/mhallin/py-scrypt/overview" + +SRC_URI[md5sum] = "0704e59cc3afb3845c27bb3827baeea9" +SRC_URI[sha256sum] = "d4a5a4f53450b8ef629bbf1ee4be6105c69936e49b3d8bc621ac2287f0c86020" + +inherit pypi + +RDEPENDS_${PN}_class-target += "\ +" diff --git a/meta-python/recipes-devtools/python/python-scrypt_0.8.0.bb b/meta-python/recipes-devtools/python/python-scrypt_0.8.0.bb new file mode 100644 index 00000000000..9fbd00e049c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-scrypt_0.8.0.bb @@ -0,0 +1,3 @@ +inherit setuptools python-dir +require python-scrypt.inc + diff --git a/meta-python/recipes-devtools/python/python-sdnotify.inc b/meta-python/recipes-devtools/python/python-sdnotify.inc new file mode 100644 index 00000000000..ea0e575c476 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-sdnotify.inc @@ -0,0 +1,16 @@ +HOMEPAGE = "https://github.com/bb4242/sdnotify" +SUMMARY = "A pure Python implementation of systemd's service notification protocol (sd_notify)" + +DESCRIPTION = "\ + sdnotify is a pure Python implementation of the systemd sd_notify protocol. \ + This protocol can be used to inform systemd about service start-up completion, \ + watchdog events, and other service status changes. \ + Thus, this package can be used to write system services in Python that play nicely with systemd. \ + " + +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cc572ccc4b18a4b7d13be5d01bc8213e" + +SRC_URI[md5sum] = "749ddca1c70be1697fecc443fb1fdb16" +SRC_URI[sha256sum] = "73977fc746b36cc41184dd43c3fe81323e7b8b06c2bb0826c4f59a20c56bb9f1" diff --git a/meta-python/recipes-devtools/python/python-sdnotify_0.3.2.bb b/meta-python/recipes-devtools/python/python-sdnotify_0.3.2.bb new file mode 100644 index 00000000000..39ae3fb0bdd --- /dev/null +++ b/meta-python/recipes-devtools/python/python-sdnotify_0.3.2.bb @@ -0,0 +1,2 @@ +inherit setuptools pypi +require python-sdnotify.inc diff --git a/meta-python/recipes-devtools/python/python-selectors34_1.2.bb b/meta-python/recipes-devtools/python/python-selectors34_1.2.bb new file mode 100644 index 00000000000..69545ebbbc4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-selectors34_1.2.bb @@ -0,0 +1,12 @@ +SUMMARY = "Backport of the selectors module from Python 3.4" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=2fae0222c31d6c10488d4ab93a863af7" + +SRC_URI[md5sum] = "bc855a1c8839a811476c019dc07d92dd" +SRC_URI[sha256sum] = "09f5066337f8a76fb5233f267873f89a27a17c10bf79575954894bb71686451c" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-six \ + " diff --git a/meta-python/recipes-devtools/python/python-serpent.inc b/meta-python/recipes-devtools/python/python-serpent.inc new file mode 100644 index 00000000000..6454ee0f318 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-serpent.inc @@ -0,0 +1,13 @@ +SUMMARY = "Serialization based on ast.literal_eval" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=9f611d4c9e2816d387bab64c40d93294" + +SRC_URI[md5sum] = "d9d6afa51f2560cf5933dcdfd947011d" +SRC_URI[sha256sum] = "8480ce3d8864b8974d9fe396998c6a7dae96edb68edf905bfd32ea9a11853ba5" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + " diff --git a/meta-python/recipes-devtools/python/python-serpent_1.23.bb b/meta-python/recipes-devtools/python/python-serpent_1.23.bb new file mode 100644 index 00000000000..0db3cf98aac --- /dev/null +++ b/meta-python/recipes-devtools/python/python-serpent_1.23.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-serpent.inc diff --git a/meta-python/recipes-devtools/python/python-setuptools-scm.inc b/meta-python/recipes-devtools/python/python-setuptools-scm.inc new file mode 100644 index 00000000000..81bbf33854f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-setuptools-scm.inc @@ -0,0 +1,14 @@ +SUMMARY = "the blessed package to manage your versions by scm tags" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2" + +SRC_URI[md5sum] = "f17493d53f0d842bb0152f214775640b" +SRC_URI[sha256sum] = "49ab4685589986a42da85706b3311a2f74f1af567d39fee6cb1e088d7a75fb5f" + +PYPI_PACKAGE = "setuptools_scm" +inherit pypi + +RDEPENDS_${PN}_class-target = "${PYTHON_PN}-py ${PYTHON_PN}-setuptools ${PYTHON_PN}-argparse ${PYTHON_PN}-debugger ${PYTHON_PN}-json" +RDEPENDS_${PN}_class-native = "${PYTHON_PN}-setuptools-native" + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-setuptools-scm_1.15.6.bb b/meta-python/recipes-devtools/python/python-setuptools-scm_1.15.6.bb new file mode 100644 index 00000000000..5f9bb0b5c0e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-setuptools-scm_1.15.6.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-setuptools-scm.inc diff --git a/meta-python/recipes-devtools/python/python-simplejson.inc b/meta-python/recipes-devtools/python/python-simplejson.inc new file mode 100644 index 00000000000..7f436f27ed2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-simplejson.inc @@ -0,0 +1,17 @@ +SUMMARY = "Simple, fast, extensible JSON encoder/decoder for Python" +HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e" + +SRC_URI[md5sum] = "048548acae58984b3e939b3bcf182c8e" +SRC_URI[sha256sum] = "df5e38f5e0a24abe0e02276aa5c3f8504150047a51c0b6b848b8153e6e6d395e" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-re \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-numbers \ +" diff --git a/meta-python/recipes-devtools/python/python-simplejson_3.12.0.bb b/meta-python/recipes-devtools/python/python-simplejson_3.12.0.bb new file mode 100644 index 00000000000..e33edfebaa5 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-simplejson_3.12.0.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-simplejson.inc diff --git a/meta-python/recipes-devtools/python/python-singledispatch_3.4.0.3.bb b/meta-python/recipes-devtools/python/python-singledispatch_3.4.0.3.bb new file mode 100644 index 00000000000..44c9505b33b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-singledispatch_3.4.0.3.bb @@ -0,0 +1,12 @@ +SUMMARY = "functools.singledispatch from Python 3.4" +DESCRIPTION = "PEP 443 proposed to expose a mechanism in the functools standard library module \ +in Python 3.4 that provides a simple form of generic programming known as single-dispatch \ +generic functions. This library is a backport of this functionality to Python 2.6 - 3.3" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://README.rst;md5=ee3cd67264adc7eb07981f3644dc17dc" + +SRC_URI[md5sum] = "af2fc6a3d6cc5a02d0bf54d909785fcb" +SRC_URI[sha256sum] = "5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c" + +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-six.inc b/meta-python/recipes-devtools/python/python-six.inc new file mode 100644 index 00000000000..a5915c1160a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-six.inc @@ -0,0 +1,19 @@ +SUMMARY = "Python 2 and 3 compatibility library" +HOMEPAGE = "http://pypi.python.org/pypi/six/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=35cec5bf04dd0820d0a18533ea7c774a" + +SRC_URI[md5sum] = "d12789f9baf7e9fb2524c0c64f1773f8" +SRC_URI[sha256sum] = "70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9" + +do_compile_append() { + ${PYTHON} setup.py -q bdist_egg --dist-dir ./ +} +do_install_append() { + install -m 0644 ${S}/*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/ +} + +RDEPENDS_${PN} += "${PYTHON_PN}-io" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/meta-python/recipes-devtools/python/python-six_1.11.0.bb b/meta-python/recipes-devtools/python/python-six_1.11.0.bb new file mode 100644 index 00000000000..9075745d74b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-six_1.11.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-six.inc diff --git a/meta-python/recipes-devtools/python/python-six_1.9.0.bb b/meta-python/recipes-devtools/python/python-six_1.9.0.bb deleted file mode 100644 index aa96dc9a82c..00000000000 --- a/meta-python/recipes-devtools/python/python-six_1.9.0.bb +++ /dev/null @@ -1,8 +0,0 @@ -SUMMARY = "Python 2 and 3 compatibility library" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=6f00d4a50713fa859858dd9abaa35b21" - -SRC_URI[md5sum] = "476881ef4012262dfc8adc645ee786c4" -SRC_URI[sha256sum] = "e24052411fc4fbd1f672635537c3fc2330d9481b18c0317695b46259512c91d5" - -inherit pypi diff --git a/meta-python/recipes-devtools/python/python-slip-dbus_0.6.0.bb b/meta-python/recipes-devtools/python/python-slip-dbus_0.6.0.bb deleted file mode 100644 index 2714f432216..00000000000 --- a/meta-python/recipes-devtools/python/python-slip-dbus_0.6.0.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Convenience functions for dbus services in Python 2.x" -HOMEPAGE = "http://nphilipp.fedorapeople.org/python-slip/" -DESCRIPTION = "\ -The Simple Library for Python 2.x packages contain miscellaneous code for \ -convenience, extension and workaround purposes. \ -\ -This package provides slip.dbus.service.Object, which is a dbus.service.Object \ -derivative that ends itself after a certain time without being used and/or if \ -there are no clients anymore on the message bus, as well as convenience \ -functions and decorators for integrating a dbus service with PolicyKit." - -SECTION = "devel/python" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018" -SRCNAME = "python-slip" - -SRC_URI = "https://fedorahosted.org/released/${SRCNAME}/${SRCNAME}-${PV}.tar.bz2" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -SRC_URI[md5sum] = "fb3299d75af1a67ca6679d96ce839da6" -SRC_URI[sha256sum] = "f47361ec52b608309b83c71905e692b6b363eaf3b8a7afdeff866cd94463ad5c" - -do_compile_prepend() { - sed -e 's/@VERSION@/${PV}/g' setup.py.in > setup.py -} diff --git a/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb b/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb new file mode 100644 index 00000000000..8081416ee44 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb @@ -0,0 +1,27 @@ +SUMMARY = "Convenience functions for dbus services in Python 2.x" +HOMEPAGE = "http://nphilipp.fedorapeople.org/python-slip/" +DESCRIPTION = "\ +The Simple Library for Python 2.x packages contain miscellaneous code for \ +convenience, extension and workaround purposes. \ +\ +This package provides slip.dbus.service.Object, which is a dbus.service.Object \ +derivative that ends itself after a certain time without being used and/or if \ +there are no clients anymore on the message bus, as well as convenience \ +functions and decorators for integrating a dbus service with PolicyKit." + +SECTION = "devel/python" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018" +SRCNAME = "python-slip" + +SRC_URI = "https://github.com/nphilipp/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools + +SRC_URI[md5sum] = "a6d8ee96245fc21785d4c1c062c85f2f" +SRC_URI[sha256sum] = "bc897f1ab6f5b4989f85548799aaeb84fde67bbba18e40341bfe1d7885c2fd9a" + +do_compile_prepend() { + sed -e 's/@VERSION@/${PV}/g' setup.py.in > setup.py +} diff --git a/meta-python/recipes-devtools/python/python-smbus.inc b/meta-python/recipes-devtools/python/python-smbus.inc new file mode 100644 index 00000000000..ded30ced992 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-smbus.inc @@ -0,0 +1,18 @@ +SUMMARY = "Set of i2c tools for linux - Python module" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://smbusmodule.c;startline=1;endline=17;md5=fa24df321a520ff8e10f203425ab9fa8" + +SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/i2c-tools-${PV}.tar.bz2 \ +" +SRC_URI[md5sum] = "7104a1043d11a5e2c7b131614eb1b962" +SRC_URI[sha256sum] = "db5e69f2e2a6e3aa2ecdfe6a5f490b149c504468770f58921c8c5b8a7860a441" + +DEPENDS += "i2c-tools" + +S = "${WORKDIR}/i2c-tools-${PV}/py-smbus/" + +do_configure_prepend() { + # Adjust for OE header rename + sed -i s:linux/i2c-dev.h:linux/i2c-dev-user.h: Module.mk + sed -i s:linux/i2c-dev.h:linux/i2c-dev-user.h: smbusmodule.c +} diff --git a/meta-python/recipes-devtools/python/python-smbus_3.1.1.bb b/meta-python/recipes-devtools/python/python-smbus_3.1.1.bb deleted file mode 100644 index df47df6248f..00000000000 --- a/meta-python/recipes-devtools/python/python-smbus_3.1.1.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Set of i2c tools for linux - Python module" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://smbusmodule.c;startline=1;endline=17;md5=fa24df321a520ff8e10f203425ab9fa8" - -SRC_URI = "http://dl.lm-sensors.org/i2c-tools/releases/i2c-tools-${PV}.tar.bz2 \ -" -SRC_URI[md5sum] = "0fdbff53ebd0b8d9249256d6c56480b1" -SRC_URI[sha256sum] = "14d4d7d60d1c12e43f2befe239c682a5c44c27682f153d4b58c1e392d2db1700" - -DEPENDS = "i2c-tools" - -inherit distutils - -S = "${WORKDIR}/i2c-tools-${PV}/py-smbus/" - -do_configure_prepend() { - # Adjust for OE header rename - sed -i s:linux/i2c-dev.h:linux/i2c-dev-user.h: Module.mk - sed -i s:linux/i2c-dev.h:linux/i2c-dev-user.h: smbusmodule.c -} diff --git a/meta-python/recipes-devtools/python/python-smbus_3.1.2.bb b/meta-python/recipes-devtools/python/python-smbus_3.1.2.bb new file mode 100644 index 00000000000..1b95778877f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-smbus_3.1.2.bb @@ -0,0 +1,2 @@ +inherit distutils +require python-smbus.inc diff --git a/meta-python/recipes-devtools/python/python-snakefood_1.4.bb b/meta-python/recipes-devtools/python/python-snakefood_1.4.bb index 1af33d44d4b..e4a6d767dc6 100644 --- a/meta-python/recipes-devtools/python/python-snakefood_1.4.bb +++ b/meta-python/recipes-devtools/python/python-snakefood_1.4.bb @@ -35,18 +35,13 @@ given the trade-offs, 99% is good enough for 99% of the uses.\ " AUTHOR = "Martin Blais " HOMEPAGE = "http://furius.ca/snakefood" -SECTION = "devel/python" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -SRCNAME = "snakefood" -SRC_URI = "https://pypi.python.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" SRC_URI[md5sum] = "56c88667a33d8909b0aabf2ab6903bdf" SRC_URI[sha256sum] = "295784668032254e7391ca99ba7060edd3ae4eca1a330ac11627b18ab5923b77" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools +inherit pypi setuptools RDEPENDS_${PN} = " python-logging python-compiler python-shell" # the above modules do not have a -native counterpart diff --git a/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb b/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb new file mode 100644 index 00000000000..c5af48dd3cc --- /dev/null +++ b/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb @@ -0,0 +1,20 @@ +SUMMARY = "Interactive SNMP tool" +DESCRIPTION = "Snimpy is a Python-based tool providing a simple interface to build SNMP query" +HOMEPAGE = "https://pypi.python.org/pypi/snimpy" +SECTION = "devel/python" + +DEPENDS += "libsmi python-cffi-native python-vcversioner-native" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=7c53ab2d1240828625c3e093d049d4f4" + +SRC_URI[md5sum] = "6d016b6356db432e6a87ad708eb8fcb6" +SRC_URI[sha256sum] = "04efcfba867ffb0e10cc8d7f93a553ceb6bdf2ee34e49762749028a2c76096c1" + +inherit pypi setuptools + +RDEPENDS_${PN} = "python-cffi \ + python-pycparser \ + python-pysnmp \ + python-setuptools \ +" diff --git a/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb b/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb new file mode 100644 index 00000000000..a1253112c8b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb @@ -0,0 +1,22 @@ +SUMMARY = "Library for rapid service prototyping with minimal boilerplate" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0c1554636a564da3baf037ac652fc831" + +SRC_URI[md5sum] = "6aa8815652c6f5e5e8e5b2ac1813dd87" +SRC_URI[sha256sum] = "b25707c349079a7c888155e7fdfd8394df2da9aca9c8eee4e205528cb16b7662" + +inherit pypi setuptools + +RDEPENDS_${PN} = "\ + python-subprocess \ + python-six \ + python-argparse \ + python-re \ + python-shell \ + python-threading \ + python-logging \ + python-unixadmin \ + python-distutils \ + python-daemonize \ + python-futures \ +" diff --git a/meta-python/recipes-devtools/python/python-spidev.inc b/meta-python/recipes-devtools/python/python-spidev.inc new file mode 100644 index 00000000000..1b93763d579 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-spidev.inc @@ -0,0 +1,17 @@ +SUMMARY = "Python bindings for Linux SPI access through spidev" +DESCRIPTION = "This project contains a python module for interfacing with SPI\ +devices from user space via the spidev linux kernel driver.\ +This is a modified version of the code originally found\ +[here](http://elk.informatik.fh-augsburg.de/da/da-49/trees/pyap7k/lang/py-spi)\ +All code is GPLv2 licensed unless explicitly stated otherwise." +HOMEPAGE = "http://github.com/doceme/py-spidev" +SECTION = "devel/python" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=54bdb9022ebb75ab68399cdaab97da60" +SRCNAME = "spidev" + +SRC_URI[md5sum] = "f601676f1bb48b9aa3b3897f95216365" +SRC_URI[sha256sum] = "09d2b5122f0dd79910713a11f9a0020f71537224bf829916def4fffc0ea59456" + + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-sqlalchemy.inc b/meta-python/recipes-devtools/python/python-sqlalchemy.inc new file mode 100644 index 00000000000..2683a6ab12e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-sqlalchemy.inc @@ -0,0 +1,20 @@ +DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \ +application developers the full power and flexibility of SQL" +HOMEPAGE = "http://www.sqlalchemy.org/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=452f4b8adb0feba42e5be5f1fbfbf538" + +PYPI_PACKAGE = "SQLAlchemy" +inherit pypi + +SRC_URI[md5sum] = "077f9bd3339957f53068b5572a152674" +SRC_URI[sha256sum] = "8b79a5ed91cdcb5abe97b0045664c55c140aec09e5dd5c01303e23de5fe7a95a" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb b/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb deleted file mode 100644 index 43b4b7efa25..00000000000 --- a/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \ -application developers the full power and flexibility of SQL" -HOMEPAGE = "http://www.sqlalchemy.org/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=baffc5e5f4804c92fc9be155fed70d41" -RDEPENDS_${PN} += "python-numbers" - -SRCNAME = "SQLAlchemy" -SRC_URI = "${SOURCEFORGE_MIRROR}/sqlalchemy/${SRCNAME}-${PV}.tar.gz" -SRC_URI[md5sum] = "c4852d586d95a59fbc9358f4467875d5" -SRC_URI[sha256sum] = "f7a305ad122144f364ce09a2d9ed5159d5f46ec43650653593e7dfa05d3294a1" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-sqlalchemy_1.1.15.bb b/meta-python/recipes-devtools/python/python-sqlalchemy_1.1.15.bb new file mode 100644 index 00000000000..53c8fecf708 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-sqlalchemy_1.1.15.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-sqlalchemy.inc diff --git a/meta-python/recipes-devtools/python/python-strict-rfc3339.inc b/meta-python/recipes-devtools/python/python-strict-rfc3339.inc new file mode 100644 index 00000000000..dca9ea93ead --- /dev/null +++ b/meta-python/recipes-devtools/python/python-strict-rfc3339.inc @@ -0,0 +1,8 @@ +SUMMARY = "Strict, simple, lightweight RFC3339 function.s" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8f0e2cd40e05189ec81232da84bd6e1a" + +SRC_URI[md5sum] = "4d9b635b4df885bc37bc1189d66c9abc" +SRC_URI[sha256sum] = "5cad17bedfc3af57b399db0fed32771f18fc54bbd917e85546088607ac5e1277" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-strict-rfc3339_0.7.bb b/meta-python/recipes-devtools/python/python-strict-rfc3339_0.7.bb new file mode 100644 index 00000000000..b01ea99a3fc --- /dev/null +++ b/meta-python/recipes-devtools/python/python-strict-rfc3339_0.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-strict-rfc3339.inc diff --git a/meta-python/recipes-devtools/python/python-subprocess32_3.2.7.bb b/meta-python/recipes-devtools/python/python-subprocess32_3.2.7.bb new file mode 100644 index 00000000000..f43706923ad --- /dev/null +++ b/meta-python/recipes-devtools/python/python-subprocess32_3.2.7.bb @@ -0,0 +1,15 @@ +SUMMARY = "A backport of the subprocess module from Python 3.2 for use on 2.x" +DESCRIPTION = "This is a backport of the subprocess standard library module \ +from Python 3.2 - 3.5 for use on Python 2. It includes bugfixes and some new \ +features. On POSIX systems it is guaranteed to be reliable when used in \ +threaded applications. It includes timeout support from Python 3.3 and the \ +run() API from 3.5 but otherwise matches 3.2's API." +LICENSE = "Python-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d3e62baa8fb96b11a59d3f2cd335d5c0" + +SRC_URI[md5sum] = "824c801e479d3e916879aae3e9c15e16" +SRC_URI[sha256sum] = "1e450a4a4c53bf197ad6402c564b9f7a53539385918ef8f12bdf430a61036590" + +inherit pypi setuptools + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-systemd_234.bb b/meta-python/recipes-devtools/python/python-systemd_234.bb new file mode 100644 index 00000000000..ef1183171d1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-systemd_234.bb @@ -0,0 +1,13 @@ +SUMMARY = "Python interface for libsystemd" +HOMEPAGE = "https://github.com/systemd/python-systemd" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c" + +PYPI_PACKAGE = "systemd-python" +DEPENDS += "systemd (<=234)" +RDEPENDS_${PN} += "systemd" +REQUIRED_DISTRO_FEATURES = "systemd" +inherit pypi setuptools distro_features_check + +SRC_URI[md5sum] = "5071ea5bcb976186e92a3f5e75df221d" +SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7" diff --git a/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb b/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb new file mode 100644 index 00000000000..46a20a5edae --- /dev/null +++ b/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb @@ -0,0 +1,18 @@ +SUMMARY = "Tornado-Redis is an asyncronous Redis client for the Tornado Web Server" +DESCRIPTION = "Tornado-Redis is a Redis client that uses Tornado's native 'tornado-gen' interface. \ +It can be used alongside redis-py in Tornado applications: \ +tornado-redis to subscribe to Pub/Sub notifications and for blocking commands (such as BLPOP, BRPOP, BRPOPLPUSH); \ +redis-py for other commands." +HOMEPAGE = "https://github.com/leporo/tornado-redis" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=ca307e8f37b5fa7f8dbbec033f7db7de" + +SRC_URI[md5sum] = "1c7ec0f645d15400871141c1149e6934" +SRC_URI[sha256sum] = "8fd3b324158291ad5fb7f5f8dc2e8763b2895556bd2a44f2dd721b703c669046" + +inherit pypi setuptools + +RDEPENDS_${PN} += "python-tornado" + +RDEPENDS_${PN}-test += "${PN} python-tornado" diff --git a/meta-python/recipes-devtools/python/python-tornado.inc b/meta-python/recipes-devtools/python/python-tornado.inc new file mode 100644 index 00000000000..2c586556d21 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-tornado.inc @@ -0,0 +1,24 @@ +SUMMARY = "Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed." +DESCRIPTION = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. \ +By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long \ +polling, WebSockets, and other applications that require a long-lived connection to each user." +HOMEPAGE = "http://www.tornadoweb.org/en/stable/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://setup.py;startline=2;endline=15;md5=5ab7571a79ad62d0ca7aea308bac7560" + +SRC_URI[md5sum] = "ab41f6765d58089f30ba51e8ec084a7b" +SRC_URI[sha256sum] = "1fb8e494cd46c674d86fac5885a3ff87b0e283937a47d74eb3c02a48c9e89ad0" + +RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-numbers ${PYTHON_PN}-email ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-pkgutil ${PYTHON_PN}-html ${PYTHON_PN}-json ${PYTHON_PN}-certifi ${PYTHON_PN}-threading" + +RDEPENDS_${PN}-test += "${PN} ${PYTHON_PN}-unittest" + +PACKAGES =+ "\ + ${PN}-test \ +" + +FILES_${PN}-test = " \ + ${libdir}/${PYTHON_DIR}/site-packages/*/test \ + ${libdir}/${PYTHON_DIR}/site-packages/*/testing.py* \ +" diff --git a/meta-python/recipes-devtools/python/python-tornado_4.0.2.bb b/meta-python/recipes-devtools/python/python-tornado_4.0.2.bb deleted file mode 100644 index f1b8141a242..00000000000 --- a/meta-python/recipes-devtools/python/python-tornado_4.0.2.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed." -DESCRIPTION = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. \ -By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long \ -polling, WebSockets, and other applications that require a long-lived connection to each user." -HOMEPAGE = "http://www.tornadoweb.org/en/stable/" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5208df23820f490f691712a654be256d" - -SRCNAME = "tornado" - -SRC_URI = " \ - https://pypi.python.org/packages/source/t/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \ -" -SRC_URI[md5sum] = "985c0e704b765c33a6193d49d1935588" -SRC_URI[sha256sum] = "900c5124ebdb6598ca8e8a0c5888f41a5f14117952d5515258e3d20222b21bfa" - -inherit setuptools - -RDEPENDS_${PN} += "python-compression python-numbers python-email python-subprocess \ - python-pkgutil python-html python-json python-backports-ssl python-certifi" - -RDEPENDS_${PN}-test += "${PN} python-unittest" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -PACKAGES =+ "\ - ${PN}-test \ -" - -FILES_${PN}-test = " \ - ${libdir}/${PYTHON_DIR}/site-packages/${SRCNAME}/test \ - ${libdir}/${PYTHON_DIR}/site-packages/${SRCNAME}/testing.py* \ -" diff --git a/meta-python/recipes-devtools/python/python-tornado_4.5.2.bb b/meta-python/recipes-devtools/python/python-tornado_4.5.2.bb new file mode 100644 index 00000000000..5d11475567a --- /dev/null +++ b/meta-python/recipes-devtools/python/python-tornado_4.5.2.bb @@ -0,0 +1,3 @@ +inherit pypi setuptools +require python-tornado.inc +RDEPENDS_${PN} += "${PYTHON_PN}-backports-ssl ${PYTHON_PN}-backports-abc ${PYTHON_PN}-singledispatch" diff --git a/meta-python/recipes-devtools/python/python-twisted.inc b/meta-python/recipes-devtools/python/python-twisted.inc new file mode 100644 index 00000000000..0dd584f9fec --- /dev/null +++ b/meta-python/recipes-devtools/python/python-twisted.inc @@ -0,0 +1,243 @@ +DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \ +Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \ +(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more." +HOMEPAGE = "http://www.twistedmatrix.com" + +#twisted/topfiles/NEWS:655: - Relicensed: Now under the MIT license, rather than LGPL. +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8a9c2fbfcba7d70504e3ba545e1820ed" + +SRC_URI[md5sum] = "6dbedb918f0c7288a4c670f59393ecf8" +SRC_URI[sha256sum] = "0da1a7e35d5fcae37bc9c7978970b5feb3bc82822155b8654ec63925c05af75c" + +PYPI_PACKAGE = "Twisted" +PYPI_PACKAGE_EXT = "tar.bz2" + +do_install_append() { + # remove some useless files before packaging + find ${D} \( -name "*.bat" -o -name "*.c" -o -name "*.h" \) -exec rm -f {} \; +} + +PACKAGES += "\ + ${PN}-zsh \ + ${PN}-test \ + ${PN}-protocols \ + ${PN}-conch \ + ${PN}-mail \ + ${PN}-names \ + ${PN}-news \ + ${PN}-runner \ + ${PN}-web \ + ${PN}-words \ + ${PN}-flow \ + ${PN}-pair \ + ${PN}-core \ +" + +PACKAGES =+ "\ + ${PN}-src \ + ${PN}-bin \ +" + +RDEPENDS_${PN} = "\ + ${PN}-bin \ + ${PN}-core \ + ${PN}-conch \ + ${PN}-mail \ + ${PN}-names \ + ${PN}-runner \ + ${PN}-web \ + ${PN}-words \ +" + +RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat" +RDEPENDS_${PN}-test = "${PN}" +RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" +RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" +RDEPENDS_${PN}-names = "${PN}-core" +RDEPENDS_${PN}-news = "${PN}-core ${PN}-protocols" +RDEPENDS_${PN}-runner = "${PN}-core ${PN}-protocols" +RDEPENDS_${PN}-web += "${PN}-core ${PN}-protocols" +RDEPENDS_${PN}-words += "${PN}-core" +RDEPENDS_${PN}-flow += "${PN}-core" +RDEPENDS_${PN}-pair += "${PN}-core" +RDEPENDS_${PN}-dbg = "${PN}" + +ALLOW_EMPTY_${PN} = "1" +FILES_${PN} = "" + +FILES_${PN}-test = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/test \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/test \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/haproxy/test/ \ +" + +FILES_${PN}-protocols = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/*.py* \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/gps/ \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/mice/ \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/haproxy \ +" + +FILES_${PN}-zsh = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zsh \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.* \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/twisted-completion.zsh \ +" + +FILES_${PN}-conch = " \ + ${bindir}/ckeygen \ + ${bindir}/tkconch \ + ${bindir}/conch \ + ${bindir}/conchftp \ + ${bindir}/cftp \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_conch.py* \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/conch \ +" + +FILES_${PN}-core = " \ +${bindir}/manhole \ +${bindir}/mktap \ +${bindir}/twistd \ +${bindir}/tap2deb \ +${bindir}/tap2rpm \ +${bindir}/tapconvert \ +${bindir}/tkmktap \ +${bindir}/trial \ +${bindir}/easy_install* \ +${bindir}/pyhtmlizer \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.so \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/notestplugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/testplugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_ftp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_inet.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_manhole.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_portforward.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_socks.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_telnet.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_trial.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/dropin.cache \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/application \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/cred \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/enterprise \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/internet \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/persisted \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols\ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python\ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/timeoutqueue.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/filepath.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dxprofile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/plugin.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/htmlizer.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dispatch.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/hook.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadpool.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/otp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/usage.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/roots.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/versions.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/urlpath.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/util.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/components.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/logfile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/runtime.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/reflect.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/context.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadable.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/rebuild.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/failure.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/lockfile.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/formmethod.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/finalize.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/win32.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dist.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/shortcut.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zipstream.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/release.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/syslog.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/log.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/compat.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/procutils.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/text.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_twisted_zsh_stub \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/scripts/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/spread/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/tap/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/trial/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/__init__.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/_version.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/copyright.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/im.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/*.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/topfiles \ +${libdir}/${PYTHON_DIR}/site-packages/Twisted*egg-info \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/logger/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/_threads/ \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/positioning/ \ +" + +FILES_${PN}-mail = " \ +${bindir}/mailmail \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_mail.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/mail \ +" + +FILES_${PN}-names = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_names.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/names \ +" + +FILES_${PN}-news = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_news.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/news \ +" + +FILES_${PN}-runner = " \ +${libdir}/site-packages/twisted/runner/portmap.so \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/runner\ +" + +FILES_${PN}-web = " \ +${bindir}/websetroot \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_web.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/web\ +" + +FILES_${PN}-words = " \ +${bindir}/im \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_words.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/words\ +" + +FILES_${PN}-flow = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_flow.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/flow \" + +FILES_${PN}-pair = " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_pair.py* \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/pair \ +" + +FILES_${PN}-dbg += " \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*/.debug \ +${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/.debug \ +" + +FILES_${PN}-doc += " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_pydoctortemplates/ \ +" + +RDEPENDS_{PN}-src = "${PN}" +FILES_${PN}-src = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*.py \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/*.py \ +" diff --git a/meta-python/recipes-devtools/python/python-twisted_13.2.0.bb b/meta-python/recipes-devtools/python/python-twisted_13.2.0.bb deleted file mode 100644 index 2b433f718e5..00000000000 --- a/meta-python/recipes-devtools/python/python-twisted_13.2.0.bb +++ /dev/null @@ -1,247 +0,0 @@ -DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \ -Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \ -(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more." -HOMEPAGE = "http://www.twistedmatrix.com" -SECTION = "console/network" - -#twisted/topfiles/NEWS:655: - Relicensed: Now under the MIT license, rather than LGPL. -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5602d7228daf59a16f0f1b2640c46bca" - -SRC_URI = "https://pypi.python.org/packages/source/T/Twisted/Twisted-${PV}.tar.bz2" -SRC_URI[md5sum] = "83fe6c0c911cc1602dbffb036be0ba79" -SRC_URI[sha256sum] = "095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3" - -S = "${WORKDIR}/Twisted-${PV}" - -inherit setuptools - -do_install_append() { - # remove some useless files before packaging - find ${D} \( -name "*.bat" -o -name "*.c" -o -name "*.h" \) -exec rm -f {} \; -} - -PACKAGES += "\ - ${PN}-zsh \ - ${PN}-test \ - ${PN}-protocols \ - ${PN}-conch \ - ${PN}-lore \ - ${PN}-mail \ - ${PN}-names \ - ${PN}-news \ - ${PN}-runner \ - ${PN}-web \ - ${PN}-words \ - ${PN}-flow \ - ${PN}-pair \ - ${PN}-core \ -" - -PACKAGES =+ "\ - ${PN}-src \ - ${PN}-bin \ -" - -RDEPENDS_${PN} = "\ - ${PN}-bin \ - ${PN}-conch \ - ${PN}-lore \ - ${PN}-mail \ - ${PN}-names \ - ${PN}-news \ - ${PN}-runner \ - ${PN}-web \ - ${PN}-words \ -" - -RDEPENDS_${PN}-core = "python-core python-zopeinterface python-contextlib" -RDEPENDS_${PN}-test = "${PN}" -RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols" -RDEPENDS_${PN}-lore = "${PN}-core" -RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols" -RDEPENDS_${PN}-names = "${PN}-core" -RDEPENDS_${PN}-news = "${PN}-core ${PN}-protocols" -RDEPENDS_${PN}-runner = "${PN}-core ${PN}-protocols" -RDEPENDS_${PN}-web += "${PN}-core ${PN}-protocols" -RDEPENDS_${PN}-words += "${PN}-core" -RDEPENDS_${PN}-flow += "${PN}-core" -RDEPENDS_${PN}-pair += "${PN}-core" -RDEPENDS_${PN}-dbg = "${PN}" - -ALLOW_EMPTY_${PN} = "1" -FILES_${PN} = "" - -FILES_${PN}-test = " \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/test \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/test \ -" - -FILES_${PN}-protocols = " \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/*.py* \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/gps/ \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/mice/ \ -" - -FILES_${PN}-zsh = " \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zsh \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.* \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/twisted-completion.zsh \ -" - -FILES_${PN}-conch = " \ - ${bindir}/ckeygen \ - ${bindir}/tkconch \ - ${bindir}/conch \ - ${bindir}/conchftp \ - ${bindir}/cftp \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_conch.py* \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/conch \ -" - -FILES_${PN}-core = " \ -${bindir}/manhole \ -${bindir}/mktap \ -${bindir}/twistd \ -${bindir}/tap2deb \ -${bindir}/tap2rpm \ -${bindir}/tapconvert \ -${bindir}/tkmktap \ -${bindir}/trial \ -${bindir}/easy_install* \ -${bindir}/pyhtmlizer \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.so \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__init__.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/notestplugin.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/testplugin.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_ftp.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_inet.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_manhole.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_portforward.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_socks.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_telnet.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_trial.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/dropin.cache \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/application \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/cred \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/enterprise \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/internet \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/persisted \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols\ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python\ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/timeoutqueue.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/filepath.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dxprofile.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/plugin.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/htmlizer.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__init__.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dispatch.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/hook.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadpool.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/otp.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/usage.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/roots.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/versions.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/urlpath.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/util.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/components.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/logfile.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/runtime.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/reflect.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/context.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadable.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/rebuild.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/failure.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/lockfile.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/formmethod.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/finalize.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/win32.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dist.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/shortcut.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zipstream.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/release.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/syslog.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/log.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/compat.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/procutils.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/text.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_twisted_zsh_stub \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/scripts/ \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/spread/ \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/tap/ \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/trial/ \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/__init__.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/_version.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/copyright.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/im.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/*.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/topfiles \ -${libdir}/${PYTHON_DIR}/site-packages/Twisted*egg-info \ -" - -FILES_${PN}-lore = " \ -${bindir}/bookify \ -${bindir}/lore \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_lore.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/lore \ -" - -FILES_${PN}-mail = " \ -${bindir}/mailmail \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_mail.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/mail \ -" - -FILES_${PN}-names = " \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_names.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/names \ -" - -FILES_${PN}-news = " \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_news.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/news \ -" - -FILES_${PN}-runner = " \ -${libdir}/site-packages/twisted/runner/portmap.so \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/runner\ -" - -FILES_${PN}-web = " \ -${bindir}/websetroot \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_web.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/web\ -" - -FILES_${PN}-words = " \ -${bindir}/im \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_words.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/words\ -" - -FILES_${PN}-flow = " \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_flow.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/flow \" - -FILES_${PN}-pair = " \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_pair.py* \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/pair \ -" - -FILES_${PN}-dbg += " \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/*/.debug \ -${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/.debug \ -" - -RDEPENDS_{PN}-src = "${PN}" -FILES_${PN}-src = " \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*.py \ - ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/*.py \ - " diff --git a/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb b/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb new file mode 100644 index 00000000000..2be1709d040 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools +require python-twisted.inc + +RDEPENDS_${PN}-core += "${PYTHON_PN}-contextlib" diff --git a/meta-python/recipes-devtools/python/python-typing.inc b/meta-python/recipes-devtools/python/python-typing.inc new file mode 100644 index 00000000000..46be47c9f80 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-typing.inc @@ -0,0 +1,9 @@ +SUMMARY = "Simple Python module defined by PEP 484." +HOMEPAGE = "https://github.com/python/typing" +LICENSE = "PSF" +LIC_FILES_CHKSUM = "file://LICENSE;md5=64fc2b30b67d0a8423c250e0386ed72f" + +SRC_URI[md5sum] = "143af0bf3afd1887622771f2f1ffe8e1" +SRC_URI[sha256sum] = "d514bd84b284dd3e844f0305ac07511f097e325171f6cc4a20878d11ad771849" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-typing_3.6.2.bb b/meta-python/recipes-devtools/python/python-typing_3.6.2.bb new file mode 100644 index 00000000000..04ce063c988 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-typing_3.6.2.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-typing.inc diff --git a/meta-python/recipes-devtools/python/python-ujson.inc b/meta-python/recipes-devtools/python/python-ujson.inc new file mode 100644 index 00000000000..9654d5ad398 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-ujson.inc @@ -0,0 +1,15 @@ +SUMMARY = "Ultra fast JSON encoder and decoder for Python" +DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3." + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://PKG-INFO;startline=8;endline=9;md5=4f369b3c3c290b4aede8796a4065e5ab" + +SRC_URI[md5sum] = "42f77b0cce686dfa4da2e68480b1dd24" +SRC_URI[sha256sum] = "f66073e5506e91d204ab0c614a148d5aa938bdbf104751be66f8ad7a222f5f86" + +inherit pypi + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-numbers \ + " diff --git a/meta-python/recipes-devtools/python/python-ujson_1.33.bb b/meta-python/recipes-devtools/python/python-ujson_1.33.bb deleted file mode 100644 index 8fdd2b83513..00000000000 --- a/meta-python/recipes-devtools/python/python-ujson_1.33.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Ultra fast JSON encoder and decoder for Python" -DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3." -HOMEPAGE = "https://pypi.python.org/pypi/ujson" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://PKG-INFO;md5=5b206f6ba5e41c60df8cdcddf79a3d82" - -SRCNAME = "ujson" - -SRC_URI = " \ - http://pypi.python.org/packages/source/u/ujson/${SRCNAME}-${PV}.zip \ -" - -SRC_URI[md5sum] = "8148a2493fff78940feab1e11dc0a893" -SRC_URI[sha256sum] = "68cf825f227c82e1ac61e423cfcad923ff734c27b5bdd7174495d162c42c602b" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += "python-numbers" diff --git a/meta-python/recipes-devtools/python/python-ujson_1.35.bb b/meta-python/recipes-devtools/python/python-ujson_1.35.bb new file mode 100644 index 00000000000..b3c6ae66fc4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-ujson_1.35.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-ujson.inc diff --git a/meta-python/recipes-devtools/python/python-unidiff.inc b/meta-python/recipes-devtools/python/python-unidiff.inc new file mode 100644 index 00000000000..04025509157 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-unidiff.inc @@ -0,0 +1,9 @@ +SUMMARY = "Unified diff parsing/metadata extraction library" +HOMEPAGE = "http://github.com/matiasb/python-unidiff" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4c434b08ef42fea235bb019b5e5a97b3" + +SRC_URI[md5sum] = "c8099edf89d2e3bac16123766625a38b" +SRC_URI[sha256sum] = "a7baf71846a68c5305a7d6005dfb5eca8798f13861176355a285cbda3206824d" + +inherit pypi diff --git a/meta-python/recipes-devtools/python/python-unidiff_0.5.4.bb b/meta-python/recipes-devtools/python/python-unidiff_0.5.4.bb new file mode 100644 index 00000000000..bdb3d27f9af --- /dev/null +++ b/meta-python/recipes-devtools/python/python-unidiff_0.5.4.bb @@ -0,0 +1,2 @@ +require python-unidiff.inc +inherit setuptools diff --git a/meta-python/recipes-devtools/python/python-urllib3.inc b/meta-python/recipes-devtools/python/python-urllib3.inc new file mode 100644 index 00000000000..cf79926a60e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-urllib3.inc @@ -0,0 +1,19 @@ +SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more" +HOMEPAGE = "https://github.com/shazow/urllib3" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ea114851ad9a8c311aac8728a681a067" + +SRC_URI[md5sum] = "0da7bed3fe94bf7dc59ae37885cc72f7" +SRC_URI[sha256sum] = "cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f" + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-certifi \ + ${PYTHON_PN}-cryptography \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-idna \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-pyopenssl \ + ${PYTHON_PN}-threading \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-urllib3_1.10.1.bb b/meta-python/recipes-devtools/python/python-urllib3_1.10.1.bb deleted file mode 100644 index 89f7428009d..00000000000 --- a/meta-python/recipes-devtools/python/python-urllib3_1.10.1.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more" -HOMEPAGE = "https://github.com/shazow/urllib3" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3be3707c5f24a69709682265e29566fe" - -SRC_URI = "https://github.com/shazow/urllib3/archive/${PV}.zip" -SRC_URI[md5sum] = "73935fe42b6ef51d078edbbca7c1bd55" -SRC_URI[sha256sum] = "5fadd55b46bf826e46a482bb3d53662a8a88d8f9ea8656e351b659b8ad9bfc0f" - -S = "${WORKDIR}/urllib3-${PV}" - -inherit setuptools - -RDEPENDS_${PN} += "python-netclient" diff --git a/meta-python/recipes-devtools/python/python-urllib3_1.22.bb b/meta-python/recipes-devtools/python/python-urllib3_1.22.bb new file mode 100644 index 00000000000..6c81f1db9b7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-urllib3_1.22.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-urllib3.inc diff --git a/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb b/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb new file mode 100644 index 00000000000..cd6fa8dff6f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "Python vcversioner, automagically update the project's version" +HOMEPAGE = "https://github.com/habnabit/vcversioner" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=827a7a91a8d20d3c666b665cd96db8e3" + +SRC_URI[md5sum] = "aab6ef5e0cf8614a1b1140ed5b7f107d" +SRC_URI[sha256sum] = "dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b" + +inherit pypi setuptools + +do_compile_append() { + ${PYTHON} setup.py -q bdist_egg --dist-dir ./ +} + +do_install_append() { + install -m 0644 ${S}/vcversioner*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/ +} + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-subprocess \ + " +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python-visitor_0.1.3.bb b/meta-python/recipes-devtools/python/python-visitor_0.1.3.bb new file mode 100644 index 00000000000..12365062d8b --- /dev/null +++ b/meta-python/recipes-devtools/python/python-visitor_0.1.3.bb @@ -0,0 +1,8 @@ +SUMMARY = "A tiny pythonic visitor implementation." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489" + +SRC_URI[md5sum] = "94a024ed0ec1b02b4497c15267d319ca" +SRC_URI[sha256sum] = "2c737903b2b6864ebc6167eef7cf3b997126f1aa94bdf590f90f1436d23e480a" + +inherit pypi setuptools diff --git a/meta-python/recipes-devtools/python/python-vobject_0.8.1c.bb b/meta-python/recipes-devtools/python/python-vobject_0.8.1c.bb deleted file mode 100644 index a28c02f7e7d..00000000000 --- a/meta-python/recipes-devtools/python/python-vobject_0.8.1c.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Python package for parsing and generating vCard and vCalendar files" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" -HOMEPAGE = "http://vobject.skyhouseconsulting.com/" -SRCNAME = "vobject" -RDEPENDS_${PN} = "python python-dateutil" -PR = "r4" - -SRC_URI = "http://vobject.skyhouseconsulting.com/${SRCNAME}-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools - -SRC_URI[md5sum] = "c9686dd74d39fdae140890d9c694c076" -SRC_URI[sha256sum] = "594113117f2017ed837c8f3ce727616f9053baa5a5463a7420c8249b8fc556f5" diff --git a/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb b/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb new file mode 100644 index 00000000000..d2f343eb1ab --- /dev/null +++ b/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb @@ -0,0 +1,15 @@ +SUMMARY = "Python package for parsing and generating vCard and vCalendar files" +HOMEPAGE = "http://vobject.skyhouseconsulting.com/" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI[md5sum] = "aa629d6ae95db5edfd5b2402eb1073cb" +SRC_URI[sha256sum] = "0f56cae196303d875682b9648b4bb43ffc769d2f0f800958e0a506af867b1243" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-dateutil \ + ${PYTHON_PN}-numbers \ + " diff --git a/meta-python/recipes-devtools/python/python-wcwidth.inc b/meta-python/recipes-devtools/python/python-wcwidth.inc new file mode 100644 index 00000000000..1429450bb6c --- /dev/null +++ b/meta-python/recipes-devtools/python/python-wcwidth.inc @@ -0,0 +1,8 @@ +SUMMARY = "Library for building powerful interactive command lines in Python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=11fba47286258744a6bc6e43530c32a1" + +SRC_URI[md5sum] = "b3b6a0a08f0c8a34d1de8cf44150a4ad" +SRC_URI[sha256sum] = "3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb b/meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb new file mode 100644 index 00000000000..ef107c16a10 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-wcwidth.inc diff --git a/meta-python/recipes-devtools/python/python-webcolors.inc b/meta-python/recipes-devtools/python/python-webcolors.inc new file mode 100644 index 00000000000..fe1ab95d85e --- /dev/null +++ b/meta-python/recipes-devtools/python/python-webcolors.inc @@ -0,0 +1,12 @@ +SUMMARY = "Simple Python module for working with HTML/CSS color definitions." +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=358df7e9eb65e1843dbb36abd476c5c0" + +SRC_URI[md5sum] = "4733fa1077f680bbdd918cdef1e32c11" +SRC_URI[sha256sum] = "e47e68644d41c0b1f1e4d939cfe4039bdf1ab31234df63c7a4f59d4766487206" + +RDEPENDS_${PN}_class-target = "\ + ${PYTHON_PN}-stringold \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python-webcolors_1.7.bb b/meta-python/recipes-devtools/python/python-webcolors_1.7.bb new file mode 100644 index 00000000000..a0b6708caff --- /dev/null +++ b/meta-python/recipes-devtools/python/python-webcolors_1.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-webcolors.inc diff --git a/meta-python/recipes-devtools/python/python-webencodings.inc b/meta-python/recipes-devtools/python/python-webencodings.inc new file mode 100644 index 00000000000..ed57c52e56f --- /dev/null +++ b/meta-python/recipes-devtools/python/python-webencodings.inc @@ -0,0 +1,10 @@ +SUMMARY = "Character encoding aliases for legacy web content" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://PKG-INFO;startline=8;endline=9;md5=af5c81bfe98855a56d36b6ba5de2906f" + +SRC_URI[md5sum] = "32f6e261d52e57bf7e1c4d41546d15b8" +SRC_URI[sha256sum] = "b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" + +inherit pypi + +RDEPENDS_${PN} += "${PYTHON_PN}-codecs" diff --git a/meta-python/recipes-devtools/python/python-webencodings_0.5.1.bb b/meta-python/recipes-devtools/python/python-webencodings_0.5.1.bb new file mode 100644 index 00000000000..5de2ed1d7bb --- /dev/null +++ b/meta-python/recipes-devtools/python/python-webencodings_0.5.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-webencodings.inc diff --git a/meta-python/recipes-devtools/python/python-werkzeug.inc b/meta-python/recipes-devtools/python/python-werkzeug.inc new file mode 100644 index 00000000000..b2949a3d257 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-werkzeug.inc @@ -0,0 +1,34 @@ +SUMMARY = "The Swiss Army knife of Python web development" +DESCRIPTION = "\ +Werkzeug started as simple collection of various utilities for WSGI \ +applications and has become one of the most advanced WSGI utility modules. \ +It includes a powerful debugger, full featured request and response objects, \ +HTTP utilities to handle entity tags, cache control headers, HTTP dates, \ +cookie handling, file uploads, a powerful URL routing system and a bunch \ +of community contributed addon modules." +HOMEPAGE = "http://werkzeug.pocoo.org/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a68f5361a2b2ca9fdf26b38aaecb6faa" + +SRC_URI[md5sum] = "e385b2c5a7193cff24c689b31e1124dc" +SRC_URI[sha256sum] = "903a7b87b74635244548b30d30db4c8947fe64c5198f58899ddcd3a13c23bb26" + +PYPI_PACKAGE = "Werkzeug" + +CLEANBROKEN = "1" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-difflib \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-html \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-subprocess \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-unixadmin \ +" diff --git a/meta-python/recipes-devtools/python/python-werkzeug_0.12.2.bb b/meta-python/recipes-devtools/python/python-werkzeug_0.12.2.bb new file mode 100644 index 00000000000..3892f1357ba --- /dev/null +++ b/meta-python/recipes-devtools/python/python-werkzeug_0.12.2.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools +require python-werkzeug.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-zlib" diff --git a/meta-python/recipes-devtools/python/python-whoosh.inc b/meta-python/recipes-devtools/python/python-whoosh.inc new file mode 100644 index 00000000000..0a2cf3bf442 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-whoosh.inc @@ -0,0 +1,14 @@ +SUMMARY = "Fast, pure-Python full text indexing, search, and spell checking library." +DESCRIPTION = "\ +Whoosh is a fast, featureful full-text indexing and searching library \ +implemented in pure Python. Programmers can use it to easily add search \ +functionality to their applications and websites. Every part of how \ +Whoosh works can be extended or replaced to meet your needs exactly." +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05303186defc6141143629961c7c8a60" + +SRC_URI[md5sum] = "893433e9c0525ac043df33e6e04caab2" +SRC_URI[sha256sum] = "e0857375f63e9041e03fedd5b7541f97cf78917ac1b6b06c1fcc9b45375dda69" + +PYPI_PACKAGE = "Whoosh" +PYPI_PACKAGE_EXT = "zip" diff --git a/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb b/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb new file mode 100644 index 00000000000..48df360179d --- /dev/null +++ b/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-whoosh.inc diff --git a/meta-python/recipes-devtools/python/python-wrapt.inc b/meta-python/recipes-devtools/python/python-wrapt.inc new file mode 100644 index 00000000000..c85548fb4fd --- /dev/null +++ b/meta-python/recipes-devtools/python/python-wrapt.inc @@ -0,0 +1,15 @@ +SUMMARY = "A Python module for decorators, wrappers and monkey patching." +HOMEPAGE = "http://wrapt.readthedocs.org/" +LICENSE = "BSD" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://LICENSE;md5=61c27930012e86b3dc7e36f92e83c4d8" + +SRC_URI[md5sum] = "e1346f31782d50401f81c2345b037076" +SRC_URI[sha256sum] = "d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6" + +inherit pypi + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-threading \ +" diff --git a/meta-python/recipes-devtools/python/python-wrapt_1.10.11.bb b/meta-python/recipes-devtools/python/python-wrapt_1.10.11.bb new file mode 100644 index 00000000000..bb424765744 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-wrapt_1.10.11.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-wrapt.inc diff --git a/meta-python/recipes-devtools/python/python-wtforms_2.1.bb b/meta-python/recipes-devtools/python/python-wtforms_2.1.bb new file mode 100644 index 00000000000..5ddcb488351 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-wtforms_2.1.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "A flexible forms validation and rendering library for python web development." +HOMEPAGE = "https://pypi.python.org/pypi/WTForms" +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c459accc90c6ed6a94878c8fe0535be2" + +SRC_URI[md5sum] = "6938a541fafd1a1ae2f6b9b88588eef2" +SRC_URI[sha256sum] = "ffdf10bd1fa565b8233380cb77a304cd36fd55c73023e91d4b803c96bc11d46f" + +PYPI_PACKAGE = "WTForms" +PYPI_PACKAGE_EXT = "zip" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-numbers \ + " diff --git a/meta-python/recipes-devtools/python/python-xlrd.inc b/meta-python/recipes-devtools/python/python-xlrd.inc new file mode 100644 index 00000000000..d1ab05d4f03 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-xlrd.inc @@ -0,0 +1,12 @@ +SUMMARY = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files" +DESCRIPTION = "Extract data from Excel spreadsheets (.xls and .xlsx,\ + versions 2.0 onwards) on any platform. Pure Python (2.6, 2.7, 3.2+). \ +Strong support for Excel dates. Unicode-aware." +HOMEPAGE = "http://www.python-excel.org/" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=08bd814936237b6e1355e6370b24b2c1" + +SRC_URI[md5sum] = "b85c9916ac755cad489a9005f5a0d390" +SRC_URI[sha256sum] = "8a21885513e6d915fe33a8ee5fdfa675433b61405ba13e2a69e62ee36828d7e2" + +RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell" diff --git a/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb b/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb new file mode 100644 index 00000000000..3a4d709eb45 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools +require python-xlrd.inc diff --git a/meta-python/recipes-devtools/python/python-yappi_0.98.bb b/meta-python/recipes-devtools/python/python-yappi_0.98.bb new file mode 100644 index 00000000000..51308c8c272 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-yappi_0.98.bb @@ -0,0 +1,15 @@ +SUMMARY = "Yet Another Python Profiler" +HOMEPAGE = "http://yappi.googlecode.com/" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=6b131c3041637f6a5175a43112dde05c" + +SRC_URI[md5sum] = "dc56240575c99938a924eaeb7c0d8beb" +SRC_URI[sha256sum] = "5f657129e1b9b952379ffbc009357d0dcdb58c50f3bfe88ffbb992e4b27b263c" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-threading \ + " diff --git a/meta-python/recipes-devtools/python/python-zopeinterface.inc b/meta-python/recipes-devtools/python/python-zopeinterface.inc new file mode 100644 index 00000000000..4b38aea6b22 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-zopeinterface.inc @@ -0,0 +1,20 @@ +SUMMARY = "Interface definitions for Zope products" +LICENSE = "ZPL-2.1" +LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46" + +SRC_URI[md5sum] = "8700a4f527c1203b34b10c2b4e7a6912" +SRC_URI[sha256sum] = "d6d26d5dfbfd60c65152938fcb82f949e8dada37c041f72916fef6621ba5c5ce" + +PYPI_PACKAGE = "zope.interface" + +PACKAGES =. "${PN}-test " + +RPROVIDES_${PN} += "zope-interfaces" + +FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*.egg/*/*/.debug" +FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.c" +FILES_${PN}-doc += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.txt" +FILES_${PN}-test += " \ + ${PYTHON_SITEPACKAGES_DIR}/zope/interface/tests \ + ${PYTHON_SITEPACKAGES_DIR}/zope/interface/common/tests \ +" diff --git a/meta-python/recipes-devtools/python/python-zopeinterface_4.1.1.bb b/meta-python/recipes-devtools/python/python-zopeinterface_4.1.1.bb deleted file mode 100644 index 4151f585b85..00000000000 --- a/meta-python/recipes-devtools/python/python-zopeinterface_4.1.1.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Interface definitions for Zope products" -SECTION = "console/network" - -LICENSE = "ZPL-2.1" -LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46" - -SRC_URI = "http://pypi.python.org/packages/source/z/zope.interface/zope.interface-${PV}.tar.gz" -SRC_URI[md5sum] = "edcd5f719c5eb2e18894c4d06e29b6c6" -SRC_URI[sha256sum] = "91cba7b7cd7cb82f6f4e023fe77f94dc3df4ae5287fd55def2148dc232d0c7da" - -S = "${WORKDIR}/zope.interface-${PV}" - -inherit setuptools - -RPROVIDES_${PN} += "zope-interfaces" -FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*.egg/*/*/.debug" -FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.c" -FILES_${PN}-doc += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.txt" -FILES_${PN}-tests = " \ - ${PYTHON_SITEPACKAGES_DIR}/zope/interface/tests \ - ${PYTHON_SITEPACKAGES_DIR}/zope/interface/common/tests \ -" diff --git a/meta-python/recipes-devtools/python/python-zopeinterface_4.4.3.bb b/meta-python/recipes-devtools/python/python-zopeinterface_4.4.3.bb new file mode 100644 index 00000000000..1bdfd4d3762 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-zopeinterface_4.4.3.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools +require python-zopeinterface.inc + +RDEPENDS_${PN}-test += "python-unittest python-doctest" diff --git a/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb b/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb new file mode 100644 index 00000000000..199e225b23c --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-anyjson.inc diff --git a/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb b/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb new file mode 100644 index 00000000000..d24e1d8b6ab --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-appdirs.inc diff --git a/meta-python/recipes-devtools/python/python3-asn1crypto_0.23.0.bb b/meta-python/recipes-devtools/python/python3-asn1crypto_0.23.0.bb new file mode 100644 index 00000000000..30f3404173f --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-asn1crypto_0.23.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-asn1crypto.inc diff --git a/meta-python/recipes-devtools/python/python3-astroid_1.5.3.bb b/meta-python/recipes-devtools/python/python3-astroid_1.5.3.bb new file mode 100644 index 00000000000..6e32c288f20 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-astroid_1.5.3.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-astroid.inc diff --git a/meta-python/recipes-devtools/python/python3-attr_0.2.0.bb b/meta-python/recipes-devtools/python/python3-attr_0.2.0.bb new file mode 100644 index 00000000000..e80648c8c3e --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-attr_0.2.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-attr.inc diff --git a/meta-python/recipes-devtools/python/python3-attrs_17.3.0.bb b/meta-python/recipes-devtools/python/python3-attrs_17.3.0.bb new file mode 100644 index 00000000000..c34693f506c --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-attrs_17.3.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-attrs.inc diff --git a/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb b/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb new file mode 100644 index 00000000000..0469e613804 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb @@ -0,0 +1,4 @@ +inherit setuptools3 +require python-automat.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-enum " diff --git a/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.2.0.bb b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.2.0.bb new file mode 100644 index 00000000000..c43649dbfe4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.2.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-aws-iot-device-sdk-python.inc diff --git a/meta-python/recipes-devtools/python/python3-babel_2.5.1.bb b/meta-python/recipes-devtools/python/python3-babel_2.5.1.bb new file mode 100644 index 00000000000..05084ac2e59 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-babel_2.5.1.bb @@ -0,0 +1,5 @@ +inherit setuptools3 +require python-babel.inc + +# Requires _pydecimal.py which is in misc +RDEPENDS_${PN} += "${PYTHON_PN}-misc" diff --git a/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb b/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb new file mode 100644 index 00000000000..d2ec9e386c9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-bcrypt.inc diff --git a/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.6.0.bb b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.6.0.bb new file mode 100644 index 00000000000..d98df11e3d2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.6.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-beautifulsoup4.inc diff --git a/meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb b/meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb new file mode 100644 index 00000000000..7ee444dc9ee --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-bitarray.inc diff --git a/meta-python/recipes-devtools/python/python3-can_2.0.0b1.bb b/meta-python/recipes-devtools/python/python3-can_2.0.0b1.bb new file mode 100644 index 00000000000..a1d45b88a67 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-can_2.0.0b1.bb @@ -0,0 +1,4 @@ +require python-can.inc +inherit pypi setuptools3 + +RDEPENDS_${PN} += "python3-sqlite3" diff --git a/meta-python/recipes-devtools/python/python3-cassandra-driver_3.11.0.bb b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.11.0.bb new file mode 100644 index 00000000000..34f149d3f5f --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.11.0.bb @@ -0,0 +1,8 @@ +inherit setuptools3 +require python-cassandra-driver.inc + +# Requires concurrent which is currently in -misc +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-numbers \ +" diff --git a/meta-python/recipes-devtools/python/python3-certifi_2017.11.5.bb b/meta-python/recipes-devtools/python/python3-certifi_2017.11.5.bb new file mode 100644 index 00000000000..70f674b22c0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-certifi_2017.11.5.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-certifi.inc diff --git a/meta-python/recipes-devtools/python/python3-cffi_1.11.2.bb b/meta-python/recipes-devtools/python/python3-cffi_1.11.2.bb new file mode 100644 index 00000000000..e888084347d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-cffi_1.11.2.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-cffi.inc diff --git a/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb b/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb new file mode 100644 index 00000000000..038043c5684 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-chardet.inc diff --git a/meta-python/recipes-devtools/python/python3-click_6.7.bb b/meta-python/recipes-devtools/python/python3-click_6.7.bb new file mode 100644 index 00000000000..ecd1514a828 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-click_6.7.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools3 +require python-click.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-enum" diff --git a/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb b/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb new file mode 100644 index 00000000000..3f667540d9c --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-constantly.inc diff --git a/meta-python/recipes-devtools/python/python3-coverage_4.4.1.bb b/meta-python/recipes-devtools/python/python3-coverage_4.4.1.bb new file mode 100644 index 00000000000..6aa5c59d168 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-coverage_4.4.1.bb @@ -0,0 +1,10 @@ +SUMMARY = "Code coverage measurement for Python" +HOMEPAGE = "https://coverage.readthedocs.io" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93" + +SRC_URI[md5sum] = "4c4d997cb32be4703f1fde54e6cd1b1c" +SRC_URI[sha256sum] = "7a9c44400ee0f3b4546066e0710e1250fd75831adc02ab99dda176ad8726f424" + +inherit pypi setuptools3 + diff --git a/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.3.bb b/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.3.bb new file mode 100644 index 00000000000..58994ffffa3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.3.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-cryptography-vectors.inc diff --git a/meta-python/recipes-devtools/python/python3-cryptography/run-ptest b/meta-python/recipes-devtools/python/python3-cryptography/run-ptest new file mode 100644 index 00000000000..0ba239c2a42 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-cryptography/run-ptest @@ -0,0 +1,2 @@ +#!/bin/sh +py.test diff --git a/meta-python/recipes-devtools/python/python3-cryptography_2.1.3.bb b/meta-python/recipes-devtools/python/python3-cryptography_2.1.3.bb new file mode 100644 index 00000000000..f807042ec0a --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-cryptography_2.1.3.bb @@ -0,0 +1,10 @@ +inherit pypi setuptools3 +require python-cryptography.inc + +SRC_URI += " \ + file://run-ptest \ +" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-lang \ +" diff --git a/meta-python/recipes-devtools/python/python3-cython_0.27.3.bb b/meta-python/recipes-devtools/python/python3-cython_0.27.3.bb new file mode 100644 index 00000000000..2ce6bdbd68b --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-cython_0.27.3.bb @@ -0,0 +1,18 @@ +inherit setuptools3 +require python-cython.inc + +RDEPENDS_${PN} += "\ + python3-setuptools \ +" + +# running build_ext a second time during install fails, because Python +# would then attempt to import cythonized modules built for the target +# architecture. +DISTUTILS_INSTALL_ARGS += "--skip-build" + +do_install_append() { + # rename scripts that would conflict with the Python 2 build of Cython + mv ${D}${bindir}/cython ${D}${bindir}/cython3 + mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3 + mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3 +} diff --git a/meta-python/recipes-devtools/python/python3-dateutil_2.6.1.bb b/meta-python/recipes-devtools/python/python3-dateutil_2.6.1.bb new file mode 100644 index 00000000000..1d2baf55c99 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-dateutil_2.6.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-dateutil.inc diff --git a/meta-python/recipes-devtools/python/python3-decorator_4.1.2.bb b/meta-python/recipes-devtools/python/python3-decorator_4.1.2.bb new file mode 100644 index 00000000000..7840b20c0f8 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-decorator_4.1.2.bb @@ -0,0 +1,6 @@ +inherit setuptools3 +require python-decorator.inc + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-enum \ +" diff --git a/meta-python/recipes-devtools/python/python3-django-south_1.0.2.bb b/meta-python/recipes-devtools/python/python3-django-south_1.0.2.bb new file mode 100644 index 00000000000..10519111fa0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-django-south_1.0.2.bb @@ -0,0 +1,2 @@ +require python-django-south.inc +inherit setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-django_1.11.5.bb b/meta-python/recipes-devtools/python/python3-django_1.11.5.bb new file mode 100644 index 00000000000..e1e38c32257 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-django_1.11.5.bb @@ -0,0 +1,2 @@ +require python-django.inc +inherit setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb b/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb new file mode 100644 index 00000000000..26024c68fdf --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb @@ -0,0 +1,9 @@ +inherit setuptools3 +require python-dnspython.inc + +# Requires _pydecimal.py which is in misc +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-enum \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-selectors \ +" diff --git a/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb b/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb new file mode 100644 index 00000000000..95a5405f380 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-feedformatter.inc diff --git a/meta-python/recipes-devtools/python/python3-flask-login_0.4.0.bb b/meta-python/recipes-devtools/python/python3-flask-login_0.4.0.bb new file mode 100644 index 00000000000..2d23fe16745 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-flask-login_0.4.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-flask-login.inc diff --git a/meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb b/meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb new file mode 100644 index 00000000000..2102554b66d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-flask-pymongo.inc diff --git a/meta-python/recipes-devtools/python/python3-flask_0.12.2.bb b/meta-python/recipes-devtools/python/python3-flask_0.12.2.bb new file mode 100644 index 00000000000..cd439900c9f --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-flask_0.12.2.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-flask.inc diff --git a/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb b/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb new file mode 100644 index 00000000000..1f172e58680 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb @@ -0,0 +1,3 @@ +require python-gevent.inc +inherit setuptools3 + diff --git a/meta-python/recipes-devtools/python/python3-greenlet_0.4.12.bb b/meta-python/recipes-devtools/python/python3-greenlet_0.4.12.bb new file mode 100644 index 00000000000..1aedf7fa8d3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-greenlet_0.4.12.bb @@ -0,0 +1,2 @@ +inherit distutils3 +require python-greenlet.inc diff --git a/meta-python/recipes-devtools/python/python3-html5lib_0.999999999.bb b/meta-python/recipes-devtools/python/python3-html5lib_0.999999999.bb new file mode 100644 index 00000000000..6bd8b49f55b --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-html5lib_0.999999999.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-html5lib.inc diff --git a/meta-python/recipes-devtools/python/python3-humanize_0.5.1.bb b/meta-python/recipes-devtools/python/python3-humanize_0.5.1.bb new file mode 100644 index 00000000000..04464ac59eb --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-humanize_0.5.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-humanize.inc diff --git a/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb b/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb new file mode 100644 index 00000000000..3d30af29adb --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb @@ -0,0 +1,4 @@ +inherit setuptools3 +require python-hyperlink.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-selectors ${PYTHON_PN}-enum" diff --git a/meta-python/recipes-devtools/python/python3-idna_2.6.bb b/meta-python/recipes-devtools/python/python3-idna_2.6.bb new file mode 100644 index 00000000000..a08ca714aca --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-idna_2.6.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-idna.inc diff --git a/meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb b/meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb new file mode 100644 index 00000000000..0f04df4a679 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-incremental.inc diff --git a/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb b/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb new file mode 100644 index 00000000000..4a332b53bd9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-iso8601.inc diff --git a/meta-python/recipes-devtools/python/python3-isort_4.2.15.bb b/meta-python/recipes-devtools/python/python3-isort_4.2.15.bb new file mode 100644 index 00000000000..755b3e2f239 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-isort_4.2.15.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-isort.inc diff --git a/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb b/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb new file mode 100644 index 00000000000..cd3082528cc --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-itsdangerous.inc diff --git a/meta-python/recipes-devtools/python/python3-jinja2_2.9.6.bb b/meta-python/recipes-devtools/python/python3-jinja2_2.9.6.bb new file mode 100644 index 00000000000..8375f8cf4e7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-jinja2_2.9.6.bb @@ -0,0 +1,7 @@ +inherit pypi setuptools3 +require python-jinja2.inc + +# Requires _pydecimal which is in misc +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-misc \ +" diff --git a/meta-python/recipes-devtools/python/python3-jsonschema_2.6.0.bb b/meta-python/recipes-devtools/python/python3-jsonschema_2.6.0.bb new file mode 100644 index 00000000000..5aaee682b65 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-jsonschema_2.6.0.bb @@ -0,0 +1,6 @@ +inherit pypi setuptools3 +require python-jsonschema.inc + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-misc \ +" diff --git a/meta-python/recipes-devtools/python/python3-langtable_0.0.37.bb b/meta-python/recipes-devtools/python/python3-langtable_0.0.37.bb new file mode 100644 index 00000000000..362ca1a72b9 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-langtable_0.0.37.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "langtable is used to guess reasonable defaults for locale,\ +keyboard, territory" +HOMEPAGE = "https://github.com/mike-fabian/langtable/" +LICENSE = "GPLv3+" +SECTION = "devel/python" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +S = "${WORKDIR}/git" +B = "${S}" + +SRCREV = "3f001eef027ba69ef2fdb35c670b7da26b79b5e2" +PV = "0.0.37+git${SRCPV}" +SRC_URI = "git://github.com/mike-fabian/langtable.git;branch=master \ +" + +inherit setuptools3 python3native + +DISTUTILS_INSTALL_ARGS = "--prefix=${D}/${prefix} \ + --install-data=${D}/${datadir}/langtable" + +FILES_${PN} += "${datadir}/*" diff --git a/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb b/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb new file mode 100644 index 00000000000..150e12fd468 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-lazy-object-proxy.inc diff --git a/meta-python/recipes-devtools/python/python3-lxml_4.1.1.bb b/meta-python/recipes-devtools/python/python3-lxml_4.1.1.bb new file mode 100644 index 00000000000..ff4bc7faad2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-lxml_4.1.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-lxml.inc diff --git a/meta-python/recipes-devtools/python/python3-markupsafe_1.0.bb b/meta-python/recipes-devtools/python/python3-markupsafe_1.0.bb new file mode 100644 index 00000000000..765e3c906b3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-markupsafe_1.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-markupsafe.inc diff --git a/meta-python/recipes-devtools/python/python3-msgpack_0.4.8.bb b/meta-python/recipes-devtools/python/python3-msgpack_0.4.8.bb new file mode 100644 index 00000000000..096d7ddcb8c --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-msgpack_0.4.8.bb @@ -0,0 +1,2 @@ +require python-msgpack.inc +inherit setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb b/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb new file mode 100644 index 00000000000..7f9cd55648d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb @@ -0,0 +1,9 @@ +SUMMARY = "Multidicts are useful for working with HTTP headers, URL query args etc." +HOMEPAGE = "https://github.com/aio-libs/multidict/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e74c98abe0de8f798ca609137f9cef4a" + +inherit pypi setuptools3 + +SRC_URI[md5sum] = "06ca91d993de2d04c7ee6df0cbb44ea2" +SRC_URI[sha256sum] = "f82e61c7408ed0dce1862100db55595481911f159d6ddec0b375d35b6449509b" diff --git a/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.3.bb b/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.3.bb new file mode 100644 index 00000000000..3f07b2ed27d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.3.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-ndg-httpsclient.inc diff --git a/meta-python/recipes-devtools/python/python3-netaddr_0.7.19.bb b/meta-python/recipes-devtools/python/python3-netaddr_0.7.19.bb new file mode 100644 index 00000000000..30416a4ffe2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-netaddr_0.7.19.bb @@ -0,0 +1,2 @@ +require python-netaddr.inc +inherit setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb b/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb new file mode 100644 index 00000000000..35440bc0acd --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "This module offers a simple interface to query NTP servers from Python." +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://ntplib.py;beginline=1;endline=23;md5=afa07338a9595257e94c205c3e72224d" + +SRCNAME = "ntplib" +SRC_URI[md5sum] = "c7cc8e9b09f40c84819859d70b7784ca" +SRC_URI[sha256sum] = "c4621b64d50be9461d9bd9a71ba0b4af06fbbf818bbd483752d95c1a4e273ede" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit setuptools3 python3native pypi diff --git a/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb b/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb new file mode 100644 index 00000000000..be6d4e169f6 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb @@ -0,0 +1,10 @@ +SUMMARY = "A MutableSet that remembers its order, so that every entry has an index." +HOMEPAGE = "http://github.com/LuminosoInsight/ordered-set" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://MIT-LICENSE;md5=0feb0c85b722f488b87844fb5f81d2dc" + +SRC_URI[md5sum] = "7b8d73dc64fd3c783ecb48e050bfcc0d" +SRC_URI[sha256sum] = "942cad5d7d5b0760d5cbe93dfb385ac2ed402ca1d48c9f4e102d7d5cce3a90eb" + +inherit pypi setuptools3 + diff --git a/meta-python/recipes-devtools/python/python3-paho-mqtt_1.3.1.bb b/meta-python/recipes-devtools/python/python3-paho-mqtt_1.3.1.bb new file mode 100644 index 00000000000..4981e61ed86 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-paho-mqtt_1.3.1.bb @@ -0,0 +1,3 @@ +inherit setuptools3 +require python-paho-mqtt.inc + diff --git a/meta-python/recipes-devtools/python/python3-pandas_0.21.0.bb b/meta-python/recipes-devtools/python/python3-pandas_0.21.0.bb new file mode 100644 index 00000000000..b5dd5e0924b --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pandas_0.21.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pandas.inc diff --git a/meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb b/meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb new file mode 100644 index 00000000000..18180a07ab6 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-passlib.inc \ No newline at end of file diff --git a/meta-python/recipes-devtools/python/python3-pexpect_4.3.0.bb b/meta-python/recipes-devtools/python/python3-pexpect_4.3.0.bb new file mode 100644 index 00000000000..cf39233a3a7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pexpect_4.3.0.bb @@ -0,0 +1,2 @@ +require python-pexpect.inc +inherit pypi setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch b/meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch new file mode 100644 index 00000000000..3beef0700ad --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch @@ -0,0 +1,29 @@ +From 04d04a8fa1ef3d8dbdaebbaac9ae936e1c8234c1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 28 Jun 2017 21:17:43 -0400 +Subject: [PATCH] remove requirement of nose + +The nose extends unittest to make testing easier. +Do not need the test suite, so remove requirement of nose. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + setup.py | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 3f7c7cb..c42a546 100644 +--- a/setup.py ++++ b/setup.py +@@ -53,6 +53,4 @@ setup( + keywords='pid pidfile context manager decorator', + packages=["pid"], + install_requires=[], +- test_suite='nose.collector', +- setup_requires=['nose>=1.0'], + ) +-- +2.8.1 + diff --git a/meta-python/recipes-devtools/python/python3-pid_2.1.1.bb b/meta-python/recipes-devtools/python/python3-pid_2.1.1.bb new file mode 100644 index 00000000000..c88d9a0b551 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pid_2.1.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "Pidfile featuring stale detection and file-locking, can also \ +be used as context-manager or decorator" +HOMEPAGE = "https://github.com/trbs/pid/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=83d53cbd3105063f20305bc313464e29" + +SRC_URI[md5sum] = "9634b1e3d545544a9d496e25e4530d14" +SRC_URI[sha256sum] = "b443169d3dc21397695b4a82016fadb4cfdb0ed8b2ddb4aaa428e1701bb34e1f" + +inherit pypi setuptools3 + +SRC_URI += " \ + file://0001-remove-requirement-of-nose.patch \ +" diff --git a/meta-python/recipes-devtools/python/python3-prctl/0001-support-cross-complication.patch b/meta-python/recipes-devtools/python/python3-prctl/0001-support-cross-complication.patch new file mode 100644 index 00000000000..775ae1b2e2d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-prctl/0001-support-cross-complication.patch @@ -0,0 +1,61 @@ +From 9a16800738547d117284354bbcad7dd77d9d0344 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 21 Apr 2016 03:05:57 -0400 +Subject: [PATCH] support cross-complication + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + setup.py | 35 ----------------------------------- + 1 file changed, 35 deletions(-) + +diff --git a/setup.py b/setup.py +index 658d1a5..e8be7eb 100755 +--- a/setup.py ++++ b/setup.py +@@ -13,41 +13,6 @@ import sys + # - Need gcc + # - Need C headers + # - Need libcap headers +-if not sys.platform.startswith('linux'): +- sys.stderr.write("This module only works on linux\n") +- sys.exit(1) +- +-kvers = os.uname()[2] +-if kvers < '2.6.18' and not os.environ.get("PRCTL_SKIP_KERNEL_CHECK",False): +- sys.stderr.write("This module requires linux 2.6.18 or newer\n") +- sys.exit(1) +- +-if sys.version_info[:2] < (2,4): +- sys.stderr.write("This module requires python 2.4 or newer\n") +- sys.exit(1) +- +-exit = False +-try: +- subprocess.call(['gcc','-v'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) +-except: +- sys.stderr.write("You need to install gcc to build this module\n") +- sys.exit(1) +- +-sp = subprocess.Popen(['cpp'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) +-sp.communicate('#include \n'.encode()) +-if sp.returncode: +- sys.stderr.write("You need to install libc development headers to build this module\n") +- exit = True +- +-sp = subprocess.Popen(['cpp'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) +-sp.communicate('#include \n'.encode()) +-if sp.returncode: +- sys.stderr.write("You need to install libcap development headers to build this module\n") +- exit = True +- +-if exit: +- sys.exit(1) +- + _prctl = Extension("_prctl", + sources = ['_prctlmodule.c'], + depends = ['securebits.h'], +-- +2.8.1 + diff --git a/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb b/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb new file mode 100644 index 00000000000..5de83ce4878 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "Control process attributes through prctl" +DESCRIPTION = "The linux prctl function allows you to control specific characteristics of a \ +process' behaviour. Usage of the function is fairly messy though, due to \ +limitations in C and linux. This module provides a nice non-messy python(ic) \ +interface." +SECTION = "devel/python" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=5eb2f4bcd60326f83e5deb542372d52f" + +S = "${WORKDIR}/git" +B = "${S}" + +SRCREV = "1107d0be7bec4b28c85c62c454882d16844c930a" +PV = "1.6.1+git${SRCPV}" + +SRC_URI = "git://github.com/seveas/python-prctl;branch=master \ + file://0001-support-cross-complication.patch \ +" +inherit setuptools3 python3native + +DEPENDS += "libcap" + diff --git a/meta-python/recipes-devtools/python/python3-pretend_1.0.8.bb b/meta-python/recipes-devtools/python/python3-pretend_1.0.8.bb new file mode 100644 index 00000000000..9c5d8a8437c --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pretend_1.0.8.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-pretend.inc diff --git a/meta-python/recipes-devtools/python/python3-progress_1.3.bb b/meta-python/recipes-devtools/python/python3-progress_1.3.bb new file mode 100644 index 00000000000..45e26421330 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-progress_1.3.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-progress.inc diff --git a/meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb b/meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb new file mode 100644 index 00000000000..d8f6389cc49 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb @@ -0,0 +1,9 @@ +inherit pypi setuptools3 +require python-prompt-toolkit.inc + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-enum \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-textutils \ +" diff --git a/meta-python/recipes-devtools/python/python3-protobuf_3.4.0.bb b/meta-python/recipes-devtools/python/python3-protobuf_3.4.0.bb new file mode 100644 index 00000000000..781d1dc4da1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-protobuf_3.4.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-protobuf.inc diff --git a/meta-python/recipes-devtools/python/python3-psutil_5.4.1.bb b/meta-python/recipes-devtools/python/python3-psutil_5.4.1.bb new file mode 100644 index 00000000000..c1969ea6571 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-psutil_5.4.1.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools3 +require python-psutil.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-netclient" diff --git a/meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb b/meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb new file mode 100644 index 00000000000..bdcd0e25394 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb @@ -0,0 +1,2 @@ +require python-ptyprocess.inc +inherit pypi setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-py_1.4.34.bb b/meta-python/recipes-devtools/python/python3-py_1.4.34.bb new file mode 100644 index 00000000000..0ee373d24c0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-py_1.4.34.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-py.inc diff --git a/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.8.4.bb b/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.8.4.bb new file mode 100644 index 00000000000..b7da1a43d89 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.8.4.bb @@ -0,0 +1,2 @@ +require python-pyalsaaudio.inc +inherit pypi setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-pyasn1_0.3.7.bb b/meta-python/recipes-devtools/python/python3-pyasn1_0.3.7.bb new file mode 100644 index 00000000000..a5e2a713626 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyasn1_0.3.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-pyasn1.inc diff --git a/meta-python/recipes-devtools/python/python3-pybind11_2.2.1.bb b/meta-python/recipes-devtools/python/python3-pybind11_2.2.1.bb new file mode 100644 index 00000000000..355e28460e5 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pybind11_2.2.1.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-pybind11.inc diff --git a/meta-python/recipes-devtools/python/python3-pycparser_2.18.bb b/meta-python/recipes-devtools/python/python3-pycparser_2.18.bb new file mode 100644 index 00000000000..7cc024ea09f --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pycparser_2.18.bb @@ -0,0 +1,6 @@ +inherit pypi setuptools3 +require python-pycparser.inc + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-netclient \ + " diff --git a/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb b/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb new file mode 100644 index 00000000000..7ed1c63b63b --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb @@ -0,0 +1,2 @@ +require python-pydbus.inc +inherit pypi setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb b/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb new file mode 100644 index 00000000000..25af1b5c0ae --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb @@ -0,0 +1,3 @@ +inherit setuptools3 +require python-pyfirmata.inc + diff --git a/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb b/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb new file mode 100644 index 00000000000..b3bab989ab8 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pyinotify.inc diff --git a/meta-python/recipes-devtools/python/python3-pylint_1.7.4.bb b/meta-python/recipes-devtools/python/python3-pylint_1.7.4.bb new file mode 100644 index 00000000000..563e8316cf2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pylint_1.7.4.bb @@ -0,0 +1,2 @@ +inherit setuptools3 python3-dir +require python-pylint.inc diff --git a/meta-python/recipes-devtools/python/python3-pymisp_2.4.82.bb b/meta-python/recipes-devtools/python/python3-pymisp_2.4.82.bb new file mode 100644 index 00000000000..4523d9e30a7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pymisp_2.4.82.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-pymisp.inc diff --git a/meta-python/recipes-devtools/python/python3-pymongo_3.5.1.bb b/meta-python/recipes-devtools/python/python3-pymongo_3.5.1.bb new file mode 100644 index 00000000000..9f02cab1376 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pymongo_3.5.1.bb @@ -0,0 +1,10 @@ +inherit pypi setuptools3 +require python-pymongo.inc + +# Requires _pydecimal which is in misc +RDEPENDS_${PYTHON_PN}-bson += " \ + ${PYTHON_PN}-enum \ + ${PYTHON_PN}-misc \ + ${PYTHON_PN}-selectors \ + ${PYTHON_PN}-subprocess \ +" diff --git a/meta-python/recipes-devtools/python/python3-pyopenssl_17.3.0.bb b/meta-python/recipes-devtools/python/python3-pyopenssl_17.3.0.bb new file mode 100644 index 00000000000..0f0f83e3a27 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyopenssl_17.3.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-pyopenssl.inc diff --git a/meta-python/recipes-devtools/python/python3-pyparsing_2.2.0.bb b/meta-python/recipes-devtools/python/python3-pyparsing_2.2.0.bb new file mode 100644 index 00000000000..0805fee3e23 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyparsing_2.2.0.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pyparsing.inc diff --git a/meta-python/recipes-devtools/python/python3-pyroute2_0.3.22.bb b/meta-python/recipes-devtools/python/python3-pyroute2_0.3.22.bb new file mode 100644 index 00000000000..a23e72c4ad3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyroute2_0.3.22.bb @@ -0,0 +1,2 @@ +require python-pyroute2.inc +inherit setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-pyserial_3.4.bb b/meta-python/recipes-devtools/python/python3-pyserial_3.4.bb new file mode 100644 index 00000000000..44c13685e95 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyserial_3.4.bb @@ -0,0 +1,9 @@ +inherit setuptools3 +require python-pyserial.inc + +do_install_append() { + rm -f ${D}${bindir}/miniterm.py + rmdir ${D}${bindir} +} + +RDEPENDS_${PN} += "${PYTHON_PN}-enum ${PYTHON_PN}-selectors" diff --git a/meta-python/recipes-devtools/python/python3-pysocks_1.6.7.bb b/meta-python/recipes-devtools/python/python3-pysocks_1.6.7.bb new file mode 100644 index 00000000000..f8aa01be81f --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pysocks_1.6.7.bb @@ -0,0 +1,8 @@ +inherit pypi setuptools3 +require python-pysocks.inc + +RDEPENDS_${PN}_class-target += "\ + ${PYTHON_PN}-enum \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-selectors \ +" diff --git a/meta-python/recipes-devtools/python/python3-pytest-runner_2.12.1.bb b/meta-python/recipes-devtools/python/python3-pytest-runner_2.12.1.bb new file mode 100644 index 00000000000..df56ba6d472 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pytest-runner_2.12.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pytest-runner.inc diff --git a/meta-python/recipes-devtools/python/python3-pytest_3.2.3.bb b/meta-python/recipes-devtools/python/python3-pytest_3.2.3.bb new file mode 100644 index 00000000000..466cfa82537 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pytest_3.2.3.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-pytest.inc diff --git a/meta-python/recipes-devtools/python/python3-pytz_2017.3.bb b/meta-python/recipes-devtools/python/python3-pytz_2017.3.bb new file mode 100755 index 00000000000..19a89dc55de --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pytz_2017.3.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pytz.inc diff --git a/meta-python/recipes-devtools/python/python3-pyudev_0.21.0.bb b/meta-python/recipes-devtools/python/python3-pyudev_0.21.0.bb new file mode 100644 index 00000000000..0292555c744 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyudev_0.21.0.bb @@ -0,0 +1,8 @@ +require python-pyudev.inc + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-lang \ +" + +inherit pypi setuptools3 + diff --git a/meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb b/meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb new file mode 100644 index 00000000000..1ecede7cf82 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pyusb.inc diff --git a/meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb b/meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb new file mode 100644 index 00000000000..470aca608b0 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pyyaml.inc diff --git a/meta-python/recipes-devtools/python/python3-redis_2.10.6.bb b/meta-python/recipes-devtools/python/python3-redis_2.10.6.bb new file mode 100644 index 00000000000..b192ed8725a --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-redis_2.10.6.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-redis.inc diff --git a/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb b/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb new file mode 100644 index 00000000000..8652876a4b3 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb @@ -0,0 +1,14 @@ +SUMMARY = "File transport adapter for Requests" +HOMEPAGE = "http://github.com/dashea/requests-file" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9cc728d6087e43796227b0a31422de6b" + +SRC_URI[md5sum] = "a907efb75faf0ccbb1857432bf9d8c0f" +SRC_URI[sha256sum] = "f518e7cfe048e053fd1019dfb891b4c55b871c56c5a31693d733240c80b8f191" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + python3-requests \ +" + diff --git a/meta-python/recipes-devtools/python/python3-requests-ftp_0.3.1.bb b/meta-python/recipes-devtools/python/python3-requests-ftp_0.3.1.bb new file mode 100644 index 00000000000..3f99ed67566 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-requests-ftp_0.3.1.bb @@ -0,0 +1,14 @@ +SUMMARY = "FTP Transport Adapter for Requests" +HOMEPAGE = "http://github.com/Lukasa/requests-ftp" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6683a23c9968b97709441dc884d46df6" + +SRC_URI[md5sum] = "1a52ad1219e696b5abd5449d1ccc0294" +SRC_URI[sha256sum] = "7504ceb5cba8a5c0135ed738596820a78c5f2be92d79b29f96ba99b183d8057a" + +inherit pypi setuptools3 + +RDEPENDS_${PN} += " \ + python3-requests \ +" + diff --git a/meta-python/recipes-devtools/python/python3-requests_2.18.4.bb b/meta-python/recipes-devtools/python/python3-requests_2.18.4.bb new file mode 100644 index 00000000000..d91d993bf25 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-requests_2.18.4.bb @@ -0,0 +1,5 @@ +inherit setuptools3 +require python-requests.inc + +# Add the runtime depends for selectors.py +RDEPENDS_${PN} += "${PYTHON_PN}-misc" diff --git a/meta-python/recipes-devtools/python/python3-rfc3987_1.3.7.bb b/meta-python/recipes-devtools/python/python3-rfc3987_1.3.7.bb new file mode 100644 index 00000000000..cd1536b36f2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-rfc3987_1.3.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-rfc3987.inc diff --git a/meta-python/recipes-devtools/python/python3-scrypt_0.8.0.bb b/meta-python/recipes-devtools/python/python3-scrypt_0.8.0.bb new file mode 100644 index 00000000000..f49665322ed --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-scrypt_0.8.0.bb @@ -0,0 +1,3 @@ +inherit setuptools3 python3-dir +require python-scrypt.inc + diff --git a/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb b/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb new file mode 100644 index 00000000000..377af12e16d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb @@ -0,0 +1,2 @@ +inherit setuptools3 pypi +require python-sdnotify.inc diff --git a/meta-python/recipes-devtools/python/python3-serpent_1.23.bb b/meta-python/recipes-devtools/python/python3-serpent_1.23.bb new file mode 100644 index 00000000000..199dcfafdaf --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-serpent_1.23.bb @@ -0,0 +1,8 @@ +inherit setuptools3 +require python-serpent.inc + +# Requires _pydecimal which is in misc +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-enum \ + ${PYTHON_PN}-misc \ +" diff --git a/meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.6.bb b/meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.6.bb new file mode 100644 index 00000000000..5bf59838743 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.6.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-setuptools-scm.inc diff --git a/meta-python/recipes-devtools/python/python3-simplejson_3.12.0.bb b/meta-python/recipes-devtools/python/python3-simplejson_3.12.0.bb new file mode 100644 index 00000000000..d44bc1526d2 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-simplejson_3.12.0.bb @@ -0,0 +1,7 @@ +inherit setuptools3 +require python-simplejson.inc + +# Requires _pydecimal which is in misc +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-misc \ +" diff --git a/meta-python/recipes-devtools/python/python3-smbus_3.1.2.bb b/meta-python/recipes-devtools/python/python3-smbus_3.1.2.bb new file mode 100644 index 00000000000..b357bcd822b --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-smbus_3.1.2.bb @@ -0,0 +1,2 @@ +inherit distutils3 +require python-smbus.inc diff --git a/meta-python/recipes-devtools/python/python3-spidev_3.2.bb b/meta-python/recipes-devtools/python/python3-spidev_3.2.bb new file mode 100644 index 00000000000..610611e438d --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-spidev_3.2.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-spidev.inc diff --git a/meta-python/recipes-devtools/python/python3-sqlalchemy_1.1.15.bb b/meta-python/recipes-devtools/python/python3-sqlalchemy_1.1.15.bb new file mode 100644 index 00000000000..01f1e97ec87 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-sqlalchemy_1.1.15.bb @@ -0,0 +1,5 @@ +inherit setuptools3 +require python-sqlalchemy.inc + +# Requires _pydecimal.py which is in misc +RDEPENDS_${PN} += "${PYTHON_PN}-enum ${PYTHON_PN}-misc" diff --git a/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb b/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb new file mode 100644 index 00000000000..9e37052aed4 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-strict-rfc3339.inc diff --git a/meta-python/recipes-devtools/python/python3-systemd_234.bb b/meta-python/recipes-devtools/python/python3-systemd_234.bb new file mode 100644 index 00000000000..845b7d9e10f --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-systemd_234.bb @@ -0,0 +1,13 @@ +SUMMARY = "Python interface for libsystemd" +HOMEPAGE = "https://github.com/systemd/python-systemd" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c" + +PYPI_PACKAGE = "systemd-python" +DEPENDS += "systemd (<=234)" +RDEPENDS_${PN} += "systemd" +REQUIRED_DISTRO_FEATURES = "systemd" +inherit pypi setuptools3 distro_features_check + +SRC_URI[md5sum] = "5071ea5bcb976186e92a3f5e75df221d" +SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7" diff --git a/meta-python/recipes-devtools/python/python3-tornado_4.5.2.bb b/meta-python/recipes-devtools/python/python3-tornado_4.5.2.bb new file mode 100644 index 00000000000..77c9fb516f6 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-tornado_4.5.2.bb @@ -0,0 +1,7 @@ +inherit pypi setuptools3 +require python-tornado.inc + +# Requires _compression which is currently located in misc +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-misc \ + " diff --git a/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb b/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb new file mode 100644 index 00000000000..d7533d8e702 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb @@ -0,0 +1,67 @@ +inherit pypi setuptools3 +require python-twisted.inc + +RDEPENDS_${PN}-core += "python3-lang" + +FILES_${PN}-core_append += " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/__pycache__ \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__pycache__/*pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/__init__*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/notestplugin*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/testplugin*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_ftp*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_inet*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_manhole*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_portforward*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_socks*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_telnet*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_trial*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_core*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_qtstub*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_reactors*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/cred*.pyc \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/dropin*.cache \ +" + +FILES_${PN}-names_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_names*.pyc \ +" + +FILES_${PN}-news_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_news*.pyc \ +" + +FILES_${PN}-protocols_append += " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/__pycache__/*pyc \ +" + +FILES_${PN}-conch_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_conch*.pyc \ +" + +FILES_${PN}-lore_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_lore*.pyc \ +" +FILES_${PN}-mail_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_mail*.pyc \ +" + +FILES_${PN}-web_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_web*.pyc \ +" + +FILES_${PN}-words_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_words*.pyc \ +" + +FILES_${PN}-flow_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_flow*.pyc \ +" + +FILES_${PN}-pair_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_pair*.pyc \ +" + +FILES_${PN}-runner_append = " \ + ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_runner*.pyc \ +" diff --git a/meta-python/recipes-devtools/python/python3-ujson_1.35.bb b/meta-python/recipes-devtools/python/python3-ujson_1.35.bb new file mode 100644 index 00000000000..ae4cc0a8129 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-ujson_1.35.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-ujson.inc diff --git a/meta-python/recipes-devtools/python/python3-unidiff_0.5.4.bb b/meta-python/recipes-devtools/python/python3-unidiff_0.5.4.bb new file mode 100644 index 00000000000..0ddc7e2f204 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-unidiff_0.5.4.bb @@ -0,0 +1,2 @@ +require python-unidiff.inc +inherit setuptools3 diff --git a/meta-python/recipes-devtools/python/python3-urllib3_1.22.bb b/meta-python/recipes-devtools/python/python3-urllib3_1.22.bb new file mode 100644 index 00000000000..19eb7025b22 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-urllib3_1.22.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-urllib3.inc diff --git a/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb b/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb new file mode 100644 index 00000000000..189a65a98ba --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "Python vcversioner, automagically update the project's version" +HOMEPAGE = "https://github.com/habnabit/vcversioner" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://PKG-INFO;md5=827a7a91a8d20d3c666b665cd96db8e3" + +SRC_URI[md5sum] = "aab6ef5e0cf8614a1b1140ed5b7f107d" +SRC_URI[sha256sum] = "dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b" + +inherit pypi setuptools3 + +do_compile_append() { + ${PYTHON} setup.py -q bdist_egg --dist-dir ./ +} + +do_install_append() { + install -m 0644 ${S}/vcversioner*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/ +} + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-subprocess \ + " + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-devtools/python/python3-wcwidth_0.1.7.bb b/meta-python/recipes-devtools/python/python3-wcwidth_0.1.7.bb new file mode 100644 index 00000000000..5f6259b081a --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-wcwidth_0.1.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-wcwidth.inc diff --git a/meta-python/recipes-devtools/python/python3-webcolors_1.7.bb b/meta-python/recipes-devtools/python/python3-webcolors_1.7.bb new file mode 100644 index 00000000000..fcd9f707266 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-webcolors_1.7.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-webcolors.inc diff --git a/meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb b/meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb new file mode 100644 index 00000000000..71fe741e4cb --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-webencodings.inc diff --git a/meta-python/recipes-devtools/python/python3-werkzeug_0.12.2.bb b/meta-python/recipes-devtools/python/python3-werkzeug_0.12.2.bb new file mode 100644 index 00000000000..145a1de0a13 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-werkzeug_0.12.2.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools3 +require python-werkzeug.inc + +RDEPENDS_${PN} += "${PYTHON_PN}-misc" diff --git a/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb b/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb new file mode 100644 index 00000000000..5d8af303c74 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-whoosh.inc diff --git a/meta-python/recipes-devtools/python/python3-wrapt_1.10.11.bb b/meta-python/recipes-devtools/python/python3-wrapt_1.10.11.bb new file mode 100644 index 00000000000..85f446ef980 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-wrapt_1.10.11.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-wrapt.inc diff --git a/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb b/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb new file mode 100644 index 00000000000..b7bd969c71e --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb @@ -0,0 +1,2 @@ +inherit pypi setuptools3 +require python-xlrd.inc diff --git a/meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb b/meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb new file mode 100644 index 00000000000..be11858d341 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb @@ -0,0 +1,4 @@ +inherit pypi setuptools3 +require python-zopeinterface.inc + +RDEPENDS_${PN}-test += "python3-unittest python3-doctest" diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch new file mode 100644 index 00000000000..0ee32057cb4 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch @@ -0,0 +1,70 @@ +From 7d483c27ac0a23ca3bba7f320918afc40013bd8e Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 8 May 2017 14:25:52 +0800 +Subject: [PATCH 01/13] comment out selinux + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + blivet/flags.py | 5 +++-- + blivet/util.py | 6 +++++- + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/blivet/flags.py b/blivet/flags.py +index 06822db..b55a93f 100644 +--- a/blivet/flags.py ++++ b/blivet/flags.py +@@ -20,7 +20,7 @@ + # + + import shlex +-import selinux ++#import selinux + + + class Flags(object): +@@ -49,7 +49,8 @@ class Flags(object): + # + # enable/disable functionality + # +- self.selinux = selinux.is_selinux_enabled() ++ #self.selinux = selinux.is_selinux_enabled() ++ self.selinux = False + self.multipath = True + self.dmraid = True + self.ibft = True +diff --git a/blivet/util.py b/blivet/util.py +index e3e71ce..0cf5188 100644 +--- a/blivet/util.py ++++ b/blivet/util.py +@@ -4,7 +4,7 @@ import glob + import itertools + import os + import shutil +-import selinux ++#import selinux + import subprocess + import re + import sys +@@ -431,6 +431,8 @@ def get_cow_sysfs_path(dev_path, dev_sysfsPath): + def match_path_context(path): + """ Return the default SELinux context for the given path. """ + context = None ++ return context ++ + try: + context = selinux.matchpathcon(os.path.normpath(path), 0)[1] + except OSError as e: +@@ -455,6 +457,8 @@ def set_file_context(path, context, root=None): + + True if successful, False if not. + """ ++ return False ++ + if root is None: + root = '/' + +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch new file mode 100644 index 00000000000..01e71be304f --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch @@ -0,0 +1,102 @@ +From 86744d408b91acdcb086a03d7779fcda152f2ac3 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 8 May 2017 14:39:56 +0800 +Subject: [PATCH 02/13] run_program support timeout + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + blivet/util.py | 68 +++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 39 insertions(+), 29 deletions(-) + +diff --git a/blivet/util.py b/blivet/util.py +index 0cf5188..d4bd9bb 100644 +--- a/blivet/util.py ++++ b/blivet/util.py +@@ -158,6 +158,30 @@ class Path(str): + def __hash__(self): + return self._path.__hash__() + ++def timeout_command(argv, timeout, *args, **kwargs): ++ """call shell-command and either return its output or kill it ++ if it doesn't normally exit within timeout seconds and return None""" ++ import subprocess, datetime, os, time, signal ++ start = datetime.datetime.now() ++ ++ try: ++ proc = subprocess.Popen(argv, *args, **kwargs) ++ while proc.poll() is None: ++ time.sleep(0.1) ++ now = datetime.datetime.now() ++ if (now - start).seconds> timeout: ++ os.kill(proc.pid, signal.SIGKILL) ++ os.waitpid(-1, os.WNOHANG) ++ program_log.debug("%d seconds timeout" % timeout) ++ return (-1, None) ++ ++ ++ except OSError as e: ++ program_log.error("Error running %s: %s", argv[0], e.strerror) ++ raise ++ ++ program_log.debug("Return code: %d", proc.returncode) ++ return (proc.returncode, proc.stdout.read()) + + def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False): + if env_prune is None: +@@ -180,36 +204,22 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa + stderr_dir = subprocess.STDOUT + else: + stderr_dir = subprocess.PIPE +- try: +- proc = subprocess.Popen(argv, +- stdin=stdin, +- stdout=subprocess.PIPE, +- stderr=stderr_dir, +- close_fds=True, +- preexec_fn=chroot, cwd=root, env=env) +- +- out, err = proc.communicate() +- if not binary_output and six.PY3: +- out = out.decode("utf-8") +- if out: +- if not stderr_to_stdout: +- program_log.info("stdout:") +- for line in out.splitlines(): +- program_log.info("%s", line) +- +- if not stderr_to_stdout and err: +- program_log.info("stderr:") +- for line in err.splitlines(): +- program_log.info("%s", line) +- +- except OSError as e: +- program_log.error("Error running %s: %s", argv[0], e.strerror) +- raise +- +- program_log.debug("Return code: %d", proc.returncode) +- +- return (proc.returncode, out) + ++ res, out = timeout_command(argv, 10, ++ stdin=stdin, ++ stdout=subprocess.PIPE, ++ stderr=stderr_dir, ++ close_fds=True, ++ preexec_fn=chroot, cwd=root, env=env) ++ if not binary_output and six.PY3: ++ out = out.decode("utf-8") ++ if out: ++ if not stderr_to_stdout: ++ program_log.info("stdout:") ++ for line in out.splitlines(): ++ program_log.info("%s", line) ++ ++ return (res, out) + + def run_program(*args, **kwargs): + return _run_program(*args, **kwargs)[0] +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch new file mode 100644 index 00000000000..489fb56bb33 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch @@ -0,0 +1,66 @@ +From 923265e04df5920fc99393aa05f584032aa1b383 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 8 May 2017 16:18:02 +0800 +Subject: [PATCH 03/13] support infinit timeout + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + blivet/util.py | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/blivet/util.py b/blivet/util.py +index d4bd9bb..44a2da5 100644 +--- a/blivet/util.py ++++ b/blivet/util.py +@@ -158,6 +158,7 @@ class Path(str): + def __hash__(self): + return self._path.__hash__() + ++# timeout = -1 means infinite timeout, always wait. + def timeout_command(argv, timeout, *args, **kwargs): + """call shell-command and either return its output or kill it + if it doesn't normally exit within timeout seconds and return None""" +@@ -169,7 +170,7 @@ def timeout_command(argv, timeout, *args, **kwargs): + while proc.poll() is None: + time.sleep(0.1) + now = datetime.datetime.now() +- if (now - start).seconds> timeout: ++ if timeout != -1 and (now - start).seconds> timeout: + os.kill(proc.pid, signal.SIGKILL) + os.waitpid(-1, os.WNOHANG) + program_log.debug("%d seconds timeout" % timeout) +@@ -183,7 +184,7 @@ def timeout_command(argv, timeout, *args, **kwargs): + program_log.debug("Return code: %d", proc.returncode) + return (proc.returncode, proc.stdout.read()) + +-def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False): ++def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False, timeout=10): + if env_prune is None: + env_prune = [] + +@@ -192,7 +193,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa + os.chroot(root) + + with program_log_lock: # pylint: disable=not-context-manager +- program_log.info("Running... %s", " ".join(argv)) ++ if timeout != -1: ++ program_log.info("Running... %s", " ".join(argv)) ++ else: ++ program_log.info("Running... %s ...infinite timeout", " ".join(argv)) + + env = os.environ.copy() + env.update({"LC_ALL": "C", +@@ -205,7 +209,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa + else: + stderr_dir = subprocess.PIPE + +- res, out = timeout_command(argv, 10, ++ res, out = timeout_command(argv, timeout, + stdin=stdin, + stdout=subprocess.PIPE, + stderr=stderr_dir, +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch new file mode 100644 index 00000000000..cb837e28630 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch @@ -0,0 +1,59 @@ +From c3959bd00665e24a955bbdbea1ef555e76372f12 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 8 May 2017 16:25:16 +0800 +Subject: [PATCH 04/13] Mount /var/volatile during install + +The installed system needs /var/volatile clean, otherwise it +caused systemd's journalctl failed to record boot log. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + blivet/osinstall.py | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/blivet/osinstall.py b/blivet/osinstall.py +index a4f9535..61819c2 100644 +--- a/blivet/osinstall.py ++++ b/blivet/osinstall.py +@@ -294,6 +294,7 @@ class FSSet(object): + self._sysfs = None + self._proc = None + self._devshm = None ++ self._volatile = None + self._usb = None + self._selinux = None + self._run = None +@@ -335,6 +336,12 @@ class FSSet(object): + return self._devshm + + @property ++ def volatile(self): ++ if not self._volatile: ++ self._volatile = NoDevice(fmt=get_format("tmpfs", device="tmpfs", mountpoint="/var/volatile")) ++ return self._volatile ++ ++ @property + def usb(self): + if not self._usb: + self._usb = NoDevice(fmt=get_format("usbfs", device="usbfs", mountpoint="/proc/bus/usb")) +@@ -591,6 +598,7 @@ class FSSet(object): + + devices = list(self.mountpoints.values()) + self.swap_devices + devices.extend([self.dev, self.devshm, self.devpts, self.sysfs, ++ self.volatile, + self.proc, self.selinux, self.usb, self.run]) + if isinstance(_platform, EFI): + devices.append(self.efivars) +@@ -650,6 +658,7 @@ class FSSet(object): + """ unmount filesystems, except swap if swapoff == False """ + devices = list(self.mountpoints.values()) + self.swap_devices + devices.extend([self.dev, self.devshm, self.devpts, self.sysfs, ++ self.volatile, + self.proc, self.usb, self.selinux, self.run]) + if isinstance(_platform, EFI): + devices.append(self.efivars) +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch new file mode 100644 index 00000000000..4f343b7d831 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch @@ -0,0 +1,32 @@ +From 386ff899763f8473eb93a7a1578fb7cc4f86f66d Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 8 May 2017 16:28:12 +0800 +Subject: [PATCH 05/13] update fstab by appending + +The 'storage.write()' has updated fstab by overwriting +the original one, we should update fstab by appending +to keep original tmpfs partitions. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + blivet/osinstall.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blivet/osinstall.py b/blivet/osinstall.py +index 61819c2..afa82db 100644 +--- a/blivet/osinstall.py ++++ b/blivet/osinstall.py +@@ -728,7 +728,7 @@ class FSSet(object): + # /etc/fstab + fstab_path = os.path.normpath("%s/etc/fstab" % get_sysroot()) + fstab = self.fstab() +- open(fstab_path, "w").write(fstab) ++ open(fstab_path, "a").write(fstab) + + # /etc/crypttab + crypttab_path = os.path.normpath("%s/etc/crypttab" % get_sysroot()) +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch new file mode 100644 index 00000000000..f5ff754d8dd --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch @@ -0,0 +1,28 @@ +From cd92eea8fab37ba6b0c7f03daa5255343dc75716 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 8 May 2017 16:30:20 +0800 +Subject: [PATCH 06/13] fix new.roots object is not iterable + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + blivet/blivet.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blivet/blivet.py b/blivet/blivet.py +index 6a33e9c..79ae91a 100644 +--- a/blivet/blivet.py ++++ b/blivet/blivet.py +@@ -1761,7 +1761,7 @@ class Blivet(object): + p = partition.disk.format.parted_disk.getPartitionByPath(partition.path) + partition.parted_partition = p + +- for root in new.roots: ++ for root in new.roots or []: + root.swaps = [new.devicetree.get_device_by_id(d.id, hidden=True) for d in root.swaps] + root.swaps = [s for s in root.swaps if s] + +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch new file mode 100644 index 00000000000..6512d8642a7 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch @@ -0,0 +1,48 @@ +From 78ee2b9090f9400ccc4f730e674f5ae972740ccb Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 26 Aug 2016 02:02:49 -0400 +Subject: [PATCH 07/13] fix incorrect timeout while system time changed + +While system time changed by NTP, invoking timeout_command +breaks with incorrect timeout. +-------- +|05:40:55,872 INFO program: Running... mount -t ext2 -o + defaults,ro /dev/sda2 /mnt/sysimage +|01:40:55,086 DEBUG program: 10 seconds timeout +-------- + +Use numbert count to replace current time count could workaround +the issue. + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + blivet/util.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/blivet/util.py b/blivet/util.py +index 44a2da5..b3c45ac 100644 +--- a/blivet/util.py ++++ b/blivet/util.py +@@ -163,14 +163,14 @@ def timeout_command(argv, timeout, *args, **kwargs): + """call shell-command and either return its output or kill it + if it doesn't normally exit within timeout seconds and return None""" + import subprocess, datetime, os, time, signal +- start = datetime.datetime.now() ++ count = 0 + + try: + proc = subprocess.Popen(argv, *args, **kwargs) + while proc.poll() is None: + time.sleep(0.1) +- now = datetime.datetime.now() +- if timeout != -1 and (now - start).seconds> timeout: ++ count += 1 ++ if timeout != -1 and count > timeout*10: + os.kill(proc.pid, signal.SIGKILL) + os.waitpid(-1, os.WNOHANG) + program_log.debug("%d seconds timeout" % timeout) +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch new file mode 100644 index 00000000000..121336e4c37 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch @@ -0,0 +1,45 @@ +From 6f661a511eea096c073888c7adb836a9a880b476 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 8 May 2017 16:33:15 +0800 +Subject: [PATCH 08/13] tweak btrfs packages + +In oe-cre/yocto, we name btrfs package with btrfs-tools, +rather than btrfs-progs. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + blivet/devices/btrfs.py | 2 +- + blivet/formats/fs.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/blivet/devices/btrfs.py b/blivet/devices/btrfs.py +index c5cb21f..9d417b2 100644 +--- a/blivet/devices/btrfs.py ++++ b/blivet/devices/btrfs.py +@@ -55,7 +55,7 @@ class BTRFSDevice(StorageDevice): + + """ Base class for BTRFS volume and sub-volume devices. """ + _type = "btrfs" +- _packages = ["btrfs-progs"] ++ _packages = ["btrfs-tools"] + _external_dependencies = [availability.BLOCKDEV_BTRFS_PLUGIN] + + def __init__(self, *args, **kwargs): +diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py +index a49826f..e8f216d 100644 +--- a/blivet/formats/fs.py ++++ b/blivet/formats/fs.py +@@ -918,7 +918,7 @@ class BTRFS(FS): + _formattable = True + _linux_native = True + _supported = True +- _packages = ["btrfs-progs"] ++ _packages = ["btrfs-tools"] + _min_size = Size("256 MiB") + _max_size = Size("16 EiB") + _mkfs_class = fsmkfs.BTRFSMkfs +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch new file mode 100644 index 00000000000..fc084b1295f --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch @@ -0,0 +1,31 @@ +From a6ac2157ee6793302e23ddbc5e3b249fa7da5b7e Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 31 Aug 2016 21:30:32 -0400 +Subject: [PATCH 09/13] invoking mount with infinite timeout + +This large timeout is needed when running on machines with +lots of disks, or with slow disks. + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + blivet/util.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blivet/util.py b/blivet/util.py +index b3c45ac..9f02b18 100644 +--- a/blivet/util.py ++++ b/blivet/util.py +@@ -257,7 +257,7 @@ def mount(device, mountpoint, fstype, options=None): + + argv = ["mount", "-t", fstype, "-o", options, device, mountpoint] + try: +- rc = run_program(argv) ++ rc = run_program(argv, timeout=-1) + except OSError: + raise + +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch new file mode 100644 index 00000000000..45d8fabba6c --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch @@ -0,0 +1,34 @@ +From e07133dbcf3c52e1ddd2f12797dcd16145269273 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 8 May 2017 03:54:12 -0400 +Subject: [PATCH 10/13] use oe variable to replace hardcoded dir + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + setup.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/setup.py b/setup.py +index 4d06a33..a994d06 100644 +--- a/setup.py ++++ b/setup.py +@@ -61,10 +61,10 @@ class blivet_sdist(sdist): + + + data_files = [ +- ('/etc/dbus-1/system.d', ['dbus/blivet.conf']), +- ('/usr/share/dbus-1/system-services', ['dbus/com.redhat.Blivet1.service']), +- ('/usr/libexec', ['dbus/blivetd']), +- ('/usr/lib/systemd/system', ['dbus/blivet.service']) ++ (os.environ.get('sysconfdir')+'/dbus-1/system.d', ['dbus/blivet.conf']), ++ (os.environ.get('datadir')+'/dbus-1/system-services', ['dbus/com.redhat.Blivet1.service']), ++ (os.environ.get('libexecdir'), ['dbus/blivetd']), ++ (os.environ.get('systemd_system_unitdir'), ['dbus/blivet.service']) + ] + + +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch new file mode 100644 index 00000000000..c61fe01b946 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch @@ -0,0 +1,31 @@ +From e9ab4376a18cc1bd413c000b036320833eec80d7 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 1 Jun 2017 16:05:27 +0800 +Subject: [PATCH 11/13] invoking fsck with infinite timeout + +This large timeout is needed when running on machines with +lots of disks, or with slow disks. + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + blivet/tasks/fsck.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blivet/tasks/fsck.py b/blivet/tasks/fsck.py +index c4214dc..e13ac6b 100644 +--- a/blivet/tasks/fsck.py ++++ b/blivet/tasks/fsck.py +@@ -77,7 +77,7 @@ class FSCK(task.BasicApplication, fstask.FSTask): + raise FSError("\n".join(error_msgs)) + + try: +- rc = util.run_program(self._fsck_command) ++ rc = util.run_program(self._fsck_command, timeout=-1) + except OSError as e: + raise FSError("filesystem check failed: %s" % e) + +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch new file mode 100644 index 00000000000..33bdbe8125d --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch @@ -0,0 +1,31 @@ +From 9f5a048181cf29d241d96814e736b8235b3d42b1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 16 Jun 2017 15:43:00 +0800 +Subject: [PATCH 12/13] invoking mkfs with infinite timeout + +This large timeout is needed when running on machines with +lots of disks, or with slow disks. + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + blivet/tasks/fsmkfs.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blivet/tasks/fsmkfs.py b/blivet/tasks/fsmkfs.py +index ad166aa..7bf5075 100644 +--- a/blivet/tasks/fsmkfs.py ++++ b/blivet/tasks/fsmkfs.py +@@ -170,7 +170,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask): + options = options or [] + cmd = self._mkfs_command(options, label, set_uuid) + try: +- ret = util.run_program(cmd) ++ ret = util.run_program(cmd, timeout=-1) + except OSError as e: + raise FSError(e) + +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch new file mode 100644 index 00000000000..6bdf4ce9492 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch @@ -0,0 +1,30 @@ +From bfdaf79a2109ac6aed408f0c94f69766991e60e2 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 27 Jul 2017 14:34:30 +0800 +Subject: [PATCH 13/13] Revert "Adapt to logging module name change" + +Upstream-Status: Inappropriate [oe specific, sync with anaconda f26-release] + +This reverts commit c367d62a516e541ad28636c8259321f1c53417ce. + +Signed-off-by: Hongxu Jia +--- + blivet/__init__.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blivet/__init__.py b/blivet/__init__.py +index 49277cb..a01e487 100644 +--- a/blivet/__init__.py ++++ b/blivet/__init__.py +@@ -124,7 +124,7 @@ def enable_installer_mode(): + from pyanaconda.constants import ROOT_PATH # pylint: disable=redefined-outer-name,no-name-in-module + _storage_root = _sysroot = ROOT_PATH + +- from pyanaconda.anaconda_logging import program_log_lock ++ from pyanaconda.anaconda_log import program_log_lock + util.program_log_lock = program_log_lock + + flags.installer_mode = True +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb b/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb new file mode 100644 index 00000000000..cacca67e244 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "A python module for system storage configuration" +HOMEPAGE = "http://fedoraproject.org/wiki/blivet" +LICENSE = "LGPLv2+" +SECTION = "devel/python" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +S = "${WORKDIR}/git" +B = "${S}" + +SRCREV = "39db82f20d8d4904c0c4dc8912e595177c59e091" +SRC_URI = "git://github.com/rhinstaller/blivet;branch=2.2-devel \ + file://0001-comment-out-selinux.patch \ + file://0002-run_program-support-timeout.patch\ + file://0003-support-infinit-timeout.patch \ + file://0004-Mount-var-volatile-during-install.patch \ + file://0005-update-fstab-by-appending.patch \ + file://0006-fix-new.roots-object-is-not-iterable.patch \ + file://0007-fix-incorrect-timeout-while-system-time-changed.patch \ + file://0008-tweak-btrfs-packages.patch \ + file://0009-invoking-mount-with-infinite-timeout.patch \ + file://0010-use-oe-variable-to-replace-hardcoded-dir.patch \ + file://0011-invoking-fsck-with-infinite-timeout.patch \ + file://0012-invoking-mkfs-with-infinite-timeout.patch \ + file://0013-Revert-Adapt-to-logging-module-name-change.patch \ +" + +inherit distro_features_check +REQUIRED_DISTRO_FEATURES = "systemd" + +inherit setuptools3 python3native + +RDEPENDS_${PN} = "python3-pykickstart python3-pyudev \ + parted python3-pyparted multipath-tools \ + lsof cryptsetup libblockdev \ + libbytesize \ +" + +FILES_${PN} += " \ + ${datadir}/dbus-1/system-services \ +" + +inherit systemd + +SYSTEMD_AUTO_ENABLE = "disable" +SYSTEMD_SERVICE_${PN} = "blivet.service" diff --git a/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.5.bb b/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.5.bb new file mode 100644 index 00000000000..ac507ca0e40 --- /dev/null +++ b/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.5.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "GUI tool for storage configuration using blivet library" +HOMEPAGE = "https://github.com/rhinstaller/blivet-gui" +LICENSE = "GPLv2+" +SECTION = "devel/python" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +S = "${WORKDIR}/git" +B = "${S}" + +SRCREV = "52ae8c000843c05abd1d8749f44bbe2e5d891d3d" +SRC_URI = "git://github.com/rhinstaller/blivet-gui;branch=master \ +" + +inherit distro_features_check +REQUIRED_DISTRO_FEATURES = "systemd" + +inherit setuptools3 python3native + +RDEPENDS_${PN} = "python3-pygobject python3 \ + python3-blivet gtk+3 \ + python3-pid libreport \ +" + +FILES_${PN} += " \ + ${datadir}/* \ + " diff --git a/meta-python/recipes-extended/python-cson/python-cson_git.bb b/meta-python/recipes-extended/python-cson/python-cson_git.bb new file mode 100644 index 00000000000..efb338cf285 --- /dev/null +++ b/meta-python/recipes-extended/python-cson/python-cson_git.bb @@ -0,0 +1,21 @@ +# Copyright (C) 2015 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Python library for CSON (schema-compressed JSON)" +HOMEPAGE = "https://github.com/gt3389b/python-cson/" +LICENSE = "MIT" +SECTION = "devel/python" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7709d2635e63ab96973055a23c2a4cac" + +SRCREV = "f3f2898c44bb16b951d3e9f2fbf6d1c4158edda2" +SRC_URI = "git://github.com/gt3389b/python-cson.git" + +S = "${WORKDIR}/git" + +RDEPENDS_${PN}_class-native = "" +DEPENDS_append_class-native = " python-native " + +inherit setuptools + +BBCLASSEXTEND = "native" + diff --git a/meta-python/recipes-extended/python-meh/python3-meh_0.45.bb b/meta-python/recipes-extended/python-meh/python3-meh_0.45.bb new file mode 100644 index 00000000000..6ace4978112 --- /dev/null +++ b/meta-python/recipes-extended/python-meh/python3-meh_0.45.bb @@ -0,0 +1,17 @@ +SUMMARY = "A python library for handling exceptions" +DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \ +exceptions." +HOMEPAGE = "http://git.fedorahosted.org/git/?p=python-meh.git" +LICENSE = "GPLv2+" + +inherit setuptools3 + +S = "${WORKDIR}/git" + +SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \ +" +SRCREV = "2bfc751fd680515d44f7096945a1e282a1f7d6aa" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +FILES_${PN} += "${datadir}/*" + diff --git a/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb b/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb new file mode 100644 index 00000000000..e28ce6ccc86 --- /dev/null +++ b/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "PyEphem astronomical calculations" +HOMEPAGE = "http://rhodesmill.org/pyephem/" + +LICENSE = "LGPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=f288303760f6e5ceaafe3aaa32186ab1" + +SRC_URI[md5sum] = "405a109f3017251ecd8c2890d850f649" +SRC_URI[sha256sum] = "7a4c82b1def2893e02aec0394f108d24adb17bd7b0ca6f4bc78eb7120c0212ac" + +PYPI_PACKAGE = "ephem" + +inherit pypi setuptools + +RDEPENDS_${PN} += "\ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-math \ + " diff --git a/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch b/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch new file mode 100644 index 00000000000..617699db07e --- /dev/null +++ b/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch @@ -0,0 +1,151 @@ +From d0d8890b5ef74c315381c9e1cff4b1d32892116b Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 1 Jun 2017 15:07:36 +0800 +Subject: [PATCH 1/4] support authentication for kickstart + +While download kickstart file from web server, +we support basic/digest authentication. + +Add KickstartAuthError to report authentication failure, +which the invoker could parse this specific error. + +Upstream-Status: inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + pykickstart/errors.py | 19 +++++++++++++++++++ + pykickstart/load.py | 32 +++++++++++++++++++++++++++----- + pykickstart/parser.py | 4 ++-- + 3 files changed, 48 insertions(+), 7 deletions(-) + +diff --git a/pykickstart/errors.py b/pykickstart/errors.py +index b76e84c..fd81bc8 100644 +--- a/pykickstart/errors.py ++++ b/pykickstart/errors.py +@@ -35,6 +35,10 @@ It also exports several exception classes: + + KickstartVersionError - An exception for errors relating to unsupported + syntax versions. ++ ++ KickstartAuthError - An exception for errors relating to authentication ++ failed while downloading kickstart from web server ++ + """ + import warnings + +@@ -103,3 +107,18 @@ class KickstartVersionError(KickstartError): + + def __str__ (self): + return self.value ++ ++class KickstartAuthError(KickstartError): ++ """An exception for errors relating to authentication failed while ++ downloading kickstart from web server ++ """ ++ def __init__(self, msg): ++ """Create a new KickstartAuthError exception instance with the ++ descriptive message val. val should be the return value of ++ formatErrorMsg. ++ """ ++ KickstartError.__init__(self, msg) ++ ++ def __str__(self): ++ return self.value ++ +diff --git a/pykickstart/load.py b/pykickstart/load.py +index 1f69b9c..0f5741b 100644 +--- a/pykickstart/load.py ++++ b/pykickstart/load.py +@@ -18,10 +18,13 @@ + # with the express permission of Red Hat, Inc. + # + import requests ++from requests.auth import HTTPDigestAuth ++from requests.auth import HTTPBasicAuth ++ + import shutil + import six + +-from pykickstart.errors import KickstartError ++from pykickstart.errors import KickstartError, KickstartAuthError + from pykickstart.i18n import _ + from requests.exceptions import SSLError, RequestException + +@@ -29,7 +32,7 @@ _is_url = lambda location: '://' in location # RFC 3986 + + SSL_VERIFY = True + +-def load_to_str(location): ++def load_to_str(location, user=None, passwd=None): + '''Load a destination URL or file into a string. + Type of input is inferred automatically. + +@@ -40,7 +43,7 @@ def load_to_str(location): + Raises: KickstartError on error reading''' + + if _is_url(location): +- return _load_url(location) ++ return _load_url(location, user=user, passwd=passwd) + else: + return _load_file(location) + +@@ -71,13 +74,32 @@ def load_to_file(location, destination): + _copy_file(location, destination) + return destination + ++def _get_auth(location, user=None, passwd=None): ++ ++ auth = None ++ request = requests.get(location, verify=SSL_VERIFY) ++ if request.status_code == requests.codes.unauthorized: ++ if user is None or passwd is None: ++ log.info("Require Authentication") ++ raise KickstartAuthError("Require Authentication.\nAppend 'ksuser= kspasswd=' to boot command") + ++ reasons = request.headers.get("WWW-Authenticate", "").split() ++ if reasons: ++ auth_type = reasons[0] ++ if auth_type == "Basic": ++ auth = HTTPBasicAuth(user, passwd) ++ elif auth_type == "Digest": ++ auth=HTTPDigestAuth(user, passwd) + +-def _load_url(location): ++ return auth ++ ++def _load_url(location, user=None, passwd=None): + '''Load a location (URL or filename) and return contents as string''' + ++ auth = _get_auth(location, user=user, passwd=passwd) ++ + try: +- request = requests.get(location, verify=SSL_VERIFY) ++ request = requests.get(location, verify=SSL_VERIFY, auth=auth) + except SSLError as e: + raise KickstartError(_('Error securely accessing URL "%s"') % location + ': {e}'.format(e=str(e))) + except RequestException as e: +diff --git a/pykickstart/parser.py b/pykickstart/parser.py +index d2b0fbe..26b5de9 100644 +--- a/pykickstart/parser.py ++++ b/pykickstart/parser.py +@@ -773,7 +773,7 @@ class KickstartParser(object): + i = PutBackIterator(s.splitlines(True) + [""]) + self._stateMachine (i) + +- def readKickstart(self, f, reset=True): ++ def readKickstart(self, f, reset=True, username=None, password=None): + """Process a kickstart file, given by the filename f.""" + if reset: + self._reset() +@@ -794,7 +794,7 @@ class KickstartParser(object): + self.currentdir[self._includeDepth] = cd + + try: +- s = load_to_str(f) ++ s = load_to_str(f, user=username, passwd=password) + except KickstartError as e: + raise KickstartError(formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % str(e))) + +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch b/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch new file mode 100644 index 00000000000..cb212354606 --- /dev/null +++ b/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch @@ -0,0 +1,76 @@ +From e6e747b883114bfad51ad93f823e65f5a4d6438a Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 1 Jun 2017 15:12:29 +0800 +Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and + support https without certification + +- Add lock for readKickstart to fix race issue + +- Support to download kickstart file through https without certification + +Upstream-Status: Inappropriate[oe specific] + +Signed-off-by: Hongxu Jia +--- + pykickstart/load.py | 2 +- + pykickstart/parser.py | 24 ++++++++++++++++++++++++ + 2 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/pykickstart/load.py b/pykickstart/load.py +index 0f5741b..48c8276 100644 +--- a/pykickstart/load.py ++++ b/pykickstart/load.py +@@ -30,7 +30,7 @@ from requests.exceptions import SSLError, RequestException + + _is_url = lambda location: '://' in location # RFC 3986 + +-SSL_VERIFY = True ++SSL_VERIFY = False + + def load_to_str(location, user=None, passwd=None): + '''Load a destination URL or file into a string. +diff --git a/pykickstart/parser.py b/pykickstart/parser.py +index 26b5de9..264ba05 100644 +--- a/pykickstart/parser.py ++++ b/pykickstart/parser.py +@@ -57,6 +57,26 @@ STATE_COMMANDS = "commands" + + ver = version.DEVEL + ++import logging ++log = logging.getLogger("anaconda") ++ ++import inspect ++import threading ++_private_ks_lock = threading.RLock() ++ ++class KsLock(object): ++ def __enter__(self): ++ log.info("%s %s" % (self.__class__.__name__, inspect.stack()[0][3])) ++ _private_ks_lock.acquire() ++ return _private_ks_lock ++ ++ def __exit__(self, exc_type, exc_val, exc_tb): ++ log.info("%s %s" % (self.__class__.__name__, inspect.stack()[0][3])) ++ _private_ks_lock.release() ++ ++ ++_ks_lock = KsLock() ++ + def _preprocessStateMachine (lineIter): + l = None + lineno = 0 +@@ -774,6 +794,10 @@ class KickstartParser(object): + self._stateMachine (i) + + def readKickstart(self, f, reset=True, username=None, password=None): ++ with _ks_lock: ++ self._readKickstart(f, reset=reset, username=username, password=password) ++ ++ def _readKickstart(self, f, reset=True, username=None, password=None): + """Process a kickstart file, given by the filename f.""" + if reset: + self._reset() +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch b/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch new file mode 100644 index 00000000000..9fb25fb18fd --- /dev/null +++ b/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch @@ -0,0 +1,48 @@ +From be6012a5dd49ae5e8ac035654ab1c6f37f0dc8f4 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 1 Jun 2017 15:15:15 +0800 +Subject: [PATCH 3/4] comment out sections shutdown and environment in + generated kickstart file + +Both of them is disabled by default. + +Upstream-Status: Inappropriate[oe specific] + +Signed-off-by: Hongxu Jia + +fixup! add comments of shutdown for user +--- + pykickstart/commands/reboot.py | 3 +++ + pykickstart/parser.py | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/pykickstart/commands/reboot.py b/pykickstart/commands/reboot.py +index 88799ba..2d0cea9 100644 +--- a/pykickstart/commands/reboot.py ++++ b/pykickstart/commands/reboot.py +@@ -41,6 +41,9 @@ class FC3_Reboot(KickstartCommand): + elif self.action == KS_SHUTDOWN: + retval += "# Shutdown after installation\nshutdown" + retval += self._getArgsAsStr() + "\n" ++ else: ++ retval += "# Shutdown after installation\n#shutdown" ++ retval += self._getArgsAsStr() + "\n" + + return retval + +diff --git a/pykickstart/parser.py b/pykickstart/parser.py +index 264ba05..b3f33d7 100644 +--- a/pykickstart/parser.py ++++ b/pykickstart/parser.py +@@ -383,7 +383,7 @@ class Packages(KickstartObject): + + if not self.default: + if self.environment: +- pkgs += "@^%s\n" % self.environment ++ pkgs += "#@^%s\n" % self.environment + + grps = self.groupList + grps.sort() +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch b/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch new file mode 100644 index 00000000000..70254f6fda1 --- /dev/null +++ b/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch @@ -0,0 +1,82 @@ +From c0e63f0d3c09bdabb0ad2c88b7cc73e7618dd86a Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 15 Jun 2017 17:35:33 +0800 +Subject: [PATCH 4/4] load.py: retry to invoke request with timeout + +While networkless, use request to fetch kickstart file from +network, it failed and wait 300s to break, we should retry +to invoke request with timeout explicitly. So if it the +network is up, the fetch works. + +Upstream-Status: inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + pykickstart/load.py | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +diff --git a/pykickstart/load.py b/pykickstart/load.py +index 48c8276..74b266b 100644 +--- a/pykickstart/load.py ++++ b/pykickstart/load.py +@@ -21,6 +21,7 @@ import requests + from requests.auth import HTTPDigestAuth + from requests.auth import HTTPBasicAuth + ++import time + import shutil + import six + +@@ -28,6 +29,9 @@ from pykickstart.errors import KickstartError, KickstartAuthError + from pykickstart.i18n import _ + from requests.exceptions import SSLError, RequestException + ++import logging ++log = logging.getLogger("anaconda") ++ + _is_url = lambda location: '://' in location # RFC 3986 + + SSL_VERIFY = False +@@ -74,6 +78,29 @@ def load_to_file(location, destination): + _copy_file(location, destination) + return destination + ++def _access_url(location): ++ status = False ++ ++ # Retry 45 times, wait 45s~135s ++ i = 0 ++ while i < 45: ++ ++ try: ++ request = requests.get(location, verify=SSL_VERIFY, timeout=2) ++ except RequestException as e: ++ log.info("Try '%s' %d times, %s" % (location, i, str(e))) ++ status = False ++ i += 1 ++ time.sleep(1) ++ continue ++ ++ else: ++ status = True ++ return status ++ ++ return status ++ ++ + def _get_auth(location, user=None, passwd=None): + + auth = None +@@ -96,6 +123,9 @@ def _get_auth(location, user=None, passwd=None): + def _load_url(location, user=None, passwd=None): + '''Load a location (URL or filename) and return contents as string''' + ++ if not _access_url(location): ++ raise KickstartError(_("Connection %s failed" % location)) ++ + auth = _get_auth(location, user=user, passwd=passwd) + + try: +-- +2.7.4 + diff --git a/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch b/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch new file mode 100644 index 00000000000..3d614955b28 --- /dev/null +++ b/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch @@ -0,0 +1,25 @@ +From 8a1f598223bd4cbcc877eb2aba3f5586c75c9d14 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 21 Aug 2017 10:05:06 +0800 +Subject: [PATCH] tweak shebang to python3 + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +--- + tools/ksvalidator.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/ksvalidator.py b/tools/ksvalidator.py +index d6051d5..c3682e8 100755 +--- a/tools/ksvalidator.py ++++ b/tools/ksvalidator.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Chris Lumens + # +-- +1.8.3.1 + diff --git a/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb b/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb new file mode 100644 index 00000000000..7fe603b5558 --- /dev/null +++ b/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "A python library for manipulating kickstart files" +HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart" +LICENSE = "GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +DEPENDS = "python3" +RDEPENDS_${PN} = "python3 \ + python3-requests \ + python3-six \ +" + +S = "${WORKDIR}/git" +SRC_URI = "git://github.com/rhinstaller/pykickstart.git;protocol=https;branch=pykickstart-2 \ + file://0001-support-authentication-for-kickstart.patch \ + file://0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch \ + file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \ + file://0004-load.py-retry-to-invoke-request-with-timeout.patch \ + file://0005-tweak-shebang-to-python3.patch \ + " +SRCREV = "b2787a818540e678c2f9c5dca0c6bbd65b8b55e5" + +inherit setuptools3 diff --git a/meta-python/recipes-extended/python-pyparted/python-pyparted.inc b/meta-python/recipes-extended/python-pyparted/python-pyparted.inc new file mode 100644 index 00000000000..65f8ca14db5 --- /dev/null +++ b/meta-python/recipes-extended/python-pyparted/python-pyparted.inc @@ -0,0 +1,21 @@ +DESCRIPTION = "pyparted is a set of Python modules that provide Python programmers \ +an interface to libparted, the GNU parted library for disk partitioning and \ +filesystem manipulation." +SUMMARY = "Python bindings for libparted" +HOMEPAGE = "https://github.com/rhinstaller/pyparted" +LICENSE = "GPL-2.0+" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ + file://src/_pedmodule.c;startline=10;endline=22;md5=ebcb25dde1ac9c46e986dec79b404e7e \ +" +DEPENDS += "parted" + +# upstream only publishes releases in github archives which are discouraged +SRCREV = "69c4a478e43d3eff6ae3a0116fa38da06776d5f5" +SRC_URI = "git://github.com/rhinstaller/pyparted.git;protocol=https \ + file://0001-fix-version-float-check.patch \ +" +S = "${WORKDIR}/git" + +RDEPENDS_${PN} += "parted (>= 2.3)" +RDEPENDS_${PN}_class-native = "" diff --git a/meta-python/recipes-extended/python-pyparted/python-pyparted/0001-fix-version-float-check.patch b/meta-python/recipes-extended/python-pyparted/python-pyparted/0001-fix-version-float-check.patch new file mode 100644 index 00000000000..db3ab9fc3e8 --- /dev/null +++ b/meta-python/recipes-extended/python-pyparted/python-pyparted/0001-fix-version-float-check.patch @@ -0,0 +1,26 @@ +check_mod_version breaks if module version is of x.y.z form +use a regex to help cast x.y.z version to a float + +Upstream-Status: Pending + +Index: git/setup.py +=================================================================== +--- git.orig/setup.py ++++ git/setup.py +@@ -25,6 +25,7 @@ import glob + import os + import platform + import sys ++import re + from distutils.ccompiler import new_compiler + from distutils.errors import CompileError + from distutils.errors import LinkError +@@ -51,6 +52,8 @@ def pkgconfig(*packages, **kwargs): + + def check_mod_version(module, version): + modversion = subprocess.check_output(["pkg-config", "--modversion", module]) ++ match = re.search('([0-9]+\.[0-9]+)', modversion) ++ modversion = match.group(0) + if not float(modversion) >= float(version): + sys.stderr.write("*** Minimum required %s version: %s, found: %s\n" % (module, version, modversion,)) + sys.exit(1) diff --git a/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb b/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb new file mode 100644 index 00000000000..8a15a89fd9c --- /dev/null +++ b/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb @@ -0,0 +1,12 @@ +require python-pyparted.inc + +DEPENDS += "python-re" + +PV = "3.10.7+git${SRCPV}" + +inherit distutils + +RDEPENDS_${PN} += "python-stringold python-codecs python-math" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-extended/python-pyparted/python-pyparted_3.9.bb b/meta-python/recipes-extended/python-pyparted/python-pyparted_3.9.bb deleted file mode 100644 index bfb4f6f87b5..00000000000 --- a/meta-python/recipes-extended/python-pyparted/python-pyparted_3.9.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "pyparted is a set of Python modules that provide Python programmers \ -an interface to libparted, the GNU parted library for disk partitioning and \ -filesystem manipulation." -SUMMARY = "Python bindings for libparted" -HOMEPAGE = "https://fedorahosted.org/pyparted/" -LICENSE = "GPL-2.0+" -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ - file://src/_pedmodule.c;startline=10;endline=22;md5=70c62bd73782a03f56a0571a9f08ea46 \ -" -DEPENDS += "parted" - -SRC_URI = "https://fedorahosted.org/releases/p/y/pyparted/pyparted-${PV}.tar.gz" -SRC_URI[md5sum] = "f16c7ef7f5fa4a43fcb2a4654b487e39" -SRC_URI[sha256sum] = "a56712e3d058ce3d859c158236dbbf45224018919efd3d880ea80f9e0d0bebbb" -S = "${WORKDIR}/pyparted-${PV}" - -inherit distutils - -RDEPENDS_${PN} += "python-stringold python-codecs python-math" -RDEPENDS_${PN}_class-native = "" - -BBCLASSEXTEND += "native" diff --git a/meta-python/recipes-extended/python-pyparted/python3-pyparted/0001-fix-version-float-check.patch b/meta-python/recipes-extended/python-pyparted/python3-pyparted/0001-fix-version-float-check.patch new file mode 100644 index 00000000000..14fb0bb3e5f --- /dev/null +++ b/meta-python/recipes-extended/python-pyparted/python3-pyparted/0001-fix-version-float-check.patch @@ -0,0 +1,26 @@ +check_mod_version breaks if module version is of x.y.z form +use a regex to help cast x.y.z version to a float + +Upstream-Status: Pending + +Index: git/setup.py +=================================================================== +--- git.orig/setup.py ++++ git/setup.py +@@ -25,6 +25,7 @@ import glob + import os + import platform + import sys ++import re + from distutils.ccompiler import new_compiler + from distutils.errors import CompileError + from distutils.errors import LinkError +@@ -51,6 +52,8 @@ def pkgconfig(*packages, **kwargs): + + def check_mod_version(module, version): + modversion = subprocess.check_output(["pkg-config", "--modversion", module]) ++ match = re.search(b'([0-9]+\.[0-9]+)', modversion) ++ modversion = match.group(0) + if not float(modversion) >= float(version): + sys.stderr.write("*** Minimum required %s version: %s, found: %s\n" % (module, version, modversion,)) + sys.exit(1) diff --git a/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.10.7.bb b/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.10.7.bb new file mode 100644 index 00000000000..ff72c2a6550 --- /dev/null +++ b/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.10.7.bb @@ -0,0 +1,12 @@ +require python-pyparted.inc + +DEPENDS += "python3-re" + +PV = "3.10.7+git${SRCPV}" + +inherit distutils3 + +RDEPENDS_${PN} += "python3-stringold python3-codecs python3-math" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" diff --git a/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb b/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb new file mode 100644 index 00000000000..7f1986e5160 --- /dev/null +++ b/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb @@ -0,0 +1,36 @@ +SUMMARY = "Python WBEM Client and Provider Interface" +DESCRIPTION = "\ +A Python library for making CIM (Common Information Model) operations over \ +HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \ +WBEM client should be easy to use and not necessarily require a large amount \ +of programming knowledge. It is suitable for a large range of tasks from \ +simply poking around to writing web and GUI applications. \ +\ +WBEM, or Web Based Enterprise Management is a manageability protocol, like \ +SNMP, standardised by the Distributed Management Task Force (DMTF) available \ +at http://www.dmtf.org/standards/wbem. \ +\ +It also provides a Python provider interface, and is the fastest and easiest \ +way to write providers on the planet." +HOMEPAGE = "http://pywbem.sf.net/" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://pywbem/LICENSE.txt;md5=fbc093901857fcd118f065f900982c24" +SECTION = "Development/Libraries" +DEPENDS = "python-m2crypto-native python-typing-native" +SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BPN}/${BP}/${BP}-dev.r704.zip" +SRC_URI[md5sum] = "84072451dcdd1aa9ee82363848faf7ad" +SRC_URI[sha256sum] = "898035866d3cc741bbcd62c4ac26e633ad07b7c11d89db2472b9f923f3fd3ed8" + +S = "${WORKDIR}/${BP}-dev" + +inherit setuptools python-dir + +do_install_append() { + mv ${D}${bindir}/wbemcli.py ${D}${bindir}/pywbemcli + mv ${D}${bindir}/mof_compiler.py ${D}${bindir}/mofcomp + + rm ${D}${libdir}/python2.7/site-packages/${BPN}/wbemcli.py* + rm ${D}${libdir}/python2.7/site-packages/${BPN}/mof_compiler.py* +} + +BBCLASSEXTEND = "native" diff --git a/meta-ruby/COPYING.MIT b/meta-ruby/COPYING.MIT deleted file mode 100644 index fb950dc69fe..00000000000 --- a/meta-ruby/COPYING.MIT +++ /dev/null @@ -1,17 +0,0 @@ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/meta-ruby/README b/meta-ruby/README deleted file mode 100644 index 08e0aa7ebe7..00000000000 --- a/meta-ruby/README +++ /dev/null @@ -1,16 +0,0 @@ -This layer depends on: - -URI: git://github.com/openembedded/oe-core.git -branch: master -revision: HEAD - -URI: git://github.com/openembedded/meta-oe.git -branch: master -revision: HEAD - -Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-ruby]' in the subject' - -When sending single patches, please using something like: -'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-ruby][PATCH' - -Layer maintainer: Armin Kuster diff --git a/meta-ruby/classes/ruby.bbclass b/meta-ruby/classes/ruby.bbclass deleted file mode 100644 index 9c4fcf9c3c6..00000000000 --- a/meta-ruby/classes/ruby.bbclass +++ /dev/null @@ -1,125 +0,0 @@ -BPV ?= "${PV}" - -DEPENDS += " \ - ruby-native \ -" -RDEPENDS_${PN} += " \ - ruby \ -" - -def get_rubyversion(p): - import re - from os.path import isfile - import subprocess - found_version = "SOMETHING FAILED!" - - cmd = "%s/ruby" % p - - if not isfile(cmd): - return found_version - - version = subprocess.Popen([cmd, "--version"], stdout=subprocess.PIPE).communicate()[0] - - r = re.compile("ruby ([0-9]+\.[0-9]+\.[0-9]+)*") - m = r.match(version) - if m: - found_version = m.group(1) - - return found_version - -def get_rubygemslocation(p): - import re - from os.path import isfile - import subprocess - found_loc = "SOMETHING FAILED!" - - cmd = "%s/gem" % p - - if not isfile(cmd): - return found_loc - - loc = subprocess.Popen([cmd, "env"], stdout=subprocess.PIPE).communicate()[0] - - r = re.compile(".*\- (/usr.*/ruby/gems/.*)") - for line in loc.split('\n'): - m = r.match(line) - if m: - found_loc = m.group(1) - break - - return found_loc - -def get_rubygemsversion(p): - import re - from os.path import isfile - import subprocess - found_version = "SOMETHING FAILED!" - - cmd = "%s/gem" % p - - if not isfile(cmd): - return found_version - - version = subprocess.Popen([cmd, "env", "gemdir"], stdout=subprocess.PIPE).communicate()[0] - - r = re.compile(".*([0-9]+\.[0-9]+\.[0-9]+)$") - m = r.match(version) - if m: - found_version = m.group(1) - - return found_version - -RUBY_VERSION ?= "${@get_rubyversion("${STAGING_BINDIR_NATIVE}")}" -RUBY_GEM_DIRECTORY ?= "${@get_rubygemslocation("${STAGING_BINDIR_NATIVE}")}" -RUBY_GEM_VERSION ?= "${@get_rubygemsversion("${STAGING_BINDIR_NATIVE}")}" - -export GEM_HOME = "${STAGING_DIR_NATIVE}/usr/lib/ruby/gems/${RUBY_GEM_VERSION}" - -RUBY_BUILD_GEMS ?= "${BPN}.gemspec" -RUBY_INSTALL_GEMS ?= "${BPN}-${BPV}.gem" - -RUBY_COMPILE_FLAGS ?= 'LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"' - -ruby_do_compile() { - for gem in ${RUBY_BUILD_GEMS}; do - ${RUBY_COMPILE_FLAGS} gem build $gem - done -} - - -ruby_do_install() { - for gem in ${RUBY_INSTALL_GEMS}; do - gem install --ignore-dependencies --local --env-shebang --install-dir ${D}/${libdir}/ruby/gems/${RUBY_GEM_VERSION}/ $gem - done - - # create symlink from the gems bin directory to /usr/bin - for i in ${D}/${libdir}/ruby/gems/${RUBY_GEM_VERSION}/bin/*; do - if [ -e "$i" ]; then - if [ ! -d ${D}/${bindir} ]; then mkdir -p ${D}/${bindir}; fi - b=`basename $i` - ln -sf ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/bin/$b ${D}/${bindir}/$b - fi - done -} - -EXPORT_FUNCTIONS do_compile do_install - -PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-dev" - -FILES_${PN}-dbg += " \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/gems/*/*/.debug \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/gems/*/*/*/.debug \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/gems/*/*/*/*/.debug \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/gems/*/*/*/*/*/.debug \ - " - -FILES_${PN} += " \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/gems \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/cache \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/bin \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/specifications \ - " - -FILES_${PN}-doc += " \ - ${libdir}/ruby/gems/${RUBY_GEM_VERSION}/doc \ - " diff --git a/meta-ruby/conf/layer.conf b/meta-ruby/conf/layer.conf deleted file mode 100644 index b526a5d3949..00000000000 --- a/meta-ruby/conf/layer.conf +++ /dev/null @@ -1,15 +0,0 @@ -# We have a conf and classes directory, append to BBPATH -BBPATH .= ":${LAYERDIR}" - -# We have a recipes directory, add to BBFILES -BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" - -BBFILE_COLLECTIONS += "ruby-layer" -BBFILE_PATTERN_ruby-layer := "^${LAYERDIR}/" -BBFILE_PRIORITY_ruby-layer = "7" - -# This should only be incremented on significant changes that will -# cause compatibility issues with other layers -LAYERVERSION_ruby-layer = "1" - -LAYERDEPENDS_ruby-layer = "core openembedded-layer" diff --git a/meta-ruby/recipes-devtools/ruby/bundler_git.bb b/meta-ruby/recipes-devtools/ruby/bundler_git.bb deleted file mode 100644 index fc730010527..00000000000 --- a/meta-ruby/recipes-devtools/ruby/bundler_git.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Makes sure Ruby applications run the same code on every machine." -DESCRIPTION = "Bundler makes sure Ruby applications run the same code \ -on every machine. It does this by managing the gems that the \ -application depends on. Given a list of gems, it can automatically \ -download and install those gems, as well as any other gems needed by \ -the gems that are listed. Before installing gems, it checks the \ -versions of every gem to make sure that they are compatible, and can \ -all be loaded at the same time. After the gems have been installed, \ -Bundler can help you update some or all of them when new versions \ -become available. Finally, it records the exact versions that have \ -been installed, so that others can install the exact same gems." - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=196bb963e601609817d7e9ac9a64a867" - -PR = "r0" - -PV = "1.6.2" -SRCREV = "06e3647c117da210ffd15a174624497830addd7b" - -S = "${WORKDIR}/git" - -SRC_URI = " \ - git://github.com/bundler/bundler.git \ - " - -inherit ruby - -FILES_${PN} += "${libdir}/ruby/gems" - -BBCLASSEXTEND = "native" diff --git a/meta-ruby/recipes-devtools/ruby/ruby.inc b/meta-ruby/recipes-devtools/ruby/ruby.inc deleted file mode 100644 index ba601910783..00000000000 --- a/meta-ruby/recipes-devtools/ruby/ruby.inc +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "An interpreter of object-oriented scripting language" -DESCRIPTION = "Ruby is an interpreted scripting language for quick \ -and easy object-oriented programming. It has many features to process \ -text files and to do system management tasks (as in Perl). \ -It is simple, straight-forward, and extensible. \ -" -HOMEPAGE = "http://www.ruby-lang.org/" -SECTION = "devel/ruby" -LICENSE = "Ruby | BSD | GPLv2" -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=837b32593517ae48b9c3b5c87a5d288c \ - file://BSDL;md5=19aaf65c88a40b508d17ae4be539c4b5\ - file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263\ - file://LEGAL;md5=c440adb575ba4e6e2344c2630b6a5584\ -" - -DEPENDS = "ruby-native zlib openssl tcl libyaml db gdbm readline" -DEPENDS_class-native = "libyaml-native" - -SHRT_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}" -SRC_URI = "http://cache.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \ - file://extmk.patch \ -" - -S = "${WORKDIR}/ruby-${PV}" - -inherit autotools - - -# This snippet lets compiled extensions which rely on external libraries, -# such as zlib, compile properly. If we don't do this, then when extmk.rb -# runs, it uses the native libraries instead of the target libraries, and so -# none of the linking operations succeed -- which makes extconf.rb think -# that the libraries aren't available and hence that the extension can't be -# built. - -do_configure_prepend() { - sed -i "s#%%TARGET_CFLAGS%%#$TARGET_CFLAGS#; s#%%TARGET_LDFLAGS%%#$TARGET_LDFLAGS#" ${S}/common.mk - rm -rf ${S}/ruby/ -} diff --git a/meta-ruby/recipes-devtools/ruby/ruby/extmk.patch b/meta-ruby/recipes-devtools/ruby/ruby/extmk.patch deleted file mode 100644 index 8b684503413..00000000000 --- a/meta-ruby/recipes-devtools/ruby/ruby/extmk.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -ru ruby-1.8.7-p248.orig/ext/extmk.rb ruby-1.8.7-p248/ext/extmk.rb ---- ruby-1.8.7-p248.orig/ext/extmk.rb 2009-12-24 03:01:58.000000000 -0600 -+++ ruby-1.8.7-p248/ext/extmk.rb 2010-02-12 15:55:27.370061558 -0600 -@@ -354,8 +354,8 @@ - $ruby = '$(topdir)/miniruby' + EXEEXT - end - $ruby << " -I'$(topdir)'" -+$ruby << " -I'$(top_srcdir)/lib'" - unless CROSS_COMPILING -- $ruby << " -I'$(top_srcdir)/lib'" - $ruby << " -I'$(extout)/$(arch)' -I'$(extout)/common'" if $extout - $ruby << " -I./- -I'$(top_srcdir)/ext' -rpurelib.rb" - ENV["RUBYLIB"] = "-" diff --git a/meta-ruby/recipes-devtools/ruby/ruby_2.2.1.bb b/meta-ruby/recipes-devtools/ruby/ruby_2.2.1.bb deleted file mode 100644 index 29f22915594..00000000000 --- a/meta-ruby/recipes-devtools/ruby/ruby_2.2.1.bb +++ /dev/null @@ -1,39 +0,0 @@ -require ruby.inc - -SRC_URI[md5sum] = "b49fc67a834e4f77249eb73eecffb1c9" -SRC_URI[sha256sum] = "5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28" - -# it's unknown to configure script, but then passed to extconf.rb -# maybe it's not really needed as we're hardcoding the result with -# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch -UNKNOWN_CONFIGURE_WHITELIST += "--enable-wide-getaddrinfo" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind" -PACKAGECONFIG[gpm] = "--with-gmp=yes, --with-gmp=no, gmp" - -EXTRA_OECONF = "\ - --enable-wide-getaddrinfo \ - --disable-versioned-paths \ - --disable-rpath \ - --enable-shared \ - --enable-load-relative \ -" - -EXTRA_OEMAKE = " \ - LIBRUBYARG='-lruby-static' \ -" - -do_install() { - oe_runmake 'DESTDIR=${D}' install -} - -FILES_${PN} += "${datadir}/rubygems \ - ${datadir}/ri" - -FILES_${PN}-dbg += "${libdir}/ruby/*/.debug \ - ${libdir}/ruby/*/*/.debug \ - ${libdir}/ruby/*/*/*/.debug \ - ${libdir}/ruby/*/*/*/*/.debug" - -BBCLASSEXTEND = "native" diff --git a/meta-systemd/README b/meta-systemd/README deleted file mode 100644 index 2cd90b4156b..00000000000 --- a/meta-systemd/README +++ /dev/null @@ -1,26 +0,0 @@ -This layer depends on: - -URI: git://github.com/openembedded/oe-core.git -branch: master -revision: HEAD - -And we're working to break the dependency on this one: - -URI: git://github.com/openembedded/meta-oe.git -branch: master -revision: HEAD - -To make BBMASK'ing per layer possible the following directory structure is -used: - -$[LAYERDIR}//recipes-//.bbappend - -Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][meta-systemd]' in the subject' - -When sending single patches, please use something like: -'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][meta-systemd][PATCH' - -You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch ' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI. - -Main layer maintainer: Koen Kooi - Martin Jansa diff --git a/meta-systemd/conf/layer.conf b/meta-systemd/conf/layer.conf deleted file mode 100644 index 0563f44cc2d..00000000000 --- a/meta-systemd/conf/layer.conf +++ /dev/null @@ -1,32 +0,0 @@ -# It really depends on order of the layers appearing in BBLAYERS -# variable in toplevel bblayers.conf file, where bitbake will search -# for .inc files and others where bitbake uses BBPATH since it will -# search the directories from first to last as specified in BBPATH -# Therefore if you want a given layer to be considered high priority -# for the .inc and .conf etc. then consider it adding at the beginning -# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve -# the recipe contention so the order of directories in BBFILES does -# not matter. - -# We have a conf and classes directory, append to BBPATH -BBPATH .= ":${LAYERDIR}" - -# We have a recipes directory, add to BBFILES -BBFILES += "\ - ${LAYERDIR}/recipes-*/*/*.bb \ - ${LAYERDIR}/oe-core/recipes-*/*/*.bbappend \ -" - -BBFILE_COLLECTIONS += "systemd-layer" -BBFILE_PATTERN_systemd-layer := "^${LAYERDIR}/" - -# Define the priority for recipes (.bb files) from this layer, -# choosing carefully how this layer interacts with all of the -# other layers. - -BBFILE_PRIORITY_systemd-layer = "7" - -SIGGEN_EXCLUDERECIPES_ABISAFE += " \ - systemd-serialgetty \ -" -LAYERDEPENDS_systemd-layer = "core" diff --git a/meta-systemd/oe-core/recipes-bsp/keymaps/keymaps_1.0.bbappend b/meta-systemd/oe-core/recipes-bsp/keymaps/keymaps_1.0.bbappend deleted file mode 100644 index 181b8784dd3..00000000000 --- a/meta-systemd/oe-core/recipes-bsp/keymaps/keymaps_1.0.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" - diff --git a/meta-systemd/oe-core/recipes-connectivity/avahi/avahi_0.6.31.bbappend b/meta-systemd/oe-core/recipes-connectivity/avahi/avahi_0.6.31.bbappend deleted file mode 100644 index 181b8784dd3..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/avahi/avahi_0.6.31.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" - diff --git a/meta-systemd/oe-core/recipes-connectivity/bluez/bluez4_4.101.bbappend b/meta-systemd/oe-core/recipes-connectivity/bluez/bluez4_4.101.bbappend deleted file mode 100644 index da01b0583b8..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/bluez/bluez4_4.101.bbappend +++ /dev/null @@ -1,9 +0,0 @@ -inherit systemd - -EXTRA_OECONF += "--with-systemdunitdir=${systemd_unitdir}/system/" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "bluetooth.service" -SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-systemd/oe-core/recipes-connectivity/connman/connman_%.bbappend b/meta-systemd/oe-core/recipes-connectivity/connman/connman_%.bbappend deleted file mode 100644 index f006b3fb5ba..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/connman/connman_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-systemd/oe-core/recipes-connectivity/dhcp/dhcp/dhclient.service b/meta-systemd/oe-core/recipes-connectivity/dhcp/dhcp/dhclient.service deleted file mode 100644 index c9620cf09be..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/dhcp/dhcp/dhclient.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Dynamic Host Configuration Protocol (DHCP) -After=syslog.target network.target - -[Service] -Type=forking -PIDFile=/var/run/dhclient.pid -EnvironmentFile=-/etc/default/dhcp-client -ExecStart=/sbin/dhclient -cf /etc/dhcp/dhclient.conf -q -lf /var/lib/dhcp/dhclient.leases $INTERFACES - -[Install] -WantedBy=multi-user.target - diff --git a/meta-systemd/oe-core/recipes-connectivity/dhcp/dhcp_%.bbappend b/meta-systemd/oe-core/recipes-connectivity/dhcp/dhcp_%.bbappend deleted file mode 100644 index 6c0fd026418..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/dhcp/dhcp_%.bbappend +++ /dev/null @@ -1,24 +0,0 @@ -# look for files in the layer first -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - -SYSTEMD_PACKAGES += "dhcp-client" -SYSTEMD_SERVICE_dhcp-client = "dhclient.service" -SYSTEMD_AUTO_ENABLE_dhcp-client = "disable" - -FILES_dhcp-client += "${systemd_unitdir}/system/dhclient.service" -RPROVIDES_dhcp-server += "dhcp-server-systemd" -RREPLACES_dhcp-server += "dhcp-server-systemd" -RCONFLICTS_dhcp-server += "dhcp-server-systemd" -RPROVIDES_dhcp-relay += "dhcp-relay-systemd" -RREPLACES_dhcp-relay += "dhcp-relay-systemd" -RCONFLICTS_dhcp-relay += "dhcp-relay-systemd" -RPROVIDES_dhcp-client += "dhcp-client-systemd" -RREPLACES_dhcp-client += "dhcp-client-systemd" -RCONFLICTS_dhcp-client += "dhcp-client-systemd" - -SRC_URI += "file://dhclient.service" - -do_install_append() { - install -m 0644 ${WORKDIR}/dhclient.service ${D}${systemd_unitdir}/system -} - diff --git a/meta-systemd/oe-core/recipes-connectivity/ofono/ofono_%.bbappend b/meta-systemd/oe-core/recipes-connectivity/ofono/ofono_%.bbappend deleted file mode 100644 index 17a31245990..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/ofono/ofono_%.bbappend +++ /dev/null @@ -1,5 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" - -SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-systemd/oe-core/recipes-connectivity/openssh/openssh_%.bbappend b/meta-systemd/oe-core/recipes-connectivity/openssh/openssh_%.bbappend deleted file mode 100644 index dadbc149913..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/openssh/openssh_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN}-sshd += "${PN}-sshd-systemd" -RREPLACES_${PN}-sshd += "${PN}-sshd-systemd" -RCONFLICTS_${PN}-sshd += "${PN}-sshd-systemd" diff --git a/meta-systemd/oe-core/recipes-connectivity/portmap/portmap_6.0.bbappend b/meta-systemd/oe-core/recipes-connectivity/portmap/portmap_6.0.bbappend deleted file mode 100644 index 6ce6e70d981..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/portmap/portmap_6.0.bbappend +++ /dev/null @@ -1,5 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_AUTO_ENABLE = "disable" - diff --git a/meta-systemd/oe-core/recipes-connectivity/wpa-supplicant/wpa-supplicant_%.bbappend b/meta-systemd/oe-core/recipes-connectivity/wpa-supplicant/wpa-supplicant_%.bbappend deleted file mode 100644 index f006b3fb5ba..00000000000 --- a/meta-systemd/oe-core/recipes-connectivity/wpa-supplicant/wpa-supplicant_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-systemd/oe-core/recipes-core/busybox/busybox_%.bbappend b/meta-systemd/oe-core/recipes-core/busybox/busybox_%.bbappend deleted file mode 100644 index 642d450a516..00000000000 --- a/meta-systemd/oe-core/recipes-core/busybox/busybox_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN}-syslog += "${PN}-syslog-systemd" -RREPLACES_${PN}-syslog += "${PN}-syslog-systemd" -RCONFLICTS_${PN}-syslog += "${PN}-syslog-systemd" diff --git a/meta-systemd/oe-core/recipes-core/dbus/dbus_%.bbappend b/meta-systemd/oe-core/recipes-core/dbus/dbus_%.bbappend deleted file mode 100644 index f006b3fb5ba..00000000000 --- a/meta-systemd/oe-core/recipes-core/dbus/dbus_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-systemd/oe-core/recipes-core/dropbear/dropbear_%.bbappend b/meta-systemd/oe-core/recipes-core/dropbear/dropbear_%.bbappend deleted file mode 100644 index 181b8784dd3..00000000000 --- a/meta-systemd/oe-core/recipes-core/dropbear/dropbear_%.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" - diff --git a/meta-systemd/oe-core/recipes-core/systemd/systemd_%.bbappend b/meta-systemd/oe-core/recipes-core/systemd/systemd_%.bbappend deleted file mode 100644 index f5aa547f133..00000000000 --- a/meta-systemd/oe-core/recipes-core/systemd/systemd_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_udev += "udev-systemd" -RREPLACES_udev += "udev-systemd" -RCONFLICTS_udev += "udev-systemd" diff --git a/meta-systemd/oe-core/recipes-core/util-linux/util-linux_%.bbappend b/meta-systemd/oe-core/recipes-core/util-linux/util-linux_%.bbappend deleted file mode 100644 index f006b3fb5ba..00000000000 --- a/meta-systemd/oe-core/recipes-core/util-linux/util-linux_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-systemd/oe-core/recipes-extended/at/at_%.bbappend b/meta-systemd/oe-core/recipes-extended/at/at_%.bbappend deleted file mode 100644 index 181b8784dd3..00000000000 --- a/meta-systemd/oe-core/recipes-extended/at/at_%.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" - diff --git a/meta-systemd/oe-core/recipes-extended/cronie/cronie_%.bbappend b/meta-systemd/oe-core/recipes-extended/cronie/cronie_%.bbappend deleted file mode 100644 index f006b3fb5ba..00000000000 --- a/meta-systemd/oe-core/recipes-extended/cronie/cronie_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-systemd/oe-core/recipes-extended/lighttpd/lighttpd_%.bbappend b/meta-systemd/oe-core/recipes-extended/lighttpd/lighttpd_%.bbappend deleted file mode 100644 index f006b3fb5ba..00000000000 --- a/meta-systemd/oe-core/recipes-extended/lighttpd/lighttpd_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-systemd/oe-core/recipes-extended/rpcbind/rpcbind_%.bbappend b/meta-systemd/oe-core/recipes-extended/rpcbind/rpcbind_%.bbappend deleted file mode 100644 index f006b3fb5ba..00000000000 --- a/meta-systemd/oe-core/recipes-extended/rpcbind/rpcbind_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" diff --git a/meta-systemd/recipes-core/systemd/systemd-machine-units_1.0.bb b/meta-systemd/recipes-core/systemd/systemd-machine-units_1.0.bb deleted file mode 100644 index 6a66ac214ef..00000000000 --- a/meta-systemd/recipes-core/systemd/systemd-machine-units_1.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Machine specific systemd units" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -PR = "r18" - -inherit systemd -SYSTEMD_SERVICE_${PN} = "" -NATIVE_SYSTEMD_SUPPORT = "1" -ALLOW_EMPTY_${PN} = "1" diff --git a/meta-webserver/README b/meta-webserver/README index 379b54a02b2..7b606307008 100644 --- a/meta-webserver/README +++ b/meta-webserver/README @@ -54,7 +54,7 @@ Maintenance Send patches / pull requests to openembedded-devel@lists.openembedded.org with '[meta-webserver]' in the subject. -Layer maintainer: Paul Eggleton +Layer maintainer: Derek Straka License diff --git a/meta-webserver/conf/layer.conf b/meta-webserver/conf/layer.conf index a4d6a27233d..84fdd81d1fb 100644 --- a/meta-webserver/conf/layer.conf +++ b/meta-webserver/conf/layer.conf @@ -15,6 +15,10 @@ BBFILE_PRIORITY_webserver = "6" # cause compatibility issues with other layers LAYERVERSION_webserver = "1" -LAYERDEPENDS_webserver = "core" +LAYERDEPENDS_webserver = "core openembedded-layer" LICENSE_PATH += "${LAYERDIR}/licenses" + +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ + phpmyadmin->bash \ +" diff --git a/meta-oe/licenses/OML b/meta-webserver/licenses/OML similarity index 100% rename from meta-oe/licenses/OML rename to meta-webserver/licenses/OML diff --git a/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb b/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb new file mode 100644 index 00000000000..0beb3ed04a0 --- /dev/null +++ b/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Websocket module for Apache web server" +DESCRIPTION = "Process requests using the WebSocket protocol (RFC 6455)" +HOMEPAGE = "https://github.com/jchampio/${PN}/" +SECTION = "net" +LICENSE = "Apache-2.0" + +inherit autotools-brokensep pkgconfig + +DEPENDS = "apache2 apache2-native pbzip2-native" +RDEPENDS_${PN} += "apache2" + +# Original (github.com/disconnect/apache-websocket) is dead since 2012, the +# fork contains patches from the modules ML and fixes CVE compliance issues +SRC_URI = "git://github.com/jchampio/apache-websocket.git" + +SRCREV = "f5230d8c520dccf8631da94bf90c23f3c1100dcc" + +PV = "0.1.1" + +S = "${WORKDIR}/git" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" + +EXTRA_OECONF = "APACHECTL=${STAGING_DIR_TARGET}${sbindir}/apachectl \ + LIBTOOL=${STAGING_DIR_TARGET}${bindir_crossscripts}/${HOST_SYS}-libtool" + +do_install() { + install -d ${D}${libdir}/apache2/modules/ + install ${B}/.libs/mod_websocket.so ${D}${libdir}/apache2/modules/ +} + +FILES_${PN} += " ${libdir}/apache2/modules/* " +FILES_${PN}-dbg += " ${libdir}/apache2/modules/.debug/* " diff --git a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.10.bb b/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.10.bb deleted file mode 100644 index 5963b794350..00000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.10.bb +++ /dev/null @@ -1,45 +0,0 @@ -DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ -extensible web server." -SUMMARY = "Apache HTTP Server" -HOMEPAGE = "http://httpd.apache.org/" -DEPENDS = "expat-native pcre-native apr-native apr-util-native" -SECTION = "net" -LICENSE = "Apache-2.0" - -inherit autotools pkgconfig native - -SRC_URI = "http://www.apache.org/dist/httpd/httpd-${PV}.tar.bz2 \ - file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ - " - -S = "${WORKDIR}/httpd-${PV}" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=dbff5a2b542fa58854455bf1a0b94b83" -SRC_URI[md5sum] = "44543dff14a4ebc1e9e2d86780507156" -SRC_URI[sha256sum] = "176c4dac1a745f07b7b91e7f4fd48f9c48049fa6f088efe758d61d9738669c6a" - -EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ - --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \ - --prefix=${prefix} --datadir=${datadir}/apache2 \ - " - -do_install () { - install -d ${D}${bindir} ${D}${libdir} - cp server/gen_test_char ${D}${bindir} - install -m 755 support/apxs ${D}${bindir}/ - install -m 755 httpd ${D}${bindir}/ - install -d ${D}${datadir}/apache2/build - cp ${S}/build/*.mk ${D}${datadir}/apache2/build - cp build/*.mk ${D}${datadir}/apache2/build - cp ${S}/build/instdso.sh ${D}${datadir}/apache2/build - - install -d ${D}${includedir}/apache2 - cp ${S}/include/* ${D}${includedir}/apache2 - cp include/* ${D}${includedir}/apache2 - cp ${S}/os/unix/os.h ${D}${includedir}/apache2 - cp ${S}/os/unix/unixd.h ${D}${includedir}/apache2 - - cp support/envvars-std ${D}${bindir}/envvars - chmod 755 ${D}${bindir}/envvars -} - diff --git a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb b/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb new file mode 100644 index 00000000000..36f073c85be --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb @@ -0,0 +1,45 @@ +DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ +extensible web server." +SUMMARY = "Apache HTTP Server" +HOMEPAGE = "http://httpd.apache.org/" +DEPENDS = "expat-native pcre-native apr-native apr-util-native" +SECTION = "net" +LICENSE = "Apache-2.0" + +inherit autotools pkgconfig native + +SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \ + file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ + " + +S = "${WORKDIR}/httpd-${PV}" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8" +SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407" +SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00" + +EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ + --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \ + --prefix=${prefix} --datadir=${datadir}/apache2 \ + " + +do_install () { + install -d ${D}${bindir} ${D}${libdir} + cp server/gen_test_char ${D}${bindir} + install -m 755 support/apxs ${D}${bindir}/ + install -m 755 httpd ${D}${bindir}/ + install -d ${D}${datadir}/apache2/build + cp ${S}/build/*.mk ${D}${datadir}/apache2/build + cp build/*.mk ${D}${datadir}/apache2/build + cp ${S}/build/instdso.sh ${D}${datadir}/apache2/build + + install -d ${D}${includedir}/apache2 + cp ${S}/include/* ${D}${includedir}/apache2 + cp include/* ${D}${includedir}/apache2 + cp ${S}/os/unix/os.h ${D}${includedir}/apache2 + cp ${S}/os/unix/unixd.h ${D}${includedir}/apache2 + + cp support/envvars-std ${D}${bindir}/envvars + chmod 755 ${D}${bindir}/envvars +} + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/apache-CVE-2014-0117.patch b/meta-webserver/recipes-httpd/apache2/apache2/apache-CVE-2014-0117.patch deleted file mode 100644 index 8585f0bb307..00000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2/apache-CVE-2014-0117.patch +++ /dev/null @@ -1,289 +0,0 @@ -apache: CVE-2014-0117 - -The patch comes from upstream: -http://svn.apache.org/viewvc?view=revision&revision=1610674 - -SECURITY (CVE-2014-0117): Fix a crash in mod_proxy. In a -reverse proxy configuration, a remote attacker could send a carefully crafted -request which could crash a server process, resulting in denial of service. - -Thanks to Marek Kroemeke working with HP's Zero Day Initiative for -reporting this issue. - -Upstream-Status: Backport - -Submitted by: Edward Lu, breser, covener -Signed-off-by: Zhang Xiao ---- - modules/proxy/mod_proxy_http.c | 8 +++- - include/httpd.h | 17 ++++++++ - modules/proxy/proxy_util.c | 67 ++++++++++++++---------------- - server/util.c | 89 ++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 143 insertions(+), 38 deletions(-) - -diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c -index cffad2e..f11c16f 100644 ---- a/modules/proxy/mod_proxy_http.c -+++ b/modules/proxy/mod_proxy_http.c -@@ -1362,6 +1362,7 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r, - */ - if (apr_date_checkmask(buffer, "HTTP/#.# ###*")) { - int major, minor; -+ int toclose; - - major = buffer[5] - '0'; - minor = buffer[7] - '0'; -@@ -1470,7 +1471,12 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r, - te = apr_table_get(r->headers_out, "Transfer-Encoding"); - - /* strip connection listed hop-by-hop headers from response */ -- backend->close = ap_proxy_clear_connection_fn(r, r->headers_out); -+ toclose = ap_proxy_clear_connection_fn(r, r->headers_out); -+ backend->close = (toclose != 0); -+ if (toclose < 0) { -+ return ap_proxyerror(r, HTTP_BAD_REQUEST, -+ "Malformed connection header"); -+ } - - if ((buf = apr_table_get(r->headers_out, "Content-Type"))) { - ap_set_content_type(r, apr_pstrdup(p, buf)); -diff --git a/include/httpd.h b/include/httpd.h -index 36cd58d..9a2cf5c 100644 ---- a/include/httpd.h -+++ b/include/httpd.h -@@ -1528,6 +1528,23 @@ AP_DECLARE(int) ap_find_etag_weak(apr_pool_t *p, const char *line, const char *t - AP_DECLARE(int) ap_find_etag_strong(apr_pool_t *p, const char *line, const char *tok); - - /** -+ * Retrieve an array of tokens in the format "1#token" defined in RFC2616. Only -+ * accepts ',' as a delimiter, does not accept quoted strings, and errors on -+ * any separator. -+ * @param p The pool to allocate from -+ * @param tok The line to read tokens from -+ * @param tokens Pointer to an array of tokens. If not NULL, must be an array -+ * of char*, otherwise it will be allocated on @a p when a token is found -+ * @param skip_invalid If true, when an invalid separator is encountered, it -+ * will be ignored. -+ * @return NULL on success, an error string otherwise. -+ * @remark *tokens may be NULL on output if NULL in input and no token is found -+ */ -+AP_DECLARE(const char *) ap_parse_token_list_strict(apr_pool_t *p, const char *tok, -+ apr_array_header_t **tokens, -+ int skip_invalid); -+ -+/** - * Retrieve a token, spacing over it and adjusting the pointer to - * the first non-white byte afterwards. Note that these tokens - * are delimited by semis and commas and can also be delimited -diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c -index 67dc939..58daa21 100644 ---- a/modules/proxy/proxy_util.c -+++ b/modules/proxy/proxy_util.c -@@ -2847,68 +2847,59 @@ PROXY_DECLARE(proxy_balancer_shared *) ap_proxy_find_balancershm(ap_slotmem_prov - typedef struct header_connection { - apr_pool_t *pool; - apr_array_header_t *array; -- const char *first; -- unsigned int closed:1; -+ const char *error; -+ int is_req; - } header_connection; - - static int find_conn_headers(void *data, const char *key, const char *val) - { - header_connection *x = data; -- const char *name; -- -- do { -- while (*val == ',' || *val == ';') { -- val++; -- } -- name = ap_get_token(x->pool, &val, 0); -- if (!strcasecmp(name, "close")) { -- x->closed = 1; -- } -- if (!x->first) { -- x->first = name; -- } -- else { -- const char **elt; -- if (!x->array) { -- x->array = apr_array_make(x->pool, 4, sizeof(char *)); -- } -- elt = apr_array_push(x->array); -- *elt = name; -- } -- } while (*val); - -- return 1; -+ x->error = ap_parse_token_list_strict(x->pool, val, &x->array, !x->is_req); -+ return !x->error; - } - - /** - * Remove all headers referred to by the Connection header. -+ * Returns -1 on error. Otherwise, returns 1 if 'Close' was seen in -+ * the Connection header tokens, and 0 if not. - */ - static int ap_proxy_clear_connection(request_rec *r, apr_table_t *headers) - { -- const char **name; -+ int closed = 0; - header_connection x; - - x.pool = r->pool; - x.array = NULL; -- x.first = NULL; -- x.closed = 0; -+ x.error = NULL; -+ x.is_req = (headers == r->headers_in); - - apr_table_unset(headers, "Proxy-Connection"); - - apr_table_do(find_conn_headers, &x, headers, "Connection", NULL); -- if (x.first) { -- /* fast path - no memory allocated for one header */ -- apr_table_unset(headers, "Connection"); -- apr_table_unset(headers, x.first); -+ apr_table_unset(headers, "Connection"); -+ -+ if (x.error) { -+ ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, APLOGNO() -+ "Error parsing Connection header: %s", x.error); -+ return -1; - } -+ - if (x.array) { -- /* two or more headers */ -- while ((name = apr_array_pop(x.array))) { -- apr_table_unset(headers, *name); -+ int i; -+ for (i = 0; i < x.array->nelts; i++) { -+ const char *name = APR_ARRAY_IDX(x.array, i, const char *); -+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO() -+ "Removing header '%s' listed in Connection header", -+ name); -+ if (!strcasecmp(name, "close")) { -+ closed = 1; -+ } -+ apr_table_unset(headers, name); - } - } - -- return x.closed; -+ return closed; - } - - PROXY_DECLARE(int) ap_proxy_create_hdrbrgd(apr_pool_t *p, -@@ -3095,7 +3086,9 @@ PROXY_DECLARE(int) ap_proxy_create_hdrbrgd(apr_pool_t *p, - * apr is compiled with APR_POOL_DEBUG. - */ - headers_in_copy = apr_table_copy(r->pool, r->headers_in); -- ap_proxy_clear_connection(r, headers_in_copy); -+ if (ap_proxy_clear_connection(r, headers_in_copy) < 0) { -+ return HTTP_BAD_REQUEST; -+ } - /* send request headers */ - headers_in_array = apr_table_elts(headers_in_copy); - headers_in = (const apr_table_entry_t *) headers_in_array->elts; -diff --git a/server/util.c b/server/util.c -index e0ba5c2..541c9f0 100644 ---- a/server/util.c -+++ b/server/util.c -@@ -1449,6 +1449,95 @@ AP_DECLARE(int) ap_find_etag_weak(apr_pool_t *p, const char *line, - return find_list_item(p, line, tok, AP_ETAG_WEAK); - } - -+/* Grab a list of tokens of the format 1#token (from RFC7230) */ -+AP_DECLARE(const char *) ap_parse_token_list_strict(apr_pool_t *p, -+ const char *str_in, -+ apr_array_header_t **tokens, -+ int skip_invalid) -+{ -+ int in_leading_space = 1; -+ int in_trailing_space = 0; -+ int string_end = 0; -+ const char *tok_begin; -+ const char *cur; -+ -+ if (!str_in) { -+ return NULL; -+ } -+ -+ tok_begin = cur = str_in; -+ -+ while (!string_end) { -+ const unsigned char c = (unsigned char)*cur; -+ -+ if (!TEST_CHAR(c, T_HTTP_TOKEN_STOP) && c != '\0') { -+ /* Non-separator character; we are finished with leading -+ * whitespace. We must never have encountered any trailing -+ * whitespace before the delimiter (comma) */ -+ in_leading_space = 0; -+ if (in_trailing_space) { -+ return "Encountered illegal whitespace in token"; -+ } -+ } -+ else if (c == ' ' || c == '\t') { -+ /* "Linear whitespace" only includes ASCII CRLF, space, and tab; -+ * we can't get a CRLF since headers are split on them already, -+ * so only look for a space or a tab */ -+ if (in_leading_space) { -+ /* We're still in leading whitespace */ -+ ++tok_begin; -+ } -+ else { -+ /* We must be in trailing whitespace */ -+ ++in_trailing_space; -+ } -+ } -+ else if (c == ',' || c == '\0') { -+ if (!in_leading_space) { -+ /* If we're out of the leading space, we know we've read some -+ * characters of a token */ -+ if (*tokens == NULL) { -+ *tokens = apr_array_make(p, 4, sizeof(char *)); -+ } -+ APR_ARRAY_PUSH(*tokens, char *) = -+ apr_pstrmemdup((*tokens)->pool, tok_begin, -+ (cur - tok_begin) - in_trailing_space); -+ } -+ /* We're allowed to have null elements, just don't add them to the -+ * array */ -+ -+ tok_begin = cur + 1; -+ in_leading_space = 1; -+ in_trailing_space = 0; -+ string_end = (c == '\0'); -+ } -+ else { -+ /* Encountered illegal separator char */ -+ if (skip_invalid) { -+ /* Skip to the next separator */ -+ const char *temp; -+ temp = ap_strchr_c(cur, ','); -+ if(!temp) { -+ temp = ap_strchr_c(cur, '\0'); -+ } -+ -+ /* Act like we haven't seen a token so we reset */ -+ cur = temp - 1; -+ in_leading_space = 1; -+ in_trailing_space = 0; -+ } -+ else { -+ return apr_psprintf(p, "Encountered illegal separator " -+ "'\\x%.2x'", (unsigned int)c); -+ } -+ } -+ -+ ++cur; -+ } -+ -+ return NULL; -+} -+ - /* Retrieve a token, spacing over it and returning a pointer to - * the first non-white byte afterwards. Note that these tokens - * are delimited by semis and commas; and can also be delimited --- diff --git a/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch b/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch index 3a59fb07995..413dc535e4e 100644 --- a/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch +++ b/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch @@ -1,52 +1,57 @@ ---- httpd-2.2.8.orig/build/ltmain.sh -+++ httpd-2.2.8/build/ltmain.sh -@@ -1515,7 +1515,7 @@ EOF - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + build/ltmain.sh | 32 +++++++++++++++++++++++++++----- + 1 file changed, 27 insertions(+), 5 deletions(-) + +diff --git a/build/ltmain.sh b/build/ltmain.sh +index 5eca4ae..805b461 100644 +--- a/build/ltmain.sh ++++ b/build/ltmain.sh +@@ -6944,7 +6944,7 @@ func_mode_link () + dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; + =* | [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then -@@ -2558,7 +2558,7 @@ EOF - $echo "*** $linklib is not portable!" + test -z "$absdir" && \ +@@ -8137,7 +8137,7 @@ func_mode_link () + $ECHO "*** $linklib is not portable!" fi - if test "$linkmode" = lib && -- test "$hardcode_into_libs" = yes; then -+ test "x$wrs_use_rpaths" = "xyes" && test "$hardcode_into_libs" = yes; then + if test lib = "$linkmode" && +- test yes = "$hardcode_into_libs"; then ++ test "x$wrs_use_rpaths" = "xyes" && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. -@@ -2832,7 +2832,7 @@ EOF +@@ -8404,7 +8404,7 @@ func_mode_link () - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then if test -n "$dependency_libs" && -- { test "$hardcode_into_libs" != yes || -+ { test "$hardcode_into_libs" != yes || test "x$wrs_use_rpaths" != "xyes" || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then +- { test yes != "$hardcode_into_libs" || ++ { test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then # Extract -R from dependency_libs -@@ -3426,7 +3426,8 @@ EOF - *) finalize_rpath="$finalize_rpath $libdir" ;; +@@ -9025,7 +9025,8 @@ func_mode_link () + *) func_append finalize_rpath " $libdir" ;; esac done -- if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then -+ if test "$hardcode_into_libs" != yes || test "x$wrs_use_rpaths" != "xyes" || -+ test "$build_old_libs" = yes; then +- if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then ++ if test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" || ++ test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi -@@ -3843,7 +3844,7 @@ EOF - case $archive_cmds in - *\$LD\ *) wl= ;; +@@ -9473,7 +9474,7 @@ EOF + case $archive_cmds in + *\$LD\ *) wl= ;; esac -- if test "$hardcode_into_libs" = yes; then -+ if test "$hardcode_into_libs" = yes && test "x$wrs_use_rpaths" = "xyes" ; then +- if test yes = "$hardcode_into_libs"; then ++ if test yes = "$hardcode_into_libs" && test "x$wrs_use_rpaths" = "xyes"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= -@@ -4397,6 +4398,27 @@ EOF +@@ -10211,6 +10212,27 @@ EOF # Now hardcode the library paths rpath= hardcode_libdirs= @@ -74,3 +79,6 @@ for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then +-- +1.9.1 + diff --git a/meta-webserver/recipes-httpd/apache2/apache2/fix-libtool-name.patch b/meta-webserver/recipes-httpd/apache2/apache2/fix-libtool-name.patch deleted file mode 100644 index 027af04c3bd..00000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2/fix-libtool-name.patch +++ /dev/null @@ -1,55 +0,0 @@ -Fix build scripts to use correct libtool filename - -Upstream-Status: Inappropriate [configuration] - ---- - httpd-2.4.2/build/config_vars.sh.in | 2 +- - httpd-2.4.2/configure | 2 +- - httpd-2.4.2/configure.in | 2 +- - httpd-2.4.2/support/apxs.in | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - ---- a/build/config_vars.sh.in -+++ b/build/config_vars.sh.in -@@ -35,7 +35,7 @@ else - APU_CONFIG=@APU_CONFIG@ - fi - --APR_LIBTOOL="`${APR_CONFIG} --apr-libtool`" -+APR_LIBTOOL="`${APR_CONFIG} --apr-libtool | sed -e s,libtool,${host_alias}-libtool,`" - APR_INCLUDEDIR="`${APR_CONFIG} --includedir`" - test -n "@APU_CONFIG@" && APU_INCLUDEDIR="`${APU_CONFIG} --includedir`" - ---- a/configure -+++ b/configure -@@ -6205,7 +6205,7 @@ case $host in - if test "x$LTFLAGS" = "x"; then - LTFLAGS='--silent' - fi -- my_libtool=`$apr_config --apr-libtool` -+ my_libtool=`$apr_config --apr-libtool | sed -e s,libtool,${host_alias}-libtool,` - LIBTOOL="$my_libtool \$(LTFLAGS)" - libtoolversion=`$my_libtool --version` - case $libtoolversion in ---- a/configure.in -+++ b/configure.in -@@ -264,7 +264,7 @@ case $host in - if test "x$LTFLAGS" = "x"; then - LTFLAGS='--silent' - fi -- my_libtool=`$apr_config --apr-libtool` -+ my_libtool=`$apr_config --apr-libtool | sed -e s,libtool,${host_alias}-libtool,` - LIBTOOL="$my_libtool \$(LTFLAGS)" - libtoolversion=`$my_libtool --version` - case $libtoolversion in ---- a/support/apxs.in -+++ b/support/apxs.in -@@ -352,7 +352,7 @@ if ($apr_major_version < 2) { - } - } - --my $libtool = `$apr_config --apr-libtool`; -+my $libtool = `$apr_config --apr-libtool| sed -e s,libtool,${host_alias}-libtool,`; - chomp($libtool); - - my $apr_includedir = `$apr_config --includes`; diff --git a/meta-webserver/recipes-httpd/apache2/apache2/npn-patch-2.4.7.patch b/meta-webserver/recipes-httpd/apache2/apache2/npn-patch-2.4.7.patch deleted file mode 100644 index a4f185501bb..00000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2/npn-patch-2.4.7.patch +++ /dev/null @@ -1,289 +0,0 @@ -Add support for TLS Next Protocol Negotiation: - -* modules/ssl/mod_ssl.c, modules/ssl/mod_ssl.h: Add and implement new - hooks for next protocol advertisement/discovery. - -* modules/ssl/ssl_engine_init.c (ssl_init_ctx_callbacks): Enable - NPN advertisement callback in handshake. - -* modules/ssl/ssl_engine_io.c (ssl_io_filter_input): Invoke - next-protocol discovery hook. - -* modules/ssl/ssl_engine_kernel.c (ssl_callback_AdvertiseNextProtos): - New callback. - -* modules/ssl/ssl_private.h: Add prototype. - -Submitted by: Matthew Steele - with slight tweaks by jorton - -http://svn.apache.org/viewvc?view=revision&revision=1332643 -https://bugzilla.redhat.com//show_bug.cgi?id=809599 -Upstream-Status: Backport -Signed-off-by: Hongxu Jia ---- - CHANGES | 2 + - modules/ssl/mod_ssl.c | 12 ++++++ - modules/ssl/mod_ssl.h | 21 +++++++++++ - modules/ssl/ssl_engine_init.c | 5 +++ - modules/ssl/ssl_engine_io.c | 24 ++++++++++++ - modules/ssl/ssl_engine_kernel.c | 82 +++++++++++++++++++++++++++++++++++++++++ - modules/ssl/ssl_private.h | 6 +++ - 7 files changed, 152 insertions(+) - -diff --git a/CHANGES b/CHANGES ---- a/CHANGES -+++ b/CHANGES -@@ -1,6 +1,8 @@ - -*- coding: utf-8 -*- - - Changes with Apache 2.4.7 -+ *) mod_ssl: Add support for TLS Next Protocol Negotiation. PR 52210. -+ [Matthew Steele ] - - *) APR 1.5.0 or later is now required for the event MPM. - -diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c ---- a/modules/ssl/mod_ssl.c -+++ b/modules/ssl/mod_ssl.c -@@ -275,6 +275,18 @@ static const command_rec ssl_config_cmds[] = { - AP_END_CMD - }; - -+/* Implement 'modssl_run_npn_advertise_protos_hook'. */ -+APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL( -+ modssl, AP, int, npn_advertise_protos_hook, -+ (conn_rec *connection, apr_array_header_t *protos), -+ (connection, protos), OK, DECLINED); -+ -+/* Implement 'modssl_run_npn_proto_negotiated_hook'. */ -+APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL( -+ modssl, AP, int, npn_proto_negotiated_hook, -+ (conn_rec *connection, const char *proto_name, apr_size_t proto_name_len), -+ (connection, proto_name, proto_name_len), OK, DECLINED); -+ - /* - * the various processing hooks - */ -diff --git a/modules/ssl/mod_ssl.h b/modules/ssl/mod_ssl.h ---- a/modules/ssl/mod_ssl.h -+++ b/modules/ssl/mod_ssl.h -@@ -63,5 +63,26 @@ APR_DECLARE_OPTIONAL_FN(int, ssl_proxy_enable, (conn_rec *)); - - APR_DECLARE_OPTIONAL_FN(int, ssl_engine_disable, (conn_rec *)); - -+/** The npn_advertise_protos optional hook allows other modules to add entries -+ * to the list of protocol names advertised by the server during the Next -+ * Protocol Negotiation (NPN) portion of the SSL handshake. The hook callee is -+ * given the connection and an APR array; it should push one or more char*'s -+ * pointing to null-terminated strings (such as "http/1.1" or "spdy/2") onto -+ * the array and return OK, or do nothing and return DECLINED. */ -+APR_DECLARE_EXTERNAL_HOOK(modssl, AP, int, npn_advertise_protos_hook, -+ (conn_rec *connection, apr_array_header_t *protos)); -+ -+/** The npn_proto_negotiated optional hook allows other modules to discover the -+ * name of the protocol that was chosen during the Next Protocol Negotiation -+ * (NPN) portion of the SSL handshake. Note that this may be the empty string -+ * (in which case modules should probably assume HTTP), or it may be a protocol -+ * that was never even advertised by the server. The hook callee is given the -+ * connection, a non-null-terminated string containing the protocol name, and -+ * the length of the string; it should do something appropriate (i.e. insert or -+ * remove filters) and return OK, or do nothing and return DECLINED. */ -+APR_DECLARE_EXTERNAL_HOOK(modssl, AP, int, npn_proto_negotiated_hook, -+ (conn_rec *connection, const char *proto_name, -+ apr_size_t proto_name_len)); -+ - #endif /* __MOD_SSL_H__ */ - /** @} */ -diff --git a/modules/ssl/ssl_engine_init.c b/modules/ssl/ssl_engine_init.c ---- a/modules/ssl/ssl_engine_init.c -+++ b/modules/ssl/ssl_engine_init.c -@@ -546,6 +546,11 @@ static void ssl_init_ctx_callbacks(server_rec *s, - SSL_CTX_set_tmp_dh_callback(ctx, ssl_callback_TmpDH); - - SSL_CTX_set_info_callback(ctx, ssl_callback_Info); -+ -+#ifdef HAVE_TLS_NPN -+ SSL_CTX_set_next_protos_advertised_cb( -+ ctx, ssl_callback_AdvertiseNextProtos, NULL); -+#endif - } - - static void ssl_init_ctx_verify(server_rec *s, -diff --git a/modules/ssl/ssl_engine_io.c b/modules/ssl/ssl_engine_io.c ---- a/modules/ssl/ssl_engine_io.c -+++ b/modules/ssl/ssl_engine_io.c -@@ -28,6 +28,7 @@ - core keeps dumping.'' - -- Unknown */ - #include "ssl_private.h" -+#include "mod_ssl.h" - #include "apr_date.h" - - /* _________________________________________________________________ -@@ -297,6 +298,7 @@ typedef struct { - apr_pool_t *pool; - char buffer[AP_IOBUFSIZE]; - ssl_filter_ctx_t *filter_ctx; -+ int npn_finished; /* 1 if NPN has finished, 0 otherwise */ - } bio_filter_in_ctx_t; - - /* -@@ -1412,6 +1414,27 @@ static apr_status_t ssl_io_filter_input(ap_filter_t *f, - APR_BRIGADE_INSERT_TAIL(bb, bucket); - } - -+#ifdef HAVE_TLS_NPN -+ /* By this point, Next Protocol Negotiation (NPN) should be completed (if -+ * our version of OpenSSL supports it). If we haven't already, find out -+ * which protocol was decided upon and inform other modules by calling -+ * npn_proto_negotiated_hook. */ -+ if (!inctx->npn_finished) { -+ const unsigned char *next_proto = NULL; -+ unsigned next_proto_len = 0; -+ -+ SSL_get0_next_proto_negotiated( -+ inctx->ssl, &next_proto, &next_proto_len); -+ ap_log_cerror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, f->c, -+ "SSL NPN negotiated protocol: '%s'", -+ apr_pstrmemdup(f->c->pool, (const char*)next_proto, -+ next_proto_len)); -+ modssl_run_npn_proto_negotiated_hook( -+ f->c, (const char*)next_proto, next_proto_len); -+ inctx->npn_finished = 1; -+ } -+#endif -+ - return APR_SUCCESS; - } - -@@ -1893,6 +1916,7 @@ static void ssl_io_input_add_filter(ssl_filter_ctx_t *filter_ctx, conn_rec *c, - inctx->block = APR_BLOCK_READ; - inctx->pool = c->pool; - inctx->filter_ctx = filter_ctx; -+ inctx->npn_finished = 0; - } - - /* The request_rec pointer is passed in here only to ensure that the -diff --git a/modules/ssl/ssl_engine_kernel.c b/modules/ssl/ssl_engine_kernel.c ---- a/modules/ssl/ssl_engine_kernel.c -+++ b/modules/ssl/ssl_engine_kernel.c -@@ -29,6 +29,7 @@ - time I was too famous.'' - -- Unknown */ - #include "ssl_private.h" -+#include "mod_ssl.h" - #include "util_md5.h" - - static void ssl_configure_env(request_rec *r, SSLConnRec *sslconn); -@@ -2139,3 +2140,84 @@ int ssl_callback_SRPServerParams(SSL *ssl, int *ad, void *arg) - } - - #endif /* HAVE_SRP */ -+ -+#ifdef HAVE_TLS_NPN -+/* -+ * This callback function is executed when SSL needs to decide what protocols -+ * to advertise during Next Protocol Negotiation (NPN). It must produce a -+ * string in wire format -- a sequence of length-prefixed strings -- indicating -+ * the advertised protocols. Refer to SSL_CTX_set_next_protos_advertised_cb -+ * in OpenSSL for reference. -+ */ -+int ssl_callback_AdvertiseNextProtos(SSL *ssl, const unsigned char **data_out, -+ unsigned int *size_out, void *arg) -+{ -+ conn_rec *c = (conn_rec*)SSL_get_app_data(ssl); -+ apr_array_header_t *protos; -+ int num_protos; -+ unsigned int size; -+ int i; -+ unsigned char *data; -+ unsigned char *start; -+ -+ *data_out = NULL; -+ *size_out = 0; -+ -+ /* If the connection object is not available, then there's nothing for us -+ * to do. */ -+ if (c == NULL) { -+ return SSL_TLSEXT_ERR_OK; -+ } -+ -+ /* Invoke our npn_advertise_protos hook, giving other modules a chance to -+ * add alternate protocol names to advertise. */ -+ protos = apr_array_make(c->pool, 0, sizeof(char*)); -+ modssl_run_npn_advertise_protos_hook(c, protos); -+ num_protos = protos->nelts; -+ -+ /* We now have a list of null-terminated strings; we need to concatenate -+ * them together into a single string, where each protocol name is prefixed -+ * by its length. First, calculate how long that string will be. */ -+ size = 0; -+ for (i = 0; i < num_protos; ++i) { -+ const char *string = APR_ARRAY_IDX(protos, i, const char*); -+ unsigned int length = strlen(string); -+ /* If the protocol name is too long (the length must fit in one byte), -+ * then log an error and skip it. */ -+ if (length > 255) { -+ ap_log_cerror(APLOG_MARK, APLOG_ERR, 0, c, -+ "SSL NPN protocol name too long (length=%u): %s", -+ length, string); -+ continue; -+ } -+ /* Leave room for the length prefix (one byte) plus the protocol name -+ * itself. */ -+ size += 1 + length; -+ } -+ -+ /* If there is nothing to advertise (either because no modules added -+ * anything to the protos array, or because all strings added to the array -+ * were skipped), then we're done. */ -+ if (size == 0) { -+ return SSL_TLSEXT_ERR_OK; -+ } -+ -+ /* Now we can build the string. Copy each protocol name string into the -+ * larger string, prefixed by its length. */ -+ data = apr_palloc(c->pool, size * sizeof(unsigned char)); -+ start = data; -+ for (i = 0; i < num_protos; ++i) { -+ const char *string = APR_ARRAY_IDX(protos, i, const char*); -+ apr_size_t length = strlen(string); -+ *start = (unsigned char)length; -+ ++start; -+ memcpy(start, string, length * sizeof(unsigned char)); -+ start += length; -+ } -+ -+ /* Success. */ -+ *data_out = data; -+ *size_out = size; -+ return SSL_TLSEXT_ERR_OK; -+} -+#endif /* HAVE_TLS_NPN */ -diff --git a/modules/ssl/ssl_private.h b/modules/ssl/ssl_private.h ---- a/modules/ssl/ssl_private.h -+++ b/modules/ssl/ssl_private.h -@@ -123,6 +123,11 @@ - #define MODSSL_SSL_METHOD_CONST - #endif - -+#if OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_NEXTPROTONEG) \ -+ && !defined(OPENSSL_NO_TLSEXT) -+#define HAVE_TLS_NPN -+#endif -+ - #if defined(OPENSSL_FIPS) - #define HAVE_FIPS - #endif -@@ -800,6 +805,7 @@ int ssl_callback_ServerNameIndication(SSL *, int *, modssl_ctx_t *); - int ssl_callback_SessionTicket(SSL *, unsigned char *, unsigned char *, - EVP_CIPHER_CTX *, HMAC_CTX *, int); - #endif -+int ssl_callback_AdvertiseNextProtos(SSL *ssl, const unsigned char **data, unsigned int *len, void *arg); - - /** Session Cache Support */ - void ssl_scache_init(server_rec *, apr_pool_t *); --- -1.8.1.2 - diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.10.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.10.bb deleted file mode 100644 index 55d507f757c..00000000000 --- a/meta-webserver/recipes-httpd/apache2/apache2_2.4.10.bb +++ /dev/null @@ -1,164 +0,0 @@ -DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ -extensible web server." -SUMMARY = "Apache HTTP Server" -HOMEPAGE = "http://httpd.apache.org/" -DEPENDS = "libtool-native apache2-native openssl expat pcre apr apr-util" -SECTION = "net" -LICENSE = "Apache-2.0" - -SRC_URI = "http://www.apache.org/dist/httpd/httpd-${PV}.tar.bz2 \ - file://server-makefile.patch \ - file://httpd-2.4.1-corelimit.patch \ - file://httpd-2.4.4-export.patch \ - file://httpd-2.4.1-selinux.patch \ - file://apache-configure_perlbin.patch \ - file://replace-lynx-to-curl-in-apachectl-script.patch \ - file://apache-ssl-ltmain-rpath.patch \ - file://httpd-2.4.3-fix-race-issue-of-dir-install.patch \ - file://npn-patch-2.4.7.patch \ - file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ - file://configure-allow-to-disable-selinux-support.patch \ - file://init \ - file://apache2-volatile.conf \ - file://apache2.service \ - file://apache-CVE-2014-0117.patch \ - " - -LIC_FILES_CHKSUM = "file://LICENSE;md5=dbff5a2b542fa58854455bf1a0b94b83" -SRC_URI[md5sum] = "44543dff14a4ebc1e9e2d86780507156" -SRC_URI[sha256sum] = "176c4dac1a745f07b7b91e7f4fd48f9c48049fa6f088efe758d61d9738669c6a" - -S = "${WORKDIR}/httpd-${PV}" - -inherit autotools update-rc.d pkgconfig systemd - -SYSTEMD_SERVICE_${PN} = "apache2.service" -SYSTEMD_AUTO_ENABLE_${PN} = "disable" - -SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice" - -CFLAGS_append = " -DPATH_MAX=4096" -CFLAGS_prepend = "-I${STAGING_INCDIR}/openssl " -EXTRA_OECONF = "--enable-ssl \ - --with-ssl=${STAGING_LIBDIR}/.. \ - --with-expat=${STAGING_LIBDIR}/.. \ - --with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ - --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \ - --enable-info \ - --enable-rewrite \ - --with-dbm=sdbm \ - --with-berkeley-db=no \ - --localstatedir=/var/${BPN} \ - --with-gdbm=no \ - --with-ndbm=no \ - --includedir=${includedir}/${BPN} \ - --datadir=${datadir}/${BPN} \ - --sysconfdir=${sysconfdir}/${BPN} \ - --libexecdir=${libdir}/${BPN}/modules \ - ap_cv_void_ptr_lt_long=no \ - --enable-mpms-shared \ - ac_cv_have_threadsafe_pollset=no" - -PACKAGECONFIG ?= "${@base_contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}" -PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux" - -do_install_append() { - install -d ${D}/${sysconfdir}/init.d - cat ${WORKDIR}/init | \ - sed -e 's,/usr/sbin/,${sbindir}/,g' \ - -e 's,/usr/bin/,${bindir}/,g' \ - -e 's,/usr/lib,${libdir}/,g' \ - -e 's,/etc/,${sysconfdir}/,g' \ - -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN} - chmod 755 ${D}/${sysconfdir}/init.d/${BPN} - # remove the goofy original files... - rm -rf ${D}/${sysconfdir}/${BPN}/original - # Expat should be found in the staging area via DEPENDS... - rm -f ${D}/${libdir}/libexpat.* - - install -d ${D}${sysconfdir}/${BPN}/conf.d - install -d ${D}${sysconfdir}/${BPN}/modules.d - - # Ensure configuration file pulls in conf.d and modules.d - printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - # match with that is in init script - printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf - # Set 'ServerName' to fix error messages when restart apache service - sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf - - if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d/ - install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ - fi - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system - sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service - sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service -} - -SYSROOT_PREPROCESS_FUNCS += "apache_sysroot_preprocess" - -apache_sysroot_preprocess () { - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs - sed -i 's!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${TARGET_PREFIX}libtool";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs - - sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk - sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk -} - -# -# implications - used by update-rc.d scripts -# -INITSCRIPT_NAME = "apache2" -INITSCRIPT_PARAMS = "defaults 91 20" -LEAD_SONAME = "libapr-1.so.0" - -PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}" - -CONFFILES_${PN} = "${sysconfdir}/${BPN}/httpd.conf \ - ${sysconfdir}/${BPN}/magic \ - ${sysconfdir}/${BPN}/mime.types \ - ${sysconfdir}/init.d/${BPN} " - -# we override here rather than append so that .so links are -# included in the runtime package rather than here (-dev) -# and to get build, icons, error into the -dev package -FILES_${PN}-dev = "${datadir}/${BPN}/build \ - ${datadir}/${BPN}/icons \ - ${datadir}/${BPN}/error \ - ${bindir}/apr-config ${bindir}/apu-config \ - ${libdir}/apr*.exp \ - ${includedir}/${BPN} \ - ${libdir}/*.la \ - ${libdir}/*.a \ - ${bindir}/apxs \ - " - - -# manual to manual -FILES_${PN}-doc += " ${datadir}/${BPN}/manual" - -FILES_${PN}-scripts += "${bindir}/dbmmanage" - -# -# override this too - here is the default, less datadir -# -FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* ${sysconfdir} \ - ${sharedstatedir} ${localstatedir} /bin /sbin /lib/*.so* \ - ${libdir}/${BPN}" - -# we want htdocs and cgi-bin to go with the binary -FILES_${PN} += "${datadir}/${BPN}/htdocs ${datadir}/${BPN}/cgi-bin" - -#make sure the lone .so links also get wrapped in the base package -FILES_${PN} += "${libdir}/lib*.so ${libdir}/pkgconfig/*" - -FILES_${PN}-dbg += "${libdir}/${BPN}/modules/.debug" - -RDEPENDS_${PN} += "openssl libgcc" -RDEPENDS_${PN}-scripts += "perl ${PN}" diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb new file mode 100644 index 00000000000..f0298b91abd --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb @@ -0,0 +1,194 @@ +DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \ +extensible web server." +SUMMARY = "Apache HTTP Server" +HOMEPAGE = "http://httpd.apache.org/" +DEPENDS = "libtool-native apache2-native openssl expat pcre apr apr-util" +SECTION = "net" +LICENSE = "Apache-2.0" + +SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \ + file://server-makefile.patch \ + file://httpd-2.4.1-corelimit.patch \ + file://httpd-2.4.4-export.patch \ + file://httpd-2.4.1-selinux.patch \ + file://apache-configure_perlbin.patch \ + file://replace-lynx-to-curl-in-apachectl-script.patch \ + file://apache-ssl-ltmain-rpath.patch \ + file://httpd-2.4.3-fix-race-issue-of-dir-install.patch \ + file://0001-configure-use-pkg-config-for-PCRE-detection.patch \ + file://configure-allow-to-disable-selinux-support.patch \ + file://init \ + file://apache2-volatile.conf \ + file://apache2.service \ + file://volatiles.04_apache2 \ + " + +LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8" +SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407" +SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00" + +S = "${WORKDIR}/httpd-${PV}" + +inherit autotools update-rc.d pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "apache2.service" +SYSTEMD_AUTO_ENABLE_${PN} = "disable" + +SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice" + +CFLAGS_append = " -DPATH_MAX=4096" +CFLAGS_prepend = "-I${STAGING_INCDIR}/openssl " +EXTRA_OECONF = "--enable-ssl \ + --with-ssl=${STAGING_LIBDIR}/.. \ + --with-expat=${STAGING_LIBDIR}/.. \ + --with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ + --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \ + --enable-info \ + --enable-rewrite \ + --with-dbm=sdbm \ + --with-berkeley-db=no \ + --localstatedir=/var/${BPN} \ + --with-gdbm=no \ + --with-ndbm=no \ + --includedir=${includedir}/${BPN} \ + --datadir=${datadir}/${BPN} \ + --sysconfdir=${sysconfdir}/${BPN} \ + --libexecdir=${libdir}/${BPN}/modules \ + ap_cv_void_ptr_lt_long=no \ + --enable-mpms-shared \ + ac_cv_have_threadsafe_pollset=no" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}" +PACKAGECONFIG[selinux] = "--enable-selinux --enable-layout=Debian --prefix=${base_prefix}/,--disable-selinux,libselinux,libselinux" +PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap" + +do_configure_prepend() { + sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libdir}/cgi-bin:g' ${S}/config.layout +} + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + cat ${WORKDIR}/init | \ + sed -e 's,/usr/sbin/,${sbindir}/,g' \ + -e 's,/usr/bin/,${bindir}/,g' \ + -e 's,/usr/lib,${libdir}/,g' \ + -e 's,/etc/,${sysconfdir}/,g' \ + -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN} + chmod 755 ${D}/${sysconfdir}/init.d/${BPN} + # remove the goofy original files... + rm -rf ${D}/${sysconfdir}/${BPN}/original + # Expat should be found in the staging area via DEPENDS... + rm -f ${D}/${libdir}/libexpat.* + + install -d ${D}${sysconfdir}/${BPN}/conf.d + install -d ${D}${sysconfdir}/${BPN}/modules.d + + # Ensure configuration file pulls in conf.d and modules.d + printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + # match with that is in init script + printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf + # Set 'ServerName' to fix error messages when restart apache service + sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d/ + install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ + elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2 + fi + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service + + chown -R root:root ${D} +} + +do_install_append_class-target() { + sed -i -e 's,${STAGING_DIR_HOST},,g' \ + -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \ + -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk + + sed -i -e 's,${STAGING_DIR_HOST},,g' \ + -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice + rm -rf ${D}${localstatedir}/run +} + +SYSROOT_PREPROCESS_FUNCS += "apache_sysroot_preprocess" + +apache_sysroot_preprocess () { + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -d ${SYSROOT_DESTDIR}${sbindir}/ + install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}/ + sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs + sed -i 's!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs + + sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk + sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk +} + +# +# implications - used by update-rc.d scripts +# +INITSCRIPT_NAME = "apache2" +INITSCRIPT_PARAMS = "defaults 91 20" +LEAD_SONAME = "libapr-1.so.0" + +PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}" + +CONFFILES_${PN} = "${sysconfdir}/${BPN}/httpd.conf \ + ${sysconfdir}/${BPN}/magic \ + ${sysconfdir}/${BPN}/mime.types \ + ${sysconfdir}/init.d/${BPN} " + +# we override here rather than append so that .so links are +# included in the runtime package rather than here (-dev) +# and to get build, icons, error into the -dev package +FILES_${PN}-dev = "${datadir}/${BPN}/build \ + ${datadir}/${BPN}/icons \ + ${datadir}/${BPN}/error \ + ${bindir}/apr-config ${bindir}/apu-config \ + ${libdir}/apr*.exp \ + ${includedir}/${BPN} \ + ${libdir}/*.la \ + ${libdir}/*.a \ + ${bindir}/apxs \ + " + + +# manual to manual +FILES_${PN}-doc += " ${datadir}/${BPN}/manual" + +FILES_${PN}-scripts += "${bindir}/dbmmanage" + +# +# override this too - here is the default, less datadir +# +FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* ${sysconfdir} \ + ${sharedstatedir} ${localstatedir} /bin /sbin /lib/*.so* \ + ${libdir}/${BPN}" + +# we want htdocs and cgi-bin to go with the binary +FILES_${PN} += "${datadir}/${BPN}/htdocs ${datadir}/${BPN}/cgi-bin" + +#make sure the lone .so links also get wrapped in the base package +FILES_${PN} += "${libdir}/lib*.so ${libdir}/pkgconfig/*" + +FILES_${PN}-dbg += "${libdir}/${BPN}/modules/.debug" + +RDEPENDS_${PN} += "openssl libgcc" +RDEPENDS_${PN}-scripts += "perl ${PN}" +RDEPENDS_${PN}-dev = "perl" + +FILES_${PN} += "${libdir}/cgi-bin" +FILES_${PN} += "${datadir}/${BPN}/" diff --git a/meta-webserver/recipes-httpd/apache2/files/init b/meta-webserver/recipes-httpd/apache2/files/init index a1adbd74f95..758d133b9e3 100755 --- a/meta-webserver/recipes-httpd/apache2/files/init +++ b/meta-webserver/recipes-httpd/apache2/files/init @@ -28,14 +28,161 @@ test -f $APACHECTL || exit 0 # ensure we don't leak environment vars into apachectl APACHECTL="env -i LANG=${LANG} PATH=${PATH} $APACHECTL" +apache_conftest() { + if $($APACHECTL configtest > /dev/null 2>&1 ); then + return 0 + else + return 1 + fi +} + +apache_wait_start() { + local STATUS=$1 + + if [ $STATUS != 0 ] ; then + return $STATUS + fi + + local i=0 + while : ; do + PIDTMP=$(pidof $DAEMON | tr ' ' '\n' | grep -w $(cat $PIDFILE)) + if [ -n "${PIDTMP:-}" ] && kill -0 "${PIDTMP:-}" 2> /dev/null; then + return $STATUS + fi + + if [ $i = "20" ] ; then + return 2 + fi + + sleep 1 + i=$(($i+1)) + done +} + +apache_wait_stop() { + local STATUS=$1 + + if [ $STATUS != 0 ] ; then + return $STATUS + fi + + PIDTMP=$(pidof $DAEMON | tr ' ' '\n' | grep -w $(cat $PIDFILE)) + if [ -n "${PIDTMP:-}" ] && kill -0 "${PIDTMP:-}" 2> /dev/null; then + local i=0 + while kill -0 "${PIDTMP:-}" 2> /dev/null; do + if [ $i = '60' ]; then + STATUS=2 + break + fi + sleep 1 + i=$(($i+1)) + done + return $STATUS + else + return $STATUS + fi +} + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + + if [ -e $PIDFILE ] && pidof $DAEMON | tr ' ' '\n' | grep -w $(cat $PIDFILE) > /dev/null 2>&1 ; then + return 1 + fi + + if apache_conftest ; then + $APACHECTL start + apache_wait_start $? + return $? + else + return 2 + fi +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + + local AP_RET=0 + + if pidof $DAEMON > /dev/null 2>&1 ; then + if [ -e $PIDFILE ] && pidof $DAEMON | tr ' ' '\n' | grep -w $(cat $PIDFILE) > /dev/null 2>&1 ; then + AP_RET=2 + else + AP_RET=1 + fi + else + AP_RET=0 + fi + + # AP_RET is: + # 0 if Apache (whichever) is not running + # 1 if Apache (whichever) is running + # 2 if Apache from the PIDFILE is running + + if [ $AP_RET = 0 ] ; then + return 1 + fi + + if [ $AP_RET = 2 ] && apache_conftest ; then + $APACHECTL stop + apache_wait_stop $? + return $? + else + if [ $AP_RET = 2 ]; then + kill $(pidof $DAEMON | tr ' ' '\n' | grep -w $(cat $PIDFILE)) + apache_wait_stop $? + return $? + elif [ $AP_RET = 1 ] ; then + return 2 + fi + fi + +} + case "$1" in start) echo -n "Starting web server: $NAME" - $APACHECTL $ARGS + do_start + case $? in + 0|1) + echo . + exit 0 + ;; + 2) + echo failed + exit 1 + ;; + esac ;; stop) - $APACHECTL stop + echo -n "Stopping web server: $NAME" + do_stop + case $? in + 0|1) + echo . + exit 0 + ;; + 2) + echo failed + exit 1 + ;; + esac ;; reload) @@ -49,8 +196,18 @@ case "$1" in ;; restart) - $APACHECTL restart - exit $? + echo "Restarting web server: $NAME" + do_stop + case "$?" in + 0|1) + do_start + exit $? + ;; + *) + # Failed to stop + exit 1 + ;; + esac ;; force-reload) diff --git a/meta-webserver/recipes-httpd/apache2/files/volatiles.04_apache2 b/meta-webserver/recipes-httpd/apache2/files/volatiles.04_apache2 new file mode 100644 index 00000000000..922075b1bd6 --- /dev/null +++ b/meta-webserver/recipes-httpd/apache2/files/volatiles.04_apache2 @@ -0,0 +1,3 @@ +# +d root root 0755 /var/run/apache2 none +d root root 0755 /var/log/apache2 none diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch new file mode 100644 index 00000000000..f3be7c6e521 --- /dev/null +++ b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch @@ -0,0 +1,30 @@ +From 4591b5b40d66c19edc73b951ad091dac639454c9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Jul 2017 16:00:34 -0700 +Subject: [PATCH] configure.ac: Add foreign to AM_INIT_AUTOMAKE + +Fixes errors like +| Makefile.am: error: required file './README' not found +| Makefile.am: error: required file './ChangeLog' not found + +Signed-off-by: Khem Raj +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index d6298f27..98cab791 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -32,7 +32,7 @@ dnl Init autoconf and automake + AC_INIT([cherokee], [cherokee_version], [http://bugs.cherokee-project.com/], [cherokee]) + AC_CONFIG_SRCDIR([cherokee/server.c]) + AC_CONFIG_MACRO_DIR([m4]) +-AM_INIT_AUTOMAKE([no-define]) ++AM_INIT_AUTOMAKE([no-define foreign]) + + dnl Define version + AC_DEFINE(PACKAGE_MAJOR_VERSION, "cherokee_major_version", [Version string]) +-- +2.13.3 + diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch new file mode 100644 index 00000000000..d4c0b6e8c62 --- /dev/null +++ b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch @@ -0,0 +1,27 @@ +From e9ae3231ec188df801fe51aa95d6afec2e52db58 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Jul 2017 16:14:19 -0700 +Subject: [PATCH] make: Do not build po files + +Target fails to build + +Signed-off-by: Khem Raj +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index f01278c3..eb864c36 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,6 +1,6 @@ + ## Cherokee: Makefile.am -*- makefile -*- + +-SUBDIRS = po m4 www icons themes qa doc . admin contrib cherokee cget packages dbslayer ++SUBDIRS = m4 www icons themes qa doc . admin contrib cherokee cget packages dbslayer + SUFFIXES = .sample.pre .sample .h.pre .h .xml.pre .xml + ACLOCAL_AMFLAGS = -I m4 + +-- +2.13.3 + diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee_1.2.98.bb b/meta-webserver/recipes-httpd/cherokee/cherokee_1.2.98.bb deleted file mode 100644 index 451e97cb749..00000000000 --- a/meta-webserver/recipes-httpd/cherokee/cherokee_1.2.98.bb +++ /dev/null @@ -1,68 +0,0 @@ -SUMMARY = "Cherokee Web Server fast and secure" -SUMMARY_cget = "Small downloader based in the Cherokee client library" -HOMEPAGE = "http://www.cherokee-project.com/" -SECTION = "network" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -PR = "r9" - -DEPENDS = "libpcre openssl mysql5 ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" - -SRC_URI = "http://www.cherokee-project.de/mirrors/cherokee/1.2/${PV}/cherokee-${PV}.tar.gz \ - file://cherokee.init \ - file://cherokee.service \ - file://cherokee-install-configured.py-once.patch \ -" -SRC_URI[md5sum] = "21b01e7d45c0e82ecc0c4257a9c27feb" -SRC_URI[sha256sum] = "042b5687b1a3db3ca818167548ce5d32c35e227c6640732dcb622a6f4a078b7d" - -inherit autotools pkgconfig binconfig update-rc.d systemd - -PACKAGECONFIG ??= "" -PACKAGECONFIG[ffmpeg] = "--with-ffmpeg,--without-ffmpeg,libav" -PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" -PACKAGECONFIG[geoip] = "--with-geoip,--without-geoip,geoip" - -EXTRA_OECONF = "--disable-static \ - --disable-nls \ - ${@base_contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)} \ - --with-wwwroot=${localstatedir}/www/cherokee \ -" - -do_install_append () { - install -m 0755 -d ${D}${sysconfdir}/init.d - install -m 755 ${WORKDIR}/cherokee.init ${D}${sysconfdir}/init.d/cherokee - - # clean up .la files for plugins - rm -f ${D}${libdir}/cherokee/*.la - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/cherokee.service ${D}${systemd_unitdir}/system - rmdir "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" -} - -# Put -dev near the front so we can move the .la files into it with a wildcard -PACKAGES =+ "libcherokee-server libcherokee-client libcherokee-base cget" - -FILES_cget = "${bindir}/cget" -FILES_libcherokee-server = "${libdir}/libcherokee-server${SOLIBS}" -FILES_libcherokee-client = "${libdir}/libcherokee-client${SOLIBS}" -FILES_libcherokee-base = "${libdir}/libcherokee-base${SOLIBS}" - -# Pack the htdocs -FILES_${PN} += "${localstatedir}/www/cherokee" - -CONFFILES_${PN} = " \ - ${sysconfdir}/cherokee/cherokee.conf \ - ${sysconfdir}/init.d/cherokee \ -" - -INITSCRIPT_NAME = "cherokee" -INITSCRIPT_PARAMS = "defaults 91 91" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "cherokee.service" diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb b/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb new file mode 100644 index 00000000000..3f7eae4c169 --- /dev/null +++ b/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb @@ -0,0 +1,71 @@ +SUMMARY = "Cherokee Web Server fast and secure" +SUMMARY_cget = "Small downloader based in the Cherokee client library" +HOMEPAGE = "http://www.cherokee-project.com/" +SECTION = "network" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "unzip-native libpcre openssl mysql5 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +SRCREV = "75f041e2255e6dd0692db2f14611c2647dbe8425" +PV = "1.2.104+git${SRCPV}" +SRC_URI = "git://github.com/cherokee/webserver \ + file://cherokee.init \ + file://cherokee.service \ + file://cherokee-install-configured.py-once.patch \ + file://0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch \ + file://0001-make-Do-not-build-po-files.patch \ +" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep pkgconfig binconfig update-rc.d systemd pythonnative + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ffmpeg] = "--with-ffmpeg,--without-ffmpeg,libav" +PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" +PACKAGECONFIG[geoip] = "--with-geoip,--without-geoip,geoip" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +EXTRA_OECONF = "--disable-static \ + --disable-nls \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)} \ + --with-wwwroot=${localstatedir}/www/cherokee \ +" + +do_install_append () { + install -m 0755 -d ${D}${sysconfdir}/init.d + install -m 755 ${WORKDIR}/cherokee.init ${D}${sysconfdir}/init.d/cherokee + + # clean up .la files for plugins + rm -f ${D}${libdir}/cherokee/*.la + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/cherokee.service ${D}${systemd_unitdir}/system + rmdir "${D}${localstatedir}/run" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" +} + +# Put -dev near the front so we can move the .la files into it with a wildcard +PACKAGES =+ "libcherokee-server libcherokee-client libcherokee-base cget" + +FILES_cget = "${bindir}/cget" +FILES_libcherokee-server = "${libdir}/libcherokee-server${SOLIBS}" +FILES_libcherokee-client = "${libdir}/libcherokee-client${SOLIBS}" +FILES_libcherokee-base = "${libdir}/libcherokee-base${SOLIBS}" + +# Pack the htdocs +FILES_${PN} += "${localstatedir}/www/cherokee" + +CONFFILES_${PN} = " \ + ${sysconfdir}/cherokee/cherokee.conf \ + ${sysconfdir}/init.d/cherokee \ +" + +INITSCRIPT_NAME = "cherokee" +INITSCRIPT_PARAMS = "defaults 91 91" + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "cherokee.service" diff --git a/meta-webserver/recipes-httpd/hiawatha/files/hiawatha-init b/meta-webserver/recipes-httpd/hiawatha/files/hiawatha-init index 47fc0877add..7427fcb900b 100644 --- a/meta-webserver/recipes-httpd/hiawatha/files/hiawatha-init +++ b/meta-webserver/recipes-httpd/hiawatha/files/hiawatha-init @@ -19,6 +19,7 @@ OPTS="" case "$1" in start) echo -n "Starting $DESC: " + mkdir -p /var/log/hiawatha &> /dev/null start-stop-daemon --start -x "$DAEMON" -- $OPTS echo "$NAME." ;; diff --git a/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb b/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb new file mode 100644 index 00000000000..4c3ca556bd6 --- /dev/null +++ b/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb @@ -0,0 +1,64 @@ +SUMMARY = "Lightweight secure web server" +HOMEPAGE = "http://www.hiawatha-webserver.org" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" +DEPENDS = "libxml2 libxslt" + +SECTION = "net" + +SRC_URI = "http://hiawatha-webserver.org/files/${BP}.tar.gz \ + file://hiawatha-init \ + file://hiawatha.service " + +SRC_URI[md5sum] = "581aa71c831172ba06910deda717302f" +SRC_URI[sha256sum] = "363e99d84a85dafbb74bcc30b3e30286053ec2abbc7afe08cd87193611735f74" + +INITSCRIPT_NAME = "hiawatha" +INITSCRIPT_PARAMS = "defaults 70" + +SYSTEMD_SERVICE_${PN} = "hiawatha.service" + +inherit cmake update-rc.d systemd + +EXTRA_OECMAKE = " -DENABLE_IPV6=OFF \ + -DENABLE_CACHE=OFF \ + -DENABLE_DEBUG=OFF \ + -DENABLE_SSL=OFF \ + -DENABLE_TOOLKIT=OFF \ + -DENABLE_CHROOT=OFF \ + -DENABLE_XSLT=ON \ + -DENABLE_TOMAHAWK=OFF \ + -DCMAKE_INSTALL_MANDIR=${mandir} \ + -DCMAKE_INSTALL_BINDIR=${bindir} \ + -DCMAKE_INSTALL_SBINDIR=${sbindir} \ + -DCMAKE_INSTALL_SYSCONFDIR=${sysconfdir} \ + -DCMAKE_INSTALL_LIBDIR=${libdir} \ + -DCMAKE_INSTALL_FULL_LOCALSTATEDIR=${localstatedir}" + +do_install_append() { + # Copy over init script and sed in the correct sbin path + sed -i 's,sed_sbin_path,${sbindir},' ${WORKDIR}/hiawatha-init + mkdir -p ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/hiawatha-init ${D}${sysconfdir}/init.d/hiawatha + + # configure php-fcgi to have a working configuration + # by default if php is installed + echo "Server = ${bindir}/php-cgi ; 2 ; 127.0.0.1:2005 ; nobody:nobody ; ${sysconfdir}/php/hiawatha-php5/php.ini" >> ${D}${sysconfdir}/hiawatha/php-fcgi.conf + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/hiawatha.service ${D}/${systemd_unitdir}/system + fi + + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" "${D}${localstatedir}/run" +} + +CONFFILES_${PN} = " \ + ${sysconfdir}/hiawatha/cgi-wrapper.conf \ + ${sysconfdir}/hiawatha/hiawatha.conf \ + ${sysconfdir}/hiawatha/index.xslt \ + ${sysconfdir}/hiawatha/mimetype.conf \ + ${sysconfdir}/hiawatha/php-fcgi.conf \ +" + +FILES_${PN}-dev = "${libdir}/hiawatha/*${SOLIBSDEV}" diff --git a/meta-webserver/recipes-httpd/hiawatha/hiawatha_9.2.bb b/meta-webserver/recipes-httpd/hiawatha/hiawatha_9.2.bb deleted file mode 100644 index b9fa5cde871..00000000000 --- a/meta-webserver/recipes-httpd/hiawatha/hiawatha_9.2.bb +++ /dev/null @@ -1,66 +0,0 @@ -SUMMARY = "Lightweight secure web server" -HOMEPAGE = "http://www.hiawatha-webserver.org" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" -DEPENDS = "libxml2 libxslt" - -SECTION = "net" - -SRC_URI = "http://hiawatha-webserver.org/files/${BP}.tar.gz \ - file://hiawatha-init \ - file://hiawatha.service " - -SRC_URI[md5sum] = "a77f044634884c4cc5d21dab44e822a3" -SRC_URI[sha256sum] = "5d9cdec51c618bb3efab747030e593d9bd49dfaf3236254c8e0cb60715716dbf" - -INITSCRIPT_NAME = "hiawatha" -INITSCRIPT_PARAMS = "defaults 70" - -SYSTEMD_SERVICE_${PN} = "hiawatha.service" - -inherit cmake update-rc.d systemd - -EXTRA_OECMAKE = " -DENABLE_IPV6=OFF \ - -DENABLE_CACHE=OFF \ - -DENABLE_DEBUG=OFF \ - -DENABLE_SSL=OFF \ - -DENABLE_TOOLKIT=OFF \ - -DENABLE_CHROOT=OFF \ - -DENABLE_XSLT=ON \ - -DENABLE_TOMAHAWK=OFF \ - -DCMAKE_INSTALL_MANDIR=${mandir} \ - -DCMAKE_INSTALL_BINDIR=${bindir} \ - -DCMAKE_INSTALL_SBINDIR=${sbindir} \ - -DCMAKE_INSTALL_SYSCONFDIR=${sysconfdir} \ - -DCMAKE_INSTALL_LIBDIR=${libdir} \ - -DLOG_DIR=/var/log/hiawatha \ - -DPID_DIR=/var/run \ - -DWEBROOT_DIR=/var/www/hiawatha \ - -DWORK_DIR=/var/lib/hiawatha " - -do_install_append() { - # Copy over init script and sed in the correct sbin path - sed -i 's,sed_sbin_path,${sbindir},' ${WORKDIR}/hiawatha-init - mkdir -p ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/hiawatha-init ${D}${sysconfdir}/init.d/hiawatha - - # configure php-fcgi to have a working configuration - # by default if php is installed - echo "Server = ${bindir}/php-cgi ; 2 ; 127.0.0.1:2005 ; nobody:nobody ; ${sysconfdir}/php/hiawatha-php5/php.ini" >> ${D}${sysconfdir}/hiawatha/php-fcgi.conf - - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}/${systemd_unitdir}/system - install -m 644 ${WORKDIR}/hiawatha.service ${D}/${systemd_unitdir}/system - fi - - rmdir "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" -} - -CONFFILES_${PN} = " \ - ${sysconfdir}/hiawatha/cgi-wrapper.conf \ - ${sysconfdir}/hiawatha/hiawatha.conf \ - ${sysconfdir}/hiawatha/index.xslt \ - ${sysconfdir}/hiawatha/mimetype.conf \ - ${sysconfdir}/hiawatha/php-fcgi.conf \ -" diff --git a/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch b/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch new file mode 100644 index 00000000000..7a229513b6c --- /dev/null +++ b/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch @@ -0,0 +1,29 @@ +From b0526a9b5325bd4758dad8d14efd85c98ef2ebff Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 14 Jul 2017 18:25:23 -0700 +Subject: [PATCH] configure: Respect LIBS variable from env + +For musl we need to pass -lexecinfo from env +this change accomodates that + +Signed-off-by: Khem Raj +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 4286c34..f1c65db 100755 +--- a/configure ++++ b/configure +@@ -620,7 +620,7 @@ LIBDEFS = -DSHAREDLIB -fPIC \$(DEFS) + INCDIR = ./include + LDFLAGS = $LDFLAGS + DESTDIR = ../bin/monkey +-LIBS = -ldl $libs ++LIBS = -ldl $libs ${LIBS} + OBJ = monkey.o mk_method.o mk_mimetype.o mk_vhost.o mk_request.o \\ + mk_header.o mk_config.o mk_signals.o \\ + mk_user.o mk_utils.o mk_epoll.o mk_scheduler.o \\ +-- +2.13.3 + diff --git a/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb b/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb index d7330a17de5..97dc2769a36 100644 --- a/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb +++ b/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb @@ -7,7 +7,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93" SECTION = "net" +DEPENDS_append_libc-musl = " libexecinfo" + SRC_URI = "http://monkey-project.com/releases/1.5/monkey-${PV}.tar.gz \ + file://0001-configure-Respect-LIBS-variable-from-env.patch \ file://monkey.service \ file://monkey.init" @@ -25,6 +28,13 @@ EXTRA_OECONF = "--plugdir=${libdir}/monkey/ \ --debug \ --malloc-libc" +do_configure_prepend_libc-musl() { + export LIBS="-lexecinfo" +} + +DISABLE_STATIC = "" +CLEANBROKEN = "1" + inherit autotools-brokensep pkgconfig update-rc.d systemd INITSCRIPT_NAME = "monkey" @@ -57,7 +67,7 @@ do_install_append() { mkdir -p ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/monkey.init ${D}${sysconfdir}/init.d/monkey - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_unitdir}/system install -m 644 ${WORKDIR}/monkey.service ${D}/${systemd_unitdir}/system fi diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx-cross.patch b/meta-webserver/recipes-httpd/nginx/files/nginx-cross.patch index 5f899a1d84b..5e96644aa23 100644 --- a/meta-webserver/recipes-httpd/nginx/files/nginx-cross.patch +++ b/meta-webserver/recipes-httpd/nginx/files/nginx-cross.patch @@ -6,7 +6,7 @@ Upstream-Status: Pending diff -uraN nginx-1.0.11.orig/auto/feature nginx-1.0.11/auto/feature --- nginx-1.0.11.orig/auto/feature 2011-05-11 06:50:19.000000000 -0500 +++ nginx-1.0.11/auto/feature 2011-12-27 13:56:42.323370040 -0600 -@@ -48,12 +48,20 @@ +@@ -49,12 +49,20 @@ if [ -x $NGX_AUTOTEST ]; then @@ -29,7 +29,7 @@ diff -uraN nginx-1.0.11.orig/auto/feature nginx-1.0.11/auto/feature ngx_found=yes if test -n "$ngx_feature_name"; then -@@ -67,17 +75,27 @@ +@@ -68,17 +75,27 @@ value) # /bin/sh is used to intercept "Killed" or "Abort trap" messages @@ -61,7 +61,7 @@ diff -uraN nginx-1.0.11.orig/auto/feature nginx-1.0.11/auto/feature else echo " found but is not working" fi -@@ -85,7 +103,7 @@ +@@ -86,7 +105,7 @@ bug) # /bin/sh is used to intercept "Killed" or "Abort trap" messages @@ -73,8 +73,8 @@ diff -uraN nginx-1.0.11.orig/auto/feature nginx-1.0.11/auto/feature diff -uraN nginx-1.0.11.orig/auto/options nginx-1.0.11/auto/options --- nginx-1.0.11.orig/auto/options 2011-12-14 07:34:16.000000000 -0600 +++ nginx-1.0.11/auto/options 2011-12-27 13:56:42.323370040 -0600 -@@ -289,6 +289,18 @@ - --test-build-rtsig) NGX_TEST_BUILD_RTSIG=YES ;; +@@ -353,6 +353,18 @@ + --test-build-epoll) NGX_TEST_BUILD_EPOLL=YES ;; --test-build-solaris-sendfilev) NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;; + # cross compile support @@ -92,7 +92,7 @@ diff -uraN nginx-1.0.11.orig/auto/options nginx-1.0.11/auto/options *) echo "$0: error: invalid option \"$option\"" exit 1 -@@ -434,6 +446,17 @@ +@@ -533,6 +445,17 @@ --with-debug enable debug logging @@ -110,7 +110,7 @@ diff -uraN nginx-1.0.11.orig/auto/options nginx-1.0.11/auto/options END exit 1 -@@ -455,6 +478,8 @@ +@@ -554,6 +577,8 @@ if [ ".$NGX_PLATFORM" = ".win32" ]; then NGX_WINE=$WINE @@ -122,7 +122,7 @@ diff -uraN nginx-1.0.11.orig/auto/options nginx-1.0.11/auto/options diff -uraN nginx-1.0.11.orig/auto/types/sizeof nginx-1.0.11/auto/types/sizeof --- nginx-1.0.11.orig/auto/types/sizeof 2006-06-28 11:00:26.000000000 -0500 +++ nginx-1.0.11/auto/types/sizeof 2011-12-27 13:56:42.323370040 -0600 -@@ -11,9 +11,12 @@ +@@ -12,9 +12,12 @@ END @@ -137,7 +137,7 @@ diff -uraN nginx-1.0.11.orig/auto/types/sizeof nginx-1.0.11/auto/types/sizeof #include #include -@@ -31,19 +34,20 @@ +@@ -33,15 +36,16 @@ END @@ -153,19 +153,13 @@ diff -uraN nginx-1.0.11.orig/auto/types/sizeof nginx-1.0.11/auto/types/sizeof -if [ -x $NGX_AUTOTEST ]; then - ngx_size=`$NGX_AUTOTEST` - echo " $ngx_size bytes" --fi + if [ -x $NGX_AUTOTEST ]; then + ngx_size=`$NGX_AUTOTEST` + echo " $ngx_size bytes" + fi + fi --rm -f $NGX_AUTOTEST -+ rm -f $NGX_AUTOTEST -+fi - - - case $ngx_size in diff -uraN nginx-1.0.11.orig/auto/unix nginx-1.0.11/auto/unix --- nginx-1.0.11.orig/auto/unix 2011-12-14 07:34:16.000000000 -0600 +++ nginx-1.0.11/auto/unix 2011-12-27 13:56:42.327370060 -0600 diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx-volatile.conf b/meta-webserver/recipes-httpd/nginx/files/nginx-volatile.conf index 93f3c663452..472fde16a83 100644 --- a/meta-webserver/recipes-httpd/nginx/files/nginx-volatile.conf +++ b/meta-webserver/recipes-httpd/nginx/files/nginx-volatile.conf @@ -1,2 +1,2 @@ -d www www-data 0755 /run/nginx none +d @NGINX_USER@ www-data 0755 /run/nginx none d root root 0755 /var/log/nginx none diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.conf b/meta-webserver/recipes-httpd/nginx/files/nginx.conf index fb7e4b65da8..69d3a2adc9e 100644 --- a/meta-webserver/recipes-httpd/nginx/files/nginx.conf +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.conf @@ -1,5 +1,5 @@ -user www-data; +user www; worker_processes 1; error_log /var/log/nginx/error.log; diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.init b/meta-webserver/recipes-httpd/nginx/files/nginx.init old mode 100755 new mode 100644 index 0f38b9cdb71..1a2bd7dff51 --- a/meta-webserver/recipes-httpd/nginx/files/nginx.init +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.init @@ -3,7 +3,7 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/nginx NAME=nginx DESC=nginx -PID=/var/run/nginx/nginx.pid +PID=/run/nginx/nginx.pid test -x $DAEMON || exit 0 diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service b/meta-webserver/recipes-httpd/nginx/files/nginx.service new file mode 100644 index 00000000000..ce99061717b --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service @@ -0,0 +1,11 @@ +[Unit] +Description=Nginx Server +After=network.target +[Service] +Type=forking +PIDFile=/run/nginx/nginx.pid +ExecStart=@SBINDIR@/nginx +ExecStop=@SBINDIR@/nginx -s stop +ExecReload=@SBINDIR@/nginx -s reload +[Install] +WantedBy=multi-user.target diff --git a/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-webserver/recipes-httpd/nginx/nginx.inc new file mode 100644 index 00000000000..4a97e2670db --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/nginx.inc @@ -0,0 +1,155 @@ +SUMMARY = "HTTP and reverse proxy server" + +DESCRIPTION = "Nginx is a web server and a reverse proxy server for \ +HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high \ +concurrency, performance and low memory usage." + +HOMEPAGE = "http://nginx.org/" +LICENSE = "BSD-2-Clause" + +SECTION = "net" + +DEPENDS = "libpcre zlib openssl" + +SRC_URI = " \ + http://nginx.org/download/nginx-${PV}.tar.gz \ + file://nginx-cross.patch \ + file://nginx.conf \ + file://nginx.init \ + file://nginx-volatile.conf \ + file://nginx.service \ +" + +inherit update-rc.d useradd systemd + +SYSTEMD_SERVICE_${PN} = "nginx.service" + +CFLAGS_append = " -fPIE -pie" +CXXFLAGS_append = " -fPIE -pie" + +NGINX_WWWDIR ?= "${localstatedir}/www/localhost" +NGINX_USER ?= "www" + +EXTRA_OECONF = "" +DISABLE_STATIC = "" + +PACKAGECONFIG[http2] = "--with-http_v2_module,," + +do_configure () { + if [ "${SITEINFO_BITS}" = "64" ]; then + PTRSIZE=8 + else + PTRSIZE=4 + fi + + echo $CFLAGS + echo $LDFLAGS + + # Add the LDFLAGS to the main nginx link to avoid issues with missing GNU_HASH + echo "MAIN_LINK=\"\${MAIN_LINK} ${LDFLAGS}\"" >> auto/cc/conf + + ./configure \ + --crossbuild=Linux:${TUNE_ARCH} \ + --with-endian=${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \ + --with-int=4 \ + --with-long=${PTRSIZE} \ + --with-long-long=8 \ + --with-ptr-size=${PTRSIZE} \ + --with-sig-atomic-t=${PTRSIZE} \ + --with-size-t=${PTRSIZE} \ + --with-off-t=${PTRSIZE} \ + --with-time-t=${PTRSIZE} \ + --with-sys-nerr=132 \ + --conf-path=${sysconfdir}/nginx/nginx.conf \ + --http-log-path=${localstatedir}/log/nginx/access.log \ + --error-log-path=${localstatedir}/log/nginx/error.log \ + --http-client-body-temp-path=/run/nginx/client_body_temp \ + --http-proxy-temp-path=/run/nginx/proxy_temp \ + --http-fastcgi-temp-path=/run/nginx/fastcgi_temp \ + --http-uwsgi-temp-path=/run/nginx/uwsgi_temp \ + --http-scgi-temp-path=/run/nginx/scgi_temp \ + --pid-path=/run/nginx/nginx.pid \ + --prefix=${prefix} \ + --with-http_ssl_module \ + --with-http_gzip_static_module \ + ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} +} + +do_install () { + oe_runmake 'DESTDIR=${D}' install + rm -fr ${D}${localstatedir}/run ${D}/run + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/${BPN} - - - -" \ + > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + echo "d /${localstatedir}/log/${BPN} 0755 root root -" \ + >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + fi + install -d ${D}${sysconfdir}/${BPN} + ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run + install -d ${D}${NGINX_WWWDIR} + mv ${D}/usr/html ${D}${NGINX_WWWDIR}/ + chown ${NGINX_USER}:www-data -R ${D}${NGINX_WWWDIR} + + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/nginx.init ${D}${sysconfdir}/init.d/nginx + sed -i 's,/usr/sbin/,${sbindir}/,g' ${D}${sysconfdir}/init.d/nginx + sed -i 's,/etc/,${sysconfdir}/,g' ${D}${sysconfdir}/init.d/nginx + + install -d ${D}${sysconfdir}/nginx + install -m 0644 ${WORKDIR}/nginx.conf ${D}${sysconfdir}/nginx/nginx.conf + sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/nginx.conf + sed -i 's/^user.*/user ${NGINX_USER};/g' ${D}${sysconfdir}/nginx/nginx.conf + install -d ${D}${sysconfdir}/nginx/sites-enabled + + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/nginx-volatile.conf ${D}${sysconfdir}/default/volatiles/99_nginx + sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/default/volatiles/99_nginx + sed -i 's,@NGINX_USER@,${NGINX_USER},g' ${D}${sysconfdir}/default/volatiles/99_nginx + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/nginx.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@LOCALSTATEDIR@,${localstatedir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${systemd_unitdir}/system/nginx.service + fi +} + +pkg_postinst_${PN} () { + if [ -z "$D" ]; then + if type systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + fi +} + +FILES_${PN} += " \ + ${localstatedir}/ \ + ${systemd_unitdir}/system/nginx.service \ +" + +CONFFILES_${PN} = " \ + ${sysconfdir}/nginx/nginx.conf \ + ${sysconfdir}/nginx/fastcgi.conf \ + ${sysconfdir}/nginx/fastcgi_params \ + ${sysconfdir}/nginx/koi-utf \ + ${sysconfdir}/nginx/koi-win \ + ${sysconfdir}/nginx/mime.types \ + ${sysconfdir}/nginx/scgi_params \ + ${sysconfdir}/nginx/uwsgi_params \ + ${sysconfdir}/nginx/win-utf \ +" + +INITSCRIPT_NAME = "nginx" +INITSCRIPT_PARAMS = "defaults 92 20" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = " \ + --system --no-create-home \ + --home ${NGINX_WWWDIR} \ + --groups www-data \ + --user-group ${NGINX_USER}" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb new file mode 100644 index 00000000000..85ad29b081c --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/nginx_1.12.2.bb @@ -0,0 +1,6 @@ +require nginx.inc + +LIC_FILES_CHKSUM = "file://LICENSE;md5=903753de5f86a1ee0341fd2f9491b282" + +SRC_URI[md5sum] = "4d2fc76211435f029271f1cf6d7eeae3" +SRC_URI[sha256sum] = "305f379da1d5fb5aefa79e45c829852ca6983c7cd2a79328f8e084a324cf0416" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.13.6.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.13.6.bb new file mode 100644 index 00000000000..d255f1fc312 --- /dev/null +++ b/meta-webserver/recipes-httpd/nginx/nginx_1.13.6.bb @@ -0,0 +1,10 @@ +require nginx.inc + +# 1.12.x branch is the current stable branch, the recommended default +# 1.13.x is the current mainline branches containing all new features +DEFAULT_PREFERENCE = "-1" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=903753de5f86a1ee0341fd2f9491b282" + +SRC_URI[md5sum] = "f84d3f782c168bfdfb734700e51a929f" +SRC_URI[sha256sum] = "8512fc6f986a20af293b61f33b0e72f64a72ea5b1acbcc790c4c4e2d6f63f8f8" diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.4.4.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.4.4.bb deleted file mode 100644 index e78ed34dd0d..00000000000 --- a/meta-webserver/recipes-httpd/nginx/nginx_1.4.4.bb +++ /dev/null @@ -1,117 +0,0 @@ -SUMMARY = "HTTP and reverse proxy server" - -DESCRIPTION = "Nginx is a web server and a reverse proxy server for \ -HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high \ -concurrency, performance and low memory usage." - -HOMEPAGE = "http://nginx.org/" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=917bfdf005ffb6fd025550414ff05a9f" -SECTION = "net" - -DEPENDS = "libpcre gzip openssl" - -SRC_URI = " \ - http://nginx.org/download/nginx-${PV}.tar.gz \ - file://nginx-cross.patch \ - file://nginx.conf \ - file://nginx.init \ - file://nginx-volatile.conf \ -" -SRC_URI[md5sum] = "5dfaba1cbeae9087f3949860a02caa9f" -SRC_URI[sha256sum] = "7c989a58e5408c9593da0bebcd0e4ffc3d892d1316ba5042ddb0be5b0b4102b9" - -inherit update-rc.d useradd - -do_configure () { - if [ "${SITEINFO_BITS}" = "64" ]; then - PTRSIZE=8 - else - PTRSIZE=4 - fi - - echo $CFLAGS - echo $LDFLAGS - - ./configure \ - --crossbuild=Linux:${TUNE_ARCH} \ - --with-endian=${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \ - --with-int=4 \ - --with-long=${PTRSIZE} \ - --with-long-long=8 \ - --with-ptr-size=${PTRSIZE} \ - --with-sig-atomic-t=${PTRSIZE} \ - --with-size-t=${PTRSIZE} \ - --with-off-t=${PTRSIZE} \ - --with-time-t=${PTRSIZE} \ - --with-sys-nerr=132 \ - --conf-path=${sysconfdir}/nginx/nginx.conf \ - --http-log-path=${localstatedir}/log/nginx/access.log \ - --error-log-path=${localstatedir}/log/nginx/error.log \ - --pid-path=/run/nginx/nginx.pid \ - --prefix=${prefix} \ - --with-http_ssl_module \ - --with-http_gzip_static_module -} - -do_install () { - oe_runmake 'DESTDIR=${D}' install - rm -fr ${D}${localstatedir}/run ${D}/run - if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d - echo "d /run/${BPN} - - - -" \ - > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf - fi - install -d ${D}${sysconfdir}/${BPN} - ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run - install -d ${D}${localstatedir}/www/localhost - mv ${D}/usr/html ${D}${localstatedir}/www/localhost/ - chown www:www-data -R ${D}${localstatedir} - - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/nginx.init ${D}${sysconfdir}/init.d/nginx - sed -i 's,/usr/sbin/,${sbindir}/,g' ${D}${sysconfdir}/init.d/nginx - sed -i 's,/etc/,${sysconfdir}/,g' ${D}${sysconfdir}/init.d/nginx - - install -d ${D}${sysconfdir}/nginx - install -m 0644 ${WORKDIR}/nginx.conf ${D}${sysconfdir}/nginx/nginx.conf - sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/nginx.conf - install -d ${D}${sysconfdir}/nginx/sites-enabled - - install -d ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/nginx-volatile.conf ${D}${sysconfdir}/default/volatiles/99_nginx - sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/default/volatiles/99_nginx -} - -pkg_postinst_${PN} () { - if [ -z "$D" ]; then - if type systemd-tmpfiles >/dev/null; then - systemd-tmpfiles --create - elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then - ${sysconfdir}/init.d/populate-volatile.sh update - fi - fi -} - -FILES_${PN} += "${localstatedir}/" - -CONFFILES_${PN} = "${sysconfdir}/nginx/nginx.conf \ - ${sysconfdir}/nginx/fastcgi.conf\ - ${sysconfdir}/nginx/fastcgi_params \ - ${sysconfdir}/nginx/koi-utf \ - ${sysconfdir}/nginx/koi-win \ - ${sysconfdir}/nginx/mime.types \ - ${sysconfdir}/nginx/scgi_params \ - ${sysconfdir}/nginx/uwsgi_params \ - ${sysconfdir}/nginx/win-utf \ -" - -INITSCRIPT_NAME = "nginx" -INITSCRIPT_PARAMS = "defaults 92 20" - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = " \ - --system --no-create-home \ - --home ${localstatedir}/www/localhost \ - --groups www-data \ - --user-group www" diff --git a/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch b/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch index 7cf011b1c8d..8cd4682355e 100644 --- a/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch +++ b/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch @@ -91,7 +91,9 @@ diff --git a/src/nhttpd/GNUmakefile b/src/nhttpd/GNUmakefile index f6d12de..9524911 100644 --- a/src/nhttpd/GNUmakefile +++ b/src/nhttpd/GNUmakefile -@@ -1,18 +1,18 @@ +@@ -1,20 +1,20 @@ + # $nostromo: GNUmakefile,v 1.6 2016/04/12 19:02:06 hacki Exp $ + -CCFLAGS = -O2 -pipe -Wall -Wstrict-prototypes -c +CFLAGS := -O2 -pipe -Wall -Wstrict-prototypes -c @@ -120,14 +122,16 @@ diff --git a/src/tools/GNUmakefile b/src/tools/GNUmakefile index 15bea61..663ddb5 100644 --- a/src/tools/GNUmakefile +++ b/src/tools/GNUmakefile -@@ -1,11 +1,11 @@ +@@ -1,13 +1,13 @@ + # $nostromo: GNUmakefile,v 1.3 2016/04/12 19:02:58 hacki Exp $ + -CCFLAGS = -O2 -pipe -Wall -Werror -Wstrict-prototypes -c -+CCFLAGS := -O2 -pipe -Wall -Werror -Wstrict-prototypes ++CFLAGS = -O2 -pipe -Wall -Werror -Wstrict-prototypes crypt: crypt.o -- cc -o crypt crypt.o -lcrypt +- cc -L../libbsd -o crypt crypt.o -lcrypt -lbsd - strip crypt -+ $(CC) $(CFLAGS) -o crypt crypt.o -lcrypt ++ $(CC) $(CFLAGS) -L../libbsd -o crypt crypt.o -lcrypt -lbsd +# $(STRIP) crypt crypt.o: crypt.c diff --git a/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.5.bb b/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.5.bb deleted file mode 100644 index fe860ec9a9b..00000000000 --- a/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.5.bb +++ /dev/null @@ -1,69 +0,0 @@ -SUMMARY = "A simple, fast and secure HTTP server" -HOMEPAGE = "http://www.nazgul.ch/dev_nostromo.html" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://src/nhttpd/main.c;beginline=2;endline=14;md5=e5ec3fa723b29b7d59d205afd8d36938" - -SRC_URI = "http://www.nazgul.ch/dev/${BPN}-${PV}.tar.gz \ - file://0001-GNUmakefile-add-possibility-to-override-variables.patch \ - file://nhttpd.conf \ - file://volatiles \ - file://tmpfiles.conf \ - file://nostromo \ -" - -SRC_URI[md5sum] = "dc6cfd6b5aae04c370c7f818fa7bde55" -SRC_URI[sha256sum] = "5f62578285e02449406b46cf06a7888fe3dc4a90bedf58cc18523bad62f6b914" - -TARGET_CC_ARCH += "${LDFLAGS}" - -DEPENDS = "openssl" - -inherit update-rc.d useradd - -INITSCRIPT_NAME = "nostromo" -INITSCRIPT_PARAMS = "defaults 70" - -do_compile() { - oe_runmake -} - -# we need user/group www-data to exist when we install -# -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system -g www-data www-data" - -do_install() { - install -d ${D}/${sbindir} - install -m 0755 src/nhttpd/nhttpd ${D}/${sbindir}/nhttpd - install -m 0755 src/tools/crypt ${D}/${sbindir}/crypt - install -d ${D}/${mandir}/man8 - install -m 0444 src/nhttpd/nhttpd.8 ${D}/${mandir}/man8/nhttpd.8 - install -d ${D}${localstatedir}/nostromo/conf - install -d ${D}${localstatedir}/nostromo/htdocs/cgi-bin - install -d ${D}${localstatedir}/nostromo/icons - install -d ${D}${sysconfdir}/init.d - install -m 0644 conf/mimes ${D}${localstatedir}/nostromo/conf/mimes - install -m 0644 ${WORKDIR}/nhttpd.conf ${D}${sysconfdir} - install -m 0755 ${WORKDIR}/nostromo ${D}${sysconfdir}/init.d - install -D -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/nostromo - if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -D -m 0644 ${WORKDIR}/tmpfiles.conf ${D}${sysconfdir}/tmpfiles.d/nostromo.conf - fi - install -m 0644 htdocs/index.html ${D}${localstatedir}/nostromo/htdocs/index.html - install -m 0644 htdocs/nostromo.gif ${D}${localstatedir}/nostromo/htdocs/nostromo.gif - install -m 0644 icons/dir.gif ${D}${localstatedir}/nostromo/icons/dir.gif - install -m 0644 icons/file.gif ${D}${localstatedir}/nostromo/icons/file.gif - chown -R www-data:www-data ${D}/${localstatedir}/nostromo -} - -CONFFILES_${PN} += "/var/nostromo/conf/mimes ${sysconfdir}/nhttpd.conf" - -pkg_postinst_${PN} () { - if [ -z "$D" ]; then - if [ -e /sys/fs/cgroup/systemd ]; then - systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/nostromo.conf - elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then - ${sysconfdir}/init.d/populate-volatile.sh update - fi - fi -} diff --git a/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb b/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb new file mode 100644 index 00000000000..16f45ce6667 --- /dev/null +++ b/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb @@ -0,0 +1,64 @@ +SUMMARY = "A simple, fast and secure HTTP server" +HOMEPAGE = "http://www.nazgul.ch/dev_nostromo.html" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://src/nhttpd/main.c;beginline=2;endline=14;md5=0bb3711a867b9704d3bfabcf5529b64e" + +SRC_URI = "http://www.nazgul.ch/dev/${BPN}-${PV}.tar.gz \ + file://0001-GNUmakefile-add-possibility-to-override-variables.patch \ + file://nhttpd.conf \ + file://volatiles \ + file://tmpfiles.conf \ + file://nostromo \ +" + +SRC_URI[md5sum] = "27aa241d78ff78920354c3e03a5026ea" +SRC_URI[sha256sum] = "541494ecfeafec58c0876ccc90cc23b06e0144f6f42029af44c7cdb1f411e8eb" + +TARGET_CC_ARCH += "${LDFLAGS}" + +DEPENDS = "openssl groff-native base-passwd" + +inherit update-rc.d + +INITSCRIPT_NAME = "nostromo" +INITSCRIPT_PARAMS = "defaults 70" + +do_compile() { + oe_runmake +} + +do_install() { + install -d ${D}/${sbindir} + install -m 0755 src/nhttpd/nhttpd ${D}/${sbindir}/nhttpd + install -m 0755 src/tools/crypt ${D}/${sbindir}/crypt + install -d ${D}/${mandir}/man8 + install -m 0444 src/nhttpd/nhttpd.8 ${D}/${mandir}/man8/nhttpd.8 + install -d ${D}${localstatedir}/nostromo/conf + install -d ${D}${localstatedir}/nostromo/htdocs/cgi-bin + install -d ${D}${localstatedir}/nostromo/icons + install -d ${D}${sysconfdir}/init.d + install -m 0644 conf/mimes ${D}${localstatedir}/nostromo/conf/mimes + install -m 0644 ${WORKDIR}/nhttpd.conf ${D}${sysconfdir} + install -m 0755 ${WORKDIR}/nostromo ${D}${sysconfdir}/init.d + install -D -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/nostromo + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -D -m 0644 ${WORKDIR}/tmpfiles.conf ${D}${sysconfdir}/tmpfiles.d/nostromo.conf + fi + install -m 0644 htdocs/index.html ${D}${localstatedir}/nostromo/htdocs/index.html + install -m 0644 htdocs/nostromo.gif ${D}${localstatedir}/nostromo/htdocs/nostromo.gif + install -m 0644 icons/dir.gif ${D}${localstatedir}/nostromo/icons/dir.gif + install -m 0644 icons/file.gif ${D}${localstatedir}/nostromo/icons/file.gif + chown -R www-data:www-data ${D}/${localstatedir}/nostromo +} + +CONFFILES_${PN} += "/var/nostromo/conf/mimes ${sysconfdir}/nhttpd.conf" + +pkg_postinst_${PN} () { + if [ -z "$D" ]; then + if [ -e /sys/fs/cgroup/systemd ]; then + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/nostromo.conf + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + fi +} diff --git a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.26.4.bb b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.26.4.bb deleted file mode 100644 index 703492167f7..00000000000 --- a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.26.4.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "A simple, small, portable, fast, and secure HTTP server" -DESCRIPTION = "A simple, small, portable, fast, and secure HTTP server (supported fork of thttpd)." -HOMEPAGE = "http://opensource.dyc.edu/sthttpd" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://src/thttpd.c;beginline=1;endline=26;md5=0c5762c2c34dcbe9eb18815516502872" - -SRC_URI = "http://opensource.dyc.edu/pub/sthttpd/sthttpd-${PV}.tar.gz \ - file://thttpd.service \ - file://thttpd.conf \ - file://init" - -SRC_URI[md5sum] = "e645a85a97d3cb883011a35bc2211815" -SRC_URI[sha256sum] = "78e87979140cbda123c81b4051552242dbbffb5dec1a17e5f95ec4826b1eaddb" - -S = "${WORKDIR}/sthttpd-${PV}" - -inherit autotools update-rc.d systemd - -SRV_DIR ?= "${servicedir}/www" - -EXTRA_OEMAKE += "'WEBDIR=${SRV_DIR}'" - -do_install_append () { - install -d ${D}${sysconfdir}/init.d - install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/thttpd - install -c -m 755 ${WORKDIR}/thttpd.conf ${D}${sysconfdir} - sed -i -e 's,@@CONFFILE,${sysconfdir}/thttpd.conf,g' ${D}${sysconfdir}/init.d/thttpd - sed -i -e 's,@@SRVDIR,${SRV_DIR},g' ${D}${sysconfdir}/thttpd.conf - sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/thttpd - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/thttpd.service ${D}${systemd_unitdir}/system - sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_unitdir}/system/thttpd.service - sed -i 's!/var/!${localstatedir}/!g' ${D}${systemd_unitdir}/system/thttpd.service - sed -i -e 's,@@CONFFILE,${sysconfdir}/thttpd.conf,g' ${D}${systemd_unitdir}/system/thttpd.service -} - -INITSCRIPT_NAME = "thttpd" -INITSCRIPT_PARAMS = "defaults" - -SYSTEMD_SERVICE_${PN} = "thttpd.service" - -FILES_${PN} += "${SRV_DIR}" -FILES_${PN}-dbg += "${SRV_DIR}/cgi-bin/.debug" - diff --git a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb new file mode 100644 index 00000000000..c9fe55b4892 --- /dev/null +++ b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb @@ -0,0 +1,53 @@ +SUMMARY = "A simple, small, portable, fast, and secure HTTP server" +DESCRIPTION = "A simple, small, portable, fast, and secure HTTP server (supported fork of thttpd)." +HOMEPAGE = "http://opensource.dyc.edu/sthttpd" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://src/thttpd.c;beginline=1;endline=26;md5=0c5762c2c34dcbe9eb18815516502872" + +DEPENDS += "base-passwd" + +SRC_URI = "https://github.com/blueness/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \ + file://thttpd.service \ + file://thttpd.conf \ + file://init" + +SRC_URI[md5sum] = "3cda1b6c8c8542b1510eadb8e540d8b6" +SRC_URI[sha256sum] = "a1ee2806432eaf5b5dd267a0523701f9f1fa00fefd499d5bec42165a41e05846" + +S = "${WORKDIR}/sthttpd-${PV}" + +inherit autotools update-rc.d systemd + +SRV_DIR ?= "${servicedir}/www" + +# Note that `${sbindir}/makeweb' is installed setgid to this group, +# but ${SRV_DIR} is not installed chgrp'd to the group by default. +WEBGROUP ?= "www-data" + +do_configure_prepend () { + export WEBDIR=${SRV_DIR} + export WEBGROUP=${WEBGROUP} +} + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/thttpd + install -c -m 755 ${WORKDIR}/thttpd.conf ${D}${sysconfdir} + sed -i -e 's,@@CONFFILE,${sysconfdir}/thttpd.conf,g' ${D}${sysconfdir}/init.d/thttpd + sed -i -e 's,@@SRVDIR,${SRV_DIR},g' ${D}${sysconfdir}/thttpd.conf + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/thttpd + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/thttpd.service ${D}${systemd_unitdir}/system + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_unitdir}/system/thttpd.service + sed -i 's!/var/!${localstatedir}/!g' ${D}${systemd_unitdir}/system/thttpd.service + sed -i -e 's,@@CONFFILE,${sysconfdir}/thttpd.conf,g' ${D}${systemd_unitdir}/system/thttpd.service +} + +INITSCRIPT_NAME = "thttpd" +INITSCRIPT_PARAMS = "defaults" + +SYSTEMD_SERVICE_${PN} = "thttpd.service" + +FILES_${PN} += "${SRV_DIR}" +FILES_${PN}-dbg += "${SRV_DIR}/cgi-bin/.debug" diff --git a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.3.4.bb b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.3.4.bb deleted file mode 100644 index 76068e2cf6d..00000000000 --- a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.3.4.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Web-based MySQL administration interface" -HOMEPAGE = "http://www.phpmyadmin.net" -# Main code is GPLv2, libraries/tcpdf is under LGPLv3, js/jquery is under MIT -LICENSE = "GPLv2 & LGPLv3 & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a \ - file://libraries/tcpdf/LICENSE.TXT;md5=5c87b66a5358ebcc495b03e0afcd342c" - -SRC_URI = "${SOURCEFORGE_MIRROR}/phpmyadmin/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \ - file://apache.conf" - -SRC_URI[md5sum] = "f811243e241ee81defb97e014ca713ef" -SRC_URI[sha256sum] = "91258e07e04e25c5e49284b194ebff8ffa807ad38832fbe802cc6af3f7cb96d3" - -S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages" - -inherit allarch - -do_install() { - install -d ${D}${datadir}/${BPN} - cp -a * ${D}${datadir}/${BPN} - # Don't install patches to target - rm -rf ${D}${datadir}/${BPN}/patches - - install -d ${D}${sysconfdir}/apache2/conf.d - install -m 0644 ${WORKDIR}/apache.conf ${D}${sysconfdir}/apache2/conf.d/phpmyadmin.conf - - # Remove a few scripts that explicitly require bash (!) - rm -f ${D}${datadir}/phpmyadmin/libraries/transformations/*.sh -} - -FILES_${PN} = "${datadir}/${BPN} \ - ${sysconfdir}/apache2/conf.d" - -RDEPENDS_${PN} += "bash" diff --git a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.5.bb b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.5.bb new file mode 100644 index 00000000000..fa447b93e06 --- /dev/null +++ b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.5.bb @@ -0,0 +1,38 @@ +SUMMARY = "Web-based MySQL administration interface" +HOMEPAGE = "http://www.phpmyadmin.net" +# Main code is GPLv2, vendor/tecnickcom/tcpdf is under LGPLv3, js/jquery is under MIT +LICENSE = "GPLv2 & LGPLv3 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=5c87b66a5358ebcc495b03e0afcd342c \ + file://js/jquery/MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9 \ +" + +SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \ + file://apache.conf \ +" + +SRC_URI[md5sum] = "23f65155f37bef0addb7324d45671a4e" +SRC_URI[sha256sum] = "e4f53b8a5a8e32cea389718c6f6f282e9ac22ed5f31f67d88266aa27ae0a1ca3" + +S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/${BPN} + cp -R --no-dereference --preserve=mode,links -v * ${D}${datadir}/${BPN} + chown -R root:root ${D}${datadir}/${BPN} + # Don't install patches to target + rm -rf ${D}${datadir}/${BPN}/patches + + install -d ${D}${sysconfdir}/apache2/conf.d + install -m 0644 ${WORKDIR}/apache.conf ${D}${sysconfdir}/apache2/conf.d/phpmyadmin.conf + + # Remove a few scripts that explicitly require bash (!) + rm -f ${D}${datadir}/phpmyadmin/libraries/transformations/*.sh +} + +FILES_${PN} = "${datadir}/${BPN} \ + ${sysconfdir}/apache2/conf.d" + +RDEPENDS_${PN} += "bash" diff --git a/meta-webserver/recipes-php/xdebug/xdebug_2.2.6.bb b/meta-webserver/recipes-php/xdebug/xdebug_2.2.6.bb deleted file mode 100644 index 1ecac88f035..00000000000 --- a/meta-webserver/recipes-php/xdebug/xdebug_2.2.6.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Debugging and profiling extension for PHP" -LICENSE = "Xdebug" -LIC_FILES_CHKSUM = "file://LICENSE;md5=34df3a274aa12b795417c65634c07f16" - -DEPENDS = "php" - -SRC_URI = "http://xdebug.org/files/xdebug-${PV}.tgz" - -SRC_URI[md5sum] = "f216356861e27284580d0208060ea7fa" -SRC_URI[sha256sum] = "6dd1cba0605e75009331aa3625a19ef49ade5a75aa9fe2ff8a818108d2cce84e" - -inherit autotools - -EXTRA_OECONF += "--enable-xdebug -with-php-config=${STAGING_BINDIR_CROSS}/php-config" - -do_configure() { - cd ${S} - ${STAGING_BINDIR_CROSS}/phpize - cd ${B} - - # Running autoreconf as autotools_do_configure would do here - # breaks the libtool configuration resulting in a failure later - # in do_compile. It's possible this may be fixable, however the - # easiest course of action for the moment is to avoid doing that. - oe_runconf -} - -do_install() { - oe_runmake install INSTALL_ROOT=${D} -} - -FILES_${PN} += "${libdir}/php5/extensions/*/*.so" -FILES_${PN}-dbg += "${libdir}/php5/extensions/*/.debug" - diff --git a/meta-webserver/recipes-php/xdebug/xdebug_2.5.1.bb b/meta-webserver/recipes-php/xdebug/xdebug_2.5.1.bb new file mode 100644 index 00000000000..77413784d23 --- /dev/null +++ b/meta-webserver/recipes-php/xdebug/xdebug_2.5.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "Debugging and profiling extension for PHP" +LICENSE = "Xdebug" +LIC_FILES_CHKSUM = "file://LICENSE;md5=34df3a274aa12b795417c65634c07f16" + +DEPENDS = "php" + +SRC_URI = "http://xdebug.org/files/xdebug-${PV}.tgz" + +SRC_URI[md5sum] = "6167b1e104f1108d77f08eb561a12b22" +SRC_URI[sha256sum] = "7fda9020fd5a2c549ae5a692fcabbb00f74e39dda81d53d25e622bdab4880ec2" + +inherit autotools + +EXTRA_OECONF += "--enable-xdebug -with-php-config=${STAGING_BINDIR_CROSS}/php-config" + +do_configure() { + cd ${S} + ${STAGING_BINDIR_CROSS}/phpize + cd ${B} + + # Running autoreconf as autotools_do_configure would do here + # breaks the libtool configuration resulting in a failure later + # in do_compile. It's possible this may be fixable, however the + # easiest course of action for the moment is to avoid doing that. + oe_runconf +} + +do_install() { + oe_runmake install INSTALL_ROOT=${D} +} + +FILES_${PN} += "${libdir}/php*/extensions/*/*.so" +FILES_${PN}-dbg += "${libdir}/php*/extensions/*/.debug" diff --git a/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb b/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb index ed718aefd9c..48c594483a7 100644 --- a/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb +++ b/meta-webserver/recipes-support/fcgi/fcgi_2.4.0.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.fastcgi.com" LICENSE = "OML" LIC_FILES_CHKSUM = "file://LICENSE.TERMS;md5=e3aacac3a647af6e7e31f181cda0a06a" -SRC_URI = "http://fossies.org/linux/www/${BP}.tar.gz \ +SRC_URI = "http://fossies.org/linux/www/old/${BP}.tar.gz \ file://Fix_EOF_not_declared_issue.patch \ file://add_foreign_to_AM_INIT_AUTOMAKE.patch \ " diff --git a/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb b/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb index 99e58bd8b08..8b2ff44c0c0 100644 --- a/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb +++ b/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb @@ -12,5 +12,5 @@ SRC_URI[sha256sum] = "ab327462cb99894a3699f874425a421d934f957cb24221f00bb888108d inherit autotools -PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch b/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch new file mode 100644 index 00000000000..abea0d66bd5 --- /dev/null +++ b/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch @@ -0,0 +1,21 @@ +Index: git/plugins.d/charts.d.plugin +=================================================================== +--- git.orig/plugins.d/charts.d.plugin ++++ git/plugins.d/charts.d.plugin +@@ -246,16 +246,6 @@ else + info "configuration file '$myconfig' not found. Using defaults." + fi + +-# we check for the timeout command, after we load our +-# configuration, so that the user may overwrite the +-# timeout command we use, providing a function that +-# can emulate the timeout command we need: +-# > timeout SECONDS command ... +-if [ $check_for_timeout -eq 1 ] +- then +- require_cmd timeout || exit 1 +-fi +- + # ----------------------------------------------------------------------------- + # internal checks + diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch b/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch new file mode 100644 index 00000000000..6a0d75e37b2 --- /dev/null +++ b/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch @@ -0,0 +1,27 @@ +From 87f868918a9ae1dcf93e01f3e177d185c19a149a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 13 Jul 2017 14:32:09 -0700 +Subject: [PATCH] makefile: Do not build contrib dir + +It contains debian build iteams anyway + +Signed-off-by: Khem Raj +--- + Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 2ea9e40..acb1bd8 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -56,7 +56,6 @@ SUBDIRS = \ + src \ + system \ + web \ +- contrib \ + tests \ + $(NULL) + +-- +2.13.2 + diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/netdata.conf b/meta-webserver/recipes-webadmin/netdata/netdata/netdata.conf new file mode 100644 index 00000000000..a2b3999c6c2 --- /dev/null +++ b/meta-webserver/recipes-webadmin/netdata/netdata/netdata.conf @@ -0,0 +1,5083 @@ +# NetData Configuration +# You can uncomment and change any of the options below. +# The value shown in the commented settings, is the default value. + +# global netdata configuration + +[global] + debug flags = 0x10000000 + hostname = netdata + history = 86400 + config directory = @@sysconfdir/netdata + plugins directory = @@libdir/netdata/plugins.d + web files directory = @@datadir/netdata/web + cache directory = /var/cache/netdata + log directory = /var/log/netdata + # host access prefix = + # memory deduplication (ksm) = yes + # debug log = /var/log/netdata/debug.log + # error log = /var/log/netdata/error.log + # access log = /var/log/netdata/access.log + # memory mode = save + # update every = 1 + # pthread stack size = 8388608 + # run as user = netdata + # web files owner = netdata + # http port listen backlog = 100 + # port = 19999 + # ip version = any + # disconnect idle web clients after seconds = 60 + # enable web responses gzip compression = yes + +[plugins] + # tc = yes + tc = no + # idlejitter = yes + proc = yes + checks = no + plugins directory = @@libdir/netdata/plugins.d + nable running new plugins = yes + check for new plugins every = 60 + charts.d = yes + sma_webbox = no + apps = yes + node.d = yes + + +# per plugin configuration + +[plugin:proc:/proc/net/dev] + # filename to monitor = /proc/net/dev + # enable new interfaces detected at runtime = on demand + # enable ifb interfaces = no + # bandwidth for all interfaces = on demand + # packets for all interfaces = on demand + # errors for all interfaces = on demand + # drops for all interfaces = on demand + # fifo for all interfaces = on demand + # compressed packets for all interfaces = on demand + # frames, collisions, carrier counters for all interfaces = on demand + +[plugin:proc] + # /proc/net/dev = yes + # /proc/diskstats = yes + # /proc/net/snmp = yes + # /proc/net/snmp6 = yes + # /proc/net/netstat = yes + # /proc/net/stat/conntrack = yes + # /proc/net/ip_vs/stats = yes + # /proc/stat = yes + # /proc/meminfo = yes + # /proc/vmstat = yes + # /proc/net/rpc/nfsd = yes + # /proc/sys/kernel/random/entropy_avail = yes + # /proc/interrupts = yes + # /proc/softirqs = yes + # /proc/loadavg = yes + # /sys/kernel/mm/ksm = yes + # netdata server resources = yes + +[plugin:tc] + # script to run to get tc values = /usr/lib/netdata/netdata/plugins.d/tc-qos-helper.sh + # enable new interfaces detected at runtime = yes + # qos for eth1-ifb = yes + # cleanup unused classes every = 60 + # qos for eth0 = yes + # qos for eth1 = yes + # qos for eth0-ifb = yes + +[plugin:charts.d] + # update every = 1 + # command options = + +[plugin:apps] + # update every = 1 + # command options = + +[plugin:idlejitter] + # loop time in ms = 20 + +[plugin:proc:/proc/interrupts] + # interrupts per core = yes + # filename to monitor = /proc/interrupts + +[plugin:proc:/proc/sys/kernel/random/entropy_avail] + # filename to monitor = /proc/sys/kernel/random/entropy_avail + +[plugin:proc:/proc/diskstats] + # enable new disks detected at runtime = on demand + # bandwidth for all disks = on demand + # operations for all disks = on demand + # merged operations for all disks = on demand + # i/o time for all disks = on demand + # queued operations for all disks = on demand + # utilization percentage for all disks = on demand + # backlog for all disks = on demand + # filename to monitor = /proc/diskstats + # path to get h/w sector size = /sys/block/%s/queue/hw_sector_size + +[plugin:proc:/proc/net/snmp] + # ipv4 packets = yes + # ipv4 fragments sent = yes + # ipv4 fragments assembly = yes + # ipv4 errors = yes + # ipv4 TCP connections = yes + # ipv4 TCP packets = yes + # ipv4 TCP errors = yes + # ipv4 TCP handshake issues = yes + # ipv4 UDP packets = yes + # ipv4 UDP errors = yes + # filename to monitor = /proc/net/snmp + +[plugin:proc:/proc/net/netstat] + # bandwidth = on demand + # input errors = on demand + # multicast bandwidth = on demand + # broadcast bandwidth = on demand + # multicast packets = on demand + # broadcast packets = on demand + # filename to monitor = /proc/net/netstat + +[plugin:proc:/proc/net/stat/nf_conntrack] + # netfilter connections = yes + # netfilter new connections = yes + # netfilter connection changes = yes + # netfilter connection expectations = yes + # netfilter connection searches = yes + # netfilter errors = yes + # filename to monitor = /proc/net/stat/nf_conntrack + +[plugin:proc:/proc/net/ip_vs_stats] + # IPVS bandwidth = yes + # IPVS connections = yes + # IPVS packets = yes + # filename to monitor = /proc/net/ip_vs_stats + +[plugin:proc:/proc/stat] + # cpu utilization = yes + # per cpu core utilization = yes + # cpu interrupts = yes + # context switches = yes + # processes started = yes + # processes running = yes + # filename to monitor = /proc/stat + +[plugin:proc:/proc/meminfo] + # system ram = yes + # system swap = yes + # hardware corrupted ECC = on demand + # committed memory = yes + # writeback memory = yes + # kernel memory = yes + # slab memory = yes + # filename to monitor = /proc/meminfo + +[plugin:proc:/proc/vmstat] + # swap i/o = yes + # disk i/o = yes + # memory page faults = yes + # filename to monitor = /proc/vmstat + +[plugin:proc:/proc/net/rpc/nfsd] + # filename to monitor = /proc/net/rpc/nfsd + # read cache = yes + # file handles = yes + # I/O = yes + # threads = yes + # read ahead = yes + # network = yes + # rpc = yes + # NFS v2 procedures = yes + # NFS v3 procedures = yes + # NFS v4 procedures = yes + # NFS v4 operations = yes + +[plugin:proc:/proc/net/dev:lo] + # enabled = no + +[plugin:proc:/proc/net/dev:fireqos_monitor] + # enabled = no + +[plugin:sma_webbox] + # update every = 1 + # command options = + +[plugin:node.d] + # update every = 1 + # command options = + +[plugin:proc:/sys/kernel/mm/ksm] + # /sys/kernel/mm/ksm/pages_shared = /sys/kernel/mm/ksm/pages_shared + # /sys/kernel/mm/ksm/pages_sharing = /sys/kernel/mm/ksm/pages_sharing + # /sys/kernel/mm/ksm/pages_unshared = /sys/kernel/mm/ksm/pages_unshared + # /sys/kernel/mm/ksm/pages_volatile = /sys/kernel/mm/ksm/pages_volatile + # /sys/kernel/mm/ksm/pages_to_scan = /sys/kernel/mm/ksm/pages_to_scan + +[plugin:proc:/proc/loadavg] + # filename to monitor = /proc/loadavg + # enable load average = yes + # enable total processes = yes + +[plugin:proc:/proc/softirqs] + # interrupts per core = yes + # filename to monitor = /proc/softirqs + +[plugin:proc:/proc/net/dev:eth1-ifb] + # enabled = no + +[plugin:proc:/proc/net/dev:eth0] + # enabled = on demand + # bandwidth = on demand + # packets = on demand + # errors = on demand + # drops = on demand + # fifo = on demand + # compressed = on demand + # events = on demand + +[plugin:proc:/proc/net/dev:eth1] + # enabled = on demand + # bandwidth = on demand + # packets = on demand + # errors = on demand + # drops = on demand + # fifo = on demand + # compressed = on demand + # events = on demand + +[plugin:proc:/proc/net/dev:eth0-ifb] + # enabled = no + +[plugin:proc:/proc/diskstats:fd0] + # enabled = no + +[plugin:proc:/proc/diskstats:sda] + # enabled = on demand + # bandwidth = on demand + # operations = on demand + # merged operations = on demand + # i/o time = on demand + queued operations = yes + # utilization percentage = on demand + # backlog = on demand + +[plugin:proc:/proc/diskstats:sda1] + # enabled = no + +[plugin:proc:/proc/diskstats:sda2] + # enabled = no + +[plugin:proc:/proc/diskstats:sda5] + # enabled = no + +[plugin:proc:/proc/diskstats:sr0] + # enabled = no + +[plugin:proc:/proc/net/snmp6] + # ipv6 packets = on demand + # ipv6 fragments sent = on demand + # ipv6 fragments assembly = on demand + # ipv6 errors = on demand + # ipv6 UDP packets = on demand + # ipv6 UDP errors = on demand + # ipv6 UDPlite packets = on demand + # ipv6 UDPlite errors = on demand + # bandwidth = on demand + # multicast bandwidth = on demand + # broadcast bandwidth = on demand + # multicast packets = on demand + # icmp = on demand + # icmp redirects = on demand + # icmp errors = on demand + # icmp echos = on demand + # icmp group membership = on demand + # icmp router = on demand + # icmp neighbor = on demand + # icmp mldv2 = on demand + # icmp types = on demand + # ect = on demand + # filename to monitor = /proc/net/snmp6 + + +# per chart configuration + +[system.idlejitter] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/system.idlejitter + # chart type = line + # type = system + # family = processes + # context = system.idlejitter + # units = microseconds lost/s + # priority = 9999 + # gap when lost iterations above = 1 + # name = system.idlejitter + # title = CPU Idle Jitter (system.idlejitter) + # dim jitter name = jitter + # dim jitter algorithm = absolute + # dim jitter multiplier = 1 + # dim jitter divisor = 1 + +[system.interrupts] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/system.interrupts + # chart type = stacked + # type = system + # family = interrupts + # context = system.interrupts + # units = interrupts/s + # priority = 1000 + # gap when lost iterations above = 1 + # name = system.interrupts + # title = System interrupts (system.interrupts) + # dim 0 name = timer_0 + # dim 0 algorithm = incremental + # dim 0 multiplier = 1 + # dim 0 divisor = 1 + # dim 1 name = i8042_1 + # dim 1 algorithm = incremental + # dim 1 multiplier = 1 + # dim 1 divisor = 1 + # dim 6 name = floppy_6 + # dim 6 algorithm = incremental + # dim 6 multiplier = 1 + # dim 6 divisor = 1 + # dim 8 name = rtc0_8 + # dim 8 algorithm = incremental + # dim 8 multiplier = 1 + # dim 8 divisor = 1 + # dim 9 name = acpi_9 + # dim 9 algorithm = incremental + # dim 9 multiplier = 1 + # dim 9 divisor = 1 + # dim 12 name = i8042_12 + # dim 12 algorithm = incremental + # dim 12 multiplier = 1 + # dim 12 divisor = 1 + # dim 14 name = ata_piix_14 + # dim 14 algorithm = incremental + # dim 14 multiplier = 1 + # dim 14 divisor = 1 + # dim 15 name = ata_piix_15 + # dim 15 algorithm = incremental + # dim 15 multiplier = 1 + # dim 15 divisor = 1 + # dim NMI name = NMI + # dim NMI algorithm = incremental + # dim NMI multiplier = 1 + # dim NMI divisor = 1 + # dim LOC name = LOC + # dim LOC algorithm = incremental + # dim LOC multiplier = 1 + # dim LOC divisor = 1 + # dim SPU name = SPU + # dim SPU algorithm = incremental + # dim SPU multiplier = 1 + # dim SPU divisor = 1 + # dim PMI name = PMI + # dim PMI algorithm = incremental + # dim PMI multiplier = 1 + # dim PMI divisor = 1 + # dim IWI name = IWI + # dim IWI algorithm = incremental + # dim IWI multiplier = 1 + # dim IWI divisor = 1 + # dim RTR name = RTR + # dim RTR algorithm = incremental + # dim RTR multiplier = 1 + # dim RTR divisor = 1 + # dim RES name = RES + # dim RES algorithm = incremental + # dim RES multiplier = 1 + # dim RES divisor = 1 + # dim CAL name = CAL + # dim CAL algorithm = incremental + # dim CAL multiplier = 1 + # dim CAL divisor = 1 + # dim TLB name = TLB + # dim TLB algorithm = incremental + # dim TLB multiplier = 1 + # dim TLB divisor = 1 + # dim TRM name = TRM + # dim TRM algorithm = incremental + # dim TRM multiplier = 1 + # dim TRM divisor = 1 + # dim THR name = THR + # dim THR algorithm = incremental + # dim THR multiplier = 1 + # dim THR divisor = 1 + # dim MCE name = MCE + # dim MCE algorithm = incremental + # dim MCE multiplier = 1 + # dim MCE divisor = 1 + # dim MCP name = MCP + # dim MCP algorithm = incremental + # dim MCP multiplier = 1 + # dim MCP divisor = 1 + # dim HYP name = HYP + # dim HYP algorithm = incremental + # dim HYP multiplier = 1 + # dim HYP divisor = 1 + # dim ERR name = ERR + # dim ERR algorithm = incremental + # dim ERR multiplier = 1 + # dim ERR divisor = 1 + # dim MIS name = MIS + # dim MIS algorithm = incremental + # dim MIS multiplier = 1 + # dim MIS divisor = 1 + +[system.entropy] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/system.entropy + # chart type = line + # type = system + # family = entropy + # context = system.entropy + # units = entropy + # priority = 1000 + # gap when lost iterations above = 1 + # name = system.entropy + # title = Available Entropy (system.entropy) + # dim entropy name = entropy + # dim entropy algorithm = absolute + # dim entropy multiplier = 1 + # dim entropy divisor = 1 + +[net.eth0] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/net.eth0 + # chart type = area + # type = net + # family = eth0 + # context = net.net + # units = kilobits/s + # priority = 7000 + # gap when lost iterations above = 1 + # name = net.eth0 + # title = Bandwidth (net.eth0) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 8 + # dim received divisor = 1024 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -8 + # dim sent divisor = 1024 + +[net_packets.eth0] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/net_packets.eth0 + # chart type = line + # type = net_packets + # family = eth0 + # context = net.packets + # units = packets/s + # priority = 7001 + # gap when lost iterations above = 1 + # name = net_packets.eth0 + # title = Packets (net_packets.eth0) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + # dim multicast name = multicast + # dim multicast algorithm = incremental + # dim multicast multiplier = 1 + # dim multicast divisor = 1 + +[net_drops.eth0] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/net_drops.eth0 + # chart type = line + # type = net_drops + # family = eth0 + # context = net.drops + # units = drops/s + # priority = 7003 + # gap when lost iterations above = 1 + # name = net_drops.eth0 + # title = Interface Drops (net_drops.eth0) + # dim inbound name = inbound + # dim inbound algorithm = incremental + # dim inbound multiplier = 1 + # dim inbound divisor = 1 + # dim outbound name = outbound + # dim outbound algorithm = incremental + # dim outbound multiplier = -1 + # dim outbound divisor = 1 + +[net.eth1] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/net.eth1 + # chart type = area + # type = net + # family = eth1 + # context = net.net + # units = kilobits/s + # priority = 7000 + # gap when lost iterations above = 1 + # name = net.eth1 + # title = Bandwidth (net.eth1) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 8 + # dim received divisor = 1024 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -8 + # dim sent divisor = 1024 + +[net_packets.eth1] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/net_packets.eth1 + # chart type = line + # type = net_packets + # family = eth1 + # context = net.packets + # units = packets/s + # priority = 7001 + # gap when lost iterations above = 1 + # name = net_packets.eth1 + # title = Packets (net_packets.eth1) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + # dim multicast name = multicast + # dim multicast algorithm = incremental + # dim multicast multiplier = 1 + # dim multicast divisor = 1 + +[disk.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk.sda + # chart type = area + # type = disk + # family = sda + # context = disk.io + # units = kilobytes/s + # priority = 2000 + # gap when lost iterations above = 1 + # name = disk.sda + # title = Disk I/O Bandwidth (disk.sda) + # dim reads name = reads + # dim reads algorithm = incremental + # dim reads multiplier = 512 + # dim reads divisor = 1024 + # dim writes name = writes + # dim writes algorithm = incremental + # dim writes multiplier = -512 + # dim writes divisor = 1024 + +[disk_ops.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_ops.sda + # chart type = line + # type = disk_ops + # family = sda + # context = disk.ops + # units = operations/s + # priority = 2001 + # gap when lost iterations above = 1 + # name = disk_ops.sda + # title = Disk Completed I/O Operations (disk_ops.sda) + # dim reads name = reads + # dim reads algorithm = incremental + # dim reads multiplier = 1 + # dim reads divisor = 1 + # dim writes name = writes + # dim writes algorithm = incremental + # dim writes multiplier = -1 + # dim writes divisor = 1 + +[disk_qops.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_qops.sda + # chart type = line + # type = disk_qops + # family = sda + # context = disk.qops + # units = operations + # priority = 2002 + # gap when lost iterations above = 1 + # name = disk_qops.sda + # title = Disk Current I/O Operations (disk_qops.sda) + # dim operations name = operations + # dim operations algorithm = absolute + # dim operations multiplier = 1 + # dim operations divisor = 1 + +[disk_backlog.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_backlog.sda + # chart type = area + # type = disk_backlog + # family = sda + # context = disk.backlog + # units = backlog (ms) + # priority = 2003 + # gap when lost iterations above = 1 + # name = disk_backlog.sda + # title = Disk Backlog (disk_backlog.sda) + # dim backlog name = backlog + # dim backlog algorithm = incremental + # dim backlog multiplier = 1 + # dim backlog divisor = 10 + +[disk_util.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_util.sda + # chart type = area + # type = disk_util + # family = sda + # context = disk.util + # units = % of time working + # priority = 2004 + # gap when lost iterations above = 1 + # name = disk_util.sda + # title = Disk Utilization Time (disk_util.sda) + # dim utilization name = utilization + # dim utilization algorithm = incremental + # dim utilization multiplier = 1 + # dim utilization divisor = 10 + +[disk_mops.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_mops.sda + # chart type = line + # type = disk_mops + # family = sda + # context = disk.mops + # units = merged operations/s + # priority = 2021 + # gap when lost iterations above = 1 + # name = disk_mops.sda + # title = Disk Merged Operations (disk_mops.sda) + # dim reads name = reads + # dim reads algorithm = incremental + # dim reads multiplier = 1 + # dim reads divisor = 1 + # dim writes name = writes + # dim writes algorithm = incremental + # dim writes multiplier = -1 + # dim writes divisor = 1 + +[disk_iotime.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_iotime.sda + # chart type = line + # type = disk_iotime + # family = sda + # context = disk.iotime + # units = milliseconds/s + # priority = 2022 + # gap when lost iterations above = 1 + # name = disk_iotime.sda + # title = Disk Total I/O Time (disk_iotime.sda) + # dim reads name = reads + # dim reads algorithm = incremental + # dim reads multiplier = 1 + # dim reads divisor = 1 + # dim writes name = writes + # dim writes algorithm = incremental + # dim writes multiplier = -1 + # dim writes divisor = 1 + +[ipv4.packets] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/ipv4.packets + # chart type = line + # type = ipv4 + # family = packets + # context = ipv4.packets + # units = packets/s + # priority = 3000 + # gap when lost iterations above = 1 + # name = ipv4.packets + # title = IPv4 Packets (ipv4.packets) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + # dim forwarded name = forwarded + # dim forwarded algorithm = incremental + # dim forwarded multiplier = 1 + # dim forwarded divisor = 1 + +[ipv4.fragsout] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.fragsout + # chart type = line + # type = ipv4 + # family = fragments + # context = ipv4.fragsout + # units = packets/s + # priority = 3010 + # gap when lost iterations above = 1 + # name = ipv4.fragsout + # title = IPv4 Fragments Sent (ipv4.fragsout) + # dim ok name = ok + # dim ok algorithm = incremental + # dim ok multiplier = 1 + # dim ok divisor = 1 + # dim failed name = failed + # dim failed algorithm = incremental + # dim failed multiplier = -1 + # dim failed divisor = 1 + # dim all name = all + # dim all algorithm = incremental + # dim all multiplier = 1 + # dim all divisor = 1 + +[ipv4.fragsin] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.fragsin + # chart type = line + # type = ipv4 + # family = fragments + # context = ipv4.fragsin + # units = packets/s + # priority = 3011 + # gap when lost iterations above = 1 + # name = ipv4.fragsin + # title = IPv4 Fragments Reassembly (ipv4.fragsin) + # dim ok name = ok + # dim ok algorithm = incremental + # dim ok multiplier = 1 + # dim ok divisor = 1 + # dim failed name = failed + # dim failed algorithm = incremental + # dim failed multiplier = -1 + # dim failed divisor = 1 + # dim all name = all + # dim all algorithm = incremental + # dim all multiplier = 1 + # dim all divisor = 1 + +[ipv4.errors] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.errors + # chart type = line + # type = ipv4 + # family = errors + # context = ipv4.errors + # units = packets/s + # priority = 3002 + # gap when lost iterations above = 1 + # name = ipv4.errors + # title = IPv4 Errors (ipv4.errors) + # dim InDiscards name = InDiscards + # dim InDiscards algorithm = incremental + # dim InDiscards multiplier = 1 + # dim InDiscards divisor = 1 + # dim OutDiscards name = OutDiscards + # dim OutDiscards algorithm = incremental + # dim OutDiscards multiplier = -1 + # dim OutDiscards divisor = 1 + # dim InHdrErrors name = InHdrErrors + # dim InHdrErrors algorithm = incremental + # dim InHdrErrors multiplier = 1 + # dim InHdrErrors divisor = 1 + # dim InAddrErrors name = InAddrErrors + # dim InAddrErrors algorithm = incremental + # dim InAddrErrors multiplier = 1 + # dim InAddrErrors divisor = 1 + # dim InUnknownProtos name = InUnknownProtos + # dim InUnknownProtos algorithm = incremental + # dim InUnknownProtos multiplier = 1 + # dim InUnknownProtos divisor = 1 + # dim OutNoRoutes name = OutNoRoutes + # dim OutNoRoutes algorithm = incremental + # dim OutNoRoutes multiplier = -1 + # dim OutNoRoutes divisor = 1 + +[ipv4.tcpsock] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.tcpsock + # chart type = line + # type = ipv4 + # family = tcp + # context = ipv4.tcpsock + # units = active connections + # priority = 2500 + # gap when lost iterations above = 1 + # name = ipv4.tcpsock + # title = IPv4 TCP Connections (ipv4.tcpsock) + # dim connections name = connections + # dim connections algorithm = absolute + # dim connections multiplier = 1 + # dim connections divisor = 1 + +[ipv4.tcppackets] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.tcppackets + # chart type = line + # type = ipv4 + # family = tcp + # context = ipv4.tcppackets + # units = packets/s + # priority = 2600 + # gap when lost iterations above = 1 + # name = ipv4.tcppackets + # title = IPv4 TCP Packets (ipv4.tcppackets) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + +[ipv4.tcperrors] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.tcperrors + # chart type = line + # type = ipv4 + # family = tcp + # context = ipv4.tcperrors + # units = packets/s + # priority = 2700 + # gap when lost iterations above = 1 + # name = ipv4.tcperrors + # title = IPv4 TCP Errors (ipv4.tcperrors) + # dim InErrs name = InErrs + # dim InErrs algorithm = incremental + # dim InErrs multiplier = 1 + # dim InErrs divisor = 1 + # dim RetransSegs name = RetransSegs + # dim RetransSegs algorithm = incremental + # dim RetransSegs multiplier = -1 + # dim RetransSegs divisor = 1 + +[ipv4.tcphandshake] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.tcphandshake + # chart type = line + # type = ipv4 + # family = tcp + # context = ipv4.tcphandshake + # units = events/s + # priority = 2900 + # gap when lost iterations above = 1 + # name = ipv4.tcphandshake + # title = IPv4 TCP Handshake Issues (ipv4.tcphandshake) + # dim EstabResets name = EstabResets + # dim EstabResets algorithm = incremental + # dim EstabResets multiplier = 1 + # dim EstabResets divisor = 1 + # dim OutRsts name = OutRsts + # dim OutRsts algorithm = incremental + # dim OutRsts multiplier = -1 + # dim OutRsts divisor = 1 + # dim ActiveOpens name = ActiveOpens + # dim ActiveOpens algorithm = incremental + # dim ActiveOpens multiplier = 1 + # dim ActiveOpens divisor = 1 + # dim PassiveOpens name = PassiveOpens + # dim PassiveOpens algorithm = incremental + # dim PassiveOpens multiplier = 1 + # dim PassiveOpens divisor = 1 + # dim AttemptFails name = AttemptFails + # dim AttemptFails algorithm = incremental + # dim AttemptFails multiplier = 1 + # dim AttemptFails divisor = 1 + +[ipv4.udppackets] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.udppackets + # chart type = line + # type = ipv4 + # family = udp + # context = ipv4.udppackets + # units = packets/s + # priority = 2601 + # gap when lost iterations above = 1 + # name = ipv4.udppackets + # title = IPv4 UDP Packets (ipv4.udppackets) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + +[ipv4.udperrors] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.udperrors + # chart type = line + # type = ipv4 + # family = udp + # context = ipv4.udperrors + # units = events/s + # priority = 2701 + # gap when lost iterations above = 1 + # name = ipv4.udperrors + # title = IPv4 UDP Errors (ipv4.udperrors) + # dim RcvbufErrors name = RcvbufErrors + # dim RcvbufErrors algorithm = incremental + # dim RcvbufErrors multiplier = 1 + # dim RcvbufErrors divisor = 1 + # dim SndbufErrors name = SndbufErrors + # dim SndbufErrors algorithm = incremental + # dim SndbufErrors multiplier = -1 + # dim SndbufErrors divisor = 1 + # dim InErrors name = InErrors + # dim InErrors algorithm = incremental + # dim InErrors multiplier = 1 + # dim InErrors divisor = 1 + # dim NoPorts name = NoPorts + # dim NoPorts algorithm = incremental + # dim NoPorts multiplier = 1 + # dim NoPorts divisor = 1 + +[system.ipv4] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/system.ipv4 + # chart type = area + # type = system + # family = network + # context = system.ipv4 + # units = kilobits/s + # priority = 500 + # gap when lost iterations above = 1 + # name = system.ipv4 + # title = IPv4 Bandwidth (system.ipv4) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 8 + # dim received divisor = 1024 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -8 + # dim sent divisor = 1024 + +[ipv4.bcast] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.bcast + # chart type = area + # type = ipv4 + # family = broadcast + # context = ipv4.bcast + # units = kilobits/s + # priority = 8000 + # gap when lost iterations above = 1 + # name = ipv4.bcast + # title = IPv4 Broadcast Bandwidth (ipv4.bcast) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 8 + # dim received divisor = 1024 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -8 + # dim sent divisor = 1024 + +[ipv4.bcastpkts] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv4.bcastpkts + # chart type = line + # type = ipv4 + # family = broadcast + # context = ipv4.bcastpkts + # units = packets/s + # priority = 8500 + # gap when lost iterations above = 1 + # name = ipv4.bcastpkts + # title = IPv4 Broadcast Packets (ipv4.bcastpkts) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + +[system.cpu] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/system.cpu + # chart type = stacked + # type = system + # family = cpu + # context = system.cpu + # units = percentage + # priority = 100 + # gap when lost iterations above = 1 + # name = system.cpu + # title = Total CPU utilization (system.cpu) + # dim guest_nice name = guest_nice + # dim guest_nice algorithm = percentage-of-incremental-row + # dim guest_nice multiplier = 1 + # dim guest_nice divisor = 1 + # dim guest name = guest + # dim guest algorithm = percentage-of-incremental-row + # dim guest multiplier = 1 + # dim guest divisor = 1 + # dim steal name = steal + # dim steal algorithm = percentage-of-incremental-row + # dim steal multiplier = 1 + # dim steal divisor = 1 + # dim softirq name = softirq + # dim softirq algorithm = percentage-of-incremental-row + # dim softirq multiplier = 1 + # dim softirq divisor = 1 + # dim irq name = irq + # dim irq algorithm = percentage-of-incremental-row + # dim irq multiplier = 1 + # dim irq divisor = 1 + # dim user name = user + # dim user algorithm = percentage-of-incremental-row + # dim user multiplier = 1 + # dim user divisor = 1 + # dim system name = system + # dim system algorithm = percentage-of-incremental-row + # dim system multiplier = 1 + # dim system divisor = 1 + # dim nice name = nice + # dim nice algorithm = percentage-of-incremental-row + # dim nice multiplier = 1 + # dim nice divisor = 1 + # dim iowait name = iowait + # dim iowait algorithm = percentage-of-incremental-row + # dim iowait multiplier = 1 + # dim iowait divisor = 1 + # dim idle name = idle + # dim idle algorithm = percentage-of-incremental-row + # dim idle multiplier = 1 + # dim idle divisor = 1 + +[cpu.cpu0] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/cpu.cpu0 + # chart type = stacked + # type = cpu + # family = utilization + # context = cpu.cpu + # units = percentage + # priority = 1000 + # gap when lost iterations above = 1 + # name = cpu.cpu0 + # title = Core utilization (cpu.cpu0) + # dim guest_nice name = guest_nice + # dim guest_nice algorithm = percentage-of-incremental-row + # dim guest_nice multiplier = 1 + # dim guest_nice divisor = 1 + # dim guest name = guest + # dim guest algorithm = percentage-of-incremental-row + # dim guest multiplier = 1 + # dim guest divisor = 1 + # dim steal name = steal + # dim steal algorithm = percentage-of-incremental-row + # dim steal multiplier = 1 + # dim steal divisor = 1 + # dim softirq name = softirq + # dim softirq algorithm = percentage-of-incremental-row + # dim softirq multiplier = 1 + # dim softirq divisor = 1 + # dim irq name = irq + # dim irq algorithm = percentage-of-incremental-row + # dim irq multiplier = 1 + # dim irq divisor = 1 + # dim user name = user + # dim user algorithm = percentage-of-incremental-row + # dim user multiplier = 1 + # dim user divisor = 1 + # dim system name = system + # dim system algorithm = percentage-of-incremental-row + # dim system multiplier = 1 + # dim system divisor = 1 + # dim nice name = nice + # dim nice algorithm = percentage-of-incremental-row + # dim nice multiplier = 1 + # dim nice divisor = 1 + # dim iowait name = iowait + # dim iowait algorithm = percentage-of-incremental-row + # dim iowait multiplier = 1 + # dim iowait divisor = 1 + # dim idle name = idle + # dim idle algorithm = percentage-of-incremental-row + # dim idle multiplier = 1 + # dim idle divisor = 1 + +[cpu.cpu1] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/cpu.cpu1 + # chart type = stacked + # type = cpu + # family = utilization + # context = cpu.cpu + # units = percentage + # priority = 1000 + # gap when lost iterations above = 1 + # name = cpu.cpu1 + # title = Core utilization (cpu.cpu1) + # dim guest_nice name = guest_nice + # dim guest_nice algorithm = percentage-of-incremental-row + # dim guest_nice multiplier = 1 + # dim guest_nice divisor = 1 + # dim guest name = guest + # dim guest algorithm = percentage-of-incremental-row + # dim guest multiplier = 1 + # dim guest divisor = 1 + # dim steal name = steal + # dim steal algorithm = percentage-of-incremental-row + # dim steal multiplier = 1 + # dim steal divisor = 1 + # dim softirq name = softirq + # dim softirq algorithm = percentage-of-incremental-row + # dim softirq multiplier = 1 + # dim softirq divisor = 1 + # dim irq name = irq + # dim irq algorithm = percentage-of-incremental-row + # dim irq multiplier = 1 + # dim irq divisor = 1 + # dim user name = user + # dim user algorithm = percentage-of-incremental-row + # dim user multiplier = 1 + # dim user divisor = 1 + # dim system name = system + # dim system algorithm = percentage-of-incremental-row + # dim system multiplier = 1 + # dim system divisor = 1 + # dim nice name = nice + # dim nice algorithm = percentage-of-incremental-row + # dim nice multiplier = 1 + # dim nice divisor = 1 + # dim iowait name = iowait + # dim iowait algorithm = percentage-of-incremental-row + # dim iowait multiplier = 1 + # dim iowait divisor = 1 + # dim idle name = idle + # dim idle algorithm = percentage-of-incremental-row + # dim idle multiplier = 1 + # dim idle divisor = 1 + +[system.intr] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.intr + # chart type = line + # type = system + # family = interrupts + # context = system.intr + # units = interrupts/s + # priority = 900 + # gap when lost iterations above = 1 + # name = system.intr + # title = CPU Interrupts (system.intr) + # dim interrupts name = interrupts + # dim interrupts algorithm = incremental + # dim interrupts multiplier = 1 + # dim interrupts divisor = 1 + +[system.ctxt] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.ctxt + # chart type = line + # type = system + # family = processes + # context = system.ctxt + # units = context switches/s + # priority = 800 + # gap when lost iterations above = 1 + # name = system.ctxt + # title = CPU Context Switches (system.ctxt) + # dim switches name = switches + # dim switches algorithm = incremental + # dim switches multiplier = 1 + # dim switches divisor = 1 + +[system.forks] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.forks + # chart type = line + # type = system + # family = processes + # context = system.forks + # units = processes/s + # priority = 700 + # gap when lost iterations above = 1 + # name = system.forks + # title = Started Processes (system.forks) + # dim started name = started + # dim started algorithm = incremental + # dim started multiplier = 1 + # dim started divisor = 1 + +[system.processes] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.processes + # chart type = line + # type = system + # family = processes + # context = system.processes + # units = processes + # priority = 600 + # gap when lost iterations above = 1 + # name = system.processes + # title = System Processes (system.processes) + # dim running name = running + # dim running algorithm = absolute + # dim running multiplier = 1 + # dim running divisor = 1 + # dim blocked name = blocked + # dim blocked algorithm = absolute + # dim blocked multiplier = -1 + # dim blocked divisor = 1 + +[system.ram] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.ram + # chart type = stacked + # type = system + # family = ram + # context = system.ram + # units = MB + # priority = 200 + # gap when lost iterations above = 1 + # name = system.ram + # title = System RAM (system.ram) + # dim buffers name = buffers + # dim buffers algorithm = absolute + # dim buffers multiplier = 1 + # dim buffers divisor = 1024 + # dim used name = used + # dim used algorithm = absolute + # dim used multiplier = 1 + # dim used divisor = 1024 + # dim cached name = cached + # dim cached algorithm = absolute + # dim cached multiplier = 1 + # dim cached divisor = 1024 + # dim free name = free + # dim free algorithm = absolute + # dim free multiplier = 1 + # dim free divisor = 1024 + +[system.swap] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.swap + # chart type = stacked + # type = system + # family = swap + # context = system.swap + # units = MB + # priority = 201 + # gap when lost iterations above = 1 + # name = system.swap + # title = System Swap (system.swap) + # dim free name = free + # dim free algorithm = absolute + # dim free multiplier = 1 + # dim free divisor = 1024 + # dim used name = used + # dim used algorithm = absolute + # dim used multiplier = 1 + # dim used divisor = 1024 + +[mem.committed] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/mem.committed + # chart type = area + # type = mem + # family = system + # context = mem.committed + # units = MB + # priority = 5000 + # gap when lost iterations above = 1 + # name = mem.committed + # title = Committed (Allocated) Memory (mem.committed) + # dim Committed_AS name = Committed_AS + # dim Committed_AS algorithm = absolute + # dim Committed_AS multiplier = 1 + # dim Committed_AS divisor = 1024 + +[mem.writeback] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mem.writeback + # chart type = line + # type = mem + # family = kernel + # context = mem.writeback + # units = MB + # priority = 4000 + # gap when lost iterations above = 1 + # name = mem.writeback + # title = Writeback Memory (mem.writeback) + # dim Dirty name = Dirty + # dim Dirty algorithm = absolute + # dim Dirty multiplier = 1 + # dim Dirty divisor = 1024 + # dim Writeback name = Writeback + # dim Writeback algorithm = absolute + # dim Writeback multiplier = 1 + # dim Writeback divisor = 1024 + # dim FuseWriteback name = FuseWriteback + # dim FuseWriteback algorithm = absolute + # dim FuseWriteback multiplier = 1 + # dim FuseWriteback divisor = 1024 + # dim NfsWriteback name = NfsWriteback + # dim NfsWriteback algorithm = absolute + # dim NfsWriteback multiplier = 1 + # dim NfsWriteback divisor = 1024 + # dim Bounce name = Bounce + # dim Bounce algorithm = absolute + # dim Bounce multiplier = 1 + # dim Bounce divisor = 1024 + +[mem.kernel] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/mem.kernel + # chart type = stacked + # type = mem + # family = kernel + # context = mem.kernel + # units = MB + # priority = 6000 + # gap when lost iterations above = 1 + # name = mem.kernel + # title = Memory Used by Kernel (mem.kernel) + # dim Slab name = Slab + # dim Slab algorithm = absolute + # dim Slab multiplier = 1 + # dim Slab divisor = 1024 + # dim KernelStack name = KernelStack + # dim KernelStack algorithm = absolute + # dim KernelStack multiplier = 1 + # dim KernelStack divisor = 1024 + # dim PageTables name = PageTables + # dim PageTables algorithm = absolute + # dim PageTables multiplier = 1 + # dim PageTables divisor = 1024 + # dim VmallocUsed name = VmallocUsed + # dim VmallocUsed algorithm = absolute + # dim VmallocUsed multiplier = 1 + # dim VmallocUsed divisor = 1024 + +[mem.slab] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mem.slab + # chart type = stacked + # type = mem + # family = slab + # context = mem.slab + # units = MB + # priority = 6500 + # gap when lost iterations above = 1 + # name = mem.slab + # title = Reclaimable Kernel Memory (mem.slab) + # dim reclaimable name = reclaimable + # dim reclaimable algorithm = absolute + # dim reclaimable multiplier = 1 + # dim reclaimable divisor = 1024 + # dim unreclaimable name = unreclaimable + # dim unreclaimable algorithm = absolute + # dim unreclaimable multiplier = 1 + # dim unreclaimable divisor = 1024 + +[system.swapio] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/system.swapio + # chart type = area + # type = system + # family = swap + # context = system.swapio + # units = kilobytes/s + # priority = 250 + # gap when lost iterations above = 1 + # name = system.swapio + # title = Swap I/O (system.swapio) + # dim in name = in + # dim in algorithm = incremental + # dim in multiplier = 4096 + # dim in divisor = 1024 + # dim out name = out + # dim out algorithm = incremental + # dim out multiplier = -4096 + # dim out divisor = 1024 + +[system.io] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.io + # chart type = area + # type = system + # family = disk + # context = system.io + # units = kilobytes/s + # priority = 150 + # gap when lost iterations above = 1 + # name = system.io + # title = Disk I/O (system.io) + # dim in name = in + # dim in algorithm = incremental + # dim in multiplier = 1 + # dim in divisor = 1 + # dim out name = out + # dim out algorithm = incremental + # dim out multiplier = -1 + # dim out divisor = 1 + +[netdata.plugin_proc_cpu] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/netdata.plugin_proc_cpu + # chart type = stacked + # type = netdata + # family = proc.internal + # context = netdata.plugin_proc_cpu + # units = milliseconds/s + # priority = 131000 + # gap when lost iterations above = 1 + # name = netdata.plugin_proc_cpu + # title = NetData Proc Plugin CPU usage (netdata.plugin_proc_cpu) + # dim user name = user + # dim user algorithm = incremental + # dim user multiplier = 1 + # dim user divisor = 1000 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1000 + +[netdata.server_cpu] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/netdata.server_cpu + # chart type = stacked + # type = netdata + # family = netdata + # context = netdata.server_cpu + # units = milliseconds/s + # priority = 130000 + # gap when lost iterations above = 1 + # name = netdata.server_cpu + # title = NetData CPU usage (netdata.server_cpu) + # dim user name = user + # dim user algorithm = incremental + # dim user multiplier = 1 + # dim user divisor = 1000 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1000 + +[netdata.clients] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/netdata.clients + # chart type = line + # type = netdata + # family = netdata + # context = netdata.clients + # units = connected clients + # priority = 131000 + # gap when lost iterations above = 1 + # name = netdata.clients + # title = NetData Web Clients (netdata.clients) + # dim clients name = clients + # dim clients algorithm = absolute + # dim clients multiplier = 1 + # dim clients divisor = 1 + +[netdata.requests] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/netdata.requests + # chart type = line + # type = netdata + # family = netdata + # context = netdata.requests + # units = requests/s + # priority = 131100 + # gap when lost iterations above = 1 + # name = netdata.requests + # title = NetData Web Requests (netdata.requests) + # dim requests name = requests + # dim requests algorithm = incremental + # dim requests multiplier = 1 + # dim requests divisor = 1 + +[netdata.net] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/netdata.net + # chart type = area + # type = netdata + # family = netdata + # context = netdata.net + # units = kilobits/s + # priority = 131200 + # gap when lost iterations above = 1 + # name = netdata.net + # title = NetData Network Traffic (netdata.net) + # dim in name = in + # dim in algorithm = incremental + # dim in multiplier = 8 + # dim in divisor = 1024 + # dim out name = out + # dim out algorithm = incremental + # dim out multiplier = -8 + # dim out divisor = 1024 + +[apps.cpu] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/apps.cpu + # chart type = stacked + # type = apps + # family = cpu + # context = apps.cpu + # units = cpu time % + # priority = 20001 + # gap when lost iterations above = 1 + # name = apps.cpu + # title = Apps CPU Time (200% = 2 cores) (apps.cpu) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 100 + # dim other divisor = 100 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 100 + # dim ksmd divisor = 100 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 100 + # dim system divisor = 100 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 100 + # dim netdata divisor = 100 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 100 + # dim kernel divisor = 100 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 100 + # dim cron divisor = 100 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 100 + # dim inetd divisor = 100 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 100 + # dim nms divisor = 100 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 100 + # dim log divisor = 100 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 100 + # dim ntp divisor = 100 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 100 + # dim named divisor = 100 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 100 + # dim ssh divisor = 100 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 100 + # dim nfs divisor = 100 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 100 + # dim nginx divisor = 100 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 100 + # dim postfix divisor = 100 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 100 + # dim mysql divisor = 100 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 100 + # dim rsync divisor = 100 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 100 + # dim compile divisor = 100 + +[apps.mem] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/apps.mem + # chart type = stacked + # type = apps + # family = mem + # context = apps.mem + # units = MB + # priority = 20003 + # gap when lost iterations above = 1 + # name = apps.mem + # title = Apps Dedicated Memory (w/o shared) (apps.mem) + # dim other name = other + # dim other algorithm = absolute + # dim other multiplier = 4096 + # dim other divisor = 1048576 + # dim ksmd name = ksmd + # dim ksmd algorithm = absolute + # dim ksmd multiplier = 4096 + # dim ksmd divisor = 1048576 + # dim system name = system + # dim system algorithm = absolute + # dim system multiplier = 4096 + # dim system divisor = 1048576 + # dim netdata name = netdata + # dim netdata algorithm = absolute + # dim netdata multiplier = 4096 + # dim netdata divisor = 1048576 + # dim kernel name = kernel + # dim kernel algorithm = absolute + # dim kernel multiplier = 4096 + # dim kernel divisor = 1048576 + # dim cron name = cron + # dim cron algorithm = absolute + # dim cron multiplier = 4096 + # dim cron divisor = 1048576 + # dim inetd name = inetd + # dim inetd algorithm = absolute + # dim inetd multiplier = 4096 + # dim inetd divisor = 1048576 + # dim nms name = nms + # dim nms algorithm = absolute + # dim nms multiplier = 4096 + # dim nms divisor = 1048576 + # dim log name = log + # dim log algorithm = absolute + # dim log multiplier = 4096 + # dim log divisor = 1048576 + # dim ntp name = ntp + # dim ntp algorithm = absolute + # dim ntp multiplier = 4096 + # dim ntp divisor = 1048576 + # dim named name = named + # dim named algorithm = absolute + # dim named multiplier = 4096 + # dim named divisor = 1048576 + # dim ssh name = ssh + # dim ssh algorithm = absolute + # dim ssh multiplier = 4096 + # dim ssh divisor = 1048576 + # dim nfs name = nfs + # dim nfs algorithm = absolute + # dim nfs multiplier = 4096 + # dim nfs divisor = 1048576 + # dim nginx name = nginx + # dim nginx algorithm = absolute + # dim nginx multiplier = 4096 + # dim nginx divisor = 1048576 + # dim postfix name = postfix + # dim postfix algorithm = absolute + # dim postfix multiplier = 4096 + # dim postfix divisor = 1048576 + # dim mysql name = mysql + # dim mysql algorithm = absolute + # dim mysql multiplier = 4096 + # dim mysql divisor = 1048576 + # dim rsync name = rsync + # dim rsync algorithm = absolute + # dim rsync multiplier = 4096 + # dim rsync divisor = 1048576 + # dim compile name = compile + # dim compile algorithm = absolute + # dim compile multiplier = 4096 + # dim compile divisor = 1048576 + +[apps.threads] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/apps.threads + # chart type = stacked + # type = apps + # family = processes + # context = apps.threads + # units = threads + # priority = 20005 + # gap when lost iterations above = 1 + # name = apps.threads + # title = Apps Threads (apps.threads) + # dim other name = other + # dim other algorithm = absolute + # dim other multiplier = 1 + # dim other divisor = 1 + # dim ksmd name = ksmd + # dim ksmd algorithm = absolute + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1 + # dim system name = system + # dim system algorithm = absolute + # dim system multiplier = 1 + # dim system divisor = 1 + # dim netdata name = netdata + # dim netdata algorithm = absolute + # dim netdata multiplier = 1 + # dim netdata divisor = 1 + # dim kernel name = kernel + # dim kernel algorithm = absolute + # dim kernel multiplier = 1 + # dim kernel divisor = 1 + # dim cron name = cron + # dim cron algorithm = absolute + # dim cron multiplier = 1 + # dim cron divisor = 1 + # dim inetd name = inetd + # dim inetd algorithm = absolute + # dim inetd multiplier = 1 + # dim inetd divisor = 1 + # dim nms name = nms + # dim nms algorithm = absolute + # dim nms multiplier = 1 + # dim nms divisor = 1 + # dim log name = log + # dim log algorithm = absolute + # dim log multiplier = 1 + # dim log divisor = 1 + # dim ntp name = ntp + # dim ntp algorithm = absolute + # dim ntp multiplier = 1 + # dim ntp divisor = 1 + # dim named name = named + # dim named algorithm = absolute + # dim named multiplier = 1 + # dim named divisor = 1 + # dim ssh name = ssh + # dim ssh algorithm = absolute + # dim ssh multiplier = 1 + # dim ssh divisor = 1 + # dim nfs name = nfs + # dim nfs algorithm = absolute + # dim nfs multiplier = 1 + # dim nfs divisor = 1 + # dim nginx name = nginx + # dim nginx algorithm = absolute + # dim nginx multiplier = 1 + # dim nginx divisor = 1 + # dim postfix name = postfix + # dim postfix algorithm = absolute + # dim postfix multiplier = 1 + # dim postfix divisor = 1 + # dim mysql name = mysql + # dim mysql algorithm = absolute + # dim mysql multiplier = 1 + # dim mysql divisor = 1 + # dim rsync name = rsync + # dim rsync algorithm = absolute + # dim rsync multiplier = 1 + # dim rsync divisor = 1 + # dim compile name = compile + # dim compile algorithm = absolute + # dim compile multiplier = 1 + # dim compile divisor = 1 + +[apps.processes] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/apps.processes + # chart type = stacked + # type = apps + # family = processes + # context = apps.processes + # units = processes + # priority = 20004 + # gap when lost iterations above = 1 + # name = apps.processes + # title = Apps Processes (apps.processes) + # dim other name = other + # dim other algorithm = absolute + # dim other multiplier = 1 + # dim other divisor = 1 + # dim ksmd name = ksmd + # dim ksmd algorithm = absolute + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1 + # dim system name = system + # dim system algorithm = absolute + # dim system multiplier = 1 + # dim system divisor = 1 + # dim netdata name = netdata + # dim netdata algorithm = absolute + # dim netdata multiplier = 1 + # dim netdata divisor = 1 + # dim kernel name = kernel + # dim kernel algorithm = absolute + # dim kernel multiplier = 1 + # dim kernel divisor = 1 + # dim cron name = cron + # dim cron algorithm = absolute + # dim cron multiplier = 1 + # dim cron divisor = 1 + # dim inetd name = inetd + # dim inetd algorithm = absolute + # dim inetd multiplier = 1 + # dim inetd divisor = 1 + # dim nms name = nms + # dim nms algorithm = absolute + # dim nms multiplier = 1 + # dim nms divisor = 1 + # dim log name = log + # dim log algorithm = absolute + # dim log multiplier = 1 + # dim log divisor = 1 + # dim ntp name = ntp + # dim ntp algorithm = absolute + # dim ntp multiplier = 1 + # dim ntp divisor = 1 + # dim named name = named + # dim named algorithm = absolute + # dim named multiplier = 1 + # dim named divisor = 1 + # dim ssh name = ssh + # dim ssh algorithm = absolute + # dim ssh multiplier = 1 + # dim ssh divisor = 1 + # dim nfs name = nfs + # dim nfs algorithm = absolute + # dim nfs multiplier = 1 + # dim nfs divisor = 1 + # dim nginx name = nginx + # dim nginx algorithm = absolute + # dim nginx multiplier = 1 + # dim nginx divisor = 1 + # dim postfix name = postfix + # dim postfix algorithm = absolute + # dim postfix multiplier = 1 + # dim postfix divisor = 1 + # dim mysql name = mysql + # dim mysql algorithm = absolute + # dim mysql multiplier = 1 + # dim mysql divisor = 1 + # dim rsync name = rsync + # dim rsync algorithm = absolute + # dim rsync multiplier = 1 + # dim rsync divisor = 1 + # dim compile name = compile + # dim compile algorithm = absolute + # dim compile multiplier = 1 + # dim compile divisor = 1 + +[apps.cpu_user] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/apps.cpu_user + # chart type = stacked + # type = apps + # family = cpu + # context = apps.cpu_user + # units = cpu time % + # priority = 20020 + # gap when lost iterations above = 1 + # name = apps.cpu_user + # title = Apps CPU User Time (200% = 2 cores) (apps.cpu_user) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 100 + # dim other divisor = 200 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 100 + # dim ksmd divisor = 200 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 100 + # dim system divisor = 200 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 100 + # dim netdata divisor = 200 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 100 + # dim kernel divisor = 200 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 100 + # dim cron divisor = 200 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 100 + # dim inetd divisor = 200 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 100 + # dim nms divisor = 200 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 100 + # dim log divisor = 200 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 100 + # dim ntp divisor = 200 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 100 + # dim named divisor = 200 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 100 + # dim ssh divisor = 200 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 100 + # dim nfs divisor = 200 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 100 + # dim nginx divisor = 200 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 100 + # dim postfix divisor = 200 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 100 + # dim mysql divisor = 200 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 100 + # dim rsync divisor = 200 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 100 + # dim compile divisor = 200 + +[apps.cpu_system] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/apps.cpu_system + # chart type = stacked + # type = apps + # family = cpu + # context = apps.cpu_system + # units = cpu time % + # priority = 20021 + # gap when lost iterations above = 1 + # name = apps.cpu_system + # title = Apps CPU System Time (200% = 2 cores) (apps.cpu_system) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 100 + # dim other divisor = 200 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 100 + # dim ksmd divisor = 200 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 100 + # dim system divisor = 200 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 100 + # dim netdata divisor = 200 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 100 + # dim kernel divisor = 200 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 100 + # dim cron divisor = 200 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 100 + # dim inetd divisor = 200 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 100 + # dim nms divisor = 200 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 100 + # dim log divisor = 200 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 100 + # dim ntp divisor = 200 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 100 + # dim named divisor = 200 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 100 + # dim ssh divisor = 200 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 100 + # dim nfs divisor = 200 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 100 + # dim nginx divisor = 200 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 100 + # dim postfix divisor = 200 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 100 + # dim mysql divisor = 200 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 100 + # dim rsync divisor = 200 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 100 + # dim compile divisor = 200 + +[apps.major_faults] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/apps.major_faults + # chart type = stacked + # type = apps + # family = swap + # context = apps.major_faults + # units = page faults/s + # priority = 20010 + # gap when lost iterations above = 1 + # name = apps.major_faults + # title = Apps Major Page Faults (swap read) (apps.major_faults) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 1 + # dim other divisor = 1 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 1 + # dim netdata divisor = 1 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 1 + # dim kernel divisor = 1 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 1 + # dim cron divisor = 1 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 1 + # dim inetd divisor = 1 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 1 + # dim nms divisor = 1 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 1 + # dim log divisor = 1 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 1 + # dim ntp divisor = 1 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 1 + # dim named divisor = 1 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 1 + # dim ssh divisor = 1 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 1 + # dim nfs divisor = 1 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 1 + # dim nginx divisor = 1 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 1 + # dim postfix divisor = 1 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 1 + # dim mysql divisor = 1 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 1 + # dim rsync divisor = 1 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 1 + # dim compile divisor = 1 + +[apps.minor_faults] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/apps.minor_faults + # chart type = stacked + # type = apps + # family = mem + # context = apps.minor_faults + # units = page faults/s + # priority = 20011 + # gap when lost iterations above = 1 + # name = apps.minor_faults + # title = Apps Minor Page Faults (apps.minor_faults) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 1 + # dim other divisor = 1 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 1 + # dim netdata divisor = 1 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 1 + # dim kernel divisor = 1 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 1 + # dim cron divisor = 1 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 1 + # dim inetd divisor = 1 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 1 + # dim nms divisor = 1 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 1 + # dim log divisor = 1 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 1 + # dim ntp divisor = 1 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 1 + # dim named divisor = 1 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 1 + # dim ssh divisor = 1 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 1 + # dim nfs divisor = 1 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 1 + # dim nginx divisor = 1 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 1 + # dim postfix divisor = 1 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 1 + # dim mysql divisor = 1 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 1 + # dim rsync divisor = 1 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 1 + # dim compile divisor = 1 + +[apps.lreads] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/apps.lreads + # chart type = stacked + # type = apps + # family = disk + # context = apps.lreads + # units = kilobytes/s + # priority = 20042 + # gap when lost iterations above = 1 + # name = apps.lreads + # title = Apps Disk Logical Reads (apps.lreads) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 1 + # dim other divisor = 1024 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1024 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1024 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 1 + # dim netdata divisor = 1024 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 1 + # dim kernel divisor = 1024 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 1 + # dim cron divisor = 1024 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 1 + # dim inetd divisor = 1024 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 1 + # dim nms divisor = 1024 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 1 + # dim log divisor = 1024 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 1 + # dim ntp divisor = 1024 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 1 + # dim named divisor = 1024 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 1 + # dim ssh divisor = 1024 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 1 + # dim nfs divisor = 1024 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 1 + # dim nginx divisor = 1024 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 1 + # dim postfix divisor = 1024 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 1 + # dim mysql divisor = 1024 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 1 + # dim rsync divisor = 1024 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 1 + # dim compile divisor = 1024 + +[apps.lwrites] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/apps.lwrites + # chart type = stacked + # type = apps + # family = disk + # context = apps.lwrites + # units = kilobytes/s + # priority = 20042 + # gap when lost iterations above = 1 + # name = apps.lwrites + # title = Apps I/O Logical Writes (apps.lwrites) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 1 + # dim other divisor = 1024 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1024 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1024 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 1 + # dim netdata divisor = 1024 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 1 + # dim kernel divisor = 1024 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 1 + # dim cron divisor = 1024 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 1 + # dim inetd divisor = 1024 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 1 + # dim nms divisor = 1024 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 1 + # dim log divisor = 1024 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 1 + # dim ntp divisor = 1024 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 1 + # dim named divisor = 1024 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 1 + # dim ssh divisor = 1024 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 1 + # dim nfs divisor = 1024 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 1 + # dim nginx divisor = 1024 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 1 + # dim postfix divisor = 1024 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 1 + # dim mysql divisor = 1024 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 1 + # dim rsync divisor = 1024 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 1 + # dim compile divisor = 1024 + +[apps.preads] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/apps.preads + # chart type = stacked + # type = apps + # family = disk + # context = apps.preads + # units = kilobytes/s + # priority = 20002 + # gap when lost iterations above = 1 + # name = apps.preads + # title = Apps Disk Reads (apps.preads) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 1 + # dim other divisor = 1024 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1024 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1024 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 1 + # dim netdata divisor = 1024 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 1 + # dim kernel divisor = 1024 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 1 + # dim cron divisor = 1024 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 1 + # dim inetd divisor = 1024 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 1 + # dim nms divisor = 1024 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 1 + # dim log divisor = 1024 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 1 + # dim ntp divisor = 1024 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 1 + # dim named divisor = 1024 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 1 + # dim ssh divisor = 1024 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 1 + # dim nfs divisor = 1024 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 1 + # dim nginx divisor = 1024 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 1 + # dim postfix divisor = 1024 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 1 + # dim mysql divisor = 1024 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 1 + # dim rsync divisor = 1024 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 1 + # dim compile divisor = 1024 + +[apps.pwrites] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/apps.pwrites + # chart type = stacked + # type = apps + # family = disk + # context = apps.pwrites + # units = kilobytes/s + # priority = 20002 + # gap when lost iterations above = 1 + # name = apps.pwrites + # title = Apps Disk Writes (apps.pwrites) + # dim other name = other + # dim other algorithm = incremental + # dim other multiplier = 1 + # dim other divisor = 1024 + # dim ksmd name = ksmd + # dim ksmd algorithm = incremental + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1024 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1024 + # dim netdata name = netdata + # dim netdata algorithm = incremental + # dim netdata multiplier = 1 + # dim netdata divisor = 1024 + # dim kernel name = kernel + # dim kernel algorithm = incremental + # dim kernel multiplier = 1 + # dim kernel divisor = 1024 + # dim cron name = cron + # dim cron algorithm = incremental + # dim cron multiplier = 1 + # dim cron divisor = 1024 + # dim inetd name = inetd + # dim inetd algorithm = incremental + # dim inetd multiplier = 1 + # dim inetd divisor = 1024 + # dim nms name = nms + # dim nms algorithm = incremental + # dim nms multiplier = 1 + # dim nms divisor = 1024 + # dim log name = log + # dim log algorithm = incremental + # dim log multiplier = 1 + # dim log divisor = 1024 + # dim ntp name = ntp + # dim ntp algorithm = incremental + # dim ntp multiplier = 1 + # dim ntp divisor = 1024 + # dim named name = named + # dim named algorithm = incremental + # dim named multiplier = 1 + # dim named divisor = 1024 + # dim ssh name = ssh + # dim ssh algorithm = incremental + # dim ssh multiplier = 1 + # dim ssh divisor = 1024 + # dim nfs name = nfs + # dim nfs algorithm = incremental + # dim nfs multiplier = 1 + # dim nfs divisor = 1024 + # dim nginx name = nginx + # dim nginx algorithm = incremental + # dim nginx multiplier = 1 + # dim nginx divisor = 1024 + # dim postfix name = postfix + # dim postfix algorithm = incremental + # dim postfix multiplier = 1 + # dim postfix divisor = 1024 + # dim mysql name = mysql + # dim mysql algorithm = incremental + # dim mysql multiplier = 1 + # dim mysql divisor = 1024 + # dim rsync name = rsync + # dim rsync algorithm = incremental + # dim rsync multiplier = 1 + # dim rsync divisor = 1024 + # dim compile name = compile + # dim compile algorithm = incremental + # dim compile multiplier = 1 + # dim compile divisor = 1024 + +[apps.files] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/apps.files + # chart type = stacked + # type = apps + # family = disk + # context = apps.files + # units = open files + # priority = 20050 + # gap when lost iterations above = 1 + # name = apps.files + # title = Apps Open Files (apps.files) + # dim other name = other + # dim other algorithm = absolute + # dim other multiplier = 1 + # dim other divisor = 1 + # dim ksmd name = ksmd + # dim ksmd algorithm = absolute + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1 + # dim system name = system + # dim system algorithm = absolute + # dim system multiplier = 1 + # dim system divisor = 1 + # dim netdata name = netdata + # dim netdata algorithm = absolute + # dim netdata multiplier = 1 + # dim netdata divisor = 1 + # dim kernel name = kernel + # dim kernel algorithm = absolute + # dim kernel multiplier = 1 + # dim kernel divisor = 1 + # dim cron name = cron + # dim cron algorithm = absolute + # dim cron multiplier = 1 + # dim cron divisor = 1 + # dim inetd name = inetd + # dim inetd algorithm = absolute + # dim inetd multiplier = 1 + # dim inetd divisor = 1 + # dim nms name = nms + # dim nms algorithm = absolute + # dim nms multiplier = 1 + # dim nms divisor = 1 + # dim log name = log + # dim log algorithm = absolute + # dim log multiplier = 1 + # dim log divisor = 1 + # dim ntp name = ntp + # dim ntp algorithm = absolute + # dim ntp multiplier = 1 + # dim ntp divisor = 1 + # dim named name = named + # dim named algorithm = absolute + # dim named multiplier = 1 + # dim named divisor = 1 + # dim ssh name = ssh + # dim ssh algorithm = absolute + # dim ssh multiplier = 1 + # dim ssh divisor = 1 + # dim nfs name = nfs + # dim nfs algorithm = absolute + # dim nfs multiplier = 1 + # dim nfs divisor = 1 + # dim nginx name = nginx + # dim nginx algorithm = absolute + # dim nginx multiplier = 1 + # dim nginx divisor = 1 + # dim postfix name = postfix + # dim postfix algorithm = absolute + # dim postfix multiplier = 1 + # dim postfix divisor = 1 + # dim mysql name = mysql + # dim mysql algorithm = absolute + # dim mysql multiplier = 1 + # dim mysql divisor = 1 + # dim rsync name = rsync + # dim rsync algorithm = absolute + # dim rsync multiplier = 1 + # dim rsync divisor = 1 + # dim compile name = compile + # dim compile algorithm = absolute + # dim compile multiplier = 1 + # dim compile divisor = 1 + +[apps.sockets] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/apps.sockets + # chart type = stacked + # type = apps + # family = net + # context = apps.sockets + # units = open sockets + # priority = 20051 + # gap when lost iterations above = 1 + # name = apps.sockets + # title = Apps Open Sockets (apps.sockets) + # dim other name = other + # dim other algorithm = absolute + # dim other multiplier = 1 + # dim other divisor = 1 + # dim ksmd name = ksmd + # dim ksmd algorithm = absolute + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1 + # dim system name = system + # dim system algorithm = absolute + # dim system multiplier = 1 + # dim system divisor = 1 + # dim netdata name = netdata + # dim netdata algorithm = absolute + # dim netdata multiplier = 1 + # dim netdata divisor = 1 + # dim kernel name = kernel + # dim kernel algorithm = absolute + # dim kernel multiplier = 1 + # dim kernel divisor = 1 + # dim cron name = cron + # dim cron algorithm = absolute + # dim cron multiplier = 1 + # dim cron divisor = 1 + # dim inetd name = inetd + # dim inetd algorithm = absolute + # dim inetd multiplier = 1 + # dim inetd divisor = 1 + # dim nms name = nms + # dim nms algorithm = absolute + # dim nms multiplier = 1 + # dim nms divisor = 1 + # dim log name = log + # dim log algorithm = absolute + # dim log multiplier = 1 + # dim log divisor = 1 + # dim ntp name = ntp + # dim ntp algorithm = absolute + # dim ntp multiplier = 1 + # dim ntp divisor = 1 + # dim named name = named + # dim named algorithm = absolute + # dim named multiplier = 1 + # dim named divisor = 1 + # dim ssh name = ssh + # dim ssh algorithm = absolute + # dim ssh multiplier = 1 + # dim ssh divisor = 1 + # dim nfs name = nfs + # dim nfs algorithm = absolute + # dim nfs multiplier = 1 + # dim nfs divisor = 1 + # dim nginx name = nginx + # dim nginx algorithm = absolute + # dim nginx multiplier = 1 + # dim nginx divisor = 1 + # dim postfix name = postfix + # dim postfix algorithm = absolute + # dim postfix multiplier = 1 + # dim postfix divisor = 1 + # dim mysql name = mysql + # dim mysql algorithm = absolute + # dim mysql multiplier = 1 + # dim mysql divisor = 1 + # dim rsync name = rsync + # dim rsync algorithm = absolute + # dim rsync multiplier = 1 + # dim rsync divisor = 1 + # dim compile name = compile + # dim compile algorithm = absolute + # dim compile multiplier = 1 + # dim compile divisor = 1 + +[apps.pipes] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/apps.pipes + # chart type = stacked + # type = apps + # family = processes + # context = apps.pipes + # units = open pipes + # priority = 20053 + # gap when lost iterations above = 1 + # name = apps.pipes + # title = Apps Pipes (apps.pipes) + # dim other name = other + # dim other algorithm = absolute + # dim other multiplier = 1 + # dim other divisor = 1 + # dim ksmd name = ksmd + # dim ksmd algorithm = absolute + # dim ksmd multiplier = 1 + # dim ksmd divisor = 1 + # dim system name = system + # dim system algorithm = absolute + # dim system multiplier = 1 + # dim system divisor = 1 + # dim netdata name = netdata + # dim netdata algorithm = absolute + # dim netdata multiplier = 1 + # dim netdata divisor = 1 + # dim kernel name = kernel + # dim kernel algorithm = absolute + # dim kernel multiplier = 1 + # dim kernel divisor = 1 + # dim cron name = cron + # dim cron algorithm = absolute + # dim cron multiplier = 1 + # dim cron divisor = 1 + # dim inetd name = inetd + # dim inetd algorithm = absolute + # dim inetd multiplier = 1 + # dim inetd divisor = 1 + # dim nms name = nms + # dim nms algorithm = absolute + # dim nms multiplier = 1 + # dim nms divisor = 1 + # dim log name = log + # dim log algorithm = absolute + # dim log multiplier = 1 + # dim log divisor = 1 + # dim ntp name = ntp + # dim ntp algorithm = absolute + # dim ntp multiplier = 1 + # dim ntp divisor = 1 + # dim named name = named + # dim named algorithm = absolute + # dim named multiplier = 1 + # dim named divisor = 1 + # dim ssh name = ssh + # dim ssh algorithm = absolute + # dim ssh multiplier = 1 + # dim ssh divisor = 1 + # dim nfs name = nfs + # dim nfs algorithm = absolute + # dim nfs multiplier = 1 + # dim nfs divisor = 1 + # dim nginx name = nginx + # dim nginx algorithm = absolute + # dim nginx multiplier = 1 + # dim nginx divisor = 1 + # dim postfix name = postfix + # dim postfix algorithm = absolute + # dim postfix multiplier = 1 + # dim postfix divisor = 1 + # dim mysql name = mysql + # dim mysql algorithm = absolute + # dim mysql multiplier = 1 + # dim mysql divisor = 1 + # dim rsync name = rsync + # dim rsync algorithm = absolute + # dim rsync multiplier = 1 + # dim rsync divisor = 1 + # dim compile name = compile + # dim compile algorithm = absolute + # dim compile multiplier = 1 + # dim compile divisor = 1 + +[netdata.apps_cpu] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/netdata.apps_cpu + # chart type = stacked + # type = netdata + # family = apps.plugin + # context = netdata.apps_cpu + # units = milliseconds/s + # priority = 140000 + # gap when lost iterations above = 1 + # name = netdata.apps_cpu + # title = Apps Plugin CPU (netdata.apps_cpu) + # dim user name = user + # dim user algorithm = incremental + # dim user multiplier = 1 + # dim user divisor = 1000 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1000 + +[netdata.apps_files] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netdata.apps_files + # chart type = line + # type = netdata + # family = apps.plugin + # context = netdata.apps_files + # units = files/s + # priority = 140001 + # gap when lost iterations above = 1 + # name = netdata.apps_files + # title = Apps Plugin Files (netdata.apps_files) + # dim files name = files + # dim files algorithm = incremental + # dim files multiplier = 1 + # dim files divisor = 1 + # dim pids name = pids + # dim pids algorithm = absolute + # dim pids multiplier = 1 + # dim pids divisor = 1 + # dim fds name = fds + # dim fds algorithm = absolute + # dim fds multiplier = 1 + # dim fds divisor = 1 + # dim targets name = targets + # dim targets algorithm = absolute + # dim targets multiplier = 1 + # dim targets divisor = 1 + +[netdata.plugin_tc_cpu] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netdata.plugin_tc_cpu + # chart type = stacked + # type = netdata + # family = tc.helper + # context = netdata.plugin_tc_cpu + # units = milliseconds/s + # priority = 135000 + # gap when lost iterations above = 1 + # name = netdata.plugin_tc_cpu + # title = NetData TC CPU usage (netdata.plugin_tc_cpu) + # dim user name = user + # dim user algorithm = incremental + # dim user multiplier = 1 + # dim user divisor = 1000 + # dim system name = system + # dim system algorithm = incremental + # dim system multiplier = 1 + # dim system divisor = 1000 + +[netdata.plugin_tc_time] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netdata.plugin_tc_time + # chart type = area + # type = netdata + # family = tc.helper + # context = netdata.plugin_tc_time + # units = milliseconds/run + # priority = 135001 + # gap when lost iterations above = 1 + # name = netdata.plugin_tc_time + # title = NetData TC script execution (netdata.plugin_tc_time) + # dim run_time name = run time + # dim run_time algorithm = absolute + # dim run_time multiplier = 1 + # dim run_time divisor = 1 + +[example.random] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/example.random + # chart type = stacked + # type = example + # family = random + # context = random + # units = % of random numbers + # priority = 150000 + # gap when lost iterations above = 1 + # name = example.random + # title = Random Numbers Stacked Chart (example.random) + # dim random1 name = random1 + # dim random1 algorithm = percentage-of-absolute-row + # dim random1 multiplier = 1 + # dim random1 divisor = 1 + # dim random2 name = random2 + # dim random2 algorithm = percentage-of-absolute-row + # dim random2 multiplier = 1 + # dim random2 divisor = 1 + # dim random3 name = random3 + # dim random3 algorithm = percentage-of-absolute-row + # dim random3 multiplier = 1 + # dim random3 divisor = 1 + +[postfix.qemails] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/postfix.qemails + # chart type = line + # type = postfix + # family = queue + # context = postfix.queued.emails + # units = emails + # priority = 60001 + # gap when lost iterations above = 1 + # name = postfix.qemails + # title = Postfix Queue Emails (postfix.qemails) + # dim emails name = emails + # dim emails algorithm = absolute + # dim emails multiplier = 1 + # dim emails divisor = 1 + +[postfix.qsize] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/postfix.qsize + # chart type = area + # type = postfix + # family = queue + # context = postfix.queued.size + # units = emails size in KB + # priority = 60002 + # gap when lost iterations above = 1 + # name = postfix.qsize + # title = Postfix Queue Emails Size (postfix.qsize) + # dim size name = size + # dim size algorithm = absolute + # dim size multiplier = 1 + # dim size divisor = 1 + +[disk_await.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_await.sda + # chart type = line + # type = disk_await + # family = sda + # context = disk.await + # units = ms per operation + # priority = 2005 + # gap when lost iterations above = 1 + # name = disk_await.sda + # title = Average Completed I/O Operation Time (disk_await.sda) + # dim reads name = reads + # dim reads algorithm = absolute + # dim reads multiplier = 1 + # dim reads divisor = 1 + # dim writes name = writes + # dim writes algorithm = absolute + # dim writes multiplier = -1 + # dim writes divisor = 1 + +[disk_avgsz.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_avgsz.sda + # chart type = area + # type = disk_avgsz + # family = sda + # context = disk.avgsz + # units = kilobytes per operation + # priority = 2006 + # gap when lost iterations above = 1 + # name = disk_avgsz.sda + # title = Average Completed I/O Operation Bandwidth (disk_avgsz.sda) + # dim reads name = reads + # dim reads algorithm = absolute + # dim reads multiplier = 512 + # dim reads divisor = 1024 + # dim writes name = writes + # dim writes algorithm = absolute + # dim writes multiplier = -512 + # dim writes divisor = 1024 + +[disk_svctm.sda] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/disk_svctm.sda + # chart type = line + # type = disk_svctm + # family = sda + # context = disk.svctm + # units = ms per operation + # priority = 2007 + # gap when lost iterations above = 1 + # name = disk_svctm.sda + # title = Average Service Time (disk_svctm.sda) + # dim svctm name = svctm + # dim svctm algorithm = absolute + # dim svctm multiplier = 1 + # dim svctm divisor = 1 + +[tc.eth1-ifb] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/tc.eth1_ifb + # chart type = stacked + # type = tc + # family = eth1 + # context = tc.qos + # units = kilobits/s + # priority = 7000 + # gap when lost iterations above = 1 + # name = tc.mng_in + # title = Class Usage (tc.mng_in) + # dim 1:18 name = client + # dim 1:18 algorithm = incremental + # dim 1:18 multiplier = 8 + # dim 1:18 divisor = 1024 + # dim 1:19 name = nms + # dim 1:19 algorithm = incremental + # dim 1:19 multiplier = 8 + # dim 1:19 divisor = 1024 + # dim 1:8000 name = default + # dim 1:8000 algorithm = incremental + # dim 1:8000 multiplier = 8 + # dim 1:8000 divisor = 1024 + # dim 1:16 name = rsync + # dim 1:16 algorithm = incremental + # dim 1:16 multiplier = 8 + # dim 1:16 divisor = 1024 + # dim 1:17 name = web_server + # dim 1:17 algorithm = incremental + # dim 1:17 multiplier = 8 + # dim 1:17 divisor = 1024 + # dim 1:14 name = ntp + # dim 1:14 algorithm = incremental + # dim 1:14 multiplier = 8 + # dim 1:14 divisor = 1024 + # dim 1:15 name = ssh + # dim 1:15 algorithm = incremental + # dim 1:15 multiplier = 8 + # dim 1:15 divisor = 1024 + # dim 1:12 name = icmp + # dim 1:12 algorithm = incremental + # dim 1:12 multiplier = 8 + # dim 1:12 divisor = 1024 + # dim 1:13 name = dns + # dim 1:13 algorithm = incremental + # dim 1:13 multiplier = 8 + # dim 1:13 divisor = 1024 + # dim 1:11 name = arp + # dim 1:11 algorithm = incremental + # dim 1:11 multiplier = 8 + # dim 1:11 divisor = 1024 + +[tc.eth0] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/tc.eth0 + # chart type = stacked + # type = tc + # family = eth0 + # context = tc.qos + # units = kilobits/s + # priority = 7000 + # gap when lost iterations above = 1 + # name = tc.world_out + # title = Class Usage (tc.world_out) + # dim 1:18 name = client + # dim 1:18 algorithm = incremental + # dim 1:18 multiplier = 8 + # dim 1:18 divisor = 1024 + # dim 1:19 name = nms + # dim 1:19 algorithm = incremental + # dim 1:19 multiplier = 8 + # dim 1:19 divisor = 1024 + # dim 1:8000 name = default + # dim 1:8000 algorithm = incremental + # dim 1:8000 multiplier = 8 + # dim 1:8000 divisor = 1024 + # dim 1:16 name = rsync + # dim 1:16 algorithm = incremental + # dim 1:16 multiplier = 8 + # dim 1:16 divisor = 1024 + # dim 1:17 name = web_server + # dim 1:17 algorithm = incremental + # dim 1:17 multiplier = 8 + # dim 1:17 divisor = 1024 + # dim 1:14 name = ntp + # dim 1:14 algorithm = incremental + # dim 1:14 multiplier = 8 + # dim 1:14 divisor = 1024 + # dim 1:15 name = ssh + # dim 1:15 algorithm = incremental + # dim 1:15 multiplier = 8 + # dim 1:15 divisor = 1024 + # dim 1:12 name = icmp + # dim 1:12 algorithm = incremental + # dim 1:12 multiplier = 8 + # dim 1:12 divisor = 1024 + # dim 1:13 name = dns + # dim 1:13 algorithm = incremental + # dim 1:13 multiplier = 8 + # dim 1:13 divisor = 1024 + # dim 1:11 name = arp + # dim 1:11 algorithm = incremental + # dim 1:11 multiplier = 8 + # dim 1:11 divisor = 1024 + +[tc.eth1] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/tc.eth1 + # chart type = stacked + # type = tc + # family = eth1 + # context = tc.qos + # units = kilobits/s + # priority = 7000 + # gap when lost iterations above = 1 + # name = tc.mng_out + # title = Class Usage (tc.mng_out) + # dim 1:18 name = client + # dim 1:18 algorithm = incremental + # dim 1:18 multiplier = 8 + # dim 1:18 divisor = 1024 + # dim 1:19 name = nms + # dim 1:19 algorithm = incremental + # dim 1:19 multiplier = 8 + # dim 1:19 divisor = 1024 + # dim 1:8000 name = default + # dim 1:8000 algorithm = incremental + # dim 1:8000 multiplier = 8 + # dim 1:8000 divisor = 1024 + # dim 1:16 name = rsync + # dim 1:16 algorithm = incremental + # dim 1:16 multiplier = 8 + # dim 1:16 divisor = 1024 + # dim 1:17 name = web_server + # dim 1:17 algorithm = incremental + # dim 1:17 multiplier = 8 + # dim 1:17 divisor = 1024 + # dim 1:14 name = ntp + # dim 1:14 algorithm = incremental + # dim 1:14 multiplier = 8 + # dim 1:14 divisor = 1024 + # dim 1:15 name = ssh + # dim 1:15 algorithm = incremental + # dim 1:15 multiplier = 8 + # dim 1:15 divisor = 1024 + # dim 1:12 name = icmp + # dim 1:12 algorithm = incremental + # dim 1:12 multiplier = 8 + # dim 1:12 divisor = 1024 + # dim 1:13 name = dns + # dim 1:13 algorithm = incremental + # dim 1:13 multiplier = 8 + # dim 1:13 divisor = 1024 + # dim 1:11 name = arp + # dim 1:11 algorithm = incremental + # dim 1:11 multiplier = 8 + # dim 1:11 divisor = 1024 + +[mem.ksm] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/mem.ksm + # chart type = area + # type = mem + # family = ksm + # context = mem.ksm + # units = MB + # priority = 5000 + # gap when lost iterations above = 1 + # name = mem.ksm + # title = Kernel Same Page Merging (mem.ksm) + # dim shared name = shared + # dim shared algorithm = absolute + # dim shared multiplier = 1 + # dim shared divisor = 1048576 + # dim unshared name = unshared + # dim unshared algorithm = absolute + # dim unshared multiplier = -1 + # dim unshared divisor = 1048576 + # dim sharing name = sharing + # dim sharing algorithm = absolute + # dim sharing multiplier = 1 + # dim sharing divisor = 1048576 + # dim volatile name = volatile + # dim volatile algorithm = absolute + # dim volatile multiplier = -1 + # dim volatile divisor = 1048576 + # dim to_scan name = to scan + # dim to_scan algorithm = absolute + # dim to_scan multiplier = -1 + # dim to_scan divisor = 1048576 + +[mem.ksm_savings] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/mem.ksm_savings + # chart type = area + # type = mem + # family = ksm + # context = mem.ksm_savings + # units = MB + # priority = 5001 + # gap when lost iterations above = 1 + # name = mem.ksm_savings + # title = Kernel Same Page Merging Savings (mem.ksm_savings) + # dim savings name = savings + # dim savings algorithm = absolute + # dim savings multiplier = -1 + # dim savings divisor = 1048576 + # dim offered name = offered + # dim offered algorithm = absolute + # dim offered multiplier = 1 + # dim offered divisor = 1048576 + +[mem.ksm_ratios] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/mem.ksm_ratios + # chart type = line + # type = mem + # family = ksm + # context = mem.ksm_ratios + # units = percentage + # priority = 5002 + # gap when lost iterations above = 1 + # name = mem.ksm_ratios + # title = Kernel Same Page Merging Effectiveness (mem.ksm_ratios) + # dim savings name = savings + # dim savings algorithm = absolute + # dim savings multiplier = 1 + # dim savings divisor = 10000 + +[system.load] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.load + # chart type = line + # type = system + # family = load + # context = system.load + # units = load + # priority = 100 + # gap when lost iterations above = 1 + # name = system.load + # title = System Load Average (system.load) + # dim load1 name = load1 + # dim load1 algorithm = absolute + # dim load1 multiplier = 1 + # dim load1 divisor = 1000 + # dim load5 name = load5 + # dim load5 algorithm = absolute + # dim load5 multiplier = 1 + # dim load5 divisor = 1000 + # dim load15 name = load15 + # dim load15 algorithm = absolute + # dim load15 multiplier = 1 + # dim load15 divisor = 1000 + +[tc.eth0-ifb] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/tc.eth0_ifb + # chart type = stacked + # type = tc + # family = eth0 + # context = tc.qos + # units = kilobits/s + # priority = 7000 + # gap when lost iterations above = 1 + # name = tc.world_in + # title = Class Usage (tc.world_in) + # dim 1:18 name = client + # dim 1:18 algorithm = incremental + # dim 1:18 multiplier = 8 + # dim 1:18 divisor = 1024 + # dim 1:19 name = nms + # dim 1:19 algorithm = incremental + # dim 1:19 multiplier = 8 + # dim 1:19 divisor = 1024 + # dim 1:8000 name = default + # dim 1:8000 algorithm = incremental + # dim 1:8000 multiplier = 8 + # dim 1:8000 divisor = 1024 + # dim 1:16 name = rsync + # dim 1:16 algorithm = incremental + # dim 1:16 multiplier = 8 + # dim 1:16 divisor = 1024 + # dim 1:17 name = web_server + # dim 1:17 algorithm = incremental + # dim 1:17 multiplier = 8 + # dim 1:17 divisor = 1024 + # dim 1:14 name = ntp + # dim 1:14 algorithm = incremental + # dim 1:14 multiplier = 8 + # dim 1:14 divisor = 1024 + # dim 1:15 name = ssh + # dim 1:15 algorithm = incremental + # dim 1:15 multiplier = 8 + # dim 1:15 divisor = 1024 + # dim 1:12 name = icmp + # dim 1:12 algorithm = incremental + # dim 1:12 multiplier = 8 + # dim 1:12 divisor = 1024 + # dim 1:13 name = dns + # dim 1:13 algorithm = incremental + # dim 1:13 multiplier = 8 + # dim 1:13 divisor = 1024 + # dim 1:11 name = arp + # dim 1:11 algorithm = incremental + # dim 1:11 multiplier = 8 + # dim 1:11 divisor = 1024 + +[system.active_processes] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.active_processes + # chart type = line + # type = system + # family = processes + # context = system.active_processes + # units = processes + # priority = 750 + # gap when lost iterations above = 1 + # name = system.active_processes + # title = System Active Processes (system.active_processes) + # dim active name = active + # dim active algorithm = absolute + # dim active multiplier = 1 + # dim active divisor = 1 + +[cpu.cpu0_interrupts] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/cpu.cpu0_interrupts + # chart type = stacked + # type = cpu + # family = interrupts + # context = cpu.interrupts + # units = interrupts/s + # priority = 2000 + # gap when lost iterations above = 1 + # name = cpu.cpu0_interrupts + # title = CPU0 Interrupts (cpu.cpu0_interrupts) + # dim 0 name = timer_0 + # dim 0 algorithm = incremental + # dim 0 multiplier = 1 + # dim 0 divisor = 1 + # dim 1 name = i8042_1 + # dim 1 algorithm = incremental + # dim 1 multiplier = 1 + # dim 1 divisor = 1 + # dim 6 name = floppy_6 + # dim 6 algorithm = incremental + # dim 6 multiplier = 1 + # dim 6 divisor = 1 + # dim 8 name = rtc0_8 + # dim 8 algorithm = incremental + # dim 8 multiplier = 1 + # dim 8 divisor = 1 + # dim 9 name = acpi_9 + # dim 9 algorithm = incremental + # dim 9 multiplier = 1 + # dim 9 divisor = 1 + # dim 12 name = i8042_12 + # dim 12 algorithm = incremental + # dim 12 multiplier = 1 + # dim 12 divisor = 1 + # dim 14 name = ata_piix_14 + # dim 14 algorithm = incremental + # dim 14 multiplier = 1 + # dim 14 divisor = 1 + # dim 15 name = ata_piix_15 + # dim 15 algorithm = incremental + # dim 15 multiplier = 1 + # dim 15 divisor = 1 + # dim NMI name = NMI + # dim NMI algorithm = incremental + # dim NMI multiplier = 1 + # dim NMI divisor = 1 + # dim LOC name = LOC + # dim LOC algorithm = incremental + # dim LOC multiplier = 1 + # dim LOC divisor = 1 + # dim SPU name = SPU + # dim SPU algorithm = incremental + # dim SPU multiplier = 1 + # dim SPU divisor = 1 + # dim PMI name = PMI + # dim PMI algorithm = incremental + # dim PMI multiplier = 1 + # dim PMI divisor = 1 + # dim IWI name = IWI + # dim IWI algorithm = incremental + # dim IWI multiplier = 1 + # dim IWI divisor = 1 + # dim RTR name = RTR + # dim RTR algorithm = incremental + # dim RTR multiplier = 1 + # dim RTR divisor = 1 + # dim RES name = RES + # dim RES algorithm = incremental + # dim RES multiplier = 1 + # dim RES divisor = 1 + # dim CAL name = CAL + # dim CAL algorithm = incremental + # dim CAL multiplier = 1 + # dim CAL divisor = 1 + # dim TLB name = TLB + # dim TLB algorithm = incremental + # dim TLB multiplier = 1 + # dim TLB divisor = 1 + # dim TRM name = TRM + # dim TRM algorithm = incremental + # dim TRM multiplier = 1 + # dim TRM divisor = 1 + # dim THR name = THR + # dim THR algorithm = incremental + # dim THR multiplier = 1 + # dim THR divisor = 1 + # dim MCE name = MCE + # dim MCE algorithm = incremental + # dim MCE multiplier = 1 + # dim MCE divisor = 1 + # dim MCP name = MCP + # dim MCP algorithm = incremental + # dim MCP multiplier = 1 + # dim MCP divisor = 1 + # dim HYP name = HYP + # dim HYP algorithm = incremental + # dim HYP multiplier = 1 + # dim HYP divisor = 1 + # dim ERR name = ERR + # dim ERR algorithm = incremental + # dim ERR multiplier = 1 + # dim ERR divisor = 1 + # dim MIS name = MIS + # dim MIS algorithm = incremental + # dim MIS multiplier = 1 + # dim MIS divisor = 1 + +[cpu.cpu1_interrupts] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/cpu.cpu1_interrupts + # chart type = stacked + # type = cpu + # family = interrupts + # context = cpu.interrupts + # units = interrupts/s + # priority = 2001 + # gap when lost iterations above = 1 + # name = cpu.cpu1_interrupts + # title = CPU1 Interrupts (cpu.cpu1_interrupts) + # dim 0 name = timer_0 + # dim 0 algorithm = incremental + # dim 0 multiplier = 1 + # dim 0 divisor = 1 + # dim 1 name = i8042_1 + # dim 1 algorithm = incremental + # dim 1 multiplier = 1 + # dim 1 divisor = 1 + # dim 6 name = floppy_6 + # dim 6 algorithm = incremental + # dim 6 multiplier = 1 + # dim 6 divisor = 1 + # dim 8 name = rtc0_8 + # dim 8 algorithm = incremental + # dim 8 multiplier = 1 + # dim 8 divisor = 1 + # dim 9 name = acpi_9 + # dim 9 algorithm = incremental + # dim 9 multiplier = 1 + # dim 9 divisor = 1 + # dim 12 name = i8042_12 + # dim 12 algorithm = incremental + # dim 12 multiplier = 1 + # dim 12 divisor = 1 + # dim 14 name = ata_piix_14 + # dim 14 algorithm = incremental + # dim 14 multiplier = 1 + # dim 14 divisor = 1 + # dim 15 name = ata_piix_15 + # dim 15 algorithm = incremental + # dim 15 multiplier = 1 + # dim 15 divisor = 1 + # dim NMI name = NMI + # dim NMI algorithm = incremental + # dim NMI multiplier = 1 + # dim NMI divisor = 1 + # dim LOC name = LOC + # dim LOC algorithm = incremental + # dim LOC multiplier = 1 + # dim LOC divisor = 1 + # dim SPU name = SPU + # dim SPU algorithm = incremental + # dim SPU multiplier = 1 + # dim SPU divisor = 1 + # dim PMI name = PMI + # dim PMI algorithm = incremental + # dim PMI multiplier = 1 + # dim PMI divisor = 1 + # dim IWI name = IWI + # dim IWI algorithm = incremental + # dim IWI multiplier = 1 + # dim IWI divisor = 1 + # dim RTR name = RTR + # dim RTR algorithm = incremental + # dim RTR multiplier = 1 + # dim RTR divisor = 1 + # dim RES name = RES + # dim RES algorithm = incremental + # dim RES multiplier = 1 + # dim RES divisor = 1 + # dim CAL name = CAL + # dim CAL algorithm = incremental + # dim CAL multiplier = 1 + # dim CAL divisor = 1 + # dim TLB name = TLB + # dim TLB algorithm = incremental + # dim TLB multiplier = 1 + # dim TLB divisor = 1 + # dim TRM name = TRM + # dim TRM algorithm = incremental + # dim TRM multiplier = 1 + # dim TRM divisor = 1 + # dim THR name = THR + # dim THR algorithm = incremental + # dim THR multiplier = 1 + # dim THR divisor = 1 + # dim MCE name = MCE + # dim MCE algorithm = incremental + # dim MCE multiplier = 1 + # dim MCE divisor = 1 + # dim MCP name = MCP + # dim MCP algorithm = incremental + # dim MCP multiplier = 1 + # dim MCP divisor = 1 + # dim HYP name = HYP + # dim HYP algorithm = incremental + # dim HYP multiplier = 1 + # dim HYP divisor = 1 + # dim ERR name = ERR + # dim ERR algorithm = incremental + # dim ERR multiplier = 1 + # dim ERR divisor = 1 + # dim MIS name = MIS + # dim MIS algorithm = incremental + # dim MIS multiplier = 1 + # dim MIS divisor = 1 + +[example.random2] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/example.random2 + # chart type = area + # type = example + # family = random + # context = random + # units = random number + # priority = 150001 + # gap when lost iterations above = 1 + # name = example.random2 + # title = A random number (example.random2) + # dim random name = random + # dim random algorithm = absolute + # dim random multiplier = 1 + # dim random divisor = 1 + +[mysql_local.net] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.net + # chart type = area + # type = mysql_local + # family = bandwidth + # context = mysql.net + # units = kilobits/s + # priority = 60001 + # gap when lost iterations above = 1 + # name = mysql_local.net + # title = mysql Bandwidth (mysql_local.net) + # dim Bytes_received name = in + # dim Bytes_received algorithm = incremental + # dim Bytes_received multiplier = 8 + # dim Bytes_received divisor = 1024 + # dim Bytes_sent name = out + # dim Bytes_sent algorithm = incremental + # dim Bytes_sent multiplier = -8 + # dim Bytes_sent divisor = 1024 + +[mysql_local.queries] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.queries + # chart type = line + # type = mysql_local + # family = queries + # context = mysql.queries + # units = queries/s + # priority = 60002 + # gap when lost iterations above = 1 + # name = mysql_local.queries + # title = mysql Queries (mysql_local.queries) + # dim Queries name = queries + # dim Queries algorithm = incremental + # dim Queries multiplier = 1 + # dim Queries divisor = 1 + # dim Questions name = questions + # dim Questions algorithm = incremental + # dim Questions multiplier = 1 + # dim Questions divisor = 1 + # dim Slow_queries name = slow_queries + # dim Slow_queries algorithm = incremental + # dim Slow_queries multiplier = -1 + # dim Slow_queries divisor = 1 + +[mysql_local.handlers] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.handlers + # chart type = line + # type = mysql_local + # family = handlers + # context = mysql.handlers + # units = handlers/s + # priority = 60003 + # gap when lost iterations above = 1 + # name = mysql_local.handlers + # title = mysql Handlers (mysql_local.handlers) + # dim Handler_commit name = commit + # dim Handler_commit algorithm = incremental + # dim Handler_commit multiplier = 1 + # dim Handler_commit divisor = 1 + # dim Handler_delete name = delete + # dim Handler_delete algorithm = incremental + # dim Handler_delete multiplier = 1 + # dim Handler_delete divisor = 1 + # dim Handler_prepare name = prepare + # dim Handler_prepare algorithm = incremental + # dim Handler_prepare multiplier = 1 + # dim Handler_prepare divisor = 1 + # dim Handler_read_first name = read_first + # dim Handler_read_first algorithm = incremental + # dim Handler_read_first multiplier = 1 + # dim Handler_read_first divisor = 1 + # dim Handler_read_key name = read_key + # dim Handler_read_key algorithm = incremental + # dim Handler_read_key multiplier = 1 + # dim Handler_read_key divisor = 1 + # dim Handler_read_next name = read_next + # dim Handler_read_next algorithm = incremental + # dim Handler_read_next multiplier = 1 + # dim Handler_read_next divisor = 1 + # dim Handler_read_prev name = read_prev + # dim Handler_read_prev algorithm = incremental + # dim Handler_read_prev multiplier = 1 + # dim Handler_read_prev divisor = 1 + # dim Handler_read_rnd name = read_rnd + # dim Handler_read_rnd algorithm = incremental + # dim Handler_read_rnd multiplier = 1 + # dim Handler_read_rnd divisor = 1 + # dim Handler_read_rnd_next name = read_rnd_next + # dim Handler_read_rnd_next algorithm = incremental + # dim Handler_read_rnd_next multiplier = 1 + # dim Handler_read_rnd_next divisor = 1 + # dim Handler_rollback name = rollback + # dim Handler_rollback algorithm = incremental + # dim Handler_rollback multiplier = 1 + # dim Handler_rollback divisor = 1 + # dim Handler_savepoint name = savepoint + # dim Handler_savepoint algorithm = incremental + # dim Handler_savepoint multiplier = 1 + # dim Handler_savepoint divisor = 1 + # dim Handler_savepoint_rollback name = savepoint_rollback + # dim Handler_savepoint_rollback algorithm = incremental + # dim Handler_savepoint_rollback multiplier = 1 + # dim Handler_savepoint_rollback divisor = 1 + # dim Handler_update name = update + # dim Handler_update algorithm = incremental + # dim Handler_update multiplier = 1 + # dim Handler_update divisor = 1 + # dim Handler_write name = write + # dim Handler_write algorithm = incremental + # dim Handler_write multiplier = 1 + # dim Handler_write divisor = 1 + +[system.softirqs] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/system.softirqs + # chart type = stacked + # type = system + # family = softirqs + # context = system.softirqs + # units = softirqs/s + # priority = 950 + # gap when lost iterations above = 1 + # name = system.softirqs + # title = System softirqs (system.softirqs) + # dim HI name = HI + # dim HI algorithm = incremental + # dim HI multiplier = 1 + # dim HI divisor = 1 + # dim TIMER name = TIMER + # dim TIMER algorithm = incremental + # dim TIMER multiplier = 1 + # dim TIMER divisor = 1 + # dim NET_TX name = NET_TX + # dim NET_TX algorithm = incremental + # dim NET_TX multiplier = 1 + # dim NET_TX divisor = 1 + # dim NET_RX name = NET_RX + # dim NET_RX algorithm = incremental + # dim NET_RX multiplier = 1 + # dim NET_RX divisor = 1 + # dim BLOCK name = BLOCK + # dim BLOCK algorithm = incremental + # dim BLOCK multiplier = 1 + # dim BLOCK divisor = 1 + # dim BLOCK_IOPOLL name = BLOCK_IOPOLL + # dim BLOCK_IOPOLL algorithm = incremental + # dim BLOCK_IOPOLL multiplier = 1 + # dim BLOCK_IOPOLL divisor = 1 + # dim TASKLET name = TASKLET + # dim TASKLET algorithm = incremental + # dim TASKLET multiplier = 1 + # dim TASKLET divisor = 1 + # dim SCHED name = SCHED + # dim SCHED algorithm = incremental + # dim SCHED multiplier = 1 + # dim SCHED divisor = 1 + # dim HRTIMER name = HRTIMER + # dim HRTIMER algorithm = incremental + # dim HRTIMER multiplier = 1 + # dim HRTIMER divisor = 1 + # dim RCU name = RCU + # dim RCU algorithm = incremental + # dim RCU multiplier = 1 + # dim RCU divisor = 1 + +[cpu.cpu0_softirqs] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/cpu.cpu0_softirqs + # chart type = stacked + # type = cpu + # family = softirqs + # context = cpu.softirqs + # units = softirqs/s + # priority = 3000 + # gap when lost iterations above = 1 + # name = cpu.cpu0_softirqs + # title = CPU0 softirqs (cpu.cpu0_softirqs) + # dim HI name = HI + # dim HI algorithm = incremental + # dim HI multiplier = 1 + # dim HI divisor = 1 + # dim TIMER name = TIMER + # dim TIMER algorithm = incremental + # dim TIMER multiplier = 1 + # dim TIMER divisor = 1 + # dim NET_TX name = NET_TX + # dim NET_TX algorithm = incremental + # dim NET_TX multiplier = 1 + # dim NET_TX divisor = 1 + # dim NET_RX name = NET_RX + # dim NET_RX algorithm = incremental + # dim NET_RX multiplier = 1 + # dim NET_RX divisor = 1 + # dim BLOCK name = BLOCK + # dim BLOCK algorithm = incremental + # dim BLOCK multiplier = 1 + # dim BLOCK divisor = 1 + # dim BLOCK_IOPOLL name = BLOCK_IOPOLL + # dim BLOCK_IOPOLL algorithm = incremental + # dim BLOCK_IOPOLL multiplier = 1 + # dim BLOCK_IOPOLL divisor = 1 + # dim TASKLET name = TASKLET + # dim TASKLET algorithm = incremental + # dim TASKLET multiplier = 1 + # dim TASKLET divisor = 1 + # dim SCHED name = SCHED + # dim SCHED algorithm = incremental + # dim SCHED multiplier = 1 + # dim SCHED divisor = 1 + # dim HRTIMER name = HRTIMER + # dim HRTIMER algorithm = incremental + # dim HRTIMER multiplier = 1 + # dim HRTIMER divisor = 1 + # dim RCU name = RCU + # dim RCU algorithm = incremental + # dim RCU multiplier = 1 + # dim RCU divisor = 1 + +[mysql_local.table_locks] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.table_locks + # chart type = line + # type = mysql_local + # family = locks + # context = mysql.table_locks + # units = locks/s + # priority = 60004 + # gap when lost iterations above = 1 + # name = mysql_local.table_locks + # title = mysql Tables Locks (mysql_local.table_locks) + # dim Table_locks_immediate name = immediate + # dim Table_locks_immediate algorithm = incremental + # dim Table_locks_immediate multiplier = 1 + # dim Table_locks_immediate divisor = 1 + # dim Table_locks_waited name = waited + # dim Table_locks_waited algorithm = incremental + # dim Table_locks_waited multiplier = -1 + # dim Table_locks_waited divisor = 1 + +[mysql_local.join_issues] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.join_issues + # chart type = line + # type = mysql_local + # family = issues + # context = mysql.join_issues + # units = joins/s + # priority = 60005 + # gap when lost iterations above = 1 + # name = mysql_local.join_issues + # title = mysql Select Join Issues (mysql_local.join_issues) + # dim Select_full_join name = full_join + # dim Select_full_join algorithm = incremental + # dim Select_full_join multiplier = 1 + # dim Select_full_join divisor = 1 + # dim Select_full_range_join name = full_range_join + # dim Select_full_range_join algorithm = incremental + # dim Select_full_range_join multiplier = 1 + # dim Select_full_range_join divisor = 1 + # dim Select_range name = range + # dim Select_range algorithm = incremental + # dim Select_range multiplier = 1 + # dim Select_range divisor = 1 + # dim Select_range_check name = range_check + # dim Select_range_check algorithm = incremental + # dim Select_range_check multiplier = 1 + # dim Select_range_check divisor = 1 + # dim Select_scan name = scan + # dim Select_scan algorithm = incremental + # dim Select_scan multiplier = 1 + # dim Select_scan divisor = 1 + +[cpu.cpu1_softirqs] + # history = 86400 + # enabled = yes + # cache directory = /var/cache/netdata/cpu.cpu1_softirqs + # chart type = stacked + # type = cpu + # family = softirqs + # context = cpu.softirqs + # units = softirqs/s + # priority = 3001 + # gap when lost iterations above = 1 + # name = cpu.cpu1_softirqs + # title = CPU1 softirqs (cpu.cpu1_softirqs) + # dim HI name = HI + # dim HI algorithm = incremental + # dim HI multiplier = 1 + # dim HI divisor = 1 + # dim TIMER name = TIMER + # dim TIMER algorithm = incremental + # dim TIMER multiplier = 1 + # dim TIMER divisor = 1 + # dim NET_TX name = NET_TX + # dim NET_TX algorithm = incremental + # dim NET_TX multiplier = 1 + # dim NET_TX divisor = 1 + # dim NET_RX name = NET_RX + # dim NET_RX algorithm = incremental + # dim NET_RX multiplier = 1 + # dim NET_RX divisor = 1 + # dim BLOCK name = BLOCK + # dim BLOCK algorithm = incremental + # dim BLOCK multiplier = 1 + # dim BLOCK divisor = 1 + # dim BLOCK_IOPOLL name = BLOCK_IOPOLL + # dim BLOCK_IOPOLL algorithm = incremental + # dim BLOCK_IOPOLL multiplier = 1 + # dim BLOCK_IOPOLL divisor = 1 + # dim TASKLET name = TASKLET + # dim TASKLET algorithm = incremental + # dim TASKLET multiplier = 1 + # dim TASKLET divisor = 1 + # dim SCHED name = SCHED + # dim SCHED algorithm = incremental + # dim SCHED multiplier = 1 + # dim SCHED divisor = 1 + # dim HRTIMER name = HRTIMER + # dim HRTIMER algorithm = incremental + # dim HRTIMER multiplier = 1 + # dim HRTIMER divisor = 1 + # dim RCU name = RCU + # dim RCU algorithm = incremental + # dim RCU multiplier = 1 + # dim RCU divisor = 1 + +[mysql_local.sort_issues] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.sort_issues + # chart type = line + # type = mysql_local + # family = issues + # context = mysql.sort.issues + # units = issues/s + # priority = 60006 + # gap when lost iterations above = 1 + # name = mysql_local.sort_issues + # title = mysql Sort Issues (mysql_local.sort_issues) + # dim Sort_merge_passes name = merge_passes + # dim Sort_merge_passes algorithm = incremental + # dim Sort_merge_passes multiplier = 1 + # dim Sort_merge_passes divisor = 1 + # dim Sort_range name = range + # dim Sort_range algorithm = incremental + # dim Sort_range multiplier = 1 + # dim Sort_range divisor = 1 + # dim Sort_scan name = scan + # dim Sort_scan algorithm = incremental + # dim Sort_scan multiplier = 1 + # dim Sort_scan divisor = 1 + +[mysql_local.tmp] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.tmp + # chart type = line + # type = mysql_local + # family = temporaries + # context = mysql.tmp + # units = counter + # priority = 60007 + # gap when lost iterations above = 1 + # name = mysql_local.tmp + # title = mysql Tmp Operations (mysql_local.tmp) + # dim Created_tmp_disk_tables name = disk_tables + # dim Created_tmp_disk_tables algorithm = incremental + # dim Created_tmp_disk_tables multiplier = 1 + # dim Created_tmp_disk_tables divisor = 1 + # dim Created_tmp_files name = files + # dim Created_tmp_files algorithm = incremental + # dim Created_tmp_files multiplier = 1 + # dim Created_tmp_files divisor = 1 + # dim Created_tmp_tables name = tables + # dim Created_tmp_tables algorithm = incremental + # dim Created_tmp_tables multiplier = 1 + # dim Created_tmp_tables divisor = 1 + +[mysql_local.connections] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.connections + # chart type = line + # type = mysql_local + # family = connections + # context = mysql.connections + # units = connections/s + # priority = 60008 + # gap when lost iterations above = 1 + # name = mysql_local.connections + # title = mysql Connections (mysql_local.connections) + # dim Connections name = all + # dim Connections algorithm = incremental + # dim Connections multiplier = 1 + # dim Connections divisor = 1 + # dim Aborted_connects name = aborded + # dim Aborted_connects algorithm = incremental + # dim Aborted_connects multiplier = 1 + # dim Aborted_connects divisor = 1 + +[mysql_local.binlog_cache] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.binlog_cache + # chart type = line + # type = mysql_local + # family = binlog + # context = mysql.binlog_cache + # units = transactions/s + # priority = 60009 + # gap when lost iterations above = 1 + # name = mysql_local.binlog_cache + # title = mysql Binlog Cache (mysql_local.binlog_cache) + # dim Binlog_cache_disk_use name = disk + # dim Binlog_cache_disk_use algorithm = incremental + # dim Binlog_cache_disk_use multiplier = 1 + # dim Binlog_cache_disk_use divisor = 1 + # dim Binlog_cache_use name = all + # dim Binlog_cache_use algorithm = incremental + # dim Binlog_cache_use multiplier = 1 + # dim Binlog_cache_use divisor = 1 + +[mysql_local.threads] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.threads + # chart type = line + # type = mysql_local + # family = threads + # context = mysql.threads + # units = threads + # priority = 60010 + # gap when lost iterations above = 1 + # name = mysql_local.threads + # title = mysql Threads (mysql_local.threads) + # dim Threads_connected name = connected + # dim Threads_connected algorithm = absolute + # dim Threads_connected multiplier = 1 + # dim Threads_connected divisor = 1 + # dim Threads_created name = created + # dim Threads_created algorithm = incremental + # dim Threads_created multiplier = 1 + # dim Threads_created divisor = 1 + # dim Threads_cached name = cached + # dim Threads_cached algorithm = absolute + # dim Threads_cached multiplier = -1 + # dim Threads_cached divisor = 1 + # dim Threads_running name = running + # dim Threads_running algorithm = absolute + # dim Threads_running multiplier = 1 + # dim Threads_running divisor = 1 + +[mysql_local.thread_cache_misses] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.thread_cache_misses + # chart type = area + # type = mysql_local + # family = threads + # context = mysql.thread_cache_misses + # units = misses + # priority = 60011 + # gap when lost iterations above = 1 + # name = mysql_local.thread_cache_misses + # title = mysql Threads Cache Misses (mysql_local.thread_cache_misses) + # dim misses name = misses + # dim misses algorithm = absolute + # dim misses multiplier = 1 + # dim misses divisor = 100 + +[mysql_local.innodb_io] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.innodb_io + # chart type = area + # type = mysql_local + # family = innodb + # context = mysql.innodb_io + # units = kilobytes/s + # priority = 60012 + # gap when lost iterations above = 1 + # name = mysql_local.innodb_io + # title = mysql InnoDB I/O Bandwidth (mysql_local.innodb_io) + # dim Innodb_data_read name = read + # dim Innodb_data_read algorithm = incremental + # dim Innodb_data_read multiplier = 1 + # dim Innodb_data_read divisor = 1024 + # dim Innodb_data_written name = write + # dim Innodb_data_written algorithm = incremental + # dim Innodb_data_written multiplier = -1 + # dim Innodb_data_written divisor = 1024 + +[mysql_local.innodb_io_ops] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.innodb_io_ops + # chart type = line + # type = mysql_local + # family = innodb + # context = mysql.innodb_io_ops + # units = operations/s + # priority = 60013 + # gap when lost iterations above = 1 + # name = mysql_local.innodb_io_ops + # title = mysql InnoDB I/O Operations (mysql_local.innodb_io_ops) + # dim Innodb_data_reads name = reads + # dim Innodb_data_reads algorithm = incremental + # dim Innodb_data_reads multiplier = 1 + # dim Innodb_data_reads divisor = 1 + # dim Innodb_data_writes name = writes + # dim Innodb_data_writes algorithm = incremental + # dim Innodb_data_writes multiplier = -1 + # dim Innodb_data_writes divisor = 1 + # dim Innodb_data_fsyncs name = fsyncs + # dim Innodb_data_fsyncs algorithm = incremental + # dim Innodb_data_fsyncs multiplier = 1 + # dim Innodb_data_fsyncs divisor = 1 + +[mysql_local.innodb_io_pending_ops] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.innodb_io_pending_ops + # chart type = line + # type = mysql_local + # family = innodb + # context = mysql.innodb_io_pending_ops + # units = operations + # priority = 60014 + # gap when lost iterations above = 1 + # name = mysql_local.innodb_io_pending_ops + # title = mysql InnoDB Pending I/O Operations (mysql_local.innodb_io_pending_ops) + # dim Innodb_data_pending_reads name = reads + # dim Innodb_data_pending_reads algorithm = absolute + # dim Innodb_data_pending_reads multiplier = 1 + # dim Innodb_data_pending_reads divisor = 1 + # dim Innodb_data_pending_writes name = writes + # dim Innodb_data_pending_writes algorithm = absolute + # dim Innodb_data_pending_writes multiplier = -1 + # dim Innodb_data_pending_writes divisor = 1 + # dim Innodb_data_pending_fsyncs name = fsyncs + # dim Innodb_data_pending_fsyncs algorithm = absolute + # dim Innodb_data_pending_fsyncs multiplier = 1 + # dim Innodb_data_pending_fsyncs divisor = 1 + +[mysql_local.innodb_log] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.innodb_log + # chart type = line + # type = mysql_local + # family = innodb + # context = mysql.innodb_log + # units = operations/s + # priority = 60015 + # gap when lost iterations above = 1 + # name = mysql_local.innodb_log + # title = mysql InnoDB Log Operations (mysql_local.innodb_log) + # dim Innodb_log_waits name = waits + # dim Innodb_log_waits algorithm = incremental + # dim Innodb_log_waits multiplier = 1 + # dim Innodb_log_waits divisor = 1 + # dim Innodb_log_write_requests name = write_requests + # dim Innodb_log_write_requests algorithm = incremental + # dim Innodb_log_write_requests multiplier = -1 + # dim Innodb_log_write_requests divisor = 1 + # dim Innodb_log_writes name = writes + # dim Innodb_log_writes algorithm = incremental + # dim Innodb_log_writes multiplier = -1 + # dim Innodb_log_writes divisor = 1 + +[mysql_local.innodb_os_log] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.innodb_os_log + # chart type = line + # type = mysql_local + # family = innodb + # context = mysql.innodb_os_log + # units = operations + # priority = 60016 + # gap when lost iterations above = 1 + # name = mysql_local.innodb_os_log + # title = mysql InnoDB OS Log Operations (mysql_local.innodb_os_log) + # dim Innodb_os_log_fsyncs name = fsyncs + # dim Innodb_os_log_fsyncs algorithm = incremental + # dim Innodb_os_log_fsyncs multiplier = 1 + # dim Innodb_os_log_fsyncs divisor = 1 + # dim Innodb_os_log_pending_fsyncs name = pending_fsyncs + # dim Innodb_os_log_pending_fsyncs algorithm = absolute + # dim Innodb_os_log_pending_fsyncs multiplier = 1 + # dim Innodb_os_log_pending_fsyncs divisor = 1 + # dim Innodb_os_log_pending_writes name = pending_writes + # dim Innodb_os_log_pending_writes algorithm = absolute + # dim Innodb_os_log_pending_writes multiplier = -1 + # dim Innodb_os_log_pending_writes divisor = 1 + +[mysql_local.innodb_os_log_io] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.innodb_os_log_io + # chart type = area + # type = mysql_local + # family = innodb + # context = mysql.innodb_os_log_io + # units = kilobytes/s + # priority = 60017 + # gap when lost iterations above = 1 + # name = mysql_local.innodb_os_log_io + # title = mysql InnoDB OS Log Bandwidth (mysql_local.innodb_os_log_io) + # dim Innodb_os_log_written name = write + # dim Innodb_os_log_written algorithm = incremental + # dim Innodb_os_log_written multiplier = -1 + # dim Innodb_os_log_written divisor = 1024 + +[mysql_local.innodb_cur_row_lock] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.innodb_cur_row_lock + # chart type = area + # type = mysql_local + # family = innodb + # context = mysql.innodb_cur_row_lock + # units = operations + # priority = 60018 + # gap when lost iterations above = 1 + # name = mysql_local.innodb_cur_row_lock + # title = mysql InnoDB Current Row Locks (mysql_local.innodb_cur_row_lock) + # dim Innodb_row_lock_current_waits name = current_waits + # dim Innodb_row_lock_current_waits algorithm = absolute + # dim Innodb_row_lock_current_waits multiplier = 1 + # dim Innodb_row_lock_current_waits divisor = 1 + +[mysql_local.innodb_rows] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.innodb_rows + # chart type = area + # type = mysql_local + # family = innodb + # context = mysql.innodb_rows + # units = operations/s + # priority = 60019 + # gap when lost iterations above = 1 + # name = mysql_local.innodb_rows + # title = mysql InnoDB Row Operations (mysql_local.innodb_rows) + # dim Innodb_rows_read name = read + # dim Innodb_rows_read algorithm = incremental + # dim Innodb_rows_read multiplier = 1 + # dim Innodb_rows_read divisor = 1 + # dim Innodb_rows_deleted name = deleted + # dim Innodb_rows_deleted algorithm = incremental + # dim Innodb_rows_deleted multiplier = -1 + # dim Innodb_rows_deleted divisor = 1 + # dim Innodb_rows_inserted name = inserted + # dim Innodb_rows_inserted algorithm = incremental + # dim Innodb_rows_inserted multiplier = 1 + # dim Innodb_rows_inserted divisor = 1 + # dim Innodb_rows_updated name = updated + # dim Innodb_rows_updated algorithm = incremental + # dim Innodb_rows_updated multiplier = -1 + # dim Innodb_rows_updated divisor = 1 + +[mysql_local.binlog_stmt_cache] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mysql_local.binlog_stmt_cache + # chart type = line + # type = mysql_local + # family = binlog + # context = mysql.binlog_stmt_cache + # units = statements/s + # priority = 60020 + # gap when lost iterations above = 1 + # name = mysql_local.binlog_stmt_cache + # title = mysql Binlog Statement Cache (mysql_local.binlog_stmt_cache) + # dim Binlog_stmt_cache_disk_use name = disk + # dim Binlog_stmt_cache_disk_use algorithm = incremental + # dim Binlog_stmt_cache_disk_use multiplier = 1 + # dim Binlog_stmt_cache_disk_use divisor = 1 + # dim Binlog_stmt_cache_use name = all + # dim Binlog_stmt_cache_use algorithm = incremental + # dim Binlog_stmt_cache_use multiplier = 1 + # dim Binlog_stmt_cache_use divisor = 1 + +[system.ipv6] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/system.ipv6 + # chart type = area + # type = system + # family = network + # context = system.ipv6 + # units = kilobits/s + # priority = 500 + # gap when lost iterations above = 1 + # name = system.ipv6 + # title = IPv6 Bandwidth (system.ipv6) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 8 + # dim received divisor = 1024 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -8 + # dim sent divisor = 1024 + +[ipv6.packets] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/ipv6.packets + # chart type = line + # type = ipv6 + # family = packets + # context = ipv6.packets + # units = packets/s + # priority = 3000 + # gap when lost iterations above = 1 + # name = ipv6.packets + # title = IPv6 Packets (ipv6.packets) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + # dim forwarded name = forwarded + # dim forwarded algorithm = incremental + # dim forwarded multiplier = 1 + # dim forwarded divisor = 1 + # dim delivers name = delivers + # dim delivers algorithm = incremental + # dim delivers multiplier = -1 + # dim delivers divisor = 1 + +[ipv6.udppackets] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.udppackets + # chart type = line + # type = ipv6 + # family = udp + # context = ipv6.udppackets + # units = packets/s + # priority = 3601 + # gap when lost iterations above = 1 + # name = ipv6.udppackets + # title = IPv6 UDP Packets (ipv6.udppackets) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + +[ipv6.mcast] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.mcast + # chart type = area + # type = ipv6 + # family = multicast + # context = ipv6.mcast + # units = kilobits/s + # priority = 9000 + # gap when lost iterations above = 1 + # name = ipv6.mcast + # title = IPv6 Multicast Bandwidth (ipv6.mcast) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 8 + # dim received divisor = 1024 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -8 + # dim sent divisor = 1024 + +[ipv6.mcastpkts] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.mcastpkts + # chart type = line + # type = ipv6 + # family = multicast + # context = ipv6.mcastpkts + # units = packets/s + # priority = 9500 + # gap when lost iterations above = 1 + # name = ipv6.mcastpkts + # title = IPv6 Multicast Packets (ipv6.mcastpkts) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + +[nginx.connections] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/nginx.connections + # chart type = line + # type = nginx + # family = nginx + # context = nginx.connections + # units = connections + # priority = 60001 + # gap when lost iterations above = 1 + # name = nginx.connections + # title = nginx Active Connections (nginx.connections) + # dim active name = active + # dim active algorithm = absolute + # dim active multiplier = 1 + # dim active divisor = 1 + +[ipv6.icmp] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.icmp + # chart type = line + # type = ipv6 + # family = icmp + # context = ipv6.icmp + # units = messages/s + # priority = 10000 + # gap when lost iterations above = 1 + # name = ipv6.icmp + # title = IPv6 ICMP Messages (ipv6.icmp) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + +[ipv6.icmprouter] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.icmprouter + # chart type = line + # type = ipv6 + # family = icmp + # context = ipv6.icmprouter + # units = messages/s + # priority = 10400 + # gap when lost iterations above = 1 + # name = ipv6.icmprouter + # title = IPv6 Router Messages (ipv6.icmprouter) + # dim InSolicits name = InSolicits + # dim InSolicits algorithm = incremental + # dim InSolicits multiplier = 1 + # dim InSolicits divisor = 1 + # dim OutSolicits name = OutSolicits + # dim OutSolicits algorithm = incremental + # dim OutSolicits multiplier = -1 + # dim OutSolicits divisor = 1 + # dim InAdvertisements name = InAdvertisements + # dim InAdvertisements algorithm = incremental + # dim InAdvertisements multiplier = 1 + # dim InAdvertisements divisor = 1 + # dim OutAdvertisements name = OutAdvertisements + # dim OutAdvertisements algorithm = incremental + # dim OutAdvertisements multiplier = -1 + # dim OutAdvertisements divisor = 1 + +[ipv6.icmpneighbor] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.icmpneighbor + # chart type = line + # type = ipv6 + # family = icmp + # context = ipv6.icmpneighbor + # units = messages/s + # priority = 10500 + # gap when lost iterations above = 1 + # name = ipv6.icmpneighbor + # title = IPv6 Neighbor Messages (ipv6.icmpneighbor) + # dim InSolicits name = InSolicits + # dim InSolicits algorithm = incremental + # dim InSolicits multiplier = 1 + # dim InSolicits divisor = 1 + # dim OutSolicits name = OutSolicits + # dim OutSolicits algorithm = incremental + # dim OutSolicits multiplier = -1 + # dim OutSolicits divisor = 1 + # dim InAdvertisements name = InAdvertisements + # dim InAdvertisements algorithm = incremental + # dim InAdvertisements multiplier = 1 + # dim InAdvertisements divisor = 1 + # dim OutAdvertisements name = OutAdvertisements + # dim OutAdvertisements algorithm = incremental + # dim OutAdvertisements multiplier = -1 + # dim OutAdvertisements divisor = 1 + +[ipv6.icmpmldv2] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.icmpmldv2 + # chart type = line + # type = ipv6 + # family = icmp + # context = ipv6.icmpmldv2 + # units = reports/s + # priority = 10600 + # gap when lost iterations above = 1 + # name = ipv6.icmpmldv2 + # title = IPv6 ICMP MLDv2 Reports (ipv6.icmpmldv2) + # dim received name = received + # dim received algorithm = incremental + # dim received multiplier = 1 + # dim received divisor = 1 + # dim sent name = sent + # dim sent algorithm = incremental + # dim sent multiplier = -1 + # dim sent divisor = 1 + +[ipv6.icmptypes] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.icmptypes + # chart type = line + # type = ipv6 + # family = icmp + # context = ipv6.icmptypes + # units = messages/s + # priority = 10700 + # gap when lost iterations above = 1 + # name = ipv6.icmptypes + # title = IPv6 ICMP Types (ipv6.icmptypes) + # dim InType1 name = InType1 + # dim InType1 algorithm = incremental + # dim InType1 multiplier = 1 + # dim InType1 divisor = 1 + # dim InType128 name = InType128 + # dim InType128 algorithm = incremental + # dim InType128 multiplier = 1 + # dim InType128 divisor = 1 + # dim InType129 name = InType129 + # dim InType129 algorithm = incremental + # dim InType129 multiplier = 1 + # dim InType129 divisor = 1 + # dim InType136 name = InType136 + # dim InType136 algorithm = incremental + # dim InType136 multiplier = 1 + # dim InType136 divisor = 1 + # dim OutType1 name = OutType1 + # dim OutType1 algorithm = incremental + # dim OutType1 multiplier = -1 + # dim OutType1 divisor = 1 + # dim OutType128 name = OutType128 + # dim OutType128 algorithm = incremental + # dim OutType128 multiplier = -1 + # dim OutType128 divisor = 1 + # dim OutType129 name = OutType129 + # dim OutType129 algorithm = incremental + # dim OutType129 multiplier = -1 + # dim OutType129 divisor = 1 + # dim OutType133 name = OutType133 + # dim OutType133 algorithm = incremental + # dim OutType133 multiplier = -1 + # dim OutType133 divisor = 1 + # dim OutType135 name = OutType135 + # dim OutType135 algorithm = incremental + # dim OutType135 multiplier = -1 + # dim OutType135 divisor = 1 + # dim OutType143 name = OutType143 + # dim OutType143 algorithm = incremental + # dim OutType143 multiplier = -1 + # dim OutType143 divisor = 1 + +[ipv6.ect] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/ipv6.ect + # chart type = line + # type = ipv6 + # family = packets + # context = ipv6.ect + # units = packets/s + # priority = 10800 + # gap when lost iterations above = 1 + # name = ipv6.ect + # title = IPv6 ECT Packets (ipv6.ect) + # dim InNoECTPkts name = InNoECTPkts + # dim InNoECTPkts algorithm = incremental + # dim InNoECTPkts multiplier = 1 + # dim InNoECTPkts divisor = 1 + # dim InECT1Pkts name = InECT1Pkts + # dim InECT1Pkts algorithm = incremental + # dim InECT1Pkts multiplier = 1 + # dim InECT1Pkts divisor = 1 + # dim InECT0Pkts name = InECT0Pkts + # dim InECT0Pkts algorithm = incremental + # dim InECT0Pkts multiplier = 1 + # dim InECT0Pkts divisor = 1 + # dim InCEPkts name = InCEPkts + # dim InCEPkts algorithm = incremental + # dim InCEPkts multiplier = 1 + # dim InCEPkts divisor = 1 + +[nginx.requests] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/nginx.requests + # chart type = line + # type = nginx + # family = nginx + # context = nginx.requests + # units = requests/s + # priority = 60002 + # gap when lost iterations above = 1 + # name = nginx.requests + # title = nginx Requests (nginx.requests) + # dim requests name = requests + # dim requests algorithm = incremental + # dim requests multiplier = 1 + # dim requests divisor = 1 + +[nginx.connections_status] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/nginx.connections_status + # chart type = line + # type = nginx + # family = nginx + # context = nginx.connections.status + # units = connections + # priority = 60003 + # gap when lost iterations above = 1 + # name = nginx.connections_status + # title = nginx Active Connections by Status (nginx.connections_status) + # dim reading name = reading + # dim reading algorithm = absolute + # dim reading multiplier = 1 + # dim reading divisor = 1 + # dim writing name = writing + # dim writing algorithm = absolute + # dim writing multiplier = 1 + # dim writing divisor = 1 + # dim waiting name = idle + # dim waiting algorithm = absolute + # dim waiting multiplier = 1 + # dim waiting divisor = 1 + +[netfilter.sockets] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netfilter.sockets + # chart type = line + # type = netfilter + # family = netfilter + # context = netfilter.sockets + # units = active connections + # priority = 1000 + # gap when lost iterations above = 1 + # name = netfilter.sockets + # title = Netfilter Connections (netfilter.sockets) + # dim connections name = connections + # dim connections algorithm = absolute + # dim connections multiplier = 1 + # dim connections divisor = 1 + +[nginx.connect_rate] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/nginx.connect_rate + # chart type = line + # type = nginx + # family = nginx + # context = nginx.connections.rate + # units = connections/s + # priority = 60004 + # gap when lost iterations above = 1 + # name = nginx.connect_rate + # title = nginx Connections Rate (nginx.connect_rate) + # dim accepts name = accepted + # dim accepts algorithm = incremental + # dim accepts multiplier = 1 + # dim accepts divisor = 1 + # dim handled name = handled + # dim handled algorithm = incremental + # dim handled multiplier = 1 + # dim handled divisor = 1 + +[netfilter.new] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netfilter.new + # chart type = line + # type = netfilter + # family = netfilter + # context = netfilter.new + # units = connections/s + # priority = 1001 + # gap when lost iterations above = 1 + # name = netfilter.new + # title = Netfilter New Connections (netfilter.new) + # dim new name = new + # dim new algorithm = incremental + # dim new multiplier = 1 + # dim new divisor = 1 + # dim ignore name = ignore + # dim ignore algorithm = incremental + # dim ignore multiplier = -1 + # dim ignore divisor = 1 + # dim invalid name = invalid + # dim invalid algorithm = incremental + # dim invalid multiplier = -1 + # dim invalid divisor = 1 + +[netfilter.changes] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netfilter.changes + # chart type = line + # type = netfilter + # family = netfilter + # context = netfilter.changes + # units = changes/s + # priority = 1002 + # gap when lost iterations above = 1 + # name = netfilter.changes + # title = Netfilter Connection Changes (netfilter.changes) + # dim inserted name = inserted + # dim inserted algorithm = incremental + # dim inserted multiplier = 1 + # dim inserted divisor = 1 + # dim deleted name = deleted + # dim deleted algorithm = incremental + # dim deleted multiplier = -1 + # dim deleted divisor = 1 + # dim delete_list name = delete_list + # dim delete_list algorithm = incremental + # dim delete_list multiplier = -1 + # dim delete_list divisor = 1 + +[netdata.plugin_chartsd_example] + # history = 86400 + # enabled = yes + enabled = yes + # cache directory = /var/cache/netdata/netdata.plugin_chartsd_example + # chart type = area + # type = netdata + # family = charts.d + # context = netdata.plugin_charts + # units = milliseconds / run + # priority = 145000 + # gap when lost iterations above = 1 + # name = netdata.plugin_chartsd_example + # title = Execution time for example plugin (netdata.plugin_chartsd_example) + # dim run_time name = run time + # dim run_time algorithm = absolute + # dim run_time multiplier = 1 + # dim run_time divisor = 1 + +[netdata.plugin_chartsd_mysql] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netdata.plugin_chartsd_mysql + # chart type = area + # type = netdata + # family = charts.d + # context = netdata.plugin_charts + # units = milliseconds / run + # priority = 145000 + # gap when lost iterations above = 1 + # name = netdata.plugin_chartsd_mysql + # title = Execution time for mysql plugin (netdata.plugin_chartsd_mysql) + # dim run_time name = run time + # dim run_time algorithm = absolute + # dim run_time multiplier = 1 + # dim run_time divisor = 1 + +[netdata.plugin_chartsd_nginx] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netdata.plugin_chartsd_nginx + # chart type = area + # type = netdata + # family = charts.d + # context = netdata.plugin_charts + # units = milliseconds / run + # priority = 145000 + # gap when lost iterations above = 1 + # name = netdata.plugin_chartsd_nginx + # title = Execution time for nginx plugin (netdata.plugin_chartsd_nginx) + # dim run_time name = run time + # dim run_time algorithm = absolute + # dim run_time multiplier = 1 + # dim run_time divisor = 1 + +[netfilter.expect] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netfilter.expect + # chart type = line + # type = netfilter + # family = netfilter + # context = netfilter.expect + # units = expectations/s + # priority = 1003 + # gap when lost iterations above = 1 + # name = netfilter.expect + # title = Netfilter Connection Expectations (netfilter.expect) + # dim created name = created + # dim created algorithm = incremental + # dim created multiplier = 1 + # dim created divisor = 1 + # dim deleted name = deleted + # dim deleted algorithm = incremental + # dim deleted multiplier = -1 + # dim deleted divisor = 1 + # dim new name = new + # dim new algorithm = incremental + # dim new multiplier = 1 + # dim new divisor = 1 + +[netdata.plugin_chartsd_postfix] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netdata.plugin_chartsd_postfix + # chart type = area + # type = netdata + # family = charts.d + # context = netdata.plugin_charts + # units = milliseconds / run + # priority = 145000 + # gap when lost iterations above = 1 + # name = netdata.plugin_chartsd_postfix + # title = Execution time for postfix plugin (netdata.plugin_chartsd_postfix) + # dim run_time name = run time + # dim run_time algorithm = absolute + # dim run_time multiplier = 1 + # dim run_time divisor = 1 + +[netfilter.search] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netfilter.search + # chart type = line + # type = netfilter + # family = netfilter + # context = netfilter.search + # units = searches/s + # priority = 1010 + # gap when lost iterations above = 1 + # name = netfilter.search + # title = Netfilter Connection Searches (netfilter.search) + # dim searched name = searched + # dim searched algorithm = incremental + # dim searched multiplier = 1 + # dim searched divisor = 1 + # dim restarted name = restarted + # dim restarted algorithm = incremental + # dim restarted multiplier = -1 + # dim restarted divisor = 1 + # dim found name = found + # dim found algorithm = incremental + # dim found multiplier = 1 + # dim found divisor = 1 + +[netfilter.errors] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/netfilter.errors + # chart type = line + # type = netfilter + # family = netfilter + # context = netfilter.errors + # units = events/s + # priority = 1005 + # gap when lost iterations above = 1 + # name = netfilter.errors + # title = Netfilter Errors (netfilter.errors) + # dim icmp_error name = icmp_error + # dim icmp_error algorithm = incremental + # dim icmp_error multiplier = 1 + # dim icmp_error divisor = 1 + # dim insert_failed name = insert_failed + # dim insert_failed algorithm = incremental + # dim insert_failed multiplier = -1 + # dim insert_failed divisor = 1 + # dim drop name = drop + # dim drop algorithm = incremental + # dim drop multiplier = -1 + # dim drop divisor = 1 + # dim early_drop name = early_drop + # dim early_drop algorithm = incremental + # dim early_drop multiplier = -1 + # dim early_drop divisor = 1 + +[mem.pgfaults] + # history = 86400 + # enabled = yes + enabled = no + # cache directory = /var/cache/netdata/mem.pgfaults + # chart type = line + # type = mem + # family = system + # context = mem.pgfaults + # units = page faults/s + # priority = 500 + # gap when lost iterations above = 1 + # name = mem.pgfaults + # title = Memory Page Faults (mem.pgfaults) + # dim minor name = minor + # dim minor algorithm = incremental + # dim minor multiplier = 1 + # dim minor divisor = 1 + # dim major name = major + # dim major algorithm = incremental + # dim major multiplier = -1 + # dim major divisor = 1 diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service b/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service new file mode 100644 index 00000000000..b244d18665f --- /dev/null +++ b/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service @@ -0,0 +1,13 @@ +[Unit] +Description=Netdata, Real-time performance monitoring +RequiresMountsFor=/var + +[Service] +User=root +ExecStartPre=/bin/mkdir -p /var/log/netdata +ExecStartPre=/bin/chown -R nobody.netdata @@datadir/netdata/web +ExecStartPre=/bin/chown -R nobody.netdata /var/cache/netdata +ExecStart=/usr/sbin/netdata -nd + +[Install] +WantedBy=multi-user.target diff --git a/meta-webserver/recipes-webadmin/netdata/netdata_git.bb b/meta-webserver/recipes-webadmin/netdata/netdata_git.bb new file mode 100644 index 00000000000..b0f1602528f --- /dev/null +++ b/meta-webserver/recipes-webadmin/netdata/netdata_git.bb @@ -0,0 +1,59 @@ +HOMEPAGE = "https://github.com/firehol/netdata/" +SUMMARY = "Real-time performance monitoring" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=95b49e9ea979a337578f13c2a3ab9535 \ + file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + " + +SRC_URI = "git://github.com/firehol/netdata.git;protocol=https \ + file://0001-makefile-Do-not-build-contrib-dir.patch \ +" +SRCREV = "89ed309252981ddd50f697fde4fe93019cb3e652" +PV = "1.8.0+git${SRCPV}" + +# patch to disable timeout because timeout are not available with actual version +# of core-utils +SRC_URI += "file://0001-Correct-Timeout-issue.patch" + +# default netdata.conf for netdata configuration +SRC_URI += "file://netdata.conf" + +# file for providing systemd service support +SRC_URI += "file://netdata.service" + +S = "${WORKDIR}/git" + +DEPENDS += "zlib util-linux" + +inherit pkgconfig autotools useradd systemd + +#systemd +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "netdata.service" +SYSTEMD_AUTO_ENABLE_${PN} = "enable" + +#User specific +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system netdata" + +do_install_append() { + #set S UID for plugins + chmod 4755 ${D}${libexecdir}/netdata/plugins.d/apps.plugin + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + # Install systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/netdata.service ${D}${systemd_unitdir}/system + sed -i -e 's,@@datadir,${datadir_native},g' ${D}${systemd_unitdir}/system/netdata.service + fi + + # Install default netdata.conf + install -d ${D}${sysconfdir}/netdata + install -m 0644 ${WORKDIR}/netdata.conf ${D}${sysconfdir}/netdata/ + sed -i -e 's,@@sysconfdir,${sysconfdir},g' ${D}${sysconfdir}/netdata/netdata.conf + sed -i -e 's,@@libdir,${libexecdir},g' ${D}${sysconfdir}/netdata/netdata.conf + sed -i -e 's,@@datadir,${datadir},g' ${D}${sysconfdir}/netdata/netdata.conf +} + +FILES_${PN}-dbg += "${libexecdir}/netdata/plugins.d/.debug" +RDEPENDS_${PN} = "bash zlib" diff --git a/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch b/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch index a9ee405075d..1ca1480c31d 100644 --- a/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch +++ b/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch @@ -11,7 +11,7 @@ diff --git a/webmin/webmin-lib.pl b/webmin/webmin-lib.pl index 57a37f7..838b944 100755 --- a/webmin/webmin-lib.pl +++ b/webmin/webmin-lib.pl -@@ -1059,18 +1059,19 @@ my %miniserv; +@@ -1086,28 +1086,28 @@ &load_theme_library(); # So that UI functions work # Need OS upgrade @@ -20,26 +20,46 @@ index 57a37f7..838b944 100755 - $realos{'os_type'} ne $gconfig{'os_type'}) && - $realos{'os_version'} && $realos{'os_type'} && - &foreign_available("webmin")) { -- push(@notifs, -- &ui_form_start("$gconfig{'webprefix'}/webmin/fix_os.cgi"). -- &text('os_incorrect', $realos{'real_os_type'}, -- $realos{'real_os_version'})."

    \n". -- &ui_form_end([ [ undef, $text{'os_fix'} ] ]) -- ); +- my ($realminor) = split(/\./, $realos{'os_version'}); +- my ($minor) = split(/\./, $gconfig{'os_version'}); +- if ($realos{'os_type'} eq $gconfig{'os_type'} && +- $realminor == $minor) { +- # Only the minor version number changed - no need to apply +- &apply_new_os_version(\%realos); +- } +- else { +- # Large enough change to tell the user +- push(@notifs, +- &ui_form_start("$gconfig{'webprefix'}/webmin/fix_os.cgi"). +- &text('os_incorrect', $realos{'real_os_type'}, +- $realos{'real_os_version'})."

    \n". +- &ui_form_end([ [ undef, $text{'os_fix'} ] ]) +- ); +- } - } -+# Disabled for now as os-chooser.pl does not work on our system +#my %realos = &detect_operating_system(undef, 1); +#if (($realos{'os_version'} ne $gconfig{'os_version'} || +# $realos{'os_type'} ne $gconfig{'os_type'}) && +# $realos{'os_version'} && $realos{'os_type'} && +# &foreign_available("webmin")) { -+# push(@notifs, -+# &ui_form_start("$gconfig{'webprefix'}/webmin/fix_os.cgi"). -+# &text('os_incorrect', $realos{'real_os_type'}, -+# $realos{'real_os_version'})."

    \n". -+# &ui_form_end([ [ undef, $text{'os_fix'} ] ]) -+# ); ++# my ($realminor) = split(/\./, $realos{'os_version'}); ++# my ($minor) = split(/\./, $gconfig{'os_version'}); ++# if ($realos{'os_type'} eq $gconfig{'os_type'} && ++# $realminor == $minor) { ++# # Only the minor version number changed - no need to apply ++# &apply_new_os_version(\%realos); ++# } ++# else { ++# # Large enough change to tell the user ++# push(@notifs, ++# &ui_form_start("$gconfig{'webprefix'}/webmin/fix_os.cgi"). ++# &text('os_incorrect', $realos{'real_os_type'}, ++# $realos{'real_os_version'})."

    \n". ++# &ui_form_end([ [ undef, $text{'os_fix'} ] ]) ++# ); ++# } +# } # Password close to expiry my $warn_days = $config{'warn_days'}; + diff --git a/meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch b/meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch new file mode 100644 index 00000000000..2cbc627076a --- /dev/null +++ b/meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch @@ -0,0 +1,50 @@ +From 719206df606acd7a623e8d75da293c25489b7884 Mon Sep 17 00:00:00 2001 +From: Diego Rondini +Date: Thu, 18 Feb 2016 15:44:06 +0100 +Subject: [PATCH] Adjust Mysql config defaults + +Upstream-status: Inappropriate [configuration] + +Signed-off-by: Diego Rondini +--- + mysql/config | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/mysql/config b/mysql/config +index e5b6fb3..77bfe69 100644 +--- a/mysql/config ++++ b/mysql/config +@@ -1,13 +1,13 @@ +-start_cmd=cd /usr/local/mysql ; (./bin/safe_mysqld || ./bin/mysqld_safe) & ++start_cmd=/usr/bin/mysqld_safe + perpage=25 +-mysql=/usr/local/mysql/bin/mysql +-mysqldump=/usr/local/mysql/bin/mysqldump +-mysqlimport=/usr/local/mysql/bin/mysqlimport +-pass=foo +-mysqlshow=/usr/local/mysql/bin/mysqlshow ++mysql=/usr/bin/mysql ++mysqldump=/usr/bin/mysqldump ++mysqlimport=/usr/bin/mysqlimport ++pass= ++mysqlshow=/usr/bin/mysqlshow + login=root +-mysql_libs=/usr/local/mysql/lib +-mysqladmin=/usr/local/mysql/bin/mysqladmin ++mysql_libs=/usr/lib ++mysqladmin=/usr/bin/mysqladmin + style=0 + add_mode=1 + nodbi=0 +@@ -15,7 +15,7 @@ access=*: * + blob_mode=0 + date_subs=0 + passwd_mode=0 +-mysql_data=/usr/local/mysql/var ++mysql_data=/var/lib/mysql + max_dbs=50 + my_cnf=/etc/my.cnf + max_text=1000 +-- +2.5.0 + diff --git a/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch b/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch index 8493af85268..d957f4a3bc3 100644 --- a/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch +++ b/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch @@ -11,7 +11,7 @@ &get_miniserv_config(\%miniserv); -if (&foreign_check("init")) { -- &foreign_require("init", "init-lib.pl"); +- &foreign_require("init"); - my $starting = &init::action_status("webmin"); - print &ui_buttons_row("bootup.cgi", - $text{'index_boot'}, diff --git a/meta-webserver/recipes-webadmin/webmin/files/webmin.service b/meta-webserver/recipes-webadmin/webmin/files/webmin.service new file mode 100644 index 00000000000..87cf4f99d02 --- /dev/null +++ b/meta-webserver/recipes-webadmin/webmin/files/webmin.service @@ -0,0 +1,15 @@ +[Unit] +Description=Webmin Admin Tool +Requires=local-fs.target +After=basic.target +Conflicts=shutdown.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@SYSCONFDIR@/webmin/start +ExecStop=@SYSCONFDIR@/webmin/stop +ExecReload=@SYSCONFDIR@/webmin/reload + +[Install] +WantedBy=multi-user.target diff --git a/meta-webserver/recipes-webadmin/webmin/webmin_1.700.bb b/meta-webserver/recipes-webadmin/webmin/webmin_1.700.bb deleted file mode 100644 index c6523c53d8e..00000000000 --- a/meta-webserver/recipes-webadmin/webmin/webmin_1.700.bb +++ /dev/null @@ -1,151 +0,0 @@ -SUMMARY = "Web-based administration interface" -HOMEPAGE = "http://www.webmin.com" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENCE;md5=0373ac9f611e542ddebe1ec6394afc3c" - -SRC_URI = "${SOURCEFORGE_MIRROR}/webadmin/webmin-${PV}.tar.gz \ - file://setup.sh \ - file://init-exclude.patch \ - file://net-generic.patch \ - file://remove-startup-option.patch \ - file://disable-version-check.patch \ - file://nfs-export.patch \ - file://exports-lib.pl.patch \ - file://mount-excludefs.patch \ - file://samba-config-fix.patch \ - file://proftpd-config-fix.patch \ - file://net-lib.pl.patch \ - file://media-tomb.patch \ - file://remove-python2.3.patch \ - " - -SRC_URI[md5sum] = "e5261114a6a6ed10caf570d3239ed5b7" -SRC_URI[sha256sum] = "1a6a8aa62c32c04932b902d17fc1864ee8f3fba03012bd25f709aa65e7e9b0f2" - -inherit perlnative update-rc.d - -do_configure() { - # Remove binaries and plugins for other platforms - rm -rf acl/Authen-SolarisRBAC-0.1* - rm -rf format bsdexports hpuxexports sgiexports - rm -rf zones rbac smf ipfw ipfilter dfsadmin - rm -f mount/freebsd-mounts* mount/netbsd-mounts* - rm -f mount/openbsd-mounts* mount/macos-mounts* - - # Remove some plugins for the moment - rm -rf lilo frox wuftpd telnet pserver cpan shorewall webalizer cfengine fsdump pap - rm -rf majordomo fetchmail sendmail mailboxes procmail filter mailcap dovecot exim spam qmailadmin postfix - rm -rf stunnel squid sarg pptp-client pptp-server jabber openslp sentry cluster-* vgetty burner heartbeat - - # Adjust configs - [ -f init/config-debian-linux ] && mv init/config-debian-linux init/config-generic-linux - sed -i "s/shutdown_command=.*/shutdown_command=poweroff/" init/config-generic-linux - echo "exclude=bootmisc.sh,single,halt,reboot,hostname.sh,modutils.sh,mountall.sh,mountnfs.sh,networking,populate-volatile.sh,rmnologin.sh,save-rtc.sh,umountfs,umountnfs.sh,hwclock.sh,checkroot.sh,banner.sh,udev,udev-cache,devpts.sh,psplash.sh,sendsigs,fbsetup,bootlogd,stop-bootlogd,sysfs.sh,syslog,syslog.busybox,urandom,webmin,functions.initscripts,read-only-rootfs-hook.sh" >> init/config-generic-linux - echo "excludefs=devpts,devtmpfs,usbdevfs,proc,tmpfs,sysfs,debugfs" >> mount/config-generic-linux - - [ -f exports/config-debian-linux ] && mv exports/config-debian-linux exports/config-generic-linux - sed -i "s/killall -HUP rpc.nfsd && //" exports/config-generic-linux - sed -i "s/netstd_nfs/nfsserver/g" exports/config-generic-linux - - # Fix insane naming that causes problems at packaging time (must be done before deleting below) - find . -name "*\**" | while read from - do - to=`echo "$from" | sed "s/*/ALL/"` - mv "$from" "$to" - done - - # Remove some other files we don't need - find . -name "config-*" -a \! -name "config-generic-linux" -a \! -name "config-ALL-linux" -a \! -name "*.pl" -delete - find . -regextype posix-extended -regex ".*/(openserver|aix|osf1|osf|openbsd|netbsd|freebsd|unixware|solaris|macos|irix|hpux|cygwin|windows)-lib\.pl" -delete - rm -f webmin-gentoo-init webmin-caldera-init webmin-debian-pam webmin-pam - - # Don't need these at runtime (and we have our own setup script) - rm -f setup.sh - rm -f setup.pl - - # Use pidof for finding PIDs - sed -i "s/find_pid_command=.*/find_pid_command=pidof NAME/" config-generic-linux -} - -WEBMIN_LOGIN ?= "admin" -WEBMIN_PASSWORD ?= "password" - -do_install() { - install -d ${D}${sysconfdir} - install -d ${D}${sysconfdir}/webmin - install -d ${D}${sysconfdir}/init.d - install -m 0755 webmin-init ${D}${sysconfdir}/init.d/webmin - - install -d ${D}${localstatedir} - install -d ${D}${localstatedir}/webmin - - install -d ${D}${libexecdir}/webmin - cp -pPR ${S}/* ${D}${libexecdir}/webmin - rm -f ${D}${libexecdir}/webmin/webmin-init - rm -f ${D}${libexecdir}/webmin/ajaxterm/ajaxterm/configure.initd.gentoo - rm -rf ${D}${libexecdir}/webmin/patches - - # Run setup script - export perl=perl - export perl_runtime=${bindir}/perl - export prefix=${D} - export tempdir=${S}/install_tmp - export wadir=${libexecdir}/webmin - export config_dir=${sysconfdir}/webmin - export var_dir=${localstatedir}/webmin - export os_type=generic-linux - export os_version=0 - export real_os_type="${DISTRO_NAME}" - export real_os_version="${DISTRO_VERSION}" - export port=10000 - export login=${WEBMIN_LOGIN} - export password=${WEBMIN_PASSWORD} - export ssl=0 - export atboot=1 - export no_pam=1 - mkdir -p $tempdir - ${S}/../setup.sh -} - -INITSCRIPT_NAME = "webmin" -INITSCRIPT_PARAMS = "start 99 5 3 2 . stop 10 0 1 6 ." - -# FIXME: some of this should be figured out automatically -RDEPENDS_${PN} += "perl perl-module-socket perl-module-exporter perl-module-exporter-heavy perl-module-carp perl-module-strict" -RDEPENDS_${PN} += "perl-module-warnings perl-module-xsloader perl-module-posix perl-module-autoloader" -RDEPENDS_${PN} += "perl-module-fcntl perl-module-tie-hash perl-module-vars perl-module-time-local perl-module-config perl-module-constant" -RDEPENDS_${PN} += "perl-module-file-glob perl-module-file-copy perl-module-sdbm perl-module-sdbm-file perl-module-feature" - -PACKAGES_DYNAMIC += "webmin-module-* webmin-theme-*" -RRECOMMENDS_${PN} += "webmin-module-system-status" - -PACKAGES += "${PN}-module-proc ${PN}-module-raid ${PN}-module-exports ${PN}-module-fdisk ${PN}-module-lvm" -RDEPENDS_${PN}-module-proc = "procps" -RDEPENDS_${PN}-module-raid = "mdadm" -RDEPENDS_${PN}-module-exports = "perl-module-file-basename perl-module-file-path perl-module-cwd perl-module-file-spec perl-module-file-spec-unix" -RRECOMMENDS_${PN}-module-fdisk = "parted" -RRECOMMENDS_${PN}-module-lvm = "lvm2" - -python populate_packages_prepend() { - import os, os.path - - wadir = bb.data.expand('${libexecdir}/webmin', d) - wadir_image = bb.data.expand('${D}', d) + wadir - modules = [] - themes = [] - for mod in os.listdir(wadir_image): - modinfo = os.path.join(wadir_image, mod, "module.info") - themeinfo = os.path.join(wadir_image, mod, "theme.info") - if os.path.exists(modinfo): - modules.append(mod) - elif os.path.exists(themeinfo): - themes.append(mod) - - do_split_packages(d, wadir, '^(%s)$' % "|".join(modules), 'webmin-module-%s', 'Webmin module for %s', allow_dirs=True, prepend=True) - do_split_packages(d, wadir, '^(%s)$' % "|".join(themes), 'webmin-theme-%s', 'Webmin theme for %s', allow_dirs=True, prepend=True) -} - -# Time-savers -package_do_pkgconfig() { - : -} diff --git a/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb b/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb new file mode 100644 index 00000000000..ae88eb67372 --- /dev/null +++ b/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb @@ -0,0 +1,167 @@ +SUMMARY = "Web-based administration interface" +HOMEPAGE = "http://www.webmin.com" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENCE;md5=0373ac9f611e542ddebe1ec6394afc3c" + +SRC_URI = "${SOURCEFORGE_MIRROR}/webadmin/webmin-${PV}.tar.gz \ + file://setup.sh \ + file://init-exclude.patch \ + file://net-generic.patch \ + file://remove-startup-option.patch \ + file://disable-version-check.patch \ + file://nfs-export.patch \ + file://exports-lib.pl.patch \ + file://mount-excludefs.patch \ + file://samba-config-fix.patch \ + file://proftpd-config-fix.patch \ + file://net-lib.pl.patch \ + file://media-tomb.patch \ + file://remove-python2.3.patch \ + file://mysql-config-fix.patch \ + file://webmin.service \ + " + +SRC_URI[md5sum] = "cd6ee98f73f9418562197675b952d81b" +SRC_URI[sha256sum] = "c66caa9e4cb50d5447bc8aceb7989d2284dde060278f404b13e171c7ce1690e1" + +inherit perlnative update-rc.d systemd + +do_configure() { + # Remove binaries and plugins for other platforms + rm -rf acl/Authen-SolarisRBAC-0.1* + rm -rf format bsdexports hpuxexports sgiexports + rm -rf zones rbac smf ipfw ipfilter dfsadmin + rm -f mount/freebsd-mounts* mount/netbsd-mounts* + rm -f mount/openbsd-mounts* mount/macos-mounts* + + # Remove some plugins for the moment + rm -rf lilo frox wuftpd telnet pserver cpan shorewall webalizer cfengine fsdump pap + rm -rf majordomo fetchmail sendmail mailboxes procmail filter mailcap dovecot exim spam qmailadmin postfix + rm -rf stunnel squid sarg pptp-client pptp-server jabber openslp sentry cluster-* vgetty burner heartbeat + + # Adjust configs + [ -f init/config-debian-linux ] && mv init/config-debian-linux init/config-generic-linux + sed -i "s/shutdown_command=.*/shutdown_command=poweroff/" init/config-generic-linux + echo "exclude=bootmisc.sh,single,halt,reboot,hostname.sh,modutils.sh,mountall.sh,mountnfs.sh,networking,populate-volatile.sh,rmnologin.sh,save-rtc.sh,umountfs,umountnfs.sh,hwclock.sh,checkroot.sh,banner.sh,udev,udev-cache,devpts.sh,psplash.sh,sendsigs,fbsetup,bootlogd,stop-bootlogd,sysfs.sh,syslog,syslog.busybox,urandom,webmin,functions.initscripts,read-only-rootfs-hook.sh" >> init/config-generic-linux + echo "excludefs=devpts,devtmpfs,usbdevfs,proc,tmpfs,sysfs,debugfs" >> mount/config-generic-linux + + [ -f exports/config-debian-linux ] && mv exports/config-debian-linux exports/config-generic-linux + sed -i "s/killall -HUP rpc.nfsd && //" exports/config-generic-linux + sed -i "s/netstd_nfs/nfsserver/g" exports/config-generic-linux + + # Fix insane naming that causes problems at packaging time (must be done before deleting below) + find . -name "*\**" | while read from + do + to=`echo "$from" | sed "s/*/ALL/"` + mv "$from" "$to" + done + + # Remove some other files we don't need + find . -name "config-*" -a \! -name "config-generic-linux" -a \! -name "config-ALL-linux" -a \! -name "*.pl" -delete + find . -regextype posix-extended -regex ".*/(openserver|aix|osf1|osf|openbsd|netbsd|freebsd|unixware|solaris|macos|irix|hpux|cygwin|windows)-lib\.pl" -delete + rm -f webmin-gentoo-init webmin-caldera-init webmin-debian-pam webmin-pam + + # Don't need these at runtime (and we have our own setup script) + rm -f setup.sh + rm -f setup.pl + + # Use pidof for finding PIDs + sed -i "s/find_pid_command=.*/find_pid_command=pidof NAME/" config-generic-linux +} + +WEBMIN_LOGIN ?= "admin" +WEBMIN_PASSWORD ?= "password" + +do_install() { + install -d ${D}${sysconfdir} + install -d ${D}${sysconfdir}/webmin + install -d ${D}${sysconfdir}/init.d + install -m 0755 webmin-init ${D}${sysconfdir}/init.d/webmin + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/webmin.service ${D}${systemd_unitdir}/system + sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + ${D}${systemd_unitdir}/system/webmin.service + + install -d ${D}${localstatedir} + install -d ${D}${localstatedir}/webmin + + install -d ${D}${libexecdir}/webmin + cd ${S} || exit 1 + tar --no-same-owner --exclude='./patches' --exclude='./.pc' -cpf - . \ + | tar --no-same-owner -xpf - -C ${D}${libexecdir}/webmin + + rm -f ${D}${libexecdir}/webmin/webmin-init + rm -f ${D}${libexecdir}/webmin/ajaxterm/ajaxterm/configure.initd.gentoo + rm -rf ${D}${libexecdir}/webmin/patches + + # Run setup script + export perl=perl + export perl_runtime=${bindir}/perl + export prefix=${D} + export tempdir=${S}/install_tmp + export wadir=${libexecdir}/webmin + export config_dir=${sysconfdir}/webmin + export var_dir=${localstatedir}/webmin + export os_type=generic-linux + export os_version=0 + export real_os_type="${DISTRO_NAME}" + export real_os_version="${DISTRO_VERSION}" + export port=10000 + export login=${WEBMIN_LOGIN} + export password=${WEBMIN_PASSWORD} + export ssl=0 + export atboot=1 + export no_pam=1 + mkdir -p $tempdir + ${S}/../setup.sh + + # Ensure correct PERLLIB path + sed -i -e 's#${D}##g' ${D}${sysconfdir}/webmin/start +} + +INITSCRIPT_NAME = "webmin" +INITSCRIPT_PARAMS = "start 99 5 3 2 . stop 10 0 1 6 ." + +SYSTEMD_SERVICE_${PN} = "webmin.service" +SYSTEMD_AUTO_ENABLE_${PN} = "disable" + +# FIXME: some of this should be figured out automatically +RDEPENDS_${PN} += "perl perl-module-socket perl-module-exporter perl-module-exporter-heavy perl-module-carp perl-module-strict" +RDEPENDS_${PN} += "perl-module-warnings perl-module-xsloader perl-module-posix perl-module-autoloader" +RDEPENDS_${PN} += "perl-module-fcntl perl-module-tie-hash perl-module-vars perl-module-time-local perl-module-config perl-module-constant" +RDEPENDS_${PN} += "perl-module-file-glob perl-module-file-copy perl-module-sdbm-file perl-module-feature" + +PACKAGES_DYNAMIC += "webmin-module-* webmin-theme-*" +RRECOMMENDS_${PN} += "webmin-module-system-status" + +PACKAGES += "${PN}-module-proc ${PN}-module-raid ${PN}-module-exports ${PN}-module-fdisk ${PN}-module-lvm" +RDEPENDS_${PN}-module-proc = "procps" +RDEPENDS_${PN}-module-raid = "mdadm" +RDEPENDS_${PN}-module-exports = "perl-module-file-basename perl-module-file-path perl-module-cwd perl-module-file-spec perl-module-file-spec-unix" +RRECOMMENDS_${PN}-module-fdisk = "parted" +RRECOMMENDS_${PN}-module-lvm = "lvm2" + +python populate_packages_prepend() { + import os, os.path + + wadir = bb.data.expand('${libexecdir}/webmin', d) + wadir_image = bb.data.expand('${D}', d) + wadir + modules = [] + themes = [] + for mod in os.listdir(wadir_image): + modinfo = os.path.join(wadir_image, mod, "module.info") + themeinfo = os.path.join(wadir_image, mod, "theme.info") + if os.path.exists(modinfo): + modules.append(mod) + elif os.path.exists(themeinfo): + themes.append(mod) + + do_split_packages(d, wadir, '^(%s)$' % "|".join(modules), 'webmin-module-%s', 'Webmin module for %s', allow_dirs=True, prepend=True) + do_split_packages(d, wadir, '^(%s)$' % "|".join(themes), 'webmin-theme-%s', 'Webmin theme for %s', allow_dirs=True, prepend=True) +} + +# Time-savers +package_do_pkgconfig() { + : +} diff --git a/meta-xfce/README b/meta-xfce/README index e3468889597..33ef5096e81 100644 --- a/meta-xfce/README +++ b/meta-xfce/README @@ -7,7 +7,7 @@ revision: HEAD URI: git://github.com/openembedded/meta-oe.git branch: master revision: HEAD -meta-xfce depends on meta-oe and meta-multimedia in this repository. +meta-xfce depends on meta-oe, meta-gnome and meta-multimedia in this repository. To avoid dependencies on meta-multimedia you need to mask recipes by adding this to local.conf: diff --git a/meta-xfce/classes/thunar-plugin.bbclass b/meta-xfce/classes/thunar-plugin.bbclass index 4ec073a67ab..95f7d008861 100644 --- a/meta-xfce/classes/thunar-plugin.bbclass +++ b/meta-xfce/classes/thunar-plugin.bbclass @@ -1,4 +1,6 @@ -inherit xfce +inherit xfce distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" DEPENDS += "thunar" diff --git a/meta-xfce/classes/xfce-app.bbclass b/meta-xfce/classes/xfce-app.bbclass index 8780ebfd9d4..1c31c2faa6f 100644 --- a/meta-xfce/classes/xfce-app.bbclass +++ b/meta-xfce/classes/xfce-app.bbclass @@ -1,4 +1,6 @@ -inherit xfce +inherit xfce distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" SRC_URI = "http://archive.xfce.org/src/apps/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2" diff --git a/meta-xfce/classes/xfce-panel-plugin.bbclass b/meta-xfce/classes/xfce-panel-plugin.bbclass index b2f06781d28..6515dc0d493 100644 --- a/meta-xfce/classes/xfce-panel-plugin.bbclass +++ b/meta-xfce/classes/xfce-panel-plugin.bbclass @@ -1,4 +1,6 @@ -inherit xfce +inherit xfce distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" DEPENDS += "libxfce4ui libxfce4util xfce4-panel" diff --git a/meta-xfce/classes/xfce.bbclass b/meta-xfce/classes/xfce.bbclass index f4ef55643b1..b49bba19b79 100644 --- a/meta-xfce/classes/xfce.bbclass +++ b/meta-xfce/classes/xfce.bbclass @@ -8,6 +8,8 @@ SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@xfce_verdir("${PV}")}/${BP inherit autotools gettext gtk-icon-cache pkgconfig +DEPENDS += "intltool-native" + FILES_${PN} += "${datadir}/icons/* ${datadir}/applications/* ${libdir}/xfce4/modules/*.so*" FILES_${PN}-doc += "${datadir}/xfce4/doc" diff --git a/meta-xfce/conf/layer.conf b/meta-xfce/conf/layer.conf index d669e4e9578..ad25dcb134a 100644 --- a/meta-xfce/conf/layer.conf +++ b/meta-xfce/conf/layer.conf @@ -7,3 +7,17 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "xfce-layer" BBFILE_PATTERN_xfce-layer := "^${LAYERDIR}/" BBFILE_PRIORITY_xfce-layer = "7" + +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_xfce-layer = "1" + +LAYERDEPENDS_xfce-layer = "core" +LAYERDEPENDS_xfce-layer += "openembedded-layer" +LAYERDEPENDS_xfce-layer += "gnome-layer" +LAYERDEPENDS_xfce-layer += "multimedia-layer" +LAYERDEPENDS_xfce-layer += "meta-python" + +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ + xfce4-session->machine-host \ +" diff --git a/meta-xfce/recipes-apps/menulibre/files/0001-add_launcher-Exit-early-if-no-row-is-selected.patch b/meta-xfce/recipes-apps/menulibre/files/0001-add_launcher-Exit-early-if-no-row-is-selected.patch new file mode 100644 index 00000000000..fb2dfc90aff --- /dev/null +++ b/meta-xfce/recipes-apps/menulibre/files/0001-add_launcher-Exit-early-if-no-row-is-selected.patch @@ -0,0 +1,37 @@ +From 1060e7ac8a63b93d56006718f0e9b1d9382b2226 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 31 Oct 2016 08:33:16 +0100 +Subject: [PATCH] add_launcher: Exit early if no row is selected +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Stolen from [1] + +[1] http://pkgs.fedoraproject.org/cgit/rpms/menulibre.git/tree/menulibre-add-launcher-none-check.patch + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + menulibre/MenulibreApplication.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/menulibre/MenulibreApplication.py b/menulibre/MenulibreApplication.py +index e234800..ac73b03 100644 +--- a/menulibre/MenulibreApplication.py ++++ b/menulibre/MenulibreApplication.py +@@ -1418,6 +1418,10 @@ class MenulibreWindow(Gtk.ApplicationWindow): + model, parent_data = self.treeview.get_parent_row_data() + model, row_data = self.treeview.get_selected_row_data() + ++ # Exit early if no row is selected ++ if not row_data: ++ return ++ + # Currently selected item is a directory, take its categories. + if row_data[2] == MenuItemTypes.DIRECTORY: + self.treeview.add_child(new_row_data) +-- +2.5.5 + diff --git a/meta-xfce/recipes-apps/menulibre/files/0002-setup.py-avoid-usr-share-share-paths.patch b/meta-xfce/recipes-apps/menulibre/files/0002-setup.py-avoid-usr-share-share-paths.patch new file mode 100644 index 00000000000..b63d4dc3bb9 --- /dev/null +++ b/meta-xfce/recipes-apps/menulibre/files/0002-setup.py-avoid-usr-share-share-paths.patch @@ -0,0 +1,40 @@ +From 99788b4557543c490493ce1b827538c49142c25d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 31 Oct 2016 09:08:51 +0100 +Subject: [PATCH] setup.py: avoid /usr/share/share paths +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 5fc237d..c4fbf7c 100644 +--- a/setup.py ++++ b/setup.py +@@ -143,7 +143,7 @@ class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto): + + if self.root: + target_data = os.path.relpath(self.install_data, self.root) + os.sep +- target_pkgdata = os.path.join(target_data, 'share', 'menulibre', '') ++ target_pkgdata = os.path.join(target_data, 'menulibre', '') + target_scripts = os.path.join(self.install_scripts, '') + + data_dir = os.path.join(self.prefix, 'share', 'menulibre', '') +@@ -152,7 +152,7 @@ class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto): + # --user install + self.root = '' + target_data = os.path.relpath(self.install_data) + os.sep +- target_pkgdata = os.path.join(target_data, 'share', 'menulibre', '') ++ target_pkgdata = os.path.join(target_data, 'menulibre', '') + target_scripts = os.path.join(self.install_scripts, '') + + # Use absolute paths +-- +2.5.5 + diff --git a/meta-xfce/recipes-apps/menulibre/files/0003-MenulibreXdg.py-fix-loading-of-desktop-files.patch b/meta-xfce/recipes-apps/menulibre/files/0003-MenulibreXdg.py-fix-loading-of-desktop-files.patch new file mode 100644 index 00000000000..1e92088e188 --- /dev/null +++ b/meta-xfce/recipes-apps/menulibre/files/0003-MenulibreXdg.py-fix-loading-of-desktop-files.patch @@ -0,0 +1,36 @@ +From 90098d835b62b38ac396d55b80a684770dbaacde Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 31 Oct 2016 15:50:52 +0100 +Subject: [PATCH] MenulibreXdg.py: fix loading of desktop files +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +fixes: +| UnicodeDecodeError: 'ascii' codec can't decode byet 0xd9 in position 235: ordinal not in range(128) + +and information display not properly filled. + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + menulibre/MenulibreXdg.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/menulibre/MenulibreXdg.py b/menulibre/MenulibreXdg.py +index e04c5e6..14b2593 100644 +--- a/menulibre/MenulibreXdg.py ++++ b/menulibre/MenulibreXdg.py +@@ -74,7 +74,7 @@ class MenulibreDesktopEntry: + + def load_properties(self, filename): + """Load the properties.""" +- input_file = open(filename) ++ input_file = open(filename, 'rt', encoding='utf-8') + self.load_properties_from_text(input_file.read()) + input_file.close() + +-- +2.5.5 + diff --git a/meta-xfce/recipes-apps/menulibre/menulibre_2.1.3.bb b/meta-xfce/recipes-apps/menulibre/menulibre_2.1.3.bb new file mode 100644 index 00000000000..69e52fe4a04 --- /dev/null +++ b/meta-xfce/recipes-apps/menulibre/menulibre_2.1.3.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "An advanced menu editor" +HOMEPAGE = "https://launchpad.net/menulibre" +SECTION = "x11/graphics" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "python3-distutils-extra-native intltool-native" + +inherit distutils3 gtk-icon-cache + +SRC_URI = " \ + https://launchpad.net/menulibre/2.1/${PV}/+download/${PN}-${PV}.tar.gz \ + file://0001-add_launcher-Exit-early-if-no-row-is-selected.patch \ + file://0002-setup.py-avoid-usr-share-share-paths.patch \ + file://0003-MenulibreXdg.py-fix-loading-of-desktop-files.patch \ +" +SRC_URI[md5sum] = "19d9d3337322eb5513454bb8cdfb739b" +SRC_URI[sha256sum] = "bdd69740119902f1b1f8c7831155f4428403792a0a6c4287bcbb395c4e71fb31" + +do_install_append() { + sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop +} + +FILES_${PN} += " \ + ${datadir}/applications \ + ${datadir}/menulibre \ + ${datadir}/icons \ +" + +RDEPENDS_${PN} += " \ + gtk+3 \ + python3-pygobject \ + gnome-menus3 \ + python3-unixadmin \ + python3-psutil \ +" diff --git a/meta-xfce/recipes-apps/mousepad/mousepad_0.4.0.bb b/meta-xfce/recipes-apps/mousepad/mousepad_0.4.0.bb index 4c8c1f5e3e4..4ca21a6bce2 100644 --- a/meta-xfce/recipes-apps/mousepad/mousepad_0.4.0.bb +++ b/meta-xfce/recipes-apps/mousepad/mousepad_0.4.0.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" # which fixes mousepad/Makefile.am:72: error: HAVE_DBUS does not appear in AM_CONDITIONAL DEPENDS = "gtk+ dbus dbus-glib gtksourceview2 intltool-native xfce4-dev-tools-native" -inherit xfce-app +inherit xfce-app gsettings SRC_URI[md5sum] = "f55314c5dda6323883241e6cf01550a7" SRC_URI[sha256sum] = "60114431eac8db6bb6ce18bd38f1630cccb684375b97a445a1b6fd619848d132" diff --git a/meta-xfce/recipes-apps/orage/orage_4.10.0.bb b/meta-xfce/recipes-apps/orage/orage_4.10.0.bb deleted file mode 100644 index 8164c3c147b..00000000000 --- a/meta-xfce/recipes-apps/orage/orage_4.10.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Xfce Calender" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" -DEPENDS = "gtk+ xfce4-panel libical popt" - -inherit xfce-app - -SRC_URI[md5sum] = "b33fa272d92f539a224a7a40b1926dfc" -SRC_URI[sha256sum] = "6cb854f3437e31bab23abfce97bd10afa1636a9a1480d80e14e26c85d06be7c0" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify" - -PACKAGES =+ "xfce4-orageclock-plugin" -FILES_${PN} += "${datadir}/dbus-1" -FILES_${PN}-dbg += "${libdir}/orage/xfce4/panel-plugins/.debug" -FILES_xfce4-orageclock-plugin = "${libdir}/orage/xfce4/panel-plugins/xfce4-orageclock-plugin ${datadir}/xfce4/panel-plugins" - diff --git a/meta-xfce/recipes-apps/orage/orage_4.12.1.bb b/meta-xfce/recipes-apps/orage/orage_4.12.1.bb new file mode 100644 index 00000000000..a2f25682bc4 --- /dev/null +++ b/meta-xfce/recipes-apps/orage/orage_4.12.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "Xfce Calender" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" +DEPENDS = "gtk+ xfce4-panel libical popt" + +inherit xfce-app + +SRC_URI[md5sum] = "2b7f5d38cb5c6edbcc65d0f52a742e46" +SRC_URI[sha256sum] = "3cf9aa441ae83c8688865f82217025cdf3ebaa152cce4571777b8c2aa8dd9062" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify" + +PACKAGES =+ "xfce4-orageclock-plugin" +FILES_${PN} += "${datadir}/dbus-1" +FILES_${PN}-dbg += "${libdir}/xfce4/panel/plugins/.debug" +FILES_xfce4-orageclock-plugin = "${libdir}/xfce4/panel/plugins/*.so ${datadir}/xfce4/panel/plugins" + diff --git a/meta-xfce/recipes-apps/ristretto/ristretto_0.8.0.bb b/meta-xfce/recipes-apps/ristretto/ristretto_0.8.0.bb deleted file mode 100644 index 66399cfb179..00000000000 --- a/meta-xfce/recipes-apps/ristretto/ristretto_0.8.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Tiny image-viewer" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/ristretto" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b" -DEPENDS = "exo libexif gtk+ dbus-glib libxfce4ui libxfce4util xfconf cairo" - -inherit xfce-app - -RRECOMMENDS_${PN} += "tumbler" - -SRC_URI[md5sum] = "94c778850325a4e5a12e3433c8a05432" -SRC_URI[sha256sum] = "71625324cecda7199acbc95a3ea5132d0dcbf808771e7a209ea2b9503ae4f328" - -FILES_${PN} += "${datadir}/appdata" diff --git a/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb b/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb new file mode 100644 index 00000000000..c4baa727e54 --- /dev/null +++ b/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "Tiny image-viewer" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/ristretto" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b" +DEPENDS = "exo libexif gtk+ dbus-glib libxfce4ui libxfce4util xfconf cairo file" + +inherit xfce-app + +RRECOMMENDS_${PN} += "tumbler" + +SRC_URI[md5sum] = "a8d8bb6b8fa7f868cfa3ae778630946e" +SRC_URI[sha256sum] = "f8f3b77ca6fc77ddf8cff1bb52e5c5802c462663f72f324393b3a0360f6901b8" + +FILES_${PN} += "${datadir}/appdata" diff --git a/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb b/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb index ca299223db0..e275af0314a 100644 --- a/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb +++ b/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "gtk+ glib-2.0 xfce4-dev-tools-native intltool-native" SRC_URI = "git://github.com/schnitzeltony/xarchiver.git;branch=master" -SRCREV = "e80e90528c9aab2fe36d9078b945b44c05cc20d3" +SRCREV = "5a26dd8ceab0af71b30c83286d7c7398a858c814" PV = "0.5.3" S = "${WORKDIR}/git" diff --git a/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb b/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb new file mode 100644 index 00000000000..1fb4a5be25a --- /dev/null +++ b/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "A simple PolicyKit authentication agent for XFCE" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=758b03f872a88c99fc36d50c5932091c" + +DEPENDS = "libxfce4ui polkit" + +inherit xfce-app + +SRC_URI = "git://github.com/ncopa/${BPN}.git" +SRCREV = "6ad1ee833c9e22e4dd72a8f7d54562d046965283" +S = "${WORKDIR}/git" diff --git a/meta-xfce/recipes-apps/xfce4-notifyd/files/0001-Add-a-configure-option-to-start-daemon-by-autostart-.patch b/meta-xfce/recipes-apps/xfce4-notifyd/files/0001-Add-a-configure-option-to-start-daemon-by-autostart-.patch new file mode 100644 index 00000000000..7be66f55b4a --- /dev/null +++ b/meta-xfce/recipes-apps/xfce4-notifyd/files/0001-Add-a-configure-option-to-start-daemon-by-autostart-.patch @@ -0,0 +1,105 @@ +From 751ca1687edae351db7477b00b67a72b7fc55dee Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 10 Nov 2017 10:29:28 +0100 +Subject: [PATCH] Add a configure option to start daemon by autostart instead + of dbus +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On sytems with multiple desktops installed, dbus service +'org.freedesktop.Notifications' may be defined by multiple instances. In my +case it is KDE-Plasma causing unpredictable results: On some environments +xfce4-notifyd is started on others not. + +To help distros/packagers a new configure option '--enable-dbus-start-daemon' +is introduced. It is desabled by default so no unexpected impact is to expect. + +It should be noted that the simplicity of this change is possible since recent +change: Daemon does not kill itself after being idle for certain time - see +commit d87a4a93b2ec4ab094f5a35ae818395f750f2891. + +Upstream-Status: Submitted [1] + +[1] https://bugzilla.xfce.org/show_bug.cgi?id=13989 + +Signed-off-by: Andreas Müller +--- + Makefile.am | 13 +++++++++++++ + configure.ac | 8 ++++++++ + xfce4-notifyd/xfce4-notifyd.desktop.in | 6 ++++++ + 3 files changed, 27 insertions(+) + create mode 100644 xfce4-notifyd/xfce4-notifyd.desktop.in + +diff --git a/Makefile.am b/Makefile.am +index c81bdaa..3bd2d46 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -83,6 +83,7 @@ xfce4_notifyd_config_xfce4_notifyd_config_LDADD = \ + $(common_ldadd) \ + $(LIBNOTIFY_LIBS) + ++if USE_DBUS_START_DAEMON + servicedir = $(datadir)/dbus-1/services + service_in_files = xfce4-notifyd/org.xfce.xfce4-notifyd.Notifications.service.in + service_DATA = $(service_in_files:.service.in=.service) +@@ -97,6 +98,15 @@ dist_service = \ + xfce4-notifyd/notify-dbus.xml \ + xfce4-notifyd/xfce-notify-marshal.list + distclean_service = $(service_DATA) $(systemd_user_DATA) ++else ++autostartdir = $(sysconfdir)/xdg/autostart ++autostart_in_files = xfce4-notifyd/xfce4-notifyd.desktop.in ++autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) ++ ++dist_autostart = \ ++ $(autostart_in_files) ++distclean_autostart = $(autostart_DATA) ++endif + + dist_man1_MANS = \ + xfce4-notifyd-config/xfce4-notifyd-config.1 +@@ -273,6 +283,9 @@ install-data-hook: + xfce4-notifyd/%.service: $(srcdir)/xfce4-notifyd/%.service.in Makefile + sed -e "s,\@notifydir\@,$(xfce4_notifyddir),g" < $< > $@ + ++xfce4-notifyd/%.desktop: $(srcdir)/xfce4-notifyd/%.desktop.in Makefile ++ sed -e "s,\@notifydir\@,$(xfce4_notifyddir),g" < $< > $@ ++ + distclean-local: + -rm -rf *.cache *~ + +diff --git a/configure.ac b/configure.ac +index 46a132c..a37da8c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -124,6 +124,14 @@ AS_IF([test "x$use_old_gsi_sig" = "xyes"], + AM_CONDITIONAL([USE_OLD_GET_SERVER_INFORMATION_SIGNATURE], + [test "x$use_old_gsi_sig" = "xyes"]) + ++dnl dbus start daemon ++AC_ARG_ENABLE([dbus-start-daemon], ++ [AS_HELP_STRING([--enable-dbus-start-daemon], ++ [Start daemon by dbus - if not set by autostart. (default=yes)])], ++ [use_dbus_start_daemon=$enableval], [use_dbus_start_daemon=yes]) ++AM_CONDITIONAL([USE_DBUS_START_DAEMON], ++ [test "x$use_dbus_start_daemon" = "xyes"]) ++ + dnl create #define for spec version + AC_DEFINE_UNQUOTED([NOTIFICATIONS_SPEC_VERSION], ["notifications_spec_version"], + [Set to the version of the freedesktop.org notifications spec we support]) +diff --git a/xfce4-notifyd/xfce4-notifyd.desktop.in b/xfce4-notifyd/xfce4-notifyd.desktop.in +new file mode 100644 +index 0000000..d1f76f9 +--- /dev/null ++++ b/xfce4-notifyd/xfce4-notifyd.desktop.in +@@ -0,0 +1,6 @@ ++[Desktop Entry] ++Type=Application ++Name=Xfce Notification Daemon ++Exec=@notifydir@/xfce4-notifyd ++Icon=xfce4-notifyd ++OnlyShowIn=XFCE; +-- +2.9.5 + diff --git a/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.2.2.bb b/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.2.2.bb deleted file mode 100644 index eb554ce0a92..00000000000 --- a/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.2.2.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Easily themable notification daemon with transparency effects" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-notifyd" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "libxfce4util libxfce4ui xfconf gtk+ dbus dbus-glib" - - -inherit xfce-app - -do_compile_prepend() { - mkdir -p xfce4-notifyd -} - -FILES_${PN} += " \ - ${libdir}/xfce4/notifyd \ - ${datadir}/themes \ - ${datadir}/dbus-1 \ -" - -SRC_URI[md5sum] = "8687fb7a0f270231ada265e363b6ffcc" -SRC_URI[sha256sum] = "b66e68dfc2164bcf479acd3c7e8b6f83065d23aef988535e2db3506d06a39168" diff --git a/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.0.bb b/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.0.bb new file mode 100644 index 00000000000..a39396fa985 --- /dev/null +++ b/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.0.bb @@ -0,0 +1,36 @@ +SUMMARY = "Easily themable notification daemon with transparency effects" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-notifyd" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = " \ + dbus \ + dbus-glib \ + dbus-glib-native \ + libnotify \ + libxfce4util \ + libxfce4ui \ + xfconf \ + xfce4-panel \ +" + +inherit xfce-app + +SRC_URI += "file://0001-Add-a-configure-option-to-start-daemon-by-autostart-.patch" +SRC_URI[md5sum] = "c2de09c30b06eaf2d3faaf3e509d656a" +SRC_URI[sha256sum] = "2771871f67effc0bb80f656cf4aa3cd71fe0ea0f4c04b5d8e97bb1752faf36c9" + +# Avoid trouble with other desktops e.g KDE which also ships dbus service named +# org.freedesktop.Notifications +EXTRA_OECONF = "--disable-dbus-start-daemon" + +do_compile_prepend() { + mkdir -p xfce4-notifyd +} + +FILES_${PN} += " \ + ${systemd_user_unitdir} \ + ${datadir}/xfce4 \ + ${datadir}/themes \ + ${datadir}/dbus-1 \ + ${libdir}/xfce4 \ +" diff --git a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.8.2.bb b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.8.2.bb deleted file mode 100644 index ae19492f3ca..00000000000 --- a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.8.2.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Application to take screenshots" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" -DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11" - -inherit xfce-app - -SRC_URI[md5sum] = "3a32ecc5566453a58f6a4ddd70649444" -SRC_URI[sha256sum] = "9dce2ddfaa87f703e870e29bae13f3fc82a1b3f06b44f8386640e45a135f5f69" - -do_compile_prepend() { - mkdir -p lib -} - -FILES_${PN} += " \ - ${datadir}/appdata \ - ${datadir}/xfce4/panel/plugins \ - ${libdir}/xfce4/panel/plugins \ -" diff --git a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb new file mode 100644 index 00000000000..06dea64b385 --- /dev/null +++ b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.1.bb @@ -0,0 +1,21 @@ +SUMMARY = "Application to take screenshots" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" +DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11" + +inherit xfce-app + +SRC_URI[md5sum] = "75e1501418f904769e4fd25eff6a3946" +SRC_URI[sha256sum] = "e62b31d9cf06a7414a26400c2ebe7a2ae7c2b22aa60f997f25145ea9ebe6e0db" + +do_compile_prepend() { + mkdir -p lib +} + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${datadir}/xfce4/panel/plugins \ + ${libdir}/xfce4/panel/plugins \ +" diff --git a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.1.0.bb b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.1.0.bb deleted file mode 100644 index e24606c4d63..00000000000 --- a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.1.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Easy to use task manager" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit xfce-app - -DEPENDS = "gtk+ cairo libwnck xfce4-dev-tools-native exo-native" - -SRC_URI[md5sum] = "7da465a4798629ebd8650fef62770ab7" -SRC_URI[sha256sum] = "2e1eb161f966cbfbd68bd029fb59115bc5ab0c0704cb500d20e7d73967e59ecb" diff --git a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.0.bb b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.0.bb new file mode 100644 index 00000000000..f9555852d2e --- /dev/null +++ b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.0.bb @@ -0,0 +1,10 @@ +SUMMARY = "Easy to use task manager" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit xfce-app + +DEPENDS += "gtk+ cairo libwnck libxmu xfce4-dev-tools-native exo-native" + +SRC_URI[md5sum] = "6f30ce3c688454812008281065a6e05c" +SRC_URI[sha256sum] = "5746d473ad428b13db7c05cfcbc8099fbea13da6be26d3a9359bcb4de971ba69" diff --git a/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.6.3.bb b/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.6.3.bb deleted file mode 100644 index 1049b27a8d7..00000000000 --- a/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.6.3.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Terminal emulator for the Xfce desktop environment" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "glib-2.0 gtk+ vte libxfce4ui" - -inherit xfce-app - -FILES_${PN} += "${datadir}/xfce4 \ - ${datadir}/gnome-control-center" - -SRC_URI[md5sum] = "6a2816d8b0933cd707ed456ceb731399" -SRC_URI[sha256sum] = "912f4716c2395a14a80620ef982b4af1e2a67a8df9a1ef0b802ecae826057e08" diff --git a/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.6.bb b/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.6.bb new file mode 100644 index 00000000000..f42edb6725e --- /dev/null +++ b/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.6.bb @@ -0,0 +1,12 @@ +SUMMARY = "Terminal emulator for the Xfce desktop environment" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "glib-2.0 gtk+3 vte libxfce4ui" + +inherit xfce-app + +FILES_${PN} += "${datadir}/xfce4 \ + ${datadir}/gnome-control-center" + +SRC_URI[md5sum] = "92f5a3366e30f5f8238d8250f730b6af" +SRC_URI[sha256sum] = "bc2a560409a0f0b666d1c557e991748b986ec27572a45ae88b0ee5a480d881d7" diff --git a/meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb b/meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb index 9547736bddb..df0ed50c7ba 100644 --- a/meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb +++ b/meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb @@ -3,9 +3,8 @@ HOMEPAGE = "http://xfce-look.org/content/show.php/OpenZone?content=111343" SECTION = "x11/wm" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=a2f562fb8fb1e138b810d69521c4bcd7" -DEPENDS = "icon-slicer-native xcursorgen-native" -inherit allarch +inherit allarch gtk-icon-cache SRC_URI = "http://xfce-look.org/CONTENT/content-files/111343-OpenZone-${PV}.tar.xz" SRC_URI[md5sum] = "4dae968cbd525072664ef7a4fc7c4154" @@ -13,6 +12,9 @@ SRC_URI[sha256sum] = "dc20f97a49e1ff1becf7853ef5f137ed30a4c27490540e755021d78d33 S = "${WORKDIR}/OpenZone" +do_compile() { +} + do_install() { install -d ${D}${datadir}/icons for theme in `find -name '*.tar.xz'`; do diff --git a/meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb b/meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb new file mode 100644 index 00000000000..40ba340f22d --- /dev/null +++ b/meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "Rodent-icon-theme (was xfce4-icon-theme) is a svg icon theme" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" + +inherit allarch autotools gtk-icon-cache + +SRC_URI = "http://sourceforge.net/projects/xffm/files/${BPN}/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "4b097d344a160d6497c6498985c8df15" +SRC_URI[sha256sum] = "6ed00d16faa1f55b3bb7b13862de1d7f5cfd978b93e42487ded21595d0dbe208" + +FILES_${PN} += "${datadir}/icons" + +RREPLACES_${PN} += "xfce4-icon-theme" +RPROVIDES_${PN} += "xfce4-icon-theme" +RCONFLICTS_${PN} += "xfce4-icon-theme" + diff --git a/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb b/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb new file mode 100644 index 00000000000..b05c7485295 --- /dev/null +++ b/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb @@ -0,0 +1,19 @@ +SUMMARY = "Modified version of the xfce-dusk theme to support also gtk 3.x too" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8f0e2cd40e05189ec81232da84bd6e1a" + +inherit allarch + +SRC_URI = "http://xfce-look.org/CONTENT/content-files/141404-xfce_dusk_gtk3-1_3.tar.gz;subdir=${BPN}-${PV}" +SRC_URI[md5sum] = "b3ad37ad8173b14ec090e60a80e65d8f" +SRC_URI[sha256sum] = "bfa8a88607d1a1da5bd0b9e4e075767c54400a3c5a0fae88b619ed71532f30b4" + +do_configure() { +} + +do_install() { + install -d ${D}${datadir}/themes + cp -r Xfce-dusk-gtk3 ${D}${datadir}/themes/Xfce-dusk-gtk3 +} + +FILES_${PN} = "${datadir}/themes" diff --git a/meta-xfce/recipes-art/xfce4-icon-theme/xfce4-icon-theme_4.4.3.bb b/meta-xfce/recipes-art/xfce4-icon-theme/xfce4-icon-theme_4.4.3.bb deleted file mode 100644 index 1e4b06bfe49..00000000000 --- a/meta-xfce/recipes-art/xfce4-icon-theme/xfce4-icon-theme_4.4.3.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "xfce4 icon theme rodent" -SECTION = "x11/wm" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS = "intltool-native xfce4-dev-tools-native" - -inherit xfce - -SRC_URI = "http://archive.xfce.org/src/art/${BPN}/${@'${PV}'[0:3]}/${BP}.tar.bz2" -SRC_URI[md5sum] = "73ce2977b84f634a6a6c5d9c27e336db" -SRC_URI[sha256sum] = "d4786692d56b8a563f66a5f260f1f13ade11e86c78cbcb25a9f9a5fc47cf66fa" - -FILES_${PN} += "${datadir}/xfce4/mime" diff --git a/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb b/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb index 7bcffe541c0..d0a0598cd97 100644 --- a/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb +++ b/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb @@ -5,12 +5,12 @@ DEPENDS = "libxfce4util garcon xfconf libxfce4ui xfce4-panel exo vala xfce4-dev- inherit xfce -PNBLACKLIST[xfce4-vala] ?= "Fails to build since vala upgrade to 0.26.1" - SRC_URI = "http://archive.xfce.org/src/bindings/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2" SRC_URI[md5sum] = "0bbb1d6e473e0fe9b335b7b1b49d8a71" SRC_URI[sha256sum] = "07a8f2b7c09fcdd3d86e0c52adea3c58ca011d0142a93997a01b4af77260ae7b" +EXTRA_OECONF = "-with-vala-api=0.36" + FILES_${PN} += "${datadir}/vala-*/vapi" RDEPENDS_${PN} = "vala" diff --git a/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb b/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb new file mode 100644 index 00000000000..21930ba1476 --- /dev/null +++ b/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "A XFCE minimal demo image." + +IMAGE_INSTALL = "packagegroup-core-boot \ + packagegroup-core-x11 \ + packagegroup-xfce-base \ + kernel-modules \ +" + +inherit distro_features_check +REQUIRED_DISTRO_FEATURES = "x11" + +IMAGE_LINGUAS ?= " " + +LICENSE = "MIT" + +export IMAGE_BASENAME = "core-image-minimal-xfce" + +inherit core-image diff --git a/meta-xfce/recipes-extended/imsettings/imsettings/0001-Rename-use-of-stdout-and-stderr.patch b/meta-xfce/recipes-extended/imsettings/imsettings/0001-Rename-use-of-stdout-and-stderr.patch new file mode 100644 index 00000000000..d77ce4d25d7 --- /dev/null +++ b/meta-xfce/recipes-extended/imsettings/imsettings/0001-Rename-use-of-stdout-and-stderr.patch @@ -0,0 +1,72 @@ +From 7ee62ef0083844ab2fffcd106e3ee2e5f29b2a91 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 18:53:56 -0700 +Subject: [PATCH] Rename use of stdout and stderr + +Since it shadow the standard definitions especially +seen on musl where libc defines these as macros they +cause all short of compilation errors on musl, using +a leading underscore makes it unique + +Signed-off-by: Khem Raj +--- + imsettings-daemon/imsettings-proc.c | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/imsettings-daemon/imsettings-proc.c b/imsettings-daemon/imsettings-proc.c +index 915e78b..b78fcff 100644 +--- a/imsettings-daemon/imsettings-proc.c ++++ b/imsettings-daemon/imsettings-proc.c +@@ -39,8 +39,8 @@ + #define MAXRESTART 3 + + typedef struct _IMSettingsProcInfo { +- GIOChannel *stdout; +- GIOChannel *stderr; ++ GIOChannel *_stdout; ++ GIOChannel *_stderr; + GPid pid; + GTimeVal started_time; + guint id; +@@ -368,12 +368,12 @@ _start_process(IMSettingsProc *proc, + &ofd, &efd, + error)) { + pinfo->pid = pid; +- pinfo->stdout = g_io_channel_unix_new(ofd); +- pinfo->stderr = g_io_channel_unix_new(efd); +- g_io_channel_set_close_on_unref(pinfo->stdout, TRUE); +- g_io_channel_set_close_on_unref(pinfo->stderr, TRUE); +- pinfo->oid = g_io_add_watch(pinfo->stdout, G_IO_IN, _log_write_cb, proc); +- pinfo->eid = g_io_add_watch(pinfo->stderr, G_IO_IN, _log_write_cb, proc); ++ pinfo->_stdout = g_io_channel_unix_new(ofd); ++ pinfo->_stderr = g_io_channel_unix_new(efd); ++ g_io_channel_set_close_on_unref(pinfo->_stdout, TRUE); ++ g_io_channel_set_close_on_unref(pinfo->_stderr, TRUE); ++ pinfo->oid = g_io_add_watch(pinfo->_stdout, G_IO_IN, _log_write_cb, proc); ++ pinfo->eid = g_io_add_watch(pinfo->_stderr, G_IO_IN, _log_write_cb, proc); + g_get_current_time(&pinfo->started_time); + pinfo->id = g_child_watch_add(pid, _watch_im_status_cb, proc); + +@@ -521,13 +521,13 @@ imsettings_proc_get_property(GObject *object, + static void + imsettings_proc_info_finalize(IMSettingsProcInfo *pinfo) + { +- if (pinfo->stdout) { +- g_io_channel_unref(pinfo->stdout); +- pinfo->stdout = NULL; ++ if (pinfo->_stdout) { ++ g_io_channel_unref(pinfo->_stdout); ++ pinfo->_stdout = NULL; + } +- if (pinfo->stderr) { +- g_io_channel_unref(pinfo->stderr); +- pinfo->stderr = NULL; ++ if (pinfo->_stderr) { ++ g_io_channel_unref(pinfo->_stderr); ++ pinfo->_stderr = NULL; + } + if (pinfo->oid > 0) { + g_source_remove(pinfo->oid); +-- +2.13.2 + diff --git a/meta-xfce/recipes-extended/imsettings/imsettings/gtk-is-required-by-notify.patch b/meta-xfce/recipes-extended/imsettings/imsettings/gtk-is-required-by-notify.patch new file mode 100644 index 00000000000..d42358d690a --- /dev/null +++ b/meta-xfce/recipes-extended/imsettings/imsettings/gtk-is-required-by-notify.patch @@ -0,0 +1,18 @@ +gtk+ is required by linnotify. So make sure gtk be linked before libnotify + +Signed-off-by: Bian Naimeng + +diff -Nurp imsettings-1.6.7.orig/configure.ac imsettings-1.6.7/configure.ac +--- imsettings-1.6.7.orig/configure.ac 2013-11-26 16:09:09.000000000 +0800 ++++ imsettings-1.6.7/configure.ac 2014-12-30 11:27:44.370003209 +0800 +@@ -93,8 +93,8 @@ PKG_CHECK_MODULES(LIBNOTIFY, libnotify, + has_old_libnotify=yes + PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $GTK_REQUIRED) + AC_DEFINE(HAS_OLD_LIBNOTIFY,, [Using older libnotify]) +- IMDAEMON_CFLAGS="$GTK_CFLAGS $LIBNOTIFY_OLD_CFLAGS" +- IMDAEMON_LIBS="$GTK_LIBS $LIBNOTIFY_OLD_LIBS"],[ ++ IMDAEMON_CFLAGS="$LIBNOTIFY_OLD_CFLAGS $GTK_CFLAGS" ++ IMDAEMON_LIBS="$LIBNOTIFY_OLD_LIBS $GTK_LIBS"],[ + has_old_libnotify=no + IMDAEMON_CFLAGS="$LIBNOTIFY_CFLAGS" + IMDAEMON_LIBS="$LIBNOTIFY_LIBS"]) diff --git a/meta-xfce/recipes-extended/imsettings/imsettings/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch b/meta-xfce/recipes-extended/imsettings/imsettings/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch new file mode 100644 index 00000000000..d5ac87dc063 --- /dev/null +++ b/meta-xfce/recipes-extended/imsettings/imsettings/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch @@ -0,0 +1,19 @@ +multi-line ACLOCAL_AMFLAGS isn't supported by autoreconf. +It will cause configure error as follow. + + aclocal: error: non-option arguments are not accepted: '\'. + +Signed-off-by: Bian Naimeng + +diff -Nurp imsettings-1.7.1.orig/Makefile.am imsettings-1.7.1/Makefile.am +--- imsettings-1.7.1.orig/Makefile.am 2013-02-08 11:33:59.000000000 +0900 ++++ imsettings-1.7.1/Makefile.am 2015-06-24 14:15:32.070000007 +0900 +@@ -1,7 +1,7 @@ + NULL = + SUBDIRS = data imsettings imsettings-daemon backends utils po tests docs + +-ACLOCAL_AMFLAGS = -Im4macros ++ACLOCAL_AMFLAGS = -I m4macros $(NULL) + + CONFIGURE_DEPENDENCIES = \ + requires \ diff --git a/meta-xfce/recipes-extended/imsettings/imsettings_1.7.2.bb b/meta-xfce/recipes-extended/imsettings/imsettings_1.7.2.bb new file mode 100644 index 00000000000..7a4ce05bff6 --- /dev/null +++ b/meta-xfce/recipes-extended/imsettings/imsettings_1.7.2.bb @@ -0,0 +1,32 @@ +SUMMARY = "Delivery framework for general Input Method configuration" +DESCRIPTION = "IMSettings is a framework that delivers Input Method \ +settings and applies the changes so they take effect \ +immediately without any need to restart applications \ +or the desktop. \ +This package contains the core DBus services and some utilities." +HOMEPAGE = "http://code.google.com/p/imsettings/" +SECTION = "Applications/System" + +inherit autotools gtk-doc gobject-introspection + +SRC_URI = "https://bitbucket.org/tagoh/imsettings/downloads/${BPN}-${PV}.tar.bz2 \ + file://gtk-is-required-by-notify.patch \ + file://multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch \ + file://0001-Rename-use-of-stdout-and-stderr.patch \ + " + +SRC_URI[md5sum] = "8153b0583a9f47d8a62af1f92fb9d3bf" +SRC_URI[sha256sum] = "41addf0458f760212b6b6100835066e16deb3a8a50eb005a0fc17fbac0a2ae66" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +EXTRA_OECONF = "--with-xinputsh=50-xinput.sh \ + --disable-static \ + " + +DEPENDS = "gtk+ gconf libnotify dbus-glib libgxim xfconf intltool-native" + +RDEPENDS_${PN} += "bash" + +FILES_${PN} += "${datadir}/dbus-1/* ${datadir}/gir-1.0/* ${libdir}/girepository-1.0/*" diff --git a/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb b/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb index 00b0b9135be..19a6e2b04cb 100644 --- a/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb +++ b/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb @@ -1,10 +1,15 @@ SUMMARY = "All packages multimedia packages available for XFCE" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" inherit packagegroup +# While this item does not require it, it depends on xfmpc and xfc4-mpc-plugin +# that wants mpd which does +LICENSE_FLAGS = "commercial" + RDEPENDS_${PN} = " \ + parole \ xfmpc \ xfce4-mpc-plugin \ " diff --git a/meta-xfce/recipes-multimedia/parole/parole_0.8.1.bb b/meta-xfce/recipes-multimedia/parole/parole_0.8.1.bb new file mode 100644 index 00000000000..824611abe45 --- /dev/null +++ b/meta-xfce/recipes-multimedia/parole/parole_0.8.1.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "Parole is a modern simple media player based on the GStreamer framework" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/parole" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce-app gtk-doc mime + +DEPENDS += " \ + glib-2.0 \ + dbus-glib \ + gtk+3 \ + \ + xfce4-dev-tools-native \ + libxfce4util \ + libxfce4ui \ + xfconf \ + \ + gstreamer1.0-plugins-base \ + taglib \ +" + +SRC_URI[md5sum] = "361e3059f1263c76a3711db2c7c1a97b" +SRC_URI[sha256sum] = "4b216f5200490f8d2a9bf1b3fcd9a8b20834c95249bf13b9170c82e1fcbd80f4" + +RDEPENDS_${PN} += "gstreamer1.0-plugins-good" + +EXTRA_OECONF = "--disable-gtk-doc" + +PACKAGECONFIG ??= "notify" +PACKAGECONFIG[clutter] = "--enable-clutter, --disable-clutter, clutter" +PACKAGECONFIG[notify] = "--enable-notify-plugin, --disable-notify-plugin, libnotify" + +FILES_${PN} += " \ + ${datadir}/appdata \ + ${libdir}/parole-0/*.so \ +" +FILES_${PN}-dbg += "${libdir}/parole-0/.debug" +FILES_${PN}-dev += "${libdir}/parole-0/*.la" diff --git a/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.4.5.bb b/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.4.5.bb deleted file mode 100644 index 964f5d3d20b..00000000000 --- a/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.4.5.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Simple client plugin for Music Player Daemon" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin" -SECTION = "x11/application" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=3604d987e6dfdfc672c754d08953b0e0" - -inherit xfce-panel-plugin - -DEPENDS += "libmpd" - -# for now we recommend our own mpd-server -RRECOMMENDS_${PN} = "mpd" - -SRC_URI[md5sum] = "718e64748e46908a44cd0b96eacbda28" -SRC_URI[sha256sum] = "e71f57a28915c57459d6ce0eeeee1d0934f523c0ed083158c3d3b3836fc06fcf" diff --git a/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.0.bb b/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.0.bb new file mode 100644 index 00000000000..9f501f796d3 --- /dev/null +++ b/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Simple client plugin for Music Player Daemon" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin" +SECTION = "x11/application" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=3604d987e6dfdfc672c754d08953b0e0" + +inherit xfce-panel-plugin + +DEPENDS += "libmpd" + +# While this item does not require it, it depends on mpd which does +LICENSE_FLAGS = "commercial" + +# for now we recommend our own mpd-server +RRECOMMENDS_${PN} = "mpd" + +SRC_URI[md5sum] = "13d5d95ef0c305bac45fde6231258e5d" +SRC_URI[sha256sum] = "f1320916ae3112e6825699652a502cebfa78bb006c649b42d3d331dfe57b6cb0" diff --git a/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.2.bb b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.2.bb deleted file mode 100644 index b1cabd682e3..00000000000 --- a/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.2.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Music Player Daemon (MPD) client written in GTK+" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfmpc" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "gtk+ libxfce4util libxfce4ui libmpd vala-native" - -# for now we recommend our own mpd-server -RRECOMMENDS_${PN} = "mpd" - -inherit xfce-app - -SRC_URI[md5sum] = "e4e198850c2467c47783969ac9c16ec0" -SRC_URI[sha256sum] = "ed0cc2940bd5928bb30fab1531c22185a97bd0cc5beacd9e3be4d4cd994a6862" diff --git a/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb new file mode 100644 index 00000000000..869435d68ac --- /dev/null +++ b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb @@ -0,0 +1,16 @@ +SUMMARY = "Music Player Daemon (MPD) client written in GTK+" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfmpc" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "gtk+ libxfce4util libxfce4ui libmpd vala-native" + +# While this item does not require it, it depends on mpd which does +LICENSE_FLAGS = "commercial" + +# for now we recommend our own mpd-server +RRECOMMENDS_${PN} = "mpd" + +inherit xfce-app + +SRC_URI[md5sum] = "e2d2faeb7a6f62813e287f3d12522b71" +SRC_URI[sha256sum] = "4189c0c82b66b758a6d5bc651493b675d3d46329e5f1a76ff26c448125f4fcb0" diff --git a/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.0.5.bb b/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.0.5.bb deleted file mode 100644 index 36cb444c44e..00000000000 --- a/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.0.5.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "ca2d394e411a20442a519efa0d14f8ec" -SRC_URI[sha256sum] = "f659b1af40ab72c93448affaa693ab551827a5600ce9b97a799b7c2419bdeb11" diff --git a/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb b/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb new file mode 100644 index 00000000000..9d2d954f026 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb @@ -0,0 +1,9 @@ +SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "f78d8d0cc13d40753a207a836869b953" +SRC_URI[sha256sum] = "8c9deec8d95da4cc39d6d9091433e5822b6bbe07d80117045dd4dd3480427ece" diff --git a/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.6.0.bb b/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.6.0.bb new file mode 100644 index 00000000000..de0d0a06d99 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.6.0.bb @@ -0,0 +1,9 @@ +SUMMARY = "A calculator plugin for the Xfce panel" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-calculator-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=909430f63fddd63f120ba29e8979f65c" + +inherit xfce-panel-plugin gtk-icon-cache + +SRC_URI[md5sum] = "1b956a89693d039a61b4725cefb23a4d" +SRC_URI[sha256sum] = "eb51765580ea4650f9cf062382a820fb6483ee5dbe003aeb6f063929e299f9c2" diff --git a/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.2.6.bb b/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.2.6.bb deleted file mode 100644 index aee4a3dc208..00000000000 --- a/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.2.6.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Clipman is a clipboard manager for Xfce" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -inherit xfce-panel-plugin - -DEPENDS += "xfconf xproto libxtst" - -SRC_URI[md5sum] = "f7f2440647493243cbd7787eaee92fcb" -SRC_URI[sha256sum] = "23043f99c3e5257d1f3d68b5ee5125e3469c15620d098e22c6250386197f48a5" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[unique] = "--enable-unique,--disable-unique,libunique" - -FILES_${PN} += "${datadir}/appdata" diff --git a/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb b/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb new file mode 100644 index 00000000000..96bdf0e530b --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "Clipman is a clipboard manager for Xfce" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +inherit xfce-panel-plugin + +DEPENDS += "xfconf xproto libxtst" + +SRC_URI[md5sum] = "9169140af7c9d3fddd8a5c9e0efb5a61" +SRC_URI[sha256sum] = "cf2b45e327e67cc187dcb99a6ef6d95570463045accd24540e17172f005189b3" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[qrencode] = "--enable-libqrencode,--disable-libqrencode,qrencode" + +FILES_${PN} += "${datadir}/appdata" diff --git a/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb b/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb index 341107fa102..3cd4ee65ee3 100644 --- a/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb +++ b/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb @@ -10,7 +10,7 @@ DEPENDS += "exo-native libwnck xfconf" PV = "0.1.0+gitr${SRCPV}" SRC_URI = "git://github.com/schnitzeltony/xfce4-closebutton-plugin.git;branch=master" -SRCREV = "bd76154afe26ba8a5251a1887d88f9d855301850" +SRCREV = "02b74f13ad6f639234c8db1854963038b2780a2c" S = "${WORKDIR}/git" EXTRA_OECONF += "--enable-maintainer-mode" diff --git a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.1.bb b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.1.bb deleted file mode 100644 index 224f85f87b7..00000000000 --- a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.1.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin to display frequency of all cpus" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=1f6f1c0be32491a0c8d2915607a28f36" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "cc3447ee6663f2946fce86308ba3566b" -SRC_URI[sha256sum] = "474c45c007e65bfc107d6bcc902330c5e964906e6da120af48f7e2dba7f5cae7" diff --git a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.3.bb b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.3.bb new file mode 100644 index 00000000000..d454787091b --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.1.3.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin to display frequency of all cpus" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=1f6f1c0be32491a0c8d2915607a28f36" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "859122da0a8cd991ee2fbeee434bc948" +SRC_URI[sha256sum] = "74a162c7e101db0495d5da147aba1f404c33544f04e8c34d7d1d705668102d33" diff --git a/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.6.2.bb b/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.6.2.bb deleted file mode 100644 index a97ba6c7dbe..00000000000 --- a/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.6.2.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin displaying date and time and a calendar when left-clicked" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-datetime-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "fe604a251eadbc5b0f2b4737b85d92c8" -SRC_URI[sha256sum] = "9734da671e8d1d7de5fae92093a05d653c9245b838542fb9aff3e10368cc9e2c" diff --git a/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.0.bb b/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.0.bb new file mode 100644 index 00000000000..af38ba543dc --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.0.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin displaying date and time and a calendar when left-clicked" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-datetime-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "30caaa94c6c267827a31ad69fa472e51" +SRC_URI[sha256sum] = "297f3077f7aee52a237449fbd8595e232267bc600b5b9e7ddc5baab306ed67b9" diff --git a/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.5.5.bb b/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.5.5.bb deleted file mode 100644 index 801699c19fe..00000000000 --- a/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.5.5.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin displaying instant disk/partition performance" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=d3e627798d6a60bece47aa8b3532e1f1" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "199e4365cb3a1fcd5f6164044aedba17" -SRC_URI[sha256sum] = "cbeb0c00f97362eef3f135afb77947aef73e938bae0386250a122ac6644b521b" diff --git a/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb b/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb new file mode 100644 index 00000000000..161b2bb2b29 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin displaying instant disk/partition performance" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=d3e627798d6a60bece47aa8b3532e1f1" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "63d5f03934c2dbddb3ad7bf7f535cc23" +SRC_URI[sha256sum] = "212ddc742be3eecb6ad5554e1b1df03d5685cb71f48a558d5f895de37c57e4fa" diff --git a/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.6.bb b/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.6.bb deleted file mode 100644 index d4f069f712f..00000000000 --- a/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.6.bb +++ /dev/null @@ -1,12 +0,0 @@ -DESCRIPTION = "Equake XFCE is a panel plugin for the XFCE panel which monitors earthquakes and displays an update each time a new earthquake occurs." -HOMEPAGE = "http://freecode.com/projects/equake-xfce" -SECTION = "x11/application" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "ee76ed3825999b24ee9c2c976d906e22" -SRC_URI[sha256sum] = "8129067080c8a4656063e7cde20f13fabb47b49c84ce610916f54644acb93d67" - -FILES_${PN} += "${libdir}/xfce4/panel-plugins/xfce4-equake-plugin" diff --git a/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.8.1.bb b/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.8.1.bb new file mode 100644 index 00000000000..8b24e98b048 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.8.1.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Equake XFCE is a panel plugin for the XFCE panel which monitors earthquakes and displays an update each time a new earthquake occurs." +HOMEPAGE = "http://freecode.com/projects/equake-xfce" +SECTION = "x11/application" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit xfce-panel-plugin + +DEPENDS += "curl" + +SRC_URI[md5sum] = "07d42b8a3d440d6f1861048a6cc3a15a" +SRC_URI[sha256sum] = "eff9cfd604d1bd998c5208176fbe2c6da705c250dce572f5e30b2c77f4ec741c" + +FILES_${PN} += "${libdir}/xfce4/panel-plugins/xfce4-equake-plugin" diff --git a/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.4.bb b/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.4.bb deleted file mode 100644 index ee32219ed40..00000000000 --- a/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.4.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Panel plugin with graphical representation of the cpu frequency" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-eyes-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "136f52a256fad8cfd29fb2976e08ebc8" -SRC_URI[sha256sum] = "240ce85b68d3d161f276ebbea97072dd6ee3df77062fd073bf6eeb4d3d1400ca" - -FILES_${PN} += "${datadir}/xfce4/eyes" diff --git a/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb b/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb new file mode 100644 index 00000000000..4e4c41096c1 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb @@ -0,0 +1,11 @@ +SUMMARY = "Panel plugin with graphical representation of the cpu frequency" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-eyes-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "b2881924fdcc1230d9fa82c10f1a6afe" +SRC_URI[sha256sum] = "648f7a1738d852af9482d11330b8ab33901f05256984de73d8cea4d7d7311937" + +FILES_${PN} += "${datadir}/xfce4/eyes" diff --git a/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.0.2.bb b/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.0.2.bb deleted file mode 100644 index 0f9199da4d7..00000000000 --- a/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.0.2.bb +++ /dev/null @@ -1,9 +0,0 @@ -DESCRIPTION = "The FSGuard panel plugin checks free space on a chosen mount point frequently and displays a message when a limit is reached" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-fsguard-plugin?&#recet_releases" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "db7741d1827e428b005e94d25e2ec00a" -SRC_URI[sha256sum] = "a2c8d59386ae3d23cf6bdd06a1cdd7a1b9473cf6f38ae106600b194c601040ae" diff --git a/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb b/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb new file mode 100644 index 00000000000..8b924ac759c --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "The FSGuard panel plugin checks free space on a chosen mount point frequently and displays a message when a limit is reached" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-fsguard-plugin?&#recet_releases" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "c9fcc1ff37f38e6ed518eca3b9887aa8" +SRC_URI[sha256sum] = "6b038322b49d29625219e6a54497085b8f834b9c1fd15282ce286a6529d7c445" diff --git a/meta-xfce/recipes-panel-plugins/genmon/files/0001-Allow-timer-period-to-be-set-at-250ms-resolution.-Pa.patch b/meta-xfce/recipes-panel-plugins/genmon/files/0001-Allow-timer-period-to-be-set-at-250ms-resolution.-Pa.patch deleted file mode 100644 index 28c0eb1443d..00000000000 --- a/meta-xfce/recipes-panel-plugins/genmon/files/0001-Allow-timer-period-to-be-set-at-250ms-resolution.-Pa.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 2d5fa307827a7b32af4f7b2ae0604f943e3a6e99 Mon Sep 17 00:00:00 2001 -From: John Lindgren -Date: Tue, 21 Aug 2012 19:33:45 -0400 -Subject: [PATCH] Allow timer period to be set at 250ms resolution. Patch - from Miguel Guedes. Closes: #9102. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Applied [1] - -[1] http://git.xfce.org/panel-plugins/xfce4-genmon-plugin/commit/?id=2d5fa307827a7b32af4f7b2ae0604f943e3a6e99 - -Signed-off-by: Andreas Müller ---- - panel-plugin/config_gui.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/panel-plugin/config_gui.c b/panel-plugin/config_gui.c -index a4c891d..90e55c1 100644 ---- a/panel-plugin/config_gui.c -+++ b/panel-plugin/config_gui.c -@@ -106,8 +106,8 @@ int genmon_CreateConfigGUI (GtkWidget *vbox1, - gtk_widget_show (alignment1); - gtk_container_add (GTK_CONTAINER (eventbox1), alignment1); - -- wSc_Period_adj = gtk_adjustment_new (15, 1, 60*60*24, 1, 1, 0); -- wSc_Period = gtk_spin_button_new (GTK_ADJUSTMENT (wSc_Period_adj), 1, 0); -+ wSc_Period_adj = gtk_adjustment_new (15, .25, 60*60*24, .25, 1, 0); -+ wSc_Period = gtk_spin_button_new (GTK_ADJUSTMENT (wSc_Period_adj), .25, 2); - gtk_widget_show (wSc_Period); - gtk_container_add (GTK_CONTAINER (alignment1), wSc_Period); - gtk_tooltips_set_tip (tooltips, wSc_Period, --- -1.7.6.5 - diff --git a/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_3.4.0.bb b/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_3.4.0.bb deleted file mode 100644 index a13db62a3c9..00000000000 --- a/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_3.4.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "This plugin cyclically spawns the indicated script/program, captures its output (stdout) and displays the resulting string into the panel." -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe" - -inherit xfce-panel-plugin - -SRC_URI += "file://0001-Allow-timer-period-to-be-set-at-250ms-resolution.-Pa.patch" - -SRC_URI[md5sum] = "24108b339bb040ed360266f53a245224" -SRC_URI[sha256sum] = "b0a5337b49c85623dc89f3c9e47c7374b1d466af2418033d2d6dfc57a9790387" - -S = "${WORKDIR}/xfce4-genmon-plugin-3.4" diff --git a/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb b/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb new file mode 100644 index 00000000000..0624fe96db3 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "This plugin cyclically spawns the indicated script/program, captures its output (stdout) and displays the resulting string into the panel." +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "f28cfbf9c82e758a236c1f5fcbcb8a35" +SRC_URI[sha256sum] = "a7db4f786166643076323dcde99ad12e92383cc29b4b806862d5483ec468c3e3" diff --git a/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb b/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb new file mode 100644 index 00000000000..f86c92ed21f --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "Plugin providing hotcorners" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://README.md;beginline=48;endline=53;md5=2c694b8e0f73274b13465b509e4f5427" + +inherit xfce-panel-plugin cmake + +DEPENDS += "libwnck3" + +SRC_URI = "https://github.com/brianhsu/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "ac31b45cda1867cb6bd69bb285638263" +SRC_URI[sha256sum] = "942684c92f96a158e1417e597947f822769ac56aa1993a8c9f166ee633ef2b8d" diff --git a/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb b/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb index 00859a176fa..c8224148ba5 100644 --- a/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb +++ b/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb @@ -9,3 +9,6 @@ DEPENDS += "gnutls libgcrypt" SRC_URI[md5sum] = "7263114ec0f2987a3aff15afeeb45577" SRC_URI[sha256sum] = "624acc8229a8593c0dfeb28f883f4958119a715cc81cecdbaf29efc8ab1edcad" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch new file mode 100644 index 00000000000..e2165c2fa50 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch @@ -0,0 +1,87 @@ +From 09e325f8296eb9e63dc57ed137f4a9940f164563 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 21 Mar 2017 17:11:46 -0700 +Subject: [PATCH] check for fstab.h during configure + +fstab.h is not universally available, checking it during +configure creates a knob to disable fstab reads in the +plugin + +Makes it compile/build with musl + +Signed-off-by: Khem Raj + +Patch Reworked for xfce4-mount-plugin 0.6.4->1.1.2 +Signed-off-by: Andreas Müller +--- + configure.ac | 1 + + panel-plugin/devices.c | 22 +++++++++++++++++++--- + 2 files changed, 20 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b131117..c633fef 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -69,6 +69,7 @@ AC_CHECK_HEADERS([sys/socket.h]) + AC_CHECK_HEADERS([sys/time.h]) + AC_CHECK_HEADERS([unistd.h]) + AC_CHECK_HEADERS([sys/sockio.h]) ++AC_CHECK_HEADERS([fstab.h]) + AC_HEADER_SYS_WAIT + AC_PROG_GCC_TRADITIONAL + AC_TYPE_SIZE_T +diff --git a/panel-plugin/devices.c b/panel-plugin/devices.c +index 797b079..d29df56 100644 +--- a/panel-plugin/devices.c ++++ b/panel-plugin/devices.c +@@ -24,8 +24,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + #ifdef HAVE_CONFIG_H + #include + #endif +- ++#if HAVE_FSTAB_H + #include ++#endif ++ + #include + #include + #include +@@ -468,11 +470,12 @@ disks_new (gboolean include_NFSs, gboolean *showed_fstab_dialog, gint length) + { + GPtrArray * pdisks; /* to be returned */ + t_disk * pdisk; +- struct fstab *pfstab; + gboolean has_valid_mount_device; + + pdisks = g_ptr_array_new(); + ++#if HAVE_FSTAB_H ++ struct fstab *pfstab; + /* open fstab */ + if (setfsent()!=1) + { +@@ -526,7 +529,20 @@ disks_new (gboolean include_NFSs, gboolean *showed_fstab_dialog, gint length) + } /* end for */ + + endfsent(); /* close file */ +- ++#else ++ /* popup notification dialog */ ++ if (! (*showed_fstab_dialog) ) { ++ xfce_message_dialog (NULL, ++ _("Xfce 4 Mount Plugin"), ++ "dialog-info", ++ _("Your /etc/fstab could not be read because fstab is not supported. This will severely degrade the plugin's abilities."), ++ NULL, ++ "gtk-ok", ++ GTK_RESPONSE_OK, ++ NULL); ++ *showed_fstab_dialog = TRUE; ++ } ++#endif + return pdisks; + } + +-- +2.9.3 + diff --git a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_0.6.4.bb b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_0.6.4.bb deleted file mode 100644 index 6dc2c1721d4..00000000000 --- a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_0.6.4.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Mount/umount utility for the xfce panel" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mount-plugin" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "f5917e9aa2a06bc6a872cc10d2ee4f6f" -SRC_URI[sha256sum] = "541d7af84d7d0b00ae547aa1f438e2fac51ee4195c4d0a17173c4f72accb227d" diff --git a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb new file mode 100644 index 00000000000..67009377e8f --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb @@ -0,0 +1,11 @@ +SUMMARY = "Mount/umount utility for the xfce panel" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mount-plugin" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit xfce-panel-plugin + +SRC_URI += "file://0001-check-for-fstab.h-during-configure.patch" +SRC_URI[md5sum] = "7eba9696d82433a5577741214d34b588" +SRC_URI[sha256sum] = "54578447abaf9da630a750d64acdc37d4fd20dda6460208d6d1ffaa9e43ee1a6" diff --git a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch new file mode 100644 index 00000000000..e354181927b --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch @@ -0,0 +1,25 @@ +From 7fcc7352ec11644ac8be4e9ec1584a5be3333684 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 18:18:30 -0700 +Subject: [PATCH] Do not include sys/sysctl.h its unused on linux port + +Signed-off-by: Khem Raj +--- + panel-plugin/os.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/panel-plugin/os.h b/panel-plugin/os.h +index 473c2a4..9a5c544 100644 +--- a/panel-plugin/os.h ++++ b/panel-plugin/os.h +@@ -170,7 +170,6 @@ + #elif __linux__ /* L I N U X */ + # include + # include +-# include + # include + # include + # include +-- +2.13.2 + diff --git a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.2.4.bb b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.2.4.bb deleted file mode 100644 index c9f7a2a661f..00000000000 --- a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.2.4.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin displaying current load of the network interfaces" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=35a7203c41b86d15546dddc05995f97f" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "ce53e1135e4bff5afcd899627110bd11" -SRC_URI[sha256sum] = "fface918822c012d806717116566e54947ad7613b9290b45a18e2d5ffb8730d3" diff --git a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb new file mode 100644 index 00000000000..35c8861bcfb --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb @@ -0,0 +1,12 @@ +SUMMARY = "Panel plugin displaying current load of the network interfaces" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=35a7203c41b86d15546dddc05995f97f" + +inherit xfce-panel-plugin + +SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2 \ + file://0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch \ + " +SRC_URI[md5sum] = "f25aa3242e3119b49f259a3e4a1af08b" +SRC_URI[sha256sum] = "99762781099d1e0ab9aa6a7b30c2bd94d8f658dbe61c760410d5d42d0766391c" diff --git a/meta-xfce/recipes-panel-plugins/notes/files/0001-Bump-dependency-to-Xfce-4.10.patch b/meta-xfce/recipes-panel-plugins/notes/files/0001-Bump-dependency-to-Xfce-4.10.patch deleted file mode 100644 index 4a3b1ce5861..00000000000 --- a/meta-xfce/recipes-panel-plugins/notes/files/0001-Bump-dependency-to-Xfce-4.10.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 26c4ad1765d0d59b3918363d38174c5f5bfe0dcd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Fri, 20 Sep 2013 22:49:47 +0200 -Subject: [PATCH] Bump dependency to Xfce 4.10 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Drop support for Xfce <= 4.6. -Replace libxfcegui4 dependency against libxfce4ui. -Update to new libtool syntax (use LT_PREREQ.) - -Upstream-status: Backport [1] - -[1] http://git.xfce.org/panel-plugins/xfce4-notes-plugin/commit/?id=d11fe51fae95b5b4963847be76ae4a07409a6076 - -Signed-off-by: Andreas Müller ---- - configure.ac | 23 ++++++++++------------- - src/Makefile.am | 4 ++-- - src/xfce4-notes-settings.c | 6 +++--- - 3 files changed, 15 insertions(+), 18 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 20d27e5..8d4113f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -24,21 +24,17 @@ AC_INIT([Notes], [xfce4_notes_plugin_version], [http://bugzilla.xfce.org/], [xfc - AC_REVISION([xfce4_notes_plugin_version_build]) - AC_CANONICAL_TARGET() - -+LT_PREREQ([2.2.6]) -+LT_INIT([disable-static]) -+ - AM_INIT_AUTOMAKE([1.11 dist-bzip2]) - AM_CONFIG_HEADER([config.h]) - AM_MAINTAINER_MODE() - AM_SILENT_RULES([yes]) - --dnl Avoid g77 and g++ checks --m4_undefine([AC_PROG_CXX]) --m4_defun([AC_PROG_CXX],[]) --m4_undefine([AC_PROG_F77]) --m4_defun([AC_PROG_F77],[]) -- - dnl Check for basic programs - AM_PROG_CC_C_O() - AC_PROG_LD() --AC_PROG_LIBTOOL() - AC_PROG_INSTALL() - AC_PROG_INTLTOOL() - -@@ -51,12 +47,13 @@ AC_SUBST([MATH_LIBS], [" -lm"]) - - dnl Check for required packages - XDT_CHECK_LIBX11_REQUIRE() --XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.16.0]) --XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.14.0]) --XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.4.0]) --XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.4.0]) --XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.4.0]) --XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.6.0]) -+XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.24.0]) -+XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.24.0]) -+XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.20.0]) -+XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.10.0]) -+XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.10.0]) -+XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.10.0]) -+XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.10.0]) - XDT_CHECK_PACKAGE([UNIQUE], [unique-1.0], [1.0.0]) - - dnl Check for libxfce4panel >= 4.7 -diff --git a/src/Makefile.am b/src/Makefile.am -index f69ab0f..2d97b63 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -36,7 +36,7 @@ xfce4_notes_settings_SOURCES = \ - xfce4_notes_settings_CFLAGS = \ - @LIBX11_CFLAGS@ \ - @GTK_CFLAGS@ \ -- @LIBXFCEGUI4_CFLAGS@ \ -+ @LIBXFCE4UI_CFLAGS@ \ - @XFCONF_CFLAGS@ \ - @UNIQUE_CFLAGS@ - -@@ -44,7 +44,7 @@ xfce4_notes_settings_LDADD = \ - $(top_builddir)/lib/libnotes.la \ - @LIBX11_LIBS@ \ - @GTK_LIBS@ \ -- @LIBXFCEGUI4_LIBS@ \ -+ @LIBXFCE4UI_LIBS@ \ - @XFCONF_LIBS@ \ - @UNIQUE_LIBS@ - -diff --git a/src/xfce4-notes-settings.c b/src/xfce4-notes-settings.c -index f66bb13..1d7cc70 100644 ---- a/src/xfce4-notes-settings.c -+++ b/src/xfce4-notes-settings.c -@@ -25,7 +25,7 @@ - #include - #include - #include --#include -+#include - - #include "defines.h" - #include "color.h" -@@ -115,7 +115,7 @@ prop_dialog_new (void) - - /* === Global settings === */ - box = gtk_vbox_new (FALSE, BORDER); -- frame = xfce_create_framebox_with_content (_("Global settings"), box); -+ frame = xfce_gtk_frame_box_new_with_content (_("Global settings"), box); - gtk_container_set_border_width (GTK_CONTAINER (frame), BORDER); - gtk_container_add (GTK_CONTAINER (vbox), frame); - -@@ -163,7 +163,7 @@ prop_dialog_new (void) - - /* === New window settings === */ - box = gtk_vbox_new (FALSE, BORDER); -- frame = xfce_create_framebox_with_content (_("New group settings"), box); -+ frame = xfce_gtk_frame_box_new_with_content (_("New group settings"), box); - gtk_container_set_border_width (GTK_CONTAINER (frame), BORDER); - gtk_container_add (GTK_CONTAINER (vbox), frame); - --- -1.8.3.1 - diff --git a/meta-xfce/recipes-panel-plugins/notes/files/0002-main-status-icon.c-remove-deprecated-g_type_init.patch b/meta-xfce/recipes-panel-plugins/notes/files/0001-main-status-icon.c-remove-deprecated-g_type_init.patch similarity index 100% rename from meta-xfce/recipes-panel-plugins/notes/files/0002-main-status-icon.c-remove-deprecated-g_type_init.patch rename to meta-xfce/recipes-panel-plugins/notes/files/0001-main-status-icon.c-remove-deprecated-g_type_init.patch diff --git a/meta-xfce/recipes-panel-plugins/notes/files/01_fix_format-string.patch b/meta-xfce/recipes-panel-plugins/notes/files/01_fix_format-string.patch new file mode 100644 index 00000000000..8066df00411 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/notes/files/01_fix_format-string.patch @@ -0,0 +1,53 @@ +Fix formatting strings when compiling with Wformat options + +Imported from debian + +--- a/lib/application.c ++++ b/lib/application.c +@@ -352,7 +352,7 @@ static void xnp_application_update_notes + XfconfChannel* _tmp16_; + const gchar* _tmp17_; + _tmp9_ = _ ("Select notes path"); +- _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _tmp9_); ++ _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _tmp9_); + g_object_ref_sink (_tmp10_); + error_dialog = _tmp10_; + _tmp11_ = error_dialog; +@@ -419,7 +419,7 @@ static void xnp_application_update_notes + XfconfChannel* _tmp35_; + const gchar* _tmp36_; + _tmp27_ = _ ("Select notes path"); +- _tmp28_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _tmp27_); ++ _tmp28_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _tmp27_); + g_object_ref_sink (_tmp28_); + error_dialog = _tmp28_; + _tmp29_ = error_dialog; +@@ -2082,7 +2082,7 @@ static void xnp_application_delete_windo + gint _tmp9_; + _tmp3_ = window; + _tmp4_ = _ ("Are you sure you want to delete this group?"); +- _tmp5_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _tmp3_, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp4_); ++ _tmp5_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _tmp3_, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", _tmp4_); + g_object_ref_sink (_tmp5_); + dialog = _tmp5_; + _tmp6_ = dialog; +@@ -2721,7 +2721,7 @@ void xnp_application_open_settings_dialo + e = _inner_error_; + _inner_error_ = NULL; + _tmp0_ = _ ("Unable to open the settings dialog"); +- _tmp1_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _tmp0_); ++ _tmp1_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _tmp0_); + g_object_ref_sink (_tmp1_); + error_dialog = _tmp1_; + _tmp2_ = error_dialog; +--- a/lib/window.c ++++ b/lib/window.c +@@ -3542,7 +3542,7 @@ void xnp_window_delete_note (XnpWindow* + GtkMessageDialog* _tmp13_; + gint _tmp14_; + _tmp9_ = _ ("Are you sure you want to delete this note?"); +- _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp9_); ++ _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", _tmp9_); + g_object_ref_sink (_tmp10_); + dialog = _tmp10_; + _tmp11_ = dialog; diff --git a/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.7.7.bb b/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.7.7.bb deleted file mode 100644 index fee5a4d9c4b..00000000000 --- a/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.7.7.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "Notes plugin for the Xfce Panel" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-notes-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -inherit xfce-panel-plugin - -DEPENDS = "gtk+ libxfce4ui xfce4-panel xfconf libunique" - -SRC_URI += " \ - file://0001-Bump-dependency-to-Xfce-4.10.patch \ - file://0002-main-status-icon.c-remove-deprecated-g_type_init.patch \ -" -SRC_URI[md5sum] = "42b924b23f2fec6a1099e9b7a87db4a3" -SRC_URI[sha256sum] = "a7baa105b37ad05dea4d6b55d98fd3214c77ad5c7a0e91471d4906c81e5f5217" - -FILES_${PN} += "${libdir}/xfce4/panel-plugins/*.so.*" - -# *.so are required for plugin detection -INSANE_SKIP_${PN} = "dev-so" diff --git a/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.8.1.bb b/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.8.1.bb new file mode 100644 index 00000000000..fcf98c181ba --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.8.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "Notes plugin for the Xfce Panel" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-notes-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit xfce-panel-plugin + +DEPENDS += "gtk+ libxfce4ui xfce4-panel xfconf libunique" + +SRC_URI += " \ + file://0001-main-status-icon.c-remove-deprecated-g_type_init.patch \ + file://01_fix_format-string.patch \ +" +SRC_URI[md5sum] = "31cb9520b01512a94344770b4befdb3b" +SRC_URI[sha256sum] = "07a4c3e71431c24f97d2e270452dd0fa51ff0bdb6219a13a20d0bfa8d9de54b2" + +FILES_${PN} += "${libdir}/xfce4/panel-plugins/*.so.*" + +# *.so are required for plugin detection +INSANE_SKIP_${PN} = "dev-so" diff --git a/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.3.2.bb b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.3.2.bb new file mode 100644 index 00000000000..ad0b54a6e43 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.3.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "Pulseaudio mixer for the xfce panel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f" + +inherit xfce-panel-plugin distro_features_check + +REQUIRED_DISTRO_FEATURES = "pulseaudio x11" + +DEPENDS += "pulseaudio" + +SRC_URI[md5sum] = "da70bb47755cccf8898dc5cfbe31a6f2" +SRC_URI[sha256sum] = "fd4ae178912dc17ffb16ce887db24545624c7f423a02bd2eab47d52758fa99d8" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libnotify] = "--enable-libnotify,--disable-libnotify,libnotify" + +RRECOMMENDS_${PN} = "pavucontrol" diff --git a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb new file mode 100644 index 00000000000..4d78bb2bf27 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb @@ -0,0 +1,27 @@ +SUMMARY = "Sensors plugin for the Xfce Panel" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b94789bed9aec03b9656a9cc5398c706" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "0c74c3112c5e6e07647c116cd43ff5a7" +SRC_URI[sha256sum] = "7524ec4534de9ef7f676de2895a41bf70b73b94da5a27fd4a022b16eda56d0f4" + +EXTRA_OECONF = " \ + --disable-procacpi \ + --disable-sysfsacpi \ + --disable-xnvctrl \ +" + +do_configure_prepend() { + sed -i 's:LIBSENSORS_CFLAGS=.*:LIBSENSORS_CFLAGS=-I${STAGING_INCDIR}:g' ${S}/configure.ac +} + +PACKAGECONFIG ??= "libsensors" +PACKAGECONFIG[libsensors] = "--enable-libsensors,--disable-libsensors, lmsensors" +PACKAGECONFIG[hddtemp] = "--enable-hddtemp,--disable-hddtemp, hddtemp" +PACKAGECONFIG[netcat] = "--enable-netcat,--disable-netcat, netcat" +PACKAGECONFIG[libnotify] = "--enable-notification,--disable-notification, libnotify" + +FILES_SOLIBSDEV = "${libdir}/xfce4/modules/lib*${SOLIBSDEV}" diff --git a/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb b/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb new file mode 100644 index 00000000000..6289ad31aa3 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin allowing to send requests directly to browser" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "6f242fe584ee2fdd2b1d3d69ef3d5914" +SRC_URI[sha256sum] = "139539c58d54d878de86ef8a882c793cd909981e6b888f7f9d5e230a8fe310a4" diff --git a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.1.2.bb b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.1.2.bb deleted file mode 100644 index c212f889b05..00000000000 --- a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.1.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -DESCRIPTION = "Panel plugin displaying current CPU load, the memory in use, the swap space and the system uptime" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=9acb172a93ff6c43cce2aff790a8aef8" - -inherit xfce-panel-plugin - -DEPENDS += "upower" - -SRC_URI[md5sum] = "68c9d20b352c13f3eb6b39a0d9fe2ba2" -SRC_URI[sha256sum] = "b469b6b3a08ec29b9061151950d876d36bf25a3106ec77256923fdd6b5d18a7c" diff --git a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.1.bb b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.1.bb new file mode 100644 index 00000000000..eeb4518634e --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.1.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Panel plugin displaying current CPU load, the memory in use, the swap space and the system uptime" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=9acb172a93ff6c43cce2aff790a8aef8" + +inherit xfce-panel-plugin + +DEPENDS += "upower" + +SRC_URI[md5sum] = "550277af9886c47005117110f6e7ec0d" +SRC_URI[sha256sum] = "2bf7d0802534a1eb2e9f251af2bb97abc3f58608c1f01511d302c06111d34812" diff --git a/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.1.bb b/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.1.bb deleted file mode 100644 index 1f6ea046eb8..00000000000 --- a/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.1.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "This plugin makes it possible to take periodical breaks" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-time-out-plugin" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "b6e4a3145d31c341e2506fb17b014587" -SRC_URI[sha256sum] = "e342f73315fa8176ac4fc321680a3959aa2e06fafed1ac78031fae64713a3db8" diff --git a/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb b/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb new file mode 100644 index 00000000000..facbb0d86d1 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb @@ -0,0 +1,10 @@ +SUMMARY = "This plugin makes it possible to take periodical breaks" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-time-out-plugin" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "d7d743794a766ba1b00647828a099053" +SRC_URI[sha256sum] = "c69fb7218c685e516454810291c5245c49a80d774a6bded59c645a1af427c4e5" diff --git a/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin/0001-Specify-string-format-explicitly.patch b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin/0001-Specify-string-format-explicitly.patch new file mode 100644 index 00000000000..3f0bb05af41 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin/0001-Specify-string-format-explicitly.patch @@ -0,0 +1,32 @@ +From 6b786e1c161026ab5486ac218891a85db65bf3ba Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 22 Mar 2017 15:28:24 -0700 +Subject: [PATCH] Specify string format explicitly + +Avoids below errors when compiling with -Wformat-security + +error: format string is not a string literal (potentially insecure) + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + src/xfcetimer.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/xfcetimer.c b/src/xfcetimer.c +index 601772f..4b89682 100644 +--- a/src/xfcetimer.c ++++ b/src/xfcetimer.c +@@ -190,7 +190,7 @@ static gboolean update_function (gpointer data){ + + dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, + GTK_MESSAGE_WARNING, +- GTK_BUTTONS_NONE, dialog_message); ++ GTK_BUTTONS_NONE, "%s", dialog_message); + + gtk_window_set_title ((GtkWindow *) dialog, dialog_title); + +-- +2.12.0 + diff --git a/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.6.0.bb b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.6.0.bb index d61235fe0e2..96151928589 100644 --- a/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.6.0.bb +++ b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.6.0.bb @@ -6,5 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=ae39271267fd63eb7619432ff24e7ff1" inherit xfce-panel-plugin +SRC_URI += "file://0001-Specify-string-format-explicitly.patch" + SRC_URI[md5sum] = "3be2a4ccfb2af20441b1d25c2cea5f28" SRC_URI[sha256sum] = "39d7d21f099bc4219f6a6156142f0bbb8374986ee1970a9c0c8dc138b87f867c" diff --git a/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb b/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb new file mode 100644 index 00000000000..57951608f3a --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb @@ -0,0 +1,11 @@ +SUMMARY = "Verve panel plugin is a comfortable command line plugin for the Xfce panel" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-verve-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit xfce-panel-plugin + +DEPENDS += "dbus-glib-native" + +SRC_URI[md5sum] = "ddd0190ae56f6117dbcf9ff2bf5a8cbf" +SRC_URI[sha256sum] = "a3196f818c7ad57d19cd6581e168fd2b9f96de070246aea70c35ce2e5f9d9c84" diff --git a/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.5.12.bb b/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.5.12.bb deleted file mode 100644 index 1ccd5576890..00000000000 --- a/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.5.12.bb +++ /dev/null @@ -1,9 +0,0 @@ -SUMMARY = "Panel plugin displaying stats from a wireless lan interface" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=e1e5872df9c5cf1a23f16493d9104920" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "3ba5ee0626612942d249d4a80a1a67b7" -SRC_URI[sha256sum] = "67dce45739f063b95e2bc2232c625277685887b1f84088316d919671b5500ac4" diff --git a/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb b/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb new file mode 100644 index 00000000000..0c94f3c4ba2 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb @@ -0,0 +1,9 @@ +SUMMARY = "Panel plugin displaying stats from a wireless lan interface" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=e1e5872df9c5cf1a23f16493d9104920" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "b163b22f8543e5e5767a68af35c9028e" +SRC_URI[sha256sum] = "4d5bd6654cfd077f3432b08d296f7bd052e765e51b77c629886a9542f4e5ecdc" diff --git a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb new file mode 100644 index 00000000000..649eaaafb3a --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb @@ -0,0 +1,13 @@ +SUMMARY = "Panel plugin to display current temperature and weather condition" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit xfce-panel-plugin + +DEPENDS += "libsoup-2.4 dbus-glib upower" + +SRC_URI[md5sum] = "bba7f750b97c8fc3656715268edad792" +SRC_URI[sha256sum] = "ee6d43c444904631c240470e15e96215c2ce451158bfdbf234bce892bf60eab8" + +FILES_${PN} += "${datadir}/xfce4/weather" diff --git a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.5.bb b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.5.bb deleted file mode 100644 index 3fc5eae7a7b..00000000000 --- a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.5.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Panel plugin to display current temperature and weather condition" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -inherit xfce-panel-plugin - -DEPENDS += "libsoup-2.4 dbus-glib upower" - -SRC_URI[md5sum] = "cc6d9039540a71e57102ae75224a3f5e" -SRC_URI[sha256sum] = "be8ac0e5635355d568e4095a3459f53efd5f10a8ef46976a43dc30cbb277e5cd" - -FILES_${PN} += "${datadir}/xfce4/weather" diff --git a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_1.5.0.bb b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_1.5.0.bb deleted file mode 100644 index f7b0616b68d..00000000000 --- a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_1.5.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "An alternate menu for the Xfce desktop environment" -HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -inherit xfce-panel-plugin cmake - -SRC_URI = "http://gottcode.org/${BPN}/${BPN}-${PV}-src.tar.bz2" -SRC_URI[md5sum] = "32fcbf16931038c10b1b7a7ccc392132" -SRC_URI[sha256sum] = "da82bdbc899a9935b560323aac9037d44f37fb110509b80ec293196722671851" diff --git a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.1.3.bb b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.1.3.bb new file mode 100644 index 00000000000..3c67a2f544b --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.1.3.bb @@ -0,0 +1,11 @@ +SUMMARY = "An alternate menu for the Xfce desktop environment" +HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit xfce-panel-plugin cmake + +SRC_URI[md5sum] = "032a2bb0a0d4a2e3c8c136910c8b551d" +SRC_URI[sha256sum] = "e8918c1255f7ab86b950ebd13555fe87046c01a1a4cb0b5d460024b6efc01769" + +RRECOMMENDS_${PN} += "menulibre" diff --git a/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.7.0.bb b/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.7.0.bb deleted file mode 100644 index 22ead2a1cec..00000000000 --- a/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.7.0.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "XKB layout switching panel plug-in for the Xfce desktop environment" -HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-xkb-plugin" -SECTION = "x11/application" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=496f09f084b0f7e6f02f769a84490c6b" - -inherit xfce-panel-plugin - -SRC_URI[md5sum] = "7fbc3d8c84d6662d819dd1803f0fee34" -SRC_URI[sha256sum] = "28367c309863581ae4de529b35bdedf5a1c918096a9a2e6e771554cba7bf5a6a" - -DEPENDS += "libxklavier libwnck librsvg garcon" - -FILES_${PN} += "${datadir}/xfce4/xkb" - -RDEPENDS_${PN} = "xfce4-settings" diff --git a/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.1.bb b/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.1.bb new file mode 100644 index 00000000000..8ee374035a2 --- /dev/null +++ b/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.1.bb @@ -0,0 +1,16 @@ +SUMMARY = "XKB layout switching panel plug-in for the Xfce desktop environment" +HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-xkb-plugin" +SECTION = "x11/application" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=496f09f084b0f7e6f02f769a84490c6b" + +inherit xfce-panel-plugin + +SRC_URI[md5sum] = "72530bf59d7cd902326469e5a7a9892b" +SRC_URI[sha256sum] = "c19ecf126201deb6148741c521124771ad396adc874471512ab5ffe1946567a1" + +DEPENDS += "libxklavier libwnck3 librsvg garcon" + +FILES_${PN} += "${datadir}/xfce4/xkb" + +RDEPENDS_${PN} = "xfce4-settings" diff --git a/meta-xfce/recipes-support/vim/vim_%.bbappend b/meta-xfce/recipes-support/vim/vim_%.bbappend new file mode 100644 index 00000000000..25403e6cb5c --- /dev/null +++ b/meta-xfce/recipes-support/vim/vim_%.bbappend @@ -0,0 +1,6 @@ +do_install_append() { + # The mouse being autoenabled is just annoying in xfce4-terminal (mouse + # drag make vim go into visual mode and there is no right click menu), + # delete the block. + sed -i '/the mouse works just fine/,+4d' ${D}/${datadir}/${BPN}/vimrc +} diff --git a/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch b/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch index 246511cef18..99318d5aa17 100644 --- a/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch +++ b/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch @@ -15,11 +15,11 @@ Upstream-Status: Inappropriate [configuration] Signed-off-by: Andreas Müller --- Makefile.am | 10 +--------- - configure.ac | 20 -------------------- - 2 files changed, 1 insertion(+), 29 deletions(-) + configure.ac | 22 ---------------------- + 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/Makefile.am b/Makefile.am -index ad7c6ce..3acd94a 100644 +index 62ad18d..bdc5fae 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,15 +1,7 @@ @@ -40,7 +40,7 @@ index ad7c6ce..3acd94a 100644 distclean-local: rm -rf *.cache *~ diff --git a/configure.ac b/configure.ac -index bb9be05..23471d0 100644 +index ba5395d..2605067 100644 --- a/configure.ac +++ b/configure.ac @@ -116,15 +116,6 @@ AC_PROG_CC() @@ -59,16 +59,18 @@ index bb9be05..23471d0 100644 dnl *************************************** dnl *** Check for standard header files *** -@@ -171,17 +162,6 @@ dnl *********************************** +@@ -171,19 +162,6 @@ dnl *********************************** dnl *** Check for required packages *** dnl *********************************** - XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.30.0]) --XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.30.0]) + XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.42.0]) +-XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.42.0]) -XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.24.0]) --XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.30.0]) +-XDT_CHECK_PACKAGE([GTK3], [gtk+-3.0], [3.20.0]) +-XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.42.0]) -XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.10.0]) --XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.10.0]) --XDT_CHECK_OPTIONAL_PACKAGE([GIO_UNIX], [gio-unix-2.0], [2.30.0], [gio-unix], [GIO-Unix features]) +-XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.12.0]) +-XDT_CHECK_PACKAGE([LIBXFCE4UI2], [libxfce4ui-2], [4.12.0]) +-XDT_CHECK_OPTIONAL_PACKAGE([GIO_UNIX], [gio-unix-2.0], [2.42.0], [gio-unix], [GIO-Unix features]) - -dnl ********************* -dnl *** Check for X11 *** @@ -78,5 +80,5 @@ index bb9be05..23471d0 100644 dnl ************************* dnl *** Check for gtk-doc *** -- -1.9.3 +2.9.4 diff --git a/meta-xfce/recipes-xfce/exo/exo_0.10.3.bb b/meta-xfce/recipes-xfce/exo/exo_0.10.3.bb deleted file mode 100644 index f11f0493d52..00000000000 --- a/meta-xfce/recipes-xfce/exo/exo_0.10.3.bb +++ /dev/null @@ -1,36 +0,0 @@ -DESCRIPTION="Application library for the Xfce desktop environment" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "gtk+ libxfce4util libxfce4ui virtual/libx11 liburi-perl-native cairo" -DEPENDS_class-native = "glib-2.0-native xfce4-dev-tools-native intltool-native" - -inherit xfce pythonnative perlnative gtk-doc - -# SRC_URI must follow inherited one -SRC_URI += " \ - file://exo-no-tests-0.8.patch \ - file://configure.patch \ -" - -SRC_URI_append_class-native = " \ - file://reduce-build-to-exo-csource-only.patch \ -" - -SRC_URI[md5sum] = "d45b7e18e3a73e4a7b2ec6ef7943de17" -SRC_URI[sha256sum] = "95704b14ef9065268c3aa9a7c0bacbe0ddb490a183a4f5ab13bba4a1722826bd" - -PACKAGES =+ "exo-csource" - -# Note: python bindings did not work in oe-dev and are about to be moved to -# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560 -FILES_${PN} += "${datadir}/xfce4/ \ - ${libdir}/xfce4/exo-1 \ -" - -FILES_${PN}-dbg += "${libdir}/gio/modules/.debug \ -" - -FILES_exo-csource += "${bindir}/exo-csource" - -BBCLASSEXTEND = "native" diff --git a/meta-xfce/recipes-xfce/exo/exo_0.11.5.bb b/meta-xfce/recipes-xfce/exo/exo_0.11.5.bb new file mode 100644 index 00000000000..d5508c0a54f --- /dev/null +++ b/meta-xfce/recipes-xfce/exo/exo_0.11.5.bb @@ -0,0 +1,39 @@ +DESCRIPTION="Application library for the Xfce desktop environment" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "gtk+ libxfce4util libxfce4ui virtual/libx11 liburi-perl-native cairo" +DEPENDS_class-native = "glib-2.0-native xfce4-dev-tools-native intltool-native" + +inherit xfce pythonnative perlnative gtk-doc distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" +REQUIRED_DISTRO_FEATURES_class-native = "" + +# SRC_URI must follow inherited one +SRC_URI += " \ + file://exo-no-tests-0.8.patch \ + file://configure.patch \ +" + +SRC_URI_append_class-native = " \ + file://reduce-build-to-exo-csource-only.patch \ +" + +SRC_URI[md5sum] = "2e560edfa8ddf77e21c4787a6f600171" +SRC_URI[sha256sum] = "8e8629f33783eba1ce6d092a42c28217458a0cc3d1ad7474097b9187054955c1" + +PACKAGES =+ "exo-csource" + +# Note: python bindings did not work in oe-dev and are about to be moved to +# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560 +FILES_${PN} += "${datadir}/xfce4/ \ + ${libdir}/xfce4/exo-1 \ +" + +FILES_${PN}-dbg += "${libdir}/gio/modules/.debug \ +" + +FILES_exo-csource += "${bindir}/exo-csource" + +BBCLASSEXTEND = "native" diff --git a/meta-xfce/recipes-xfce/garcon/garcon_0.4.0.bb b/meta-xfce/recipes-xfce/garcon/garcon_0.4.0.bb deleted file mode 100644 index 81f6ce16953..00000000000 --- a/meta-xfce/recipes-xfce/garcon/garcon_0.4.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION="Xfce Menu Library" -SECTION = "x11/libs" -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b" -DEPENDS = "xfce4-dev-tools-native libxfce4util libxfce4ui intltool-native" - -inherit xfce gtk-doc - -SRC_URI += "file://0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch" -SRC_URI[md5sum] = "aba62b80787aac295083bf7afd419ffb" -SRC_URI[sha256sum] = "787dc859713b6518992d760d4b858fb02e8a30705e6f6e871d7a14cc97bca972" - -FILES_${PN} += "${datadir}/desktop-directories" diff --git a/meta-xfce/recipes-xfce/garcon/garcon_0.6.1.bb b/meta-xfce/recipes-xfce/garcon/garcon_0.6.1.bb new file mode 100644 index 00000000000..06e23697745 --- /dev/null +++ b/meta-xfce/recipes-xfce/garcon/garcon_0.6.1.bb @@ -0,0 +1,17 @@ +DESCRIPTION="Xfce Menu Library" +SECTION = "x11/libs" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b" +DEPENDS = "xfce4-dev-tools-native libxfce4util libxfce4ui intltool-native" + +inherit xfce gtk-doc distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += "file://0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch" +SRC_URI[md5sum] = "174690ad19243f7ef9529cb0c24b9080" +SRC_URI[sha256sum] = "41c31ba0498c2cc39de4a8e0c2367510adbf4bc2104c17feee358e51e6acf603" + +EXTRA_OECONF = "--disable-gtk-doc" + +FILES_${PN} += "${datadir}/desktop-directories" diff --git a/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb b/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb index 6feb4bcbf85..ae7f99f5a90 100644 --- a/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb +++ b/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb @@ -4,13 +4,15 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "gtk+ xfce4-dev-tools-native" -inherit xfce +inherit xfce distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" SRC_URI[md5sum] = "363d6c16a48a00e26d45c45c2e1fd739" SRC_URI[sha256sum] = "875c9c3bda96faf050a2224649cc42129ffb662c4de33add8c0fd1fb860b47ed" -PACKAGECONFIG ??= "" -PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3, gtk+3" +PACKAGECONFIG ??= "gtk3" +PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3, gtk+3, gtk3-xfce-engine" PACKAGES += "${PN}-themes gtk3-xfce-engine" FILES_${PN} += "${libdir}/gtk-2.0/*/engines/*.so" diff --git a/meta-xfce/recipes-xfce/libxfce4ui/files/0002-configure.ac-remove-optional-gtk3-support.patch b/meta-xfce/recipes-xfce/libxfce4ui/files/0002-configure.ac-remove-optional-gtk3-support.patch deleted file mode 100644 index e1547119279..00000000000 --- a/meta-xfce/recipes-xfce/libxfce4ui/files/0002-configure.ac-remove-optional-gtk3-support.patch +++ /dev/null @@ -1,37 +0,0 @@ -From d61dc6718a2abaf70d19f17d34128cb7e161e057 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Wed, 18 Sep 2013 20:50:11 +0200 -Subject: [PATCH] configure.ac: remove optional gtk3 support -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -it drags in gtk3 if that was build before. This is not yet wanted - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - configure.ac | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/configure.ac b/configure.ac -index e47df04..b6edab1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -129,12 +129,6 @@ XDT_CHECK_PACKAGE([GOBJECT], [gobject-2.0], [2.28.0]) - XDT_CHECK_PACKAGE([GTK2], [gtk+-2.0], [2.24.0]) - XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.10.0]) - --dnl *********************************************************** --dnl *** Optional support for a GTK+3 version of the library *** --dnl *********************************************************** --XDT_CHECK_OPTIONAL_PACKAGE([GTK3], -- [gtk+-3.0], [3.2.0], [gtk3], -- [GTK+ 3 support]) - AM_CONDITIONAL([ENABLE_GTK3_LIBRARY], [test "x$GTK3_FOUND" = "xyes"]) - - dnl ************************************************* --- -1.8.3.1 - diff --git a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb index 36f42d3f941..4843e0ee873 100644 --- a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb +++ b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.12.1.bb @@ -2,13 +2,14 @@ SUMMARY = "Xfce4 Widget library and X Window System interaction" SECTION = "x11/libs" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475" -DEPENDS = "perl-native glib-2.0 gtk+ intltool libxfce4util xfconf xfce4-dev-tools virtual/libx11 libsm libice" +DEPENDS = "perl-native glib-2.0 gtk+ gtk+3 intltool-native libxfce4util xfconf xfce4-dev-tools virtual/libx11 libsm libice" -inherit xfce autotools gettext gtk-doc +inherit xfce autotools gettext gtk-doc distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" SRC_URI += " \ file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch \ - file://0002-configure.ac-remove-optional-gtk3-support.patch \ " SRC_URI[md5sum] = "ea9fad7d059fe8f531fe8db42dabb5a9" SRC_URI[sha256sum] = "3d619811bfbe7478bb984c16543d980cadd08586365a7bc25e59e3ca6384ff43" @@ -19,9 +20,16 @@ PACKAGECONFIG ??= "" PACKAGECONFIG[gladeui] = "--enable-gladeui,--disable-gladeui,glade3" PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" +PACKAGES =+ "${PN}-gtk2 ${PN}-gtk3" +FILES_${PN}-gtk2 += "${libdir}/libxfce4ui-1.so.* ${libdir}/libxfce4kbd-private-2.so.*" +FILES_${PN}-gtk3 += "${libdir}/libxfce4ui-2.so.* ${libdir}/libxfce4kbd-private-3.so.*" + FILES_${PN}-dbg += "${libdir}/glade3/modules/.debug" FILES_${PN}-dev += "${libdir}/glade3/modules/*.la \ ${datadir}/glade3/catalogs/*.in" PACKAGES += "${PN}-glade" FILES_${PN}-glade = "${libdir}/glade3 \ ${datadir}/glade3" + +RDEPENDS_${PN}-gtk2 = "${PN}" +RDEPENDS_${PN}-gtk3 = "${PN}" diff --git a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb index 28cfc7f0f04..140de416b77 100644 --- a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb +++ b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb @@ -1,19 +1,22 @@ SUMMARY = "All packages required for a base installation of XFCE" SECTION = "x11/wm" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" PR = "r5" -inherit packagegroup +inherit packagegroup distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" RDEPENDS_${PN} = " \ xfwm4 \ - xfce4-session \ + xfce4-session \ xfconf \ xfdesktop \ xfce4-panel \ \ gtk-xfce-engine \ + librsvg-gtk \ \ xfce4-panel-plugin-actions \ xfce4-panel-plugin-applicationsmenu \ @@ -25,7 +28,7 @@ RDEPENDS_${PN} = " \ xfce4-panel-plugin-showdesktop \ xfce4-panel-plugin-systray \ xfce4-panel-plugin-tasklist \ - xfce4-panel-plugin-windowmenu \ + xfce4-panel-plugin-windowmenu \ xfce4-settings \ \ xfce4-notifyd \ diff --git a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb index 28e452a6835..cc231b4bd91 100644 --- a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb +++ b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb @@ -1,7 +1,7 @@ SUMMARY = "All packages for full XFCE installation" SECTION = "x11/wm" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" PR = "r10" @@ -18,6 +18,8 @@ RRECOMMENDS_${PN} = " \ xfwm4-theme-kokodi \ xfwm4-theme-moheli \ \ + xfce-dusk-gtk3 \ + \ xfce4-cpufreq-plugin \ xfce4-cpugraph-plugin \ xfce4-datetime-plugin \ @@ -44,6 +46,14 @@ RRECOMMENDS_${PN} = " \ xfce4-whiskermenu-plugin \ xfce4-mailwatch-plugin \ xfce4-kbdleds-plugin \ + xfce4-smartbookmark-plugin \ + xfce4-hotcorner-plugin \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'xfce4-pulseaudio-plugin', '', d)} \ + xfce4-sensors-plugin \ + xfce4-calculator-plugin \ + xfce4-verve-plugin \ + \ + xfce-polkit \ \ thunar-media-tags-plugin \ thunar-archive-plugin \ diff --git a/meta-xfce/recipes-xfce/thunar-volman/thunar-volman/0001-Fix-return-with-no-value-in-function-returning-non-v.patch b/meta-xfce/recipes-xfce/thunar-volman/thunar-volman/0001-Fix-return-with-no-value-in-function-returning-non-v.patch new file mode 100644 index 00000000000..7233ea7ba64 --- /dev/null +++ b/meta-xfce/recipes-xfce/thunar-volman/thunar-volman/0001-Fix-return-with-no-value-in-function-returning-non-v.patch @@ -0,0 +1,26 @@ +From 2e295e9ce8f7f60a271adf004588b0d8db88db09 Mon Sep 17 00:00:00 2001 +From: Matt Thirtytwo +Date: Sat, 7 Mar 2015 22:50:32 +0100 +Subject: [PATCH] Fix return with no value in function returning non-void (bug + #11656) + +--- + thunar-volman/tvm-block-device.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/thunar-volman/tvm-block-device.c b/thunar-volman/tvm-block-device.c +index da31efa..edb6cad 100644 +--- a/thunar-volman/tvm-block-device.c ++++ b/thunar-volman/tvm-block-device.c +@@ -714,7 +714,7 @@ tvm_block_device_mount (TvmContext *context) + GMountOperation *mount_operation; + GVolume *volume; + +- g_return_if_fail (context != NULL); ++ g_return_val_if_fail ((context != NULL), FALSE); + + /* determine the GVolume corresponding to the udev device */ + volume = +-- +1.9.0 + diff --git a/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.8.1.bb b/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.8.1.bb index 6e63bef6642..c61d4512d76 100644 --- a/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.8.1.bb +++ b/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.8.1.bb @@ -2,10 +2,13 @@ SUMMARY = "Automatic management of removable drives and media for thunar" SECTION = "x11" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "exo glib-2.0 gtk+ libxfce4ui libxfce4util xfconf libnotify udev" +DEPENDS = "exo glib-2.0 gtk+ libxfce4ui libxfce4util xfconf libnotify libgudev" -inherit xfce +inherit xfce distro_features_check +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += "file://0001-Fix-return-with-no-value-in-function-returning-non-v.patch" SRC_URI[md5sum] = "65ab6e05b2e808d1dcc8d36683a59b7e" SRC_URI[sha256sum] = "5a08bb5ce32c296a64dfbdb2406d4e45a208b2c91e4efa831dc28f1d6c2ac2bd" diff --git a/meta-xfce/recipes-xfce/thunar/thunar_1.6.12.bb b/meta-xfce/recipes-xfce/thunar/thunar_1.6.12.bb new file mode 100644 index 00000000000..8f1b23e360e --- /dev/null +++ b/meta-xfce/recipes-xfce/thunar/thunar_1.6.12.bb @@ -0,0 +1,35 @@ +SUMMARY = "File manager for the Xfce Desktop Environment" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "exo glib-2.0 gtk+ gdk-pixbuf libxfce4util libxfce4ui xfconf libsm dbus-glib startup-notification libnotify xfce4-panel udev" + +inherit xfce distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:3]}/Thunar-${PV}.tar.bz2" +SRC_URI[md5sum] = "1bdf3c4a57ff886c512341f24b5e0e88" +SRC_URI[sha256sum] = "fb22091f07ec6de2c9d9d89c61289d2bc3436b36c8c53ccbc9c32ca8a99f2086" + +S = "${WORKDIR}/Thunar-${PV}/" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre" + +FILES_${PN} += " \ + ${libdir}/thunarx-2/* \ + ${libdir}/xfce4/panel/plugins/* \ + ${libdir}/Thunar/[Tt]hunar* \ + ${datadir}/appdata \ + ${datadir}/dbus-1 \ + ${datadir}/polkit-1 \ + ${datadir}/Thunar \ + ${datadir}/xfce4/panel/plugins/* \ +" + +FILES_${PN}-dbg += "${libdir}/thunarx-2/.debug/ \ + ${libdir}/xfce4/panel/plugins/.debug/ \ + ${libdir}/Thunar/.debug/" + +RRECOMMENDS_${PN} = "gvfs gvfsd-trash" diff --git a/meta-xfce/recipes-xfce/thunar/thunar_1.6.6.bb b/meta-xfce/recipes-xfce/thunar/thunar_1.6.6.bb deleted file mode 100644 index ca487677644..00000000000 --- a/meta-xfce/recipes-xfce/thunar/thunar_1.6.6.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "File manager for the Xfce Desktop Environment" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "exo glib-2.0 gtk+ gdk-pixbuf libxfce4util libxfce4ui xfconf libsm dbus-glib startup-notification libnotify xfce4-panel udev" - -inherit xfce gtk-doc - -SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:3]}/Thunar-${PV}.tar.bz2" -SRC_URI[md5sum] = "27a5343174593dd0067906c922e6af96" -SRC_URI[sha256sum] = "b9a55104b18ae01c5190d7ea02cbd7ba56d7affed9df416bf7fec6dff2d889b2" - -S = "${WORKDIR}/Thunar-${PV}/" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre" - -FILES_${PN} += " \ - ${libdir}/thunarx-2/* \ - ${libdir}/xfce4/panel/plugins/* \ - ${libdir}/Thunar/[Tt]hunar* \ - ${datadir}/appdata \ - ${datadir}/dbus-1 \ - ${datadir}/polkit-1 \ - ${datadir}/Thunar \ - ${datadir}/xfce4/panel/plugins/* \ -" - -FILES_${PN}-dbg += "${libdir}/thunarx-2/.debug/ \ - ${libdir}/xfce4/panel/plugins/.debug/ \ - ${libdir}/Thunar/.debug/" - -RRECOMMENDS_${PN} = "gvfs gvfsd-trash udisks" diff --git a/meta-xfce/recipes-xfce/tumbler/tumbler_0.1.31.bb b/meta-xfce/recipes-xfce/tumbler/tumbler_0.1.31.bb deleted file mode 100644 index 66385a41fff..00000000000 --- a/meta-xfce/recipes-xfce/tumbler/tumbler_0.1.31.bb +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION="Thumbnail service implementing the thumbnail management D-Bus specification" -SECTION = "x11/libs" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "dbus-glib freetype gdk-pixbuf poppler curl xfce4-dev-tools-native libxml2 libgsf" - -inherit xfce gtk-doc - -SRC_URI[md5sum] = "0067054e6f1f90a13f90faadfca1e89e" -SRC_URI[sha256sum] = "d0fd329273ff6ac98885eade4c3d8c87a4dd0816f713646130808bfa90b87173" -SRC_URI += "file://0001-configure-use-pkg-config-for-freetype2.patch" - -INSANE_SKIP_${PN} = "dev-so" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gstreamer-thumbnailer] = "--enable-gstreamer-thumbnailer,--disable-gstreamer-thumbnailer,gstreamer1.0 gstreamer1.0-plugins-base" - -FILES_${PN} += "${datadir}/dbus-1/services \ - ${libdir}/tumbler-1/tumblerd \ - ${libdir}/tumbler-1/plugins/*.so \ - ${libdir}/tumbler-1/plugins/cache/*.so \ -" - -FILES_${PN}-dev += "${libdir}/tumbler-1/plugins/*.la \ - ${libdir}/tumbler-1/plugins/cache/*.la" -FILES_${PN}-dbg += "${libdir}/tumbler-1/.debug \ - ${libdir}/tumbler-1/plugins/.debug \ - ${libdir}/tumbler-1/plugins/cache/.debug \ -" diff --git a/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb b/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb new file mode 100644 index 00000000000..49222063c20 --- /dev/null +++ b/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb @@ -0,0 +1,29 @@ +DESCRIPTION="Thumbnail service implementing the thumbnail management D-Bus specification" +SECTION = "x11/libs" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "dbus-glib dbus-glib-native freetype gdk-pixbuf poppler curl xfce4-dev-tools-native libxml2 libgsf" + +inherit xfce gtk-doc + +SRC_URI[md5sum] = "dd5f9bae6a2470eb5fff0dc9edd3ea09" +SRC_URI[sha256sum] = "4e27a59694b0a5cc69ebccbdb00c724e670b5b7c30bc4dc0b461aac93f234fac" +SRC_URI += "file://0001-configure-use-pkg-config-for-freetype2.patch" + +INSANE_SKIP_${PN} = "dev-so" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gstreamer-thumbnailer] = "--enable-gstreamer-thumbnailer,--disable-gstreamer-thumbnailer,gstreamer1.0 gstreamer1.0-plugins-base" + +FILES_${PN} += "${datadir}/dbus-1/services \ + ${libdir}/tumbler-1/tumblerd \ + ${libdir}/tumbler-1/plugins/*.so \ + ${libdir}/tumbler-1/plugins/cache/*.so \ +" + +FILES_${PN}-dev += "${libdir}/tumbler-1/plugins/*.la \ + ${libdir}/tumbler-1/plugins/cache/*.la" +FILES_${PN}-dbg += "${libdir}/tumbler-1/.debug \ + ${libdir}/tumbler-1/plugins/.debug \ + ${libdir}/tumbler-1/plugins/cache/.debug \ +" diff --git a/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.12.0.bb b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.12.0.bb deleted file mode 100644 index 79e06da5e86..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.12.0.bb +++ /dev/null @@ -1,12 +0,0 @@ -DESCRIPTION="Xfce4 Application Finder" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS="glib-2.0 gtk+ libxfce4util libxfce4ui garcon dbus-glib xfconf" - -inherit xfce - -SRC_URI[md5sum] = "0b238b30686388c507c119b12664f1a1" -SRC_URI[sha256sum] = "2ad4a58019a76a6b64a816050db25f96854917c2f2e89d6a9df6c18e6c84c567" - -FILES_${PN} += "${datadir}/appdata" diff --git a/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.0.bb b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.0.bb new file mode 100644 index 00000000000..7e739116798 --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.0.bb @@ -0,0 +1,14 @@ +DESCRIPTION="Xfce4 Application Finder" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS="glib-2.0 gtk+3 libxfce4util libxfce4ui garcon dbus-glib xfconf" + +inherit xfce distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "6b6cf080c891f7945953f8084a901552" +SRC_URI[sha256sum] = "c0eb3b29eba3cfa9175ed35174e83a21faa2a2423ddb79501fe8846cc430e3ae" + +FILES_${PN} += "${datadir}/appdata" diff --git a/meta-xfce/recipes-xfce/xfce4-panel/files/0001-clock-time-make-change-of-system-s-timezone-change-t.patch b/meta-xfce/recipes-xfce/xfce4-panel/files/0001-clock-time-make-change-of-system-s-timezone-change-t.patch new file mode 100644 index 00000000000..9dca3ba57df --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0001-clock-time-make-change-of-system-s-timezone-change-t.patch @@ -0,0 +1,42 @@ +From c582338ef4f33b3dc07a2636340d55b9fb530650 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 17 Feb 2016 00:15:44 +0100 +Subject: [PATCH] clock-time: make change of system's timezone change time for + DEFAULT_TIMEZONE +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +clock_time->timezone is set in clock_time_init so the condition + +'clock_time->timezone != NULL + +is matching always. + +Tested by selecting seconds displayed (-> quick update) and changing timezone. + +Upstream-Status: Submitted [1] + +[1] https://bugzilla.xfce.org/show_bug.cgi?id=12453 + +Signed-off-by: Andreas Müller +--- + plugins/clock/clock-time.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/clock/clock-time.c b/plugins/clock/clock-time.c +index b015b13..4459b85 100644 +--- a/plugins/clock/clock-time.c ++++ b/plugins/clock/clock-time.c +@@ -198,7 +198,7 @@ clock_time_get_time (ClockTime *clock_time) + + panel_return_val_if_fail (XFCE_IS_CLOCK_TIME (clock_time), NULL); + +- if (clock_time->timezone != NULL) ++ if (g_strcmp0 (clock_time->timezone_name, DEFAULT_TIMEZONE) != 0) + date_time = g_date_time_new_now (clock_time->timezone); + else + date_time = g_date_time_new_now_local (); +-- +2.5.0 + diff --git a/meta-xfce/recipes-xfce/xfce4-panel/files/0002-windowmenu-do-not-display-desktop-icon-when-no-windo.patch b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-windowmenu-do-not-display-desktop-icon-when-no-windo.patch new file mode 100644 index 00000000000..b2d960c003d --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-windowmenu-do-not-display-desktop-icon-when-no-windo.patch @@ -0,0 +1,60 @@ +From 0651f228cef01a6c3e4758a991cace1cd7721031 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 24 Sep 2012 09:57:46 +0200 +Subject: [PATCH] windowmenu: do not display desktop icon when no window is + active +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* desktop icon is of no use +* desktop icon confuses when using showdesktop plugin + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + plugins/windowmenu/windowmenu.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/plugins/windowmenu/windowmenu.c b/plugins/windowmenu/windowmenu.c +index c96123a..9404021 100644 +--- a/plugins/windowmenu/windowmenu.c ++++ b/plugins/windowmenu/windowmenu.c +@@ -256,7 +256,7 @@ window_menu_plugin_init (WindowMenuPlugin *plugin) + g_signal_connect (G_OBJECT (plugin->button), "toggled", + G_CALLBACK (window_menu_plugin_menu), plugin); + +- plugin->icon = xfce_panel_image_new_from_source ("user-desktop"); ++ plugin->icon = xfce_panel_image_new_from_source (NULL); + gtk_container_add (GTK_CONTAINER (plugin->button), plugin->icon); + gtk_widget_show (plugin->icon); + } +@@ -634,7 +634,7 @@ window_menu_plugin_active_window_changed (WnckScreen *screen, + /* skip 'fake' windows */ + type = wnck_window_get_window_type (window); + if (type == WNCK_WINDOW_DESKTOP || type == WNCK_WINDOW_DOCK) +- goto show_desktop_icon; ++ goto show_no_icon; + + /* get the window icon and set the tooltip */ + gtk_widget_set_tooltip_text (GTK_WIDGET (icon), +@@ -648,11 +648,11 @@ window_menu_plugin_active_window_changed (WnckScreen *screen, + } + else + { +- show_desktop_icon: ++ show_no_icon: + +- /* desktop is shown right now */ +- xfce_panel_image_set_from_source (icon, "user-desktop"); +- gtk_widget_set_tooltip_text (GTK_WIDGET (icon), _("Desktop")); ++ /* no icon is shown right now */ ++ xfce_panel_image_set_from_source (icon, NULL); ++ gtk_widget_set_tooltip_text (GTK_WIDGET (icon), _("No Windows")); + } + } + } +-- +1.7.6.5 + diff --git a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.0.bb b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.0.bb deleted file mode 100644 index 9ac99a8b7e5..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Xfce4 Panel" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee" -DEPENDS = "libxfce4util garcon libxfce4ui xfconf exo gtk+ dbus cairo virtual/libx11 libxml2 libwnck" - -inherit xfce gtk-doc - -SRC_URI[md5sum] = "5a333af704e386c90ad829b6baf1a758" -SRC_URI[sha256sum] = "30920fc2e2fc26279a82b5261a155c2cc15ab2aa1ced2275684a6ff8261b97b0" - -python populate_packages_prepend() { - plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/') - plugin_name = d.expand('${PN}-plugin-%s') - do_split_packages(d, plugin_dir, '^lib(.*).so$', plugin_name, - '${PN} plugin for %s', extra_depends='', prepend=True, - aux_files_pattern=['${datadir}/xfce4/panel/plugins/%s.desktop', - '${sysconfdir}/xdg/xfce/panel/%s-*', - '${datadir}/icons/hicolor/48x48/apps/*-%s.png', - '${bindir}/*%s*']) -} - -PACKAGES_DYNAMIC += "^${PN}-plugin-.*" - -FILES_${PN} += "${libdir}/xfce4/panel/migrate \ - ${libdir}/xfce4/panel/wrapper-1.0" - -FILES_${PN}-dbg += "${libdir}/xfce4/panel/plugins/.debug \ -" diff --git a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.1.bb b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.1.bb new file mode 100644 index 00000000000..80332cebe5f --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.12.1.bb @@ -0,0 +1,43 @@ +SUMMARY = "Xfce4 Panel" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee" +DEPENDS = "libxfce4util garcon libxfce4ui xfconf exo gtk+ gtk+3 dbus cairo virtual/libx11 libxml2 libwnck" + +inherit xfce gtk-doc distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "0b943f2e72a3693dddb1af559826cb62" +SRC_URI[sha256sum] = "93d58b80cca9c9eb58adb281bc75404df7cf6cae89f7f98bb9f38690009aa2e8" +SRC_URI += " \ + file://0001-clock-time-make-change-of-system-s-timezone-change-t.patch \ + file://0002-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \ +" + +EXTRA_OECONF += "--enable-gtk3" + +python populate_packages_prepend() { + plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/') + plugin_name = d.expand('${PN}-plugin-%s') + do_split_packages(d, plugin_dir, '^lib(.*).so$', plugin_name, + '${PN} plugin for %s', extra_depends='', prepend=True, + aux_files_pattern=['${datadir}/xfce4/panel/plugins/%s.desktop', + '${sysconfdir}/xdg/xfce/panel/%s-*', + '${datadir}/icons/hicolor/48x48/apps/*-%s.png', + '${bindir}/*%s*']) +} + +PACKAGES_DYNAMIC += "^${PN}-plugin-.*" + +PACKAGES =+ "${PN}-gtk3" + +FILES_${PN} += "${libdir}/xfce4/panel/migrate \ + ${libdir}/xfce4/panel/wrapper-1.0" + +FILES_${PN}-gtk3 = " \ + ${libdir}/libxfce4panel-2.0${SOLIBS} \ + ${libdir}/xfce4/panel/wrapper-2.0 \ +" +FILES_${PN}-dbg += "${libdir}/xfce4/panel/plugins/.debug \ +" diff --git a/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.4.3.bb b/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.4.3.bb deleted file mode 100644 index 496b3fd0b4f..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.4.3.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "Power manager for the Xfce desktop environment" -HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-power-manager" -SECTION = "x11" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -inherit xfce - -DEPENDS = "gtk+ glib-2.0 dbus-glib xfconf libxfce4ui libxfce4util libnotify \ - libxrandr virtual/libx11 libxext xfce4-panel" - -SRC_URI[md5sum] = "caa17bfd96c0879e7bcc7432896fad52" -SRC_URI[sha256sum] = "018e11dd315745f582d70108b6071d37fb94854fde70961e17325bc19c4e2011" - -EXTRA_OECONF = " \ - --enable-network-manager \ - --enable-panel-plugins \ -" - -PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES','systemd','systemd','',d)}" -PACKAGECONFIG[systemd] = "--enable-polkit, --disable-polkit, polkit" - -PACKAGES += "xfce4-powermanager-plugin" - -FILES_${PN} += " \ - ${datadir}/polkit-1 \ - ${datadir}/appdata \ -" - -FILES_xfce4-powermanager-plugin = " \ - ${libdir}/xfce4 \ - ${datadir}/xfce4 \ -" - -RDEPENDS_xfce4-powermanager-plugin = "${PN}" -RDEPENDS_${PN} = "networkmanager udisks upower ${@base_contains('DISTRO_FEATURES','systemd','','consolekit',d)}" - -# xfce4-brightness-plugin was replaced by xfce4-powermanager-plugin -RPROVIDES_xfce4-powermanager-plugin += "xfce4-brightness-plugin" -RREPLACES_xfce4-powermanager-plugin += "xfce4-brightness-plugin" -RCONFLICTS_xfce4-powermanager-plugin += "xfce4-brightness-plugin" diff --git a/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.0.bb b/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.0.bb new file mode 100644 index 00000000000..08d00df7215 --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.0.bb @@ -0,0 +1,44 @@ +SUMMARY = "Power manager for the Xfce desktop environment" +HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-power-manager" +SECTION = "x11" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +inherit xfce distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS += "gtk+3 glib-2.0 dbus-glib xfconf libxfce4ui libxfce4util libnotify \ + libxrandr virtual/libx11 libxext xfce4-panel upower libxscrnsaver" + +SRC_URI[md5sum] = "2e2e24a1a22912d6a561ba6155887503" +SRC_URI[sha256sum] = "bde3157e06ab31ff23648d163d53ee5095f7819544a9f48d3a96d57829857f2b" + +EXTRA_OECONF = " \ + --enable-network-manager \ + --enable-panel-plugins \ +" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[systemd] = "--enable-polkit, --disable-polkit, polkit" + +PACKAGES += "xfce4-powermanager-plugin" + +FILES_${PN} += " \ + ${datadir}/polkit-1 \ + ${datadir}/appdata \ +" + +FILES_xfce4-powermanager-plugin = " \ + ${libdir}/xfce4 \ + ${datadir}/xfce4 \ +" + +RDEPENDS_xfce4-powermanager-plugin = "${PN}" +RDEPENDS_${PN} = "networkmanager ${@bb.utils.contains('DISTRO_FEATURES','systemd','','consolekit',d)}" + +# xfce4-brightness-plugin was replaced by xfce4-powermanager-plugin +RPROVIDES_xfce4-powermanager-plugin += "xfce4-brightness-plugin" +RREPLACES_xfce4-powermanager-plugin += "xfce4-brightness-plugin" +RCONFLICTS_xfce4-powermanager-plugin += "xfce4-brightness-plugin" diff --git a/meta-xfce/recipes-xfce/xfce4-session/machine-host.bb b/meta-xfce/recipes-xfce/xfce4-session/machine-host.bb new file mode 100644 index 00000000000..c79197445e0 --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-session/machine-host.bb @@ -0,0 +1,17 @@ +SUMMARY = "Meta package adding machine name to known hosts" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +ALLOW_EMPTY_${PN} = "1" + +LOCALHOSTMACHINE = "127.0.0.1 ${MACHINE}" + +# on some machines starting applications as xfce4-terminal take ages without +# machine name in hosts +pkg_postinst_${PN} () { +if ! grep -q '${LOCALHOSTMACHINE}' $D/etc/hosts ; then + echo '${LOCALHOSTMACHINE}' >> $D/etc/hosts +fi +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.0.bb b/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.0.bb deleted file mode 100644 index eaef4c6db65..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.0.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment" -SECTION = "x11" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" -DEPENDS = "virtual/libx11 libsm libxfce4util libxfce4ui gtk+ libwnck dbus dbus-glib xfconf polkit" -RDEPENDS_${PN} = "netbase xinit dbus-x11 iceauth upower" - -inherit xfce update-alternatives - -SRC_URI[md5sum] = "d75b257bc0954c238d3c82ce498525aa" -SRC_URI[sha256sum] = "68c85453b097d3ada573dcb7e72acd06e0fc34531996122c10d20096405b7b06" -SRC_URI += " \ - file://0001-configure.in-hard-code-path-to-iceauth.patch \ -" - -ALTERNATIVE_${PN} = "x-session-manager" -ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session" -ALTERNATIVE_PRIORITY_${PN} = "100" - -FILES_${PN} += " \ - ${libdir}/xfce4/*/*/*.so \ - ${libdir}/xfce4/session/*-*-* \ - ${datadir}/xsessions \ - ${datadir}/themes/Default/balou/* \ - ${datadir}/polkit-1 \ -" - -FILES_${PN}-dbg += "${libdir}/xfce4/*/*/.debug" diff --git a/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb b/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb new file mode 100644 index 00000000000..a2472060322 --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb @@ -0,0 +1,32 @@ +SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment" +SECTION = "x11" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" +DEPENDS = "virtual/libx11 libsm libxfce4util libxfce4ui gtk+ libwnck dbus dbus-glib xfconf polkit" +RDEPENDS_${PN} = "netbase xinit dbus-x11 iceauth upower" + +inherit xfce update-alternatives distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "f4921fb2e606e74643daf1212263076c" +SRC_URI[sha256sum] = "97d7f2a2d0af7f3623b68d1f04091e02913b28f9555dab8b0d26c8a1299d08fd" +SRC_URI += " \ + file://0001-configure.in-hard-code-path-to-iceauth.patch \ +" + +ALTERNATIVE_${PN} = "x-session-manager" +ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session" +ALTERNATIVE_PRIORITY_${PN} = "100" + +FILES_${PN} += " \ + ${libdir}/xfce4/*/*/*.so \ + ${libdir}/xfce4/session/*-*-* \ + ${datadir}/xsessions \ + ${datadir}/themes/Default/balou/* \ + ${datadir}/polkit-1 \ +" + +FILES_${PN}-dbg += "${libdir}/xfce4/*/*/.debug" + +RDEPENDS_${PN} += "machine-host" diff --git a/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch b/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch new file mode 100644 index 00000000000..67df05a79b4 --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch @@ -0,0 +1,33 @@ +From 2218ba8a21e9f5715b652c6416c2ddb552686b14 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 20 May 2012 15:22:09 +0200 +Subject: [PATCH] xsettings.xml: Set default themes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstram status: Inappropriate [configuration] + +Signed-off-by: Andreas Müller +--- + xfsettingsd/xsettings.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xfsettingsd/xsettings.xml b/xfsettingsd/xsettings.xml +index 65ba1ee..9efb3cd 100644 +--- a/xfsettingsd/xsettings.xml ++++ b/xfsettingsd/xsettings.xml +@@ -1,8 +1,8 @@ + + + +- +- ++ ++ + + + +-- +2.1.0 + diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0001-xsettings.xml-remove-trouble-causing-comment.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0001-xsettings.xml-remove-trouble-causing-comment.patch deleted file mode 100644 index f926a93d446..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0001-xsettings.xml-remove-trouble-causing-comment.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a84a7a6537544cdf56e1d4cad47a4cf002964039 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Sun, 20 May 2012 15:20:08 +0200 -Subject: [PATCH 1/2] xsettings.xml: remove trouble causing comment -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Upstream-Status: Pending - - -Signed-off-by: Andreas Müller ---- - xfsettingsd/xsettings.xml | 5 ----- - 1 files changed, 0 insertions(+), 5 deletions(-) - -diff --git a/xfsettingsd/xsettings.xml b/xfsettingsd/xsettings.xml -index 8f9e2eb..49a4c1e 100644 ---- a/xfsettingsd/xsettings.xml -+++ b/xfsettingsd/xsettings.xml -@@ -1,8 +1,3 @@ -- -- - - - --- -1.7.4.4 - diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0002-xsettings.xml-Set-default-themes.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0002-xsettings.xml-Set-default-themes.patch deleted file mode 100644 index 44478e6d83c..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0002-xsettings.xml-Set-default-themes.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 071a390ba09a8a412f73d295be81a805804a1f24 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Sun, 20 May 2012 15:22:09 +0200 -Subject: [PATCH 2/2] xsettings.xml: Set default themes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Upstram status: Inappropriate [configuration] - -Signed-off-by: Andreas Müller ---- - xfsettingsd/xsettings.xml | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/xfsettingsd/xsettings.xml b/xfsettingsd/xsettings.xml -index 49a4c1e..5ec94e9 100644 ---- a/xfsettingsd/xsettings.xml -+++ b/xfsettingsd/xsettings.xml -@@ -1,8 +1,8 @@ - - - -- -- -+ -+ - - - --- -1.7.4.4 - diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0001-add-cursor-theme-xfce-invisible.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0001-add-cursor-theme-xfce-invisible.patch deleted file mode 100644 index 5de14fc8e2b..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0001-add-cursor-theme-xfce-invisible.patch +++ /dev/null @@ -1,248 +0,0 @@ -From 4be18d7c8f2ac72b402dcbe8385922638fcd0a89 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 30 Oct 2012 13:14:11 +0100 -Subject: [PATCH 1/5] add cursor-theme "xfce-invisible" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Andreas Müller -Upstream-Status: Submitted [1] -[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474 ---- - Makefile.am | 1 + - configure.ac.in | 2 + - cursors/Makefile.am | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++ - cursors/index.theme | 3 + - 6 files changed, 184 insertions(+), 0 deletions(-) - create mode 100644 cursors/Makefile.am - create mode 100644 cursors/index.theme - -diff --git a/Makefile.am b/Makefile.am -index 3060bac..3f0dd1d 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,6 +1,7 @@ - # $Id$ - - SUBDIRS = \ -+ cursors \ - dialogs \ - xfce4-settings-manager \ - xfce4-settings-editor \ -diff --git a/configure.ac.in b/configure.ac.in -index 0e7907d..1378049 100644 ---- a/configure.ac.in -+++ b/configure.ac.in -@@ -157,6 +157,7 @@ dnl *** Optional support for Xcursor *** - dnl ************************************ - XDT_CHECK_OPTIONAL_PACKAGE([XCURSOR], [xcursor], [1.1.0], - [xcursor], [Cursor themes support]) -+AC_SUBST(cursordir, "\${datadir}/icons/xfce-invisible/cursors") - - dnl **************************************** - dnl *** Optional support for Libxklavier *** -@@ -232,6 +233,7 @@ AC_SUBST([PLATFORM_LDFLAGS]) - AC_OUTPUT([ - Makefile - po/Makefile.in -+cursors/Makefile - dialogs/Makefile - dialogs/appearance-settings/Makefile - dialogs/accessibility-settings/Makefile -diff --git a/cursors/Makefile.am b/cursors/Makefile.am -new file mode 100644 -index 0000000..c9e5a9f ---- /dev/null -+++ b/cursors/Makefile.am -@@ -0,0 +1,178 @@ -+CURSOR_NAMES_INVISIBLE = \ -+ 00008160000006810000408080010102 \ -+ 028006030e0e7ebffc7f7070c0600140 \ -+ 2870a09082c103050810ffdffffe0204 \ -+ 03b6e0fcb3499374a867c041f52298f0 \ -+ 0876e1c15ff2fc01f906f1c363074c0f \ -+ 08ffe1cb5fe6fc01f906f1c063814ccf \ -+ 08ffe1e65f80fcfdf9fff11263e74c48 \ -+ 1001208387f90000800003000700f6ff \ -+ 1081e37283d90000800003c07f3ef6bf \ -+ 14fef782d02440884392942c11205230 \ -+ 208530c400c041818281048008011002 \ -+ 3085a0e285430894940527032f8b26df \ -+ 4498f0e0c1937ffe01fd06f973665830 \ -+ 5aca4d189052212118709018842178c0 \ -+ 5c6cd98b3f3ebcb1f9c7f1c204630408 \ -+ 6407b0e94181790501fd1e167b474872 \ -+ 640fb0e74195791501fd1ed57b41487f \ -+ 9081237383d90e509aa00f00170e968f \ -+ 9d800788f1b08800ae810202380a0822 \ -+ a2a266d0498c3104214a47bd64ab0fc8 \ -+ b66166c04f8c3109214a4fbd64a50fc8 \ -+ c7088f0f3e6c8088236ef8e1e3e70000 \ -+ d9ce0ab605698f320427677b458ad60b \ -+ e29285e634086352946a0e7090d73106 \ -+ f41c0e382c94c0958e07017e42b00462 \ -+ f41c0e382c97c0938e07017e42800402 \ -+ fcf1c3c7cd4491d801f1e1c78f100000 \ -+ fcf21c00b30f7e3f83fe0dfd12e71cff \ -+ alias \ -+ all-scroll \ -+ arrow \ -+ base_arrow_down \ -+ base_arrow_up \ -+ based_arrow_down \ -+ based_arrow_up \ -+ bd_double_arrow \ -+ boat \ -+ bottom_left_corner \ -+ bottom_right_corner \ -+ bottom_side \ -+ bottom_tee \ -+ cell \ -+ center_ptr \ -+ circle \ -+ closedhand \ -+ color-picker \ -+ col-resize \ -+ copy \ -+ cross \ -+ cross_reverse \ -+ crossed_circle \ -+ crosshair \ -+ default \ -+ diamond_cross \ -+ dnd-ask \ -+ dnd-copy \ -+ dnd-link \ -+ dnd-move \ -+ dnd-no-drop \ -+ dnd-none \ -+ dot \ -+ dot_box_mask \ -+ dotbox \ -+ double_arrow \ -+ down_arrow \ -+ draft_large \ -+ draft_small \ -+ draped_box \ -+ e-resize \ -+ ew-resize \ -+ exchange \ -+ fd_double_arrow \ -+ fleur \ -+ forbidden \ -+ grab \ -+ grabbing \ -+ gumby \ -+ h_double_arrow \ -+ hand \ -+ hand1 \ -+ hand2 \ -+ help \ -+ ibeam \ -+ icon \ -+ left_arrow \ -+ left_ptr \ -+ left_side \ -+ left_tee \ -+ link \ -+ ll_angle \ -+ lr_angle \ -+ move \ -+ ne-resize \ -+ nesw-resize \ -+ no-drop \ -+ not-allowed \ -+ n-resize \ -+ ns-resize \ -+ nw-resize \ -+ nwse-resize \ -+ openhand \ -+ pencil \ -+ pirate \ -+ plus \ -+ pointer \ -+ pointing_hand \ -+ question_arrow \ -+ right_arrow \ -+ right_ptr \ -+ right_side \ -+ right_tee \ -+ row-resize \ -+ sailboat \ -+ sb_down_arrow \ -+ sb_h_double_arrow \ -+ sb_left_arrow \ -+ sb_right_arrow \ -+ sb_up_arrow \ -+ sb_v_double_arrow \ -+ se-resize \ -+ size_all \ -+ size_bdiag \ -+ size_fdiag \ -+ size_hor \ -+ size_ver \ -+ sizing \ -+ shuttle \ -+ split_h \ -+ split_v \ -+ s-resize \ -+ sw-resize \ -+ target \ -+ tcross \ -+ text \ -+ top_left_arrow \ -+ top_left_corner \ -+ top_right_corner \ -+ top_side \ -+ top_tee \ -+ trek \ -+ ul_angle \ -+ up_arrow \ -+ ur_angle \ -+ vertical-text \ -+ v_double_arrow \ -+ whats_this \ -+ w-resize \ -+ X_cursor \ -+ xterm \ -+ zoom-in \ -+ zoom-out -+ -+CURSOR_NAMES = \ -+ 3ecb610c1bf2410f44200f48c40d3599 \ -+ 08e8e1c95fe2fc01f976f1e063a24ccd \ -+ 00000000000000020006000e7e9ffc3f \ -+ half-busy \ -+ left_ptr_watch \ -+ progress \ -+ watch -+ -+ -+EXTRA_DIST = invisible wait index.theme -+ -+install-data-local: -+ $(mkinstalldirs) $(DESTDIR)@cursordir@; -+ $(INSTALL_DATA) $(srcdir)/index.theme $(DESTDIR)/@cursordir@/.. -+ $(INSTALL_DATA) $(srcdir)/invisible $(srcdir)/wait $(DESTDIR)@cursordir@/ -+ for CURSOR in $(CURSOR_NAMES_INVISIBLE); do \ -+ echo '-- Installing invisible cursor '$$CURSOR; \ -+ ln -s $(srcdir)/invisible $(DESTDIR)@cursordir@/$$CURSOR; \ -+ done -+ for CURSOR in $(CURSOR_NAMES); do \ -+ echo '-- Installing visible cursor '$$CURSOR; \ -+ ln -s $(srcdir)/wait $(DESTDIR)@cursordir@/$$CURSOR; \ -+ done -+ -diff --git a/cursors/index.theme b/cursors/index.theme -new file mode 100644 -index 0000000..0c48458 ---- /dev/null -+++ b/cursors/index.theme -@@ -0,0 +1,3 @@ -+[Icon Theme] -+Name=xfce-invisible -+Example=invisible --- -1.7.6.5 - diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0002-mouse-settings-dialog-add-touchscreen-pointer-option.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0002-mouse-settings-dialog-add-touchscreen-pointer-option.patch deleted file mode 100644 index cf58f73d8d4..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0002-mouse-settings-dialog-add-touchscreen-pointer-option.patch +++ /dev/null @@ -1,152 +0,0 @@ -From 7c87f8f202a7743a18b8d7fdab5c66a3d54badd5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 1 Nov 2012 21:01:59 +0100 -Subject: [PATCH 2/5] mouse settings dialog: add touchscreen-pointer option -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - - -Signed-off-by: Andreas Müller -Upstream-Status: Submitted [1] -[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474 ---- - dialogs/mouse-settings/main.c | 56 +++++++++++++++++++++++++++++ - dialogs/mouse-settings/mouse-dialog.glade | 28 ++++++++++++++- - 3 files changed, 422 insertions(+), 329 deletions(-) - -diff --git a/dialogs/mouse-settings/main.c b/dialogs/mouse-settings/main.c -index f4b475b..ff08219 100644 ---- a/dialogs/mouse-settings/main.c -+++ b/dialogs/mouse-settings/main.c -@@ -956,6 +956,50 @@ mouse_settings_device_set_enabled (GtkToggleButton *button, - - - -+#ifdef HAVE_XCURSOR -+static void -+mouse_settings_on_touchscreen_pointer (GtkToggleButton *button, -+ GtkBuilder *builder) -+{ -+ gchar *name = NULL; -+ gchar *prop; -+ gboolean enabled; -+ -+ if (locked > 0) -+ return; -+ -+ if (mouse_settings_device_get_selected (builder, NULL, &name)) -+ { -+ enabled = gtk_toggle_button_get_active (button); -+ prop = g_strconcat ("/", name, "/TouchscreenPointer", NULL); -+ xfconf_channel_set_bool (pointers_channel, prop, enabled); -+ g_free (prop); -+ } -+ g_free (name); -+} -+ -+static void -+mouse_settings_set_touchscreen_pointer (GtkBuilder *builder) -+{ -+ gchar *name = NULL; -+ gchar *prop; -+ gboolean enabled; -+ GtkToggleButton *button; -+ -+ if (mouse_settings_device_get_selected (builder, NULL, &name)) -+ { -+ button = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "touchscreen-pointer")); -+ prop = g_strconcat ("/", name, "/TouchscreenPointer", NULL); -+ enabled = xfconf_channel_get_bool (pointers_channel, prop, FALSE); -+ gtk_toggle_button_set_active (button, enabled); -+ g_free (prop); -+ } -+ g_free (name); -+} -+#endif -+ -+ -+ - static void - mouse_settings_device_selection_changed (GtkBuilder *builder) - { -@@ -1007,6 +1051,9 @@ mouse_settings_device_selection_changed (GtkBuilder *builder) - /* get the selected item */ - if (mouse_settings_device_get_selected (builder, &device, NULL)) - { -+#ifdef HAVE_XCURSOR -+ mouse_settings_set_touchscreen_pointer (builder); -+#endif - gdk_error_trap_push (); - device_info = XListInputDevices (xdisplay, &ndevices); - if (gdk_error_trap_pop () == 0 && device_info != NULL) -@@ -1735,11 +1782,20 @@ main (gint argc, gchar **argv) - /* populate the themes treeview */ - mouse_settings_themes_populate_store (builder); - -+ /* connect & fill touchscreen-pointer */ -+ object = gtk_builder_get_object (builder, "touchscreen-pointer"); -+ g_signal_connect (G_OBJECT (object), "toggled", -+ G_CALLBACK (mouse_settings_on_touchscreen_pointer), builder); -+ mouse_settings_set_touchscreen_pointer (builder); -+ - /* connect the cursor size in the cursor tab */ - object = gtk_builder_get_object (builder, "theme-cursor-size"); - xfconf_g_property_bind (xsettings_channel, "/Gtk/CursorThemeSize", - G_TYPE_INT, G_OBJECT (object), "value"); - #else -+ /* hide touchscreen-pointer */ -+ object = gtk_builder_get_object (builder, "touchscreen-pointer"); -+ gtk_widget_hide (GTK_WIDGET (object)); - /* hide the themes tab */ - object = gtk_builder_get_object (builder, "themes-hbox"); - gtk_widget_hide (GTK_WIDGET (object)); -diff --git a/dialogs/mouse-settings/mouse-dialog.glade b/dialogs/mouse-settings/mouse-dialog.glade -index d3aab0d..573c551 100644 ---- a/dialogs/mouse-settings/mouse-dialog.glade -+++ b/dialogs/mouse-settings/mouse-dialog.glade -@@ -323,7 +323,7 @@ - True - False - 6 -- 3 -+ 4 - 2 - 12 - 6 -@@ -415,6 +415,32 @@ - 3 - - -+ -+ -+ True -+ False -+ 0 -+ 0 -+ 0 -+ -+ -+ _Touchscreen pointer -+ False -+ True -+ True -+ False -+ When selected, no mouse pointer is displayed for this device and gtk TouchscreenMode is activated -+ True -+ True -+ -+ -+ -+ -+ 2 -+ 3 -+ 4 -+ -+ -

  • -
    -
    --- -1.7.6.5 - diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0003-XfcePointersHelper-gets-a-pointer-to-XfceXSettingsHe.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0003-XfcePointersHelper-gets-a-pointer-to-XfceXSettingsHe.patch deleted file mode 100644 index eff052b68f5..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0003-XfcePointersHelper-gets-a-pointer-to-XfceXSettingsHe.patch +++ /dev/null @@ -1,137 +0,0 @@ -From a3b0218137c8796fbb7bd6d852dc8ab5895a65cb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Sat, 3 Nov 2012 18:32:01 +0100 -Subject: [PATCH 3/5] XfcePointersHelper gets a pointer to XfceXSettingsHelper -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - - -Signed-off-by: Andreas Müller -Upstream-Status: Submitted [1] -[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474 ---- - xfsettingsd/main.c | 2 +- - xfsettingsd/pointers.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 56 insertions(+), 1 deletions(-) - -diff --git a/xfsettingsd/main.c b/xfsettingsd/main.c -index 55c4183..99982f7 100644 ---- a/xfsettingsd/main.c -+++ b/xfsettingsd/main.c -@@ -273,7 +273,7 @@ main (gint argc, gchar **argv) - #ifdef HAVE_XRANDR - displays_helper = g_object_new (XFCE_TYPE_DISPLAYS_HELPER, NULL); - #endif -- pointer_helper = g_object_new (XFCE_TYPE_POINTERS_HELPER, NULL); -+ pointer_helper = g_object_new (XFCE_TYPE_POINTERS_HELPER, "xsettings-helper", xsettings_helper, NULL); - keyboards_helper = g_object_new (XFCE_TYPE_KEYBOARDS_HELPER, NULL); - accessibility_helper = g_object_new (XFCE_TYPE_ACCESSIBILITY_HELPER, NULL); - shortcuts_helper = g_object_new (XFCE_TYPE_KEYBOARD_SHORTCUTS_HELPER, NULL); -diff --git a/xfsettingsd/pointers.c b/xfsettingsd/pointers.c -index e7192e7..62ebc60 100644 ---- a/xfsettingsd/pointers.c -+++ b/xfsettingsd/pointers.c -@@ -47,8 +47,16 @@ - - #define XFCONF_TYPE_G_VALUE_ARRAY (dbus_g_type_get_collection ("GPtrArray", G_TYPE_VALUE)) - -+/* Property identifiers */ -+enum -+{ -+ PROP_0, -+ PROP_XSETTINGS_HELPER, -+}; -+ - - -+static void xfce_pointers_helper_constructed (GObject *object); - static void xfce_pointers_helper_finalize (GObject *object); - static void xfce_pointers_helper_syndaemon_stop (XfcePointersHelper *helper); - static void xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper); -@@ -63,6 +71,10 @@ static GdkFilterReturn xfce_pointers_helper_event_filter (GdkXEvent - GdkEvent *gdk_event, - gpointer user_data); - #endif -+static void xfce_pointers_helper_set_property (GObject *object, -+ guint prop_id, -+ const GValue *value, -+ GParamSpec *pspec); - - - -@@ -75,6 +87,8 @@ struct _XfcePointersHelper - { - GObject __parent__; - -+ GObject *xsettings_helper; -+ - /* xfconf channel */ - XfconfChannel *channel; - -@@ -108,7 +122,18 @@ xfce_pointers_helper_class_init (XfcePointersHelperClass *klass) - { - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - -+ gobject_class->constructed = xfce_pointers_helper_constructed; - gobject_class->finalize = xfce_pointers_helper_finalize; -+ gobject_class->set_property = xfce_pointers_helper_set_property; -+ -+ g_object_class_install_property (gobject_class, -+ PROP_XSETTINGS_HELPER, -+ g_param_spec_object ("xsettings-helper", -+ "xsettings-helper", -+ "xsettings-helper", -+ G_TYPE_OBJECT, -+ G_PARAM_CONSTRUCT_ONLY | -+ G_PARAM_WRITABLE)); - } - - -@@ -116,6 +141,15 @@ xfce_pointers_helper_class_init (XfcePointersHelperClass *klass) - static void - xfce_pointers_helper_init (XfcePointersHelper *helper) - { -+ /* All initialisation is done at xfce_pointers_helper_constructed */ -+} -+ -+ -+ -+static void -+xfce_pointers_helper_constructed (GObject *object) -+{ -+ XfcePointersHelper *helper = XFCE_POINTERS_HELPER (object); - XExtensionVersion *version = NULL; - Display *xdisplay; - #ifdef DEVICE_HOTPLUGGING -@@ -181,6 +215,27 @@ xfce_pointers_helper_init (XfcePointersHelper *helper) - - - static void -+xfce_pointers_helper_set_property (GObject *object, -+ guint prop_id, -+ const GValue *value, -+ GParamSpec *pspec) -+{ -+ XfcePointersHelper *helper = XFCE_POINTERS_HELPER (object); -+ -+ switch (prop_id) -+ { -+ case PROP_XSETTINGS_HELPER: -+ helper->xsettings_helper = g_value_get_object (value); -+ break; -+ default: -+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); -+ break; -+ } -+} -+ -+ -+ -+static void - xfce_pointers_helper_finalize (GObject *object) - { - xfce_pointers_helper_syndaemon_stop (XFCE_POINTERS_HELPER (object)); --- -1.7.6.5 - diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0004-XfceXSettingsHelper-gets-a-property-touchscreen-poin.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0004-XfceXSettingsHelper-gets-a-property-touchscreen-poin.patch deleted file mode 100644 index cacb5c3a130..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0004-XfceXSettingsHelper-gets-a-property-touchscreen-poin.patch +++ /dev/null @@ -1,249 +0,0 @@ -From 878fe1287a4c73f67dd2b51d1d7c450097aeffa7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 20 Dec 2012 16:49:18 +0100 -Subject: [PATCH 4/5] XfceXSettingsHelper gets a property - "touchscreen-pointer" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When this property is set, it overrides overrides cursor theme to -"xfce-invisible" and sets /Gtk/TouchscreenMode. - -Signed-off-by: Andreas Müller -Upstream-Status: Submitted [1] -[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474 ---- - xfsettingsd/xsettings.c | 122 ++++++++++++++++++++++++++++++++++++++++++++- - xfsettingsd/xsettings.xml | 1 + - 2 files changed, 122 insertions(+), 1 deletions(-) - -diff --git a/xfsettingsd/xsettings.c b/xfsettingsd/xsettings.c -index 7657465..76bcea1 100644 ---- a/xfsettingsd/xsettings.c -+++ b/xfsettingsd/xsettings.c -@@ -73,6 +73,15 @@ typedef struct _XfceXSettingsNotify XfceXSettingsNotify; - - - -+/* Property identifiers */ -+enum -+{ -+ PROP_0, -+ PROP_TOUCHSCREEN_POINTER, -+}; -+ -+ -+ - static void xfce_xsettings_helper_finalize (GObject *object); - static void xfce_xsettings_helper_fc_free (XfceXSettingsHelper *helper); - static gboolean xfce_xsettings_helper_fc_init (gpointer data); -@@ -86,6 +95,10 @@ static void xfce_xsettings_helper_load (XfceXSettingsHelper *helper) - static void xfce_xsettings_helper_screen_free (XfceXSettingsScreen *screen); - static void xfce_xsettings_helper_notify_xft (XfceXSettingsHelper *helper); - static void xfce_xsettings_helper_notify (XfceXSettingsHelper *helper); -+static void xfce_xsettings_helper_set_property (GObject *object, -+ guint prop_id, -+ const GValue *value, -+ GParamSpec *pspec); - - - -@@ -120,6 +133,13 @@ struct _XfceXSettingsHelper - GPtrArray *fc_monitors; - guint fc_notify_timeout_id; - guint fc_init_id; -+ -+ /* keeper for touchscreen cursor theme / last set */ -+ GValue *touchscreen_cursor_value; -+ GValue *lastset_cursor_value; -+ -+ /* properties */ -+ gboolean touchscreen_pointer; - }; - - struct _XfceXSetting -@@ -157,6 +177,16 @@ xfce_xsettings_helper_class_init (XfceXSettingsHelperClass *klass) - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = xfce_xsettings_helper_finalize; -+ gobject_class->set_property = xfce_xsettings_helper_set_property; -+ -+ g_object_class_install_property (gobject_class, -+ PROP_TOUCHSCREEN_POINTER, -+ g_param_spec_boolean ("touchscreen-pointer", -+ "touchscreen-pointer", -+ "touchscreen-pointer", -+ FALSE, -+ G_PARAM_WRITABLE | -+ G_PARAM_STATIC_STRINGS)); - } - - -@@ -169,6 +199,13 @@ xfce_xsettings_helper_init (XfceXSettingsHelper *helper) - helper->settings = g_hash_table_new_full (g_str_hash, g_str_equal, - g_free, xfce_xsettings_helper_setting_free); - -+ helper->lastset_cursor_value = g_new0 (GValue, 1); -+ g_value_init(helper->lastset_cursor_value, G_TYPE_STRING); -+ g_value_set_string (helper->lastset_cursor_value, "default"); -+ helper->touchscreen_cursor_value = g_new0 (GValue, 1); -+ g_value_init(helper->touchscreen_cursor_value, G_TYPE_STRING); -+ g_value_set_string (helper->touchscreen_cursor_value, "xfce-invisible"); -+ - xfce_xsettings_helper_load (helper); - - g_signal_connect (G_OBJECT (helper->channel), "property-changed", -@@ -202,6 +239,9 @@ xfce_xsettings_helper_finalize (GObject *object) - - g_hash_table_destroy (helper->settings); - -+ g_free (helper->lastset_cursor_value); -+ g_free (helper->touchscreen_cursor_value); -+ - (*G_OBJECT_CLASS (xfce_xsettings_helper_parent_class)->finalize) (object); - } - -@@ -387,6 +427,61 @@ xfce_xsettings_helper_notify_xft_idle (gpointer data) - - - -+static void -+xfce_xsettings_helper_set_property (GObject *object, -+ guint prop_id, -+ const GValue *value, -+ GParamSpec *pspec) -+{ -+ gboolean touchscreen_pointer; -+ XfceXSetting *setting_theme, *setting_touchscreen; -+ XfceXSettingsHelper *helper = XFCE_XSETTINGS_HELPER (object); -+ GtkSettings *gtk_settings; -+ GValue bool_val = { 0, }; -+ -+ switch (prop_id) -+ { -+ case PROP_TOUCHSCREEN_POINTER: -+ touchscreen_pointer = g_value_get_boolean (value); -+ if (helper->touchscreen_pointer != touchscreen_pointer) -+ { -+ helper->touchscreen_pointer = touchscreen_pointer; -+ /* Update touchscreen-mode */ -+ xfconf_channel_set_bool (helper->channel, "/Gtk/TouchscreenMode", touchscreen_pointer); -+ /* Update cursor */ -+ setting_theme = g_hash_table_lookup (helper->settings, "/Gtk/CursorThemeName"); -+ if (G_LIKELY (setting_theme != NULL)) -+ { -+ /* update the serial */ -+ setting_theme->last_change_serial = helper->serial; -+ /* update value */ -+ g_value_reset (setting_theme->value); -+ g_value_copy (touchscreen_pointer ? -+ helper->touchscreen_cursor_value : -+ helper->lastset_cursor_value, -+ setting_theme->value); -+ } -+ else -+ g_critical("Setting not found for /Gtk/CursorThemeName"); -+ -+ if (G_LIKELY (setting_touchscreen != NULL || setting_theme != NULL)) -+ { -+ /* schedule xsettings update */ -+ if (helper->notify_idle_id == 0) -+ helper->notify_idle_id = g_idle_add (xfce_xsettings_helper_notify_idle, helper); -+ if (helper->notify_xft_idle_id == 0) -+ helper->notify_xft_idle_id = g_idle_add (xfce_xsettings_helper_notify_xft_idle, helper); -+ } -+ } -+ break; -+ default: -+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); -+ break; -+ } -+} -+ -+ -+ - static gboolean - xfce_xsettings_helper_prop_valid (const gchar *prop_name, - const GValue *value) -@@ -413,6 +508,28 @@ xfce_xsettings_helper_prop_valid (const gchar *prop_name, - - - -+static void -+xfce_xsettings_helper_check_cursor (const gchar *prop_name, -+ GValue *value, -+ XfceXSettingsHelper *helper) -+{ -+ if (g_strcmp0 (prop_name, "/Gtk/CursorThemeName") == 0) -+ { -+ /* Keep last cursor theme set */ -+ g_value_reset (helper->lastset_cursor_value); -+ g_value_copy (value, helper->lastset_cursor_value); -+ -+ /* invisible replacement required ? */ -+ if (helper->touchscreen_pointer) -+ { -+ g_value_reset (value); -+ g_value_copy (helper->touchscreen_cursor_value, value); -+ } -+ } -+} -+ -+ -+ - static gboolean - xfce_xsettings_helper_prop_load (gchar *prop_name, - GValue *value, -@@ -426,6 +543,7 @@ xfce_xsettings_helper_prop_load (gchar *prop_name, - - setting = g_slice_new0 (XfceXSetting); - setting->value = value; -+ xfce_xsettings_helper_check_cursor (prop_name, setting->value, helper); - setting->last_change_serial = helper->serial; - - xfsettings_dbg_filtered (XFSD_DEBUG_XSETTINGS, "prop \"%s\" loaded (type=%s)", -@@ -462,6 +580,7 @@ xfce_xsettings_helper_prop_changed (XfconfChannel *channel, - * it first */ - g_value_reset (setting->value); - g_value_copy (value, setting->value); -+ xfce_xsettings_helper_check_cursor (prop_name, setting->value, helper); - - /* update the serial */ - setting->last_change_serial = helper->serial; -@@ -475,6 +594,7 @@ xfce_xsettings_helper_prop_changed (XfconfChannel *channel, - - g_value_init (setting->value, G_VALUE_TYPE (value)); - g_value_copy (value, setting->value); -+ xfce_xsettings_helper_check_cursor (prop_name, setting->value, helper); - - g_hash_table_insert (helper->settings, g_strdup (prop_name), setting); - } -@@ -649,6 +769,7 @@ xfce_xsettings_helper_notify_xft (XfceXSettingsHelper *helper) - XfceXSetting *setting; - guint i; - GValue bool_val = { 0, }; -+ - const gchar *props[][2] = - { - /* { xfconf name}, { xft name } */ -@@ -700,7 +821,6 @@ xfce_xsettings_helper_notify_xft (XfceXSettingsHelper *helper) - PropModeReplace, - (guchar *) resource->str, - resource->len); -- - XCloseDisplay (xdisplay); - - if (gdk_error_trap_pop () != 0) ---- a/xfsettingsd/xsettings.xml -+++ b/xfsettingsd/xsettings.xml -@@ -36,5 +36,6 @@ - - - -+ - - --- -1.7.6.5 - diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0005-pointers-detect-a-change-of-pointer-device-used-and-.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0005-pointers-detect-a-change-of-pointer-device-used-and-.patch deleted file mode 100644 index 3c9b3dad9b8..00000000000 --- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0005-pointers-detect-a-change-of-pointer-device-used-and-.patch +++ /dev/null @@ -1,589 +0,0 @@ -From 78353322ce1070ee1fd7bb5367e2c4dd43928f42 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Thu, 20 Dec 2012 16:58:19 +0100 -Subject: [PATCH 5/5] pointers: detect a change of pointer-device used and set - "touchscreen-pointer" as found in xfconf -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -To detect pointer device in use the DevicePresence-, DeviceMotionNotify- and -DeviceButtonPress-events are handled. Tests showed that by repopenning and -closing the pointer devices (e.g when another setting was modified), the events -stopped working. Therefore all pointer devices are opened only once and managed -in a hash table. - -Signed-off-by: Andreas Müller -Upstream-Status: Submitted [1] -[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474 ---- - xfsettingsd/pointers.c | 342 ++++++++++++++++++++++++++++++++----------------- - 1 file changed, 225 insertions(+), 117 deletions(-) - -diff --git a/xfsettingsd/pointers.c b/xfsettingsd/pointers.c -index cfa56e2..41c8bba 100644 ---- a/xfsettingsd/pointers.c -+++ b/xfsettingsd/pointers.c -@@ -66,11 +66,9 @@ static void xfce_pointers_helper_channel_property_changed (XfconfCha - const gchar *property_name, - const GValue *value, - XfcePointersHelper *helper); --#ifdef DEVICE_HOTPLUGGING - static GdkFilterReturn xfce_pointers_helper_event_filter (GdkXEvent *xevent, - GdkEvent *gdk_event, - gpointer user_data); --#endif - static void xfce_pointers_helper_set_property (GObject *object, - guint prop_id, - const GValue *value, -@@ -96,8 +94,11 @@ struct _XfcePointersHelper - GPid syndaemon_pid; - #endif - -+ GHashTable *pointer_devices; -+ XID last_pointer_active; -+ gint device_motion_event_type; -+ gint device_button_press_event_type; - #ifdef DEVICE_HOTPLUGGING -- /* device presence event type */ - gint device_presence_event_type; - #endif - }; -@@ -117,6 +118,15 @@ G_DEFINE_TYPE (XfcePointersHelper, xfce_pointers_helper, G_TYPE_OBJECT); - - - -+typedef struct -+{ -+ XDevice *device; -+ gchar* name; -+} -+XfcePointerDeviceData; -+ -+ -+ - static void - xfce_pointers_helper_class_init (XfcePointersHelperClass *klass) - { -@@ -147,6 +157,18 @@ xfce_pointers_helper_init (XfcePointersHelper *helper) - - - static void -+xfce_pointers_device_close (gpointer data) -+{ -+ XfcePointerDeviceData *device_data = data; -+ -+ XCloseDevice (GDK_DISPLAY (), device_data->device); -+ g_free (device_data->name); -+ g_free (device_data); -+} -+ -+ -+ -+static void - xfce_pointers_helper_constructed (GObject *object) - { - XfcePointersHelper *helper = XFCE_POINTERS_HELPER (object); -@@ -185,6 +207,10 @@ xfce_pointers_helper_constructed (GObject *object) - helper->channel = xfconf_channel_get ("pointers"); - - /* restore the pointer devices */ -+ helper->pointer_devices = g_hash_table_new_full (g_int_hash, -+ g_int_equal, -+ g_free, -+ xfce_pointers_device_close); - xfce_pointers_helper_restore_devices (helper, NULL); - - /* monitor the channel */ -@@ -194,21 +220,20 @@ xfce_pointers_helper_constructed (GObject *object) - /* launch syndaemon if required */ - xfce_pointers_helper_syndaemon_check (helper); - --#ifdef DEVICE_HOTPLUGGING - if (G_LIKELY (xdisplay != NULL)) - { -+#ifdef DEVICE_HOTPLUGGING - /* monitor device changes */ - gdk_error_trap_push (); - DevicePresence (xdisplay, helper->device_presence_event_type, event_class); - XSelectExtensionEvent (xdisplay, RootWindow (xdisplay, DefaultScreen (xdisplay)), &event_class, 1); - - /* add an event filter */ -- if (gdk_error_trap_pop () == 0) -- gdk_window_add_filter (NULL, xfce_pointers_helper_event_filter, helper); -- else -+ if (gdk_error_trap_pop () != 0) - g_warning ("Failed to create device filter"); -- } - #endif -+ gdk_window_add_filter (NULL, xfce_pointers_helper_event_filter, helper); -+ } - } - } - -@@ -238,7 +263,10 @@ xfce_pointers_helper_set_property (GObject *object, - static void - xfce_pointers_helper_finalize (GObject *object) - { -- xfce_pointers_helper_syndaemon_stop (XFCE_POINTERS_HELPER (object)); -+ XfcePointersHelper* helper = XFCE_POINTERS_HELPER (object); -+ -+ xfce_pointers_helper_syndaemon_stop (helper); -+ g_hash_table_destroy (helper->pointer_devices); - - (*G_OBJECT_CLASS (xfce_pointers_helper_parent_class)->finalize) (object); - } -@@ -267,19 +295,19 @@ static void - xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper) - { - #ifdef DEVICE_PROPERTIES -- Display *xdisplay = GDK_DISPLAY (); -- XDeviceInfo *device_list; -- XDevice *device; -- gint n, ndevices; -- Atom touchpad_type; -- Atom touchpad_off_prop; -- Atom *props; -- gint i, nprops; -- gboolean have_synaptics = FALSE; -- gdouble disable_duration; -- gchar disable_duration_string[64]; -- gchar *args[] = { "syndaemon", "-i", disable_duration_string, "-K", "-R", NULL }; -- GError *error = NULL; -+ Display *xdisplay = GDK_DISPLAY (); -+ XDeviceInfo *device_list; -+ XfcePointerDeviceData *device_data; -+ gint n, ndevices; -+ Atom touchpad_type; -+ Atom touchpad_off_prop; -+ Atom *props; -+ gint i, nprops; -+ gboolean have_synaptics = FALSE; -+ gdouble disable_duration; -+ gchar disable_duration_string[64]; -+ gchar *args[] = { "syndaemon", "-i", disable_duration_string, "-K", "-R", NULL }; -+ GError *error = NULL; - - /* only stop a running daemon */ - if (!xfconf_channel_get_bool (helper->channel, "/DisableTouchpadWhileTyping", FALSE)) -@@ -299,17 +327,16 @@ xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper) - if (device_list[n].type != touchpad_type) - continue; - -- gdk_error_trap_push (); -- device = XOpenDevice (xdisplay, device_list[n].id); -- if (gdk_error_trap_pop () != 0 || device == NULL) -+ device_data = g_hash_table_lookup (helper->pointer_devices, &device_list[n].id); -+ if (device_data == NULL) - { -- g_critical ("Unable to open device %s", device_list[n].name); -+ g_critical ("xfce_pointers_helper_syndaemon_check: Unable to find device %s / ID %i in hash table", device_list[n].name, device_list[n].id); - break; - } - - /* look for the Synaptics Off property */ - gdk_error_trap_push (); -- props = XListDeviceProperties (xdisplay, device, &nprops); -+ props = XListDeviceProperties (xdisplay, device_data->device, &nprops); - if (gdk_error_trap_pop () == 0 - && props != NULL) - { -@@ -319,8 +346,6 @@ xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper) - XFree (props); - } - -- XCloseDevice (xdisplay, device); -- - if (have_synaptics) - break; - } -@@ -847,24 +872,56 @@ xfce_pointers_helper_change_properties (gpointer key, - - - static void -+xfce_pointers_helper_change_current_device (XfcePointersHelper *helper, -+ XID *xid) -+{ -+ XfcePointerDeviceData *device_data; -+ gchar* prop; -+ GValue bool_val = { 0, }; -+ -+ helper->last_pointer_active = *xid; -+ device_data = g_hash_table_lookup (helper->pointer_devices, xid); -+ if (device_data == NULL) -+ { -+ g_critical ("Unable to find device ID %i in hash table", *xid); -+ return; -+ } -+ if (G_LIKELY (G_IS_OBJECT (helper->xsettings_helper))) -+ { -+ prop = g_strconcat ("/", device_data->name, "/TouchscreenPointer", NULL); -+ g_value_init (&bool_val, G_TYPE_BOOLEAN); -+ g_value_set_boolean (&bool_val, -+ xfconf_channel_get_bool (helper->channel, prop, FALSE)); -+ g_object_set_property (helper->xsettings_helper, "touchscreen-pointer", &bool_val); -+ g_value_unset (&bool_val); -+ g_free (prop); -+ } -+ else -+ g_critical ("xsettings_helper was not properly set"); -+} -+ -+ -+static void - xfce_pointers_helper_restore_devices (XfcePointersHelper *helper, - XID *xid) - { -- Display *xdisplay = GDK_DISPLAY (); -- XDeviceInfo *device_list, *device_info; -- gint n, ndevices; -- XDevice *device; -- gchar *device_name; -- gchar prop[256]; -- gboolean right_handed; -- gboolean reverse_scrolling; -- gint threshold; -- gdouble acceleration; -+ Display *xdisplay = GDK_DISPLAY (); -+ XDeviceInfo *device_list, *device_info; -+ gint n, ndevices; -+ XDevice *device; -+ XfcePointerDeviceData *device_data; -+ gchar *device_name; -+ gchar prop[256]; -+ gboolean right_handed; -+ gboolean reverse_scrolling; -+ gint threshold; -+ gdouble acceleration; -+ XEventClass event_classes[2]; - #ifdef DEVICE_PROPERTIES -- GHashTable *props; -- XfcePointerData pointer_data; -+ GHashTable *props; -+ XfcePointerData pointer_data; - #endif -- const gchar *mode; -+ const gchar *mode; - - gdk_error_trap_push (); - device_list = XListInputDevices (xdisplay, &ndevices); -@@ -874,86 +931,110 @@ xfce_pointers_helper_restore_devices (XfcePointersHelper *helper, - return; - } - -+ device_data = NULL; - for (n = 0; n < ndevices; n++) - { -- /* filter the pointer devices */ -+ /* filter the physical pointer devices */ - device_info = &device_list[n]; - if (device_info->use != IsXExtensionPointer -- || device_info->name == NULL) -+ || device_info->name == NULL -+ || g_str_has_prefix (device_info->name, "Virtual core XTEST")) - continue; - - /* filter out the device if one is set */ - if (xid != NULL && device_info->id != *xid) - continue; - -- /* open the device */ -- gdk_error_trap_push (); -- device = XOpenDevice (xdisplay, device_info->id); -- if (gdk_error_trap_pop () != 0 || device == NULL) -+ device_data = g_hash_table_lookup (helper->pointer_devices, &device_info->id); -+ if (device_data == NULL) - { -- g_critical ("Unable to open device %s", device_info->name); -- continue; -- } -+ /* open the device and insert to hash */ -+ gdk_error_trap_push (); -+ device = XOpenDevice (xdisplay, device_info->id); -+ if (G_UNLIKELY(gdk_error_trap_pop () != 0 || device == NULL)) -+ { -+ g_critical ("Unable to open device %s / ID: %i", device_info->name, device_info->id); -+ continue; -+ } - -- /* create a valid xfconf property name for the device */ -- device_name = xfce_pointers_helper_device_xfconf_name (device_info->name); -+ /* create a valid xfconf property name for the device */ -+ device_name = xfce_pointers_helper_device_xfconf_name (device_info->name); - -- /* read buttonmap properties */ -- g_snprintf (prop, sizeof (prop), "/%s/RightHanded", device_name); -- right_handed = xfconf_channel_get_bool (helper->channel, prop, -1); -+ /* add device to our list */ -+ device_data = g_new (XfcePointerDeviceData, 1); -+ device_data->device = device; -+ device_data->name = device_name; -+ g_hash_table_insert (helper->pointer_devices, g_memdup (&device_info->id, sizeof(device_info->id)), device_data); - -- g_snprintf (prop, sizeof (prop), "/%s/ReverseScrolling", device_name); -- reverse_scrolling = xfconf_channel_get_bool (helper->channel, prop, -1); -+ /* catch motion event / button-press for new device */ -+ gdk_error_trap_push (); -+ DeviceMotionNotify (device, helper->device_motion_event_type, event_classes[0]); -+ DeviceButtonPress (device, helper->device_button_press_event_type, event_classes[1]); -+ XSelectExtensionEvent (xdisplay, RootWindow (xdisplay, DefaultScreen (xdisplay)), event_classes, 2); -+ if (G_UNLIKELY (gdk_error_trap_pop () != 0)) -+ g_critical ("Unable to register DeviceButtonPress/DeviceMotionNotify for %i", device_info->id); - -- if (right_handed != -1 || reverse_scrolling != -1) -- { -- xfce_pointers_helper_change_button_mapping (device_info, device, xdisplay, -+ -+ /* read buttonmap properties */ -+ g_snprintf (prop, sizeof (prop), "/%s/RightHanded", device_name); -+ right_handed = xfconf_channel_get_bool (helper->channel, prop, -1); -+ -+ g_snprintf (prop, sizeof (prop), "/%s/ReverseScrolling", device_name); -+ reverse_scrolling = xfconf_channel_get_bool (helper->channel, prop, -1); -+ -+ if (right_handed != -1 || reverse_scrolling != -1) -+ { -+ xfce_pointers_helper_change_button_mapping (device_info, device, xdisplay, - right_handed, reverse_scrolling); -- } -+ } - -- /* read feedback settings */ -- g_snprintf (prop, sizeof (prop), "/%s/Threshold", device_name); -- threshold = xfconf_channel_get_int (helper->channel, prop, -1); -+ /* read feedback settings */ -+ g_snprintf (prop, sizeof (prop), "/%s/Threshold", device_name); -+ threshold = xfconf_channel_get_int (helper->channel, prop, -1); - -- g_snprintf (prop, sizeof (prop), "/%s/Acceleration", device_name); -- acceleration = xfconf_channel_get_double (helper->channel, prop, -1.00); -+ g_snprintf (prop, sizeof (prop), "/%s/Acceleration", device_name); -+ acceleration = xfconf_channel_get_double (helper->channel, prop, -1.00); - -- if (threshold != -1 || acceleration != -1.00) -- { -- xfce_pointers_helper_change_feedback (device_info, device, xdisplay, -- threshold, acceleration); -- } -+ if (threshold != -1 || acceleration != -1.00) -+ { -+ xfce_pointers_helper_change_feedback (device_info, device, xdisplay, -+ threshold, acceleration); -+ } - -- /* read mode settings */ -- g_snprintf (prop, sizeof (prop), "/%s/Mode", device_name); -- mode = xfconf_channel_get_string (helper->channel, prop, NULL); -+ /* read mode settings */ -+ g_snprintf (prop, sizeof (prop), "/%s/Mode", device_name); -+ mode = xfconf_channel_get_string (helper->channel, prop, NULL); - -- if (mode != NULL) -- xfce_pointers_helper_change_mode (device_info, device, xdisplay, mode); -+ if (mode != NULL) -+ xfce_pointers_helper_change_mode (device_info, device, xdisplay, mode); - - #ifdef DEVICE_PROPERTIES -- /* set device properties */ -- g_snprintf (prop, sizeof (prop), "/%s/Properties", device_name); -- props = xfconf_channel_get_properties (helper->channel, prop); -+ /* set device properties */ -+ g_snprintf (prop, sizeof (prop), "/%s/Properties", device_name); -+ props = xfconf_channel_get_properties (helper->channel, prop); - -- if (props != NULL) -- { -- pointer_data.xdisplay = xdisplay; -- pointer_data.device = device; -- pointer_data.device_info = device_info; -- pointer_data.prop_name_len = strlen (prop) + 1; -+ if (props != NULL) -+ { -+ pointer_data.xdisplay = xdisplay; -+ pointer_data.device = device; -+ pointer_data.device_info = device_info; -+ pointer_data.prop_name_len = strlen (prop) + 1; - -- g_hash_table_foreach (props, xfce_pointers_helper_change_properties, &pointer_data); -+ g_hash_table_foreach (props, xfce_pointers_helper_change_properties, &pointer_data); - -- g_hash_table_destroy (props); -- } -+ g_hash_table_destroy (props); -+ } - #endif -- -- g_free (device_name); -- XCloseDevice (xdisplay, device); -+ } - } -- - XFreeDeviceList (device_list); -+ if (G_LIKELY (device_data != NULL)) -+ { -+ if (helper->last_pointer_active != device_data->device->device_id) -+ xfce_pointers_helper_change_current_device (helper, &device_data->device->device_id); -+ } -+ else -+ g_critical("no device selected in xfce_pointers_helper_restore_devices"); - } - - -@@ -964,12 +1045,12 @@ xfce_pointers_helper_channel_property_changed (XfconfChannel *channel, - const GValue *value, - XfcePointersHelper *helper) - { -- Display *xdisplay = GDK_DISPLAY (); -- XDeviceInfo *device_list, *device_info; -- XDevice *device; -- gint n, ndevices; -- gchar **names; -- gchar *device_name; -+ Display *xdisplay = GDK_DISPLAY (); -+ XDeviceInfo *device_list, *device_info; -+ XfcePointerDeviceData *device_data; -+ gint n, ndevices; -+ gchar **names; -+ gchar *device_name; - - if (G_UNLIKELY (property_name == NULL)) - return; -@@ -1000,63 +1081,72 @@ xfce_pointers_helper_channel_property_changed (XfconfChannel *channel, - /* filter the pointer devices */ - device_info = &device_list[n]; - if (device_info->use != IsXExtensionPointer -- || device_info->name == NULL) -+ || device_info->name == NULL -+ || g_str_has_prefix (device_info->name, "Virtual core XTEST")) - continue; - - /* search the device name */ - device_name = xfce_pointers_helper_device_xfconf_name (device_info->name); - if (strcmp (names[0], device_name) == 0) - { -- /* open the device */ -- gdk_error_trap_push (); -- device = XOpenDevice (xdisplay, device_info->id); -- if (gdk_error_trap_pop () != 0 || device == NULL) -+ /* find the device */ -+ device_data = g_hash_table_lookup (helper->pointer_devices, &device_info->id); -+ if (device_data == NULL) - { -- g_critical ("Unable to open device %s", device_info->name); -+ g_critical ("xfce_pointers_helper_channel_property_changed: Unable to find device %s / ID %i in hash table", device_info->name, device_info->id); - continue; - } - - /* check the property that requires updating */ - if (strcmp (names[1], "RightHanded") == 0) - { -- xfce_pointers_helper_change_button_mapping (device_info, device, xdisplay, -+ xfce_pointers_helper_change_button_mapping (device_info, device_data->device, xdisplay, - g_value_get_boolean (value), -1); - } - else if (strcmp (names[1], "ReverseScrolling") == 0) - { -- xfce_pointers_helper_change_button_mapping (device_info, device, xdisplay, -+ xfce_pointers_helper_change_button_mapping (device_info, device_data->device, xdisplay, - -1, g_value_get_boolean (value)); - } - else if (strcmp (names[1], "Threshold") == 0) - { -- xfce_pointers_helper_change_feedback (device_info, device, xdisplay, -+ xfce_pointers_helper_change_feedback (device_info, device_data->device, xdisplay, - g_value_get_int (value), -2.00); - } - else if (strcmp (names[1], "Acceleration") == 0) - { -- xfce_pointers_helper_change_feedback (device_info, device, xdisplay, -+ xfce_pointers_helper_change_feedback (device_info, device_data->device, xdisplay, - -2, g_value_get_double (value)); - } - #ifdef DEVICE_PROPERTIES - else if (strcmp (names[1], "Properties") == 0) - { -- xfce_pointers_helper_change_property (device_info, device, xdisplay, -+ xfce_pointers_helper_change_property (device_info, device_data->device, xdisplay, - names[2], value); - } - #endif - else if (strcmp (names[1], "Mode") == 0) - { -- xfce_pointers_helper_change_mode (device_info, device, xdisplay, -+ xfce_pointers_helper_change_mode (device_info, device_data->device, xdisplay, - g_value_get_string (value)); - } -+ else if (strcmp (names[1], "TouchscreenPointer") == 0) -+ { -+ /* only hide if the current device's property was changed */ -+ if (device_info->id == helper->last_pointer_active) -+ { -+ if (G_LIKELY (G_IS_OBJECT (helper->xsettings_helper))) -+ g_object_set_property (helper->xsettings_helper, "touchscreen-pointer", value); -+ else -+ g_critical ("xsettings_helper was not properly set"); -+ } -+ } - else - { - g_warning ("Unknown property %s set for device %s", - property_name, device_info->name); - } - -- XCloseDevice (xdisplay, device); -- - /* stop searching */ - n = ndevices; - } -@@ -1072,26 +1162,44 @@ xfce_pointers_helper_channel_property_changed (XfconfChannel *channel, - - - --#ifdef DEVICE_HOTPLUGGING - static GdkFilterReturn - xfce_pointers_helper_event_filter (GdkXEvent *xevent, - GdkEvent *gdk_event, - gpointer user_data) - { -+ XDevicePresenceNotifyEvent *dpn_event; - XEvent *event = xevent; -- XDevicePresenceNotifyEvent *dpn_event = xevent; - XfcePointersHelper *helper = XFCE_POINTERS_HELPER (user_data); - -- if (event->type == helper->device_presence_event_type) -+ /* Comparison for device changed is done here redundantly to prevent call -+ * on every mouse move. -+ */ -+ if (event->type == helper->device_motion_event_type -+ && helper->last_pointer_active != ((XDeviceMotionEvent*)xevent)->deviceid) -+ xfce_pointers_helper_change_current_device (helper, &((XDeviceMotionEvent*)xevent)->deviceid); -+ else if (event->type == helper->device_button_press_event_type -+ && helper->last_pointer_active != ((XDeviceButtonEvent*)xevent)->deviceid) -+ xfce_pointers_helper_change_current_device (helper, &((XDeviceButtonEvent*)xevent)->deviceid); -+ -+#ifdef DEVICE_HOTPLUGGING -+ /* handle device add/remove */ -+ else if (event->type == helper->device_presence_event_type) - { -+ dpn_event = xevent; - /* restore device settings */ - if (dpn_event->devchange == DeviceAdded) - xfce_pointers_helper_restore_devices (helper, &dpn_event->deviceid); -+ else if(dpn_event->devchange == DeviceRemoved) -+ /* we could try to find a remaining pointer to set that as active -+ * one but that might not fit and as soon as the user works with -+ * another pointer we are changing to correct one. -+ */ -+ g_hash_table_remove (helper->pointer_devices, &dpn_event->deviceid); - - /* check if we need to launch syndaemon */ - xfce_pointers_helper_syndaemon_check (helper); - } -+#endif - - return GDK_FILTER_CONTINUE; - } --#endif --- -1.8.3.1 - diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/invisible b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/invisible deleted file mode 100644 index ef4d9aadb6d..00000000000 Binary files a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/invisible and /dev/null differ diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/wait b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/wait deleted file mode 100644 index 8b9ac7e20af..00000000000 Binary files a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/wait and /dev/null differ diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb index 5ce38b9131e..b98d8a79993 100644 --- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb +++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb @@ -2,23 +2,29 @@ SUMMARY = "Xfce4 settings" SECTION = "x11/wm" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "exo exo-native garcon gtk+ libxfce4util libxfce4ui xfconf dbus-glib libxi virtual/libx11 xrandr libnotify libxcursor libxklavier upower" +DEPENDS = "exo exo-native garcon gtk+ libxfce4util libxfce4ui xfconf dbus-glib libxi virtual/libx11 xrandr libxcursor libxklavier upower" -inherit xfce xfce-git +inherit xfce xfce-git distro_features_check -SRC_URI = " git://github.com/schnitzeltony/xfce4-settings.git;protocol=git;branch=for-oe-4.12.0 \ - file://0001-xsettings.xml-remove-trouble-causing-comment.patch \ - file://0002-xsettings.xml-Set-default-themes.patch \ +REQUIRED_DISTRO_FEATURES = "x11" + +# schnitzeltony git repo is the mainline repo +# + datetime-setter - sent to mainline but strange response +# + minor bugfixes - sent mainline but no response +# + option to hide mousepointer for a specific (touch) input device - sent mainline but no response +SRC_URI = " \ + git://github.com/schnitzeltony/xfce4-settings.git;protocol=git;branch=for-oe-4.12.1 \ + file://0001-xsettings.xml-Set-default-themes.patch \ " -SRCREV = "a4540c2350cecf53f7095027edd102c6a24e36af" +SRCREV = "0766cf81daa9d41d0d0fed2fb73a8a26709a3bca" S = "${WORKDIR}/git" -PV = "4.12.0+git${SRCPV}" - +PV = "4.12.1+git${SRCPV}" + EXTRA_OECONF += "--enable-maintainer-mode --disable-debug" PACKAGECONFIG ??= " \ - ${@base_contains('DISTRO_FEATURES','systemd','datetime-setter','',d)} \ - ${@base_contains('DISTRO_FEATURES','alsa','sound-setter', base_contains('DISTRO_FEATURES','pulseaudio','sound-setter','',d),d)} \ + ${@bb.utils.contains('DISTRO_FEATURES','systemd','datetime-setter','',d)} \ + ${@bb.utils.contains('DISTRO_FEATURES','alsa','sound-setter', bb.utils.contains('DISTRO_FEATURES','pulseaudio','sound-setter','',d),d)} \ " PACKAGECONFIG[datetime-setter] = "--enable-datetime-settings, --disable-datetime-settings,, tzdata" PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify" @@ -29,6 +35,6 @@ FILES_${PN} += " \ ${datadir}/xfce4 \ " -RRECOMMENDS_${PN} += "gnome-icon-theme" -RRECOMMENDS_${PN} += "${@base_contains('DISTRO_FEATURES','alsa','libcanberra-alsa','',d)}" -RRECOMMENDS_${PN} += "${@base_contains('DISTRO_FEATURES','pulseaudio','libcanberra-pulse','',d)}" +RRECOMMENDS_${PN} += "adwaita-icon-theme" +RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','alsa','libcanberra-alsa','',d)}" +RRECOMMENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','pulseaudio','libcanberra-pulse','',d)}" diff --git a/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.0.bb b/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.0.bb deleted file mode 100644 index ff1dfa440c0..00000000000 --- a/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Xfce configuration daemon and utilities" -SECTION = "x11/wm" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -DEPENDS = "dbus-glib libxfce4util perl intltool-native xfce4-dev-tools-native" - -inherit xfce gtk-doc - -EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl" - -SRC_URI[md5sum] = "8ebfac507b4d6ce3f4bac9d257c2853b" -SRC_URI[sha256sum] = "9910eaea8405336415d4d7f3056403f8c67bc23ba0dce251eac35205c603b156" - -FILES_${PN} += "${libdir}/xfce4/xfconf/xfconfd \ - ${datadir}/dbus-1/services/org.xfce.Xfconf.service" diff --git a/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.1.bb b/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.1.bb new file mode 100644 index 00000000000..a42426fa1a5 --- /dev/null +++ b/meta-xfce/recipes-xfce/xfconf/xfconf_4.12.1.bb @@ -0,0 +1,15 @@ +SUMMARY = "Xfce configuration daemon and utilities" +SECTION = "x11/wm" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" +DEPENDS = "dbus-glib libxfce4util perl intltool-native xfce4-dev-tools-native" + +inherit xfce gtk-doc + +EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl" + +SRC_URI[md5sum] = "20dc8d2bfd80ba136bf4964021b32757" +SRC_URI[sha256sum] = "35f48564e5694faa54fdc180cd3268e16fc2352946a89a3c2fc12cbe400ada36" + +FILES_${PN} += "${libdir}/xfce4/xfconf/xfconfd \ + ${datadir}/dbus-1/services/org.xfce.Xfconf.service" diff --git a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.0.bb b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.0.bb deleted file mode 100644 index a24528f10c6..00000000000 --- a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -SUMMARY = "Xfce4 Desktop Manager" -SECTION = "x11/base" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "glib-2.0 gtk+ libxfce4util libxfce4ui libwnck xfconf dbus-glib thunar garcon exo" - -inherit xfce - -SRC_URI[md5sum] = "d14545baf39678d3b1c7280f71e9d160" -SRC_URI[sha256sum] = "6e7a8b87317762214b6407576f6e2c1efcc176c136b4c7b869d18a74c87b7fc7" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify" - -FILES_${PN} += "${datadir}/backgrounds" diff --git a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb new file mode 100644 index 00000000000..d9cbe71966a --- /dev/null +++ b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb @@ -0,0 +1,17 @@ +SUMMARY = "Xfce4 Desktop Manager" +SECTION = "x11/base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "glib-2.0 gtk+ libxfce4util libxfce4ui libwnck xfconf dbus-glib dbus-glib-native thunar garcon exo" + +inherit xfce distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "7571889368be72df185ce2d470f37198" +SRC_URI[sha256sum] = "098a35510562907e1431d5adbfa8307484a235c1dec6a43e2d58d2ac4241f1cb" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify" + +FILES_${PN} += "${datadir}/backgrounds" diff --git a/meta-xfce/recipes-xfce/xfwm4/files/0001-don-t-block-display-events-when-time-is-set-backward.patch b/meta-xfce/recipes-xfce/xfwm4/files/0001-don-t-block-display-events-when-time-is-set-backward.patch deleted file mode 100644 index 08fd76bb29c..00000000000 --- a/meta-xfce/recipes-xfce/xfwm4/files/0001-don-t-block-display-events-when-time-is-set-backward.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e87977696f03b0c9f72884f8e3e3ec3248dfd80a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Tue, 18 Jun 2013 12:46:42 +0200 -Subject: [PATCH] don't block display events when time is set backwards -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Submitted [1] - -[1] https://bugzilla.xfce.org/show_bug.cgi?id=10184 - -Signed-off-by: Andreas Müller ---- - src/display.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/display.c b/src/display.c -index 00318d5..651bc7a 100644 ---- a/src/display.c -+++ b/src/display.c -@@ -733,7 +733,7 @@ myDisplayUpdateCurrentTime (DisplayInfo *display, XEvent *ev) - break; - } - -- if ((timestamp != (guint32) CurrentTime) && TIMESTAMP_IS_BEFORE(display->current_time, timestamp)) -+ if ((timestamp != (guint32) CurrentTime) /*&& TIMESTAMP_IS_BEFORE(display->current_time, timestamp)*/) - { - display->current_time = timestamp; - } --- -1.7.6.5 - diff --git a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.2.bb b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.2.bb deleted file mode 100644 index 8239f39272d..00000000000 --- a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.2.bb +++ /dev/null @@ -1,29 +0,0 @@ -DESCRIPTION="Xfce4 Window Manager" -SECTION = "x11/wm" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" -DEPENDS = "virtual/libx11 libxpm gtk+ libxfce4util libxfce4ui xfconf libwnck dbus-glib startup-notification exo-native" - -inherit xfce update-alternatives - -SRC_URI += "file://0001-don-t-block-display-events-when-time-is-set-backward.patch" -SRC_URI[md5sum] = "3728768dd9ea0de624cd3efc5dcccbca" -SRC_URI[sha256sum] = "5bb5f72b41060d10bd3823f8b69abcd462bbd8853fdf9c82041450ae68e7d75a" - -python populate_packages_prepend () { - themedir = d.expand('${datadir}/themes') - do_split_packages(d, themedir, '^(.*)', 'xfwm4-theme-%s', 'XFWM4 theme %s', allow_dirs=True) -} - -PACKAGES_DYNAMIC += "^xfwm4-theme-.*" - -ALTERNATIVE_${PN} = "x-window-manager" -ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/xfwm4" -ALTERNATIVE_PRIORITY[x-window-manager] = "30" - -RDEPENDS_${PN} = "xfwm4-theme-default" -FILES_${PN} += "${libdir}/xfce4/xfwm4/helper-dialog \ - ${datadir}/xfwm4/defaults \ -" -FILES_${PN}-dbg += "${libexecdir}/xfce4/xfwm4/.debug/*" - diff --git a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb new file mode 100644 index 00000000000..2aa68e3fde7 --- /dev/null +++ b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb @@ -0,0 +1,30 @@ +DESCRIPTION="Xfce4 Window Manager" +SECTION = "x11/wm" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855" +DEPENDS = "virtual/libx11 libxpm gtk+ libxfce4util libxfce4ui xfconf libwnck dbus-glib startup-notification exo-native" + +inherit xfce update-alternatives distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[md5sum] = "3ec136efc5387fd3b53cd66b684f52d7" +SRC_URI[sha256sum] = "fa74048a75649a6e92df763a3cfb706d3fed1e1a6adf567f6693325a5a6efb36" + +python populate_packages_prepend () { + themedir = d.expand('${datadir}/themes') + do_split_packages(d, themedir, '^(.*)', 'xfwm4-theme-%s', 'XFWM4 theme %s', allow_dirs=True) +} + +PACKAGES_DYNAMIC += "^xfwm4-theme-.*" + +ALTERNATIVE_${PN} = "x-window-manager" +ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/xfwm4" +ALTERNATIVE_PRIORITY[x-window-manager] = "30" + +RDEPENDS_${PN} = "xfwm4-theme-default" +FILES_${PN} += "${libdir}/xfce4/xfwm4/helper-dialog \ + ${datadir}/xfwm4/defaults \ +" +FILES_${PN}-dbg += "${libexecdir}/xfce4/xfwm4/.debug/*" + diff --git a/toolchain-layer/COPYING.MIT b/toolchain-layer/COPYING.MIT deleted file mode 100644 index fb950dc69fe..00000000000 --- a/toolchain-layer/COPYING.MIT +++ /dev/null @@ -1,17 +0,0 @@ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/toolchain-layer/README b/toolchain-layer/README deleted file mode 100644 index 7af26ec9311..00000000000 --- a/toolchain-layer/README +++ /dev/null @@ -1,15 +0,0 @@ -This layer depends on: - -URI: git://github.com/openembedded/oe-core.git -branch: master -revision: HEAD - -Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][toolchain-layer]' in the subject' - -When sending single patches, please use something like: -'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][toolchain-layer][PATCH' - -You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch ' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI. - -Main layer maintainer: Koen Kooi - diff --git a/toolchain-layer/conf/layer.conf b/toolchain-layer/conf/layer.conf deleted file mode 100644 index b377f123601..00000000000 --- a/toolchain-layer/conf/layer.conf +++ /dev/null @@ -1,30 +0,0 @@ -# It really depends on order of the layers appearing in BBLAYERS -# variable in toplevel bblayers.conf file, where bitbake will search -# for .inc files and others where bitbake uses BBPATH since it will -# search the directories from first to last as specified in BBPATH -# Therefore if you want a given layer to be considered high priority -# for the .inc and .conf etc. then consider it adding at the beginning -# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve -# the recipe contention so the order of directories in BBFILES does -# not matter. - -# We have a conf directory, append to BBPATH -BBPATH .= ":${LAYERDIR}" - -# We have a recipes directory, add to BBFILES -BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" - -BBFILE_COLLECTIONS += "toolchain-layer" -BBFILE_PATTERN_toolchain-layer := "^${LAYERDIR}/" - -# Define the priority for recipes (.bb files) from this layer, -# choosing carefully how this layer interacts with all of the -# other layers. - -BBFILE_PRIORITY_toolchain-layer = "6" - -# This should only be incremented on significant changes that will -# cause compatibility issues with other layers -LAYERVERSION_toolchain-layer = "1" - -LAYERDEPENDS_toolchain-layer = "core" diff --git a/toolchain-layer/recipes-devtools/gcc/files/canadian-build-modules-configure.patch b/toolchain-layer/recipes-devtools/gcc/files/canadian-build-modules-configure.patch deleted file mode 100644 index 8aede105c52..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/canadian-build-modules-configure.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN gcc-4.2.2-orig/gcc/configure gcc-4.2.2/gcc/configure ---- gcc-4.2.2-orig/gcc/configure 2008-08-31 23:10:56.000000000 +0200 -+++ gcc-4.2.2/gcc/configure 2008-08-31 23:03:02.000000000 +0200 -@@ -12716,6 +12716,7 @@ - esac - saved_CFLAGS="${CFLAGS}" - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ -+ CPP="${CPP_FOR_BUILD}" CPPFLAGS="${CPPFLAGS_FOR_BUILD}" \ - CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias -diff -urN gcc-4.2.2-orig/gcc/configure.ac gcc-4.2.2/gcc/configure.ac ---- gcc-4.2.2-orig/gcc/configure.ac 2008-08-31 23:10:53.000000000 +0200 -+++ gcc-4.2.2/gcc/configure.ac 2008-08-31 23:03:29.000000000 +0200 -@@ -1490,6 +1490,7 @@ - esac - saved_CFLAGS="${CFLAGS}" - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ -+ CPP="${CPP_FOR_BUILD}" CPPFLAGS="${CPPFLAGS_FOR_BUILD}" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias diff --git a/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.3-fix-EXTRA_BUILD.patch b/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.3-fix-EXTRA_BUILD.patch deleted file mode 100644 index 8a2a4c4040f..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.3-fix-EXTRA_BUILD.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: gcc-4.3.3/Makefile.in -=================================================================== ---- gcc-4.3.3.orig/Makefile.in 2010-06-16 18:04:38.379008150 +0400 -+++ gcc-4.3.3/Makefile.in 2010-06-16 18:05:29.115006261 +0400 -@@ -148,6 +148,7 @@ - # built for the build system to override those in BASE_FLAGS_TO_PASSS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ LIBCFLAGS="$(CFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. diff --git a/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.x-fix-EXTRA_BUILD.patch b/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.x-fix-EXTRA_BUILD.patch deleted file mode 100644 index b3753364f8b..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.x-fix-EXTRA_BUILD.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: gcc-4.3.1/Makefile.in -=================================================================== ---- gcc-4.3.1.orig/Makefile.in 2010-07-07 13:08:44.000000000 +0200 -+++ gcc-4.3.1/Makefile.in 2010-07-07 13:11:59.246625709 +0200 -@@ -149,7 +149,7 @@ - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" \ -- LIBCFLAGS="" -+ LIBCFLAGS="$(CFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. - SUBDIRS = @configdirs@ diff --git a/toolchain-layer/recipes-devtools/gcc/files/gcc-posix-open-fix.patch b/toolchain-layer/recipes-devtools/gcc/files/gcc-posix-open-fix.patch deleted file mode 100644 index 99f813e8665..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/gcc-posix-open-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-3.4.6/gcc/collect2.c 2008-10-04 18:17:17.796750393 +0400 -+++ gcc-3.4.6/gcc/collect2.new 2008-10-04 18:24:10.120748711 +0400 -@@ -1534,7 +1534,7 @@ collect_execute (const char *prog, char - if (redir) - { - /* Open response file. */ -- redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT); -+ redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, S_IWUSR); - - /* Duplicate the stdout and stderr file handles - so they can be restored later. */ diff --git a/toolchain-layer/recipes-devtools/gcc/files/gcc4-mtune-compat.patch b/toolchain-layer/recipes-devtools/gcc/files/gcc4-mtune-compat.patch deleted file mode 100644 index 0da2811d373..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/gcc4-mtune-compat.patch +++ /dev/null @@ -1,14 +0,0 @@ -Patch for gcc3 to support gcc4-compatible (and consistent) values for -mtune= option. - ---- gcc-3.4.4/gcc/config/arm/arm.c.org 2007-12-15 23:58:35.000000000 +0200 -+++ gcc-3.4.4/gcc/config/arm/arm.c 2007-12-16 00:20:39.000000000 +0200 -@@ -432,7 +432,9 @@ - {"arm10tdmi", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_ARCH5 }, - {"arm1020t", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_ARCH5 }, - {"arm926ejs", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E }, -+ {"arm926ej-s", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E }, - {"arm1026ejs", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E }, -+ {"arm1026ej-s", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_ARCH5 | FL_ARCH5E }, - {"xscale", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_STRONG | FL_ARCH5 | FL_ARCH5E | FL_XSCALE }, - {"iwmmxt", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_STRONG | FL_ARCH5 | FL_ARCH5E | FL_XSCALE | FL_IWMMXT }, - /* V6 Architecture Processors */ diff --git a/toolchain-layer/recipes-devtools/gcc/files/gfortran-4.3.x.patch b/toolchain-layer/recipes-devtools/gcc/files/gfortran-4.3.x.patch deleted file mode 100644 index 0c42851ce1b..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/gfortran-4.3.x.patch +++ /dev/null @@ -1,40 +0,0 @@ -The patch below fixes a crash building libgfortran on arm-linux-gnueabi. - -This target doesn't really have a 128-bit integer type, however it does use -TImode to represent the return value of certain special ABI defined library -functions. This results in type_for_size(TImode) being called. - -Because TImode deosn't correspond to any gfortran integer kind -gfc_type_for_size returns NULL and we segfault shortly after. - -The patch below fixes this by making gfc_type_for_size handle TImode in the -same way as the C frontend. - -Tested on x86_64-linux and arm-linux-gnueabi. -Applied to trunk. - -Paul - -2007-05-15 Paul Brook - - gcc/fortran/ - * trans-types.c (gfc_type_for_size): Handle signed TImode. - -Index: gcc-4.2.1/gcc/fortran/trans-types.c -=================================================================== ---- gcc-4.2.1/gcc/fortran/trans-types.c (revision 170435) -+++ gcc-4.2.1/gcc/fortran/trans-types.c (working copy) -@@ -1800,6 +1800,13 @@ gfc_type_for_size (unsigned bits, int un - if (type && bits == TYPE_PRECISION (type)) - return type; - } -+ -+ /* Handle TImode as a special case because it is used by some backends -+ (eg. ARM) even though it is not available for normal use. */ -+#if HOST_BITS_PER_WIDE_INT >= 65 -+ if (bits == TYPE_PRECISION (intTI_type_node)) -+ return intTI_type_node; -+#endif - } - else - { diff --git a/toolchain-layer/recipes-devtools/gcc/files/gfortran.patch b/toolchain-layer/recipes-devtools/gcc/files/gfortran.patch deleted file mode 100644 index 96905e5d7dd..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/gfortran.patch +++ /dev/null @@ -1,40 +0,0 @@ -The patch below fixes a crash building libgfortran on arm-linux-gnueabi. - -This target doesn't really have a 128-bit integer type, however it does use -TImode to represent the return value of certain special ABI defined library -functions. This results in type_for_size(TImode) being called. - -Because TImode deosn't correspond to any gfortran integer kind -gfc_type_for_size returns NULL and we segfault shortly after. - -The patch below fixes this by making gfc_type_for_size handle TImode in the -same way as the C frontend. - -Tested on x86_64-linux and arm-linux-gnueabi. -Applied to trunk. - -Paul - -2007-05-15 Paul Brook - - gcc/fortran/ - * trans-types.c (gfc_type_for_size): Handle signed TImode. - -Index: gcc-4.2.1/gcc/fortran/trans-types.c -=================================================================== ---- gcc-4.2.1/gcc/fortran/trans-types.c (revision 170435) -+++ gcc-4.2.1/gcc/fortran/trans-types.c (working copy) -@@ -1800,6 +1800,13 @@ gfc_type_for_size (unsigned bits, int un - if (type && bits == TYPE_PRECISION (type)) - return type; - } -+ -+ /* Handle TImode as a special case because it is used by some backends -+ (eg. ARM) even though it is not available for normal use. */ -+#if HOST_BITS_PER_WIDE_INT >= 64 -+ if (bits == TYPE_PRECISION (intTI_type_node)) -+ return intTI_type_node; -+#endif - } - else - { diff --git a/toolchain-layer/recipes-devtools/gcc/files/pr22133-mingw-path-fixup.patch b/toolchain-layer/recipes-devtools/gcc/files/pr22133-mingw-path-fixup.patch deleted file mode 100644 index 429e9ffd0c9..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/pr22133-mingw-path-fixup.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -rupN gcc-4.2.orig/gcc/c-incpath.c gcc-4.2/gcc/c-incpath.c ---- gcc-4.2.orig/gcc/c-incpath.c 2007-09-01 11:28:30.000000000 -0400 -+++ gcc-4.2/gcc/c-incpath.c 2008-08-17 16:56:01.000000000 -0400 -@@ -340,13 +340,18 @@ add_path (char *path, int chain, int cxx - cpp_dir *p; - - #if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- /* Convert all backslashes to slashes. The native CRT stat() -- function does not recognize a directory that ends in a backslash -- (unless it is a drive root dir, such "c:\"). Forward slashes, -- trailing or otherwise, cause no problems for stat(). */ -- char* c; -- for (c = path; *c; c++) -- if (*c == '\\') *c = '/'; -+ /* Remove unnecessary trailing slashes. On some versions of MS -+ Windows, trailing _forward_ slashes cause no problems for stat(). -+ On newer versions, stat() does not recognise a directory that ends -+ in a '\\' or '/', unless it is a drive root dir, such as "c:/", -+ where it is obligatory. */ -+ int pathlen = strlen (path); -+ char* end = path + pathlen - 1; -+ /* Preserve the lead '/' or lead "c:/". */ -+ char* start = path + (pathlen > 2 && path[1] == ':' ? 3 : 1); -+ -+ for (; end > start && IS_DIR_SEPARATOR (*end); end--) -+ *end = 0; - #endif - - p = XNEW (cpp_dir); diff --git a/toolchain-layer/recipes-devtools/gcc/files/pr33281-mingw-host-fragment.patch b/toolchain-layer/recipes-devtools/gcc/files/pr33281-mingw-host-fragment.patch deleted file mode 100644 index e16fb4464a8..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/pr33281-mingw-host-fragment.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- - config/mh-mingw | 3 +++ - configure | 1 + - configure.in | 1 + - 3 files changed, 5 insertions(+) - -Index: gcc-4.2.3/config/mh-mingw -=================================================================== ---- /dev/null -+++ gcc-4.2.3/config/mh-mingw -@@ -0,0 +1,3 @@ -+# Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows -+# Vista (see PR33281 for details). -+BOOT_CFLAGS += -D__USE_MINGW_ACCESS -Index: gcc-4.2.3/configure.in -=================================================================== ---- gcc-4.2.3.orig/configure.in -+++ gcc-4.2.3/configure.in -@@ -929,6 +929,7 @@ case "${host}" in - host_makefile_frag="config/mh-cygwin" - ;; - *-mingw32*) -+ host_makefile_frag="config/mh-mingw" - ;; - *-interix*) - host_makefile_frag="config/mh-interix" -Index: gcc-4.2.3/configure -=================================================================== ---- gcc-4.2.3.orig/configure -+++ gcc-4.2.3/configure -@@ -1769,6 +1769,7 @@ case "${host}" in - host_makefile_frag="config/mh-cygwin" - ;; - *-mingw32*) -+ host_makefile_frag="config/mh-mingw" - ;; - *-interix*) - host_makefile_frag="config/mh-interix" diff --git a/toolchain-layer/recipes-devtools/gcc/files/pr35916-mingw-__USE_MINGW_ACCESS-everywhere.patch b/toolchain-layer/recipes-devtools/gcc/files/pr35916-mingw-__USE_MINGW_ACCESS-everywhere.patch deleted file mode 100644 index faf44c27f99..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/files/pr35916-mingw-__USE_MINGW_ACCESS-everywhere.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- - config/mh-mingw | 1 + - 1 file changed, 1 insertion(+) - -Index: gcc-4.2.3/config/mh-mingw -=================================================================== ---- gcc-4.2.3.orig/config/mh-mingw -+++ gcc-4.2.3/config/mh-mingw -@@ -1,3 +1,4 @@ - # Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows - # Vista (see PR33281 for details). - BOOT_CFLAGS += -D__USE_MINGW_ACCESS -+CFLAGS += -D__USE_MINGW_ACCESS diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6.inc b/toolchain-layer/recipes-devtools/gcc/gcc-4.6.inc deleted file mode 100644 index 83e9a9f55c2..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6.inc +++ /dev/null @@ -1,119 +0,0 @@ -require recipes-devtools/gcc/gcc-common.inc - -PR = "r27" - -# Third digit in PV should be incremented after a minor release -# happens from this branch on gcc e.g. currently its 4.6.0 -# when 4.6.1 is releases and we bump SRCREV beyond the release -# on branch then PV should be incremented to 4.6.1+svnr${SRCPV} -# to reflect that change - -PV = "4.6.3+svnr${SRCPV}" - -# BINV should be incremented after updating to a revision -# after a minor gcc release (e.g. 4.6.1 or 4.6.2) has been made -# the value will be minor-release+1 e.g. if current minor release was -# 4.6.1 then the value below will have 2 which will mean 4.6.2 -# which will be next minor release and so on. - -BINV = "4.6.4" - -SRCREV = "184847" -BRANCH = "gcc-4_6-branch" -FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/gcc-4.6' ], d)}" - -DEPENDS =+ "mpfr gmp libmpc" -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native" - -LICENSE="GPL-3.0-with-GCC-exception & GPLv3" - -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8" - -SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};protocol=http \ - file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ - file://100-uclibc-conf.patch \ - file://gcc-uclibc-locale-ctype_touplow_t.patch \ - file://cache-amnesia.patch \ - file://gcc-flags-for-build.patch \ - file://103-uclibc-conf-noupstream.patch \ - file://200-uclibc-locale.patch \ - file://203-uclibc-locale-no__x.patch; \ - file://204-uclibc-locale-wchar_fix.patch; \ - file://205-uclibc-locale-update.patch; \ - file://301-missing-execinfo_h.patch \ - file://302-c99-snprintf.patch \ - file://303-c99-complex-ugly-hack.patch \ - file://304-index_macro.patch \ - file://305-libmudflap-susv3-legacy.patch \ - file://306-libstdc++-namespace.patch \ - file://740-sh-pr24836.patch \ - file://800-arm-bigendian.patch \ - file://904-flatten-switch-stmt-00.patch \ - file://arm-nolibfloat.patch \ - file://arm-softfloat.patch \ - file://zecke-xgcc-cpp.patch \ - file://gcc-poison-system-directories.patch \ - file://gcc-poison-dir-extend.patch \ - file://gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ - file://64bithack.patch \ - file://optional_libstdc.patch \ - file://disable_relax_pic_calls_flag.patch \ - file://COLLECT_GCC_OPTIONS.patch \ - file://use-defaults.h-and-t-oe-in-B.patch \ - file://powerpc-e5500.patch \ - file://fix-for-ice-50099.patch \ - file://gcc-with-linker-hash-style.patch \ - file://pr46934.patch \ - file://pr32219.patch \ - file://pr47551.patch \ - file://gcc-arm-set-cost.patch \ - file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \ - file://fortran-cross-compile-hack.patch \ - file://cpp-honour-sysroot.patch \ - file://mips64-default-n64.patch \ - file://gcc-argument-list-too-long.patch \ -" - -SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch " - -#S = "${WORKDIR}/${BRANCH}" -S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${BRANCH}" -B = "${WORKDIR}/${BRANCH}/build.${HOST_SYS}.${TARGET_SYS}" - -# Language Overrides -FORTRAN = "" -JAVA = "" - -EXTRA_OECONF_BASE = " --enable-lto \ - --enable-libssp \ - --disable-bootstrap \ - --disable-libgomp \ - --disable-libmudflap \ - --with-system-zlib \ - --with-linker-hash-style=${LINKER_HASH_STYLE} \ - --with-ppl=no \ - --with-cloog=no \ - --enable-cheaders=c_global " - -EXTRA_OECONF_INITIAL = "--disable-libmudflap \ - --disable-libgomp \ - --disable-libssp \ - --disable-libquadmath \ - --with-system-zlib \ - --disable-lto \ - --disable-plugin \ - --enable-decimal-float=no" - -EXTRA_OECONF_INTERMEDIATE = "--disable-libmudflap \ - --disable-libgomp \ - --disable-libquadmath \ - --with-system-zlib \ - --disable-lto \ - --disable-plugin \ - --disable-libssp" - -EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float " diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/100-uclibc-conf.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/100-uclibc-conf.patch deleted file mode 100644 index b2981e07910..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/100-uclibc-conf.patch +++ /dev/null @@ -1,39 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/contrib/regression/objs-gcc.sh -=================================================================== ---- gcc-4.6.0.orig/contrib/regression/objs-gcc.sh -+++ gcc-4.6.0/contrib/regression/objs-gcc.sh -@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H - then - make all-gdb all-dejagnu all-ld || exit 1 - make install-gdb install-dejagnu install-ld || exit 1 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] -+ then -+ make all-gdb all-dejagnu all-ld || exit 1 -+ make install-gdb install-dejagnu install-ld || exit 1 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then - make bootstrap || exit 1 - make install || exit 1 -Index: gcc-4.6.0/libjava/classpath/ltconfig -=================================================================== ---- gcc-4.6.0.orig/libjava/classpath/ltconfig -+++ gcc-4.6.0/libjava/classpath/ltconfig -@@ -603,7 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)- - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in --linux-gnu*) ;; -+linux-gnu*|linux-uclibc*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac - -@@ -1247,7 +1247,7 @@ linux-gnuoldld* | linux-gnuaout* | linux - ;; - - # This must be Linux ELF. --linux-gnu*) -+linux*) - version_type=linux - need_lib_prefix=no - need_version=no diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/103-uclibc-conf-noupstream.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/103-uclibc-conf-noupstream.patch deleted file mode 100644 index 22c65806c15..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/103-uclibc-conf-noupstream.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status: Pending - -Corrects sub machine arch corectly - -Index: gcc-4.6.0/gcc/config.gcc -=================================================================== ---- gcc-4.6.0.orig/gcc/config.gcc -+++ gcc-4.6.0/gcc/config.gcc -@@ -2316,7 +2316,7 @@ score-*-elf) - ;; - sh-*-elf* | sh[12346l]*-*-elf* | \ - sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ -- sh-*-linux* | sh[2346lbe]*-*-linux* | \ -+ sh*-*-linux* | sh[2346lbe]*-*-linux* | \ - sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ - sh64-*-netbsd* | sh64l*-*-netbsd*) - tmake_file="${tmake_file} sh/t-sh sh/t-elf" diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/200-uclibc-locale.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/200-uclibc-locale.patch deleted file mode 100644 index b8ea78df563..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/200-uclibc-locale.patch +++ /dev/null @@ -1,2842 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/libstdc++-v3/acinclude.m4 -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/acinclude.m4 -+++ gcc-4.6.0/libstdc++-v3/acinclude.m4 -@@ -1753,7 +1753,7 @@ dnl - AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [ - GLIBCXX_ENABLE(clocale,auto,[[[=MODEL]]], - [use MODEL for target locale package], -- [permit generic|gnu|ieee_1003.1-2001|yes|no|auto]) -+ [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto]) - - # Deal with gettext issues. Default to not using it (=no) until we detect - # support for it later. Let the user turn it off via --e/d, but let that -@@ -1774,6 +1774,9 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case ${target_os} in -+ *-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) - enable_clocale_flag=gnu - ;; -@@ -1915,6 +1918,40 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ uclibc) -+ AC_MSG_RESULT(uclibc) -+ -+ # Declare intention to use gettext, and add support for specific -+ # languages. -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT -+ ALL_LINGUAS="de fr" -+ -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. -+ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then -+ USE_NLS=yes -+ fi -+ # Export the build objects. -+ for ling in $ALL_LINGUAS; do \ -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ -+ done -+ AC_SUBST(glibcxx_MOFILES) -+ AC_SUBST(glibcxx_POFILES) -+ -+ CLOCALE_H=config/locale/uclibc/c_locale.h -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc -+ CMESSAGES_H=config/locale/uclibc/messages_members.h -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc -+ CTIME_H=config/locale/uclibc/time_members.h -+ CTIME_CC=config/locale/uclibc/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h -+ ;; - esac - - # This is where the testsuite looks for locale catalogs, using the -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h -@@ -0,0 +1,63 @@ -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- -+ -+// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// Written by Jakub Jelinek -+ -+#include -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning clean this up -+#endif -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ -+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; -+extern "C" __typeof(strcoll_l) __strcoll_l; -+extern "C" __typeof(strftime_l) __strftime_l; -+extern "C" __typeof(strtod_l) __strtod_l; -+extern "C" __typeof(strtof_l) __strtof_l; -+extern "C" __typeof(strtold_l) __strtold_l; -+extern "C" __typeof(strxfrm_l) __strxfrm_l; -+extern "C" __typeof(newlocale) __newlocale; -+extern "C" __typeof(freelocale) __freelocale; -+extern "C" __typeof(duplocale) __duplocale; -+extern "C" __typeof(uselocale) __uselocale; -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+extern "C" __typeof(iswctype_l) __iswctype_l; -+extern "C" __typeof(towlower_l) __towlower_l; -+extern "C" __typeof(towupper_l) __towupper_l; -+extern "C" __typeof(wcscoll_l) __wcscoll_l; -+extern "C" __typeof(wcsftime_l) __wcsftime_l; -+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; -+extern "C" __typeof(wctype_l) __wctype_l; -+#endif -+ -+#endif // GLIBC 2.3 and later -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc -@@ -0,0 +1,160 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik -+ -+#include // For errno -+#include -+#include -+#include -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __strtol_l(S, E, B, L) strtol((S), (E), (B)) -+#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B)) -+#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B)) -+#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B)) -+#define __strtof_l(S, E, L) strtof((S), (E)) -+#define __strtod_l(S, E, L) strtod((S), (E)) -+#define __strtold_l(S, E, L) strtold((S), (E)) -+#warning should dummy __newlocale check for C|POSIX ? -+#define __newlocale(a, b, c) NULL -+#define __freelocale(a) ((void)0) -+#define __duplocale(a) __c_locale() -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ float __f = __strtof_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __f; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ double __d = __strtod_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __d; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ long double __ld = __strtold_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __ld; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ void -+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, -+ __c_locale __old) -+ { -+ __cloc = __newlocale(1 << LC_ALL, __s, __old); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ if (!__cloc) -+ { -+ // This named locale is not supported by the underlying OS. -+ __throw_runtime_error(__N("locale::facet::_S_create_c_locale " -+ "name not valid")); -+ } -+#endif -+ } -+ -+ void -+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) -+ { -+ if (_S_get_c_locale() != __cloc) -+ __freelocale(__cloc); -+ } -+ -+ __c_locale -+ locale::facet::_S_clone_c_locale(__c_locale& __cloc) -+ { return __duplocale(__cloc); } -+} // namespace std -+ -+namespace __gnu_cxx -+{ -+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = -+ { -+ "LC_CTYPE", -+ "LC_NUMERIC", -+ "LC_TIME", -+ "LC_COLLATE", -+ "LC_MONETARY", -+ "LC_MESSAGES", -+#if _GLIBCXX_NUM_CATEGORIES != 0 -+ "LC_PAPER", -+ "LC_NAME", -+ "LC_ADDRESS", -+ "LC_TELEPHONE", -+ "LC_MEASUREMENT", -+ "LC_IDENTIFICATION" -+#endif -+ }; -+} -+ -+namespace std -+{ -+ const char* const* const locale::_S_categories = __gnu_cxx::category_names; -+} // namespace std -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h -@@ -0,0 +1,117 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik -+ -+#ifndef _C_LOCALE_H -+#define _C_LOCALE_H 1 -+ -+#pragma GCC system_header -+ -+#include // get std::strlen -+#include // get std::snprintf or std::sprintf -+#include -+#include // For codecvt -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this -+#endif -+#ifdef __UCLIBC_HAS_LOCALE__ -+#include // For codecvt using iconv, iconv_t -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+#include // For messages -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning what is _GLIBCXX_C_LOCALE_GNU for -+#endif -+#define _GLIBCXX_C_LOCALE_GNU 1 -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix categories -+#endif -+// #define _GLIBCXX_NUM_CATEGORIES 6 -+#define _GLIBCXX_NUM_CATEGORIES 0 -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+namespace __gnu_cxx -+{ -+ extern "C" __typeof(uselocale) __uselocale; -+} -+#endif -+ -+namespace std -+{ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ typedef __locale_t __c_locale; -+#else -+ typedef int* __c_locale; -+#endif -+ -+ // Convert numeric value of type _Tv to string and return length of -+ // string. If snprintf is available use it, otherwise fall back to -+ // the unsafe sprintf which, in general, can be dangerous and should -+ // be avoided. -+ template -+ int -+ __convert_from_v(char* __out, -+ const int __size __attribute__ ((__unused__)), -+ const char* __fmt, -+#ifdef __UCLIBC_HAS_XCLOCALE__ -+ _Tv __v, const __c_locale& __cloc, int __prec) -+ { -+ __c_locale __old = __gnu_cxx::__uselocale(__cloc); -+#else -+ _Tv __v, const __c_locale&, int __prec) -+ { -+# ifdef __UCLIBC_HAS_LOCALE__ -+ char* __old = std::setlocale(LC_ALL, NULL); -+ char* __sav = new char[std::strlen(__old) + 1]; -+ std::strcpy(__sav, __old); -+ std::setlocale(LC_ALL, "C"); -+# endif -+#endif -+ -+ const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v); -+ -+#ifdef __UCLIBC_HAS_XCLOCALE__ -+ __gnu_cxx::__uselocale(__old); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ std::setlocale(LC_ALL, __sav); -+ delete [] __sav; -+#endif -+ return __ret; -+ } -+} -+ -+#endif -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc -@@ -0,0 +1,308 @@ -+// std::codecvt implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.1.5 - Template class codecvt -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include // For MB_CUR_MAX -+#include // For MB_LEN_MAX -+#include -+ -+namespace std -+{ -+ // Specializations. -+#ifdef _GLIBCXX_USE_WCHAR_T -+ codecvt_base::result -+ codecvt:: -+ do_out(state_type& __state, const intern_type* __from, -+ const intern_type* __from_end, const intern_type*& __from_next, -+ extern_type* __to, extern_type* __to_end, -+ extern_type*& __to_next) const -+ { -+ result __ret = ok; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // wcsnrtombs is *very* fast but stops if encounters NUL characters: -+ // in case we fall back to wcrtomb and then continue, in a loop. -+ // NB: wcsnrtombs is a GNU extension -+ for (__from_next = __from, __to_next = __to; -+ __from_next < __from_end && __to_next < __to_end -+ && __ret == ok;) -+ { -+ const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0', -+ __from_end - __from_next); -+ if (!__from_chunk_end) -+ __from_chunk_end = __from_end; -+ -+ __from = __from_next; -+ const size_t __conv = wcsnrtombs(__to_next, &__from_next, -+ __from_chunk_end - __from_next, -+ __to_end - __to_next, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // wcrtomb. -+ for (; __from < __from_next; ++__from) -+ __to_next += wcrtomb(__to_next, *__from, &__tmp_state); -+ __state = __tmp_state; -+ __ret = error; -+ } -+ else if (__from_next && __from_next < __from_chunk_end) -+ { -+ __to_next += __conv; -+ __ret = partial; -+ } -+ else -+ { -+ __from_next = __from_chunk_end; -+ __to_next += __conv; -+ } -+ -+ if (__from_next < __from_end && __ret == ok) -+ { -+ extern_type __buf[MB_LEN_MAX]; -+ __tmp_state = __state; -+ const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state); -+ if (__conv > static_cast(__to_end - __to_next)) -+ __ret = partial; -+ else -+ { -+ memcpy(__to_next, __buf, __conv); -+ __state = __tmp_state; -+ __to_next += __conv; -+ ++__from_next; -+ } -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+ -+ codecvt_base::result -+ codecvt:: -+ do_in(state_type& __state, const extern_type* __from, -+ const extern_type* __from_end, const extern_type*& __from_next, -+ intern_type* __to, intern_type* __to_end, -+ intern_type*& __to_next) const -+ { -+ result __ret = ok; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: -+ // in case we store a L'\0' and then continue, in a loop. -+ // NB: mbsnrtowcs is a GNU extension -+ for (__from_next = __from, __to_next = __to; -+ __from_next < __from_end && __to_next < __to_end -+ && __ret == ok;) -+ { -+ const extern_type* __from_chunk_end; -+ __from_chunk_end = static_cast(memchr(__from_next, '\0', -+ __from_end -+ - __from_next)); -+ if (!__from_chunk_end) -+ __from_chunk_end = __from_end; -+ -+ __from = __from_next; -+ size_t __conv = mbsnrtowcs(__to_next, &__from_next, -+ __from_chunk_end - __from_next, -+ __to_end - __to_next, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // mbrtowc. -+ for (;; ++__to_next, __from += __conv) -+ { -+ __conv = mbrtowc(__to_next, __from, __from_end - __from, -+ &__tmp_state); -+ if (__conv == static_cast(-1) -+ || __conv == static_cast(-2)) -+ break; -+ } -+ __from_next = __from; -+ __state = __tmp_state; -+ __ret = error; -+ } -+ else if (__from_next && __from_next < __from_chunk_end) -+ { -+ // It is unclear what to return in this case (see DR 382). -+ __to_next += __conv; -+ __ret = partial; -+ } -+ else -+ { -+ __from_next = __from_chunk_end; -+ __to_next += __conv; -+ } -+ -+ if (__from_next < __from_end && __ret == ok) -+ { -+ if (__to_next < __to_end) -+ { -+ // XXX Probably wrong for stateful encodings -+ __tmp_state = __state; -+ ++__from_next; -+ *__to_next++ = L'\0'; -+ } -+ else -+ __ret = partial; -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_encoding() const throw() -+ { -+ // XXX This implementation assumes that the encoding is -+ // stateless and is either single-byte or variable-width. -+ int __ret = 0; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ if (MB_CUR_MAX == 1) -+ __ret = 1; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_max_length() const throw() -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ // XXX Probably wrong for stateful encodings. -+ int __ret = MB_CUR_MAX; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_length(state_type& __state, const extern_type* __from, -+ const extern_type* __end, size_t __max) const -+ { -+ int __ret = 0; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: -+ // in case we advance past it and then continue, in a loop. -+ // NB: mbsnrtowcs is a GNU extension -+ -+ // A dummy internal buffer is needed in order for mbsnrtocws to consider -+ // its fourth parameter (it wouldn't with NULL as first parameter). -+ wchar_t* __to = static_cast(__builtin_alloca(sizeof(wchar_t) -+ * __max)); -+ while (__from < __end && __max) -+ { -+ const extern_type* __from_chunk_end; -+ __from_chunk_end = static_cast(memchr(__from, '\0', -+ __end -+ - __from)); -+ if (!__from_chunk_end) -+ __from_chunk_end = __end; -+ -+ const extern_type* __tmp_from = __from; -+ size_t __conv = mbsnrtowcs(__to, &__from, -+ __from_chunk_end - __from, -+ __max, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // mbrtowc. -+ for (__from = __tmp_from;; __from += __conv) -+ { -+ __conv = mbrtowc(NULL, __from, __end - __from, -+ &__tmp_state); -+ if (__conv == static_cast(-1) -+ || __conv == static_cast(-2)) -+ break; -+ } -+ __state = __tmp_state; -+ __ret += __from - __tmp_from; -+ break; -+ } -+ if (!__from) -+ __from = __from_chunk_end; -+ -+ __ret += __from - __tmp_from; -+ __max -= __conv; -+ -+ if (__from < __end && __max) -+ { -+ // XXX Probably wrong for stateful encodings -+ __tmp_state = __state; -+ ++__from; -+ ++__ret; -+ --__max; -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+#endif -+} -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/collate_members.cc -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/collate_members.cc -@@ -0,0 +1,80 @@ -+// std::collate implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.4.1.2 collate virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) -+#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) -+#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) -+#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) -+#endif -+ -+namespace std -+{ -+ // These are basically extensions to char_traits, and perhaps should -+ // be put there instead of here. -+ template<> -+ int -+ collate::_M_compare(const char* __one, const char* __two) const -+ { -+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate); -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); -+ } -+ -+ template<> -+ size_t -+ collate::_M_transform(char* __to, const char* __from, -+ size_t __n) const -+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ int -+ collate::_M_compare(const wchar_t* __one, -+ const wchar_t* __two) const -+ { -+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate); -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); -+ } -+ -+ template<> -+ size_t -+ collate::_M_transform(wchar_t* __to, const wchar_t* __from, -+ size_t __n) const -+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); } -+#endif -+} -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc -@@ -0,0 +1,300 @@ -+// std::ctype implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __wctype_l(S, L) wctype((S)) -+#define __towupper_l(C, L) towupper((C)) -+#define __towlower_l(C, L) towlower((C)) -+#define __iswctype_l(C, M, L) iswctype((C), (M)) -+#endif -+ -+namespace std -+{ -+ // NB: The other ctype specializations are in src/locale.cc and -+ // various /config/os/* files. -+ template<> -+ ctype_byname::ctype_byname(const char* __s, size_t __refs) -+ : ctype(0, false, __refs) -+ { -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_ctype); -+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper; -+ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower; -+ this->_M_table = this->_M_c_locale_ctype->__ctype_b; -+#endif -+ } -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ ctype::__wmask_type -+ ctype::_M_convert_to_wmask(const mask __m) const -+ { -+ __wmask_type __ret; -+ switch (__m) -+ { -+ case space: -+ __ret = __wctype_l("space", _M_c_locale_ctype); -+ break; -+ case print: -+ __ret = __wctype_l("print", _M_c_locale_ctype); -+ break; -+ case cntrl: -+ __ret = __wctype_l("cntrl", _M_c_locale_ctype); -+ break; -+ case upper: -+ __ret = __wctype_l("upper", _M_c_locale_ctype); -+ break; -+ case lower: -+ __ret = __wctype_l("lower", _M_c_locale_ctype); -+ break; -+ case alpha: -+ __ret = __wctype_l("alpha", _M_c_locale_ctype); -+ break; -+ case digit: -+ __ret = __wctype_l("digit", _M_c_locale_ctype); -+ break; -+ case punct: -+ __ret = __wctype_l("punct", _M_c_locale_ctype); -+ break; -+ case xdigit: -+ __ret = __wctype_l("xdigit", _M_c_locale_ctype); -+ break; -+ case alnum: -+ __ret = __wctype_l("alnum", _M_c_locale_ctype); -+ break; -+ case graph: -+ __ret = __wctype_l("graph", _M_c_locale_ctype); -+ break; -+ default: -+ __ret = __wmask_type(); -+ } -+ return __ret; -+ } -+ -+ wchar_t -+ ctype::do_toupper(wchar_t __c) const -+ { return __towupper_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype::do_toupper(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = __towupper_l(*__lo, _M_c_locale_ctype); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ wchar_t -+ ctype::do_tolower(wchar_t __c) const -+ { return __towlower_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype::do_tolower(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = __towlower_l(*__lo, _M_c_locale_ctype); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ bool -+ ctype:: -+ do_is(mask __m, wchar_t __c) const -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ bool __ret = false; -+ const size_t __bitmasksize = 11; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__m & _M_bit[__bitcur] -+ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ { -+ __ret = true; -+ break; -+ } -+ return __ret; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const -+ { -+ for (; __lo < __hi; ++__vec, ++__lo) -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ const size_t __bitmasksize = 11; -+ mask __m = 0; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ __m |= _M_bit[__bitcur]; -+ *__vec = __m; -+ } -+ return __hi; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi && !this->do_is(__m, *__lo)) -+ ++__lo; -+ return __lo; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const -+ { -+ while (__lo < __hi && this->do_is(__m, *__lo) != 0) -+ ++__lo; -+ return __lo; -+ } -+ -+ wchar_t -+ ctype:: -+ do_widen(char __c) const -+ { return _M_widen[static_cast(__c)]; } -+ -+ const char* -+ ctype:: -+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const -+ { -+ while (__lo < __hi) -+ { -+ *__dest = _M_widen[static_cast(*__lo)]; -+ ++__lo; -+ ++__dest; -+ } -+ return __hi; -+ } -+ -+ char -+ ctype:: -+ do_narrow(wchar_t __wc, char __dfault) const -+ { -+ if (__wc >= 0 && __wc < 128 && _M_narrow_ok) -+ return _M_narrow[__wc]; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ const int __c = wctob(__wc); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return (__c == EOF ? __dfault : static_cast(__c)); -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, -+ char* __dest) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ if (_M_narrow_ok) -+ while (__lo < __hi) -+ { -+ if (*__lo >= 0 && *__lo < 128) -+ *__dest = _M_narrow[*__lo]; -+ else -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast(__c)); -+ } -+ ++__lo; -+ ++__dest; -+ } -+ else -+ while (__lo < __hi) -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast(__c)); -+ ++__lo; -+ ++__dest; -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __hi; -+ } -+ -+ void -+ ctype::_M_initialize_ctype() -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ wint_t __i; -+ for (__i = 0; __i < 128; ++__i) -+ { -+ const int __c = wctob(__i); -+ if (__c == EOF) -+ break; -+ else -+ _M_narrow[__i] = static_cast(__c); -+ } -+ if (__i == 128) -+ _M_narrow_ok = true; -+ else -+ _M_narrow_ok = false; -+ for (size_t __j = 0; -+ __j < sizeof(_M_widen) / sizeof(wint_t); ++__j) -+ _M_widen[__j] = btowc(__j); -+ -+ for (size_t __k = 0; __k <= 11; ++__k) -+ { -+ _M_bit[__k] = static_cast(_ISbit(__k)); -+ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]); -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ } -+#endif // _GLIBCXX_USE_WCHAR_T -+} -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.cc -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.cc -@@ -0,0 +1,100 @@ -+// std::messages implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix gettext stuff -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+extern "C" char *__dcgettext(const char *domainname, -+ const char *msgid, int category); -+#undef gettext -+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES) -+#else -+#undef gettext -+#define gettext(msgid) (msgid) -+#endif -+ -+namespace std -+{ -+ // Specializations. -+ template<> -+ string -+ messages::do_get(catalog, int, int, const string& __dfault) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_messages); -+ const char* __msg = const_cast(gettext(__dfault.c_str())); -+ __uselocale(__old); -+ return string(__msg); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_messages); -+ const char* __msg = gettext(__dfault.c_str()); -+ setlocale(LC_ALL, __old); -+ free(__old); -+ return string(__msg); -+#else -+ const char* __msg = gettext(__dfault.c_str()); -+ return string(__msg); -+#endif -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ wstring -+ messages::do_get(catalog, int, int, const wstring& __dfault) const -+ { -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_messages); -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ __uselocale(__old); -+ return _M_convert_from_char(__msg); -+# elif defined __UCLIBC_HAS_LOCALE__ -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_messages); -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ setlocale(LC_ALL, __old); -+ free(__old); -+ return _M_convert_from_char(__msg); -+# else -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ return _M_convert_from_char(__msg); -+# endif -+ } -+#endif -+} -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h -@@ -0,0 +1,118 @@ -+// std::messages implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.7.1.2 messages functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix prototypes for *textdomain funcs -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+extern "C" char *__textdomain(const char *domainname); -+extern "C" char *__bindtextdomain(const char *domainname, -+ const char *dirname); -+#else -+#undef __textdomain -+#undef __bindtextdomain -+#define __textdomain(D) ((void)0) -+#define __bindtextdomain(D,P) ((void)0) -+#endif -+ -+ // Non-virtual member functions. -+ template -+ messages<_CharT>::messages(size_t __refs) -+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), -+ _M_name_messages(_S_get_c_name()) -+ { } -+ -+ template -+ messages<_CharT>::messages(__c_locale __cloc, const char* __s, -+ size_t __refs) -+ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)), -+ _M_name_messages(__s) -+ { -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ _M_name_messages = __tmp; -+ } -+ -+ template -+ typename messages<_CharT>::catalog -+ messages<_CharT>::open(const basic_string& __s, const locale& __loc, -+ const char* __dir) const -+ { -+ __bindtextdomain(__s.c_str(), __dir); -+ return this->do_open(__s, __loc); -+ } -+ -+ // Virtual member functions. -+ template -+ messages<_CharT>::~messages() -+ { -+ if (_M_name_messages != _S_get_c_name()) -+ delete [] _M_name_messages; -+ _S_destroy_c_locale(_M_c_locale_messages); -+ } -+ -+ template -+ typename messages<_CharT>::catalog -+ messages<_CharT>::do_open(const basic_string& __s, -+ const locale&) const -+ { -+ // No error checking is done, assume the catalog exists and can -+ // be used. -+ __textdomain(__s.c_str()); -+ return 0; -+ } -+ -+ template -+ void -+ messages<_CharT>::do_close(catalog) const -+ { } -+ -+ // messages_byname -+ template -+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) -+ : messages<_CharT>(__refs) -+ { -+ if (this->_M_name_messages != locale::facet::_S_get_c_name()) -+ delete [] this->_M_name_messages; -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ this->_M_name_messages = __tmp; -+ -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_messages); -+ this->_S_create_c_locale(this->_M_c_locale_messages, __s); -+ } -+ } -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc -@@ -0,0 +1,692 @@ -+// std::moneypunct implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning optimize this for uclibc -+#warning tailor for stub locale support -+#endif -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ // Construct and return valid pattern consisting of some combination of: -+ // space none symbol sign value -+ money_base::pattern -+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn) -+ { -+ pattern __ret; -+ -+ // This insanely complicated routine attempts to construct a valid -+ // pattern for use with monyepunct. A couple of invariants: -+ -+ // if (__precedes) symbol -> value -+ // else value -> symbol -+ -+ // if (__space) space -+ // else none -+ -+ // none == never first -+ // space never first or last -+ -+ // Any elegant implementations of this are welcome. -+ switch (__posn) -+ { -+ case 0: -+ case 1: -+ // 1 The sign precedes the value and symbol. -+ __ret.field[0] = sign; -+ if (__space) -+ { -+ // Pattern starts with sign. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[3] = symbol; -+ } -+ __ret.field[2] = space; -+ } -+ else -+ { -+ // Pattern starts with sign and ends with none. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[3] = none; -+ } -+ break; -+ case 2: -+ // 2 The sign follows the value and symbol. -+ if (__space) -+ { -+ // Pattern either ends with sign. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[1] = space; -+ __ret.field[3] = sign; -+ } -+ else -+ { -+ // Pattern ends with sign then none. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = symbol; -+ } -+ __ret.field[2] = sign; -+ __ret.field[3] = none; -+ } -+ break; -+ case 3: -+ // 3 The sign immediately precedes the symbol. -+ if (__precedes) -+ { -+ __ret.field[0] = sign; -+ __ret.field[1] = symbol; -+ if (__space) -+ { -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[2] = value; -+ __ret.field[3] = none; -+ } -+ } -+ else -+ { -+ __ret.field[0] = value; -+ if (__space) -+ { -+ __ret.field[1] = space; -+ __ret.field[2] = sign; -+ __ret.field[3] = symbol; -+ } -+ else -+ { -+ __ret.field[1] = sign; -+ __ret.field[2] = symbol; -+ __ret.field[3] = none; -+ } -+ } -+ break; -+ case 4: -+ // 4 The sign immediately follows the symbol. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = sign; -+ if (__space) -+ { -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[2] = value; -+ __ret.field[3] = none; -+ } -+ } -+ else -+ { -+ __ret.field[0] = value; -+ if (__space) -+ { -+ __ret.field[1] = space; -+ __ret.field[2] = symbol; -+ __ret.field[3] = sign; -+ } -+ else -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = sign; -+ __ret.field[3] = none; -+ } -+ } -+ break; -+ default: -+ ; -+ } -+ return __ret; -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = ""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = ""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = ""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, -+ __cloc)); -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ if (!__nposn) -+ _M_data->_M_negative_sign = "()"; -+ else -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, -+ __cloc); -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); -+ -+ // _Intl == true -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, -+ __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ } -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = ""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = ""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = ""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, -+ __cloc)); -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ if (!__nposn) -+ _M_data->_M_negative_sign = "()"; -+ else -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, -+ __cloc); -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); -+ -+ // _Intl == false -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ } -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { delete _M_data; } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const char*) -+#else -+ const char* __name) -+#endif -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = -+ static_cast(money_base::_S_atoms[__i]); -+ } -+ else -+ { -+ // Named locale. -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(__cloc); -+#else -+ // Switch to named locale so that mbsrtowcs will work. -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, __name); -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be monetary -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); -+ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); -+ -+ wchar_t* __wcs_ps = 0; -+ wchar_t* __wcs_ns = 0; -+ const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ try -+ { -+ mbstate_t __state; -+ size_t __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ps = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs_ps; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ns = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs_ns; -+ } -+ else -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); -+ -+ // _Intl == true. -+ __len = strlen(__ccurr); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state); -+ _M_data->_M_curr_symbol = __wcs; -+ } -+ else -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); -+ } -+ catch (...) -+ { -+ delete _M_data; -+ _M_data = 0; -+ delete __wcs_ps; -+ delete __wcs_ns; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ __throw_exception_again; -+ } -+ -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, -+ __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const char*) -+#else -+ const char* __name) -+#endif -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = -+ static_cast(money_base::_S_atoms[__i]); -+ } -+ else -+ { -+ // Named locale. -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(__cloc); -+#else -+ // Switch to named locale so that mbsrtowcs will work. -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, __name); -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be monetary -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); -+ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); -+ -+ wchar_t* __wcs_ps = 0; -+ wchar_t* __wcs_ns = 0; -+ const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ try -+ { -+ mbstate_t __state; -+ size_t __len; -+ __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ps = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs_ps; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ns = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs_ns; -+ } -+ else -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); -+ -+ // _Intl == true. -+ __len = strlen(__ccurr); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state); -+ _M_data->_M_curr_symbol = __wcs; -+ } -+ else -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); -+ } -+ catch (...) -+ { -+ delete _M_data; -+ _M_data = 0; -+ delete __wcs_ps; -+ delete __wcs_ns; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ __throw_exception_again; -+ } -+ -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { -+ if (_M_data->_M_positive_sign_size) -+ delete [] _M_data->_M_positive_sign; -+ if (_M_data->_M_negative_sign_size -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0) -+ delete [] _M_data->_M_negative_sign; -+ if (_M_data->_M_curr_symbol_size) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { -+ if (_M_data->_M_positive_sign_size) -+ delete [] _M_data->_M_positive_sign; -+ if (_M_data->_M_negative_sign_size -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0) -+ delete [] _M_data->_M_negative_sign; -+ if (_M_data->_M_curr_symbol_size) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+#endif -+} -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc -@@ -0,0 +1,160 @@ -+// std::numpunct implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning tailor for stub locale support -+#endif -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ numpunct::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_use_grouping = false; -+ -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i]; -+ -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) -+ _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, -+ __cloc)); -+ -+ // Check for NULL, which implies no grouping. -+ if (_M_data->_M_thousands_sep == '\0') -+ _M_data->_M_grouping = ""; -+ else -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ } -+ -+ // NB: There is no way to extact this info from posix locales. -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); -+ _M_data->_M_truename = "true"; -+ _M_data->_M_truename_size = 4; -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = "false"; -+ _M_data->_M_falsename_size = 5; -+ } -+ -+ template<> -+ numpunct::~numpunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ numpunct::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_use_grouping = false; -+ -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ _M_data->_M_atoms_out[__i] = -+ static_cast(__num_base::_S_atoms_out[__i]); -+ -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) -+ _M_data->_M_atoms_in[__j] = -+ static_cast(__num_base::_S_atoms_in[__j]); -+ } -+ else -+ { -+ // Named locale. -+ // NB: In the GNU model wchar_t is always 32 bit wide. -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+ -+ if (_M_data->_M_thousands_sep == L'\0') -+ _M_data->_M_grouping = ""; -+ else -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ } -+ -+ // NB: There is no way to extact this info from posix locales. -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); -+ _M_data->_M_truename = L"true"; -+ _M_data->_M_truename_size = 4; -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = L"false"; -+ _M_data->_M_falsename_size = 5; -+ } -+ -+ template<> -+ numpunct::~numpunct() -+ { delete _M_data; } -+ #endif -+} -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc -@@ -0,0 +1,406 @@ -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning tailor for stub locale support -+#endif -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ __timepunct:: -+ _M_put(char* __s, size_t __maxlen, const char* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm, -+ _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ const size_t __len = strftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ // Make sure __s is null terminated. -+ if (__len == 0) -+ __s[0] = '\0'; -+ } -+ -+ template<> -+ void -+ __timepunct::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_c_locale_timepunct = _S_get_c_locale(); -+ -+ _M_data->_M_date_format = "%m/%d/%y"; -+ _M_data->_M_date_era_format = "%m/%d/%y"; -+ _M_data->_M_time_format = "%H:%M:%S"; -+ _M_data->_M_time_era_format = "%H:%M:%S"; -+ _M_data->_M_date_time_format = ""; -+ _M_data->_M_date_time_era_format = ""; -+ _M_data->_M_am = "AM"; -+ _M_data->_M_pm = "PM"; -+ _M_data->_M_am_pm_format = ""; -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = "Sunday"; -+ _M_data->_M_day2 = "Monday"; -+ _M_data->_M_day3 = "Tuesday"; -+ _M_data->_M_day4 = "Wednesday"; -+ _M_data->_M_day5 = "Thursday"; -+ _M_data->_M_day6 = "Friday"; -+ _M_data->_M_day7 = "Saturday"; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = "Sun"; -+ _M_data->_M_aday2 = "Mon"; -+ _M_data->_M_aday3 = "Tue"; -+ _M_data->_M_aday4 = "Wed"; -+ _M_data->_M_aday5 = "Thu"; -+ _M_data->_M_aday6 = "Fri"; -+ _M_data->_M_aday7 = "Sat"; -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = "January"; -+ _M_data->_M_month02 = "February"; -+ _M_data->_M_month03 = "March"; -+ _M_data->_M_month04 = "April"; -+ _M_data->_M_month05 = "May"; -+ _M_data->_M_month06 = "June"; -+ _M_data->_M_month07 = "July"; -+ _M_data->_M_month08 = "August"; -+ _M_data->_M_month09 = "September"; -+ _M_data->_M_month10 = "October"; -+ _M_data->_M_month11 = "November"; -+ _M_data->_M_month12 = "December"; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = "Jan"; -+ _M_data->_M_amonth02 = "Feb"; -+ _M_data->_M_amonth03 = "Mar"; -+ _M_data->_M_amonth04 = "Apr"; -+ _M_data->_M_amonth05 = "May"; -+ _M_data->_M_amonth06 = "Jun"; -+ _M_data->_M_amonth07 = "Jul"; -+ _M_data->_M_amonth08 = "Aug"; -+ _M_data->_M_amonth09 = "Sep"; -+ _M_data->_M_amonth10 = "Oct"; -+ _M_data->_M_amonth11 = "Nov"; -+ _M_data->_M_amonth12 = "Dec"; -+ } -+ else -+ { -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); -+ -+ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc); -+ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc); -+ _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc); -+ _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc); -+ _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc); -+ _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, -+ __cloc); -+ _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc); -+ _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc); -+ _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc); -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc); -+ _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc); -+ _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc); -+ _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc); -+ _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc); -+ _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc); -+ _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc); -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc); -+ _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc); -+ _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc); -+ _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc); -+ _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc); -+ _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc); -+ _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc); -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc); -+ _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc); -+ _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc); -+ _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc); -+ _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc); -+ _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc); -+ _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc); -+ _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc); -+ _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc); -+ _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc); -+ _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc); -+ _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc); -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc); -+ _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc); -+ _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc); -+ _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc); -+ _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc); -+ _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc); -+ _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc); -+ _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc); -+ _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc); -+ _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc); -+ _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc); -+ _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc); -+ } -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ __timepunct:: -+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); -+ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm, -+ _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ const size_t __len = wcsftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ // Make sure __s is null terminated. -+ if (__len == 0) -+ __s[0] = L'\0'; -+ } -+ -+ template<> -+ void -+ __timepunct::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache; -+ -+#warning wide time stuff -+// if (!__cloc) -+ { -+ // "C" locale -+ _M_c_locale_timepunct = _S_get_c_locale(); -+ -+ _M_data->_M_date_format = L"%m/%d/%y"; -+ _M_data->_M_date_era_format = L"%m/%d/%y"; -+ _M_data->_M_time_format = L"%H:%M:%S"; -+ _M_data->_M_time_era_format = L"%H:%M:%S"; -+ _M_data->_M_date_time_format = L""; -+ _M_data->_M_date_time_era_format = L""; -+ _M_data->_M_am = L"AM"; -+ _M_data->_M_pm = L"PM"; -+ _M_data->_M_am_pm_format = L""; -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = L"Sunday"; -+ _M_data->_M_day2 = L"Monday"; -+ _M_data->_M_day3 = L"Tuesday"; -+ _M_data->_M_day4 = L"Wednesday"; -+ _M_data->_M_day5 = L"Thursday"; -+ _M_data->_M_day6 = L"Friday"; -+ _M_data->_M_day7 = L"Saturday"; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = L"Sun"; -+ _M_data->_M_aday2 = L"Mon"; -+ _M_data->_M_aday3 = L"Tue"; -+ _M_data->_M_aday4 = L"Wed"; -+ _M_data->_M_aday5 = L"Thu"; -+ _M_data->_M_aday6 = L"Fri"; -+ _M_data->_M_aday7 = L"Sat"; -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = L"January"; -+ _M_data->_M_month02 = L"February"; -+ _M_data->_M_month03 = L"March"; -+ _M_data->_M_month04 = L"April"; -+ _M_data->_M_month05 = L"May"; -+ _M_data->_M_month06 = L"June"; -+ _M_data->_M_month07 = L"July"; -+ _M_data->_M_month08 = L"August"; -+ _M_data->_M_month09 = L"September"; -+ _M_data->_M_month10 = L"October"; -+ _M_data->_M_month11 = L"November"; -+ _M_data->_M_month12 = L"December"; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = L"Jan"; -+ _M_data->_M_amonth02 = L"Feb"; -+ _M_data->_M_amonth03 = L"Mar"; -+ _M_data->_M_amonth04 = L"Apr"; -+ _M_data->_M_amonth05 = L"May"; -+ _M_data->_M_amonth06 = L"Jun"; -+ _M_data->_M_amonth07 = L"Jul"; -+ _M_data->_M_amonth08 = L"Aug"; -+ _M_data->_M_amonth09 = L"Sep"; -+ _M_data->_M_amonth10 = L"Oct"; -+ _M_data->_M_amonth11 = L"Nov"; -+ _M_data->_M_amonth12 = L"Dec"; -+ } -+#if 0 -+ else -+ { -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); -+ -+ union { char *__s; wchar_t *__w; } __u; -+ -+ __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc); -+ _M_data->_M_date_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc); -+ _M_data->_M_date_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc); -+ _M_data->_M_time_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc); -+ _M_data->_M_time_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc); -+ _M_data->_M_date_time_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc); -+ _M_data->_M_date_time_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc); -+ _M_data->_M_am = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc); -+ _M_data->_M_pm = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc); -+ _M_data->_M_am_pm_format = __u.__w; -+ -+ // Day names, starting with "C"'s Sunday. -+ __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc); -+ _M_data->_M_day1 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc); -+ _M_data->_M_day2 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc); -+ _M_data->_M_day3 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc); -+ _M_data->_M_day4 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc); -+ _M_data->_M_day5 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc); -+ _M_data->_M_day6 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc); -+ _M_data->_M_day7 = __u.__w; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc); -+ _M_data->_M_aday1 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc); -+ _M_data->_M_aday2 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc); -+ _M_data->_M_aday3 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc); -+ _M_data->_M_aday4 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc); -+ _M_data->_M_aday5 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc); -+ _M_data->_M_aday6 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc); -+ _M_data->_M_aday7 = __u.__w; -+ -+ // Month names, starting with "C"'s January. -+ __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc); -+ _M_data->_M_month01 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc); -+ _M_data->_M_month02 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc); -+ _M_data->_M_month03 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc); -+ _M_data->_M_month04 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc); -+ _M_data->_M_month05 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc); -+ _M_data->_M_month06 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc); -+ _M_data->_M_month07 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc); -+ _M_data->_M_month08 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc); -+ _M_data->_M_month09 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc); -+ _M_data->_M_month10 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc); -+ _M_data->_M_month11 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc); -+ _M_data->_M_month12 = __u.__w; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc); -+ _M_data->_M_amonth01 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc); -+ _M_data->_M_amonth02 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc); -+ _M_data->_M_amonth03 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc); -+ _M_data->_M_amonth04 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc); -+ _M_data->_M_amonth05 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc); -+ _M_data->_M_amonth06 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc); -+ _M_data->_M_amonth07 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc); -+ _M_data->_M_amonth08 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc); -+ _M_data->_M_amonth09 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc); -+ _M_data->_M_amonth10 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc); -+ _M_data->_M_amonth11 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc); -+ _M_data->_M_amonth12 = __u.__w; -+ } -+#endif // 0 -+ } -+#endif -+} -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h -=================================================================== ---- /dev/null -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h -@@ -0,0 +1,68 @@ -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.5.1.2 - time_get functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions -+// -+ -+// Written by Benjamin Kosnik -+ -+ template -+ __timepunct<_CharT>::__timepunct(size_t __refs) -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(_S_get_c_name()) -+ { _M_initialize_timepunct(); } -+ -+ template -+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) -+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(_S_get_c_name()) -+ { _M_initialize_timepunct(); } -+ -+ template -+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, -+ size_t __refs) -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(__s) -+ { -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ _M_name_timepunct = __tmp; -+ _M_initialize_timepunct(__cloc); -+ } -+ -+ template -+ __timepunct<_CharT>::~__timepunct() -+ { -+ if (_M_name_timepunct != _S_get_c_name()) -+ delete [] _M_name_timepunct; -+ delete _M_data; -+ _S_destroy_c_locale(_M_c_locale_timepunct); -+ } -Index: gcc-4.6.0/libstdc++-v3/configure -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/configure -+++ gcc-4.6.0/libstdc++-v3/configure -@@ -15642,7 +15642,7 @@ $as_echo "stdio" >&6; } - if test "${enable_clocale+set}" = set; then : - enableval=$enable_clocale; - case "$enableval" in -- generic|gnu|ieee_1003.1-2001|yes|no|auto) ;; -+ generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;; - *) as_fn_error "Unknown argument to enable/disable clocale" "$LINENO" 5 ;; - esac - -@@ -15674,6 +15674,9 @@ fi - # Default to "generic". - if test $enable_clocale_flag = auto; then - case ${target_os} in -+ *-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) - enable_clocale_flag=gnu - ;; -@@ -15907,6 +15910,76 @@ $as_echo "IEEE 1003.1" >&6; } - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ uclibc) -+ echo "$as_me:$LINENO: result: uclibc" >&5 -+echo "${ECHO_T}uclibc" >&6 -+ -+ # Declare intention to use gettext, and add support for specific -+ # languages. -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT -+ ALL_LINGUAS="de fr" -+ -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. -+ # Extract the first word of "msgfmt", so it can be a program name with args. -+set dummy msgfmt; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_check_msgfmt+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$check_msgfmt"; then -+ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_check_msgfmt="yes" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no" -+fi -+fi -+check_msgfmt=$ac_cv_prog_check_msgfmt -+if test -n "$check_msgfmt"; then -+ echo "$as_me:$LINENO: result: $check_msgfmt" >&5 -+echo "${ECHO_T}$check_msgfmt" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then -+ USE_NLS=yes -+ fi -+ # Export the build objects. -+ for ling in $ALL_LINGUAS; do \ -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ -+ done -+ -+ -+ -+ CLOCALE_H=config/locale/uclibc/c_locale.h -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc -+ CMESSAGES_H=config/locale/uclibc/messages_members.h -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc -+ CTIME_H=config/locale/uclibc/time_members.h -+ CTIME_CC=config/locale/uclibc/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h -+ ;; - esac - - # This is where the testsuite looks for locale catalogs, using the -@@ -16957,6 +17030,7 @@ rm -f core conftest.err conftest.$ac_obj - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ -+#line 17016 "configure" - #include - int - main () -@@ -64172,7 +64246,6 @@ $as_echo_n "checking for shared libgcc.. - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ -- - int - main () - { -Index: gcc-4.6.0/libstdc++-v3/include/c_compatibility/wchar.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/include/c_compatibility/wchar.h -+++ gcc-4.6.0/libstdc++-v3/include/c_compatibility/wchar.h -@@ -101,7 +101,9 @@ using std::wmemcmp; - using std::wmemcpy; - using std::wmemmove; - using std::wmemset; -+#if _GLIBCXX_HAVE_WCSFTIME - using std::wcsftime; -+#endif - - #if _GLIBCXX_USE_C99 - using std::wcstold; -Index: gcc-4.6.0/libstdc++-v3/include/c_std/cwchar -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/include/c_std/cwchar -+++ gcc-4.6.0/libstdc++-v3/include/c_std/cwchar -@@ -177,7 +177,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - using ::wcscoll; - using ::wcscpy; - using ::wcscspn; -+#if _GLIBCXX_HAVE_WCSFTIME - using ::wcsftime; -+#endif - using ::wcslen; - using ::wcsncat; - using ::wcsncmp; diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/203-uclibc-locale-no__x.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/203-uclibc-locale-no__x.patch deleted file mode 100644 index c602e913e92..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/203-uclibc-locale-no__x.patch +++ /dev/null @@ -1,235 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h -@@ -60,4 +60,49 @@ extern "C" __typeof(wcsxfrm_l) __wcsxfrm - extern "C" __typeof(wctype_l) __wctype_l; - #endif - -+# define __nl_langinfo_l nl_langinfo_l -+# define __strcoll_l strcoll_l -+# define __strftime_l strftime_l -+# define __strtod_l strtod_l -+# define __strtof_l strtof_l -+# define __strtold_l strtold_l -+# define __strxfrm_l strxfrm_l -+# define __newlocale newlocale -+# define __freelocale freelocale -+# define __duplocale duplocale -+# define __uselocale uselocale -+ -+# ifdef _GLIBCXX_USE_WCHAR_T -+# define __iswctype_l iswctype_l -+# define __towlower_l towlower_l -+# define __towupper_l towupper_l -+# define __wcscoll_l wcscoll_l -+# define __wcsftime_l wcsftime_l -+# define __wcsxfrm_l wcsxfrm_l -+# define __wctype_l wctype_l -+# endif -+ -+#else -+# define __nl_langinfo_l(N, L) nl_langinfo((N)) -+# define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) -+# define __strtod_l(S, E, L) strtod((S), (E)) -+# define __strtof_l(S, E, L) strtof((S), (E)) -+# define __strtold_l(S, E, L) strtold((S), (E)) -+# define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) -+# warning should dummy __newlocale check for C|POSIX ? -+# define __newlocale(a, b, c) NULL -+# define __freelocale(a) ((void)0) -+# define __duplocale(a) __c_locale() -+//# define __uselocale ? -+// -+# ifdef _GLIBCXX_USE_WCHAR_T -+# define __iswctype_l(C, M, L) iswctype((C), (M)) -+# define __towlower_l(C, L) towlower((C)) -+# define __towupper_l(C, L) towupper((C)) -+# define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) -+//# define __wcsftime_l(S, M, F, T, L) wcsftime((S), (M), (F), (T)) -+# define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) -+# define __wctype_l(S, L) wctype((S)) -+# endif -+ - #endif // GLIBC 2.3 and later -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc -@@ -39,20 +39,6 @@ - #include - #include - --#ifndef __UCLIBC_HAS_XLOCALE__ --#define __strtol_l(S, E, B, L) strtol((S), (E), (B)) --#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B)) --#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B)) --#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B)) --#define __strtof_l(S, E, L) strtof((S), (E)) --#define __strtod_l(S, E, L) strtod((S), (E)) --#define __strtold_l(S, E, L) strtold((S), (E)) --#warning should dummy __newlocale check for C|POSIX ? --#define __newlocale(a, b, c) NULL --#define __freelocale(a) ((void)0) --#define __duplocale(a) __c_locale() --#endif -- - namespace std - { - template<> -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/collate_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/collate_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/collate_members.cc -@@ -36,13 +36,6 @@ - #include - #include - --#ifndef __UCLIBC_HAS_XLOCALE__ --#define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) --#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) --#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) --#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) --#endif -- - namespace std - { - // These are basically extensions to char_traits, and perhaps should -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc -@@ -43,10 +43,6 @@ - #warning tailor for stub locale support - #endif - --#ifndef __UCLIBC_HAS_XLOCALE__ --#define __nl_langinfo_l(N, L) nl_langinfo((N)) --#endif -- - namespace std - { - // Construct and return valid pattern consisting of some combination of: -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc -@@ -41,9 +41,6 @@ - #ifdef __UCLIBC_MJN3_ONLY__ - #warning tailor for stub locale support - #endif --#ifndef __UCLIBC_HAS_XLOCALE__ --#define __nl_langinfo_l(N, L) nl_langinfo((N)) --#endif - - namespace std - { -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/time_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc -@@ -40,9 +40,6 @@ - #ifdef __UCLIBC_MJN3_ONLY__ - #warning tailor for stub locale support - #endif --#ifndef __UCLIBC_HAS_XLOCALE__ --#define __nl_langinfo_l(N, L) nl_langinfo((N)) --#endif - - namespace std - { -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc -@@ -38,13 +38,6 @@ - #undef _LIBC - #include - --#ifndef __UCLIBC_HAS_XLOCALE__ --#define __wctype_l(S, L) wctype((S)) --#define __towupper_l(C, L) towupper((C)) --#define __towlower_l(C, L) towlower((C)) --#define __iswctype_l(C, M, L) iswctype((C), (M)) --#endif -- - namespace std - { - // NB: The other ctype specializations are in src/locale.cc and -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/messages_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.cc -@@ -39,13 +39,10 @@ - #ifdef __UCLIBC_MJN3_ONLY__ - #warning fix gettext stuff - #endif --#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ --extern "C" char *__dcgettext(const char *domainname, -- const char *msgid, int category); - #undef gettext --#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES) -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES) - #else --#undef gettext - #define gettext(msgid) (msgid) - #endif - -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/messages_members.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h -@@ -36,15 +36,11 @@ - #ifdef __UCLIBC_MJN3_ONLY__ - #warning fix prototypes for *textdomain funcs - #endif --#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ --extern "C" char *__textdomain(const char *domainname); --extern "C" char *__bindtextdomain(const char *domainname, -- const char *dirname); --#else --#undef __textdomain --#undef __bindtextdomain --#define __textdomain(D) ((void)0) --#define __bindtextdomain(D,P) ((void)0) -+#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+#undef textdomain -+#undef bindtextdomain -+#define textdomain(D) ((void)0) -+#define bindtextdomain(D,P) ((void)0) - #endif - - // Non-virtual member functions. -@@ -70,7 +66,7 @@ extern "C" char *__bindtextdomain(const - messages<_CharT>::open(const basic_string& __s, const locale& __loc, - const char* __dir) const - { -- __bindtextdomain(__s.c_str(), __dir); -+ bindtextdomain(__s.c_str(), __dir); - return this->do_open(__s, __loc); - } - -@@ -90,7 +86,7 @@ extern "C" char *__bindtextdomain(const - { - // No error checking is done, assume the catalog exists and can - // be used. -- __textdomain(__s.c_str()); -+ textdomain(__s.c_str()); - return 0; - } - -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c_locale.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h -@@ -68,6 +68,7 @@ namespace __gnu_cxx - { - extern "C" __typeof(uselocale) __uselocale; - } -+#define __uselocale uselocale - #endif - - namespace std diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/204-uclibc-locale-wchar_fix.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/204-uclibc-locale-wchar_fix.patch deleted file mode 100644 index 896d2a57c77..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/204-uclibc-locale-wchar_fix.patch +++ /dev/null @@ -1,54 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc -@@ -401,7 +401,7 @@ namespace std - # ifdef __UCLIBC_HAS_XLOCALE__ - _M_data->_M_decimal_point = __cloc->decimal_point_wc; - _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; --# else -+# elif defined __UCLIBC_HAS_LOCALE__ - _M_data->_M_decimal_point = __global_locale->decimal_point_wc; - _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; - # endif -@@ -556,7 +556,7 @@ namespace std - # ifdef __UCLIBC_HAS_XLOCALE__ - _M_data->_M_decimal_point = __cloc->decimal_point_wc; - _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; --# else -+# elif defined __UCLIBC_HAS_LOCALE__ - _M_data->_M_decimal_point = __global_locale->decimal_point_wc; - _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; - # endif -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc -@@ -127,12 +127,25 @@ namespace std - { - // Named locale. - // NB: In the GNU model wchar_t is always 32 bit wide. -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be numeric -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# elif defined __UCLIBC_HAS_LOCALE__ -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else - union { char *__s; wchar_t __w; } __u; - __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); - _M_data->_M_decimal_point = __u.__w; - - __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); - _M_data->_M_thousands_sep = __u.__w; -+#endif - - if (_M_data->_M_thousands_sep == L'\0') - _M_data->_M_grouping = ""; diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/205-uclibc-locale-update.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/205-uclibc-locale-update.patch deleted file mode 100644 index 743017b4d32..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/205-uclibc-locale-update.patch +++ /dev/null @@ -1,521 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc -@@ -39,23 +39,20 @@ - #include - #include - --namespace std --{ -+_GLIBCXX_BEGIN_NAMESPACE(std) -+ - template<> - void - __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, - const __c_locale& __cloc) - { -- if (!(__err & ios_base::failbit)) -- { -- char* __sanity; -- errno = 0; -- float __f = __strtof_l(__s, &__sanity, __cloc); -- if (__sanity != __s && errno != ERANGE) -- __v = __f; -- else -- __err |= ios_base::failbit; -- } -+ char* __sanity; -+ errno = 0; -+ float __f = __strtof_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __f; -+ else -+ __err |= ios_base::failbit; - } - - template<> -@@ -63,16 +60,13 @@ namespace std - __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, - const __c_locale& __cloc) - { -- if (!(__err & ios_base::failbit)) -- { -- char* __sanity; -- errno = 0; -- double __d = __strtod_l(__s, &__sanity, __cloc); -- if (__sanity != __s && errno != ERANGE) -- __v = __d; -- else -- __err |= ios_base::failbit; -- } -+ char* __sanity; -+ errno = 0; -+ double __d = __strtod_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __d; -+ else -+ __err |= ios_base::failbit; - } - - template<> -@@ -80,16 +74,13 @@ namespace std - __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err, - const __c_locale& __cloc) - { -- if (!(__err & ios_base::failbit)) -- { -- char* __sanity; -- errno = 0; -- long double __ld = __strtold_l(__s, &__sanity, __cloc); -- if (__sanity != __s && errno != ERANGE) -- __v = __ld; -- else -- __err |= ios_base::failbit; -- } -+ char* __sanity; -+ errno = 0; -+ long double __ld = __strtold_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __ld; -+ else -+ __err |= ios_base::failbit; - } - - void -@@ -110,17 +101,18 @@ namespace std - void - locale::facet::_S_destroy_c_locale(__c_locale& __cloc) - { -- if (_S_get_c_locale() != __cloc) -+ if (__cloc && _S_get_c_locale() != __cloc) - __freelocale(__cloc); - } - - __c_locale - locale::facet::_S_clone_c_locale(__c_locale& __cloc) - { return __duplocale(__cloc); } --} // namespace std - --namespace __gnu_cxx --{ -+_GLIBCXX_END_NAMESPACE -+ -+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) -+ - const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = - { - "LC_CTYPE", -@@ -138,9 +130,11 @@ namespace __gnu_cxx - "LC_IDENTIFICATION" - #endif - }; --} - --namespace std --{ -+_GLIBCXX_END_NAMESPACE -+ -+_GLIBCXX_BEGIN_NAMESPACE(std) -+ - const char* const* const locale::_S_categories = __gnu_cxx::category_names; --} // namespace std -+ -+_GLIBCXX_END_NAMESPACE -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc -@@ -33,16 +33,20 @@ - - // Written by Benjamin Kosnik - -+#include -+#ifdef __UCLIBC_HAS_LOCALE__ - #define _LIBC - #include - #undef _LIBC -+#else -+#include -+#endif - #include - --namespace std --{ -+_GLIBCXX_BEGIN_NAMESPACE(std) -+ - // NB: The other ctype specializations are in src/locale.cc and - // various /config/os/* files. -- template<> - ctype_byname::ctype_byname(const char* __s, size_t __refs) - : ctype(0, false, __refs) - { -@@ -57,6 +61,8 @@ namespace std - #endif - } - } -+ ctype_byname::~ctype_byname() -+ { } - - #ifdef _GLIBCXX_USE_WCHAR_T - ctype::__wmask_type -@@ -138,17 +144,33 @@ namespace std - ctype:: - do_is(mask __m, wchar_t __c) const - { -- // Highest bitmask in ctype_base == 10, but extra in "C" -- // library for blank. -+ // The case of __m == ctype_base::space is particularly important, -+ // due to its use in many istream functions. Therefore we deal with -+ // it first, exploiting the knowledge that on GNU systems _M_bit[5] -+ // is the mask corresponding to ctype_base::space. NB: an encoding -+ // change would not affect correctness! -+ - bool __ret = false; -- const size_t __bitmasksize = 11; -- for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -- if (__m & _M_bit[__bitcur] -- && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype)) -- { -- __ret = true; -- break; -- } -+ if (__m == _M_bit[5]) -+ __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype); -+ else -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ const size_t __bitmasksize = 11; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__m & _M_bit[__bitcur]) -+ { -+ if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ { -+ __ret = true; -+ break; -+ } -+ else if (__m == _M_bit[__bitcur]) -+ break; -+ } -+ } -+ - return __ret; - } - -@@ -290,4 +312,5 @@ namespace std - #endif - } - #endif // _GLIBCXX_USE_WCHAR_T --} -+ -+_GLIBCXX_END_NAMESPACE -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/messages_members.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h -@@ -53,12 +53,16 @@ - template - messages<_CharT>::messages(__c_locale __cloc, const char* __s, - size_t __refs) -- : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)), -- _M_name_messages(__s) -+ : facet(__refs), _M_c_locale_messages(NULL), -+ _M_name_messages(NULL) - { -- char* __tmp = new char[std::strlen(__s) + 1]; -- std::strcpy(__tmp, __s); -+ const size_t __len = std::strlen(__s) + 1; -+ char* __tmp = new char[__len]; -+ std::memcpy(__tmp, __s, __len); - _M_name_messages = __tmp; -+ -+ // Last to avoid leaking memory if new throws. -+ _M_c_locale_messages = _S_clone_c_locale(__cloc); - } - - template -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc -@@ -33,9 +33,14 @@ - - // Written by Benjamin Kosnik - -+#include -+#ifdef __UCLIBC_HAS_LOCALE__ - #define _LIBC - #include - #undef _LIBC -+#else -+#include -+#endif - #include - - #ifdef __UCLIBC_MJN3_ONLY__ -@@ -206,7 +211,7 @@ namespace std - } - break; - default: -- ; -+ __ret = pattern(); - } - return __ret; - } -@@ -390,7 +395,9 @@ namespace std - __c_locale __old = __uselocale(__cloc); - #else - // Switch to named locale so that mbsrtowcs will work. -- char* __old = strdup(setlocale(LC_ALL, NULL)); -+ char* __old = setlocale(LC_ALL, NULL); -+ const size_t __llen = strlen(__old) + 1; -+ char* __sav = new char[__llen]; - setlocale(LC_ALL, __name); - #endif - -@@ -477,8 +484,8 @@ namespace std - #ifdef __UCLIBC_HAS_XLOCALE__ - __uselocale(__old); - #else -- setlocale(LC_ALL, __old); -- free(__old); -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; - #endif - __throw_exception_again; - } -@@ -498,8 +505,8 @@ namespace std - #ifdef __UCLIBC_HAS_XLOCALE__ - __uselocale(__old); - #else -- setlocale(LC_ALL, __old); -- free(__old); -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; - #endif - } - } -@@ -545,8 +552,11 @@ namespace std - __c_locale __old = __uselocale(__cloc); - #else - // Switch to named locale so that mbsrtowcs will work. -- char* __old = strdup(setlocale(LC_ALL, NULL)); -- setlocale(LC_ALL, __name); -+ char* __old = setlocale(LC_ALL, NULL); -+ const size_t __llen = strlen(__old) + 1; -+ char* __sav = new char[__llen]; -+ memcpy(__sav, __old, __llen); -+ setlocale(LC_ALL, __name); - #endif - - #ifdef __UCLIBC_MJN3_ONLY__ -@@ -633,8 +643,8 @@ namespace std - #ifdef __UCLIBC_HAS_XLOCALE__ - __uselocale(__old); - #else -- setlocale(LC_ALL, __old); -- free(__old); -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; - #endif - __throw_exception_again; - } -@@ -653,8 +663,8 @@ namespace std - #ifdef __UCLIBC_HAS_XLOCALE__ - __uselocale(__old); - #else -- setlocale(LC_ALL, __old); -- free(__old); -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; - #endif - } - } -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc -@@ -33,9 +33,14 @@ - - // Written by Benjamin Kosnik - -+#include -+#ifdef __UCLIBC_HAS_LOCALE__ - #define _LIBC - #include - #undef _LIBC -+#else -+#include -+#endif - #include - - #ifdef __UCLIBC_MJN3_ONLY__ -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/time_members.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h -@@ -50,12 +50,21 @@ - __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, - size_t __refs) - : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -- _M_name_timepunct(__s) -+ _M_name_timepunct(NULL) - { -- char* __tmp = new char[std::strlen(__s) + 1]; -- std::strcpy(__tmp, __s); -+ const size_t __len = std::strlen(__s) + 1; -+ char* __tmp = new char[__len]; -+ std::memcpy(__tmp, __s, __len); - _M_name_timepunct = __tmp; -- _M_initialize_timepunct(__cloc); -+ -+ try -+ { _M_initialize_timepunct(__cloc); } -+ catch(...) -+ { -+ delete [] _M_name_timepunct; -+ __throw_exception_again; -+ } -+ - } - - template -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c_locale.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h -@@ -39,21 +39,23 @@ - #pragma GCC system_header - - #include // get std::strlen --#include // get std::snprintf or std::sprintf -+#include // get std::vsnprintf or std::vsprintf - #include - #include // For codecvt - #ifdef __UCLIBC_MJN3_ONLY__ - #warning fix this - #endif --#ifdef __UCLIBC_HAS_LOCALE__ -+#ifdef _GLIBCXX_USE_ICONV - #include // For codecvt using iconv, iconv_t - #endif --#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ --#include // For messages -+#ifdef HAVE_LIBINTL_H -+#include // For messages - #endif -+#include - - #ifdef __UCLIBC_MJN3_ONLY__ - #warning what is _GLIBCXX_C_LOCALE_GNU for -+// psm: used in os/gnu-linux/ctype_noninline.h - #endif - #define _GLIBCXX_C_LOCALE_GNU 1 - -@@ -78,23 +80,25 @@ namespace std - #else - typedef int* __c_locale; - #endif -- -- // Convert numeric value of type _Tv to string and return length of -- // string. If snprintf is available use it, otherwise fall back to -- // the unsafe sprintf which, in general, can be dangerous and should -+ // Convert numeric value of type double to string and return length of -+ // string. If vsnprintf is available use it, otherwise fall back to -+ // the unsafe vsprintf which, in general, can be dangerous and should - // be avoided. -- template -- int -- __convert_from_v(char* __out, -- const int __size __attribute__ ((__unused__)), -- const char* __fmt, --#ifdef __UCLIBC_HAS_XCLOCALE__ -- _Tv __v, const __c_locale& __cloc, int __prec) -+ inline int -+ __convert_from_v(const __c_locale& -+#ifndef __UCLIBC_HAS_XCLOCALE__ -+ __cloc __attribute__ ((__unused__)) -+#endif -+ , -+ char* __out, -+ const int __size, -+ const char* __fmt, ...) - { -+ va_list __args; -+#ifdef __UCLIBC_HAS_XCLOCALE__ -+ - __c_locale __old = __gnu_cxx::__uselocale(__cloc); - #else -- _Tv __v, const __c_locale&, int __prec) -- { - # ifdef __UCLIBC_HAS_LOCALE__ - char* __old = std::setlocale(LC_ALL, NULL); - char* __sav = new char[std::strlen(__old) + 1]; -@@ -103,7 +107,9 @@ namespace std - # endif - #endif - -- const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v); -+ va_start(__args, __fmt); -+ const int __ret = std::vsnprintf(__out, __size, __fmt, __args); -+ va_end(__args); - - #ifdef __UCLIBC_HAS_XCLOCALE__ - __gnu_cxx::__uselocale(__old); -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/time_members.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc -@@ -53,11 +53,14 @@ namespace std - const size_t __len = __strftime_l(__s, __maxlen, __format, __tm, - _M_c_locale_timepunct); - #else -- char* __old = strdup(setlocale(LC_ALL, NULL)); -+ char* __old = setlocale(LC_ALL, NULL); -+ const size_t __llen = strlen(__old) + 1; -+ char* __sav = new char[__llen]; -+ memcpy(__sav, __old, __llen); - setlocale(LC_ALL, _M_name_timepunct); - const size_t __len = strftime(__s, __maxlen, __format, __tm); -- setlocale(LC_ALL, __old); -- free(__old); -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; - #endif - // Make sure __s is null terminated. - if (__len == 0) -@@ -207,11 +210,14 @@ namespace std - const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm, - _M_c_locale_timepunct); - #else -- char* __old = strdup(setlocale(LC_ALL, NULL)); -+ char* __old = setlocale(LC_ALL, NULL); -+ const size_t __llen = strlen(__old) + 1; -+ char* __sav = new char[__llen]; -+ memcpy(__sav, __old, __llen); - setlocale(LC_ALL, _M_name_timepunct); - const size_t __len = wcsftime(__s, __maxlen, __format, __tm); -- setlocale(LC_ALL, __old); -- free(__old); -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; - #endif - // Make sure __s is null terminated. - if (__len == 0) -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h -@@ -31,6 +31,9 @@ - - #include - #include -+#include -+#include -+#include - - #ifdef __UCLIBC_MJN3_ONLY__ - #warning clean this up diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/301-missing-execinfo_h.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/301-missing-execinfo_h.patch deleted file mode 100644 index 9589822b8dd..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/301-missing-execinfo_h.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/boehm-gc/include/gc.h -=================================================================== ---- gcc-4.6.0.orig/boehm-gc/include/gc.h -+++ gcc-4.6.0/boehm-gc/include/gc.h -@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_of - #if defined(__linux__) || defined(__GLIBC__) - # include - # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ -- && !defined(__ia64__) -+ && !defined(__ia64__) && !defined(__UCLIBC__) - # ifndef GC_HAVE_BUILTIN_BACKTRACE - # define GC_HAVE_BUILTIN_BACKTRACE - # endif diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/302-c99-snprintf.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/302-c99-snprintf.patch deleted file mode 100644 index f02c98dec12..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/302-c99-snprintf.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/libstdc++-v3/include/c_std/cstdio -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/include/c_std/cstdio -+++ gcc-4.6.0/libstdc++-v3/include/c_std/cstdio -@@ -136,7 +136,7 @@ namespace std - using ::vsprintf; - } // namespace std - --#if _GLIBCXX_USE_C99 -+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__) - - #undef snprintf - #undef vfscanf diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/303-c99-complex-ugly-hack.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/303-c99-complex-ugly-hack.patch deleted file mode 100644 index db594cbb134..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/303-c99-complex-ugly-hack.patch +++ /dev/null @@ -1,16 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Index: gcc-4.6.0/libstdc++-v3/configure -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/configure -+++ gcc-4.6.0/libstdc++-v3/configure -@@ -18302,6 +18302,9 @@ $as_echo_n "checking for ISO C99 support - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include -+#ifdef __UCLIBC__ -+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs -+#endif - int - main () - { diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/304-index_macro.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/304-index_macro.patch deleted file mode 100644 index f1037652336..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/304-index_macro.patch +++ /dev/null @@ -1,30 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/libstdc++-v3/include/ext/rope -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/include/ext/rope -+++ gcc-4.6.0/libstdc++-v3/include/ext/rope -@@ -54,6 +54,9 @@ - #include - #include - -+/* cope w/ index defined as macro, SuSv3 proposal */ -+#undef index -+ - # ifdef __GC - # define __GC_CONST const - # else -Index: gcc-4.6.0/libstdc++-v3/include/ext/ropeimpl.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/include/ext/ropeimpl.h -+++ gcc-4.6.0/libstdc++-v3/include/ext/ropeimpl.h -@@ -49,6 +49,9 @@ - #include // For uninitialized_copy_n - #include // For power - -+/* cope w/ index defined as macro, SuSv3 proposal */ -+#undef index -+ - namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) - { - _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/305-libmudflap-susv3-legacy.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/305-libmudflap-susv3-legacy.patch deleted file mode 100644 index 8d9a4d87032..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/305-libmudflap-susv3-legacy.patch +++ /dev/null @@ -1,51 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Index: gcc-4.6.0/libmudflap/mf-hooks2.c -=================================================================== ---- gcc-4.6.0.orig/libmudflap/mf-hooks2.c -+++ gcc-4.6.0/libmudflap/mf-hooks2.c -@@ -421,7 +421,7 @@ WRAPPER2(void, bzero, void *s, size_t n) - { - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region"); -- bzero (s, n); -+ memset (s, 0, n); - } - - -@@ -431,7 +431,7 @@ WRAPPER2(void, bcopy, const void *src, v - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src"); - MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest"); -- bcopy (src, dest, n); -+ memmove (dest, src, n); - } - - -@@ -441,7 +441,7 @@ WRAPPER2(int, bcmp, const void *s1, cons - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg"); - MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg"); -- return bcmp (s1, s2, n); -+ return n == 0 ? 0 : memcmp (s1, s2, n); - } - - -@@ -450,7 +450,7 @@ WRAPPER2(char *, index, const char *s, i - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region"); -- return index (s, c); -+ return strchr (s, c); - } - - -@@ -459,7 +459,7 @@ WRAPPER2(char *, rindex, const char *s, - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region"); -- return rindex (s, c); -+ return strrchr (s, c); - } - - /* XXX: stpcpy, memccpy */ diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/306-libstdc++-namespace.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/306-libstdc++-namespace.patch deleted file mode 100644 index e99bf9602d2..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/306-libstdc++-namespace.patch +++ /dev/null @@ -1,40 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/messages_members.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h -@@ -32,7 +32,8 @@ - // - - // Written by Benjamin Kosnik -- -+namespace std -+{ - #ifdef __UCLIBC_MJN3_ONLY__ - #warning fix prototypes for *textdomain funcs - #endif -@@ -116,3 +117,4 @@ - this->_S_create_c_locale(this->_M_c_locale_messages, __s); - } - } -+} -Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/time_members.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h -@@ -33,7 +33,8 @@ - // - - // Written by Benjamin Kosnik -- -+namespace std -+{ - template - __timepunct<_CharT>::__timepunct(size_t __refs) - : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -@@ -75,3 +76,4 @@ - delete _M_data; - _S_destroy_c_locale(_M_c_locale_timepunct); - } -+} diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/64bithack.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/64bithack.patch deleted file mode 100644 index d35753a06bb..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/64bithack.patch +++ /dev/null @@ -1,68 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -GCC has internal multilib handling code but it assumes a very specific rigid directory -layout. The build system implementation of multilib layout is very generic and allows -complete customisation of the library directories. - -This patch is a partial solution to allow any custom directories to be passed into gcc -and handled correctly. It forces gcc to use the base_libdir (which is the current -directory, "."). We need to do this for each multilib that is configured as we don't -know which compiler options may be being passed into the compiler. Since we have a compiler -per mulitlib at this point that isn't an issue. - -The one problem is the target compiler is only going to work for the default multlilib at -this point. Ideally we'd figure out which multilibs were being enabled with which paths -and be able to patch these entries with a complete set of correct paths but this we -don't have such code at this point. This is something the target gcc recipe should do -and override these platform defaults in its build config. - -RP 15/8/11 - -Index: gcc-4_6-branch/gcc/config/i386/t-linux64 -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/i386/t-linux64 2011-06-23 15:15:29.000000000 +0100 -+++ gcc-4_6-branch/gcc/config/i386/t-linux64 2011-08-15 13:09:03.772415848 +0100 -@@ -24,8 +24,8 @@ - # MULTILIB_OSDIRNAMES according to what is found on the target. - - MULTILIB_OPTIONS = m64/m32 --MULTILIB_DIRNAMES = 64 32 --MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) -+MULTILIB_DIRNAMES = . . -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) - - LIBGCC = stmp-multilib - INSTALL_LIBGCC = install-multilib -Index: gcc-4_6-branch/gcc/config/mips/t-linux64 -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/mips/t-linux64 2011-08-15 13:06:13.732415763 +0100 -+++ gcc-4_6-branch/gcc/config/mips/t-linux64 2011-08-15 13:09:11.452419446 +0100 -@@ -17,8 +17,8 @@ - # . - - MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 --MULTILIB_DIRNAMES = n32 32 64 --MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64 -+MULTILIB_DIRNAMES = . . . -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) - - EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o - -Index: gcc-4_6-branch/gcc/config/rs6000/t-linux64 -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/rs6000/t-linux64 2011-08-15 13:06:25.272415822 +0100 -+++ gcc-4_6-branch/gcc/config/rs6000/t-linux64 2011-08-15 13:09:21.062415878 +0100 -@@ -32,11 +32,11 @@ - # MULTILIB_OSDIRNAMES according to what is found on the target. - - MULTILIB_OPTIONS = m64/m32 msoft-float --MULTILIB_DIRNAMES = 64 32 nof -+MULTILIB_DIRNAMES = . . . - MULTILIB_EXTRA_OPTS = fPIC mstrict-align - MULTILIB_EXCEPTIONS = m64/msoft-float - MULTILIB_EXCLUSIONS = m64/!m32/msoft-float --MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) - MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT) - - softfp_wrap_start := '\#ifndef __powerpc64__' diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/740-sh-pr24836.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/740-sh-pr24836.patch deleted file mode 100644 index bc4ea5d8654..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/740-sh-pr24836.patch +++ /dev/null @@ -1,31 +0,0 @@ -Upstream-Status: Pending - -http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24836 - -Index: gcc-4.6.0/gcc/configure.ac -=================================================================== ---- gcc-4.6.0.orig/gcc/configure.ac -+++ gcc-4.6.0/gcc/configure.ac -@@ -2926,7 +2926,7 @@ foo: .long 25 - tls_first_minor=14 - tls_as_opt="-m64 -Aesame --fatal-warnings" - ;; -- sh-*-* | sh[34]-*-*) -+ sh-*-* | sh[34]*-*-*) - conftest_s=' - .section ".tdata","awT",@progbits - foo: .long 25 -Index: gcc-4.6.0/gcc/configure -=================================================================== ---- gcc-4.6.0.orig/gcc/configure -+++ gcc-4.6.0/gcc/configure -@@ -22756,7 +22756,7 @@ foo: .long 25 - tls_first_minor=14 - tls_as_opt="-m64 -Aesame --fatal-warnings" - ;; -- sh-*-* | sh[34]-*-*) -+ sh-*-* | sh[34]*-*-*) - conftest_s=' - .section ".tdata","awT",@progbits - foo: .long 25 diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/800-arm-bigendian.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/800-arm-bigendian.patch deleted file mode 100644 index 8c8046d4c7a..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/800-arm-bigendian.patch +++ /dev/null @@ -1,36 +0,0 @@ -Upstream-Status: Pending - -By Lennert Buytenhek -Adds support for arm*b-linux* big-endian ARM targets - -See http://gcc.gnu.org/PR16350 - -Index: gcc-4.6.0/gcc/config/arm/linux-elf.h -=================================================================== ---- gcc-4.6.0.orig/gcc/config/arm/linux-elf.h -+++ gcc-4.6.0/gcc/config/arm/linux-elf.h -@@ -51,7 +51,7 @@ - - #undef MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ -- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" } -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" } - - /* Now we define the strings used to build the spec file. */ - #undef LIB_SPEC -Index: gcc-4.6.0/gcc/config.gcc -=================================================================== ---- gcc-4.6.0.orig/gcc/config.gcc -+++ gcc-4.6.0/gcc/config.gcc -@@ -822,6 +822,11 @@ arm*-*-linux*) # ARM GNU/Linux with EL - esac - tmake_file="${tmake_file} t-linux arm/t-arm" - case ${target} in -+ arm*b-*) -+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" -+ ;; -+ esac -+ case ${target} in - arm*-*-linux-*eabi) - tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h" - tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h" diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/904-flatten-switch-stmt-00.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/904-flatten-switch-stmt-00.patch deleted file mode 100644 index ce3e6b58401..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/904-flatten-switch-stmt-00.patch +++ /dev/null @@ -1,76 +0,0 @@ -Upstream-Status: Pending - -Hi, - -The attached patch makes sure that we create smaller object code for -simple switch statements. We just make sure to flatten the switch -statement into an if-else chain, basically. - -This fixes a size-regression as compared to gcc-3.4, as can be seen -below. - -2007-04-15 Bernhard Fischer <..> - - * stmt.c (expand_case): Do not create a complex binary tree when - optimizing for size but rather use the simple ordered list. - (emit_case_nodes): do not emit jumps to the default_label when - optimizing for size. - -Not regtested so far. -Comments? - -Attached is the test switch.c mentioned below. - -$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do -gcc-$i -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done -$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do -gcc-$i -UCHAIN -Os -o switch-$i.o -c switch.c ;done - -$ size switch-*.o - text data bss dec hex filename - 169 0 0 169 a9 switch-2.95.o - 115 0 0 115 73 switch-3.3.o - 103 0 0 103 67 switch-3.4.o - 124 0 0 124 7c switch-4.0.o - 124 0 0 124 7c switch-4.1.o - 124 0 0 124 7c switch-4.2.orig-HEAD.o - 95 0 0 95 5f switch-4.3-HEAD.o - 124 0 0 124 7c switch-4.3.orig-HEAD.o - 166 0 0 166 a6 switch-CHAIN-2.95.o - 111 0 0 111 6f switch-CHAIN-3.3.o - 95 0 0 95 5f switch-CHAIN-3.4.o - 95 0 0 95 5f switch-CHAIN-4.0.o - 95 0 0 95 5f switch-CHAIN-4.1.o - 95 0 0 95 5f switch-CHAIN-4.2.orig-HEAD.o - 95 0 0 95 5f switch-CHAIN-4.3-HEAD.o - 95 0 0 95 5f switch-CHAIN-4.3.orig-HEAD.o - - -Content-Type: text/x-diff; charset=us-ascii -Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff" - -Index: gcc-4.6.0/gcc/stmt.c -=================================================================== ---- gcc-4.6.0.orig/gcc/stmt.c -+++ gcc-4.6.0/gcc/stmt.c -@@ -2478,7 +2478,11 @@ expand_case (gimple stmt) - default code is emitted. */ - - use_cost_table = estimate_case_costs (case_list); -- balance_case_nodes (&case_list, NULL); -+ /* When optimizing for size, we want a straight list to avoid -+ jumps as much as possible. This basically creates an if-else -+ chain. */ -+ if (!optimize_size) -+ balance_case_nodes (&case_list, NULL); - emit_case_nodes (index, case_list, default_label, index_type); - if (default_label) - emit_jump (default_label); -@@ -3046,6 +3050,7 @@ emit_case_nodes (rtx index, case_node_pt - { - if (!node_has_low_bound (node, index_type)) - { -+ if (!optimize_size) /* don't jl to the .default_label. */ - emit_cmp_and_jump_insns (index, - convert_modes - (mode, imode, diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/COLLECT_GCC_OPTIONS.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/COLLECT_GCC_OPTIONS.patch deleted file mode 100644 index 38856c2d864..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/COLLECT_GCC_OPTIONS.patch +++ /dev/null @@ -1,25 +0,0 @@ -Upstream-Status: Pending - -#This patck added --sysroot into COLLECT_GCC_OPTIONS which is used to -#invoke collect2. - -Index: gcc-4.6.0/gcc/gcc.c -=================================================================== ---- gcc-4.6.0.orig/gcc/gcc.c -+++ gcc-4.6.0/gcc/gcc.c -@@ -3948,6 +3948,15 @@ set_collect_gcc_options (void) - sizeof ("COLLECT_GCC_OPTIONS=") - 1); - - first_time = TRUE; -+#ifdef HAVE_LD_SYSROOT -+ if (target_system_root_changed && target_system_root) -+ { -+ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1); -+ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root)); -+ obstack_grow (&collect_obstack, "'", 1); -+ first_time = FALSE; -+ } -+#endif - for (i = 0; (int) i < n_switches; i++) - { - const char *const *args; diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch deleted file mode 100644 index 575e0e4b41d..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch +++ /dev/null @@ -1,186 +0,0 @@ -source: http://patchwork.ozlabs.org/patch/129800/ -Upstream-Status: Submitted - -ChangeLog - * Makefile.in (gcc_gxx_include_dir_add_sysroot): New. - (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT. - - * cppdefault.c (cpp_include_defaults): replace hard coded "1" with - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field. - - * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to - control whether sysroot should be prepended to gxx include dir. - - * configure: Regenerate. - -Hi, this is a follow up for issue "http://codereview.appspot.com/4641076". - -The rationale for the patch copied from previous thread: -======================================= -The setup: - -Configuring a toolchain targeting x86-64 GNU Linux (Ubuntu Lucid), as a -cross-compiler. Using a sysroot to provide the Lucid headers+libraries, -with the sysroot path being within the GCC install tree. Want to use the -Lucid system libstdc++ and headers, which means that I'm not -building/installing libstdc++-v3. - -So, configuring with: - --with-sysroot="$SYSROOT" - --disable-libstdc++-v3 \ - --with-gxx-include-dir="$SYSROOT/usr/include/c++/4.4" \ -(among other options). - -Hoping to support two usage models with this configuration, w.r.t. use of -the sysroot: - -(1) somebody installs the sysroot in the normal location relative to the -GCC install, and relocates the whole bundle (sysroot+GCC). This works -great AFAICT, GCC finds its includes (including the C++ includes) thanks -to the add_standard_paths iprefix handling. - -(2) somebody installs the sysroot in a non-standard location, and uses ---sysroot to try to access it. This works fine for the C headers, but -doesn't work. - -For the C headers, add_standard_paths prepends the sysroot location to -the /usr/include path (since that's what's specified in cppdefault.c for -that path). It doesn't do the same for the C++ include path, though -(again, as specified in cppdefault.c). - -add_standard_paths doesn't attempt to relocate built-in include paths that -start with the compiled-in sysroot location (e.g., the g++ include dir, in -this case). This isn't surprising really: normally you either prepend the -sysroot location or you don't (as specified by cppdefault.c); none of the -built-in paths normally *start* with the sysroot location and need to be -relocated. However, in this odd-ball case of trying to use the C++ headers -from the sysroot, one of the paths *does* need to be relocated in this way. -=========================== -Index: gcc-4_6-branch/gcc/Makefile.in -=================================================================== ---- gcc-4_6-branch.orig/gcc/Makefile.in 2012-03-04 09:33:36.000000000 -0800 -+++ gcc-4_6-branch/gcc/Makefile.in 2012-03-04 09:41:06.858672113 -0800 -@@ -587,6 +587,7 @@ - build_tooldir = $(exec_prefix)/$(target_noncanonical) - # Directory in which the compiler finds target-independent g++ includes. - gcc_gxx_include_dir = @gcc_gxx_include_dir@ -+gcc_gxx_include_dir_add_sysroot = @gcc_gxx_include_dir_add_sysroot@ - # Directory to search for site-specific includes. - local_includedir = $(local_prefix)/include - includedir = $(prefix)/include -@@ -3964,6 +3965,7 @@ - -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ - -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \ - -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ -+ -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \ - -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \ - -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ - -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ -Index: gcc-4_6-branch/gcc/configure.ac -=================================================================== ---- gcc-4_6-branch.orig/gcc/configure.ac 2012-03-04 09:33:36.000000000 -0800 -+++ gcc-4_6-branch/gcc/configure.ac 2012-03-04 09:41:06.862671939 -0800 -@@ -144,6 +144,15 @@ - fi - fi - -+gcc_gxx_include_dir_add_sysroot=0 -+if test "${with_sysroot+set}" = set; then : -+ gcc_gxx_without_sysroot=`expr "${gcc_gxx_include_dir}" : "${with_sysroot}"'\(.*\)'` -+ if test "${gcc_gxx_without_sysroot}"; then : -+ gcc_gxx_include_dir="${gcc_gxx_without_sysroot}" -+ gcc_gxx_include_dir_add_sysroot=1 -+ fi -+fi -+ - AC_ARG_WITH(cpp_install_dir, - [ --with-cpp-install-dir=DIR - install the user visible C preprocessor in DIR -@@ -4727,6 +4736,7 @@ - AC_SUBST(float_h_file) - AC_SUBST(gcc_config_arguments) - AC_SUBST(gcc_gxx_include_dir) -+AC_SUBST(gcc_gxx_include_dir_add_sysroot) - AC_SUBST(host_exeext) - AC_SUBST(host_xm_file_list) - AC_SUBST(host_xm_include_list) -Index: gcc-4_6-branch/gcc/cppdefault.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/cppdefault.c 2012-03-03 01:03:17.000000000 -0800 -+++ gcc-4_6-branch/gcc/cppdefault.c 2012-03-04 09:41:06.862671939 -0800 -@@ -48,15 +48,18 @@ - = { - #ifdef GPLUSPLUS_INCLUDE_DIR - /* Pick up GNU C++ generic include files. */ -- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, -+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, -+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR - /* Pick up GNU C++ target-dependent include files. */ -- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 1 }, -+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, -+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, - #endif - #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR - /* Pick up GNU C++ backward and deprecated include files. */ -- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, -+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, -+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GCC_INCLUDE_DIR - /* This is the dir for gcc's private headers. */ -Index: gcc-4_6-branch/gcc/configure -=================================================================== ---- gcc-4_6-branch.orig/gcc/configure 2012-03-04 09:33:36.000000000 -0800 -+++ gcc-4_6-branch/gcc/configure 2012-03-04 09:41:12.462671816 -0800 -@@ -636,6 +636,7 @@ - host_xm_include_list - host_xm_file_list - host_exeext -+gcc_gxx_include_dir_add_sysroot - gcc_gxx_include_dir - gcc_config_arguments - float_h_file -@@ -3313,6 +3314,15 @@ - fi - fi - -+gcc_gxx_include_dir_add_sysroot=0 -+if test "${with_sysroot+set}" = set; then : -+ gcc_gxx_without_sysroot=`expr "${gcc_gxx_include_dir}" : "${with_sysroot}"'\(.*\)'` -+ if test "${gcc_gxx_without_sysroot}"; then : -+ gcc_gxx_include_dir="${gcc_gxx_without_sysroot}" -+ gcc_gxx_include_dir_add_sysroot=1 -+ fi -+fi -+ - - # Check whether --with-cpp_install_dir was given. - if test "${with_cpp_install_dir+set}" = set; then : -@@ -17504,7 +17514,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17507 "configure" -+#line 17517 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -17610,7 +17620,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17613 "configure" -+#line 17623 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -26141,6 +26151,7 @@ - - - -+ - - - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-nolibfloat.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-nolibfloat.patch deleted file mode 100644 index 59a9ec33c98..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-nolibfloat.patch +++ /dev/null @@ -1,26 +0,0 @@ -Upstream-Status: Pending - -# Dimitry Andric , 2004-05-01 -# -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed -# anymore. (The required functions are now in libgcc.) -# -# Fixes errors like -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat -# collect2: ld returned 1 exit status -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat - -Index: gcc-4.6.0/gcc/config/arm/linux-elf.h -=================================================================== ---- gcc-4.6.0.orig/gcc/config/arm/linux-elf.h -+++ gcc-4.6.0/gcc/config/arm/linux-elf.h -@@ -60,7 +60,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-softfloat.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-softfloat.patch deleted file mode 100644 index 01bf80d0f94..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-softfloat.patch +++ /dev/null @@ -1,18 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/gcc/config/arm/t-linux -=================================================================== ---- gcc-4.6.0.orig/gcc/config/arm/t-linux -+++ gcc-4.6.0/gcc/config/arm/t-linux -@@ -23,7 +23,10 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi - - LIB1ASMSRC = arm/lib1funcs.asm - LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ -- _arm_addsubdf3 _arm_addsubsf3 -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundisf _floatundidf -+# _arm_addsubdf3 _arm_addsubsf3 - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cache-amnesia.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cache-amnesia.patch deleted file mode 100644 index 72ead311811..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cache-amnesia.patch +++ /dev/null @@ -1,33 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - ---- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -Index: gcc-4.6.0/gcc/configure -=================================================================== ---- gcc-4.6.0.orig/gcc/configure -+++ gcc-4.6.0/gcc/configure -@@ -10898,7 +10898,7 @@ else - saved_CFLAGS="${CFLAGS}" - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- ${realsrcdir}/configure \ -+ CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias - CFLAGS="${saved_CFLAGS}" -Index: gcc-4.6.0/gcc/configure.ac -=================================================================== ---- gcc-4.6.0.orig/gcc/configure.ac -+++ gcc-4.6.0/gcc/configure.ac -@@ -1435,7 +1435,7 @@ else - saved_CFLAGS="${CFLAGS}" - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- ${realsrcdir}/configure \ -+ CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias - CFLAGS="${saved_CFLAGS}" diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch deleted file mode 100644 index 731067741d2..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch +++ /dev/null @@ -1,40 +0,0 @@ -Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile -preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location -rather than the --sysroot option specified on the commandline. If access to that directory is -permission denied (unreadable), gcc will error. - -This happens when ccache is in use due to the fact it uses preprocessed source files. - -The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix, --isystem, -isysroot happen and the correct sysroot is used. - -[YOCTO #2074] - -Upstream-Status: Pending - -RP 2012/04/13 - -Index: gcc-4_6-branch/gcc/gcc.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/gcc.c 2012-04-13 12:24:37.939671140 +0000 -+++ gcc-4_6-branch/gcc/gcc.c 2012-04-13 12:24:54.439670688 +0000 -@@ -953,7 +953,7 @@ - %W{o*:--output-pch=%*}}%V}}}}}}", 0, 0, 0}, - {".i", "@cpp-output", 0, 0, 0}, - {"@cpp-output", -- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, -+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, - {".s", "@assembler", 0, 0, 0}, - {"@assembler", - "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, -Index: gcc-4_6-branch/gcc/cp/lang-specs.h -=================================================================== ---- gcc-4_6-branch.orig/gcc/cp/lang-specs.h 2012-04-13 12:25:01.019670594 +0000 -+++ gcc-4_6-branch/gcc/cp/lang-specs.h 2012-04-13 12:25:07.567670180 +0000 -@@ -64,5 +64,5 @@ - {".ii", "@c++-cpp-output", 0, 0, 0}, - {"@c++-cpp-output", - "%{!M:%{!MM:%{!E:\ -- cc1plus -fpreprocessed %i %(cc1_options) %2\ -+ cc1plus -fpreprocessed %i %I %(cc1_options) %2\ - %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/disable_relax_pic_calls_flag.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/disable_relax_pic_calls_flag.patch deleted file mode 100644 index 22c106d25f3..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/disable_relax_pic_calls_flag.patch +++ /dev/null @@ -1,48 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -GCC: disable MASK_RELAX_PIC_CALLS bit - -The new feature added after 4.3.3 -"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html" -will cause cc1plus eat up all the system memory when build webkit-gtk. -The function mips_get_pic_call_symbol keeps on recursively calling itself. -Disable this feature to walk aside the bug. - -Signed-off-by: Dongxiao Xu - -Index: gcc-4.6.0/gcc/configure -=================================================================== ---- gcc-4.6.0.orig/gcc/configure -+++ gcc-4.6.0/gcc/configure -@@ -24887,13 +24887,6 @@ $as_echo_n "checking assembler and linke - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ld_jalr_reloc" >&5 - $as_echo "$gcc_cv_as_ld_jalr_reloc" >&6; } - -Index: gcc-4.6.0/gcc/configure.ac -=================================================================== ---- gcc-4.6.0.orig/gcc/configure.ac -+++ gcc-4.6.0/gcc/configure.ac -@@ -3764,13 +3764,6 @@ x: - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc) - - AC_CACHE_CHECK([linker for .eh_frame personality relaxation], diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fix-for-ice-50099.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fix-for-ice-50099.patch deleted file mode 100644 index 57b03d2bfb8..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fix-for-ice-50099.patch +++ /dev/null @@ -1,49 +0,0 @@ - -This patch address an issue with the compiler generating an ICE -during compliation of lttng-ust. - -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50099 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Signed-off-by: Saul Wold - -Index: gcc/config/arm/arm.md -=================================================================== ---- gcc-4.6.0/gcc/config/arm/arm.md (revision 178135) -+++ gcc-4.6.0/gcc/config/arm/arm.md (working copy) -@@ -4217,6 +4217,7 @@ (define_split - "TARGET_32BIT" - [(set (match_dup 0) (ashiftrt:SI (match_dup 1) (const_int 31)))] - { -+ rtx srcop = operands[1]; - rtx lo_part = gen_lowpart (SImode, operands[0]); - enum machine_mode src_mode = GET_MODE (operands[1]); - -@@ -4224,14 +4225,21 @@ (define_split - && !reg_overlap_mentioned_p (operands[0], operands[1])) - emit_clobber (operands[0]); - -+ if (TARGET_ARM && src_mode == QImode -+ && !arm_reg_or_extendqisi_mem_op (srcop, QImode)) -+ { -+ rtx dest = gen_lowpart (QImode, lo_part); -+ emit_move_insn (dest, srcop); -+ srcop = dest; -+ } - if (!REG_P (lo_part) || src_mode != SImode -- || !rtx_equal_p (lo_part, operands[1])) -+ || !rtx_equal_p (lo_part, srcop)) - { - if (src_mode == SImode) -- emit_move_insn (lo_part, operands[1]); -+ emit_move_insn (lo_part, srcop); - else - emit_insn (gen_rtx_SET (VOIDmode, lo_part, -- gen_rtx_SIGN_EXTEND (SImode, operands[1]))); -+ gen_rtx_SIGN_EXTEND (SImode, srcop))); - operands[1] = lo_part; - } - operands[0] = gen_highpart (SImode, operands[0]); - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fortran-cross-compile-hack.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fortran-cross-compile-hack.patch deleted file mode 100644 index 5a895596f46..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fortran-cross-compile-hack.patch +++ /dev/null @@ -1,32 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used - used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross - directory. - -Index: gcc-4.5+svnr155514/libgfortran/configure -=================================================================== ---- gcc-4.5+svnr155514.orig/libgfortran/configure 2009-12-29 22:02:01.000000000 -0800 -+++ gcc-4.5+svnr155514/libgfortran/configure 2009-12-30 08:12:40.889091657 -0800 -@@ -11655,7 +11655,7 @@ CC="$lt_save_CC" - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - ac_ext=${ac_fc_srcext-f} - ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' - ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' -Index: gcc-4.5+svnr155514/libgfortran/configure.ac -=================================================================== ---- gcc-4.5+svnr155514.orig/libgfortran/configure.ac 2009-12-29 22:02:01.000000000 -0800 -+++ gcc-4.5+svnr155514/libgfortran/configure.ac 2009-12-30 08:12:13.453094218 -0800 -@@ -187,7 +187,7 @@ AC_SUBST(enable_static) - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - AC_PROG_FC(gfortran) - - # extra LD Flags which are required for targets diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch deleted file mode 100644 index ce8274004dd..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,33 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - ---- - configure | 2 +- - configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -Index: gcc-4.6.0/configure.ac -=================================================================== ---- gcc-4.6.0.orig/configure.ac -+++ gcc-4.6.0/configure.ac -@@ -3073,7 +3073,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in -Index: gcc-4.6.0/configure -=================================================================== ---- gcc-4.6.0.orig/configure -+++ gcc-4.6.0/configure -@@ -7594,7 +7594,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch deleted file mode 100644 index 6d02f7177fc..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,116 +0,0 @@ -Upstream-Status: Pending - -Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it. - -This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET. - -Other changes I had to do include: - -- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though. - -- passing the right CFLAGS to configure scripts as exported environment variables - -I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do. - -Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3? - -Paolo - -2008-02-19 Paolo Bonzini - - PR bootstrap/32009 - PR bootstrap/32161 - - * configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Compute here. - * configure: Regenerate. - - * Makefile.def: Define stage_libcflags for all bootstrap stages. - * Makefile.tpl (BOOT_LIBCFLAGS, STAGE2_LIBCFLAGS, STAGE3_LIBCFLAGS, - STAGE4_LIBCFLAGS): New. - (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Subst from autoconf, without - $(SYSROOT_CFLAGS_FOR_TARGET) and $(DEBUG_PREFIX_CFLAGS_FOR_TARGET). - (BASE_TARGET_EXPORTS): Append them here to C{,XX}FLAGS. - (EXTRA_TARGET_FLAGS): Append them here to {LIB,}C{,XX}FLAGS. - (configure-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags - for target modules. Don't export LIBCFLAGS. - (all-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags; pass - $(BASE_FLAGS_TO_PASS) where [+args+] was passed, and [+args+] after - the overridden CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. - (invocations of `all'): Replace $(TARGET_FLAGS_TO_PASS) with - $(EXTRA_TARGET_FLAGS), $(FLAGS_TO_PASS) with $(EXTRA_HOST_FLAGS). - * Makefile.in: Regenerate. - -config: -2008-02-19 Paolo Bonzini - - PR bootstrap/32009 - * mh-ppc-darwin (BOOT_CFLAGS): Reenable. - -gcc: -2008-02-19 Paolo Bonzini - - PR bootstrap/32009 - * doc/install.texi: Correct references to CFLAGS, replacing them - with BOOT_CFLAGS. Document flags used during bootstrap for - target libraries. - - ---- - Makefile.def | 25 - Makefile.in | 1845 ++++++++++++++++++++++++++++++------------------- - Makefile.tpl | 91 +- - config/mh-ppc-darwin | 3 - configure | 36 - configure.ac | 32 - gcc/Makefile.in | 2 - gcc/configure | 6 - gcc/configure.ac | 3 - gcc/doc/install.texi | 56 - - libiberty/Makefile.in | 162 ++-- - libiberty/configure | 46 - - libiberty/configure.ac | 43 - - 13 files changed, 1454 insertions(+), 896 deletions(-) - -Index: gcc-4.6.0/configure -=================================================================== ---- gcc-4.6.0.orig/configure -+++ gcc-4.6.0/configure -@@ -6785,6 +6785,38 @@ if test "x$CXXFLAGS_FOR_TARGET" = x; the - fi - - -+# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS -+# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS -+# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). -+# We want to ensure that TARGET libraries (which we know are built with -+# gcc) are built with "-O2 -g", so include those options when setting -+# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. -+if test "x$CFLAGS_FOR_TARGET" = x; then -+ CFLAGS_FOR_TARGET=$CFLAGS -+ case " $CFLAGS " in -+ *" -O2 "*) ;; -+ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;; -+ esac -+ case " $CFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;; -+ esac -+fi -+ -+ -+if test "x$CXXFLAGS_FOR_TARGET" = x; then -+ CXXFLAGS_FOR_TARGET=$CXXFLAGS -+ case " $CXXFLAGS " in -+ *" -O2 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;; -+ esac -+ case " $CXXFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;; -+ esac -+fi -+ -+ - # Handle --with-headers=XXX. If the value is not "yes", the contents of - # the named directory are copied to $(tooldir)/sys-include. - if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch deleted file mode 100644 index 70d3c53a845..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch +++ /dev/null @@ -1,33 +0,0 @@ -There would be an "Argument list too long" error when the -build directory is longer than 200, this is caused by: - -headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` - -The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle -it, use the $(sort list) of GNU make which can handle the too long list -would fix the problem, the header would be short enough after sorted. -The "tr ' ' '\012'" was used for translating the space to "\n", the -$(sort list) doesn't need this. - -Signed-off-by: Robert Yang - -Upstream-Status: Pending ---- - gcc/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -4553,7 +4553,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype - # We keep the directory structure for files in config or c-family and .def - # files. All other files are flattened to a single directory. - $(mkinstalldirs) $(DESTDIR)$(plugin_includedir) -- headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`; \ -+ headers="$(sort $(PLUGIN_HEADERS))"; \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ - for file in $$headers; do \ - if [ -f $$file ] ; then \ --- -1.7.10.2 - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-arm-set-cost.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-arm-set-cost.patch deleted file mode 100644 index 4419a201726..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-arm-set-cost.patch +++ /dev/null @@ -1,35 +0,0 @@ -Upstream-Status:Backport -2011-08-18 Richard Sandiford - - gcc/ - Backport from mainline: - - 2011-08-18 Richard Sandiford - - * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET. - (arm_size_rtx_costs): Likewise. - -=== modified file 'gcc/config/arm/arm.c' ---- old/gcc/config/arm/arm.c 2011-08-12 08:08:31 +0000 -+++ new/gcc/config/arm/arm.c 2011-08-18 13:53:37 +0000 -@@ -7464,6 +7464,9 @@ - *total = COSTS_N_INSNS (4); - return true; - -+ case SET: -+ return false; -+ - default: - *total = COSTS_N_INSNS (4); - return false; -@@ -7811,6 +7814,9 @@ - *total = COSTS_N_INSNS (1) + 1; - return true; - -+ case SET: -+ return false; -+ - default: - if (mode != VOIDmode) - *total = COSTS_N_INSNS (ARM_NUM_REGS (mode)); - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-flags-for-build.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-flags-for-build.patch deleted file mode 100644 index 5eaeb0508c5..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-flags-for-build.patch +++ /dev/null @@ -1,189 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4_6-branch/Makefile.def -=================================================================== ---- gcc-4_6-branch.orig/Makefile.def 2012-03-03 01:08:03.000000000 -0800 -+++ gcc-4_6-branch/Makefile.def 2012-03-04 09:19:02.430607447 -0800 -@@ -242,6 +242,7 @@ - flags_to_pass = { flag= BISON ; }; - flags_to_pass = { flag= CC_FOR_BUILD ; }; - flags_to_pass = { flag= CFLAGS_FOR_BUILD ; }; -+flags_to_pass = { flag= CPPFLAGS_FOR_BUILD ; }; - flags_to_pass = { flag= CXX_FOR_BUILD ; }; - flags_to_pass = { flag= EXPECT ; }; - flags_to_pass = { flag= FLEX ; }; -Index: gcc-4_6-branch/gcc/Makefile.in -=================================================================== ---- gcc-4_6-branch.orig/gcc/Makefile.in 2012-03-03 01:03:17.000000000 -0800 -+++ gcc-4_6-branch/gcc/Makefile.in 2012-03-04 09:19:02.430607447 -0800 -@@ -770,7 +770,7 @@ - - # Native linker and preprocessor flags. For x-fragment overrides. - BUILD_LDFLAGS=@BUILD_LDFLAGS@ --BUILD_CPPFLAGS=$(ALL_CPPFLAGS) -+BUILD_CPPFLAGS=$(INCLUDES) @BUILD_CPPFLAGS@ $(X_CPPFLAGS) - - # Actual name to use when installing a native compiler. - GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') -Index: gcc-4_6-branch/gcc/configure.ac -=================================================================== ---- gcc-4_6-branch.orig/gcc/configure.ac 2012-03-03 01:17:45.000000000 -0800 -+++ gcc-4_6-branch/gcc/configure.ac 2012-03-04 09:19:02.430607447 -0800 -@@ -1774,16 +1774,18 @@ - # Also, we cannot run fixincludes. - - # These are the normal (build=host) settings: --CC_FOR_BUILD='$(CC)' AC_SUBST(CC_FOR_BUILD) --BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS) --BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS) --STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC) -+CC_FOR_BUILD='$(CC)' AC_SUBST(CC_FOR_BUILD) -+BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS) -+BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS) -+BUILD_CPPFLAGS='$(ALL_CPPFLAGS)' AC_SUBST(BUILD_CPPFLAGS) -+STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC) - - # And these apply if build != host, or we are generating coverage data - if test x$build != x$host || test "x$coverage_flags" != x - then - BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' - BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' -+ BUILD_CPPFLAGS='$(CPPFLAGS_FOR_BUILD)' - fi - - # Expand extra_headers to include complete path. -Index: gcc-4_6-branch/Makefile.in -=================================================================== ---- gcc-4_6-branch.orig/Makefile.in 2012-03-03 01:08:03.000000000 -0800 -+++ gcc-4_6-branch/Makefile.in 2012-03-04 09:19:02.446607448 -0800 -@@ -338,6 +338,7 @@ - AS_FOR_BUILD = @AS_FOR_BUILD@ - CC_FOR_BUILD = @CC_FOR_BUILD@ - CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ -+CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ - CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ - CXX_FOR_BUILD = @CXX_FOR_BUILD@ - DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ -@@ -691,6 +692,7 @@ - "BISON=$(BISON)" \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ -+ "CPPFLAGS_FOR_BUILD=$(CPPFLAGS_FOR_BUILD)" \ - "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ - "EXPECT=$(EXPECT)" \ - "FLEX=$(FLEX)" \ -Index: gcc-4_6-branch/gcc/configure -=================================================================== ---- gcc-4_6-branch.orig/gcc/configure 2012-03-03 01:17:45.000000000 -0800 -+++ gcc-4_6-branch/gcc/configure 2012-03-04 09:19:15.638608087 -0800 -@@ -703,6 +703,7 @@ - LIBTOOL - collect2 - STMP_FIXINC -+BUILD_CPPFLAGS - BUILD_LDFLAGS - BUILD_CFLAGS - CC_FOR_BUILD -@@ -4842,7 +4843,7 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5 - $as_echo "$acx_cv_cc_gcc_supports_ada" >&6; } - --if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then -+if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then - have_gnat=yes - else - have_gnat=no -@@ -11372,6 +11373,7 @@ - CC_FOR_BUILD='$(CC)' - BUILD_CFLAGS='$(ALL_CFLAGS)' - BUILD_LDFLAGS='$(LDFLAGS)' -+BUILD_CPPFLAGS='$(ALL_CPPFLAGS)' - STMP_FIXINC=stmp-fixinc - - # And these apply if build != host, or we are generating coverage data -@@ -11379,6 +11381,7 @@ - then - BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' - BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' -+ BUILD_CPPFLAGS='$(CPPFLAGS_FOR_BUILD)' - fi - - # Expand extra_headers to include complete path. -@@ -17495,7 +17498,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17498 "configure" -+#line 17501 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -17601,7 +17604,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17604 "configure" -+#line 17607 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -Index: gcc-4_6-branch/Makefile.tpl -=================================================================== ---- gcc-4_6-branch.orig/Makefile.tpl 2012-03-03 01:08:03.000000000 -0800 -+++ gcc-4_6-branch/Makefile.tpl 2012-03-04 09:19:02.454607448 -0800 -@@ -341,6 +341,7 @@ - AS_FOR_BUILD = @AS_FOR_BUILD@ - CC_FOR_BUILD = @CC_FOR_BUILD@ - CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ -+CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ - CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ - CXX_FOR_BUILD = @CXX_FOR_BUILD@ - DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ -Index: gcc-4_6-branch/configure.ac -=================================================================== ---- gcc-4_6-branch.orig/configure.ac 2012-03-03 01:17:45.000000000 -0800 -+++ gcc-4_6-branch/configure.ac 2012-03-04 09:19:02.454607448 -0800 -@@ -3123,6 +3123,7 @@ - # our build compiler if desired. - if test x"${build}" = x"${host}" ; then - CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}} -+ CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}} - CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}} - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}} - fi -@@ -3189,6 +3190,7 @@ - AC_SUBST(AS_FOR_BUILD) - AC_SUBST(CC_FOR_BUILD) - AC_SUBST(CFLAGS_FOR_BUILD) -+AC_SUBST(CPPFLAGS_FOR_BUILD) - AC_SUBST(CXXFLAGS_FOR_BUILD) - AC_SUBST(CXX_FOR_BUILD) - AC_SUBST(DLLTOOL_FOR_BUILD) -Index: gcc-4_6-branch/configure -=================================================================== ---- gcc-4_6-branch.orig/configure 2012-03-03 01:17:45.000000000 -0800 -+++ gcc-4_6-branch/configure 2012-03-04 09:19:02.458607448 -0800 -@@ -617,6 +617,7 @@ - DLLTOOL_FOR_BUILD - CXX_FOR_BUILD - CXXFLAGS_FOR_BUILD -+CPPFLAGS_FOR_BUILD - CFLAGS_FOR_BUILD - CC_FOR_BUILD - AS_FOR_BUILD -@@ -7644,6 +7645,7 @@ - # our build compiler if desired. - if test x"${build}" = x"${host}" ; then - CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}} -+ CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}} - CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}} - LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}} - fi -@@ -7709,6 +7711,7 @@ - - - -+ - - - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-dir-extend.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-dir-extend.patch deleted file mode 100644 index 35170e26221..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-dir-extend.patch +++ /dev/null @@ -1,27 +0,0 @@ -Upstream-Status: Pending - -Add /sw/include and /opt/include based on the original -zecke-no-host-includes.patch patch. The original patch checked for -/usr/include, /sw/include and /opt/include and then triggered a failure and -aborted. - -Instead, we add the two missing items to the current scan. If the user -wants this to be a failure, they can add "-Werror=poison-system-directories". - -Signed-off-by: Mark Hatle - -Index: gcc-4.6.0/gcc/incpath.c -=================================================================== ---- gcc-4.6.0.orig/gcc/incpath.c -+++ gcc-4.6.0/gcc/incpath.c -@@ -363,7 +363,9 @@ merge_include_chains (const char *sysroo - { - if ((!strncmp (p->name, "/usr/include", 12)) - || (!strncmp (p->name, "/usr/local/include", 18)) -- || (!strncmp (p->name, "/usr/X11R6/include", 18))) -+ || (!strncmp (p->name, "/usr/X11R6/include", 18)) -+ || (!strncmp (p->name, "/sw/include", 11)) -+ || (!strncmp (p->name, "/opt/include", 12))) - warning (OPT_Wpoison_system_directories, - "include location \"%s\" is unsafe for " - "cross-compilation", diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-system-directories.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-system-directories.patch deleted file mode 100644 index a44e86ca4f8..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-system-directories.patch +++ /dev/null @@ -1,223 +0,0 @@ -Upstream-Status: Inappropriate [distribution: codesourcery] - - gcc/ - 2008-07-02 Joseph Myers - * c-incpath.c: Include toplev.h. - (merge_include_chains): Use warning instead of cpp_error for - system directory poisoning diagnostic. - * Makefile.in (c-incpath.o): Depend on toplev.h. - * gcc.c (LINK_COMMAND_SPEC): Pass - --error-poison-system-directories if - -Werror=poison-system-directories. - - 2007-06-13 Joseph Myers - * common.opt (--Wno-poison-system-directories): New. - * doc/invoke.texi (-Wno-poison-system-directories): Document. - * c-incpath.c: Include flags.h. - (merge_include_chains): Check flag_poison_system_directories. - * gcc.c (LINK_COMMAND_SPEC): Pass --no-poison-system-directories - to linker if -Wno-poison-system-directories. - * Makefile.in (c-incpath.o): Depend on $(FLAGS_H). - - 2007-03-20 Daniel Jacobowitz - Joseph Myers - * configure.ac (--enable-poison-system-directories): New option. - * configure, config.in: Regenerate. - * c-incpath.c (merge_include_chains): If - ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of - /usr/include, /usr/local/include or /usr/X11R6/include. - -Index: gcc-4_6-branch/gcc/common.opt -=================================================================== ---- gcc-4_6-branch.orig/gcc/common.opt 2012-03-03 01:03:17.000000000 -0800 -+++ gcc-4_6-branch/gcc/common.opt 2012-03-04 09:24:54.410624483 -0800 -@@ -567,6 +567,10 @@ - Common Var(warn_padded) Warning - Warn when padding is required to align structure members - -+Wpoison-system-directories -+Common Var(flag_poison_system_directories) Init(1) Warning -+Warn for -I and -L options using system directories if cross compiling -+ - Wshadow - Common Var(warn_shadow) Warning - Warn when one local variable shadows another -Index: gcc-4_6-branch/gcc/config.in -=================================================================== ---- gcc-4_6-branch.orig/gcc/config.in 2012-03-03 01:03:17.000000000 -0800 -+++ gcc-4_6-branch/gcc/config.in 2012-03-04 09:24:54.410624483 -0800 -@@ -144,6 +144,12 @@ - #endif - - -+/* Define to warn for use of native system header directories */ -+#ifndef USED_FOR_TARGET -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+#endif -+ -+ - /* Define if you want all operations on RTL (the basic data structure of the - optimizer and back end) to be checked for dynamic type safety at runtime. - This is quite expensive. */ -Index: gcc-4_6-branch/gcc/configure.ac -=================================================================== ---- gcc-4_6-branch.orig/gcc/configure.ac 2012-03-04 09:22:07.000000000 -0800 -+++ gcc-4_6-branch/gcc/configure.ac 2012-03-04 09:24:54.410624483 -0800 -@@ -4692,6 +4692,16 @@ - fi) - AC_SUBST(slibdir) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system header directories]),, -+ [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system header directories]) -+fi -+ - # Substitute configuration variables - AC_SUBST(subdirs) - AC_SUBST(srcdir) -Index: gcc-4_6-branch/gcc/doc/invoke.texi -=================================================================== ---- gcc-4_6-branch.orig/gcc/doc/invoke.texi 2012-03-03 00:46:39.000000000 -0800 -+++ gcc-4_6-branch/gcc/doc/invoke.texi 2012-03-04 09:24:54.414624482 -0800 -@@ -257,6 +257,7 @@ - -Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded @gol - -Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol - -Wpointer-arith -Wno-pointer-to-int-cast @gol -+-Wno-poison-system-directories @gol - -Wredundant-decls @gol - -Wreturn-type -Wsequence-point -Wshadow @gol - -Wsign-compare -Wsign-conversion -Wstack-protector @gol -@@ -3782,6 +3783,14 @@ - for most targets, it is made up of code and thus requires the stack - to be made executable in order for the program to work properly. - -+@item -Wno-poison-system-directories -+@opindex Wno-poison-system-directories -+Do not warn for @option{-I} or @option{-L} options using system -+directories such as @file{/usr/include} when cross compiling. This -+option is intended for use in chroot environments when such -+directories contain the correct headers and libraries for the target -+system rather than the host. -+ - @item -Wfloat-equal - @opindex Wfloat-equal - @opindex Wno-float-equal -Index: gcc-4_6-branch/gcc/gcc.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/gcc.c 2012-03-03 01:03:17.000000000 -0800 -+++ gcc-4_6-branch/gcc/gcc.c 2012-03-04 09:24:54.418624482 -0800 -@@ -659,6 +659,8 @@ - %{flto} %{flto=*} %l " LINK_PIE_SPEC \ - "%X %{o*} %{e*} %{N} %{n} %{r}\ - %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\ -+ %{Wno-poison-system-directories:--no-poison-system-directories}\ -+ %{Werror=poison-system-directories:--error-poison-system-directories}\ - %{static:} %{L*} %(mfwrap) %(link_libgcc) %o\ - %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\ - %(mflib) " STACK_SPLIT_SPEC "\ -Index: gcc-4_6-branch/gcc/incpath.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/incpath.c 2012-03-03 01:03:17.000000000 -0800 -+++ gcc-4_6-branch/gcc/incpath.c 2012-03-04 09:24:54.418624482 -0800 -@@ -353,6 +353,24 @@ - } - fprintf (stderr, _("End of search list.\n")); - } -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (flag_poison_system_directories) -+ { -+ struct cpp_dir *p; -+ -+ for (p = heads[QUOTE]; p; p = p->next) -+ { -+ if ((!strncmp (p->name, "/usr/include", 12)) -+ || (!strncmp (p->name, "/usr/local/include", 18)) -+ || (!strncmp (p->name, "/usr/X11R6/include", 18))) -+ warning (OPT_Wpoison_system_directories, -+ "include location \"%s\" is unsafe for " -+ "cross-compilation", -+ p->name); -+ } -+ } -+#endif - } - - /* Use given -I paths for #include "..." but not #include <...>, and -Index: gcc-4_6-branch/gcc/Makefile.in -=================================================================== ---- gcc-4_6-branch.orig/gcc/Makefile.in 2012-03-04 09:22:05.000000000 -0800 -+++ gcc-4_6-branch/gcc/Makefile.in 2012-03-04 09:24:54.418624482 -0800 -@@ -2179,7 +2179,7 @@ - - incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \ - intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \ -- $(MACHMODE_H) -+ $(MACHMODE_H) $(FLAGS_H) toplev.h - - prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) prefix.h \ - Makefile $(BASEVER) -Index: gcc-4_6-branch/gcc/configure -=================================================================== ---- gcc-4_6-branch.orig/gcc/configure 2012-03-04 09:22:07.000000000 -0800 -+++ gcc-4_6-branch/gcc/configure 2012-03-04 09:25:31.502626277 -0800 -@@ -912,6 +912,7 @@ - enable_maintainer_mode - enable_version_specific_runtime_libs - with_slibdir -+enable_poison_system_directories - enable_plugin - enable_libquadmath_support - ' -@@ -1623,6 +1624,8 @@ - --enable-version-specific-runtime-libs - specify that runtime libraries should be - installed in a compiler-specific directory -+ --enable-poison-system-directories -+ warn for use of native system header directories - --enable-plugin enable plugin support - --disable-libquadmath-support - disable libquadmath support for Fortran -@@ -17498,7 +17501,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17501 "configure" -+#line 17504 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -17604,7 +17607,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17607 "configure" -+#line 17610 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -26125,6 +26128,19 @@ - - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi -+ - # Substitute configuration variables - - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-uclibc-locale-ctype_touplow_t.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-uclibc-locale-ctype_touplow_t.patch deleted file mode 100644 index 1648b3b98c4..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-uclibc-locale-ctype_touplow_t.patch +++ /dev/null @@ -1,72 +0,0 @@ -Upstream-Status: Pending - -Index: gcc-4.6.0/libstdc++-v3/config/locale/generic/c_locale.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/generic/c_locale.h -+++ gcc-4.6.0/libstdc++-v3/config/locale/generic/c_locale.h -@@ -41,13 +41,22 @@ - - #include - -+#ifdef __UCLIBC__ -+#include -+#include -+#endif -+ - #define _GLIBCXX_NUM_CATEGORIES 0 - - namespace std _GLIBCXX_VISIBILITY(default) - { - _GLIBCXX_BEGIN_NAMESPACE_VERSION - -+#ifdef __UCLIBC__ -+ typedef __ctype_touplow_t* __c_locale; -+#else - typedef int* __c_locale; -+#endif - - // Convert numeric value of type double and long double to string and - // return length of string. If vsnprintf is available use it, otherwise -Index: gcc-4.6.0/libstdc++-v3/config/os/gnu-linux/ctype_base.h -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/os/gnu-linux/ctype_base.h -+++ gcc-4.6.0/libstdc++-v3/config/os/gnu-linux/ctype_base.h -@@ -34,6 +34,11 @@ - - // Information as gleaned from /usr/include/ctype.h - -+#ifdef __UCLIBC__ -+#include -+#include -+#endif -+ - namespace std _GLIBCXX_VISIBILITY(default) - { - _GLIBCXX_BEGIN_NAMESPACE_VERSION -@@ -42,7 +47,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - struct ctype_base - { - // Non-standard typedefs. -+#ifdef __UCLIBC__ -+ typedef const __ctype_touplow_t* __to_type; -+#else - typedef const int* __to_type; -+#endif - - // NB: Offsets into ctype::_M_table force a particular size - // on the mask type. Because of this, we don't use an enum. -Index: gcc-4.6.0/libstdc++-v3/config/locale/generic/c_locale.cc -=================================================================== ---- gcc-4.6.0.orig/libstdc++-v3/config/locale/generic/c_locale.cc -+++ gcc-4.6.0/libstdc++-v3/config/locale/generic/c_locale.cc -@@ -264,5 +264,10 @@ _GLIBCXX_END_NAMESPACE_VERSION - #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT - #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ - extern "C" void ldbl (void) __attribute__ ((alias (#dbl))) -+#ifdef __UCLIBC__ -+// This is because __c_locale is of type __ctype_touplow_t* which is short on uclibc. for glibc its int* -+_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPs, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPs); -+#else - _GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi); -+#endif - #endif // _GLIBCXX_LONG_DOUBLE_COMPAT diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-with-linker-hash-style.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-with-linker-hash-style.patch deleted file mode 100644 index 94b61cdcc9b..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-with-linker-hash-style.patch +++ /dev/null @@ -1,196 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Khem Raj - -commit 3cb9bbfa927aa187048534f9069202c017a78e38 -Author: ppluzhnikov -Date: Wed May 11 18:28:14 2011 +0000 - - 2011-05-11 Satoru Takabayashi - Paul Pluzhnikov - - * gcc/doc/install.texi (Configuration): Document - --with-linker-hash-style. - * gcc/gcc.c (init_spec): Handle LINKER_HASH_STYLE. - * gcc/config.in: Add LINKER_HASH_STYLE. - * gcc/configure.ac: Add --with-linker-hash-style. - * gcc/configure: Regenerate. - - - - git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173668 138bc75d-0d04-0410-961f-82ee72b054a4 - -Index: gcc-4_6-branch/gcc/config.in -=================================================================== ---- gcc-4_6-branch.orig/gcc/config.in 2012-03-04 09:30:04.000000000 -0800 -+++ gcc-4_6-branch/gcc/config.in 2012-03-04 09:32:30.878646575 -0800 -@@ -1583,6 +1583,12 @@ - #endif - - -+/* The linker hash style */ -+#ifndef USED_FOR_TARGET -+#undef LINKER_HASH_STYLE -+#endif -+ -+ - /* Define to the name of the LTO plugin DSO that must be passed to the - linker's -plugin=LIB option. */ - #ifndef USED_FOR_TARGET -Index: gcc-4_6-branch/gcc/configure -=================================================================== ---- gcc-4_6-branch.orig/gcc/configure 2012-03-04 09:30:05.000000000 -0800 -+++ gcc-4_6-branch/gcc/configure 2012-03-04 09:32:39.918647011 -0800 -@@ -915,6 +915,7 @@ - enable_poison_system_directories - enable_plugin - enable_libquadmath_support -+with_linker_hash_style - ' - ac_precious_vars='build_alias - host_alias -@@ -1667,6 +1668,8 @@ - with the compiler - --with-system-zlib use installed libz - --with-slibdir=DIR shared libraries in DIR [LIBDIR] -+ --with-linker-hash-style={sysv,gnu,both} -+ specify the linker hash style - - Some influential environment variables: - CC C compiler command -@@ -17501,7 +17504,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17504 "configure" -+#line 17507 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -17607,7 +17610,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 17610 "configure" -+#line 17613 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -26432,6 +26435,36 @@ - fi - - -+# Specify what hash style to use by default. -+ -+# Check whether --with-linker-hash-style was given. -+if test "${with_linker_hash_style+set}" = set; then : -+ withval=$with_linker_hash_style; case x"$withval" in -+ xsysv) -+ LINKER_HASH_STYLE=sysv -+ ;; -+ xgnu) -+ LINKER_HASH_STYLE=gnu -+ ;; -+ xboth) -+ LINKER_HASH_STYLE=both -+ ;; -+ *) -+ as_fn_error "$withval is an invalid option to --with-linker-hash-style" "$LINENO" 5 -+ ;; -+ esac -+else -+ LINKER_HASH_STYLE='' -+fi -+ -+if test x"${LINKER_HASH_STYLE}" != x; then -+ -+cat >>confdefs.h <<_ACEOF -+#define LINKER_HASH_STYLE "$LINKER_HASH_STYLE" -+_ACEOF -+ -+fi -+ - # Configure the subdirectories - # AC_CONFIG_SUBDIRS($subdirs) - -Index: gcc-4_6-branch/gcc/configure.ac -=================================================================== ---- gcc-4_6-branch.orig/gcc/configure.ac 2012-03-04 09:30:05.000000000 -0800 -+++ gcc-4_6-branch/gcc/configure.ac 2012-03-04 09:32:30.890646574 -0800 -@@ -4905,6 +4905,30 @@ - fi - - -+# Specify what hash style to use by default. -+AC_ARG_WITH([linker-hash-style], -+[AC_HELP_STRING([--with-linker-hash-style={sysv,gnu,both}], -+ [specify the linker hash style])], -+[case x"$withval" in -+ xsysv) -+ LINKER_HASH_STYLE=sysv -+ ;; -+ xgnu) -+ LINKER_HASH_STYLE=gnu -+ ;; -+ xboth) -+ LINKER_HASH_STYLE=both -+ ;; -+ *) -+ AC_MSG_ERROR([$withval is an invalid option to --with-linker-hash-style]) -+ ;; -+ esac], -+[LINKER_HASH_STYLE='']) -+if test x"${LINKER_HASH_STYLE}" != x; then -+ AC_DEFINE_UNQUOTED(LINKER_HASH_STYLE, "$LINKER_HASH_STYLE", -+ [The linker hash style]) -+fi -+ - # Configure the subdirectories - # AC_CONFIG_SUBDIRS($subdirs) - -Index: gcc-4_6-branch/gcc/doc/install.texi -=================================================================== ---- gcc-4_6-branch.orig/gcc/doc/install.texi 2012-03-03 00:46:39.000000000 -0800 -+++ gcc-4_6-branch/gcc/doc/install.texi 2012-03-04 09:32:30.894646574 -0800 -@@ -1665,6 +1665,11 @@ - support @option{--build-id} option, a warning is issued and the - @option{--enable-linker-build-id} option is ignored. The default is off. - -+@item --with-linker-hash-style=@var{choice} -+Tells GCC to pass @option{--hash-style=@var{choice}} option to the -+linker for all final links. @var{choice} can be one of -+@samp{sysv}, @samp{gnu}, and @samp{both} where @samp{sysv} is the default. -+ - @item --enable-gnu-unique-object - @itemx --disable-gnu-unique-object - Tells GCC to use the gnu_unique_object relocation for C++ template -Index: gcc-4_6-branch/gcc/gcc.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/gcc.c 2012-03-04 09:30:04.000000000 -0800 -+++ gcc-4_6-branch/gcc/gcc.c 2012-03-04 09:32:30.894646574 -0800 -@@ -1427,7 +1427,8 @@ - } - #endif - --#if defined LINK_EH_SPEC || defined LINK_BUILDID_SPEC -+#if defined LINK_EH_SPEC || defined LINK_BUILDID_SPEC || \ -+ defined LINKER_HASH_STYLE - # ifdef LINK_BUILDID_SPEC - /* Prepend LINK_BUILDID_SPEC to whatever link_spec we had before. */ - obstack_grow (&obstack, LINK_BUILDID_SPEC, sizeof(LINK_BUILDID_SPEC) - 1); -@@ -1436,6 +1437,16 @@ - /* Prepend LINK_EH_SPEC to whatever link_spec we had before. */ - obstack_grow (&obstack, LINK_EH_SPEC, sizeof(LINK_EH_SPEC) - 1); - # endif -+# ifdef LINKER_HASH_STYLE -+ /* Prepend --hash-style=LINKER_HASH_STYLE to whatever link_spec we had -+ before. */ -+ { -+ static const char hash_style[] = "--hash-style="; -+ obstack_grow (&obstack, hash_style, sizeof(hash_style) - 1); -+ obstack_grow (&obstack, LINKER_HASH_STYLE, sizeof(LINKER_HASH_STYLE) - 1); -+ obstack_1grow (&obstack, ' '); -+ } -+# endif - obstack_grow0 (&obstack, link_spec, strlen (link_spec)); - link_spec = XOBFINISH (&obstack, const char *); - #endif diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch deleted file mode 100644 index bf930ec36d6..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch +++ /dev/null @@ -1,32 +0,0 @@ -MIPS64 defaults to n32 ABI, this patch makes it -so that it defaults to N64 ABI - -Upstream-Status: Inappropriate [OE config specific] - -Signed-off-by: Khem Raj -Index: gcc-4_6-branch/gcc/config.gcc -=================================================================== ---- gcc-4_6-branch.orig/gcc/config.gcc 2012-04-22 19:12:12.431061229 -0700 -+++ gcc-4_6-branch/gcc/config.gcc 2012-04-22 19:13:36.307065289 -0700 -@@ -1882,7 +1882,7 @@ - mips64*-*-linux* | mipsisa64*-*-linux*) - tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/linux.h mips/linux64.h" - tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16" -- tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32" -+ tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_64" - case ${target} in - mips64el-st-linux-gnu) - tm_file="${tm_file} mips/st.h" -Index: gcc-4_6-branch/gcc/config/mips/linux64.h -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/mips/linux64.h 2012-04-22 19:10:59.743057711 -0700 -+++ gcc-4_6-branch/gcc/config/mips/linux64.h 2012-04-22 19:11:56.919060479 -0700 -@@ -26,7 +26,7 @@ - BASE_DRIVER_SELF_SPECS, \ - LINUX_DRIVER_SELF_SPECS \ - " %{!EB:%{!EL:%(endian_spec)}}" \ -- " %{!mabi=*: -mabi=n32}" -+ " %{!mabi=*: -mabi=64}" - - #undef LIB_SPEC - #define LIB_SPEC "\ diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/optional_libstdc.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/optional_libstdc.patch deleted file mode 100644 index fe157a892d4..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/optional_libstdc.patch +++ /dev/null @@ -1,86 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++ -will not run correctly since by default the linker will try to link against libstdc++ -which shouldn't exist yet. We need an option to disable -lstdc++ -option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc -driver. This patch adds such an option which only disables the -lstdc++. - -A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to -do this officially, the likely answer is don't build libstdc++ separately. - -RP 29/6/10 - -Index: gcc-4.6.0/gcc/cp/g++spec.c -=================================================================== ---- gcc-4.6.0.orig/gcc/cp/g++spec.c -+++ gcc-4.6.0/gcc/cp/g++spec.c -@@ -127,6 +127,7 @@ lang_specific_driver (struct cl_decoded_ - switch (decoded_options[i].opt_index) - { - case OPT_nostdlib: -+ case OPT_nostdlib__: - case OPT_nodefaultlibs: - library = -1; - break; -Index: gcc-4.6.0/gcc/doc/invoke.texi -=================================================================== ---- gcc-4.6.0.orig/gcc/doc/invoke.texi -+++ gcc-4.6.0/gcc/doc/invoke.texi -@@ -193,7 +193,7 @@ in the following sections. - -fno-pretty-templates @gol - -frepo -fno-rtti -fstats -ftemplate-depth=@var{n} @gol - -fno-threadsafe-statics -fuse-cxa-atexit -fno-weak -nostdinc++ @gol ---fno-default-inline -fvisibility-inlines-hidden @gol -+-nostdlib++ -fno-default-inline -fvisibility-inlines-hidden @gol - -fvisibility-ms-compat @gol - -Wabi -Wconversion-null -Wctor-dtor-privacy @gol - -Wnoexcept -Wnon-virtual-dtor -Wreorder @gol -@@ -431,7 +431,7 @@ Objective-C and Objective-C++ Dialects}. - @gccoptlist{@var{object-file-name} -l@var{library} @gol - -nostartfiles -nodefaultlibs -nostdlib -pie -rdynamic @gol - -s -static -static-libgcc -static-libstdc++ -shared @gol ---shared-libgcc -symbolic @gol -+-shared-libgcc -symbolic -nostdlib++ @gol - -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol - -u @var{symbol}} - -@@ -9069,6 +9069,11 @@ These entries are usually resolved by en - libc. These entry points should be supplied through some other - mechanism when this option is specified. - -+@item -nostdlib++ -+@opindex nostdlib++ -+Do not use the standard system C++ runtime libraries when linking. -+Only the libraries you specify will be passed to the linker. -+ - @cindex @option{-lgcc}, use with @option{-nostdlib} - @cindex @option{-nostdlib} and unresolved references - @cindex unresolved references and @option{-nostdlib} -Index: gcc-4.6.0/gcc/c-family/c.opt -=================================================================== ---- gcc-4.6.0.orig/gcc/c-family/c.opt -+++ gcc-4.6.0/gcc/c-family/c.opt -@@ -1111,6 +1111,10 @@ nostdinc++ - C++ ObjC++ - Do not search standard system include directories for C++ - -+nostdlib++ -+Driver -+Do not link standard C++ runtime library -+ - o - C ObjC C++ ObjC++ Joined Separate - ; Documented in common.opt -Index: gcc-4.6.0/gcc/gcc.c -=================================================================== ---- gcc-4.6.0.orig/gcc/gcc.c -+++ gcc-4.6.0/gcc/gcc.c -@@ -666,6 +666,7 @@ proper position among the other output f - %(mflib) " STACK_SPLIT_SPEC "\ - %{fprofile-arcs|fprofile-generate*|coverage:-lgcov}\ - %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\ -+ %{!nostdlib++:}\ - %{!nostdlib:%{!nostartfiles:%E}} %{T*} }}}}}}" - #endif - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/powerpc-e5500.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/powerpc-e5500.patch deleted file mode 100644 index 1f478f3ea70..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/powerpc-e5500.patch +++ /dev/null @@ -1,465 +0,0 @@ -Upstream-Status: Pending - -Implements basic e5500 enablement in gcc, with a scheduler, -mcpu -flag, etc... - -Also splits the masks for popcntb, popcntd, and cmpb. Originally those -masks would also control other instructions that e5500 does not -support (so, we either get none or all). - -For the lack of means to do tests, those instructions were never -enabled until now. The new instructions enabled with this patch are: -popcntb, popcntw, popcntd, bpermd, prtyw, prtyd, cmpb, ldbrx, and -stdbrx. - -Signed-off-by: Edmar Wienskoski -Signed-off-by: Kumar Gala - -Index: gcc-4_6-branch/gcc/config.gcc -=================================================================== ---- gcc-4_6-branch.orig/gcc/config.gcc -+++ gcc-4_6-branch/gcc/config.gcc -@@ -395,7 +395,7 @@ powerpc*-*-*) - extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h" - need_64bit_hwint=yes - case x$with_cpu in -- xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[34567]|xpower6x|xrs64a|xcell|xa2|xe500mc64) -+ xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[34567]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500) - cpu_is_64bit=yes - ;; - esac -@@ -3493,7 +3493,7 @@ case "${target}" in - | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \ - | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \ - | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \ -- | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | titan\ -+ | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | titan\ - | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell) - # OK - ;; -Index: gcc-4_6-branch/gcc/config/rs6000/e5500.md -=================================================================== ---- /dev/null -+++ gcc-4_6-branch/gcc/config/rs6000/e5500.md -@@ -0,0 +1,176 @@ -+;; Pipeline description for Freescale PowerPC e5500 core. -+;; Copyright (C) 2011 Free Software Foundation, Inc. -+;; Contributed by Edmar Wienskoski (edmar@freescale.com) -+;; -+;; This file is part of GCC. -+;; -+;; GCC is free software; you can redistribute it and/or modify it -+;; under the terms of the GNU General Public License as published -+;; by the Free Software Foundation; either version 3, or (at your -+;; option) any later version. -+;; -+;; GCC is distributed in the hope that it will be useful, but WITHOUT -+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -+;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -+;; License for more details. -+;; -+;; You should have received a copy of the GNU General Public License -+;; along with GCC; see the file COPYING3. If not see -+;; . -+;; -+;; e5500 64-bit SFX(2), CFX, LSU, FPU, BU -+;; Max issue 3 insns/clock cycle (includes 1 branch) -+ -+(define_automaton "e5500_most,e5500_long") -+(define_cpu_unit "e5500_decode_0,e5500_decode_1" "e5500_most") -+ -+;; SFX. -+(define_cpu_unit "e5500_sfx_0,e5500_sfx_1" "e5500_most") -+ -+;; CFX. -+(define_cpu_unit "e5500_cfx_stage0,e5500_cfx_stage1" "e5500_most") -+ -+;; Non-pipelined division. -+(define_cpu_unit "e5500_cfx_div" "e5500_long") -+ -+;; LSU. -+(define_cpu_unit "e5500_lsu" "e5500_most") -+ -+;; FPU. -+(define_cpu_unit "e5500_fpu" "e5500_long") -+ -+;; BU. -+(define_cpu_unit "e5500_bu" "e5500_most") -+ -+;; The following units are used to make the automata deterministic. -+(define_cpu_unit "present_e5500_decode_0" "e5500_most") -+(define_cpu_unit "present_e5500_sfx_0" "e5500_most") -+(presence_set "present_e5500_decode_0" "e5500_decode_0") -+(presence_set "present_e5500_sfx_0" "e5500_sfx_0") -+ -+;; Some useful abbreviations. -+(define_reservation "e5500_decode" -+ "e5500_decode_0|e5500_decode_1+present_e5500_decode_0") -+(define_reservation "e5500_sfx" -+ "e5500_sfx_0|e5500_sfx_1+present_e5500_sfx_0") -+ -+;; SFX. -+(define_insn_reservation "e5500_sfx" 1 -+ (and (eq_attr "type" "integer,insert_word,insert_dword,delayed_compare,\ -+ shift,cntlz,exts") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_sfx") -+ -+(define_insn_reservation "e5500_sfx2" 2 -+ (and (eq_attr "type" "cmp,compare,fast_compare,trap") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_sfx") -+ -+(define_insn_reservation "e5500_delayed" 2 -+ (and (eq_attr "type" "var_shift_rotate,var_delayed_compare,popcnt") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_sfx*2") -+ -+(define_insn_reservation "e5500_two" 2 -+ (and (eq_attr "type" "two") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_decode+e5500_sfx,e5500_sfx") -+ -+(define_insn_reservation "e5500_three" 3 -+ (and (eq_attr "type" "three") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,(e5500_decode+e5500_sfx)*2,e5500_sfx") -+ -+;; SFX - Mfcr. -+(define_insn_reservation "e5500_mfcr" 4 -+ (and (eq_attr "type" "mfcr") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_sfx_0*4") -+ -+;; SFX - Mtcrf. -+(define_insn_reservation "e5500_mtcrf" 1 -+ (and (eq_attr "type" "mtcr") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_sfx_0") -+ -+;; SFX - Mtjmpr. -+(define_insn_reservation "e5500_mtjmpr" 1 -+ (and (eq_attr "type" "mtjmpr,mfjmpr") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_sfx") -+ -+;; CFX - Multiply. -+(define_insn_reservation "e5500_multiply" 4 -+ (and (eq_attr "type" "imul") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_cfx_stage0,e5500_cfx_stage1") -+ -+(define_insn_reservation "e5500_multiply_i" 5 -+ (and (eq_attr "type" "imul2,imul3,imul_compare") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_cfx_stage0,\ -+ e5500_cfx_stage0+e5500_cfx_stage1,e5500_cfx_stage1") -+ -+;; CFX - Divide. -+(define_insn_reservation "e5500_divide" 16 -+ (and (eq_attr "type" "idiv") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_cfx_stage0+e5500_cfx_div,\ -+ e5500_cfx_div*15") -+ -+(define_insn_reservation "e5500_divide_d" 26 -+ (and (eq_attr "type" "ldiv") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_cfx_stage0+e5500_cfx_div,\ -+ e5500_cfx_div*25") -+ -+;; LSU - Loads. -+(define_insn_reservation "e5500_load" 3 -+ (and (eq_attr "type" "load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,\ -+ load_l,sync") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_lsu") -+ -+(define_insn_reservation "e5500_fpload" 4 -+ (and (eq_attr "type" "fpload,fpload_ux,fpload_u") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_lsu") -+ -+;; LSU - Stores. -+(define_insn_reservation "e5500_store" 3 -+ (and (eq_attr "type" "store,store_ux,store_u,store_c") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_lsu") -+ -+(define_insn_reservation "e5500_fpstore" 3 -+ (and (eq_attr "type" "fpstore,fpstore_ux,fpstore_u") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_lsu") -+ -+;; FP. -+(define_insn_reservation "e5500_float" 7 -+ (and (eq_attr "type" "fpsimple,fp,fpcompare,dmul") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_fpu") -+ -+(define_insn_reservation "e5500_sdiv" 20 -+ (and (eq_attr "type" "sdiv") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_fpu*20") -+ -+(define_insn_reservation "e5500_ddiv" 35 -+ (and (eq_attr "type" "ddiv") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_fpu*35") -+ -+;; BU. -+(define_insn_reservation "e5500_branch" 1 -+ (and (eq_attr "type" "jmpreg,branch,isync") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_bu") -+ -+;; BU - CR logical. -+(define_insn_reservation "e5500_cr_logical" 1 -+ (and (eq_attr "type" "cr_logical,delayed_cr") -+ (eq_attr "cpu" "ppce5500")) -+ "e5500_decode,e5500_bu") -Index: gcc-4_6-branch/gcc/config/rs6000/rs6000-opts.h -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/rs6000/rs6000-opts.h -+++ gcc-4_6-branch/gcc/config/rs6000/rs6000-opts.h -@@ -53,6 +53,7 @@ enum processor_type - PROCESSOR_PPCE300C3, - PROCESSOR_PPCE500MC, - PROCESSOR_PPCE500MC64, -+ PROCESSOR_PPCE5500, - PROCESSOR_POWER4, - PROCESSOR_POWER5, - PROCESSOR_POWER6, -Index: gcc-4_6-branch/gcc/config/rs6000/rs6000.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/rs6000/rs6000.c -+++ gcc-4_6-branch/gcc/config/rs6000/rs6000.c -@@ -779,6 +779,25 @@ struct processor_costs ppce500mc64_cost - 1, /* prefetch streams /*/ - }; - -+/* Instruction costs on PPCE5500 processors. */ -+static const -+struct processor_costs ppce5500_cost = { -+ COSTS_N_INSNS (5), /* mulsi */ -+ COSTS_N_INSNS (5), /* mulsi_const */ -+ COSTS_N_INSNS (5), /* mulsi_const9 */ -+ COSTS_N_INSNS (5), /* muldi */ -+ COSTS_N_INSNS (14), /* divsi */ -+ COSTS_N_INSNS (14), /* divdi */ -+ COSTS_N_INSNS (7), /* fp */ -+ COSTS_N_INSNS (10), /* dmul */ -+ COSTS_N_INSNS (36), /* sdiv */ -+ COSTS_N_INSNS (66), /* ddiv */ -+ 64, /* cache line size */ -+ 32, /* l1 cache */ -+ 128, /* l2 cache */ -+ 1, /* prefetch streams /*/ -+}; -+ - /* Instruction costs on AppliedMicro Titan processors. */ - static const - struct processor_costs titan_cost = { -@@ -1784,6 +1803,9 @@ static struct rs6000_ptt const processor - | MASK_ISEL}, - {"e500mc64", PROCESSOR_PPCE500MC64, POWERPC_BASE_MASK | MASK_POWERPC64 - | MASK_PPC_GFXOPT | MASK_ISEL}, -+ {"e5500", PROCESSOR_PPCE5500, POWERPC_BASE_MASK | MASK_POWERPC64 -+ | MASK_PPC_GFXOPT | MASK_ISEL | MASK_CMPB | MASK_POPCNTB -+ | MASK_POPCNTD}, - {"860", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT}, - {"970", PROCESSOR_POWER4, - POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64}, -@@ -2741,7 +2763,8 @@ rs6000_option_override_internal (bool gl - : PROCESSOR_DEFAULT)); - - if (rs6000_cpu == PROCESSOR_PPCE300C2 || rs6000_cpu == PROCESSOR_PPCE300C3 -- || rs6000_cpu == PROCESSOR_PPCE500MC || rs6000_cpu == PROCESSOR_PPCE500MC64) -+ || rs6000_cpu == PROCESSOR_PPCE500MC || rs6000_cpu == PROCESSOR_PPCE500MC64 -+ || rs6000_cpu == PROCESSOR_PPCE5500) - { - if (TARGET_ALTIVEC) - error ("AltiVec not supported in this target"); -@@ -2842,9 +2865,14 @@ rs6000_option_override_internal (bool gl - user's opinion, though. */ - if (rs6000_block_move_inline_limit == 0 - && (rs6000_cpu == PROCESSOR_PPCE500MC -- || rs6000_cpu == PROCESSOR_PPCE500MC64)) -+ || rs6000_cpu == PROCESSOR_PPCE500MC64 -+ || rs6000_cpu == PROCESSOR_PPCE5500)) - rs6000_block_move_inline_limit = 128; - -+ /* Those machines does not have fsqrt instruction */ -+ if (rs6000_cpu == PROCESSOR_PPCE5500) -+ target_flags &= ~MASK_PPC_GPOPT; -+ - /* store_one_arg depends on expand_block_move to handle at least the - size of reg_parm_stack_space. */ - if (rs6000_block_move_inline_limit < (TARGET_POWERPC64 ? 64 : 32)) -@@ -2976,7 +3004,8 @@ rs6000_option_override_internal (bool gl - #endif - - if (TARGET_E500 || rs6000_cpu == PROCESSOR_PPCE500MC -- || rs6000_cpu == PROCESSOR_PPCE500MC64) -+ || rs6000_cpu == PROCESSOR_PPCE500MC64 -+ || rs6000_cpu == PROCESSOR_PPCE5500) - { - /* The e500 and e500mc do not have string instructions, and we set - MASK_STRING above when optimizing for size. */ -@@ -3023,7 +3052,8 @@ rs6000_option_override_internal (bool gl - || rs6000_cpu == PROCESSOR_POWER6 - || rs6000_cpu == PROCESSOR_POWER7 - || rs6000_cpu == PROCESSOR_PPCE500MC -- || rs6000_cpu == PROCESSOR_PPCE500MC64); -+ || rs6000_cpu == PROCESSOR_PPCE500MC64 -+ || rs6000_cpu == PROCESSOR_PPCE5500); - - /* Allow debug switches to override the above settings. These are set to -1 - in rs6000.opt to indicate the user hasn't directly set the switch. */ -@@ -3245,6 +3275,10 @@ rs6000_option_override_internal (bool gl - rs6000_cost = &ppce500mc64_cost; - break; - -+ case PROCESSOR_PPCE5500: -+ rs6000_cost = &ppce5500_cost; -+ break; -+ - case PROCESSOR_TITAN: - rs6000_cost = &titan_cost; - break; -@@ -23227,6 +23261,7 @@ rs6000_adjust_cost (rtx insn, rtx link, - || rs6000_cpu_attr == CPU_PPC750 - || rs6000_cpu_attr == CPU_PPC7400 - || rs6000_cpu_attr == CPU_PPC7450 -+ || rs6000_cpu_attr == CPU_PPCE5500 - || rs6000_cpu_attr == CPU_POWER4 - || rs6000_cpu_attr == CPU_POWER5 - || rs6000_cpu_attr == CPU_POWER7 -@@ -23771,6 +23806,7 @@ rs6000_issue_rate (void) - case CPU_PPCE300C3: - case CPU_PPCE500MC: - case CPU_PPCE500MC64: -+ case CPU_PPCE5500: - case CPU_TITAN: - return 2; - case CPU_RIOS2: -Index: gcc-4_6-branch/gcc/config/rs6000/rs6000.h -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/rs6000/rs6000.h -+++ gcc-4_6-branch/gcc/config/rs6000/rs6000.h -@@ -168,6 +168,7 @@ - %{mcpu=e300c3: -me300} \ - %{mcpu=e500mc: -me500mc} \ - %{mcpu=e500mc64: -me500mc64} \ -+%{mcpu=e5500: -me5500} \ - %{maltivec: -maltivec} \ - %{mvsx: -mvsx %{!maltivec: -maltivec} %{!mcpu*: %(asm_cpu_power7)}} \ - -many" -@@ -477,13 +478,13 @@ extern int rs6000_vector_align[]; - - #define TARGET_FCTIDZ TARGET_FCFID - #define TARGET_STFIWX TARGET_PPC_GFXOPT --#define TARGET_LFIWAX TARGET_CMPB --#define TARGET_LFIWZX TARGET_POPCNTD --#define TARGET_FCFIDS TARGET_POPCNTD --#define TARGET_FCFIDU TARGET_POPCNTD --#define TARGET_FCFIDUS TARGET_POPCNTD --#define TARGET_FCTIDUZ TARGET_POPCNTD --#define TARGET_FCTIWUZ TARGET_POPCNTD -+#define TARGET_LFIWAX (TARGET_CMPB && rs6000_cpu != PROCESSOR_PPCE5500) -+#define TARGET_LFIWZX (TARGET_POPCNTD && rs6000_cpu != PROCESSOR_PPCE5500) -+#define TARGET_FCFIDS TARGET_LFIWZX -+#define TARGET_FCFIDU TARGET_LFIWZX -+#define TARGET_FCFIDUS TARGET_LFIWZX -+#define TARGET_FCTIDUZ TARGET_LFIWZX -+#define TARGET_FCTIWUZ TARGET_LFIWZX - - /* E500 processors only support plain "sync", not lwsync. */ - #define TARGET_NO_LWSYNC TARGET_E500 -@@ -494,10 +495,12 @@ extern int rs6000_vector_align[]; - - #define TARGET_FRE (TARGET_HARD_FLOAT && TARGET_FPRS \ - && TARGET_DOUBLE_FLOAT \ -- && (TARGET_POPCNTB || VECTOR_UNIT_VSX_P (DFmode))) -+ && (TARGET_POPCNTB || VECTOR_UNIT_VSX_P (DFmode)) \ -+ && rs6000_cpu != PROCESSOR_PPCE5500) - - #define TARGET_FRSQRTES (TARGET_HARD_FLOAT && TARGET_POPCNTB \ -- && TARGET_FPRS && TARGET_SINGLE_FLOAT) -+ && TARGET_FPRS && TARGET_SINGLE_FLOAT \ -+ && rs6000_cpu != PROCESSOR_PPCE5500) - - #define TARGET_FRSQRTE (TARGET_HARD_FLOAT && TARGET_FPRS \ - && TARGET_DOUBLE_FLOAT \ -Index: gcc-4_6-branch/gcc/config/rs6000/rs6000.md -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/rs6000/rs6000.md -+++ gcc-4_6-branch/gcc/config/rs6000/rs6000.md -@@ -126,7 +126,7 @@ - - ;; Define an insn type attribute. This is used in function unit delay - ;; computations. --(define_attr "type" "integer,two,three,load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,store,store_ux,store_u,fpload,fpload_ux,fpload_u,fpstore,fpstore_ux,fpstore_u,vecload,vecstore,imul,imul2,imul3,lmul,idiv,ldiv,insert_word,branch,cmp,fast_compare,compare,var_delayed_compare,delayed_compare,imul_compare,lmul_compare,fpcompare,cr_logical,delayed_cr,mfcr,mfcrf,mtcr,mfjmpr,mtjmpr,fp,fpsimple,dmul,sdiv,ddiv,ssqrt,dsqrt,jmpreg,brinc,vecsimple,veccomplex,vecdiv,veccmp,veccmpsimple,vecperm,vecfloat,vecfdiv,isync,sync,load_l,store_c,shift,trap,insert_dword,var_shift_rotate,cntlz,exts,mffgpr,mftgpr,isel" -+(define_attr "type" "integer,two,three,load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,store,store_ux,store_u,fpload,fpload_ux,fpload_u,fpstore,fpstore_ux,fpstore_u,vecload,vecstore,imul,imul2,imul3,lmul,idiv,ldiv,insert_word,branch,cmp,fast_compare,compare,var_delayed_compare,delayed_compare,imul_compare,lmul_compare,fpcompare,cr_logical,delayed_cr,mfcr,mfcrf,mtcr,mfjmpr,mtjmpr,fp,fpsimple,dmul,sdiv,ddiv,ssqrt,dsqrt,jmpreg,brinc,vecsimple,veccomplex,vecdiv,veccmp,veccmpsimple,vecperm,vecfloat,vecfdiv,isync,sync,load_l,store_c,shift,trap,insert_dword,var_shift_rotate,cntlz,exts,mffgpr,mftgpr,isel,popcnt" - (const_string "integer")) - - ;; Define floating point instruction sub-types for use with Xfpu.md -@@ -148,7 +148,7 @@ - ;; Processor type -- this attribute must exactly match the processor_type - ;; enumeration in rs6000.h. - --(define_attr "cpu" "rios1,rios2,rs64a,mpccore,ppc403,ppc405,ppc440,ppc476,ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,ppc750,ppc7400,ppc7450,ppc8540,ppce300c2,ppce300c3,ppce500mc,ppce500mc64,power4,power5,power6,power7,cell,ppca2,titan" -+(define_attr "cpu" "rios1,rios2,rs64a,mpccore,ppc403,ppc405,ppc440,ppc476,ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,ppc750,ppc7400,ppc7450,ppc8540,ppce300c2,ppce300c3,ppce500mc,ppce500mc64,ppce5500,power4,power5,power6,power7,cell,ppca2,titan" - (const (symbol_ref "rs6000_cpu_attr"))) - - -@@ -176,6 +176,7 @@ - (include "e300c2c3.md") - (include "e500mc.md") - (include "e500mc64.md") -+(include "e5500.md") - (include "power4.md") - (include "power5.md") - (include "power6.md") -@@ -2302,13 +2303,17 @@ - (unspec:GPR [(match_operand:GPR 1 "gpc_reg_operand" "r")] - UNSPEC_POPCNTB))] - "TARGET_POPCNTB" -- "popcntb %0,%1") -+ "popcntb %0,%1" -+ [(set_attr "length" "4") -+ (set_attr "type" "popcnt")]) - - (define_insn "popcntd2" - [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") - (popcount:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")))] - "TARGET_POPCNTD" -- "popcnt %0,%1") -+ "popcnt %0,%1" -+ [(set_attr "length" "4") -+ (set_attr "type" "popcnt")]) - - (define_expand "popcount2" - [(set (match_operand:GPR 0 "gpc_reg_operand" "") -@@ -5957,10 +5962,10 @@ - && ((TARGET_PPC_GFXOPT - && !HONOR_NANS (mode) - && !HONOR_SIGNED_ZEROS (mode)) -- || TARGET_CMPB -+ || TARGET_LFIWAX - || VECTOR_UNIT_VSX_P (mode))" - { -- if (TARGET_CMPB || VECTOR_UNIT_VSX_P (mode)) -+ if (TARGET_LFIWAX || VECTOR_UNIT_VSX_P (mode)) - { - emit_insn (gen_copysign3_fcpsgn (operands[0], operands[1], - operands[2])); -@@ -5979,7 +5984,7 @@ - (unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" "") - (match_operand:SFDF 2 "gpc_reg_operand" "")] - UNSPEC_COPYSIGN))] -- "TARGET_CMPB && !VECTOR_UNIT_VSX_P (mode)" -+ "TARGET_LFIWAX && !VECTOR_UNIT_VSX_P (mode)" - "fcpsgn %0,%2,%1" - [(set_attr "type" "fp")]) - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr32219.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr32219.patch deleted file mode 100644 index c0e35940a58..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr32219.patch +++ /dev/null @@ -1,72 +0,0 @@ -Upstream-Status:Backport -Hi, - -As suggested by richi. -regtested on i686-linux-gnu with all default languages and no regressions. -Ok for trunk? - -gcc/ChangeLog -2010-03-15 Bernhard Reutner-Fischer - - PR target/32219 - * varasm.c (default_binds_local_p_1): Weak data is not local. - -gcc/testsuite/ChangeLog -2010-03-15 Bernhard Reutner-Fischer - - PR target/32219 - * gcc.dg/visibility-21.c: New test. - -Signed-off-by: Bernhard Reutner-Fischer ---- - gcc/testsuite/gcc.dg/visibility-21.c | 14 ++++++++++++++ - gcc/varasm.c | 8 ++++---- - 2 files changed, 18 insertions(+), 4 deletions(-) - create mode 100644 gcc/testsuite/gcc.dg/visibility-21.c - -Index: gcc-4_6-branch/gcc/testsuite/gcc.dg/visibility-21.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gcc-4_6-branch/gcc/testsuite/gcc.dg/visibility-21.c 2011-10-18 17:11:33.224827436 -0700 -@@ -0,0 +1,14 @@ -+/* PR target/32219 */ -+/* { dg-do run } */ -+/* { dg-require-visibility "" } */ -+/* { dg-options "-fPIC" { target fpic } } */ -+ -+extern void f() __attribute__((weak,visibility("hidden"))); -+extern int puts( char const* ); -+int main() -+{ -+ if (f) -+ f(); -+ return 0; -+} -+ -Index: gcc-4_6-branch/gcc/varasm.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/varasm.c 2011-09-16 19:58:21.000000000 -0700 -+++ gcc-4_6-branch/gcc/varasm.c 2011-10-18 17:19:06.431074788 -0700 -@@ -6760,6 +6760,10 @@ - /* Static variables are always local. */ - else if (! TREE_PUBLIC (exp)) - local_p = true; -+ /* hidden weak can't be overridden by something non-local, all -+ that is possible is that it is not defined at all. */ -+ else if (DECL_WEAK (exp)) -+ local_p = false; - /* A variable is local if the user has said explicitly that it will - be. */ - else if ((DECL_VISIBILITY_SPECIFIED (exp) -@@ -6773,11 +6777,6 @@ - local. */ - else if (DECL_VISIBILITY (exp) != VISIBILITY_DEFAULT) - local_p = true; -- /* Default visibility weak data can be overridden by a strong symbol -- in another module and so are not local. */ -- else if (DECL_WEAK (exp) -- && !resolved_locally) -- local_p = false; - /* If PIC, then assume that any global name can be overridden by - symbols resolved from other modules. */ - else if (shlib) diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr46934.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr46934.patch deleted file mode 100644 index 60b7012bd98..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr46934.patch +++ /dev/null @@ -1,393 +0,0 @@ -Upstream-Status:Backport -2011-09-19 chengbin - - Backport r174035 from mainline - 2011-05-22 Tom de Vries - - PR middle-end/48689 - * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with - CODE_CONTAINS_STRUCT (TS_COMMON). - - Backport r172297 from mainline - 2011-04-11 Chung-Lin Tang - Richard Earnshaw - - PR target/48250 - * config/arm/arm.c (arm_legitimize_reload_address): Update cases - to use sign-magnitude offsets. Reject unsupported unaligned - cases. Add detailed description in comments. - * config/arm/arm.md (reload_outdf): Disable for ARM mode; change - condition from TARGET_32BIT to TARGET_ARM. - - Backport r171978 from mainline - 2011-04-05 Tom de Vries - - PR target/43920 - * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing - for size. - - Backport r171632 from mainline - 2011-03-28 Richard Sandiford - - * builtins.c (expand_builtin_memset_args): Use gen_int_mode - instead of GEN_INT. - - Backport r171379 from mainline - 2011-03-23 Chung-Lin Tang - - PR target/46934 - * config/arm/arm.md (casesi): Use the gen_int_mode() function - to subtract lower bound instead of GEN_INT(). - - Backport r171251 from mainline - 2011-03-21 Daniel Jacobowitz - - * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test - for barrier handlers. - - Backport r171096 from mainline - 2011-03-17 Chung-Lin Tang - - PR target/43872 - * config/arm/arm.c (arm_get_frame_offsets): Adjust early - return condition with !cfun->calls_alloca. - -Index: gcc-4_6-branch/gcc/builtins.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/builtins.c 2011-10-17 17:45:32.050502963 -0700 -+++ gcc-4_6-branch/gcc/builtins.c 2011-10-17 17:46:11.154696878 -0700 -@@ -3972,6 +3972,7 @@ - { - tree fndecl, fn; - enum built_in_function fcode; -+ enum machine_mode val_mode; - char c; - unsigned int dest_align; - rtx dest_mem, dest_addr, len_rtx; -@@ -4006,14 +4007,14 @@ - - len_rtx = expand_normal (len); - dest_mem = get_memory_rtx (dest, len); -+ val_mode = TYPE_MODE (unsigned_char_type_node); - - if (TREE_CODE (val) != INTEGER_CST) - { - rtx val_rtx; - - val_rtx = expand_normal (val); -- val_rtx = convert_to_mode (TYPE_MODE (unsigned_char_type_node), -- val_rtx, 0); -+ val_rtx = convert_to_mode (val_mode, val_rtx, 0); - - /* Assume that we can memset by pieces if we can store - * the coefficients by pieces (in the required modes). -@@ -4024,8 +4025,7 @@ - builtin_memset_read_str, &c, dest_align, - true)) - { -- val_rtx = force_reg (TYPE_MODE (unsigned_char_type_node), -- val_rtx); -+ val_rtx = force_reg (val_mode, val_rtx); - store_by_pieces (dest_mem, tree_low_cst (len, 1), - builtin_memset_gen_str, val_rtx, dest_align, - true, 0); -@@ -4051,7 +4051,8 @@ - true)) - store_by_pieces (dest_mem, tree_low_cst (len, 1), - builtin_memset_read_str, &c, dest_align, true, 0); -- else if (!set_storage_via_setmem (dest_mem, len_rtx, GEN_INT (c), -+ else if (!set_storage_via_setmem (dest_mem, len_rtx, -+ gen_int_mode (c, val_mode), - dest_align, expected_align, - expected_size)) - goto do_libcall; -Index: gcc-4_6-branch/gcc/config/arm/arm.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/arm/arm.c 2011-10-17 17:45:41.914551883 -0700 -+++ gcc-4_6-branch/gcc/config/arm/arm.c 2011-10-17 17:48:35.447412371 -0700 -@@ -6406,23 +6406,126 @@ - HOST_WIDE_INT val = INTVAL (XEXP (*p, 1)); - HOST_WIDE_INT low, high; - -- if (mode == DImode || (mode == DFmode && TARGET_SOFT_FLOAT)) -- low = ((val & 0xf) ^ 0x8) - 0x8; -- else if (TARGET_MAVERICK && TARGET_HARD_FLOAT) -- /* Need to be careful, -256 is not a valid offset. */ -- low = val >= 0 ? (val & 0xff) : -((-val) & 0xff); -- else if (mode == SImode -- || (mode == SFmode && TARGET_SOFT_FLOAT) -- || ((mode == HImode || mode == QImode) && ! arm_arch4)) -- /* Need to be careful, -4096 is not a valid offset. */ -- low = val >= 0 ? (val & 0xfff) : -((-val) & 0xfff); -- else if ((mode == HImode || mode == QImode) && arm_arch4) -- /* Need to be careful, -256 is not a valid offset. */ -- low = val >= 0 ? (val & 0xff) : -((-val) & 0xff); -- else if (GET_MODE_CLASS (mode) == MODE_FLOAT -- && TARGET_HARD_FLOAT && TARGET_FPA) -- /* Need to be careful, -1024 is not a valid offset. */ -- low = val >= 0 ? (val & 0x3ff) : -((-val) & 0x3ff); -+ /* Detect coprocessor load/stores. */ -+ bool coproc_p = ((TARGET_HARD_FLOAT -+ && (TARGET_VFP || TARGET_FPA || TARGET_MAVERICK) -+ && (mode == SFmode || mode == DFmode -+ || (mode == DImode && TARGET_MAVERICK))) -+ || (TARGET_REALLY_IWMMXT -+ && VALID_IWMMXT_REG_MODE (mode)) -+ || (TARGET_NEON -+ && (VALID_NEON_DREG_MODE (mode) -+ || VALID_NEON_QREG_MODE (mode)))); -+ -+ /* For some conditions, bail out when lower two bits are unaligned. */ -+ if ((val & 0x3) != 0 -+ /* Coprocessor load/store indexes are 8-bits + '00' appended. */ -+ && (coproc_p -+ /* For DI, and DF under soft-float: */ -+ || ((mode == DImode || mode == DFmode) -+ /* Without ldrd, we use stm/ldm, which does not -+ fair well with unaligned bits. */ -+ && (! TARGET_LDRD -+ /* Thumb-2 ldrd/strd is [-1020,+1020] in steps of 4. */ -+ || TARGET_THUMB2)))) -+ return false; -+ -+ /* When breaking down a [reg+index] reload address into [(reg+high)+low], -+ of which the (reg+high) gets turned into a reload add insn, -+ we try to decompose the index into high/low values that can often -+ also lead to better reload CSE. -+ For example: -+ ldr r0, [r2, #4100] // Offset too large -+ ldr r1, [r2, #4104] // Offset too large -+ -+ is best reloaded as: -+ add t1, r2, #4096 -+ ldr r0, [t1, #4] -+ add t2, r2, #4096 -+ ldr r1, [t2, #8] -+ -+ which post-reload CSE can simplify in most cases to eliminate the -+ second add instruction: -+ add t1, r2, #4096 -+ ldr r0, [t1, #4] -+ ldr r1, [t1, #8] -+ -+ The idea here is that we want to split out the bits of the constant -+ as a mask, rather than as subtracting the maximum offset that the -+ respective type of load/store used can handle. -+ -+ When encountering negative offsets, we can still utilize it even if -+ the overall offset is positive; sometimes this may lead to an immediate -+ that can be constructed with fewer instructions. -+ For example: -+ ldr r0, [r2, #0x3FFFFC] -+ -+ This is best reloaded as: -+ add t1, r2, #0x400000 -+ ldr r0, [t1, #-4] -+ -+ The trick for spotting this for a load insn with N bits of offset -+ (i.e. bits N-1:0) is to look at bit N; if it is set, then chose a -+ negative offset that is going to make bit N and all the bits below -+ it become zero in the remainder part. -+ -+ The SIGN_MAG_LOW_ADDR_BITS macro below implements this, with respect -+ to sign-magnitude addressing (i.e. separate +- bit, or 1's complement), -+ used in most cases of ARM load/store instructions. */ -+ -+#define SIGN_MAG_LOW_ADDR_BITS(VAL, N) \ -+ (((VAL) & ((1 << (N)) - 1)) \ -+ ? (((VAL) & ((1 << ((N) + 1)) - 1)) ^ (1 << (N))) - (1 << (N)) \ -+ : 0) -+ -+ if (coproc_p) -+ low = SIGN_MAG_LOW_ADDR_BITS (val, 10); -+ else if (GET_MODE_SIZE (mode) == 8) -+ { -+ if (TARGET_LDRD) -+ low = (TARGET_THUMB2 -+ ? SIGN_MAG_LOW_ADDR_BITS (val, 10) -+ : SIGN_MAG_LOW_ADDR_BITS (val, 8)); -+ else -+ /* For pre-ARMv5TE (without ldrd), we use ldm/stm(db/da/ib) -+ to access doublewords. The supported load/store offsets are -+ -8, -4, and 4, which we try to produce here. */ -+ low = ((val & 0xf) ^ 0x8) - 0x8; -+ } -+ else if (GET_MODE_SIZE (mode) < 8) -+ { -+ /* NEON element load/stores do not have an offset. */ -+ if (TARGET_NEON_FP16 && mode == HFmode) -+ return false; -+ -+ if (TARGET_THUMB2) -+ { -+ /* Thumb-2 has an asymmetrical index range of (-256,4096). -+ Try the wider 12-bit range first, and re-try if the result -+ is out of range. */ -+ low = SIGN_MAG_LOW_ADDR_BITS (val, 12); -+ if (low < -255) -+ low = SIGN_MAG_LOW_ADDR_BITS (val, 8); -+ } -+ else -+ { -+ if (mode == HImode || mode == HFmode) -+ { -+ if (arm_arch4) -+ low = SIGN_MAG_LOW_ADDR_BITS (val, 8); -+ else -+ { -+ /* The storehi/movhi_bytes fallbacks can use only -+ [-4094,+4094] of the full ldrb/strb index range. */ -+ low = SIGN_MAG_LOW_ADDR_BITS (val, 12); -+ if (low == 4095 || low == -4095) -+ return false; -+ } -+ } -+ else -+ low = SIGN_MAG_LOW_ADDR_BITS (val, 12); -+ } -+ } - else - return false; - -@@ -15415,7 +15518,10 @@ - offsets->soft_frame = offsets->saved_regs + CALLER_INTERWORKING_SLOT_SIZE; - /* A leaf function does not need any stack alignment if it has nothing - on the stack. */ -- if (leaf && frame_size == 0) -+ if (leaf && frame_size == 0 -+ /* However if it calls alloca(), we have a dynamically allocated -+ block of BIGGEST_ALIGNMENT on stack, so still do stack alignment. */ -+ && ! cfun->calls_alloca) - { - offsets->outgoing_args = offsets->soft_frame; - offsets->locals_base = offsets->soft_frame; -Index: gcc-4_6-branch/gcc/config/arm/arm.h -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/arm/arm.h 2011-10-17 17:45:41.910551858 -0700 -+++ gcc-4_6-branch/gcc/config/arm/arm.h 2011-10-17 17:48:35.447412371 -0700 -@@ -2041,7 +2041,8 @@ - /* Try to generate sequences that don't involve branches, we can then use - conditional instructions */ - #define BRANCH_COST(speed_p, predictable_p) \ -- (TARGET_32BIT ? 4 : (optimize > 0 ? 2 : 0)) -+ (TARGET_32BIT ? (TARGET_THUMB2 && !speed_p ? 1 : 4) \ -+ : (optimize > 0 ? 2 : 0)) - - /* Position Independent Code. */ - /* We decide which register to use based on the compilation options and -Index: gcc-4_6-branch/gcc/config/arm/arm.md -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/arm/arm.md 2011-10-17 17:46:11.002696119 -0700 -+++ gcc-4_6-branch/gcc/config/arm/arm.md 2011-10-17 17:46:11.202697111 -0700 -@@ -6187,7 +6187,7 @@ - [(match_operand:DF 0 "arm_reload_memory_operand" "=o") - (match_operand:DF 1 "s_register_operand" "r") - (match_operand:SI 2 "s_register_operand" "=&r")] -- "TARGET_32BIT" -+ "TARGET_THUMB2" - " - { - enum rtx_code code = GET_CODE (XEXP (operands[0], 0)); -@@ -8359,7 +8359,8 @@ - rtx reg = gen_reg_rtx (SImode); - - emit_insn (gen_addsi3 (reg, operands[0], -- GEN_INT (-INTVAL (operands[1])))); -+ gen_int_mode (-INTVAL (operands[1]), -+ SImode))); - operands[0] = reg; - } - -Index: gcc-4_6-branch/gcc/config/arm/unwind-arm.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/config/arm/unwind-arm.c 2011-10-17 17:45:41.390549278 -0700 -+++ gcc-4_6-branch/gcc/config/arm/unwind-arm.c 2011-10-17 17:46:11.000000000 -0700 -@@ -1196,8 +1196,6 @@ - ucbp->barrier_cache.bitpattern[4] = (_uw) &data[1]; - - if (data[0] & uint32_highbit) -- phase2_call_unexpected_after_unwind = 1; -- else - { - data += rtti_count + 1; - /* Setup for entry to the handler. */ -@@ -1207,6 +1205,8 @@ - _Unwind_SetGR (context, 0, (_uw) ucbp); - return _URC_INSTALL_CONTEXT; - } -+ else -+ phase2_call_unexpected_after_unwind = 1; - } - if (data[0] & uint32_highbit) - data++; -Index: gcc-4_6-branch/gcc/fold-const.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/fold-const.c 2011-10-17 17:45:32.050502963 -0700 -+++ gcc-4_6-branch/gcc/fold-const.c 2011-10-17 17:46:11.178696990 -0700 -@@ -13788,7 +13788,8 @@ - if (TREE_CODE_CLASS (code) != tcc_type - && TREE_CODE_CLASS (code) != tcc_declaration - && code != TREE_LIST -- && code != SSA_NAME) -+ && code != SSA_NAME -+ && CODE_CONTAINS_STRUCT (code, TS_COMMON)) - fold_checksum_tree (TREE_CHAIN (expr), ctx, ht); - switch (TREE_CODE_CLASS (code)) - { -Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr40887.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/pr40887.c 2011-06-24 08:13:47.000000000 -0700 -+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr40887.c 2011-10-17 17:46:11.182697014 -0700 -@@ -1,5 +1,6 @@ - /* { dg-options "-O2 -march=armv5te" } */ - /* { dg-final { scan-assembler "blx" } } */ -+/* { dg-prune-output "switch .* conflicts with" } */ - - int (*indirect_func)(); - -Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr42575.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/pr42575.c 2011-06-24 08:13:47.000000000 -0700 -+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr42575.c 2011-10-17 17:46:11.182697014 -0700 -@@ -1,4 +1,4 @@ --/* { dg-options "-O2 -march=armv7-a" } */ -+/* { dg-options "-O2" } */ - /* Make sure RA does good job allocating registers and avoids - unnecessary moves. */ - /* { dg-final { scan-assembler-not "mov" } } */ -Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr43698.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/pr43698.c 2011-06-24 08:13:47.000000000 -0700 -+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr43698.c 2011-10-17 17:46:11.182697014 -0700 -@@ -1,5 +1,5 @@ - /* { dg-do run } */ --/* { dg-options "-Os -march=armv7-a" } */ -+/* { dg-options "-Os" } */ - #include - #include - -Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr44788.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/pr44788.c 2011-06-24 08:13:47.000000000 -0700 -+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr44788.c 2011-10-17 17:46:11.182697014 -0700 -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-require-effective-target arm_thumb2_ok } */ --/* { dg-options "-Os -fno-strict-aliasing -fPIC -mthumb -march=armv7-a -mfpu=vfp3 -mfloat-abi=softfp" } */ -+/* { dg-options "-Os -fno-strict-aliasing -fPIC -mthumb -mfpu=vfp3 -mfloat-abi=softfp" } */ - - void joint_decode(float* mlt_buffer1, int t) { - int i; -Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/sync-1.c -=================================================================== ---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/sync-1.c 2011-06-24 08:13:47.000000000 -0700 -+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/sync-1.c 2011-10-17 17:46:11.182697014 -0700 -@@ -1,5 +1,6 @@ --/* { dg-do run } */ --/* { dg-options "-O2 -march=armv7-a" } */ -+ -+/* { dg-do run { target sync_int_long } } */ -+/* { dg-options "-O2" } */ - - volatile int mem; - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr47551.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr47551.patch deleted file mode 100644 index 2c6bcda9be3..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr47551.patch +++ /dev/null @@ -1,64 +0,0 @@ -Upstream-Status:Backport -2011-02-02 Richard Sandiford - - gcc/ - PR target/47551 - * config/arm/arm.c (coproc_secondary_reload_class): Handle - structure modes. Don't check neon_vector_mem_operand for - vector or structure modes. - - gcc/testsuite/ - PR target/47551 - * gcc.target/arm/neon-modes-2.c: New test. - -=== modified file 'gcc/config/arm/arm.c' ---- old/gcc/config/arm/arm.c 2011-02-21 14:04:51 +0000 -+++ new/gcc/config/arm/arm.c 2011-03-02 11:38:43 +0000 -@@ -9139,11 +9139,14 @@ - return GENERAL_REGS; - } - -+ /* The neon move patterns handle all legitimate vector and struct -+ addresses. */ - if (TARGET_NEON -+ && MEM_P (x) - && (GET_MODE_CLASS (mode) == MODE_VECTOR_INT -- || GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT) -- && neon_vector_mem_operand (x, 0)) -- return NO_REGS; -+ || GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT -+ || VALID_NEON_STRUCT_MODE (mode))) -+ return NO_REGS; - - if (arm_coproc_mem_operand (x, wb) || s_register_operand (x, mode)) - return NO_REGS; - -=== added file 'gcc/testsuite/gcc.target/arm/neon-modes-2.c' ---- old/gcc/testsuite/gcc.target/arm/neon-modes-2.c 1970-01-01 00:00:00 +0000 -+++ new/gcc/testsuite/gcc.target/arm/neon-modes-2.c 2011-02-02 10:02:45 +0000 -@@ -0,0 +1,24 @@ -+/* { dg-do compile } */ -+/* { dg-require-effective-target arm_neon_ok } */ -+/* { dg-options "-O1" } */ -+/* { dg-add-options arm_neon } */ -+ -+#include "arm_neon.h" -+ -+#define SETUP(A) x##A = vld3_u32 (ptr + A * 0x20) -+#define MODIFY(A) x##A = vld3_lane_u32 (ptr + A * 0x20 + 0x10, x##A, 1) -+#define STORE(A) vst3_u32 (ptr + A * 0x20, x##A) -+ -+#define MANY(A) A (0), A (1), A (2), A (3), A (4), A (5) -+ -+void -+bar (uint32_t *ptr, int y) -+{ -+ uint32x2x3_t MANY (SETUP); -+ int *x = __builtin_alloca (y); -+ int z[0x1000]; -+ foo (x, z); -+ MANY (MODIFY); -+ foo (x, z); -+ MANY (STORE); -+} - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch deleted file mode 100644 index b4351ee7ef7..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch +++ /dev/null @@ -1,80 +0,0 @@ -Upstream-Status: Pending - -Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that -the source can be shared between gcc-cross-initial, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. ---- - gcc/Makefile.in | 2 +- - gcc/configure | 4 ++-- - gcc/configure.ac | 4 ++-- - gcc/mkconfig.sh | 4 ++-- - 4 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 7790915..3a0c34a 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -463,7 +463,7 @@ LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ] - TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ - - xmake_file=@xmake_file@ --tmake_file=@tmake_file@ -+tmake_file=@tmake_file@ ./t-oe - TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@ - TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@ - TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@ -diff --git a/gcc/configure b/gcc/configure -index 82fa3e4..d4711b5 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11227,8 +11227,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 844d8da..a960343 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1628,8 +1628,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh -index d56df8c..875d0f1 100644 ---- a/gcc/mkconfig.sh -+++ b/gcc/mkconfig.sh -@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then - if [ $# -ge 1 ]; then - echo '#ifdef IN_GCC' >> ${output}T - for file in "$@"; do -- if test x"$file" = x"defaults.h"; then -+ if test x"$file" = x"./defaults.h"; then - postpone_defaults_h="yes" - else - echo "# include \"$file\"" >> ${output}T -@@ -103,7 +103,7 @@ esac - - # If we postponed including defaults.h, add the #include now. - if test x"$postpone_defaults_h" = x"yes"; then -- echo "# include \"defaults.h\"" >> ${output}T -+ echo "# include \"./defaults.h\"" >> ${output}T - fi - - # Add multiple inclusion protection guard, part two. --- -1.7.1 - diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/zecke-xgcc-cpp.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/zecke-xgcc-cpp.patch deleted file mode 100644 index 6192c4820f5..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/zecke-xgcc-cpp.patch +++ /dev/null @@ -1,30 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -upstream: n/a -comment: Use the preprocessor we have just compiled instead the one of -the system. There might be incompabilities between us and them. - -Index: gcc-4.6.0/Makefile.in -=================================================================== ---- gcc-4.6.0.orig/Makefile.in -+++ gcc-4.6.0/Makefile.in -@@ -270,6 +270,7 @@ BASE_TARGET_EXPORTS = \ - AR="$(AR_FOR_TARGET)"; export AR; \ - AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ - CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \ -+ CPP="$(CC_FOR_TARGET) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ -Index: gcc-4.6.0/Makefile.tpl -=================================================================== ---- gcc-4.6.0.orig/Makefile.tpl -+++ gcc-4.6.0/Makefile.tpl -@@ -273,6 +273,7 @@ BASE_TARGET_EXPORTS = \ - AR="$(AR_FOR_TARGET)"; export AR; \ - AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ - CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \ -+ CPP="$(CC_FOR_TARGET) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-common-4.6.inc b/toolchain-layer/recipes-devtools/gcc/gcc-common-4.6.inc deleted file mode 100644 index f6b492919c5..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-common-4.6.inc +++ /dev/null @@ -1,4 +0,0 @@ -# this will prepend this layer to FILESPATH -FILESEXTRAPATHS := "${THISDIR}/gcc-4.6" -PRINC := "${@int(PRINC) + 6}" -ARM_INSTRUCTION_SET = "arm" diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-cross-canadian_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-cross-canadian_4.6.bb deleted file mode 100644 index 29ddd677352..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-cross-canadian_4.6.bb +++ /dev/null @@ -1,4 +0,0 @@ -inherit cross-canadian - -require recipes-devtools/gcc/gcc-${PV}.inc -require recipes-devtools/gcc/gcc-cross-canadian.inc diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-cross-initial_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-cross-initial_4.6.bb deleted file mode 100644 index 22d4b05c776..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-cross-initial_4.6.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross_${PV}.bb -require recipes-devtools/gcc/gcc-cross-initial.inc diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-cross_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-cross_4.6.bb deleted file mode 100644 index cdaa7e8cd3e..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-cross_4.6.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require recipes-devtools/gcc/gcc-cross.inc diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk-initial_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk-initial_4.6.bb deleted file mode 100644 index eff4df1748a..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk-initial_4.6.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross-initial_${PV}.bb -require recipes-devtools/gcc/gcc-crosssdk-initial.inc diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk_4.6.bb deleted file mode 100644 index 0a9f98a1f8e..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk_4.6.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross_${PV}.bb -require recipes-devtools/gcc/gcc-crosssdk.inc diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-runtime_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-runtime_4.6.bb deleted file mode 100644 index b755f555ef9..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-runtime_4.6.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require recipes-devtools/gcc/gcc-runtime.inc diff --git a/toolchain-layer/recipes-devtools/gcc/gcc_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc_4.6.bb deleted file mode 100644 index 6ad8973b433..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc_4.6.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require recipes-devtools/gcc/gcc-target.inc diff --git a/toolchain-layer/recipes-devtools/gcc/libgcc_4.6.bb b/toolchain-layer/recipes-devtools/gcc/libgcc_4.6.bb deleted file mode 100644 index fc2c1e31aef..00000000000 --- a/toolchain-layer/recipes-devtools/gcc/libgcc_4.6.bb +++ /dev/null @@ -1,71 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc - -INHIBIT_DEFAULT_DEPS = "1" - -DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" - -PKGSUFFIX = "" -PKGSUFFIX_class-nativesdk = "-nativesdk" - -PACKAGES = "\ - ${PN} \ - ${PN}-dev \ - ${PN}-dbg \ - libgcov${PKGSUFFIX}-dev \ -" - -FILES_${PN} = "${base_libdir}/libgcc*.so.*" -FILES_${PN}-dev = " \ - ${base_libdir}/libgcc*.so \ - ${libdir}/${TARGET_SYS}/${BINV}/*crt* \ - ${libdir}/${TARGET_SYS}/${BINV}/libgcc*" -FILES_libgcov${PKGSUFFIX}-dev = " \ - ${libdir}/${TARGET_SYS}/${BINV}/libgcov.a \ -" -FILES_${PN}-dbg += "${base_libdir}/.debug/" - -do_configure () { - target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-nativesdk##` - install -d ${D}${base_libdir} ${D}${libdir} - cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$target/* ${B} - mkdir -p ${B}/${BPN} - cd ${B}/${BPN} - chmod a+x ${S}/${BPN}/configure - ${S}/${BPN}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} -} - -do_compile () { - target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` - cd ${B}/${BPN} - oe_runmake MULTIBUILDTOP=${B}/$target/${BPN}/ -} - -do_install () { - target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` - cd ${B}/${BPN} - oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/${BPN}/ install - - # Move libgcc_s into /lib - mkdir -p ${D}${base_libdir} - if [ -f ${D}${libdir}/nof/libgcc_s.so ]; then - mv ${D}${libdir}/nof/libgcc* ${D}${base_libdir} - else - mv ${D}${libdir}/libgcc* ${D}${base_libdir} || true - fi - - # install the runtime in /usr/lib/ not in /usr/lib/gcc on target - # so that cross-gcc can find it in the sysroot - - mv ${D}${libdir}/gcc/* ${D}${libdir} - rm -rf ${D}${libdir}/gcc/ -} - -do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_package" -do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_package" -do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_package" - -BBCLASSEXTEND = "nativesdk" - -INSANE_SKIP_${PN}-dev = "staticdev" -INSANE_SKIP_libgcov${PKGSUFFIX}-dev = "staticdev" -