diff options
Diffstat (limited to 'yocto-poky/meta/recipes-extended/lsb')
13 files changed, 1155 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-extended/lsb/lsb/init-functions b/yocto-poky/meta/recipes-extended/lsb/lsb/init-functions new file mode 100755 index 000000000..7c1dce24c --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsb/init-functions @@ -0,0 +1,44 @@ +#!/bin/sh + +# LSB initscript functions, as defined in the LSB Spec 1.1.0 +# +# Lawrence Lim <llim@core.com> - Tue, 26 June 2007 +# Updated to the latest LSB 3.1 spec +# http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic_lines.txt + +start_daemon () { + /etc/core-lsb/lsb_start_daemon "$@" +} + +killproc () { + /etc/core-lsb/lsb_killproc "$@" +} + +pidofproc () { + /etc/core-lsb/lsb_pidofproc "$@" +} + +log_success_msg () { + /etc/core-lsb/lsb_log_message success "$@" +} + +log_failure_msg () { + /etc/core-lsb/lsb_log_message failure "$@" +} + +log_warning_msg () { + /etc/core-lsb/lsb_log_message warning "$@" +} + +# int log_begin_message (char *message) +log_begin_msg () { + if [ -z "$1" ]; then + return 1 + fi + echo " * $@" +} + + +log_end_msg () { + /etc/core-lsb/lsb_log_message end "$@" +} diff --git a/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_killproc b/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_killproc new file mode 100755 index 000000000..866c1a9c6 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_killproc @@ -0,0 +1,6 @@ +#!/bin/sh + +. /etc/init.d/functions + +LSB=LSB-1.1 killproc $* +exit $? diff --git a/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_log_message b/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_log_message new file mode 100755 index 000000000..10343b081 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_log_message @@ -0,0 +1,27 @@ +#!/bin/sh + +. /etc/init.d/functions + +ACTION=$1 +shift + +case "$ACTION" in + success) + echo -n $* + success "$*" + echo + ;; + failure) + echo -n $* + failure "$*" + echo + ;; + warning) + echo -n $* + warning "$*" + echo + ;; + *) + ;; +esac +exit 0 diff --git a/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc b/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc new file mode 100755 index 000000000..6d1fd0f24 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc @@ -0,0 +1,6 @@ +#!/bin/sh + +. /etc/init.d/functions + +pidofproc $* +exit $? diff --git a/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon b/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon new file mode 100755 index 000000000..de62c2344 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon @@ -0,0 +1,45 @@ +#!/bin/sh + +. /etc/init.d/functions + +nice= +force= +pidfile= +user= +check= +RETVAL= +while [ "$1" != "${1##[-+]}" ]; do + case $1 in + -f) + force="--force" + shift + ;; + -n) + nice=$2 + shift 2 + ;; + -p) + pidfile="--pidfile $2" + shift 2 + ;; + -u) + user="--user $2" + shift 2 + ;; + -c) + check="--check $2" + shift 2 + ;; + *) + echo "Unknown Option $1" + echo "Options are:" + echo "-f" + echo "-p {pidfile}" + echo "-n [+/-nicelevel]" + echo "-u {user}" + echo "-c {base}" + exit 1;; + esac +done +LSB=LSB-1.1 daemon ${force:-} ${nice:-} ${pidfile:-} ${user:-} ${check:-} $* +exit $? diff --git a/yocto-poky/meta/recipes-extended/lsb/lsb_4.1.bb b/yocto-poky/meta/recipes-extended/lsb/lsb_4.1.bb new file mode 100644 index 000000000..6215b62d8 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsb_4.1.bb @@ -0,0 +1,127 @@ +SUMMARY = "LSB support for OpenEmbedded" +SECTION = "console/utils" +HOMEPAGE = "http://prdownloads.sourceforge.net/lsb" +LICENSE = "GPLv2+" +PR = "r2" + +LSB_CORE = "lsb-core-${TARGET_ARCH}" +LSB_CORE_x86 = "lsb-core-ia32" +LSB_CORE_x86-64 = "lsb-core-amd64" +RPROVIDES_${PN} += "${LSB_CORE}" + +# lsb_release needs getopt +RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_getopt}" + +LIC_FILES_CHKSUM = "file://README;md5=12da544b1a3a5a1795a21160b49471cf" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/lsb/lsb_release/1.4/lsb-release-1.4.tar.gz \ + file://init-functions \ + file://lsb_killproc \ + file://lsb_log_message \ + file://lsb_pidofproc \ + file://lsb_start_daemon \ + " + +SRC_URI[md5sum] = "30537ef5a01e0ca94b7b8eb6a36bb1e4" +SRC_URI[sha256sum] = "99321288f8d62e7a1d485b7c6bdccf06766fb8ca603c6195806e4457fdf17172" +S = "${WORKDIR}/lsb-release-1.4" + +CLEANBROKEN = "1" + +do_install(){ + oe_runmake install prefix=${D} mandir=${D}/${datadir}/man/ DESTDIR=${D} + + # this 2 dirs are needed by package lsb-dist-checker + mkdir -p ${D}${sysconfdir}/opt + mkdir -p ${D}${localstatedir}/opt + + mkdir -p ${D}${base_bindir} + mkdir -p ${D}/${baselib} + mkdir -p ${D}${sysconfdir}/lsb-release.d + printf "LSB_VERSION=\"core-4.1-noarch:" > ${D}${sysconfdir}/lsb-release + + if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ];then + printf "core-4.1-ia32" >> ${D}${sysconfdir}/lsb-release + else + printf "core-4.1-${TARGET_ARCH}" >> ${D}${sysconfdir}/lsb-release + fi + echo "\"" >> ${D}${sysconfdir}/lsb-release + echo "DISTRIB_ID=${DISTRO}" >> ${D}${sysconfdir}/lsb-release + echo "DISTRIB_RELEASE=${DISTRO_VERSION}" >> ${D}${sysconfdir}/lsb-release + if [ -n "${DISTRO_CODENAME}" ]; then + echo "DISTRIB_CODENAME=${DISTRO_CODENAME}" >> ${D}${sysconfdir}/lsb-release + fi + echo "DISTRIB_DESCRIPTION=\"${DISTRO_NAME} ${DISTRO_VERSION}\"" >> ${D}${sysconfdir}/lsb-release + + if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ];then + mkdir -p ${D}${sysconfdir}/lsb-release.d + touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch + touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-noarch + touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ia32 + touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ia32 + elif [ "${TARGET_ARCH}" = "x86_64" ];then + touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch + touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-amd64 + touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-amd64 + fi + if [ "${TARGET_ARCH}" = "powerpc" ];then + touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch + touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ppc32 + touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ppc32 + elif [ "${TARGET_ARCH}" = "powerpc64" ];then + touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-noarch + touch ${D}${sysconfdir}/lsb-release.d/graphics-${PV}-ppc64 + touch ${D}${sysconfdir}/lsb-release.d/desktop-${PV}-ppc64 + fi +} + +do_install_append(){ + install -d ${D}${sysconfdir}/core-lsb + for i in lsb_killproc lsb_log_message lsb_pidofproc lsb_start_daemon + do + install -m 0755 ${WORKDIR}/${i} ${D}${sysconfdir}/core-lsb + done + + install -d ${D}/lib/lsb + install -m 0755 ${WORKDIR}/init-functions ${D}/lib/lsb + + # creat links for LSB test + install -d ${D}/usr/lib/lsb + ln -sf ${sbindir}/chkconfig ${D}/usr/lib/lsb/install_initd + ln -sf ${sbindir}/chkconfig ${D}/usr/lib/lsb/remove_initd + + if [ "${TARGET_ARCH}" = "x86_64" ];then + cd ${D} + if [ "${baselib}" != "lib64" ]; then + ln -sf ${baselib} lib64 + fi + cd ${D}/${baselib} + ln -sf ld-linux-x86-64.so.2 ld-lsb-x86-64.so.2 + ln -sf ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + fi + if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ];then + cd ${D}/${baselib} + ln -sf ld-linux.so.2 ld-lsb.so.2 + ln -sf ld-linux.so.2 ld-lsb.so.3 + fi + + if [ "${TARGET_ARCH}" = "powerpc64" ];then + cd ${D} + if [ "${baselib}" != "lib64" ]; then + ln -sf ${baselib} lib64 + fi + cd ${D}/${baselib} + ln -sf ld64.so.1 ld-lsb-ppc64.so.2 + ln -sf ld64.so.1 ld-lsb-ppc64.so.3 + fi + if [ "${TARGET_ARCH}" = "powerpc" ];then + cd ${D}/${baselib} + ln -sf ld.so.1 ld-lsb-ppc32.so.2 + ln -sf ld.so.1 ld-lsb-ppc32.so.3 + fi +} +FILES_${PN} += "/lib64 \ + /usr/lib/lsb \ + ${base_libdir}/lsb/* \ + /lib/lsb/* \ + " diff --git a/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch b/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch new file mode 100644 index 000000000..0809c9be9 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch @@ -0,0 +1,23 @@ +Upstream-Status: Pending + +Subject: functions: avoid exit 1 which causes init scripts to fail + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + rc.d/init.d/functions | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions +index 6850046..11223f7 100644 +--- a/rc.d/init.d/functions ++++ b/rc.d/init.d/functions +@@ -597,5 +597,5 @@ if [ "$_use_systemctl" = "1" ]; then + fi + fi + +-strstr "$(cat /proc/cmdline)" "rc.debug" && set -x ++strstr "$(cat /proc/cmdline)" "rc.debug" && set -x || true + +-- +2.1.0 + diff --git a/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch b/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch new file mode 100644 index 000000000..a756d047e --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch @@ -0,0 +1,26 @@ +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> +Signed-off-by: Saul Wold <sgw@linux.intel.com> + +Index: initscripts-9.43/rc.d/init.d/functions +=================================================================== +--- initscripts-9.43.orig/rc.d/init.d/functions ++++ initscripts-9.43/rc.d/init.d/functions +@@ -13,6 +13,7 @@ umask 022 + PATH="/sbin:/usr/sbin:/bin:/usr/bin" + export PATH + ++ + if [ $PPID -ne 1 -a -z "$SYSTEMCTL_SKIP_REDIRECT" ] && \ + ( /bin/mountpoint -q /cgroup/systemd || /bin/mountpoint -q /sys/fs/cgroup/systemd ) ; then + case "$0" in +@@ -54,7 +55,7 @@ systemctl_redirect () { + [ -z "${COLUMNS:-}" ] && COLUMNS=80 + + if [ -z "${CONSOLETYPE:-}" ]; then +- if [ -c "/dev/stderr" -a -r "/dev/stderr" ]; then ++ if [ -c "/dev/stderr" -a -r "/dev/stderr" -a -e /sbin/consoletype ]; then + CONSOLETYPE="$(/sbin/consoletype < /dev/stderr 2>/dev/null)" + else + CONSOLETYPE="serial" diff --git a/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.64.bb b/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.64.bb new file mode 100644 index 000000000..6db667c13 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.64.bb @@ -0,0 +1,32 @@ +SUMMARY = "SysV init scripts which are only used in an LSB image" +SECTION = "base" +LICENSE = "GPLv2" +DEPENDS = "popt glib-2.0" + +LIC_FILES_CHKSUM = "file://COPYING;md5=ebf4e8b49780ab187d51bd26aaa022c6" + +S="${WORKDIR}/initscripts-${PV}" +SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/initscripts-${PV}.tar.bz2/9cce2ae1009750e84be37c09a028757e/initscripts-${PV}.tar.bz2 \ + file://functions.patch \ + file://0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch \ + " + +SRC_URI[md5sum] = "9cce2ae1009750e84be37c09a028757e" +SRC_URI[sha256sum] = "48b59ce8157cfc58bbd4b1dfa58ad1087245761ae11c2033b66ae3864ea7e1cf" + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE_${PN} = "functions" +ALTERNATIVE_LINK_NAME[functions] = "${sysconfdir}/init.d/functions" + +# Since we are only taking the patched version of functions, no need to +# configure or compile anything so do not execute these +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install(){ + install -d ${D}${sysconfdir}/init.d/ + install -m 0644 ${S}/rc.d/init.d/functions ${D}${sysconfdir}/init.d/functions + sed -i 's,${base_bindir}/mountpoint,${bindir}/mountpoint,g' ${D}${sysconfdir}/init.d/functions +} diff --git a/yocto-poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh b/yocto-poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh new file mode 100644 index 000000000..b9971a17d --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh @@ -0,0 +1,526 @@ +#!/bin/sh + +# Copyright (C) 2012 Wind River Systems, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# 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 + + +WORK_DIR="/opt/lsb-test" + +if [ `id -u` -ne 0 ] +then + cat << EOF + In order to install and run LSB testsuite, you need administrator privileges. + You are currently running this script as an unprivileged user. + +EOF + exit 1 +fi + +ARCH=`uname -m` +if [ ${ARCH} != "i686" ] && [ ${ARCH} != "x86_64" ] && [ ${ARCH} != "ppc" ] && [ ${ARCH} != "ppc64" ] +then + echo "Error: Unsupported architecture" + exit 1 +fi + +which rpm +if [ $? -ne 0 ] +then + echo "No rpm command found" + exit 1 +fi + +RET=0 + +cd ${WORK_DIR} || exit 1 +# Step 1: Download the LSB Packages +echo "" +echo "Download LSB packages..." +echo "" + +if [ ! -e ./packages_list ] +then + echo "Error: Could not find packages list" >&2 + exit 1 +fi + +. ./packages_list + +PACKAGES_DIR="/var/opt/lsb/test/manager/packages/ftp.linuxfoundation.org/pub/lsb" + +BASE_PACKAGES_DIR="${PACKAGES_DIR}/base/${LSB_RELEASE}/binary" +RUNTIME_BASE_PACKAGES_DIR="${PACKAGES_DIR}/test_suites/released-all/binary/runtime" +RUNTIME_PACKAGES_DIR="${PACKAGES_DIR}/test_suites/${LSB_RELEASE}/binary/runtime" +APP_PACKAGES_DIR="${PACKAGES_DIR}/app-battery/${LSB_RELEASE}/${LSB_ARCH}" +APP_TESTFILES_DIR="${PACKAGES_DIR}/app-battery/tests" +SNAPSHOTS_TESTFILES_DIR="${PACKAGES_DIR}/snapshots/appbat/tests" + +if [ ! -d ${PACKAGES_DIR} ] +then + mkdir -p ${PACKAGES_DIR} +fi + +if [ ! -d ${BASE_PACKAGES_DIR} ] +then + mkdir -p ${BASE_PACKAGES_DIR} +fi + +if [ ! -d ${RUNTIME_BASE_PACKAGES_DIR} ] +then + mkdir -p ${RUNTIME_BASE_PACKAGES_DIR} +fi + +if [ ! -d ${RUNTIME_PACKAGES_DIR} ] +then + mkdir -p ${RUNTIME_PACKAGES_DIR} +fi + +if [ ! -d ${APP_PACKAGES_DIR} ] +then + mkdir -p ${APP_PACKAGES_DIR} +fi + +if [ ! -d ${APP_TESTFILES_DIR} ] +then + mkdir -p ${APP_TESTFILES_DIR} +fi + +# Official download server list. You can replace them with your own server. +SERVER_IPADDR="140.211.169.23" +SERVER_NAME="ftp.linuxfoundation.org" + +if ! `grep -F -q "${SERVER_NAME}" /etc/hosts`; then + echo "${SERVER_IPADDR} ${SERVER_NAME} ${SERVER_NAME}" >> /etc/hosts +fi + +#ping -c 5 ${SERVER_NAME} +#if [ $? -ne 0 ] +#then +# echo "The server: ${SERVER_NAME} is unreachable" +# exit 1 +#fi + +SERVER1="\ + http://${SERVER_NAME}/pub/lsb/base/${LSB_RELEASE}/binary" +SERVER2="\ + http://${SERVER_NAME}/pub/lsb/test_suites/released-all/binary/runtime" +SERVER3="\ + http://${SERVER_NAME}/pub/lsb/test_suites/${LSB_RELEASE}/binary/runtime" +SERVER4="\ + http://${SERVER_NAME}/pub/lsb/app-battery/${LSB_RELEASE}/${LSB_ARCH}" +SERVER5="\ + http://${SERVER_NAME}/pub/lsb/app-battery/tests" + +# We using "curl" as a download tool, "wget" is an alternative. +CURL=`which curl` +WGET=`which wget` +if [ ! -z ${CURL} ] +then + DOWNLOAD_CMD="${CURL} -R -L -f --retry 3 --retry-delay 4 --connect-timeout 180 --compressed -C - -o" +elif [ ! -z ${WGET} ] +then + DOWNLOAD_CMD="${WGET} -c -t 5 -O" +else + echo "Can not find a download tool, please install curl or wget." + exit 1 +fi + +cd ${BASE_PACKAGES_DIR} +for pkg in ${BASE_PACKAGES_LIST}; do + if [ ! -f ${pkg} ] + then + #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER1}/${pkg} > /dev/null 2>&1 + ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER1}/${pkg} + if [ $? -eq 0 ] + then + mv -f ${pkg}".#part" ${pkg} + echo "Download ${pkg} successfully." + else + echo "Download ${pkg} failed." + RET=1 + fi + fi +done + +cd ${RUNTIME_BASE_PACKAGES_DIR} +for pkg in ${RUNTIME_BASE_PACKAGES_LIST}; do + if [ ! -f ${pkg} ] + then + #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER2}/${pkg} > /dev/null 2>&1 + ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER2}/${pkg} + if [ $? -eq 0 ] + then + mv -f ${pkg}".#part" ${pkg} + echo "Download ${pkg} successfully." + else + echo "Download ${pkg} failed." + RET=1 + fi + fi +done + +cd ${RUNTIME_PACKAGES_DIR} +for pkg in ${RUNTIME_PACKAGES_LIST}; do + if [ ! -f ${pkg} ] + then + #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER3}/${pkg} > /dev/null 2>&1 + ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER3}/${pkg} + if [ $? -eq 0 ] + then + mv -f ${pkg}".#part" ${pkg} + echo "Download ${pkg} successfully." + else + echo "Download ${pkg} failed." + RET=1 + fi + fi +done + +cd ${APP_PACKAGES_DIR} +for pkg in ${APP_PACKAGES_LIST}; do + if [ ! -f ${pkg} ] + then + #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER4}/${pkg} > /dev/null 2>&1 + ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER4}/${pkg} + if [ $? -eq 0 ] + then + mv -f ${pkg}".#part" ${pkg} + echo "Download ${pkg} successfully." + else + echo "Download ${pkg} failed." + RET=1 + fi + fi +done + +cd ${APP_TESTFILES_DIR} +for pkg in ${APP_TESTFILES_LIST}; do + if [ ! -f ${pkg} ] + then + #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER5}/${pkg} > /dev/null 2>&1 + ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER5}/${pkg} + if [ $? -eq 0 ] + then + mv -f ${pkg}".#part" ${pkg} + echo "Download ${pkg} successfully." + else + echo "Download ${pkg} failed." + RET=1 + fi + fi +done + +if [ ${RET} -ne 0 ] +then + echo "Download some packages failed. Please download them again." + exit 1 +fi + +# Step 2: Install the LSB Packages +echo "" +echo "Install LSB packages..." +echo "" + +# Kill lighttpd +ps aux | grep "lighttpd" | grep -v -q "grep" +if [ $? -eq 0 ] +then + killall lighttpd >/dev/null 2>&1 +fi + +# Start avahi-daemon +ps aux | grep "avahi-daemon" | grep -v -q "grep" +if [ $? -ne 0 ] +then + /etc/init.d/avahi-daemon start >/dev/null 2>&1 +fi + +LSB_START_CMD="/opt/lsb/test/manager/bin/dist-checker-start.pl" +LSB_STOP_CMD="/opt/lsb/test/manager/bin/dist-checker-stop.pl" + +PLATFORM_FILE="/etc/rpm/platform" + +RPM_INSTALL_CMD="rpm --quiet --nodeps --replacepkgs --nosignature -i" +RPM_INSTALL_CMD_NOSCRIPTS="rpm --quiet --nodeps --replacepkgs --noscripts --nosignature -i" + +# If the lsb has been started, stop it first. +if [ -x ${LSB_STOP_CMD} ] +then + ${LSB_STOP_CMD} +fi + +if [ ! -d /etc/rpm ] +then + mkdir -p /etc/rpm +fi + +if [ ! -f ${PLATFORM_FILE} ] +then + touch ${PLATFORM_FILE} +fi + +if ! `grep -F -q "noarch-suse" ${PLATFORM_FILE}`; then + if [ ${ARCH} = i686 ];then + echo "i486-suse" >> ${PLATFORM_FILE} + echo "i486-noarch" >> ${PLATFORM_FILE} + echo "i486-pc" >> ${PLATFORM_FILE} + echo "noarch-suse" >> ${PLATFORM_FILE} + elif [ ${ARCH} = x86_64 ]; then + echo "i486-suse" >> ${PLATFORM_FILE} + echo "i486-noarch" >> ${PLATFORM_FILE} + echo "i486-pc" >> ${PLATFORM_FILE} + echo "i486-.*-linux.*" >> ${PLATFORM_FILE} + echo "noarch-suse" >> ${PLATFORM_FILE} + echo "${ARCH}-suse" >> ${PLATFORM_FILE} + echo "${ARCH}-noarch" >> ${PLATFORM_FILE} + echo "${ARCH}-pc" >> ${PLATFORM_FILE} + else + echo "${ARCH}-suse" >> ${PLATFORM_FILE} + echo "${ARCH}-noarch" >> ${PLATFORM_FILE} + echo "${ARCH}-pc" >> ${PLATFORM_FILE} + echo "noarch-suse" >> ${PLATFORM_FILE} + fi +fi + +if [ -d ${BASE_PACKAGES_DIR} ] +then + cd ${BASE_PACKAGES_DIR} + for pkg in ${BASE_PACKAGES_LIST} + do + rpm --quiet -q ${pkg%\.*} + if [ $? -ne 0 ]; then + $RPM_INSTALL_CMD ${pkg} + fi + done +fi + +if [ -d ${RUNTIME_BASE_PACKAGES_DIR} ] +then + cd ${RUNTIME_BASE_PACKAGES_DIR} + for pkg in ${RUNTIME_BASE_PACKAGES_LIST} + do + rpm --quiet -q ${pkg%\.*} + if [ $? -ne 0 ]; then + $RPM_INSTALL_CMD ${pkg} + fi + done +fi + +if [ -d ${RUNTIME_PACKAGES_DIR} ] +then + cd ${RUNTIME_PACKAGES_DIR} + for pkg in ${RUNTIME_PACKAGES_LIST} + do + rpm --quiet -q ${pkg%\.*} + if [ $? -ne 0 ]; then + $RPM_INSTALL_CMD ${pkg} + fi + done +fi + +if [ -d ${APP_PACKAGES_DIR} ] +then + cd ${APP_PACKAGES_DIR} + for pkg in ${APP_PACKAGES_LIST} + do + echo "${pkg}" | grep -q "apache\|xpdf" + if [ $? -eq 0 ] + then + rpm --quiet -q ${pkg%\.*} + if [ $? -ne 0 ]; then + $RPM_INSTALL_CMD_NOSCRIPTS ${pkg} + fi + else + rpm --quiet -q ${pkg%\.*} + if [ $? -ne 0 ]; then + $RPM_INSTALL_CMD ${pkg} + fi + fi + done +fi + +if [ ! -d ${SNAPSHOTS_TESTFILES_DIR} ] +then + mkdir -p ${SNAPSHOTS_TESTFILES_DIR} +fi + +if [ -d ${APP_TESTFILES_DIR} ] +then + cd ${APP_TESTFILES_DIR} + for pkg in ${APP_TESTFILES_LIST} + do + cp -f ${pkg} ${SNAPSHOTS_TESTFILES_DIR} + done +fi + +cd ${WORK_DIR} + +# Step 3: Set environment +echo "" +echo "Set environment..." +echo "" + +check () +{ + if [ $? -eq 0 ] + then + echo "PASS" + else + echo "FAIL" + exit 1 + fi +} + +echo "" +echo "---------------------------------" +echo "Create the Dirnames on target" + +if [ ! -d /etc/rpm/sysinfo ] +then + mkdir -p /etc/rpm/sysinfo +fi + +cat > /etc/rpm/sysinfo/Dirnames << EOF +/etc/opt/lsb +/home/tet/LSB.tools +/opt/lsb-tet3-lite/lib/ksh +/opt/lsb-tet3-lite/lib/perl +/opt/lsb-tet3-lite/lib/posix_sh +/opt/lsb-tet3-lite/lib/tet3 +/opt/lsb-tet3-lite/lib/xpg3sh +/opt/lsb/appbat/lib/python2.4/site-packages/qm +/opt/lsb/appbat/lib/python2.4/site-packages/qm/external +/opt/lsb/appbat/lib/python2.4/site-packages/qm/external/DocumentTemplate +/opt/lsb/appbat/lib/python2.4/site-packages/qm/test +/opt/lsb/appbat/lib/python2.4/site-packages/qm/test/classes +/opt/lsb/appbat/lib/python2.4/site-packages/qm/test/web +/opt/lsb/test/doc +/opt/lsb/test/lib +/opt/lsb/test/qm/diagnostics +/opt/lsb/test/qm/doc +/opt/lsb/test/qm/doc/test/html +/opt/lsb/test/qm/doc/test/print +/opt/lsb/test/qm/dtml +/opt/lsb/test/qm/dtml/test +/opt/lsb/test/qm/messages/test +/opt/lsb/test/qm/tutorial/test/tdb +/opt/lsb/test/qm/tutorial/test/tdb/QMTest +/opt/lsb/test/qm/web +/opt/lsb/test/qm/web/images +/opt/lsb/test/qm/web/stylesheets +/opt/lsb/test/qm/xml +/opt/lsb/test/share +/usr/share/doc/lsb-runtime-test +/var/opt/lsb +/opt/lsb/test/desktop +/opt/lsb/test/desktop/fontconfig +/opt/lsb/test/desktop/freetype +/opt/lsb/test/desktop/gtkvts +/opt/lsb/test/desktop/libpng +/opt/lsb/test/desktop/qt3 +/opt/lsb/test/desktop/xft +/opt/lsb/test/desktop/xml +/opt/lsb/test/desktop/xrender + + +EOF + +if [ -f /etc/rpm/sysinfo/Dirnames ] +then + echo "Success to creat Dirnames file" +else + echo "Fail to creat Dirnames file" +fi + +[ -x /sbin/ldconfig ] && { +echo "" +echo "---------------------------------" +echo "Update cache" +/sbin/ldconfig +check; +} + +# Check loop device +if [ ! -b /dev/loop0 ] +then + insmod /lib/modules/`uname -r`/kernel/drivers/block/loop.ko + if [ $? != 0 ];then + echo "Insmod loop.ko failed." + fi +fi + +# Resolve localhost +LOCALHOST=`hostname` +if ! `grep -F -q "$LOCALHOST" /etc/hosts`; then + echo "127.0.0.1 $LOCALHOST" >> /etc/hosts +fi + +# Workaround to add part of locales for LSB test +localedef -i de_DE -f ISO-8859-1 de_DE +localedef -i de_DE -f ISO-8859-15 de_DE.ISO-8859-15 +localedef -i de_DE -f UTF-8 de_DE.UTF-8 +localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro +localedef -i en_HK -f ISO-8859-1 en_HK +localedef -i en_PH -f ISO-8859-1 en_PH +localedef -i en_US -f ISO-8859-15 en_US.ISO-8859-15 +localedef -i en_US -f ISO-8859-1 en_US.ISO-8859-1 +localedef -i en_US -f ISO-8859-1 en_US +localedef -i en_US -f UTF-8 en_US.UTF-8 +localedef -i en_US -f ISO-8859-1 en_US.ISO8859-1 +localedef -i es_MX -f ISO-8859-1 es_MX +localedef -i fr_FR -f ISO-8859-1 fr_FR +localedef -i it_IT -f ISO-8859-1 it_IT +localedef -i ja_JP -f EUC-JP ja_JP.eucjp +localedef -i se_NO -f UTF-8 se_NO.UTF-8 +localedef -i ta_IN -f UTF-8 ta_IN +localedef -i es_ES -f ISO-8859-1 es_ES +localedef -i fr_FR@euro -f ISO-8859-1 fr_FR@euro +localedef -i is_IS -f UTF-8 is_IS.UTF-8 +localedef -i zh_TW -f BIG5 zh_TW.BIG5 +localedef -i en_US -f ISO-8859-15 en_US.ISO-8859-15 + +echo "" +echo "Installation done!" +echo "" + +# Step 4: Start LSB test +if [ -x ${LSB_START_CMD} ] +then + ${LSB_START_CMD} +fi + +echo "---------------------------------" +echo "Run all the certification version of LSB Tests" +echo "---------------------------------" + +LSB_DIST_CHECKER="/opt/lsb/test/manager/utils/dist-checker.pl" +SESSION="${WORK_DIR}/session" +if [ ! -e ${SESSION} ] +then + echo "Error: Could not find session file." + echo "You must run LSB test from webbrower." + exit 1 +fi + +if [ -x ${LSB_DIST_CHECKER} ] +then + ${LSB_DIST_CHECKER} -v2 -f ${SESSION} + check +fi + +echo "" +echo "LSB test complete. Please check the log file in /var/opt/lsb/test/manager/results/" +echo "" + diff --git a/yocto-poky/meta/recipes-extended/lsb/lsbtest/packages_list b/yocto-poky/meta/recipes-extended/lsb/lsbtest/packages_list new file mode 100644 index 000000000..27d8352d9 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsbtest/packages_list @@ -0,0 +1,50 @@ +LSB_RELEASE="released-4.1.0" +LSB_ARCH="lsbarch" + +BASE_PACKAGES_LIST="lsb-setup-4.1.0-1.noarch.rpm" + +RUNTIME_BASE_PACKAGES_LIST="lsb-dist-checker-5.0.0.1-1.targetarch.rpm \ + lsb-tet3-lite-3.7-27.lsb5.targetarch.rpm \ + lsb-tet3-lite-devel-3.7-27.lsb5.targetarch.rpm \ + lsb-xvfb-1.2.0-22.targetarch.rpm \ + " + +RUNTIME_PACKAGES_LIST="lsb-cmdchk-4.1.4-5.targetarch.rpm \ + lsb-libchk-4.1.4-5.targetarch.rpm \ + lsb-qm-2.2-12.lsb4.targetarch.rpm \ + lsb-task-dist-testkit-4.1.9-1.noarch.rpm \ + lsb-test-core-4.1.15-1.targetarch.rpm \ + lsb-test-cpp-t2c-4.1.0-1.targetarch.rpm \ + lsb-test-desktop-4.1.9-1.targetarch.rpm \ + lsb-test-desktop-t2c-4.1.3-3.targetarch.rpm \ + lsb-test-libstdcpp-4.1.0-18.lsb4.targetarch.rpm \ + lsb-test-olver-core-4.1.4-1.targetarch.rpm \ + lsb-test-perl-4.1.8-1.noarch.rpm \ + lsb-test-printing-4.1.2-1.targetarch.rpm \ + lsb-test-python-4.1.5-1.targetarch.rpm \ + lsb-test-qt3-azov-4.1.1-3.targetarch.rpm \ + lsb-test-qt4-azov-4.1.3-1.targetarch.rpm \ + lsb-test-xts5-5.1.5-45.lsb4.targetarch.rpm \ + lsb-test-alsa-t2c-4.1.0-1.targetarch.rpm \ + lsb-test-core-t2c-4.1.2-3.targetarch.rpm \ + lsb-test-xml2-azov-4.1.0-1.targetarch.rpm \ + " + +APP_PACKAGES_LIST="lsb-python-2.4.6-7.lsb4.targetarch.rpm \ + lsb-apache-2.2.14-8.lsb4.targetarch.rpm \ + lsb-tcl-8.5.7-8.lsb4.targetarch.rpm \ + lsb-expect-5.43.0-13.lsb4.targetarch.rpm \ + lsb-groff-1.20.1-7.lsb4.targetarch.rpm \ + lsb-raptor-1.4.19-5.lsb4.targetarch.rpm \ + lsb-xpdf-1.01-14.lsb4.targetarch.rpm \ + lsb-samba-3.4.3-9.lsb4.targetarch.rpm \ + lsb-rsync-3.0.6-6.lsb4.targetarch.rpm \ + " + +APP_TESTFILES_LIST="expect-tests.tar \ + tcl-tests.tar \ + raptor-tests.tar \ + test1.pdf \ + test2.pdf \ + " + diff --git a/yocto-poky/meta/recipes-extended/lsb/lsbtest/session b/yocto-poky/meta/recipes-extended/lsb/lsbtest/session new file mode 100644 index 000000000..85ca2efe9 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsbtest/session @@ -0,0 +1,194 @@ +[GENERAL] +VERBOSE_LEVEL: 1 +ARCHITECTURE: targetarch +USE_INTERNET: 1 +STD_VERSION: LSB 4.1 +STD_PROFILE: no +[cmdchk] +RUN: 1 +VERSION: local|* + +[libchk] +RUN: 1 +VERSION: local|* + +[alsa-t2c] +RUN: 1 +VERSION: local|* + +[alsa-t2c|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/alsa-t2c +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/alsa-t2c/results + +[core] +RUN: 1 +VERSION: local|* + +[core|local|*] +AUTOREPLY_PROVIDES_BASH: n +AUTOREPLY_TESTRUN_PATH: /home/tet/test_sets +AUTOREPLY_PERSON: Automated +AUTOREPLY_KERNEL_NAME: vmlinuz +AUTOREPLY_INSTALL_LSBPAM_CONF: y +AUTOREPLY_PROVIDES_C_SHELL: n +AUTOREPLY_ORGANISATION: N/A +AUTOREPLY_SET_PASS_MIN_DAYS: y +AUTOREPLY_PROVIDES_SYSV_INIT: +AUTOREPLY_ISNTALL_DEVS: y +AUTOREPLY_SUPPORTS_FILE_CMD: y +AUTOREPLY_TEST_SYSTEM: Distribution Checker +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/core/tet/test_sets +AUTOREPLY_SUPPORTS_NLS: n +AUTOREPLY_SUPPORTS_PROCESS_ACCOUNTING: n +AUTOREPLY_PATH_TO_RC.D: +AUTOREPLY_ALLOWS_MAKEDEV: n +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/core/tet/test_sets/results + +[core-t2c] +RUN: 1 +VERSION: local|* + +[core-t2c|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/core-t2c +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/core-t2c/results + +[cpp-t2c] +RUN: 1 +VERSION: local|* + +[cpp-t2c|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/cpp-t2c +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/cpp-t2c/results + +[desktop] +RUN: 1 +VERSION: local|* + +[desktop|local|*] +AUTOREPLY_DESKTOP_ENVIRONMENT: [default] +AUTOREPLY_PERSON: Automated +AUTOREPLY_X_CLIENT_HOSTNAME: +AUTOREPLY_TEST_SYSTEM: Distribution Checker +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/desktop +AUTOREPLY_X11_FONT_PATH: [default] +AUTOREPLY_SHOW_SUMMARY_REPORT: +AUTOREPLY_ORGANISATION: N/A +AUTOREPLY_XVFB_DISPLAY: [default] + +[desktop-t2c] +RUN: 1 +VERSION: local|* + +[desktop-t2c|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/desktop-t2c +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/desktop-t2c/results + +[libstdcpp] +RUN: 1 +VERSION: local|* + +[libstdcpp|local|*] +AUTOREPLY_TEST_SYSTEM: Distribution Checker +AUTOREPLY_PERSON: Automated +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/libstdcpp_4.1.0 +AUTOREPLY_ORGANISATION: N/A +AUTOREPLY_GNU_TRIPLET: + +[olver] +RUN: 1 +VERSION: local|* + +[olver|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/olver-core +AUTOREPLY_RESULTS_DIR: /var/opt/lsb/test/olver-core + +[perl] +RUN: 1 +VERSION: local|* + +[perl|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/perl +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/perl/results + +[printing] +RUN: 1 +VERSION: local|* + +[printing|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/printing +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/printing/results + +[python] +RUN: 1 +VERSION: local|* + +[python|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/python +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/python/results + +[qt3-azov] +RUN: 1 +VERSION: local|* + +[qt3-azov|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/qt3-azov +AUTOREPLY_X11_FONT_PATH: [default] +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/qt3-azov/results + +[qt4-azov] +RUN: 1 +VERSION: local|* + +[qt4-azov|local|*] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/qt4-azov +AUTOREPLY_X11_FONT_PATH: [default] +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/qt4-azov/results + +[xml2-azov] +RUN: 1 +VERSION: local|* + +[xts5] +RUN: 1 +VERSION: local|* + +[xts5|local|*] +AUTOREPLY_XT_FONTPATH_GOOD: [default] +AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/xts5 +AUTOREPLY_XVFB_DISPLAY: [default] +AUTOREPLY_RESULTS_DIR: /opt/lsb/test/xts5/xts5/results +AUTOREPLY_XT_FONTPATH: [default] +AUTOREPLY_X_CLIENT_HOSTNAME: + +[apache] +RUN: 1 +VERSION: local|* + +[expect] +RUN: 1 +VERSION: local|* + +[groff] +RUN: 1 +VERSION: local|* + +[raptor] +RUN: 1 +VERSION: local|* + +[rsync] +RUN: 1 +VERSION: local|* + +[samba] +RUN: 1 +VERSION: local|* + +[tcl] +RUN: 1 +VERSION: local|* + +[xpdf] +RUN: 1 +VERSION: local|* + diff --git a/yocto-poky/meta/recipes-extended/lsb/lsbtest_1.0.bb b/yocto-poky/meta/recipes-extended/lsb/lsbtest_1.0.bb new file mode 100644 index 000000000..ea12502dc --- /dev/null +++ b/yocto-poky/meta/recipes-extended/lsb/lsbtest_1.0.bb @@ -0,0 +1,49 @@ +SUMMARY = "Automates Linux Standard Base (LSB) tests" +SECTION = "console/utils" +LICENSE = "GPLv2" +PR = "r3" + +LIC_FILES_CHKSUM = "file://LSB_Test.sh;beginline=3;endline=16;md5=7063bb54b04719df0716b513447f4fc0" + +SRC_URI = "file://LSB_Test.sh \ + file://packages_list \ + file://session \ + " +RDEPENDS_${PN} = "rpm" + +S = "${WORKDIR}" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/LSB_Test.sh ${D}${bindir} + install -d ${D}/opt/lsb-test + install -m 0644 ${S}/packages_list ${D}/opt/lsb-test/packages_list + install -m 0644 ${S}/session ${D}/opt/lsb-test/session + if [ "${TARGET_ARCH}" = "i586" ] || [ "${TARGET_ARCH}" = "i686" ];then + sed -i -e 's/lsbarch/ia32/g' -e 's/targetarch/i486/g' ${D}/opt/lsb-test/packages_list + sed -i -e 's/targetarch/x86/g' ${D}/opt/lsb-test/session + fi + if [ "${TARGET_ARCH}" = "x86_64" ];then + sed -i -e 's/lsbarch/amd64/g' -e 's/targetarch/x86_64/g' ${D}/opt/lsb-test/packages_list + sed -i -e 's/targetarch/x86-64/g' ${D}/opt/lsb-test/session + fi + if [ "${TARGET_ARCH}" = "powerpc" ];then + sed -i -e 's/lsbarch/ppc32/g' -e 's/targetarch/ppc/g' ${D}/opt/lsb-test/packages_list + sed -i -e 's/targetarch/PPC32/g' ${D}/opt/lsb-test/session + fi + + # For a ppc64 target. the default userspace is 32b. + # Therefore, only change the lsbarch and targetarch + # in the package_list when MLIB=lib64 is being used. + # Otherwise, by default, the ppc32 LSB packages + # will be downloaded by LSB_Test.sh + if [ "${TARGET_ARCH}" = "powerpc64" ];then + if [ "${PN}" != "${BPN}" ];then + sed -i -e 's/lsbarch/ppc64/g' -e 's/targetarch/ppc64/g' ${D}/opt/lsb-test/packages_list + sed -i -e 's/targetarch/PPC64/g' ${D}/opt/lsb-test/session + fi + fi +} + +FILES_${PN} += "/opt/lsb-test/* \ + " |