diff options
Diffstat (limited to 'meta/recipes-connectivity')
178 files changed, 17873 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb b/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb new file mode 100644 index 000000000..2c1205304 --- /dev/null +++ b/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb @@ -0,0 +1,63 @@ +LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://avahi-common/address.h;endline=25;md5=b1d1d2cda1c07eb848ea7d6215712d9d \ + file://avahi-core/dns.h;endline=23;md5=6fe82590b81aa0ddea5095b548e2fdcb \ + file://avahi-daemon/main.c;endline=21;md5=9ee77368c5407af77caaef1b07285969 \ + file://avahi-client/client.h;endline=23;md5=f4ac741a25c4f434039ba3e18c8674cf" + +require avahi.inc + +PR = "${INC_PR}.0" + +SRC_URI[md5sum] = "2f22745b8f7368ad5a0a3fddac343f2d" +SRC_URI[sha256sum] = "8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a2dab48" + +DEPENDS += "avahi gtk+ libglade" + +AVAHI_GTK = "--enable-gtk --disable-gtk3" + +S = "${WORKDIR}/avahi-${PV}" + +PACKAGES = "${PN} ${PN}-utils ${PN}-dbg ${PN}-dev ${PN}-staticdev ${PN}-doc python-avahi avahi-discover avahi-discover-standalone" + +FILES_${PN} = "${libdir}/libavahi-ui*.so.*" +FILES_${PN}-dbg += "${libdir}/.debug/libavah-ui*" +FILES_${PN}-dev += "${libdir}/libavahi-ui${SOLIBSDEV}" +FILES_${PN}-staticdev += "${libdir}/libavahi-ui.a" + +FILES_${PN}-utils = "${bindir}/b* ${datadir}/applications/b*" + +FILES_python-avahi = "${PYTHON_SITEPACKAGES_DIR}/avahi/*" +FILES_avahi-discover = "${bindir}/avahi-discover \ + ${datadir}/applications/avahi-discover.desktop \ + ${datadir}/avahi/interfaces/avahi-discover*" +FILES_avahi-discover-standalone = "${bindir}/avahi-discover-standalone \ + ${datadir}/avahi/interfaces/avahi-discover.glade" + +RDEPENDS_avahi-discover = "python-avahi python-pygtk" +RDEPENDS_python-avahi = "python-dbus" + + +do_install_append () { + rm ${D}${sysconfdir} -rf + rm ${D}${base_libdir} -rf + rm ${D}${base_libdir} -rf + rm ${D}${bindir}/avahi-b* + rm ${D}${bindir}/avahi-p* + rm ${D}${bindir}/avahi-r* + rm ${D}${bindir}/avahi-s* + rm ${D}${includedir}/avahi-c* -rf + rm ${D}${includedir}/avahi-g* -rf + rm ${D}${libdir}/libavahi-c* + rm ${D}${libdir}/libavahi-g* + rm ${D}${libdir}/pkgconfig/avahi-c* + rm ${D}${libdir}/pkgconfig/avahi-g* + rm ${D}${sbindir} -rf + rm ${D}${datadir}/avahi/a* + rm ${D}${datadir}/avahi/s* + rm ${D}${datadir}/dbus* -rf + rm ${D}${mandir}/man1/a* + rm ${D}${mandir}/man5 -rf + rm ${D}${mandir}/man8 -rf + rmdir ${D}${localstatedir} +} + diff --git a/meta/recipes-connectivity/avahi/avahi.inc b/meta/recipes-connectivity/avahi/avahi.inc new file mode 100644 index 000000000..c064e03b8 --- /dev/null +++ b/meta/recipes-connectivity/avahi/avahi.inc @@ -0,0 +1,174 @@ +SUMMARY = "Avahi IPv4LL network address configuration daemon" +DESCRIPTION = "Avahi is a fully LGPL framework for Multicast DNS Service Discovery. It \ +allows programs to publish and discover services and hosts running on a local network \ +with no specific configuration. This tool implements IPv4LL, "Dynamic Configuration of \ +IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for automatic IP address \ +configuration from the link-local 169.254.0.0/16 range without the need for a central \ +server." +AUTHOR = "Lennart Poettering <lennart@poettering.net>" +HOMEPAGE = "http://avahi.org" +BUGTRACKER = "http://avahi.org/report" +SECTION = "network" + +# major part is under LGPLv2.1+, but several .dtd, .xsl, initscripts and +# python scripts are under GPLv2+ +LICENSE = "GPLv2+ & LGPLv2.1+" + +INC_PR = "r3" + +DEPENDS = "expat libcap libdaemon dbus glib-2.0" + +SRC_URI = "http://avahi.org/download/avahi-${PV}.tar.gz \ + file://00avahi-autoipd \ + file://99avahi-autoipd \ + file://initscript.patch" + +USERADD_PACKAGES = "avahi-daemon" +USERADD_PARAM_avahi-daemon = "--system --home /var/run/avahi-daemon \ + --no-create-home --shell /bin/false \ + --user-group avahi" + +inherit autotools pkgconfig update-rc.d gettext useradd + +EXTRA_OECONF = "--with-distro=debian \ + --disable-introspection \ + --with-avahi-priv-access-group=adm \ + --disable-stack-protector \ + --disable-gdbm \ + --disable-mono \ + --disable-monodoc \ + --disable-qt3 \ + --disable-qt4 \ + --disable-python \ + --disable-doxygen-doc \ + --with-systemdsystemunitdir=${systemd_unitdir}/system/ \ + ${AVAHI_GTK} \ + " + +AVAHI_GTK ?= "--disable-gtk --disable-gtk3" + +LDFLAGS_append_libc-uclibc = " -lintl" +LDFLAGS_append_uclinux-uclibc = " -lintl" + +do_configure_prepend() { + sed 's:AM_CHECK_PYMOD:echo "no pymod" #AM_CHECK_PYMOD:g' -i configure.ac +} + + +PACKAGES =+ "avahi-systemd avahi-daemon libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib libavahi-ui avahi-autoipd avahi-utils" + +FILES_avahi-systemd = "${systemd_unitdir}" +FILES_avahi-autoipd = "${sbindir}/avahi-autoipd \ + ${sysconfdir}/avahi/avahi-autoipd.action \ + ${sysconfdir}/dhcp3/*/avahi-autoipd" +FILES_libavahi-common = "${libdir}/libavahi-common.so.*" +FILES_libavahi-core = "${libdir}/libavahi-core.so.*" +FILES_avahi-daemon = "${sbindir}/avahi-daemon \ + ${sysconfdir}/avahi/avahi-daemon.conf \ + ${sysconfdir}/avahi/hosts \ + ${sysconfdir}/avahi/services \ + ${sysconfdir}/dbus-1 \ + ${sysconfdir}/init.d/avahi-daemon \ + ${datadir}/avahi/introspection/*.introspect \ + ${datadir}/avahi/avahi-service.dtd \ + ${datadir}/avahi/service-types \ + ${datadir}/dbus-1/interfaces \ + ${datadir}/dbus-1/system-services" +FILES_libavahi-client = "${libdir}/libavahi-client.so.*" +FILES_libavahi-ui = "${libdir}/libavahi-ui.so.*" +FILES_avahi-dnsconfd = "${sbindir}/avahi-dnsconfd \ + ${sysconfdir}/avahi/avahi-dnsconfd.action \ + ${sysconfdir}/init.d/avahi-dnsconfd" +FILES_libavahi-glib = "${libdir}/libavahi-glib.so.*" +FILES_libavahi-gobject = "${libdir}/libavahi-gobject.so.*" +FILES_avahi-utils = "${bindir}/avahi-*" + +RDEPENDS_avahi-systemd = "avahi-daemon" + +RDEPENDS_avahi-daemon = "sysvinit-pidof" + +# uclibc has no nss +RRECOMMENDS_avahi-daemon_append_libc-glibc = "libnss-mdns" +RRECOMMENDS_${PN}_append_libc-glibc = "libnss-mdns" + +RRECOMMENDS_avahi-dev = "expat-dev libcap-dev libdaemon-dev dbus-dev glib-2.0-dev update-rc.d-dev" +RRECOMMENDS_avahi-dev_append_libc-glibc = " gettext-dev" + +RRECOMMENDS_avahi-dev[nodeprrecs] = "1" + +CONFFILES_avahi-daemon = "${sysconfdir}/avahi/avahi-daemon.conf" + +INITSCRIPT_PACKAGES = "avahi-daemon avahi-dnsconfd" +INITSCRIPT_NAME_avahi-daemon = "avahi-daemon" +INITSCRIPT_PARAMS_avahi-daemon = "defaults 21 19" +INITSCRIPT_NAME_avahi-dnsconfd = "avahi-dnsconfd" +INITSCRIPT_PARAMS_avahi-dnsconfd = "defaults 22 19" + +do_install() { + autotools_do_install + + # don't install /var/run when populating rootfs. Do it through volatile + # /var/run of current version is empty, so just remove it. + # if /var/run become non-empty in the future, need to install it via volatile + rm -rf ${D}/var/run + rm -rf ${D}${datadir}/dbus-1/interfaces + rm -rf ${D}${libdir}/avahi +} + +do_install_avahi-autoipd() { + autotools_do_install + install -d ${D}${sysconfdir}/udhcpc.d + install ${WORKDIR}/00avahi-autoipd ${D}${sysconfdir}/udhcpc.d + install ${WORKDIR}/99avahi-autoipd ${D}${sysconfdir}/udhcpc.d +} + +# At the time the postinst runs, dbus might not be setup so only restart if running +# Don't exit early, because update-rc.d needs to run subsequently. + +pkg_postinst_avahi-daemon () { +if [ -z "$D" ]; then + DBUSPID=`pidof dbus-daemon` + + if [ "x$DBUSPID" != "x" ]; then + /etc/init.d/dbus-1 force-reload + fi +fi +} + +pkg_postinst_avahi-autoipd () { + # can't do this offline + if [ "x$D" != "x" ]; then + exit 1 + fi + grep "^avahi-autoipd:" /etc/group > /dev/null || addgroup avahi-autoipd + grep "^avahi-autoipd:" /etc/passwd > /dev/null || adduser --disabled-password --system --home /var/lib/avahi-autoipd --no-create-home avahi-autoipd --ingroup avahi-autoipd -g "Avahi autoip daemon" +} + +pkg_postrm_avahi-daemon () { + deluser avahi || true + delgroup avahi || true +} + +pkg_postrm_avahi-autoipd () { + deluser avahi-autoipd || true + delgroup avahi-autoipd || true +} + +pkg_postinst_avahi-systemd() { + # can't do this offline + if [ "x$D" != "x" ]; then + exit 1 + fi + + systemctl enable avahi-daemon.service +} + +pkg_postrm_avahi-systemd() { + # can't do this offline + if [ "x$D" != "x" ]; then + exit 1 + fi + + systemctl disable avahi-daemon.service +} + diff --git a/meta/recipes-connectivity/avahi/avahi_0.6.31.bb b/meta/recipes-connectivity/avahi/avahi_0.6.31.bb new file mode 100644 index 000000000..e56bb1d50 --- /dev/null +++ b/meta/recipes-connectivity/avahi/avahi_0.6.31.bb @@ -0,0 +1,16 @@ +require avahi.inc + +LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://avahi-common/address.h;endline=25;md5=b1d1d2cda1c07eb848ea7d6215712d9d \ + file://avahi-core/dns.h;endline=23;md5=6fe82590b81aa0ddea5095b548e2fdcb \ + file://avahi-daemon/main.c;endline=21;md5=9ee77368c5407af77caaef1b07285969 \ + file://avahi-client/client.h;endline=23;md5=f4ac741a25c4f434039ba3e18c8674cf" + +PR = "${INC_PR}.0" + +SRC_URI[md5sum] = "2f22745b8f7368ad5a0a3fddac343f2d" +SRC_URI[sha256sum] = "8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a2dab48" + +DEPENDS += "intltool-native" + +PACKAGES =+ "libavahi-gobject" diff --git a/meta/recipes-connectivity/avahi/files/00avahi-autoipd b/meta/recipes-connectivity/avahi/files/00avahi-autoipd new file mode 100644 index 000000000..a0ab81460 --- /dev/null +++ b/meta/recipes-connectivity/avahi/files/00avahi-autoipd @@ -0,0 +1,10 @@ +#!/bin/sh + +[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 + +case "$1" in + + deconfig|renew|bound) + /usr/sbin/avahi-autoipd -k $interface 2> /dev/null + ;; +esac diff --git a/meta/recipes-connectivity/avahi/files/99avahi-autoipd b/meta/recipes-connectivity/avahi/files/99avahi-autoipd new file mode 100644 index 000000000..234cdaa3e --- /dev/null +++ b/meta/recipes-connectivity/avahi/files/99avahi-autoipd @@ -0,0 +1,10 @@ +#!/bin/sh + +[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 + +case "$1" in + + leasefail) + /usr/sbin/avahi-autoipd -wD $interface 2> /dev/null + ;; +esac diff --git a/meta/recipes-connectivity/avahi/files/fix_for_automake_1.11.2.patch b/meta/recipes-connectivity/avahi/files/fix_for_automake_1.11.2.patch new file mode 100644 index 000000000..e7a1908a6 --- /dev/null +++ b/meta/recipes-connectivity/avahi/files/fix_for_automake_1.11.2.patch @@ -0,0 +1,44 @@ +Upstream-Status: Pending + +automake version 1.11.2 has made use of dir variables more strict. +the use of pkglibdir with DATA var results in automake errors. + This commits uses pkgdatadir var instead of pkglibdir to avoid +the strict check errors. + +Fixes this error: +service-type-database/Makefile.am:21: `pkglibdir' is not a legitimate directory for `DATA' +autoreconf: automake failed with exit status: 1 +ERROR: autoreconf execution failed. + +Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> +2011/12/28 + + +Index: avahi-0.6.30/service-type-database/Makefile.am +=================================================================== +--- avahi-0.6.30.orig/service-type-database/Makefile.am ++++ avahi-0.6.30/service-type-database/Makefile.am +@@ -18,13 +18,12 @@ + EXTRA_DIST=build-db.in service-types + + pkgdata_DATA=service-types +-pkglib_DATA= + + if HAVE_PYTHON + if HAVE_GDBM + + noinst_SCRIPTS=build-db +-pkglib_DATA+=service-types.db ++pkgdata_DATA+=service-types.db + + build-db: build-db.in + $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \ +@@ -41,7 +40,7 @@ endif + if HAVE_DBM + + noinst_SCRIPTS=build-db +-pkglib_DATA+=service-types.db.pag service-types.db.dir ++pkgdata_DATA+=service-types.db.pag service-types.db.dir + + build-db: build-db.in + $(AM_V_GEN)sed -e 's,@PYTHON\@,$(PYTHON),g' \ diff --git a/meta/recipes-connectivity/avahi/files/initscript.patch b/meta/recipes-connectivity/avahi/files/initscript.patch new file mode 100644 index 000000000..193889eb5 --- /dev/null +++ b/meta/recipes-connectivity/avahi/files/initscript.patch @@ -0,0 +1,41 @@ +Upstream-Status: Pending + +diff --git a/initscript/debian/avahi-daemon.in b/initscript/debian/avahi-daemon.in +index 30a2c2f..b5848a8 100755 +--- a/initscript/debian/avahi-daemon.in ++++ b/initscript/debian/avahi-daemon.in +@@ -1,2 +1,14 @@ + #!/bin/sh +- ++### BEGIN INIT INFO ++# Provides: avahi ++# Required-Start: $remote_fs dbus ++# Required-Stop: $remote_fs dbus ++# Should-Start: $syslog ++# Should-Stop: $syslog ++# Default-Start: 2 3 4 5 ++# Default-Stop: 0 1 6 ++# Short-Description: Avahi mDNS/DNS-SD Daemon ++# Description: Zeroconf daemon for configuring your network ++# automatically ++### END INIT INFO ++# +diff --git a/initscript/debian/avahi-dnsconfd.in b/initscript/debian/avahi-dnsconfd.in +index ac34804..f95c340 100755 +--- a/initscript/debian/avahi-dnsconfd.in ++++ b/initscript/debian/avahi-dnsconfd.in +@@ -1,1 +1,14 @@ + #!/bin/sh ++### BEGIN INIT INFO ++# Provides: avahi-dnsconfd ++# Required-Start: $remote_fs avahi ++# Required-Stop: $remote_fs avahi ++# Should-Start: $syslog ++# Should-Stop: $syslog ++# Default-Start: 2 3 4 5 ++# Default-Stop: 0 1 6 ++# Short-Description: Avahi mDNS/DNS-SD DNS configuration ++# Description: Zeroconf daemon for configuring your network ++# automatically ++### END INIT INFO ++# diff --git a/meta/recipes-connectivity/bind/bind-9.8.1/conf.patch b/meta/recipes-connectivity/bind/bind-9.8.1/conf.patch new file mode 100644 index 000000000..fd5606e84 --- /dev/null +++ b/meta/recipes-connectivity/bind/bind-9.8.1/conf.patch @@ -0,0 +1,307 @@ +Upstream-Status: Inappropriate [configuration] + +the patch is imported from openembedded project + +11/30/2010 - Qing He <qing.he@intel.com> + +diff -urN bind-9.3.1.orig/conf/db.0 bind-9.3.1/conf/db.0 +--- bind-9.3.1.orig/conf/db.0 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.0 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,12 @@ ++; ++; BIND reverse data file for broadcast zone ++; ++$TTL 604800 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 604800 ) ; Negative Cache TTL ++; ++@ IN NS localhost. +diff -urN bind-9.3.1.orig/conf/db.127 bind-9.3.1/conf/db.127 +--- bind-9.3.1.orig/conf/db.127 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.127 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,13 @@ ++; ++; BIND reverse data file for local loopback interface ++; ++$TTL 604800 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 604800 ) ; Negative Cache TTL ++; ++@ IN NS localhost. ++1.0.0 IN PTR localhost. +diff -urN bind-9.3.1.orig/conf/db.empty bind-9.3.1/conf/db.empty +--- bind-9.3.1.orig/conf/db.empty 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.empty 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,14 @@ ++; BIND reverse data file for empty rfc1918 zone ++; ++; DO NOT EDIT THIS FILE - it is used for multiple zones. ++; Instead, copy it, edit named.conf, and use that copy. ++; ++$TTL 86400 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 86400 ) ; Negative Cache TTL ++; ++@ IN NS localhost. +diff -urN bind-9.3.1.orig/conf/db.local bind-9.3.1/conf/db.local +--- bind-9.3.1.orig/conf/db.local 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.local 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,13 @@ ++; ++; BIND data file for local loopback interface ++; ++$TTL 604800 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 604800 ) ; Negative Cache TTL ++; ++@ IN NS localhost. ++@ IN A 127.0.0.1 +diff -urN bind-9.3.1.orig/conf/db.root bind-9.3.1/conf/db.root +--- bind-9.3.1.orig/conf/db.root 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.root 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,45 @@ ++ ++; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net. ++;; global options: printcmd ++;; Got answer: ++;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944 ++;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 ++ ++;; QUESTION SECTION: ++;. IN NS ++ ++;; ANSWER SECTION: ++. 518400 IN NS A.ROOT-SERVERS.NET. ++. 518400 IN NS B.ROOT-SERVERS.NET. ++. 518400 IN NS C.ROOT-SERVERS.NET. ++. 518400 IN NS D.ROOT-SERVERS.NET. ++. 518400 IN NS E.ROOT-SERVERS.NET. ++. 518400 IN NS F.ROOT-SERVERS.NET. ++. 518400 IN NS G.ROOT-SERVERS.NET. ++. 518400 IN NS H.ROOT-SERVERS.NET. ++. 518400 IN NS I.ROOT-SERVERS.NET. ++. 518400 IN NS J.ROOT-SERVERS.NET. ++. 518400 IN NS K.ROOT-SERVERS.NET. ++. 518400 IN NS L.ROOT-SERVERS.NET. ++. 518400 IN NS M.ROOT-SERVERS.NET. ++ ++;; ADDITIONAL SECTION: ++A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 ++B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201 ++C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12 ++D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90 ++E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10 ++F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241 ++G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4 ++H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53 ++I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17 ++J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30 ++K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129 ++L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12 ++M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33 ++ ++;; Query time: 81 msec ++;; SERVER: 198.41.0.4#53(a.root-servers.net.) ++;; WHEN: Sun Feb 1 11:27:14 2004 ++;; MSG SIZE rcvd: 436 ++ +diff -urN bind-9.3.1.orig/conf/named.conf bind-9.3.1/conf/named.conf +--- bind-9.3.1.orig/conf/named.conf 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/named.conf 2005-07-10 22:33:46.000000000 +0200 +@@ -0,0 +1,49 @@ ++// This is the primary configuration file for the BIND DNS server named. ++// ++// If you are just adding zones, please do that in /etc/bind/named.conf.local ++ ++include "/etc/bind/named.conf.options"; ++ ++// prime the server with knowledge of the root servers ++zone "." { ++ type hint; ++ file "/etc/bind/db.root"; ++}; ++ ++// be authoritative for the localhost forward and reverse zones, and for ++// broadcast zones as per RFC 1912 ++ ++zone "localhost" { ++ type master; ++ file "/etc/bind/db.local"; ++}; ++ ++zone "127.in-addr.arpa" { ++ type master; ++ file "/etc/bind/db.127"; ++}; ++ ++zone "0.in-addr.arpa" { ++ type master; ++ file "/etc/bind/db.0"; ++}; ++ ++zone "255.in-addr.arpa" { ++ type master; ++ file "/etc/bind/db.255"; ++}; ++ ++// zone "com" { type delegation-only; }; ++// zone "net" { type delegation-only; }; ++ ++// From the release notes: ++// Because many of our users are uncomfortable receiving undelegated answers ++// from root or top level domains, other than a few for whom that behaviour ++// has been trusted and expected for quite some length of time, we have now ++// introduced the "root-delegations-only" feature which applies delegation-only ++// logic to all top level domains, and to the root domain. An exception list ++// should be specified, including "MUSEUM" and "DE", and any other top level ++// domains from whom undelegated responses are expected and trusted. ++// root-delegation-only exclude { "DE"; "MUSEUM"; }; ++ ++include "/etc/bind/named.conf.local"; +diff -urN bind-9.3.1.orig/conf/named.conf.local bind-9.3.1/conf/named.conf.local +--- bind-9.3.1.orig/conf/named.conf.local 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/named.conf.local 2005-07-10 22:14:06.000000000 +0200 +@@ -0,0 +1,8 @@ ++// ++// Do any local configuration here ++// ++ ++// Consider adding the 1918 zones here, if they are not used in your ++// organization ++//include "/etc/bind/zones.rfc1918"; ++ +diff -urN bind-9.3.1.orig/conf/named.conf.options bind-9.3.1/conf/named.conf.options +--- bind-9.3.1.orig/conf/named.conf.options 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/named.conf.options 2005-07-10 22:14:06.000000000 +0200 +@@ -0,0 +1,24 @@ ++options { ++ directory "/var/cache/bind"; ++ ++ // If there is a firewall between you and nameservers you want ++ // to talk to, you might need to uncomment the query-source ++ // directive below. Previous versions of BIND always asked ++ // questions using port 53, but BIND 8.1 and later use an unprivileged ++ // port by default. ++ ++ // query-source address * port 53; ++ ++ // If your ISP provided one or more IP addresses for stable ++ // nameservers, you probably want to use them as forwarders. ++ // Uncomment the following block, and insert the addresses replacing ++ // the all-0's placeholder. ++ ++ // forwarders { ++ // 0.0.0.0; ++ // }; ++ ++ auth-nxdomain no; # conform to RFC1035 ++ ++}; ++ +diff -urN bind-9.3.1.orig/conf/zones.rfc1918 bind-9.3.1/conf/zones.rfc1918 +--- bind-9.3.1.orig/conf/zones.rfc1918 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/zones.rfc1918 2005-07-10 22:14:10.000000000 +0200 +@@ -0,0 +1,20 @@ ++zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++ ++zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "31.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++ ++zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; +diff -urN bind-9.3.1.orig/init.d bind-9.3.1/init.d +--- bind-9.3.1.orig/init.d 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/init.d 2005-07-10 23:09:58.000000000 +0200 +@@ -0,0 +1,63 @@ ++#!/bin/sh ++ ++PATH=/sbin:/bin:/usr/sbin:/usr/bin ++ ++# for a chrooted server: "-u bind -t /var/lib/named" ++# Don't modify this line, change or create /etc/default/bind9. ++OPTIONS="" ++ ++test -f /etc/default/bind9 && . /etc/default/bind9 ++ ++test -x /usr/sbin/rndc || exit 0 ++ ++case "$1" in ++ start) ++ echo -n "Starting domain name service: named" ++ ++ modprobe capability >/dev/null 2>&1 || true ++ ++ # dirs under /var/run can go away on reboots. ++ mkdir -p /var/run/bind/run ++ mkdir -p /var/cache/bind ++ chmod 775 /var/run/bind/run ++ chown root:bind /var/run/bind/run >/dev/null 2>&1 || true ++ ++ if [ ! -x /usr/sbin/named ]; then ++ echo "named binary missing - not starting" ++ exit 1 ++ fi ++ if start-stop-daemon --start --quiet --exec /usr/sbin/named \ ++ --pidfile /var/run/bind/run/named.pid -- $OPTIONS; then ++ if [ -x /sbin/resolvconf ] ; then ++ echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo ++ fi ++ fi ++ echo "." ++ ;; ++ ++ stop) ++ echo -n "Stopping domain name service: named" ++ if [ -x /sbin/resolvconf ]; then ++ /sbin/resolvconf -d lo ++ fi ++ /usr/sbin/rndc stop ++ echo "." ++ ;; ++ ++ reload) ++ /usr/sbin/rndc reload ++ ;; ++ ++ restart|force-reload) ++ $0 stop ++ sleep 2 ++ $0 start ++ ;; ++ ++ *) ++ echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 diff --git a/meta/recipes-connectivity/bind/bind-9.8.1/cross-build-fix.patch b/meta/recipes-connectivity/bind/bind-9.8.1/cross-build-fix.patch new file mode 100644 index 000000000..4c37b6b00 --- /dev/null +++ b/meta/recipes-connectivity/bind/bind-9.8.1/cross-build-fix.patch @@ -0,0 +1,21 @@ +Upstream-Status: Inappropriate [configuration] + +11/30/2010 +gen.c should be build by ${BUILD_CC} + +Signed-off-by: Qing He <qing.he@intel.com> + +diff --git a/lib/export/dns/Makefile.in b/lib/export/dns/Makefile.in +index aeadf57..d3fae74 100644 +--- a/lib/export/dns/Makefile.in ++++ b/lib/export/dns/Makefile.in +@@ -166,7 +166,8 @@ code.h: gen + ./gen -s ${srcdir} > code.h + + gen: ${srcdir}/gen.c +- ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS} ++ ${BUILD_CC} ${BUILD_CFLAGS} -I${top_srcdir}/lib/isc/include \ ++ ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} -o $@ ${srcdir}/gen.c ${BUILD_LIBS} + + #We don't need rbtdb64 for this library + #rbtdb64.@O@: rbtdb.c diff --git a/meta/recipes-connectivity/bind/bind_9.8.1.bb b/meta/recipes-connectivity/bind/bind_9.8.1.bb new file mode 100644 index 000000000..2efd09de2 --- /dev/null +++ b/meta/recipes-connectivity/bind/bind_9.8.1.bb @@ -0,0 +1,56 @@ +DESCRIPTION = "ISC Internet Domain Name Server" +HOMEPAGE = "http://www.isc.org/sw/bind/" +SECTION = "console/network" + +LICENSE = "ISC & BSD" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=0fbe2a3ab3c68ac3fea3cad13093877c" + +DEPENDS = "openssl libcap" +PR = "r3" + +SRC_URI = "ftp://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \ + file://conf.patch \ + file://cross-build-fix.patch \ + " + +SRC_URI[md5sum] = "cf31117c5d35af34d4c0702970ad9fb7" +SRC_URI[sha256sum] = "02285dc429cb2a6687a1b2446e9ee22c1df27f2577225b05be5092395ee7c92c" + +# --enable-exportlib is necessary for building dhcp +EXTRA_OECONF = " --enable-ipv6=no --with-randomdev=/dev/random --disable-threads \ + --disable-devpoll --disable-epoll --with-gost=no \ + --with-gssapi=no \ + --sysconfdir=${sysconfdir}/bind \ + --with-openssl=${STAGING_LIBDIR}/.. --with-libxml2=${STAGING_LIBDIR}/.. \ + --enable-exportlib --with-export-includedir=${includedir} --with-export-libdir=${libdir} \ + " +inherit autotools update-rc.d + +INITSCRIPT_NAME = "bind" +INITSCRIPT_PARAMS = "defaults" + +PARALLEL_MAKE = "" + +PACKAGES_prepend = "${PN}-utils " +FILES_${PN}-utils = "${bindir}/host ${bindir}/dig ${bindir}/nslookup" +FILES_${PN}-dev += "${bindir}/isc-config.h" + +do_install_append() { + rm "${D}${bindir}/nslookup" + install -d "${D}${sysconfdir}/bind" + install -d "${D}${sysconfdir}/init.d" + install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/" + install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind" +} + +CONFFILES_${PN} = " \ + ${sysconfdir}/bind/named.conf \ + ${sysconfdir}/bind/named.conf.local \ + ${sysconfdir}/bind/named.conf.options \ + ${sysconfdir}/bind/db.0 \ + ${sysconfdir}/bind/db.127 \ + ${sysconfdir}/bind/db.empty \ + ${sysconfdir}/bind/db.local \ + ${sysconfdir}/bind/db.root \ + " + diff --git a/meta/recipes-connectivity/bluez/bluez-hcidump_2.4.bb b/meta/recipes-connectivity/bluez/bluez-hcidump_2.4.bb new file mode 100644 index 000000000..194c04d46 --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez-hcidump_2.4.bb @@ -0,0 +1,20 @@ +SUMMARY = "Linux Bluetooth Stack HCI Debugger Tool." +DESCRIPTION = "The hcidump tool reads raw HCI data coming from and going to a Bluetooth device \ +and displays the commands, events and data in a human-readable form." + +SECTION = "console" +DEPENDS = "bluez4" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://src/hcidump.c;beginline=1;endline=23;md5=3bee3a162dff43a5be7470710b99fbcf" +PR = "r0" + +SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/bluez-hcidump-${PV}.tar.gz" + +SRC_URI[md5sum] = "d39833de0ed26bddf784e9580b6f33c4" +SRC_URI[sha256sum] = "bacd155e6420e480d8a30c0b0e6da990031890ee1000a31408e175ab7cf3cbd3" +S = "${WORKDIR}/bluez-hcidump-${PV}" + +EXTRA_OECONF = "--with-bluez-libs=${STAGING_LIBDIR} --with-bluez-includes=${STAGING_INCDIR}" + +inherit autotools diff --git a/meta/recipes-connectivity/bluez/bluez4-4.99/bluetooth.conf b/meta/recipes-connectivity/bluez/bluez4-4.99/bluetooth.conf new file mode 100644 index 000000000..ca5e9e4f2 --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4-4.99/bluetooth.conf @@ -0,0 +1,16 @@ +<!-- This configuration file specifies the required security policies + for Bluetooth core daemon to work. --> + +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> +<busconfig> + + <!-- ../system.conf have denied everything, so we just punch some holes --> + + <policy context="default"> + <allow own="org.bluez"/> + <allow send_destination="org.bluez"/> + <allow send_interface="org.bluez.Agent"/> + </policy> + +</busconfig> diff --git a/meta/recipes-connectivity/bluez/bluez4-4.99/sbc_mmx.patch b/meta/recipes-connectivity/bluez/bluez4-4.99/sbc_mmx.patch new file mode 100644 index 000000000..98fab458b --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4-4.99/sbc_mmx.patch @@ -0,0 +1,24 @@ +on x86 and x86_64 gcc 4.7 complains + +sbc/sbc_primitives_mmx.c: In function 'sbc_calc_scalefactors_mmx': +sbc/sbc_primitives_mmx.c:294:4: warning: asm operand 2 probably doesn't match constraints [enabled by default] +sbc/sbc_primitives_mmx.c:294:4: error: impossible constraint in 'asm' + +This patch is taken from https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/911871 + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +Index: bluez-4.98/sbc/sbc_primitives_mmx.c +=================================================================== +--- bluez-4.98.orig/sbc/sbc_primitives_mmx.c 2011-12-21 14:53:54.000000000 -0800 ++++ bluez-4.98/sbc/sbc_primitives_mmx.c 2012-02-24 10:07:03.422073800 -0800 +@@ -318,7 +318,7 @@ + "movl %k0, 4(%3)\n" + : "+r" (blk) + : "r" (&sb_sample_f[0][ch][sb]), +- "i" ((char *) &sb_sample_f[1][0][0] - ++ "r" ((char *) &sb_sample_f[1][0][0] - + (char *) &sb_sample_f[0][0][0]), + "r" (&scale_factor[ch][sb]), + "r" (&consts), diff --git a/meta/recipes-connectivity/bluez/bluez4.inc b/meta/recipes-connectivity/bluez/bluez4.inc new file mode 100644 index 000000000..6dc06f46b --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4.inc @@ -0,0 +1,39 @@ +SUMMARY = "Linux Bluetooth Stack Userland V4" +DESCRIPTION = "Linux Bluetooth stack V4 userland components. These include a system configurations, daemons, tools and system libraries." +HOMEPAGE = "http://www.bluez.org" +SECTION = "libs" +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ + file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \ + file://src/main.c;beginline=1;endline=24;md5=9bc54b93cd7e17bf03f52513f39f926e \ + file://sbc/sbc.c;beginline=1;endline=25;md5=1a40781ed30d50d8639323a184aeb191" +DEPENDS = "udev libusb dbus-glib glib-2.0 libcheck" +RDEPENDS_${PN}-dev = "bluez-hcidump" + +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}" +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" + +ASNEEDED = "" + +SRC_URI = "\ + ${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.gz \ +" +S = "${WORKDIR}/bluez-${PV}" + +inherit autotools + +EXTRA_OECONF = "\ + --disable-gstreamer \ + --enable-usb \ + --enable-tools \ + --enable-bccmd \ + --enable-hid2hci \ + --enable-dfutool \ + --disable-hidd \ + --disable-pand \ + --disable-dund \ + --disable-cups \ + --enable-test \ + --enable-datafiles \ +" + diff --git a/meta/recipes-connectivity/bluez/bluez4_4.99.bb b/meta/recipes-connectivity/bluez/bluez4_4.99.bb new file mode 100644 index 000000000..32831e7ff --- /dev/null +++ b/meta/recipes-connectivity/bluez/bluez4_4.99.bb @@ -0,0 +1,36 @@ +require bluez4.inc + +PR = "r2" + +SRC_URI += "file://bluetooth.conf \ + file://sbc_mmx.patch \ + " + +SRC_URI[md5sum] = "570aa10692ed890aa0a4297b37824912" +SRC_URI[sha256sum] = "d884b9aa5d3d9653c076b7646ca14a3e43eb84bccfe8193c49690f802bbd827c" + +do_install_append() { + install -m 0644 ${S}/audio/audio.conf ${D}/${sysconfdir}/bluetooth/ + install -m 0644 ${S}/network/network.conf ${D}/${sysconfdir}/bluetooth/ + install -m 0644 ${S}/input/input.conf ${D}/${sysconfdir}/bluetooth/ + # at_console doesn't really work with the current state of OE, so punch some more holes so people can actually use BT + install -m 0644 ${WORKDIR}/bluetooth.conf ${D}/${sysconfdir}/dbus-1/system.d/ +} + +RDEPENDS_${PN}-dev = "bluez-hcidump" + +ALLOW_EMPTY_libasound-module-bluez = "1" +PACKAGES =+ "libasound-module-bluez" + +FILES_libasound-module-bluez = "${libdir}/alsa-lib/lib*.so ${datadir}/alsa" +FILES_${PN} += "${libdir}/bluetooth/plugins ${libdir}/bluetooth/plugins/*.so ${base_libdir}/udev/ ${systemd_unitdir}/" +FILES_${PN}-dev += "\ + ${libdir}/bluetooth/plugins/*.la \ + ${libdir}/alsa-lib/*.la \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/bluetooth/plugins/.debug \ + ${libdir}/*/.debug \ + ${base_libdir}/udev/.debug \ + " diff --git a/meta/recipes-connectivity/bluez/gst-plugin-bluetooth_4.99.bb b/meta/recipes-connectivity/bluez/gst-plugin-bluetooth_4.99.bb new file mode 100644 index 000000000..f8dab529c --- /dev/null +++ b/meta/recipes-connectivity/bluez/gst-plugin-bluetooth_4.99.bb @@ -0,0 +1,39 @@ +require bluez4.inc +require recipes-multimedia/gstreamer/gst-plugins-package.inc + +PR = "r2" + +SRC_URI[md5sum] = "570aa10692ed890aa0a4297b37824912" +SRC_URI[sha256sum] = "d884b9aa5d3d9653c076b7646ca14a3e43eb84bccfe8193c49690f802bbd827c" + +DEPENDS = "bluez4 gst-plugins-base" + +EXTRA_OECONF = "\ + --enable-gstreamer \ +" + +# clean unwanted files +do_install_append() { + rm -rf ${D}${bindir} + rm -rf ${D}${sbindir} + rm -f ${D}${libdir}/lib* + rm -rf ${D}${libdir}/pkgconfig + rm -rf ${D}${sysconfdir} + rm -rf ${D}${base_libdir} + rm -rf ${D}${libdir}/bluetooth + rm -rf ${D}${localstatedir} + rm -rf ${D}${libdir}/alsa-lib + rm -rf ${D}${datadir} + rm -rf ${D}${includedir} +} + +FILES_${PN} = "${libdir}/gstreamer-0.10/lib*.so" +FILES_${PN}-dev += "\ + ${libdir}/gstreamer-0.10/*.la \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/*/.debug \ +" + + diff --git a/meta/recipes-connectivity/connman/connman-gnome/0001-Monitor-the-Manager-s-State-property.patch b/meta/recipes-connectivity/connman/connman-gnome/0001-Monitor-the-Manager-s-State-property.patch new file mode 100644 index 000000000..20cbb30c1 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome/0001-Monitor-the-Manager-s-State-property.patch @@ -0,0 +1,48 @@ +From 56d307993c0a661c73fcdd72b1392c3719a0c297 Mon Sep 17 00:00:00 2001 +Message-Id: <56d307993c0a661c73fcdd72b1392c3719a0c297.1334369310.git.paul.eggleton@linux.intel.com> +In-Reply-To: <cover.1334369310.git.paul.eggleton@linux.intel.com> +References: <cover.1334369310.git.paul.eggleton@linux.intel.com> +From: Joshua Lock <josh@linux.intel.com> +Date: Tue, 10 Apr 2012 17:54:56 -0700 +Subject: [PATCH 1/6] Monitor the Manager's State property + +Monitor the Manager's State property and update global_ready +appropriately when it changes. + +Without this change using the applet with connman 0.79 and +starting the applet after the daemon no status icon is shown. + +With this change this icon displays an appropriate state when +the applet launches. + +Upstream-Status: Submitted + +Signed-off-by: Joshua Lock <josh@linux.intel.com> +--- + applet/main.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/applet/main.c b/applet/main.c +index 224e2fd..68a77b1 100644 +--- a/applet/main.c ++++ b/applet/main.c +@@ -111,6 +111,16 @@ static void manager_property_changed(DBusGProxy *proxy, const char *property, + iterate_list, &path); + update_service(proxy, path); + g_free(path); ++ } else if (g_str_equal(property, "State") == TRUE) { ++ const gchar *state = g_value_get_string(value); ++ ++ if (g_strcmp0(state, "ready") == 0 || g_strcmp0(state, "online") == 0) { ++ global_ready = TRUE; ++ status_ready(global_strength); ++ } else { ++ global_ready = FALSE; ++ status_offline(); ++ } + } + } + +-- +1.7.5.4 + diff --git a/meta/recipes-connectivity/connman/connman-gnome/0002-Update-for-ConnMan-0.79-API-changes.patch b/meta/recipes-connectivity/connman/connman-gnome/0002-Update-for-ConnMan-0.79-API-changes.patch new file mode 100644 index 000000000..fe87b5b71 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome/0002-Update-for-ConnMan-0.79-API-changes.patch @@ -0,0 +1,865 @@ +From 8b8fd038474def8452354105b40738a402f28d19 Mon Sep 17 00:00:00 2001 +Message-Id: <8b8fd038474def8452354105b40738a402f28d19.1334369310.git.paul.eggleton@linux.intel.com> +In-Reply-To: <cover.1334369310.git.paul.eggleton@linux.intel.com> +References: <cover.1334369310.git.paul.eggleton@linux.intel.com> +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Thu, 12 Apr 2012 00:35:00 +0100 +Subject: [PATCH 2/6] Update for ConnMan 0.79 API changes + +* Use Manager.GetServices method instead of Manager.Services property +* Use Manager.GetTechnologies / Technology.Powered instead of + Manager.EnabledTechnologies method +* Use Technology.Powered property instead of Manager.EnableTechnology + and Manager.DisableTechnology methods +* Use Technology.Scan method instead of Manager.RequestScan method +* Listen for ServicesAdded, ServicesRemoved, TechnologyAdded and + TechnologyRemoved signals instead of monitoring the old Services + and EnabledTechnologies properties + +Also remove unused code relating to the old API. + +Upstream-Status: Submitted + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +--- + common/connman-client.c | 90 ++----------- + common/connman-client.h | 12 +- + common/connman-dbus.c | 359 +++++++++++++++++++++++++++-------------------- + common/connman-dbus.h | 1 + + common/connman-dbus.xml | 17 +-- + common/marshal.list | 2 + + properties/cellular.c | 6 +- + properties/ethernet.c | 8 +- + properties/main.c | 14 +-- + properties/wifi.c | 8 +- + 10 files changed, 245 insertions(+), 272 deletions(-) + +diff --git a/common/connman-client.c b/common/connman-client.c +index 407aea0..9d755c4 100644 +--- a/common/connman-client.c ++++ b/common/connman-client.c +@@ -112,9 +112,7 @@ static void connman_client_init(ConnmanClient *client) + G_TYPE_STRING, /* address */ + G_TYPE_STRING, /* netmask */ + G_TYPE_STRING, /* gateway */ +- G_TYPE_BOOLEAN, /* ethernet enabled */ +- G_TYPE_BOOLEAN, /* wifi enabled */ +- G_TYPE_BOOLEAN, /* cellular enabled */ ++ G_TYPE_BOOLEAN, /* powered */ + G_TYPE_BOOLEAN);/* offline */ + + g_object_set_data(G_OBJECT(priv->store), +@@ -288,7 +286,7 @@ void connman_client_set_powered(ConnmanClient *client, const gchar *device, + DBusGProxy *proxy; + GValue value = { 0 }; + +- DBG("client %p", client); ++ DBG("client %p device %s", client, device); + + if (device == NULL) + return; +@@ -300,64 +298,34 @@ void connman_client_set_powered(ConnmanClient *client, const gchar *device, + g_value_init(&value, G_TYPE_BOOLEAN); + g_value_set_boolean(&value, powered); + +- connman_set_property(proxy, "Powered", &value, NULL); +- +- g_object_unref(proxy); +-} +- +-static gboolean device_scan(GtkTreeModel *model, GtkTreePath *path, +- GtkTreeIter *iter, gpointer user_data) +-{ +- DBusGProxy *proxy; +- +- gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy, -1); +- +- if (proxy == NULL) +- return FALSE; +- +- if (g_str_equal(dbus_g_proxy_get_interface(proxy), +- CONNMAN_SERVICE_INTERFACE) == FALSE) +- return FALSE; +- +- connman_propose_scan(proxy, NULL); ++ GError *error = NULL; ++ gboolean ret = connman_set_property(proxy, "Powered", &value, &error); ++ if( error ) ++ fprintf (stderr, "error: %s\n", error->message); + + g_object_unref(proxy); +- +- return FALSE; + } + +-void connman_client_propose_scan(ConnmanClient *client, const gchar *device) ++void connman_client_scan(ConnmanClient *client, const gchar *device, ++ connman_scan_reply callback, gpointer user_data) + { + ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client); + DBusGProxy *proxy; + +- DBG("client %p", client); ++ DBG("client %p device %s", client, device); + +- if (device == NULL) { +- gtk_tree_model_foreach(GTK_TREE_MODEL(priv->store), +- device_scan, NULL); ++ if (device == NULL) + return; +- } + + proxy = connman_dbus_get_proxy(priv->store, device); + if (proxy == NULL) + return; + +- connman_propose_scan(proxy, NULL); ++ connman_scan_async(proxy, callback, user_data); + + g_object_unref(proxy); + } + +-void connman_client_request_scan(ConnmanClient *client, char *scantype, +- connman_request_scan_reply callback, gpointer userdata) +-{ +- ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client); +- +- DBG("client %p", client); +- +- connman_request_scan_async(priv->manager, scantype, callback, userdata); +-} +- + gboolean connman_client_get_offline_status(ConnmanClient *client) + { + GHashTable *hash; +@@ -600,39 +568,3 @@ void connman_client_remove(ConnmanClient *client, const gchar *network) + + g_object_unref(proxy); + } +- +-void connman_client_enable_technology(ConnmanClient *client, const char *network, +- const gchar *technology) +-{ +- ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client); +- DBusGProxy *proxy; +- +- if (network== NULL) +- return; +- +- proxy = connman_dbus_get_proxy(priv->store, network); +- if (proxy == NULL) +- return; +- +- connman_enable_technology(proxy, technology, NULL); +- +- g_object_unref(proxy); +-} +- +-void connman_client_disable_technology(ConnmanClient *client, const char *network, +- const gchar *technology) +-{ +- ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client); +- DBusGProxy *proxy; +- +- if (network == NULL) +- return; +- +- proxy = connman_dbus_get_proxy(priv->store, network); +- if (proxy == NULL) +- return; +- +- connman_disable_technology(proxy, technology, NULL); +- +- g_object_unref(proxy); +-} +diff --git a/common/connman-client.h b/common/connman-client.h +index 15fa098..6fe772c 100644 +--- a/common/connman-client.h ++++ b/common/connman-client.h +@@ -69,7 +69,8 @@ void connman_client_set_powered(ConnmanClient *client, const gchar *device, + gboolean powered); + gboolean connman_client_set_ipv4(ConnmanClient *client, const gchar *device, + struct ipv4_config *ipv4_config); +-void connman_client_propose_scan(ConnmanClient *client, const gchar *device); ++void connman_client_scan(ConnmanClient *client, const gchar *device, ++ connman_scan_reply callback, gpointer user_data); + + void connman_client_connect(ConnmanClient *client, const gchar *network); + void connman_client_disconnect(ConnmanClient *client, const gchar *network); +@@ -89,8 +90,6 @@ void connman_client_set_callback(ConnmanClient *client, + + void connman_client_remove(ConnmanClient *client, const gchar *network); + +-void connman_client_request_scan(ConnmanClient *client, char *scantype, +- connman_request_scan_reply callback, gpointer userdata); + gboolean connman_client_get_offline_status(ConnmanClient *client); + void connman_client_set_offlinemode(ConnmanClient *client, gboolean status); + +@@ -114,11 +113,8 @@ enum { + CONNMAN_COLUMN_ADDRESS, /* G_TYPE_STRING */ + CONNMAN_COLUMN_NETMASK, /* G_TYPE_STRING */ + CONNMAN_COLUMN_GATEWAY, /* G_TYPE_STRING */ +- +- CONNMAN_COLUMN_ETHERNET_ENABLED,/* G_TYPE_STRING */ +- CONNMAN_COLUMN_WIFI_ENABLED, /* G_TYPE_STRING */ +- CONNMAN_COLUMN_CELLULAR_ENABLED,/* G_TYPE_STRING */ +- CONNMAN_COLUMN_OFFLINEMODE, /* G_TYPE_STRING */ ++ CONNMAN_COLUMN_POWERED, /* G_TYPE_BOOLEAN */ ++ CONNMAN_COLUMN_OFFLINEMODE, /* G_TYPE_BOOLEAN */ + + _CONNMAN_NUM_COLUMNS + }; +diff --git a/common/connman-dbus.c b/common/connman-dbus.c +index 6669749..4eb77b6 100644 +--- a/common/connman-dbus.c ++++ b/common/connman-dbus.c +@@ -28,6 +28,8 @@ + #include "connman-dbus.h" + #include "connman-dbus-glue.h" + ++#include "marshal.h" ++ + #ifdef DEBUG + #define DBG(fmt, arg...) printf("%s:%s() " fmt "\n", __FILE__, __FUNCTION__ , ## arg) + #else +@@ -164,22 +166,6 @@ gboolean connman_dbus_get_iter(GtkTreeStore *store, const gchar *path, + return get_iter_from_path(store, iter, path); + } + +-static void iterate_list(const GValue *value, gpointer user_data) +-{ +- GSList **list = user_data; +- gchar *path = g_value_dup_boxed(value); +- +- if (path == NULL) +- return; +- +- *list = g_slist_append(*list, path); +-} +- +-static gint compare_path(gconstpointer a, gconstpointer b) +-{ +- return g_strcmp0(a, b); +-} +- + static guint get_type(const GValue *value) + { + const char *type = value ? g_value_get_string(value) : NULL; +@@ -217,95 +203,76 @@ static const gchar *type2icon(guint type) + return NULL; + } + +-static void enabled_technologies_changed(GtkTreeStore *store, GValue *value) ++static void tech_changed(DBusGProxy *proxy, const char *property, ++ GValue *value, gpointer user_data) + { ++ GtkTreeStore *store = user_data; ++ const char *path = dbus_g_proxy_get_path(proxy); + GtkTreeIter iter; +- gboolean ethernet_enabled_prev, ethernet_enabled = FALSE; +- gboolean wifi_enabled_prev, wifi_enabled = FALSE; +- gboolean cellular_enabled_prev, cellular_enabled = FALSE; +- gchar **tech = g_value_get_boxed (value); +- guint i; + +- if (value == NULL) +- return; +- +- for (i = 0; i < g_strv_length(tech); i++) { +- DBG("technology: %s", *(tech+i)); +- if (g_str_equal("ethernet", *(tech + i))) +- ethernet_enabled = TRUE; +- else if (g_str_equal ("wifi", *(tech + i))) +- wifi_enabled = TRUE; +- else if (g_str_equal ("cellular", *(tech + i))) +- cellular_enabled = TRUE; +- } ++ DBG("store %p proxy %p property %s", store, proxy, property); + +- get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_ETHERNET); +- gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, +- CONNMAN_COLUMN_ETHERNET_ENABLED, ðernet_enabled_prev, -1); +- if (ethernet_enabled_prev != ethernet_enabled) +- gtk_tree_store_set(store, &iter, +- CONNMAN_COLUMN_ETHERNET_ENABLED, ethernet_enabled, -1); ++ if (property == NULL || value == NULL) ++ return; + +- get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_WIFI); +- gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, +- CONNMAN_COLUMN_WIFI_ENABLED, &wifi_enabled_prev, -1); +- if (wifi_enabled_prev != wifi_enabled) +- gtk_tree_store_set(store, &iter, +- CONNMAN_COLUMN_WIFI_ENABLED, wifi_enabled, -1); ++ if (get_iter_from_path(store, &iter, path) == FALSE) ++ return; + +- get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_CELLULAR); +- gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, +- CONNMAN_COLUMN_CELLULAR_ENABLED, &cellular_enabled_prev, -1); +- if (cellular_enabled_prev != cellular_enabled) ++ if (g_str_equal(property, "Powered") == TRUE) { ++ gboolean powered = g_value_get_boolean(value); + gtk_tree_store_set(store, &iter, +- CONNMAN_COLUMN_CELLULAR_ENABLED, cellular_enabled, -1); ++ CONNMAN_COLUMN_POWERED, powered, -1); ++ } + } + +-static void enabled_technologies_properties(GtkTreeStore *store, DBusGProxy *proxy, GValue *value) ++static void tech_properties(DBusGProxy *proxy, GHashTable *hash, ++ GError *error, gpointer user_data) + { ++ GtkTreeStore *store = user_data; + GtkTreeIter iter; +- gboolean ethernet_enabled = FALSE; +- gboolean wifi_enabled = FALSE; +- gboolean cellular_enabled = FALSE; +- gchar **tech = g_value_get_boxed (value); +- guint i; +- +- for (i = 0; i < g_strv_length (tech); i++) { +- DBG("technology: %s", *(tech+i)); +- if (g_str_equal("ethernet", *(tech + i))) +- ethernet_enabled = TRUE; +- else if (g_str_equal ("wifi", *(tech + i))) +- wifi_enabled = TRUE; +- else if (g_str_equal ("cellular", *(tech + i))) +- cellular_enabled = TRUE; +- } ++ gboolean powered = FALSE; ++ GValue *propval = 0; ++ const char *techtype = 0; + +- if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_ETHERNET) == FALSE) +- gtk_tree_store_append(store, &iter, NULL); ++ propval = g_hash_table_lookup(hash, "Type"); ++ techtype = propval ? g_value_get_string(propval) : NULL; + +- gtk_tree_store_set(store, &iter, +- CONNMAN_COLUMN_PROXY, proxy, +- CONNMAN_COLUMN_ETHERNET_ENABLED, ethernet_enabled, +- CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_ETHERNET, +- -1); ++ propval = g_hash_table_lookup(hash, "Powered"); ++ powered = propval ? g_value_get_boolean(propval) : FALSE; + +- if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_WIFI) == FALSE) +- gtk_tree_store_append(store, &iter, NULL); ++ if (g_str_equal("ethernet", techtype)) ++ { ++ if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_ETHERNET) == FALSE) ++ gtk_tree_store_append(store, &iter, NULL); + +- gtk_tree_store_set(store, &iter, +- CONNMAN_COLUMN_PROXY, proxy, +- CONNMAN_COLUMN_WIFI_ENABLED, wifi_enabled, +- CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_WIFI, +- -1); ++ gtk_tree_store_set(store, &iter, ++ CONNMAN_COLUMN_PROXY, proxy, ++ CONNMAN_COLUMN_POWERED, powered, ++ CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_ETHERNET, ++ -1); ++ } ++ else if (g_str_equal ("wifi", techtype)) ++ { ++ if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_WIFI) == FALSE) ++ gtk_tree_store_append(store, &iter, NULL); + +- if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_CELLULAR) == FALSE) +- gtk_tree_store_append(store, &iter, NULL); ++ gtk_tree_store_set(store, &iter, ++ CONNMAN_COLUMN_PROXY, proxy, ++ CONNMAN_COLUMN_POWERED, powered, ++ CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_WIFI, ++ -1); ++ } ++ else if (g_str_equal ("3g", techtype)) ++ { ++ if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_CELLULAR) == FALSE) ++ gtk_tree_store_append(store, &iter, NULL); + +- gtk_tree_store_set(store, &iter, +- CONNMAN_COLUMN_PROXY, proxy, +- CONNMAN_COLUMN_CELLULAR_ENABLED, cellular_enabled, +- CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_CELLULAR, +- -1); ++ gtk_tree_store_set(store, &iter, ++ CONNMAN_COLUMN_PROXY, proxy, ++ CONNMAN_COLUMN_POWERED, powered, ++ CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_CELLULAR, ++ -1); ++ } + } + + static void offline_mode_changed(GtkTreeStore *store, GValue *value) +@@ -319,6 +286,39 @@ static void offline_mode_changed(GtkTreeStore *store, GValue *value) + -1); + } + ++static void tech_added(DBusGProxy *proxy, DBusGObjectPath *path, ++ GHashTable *hash, gpointer user_data) ++{ ++ GtkTreeStore *store = user_data; ++ GtkTreeIter iter; ++ DBG("store %p proxy %p hash %p", store, proxy, hash); ++ ++ if (!get_iter_from_path(store, &iter, path)) { ++ DBusGProxy *tech_proxy = dbus_g_proxy_new_for_name(connection, ++ CONNMAN_SERVICE, path, ++ CONNMAN_TECHNOLOGY_INTERFACE); ++ if (tech_proxy == NULL) ++ return; ++ ++ tech_properties(tech_proxy, hash, NULL, user_data); ++ ++ dbus_g_proxy_add_signal(tech_proxy, "PropertyChanged", ++ G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID); ++ dbus_g_proxy_connect_signal(tech_proxy, "PropertyChanged", ++ G_CALLBACK(tech_changed), store, NULL); ++ } ++} ++ ++static void tech_removed(DBusGProxy *proxy, DBusGObjectPath *path, ++ gpointer user_data) ++{ ++ GtkTreeStore *store = user_data; ++ GtkTreeIter iter; ++ ++ if (get_iter_from_path(store, &iter, path)) ++ gtk_tree_store_remove(store, &iter); ++} ++ + static void offline_mode_properties(GtkTreeStore *store, DBusGProxy *proxy, GValue *value) + { + GtkTreeIter iter; +@@ -401,59 +401,8 @@ static void service_changed(DBusGProxy *proxy, const char *property, + } + } + +-static void property_update(GtkTreeStore *store, const GValue *value, +- connman_get_properties_reply callback) +-{ +- GSList *list, *link, *old_list, *new_list = NULL; +- +- DBG("store %p", store); +- +- old_list = g_object_get_data(G_OBJECT(store), "Services"); +- +- dbus_g_type_collection_value_iterate(value, iterate_list, &new_list); +- +- g_object_set_data(G_OBJECT(store), "Services", new_list); +- +- for (list = new_list; list; list = list->next) { +- gchar *path = list->data; +- DBusGProxy *proxy; +- +- DBG("new path %s", path); +- +- link = g_slist_find_custom(old_list, path, compare_path); +- if (link != NULL) { +- g_free(link->data); +- old_list = g_slist_delete_link(old_list, link); +- } +- +- proxy = dbus_g_proxy_new_for_name(connection, +- CONNMAN_SERVICE, path, +- CONNMAN_SERVICE_INTERFACE); +- if (proxy == NULL) +- continue; +- +- DBG("getting %s properties", "Services"); +- +- connman_get_properties_async(proxy, callback, store); +- } +- +- for (list = old_list; list; list = list->next) { +- gchar *path = list->data; +- GtkTreeIter iter; +- +- DBG("old path %s", path); +- +- if (get_iter_from_path(store, &iter, path) == TRUE) +- gtk_tree_store_remove(store, &iter); +- +- g_free(path); +- } +- +- g_slist_free(old_list); +-} +- + static void service_properties(DBusGProxy *proxy, GHashTable *hash, +- GError *error, gpointer user_data) ++ gpointer user_data) + { + GtkTreeStore *store = user_data; + GValue *value; +@@ -468,7 +417,7 @@ static void service_properties(DBusGProxy *proxy, GHashTable *hash, + + DBG("store %p proxy %p hash %p", store, proxy, hash); + +- if (error != NULL || hash == NULL) ++ if (hash == NULL) + goto done; + + value = g_hash_table_lookup(hash, "Name"); +@@ -572,11 +521,7 @@ static void manager_changed(DBusGProxy *proxy, const char *property, + if (property == NULL || value == NULL) + return; + +- if (g_str_equal(property, "Services") == TRUE) +- property_update(store, value, service_properties); +- else if (g_str_equal(property, "EnabledTechnologies") == TRUE) +- enabled_technologies_changed(store, value); +- else if (g_str_equal(property, "OfflineMode") == TRUE) ++ if (g_str_equal(property, "OfflineMode") == TRUE) + offline_mode_changed(store, value); + } + +@@ -591,23 +536,89 @@ static void manager_properties(DBusGProxy *proxy, GHashTable *hash, + if (error != NULL || hash == NULL) + return; + +- value = g_hash_table_lookup(hash, "Services"); +- if (value != NULL) +- property_update(store, value, service_properties); +- +- value = g_hash_table_lookup(hash, "EnabledTechnologies"); +- if (value != NULL) +- enabled_technologies_properties(store, proxy, value); +- + value = g_hash_table_lookup(hash, "OfflineMode"); + if (value != NULL) + offline_mode_properties(store, proxy, value); + } + ++static void manager_services(DBusGProxy *proxy, GPtrArray *array, ++ GError *error, gpointer user_data) ++{ ++ int i; ++ ++ DBG("proxy %p array %p", proxy, array); ++ ++ if (error != NULL || array == NULL) ++ return; ++ ++ for (i = 0; i < array->len; i++) ++ { ++ GValueArray *item = g_ptr_array_index(array, i); ++ ++ DBusGObjectPath *path = (DBusGObjectPath *)g_value_get_boxed(g_value_array_get_nth(item, 0)); ++ DBusGProxy *service_proxy = dbus_g_proxy_new_for_name(connection, ++ CONNMAN_SERVICE, path, ++ CONNMAN_SERVICE_INTERFACE); ++ if (service_proxy == NULL) ++ continue; ++ ++ GHashTable *props = (GHashTable *)g_value_get_boxed(g_value_array_get_nth(item, 1)); ++ service_properties(service_proxy, props, user_data); ++ } ++} ++ ++static void manager_technologies(DBusGProxy *proxy, GPtrArray *array, ++ GError *error, gpointer user_data) ++{ ++ int i; ++ ++ DBG("proxy %p array %p", proxy, array); ++ ++ if (error != NULL || array == NULL) ++ return; ++ ++ for (i = 0; i < array->len; i++) ++ { ++ GValueArray *item = g_ptr_array_index(array, i); ++ ++ DBusGObjectPath *path = (DBusGObjectPath *)g_value_get_boxed(g_value_array_get_nth(item, 0)); ++ GHashTable *props = (GHashTable *)g_value_get_boxed(g_value_array_get_nth(item, 1)); ++ ++ tech_added(proxy, path, props, user_data); ++ } ++} ++ ++static void services_added(DBusGProxy *proxy, GPtrArray *array, ++ gpointer user_data) ++{ ++ DBG("proxy %p array %p", proxy, array); ++ ++ manager_services(proxy, array, NULL, user_data); ++} ++ ++static void services_removed(DBusGProxy *proxy, GPtrArray *array, ++ gpointer user_data) ++{ ++ GtkTreeStore *store = user_data; ++ GtkTreeIter iter; ++ int i; ++ ++ DBG("store %p proxy %p array %p", store, proxy, array); ++ ++ for (i = 0; i < array->len; i++) ++ { ++ DBusGObjectPath *path = (DBusGObjectPath *)g_ptr_array_index(array, i); ++ ++ if (get_iter_from_path(store, &iter, path)) ++ gtk_tree_store_remove(store, &iter); ++ } ++} ++ + DBusGProxy *connman_dbus_create_manager(DBusGConnection *conn, + GtkTreeStore *store) + { + DBusGProxy *proxy; ++ GType otype; + + connection = dbus_g_connection_ref(conn); + +@@ -620,11 +631,49 @@ DBusGProxy *connman_dbus_create_manager(DBusGConnection *conn, + G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID); + dbus_g_proxy_connect_signal(proxy, "PropertyChanged", + G_CALLBACK(manager_changed), store, NULL); +- ++ ++ otype = dbus_g_type_get_struct("GValueArray", DBUS_TYPE_G_OBJECT_PATH, DBUS_TYPE_G_DICTIONARY, G_TYPE_INVALID); ++ otype = dbus_g_type_get_collection("GPtrArray", otype); ++ dbus_g_object_register_marshaller(marshal_VOID__BOXED, G_TYPE_NONE, otype, G_TYPE_INVALID); ++ ++ dbus_g_proxy_add_signal(proxy, "ServicesAdded", ++ otype, G_TYPE_INVALID); ++ dbus_g_proxy_connect_signal(proxy, "ServicesAdded", ++ G_CALLBACK(services_added), store, NULL); ++ ++ otype = DBUS_TYPE_G_OBJECT_PATH_ARRAY; ++ dbus_g_object_register_marshaller(marshal_VOID__BOXED, G_TYPE_NONE, otype, G_TYPE_INVALID); ++ ++ dbus_g_proxy_add_signal(proxy, "ServicesRemoved", ++ otype, G_TYPE_INVALID); ++ dbus_g_proxy_connect_signal(proxy, "ServicesRemoved", ++ G_CALLBACK(services_removed), store, NULL); ++ ++ dbus_g_object_register_marshaller(marshal_VOID__STRING_BOXED, G_TYPE_NONE, DBUS_TYPE_G_OBJECT_PATH, DBUS_TYPE_G_DICTIONARY, G_TYPE_INVALID); ++ dbus_g_proxy_add_signal(proxy, "TechnologyAdded", ++ DBUS_TYPE_G_OBJECT_PATH, DBUS_TYPE_G_DICTIONARY, G_TYPE_INVALID); ++ dbus_g_proxy_connect_signal(proxy, "TechnologyAdded", ++ G_CALLBACK(tech_added), store, NULL); ++ ++ dbus_g_object_register_marshaller(marshal_VOID__STRING, G_TYPE_NONE, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); ++ dbus_g_proxy_add_signal(proxy, "TechnologyRemoved", ++ DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); ++ dbus_g_proxy_connect_signal(proxy, "TechnologyRemoved", ++ G_CALLBACK(tech_removed), store, NULL); ++ ++ + DBG("getting manager properties"); + + connman_get_properties_async(proxy, manager_properties, store); + ++ DBG("getting technologies"); ++ ++ connman_get_technologies_async(proxy, manager_technologies, store); ++ ++ DBG("getting services"); ++ ++ connman_get_services_async(proxy, manager_services, store); ++ + return proxy; + } + +diff --git a/common/connman-dbus.h b/common/connman-dbus.h +index cfca50e..c1b5091 100644 +--- a/common/connman-dbus.h ++++ b/common/connman-dbus.h +@@ -32,6 +32,7 @@ + + #define CONNMAN_PROFILE_INTERFACE CONNMAN_SERVICE ".Profile" + #define CONNMAN_SERVICE_INTERFACE CONNMAN_SERVICE ".Service" ++#define CONNMAN_TECHNOLOGY_INTERFACE CONNMAN_SERVICE ".Technology" + + DBusGProxy *connman_dbus_create_manager(DBusGConnection *connection, + GtkTreeStore *store); +diff --git a/common/connman-dbus.xml b/common/connman-dbus.xml +index e20cb3b..56b9582 100644 +--- a/common/connman-dbus.xml ++++ b/common/connman-dbus.xml +@@ -5,26 +5,23 @@ + <method name="GetProperties"> + <arg type="a{sv}" direction="out"/> + </method> ++ <method name="GetServices"> ++ <arg type="a(oa{sv})" direction="out"/> ++ </method> ++ <method name="GetTechnologies"> ++ <arg type="a(oa{sv})" direction="out"/> ++ </method> + <method name="SetProperty"> + <arg type="s"/> + <arg type="v"/> + </method> +- <method name="ProposeScan"> +- </method> + <method name="Connect"> + </method> + <method name="Disconnect"> + </method> + <method name="Remove"> + </method> +- <method name="RequestScan"> +- <arg type="s"/> +- </method> +- <method name="EnableTechnology"> +- <arg type="s"/> +- </method> +- <method name="DisableTechnology"> +- <arg type="s"/> ++ <method name="Scan"> + </method> + </interface> + </node> +diff --git a/common/marshal.list b/common/marshal.list +index e72aa4b..8b174d0 100644 +--- a/common/marshal.list ++++ b/common/marshal.list +@@ -1 +1,3 @@ + VOID:STRING,BOXED ++VOID:BOXED ++VOID:STRING +diff --git a/properties/cellular.c b/properties/cellular.c +index 7bbfb89..4d27e0e 100644 +--- a/properties/cellular.c ++++ b/properties/cellular.c +@@ -59,9 +59,9 @@ static void switch_callback(GtkWidget *editable, gpointer user_data) + const gchar *label = gtk_button_get_label(GTK_BUTTON(data->cellular_button)); + + if (g_str_equal(label, "Disable")) +- connman_client_disable_technology(data->client, data->device, "cellular"); ++ connman_client_set_powered(data->client, data->device, FALSE); + else +- connman_client_enable_technology(data->client, data->device, "cellular"); ++ connman_client_set_powered(data->client, data->device, TRUE); + } + + void add_cellular_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, +@@ -75,7 +75,7 @@ void add_cellular_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, + gboolean cellular_enabled; + + gtk_tree_model_get(data->model, iter, +- CONNMAN_COLUMN_CELLULAR_ENABLED, &cellular_enabled, ++ CONNMAN_COLUMN_POWERED, &cellular_enabled, + -1); + + vbox = gtk_vbox_new(TRUE, 0); +diff --git a/properties/ethernet.c b/properties/ethernet.c +index d7f91d9..31db7a0 100644 +--- a/properties/ethernet.c ++++ b/properties/ethernet.c +@@ -59,9 +59,9 @@ static void switch_callback(GtkWidget *editable, gpointer user_data) + struct config_data *data = user_data; + const gchar *label = gtk_button_get_label(GTK_BUTTON(data->ethernet_button)); + if (g_str_equal(label, "Disable")) +- connman_client_disable_technology(data->client, data->device, "ethernet"); +- else if (g_str_equal(label, "Enable")) +- connman_client_enable_technology(data->client, data->device, "ethernet"); ++ connman_client_set_powered(data->client, data->device, FALSE); ++ else ++ connman_client_set_powered(data->client, data->device, TRUE); + } + + void add_ethernet_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, +@@ -75,7 +75,7 @@ void add_ethernet_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, + gboolean ethernet_enabled; + + gtk_tree_model_get(data->model, iter, +- CONNMAN_COLUMN_ETHERNET_ENABLED, ðernet_enabled, ++ CONNMAN_COLUMN_POWERED, ðernet_enabled, + -1); + + vbox = gtk_vbox_new(TRUE, 0); +diff --git a/properties/main.c b/properties/main.c +index 088684a..e266f03 100644 +--- a/properties/main.c ++++ b/properties/main.c +@@ -40,18 +40,14 @@ static void status_update(GtkTreeModel *model, GtkTreePath *path, + struct config_data *data = user_data; + guint type; + const char *name = NULL, *_name = NULL, *state = NULL; +- gboolean ethernet_enabled; +- gboolean wifi_enabled; +- gboolean cellular_enabled; ++ gboolean powered; + gboolean offline_mode; + + gtk_tree_model_get(model, iter, + CONNMAN_COLUMN_STATE, &state, + CONNMAN_COLUMN_NAME, &name, + CONNMAN_COLUMN_TYPE, &type, +- CONNMAN_COLUMN_ETHERNET_ENABLED, ðernet_enabled, +- CONNMAN_COLUMN_WIFI_ENABLED, &wifi_enabled, +- CONNMAN_COLUMN_CELLULAR_ENABLED, &cellular_enabled, ++ CONNMAN_COLUMN_POWERED, &powered, + CONNMAN_COLUMN_OFFLINEMODE, &offline_mode, + -1); + +@@ -103,14 +99,14 @@ static void status_update(GtkTreeModel *model, GtkTreePath *path, + } else if (type == CONNMAN_TYPE_LABEL_ETHERNET) { + if (!data->ethernet_button) + return; +- if (ethernet_enabled) ++ if (powered) + gtk_button_set_label(GTK_BUTTON(data->ethernet_button), _("Disable")); + else + gtk_button_set_label(GTK_BUTTON(data->ethernet_button), _("Enable")); + } else if (type == CONNMAN_TYPE_LABEL_WIFI) { + if (!data->wifi_button) + return; +- if (wifi_enabled) { ++ if (powered) { + gtk_button_set_label(GTK_BUTTON(data->wifi_button), _("Disable")); + gtk_widget_set_sensitive(data->scan_button, 1); + } else { +@@ -120,7 +116,7 @@ static void status_update(GtkTreeModel *model, GtkTreePath *path, + } else if (type == CONNMAN_TYPE_LABEL_CELLULAR) { + if (!data->cellular_button) + return; +- if (cellular_enabled) ++ if (powered) + gtk_button_set_label(GTK_BUTTON(data->cellular_button), _("Disable")); + else + gtk_button_set_label(GTK_BUTTON(data->cellular_button), _("Enable")); +diff --git a/properties/wifi.c b/properties/wifi.c +index 85922a3..038d35a 100644 +--- a/properties/wifi.c ++++ b/properties/wifi.c +@@ -96,9 +96,9 @@ static void switch_callback(GtkWidget *editable, gpointer user_data) + const gchar *label = gtk_button_get_label(GTK_BUTTON(data->wifi_button)); + + if (g_str_equal(label, "Disable")) +- connman_client_disable_technology(data->client, data->device, "wifi"); ++ connman_client_set_powered(data->client, data->device, FALSE); + else +- connman_client_enable_technology(data->client, data->device, "wifi"); ++ connman_client_set_powered(data->client, data->device, TRUE); + } + + static void scan_reply_cb(DBusGProxy *proxy, GError *error, +@@ -115,7 +115,7 @@ static void scan_callback(GtkWidget *button, gpointer user_data) + { + struct config_data *data = user_data; + gtk_widget_set_sensitive(button, 0); +- connman_client_request_scan(data->client, "", scan_reply_cb, button); ++ connman_client_scan(data->client, data->device, scan_reply_cb, button); + } + + void add_wifi_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, +@@ -129,7 +129,7 @@ void add_wifi_switch_button(GtkWidget *mainbox, GtkTreeIter *iter, + gboolean wifi_enabled; + + gtk_tree_model_get(data->model, iter, +- CONNMAN_COLUMN_WIFI_ENABLED, &wifi_enabled, ++ CONNMAN_COLUMN_POWERED, &wifi_enabled, + -1); + + vbox = gtk_vbox_new(TRUE, 0); +-- +1.7.5.4 + diff --git a/meta/recipes-connectivity/connman/connman-gnome/0003-Fix-setting-IPv4-configuration.patch b/meta/recipes-connectivity/connman/connman-gnome/0003-Fix-setting-IPv4-configuration.patch new file mode 100644 index 000000000..a25ffd9cf --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome/0003-Fix-setting-IPv4-configuration.patch @@ -0,0 +1,85 @@ +From 8594fb5e2fc347984457e2e46b175eb3cf57951f Mon Sep 17 00:00:00 2001 +Message-Id: <8594fb5e2fc347984457e2e46b175eb3cf57951f.1334369310.git.paul.eggleton@linux.intel.com> +In-Reply-To: <cover.1334369310.git.paul.eggleton@linux.intel.com> +References: <cover.1334369310.git.paul.eggleton@linux.intel.com> +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Sat, 14 Apr 2012 01:11:53 +0100 +Subject: [PATCH 3/6] Fix setting IPv4 configuration + +Values in the hashtable for IPv4.Configuration need to be variants, not +strings, and don't pass address entries if the method is dhcp. + +Upstream-Status: Submitted + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +--- + common/connman-client.c | 32 +++++++++++++++++++++++++------- + 1 files changed, 25 insertions(+), 7 deletions(-) + +diff --git a/common/connman-client.c b/common/connman-client.c +index 9d755c4..e4441ad 100644 +--- a/common/connman-client.c ++++ b/common/connman-client.c +@@ -39,6 +39,11 @@ + #define CONNMAN_CLIENT_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ + CONNMAN_TYPE_CLIENT, ConnmanClientPrivate)) + ++#ifndef DBUS_TYPE_G_DICTIONARY ++#define DBUS_TYPE_G_DICTIONARY \ ++ (dbus_g_type_get_map("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)) ++#endif ++ + typedef struct _ConnmanClientPrivate ConnmanClientPrivate; + + struct _ConnmanClientPrivate { +@@ -248,6 +253,16 @@ GtkTreeModel *connman_client_get_device_model(ConnmanClient *client) + return model; + } + ++void hash_table_value_string_insert( GHashTable *hash, gpointer key, const char *str ) ++{ ++ GValue *itemvalue; ++ ++ itemvalue = g_slice_new0(GValue); ++ g_value_init(itemvalue, G_TYPE_STRING); ++ g_value_set_string(itemvalue, str); ++ g_hash_table_insert(hash, key, itemvalue); ++} ++ + gboolean connman_client_set_ipv4(ConnmanClient *client, const gchar *device, + struct ipv4_config *ipv4_config) + { +@@ -255,12 +270,7 @@ gboolean connman_client_set_ipv4(ConnmanClient *client, const gchar *device, + DBusGProxy *proxy; + GValue value = { 0 }; + gboolean ret; +- GHashTable *ipv4 = g_hash_table_new(g_str_hash, g_str_equal); +- +- g_hash_table_insert(ipv4, "Method", (gpointer)ipv4_config->method); +- g_hash_table_insert(ipv4, "Address", (gpointer)ipv4_config->address); +- g_hash_table_insert(ipv4, "Netmask", (gpointer)ipv4_config->netmask); +- g_hash_table_insert(ipv4, "Gateway", (gpointer)ipv4_config->gateway); ++ GHashTable *ipv4 = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free); + + DBG("client %p", client); + +@@ -270,7 +280,15 @@ gboolean connman_client_set_ipv4(ConnmanClient *client, const gchar *device, + proxy = connman_dbus_get_proxy(priv->store, device); + if (proxy == NULL) + return FALSE; +- g_value_init(&value, DBUS_TYPE_G_STRING_STRING_HASHTABLE); ++ ++ hash_table_value_string_insert(ipv4, "Method", ipv4_config->method); ++ if( g_strcmp0(ipv4_config->method, "dhcp" ) != 0 ) { ++ hash_table_value_string_insert(ipv4, "Address", ipv4_config->address); ++ hash_table_value_string_insert(ipv4, "Netmask", ipv4_config->netmask); ++ hash_table_value_string_insert(ipv4, "Gateway", ipv4_config->gateway); ++ } ++ ++ g_value_init(&value, DBUS_TYPE_G_DICTIONARY); + g_value_set_boxed(&value, ipv4); + ret = connman_set_property(proxy, "IPv4.Configuration", &value, NULL); + +-- +1.7.5.4 + diff --git a/meta/recipes-connectivity/connman/connman-gnome/0004-Handle-WiFi-authentication-using-an-agent.patch b/meta/recipes-connectivity/connman/connman-gnome/0004-Handle-WiFi-authentication-using-an-agent.patch new file mode 100644 index 000000000..98230525b --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome/0004-Handle-WiFi-authentication-using-an-agent.patch @@ -0,0 +1,923 @@ +From c742b40860851f1659e801d0a652f854f6783bd1 Mon Sep 17 00:00:00 2001 +Message-Id: <c742b40860851f1659e801d0a652f854f6783bd1.1334369310.git.paul.eggleton@linux.intel.com> +In-Reply-To: <cover.1334369310.git.paul.eggleton@linux.intel.com> +References: <cover.1334369310.git.paul.eggleton@linux.intel.com> +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Sat, 14 Apr 2012 02:32:43 +0100 +Subject: [PATCH 4/6] Handle WiFi authentication using an agent + +Register an agent within the applet which shows an appropriate dialog +when credentials are requested upon connecting to a secured wireless +network. + +Thanks to Julien Massot for providing the underlying agent library code. + +Upstream-Status: Submitted + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +--- + applet/Makefile.am | 3 +- + applet/agent.c | 209 +++++++++++++++++++++++ + applet/agent.h | 29 +++ + applet/main.c | 3 + + common/Makefile.am | 13 +- + common/connman-agent.c | 426 ++++++++++++++++++++++++++++++++++++++++++++++ + common/connman-agent.h | 77 +++++++++ + common/connman-agent.xml | 26 +++ + common/marshal.list | 2 + + 9 files changed, 783 insertions(+), 5 deletions(-) + create mode 100644 applet/agent.c + create mode 100644 applet/agent.h + create mode 100644 common/connman-agent.c + create mode 100644 common/connman-agent.h + create mode 100644 common/connman-agent.xml + +diff --git a/applet/Makefile.am b/applet/Makefile.am +index fe582ef..2e7c157 100644 +--- a/applet/Makefile.am ++++ b/applet/Makefile.am +@@ -2,7 +2,8 @@ + bin_PROGRAMS = connman-applet + + connman_applet_SOURCES = main.c \ +- properties.h properties.c status.h status.c ++ properties.h properties.c status.h \ ++ status.c agent.h agent.c + + connman_applet_LDADD = $(top_builddir)/common/libcommon.a \ + @GTK_LIBS@ @DBUS_LIBS@ +diff --git a/applet/agent.c b/applet/agent.c +new file mode 100644 +index 0000000..b12d337 +--- /dev/null ++++ b/applet/agent.c +@@ -0,0 +1,209 @@ ++/* ++ * ++ * Connection Manager ++ * ++ * Agent implementation based on code from bluez-gnome ++ * ++ * Copyright (C) 2005-2008 Marcel Holtmann <marcel@holtmann.org> ++ * Copyright (C) 2006-2007 Bastien Nocera <hadess@hadess.net> ++ * Copyright (C) 2012 Intel Corporation ++ * ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++ ++#include <stdlib.h> ++ ++#include <glib/gi18n.h> ++#include <gtk/gtk.h> ++ ++#include <dbus/dbus-glib.h> ++ ++#include <connman-agent.h> ++ ++#include "agent.h" ++ ++struct input_data { ++ gboolean numeric; ++ gpointer request_data; ++ GtkWidget *dialog; ++ GHashTable *entries; ++}; ++ ++static struct input_data *input_data_inst = NULL; ++ ++static void input_free(struct input_data *input) ++{ ++ gtk_widget_destroy(input->dialog); ++ ++ g_hash_table_destroy(input->entries); ++ ++ if( input_data_inst == input ) ++ input_data_inst = NULL; ++ ++ g_free(input); ++} ++ ++static void request_input_callback(GtkWidget *dialog, ++ gint response, gpointer user_data) ++{ ++ GHashTableIter iter; ++ gpointer key, value; ++ GValue *retvalue = NULL; ++ const gchar *text; ++ struct input_data *input = user_data; ++ ++ if (response == GTK_RESPONSE_OK) { ++ GHashTable *reply = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); ++ g_hash_table_iter_init (&iter, input->entries); ++ while (g_hash_table_iter_next (&iter, &key, &value)) { ++ text = gtk_entry_get_text((GtkEntry *)value); ++ if(strlen(text)) { ++ retvalue = g_slice_new0(GValue); ++ g_value_init(retvalue, G_TYPE_STRING); ++ g_value_set_string(retvalue, text); ++ g_hash_table_insert(reply, g_strdup(key), retvalue); ++ } ++ } ++ ++ connman_agent_request_input_set_reply(input->request_data, reply); ++ } else { ++ connman_agent_request_input_abort(input->request_data); ++ } ++ ++ input_free(input); ++} ++ ++static void show_dialog(gpointer data, gpointer user_data) ++{ ++ struct input_data *input = data; ++ ++ gtk_widget_show_all(input->dialog); ++ ++ gtk_window_present(GTK_WINDOW(input->dialog)); ++} ++ ++static void request_input_dialog(GHashTable *request, ++ gpointer request_data) ++{ ++ GtkWidget *dialog; ++ GtkWidget *label; ++ GtkWidget *table; ++ GtkWidget *entry; ++ struct input_data *input; ++ GHashTableIter iter; ++ gpointer key, value; ++ int elems, i; ++ ++ input = g_try_malloc0(sizeof(*input)); ++ if (!input) ++ return; ++ ++ input->request_data = request_data; ++ ++ input->entries = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); ++ ++ dialog = gtk_dialog_new(); ++ gtk_window_set_title(GTK_WINDOW(dialog), _("Connection Manager")); ++ gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); ++ gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); ++ gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE); ++ gtk_window_set_urgency_hint(GTK_WINDOW(dialog), TRUE); ++ gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); ++ input->dialog = dialog; ++ ++ gtk_dialog_add_button(GTK_DIALOG(dialog), ++ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); ++ gtk_dialog_add_button(GTK_DIALOG(dialog), ++ GTK_STOCK_OK, GTK_RESPONSE_OK); ++ ++ elems = g_hash_table_size(request); ++ table = gtk_table_new(elems+1, 2, FALSE); ++ gtk_table_set_row_spacings(GTK_TABLE(table), 4); ++ gtk_table_set_col_spacings(GTK_TABLE(table), 20); ++ gtk_container_set_border_width(GTK_CONTAINER(table), 12); ++ gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), table); ++ ++ label = gtk_label_new(_("Please provide some network information:")); ++ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); ++ gtk_table_attach(GTK_TABLE(table), label, 0, 2, 0, 1, ++ GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0); ++ ++ g_hash_table_iter_init (&iter, request); ++ i=1; ++ while (g_hash_table_iter_next (&iter, &key, &value)) { ++ label = gtk_label_new((const char *)key); ++ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); ++ gtk_table_attach(GTK_TABLE(table), label, 0, 1, i, i+1, ++ GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0); ++ ++ entry = gtk_entry_new(); ++ gtk_entry_set_max_length(GTK_ENTRY(entry), 64); ++ gtk_entry_set_width_chars(GTK_ENTRY(entry), 16); ++ gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); ++ gtk_table_attach(GTK_TABLE(table), entry, 1, 2, i, i+1, ++ GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0); ++ g_hash_table_insert(input->entries, g_strdup(key), entry); ++ ++ i++; ++ } ++ ++ input_data_inst = input; ++ ++ g_signal_connect(G_OBJECT(dialog), "response", ++ G_CALLBACK(request_input_callback), input); ++ ++ show_dialog(input, NULL); ++} ++ ++static void request_input(const char *service_id, ++ GHashTable *request, gpointer request_data, gpointer user_data) ++{ ++ request_input_dialog(request, request_data); ++} ++ ++static gboolean cancel_request(DBusGMethodInvocation *context, ++ gpointer user_data) ++{ ++ if( input_data_inst ) { ++ connman_agent_request_input_abort(input_data_inst->request_data); ++ ++ input_free(input_data_inst); ++ } ++ ++ return TRUE; ++} ++ ++int setup_agents(void) ++{ ++ ConnmanAgent *agent = connman_agent_new(); ++ connman_agent_setup(agent, "/org/gnome/connman/applet"); ++ ++ connman_agent_set_request_input_func(agent, request_input, agent); ++ connman_agent_set_cancel_func(agent, cancel_request, agent); ++ ++ connman_agent_register(agent); ++ ++ return 0; ++} ++ ++void cleanup_agents(void) ++{ ++} +diff --git a/applet/agent.h b/applet/agent.h +new file mode 100644 +index 0000000..d85676b +--- /dev/null ++++ b/applet/agent.h +@@ -0,0 +1,29 @@ ++/* ++ * ++ * Connection Manager ++ * ++ * Agent implementation based on code from bluez-gnome ++ * ++ * Copyright (C) 2005-2008 Marcel Holtmann <marcel@holtmann.org> ++ * Copyright (C) 2006-2007 Bastien Nocera <hadess@hadess.net> ++ * Copyright (C) 2012 Intel Corporation ++ * ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++int setup_agents(void); ++void cleanup_agents(void); +diff --git a/applet/main.c b/applet/main.c +index 68a77b1..d06ce60 100644 +--- a/applet/main.c ++++ b/applet/main.c +@@ -32,6 +32,7 @@ + + #include "properties.h" + #include "status.h" ++#include "agent.h" + + static gboolean global_ready = FALSE; + static gint global_strength = -1; +@@ -132,6 +133,7 @@ static void manager_init(DBusGConnection *connection) + "/", "net.connman.Manager"); + + properties_create(manager, manager_property_changed, NULL); ++ setup_agents(); + } + + static void manager_cleanup(void) +@@ -148,6 +150,7 @@ static void name_owner_changed(DBusGProxy *proxy, const char *name, + if (*new != '\0') { + status_offline(); + properties_enable(manager); ++ setup_agents(); + } else { + properties_disable(manager); + status_unavailable(); +diff --git a/common/Makefile.am b/common/Makefile.am +index ef1267a..5bfff19 100644 +--- a/common/Makefile.am ++++ b/common/Makefile.am +@@ -3,19 +3,21 @@ noinst_LIBRARIES = libcommon.a + + libcommon_a_SOURCES = connman-dbus.c connman-dbus.h connman-dbus-glue.h \ + connman-client.h connman-client.c \ +- instance.h instance.c ++ instance.h instance.c \ ++ connman-agent.h connman-agent.c + + BUILT_SOURCES = marshal.h marshal.c \ + connman-dbus-glue.h \ +- instance-glue.h ++ instance-glue.h \ ++ connman-agent-glue.h + +-nodist_libcommon_a_SOURCES = connman-dbus-glue.h instance-glue.h ++nodist_libcommon_a_SOURCES = connman-dbus-glue.h instance-glue.h connman-agent-glue.h + + CLEANFILES = $(BUILT_SOURCES) + + AM_CFLAGS = @DBUS_CFLAGS@ @GTK_CFLAGS@ + +-EXTRA_DIST = marshal.list instance.xml connman-dbus.xml ++EXTRA_DIST = marshal.list instance.xml connman-dbus.xml connman-agent.xml + + MAINTAINERCLEANFILES = Makefile.in + +@@ -30,3 +32,6 @@ instance-glue.h: instance.xml + + connman-dbus-glue.h: connman-dbus.xml + $(DBUS_BINDING_TOOL) --prefix=connman --mode=glib-client --output=$@ $< ++ ++connman-agent-glue.h: connman-agent.xml ++ $(DBUS_BINDING_TOOL) --prefix=connman_agent --mode=glib-server --output=$@ $< +diff --git a/common/connman-agent.c b/common/connman-agent.c +new file mode 100644 +index 0000000..769bf27 +--- /dev/null ++++ b/common/connman-agent.c +@@ -0,0 +1,426 @@ ++/* ++ * Connection Manager Agent implementation ++ * ++ * Author(s): ++ * - Julien MASSOT <jmassot@aldebaran-robotics.com> ++ * - Paul Eggleton <paul.eggleton@linux.intel.com> ++ * ++ * Copyright (C) 2012 Aldebaran Robotics ++ * Copyright (C) 2012 Intel Corporation ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License version 2.1 as published by the Free Software Foundation. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#include <dbus/dbus-glib.h> ++#include <dbus/dbus-glib-lowlevel.h> ++#include <stdio.h> ++ ++#include "connman-agent.h" ++#include "connman-dbus.h" ++ ++#define CONNMAN_AGENT_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ ++ CONNMAN_TYPE_AGENT, ConnmanAgentPrivate)) ++ ++typedef enum { ++ AGENT_ERROR_REJECT, ++ AGENT_ERROR_RETRY ++} AgentError; ++ ++#define AGENT_ERROR (agent_error_quark()) ++ ++#define AGENT_ERROR_TYPE (agent_error_get_type()) ++ ++static GQuark agent_error_quark(void) ++{ ++ static GQuark quark = 0; ++ if (!quark) ++ quark = g_quark_from_static_string("Agent"); ++ ++ return quark; ++} ++ ++#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC } ++ ++static GType agent_error_get_type(void) ++{ ++ static GType etype = 0; ++ if (etype == 0) { ++ static const GEnumValue values[] = { ++ ENUM_ENTRY(AGENT_ERROR_REJECT, "Rejected"), ++ ENUM_ENTRY(AGENT_ERROR_RETRY, "Retry"), ++ { 0, 0, 0 } ++ }; ++ ++ etype = g_enum_register_static("Agent", values); ++ } ++ ++ return etype; ++} ++ ++typedef struct _ConnmanAgentPrivate ConnmanAgentPrivate; ++ ++typedef struct _PendingRequest PendingRequest; ++ ++struct _PendingRequest { ++ DBusGMethodInvocation *context; ++ ConnmanAgent *agent; ++}; ++ ++struct _ConnmanAgentPrivate { ++ gchar *busname; ++ gchar *path; ++ DBusGConnection *connection; ++ DBusGProxy *connman_proxy; ++ ++ ConnmanAgentRequestInputFunc input_func; ++ gpointer input_data; ++ ++ ConnmanAgentCancelFunc cancel_func; ++ gpointer cancel_data; ++ ++ ConnmanAgentReleaseFunc release_func; ++ gpointer release_data; ++ ++ ConnmanAgentDebugFunc debug_func; ++ gpointer debug_data; ++ ++}; ++ ++G_DEFINE_TYPE(ConnmanAgent, connman_agent, G_TYPE_OBJECT) ++ ++static inline void debug(ConnmanAgent *agent, const char *format, ...) ++{ ++ char str[256]; ++ va_list ap; ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ ++ if (priv->debug_func == NULL) ++ return; ++ ++ va_start(ap, format); ++ ++ if (vsnprintf(str, sizeof(str), format, ap) > 0) ++ priv->debug_func(str, priv->debug_data); ++ ++ va_end(ap); ++} ++ ++gboolean connman_agent_request_input_set_reply(gpointer request_data, GHashTable *reply) ++{ ++ PendingRequest *pendingrequest = request_data; ++ ++ if (request_data == NULL) ++ return FALSE; ++ ++ dbus_g_method_return(pendingrequest->context, reply); ++ ++ g_free(pendingrequest); ++ ++ return FALSE; ++} ++ ++gboolean connman_agent_request_input_abort(gpointer request_data) ++{ ++ PendingRequest *pendingrequest = request_data; ++ GError *result; ++ if (request_data == NULL) ++ return FALSE; ++ ++ result = g_error_new(AGENT_ERROR, AGENT_ERROR_REJECT, ++ "Input request rejected"); ++ dbus_g_method_return_error(pendingrequest->context, result); ++ g_clear_error(&result); ++ g_free(pendingrequest); ++ ++ return FALSE; ++} ++ ++static gboolean connman_agent_request_input_cb(const GHashTable *reply, gpointer user_data) ++{ ++ ++ PendingRequest *pendingrequest = user_data; ++ ++ dbus_g_method_return(pendingrequest->context, reply); ++ ++ g_free(pendingrequest); ++ return FALSE; ++} ++ ++gboolean connman_agent_report_error(ConnmanAgent *agent, ++ const char *path, const char *error, ++ DBusGMethodInvocation *context) ++{ ++ GError *result; ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ ++ debug(agent, "connection %s, reports an error: %s", path, error); ++ result = g_error_new(AGENT_ERROR, AGENT_ERROR_RETRY, ++ "Retry"); ++ dbus_g_method_return_error(context, result); ++ g_clear_error(&result); ++ ++ return FALSE; ++} ++ ++gboolean connman_agent_request_input(ConnmanAgent *agent, ++ const char *path, GHashTable *fields, ++ DBusGMethodInvocation *context) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ const char *sender = dbus_g_method_get_sender(context); ++ char *name = NULL, *type = NULL; ++ char **id = NULL; ++ PendingRequest *pendingrequest = NULL; ++ ++ debug(agent, "request %s, sender %s", path, sender); ++ ++ if (fields == NULL) ++ return FALSE; ++ ++ if (priv->input_func != NULL) { ++ id = g_strsplit(path, "/net/connman/service/", 2); ++ if (g_strv_length(id) == 2) { ++ pendingrequest = g_try_new0(PendingRequest, 1); ++ pendingrequest->context = context; ++ pendingrequest->agent = agent; ++ priv->input_func(id[1], fields, pendingrequest, priv->input_data); ++ } ++ g_strfreev(id); ++ } ++ ++ return FALSE; ++} ++ ++gboolean connman_agent_cancel(ConnmanAgent *agent, ++ DBusGMethodInvocation *context) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ const char *sender = dbus_g_method_get_sender(context); ++ gboolean result = FALSE; ++ ++ debug(agent, "Request Canceled %s", sender); ++ ++ if (g_str_equal(sender, priv->busname) == FALSE) ++ return FALSE; ++ ++ if (priv->cancel_func) ++ result = priv->cancel_func(context, priv->cancel_data); ++ ++ return result; ++} ++ ++gboolean connman_agent_release(ConnmanAgent *agent, ++ DBusGMethodInvocation *context) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ const char *sender = dbus_g_method_get_sender(context); ++ ++ debug(agent, "agent %p sender %s", agent, sender); ++ ++ if (g_str_equal(sender, priv->busname) == FALSE) ++ return FALSE; ++ ++ dbus_g_method_return(context); ++ ++ return TRUE; ++} ++ ++#include "connman-agent-glue.h" ++ ++static void connman_agent_init(ConnmanAgent *agent) ++{ ++ debug(agent, "agent %p", agent); ++} ++ ++static void connman_agent_finalize(GObject *agent) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ ++ if (priv->connman_proxy != NULL) { ++ g_object_unref(priv->connman_proxy); ++ } ++ ++ g_free(priv->path); ++ g_free(priv->busname); ++ dbus_g_connection_unref(priv->connection); ++ ++ G_OBJECT_CLASS(connman_agent_parent_class)->finalize(agent); ++} ++ ++static void connman_agent_class_init(ConnmanAgentClass *klass) ++{ ++ GObjectClass *object_class = (GObjectClass *) klass; ++ ++ g_type_class_add_private(klass, sizeof(ConnmanAgentPrivate)); ++ ++ object_class->finalize = connman_agent_finalize; ++ ++ dbus_g_object_type_install_info(CONNMAN_TYPE_AGENT, ++ &dbus_glib_connman_agent_object_info); ++} ++ ++ConnmanAgent *connman_agent_new(void) ++{ ++ ConnmanAgent *agent; ++ g_type_init(); ++ ++ agent = CONNMAN_AGENT(g_object_new(CONNMAN_TYPE_AGENT, NULL)); ++ ++ return agent; ++} ++ ++gboolean connman_agent_setup(ConnmanAgent *agent, const char *path) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ DBusGProxy *proxy; ++ GObject *object; ++ GError *error = NULL; ++ ++ debug(agent, "agent_setup %p", agent); ++ ++ if (priv->path != NULL) ++ return FALSE; ++ ++ priv->path = g_strdup(path); ++ priv->connection = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error); ++ if (error != NULL) { ++ g_printerr("Connecting to system bus failed: %s\n", ++ error->message); ++ g_error_free(error); ++ return FALSE; ++ } ++ ++ proxy = dbus_g_proxy_new_for_name_owner(priv->connection, CONNMAN_SERVICE, ++ CONNMAN_MANAGER_PATH, CONNMAN_MANAGER_INTERFACE, NULL); ++ ++ g_free(priv->busname); ++ ++ if (proxy != NULL) { ++ priv->busname = g_strdup(dbus_g_proxy_get_bus_name(proxy)); ++ g_object_unref(proxy); ++ } else ++ priv->busname = NULL; ++ ++ object = dbus_g_connection_lookup_g_object(priv->connection, priv->path); ++ if (object != NULL) ++ g_object_unref(object); ++ ++ return TRUE; ++} ++ ++ ++gboolean connman_agent_register(ConnmanAgent *agent) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ DBusGProxy *proxy; ++ GObject *object; ++ GError *error = NULL; ++ gchar *path; ++ ++ debug(agent, "register agent %p", agent); ++ ++ if (priv->connman_proxy != NULL) ++ return FALSE; ++ ++ priv->connman_proxy = dbus_g_proxy_new_for_name_owner(priv->connection, CONNMAN_SERVICE, ++ CONNMAN_MANAGER_PATH, CONNMAN_MANAGER_INTERFACE, NULL); ++ ++ g_free(priv->busname); ++ ++ priv->busname = g_strdup(dbus_g_proxy_get_bus_name(priv->connman_proxy)); ++ ++ object = dbus_g_connection_lookup_g_object(priv->connection, priv->path); ++ if (object != NULL) ++ g_object_unref(object); ++ ++ dbus_g_connection_register_g_object(priv->connection, ++ priv->path, G_OBJECT(agent)); ++ ++ dbus_g_proxy_call(priv->connman_proxy, "RegisterAgent", &error, ++ DBUS_TYPE_G_OBJECT_PATH, priv->path, ++ G_TYPE_INVALID, G_TYPE_INVALID); ++ ++ if (error != NULL) { ++ g_printerr("Agent registration failed: %s\n", ++ error->message); ++ g_error_free(error); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++gboolean connman_agent_unregister(ConnmanAgent *agent) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ GError *error = NULL; ++ ++ debug(agent, "unregister agent %p", agent); ++ ++ if (priv->connman_proxy == NULL) ++ return FALSE; ++ ++ dbus_g_proxy_call(priv->connman_proxy, "UnregisterAgent", &error, ++ DBUS_TYPE_G_OBJECT_PATH, priv->path, ++ G_TYPE_INVALID, G_TYPE_INVALID); ++ ++ if (error != NULL) { ++ g_printerr("Agent unregistration failed: %s\n", ++ error->message); ++ g_error_free(error); ++ } ++ ++ g_object_unref(priv->connman_proxy); ++ priv->connman_proxy = NULL; ++ ++ g_free(priv->path); ++ priv->path = NULL; ++ ++ return TRUE; ++} ++ ++void connman_agent_set_request_input_func(ConnmanAgent *agent, ++ ConnmanAgentRequestInputFunc func, gpointer data) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ ++ priv->input_func = func; ++ priv->input_data = data; ++} ++ ++void connman_agent_set_cancel_func(ConnmanAgent *agent, ++ ConnmanAgentCancelFunc func, gpointer data) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ ++ priv->cancel_func = func; ++ priv->cancel_data = data; ++} ++ ++void connman_agent_set_release_func(ConnmanAgent *agent, ++ ConnmanAgentReleaseFunc func, gpointer data) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ ++ priv->release_func = func; ++ priv->release_data = data; ++} ++ ++void connman_agent_set_debug_func(ConnmanAgent *agent, ConnmanAgentDebugFunc func, gpointer data) ++{ ++ ConnmanAgentPrivate *priv = CONNMAN_AGENT_GET_PRIVATE(agent); ++ ++ priv->debug_func = func; ++ priv->debug_data = data; ++} +diff --git a/common/connman-agent.h b/common/connman-agent.h +new file mode 100644 +index 0000000..0a1aa92 +--- /dev/null ++++ b/common/connman-agent.h +@@ -0,0 +1,77 @@ ++/* ++ * Connection Manager Agent implementation ++ * ++ * Author(s): ++ * - Julien MASSOT <jmassot@aldebaran-robotics.com> ++ * - Paul Eggleton <paul.eggleton@linux.intel.com> ++ * ++ * Copyright (C) 2012 Aldebaran Robotics ++ * Copyright (C) 2012 Intel Corporation ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License version 2.1 as published by the Free Software Foundation. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#ifndef CONNMAN_AGENT_H_ ++# define CONNMAN_AGENT_H_ ++ ++#include <glib-object.h> ++#include <dbus/dbus-glib.h> ++ ++G_BEGIN_DECLS ++ ++#define CONNMAN_TYPE_AGENT (connman_agent_get_type()) ++#define CONNMAN_AGENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ ++ CONNMAN_TYPE_AGENT, ConnmanAgent)) ++#define CONNMAN_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \ ++ CONNMAN_TYPE_AGENT, ConnmanAgentClass)) ++#define CONNMAN_IS_AGENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ ++ CONNMAN_TYPE_AGENT)) ++#define CONNMAN_IS_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), \ ++ CONNMAN_TYPE_AGENT)) ++#define CONNMAN_GET_AGENT_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \ ++ CONNMAN_TYPE_AGENT, ConnmanAgentClass)) ++ ++typedef struct _ConnmanAgent ConnmanAgent; ++typedef struct _ConnmanAgentClass ConnmanAgentClass; ++ ++struct _ConnmanAgent { ++ GObject parent; ++}; ++ ++struct _ConnmanAgentClass { ++ GObjectClass parent_class; ++}; ++ ++GType connman_agent_get_type(void); ++ ++ConnmanAgent *connman_agent_new(void); ++ ++gboolean connman_agent_setup(ConnmanAgent *agent, const char *path); ++ ++gboolean connman_agent_register(ConnmanAgent *agent); ++gboolean connman_agent_unregister(ConnmanAgent *agent); ++gboolean connman_agent_request_input_set_reply(gpointer request_data, GHashTable *reply); ++gboolean connman_agent_request_input_abort(gpointer request_data); ++ ++typedef void (*ConnmanAgentRequestInputFunc) (const char *service_id, GHashTable *request, gpointer request_data, gpointer user_data); ++typedef gboolean (*ConnmanAgentCancelFunc) (DBusGMethodInvocation *context, gpointer data); ++typedef gboolean (*ConnmanAgentReleaseFunc) (DBusGMethodInvocation *context, gpointer data); ++typedef void (*ConnmanAgentDebugFunc) (const char *str, gpointer user_data); ++ ++void connman_agent_set_request_input_func(ConnmanAgent *agent, ConnmanAgentRequestInputFunc func, gpointer data); ++void connman_agent_set_cancel_func(ConnmanAgent *agent, ConnmanAgentCancelFunc func, gpointer data); ++void connman_agent_set_debug_func(ConnmanAgent *agent, ConnmanAgentDebugFunc func, gpointer data); ++ ++G_END_DECLS ++#endif /* !CONNMAN_AGENT_H_ */ +diff --git a/common/connman-agent.xml b/common/connman-agent.xml +new file mode 100644 +index 0000000..ed9ee8b +--- /dev/null ++++ b/common/connman-agent.xml +@@ -0,0 +1,26 @@ ++<?xml version="1.0" encoding="UTF-8" ?> ++ ++<node name="/net/connman/Agent"> ++ <interface name="net.connman.Agent"> ++ <method name="ReportError"> ++ <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> ++ <arg type="o" direction="in"/> ++ <arg type="s" direction="in"/> ++ </method> ++ ++ <method name="RequestInput"> ++ <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> ++ <arg type="o" direction="in"/> ++ <arg type="a{sv}" direction="in"/> ++ <arg type="a{sv}" direction="out"/> ++ </method> ++ ++ <method name="Cancel"> ++ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> ++ </method> ++ ++ <method name="Release"> ++ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> ++ </method> ++ </interface> ++</node> +diff --git a/common/marshal.list b/common/marshal.list +index 8b174d0..3c6317b 100644 +--- a/common/marshal.list ++++ b/common/marshal.list +@@ -1,3 +1,5 @@ + VOID:STRING,BOXED ++VOID:OBJECT,BOXED ++VOID:OBJECT + VOID:BOXED + VOID:STRING +-- +1.7.5.4 + diff --git a/meta/recipes-connectivity/connman/connman-gnome/0005-Remove-all-handling-of-Passphrase-property.patch b/meta/recipes-connectivity/connman/connman-gnome/0005-Remove-all-handling-of-Passphrase-property.patch new file mode 100644 index 000000000..bcc435f08 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome/0005-Remove-all-handling-of-Passphrase-property.patch @@ -0,0 +1,249 @@ +From f24d6e26f81e205769cecf0dae7e6cf90b23f9e9 Mon Sep 17 00:00:00 2001 +Message-Id: <f24d6e26f81e205769cecf0dae7e6cf90b23f9e9.1334369310.git.paul.eggleton@linux.intel.com> +In-Reply-To: <cover.1334369310.git.paul.eggleton@linux.intel.com> +References: <cover.1334369310.git.paul.eggleton@linux.intel.com> +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Sat, 14 Apr 2012 02:37:55 +0100 +Subject: [PATCH 5/6] Remove all handling of Passphrase property + +Services no longer have a Passphrase property in ConnMan 0.79 - +credentials are handled entirely through the agent. + +Upstream-Status: Submitted + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +--- + common/connman-client.c | 51 ----------------------------------------------- + common/connman-client.h | 4 --- + common/connman-dbus.c | 11 +--------- + properties/advanced.h | 1 - + properties/wifi.c | 48 -------------------------------------------- + 5 files changed, 1 insertions(+), 114 deletions(-) + +diff --git a/common/connman-client.c b/common/connman-client.c +index e4441ad..dec9867 100644 +--- a/common/connman-client.c ++++ b/common/connman-client.c +@@ -112,7 +112,6 @@ static void connman_client_init(ConnmanClient *client) + G_TYPE_BOOLEAN, /* favorite */ + G_TYPE_UINT, /* strength */ + G_TYPE_STRING, /* security */ +- G_TYPE_STRING, /* passphrase */ + G_TYPE_STRING, /* method */ + G_TYPE_STRING, /* address */ + G_TYPE_STRING, /* netmask */ +@@ -501,56 +500,6 @@ gchar *connman_client_get_security(ConnmanClient *client, const gchar *network) + return security; + } + +-gchar *connman_client_get_passphrase(ConnmanClient *client, const gchar *network) +-{ +- ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client); +- GtkTreeIter iter; +- gchar *passphrase; +- +- DBG("client %p", client); +- +- if (network == NULL) +- return NULL; +- +- if (connman_dbus_get_iter(priv->store, network, &iter) == FALSE) +- return NULL; +- +- gtk_tree_model_get(GTK_TREE_MODEL(priv->store), &iter, +- CONNMAN_COLUMN_PASSPHRASE, &passphrase, -1); +- +- return passphrase; +-} +- +-gboolean connman_client_set_passphrase(ConnmanClient *client, const gchar *network, +- const gchar *passphrase) +-{ +- ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client); +- DBusGProxy *proxy; +- GValue value = { 0 }; +- gboolean ret = FALSE; +- +- DBG("client %p", client); +- +- if (network == NULL) +- goto done; +- +- proxy = connman_dbus_get_proxy(priv->store, network); +- if (proxy == NULL) +- goto done; +- +- g_value_init(&value, G_TYPE_STRING); +- g_value_set_string(&value, passphrase); +- +- ret = connman_set_property(proxy, "Passphrase", &value, NULL); +- +- g_value_unset(&value); +- +- g_object_unref(proxy); +- +-done: +- return ret; +-} +- + void connman_client_set_callback(ConnmanClient *client, + ConnmanClientCallback callback, gpointer user_data) + { +diff --git a/common/connman-client.h b/common/connman-client.h +index 6fe772c..bb36a2f 100644 +--- a/common/connman-client.h ++++ b/common/connman-client.h +@@ -77,9 +77,6 @@ void connman_client_disconnect(ConnmanClient *client, const gchar *network); + gchar *connman_client_get_security(ConnmanClient *client, const gchar *network); + void connman_client_connect_async(ConnmanClient *client, const gchar *network, + connman_connect_reply callback, gpointer userdata); +-gchar *connman_client_get_passphrase(ConnmanClient *client, const gchar *network); +-gboolean connman_client_set_passphrase(ConnmanClient *client, const gchar *network, +- const gchar *passphrase); + void connman_client_set_remember(ConnmanClient *client, const gchar *network, + gboolean remember); + +@@ -108,7 +105,6 @@ enum { + CONNMAN_COLUMN_FAVORITE, /* G_TYPE_BOOLEAN */ + CONNMAN_COLUMN_STRENGTH, /* G_TYPE_UINT */ + CONNMAN_COLUMN_SECURITY, /* G_TYPE_STRING */ +- CONNMAN_COLUMN_PASSPHRASE, /* G_TYPE_STRING */ + CONNMAN_COLUMN_METHOD, /* G_TYPE_STRING */ + CONNMAN_COLUMN_ADDRESS, /* G_TYPE_STRING */ + CONNMAN_COLUMN_NETMASK, /* G_TYPE_STRING */ +diff --git a/common/connman-dbus.c b/common/connman-dbus.c +index 4eb77b6..f46a750 100644 +--- a/common/connman-dbus.c ++++ b/common/connman-dbus.c +@@ -389,11 +389,6 @@ static void service_changed(DBusGProxy *proxy, const char *property, + gtk_tree_store_set(store, &iter, + CONNMAN_COLUMN_SECURITY, security, + -1); +- } else if (g_str_equal(property, "PassPhrase") == TRUE) { +- const char *passphrase = value ? g_value_get_string(value) : NULL; +- gtk_tree_store_set(store, &iter, +- CONNMAN_COLUMN_PASSPHRASE, passphrase, +- -1); + } else if (g_str_equal(property, "Strength") == TRUE) { + guint strength = g_value_get_uchar(value); + gtk_tree_store_set(store, &iter, +@@ -406,7 +401,7 @@ static void service_properties(DBusGProxy *proxy, GHashTable *hash, + { + GtkTreeStore *store = user_data; + GValue *value; +- const gchar *name, *icon, *passphrase, *security, *state; ++ const gchar *name, *icon, *security, *state; + guint type, strength; + gboolean favorite; + GtkTreeIter iter; +@@ -439,9 +434,6 @@ static void service_properties(DBusGProxy *proxy, GHashTable *hash, + value = g_hash_table_lookup(hash, "Security"); + security = value ? g_strjoinv(" ", g_value_get_boxed(value)) : NULL; + +- value = g_hash_table_lookup(hash, "PassPhrase"); +- passphrase = value ? g_value_get_string(value) : NULL; +- + DBG("name %s type %d icon %s", name, type, icon); + + value = g_hash_table_lookup(hash, "IPv4.Configuration"); +@@ -499,7 +491,6 @@ static void service_properties(DBusGProxy *proxy, GHashTable *hash, + CONNMAN_COLUMN_STATE, state, + CONNMAN_COLUMN_FAVORITE, favorite, + CONNMAN_COLUMN_SECURITY, security, +- CONNMAN_COLUMN_PASSPHRASE, passphrase, + CONNMAN_COLUMN_STRENGTH, strength, + CONNMAN_COLUMN_METHOD, method, + CONNMAN_COLUMN_ADDRESS, addr, +diff --git a/properties/advanced.h b/properties/advanced.h +index d8f4117..553a15e 100644 +--- a/properties/advanced.h ++++ b/properties/advanced.h +@@ -53,7 +53,6 @@ struct config_data { + GtkWidget *name; + GtkWidget *security; + GtkWidget *strength; +- GtkWidget *passphrase; + GtkWidget *connect_info; + GtkWidget *connect; + GtkWidget *disconnect; +diff --git a/properties/wifi.c b/properties/wifi.c +index 038d35a..bd325ef 100644 +--- a/properties/wifi.c ++++ b/properties/wifi.c +@@ -57,17 +57,6 @@ static void connect_callback(GtkWidget *editable, gpointer user_data) + gboolean ret; + gint active; + +- if (data->wifi.passphrase) { +- char *passphrase; +- passphrase = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->wifi.passphrase)); +- ret = connman_client_set_passphrase(data->client, data->device, +- passphrase); +- +- if (ret == FALSE) { +- return; +- } +- } +- + active = gtk_combo_box_get_active(GTK_COMBO_BOX(data->policy.config)); + data->ipv4_config.method = active ? "manual" : "dhcp"; + data->ipv4_config.address = active ? gtk_entry_get_text(GTK_ENTRY(data->ipv4.entry[0])) : NULL; +@@ -250,22 +239,11 @@ static void wifi_ipconfig(GtkWidget *table, struct config_data *data, GtkTreeIte + G_CALLBACK(changed_callback), data); + } + +-static void toggled_callback(GtkWidget *button, gpointer user_data) +-{ +- GtkWidget *entry = user_data; +- gboolean mode; +- +- mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)); +- +- gtk_entry_set_visibility(GTK_ENTRY(entry), mode); +-} +- + void add_wifi_service(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data *data) + { + GtkWidget *vbox; + GtkWidget *table; + GtkWidget *label; +- GtkWidget *entry; + GtkWidget *button; + + const char *name, *security, *icon, *state; +@@ -308,32 +286,6 @@ void add_wifi_service(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + data->wifi.security = label; + +- label = gtk_label_new(_("Passphrase:")); +- gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 2, 3); +- +- if (g_str_equal(security, "none") != TRUE && +- g_str_equal(security, "unknown") != TRUE) { +- entry = gtk_entry_new(); +- gtk_entry_set_max_length (GTK_ENTRY (entry), 64); +- gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 4, 2, 3); +- gtk_entry_set_visibility(GTK_ENTRY(entry), 0); +- data->wifi.passphrase = entry; +- +- button = gtk_check_button_new_with_label(_("Show input")); +- gtk_table_attach_defaults(GTK_TABLE(table), button, 4, 5, 2, 3); +- +- g_signal_connect(G_OBJECT(button), "toggled", +- G_CALLBACK(toggled_callback), entry); +- +- +- } else { +- label = gtk_label_new(_("none")); +- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 4, 2, 3); +- gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); +- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); +- data->wifi.passphrase = NULL; +- } +- + label = gtk_label_new(_("")); + gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, 8, 9); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); +-- +1.7.5.4 + diff --git a/meta/recipes-connectivity/connman/connman-gnome/0006-Fix-status-descriptions-in-properties-tree.patch b/meta/recipes-connectivity/connman/connman-gnome/0006-Fix-status-descriptions-in-properties-tree.patch new file mode 100644 index 000000000..99a2df81d --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome/0006-Fix-status-descriptions-in-properties-tree.patch @@ -0,0 +1,42 @@ +From ce510179cba98c906974bdbd6bda2b586b6058c1 Mon Sep 17 00:00:00 2001 +Message-Id: <ce510179cba98c906974bdbd6bda2b586b6058c1.1334369310.git.paul.eggleton@linux.intel.com> +In-Reply-To: <cover.1334369310.git.paul.eggleton@linux.intel.com> +References: <cover.1334369310.git.paul.eggleton@linux.intel.com> +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Sat, 14 Apr 2012 02:39:15 +0100 +Subject: [PATCH 6/6] Fix status descriptions in properties tree + +* configurating -> configuring +* connnected -> connected +* Use i18n wrappers + +Upstream-Status: Submitted + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +--- + properties/main.c | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/properties/main.c b/properties/main.c +index e266f03..c05f443 100644 +--- a/properties/main.c ++++ b/properties/main.c +@@ -332,12 +332,12 @@ static void device_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell, + /* Show the AP name */ + title = N_(name); + if (g_str_equal(state, "association") == TRUE) +- state = "associating..."; ++ state = _("associating..."); + else if (g_str_equal(state, "configuration") == TRUE) +- state = "configurating..."; ++ state = _("configuring..."); + else if (g_str_equal(state, "ready") == TRUE || + g_str_equal(state, "online") == TRUE) +- state = "connnected"; ++ state = _("connected"); + else + state = ""; + markup = g_strdup_printf(" %s\n %s", title, state); +-- +1.7.5.4 + diff --git a/meta/recipes-connectivity/connman/connman-gnome/0007-connman-gnome-fix-segfault-due-to-unchecked-null-val.patch b/meta/recipes-connectivity/connman/connman-gnome/0007-connman-gnome-fix-segfault-due-to-unchecked-null-val.patch new file mode 100644 index 000000000..3e054ba7a --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome/0007-connman-gnome-fix-segfault-due-to-unchecked-null-val.patch @@ -0,0 +1,30 @@ +From 7225bf8e8e9bee42d7d7d02ba754b9fb30a877b6 Mon Sep 17 00:00:00 2001 +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Mon, 16 Apr 2012 19:15:35 +0100 +Subject: [PATCH] connman-gnome: fix segfault due to unchecked null value + +If value is NULL here we should not pass it to g_value_get_boxed(). + +Upstream-Status: Submitted + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +--- + common/connman-dbus.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/common/connman-dbus.c b/common/connman-dbus.c +index 33ac623..822fc98 100644 +--- a/common/connman-dbus.c ++++ b/common/connman-dbus.c +@@ -437,7 +437,7 @@ static void service_properties(DBusGProxy *proxy, GHashTable *hash, + DBG("name %s type %d icon %s", name, type, icon); + + value = g_hash_table_lookup(hash, "IPv4.Configuration"); +- ipv4 = g_value_get_boxed (value); ++ ipv4 = value ? g_value_get_boxed (value) : NULL; + + if (!ipv4) + goto done; +-- +1.7.5.4 + diff --git a/meta/recipes-connectivity/connman/connman-gnome_0.5.bb b/meta/recipes-connectivity/connman/connman-gnome_0.5.bb new file mode 100644 index 000000000..e2e8deba5 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-gnome_0.5.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "gtk frontend for connman" +HOMEPAGE = "http://connman.net/" +SECTION = "libs/network" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://properties/main.c;beginline=1;endline=20;md5=50c77c81871308b033ab7a1504626afb \ + file://common/connman-dbus.c;beginline=1;endline=20;md5=de6b485c0e717a0236402d220187717a" + +DEPENDS = "gtk+ dbus" + +PR = "r10" + +SRCREV = "42c652d123ea133d0a0930b96e8e39dbd0c597b5" +SRC_URI = "git://git.kernel.org/pub/scm/network/connman/connman-gnome.git \ + file://0001-Monitor-the-Manager-s-State-property.patch \ + file://0002-Update-for-ConnMan-0.79-API-changes.patch \ + file://0003-Fix-setting-IPv4-configuration.patch \ + file://0004-Handle-WiFi-authentication-using-an-agent.patch \ + file://0005-Remove-all-handling-of-Passphrase-property.patch \ + file://0006-Fix-status-descriptions-in-properties-tree.patch \ + file://0007-connman-gnome-fix-segfault-due-to-unchecked-null-val.patch" + +S = "${WORKDIR}/git" + +inherit autotools gtk-icon-cache + +RRECOMMENDS_${PN} = "python \ + python-dbus \ + connman \ + connman-plugin-ethernet \ + connman-plugin-loopback \ + connman-plugin-udhcp \ + connman-plugin-wifi \ + connman-plugin-fake \ + connman-plugin-bluetooth \ + connman-plugin-dnsproxy \ + connman-plugin-ofono \ + " diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc new file mode 100644 index 000000000..f2da8d9d7 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman.inc @@ -0,0 +1,110 @@ +SUMMARY = "A daemon for managing internet connections within embedded devices" +DESCRIPTION = "The ConnMan project provides a daemon for managing \ +internet connections within embedded devices running the Linux \ +operating system. The Connection Manager is designed to be slim and \ +to use as few resources as possible, so it can be easily integrated. \ +It is a fully modular system that can be extended, through plug-ins, \ +to support all kinds of wired or wireless technologies. Also, \ +configuration methods, like DHCP and domain name resolving, are \ +implemented using plug-ins." +HOMEPAGE = "http://connman.net/" +BUGTRACKER = "http://bugs.meego.com/buglist.cgi?quicksearch=connman" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ + file://src/main.c;beginline=1;endline=20;md5=4b55b550fa6b33cc2055ef30dd262b3e" + +# we need to define the depends here, the dynamic stuff is too late +DEPENDS = "dbus glib-2.0 ppp iptables gnutls \ + ${@base_contains('DISTRO_FEATURES', 'bluetooth','bluez4', '', d)} \ + ${@base_contains('DISTRO_FEATURES', 'wifi','wpa-supplicant', '', d)} \ + ofono \ + " + +TIST = "--enable-tist" +TIST_powerpc = "" + +EXTRA_OECONF += "\ + ac_cv_path_WPASUPPLICANT=${sbindir}/wpa_supplicant \ + ac_cv_path_PPPD=${sbindir}/pppd \ + --disable-gtk-doc \ + --enable-debug \ + --enable-threads \ + --enable-loopback \ + --enable-ethernet \ + ${@base_contains('DISTRO_FEATURES', 'wifi','--enable-wifi ${TIST}', '--disable-wifi', d)} \ + ${@base_contains('DISTRO_FEATURES', 'bluetooth','--enable-bluetooth ${TIST}', '--disable-bluetooth', d)} \ + --enable-dnsproxy \ + --enable-ofono \ + --enable-tools \ + --enable-test \ + --disable-polkit \ + --enable-client \ + --enable-fake \ + --disable-ntpd \ +" + +INITSCRIPT_NAME = "connman" +INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ." + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home \ + --shell /bin/false --groups video,tty,audio \ + --user-group xuser" + +inherit autotools pkgconfig update-rc.d useradd + +do_compile_append() { + sed -i -e s:deny:allow:g src/connman-dbus.conf +} + +do_install_append() { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/connman ${D}${sysconfdir}/init.d/connman + + install -d ${D}${bindir} + install -m 0755 ${S}/tools/*-test ${D}${bindir} + install -m 0755 ${S}/tools/wispr ${D}${bindir} + + # We don't need to package an empty directory + rmdir ${D}${libdir}/connman/scripts +} + +PACKAGES_DYNAMIC = "${PN}-plugin-*" + +python populate_packages_prepend() { + depmap = dict( pppd="ppp", + wifi="wpa-supplicant", + bluetooth="bluez4", + ofono="ofono" ) + packages = [] + multilib_prefix = (d.getVar("MLPREFIX", True) or "") + hook = lambda file,pkg,b,c,d:packages.append((file,pkg)) + plugin_dir = d.expand('${libdir}/connman/plugins/') + plugin_name = d.expand('${PN}-plugin-%s') + do_split_packages(d, plugin_dir, '^(.*).so$', plugin_name, '${PN} plugin for %s', extra_depends='', hook=hook ) + for (file, package) in packages: + plugintype = package.split( '-' )[-1] + if plugintype in depmap: + rdepends = map(lambda x: multilib_prefix + x, depmap[plugintype].split()) + bb.note( "Adding rdependency on %s to %s" % ( rdepends, package ) ) + d.setVar("RDEPENDS_%s" % package, " ".join(rdepends)) +} + +PACKAGES =+ "${PN}-tools ${PN}-tests" + +FILES_${PN}-tools = "${bindir}/wispr" + +FILES_${PN}-tests = "${bindir}/*-test ${libdir}/${BPN}/test/*" +RDEPENDS_${PN}-tests = "python-dbus" + +FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*.so.* \ + ${sysconfdir} ${sharedstatedir} ${localstatedir} \ + ${base_bindir}/* ${base_sbindir}/* ${base_libdir}/*.so* ${datadir}/${PN} \ + ${datadir}/pixmaps ${datadir}/applications \ + ${datadir}/idl ${datadir}/omf ${datadir}/sounds \ + ${libdir}/bonobo/servers \ + ${datadir}/dbus-1/system-services/*" + +FILES_${PN}-dbg += "${libdir}/connman/*/.debug" + +FILES_${PN}-dev += "${libdir}/connman/*/*.la" diff --git a/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch b/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch new file mode 100644 index 000000000..e6f03e632 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman/0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch @@ -0,0 +1,35 @@ +From 4ddaf78dad5a9ee4a0658235f71b75132192123e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 7 Apr 2012 18:52:12 -0700 +Subject: [PATCH] plugin.h: Change visibility to default for debug symbols + +gold refuses to link in undefined weak symbols which +have hidden visibility + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + + +Upstream-Status: Pending +--- + include/plugin.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/plugin.h b/include/plugin.h +index 692a4e5..a9361c3 100644 +--- a/include/plugin.h ++++ b/include/plugin.h +@@ -89,9 +89,9 @@ struct connman_plugin_desc { + #else + #define CONNMAN_PLUGIN_DEFINE(name, description, version, priority, init, exit) \ + extern struct connman_debug_desc __start___debug[] \ +- __attribute__ ((weak, visibility("hidden"))); \ ++ __attribute__ ((weak, visibility("default"))); \ + extern struct connman_debug_desc __stop___debug[] \ +- __attribute__ ((weak, visibility("hidden"))); \ ++ __attribute__ ((weak, visibility("default"))); \ + extern struct connman_plugin_desc connman_plugin_desc \ + __attribute__ ((visibility("default"))); \ + struct connman_plugin_desc connman_plugin_desc = { \ +-- +1.7.5.4 + diff --git a/meta/recipes-connectivity/connman/connman/add_xuser_dbus_permission.patch b/meta/recipes-connectivity/connman/connman/add_xuser_dbus_permission.patch new file mode 100644 index 000000000..aa7a910eb --- /dev/null +++ b/meta/recipes-connectivity/connman/connman/add_xuser_dbus_permission.patch @@ -0,0 +1,25 @@ +Some platform (like atom-pc) enables rootless X, +thus we need to add the xuser in the list. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> + +diff --git a/src/connman-dbus.conf b/src/connman-dbus.conf +index 98a773e..cbe2ba3 100644 +--- a/src/connman-dbus.conf ++++ b/src/connman-dbus.conf +@@ -8,6 +8,13 @@ + <allow send_interface="net.connman.Counter"/> + <allow send_interface="net.connman.Notification"/> + </policy> ++ <policy user="xuser"> ++ <allow own="net.connman"/> ++ <allow send_destination="net.connman"/> ++ <allow send_interface="net.connman.Agent"/> ++ <allow send_interface="net.connman.Counter"/> ++ <allow send_interface="net.connman.Notification"/> ++ </policy> + <policy at_console="true"> + <allow send_destination="net.connman"/> + </policy> diff --git a/meta/recipes-connectivity/connman/connman/connman b/meta/recipes-connectivity/connman/connman/connman new file mode 100644 index 000000000..f01bf371c --- /dev/null +++ b/meta/recipes-connectivity/connman/connman/connman @@ -0,0 +1,62 @@ +#!/bin/sh + +DAEMON=/usr/sbin/connmand +PIDFILE=/var/run/connmand.pid +DESC="Connection Manager" + +if [ -f /etc/default/connman ] ; then + . /etc/default/connman +fi + +set -e + +nfsroot=0 + +exec 9<&0 < /proc/mounts +while read dev mtpt fstype rest; do + if test $mtpt = "/" ; then + case $fstype in + nfs | nfs4) + nfsroot=1 + break + ;; + *) + ;; + esac + fi +done + +do_start() { + EXTRA_PARAM="" + if test $nfsroot -eq 1 ; then + EXTRA_PARAM="-P ethernet" + fi + $DAEMON $EXTRA_PARAM +} + +do_stop() { + start-stop-daemon --stop --name connmand --quiet +} + +case "$1" in + start) + echo "Starting $DESC" + do_start + ;; + stop) + echo "Stopping $DESC" + do_stop + ;; + restart|force-reload) + echo "Restarting $DESC" + do_stop + sleep 1 + do_start + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/meta/recipes-connectivity/connman/connman/disable_alg-test.patch b/meta/recipes-connectivity/connman/connman/disable_alg-test.patch new file mode 100644 index 000000000..f5cea0047 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman/disable_alg-test.patch @@ -0,0 +1,46 @@ +From 3ebba424d56919018733064ad9e0ab8790d2bf1d Mon Sep 17 00:00:00 2001 +From: Otavio Salvador <otavio@ossystems.com.br> +Date: Fri, 16 Dec 2011 19:31:59 -0200 +Subject: [PATCH] Disable building of alg-test + +alg-test utility depends on linux/if_alg.h header that is only +available on kernels >= 2.6.39. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> +--- + Makefile.am | 2 +- + configure.ac | 3 --- + 2 files changed, 1 insertions(+), 4 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index a6509f1..93618a3 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -145,7 +145,7 @@ noinst_PROGRAMS += tools/wispr tools/supplicant-test \ + tools/dbus-test tools/polkit-test \ + tools/iptables-test tools/tap-test tools/wpad-test \ + tools/stats-tool tools/private-network-test \ +- tools/alg-test unit/test-session unit/test-ippool \ ++ unit/test-session unit/test-ippool \ + unit/test-nat + + tools_wispr_SOURCES = $(gweb_sources) tools/wispr.c +diff --git a/configure.ac b/configure.ac +index 3dca02e..3b2da4d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -419,9 +419,6 @@ if (test "${enable_tools}" = "yes"); then + AC_MSG_ERROR(GnuTLS library is required)) + AC_SUBST(GNUTLS_CFLAGS) + AC_SUBST(GNUTLS_LIBS) +- +- AC_CHECK_HEADERS(linux/if_alg.h, dummy=yes, +- AC_MSG_ERROR(User-space algorithm header files are required)) + fi + AM_CONDITIONAL(TOOLS, test "${enable_tools}" = "yes") + +-- +1.7.9.1 + diff --git a/meta/recipes-connectivity/connman/connman/ethernet_default.patch b/meta/recipes-connectivity/connman/connman/ethernet_default.patch new file mode 100644 index 000000000..6dae2aa0c --- /dev/null +++ b/meta/recipes-connectivity/connman/connman/ethernet_default.patch @@ -0,0 +1,22 @@ +Default to enabling the ethernet interface. If we don't do this, connman +will shut down all the networking when it starts without any configuration +which is usualy not what the users expects. This is particularly +problematic with our qemu images and runtime testing using qemu. + +Upstream-Status: Inappropriate [Configuration] + +RP 2011/12/12 + +Index: git/src/storage.c +=================================================================== +--- git.orig/src/storage.c 2011-12-12 16:14:10.892316565 +0000 ++++ git/src/storage.c 2011-12-12 16:14:13.788316431 +0000 +@@ -367,7 +367,7 @@ + "Enable", FALSE); + + g_key_file_set_boolean(keyfile, "Wired", +- "Enable", FALSE); ++ "Enable", TRUE); + + g_key_file_set_boolean(keyfile, "3G", + "Enable", FALSE); diff --git a/meta/recipes-connectivity/connman/connman/test-set-ipv4-method-api-fix.patch b/meta/recipes-connectivity/connman/connman/test-set-ipv4-method-api-fix.patch new file mode 100644 index 000000000..78eb19a77 --- /dev/null +++ b/meta/recipes-connectivity/connman/connman/test-set-ipv4-method-api-fix.patch @@ -0,0 +1,50 @@ +From 0b817dd3096f5c3ca8f0b868ee55ea550054137b Mon Sep 17 00:00:00 2001 +From: Daniel Wagner <daniel.wagner@bmw-carit.de> +Date: Mon, 19 Mar 2012 14:03:27 +0100 +Subject: [PATCH 3/3] set-ipv4-method: The arguments have to be wrapped into a + variant + +Fixes BMC#24986 + +Upstream-Status: Backport + +Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> +--- + test/set-ipv4-method | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/test/set-ipv4-method b/test/set-ipv4-method +index 820b24b..235113f 100755 +--- a/test/set-ipv4-method ++++ b/test/set-ipv4-method +@@ -3,6 +3,9 @@ + import sys + import dbus + ++def make_variant(string): ++ return dbus.String(string, variant_level=1) ++ + def print_usage(): + print "Usage: %s <service> [off|dhcp|manual <address> [netmask] [gateway]]" % (sys.argv[0]) + +@@ -20,13 +23,13 @@ properties = service.GetProperties() + + print "Setting method %s for %s" % (sys.argv[2], sys.argv[1]) + +-ipv4_configuration = { "Method": sys.argv[2] } ++ipv4_configuration = { "Method": make_variant(sys.argv[2]) } + if (len(sys.argv) > 3): +- ipv4_configuration["Address"] = sys.argv[3] ++ ipv4_configuration["Address"] = make_variant(sys.argv[3]) + if (len(sys.argv) > 4): +- ipv4_configuration["Netmask"] = sys.argv[4] ++ ipv4_configuration["Netmask"] = make_variant(sys.argv[4]) + if (len(sys.argv) > 5): +- ipv4_configuration["Gateway"] = sys.argv[5] ++ ipv4_configuration["Gateway"] = make_variant(sys.argv[5]) + + service.SetProperty("IPv4.Configuration", ipv4_configuration) + print "New IPv4.Configuration: ", ipv4_configuration +-- +1.7.9.5 + diff --git a/meta/recipes-connectivity/connman/connman/test-set-ipv6-method-api-fix.patch b/meta/recipes-connectivity/connman/connman/test-set-ipv6-method-api-fix.patch new file mode 100644 index 000000000..773127bce --- /dev/null +++ b/meta/recipes-connectivity/connman/connman/test-set-ipv6-method-api-fix.patch @@ -0,0 +1,55 @@ +From 2885e71c9c0df7ea9866e91ab79d255eaa8de53d Mon Sep 17 00:00:00 2001 +From: Daniel Wagner <daniel.wagner@bmw-carit.de> +Date: Mon, 19 Mar 2012 14:03:28 +0100 +Subject: [PATCH 2/3] set-ipv6-method: The arguments have to be wrapped into a + variant + +Fixes BMC#24986 + +Upstream-Status: Backport + +Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> +--- + test/set-ipv6-method | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/test/set-ipv6-method b/test/set-ipv6-method +index 7f60b88..4f2de09 100755 +--- a/test/set-ipv6-method ++++ b/test/set-ipv6-method +@@ -3,6 +3,9 @@ + import sys + import dbus + ++def make_variant(string): ++ return dbus.String(string, variant_level=1) ++ + def print_usage(): + print "Usage: %s <service> off|manual|auto [<address> [prefixlen] [gateway]] [<privacy>]" % (sys.argv[0]) + +@@ -19,17 +22,17 @@ properties = service.GetProperties() + + print "Setting method %s for %s" % (sys.argv[2], sys.argv[1]) + +-ipv6_configuration = { "Method": sys.argv[2] } ++ipv6_configuration = { "Method": make_variant(sys.argv[2])} + if sys.argv[2] == "auto": + if (len(sys.argv) > 3): +- ipv6_configuration["Privacy"] = sys.argv[3] ++ ipv6_configuration["Privacy"] = make_variant(sys.argv[3]) + else: + if (len(sys.argv) > 3): +- ipv6_configuration["Address"] = sys.argv[3] ++ ipv6_configuration["Address"] = make_variant(sys.argv[3]) + if (len(sys.argv) > 4): +- ipv6_configuration["PrefixLength"] = sys.argv[4] ++ ipv6_configuration["PrefixLength"] = make_variant(sys.argv[4]) + if (len(sys.argv) > 5): +- ipv6_configuration["Gateway"] = sys.argv[5] ++ ipv6_configuration["Gateway"] = make_variant(sys.argv[5]) + + service.SetProperty("IPv6.Configuration", ipv6_configuration) + print "New IPv6.Configuration: ", ipv6_configuration +-- +1.7.9.5 + diff --git a/meta/recipes-connectivity/connman/connman_0.79.bb b/meta/recipes-connectivity/connman/connman_0.79.bb new file mode 100644 index 000000000..d7f22b94a --- /dev/null +++ b/meta/recipes-connectivity/connman/connman_0.79.bb @@ -0,0 +1,14 @@ +require connman.inc + +# 0.79 tag +SRCREV = "442b1fe603e005814f592a3dbcf0d0bfb13f961c" +SRC_URI = "git://git.kernel.org/pub/scm/network/connman/connman.git \ + file://add_xuser_dbus_permission.patch \ + file://ethernet_default.patch \ + file://disable_alg-test.patch \ + file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \ + file://test-set-ipv4-method-api-fix.patch \ + file://test-set-ipv6-method-api-fix.patch \ + file://connman" +S = "${WORKDIR}/git" +PR = "r4" diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch new file mode 100644 index 000000000..b4a666d10 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/dhcp-3.0.3-dhclient-dbus.patch @@ -0,0 +1,86 @@ +Upstream-Status: Inappropriate [distribution] + +--- client/scripts/bsdos ++++ client/scripts/bsdos +@@ -47,6 +47,11 @@ + . /etc/dhcp/dhclient-exit-hooks + fi + # probably should do something with exit status of the local script ++ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then ++ dbus-send --system --dest=com.redhat.dhcp \ ++ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \ ++ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`" ++ fi + exit $exit_status + } + +--- client/scripts/freebsd ++++ client/scripts/freebsd +@@ -57,6 +57,11 @@ + . /etc/dhcp/dhclient-exit-hooks + fi + # probably should do something with exit status of the local script ++ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then ++ dbus-send --system --dest=com.redhat.dhcp \ ++ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \ ++ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`" ++ fi + exit $exit_status + } + +--- client/scripts/linux ++++ client/scripts/linux +@@ -69,6 +69,11 @@ + . /etc/dhcp/dhclient-exit-hooks + fi + # probably should do something with exit status of the local script ++ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then ++ dbus-send --system --dest=com.redhat.dhcp \ ++ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \ ++ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`" ++ fi + exit $exit_status + } + +--- client/scripts/netbsd ++++ client/scripts/netbsd +@@ -47,6 +47,11 @@ + . /etc/dhcp/dhclient-exit-hooks + fi + # probably should do something with exit status of the local script ++ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then ++ dbus-send --system --dest=com.redhat.dhcp \ ++ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \ ++ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`" ++ fi + exit $exit_status + } + +--- client/scripts/openbsd ++++ client/scripts/openbsd +@@ -47,6 +47,11 @@ + . /etc/dhcp/dhclient-exit-hooks + fi + # probably should do something with exit status of the local script ++ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then ++ dbus-send --system --dest=com.redhat.dhcp \ ++ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \ ++ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`" ++ fi + exit $exit_status + } + +--- client/scripts/solaris ++++ client/scripts/solaris +@@ -47,6 +47,11 @@ + . /etc/dhcp/dhclient-exit-hooks + fi + # probably should do something with exit status of the local script ++ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then ++ dbus-send --system --dest=com.redhat.dhcp \ ++ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \ ++ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`" ++ fi + exit $exit_status + } + diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-client-path.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-client-path.patch new file mode 100644 index 000000000..97ed0d932 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-client-path.patch @@ -0,0 +1,23 @@ +CLIENT_PATH is the only environment when executing dhclient-script, +without this patch, dhclient-script won't run properly because it +invokes ifconfig and route + +Upstream-Status: Inappropriate [configuration] + +7/28/2010 - qhe + +diff -ru dhcp-4.1.1-P1.orig//client/Makefile.am dhcp-4.1.1-P1/client/Makefile.am +--- dhcp-4.1.1-P1.orig//client/Makefile.am 2010-07-29 13:20:05.000000000 +0800 ++++ dhcp-4.1.1-P1/client/Makefile.am 2010-07-29 13:28:14.000000000 +0800 +@@ -10,9 +10,9 @@ + EXTRA_DIST = $(man_MANS) + + dhclient.o: dhclient.c +- $(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \ ++ $(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):$(base_sbindir):$(bindir):$(base_bindir)"' \ + -DLOCALSTATEDIR='"$(localstatedir)"' -c dhclient.c + + dhc6.o: dhc6.c +- $(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \ ++ $(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):$(base_sbindir):$(bindir):$(base_bindir)"' \ + -DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-external-bind.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-external-bind.patch new file mode 100644 index 000000000..4f1165581 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fix-external-bind.patch @@ -0,0 +1,103 @@ +Upstream-Status: Pending + +11/30/2010 +--with-libbind=PATH is available but not used by Makefile, +this patch is to allow building with external bind + +Signed-off-by: Qing He <qing.he@intel.com> + +diff --git a/Makefile.am b/Makefile.am +index 928d926..cd17af8 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -21,7 +21,7 @@ EXTRA_DIST = RELNOTES LICENSE \ + util/bindvar.sh \ + bind/Makefile bind/bind.tar.gz bind/version.tmp + +-SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server ++SUBDIRS = includes tests common dst omapip client dhcpctl relay server + + nobase_include_HEADERS = dhcpctl/dhcpctl.h + +diff --git a/client/Makefile.am b/client/Makefile.am +index 77ed055..5a77f2d 100644 +--- a/client/Makefile.am ++++ b/client/Makefile.am +@@ -5,7 +5,7 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \ + scripts/netbsd scripts/nextstep scripts/openbsd \ + scripts/solaris scripts/openwrt + dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ +- ../bind/lib/libdns.a ../bind/lib/libisc.a ++ $(libbind)/libdns.a $(libbind)/libisc.a + man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 + EXTRA_DIST = $(man_MANS) + +diff --git a/configure.ac b/configure.ac +index ff832aa..60d342c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -500,6 +500,7 @@ no) + libbind="$use_libbind" + ;; + esac ++AC_SUBST([libbind]) + + # OpenLDAP support. + AC_ARG_WITH(ldap, +diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am +index 61049be..85aefa3 100644 +--- a/dhcpctl/Makefile.am ++++ b/dhcpctl/Makefile.am +@@ -6,10 +6,10 @@ EXTRA_DIST = $(man_MANS) + + omshell_SOURCES = omshell.c + omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ +- ../bind/lib/libdns.a ../bind/lib/libisc.a ++ $(libbind)/libdns.a $(libbind)/libisc.a + + libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c + + cltest_SOURCES = cltest.c + cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ +- ../bind/lib/libdns.a ../bind/lib/libisc.a +\ No newline at end of file ++ $(libbind)/libdns.a $(libbind)/libisc.a +diff --git a/omapip/Makefile.am b/omapip/Makefile.am +index 595950a..17f2233 100644 +--- a/omapip/Makefile.am ++++ b/omapip/Makefile.am +@@ -10,5 +10,5 @@ man_MANS = omapi.3 + EXTRA_DIST = $(man_MANS) + + svtest_SOURCES = test.c +-svtest_LDADD = libomapi.a ../bind/lib/libdns.a ../bind/lib/libisc.a ++svtest_LDADD = libomapi.a $(libbind)/libdns.a $(libbind)/libisc.a + +diff --git a/relay/Makefile.am b/relay/Makefile.am +index d8757ca..a7885da 100644 +--- a/relay/Makefile.am ++++ b/relay/Makefile.am +@@ -3,7 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' + sbin_PROGRAMS = dhcrelay + dhcrelay_SOURCES = dhcrelay.c + dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ +- ../bind/lib/libdns.a ../bind/lib/libisc.a ++ $(libbind)/libdns.a $(libbind)/libisc.a + man_MANS = dhcrelay.8 + EXTRA_DIST = $(man_MANS) + +diff --git a/server/Makefile.am b/server/Makefile.am +index cdfaf47..d2c254b 100644 +--- a/server/Makefile.am ++++ b/server/Makefile.am +@@ -8,8 +8,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ + + dhcpd_CFLAGS = $(LDAP_CFLAGS) + dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ +- ../dhcpctl/libdhcpctl.a ../bind/lib/libdns.a \ +- ../bind/lib/libisc.a ++ ../dhcpctl/libdhcpctl.a $(libbind)/libdns.a \ ++ $(libbind)/libisc.a + + man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 + EXTRA_DIST = $(man_MANS) diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fixincludes.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fixincludes.patch new file mode 100644 index 000000000..e33c9dd73 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/fixincludes.patch @@ -0,0 +1,12 @@ +Upstream-Status: Pending + +--- dhcp-3.0.2/common/tr.c~compile 2005-10-13 14:23:37.000000000 +0200 ++++ dhcp-3.0.2/common/tr.c 2005-10-13 14:23:45.000000000 +0200 +@@ -39,6 +39,7 @@ + #include "includes/netinet/udp.h" + #include "includes/netinet/if_ether.h" + #include "netinet/if_tr.h" ++#include <asm/types.h> + #include <sys/time.h> + + /* diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch new file mode 100644 index 000000000..57e10b029 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/link-with-lcrypto.patch @@ -0,0 +1,25 @@ +Author: Andrei Gherzan <andrei@gherzan.ro> +Date: Thu Feb 2 23:59:11 2012 +0200 + +From 4.2.0 final release, -lcrypto check was removed and we compile static libraries +from bind that are linked to libcrypto. This is why i added a patch in order to add +-lcrypto to LIBS. + +Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> +Upstream-Status: Pending + +Index: dhcp-4.2.3-P2-r0/dhcp-4.2.3-P2/configure.ac +=================================================================== +--- dhcp-4.2.3-P2.orig/configure.ac 2012-02-02 18:04:20.843023196 +0200 ++++ dhcp-4.2.3-P2/configure.ac 2012-02-02 17:58:16.000000000 +0200 +@@ -456,6 +456,10 @@ + # Look for optional headers. + AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) + ++# find an MD5 library ++AC_SEARCH_LIBS(MD5_Init, [crypto]) ++AC_SEARCH_LIBS(MD5Init, [crypto]) ++ + # Solaris needs some libraries for functions + AC_SEARCH_LIBS(socket, [socket]) + AC_SEARCH_LIBS(inet_ntoa, [nsl]) diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/noattrmode.patch b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/noattrmode.patch new file mode 100644 index 000000000..5c635e8dc --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/noattrmode.patch @@ -0,0 +1,21 @@ +Upstream-Status: Backport + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- dhcp-3.0.1/includes/dhcpd.h~compile ++++ dhcp-3.0.1/includes/dhcpd.h +@@ -306,9 +306,9 @@ + # define EPHEMERAL_FLAGS (MS_NULL_TERMINATION | \ + UNICAST_BROADCAST_HACK) + +- binding_state_t __attribute__ ((mode (__byte__))) binding_state; +- binding_state_t __attribute__ ((mode (__byte__))) next_binding_state; +- binding_state_t __attribute__ ((mode (__byte__))) desired_binding_state; ++ binding_state_t binding_state; ++ binding_state_t next_binding_state; ++ binding_state_t desired_binding_state; + + struct lease_state *state; + diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h new file mode 100644 index 000000000..2289554ef --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp-4.2.3-P2/site.h @@ -0,0 +1,21 @@ +/* + * define config file location in ${S}/includes/site.h + * still need to take care of installation path (${sysconfdir}/dhcpd.conf) + * + * 7/22/2010 - qhe + */ + +/* Define this if you want DNS update functionality to be available. */ + +#define NSUPDATE + +/* Define this if you aren't debugging and you want to save memory + (potentially a _lot_ of memory) by allocating leases in chunks rather + than one at a time. */ + +#define COMPACT_LEASES + + +/* local */ +#define _PATH_DHCPD_CONF "/etc/dhcp/dhcpd.conf" +#define _PATH_DHCLIENT_CONF "/etc/dhcp/dhclient.conf" diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc new file mode 100644 index 000000000..8ead01690 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp.inc @@ -0,0 +1,98 @@ +SECTION = "console/network" +SUMMARY = "Internet Software Consortium DHCP package" +DESCRIPTION = "DHCP (Dynamic Host Configuration Protocol) is a protocol \ +which allows individual devices on an IP network to get their own \ +network configuration information from a server. DHCP helps make it \ +easier to administer devices." + +HOMEPAGE = "http://www.isc.org/" + +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;md5=bb6fd41f5895b67088ebea61ad365e74" + +DEPENDS = "openssl bind" + +SRC_URI = "ftp://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \ + file://site.h \ + file://init-relay file://default-relay \ + file://init-server file://default-server \ + file://dhclient.conf file://dhcpd.conf" + +inherit autotools + +TARGET_CFLAGS += "-D_GNU_SOURCE" +EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \ + --with-srv6-lease-file=${localstatedir}/lib/dhcp/dhcpd6.leases \ + --with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \ + --with-cli6-lease-file=${localstatedir}/lib/dhcp/dhclient6.leases \ + --with-libbind=${STAGING_LIBDIR}/ \ + " + +do_compile_prepend () { + cp -f ${WORKDIR}/site.h ${S}/includes +} + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/default + install -d ${D}${sysconfdir}/dhcp + install -m 0755 ${WORKDIR}/init-relay ${D}${sysconfdir}/init.d/dhcp-relay + install -m 0644 ${WORKDIR}/default-relay ${D}${sysconfdir}/default/dhcp-relay + install -m 0755 ${WORKDIR}/init-server ${D}${sysconfdir}/init.d/dhcp-server + install -m 0644 ${WORKDIR}/default-server ${D}${sysconfdir}/default/dhcp-server + + rm -f ${D}${sysconfdir}/dhclient.conf + rm -f ${D}${sysconfdir}/dhcpd.conf + install -m 0644 ${WORKDIR}/dhclient.conf ${D}${sysconfdir}/dhcp/dhclient.conf + install -m 0644 ${WORKDIR}/dhcpd.conf ${D}${sysconfdir}/dhcp/dhcpd.conf + + install -d ${D}${base_sbindir}/ + if [ "${sbindir}" != "${base_sbindir}" ]; then + mv ${D}${sbindir}/dhclient ${D}${base_sbindir}/ + fi + install -m 0755 ${S}/client/scripts/linux ${D}${base_sbindir}/dhclient-script +} + +PACKAGES += "dhcp-server dhcp-server-config dhcp-client dhcp-relay dhcp-omshell" + +FILES_${PN} = "" + +FILES_dhcp-server = "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server" +RRECOMMENDS_dhcp-server = "dhcp-server-config" + +FILES_dhcp-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf" + +FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay" + +FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf" +RDEPENDS_dhcp-client = "bash" + +FILES_dhcp-omshell = "${bindir}/omshell" + +pkg_postinst_dhcp-server() { + mkdir -p $D/${localstatedir}/lib/dhcp + touch $D/${localstatedir}/lib/dhcp/dhcpd.leases + touch $D/${localstatedir}/lib/dhcp/dhcpd6.leases +} + +pkg_postinst_dhcp-client() { + mkdir -p $D/${localstatedir}/lib/dhcp +} + +pkg_postrm_dhcp-server() { + rm -f $D/${localstatedir}/lib/dhcp/dhcpd.leases + rm -f $D/${localstatedir}/lib/dhcp/dhcpd6.leases + + if ! rmdir $D/${localstatedir}/lib/dhcp 2>/dev/null; then + echo "Not removing ${localstatedir}/lib/dhcp as it is non-empty." + fi +} + +pkg_postrm_dhcp-client() { + rm -f $D/${localstatedir}/lib/dhcp/dhclient.leases + rm -f $D/${localstatedir}/lib/dhcp/dhclient6.leases + + if ! rmdir $D/${localstatedir}/lib/dhcp 2>/dev/null; then + echo "Not removing ${localstatedir}/lib/dhcp as it is non-empty." + fi +} diff --git a/meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb b/meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb new file mode 100644 index 000000000..24b50ba2a --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp_4.2.3-P2.bb @@ -0,0 +1,12 @@ +require dhcp.inc + +PR = "r0" + +SRC_URI += "file://fixincludes.patch \ + file://dhcp-3.0.3-dhclient-dbus.patch;striplevel=0 \ + file://fix-external-bind.patch \ + file://link-with-lcrypto.patch \ + " + +SRC_URI[md5sum] = "14f57fd580d01633d0fad4809007a801" +SRC_URI[sha256sum] = "5cf7ae2cad9c4ca0103748b2476ec8ea78484e408f8fe597e4e0a4afb051b469" diff --git a/meta/recipes-connectivity/dhcp/files/default-relay b/meta/recipes-connectivity/dhcp/files/default-relay new file mode 100644 index 000000000..59249db28 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/files/default-relay @@ -0,0 +1,12 @@ +# Defaults for dhcp-relay initscript +# sourced by /etc/init.d/dhcp-relay + +# What servers should the DHCP relay forward requests to? +# e.g: SERVERS="192.168.0.1" +SERVERS="" + +# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests? +INTERFACES="" + +# Additional options that are passed to the DHCP relay daemon? +OPTIONS=""
\ No newline at end of file diff --git a/meta/recipes-connectivity/dhcp/files/default-server b/meta/recipes-connectivity/dhcp/files/default-server new file mode 100644 index 000000000..0385d1699 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/files/default-server @@ -0,0 +1,7 @@ +# Defaults for dhcp initscript +# sourced by /etc/init.d/dhcp-server +# installed at /etc/default/dhcp-server by the maintainer scripts + +# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? +# Separate multiple interfaces with spaces, e.g. "eth0 eth1". +INTERFACES="" diff --git a/meta/recipes-connectivity/dhcp/files/dhclient.conf b/meta/recipes-connectivity/dhcp/files/dhclient.conf new file mode 100644 index 000000000..0e6dcf96c --- /dev/null +++ b/meta/recipes-connectivity/dhcp/files/dhclient.conf @@ -0,0 +1,50 @@ +# Configuration file for /sbin/dhclient, which is included in Debian's +# dhcp3-client package. +# +# This is a sample configuration file for dhclient. See dhclient.conf's +# man page for more information about the syntax of this file +# and a more comprehensive list of the parameters understood by +# dhclient. +# +# Normally, if the DHCP server provides reasonable information and does +# not leave anything out (like the domain name, for example), then +# few changes must be made to this file, if any. +# + +#send host-name "andare.fugue.com"; +#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; +#send dhcp-lease-time 3600; +#supersede domain-name "fugue.com home.vix.com"; +#prepend domain-name-servers 127.0.0.1; +request subnet-mask, broadcast-address, time-offset, routers, + domain-name, domain-name-servers, host-name, + netbios-name-servers, netbios-scope; +#require subnet-mask, domain-name-servers; +#timeout 60; +#retry 60; +#reboot 10; +#select-timeout 5; +#initial-interval 2; +#script "/etc/dhcp3/dhclient-script"; +#media "-link0 -link1 -link2", "link0 link1"; +#reject 192.33.137.209; + +#alias { +# interface "eth0"; +# fixed-address 192.5.5.213; +# option subnet-mask 255.255.255.255; +#} + +#lease { +# interface "eth0"; +# fixed-address 192.33.137.200; +# medium "link0 link1"; +# option host-name "andare.swiftmedia.com"; +# option subnet-mask 255.255.255.0; +# option broadcast-address 192.33.137.255; +# option routers 192.33.137.250; +# option domain-name-servers 127.0.0.1; +# renew 2 2000/1/12 00:00:01; +# rebind 2 2000/1/12 00:00:01; +# expire 2 2000/1/12 00:00:01; +#} diff --git a/meta/recipes-connectivity/dhcp/files/dhcpd.conf b/meta/recipes-connectivity/dhcp/files/dhcpd.conf new file mode 100644 index 000000000..0001c0f00 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/files/dhcpd.conf @@ -0,0 +1,108 @@ +# +# Sample configuration file for ISC dhcpd for Debian +# +# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ +# + +# The ddns-updates-style parameter controls whether or not the server will +# attempt to do a DNS update when a lease is confirmed. We default to the +# behavior of the version 2 packages ('none', since DHCP v2 didn't +# have support for DDNS.) +ddns-update-style none; + +# option definitions common to all supported networks... +option domain-name "example.org"; +option domain-name-servers ns1.example.org, ns2.example.org; + +default-lease-time 600; +max-lease-time 7200; + +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +#authoritative; + +# Use this to send dhcp log messages to a different log file (you also +# have to hack syslog.conf to complete the redirection). +log-facility local7; + +# No service will be given on this subnet, but declaring it helps the +# DHCP server to understand the network topology. + +#subnet 10.152.187.0 netmask 255.255.255.0 { +#} + +# This is a very basic subnet declaration. + +#subnet 10.254.239.0 netmask 255.255.255.224 { +# range 10.254.239.10 10.254.239.20; +# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; +#} + +# This declaration allows BOOTP clients to get dynamic addresses, +# which we don't really recommend. + +#subnet 10.254.239.32 netmask 255.255.255.224 { +# range dynamic-bootp 10.254.239.40 10.254.239.60; +# option broadcast-address 10.254.239.31; +# option routers rtr-239-32-1.example.org; +#} + +# A slightly different configuration for an internal subnet. +#subnet 10.5.5.0 netmask 255.255.255.224 { +# range 10.5.5.26 10.5.5.30; +# option domain-name-servers ns1.internal.example.org; +# option domain-name "internal.example.org"; +# option routers 10.5.5.1; +# option broadcast-address 10.5.5.31; +# default-lease-time 600; +# max-lease-time 7200; +#} + +# Hosts which require special configuration options can be listed in +# host statements. If no address is specified, the address will be +# allocated dynamically (if possible), but the host-specific information +# will still come from the host declaration. + +#host passacaglia { +# hardware ethernet 0:0:c0:5d:bd:95; +# filename "vmunix.passacaglia"; +# server-name "toccata.fugue.com"; +#} + +# Fixed IP addresses can also be specified for hosts. These addresses +# should not also be listed as being available for dynamic assignment. +# Hosts for which fixed IP addresses have been specified can boot using +# BOOTP or DHCP. Hosts for which no fixed address is specified can only +# be booted with DHCP, unless there is an address range on the subnet +# to which a BOOTP client is connected which has the dynamic-bootp flag +# set. +#host fantasia { +# hardware ethernet 08:00:07:26:c0:a5; +# fixed-address fantasia.fugue.com; +#} + +# You can declare a class of clients and then do address allocation +# based on that. The example below shows a case where all clients +# in a certain class get addresses on the 10.17.224/24 subnet, and all +# other clients get addresses on the 10.0.29/24 subnet. + +#class "foo" { +# match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; +#} + +#shared-network 224-29 { +# subnet 10.17.224.0 netmask 255.255.255.0 { +# option routers rtr-224.example.org; +# } +# subnet 10.0.29.0 netmask 255.255.255.0 { +# option routers rtr-29.example.org; +# } +# pool { +# allow members of "foo"; +# range 10.17.224.10 10.17.224.250; +# } +# pool { +# deny members of "foo"; +# range 10.0.29.10 10.0.29.230; +# } +#} diff --git a/meta/recipes-connectivity/dhcp/files/init-relay b/meta/recipes-connectivity/dhcp/files/init-relay new file mode 100644 index 000000000..019a7e84c --- /dev/null +++ b/meta/recipes-connectivity/dhcp/files/init-relay @@ -0,0 +1,44 @@ +#!/bin/sh +# +# $Id: dhcp3-relay,v 1.1 2004/04/16 15:41:08 ml Exp $ +# + +# It is not safe to start if we don't have a default configuration... +if [ ! -f /etc/default/dhcp-relay ]; then + echo "/etc/default/dhcp-relay does not exist! - Aborting..." + echo "create this file to fix the problem." + exit 1 +fi + +# Read init script configuration (interfaces the daemon should listen on +# and the DHCP server we should forward requests to.) +. /etc/default/dhcp-relay + +# Build command line for interfaces (will be passed to dhrelay below.) +IFCMD="" +if test "$INTERFACES" != ""; then + for I in $INTERFACES; do + IFCMD=${IFCMD}"-i "${I}" " + done +fi + +DHCRELAYPID=/var/run/dhcrelay.pid + +case "$1" in + start) + start-stop-daemon -S -x /usr/sbin/dhcrelay -- -q $OPTIONS $IFCMD $SERVERS + ;; + stop) + start-stop-daemon -K -x /usr/sbin/dhcrelay + ;; + restart | force-reload) + $0 stop + sleep 2 + $0 start + ;; + *) + echo "Usage: /etc/init.d/dhcp-relay {start|stop|restart|force-reload}" + exit 1 +esac + +exit 0 diff --git a/meta/recipes-connectivity/dhcp/files/init-server b/meta/recipes-connectivity/dhcp/files/init-server new file mode 100644 index 000000000..34c20852b --- /dev/null +++ b/meta/recipes-connectivity/dhcp/files/init-server @@ -0,0 +1,44 @@ +#!/bin/sh +# +# $Id: dhcp3-server.init.d,v 1.4 2003/07/13 19:12:41 mdz Exp $ +# + +test -f /usr/sbin/dhcpd || exit 0 + +# It is not safe to start if we don't have a default configuration... +if [ ! -f /etc/default/dhcp-server ]; then + echo "/etc/default/dhcp-server does not exist! - Aborting..." + exit 0 +fi + +# Read init script configuration (so far only interfaces the daemon +# should listen on.) +. /etc/default/dhcp-server + +case "$1" in + start) + echo -n "Starting DHCP server: " + test -d /var/lib/dhcp/ || mkdir -p /var/lib/dhcp/ + test -f /var/lib/dhcp/dhcpd.leases || touch /var/lib/dhcp/dhcpd.leases + start-stop-daemon -S -x /usr/sbin/dhcpd -- -q $INTERFACES + echo "." + ;; + stop) + echo -n "Stopping DHCP server: dhcpd3" + start-stop-daemon -K -x /usr/sbin/dhcpd + echo "." + ;; + restart | force-reload) + $0 stop + sleep 2 + $0 start + if [ "$?" != "0" ]; then + exit 1 + fi + ;; + *) + echo "Usage: /etc/init.d/dhcp-server {start|stop|restart|force-reload}" + exit 1 +esac + +exit 0 diff --git a/meta/recipes-connectivity/galago/galago-daemon_0.5.1.bb b/meta/recipes-connectivity/galago/galago-daemon_0.5.1.bb new file mode 100644 index 000000000..81a367d73 --- /dev/null +++ b/meta/recipes-connectivity/galago/galago-daemon_0.5.1.bb @@ -0,0 +1,18 @@ +SUMMARY = "Desktop presence framework" +DESCRIPTION = "Galago is a desktop presence framework, designed to transmit presence information between programs." +HOMEPAGE = "http://www.galago-project.org/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "libgalago dbus glib-2.0" + +SRC_URI = "http://www.galago-project.org/files/releases/source/${BPN}/${BPN}-${PV}.tar.gz " + +SRC_URI[md5sum] = "fdb81f938f86f380b127158ebb542279" +SRC_URI[sha256sum] = "db42a0d1d0f8b069ea5ac1203207f9178f25ac1367f4910bd48547f5be1db4c2" + +EXTRA_OECONF = "--disable-binreloc --disable-check --disable-tests" + +FILES_${PN} += "${datadir}/dbus-1/services/" + +inherit autotools pkgconfig gettext + diff --git a/meta/recipes-connectivity/galago/libgalago-0.5.2/mkdir.patch b/meta/recipes-connectivity/galago/libgalago-0.5.2/mkdir.patch new file mode 100644 index 000000000..4f18686c0 --- /dev/null +++ b/meta/recipes-connectivity/galago/libgalago-0.5.2/mkdir.patch @@ -0,0 +1,29 @@ +Upstream-Status: Inappropriate [configuration] + +Index: libgalago-0.5.2/po/Makefile.in.in +=================================================================== +--- libgalago-0.5.2.orig/po/Makefile.in.in 2006-06-06 09:59:17.000000000 +0100 ++++ libgalago-0.5.2/po/Makefile.in.in 2009-08-19 20:31:56.000000000 +0100 +@@ -29,7 +29,7 @@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ + MKINSTALLDIRS = @MKINSTALLDIRS@ +-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(MKINSTALLDIRS)" ;; esac` ++mkinstalldirs = $(MKINSTALLDIRS) + + CC = @CC@ + GMSGFMT = @GMSGFMT@ +Index: libgalago-0.5.2/configure.ac +=================================================================== +--- libgalago-0.5.2.orig/configure.ac 2009-08-19 20:30:56.000000000 +0100 ++++ libgalago-0.5.2/configure.ac 2009-08-19 20:31:28.000000000 +0100 +@@ -157,6 +157,9 @@ + + AC_SUBST(CFLAGS) + ++MKINSTALLDIRS="mkdir -p" ++AC_SUBST(MKINSTALLDIRS) ++ + dnl ################################################################ + dnl # Output the Makefiles + dnl ################################################################ diff --git a/meta/recipes-connectivity/galago/libgalago-0.5.2/pkgconfig.patch b/meta/recipes-connectivity/galago/libgalago-0.5.2/pkgconfig.patch new file mode 100644 index 000000000..6fbf55252 --- /dev/null +++ b/meta/recipes-connectivity/galago/libgalago-0.5.2/pkgconfig.patch @@ -0,0 +1,16 @@ +Upstream-Status: Inappropriate [configuration] + +Index: libgalago-0.5.2/libgalago.pc.in +=================================================================== +--- libgalago-0.5.2.orig/libgalago.pc.in 2006-05-17 08:53:26.000000000 +0100 ++++ libgalago-0.5.2/libgalago.pc.in 2008-03-19 22:34:16.000000000 +0000 +@@ -6,6 +6,7 @@ + Name: libgalago + Description: Galago Association/Presence Communication Library + Version: @VERSION@ +-Libs: -L${libdir} -lgalago @PACKAGE_LIBS@ +-Cflags: -I${includedir} @PACKAGE_CFLAGS@ ++Requires: dbus-1 glib-2.0 dbus-glib-1 ++Libs: -L${libdir} -lgalago ++Cflags: -I${includedir} + diff --git a/meta/recipes-connectivity/galago/libgalago_0.5.2.bb b/meta/recipes-connectivity/galago/libgalago_0.5.2.bb new file mode 100644 index 000000000..1a5dd2378 --- /dev/null +++ b/meta/recipes-connectivity/galago/libgalago_0.5.2.bb @@ -0,0 +1,29 @@ +SUMMARY = "Desktop presence framework" +DESCRIPTION = "Galago is a desktop presence framework, designed to transmit presence information between programs." +HOMEPAGE = "http://www.galago-project.org/" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \ + file://libgalago/galago.h;endline=21;md5=141785cb9ec62067398dda136a7bb401" + +DEPENDS = "dbus glib-2.0 dbus-glib" + +SRC_URI = "http://www.galago-project.org/files/releases/source/${BPN}/${BPN}-${PV}.tar.gz \ + file://mkdir.patch \ + file://pkgconfig.patch " + +SRC_URI[md5sum] = "7ec92f2ecba1309ac4b71b4b4d8d0a0d" +SRC_URI[sha256sum] = "9b7c9845e2f661dbf5c2595e67bc7afd48f090ac2c033726c89d7f0e90791dfa" +PR = "r2" + +inherit autotools pkgconfig gettext + +EXTRA_OECONF = "--disable-tests --disable-check" + +do_configure_prepend_libc-uclibc() { + touch ${S}/config.rpath +} + +do_install_append() { + # We don't package autopackage files + rm -rf ${D}${datadir}/autopackage +} diff --git a/meta/recipes-connectivity/gsm/files/0001-Introduce-ports.patch b/meta/recipes-connectivity/gsm/files/0001-Introduce-ports.patch new file mode 100644 index 000000000..2a954d6d8 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/0001-Introduce-ports.patch @@ -0,0 +1,712 @@ +Upstream-Status: Inappropriate [not used] + +From 516d67c679101d1503dbd4c0613bcd6ff1b604e4 Mon Sep 17 00:00:00 2001 +From: Andrzej Zaborowski <balrog@zabor.org> +Date: Wed, 19 Sep 2007 14:03:28 +0200 +Subject: [PATCH] Introduce ports. + +--- + include/gsmd/atcmd.h | 2 +- + include/gsmd/gsmd.h | 7 +- + include/gsmd/uart.h | 28 ++++++ + include/gsmd/vendorplugin.h | 4 +- + src/gsmd/Makefile.am | 2 +- + src/gsmd/atcmd.c | 177 +++++++++++++++++--------------------- + src/gsmd/gsmd.c | 64 ++------------ + src/gsmd/uart.c | 202 +++++++++++++++++++++++++++++++++++++++++++ + 8 files changed, 328 insertions(+), 158 deletions(-) + create mode 100644 include/gsmd/uart.h + create mode 100644 src/gsmd/uart.c + +diff --git a/include/gsmd/atcmd.h b/include/gsmd/atcmd.h +index 0d6c62a..a1af6a0 100644 +--- a/include/gsmd/atcmd.h ++++ b/include/gsmd/atcmd.h +@@ -9,7 +9,7 @@ typedef int atcmd_cb_t(struct gsmd_atcmd *cmd, void *ctx, char *resp); + + extern struct gsmd_atcmd *atcmd_fill(const char *cmd, int rlen, atcmd_cb_t *cb, void *ctx, u_int16_t id); + extern int atcmd_submit(struct gsmd *g, struct gsmd_atcmd *cmd); +-extern int atcmd_init(struct gsmd *g, int sockfd); ++extern int atcmd_init(struct gsmd *g, struct gsmd_port *port); + extern void atcmd_drain(int fd); + + #endif /* __GSMD__ */ +diff --git a/include/gsmd/gsmd.h b/include/gsmd/gsmd.h +index ed334f1..4afdf66 100644 +--- a/include/gsmd/gsmd.h ++++ b/include/gsmd/gsmd.h +@@ -10,6 +10,7 @@ + #include <gsmd/machineplugin.h> + #include <gsmd/vendorplugin.h> + #include <gsmd/select.h> ++#include <gsmd/uart.h> + #include <gsmd/state.h> + + void *gsmd_tallocs; +@@ -52,6 +53,7 @@ enum llparse_state { + #define MLPARSE_BUF_SIZE 65535 + + struct llparser { ++ struct gsmd_port *port; + enum llparse_state state; + unsigned int len; + unsigned int flags; +@@ -70,7 +72,7 @@ struct gsmd; + struct gsmd { + unsigned int flags; + int interpreter_ready; +- struct gsmd_fd gfd_uart; ++ struct gsmd_uart uart; + struct gsmd_fd gfd_sock; + struct llparser llp; + struct llist_head users; +@@ -81,9 +83,10 @@ struct gsmd { + struct gsmd_device_state dev_state; + + struct llist_head operators; /* cached list of operator names */ +- unsigned char *mlbuf; /* ml_parse buffer */ ++ char *mlbuf; /* ml_parse buffer */ + unsigned int mlbuf_len; + int mlunsolicited; ++ int clear_to_send; + }; + + struct gsmd_user { +diff --git a/include/gsmd/uart.h b/include/gsmd/uart.h +new file mode 100644 +index 0000000..a006fa7 +--- /dev/null ++++ b/include/gsmd/uart.h +@@ -0,0 +1,28 @@ ++#ifndef __GSMD_UART_H ++#define __GSMD_UART_H ++ ++#ifdef __GSMD__ ++ ++struct gsmd_port { ++ int (*write)(struct gsmd_port *port, const char data[], int len); ++ int (*set_break)(struct gsmd_port *port, int state); ++ /* more parameters here */ ++ int (*newdata_cb)(void *opaque, const char data[], int len); ++ void *newdata_opaque; ++}; ++ ++struct gsmd_uart { ++ struct gsmd_port port; ++ struct gsmd_fd gfd; ++ char txfifo[2048]; ++ int tx_start; ++ int tx_len; ++}; ++ ++extern int set_baudrate(int fd, int baudrate, int hwflow); ++extern void uart_drain(int fd); ++extern int uart_init(struct gsmd_uart *uart, int sockfd); ++ ++#endif /* __GSMD__ */ ++ ++#endif +diff --git a/include/gsmd/vendorplugin.h b/include/gsmd/vendorplugin.h +index 1911fef..1c82790 100644 +--- a/include/gsmd/vendorplugin.h ++++ b/include/gsmd/vendorplugin.h +@@ -11,8 +11,8 @@ struct gsmd_unsolicit; + + struct gsmd_vendor_plugin { + struct llist_head list; +- unsigned char *name; +- unsigned char *ext_chars; ++ char *name; ++ char *ext_chars; + unsigned int num_unsolicit; + const struct gsmd_unsolicit *unsolicit; + int (*detect)(struct gsmd *g); +diff --git a/src/gsmd/Makefile.am b/src/gsmd/Makefile.am +index 9ac45ee..110b757 100644 +--- a/src/gsmd/Makefile.am ++++ b/src/gsmd/Makefile.am +@@ -13,7 +13,7 @@ sbin_PROGRAMS = gsmd + gsmd_CFLAGS = -D PLUGINDIR=\"$(plugindir)\" + gsmd_SOURCES = gsmd.c atcmd.c select.c machine.c vendor.c unsolicited.c log.c \ + usock.c talloc.c timer.c operator_cache.c ext_response.c \ +- sms_cb.c sms_pdu.c ++ sms_cb.c sms_pdu.c uart.c + gsmd_LDADD = -ldl + gsmd_LDFLAGS = -Wl,--export-dynamic + +diff --git a/src/gsmd/atcmd.c b/src/gsmd/atcmd.c +index 2ef6a10..27dfa41 100644 +--- a/src/gsmd/atcmd.c ++++ b/src/gsmd/atcmd.c +@@ -159,7 +159,8 @@ static int llparse_byte(struct llparser *llp, char byte) + return ret; + } + +-static int llparse_string(struct llparser *llp, char *buf, unsigned int len) ++static int llparse_string(struct llparser *llp, const char *buf, ++ unsigned int len) + { + while (len--) { + int rc = llparse_byte(llp, *(buf++)); +@@ -187,6 +188,55 @@ static int llparse_init(struct llparser *llp) + return 0; + } + ++/* See if we can now send more commands to the port */ ++static void atcmd_wake_queue(struct gsmd *g) ++{ ++ int len, rc; ++ char *cr; ++ ++ /* write pending commands to UART */ ++ while (g->interpreter_ready && g->clear_to_send) { ++ struct gsmd_atcmd *pos, *pos2; ++ llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) { ++ cr = strchr(pos->cur, '\n'); ++ if (cr) ++ len = cr - pos->cur; ++ else ++ len = pos->buflen; ++ rc = g->llp.port->write(g->llp.port, pos->cur, len); ++ if (rc == 0) { ++ gsmd_log(GSMD_ERROR, ++ "write returns 0, aborting\n"); ++ break; ++ } ++ if (cr && rc == len) ++ rc ++; /* Skip the \n */ ++ pos->buflen -= rc; ++ pos->cur += rc; ++ g->llp.port->write(g->llp.port, "\r", 1); ++ ++ if (!pos->buflen) { ++ /* success: remove from global list of ++ * to-be-sent atcmds */ ++ llist_del(&pos->list); ++ /* append to global list of executing atcmds */ ++ llist_add_tail(&pos->list, &g->busy_atcmds); ++ ++ /* we only send one cmd at the moment */ ++ g->clear_to_send = 0; ++ break; ++ } else { ++ /* The write was short or the atcmd has more ++ * lines to send after a "> ". */ ++ if (rc < len) ++ break; ++ g->clear_to_send = 0; ++ break; ++ } ++ } ++ } ++} ++ + /* mid-level parser */ + + static int parse_final_result(const char *res) +@@ -216,6 +266,7 @@ static int ml_parse(const char *buf, int len, void *ctx) + g->interpreter_ready = 1; + gsmd_initsettings(g); + gmsd_alive_start(g); ++ atcmd_wake_queue(g); + return 0; + } + +@@ -316,6 +367,7 @@ static int ml_parse(const char *buf, int len, void *ctx) + } else { + DEBUGP("Calling cmd->cb()\n"); + cmd->resp = g->mlbuf; ++ g->mlbuf[g->mlbuf_len] = 0; + rc = cmd->cb(cmd, cmd->ctx, cmd->resp); + DEBUGP("Clearing mlbuf\n"); + } +@@ -370,12 +422,15 @@ static int ml_parse(const char *buf, int len, void *ctx) + if (g->mlbuf_len) + g->mlbuf[g->mlbuf_len ++] = '\n'; + DEBUGP("Appending buf to mlbuf\n"); +- if (len > MLPARSE_BUF_SIZE - g->mlbuf_len) ++ if (len > MLPARSE_BUF_SIZE - g->mlbuf_len) { + len = MLPARSE_BUF_SIZE - g->mlbuf_len; ++ gsmd_log(GSMD_NOTICE, "g->mlbuf overrun\n"); ++ } + memcpy(g->mlbuf + g->mlbuf_len, buf, len); + g->mlbuf_len += len; + + if (g->mlunsolicited) { ++ g->mlbuf[g->mlbuf_len] = 0; + rc = unsolicited_parse(g, g->mlbuf, g->mlbuf_len, + strchr(g->mlbuf, ':') + 1); + if (rc == -EAGAIN) { +@@ -422,8 +477,11 @@ final_cb: + + /* if we're finished with current commands, but still have pending + * commands: we want to WRITE again */ +- if (llist_empty(&g->busy_atcmds) && !llist_empty(&g->pending_atcmds)) +- g->gfd_uart.when |= GSMD_FD_WRITE; ++ if (llist_empty(&g->busy_atcmds)) { ++ g->clear_to_send = 1; ++ if (!llist_empty(&g->pending_atcmds)) ++ atcmd_wake_queue(g); ++ } + + return rc; + } +@@ -433,85 +491,23 @@ static int atcmd_prompt(void *data) + { + struct gsmd *g = data; + +- g->gfd_uart.when |= GSMD_FD_WRITE; ++ g->clear_to_send = 1; ++ atcmd_wake_queue(g); + } + + /* callback to be called if [virtual] UART has some data for us */ +-static int atcmd_select_cb(int fd, unsigned int what, void *data) ++static int atcmd_newdata_cb(void *opaque, const char data[], int len) + { +- int len, rc; +- static char rxbuf[1024]; +- struct gsmd *g = data; +- char *cr; +- +- if (what & GSMD_FD_READ) { +- memset(rxbuf, 0, sizeof(rxbuf)); +- while ((len = read(fd, rxbuf, sizeof(rxbuf)))) { +- if (len < 0) { +- if (errno == EAGAIN) +- return 0; +- gsmd_log(GSMD_NOTICE, "ERROR reading from fd %u: %d (%s)\n", fd, len, +- strerror(errno)); +- return len; +- } +- rc = llparse_string(&g->llp, rxbuf, len); +- if (rc < 0) { +- gsmd_log(GSMD_ERROR, "ERROR during llparse_string: %d\n", rc); +- return rc; +- } +- } +- } +- +- /* write pending commands to UART */ +- if ((what & GSMD_FD_WRITE) && g->interpreter_ready) { +- struct gsmd_atcmd *pos, *pos2; +- llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) { +- cr = strchr(pos->cur, '\n'); +- if (cr) +- len = cr - pos->cur; +- else +- len = pos->buflen - 1; /* assuming zero-terminated strings */ +- rc = write(fd, pos->cur, len); +- if (rc == 0) { +- gsmd_log(GSMD_ERROR, "write returns 0, aborting\n"); +- break; +- } else if (rc < 0) { +- gsmd_log(GSMD_ERROR, "error during write to fd %d: %d\n", +- fd, rc); +- return rc; +- } +- if (!cr || rc == len) +- rc ++; /* Skip the \n or \0 */ +- pos->buflen -= rc; +- pos->cur += rc; +- write(fd, "\r", 1); +- +- if (!pos->buflen) { +- /* success: remove from global list of +- * to-be-sent atcmds */ +- llist_del(&pos->list); +- /* append to global list of executing atcmds */ +- llist_add_tail(&pos->list, &g->busy_atcmds); +- +- /* we only send one cmd at the moment */ +- break; +- } else { +- /* The write was short or the atcmd has more +- * lines to send after a "> ". */ +- if (rc < len) +- return 0; +- break; +- } +- } ++ struct gsmd *g = opaque; ++ int rc; + +- /* Either pending_atcmds is empty or a command has to wait */ +- g->gfd_uart.when &= ~GSMD_FD_WRITE; +- } ++ rc = llparse_string(&g->llp, data, len); ++ if (rc < 0) ++ gsmd_log(GSMD_ERROR, "ERROR during llparse_string: %d\n", rc); + +- return 0; ++ return rc; + } + +- + struct gsmd_atcmd *atcmd_fill(const char *cmd, int rlen, + atcmd_cb_t cb, void *ctx, u_int16_t id) + { +@@ -544,36 +540,18 @@ int atcmd_submit(struct gsmd *g, struct gsmd_atcmd *cmd) + { + DEBUGP("submitting command `%s'\n", cmd->buf); + +- if (llist_empty(&g->pending_atcmds)) +- g->gfd_uart.when |= GSMD_FD_WRITE; ++ llist_empty(&g->pending_atcmds); + llist_add_tail(&cmd->list, &g->pending_atcmds); ++ atcmd_wake_queue(g); + + return 0; + } + +-void atcmd_drain(int fd) +-{ +- int rc; +- struct termios t; +- rc = tcflush(fd, TCIOFLUSH); +- rc = tcgetattr(fd, &t); +- DEBUGP("c_iflag = 0x%08x, c_oflag = 0x%08x, c_cflag = 0x%08x, c_lflag = 0x%08x\n", +- t.c_iflag, t.c_oflag, t.c_cflag, t.c_lflag); +- t.c_iflag = t.c_oflag = 0; +- cfmakeraw(&t); +- rc = tcsetattr(fd, TCSANOW, &t); +-} +- + /* init atcmd parser */ +-int atcmd_init(struct gsmd *g, int sockfd) ++int atcmd_init(struct gsmd *g, struct gsmd_port *port) + { + __atcmd_ctx = talloc_named_const(gsmd_tallocs, 1, "atcmds"); + +- g->gfd_uart.fd = sockfd; +- g->gfd_uart.when = GSMD_FD_READ; +- g->gfd_uart.data = g; +- g->gfd_uart.cb = &atcmd_select_cb; +- + INIT_LLIST_HEAD(&g->pending_atcmds); + INIT_LLIST_HEAD(&g->busy_atcmds); + +@@ -581,7 +559,9 @@ int atcmd_init(struct gsmd *g, int sockfd) + + g->mlbuf_len = 0; + g->mlunsolicited = 0; ++ g->clear_to_send = 1; + ++ g->llp.port = port; + g->llp.cur = g->llp.buf; + g->llp.len = sizeof(g->llp.buf); + g->llp.cb = &ml_parse; +@@ -589,5 +569,8 @@ int atcmd_init(struct gsmd *g, int sockfd) + g->llp.ctx = g; + g->llp.flags = LGSM_ATCMD_F_EXTENDED; + +- return gsmd_register_fd(&g->gfd_uart); ++ port->newdata_opaque = g; ++ port->newdata_cb = atcmd_newdata_cb; ++ ++ return 0; + } +diff --git a/src/gsmd/gsmd.c b/src/gsmd/gsmd.c +index 51b4f2c..846bd17 100644 +--- a/src/gsmd/gsmd.c ++++ b/src/gsmd/gsmd.c +@@ -26,7 +26,6 @@ + #include <string.h> + #include <errno.h> + #include <fcntl.h> +-#include <termios.h> + #include <signal.h> + + #define _GNU_SOURCE +@@ -247,56 +246,6 @@ int gsmd_initsettings(struct gsmd *gsmd) + return atcmd_submit(gsmd, cmd); + } + +-struct bdrt { +- int bps; +- u_int32_t b; +-}; +- +-static struct bdrt bdrts[] = { +- { 0, B0 }, +- { 9600, B9600 }, +- { 19200, B19200 }, +- { 38400, B38400 }, +- { 57600, B57600 }, +- { 115200, B115200 }, +- { 230400, B230400 }, +- { 460800, B460800 }, +- { 921600, B921600 }, +-}; +- +-static int set_baudrate(int fd, int baudrate, int hwflow) +-{ +- int i; +- u_int32_t bd = 0; +- struct termios ti; +- +- for (i = 0; i < ARRAY_SIZE(bdrts); i++) { +- if (bdrts[i].bps == baudrate) +- bd = bdrts[i].b; +- } +- if (bd == 0) +- return -EINVAL; +- +- i = tcgetattr(fd, &ti); +- if (i < 0) +- return i; +- +- i = cfsetispeed(&ti, B0); +- if (i < 0) +- return i; +- +- i = cfsetospeed(&ti, bd); +- if (i < 0) +- return i; +- +- if (hwflow) +- ti.c_cflag |= CRTSCTS; +- else +- ti.c_cflag &= ~CRTSCTS; +- +- return tcsetattr(fd, 0, &ti); +-} +- + static int gsmd_initialize(struct gsmd *g) + { + INIT_LLIST_HEAD(&g->users); +@@ -478,14 +427,19 @@ int main(int argc, char **argv) + if (wait >= 0) + g.interpreter_ready = !wait; + +- if (atcmd_init(&g, fd) < 0) { ++ if (uart_init(&g.uart, fd) < 0) { + fprintf(stderr, "can't initialize UART device\n"); + exit(1); + } + +- write(fd, "\r", 1); +- sleep(1); +- atcmd_drain(fd); ++ if (atcmd_init(&g, &g.uart.port) < 0) { ++ fprintf(stderr, "can't initialize AT parser\n"); ++ exit(1); ++ } ++ write(fd, "\r", 1); ++ sleep(1); ++ ++ uart_drain(fd); + + if (usock_init(&g) < 0) { + fprintf(stderr, "can't open unix socket\n"); +diff --git a/src/gsmd/uart.c b/src/gsmd/uart.c +new file mode 100644 +index 0000000..22a4a5c +--- /dev/null ++++ b/src/gsmd/uart.c +@@ -0,0 +1,202 @@ ++/* Wrapper for the physical UART in a struct gsmd_port abstraction. ++ * ++ * Copyright (C) 2007 OpenMoko, Inc. ++ * Written by Andrzej Zaborowski <andrew@openedhand.com> ++ * ++ * 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 <string.h> ++#include <fcntl.h> ++#include <termios.h> ++#include <unistd.h> ++#include <errno.h> ++ ++#include "gsmd.h" ++ ++#include <gsmd/gsmd.h> ++ ++void uart_drain(int fd) ++{ ++ int rc; ++ struct termios t; ++ rc = tcflush(fd, TCIOFLUSH); ++ rc = tcgetattr(fd, &t); ++ DEBUGP( ++ "c_iflag = 0x%08x, c_oflag = 0x%08x, " ++ "c_cflag = 0x%08x, c_lflag = 0x%08x\n", ++ t.c_iflag, t.c_oflag, t.c_cflag, t.c_lflag); ++ t.c_iflag = t.c_oflag = 0; ++ cfmakeraw(&t); ++ rc = tcsetattr(fd, TCSANOW, &t); ++} ++ ++struct bdrt { ++ int bps; ++ u_int32_t b; ++}; ++ ++static struct bdrt bdrts[] = { ++ { 0, B0 }, ++ { 9600, B9600 }, ++ { 19200, B19200 }, ++ { 38400, B38400 }, ++ { 57600, B57600 }, ++ { 115200, B115200 }, ++ { 230400, B230400 }, ++ { 460800, B460800 }, ++ { 921600, B921600 }, ++}; ++ ++int set_baudrate(int fd, int baudrate, int hwflow) ++{ ++ int i; ++ u_int32_t bd = 0; ++ struct termios ti; ++ ++ for (i = 0; i < ARRAY_SIZE(bdrts); i++) { ++ if (bdrts[i].bps == baudrate) ++ bd = bdrts[i].b; ++ } ++ if (bd == 0) ++ return -EINVAL; ++ ++ i = tcgetattr(fd, &ti); ++ if (i < 0) ++ return i; ++ ++ i = cfsetispeed(&ti, B0); ++ if (i < 0) ++ return i; ++ ++ i = cfsetospeed(&ti, bd); ++ if (i < 0) ++ return i; ++ ++ if (hwflow) ++ ti.c_cflag |= CRTSCTS; ++ else ++ ti.c_cflag &= ~CRTSCTS; ++ ++ return tcsetattr(fd, 0, &ti); ++} ++ ++static int uart_select_cb(int fd, unsigned int what, void *data) ++{ ++ struct gsmd_uart *uart = (struct gsmd_uart *) data; ++ static char rxbuf[2048]; ++ int rc, len; ++ ++ if ((what & GSMD_FD_READ) && uart->port.newdata_cb) { ++ while ((len = read(fd, rxbuf, sizeof(rxbuf)))) { ++ if (len < 0) { ++ if (errno == EAGAIN || errno == EINTR) ++ return 0; ++ gsmd_log(GSMD_NOTICE, "ERROR reading from " ++ "fd %u: %d (%s)\n", fd, errno, ++ strerror(errno)); ++ return -errno; ++ } ++ ++ rc = uart->port.newdata_cb( ++ uart->port.newdata_opaque, ++ rxbuf, ++ len); ++ if (rc < 0) ++ return rc; ++ } ++ } ++ ++ /* Write pending data to UART. */ ++ if ((what & GSMD_FD_WRITE) && uart->tx_len) { ++ while (uart->tx_start + uart->tx_len >= sizeof(uart->txfifo)) { ++ len = sizeof(uart->txfifo) - uart->tx_start; ++ rc = write(fd, &uart->txfifo[uart->tx_start], len); ++ if (rc < 0 && errno != EINTR) { ++ if (errno == EAGAIN) ++ return 0; ++ gsmd_log(GSMD_NOTICE, "ERROR writing " ++ "fd %u: %d (%s)\n", fd, errno, ++ strerror(errno)); ++ return -errno; ++ } ++ ++ if (rc > 0) { ++ uart->tx_start += rc; ++ uart->tx_len -= rc; ++ } ++ } ++ uart->tx_start &= sizeof(uart->txfifo) - 1; ++ ++ while (uart->tx_len) { ++ rc = write(fd, &uart->txfifo[uart->tx_start], ++ uart->tx_len); ++ if (rc < 0 && errno != EINTR) { ++ if (errno == EAGAIN) ++ return 0; ++ gsmd_log(GSMD_NOTICE, "ERROR writing " ++ "fd %u: %d (%s)\n", fd, errno, ++ strerror(errno)); ++ return -errno; ++ } ++ ++ if (rc > 0) { ++ uart->tx_start += rc; ++ uart->tx_len -= rc; ++ } ++ } ++ ++ /* If we reached here, there's no more data for the moment. */ ++ uart->gfd.when &= ~GSMD_FD_WRITE; ++ } ++ ++ return 0; ++} ++ ++static int uart_write(struct gsmd_port *port, const char data[], int len) ++{ ++ struct gsmd_uart *uart = (struct gsmd_uart *) port; ++ int start = (uart->tx_start + uart->tx_len) & ++ (sizeof(uart->txfifo) - 1); ++ int space = sizeof(uart->txfifo) - start; ++ ++ if (uart->tx_len + len > sizeof(uart->txfifo)) ++ len = sizeof(uart->txfifo) - uart->tx_len; ++ ++ if (len) ++ uart->gfd.when |= GSMD_FD_WRITE; ++ ++ if (len > space) { ++ memcpy(uart->txfifo + start, data, space); ++ memcpy(uart->txfifo, data + space, len - space); ++ } else ++ memcpy(uart->txfifo + start, data, len); ++ ++ uart->tx_len += len; ++ return len; ++} ++ ++int uart_init(struct gsmd_uart *uart, int sockfd) ++{ ++ uart->gfd.fd = sockfd; ++ uart->gfd.when = GSMD_FD_READ; ++ uart->gfd.data = uart; ++ uart->gfd.cb = &uart_select_cb; ++ ++ uart->port.write = uart_write; ++ ++ return gsmd_register_fd(&uart->gfd); ++} +-- +1.5.2.1 + diff --git a/meta/recipes-connectivity/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch b/meta/recipes-connectivity/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch new file mode 100644 index 000000000..51d50b917 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch @@ -0,0 +1,76 @@ +Upstream-Status: Inappropriate [not used] + +From 1078f7aced63c6216bffe649930b97c9ccf9a16e Mon Sep 17 00:00:00 2001 +From: Andrzej Zaborowski <balrog@zabor.org> +Date: Wed, 19 Sep 2007 14:04:50 +0200 +Subject: [PATCH] Flush all pending commands before restarting the modem initialisation. + +--- + include/gsmd/gsmd.h | 1 + + src/gsmd/atcmd.c | 21 +++++++++++++++++++++ + src/gsmd/timer.c | 8 ++++++++ + 3 files changed, 30 insertions(+), 0 deletions(-) + +diff --git a/include/gsmd/gsmd.h b/include/gsmd/gsmd.h +index 4afdf66..6ac9d8e 100644 +--- a/include/gsmd/gsmd.h ++++ b/include/gsmd/gsmd.h +@@ -131,6 +131,7 @@ struct gsmd_timer { + + int gsmd_timer_init(void); + void gmsd_timer_check_n_run(void); ++void gsmd_timer_reset(void); + + struct gsmd_timer *gsmd_timer_alloc(void); + int gsmd_timer_register(struct gsmd_timer *timer); +diff --git a/src/gsmd/atcmd.c b/src/gsmd/atcmd.c +index 27dfa41..2f6cee2 100644 +--- a/src/gsmd/atcmd.c ++++ b/src/gsmd/atcmd.c +@@ -264,6 +264,27 @@ static int ml_parse(const char *buf, int len, void *ctx) + if (strlen(buf) == 0 || + !strcmp(buf, "AT-Command Interpreter ready")) { + g->interpreter_ready = 1; ++ g->clear_to_send = 1; ++ ++ /* Flush current queue and reinitialise */ ++ while (!llist_empty(&g->busy_atcmds)) { ++ cmd = llist_entry(g->busy_atcmds.next, ++ struct gsmd_atcmd, list); ++ gsmd_log(GSMD_NOTICE, "discarding busy cmd %s\n", ++ cmd->buf); ++ llist_del(&cmd->list); ++ talloc_free(cmd); ++ } ++ while (!llist_empty(&g->pending_atcmds)) { ++ cmd = llist_entry(g->pending_atcmds.next, ++ struct gsmd_atcmd, list); ++ gsmd_log(GSMD_NOTICE, "discarding pending cmd %s\n", ++ cmd->buf); ++ llist_del(&cmd->list); ++ talloc_free(cmd); ++ } ++ ++ gsmd_timer_reset(); + gsmd_initsettings(g); + gmsd_alive_start(g); + atcmd_wake_queue(g); +diff --git a/src/gsmd/timer.c b/src/gsmd/timer.c +index 5200690..8877275 100644 +--- a/src/gsmd/timer.c ++++ b/src/gsmd/timer.c +@@ -215,3 +215,11 @@ void gsmd_timer_unregister(struct gsmd_timer *timer) + /* re-calculate next expiration */ + calc_next_expiration(); + } ++ ++void gsmd_timer_reset(void) ++{ ++ while (!llist_empty(&gsmd_timers)) ++ /* TODO: free associated resources (e.g timer->cancel_cb()) */ ++ llist_del(&llist_entry(gsmd_timers.next, ++ struct gsmd_timer, list)->list); ++} +-- +1.5.2.1 + diff --git a/meta/recipes-connectivity/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch b/meta/recipes-connectivity/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch new file mode 100644 index 000000000..87aaf6b3b --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch @@ -0,0 +1,79 @@ +Upstream-Status: Inappropriate [not used] + +From 8af1bb4a0d0df9baa80859c5f7f56cbd7634aded Mon Sep 17 00:00:00 2001 +From: Andrzej Zaborowski <balrog@zabor.org> +Date: Wed, 19 Sep 2007 14:06:19 +0200 +Subject: [PATCH] Correctly segment incoming usock data into packets, handler short reads. + +--- + include/gsmd/gsmd.h | 2 ++ + src/gsmd/usock.c | 20 ++++++++++++++++---- + 2 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/include/gsmd/gsmd.h b/include/gsmd/gsmd.h +index 6ac9d8e..acec02a 100644 +--- a/include/gsmd/gsmd.h ++++ b/include/gsmd/gsmd.h +@@ -95,6 +95,8 @@ struct gsmd_user { + struct gsmd *gsmd; + struct gsmd_fd gfd; /* the socket */ + u_int32_t subscriptions; /* bitmaks of subscribed event groups */ ++ char usock_fifo[1024]; ++ int usock_len; + + struct llist_head pb_readrg_list; /* our READRG phonebook list */ + struct llist_head pb_find_list; /* our FIND phonebook list */ +diff --git a/src/gsmd/usock.c b/src/gsmd/usock.c +index 32e98d0..bac5f0c 100644 +--- a/src/gsmd/usock.c ++++ b/src/gsmd/usock.c +@@ -1529,14 +1529,15 @@ static int usock_rcv_pcmd(struct gsmd_user *gu, char *buf, int len) + static int gsmd_usock_user_cb(int fd, unsigned int what, void *data) + { + struct gsmd_user *gu = data; ++ struct gsmd_msg_hdr *gph; + + /* FIXME: check some kind of backlog and limit it */ + + if (what & GSMD_FD_READ) { +- char buf[1024]; + int rcvlen; + /* read data from socket, determine what he wants */ +- rcvlen = read(fd, buf, sizeof(buf)); ++ rcvlen = read(fd, gu->usock_fifo + gu->usock_len, ++ sizeof(gu->usock_fifo) - gu->usock_len); + if (rcvlen == 0) { + DEBUGP("EOF, this client has just vanished\n"); + /* EOF, this client has just vanished */ +@@ -1549,8 +1550,18 @@ static int gsmd_usock_user_cb(int fd, unsigned int what, void *data) + return 0; + } else if (rcvlen < 0) + return rcvlen; +- else +- return usock_rcv_pcmd(gu, buf, rcvlen); ++ ++ gu->usock_len += rcvlen; ++ gph = (struct gsmd_msg_hdr *) gu->usock_fifo; ++ while (gu->usock_len >= sizeof(*gph) && ++ gu->usock_len >= sizeof(*gph) + gph->len) { ++ usock_rcv_pcmd(gu, gu->usock_fifo, gu->usock_len); ++ gu->usock_len -= sizeof(*gph) + gph->len; ++ memmove(gu->usock_fifo, ++ gu->usock_fifo + sizeof(*gph) + ++ gph->len, ++ gu->usock_len); ++ } + } + + if (what & GSMD_FD_WRITE) { +@@ -1609,6 +1620,7 @@ static int gsmd_usock_cb(int fd, unsigned int what, void *data) + newuser->gfd.cb = &gsmd_usock_user_cb; + newuser->gsmd = g; + newuser->subscriptions = 0xffffffff; ++ newuser->usock_len = 0; + INIT_LLIST_HEAD(&newuser->finished_ucmds); + INIT_LLIST_HEAD(&newuser->pb_readrg_list); + INIT_LLIST_HEAD(&newuser->pb_find_list); +-- +1.5.2.1 + diff --git a/meta/recipes-connectivity/gsm/files/0004-Handle-read-and-write-return-values.patch b/meta/recipes-connectivity/gsm/files/0004-Handle-read-and-write-return-values.patch new file mode 100644 index 000000000..84a4aa12f --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/0004-Handle-read-and-write-return-values.patch @@ -0,0 +1,178 @@ +Upstream-Status: Inappropriate [not used] + +From 421b0fa14fefbd13a455c20380fecddda616b41a Mon Sep 17 00:00:00 2001 +From: Andrzej Zaborowski <balrog@zabor.org> +Date: Wed, 19 Sep 2007 18:30:36 +0200 +Subject: [PATCH] Handle read() and write() return values. + +--- + include/libgsmd/libgsmd.h | 3 +- + src/gsmd/usock.c | 38 ++++++++++++++++----------- + src/libgsmd/lgsm_internals.h | 2 + + src/libgsmd/libgsmd.c | 58 ++++++++++++++++++++++++++--------------- + 4 files changed, 63 insertions(+), 38 deletions(-) + +diff --git a/include/libgsmd/libgsmd.h b/include/libgsmd/libgsmd.h +index fc56890..db15aa9 100644 +--- a/include/libgsmd/libgsmd.h ++++ b/include/libgsmd/libgsmd.h +@@ -65,6 +65,7 @@ extern int lgsm_subscriptions(struct lgsm_handle *lh, u_int32_t subscriptions); + + extern struct gsmd_msg_hdr *lgsm_gmh_fill(int type, int subtype, int payload_len); + extern int lgsm_send(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh); +-extern int lgsm_handle_packet(struct lgsm_handle *lh, char *buf, int len); ++extern int lgsm_handle_packet(struct lgsm_handle *lh, ++ const char *buf, int len); + + #endif +diff --git a/src/gsmd/usock.c b/src/gsmd/usock.c +index bac5f0c..2283600 100644 +--- a/src/gsmd/usock.c ++++ b/src/gsmd/usock.c +@@ -1569,23 +1569,29 @@ static int gsmd_usock_user_cb(int fd, unsigned int what, void *data) + struct gsmd_ucmd *ucmd, *uctmp; + llist_for_each_entry_safe(ucmd, uctmp, &gu->finished_ucmds, + list) { +- int rc; +- +- rc = write(fd, &ucmd->hdr, sizeof(ucmd->hdr) + ucmd->hdr.len); +- if (rc < 0) { +- DEBUGP("write return %d\n", rc); +- return rc; +- } +- if (rc == 0) { +- DEBUGP("write returns zero!!\n"); +- break; ++ const void *pos = &ucmd->hdr; ++ size_t len = sizeof(ucmd->hdr) + ucmd->hdr.len; ++ ++ while (len) { ++ ssize_t rc; ++ ++ rc = write(fd, pos, len); ++ if (rc < 0 && errno != EINTR) { ++ DEBUGP("write returned %s\n", ++ strerror(errno)); ++ return rc; ++ } ++ if (rc == 0 && pos == &ucmd->hdr) { ++ DEBUGP("write returns zero!!\n"); ++ return 0; ++ } ++ if (rc > 0) { ++ len -= rc; ++ pos += rc; ++ } + } +- if (rc != sizeof(ucmd->hdr) + ucmd->hdr.len) { +- DEBUGP("short write\n"); +- break; +- } +- +- DEBUGP("successfully sent cmd %p to user %p, freeing\n", ucmd, gu); ++ DEBUGP("successfully sent cmd %p to user %p, " ++ "freeing\n", ucmd, gu); + llist_del(&ucmd->list); + talloc_free(ucmd); + } +diff --git a/src/libgsmd/lgsm_internals.h b/src/libgsmd/lgsm_internals.h +index c826723..f1b1a23 100644 +--- a/src/libgsmd/lgsm_internals.h ++++ b/src/libgsmd/lgsm_internals.h +@@ -8,6 +8,8 @@ struct lgsm_handle { + int fd; + lgsm_msg_handler *handler[__NUM_GSMD_MSGS]; + enum lgsm_netreg_state netreg_state; ++ char usock_fifo[1024]; ++ int usock_len; + }; + + int lgsm_send(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh); +diff --git a/src/libgsmd/libgsmd.c b/src/libgsmd/libgsmd.c +index 9906ea8..cc804ed 100644 +--- a/src/libgsmd/libgsmd.c ++++ b/src/libgsmd/libgsmd.c +@@ -86,34 +86,37 @@ static int lgsm_open_backend(struct lgsm_handle *lh, const char *device) + } + + /* handle a packet that was received on the gsmd socket */ +-int lgsm_handle_packet(struct lgsm_handle *lh, char *buf, int len) ++int lgsm_handle_packet(struct lgsm_handle *lh, const char *buf, int len) + { + struct gsmd_msg_hdr *gmh; + lgsm_msg_handler *handler; + int rc = 0; + +- while (len) { +- if (len < sizeof(*gmh)) +- return -EINVAL; +- gmh = (struct gsmd_msg_hdr *) buf; +- +- if (len - sizeof(*gmh) < gmh->len) +- return -EINVAL; +- len -= sizeof(*gmh) + gmh->len; +- buf += sizeof(*gmh) + gmh->len; +- +- if (gmh->msg_type >= __NUM_GSMD_MSGS) +- return -EINVAL; +- +- handler = lh->handler[gmh->msg_type]; ++ if (lh->usock_len + len > sizeof(lh->usock_fifo)) ++ return -ENOMEM; + +- if (handler) ++ memcpy(lh->usock_fifo + lh->usock_len, buf, len); ++ lh->usock_len += len; ++ gmh = (struct gsmd_msg_hdr *) lh->usock_fifo; ++ while (lh->usock_len >= sizeof(*gmh) && ++ lh->usock_len >= sizeof(*gmh) + gmh->len) { ++ if (gmh->msg_type < __NUM_GSMD_MSGS && ++ (handler = lh->handler[gmh->msg_type])) + rc |= handler(lh, gmh); +- else +- fprintf(stderr, "unable to handle packet type=%u\n", +- gmh->msg_type); ++ else { ++ fprintf(stderr, "unable to handle packet " ++ "type=%u id=%u\n", ++ gmh->msg_type, gmh->id); ++ rc |= EINVAL; ++ } ++ ++ lh->usock_len -= gmh->len + sizeof(*gmh); ++ memmove(lh->usock_fifo, ++ lh->usock_fifo + gmh->len + sizeof(*gmh), ++ lh->usock_len); + } +- return rc; ++ ++ return -rc; + } + + int lgsm_register_handler(struct lgsm_handle *lh, int type, lgsm_msg_handler *handler) +@@ -193,8 +196,21 @@ static u_int16_t next_msg_id; + + int lgsm_send(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh) + { ++ ssize_t rc; ++ size_t len = sizeof(*gmh) + gmh->len; ++ const void *pos = gmh; ++ + gmh->id = next_msg_id++; +- return send(lh->fd, (char *) gmh, sizeof(*gmh) + gmh->len, 0); ++ while (len) { ++ rc = send(lh->fd, pos, len, 0); ++ if (rc < 0 && errno != EINTR) ++ return -errno; ++ if (rc > 0) { ++ len -= rc; ++ pos += rc; ++ } ++ } ++ return 0; + } + + struct gsmd_msg_hdr *lgsm_gmh_fill(int type, int subtype, int payload_len) +-- +1.5.2.1 + diff --git a/meta/recipes-connectivity/gsm/files/0005-Add-ask-ds-option-forSMS.patch b/meta/recipes-connectivity/gsm/files/0005-Add-ask-ds-option-forSMS.patch new file mode 100644 index 000000000..faf0e8a38 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/0005-Add-ask-ds-option-forSMS.patch @@ -0,0 +1,132 @@ +Upstream-Status: Inappropriate [not used] + +diff --git a/include/gsmd/usock.h b/include/gsmd/usock.h +index 236ad78..66cdf48 100644 +--- a/include/gsmd/usock.h ++++ b/include/gsmd/usock.h +@@ -332,6 +332,7 @@ struct gsmd_sms { + struct gsmd_sms_submit { + struct gsmd_addr addr; + struct gsmd_sms payload; ++ int ask_ds; + }; + + /* Refer to GSM 07.05 subclause 4.4 */ +diff --git a/include/libgsmd/sms.h b/include/libgsmd/sms.h +index 3ada62d..9808442 100644 +--- a/include/libgsmd/sms.h ++++ b/include/libgsmd/sms.h +@@ -46,6 +46,7 @@ struct lgsm_sms { + enum gsmd_sms_alphabet alpha; + u_int8_t data[LGSM_SMS_DATA_MAXLEN+1]; + int length; ++ int ask_ds; + }; + + /* GSM 03.40 subclause 9.2.2.2 and GSM 07.05 subclause 4.4 and subclause 3.1 */ +diff --git a/src/gsmd/sms_pdu.c b/src/gsmd/sms_pdu.c +index d1235dd..d461999 100644 +--- a/src/gsmd/sms_pdu.c ++++ b/src/gsmd/sms_pdu.c +@@ -247,7 +247,8 @@ int sms_pdu_make_smssubmit(char *dest, const struct gsmd_sms_submit *src) + GSMD_SMS_TP_MTI_SUBMIT | + (0 << 2) | /* Reject Duplicates: 0 */ + GSMD_SMS_TP_VPF_NOT_PRESENT | +- GSMD_SMS_TP_SRR_STATUS_REQUEST | ++ (src->ask_ds ? GSMD_SMS_TP_SRR_STATUS_REQUEST : ++ GSMD_SMS_TP_SRR_NOT_REQUEST) | + (src->payload.has_header ? GSMD_SMS_TP_UDHI_WITH_HEADER : + GSMD_SMS_TP_UDHI_NO_HEADER) | + GSMD_SMS_TP_RP_NOT_SET; +diff --git a/src/libgsmd/libgsmd_sms.c b/src/libgsmd/libgsmd_sms.c +index 22d7dbf..bbc8689 100644 +--- a/src/libgsmd/libgsmd_sms.c ++++ b/src/libgsmd/libgsmd_sms.c +@@ -126,6 +126,7 @@ int lgsm_sms_send(struct lgsm_handle *lh, + if (lgsm_number2addr(&gss->addr, sms->addr, 1)) + return -EINVAL; + ++ gss->ask_ds = sms->ask_ds; + gss->payload.has_header = 0; + gss->payload.length = sms->length; + gss->payload.coding_scheme = sms->alpha; +@@ -161,6 +162,7 @@ int lgsm_sms_write(struct lgsm_handle *lh, + if (lgsm_number2addr(&gsw->sms.addr, sms_write->sms.addr, 1)) + return -EINVAL; + ++ gsw->sms.ask_ds = sms_write->sms.ask_ds; + gsw->sms.payload.has_header = 0; + gsw->sms.payload.length = sms_write->sms.length; + gsw->sms.payload.coding_scheme = sms_write->sms.alpha; +diff --git a/src/util/shell.c b/src/util/shell.c +index f902126..f26e17e 100644 +--- a/src/util/shell.c ++++ b/src/util/shell.c +@@ -355,7 +355,7 @@ static int shell_help(void) + "\tsd\tSMS Delete (sd=index,delflg)\n" + "\tsl\tSMS List (sl=stat)\n" + "\tsr\tSMS Read (sr=index)\n" +- "\tss\tSMS Send (ss=number,text|[\"text\"])\n" ++ "\tss\tSMS Send (ss=ask_ds,number,text|[\"text\"])\n" + "\tsw\tSMS Write (sw=stat,number,text)\n" + "\tsm\tSMS Storage stats\n" + "\tsM\tSMS Set preferred storage (sM=mem1,mem2,mem3)\n" +@@ -563,33 +563,29 @@ int shell_main(struct lgsm_handle *lgsmh) + struct lgsm_sms sms; + + ptr = strchr(buf, '='); ++ sms.ask_ds = atoi(ptr+1); + fcomma = strchr(buf, ','); +- if (!ptr || !fcomma) { +- printf("Wrong command format\n"); +- } else { +- strncpy(sms.addr, ptr+1, fcomma-ptr-1); +- sms.addr[fcomma-ptr-1] = '\0'; +- +- /* todo define \" to allow " in text */ +- if (fcomma[1] == '"' && +- !strchr(fcomma+2, '"')) { ++ lcomma = strchr(fcomma+1, ','); ++ strncpy(sms.addr, fcomma+1, lcomma-fcomma-1); ++ sms.addr[lcomma-fcomma-1] = '\0'; ++ /* todo define \" to allow " in text */ ++ if (lcomma[1]=='"' && ++ !strchr(lcomma+2, '"')) { + /* read until closing '"' */ + rc = fscanf(stdin, "%[^\"]\"", +- fcomma+strlen(fcomma)); ++ lcomma+strlen(lcomma)); + if (rc == EOF) { + printf("EOF\n"); + return -1; + } + /* remove brackets */ +- fcomma++; +- fcomma[strlen(fcomma)] = '\0'; +- } +- +- printf("Send SMS\n"); +- packing_7bit_character(fcomma+1, &sms); ++ lcomma++; ++ lcomma[strlen(lcomma)] = '\0'; ++ } ++ printf("Send SMS\n"); ++ packing_7bit_character(lcomma+1, &sms); + +- lgsm_sms_send(lgsmh, &sms); +- } ++ lgsm_sms_send(lgsmh, &sms); + } else if ( !strncmp(buf, "sw", 2)) { + printf("Write SMS\n"); + struct lgsm_sms_write sms_write; +@@ -603,6 +599,7 @@ int shell_main(struct lgsm_handle *lgsmh) + sms_write.sms.addr[lcomma-fcomma-1] = '\0'; + packing_7bit_character( + lcomma+1, &sms_write.sms); ++ sms_write.sms.ask_ds = 0; + + lgsm_sms_write(lgsmh, &sms_write); + } else if (!strncmp(buf, "sm", 2)) { +-- +1.5.2.1 + diff --git a/meta/recipes-connectivity/gsm/files/024_sms-text-in-bracket.patch b/meta/recipes-connectivity/gsm/files/024_sms-text-in-bracket.patch new file mode 100644 index 000000000..3aa13df01 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/024_sms-text-in-bracket.patch @@ -0,0 +1,72 @@ +http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=834 + +From: Kristian Mueller <kristian@mput.de> +Subject: [PATCH] libgsmd-tool does not allow sms with more than one word + +libgsmd-tool only allows for command strings without spaces. +SMS messages with more than one word will be parsed as multible commands. +The patch introduces SMS message text in bracket and fixes a NULL pointer +reference on mailformed "ss" commands. + +Signed-off-by: Jim Huang <jserv@openmoko.org> + +Upstream-Status: Inappropriate [not used] +--- + src/util/shell.c | 32 ++++++++++++++++++++++++++------ + 1 file changed, 26 insertions(+), 6 deletions(-) + +Index: gsm/src/util/shell.c +=================================================================== +--- gsm.orig/src/util/shell.c 2007-08-31 16:15:30.000000000 +0800 ++++ gsm/src/util/shell.c 2007-09-17 23:35:31.000000000 +0800 +@@ -389,7 +389,7 @@ + "\tsd\tSMS Delete (sd=index,delflg)\n" + "\tsl\tSMS List (sl=stat)\n" + "\tsr\tSMS Read (sr=index)\n" +- "\tss\tSMS Send (ss=number,text)\n" ++ "\tss\tSMS Send (ss=number,text|[\"text\"])\n" + "\tsw\tSMS Write (sw=stat,number,text)\n" + "\tsm\tSMS Storage stats\n" + "\tsM\tSMS Set preferred storage (sM=mem1,mem2,mem3)\n" +@@ -612,16 +612,36 @@ + + lgsm_sms_read(lgsmh, atoi(ptr+1)); + } else if ( !strncmp(buf, "ss", 2)) { +- printf("Send SMS\n"); + struct lgsm_sms sms; + + ptr = strchr(buf, '='); + fcomma = strchr(buf, ','); +- strncpy(sms.addr, ptr+1, fcomma-ptr-1); +- sms.addr[fcomma-ptr-1] = '\0'; +- packing_7bit_character(fcomma+1, &sms); ++ if (!ptr || !fcomma) { ++ printf("Wrong command format\n"); ++ } else { ++ strncpy(sms.addr, ptr+1, fcomma-ptr-1); ++ sms.addr[fcomma-ptr-1] = '\0'; ++ ++ /* todo define \" to allow " in text */ ++ if (fcomma[1] == '"' && ++ !strchr(fcomma+2, '"')) { ++ /* read until closing '"' */ ++ rc = fscanf(stdin, "%[^\"]\"", ++ fcomma+strlen(fcomma)); ++ if (rc == EOF) { ++ printf("EOF\n"); ++ return -1; ++ } ++ /* remove brackets */ ++ fcomma++; ++ fcomma[strlen(fcomma)] = '\0'; ++ } ++ ++ printf("Send SMS\n"); ++ packing_7bit_character(fcomma+1, &sms); + +- lgsm_sms_send(lgsmh, &sms); ++ lgsm_sms_send(lgsmh, &sms); ++ } + } else if ( !strncmp(buf, "sw", 2)) { + printf("Write SMS\n"); + struct lgsm_sms_write sms_write; diff --git a/meta/recipes-connectivity/gsm/files/025_sms-status-report.patch b/meta/recipes-connectivity/gsm/files/025_sms-status-report.patch new file mode 100644 index 000000000..a0f466a00 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/025_sms-status-report.patch @@ -0,0 +1,135 @@ +Upstream-Status: Inappropriate [not used] + +From: Erin Yueh <erin_yueh@openmoko.com> +Subject: [PATCH] SMS status report + +I made a patch for SMS status report. It can change SMS-Submit messages +and ask for a status report. When the destination address receives our +message, the service center will send a SMS-STATUS-REPORT to us. We can +tell what messages we sent by TP-MR (message reference number) value and +can know the sending result by TP-ST (Status) value from status report +messages. + +PS. if you don't want to ask a status report, you can change this value +back. Replace "GSMD_SMS_TP_SRR_STATUS_REQUEST" with +"GSMD_SMS_TP_SRR_NOT_REQUEST". +header[pos ++] = + GSMD_SMS_TP_MTI_SUBMIT | + (0 << 2) | /* Reject Duplicates: 0 */ + GSMD_SMS_TP_VPF_NOT_PRESENT | +- GSMD_SMS_TP_SRR_NOT_REQUEST | ++ GSMD_SMS_TP_SRR_STATUS_REQUEST | + (src->payload.has_header ? GSMD_SMS_TP_UDHI_WITH_HEADER : + GSMD_SMS_TP_UDHI_NO_HEADER) | + GSMD_SMS_TP_RP_NOT_SET; + +Signed-off-by: Jim Huang <jserv@openmoko.org> +--- + src/gsmd/sms_pdu.c | 54 +++++++++++++++++++++++++++++++++++++++++++----------- + src/util/event.c | 6 +++++- + 2 files changed, 48 insertions(+), 12 deletions(-) + +Index: gsm/src/gsmd/sms_pdu.c +=================================================================== +--- gsm.orig/src/gsmd/sms_pdu.c 2007-09-06 11:14:34.000000000 +0800 ++++ gsm/src/gsmd/sms_pdu.c 2007-09-17 23:39:20.000000000 +0800 +@@ -139,6 +139,17 @@ + /* Skip TP-PID */ + len -= 9; + src += 9; ++ ++ /* TP-UDL */ ++ dst->payload.length = src[0]; ++ i = sms_data_bytelen(dst->payload.coding_scheme, src[0]); ++ ++ /* TP-UD */ ++ if (len < 1 + i || i > GSMD_SMS_DATA_MAXLEN) ++ return 1; ++ memcpy(dst->payload.data, src + 1, i); ++ dst->payload.data[i] = 0; ++ + break; + case GSMD_SMS_TP_MTI_SUBMIT: + if (len < 4) +@@ -179,23 +190,44 @@ + src += vpf ? 3 : 2; + + memset(dst->time_stamp, 0, 7); ++ ++ /* TP-UDL */ ++ dst->payload.length = src[0]; ++ i = sms_data_bytelen(dst->payload.coding_scheme, src[0]); ++ ++ /* TP-UD */ ++ if (len < 1 + i || i > GSMD_SMS_DATA_MAXLEN) ++ return 1; ++ memcpy(dst->payload.data, src + 1, i); ++ dst->payload.data[i] = 0; + break; + case GSMD_SMS_TP_MTI_STATUS_REPORT: +- /* TODO */ ++ if (len < 3) ++ return 1; ++ ++ /* TP-MR set it gsmd_sms_list.index*/ ++ dst->index = (int) src[1]; ++ /* TP-STATUS set it to coding_scheme */ ++ dst->payload.coding_scheme = (int) src[len-1]; ++ /* TP-RA */ ++ i = sms_number_bytelen(src[3], src[2]); ++ if (len < 13 + i) ++ return 1; ++ if (sms_address2ascii(&dst->addr, src + 2)) ++ return 1; ++ len -= 4 + i; ++ src += 4 + i; ++ /* TP-SCTS */ ++ memcpy(dst->time_stamp, src, 7); ++ /* TP-UD */ ++ dst->payload.length = 0; ++ dst->payload.data[0] = 0; ++ break; + default: + /* Unknown PDU type */ + return 1; + } + +- /* TP-UDL */ +- dst->payload.length = src[0]; +- i = sms_data_bytelen(dst->payload.coding_scheme, src[0]); +- +- /* TP-UD */ +- if (len < 1 + i || i > GSMD_SMS_DATA_MAXLEN) +- return 1; +- memcpy(dst->payload.data, src + 1, i); +- dst->payload.data[i] = 0; + + return 0; + } +@@ -215,7 +247,7 @@ + GSMD_SMS_TP_MTI_SUBMIT | + (0 << 2) | /* Reject Duplicates: 0 */ + GSMD_SMS_TP_VPF_NOT_PRESENT | +- GSMD_SMS_TP_SRR_NOT_REQUEST | ++ GSMD_SMS_TP_SRR_STATUS_REQUEST | + (src->payload.has_header ? GSMD_SMS_TP_UDHI_WITH_HEADER : + GSMD_SMS_TP_UDHI_NO_HEADER) | + GSMD_SMS_TP_RP_NOT_SET; +Index: gsm/src/util/event.c +=================================================================== +--- gsm.orig/src/util/event.c 2007-09-06 11:14:34.000000000 +0800 ++++ gsm/src/util/event.c 2007-09-17 23:39:47.000000000 +0800 +@@ -128,8 +128,12 @@ + static int inds_handler(struct lgsm_handle *lh, int evt, + struct gsmd_evt_auxdata *aux) + { +- if (aux->u.ds.inlined) ++ if (aux->u.ds.inlined) { ++ struct gsmd_sms_list *sms; ++ sms = (struct gsmd_sms_list *) aux->data; + printf("EVENT: Incoming Status Report\n"); ++ printf("message ref = %d, status = %d\n", sms->index,sms->payload.coding_scheme); ++ } + else + printf("EVENT: Incoming Status Report stored at location %i\n", + aux->u.ds.index); diff --git a/meta/recipes-connectivity/gsm/files/027_phonebook-find-and-read-range-support.patch b/meta/recipes-connectivity/gsm/files/027_phonebook-find-and-read-range-support.patch new file mode 100644 index 000000000..c94e4b203 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/027_phonebook-find-and-read-range-support.patch @@ -0,0 +1,425 @@ +Upstream-Status: Inappropriate [not used] + +From: Sean Chiang <sean_chiang@openmoko.com> +Subject: [PATCH] Improvement for find and read phonebooks in gsmd + +This patch is an improvement for find and read phonebooks. +After clients make a request to find / read phonebooks, then clients +should make a request to retrieve all the records. + +Signed-off-by: Jim Huang <jserv@openmoko.org> +--- + include/gsmd/gsmd.h | 3 + include/gsmd/usock.h | 20 +++- + include/libgsmd/phonebook.h | 6 + + src/gsmd/usock.c | 184 +++++++++++++++++++++++++++++++++++----- + src/libgsmd/libgsmd_phonebook.c | 48 ++++++++++ + 5 files changed, 238 insertions(+), 23 deletions(-) + +Index: gsm/include/libgsmd/phonebook.h +=================================================================== +--- gsm.orig/include/libgsmd/phonebook.h 2007-08-31 16:15:29.000000000 +0800 ++++ gsm/include/libgsmd/phonebook.h 2007-09-17 23:48:41.000000000 +0800 +@@ -106,4 +106,10 @@ + /* Get the location range/nlength/tlength supported */ + extern int lgsm_pb_get_support(struct lgsm_handle *lh); + ++/* Retrieve the records of READRG request */ ++extern int lgsm_pb_retrieve_readrg(struct lgsm_handle *lh, int num); ++ ++/* Retrieve the records of FIND request */ ++extern int lgsm_pb_retrieve_find(struct lgsm_handle *lh, int num); ++ + #endif +Index: gsm/include/gsmd/gsmd.h +=================================================================== +--- gsm.orig/include/gsmd/gsmd.h 2007-08-31 16:15:29.000000000 +0800 ++++ gsm/include/gsmd/gsmd.h 2007-09-17 23:48:41.000000000 +0800 +@@ -92,6 +92,9 @@ + struct gsmd *gsmd; + struct gsmd_fd gfd; /* the socket */ + u_int32_t subscriptions; /* bitmaks of subscribed event groups */ ++ ++ struct llist_head pb_readrg_list; /* our READRG phonebook list */ ++ struct llist_head pb_find_list; /* our FIND phonebook list */ + }; + + #define GSMD_DEBUG 1 /* debugging information */ +Index: gsm/include/gsmd/usock.h +=================================================================== +--- gsm.orig/include/gsmd/usock.h 2007-08-31 16:15:29.000000000 +0800 ++++ gsm/include/gsmd/usock.h 2007-09-17 23:48:56.000000000 +0800 +@@ -194,6 +194,8 @@ + GSMD_PHONEBOOK_GET_SUPPORT = 6, + GSMD_PHONEBOOK_LIST_STORAGE = 7, + GSMD_PHONEBOOK_SET_STORAGE = 8, ++ GSMD_PHONEBOOK_RETRIEVE_READRG = 9, ++ GSMD_PHONEBOOK_RETRIEVE_FIND = 10, + }; + + /* Type-of-Address, Numbering-Plan-Identification field, GSM 03.40, 9.1.2.5 */ +@@ -431,7 +433,6 @@ + char text[GSMD_PB_TEXT_MAXLEN+1]; + } __attribute__ ((packed)); + +- + /* Refer to GSM 07.07 subclause 8.13 */ + /* FIXME: the tlength depends on SIM, use +CPBR=? to get */ + struct gsmd_phonebook_find { +@@ -471,8 +472,18 @@ + char opname_longalpha[16]; + }; + ++/* Refer to GSM 07.07 subclause 8.11 */ ++struct gsmd_phonebook_mem { ++ u_int8_t type[3]; ++ u_int8_t pad; ++ u_int16_t used; ++ u_int16_t total; ++} __attribute__ ((packed)); ++ + struct gsmd_phonebook_storage { +- char storage[3]; ++ /* FIXME the amount of phonebook storage should be dynamic */ ++ u_int8_t num; ++ struct gsmd_phonebook_mem mem[20]; + } __attribute__ ((packed)); + + /* Subscriber number information from 3GPP TS 07.07, Clause 7.1 */ +@@ -517,6 +528,11 @@ + char buf[]; + } __attribute__ ((packed)); + ++struct gsmd_phonebooks { ++ struct llist_head list; ++ struct gsmd_phonebook pb; ++} __attribute__ ((packed)); ++ + extern struct gsmd_ucmd *ucmd_alloc(int extra_size); + extern int usock_init(struct gsmd *g); + extern void usock_cmd_enqueue(struct gsmd_ucmd *ucmd, struct gsmd_user *gu); +Index: gsm/src/libgsmd/libgsmd_phonebook.c +=================================================================== +--- gsm.orig/src/libgsmd/libgsmd_phonebook.c 2007-08-31 16:15:29.000000000 +0800 ++++ gsm/src/libgsmd/libgsmd_phonebook.c 2007-09-17 23:48:41.000000000 +0800 +@@ -33,7 +33,7 @@ + gmh->data[2] = '\0'; + + rc = lgsm_send(lh, gmh); +- if (rc < gmh->len + 3) { ++ if (rc < gmh->len + sizeof(*gmh)) { + lgsm_gmh_free(gmh); + return -EIO; + } +@@ -177,3 +177,49 @@ + { + return lgsm_send_simple(lh, GSMD_MSG_PHONEBOOK, GSMD_PHONEBOOK_GET_SUPPORT); + } ++ ++int lgsm_pb_retrieve_readrg(struct lgsm_handle *lh, int num) ++{ ++ struct gsmd_msg_hdr *gmh; ++ int rc; ++ ++ gmh = lgsm_gmh_fill(GSMD_MSG_PHONEBOOK, ++ GSMD_PHONEBOOK_RETRIEVE_READRG, sizeof(int)); ++ if (!gmh) ++ return -ENOMEM; ++ ++ *(int *)(gmh->data) = num; ++ ++ rc = lgsm_send(lh, gmh); ++ if (rc < gmh->len + sizeof(*gmh)) { ++ lgsm_gmh_free(gmh); ++ return -EIO; ++ } ++ ++ lgsm_gmh_free(gmh); ++ ++ return 0; ++} ++ ++int lgsm_pb_retrieve_find(struct lgsm_handle *lh, int num) ++{ ++ struct gsmd_msg_hdr *gmh; ++ int rc; ++ ++ gmh = lgsm_gmh_fill(GSMD_MSG_PHONEBOOK, ++ GSMD_PHONEBOOK_RETRIEVE_FIND, sizeof(int)); ++ if (!gmh) ++ return -ENOMEM; ++ ++ *(int *)(gmh->data) = num; ++ ++ rc = lgsm_send(lh, gmh); ++ if (rc < gmh->len + sizeof(*gmh)) { ++ lgsm_gmh_free(gmh); ++ return -EIO; ++ } ++ ++ lgsm_gmh_free(gmh); ++ ++ return 0; ++} +Index: gsm/src/gsmd/usock.c +=================================================================== +--- gsm.orig/src/gsmd/usock.c 2007-08-31 16:15:30.000000000 +0800 ++++ gsm/src/gsmd/usock.c 2007-09-17 23:53:34.000000000 +0800 +@@ -1035,21 +1035,56 @@ + + static int phonebook_find_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) + { +- struct gsmd_user *gu = ctx; +- struct gsmd_ucmd *ucmd; +- ++ struct gsmd_user *gu = ctx; ++ struct gsmd_ucmd *ucmd; ++ struct gsmd_phonebooks *gps; ++ char *fcomma, *lcomma, *ptr1, *ptr2 = NULL; ++ int *num; ++ + DEBUGP("resp: %s\n", resp); + +- /* FIXME: using link list, also we need to handle the case of +- * no query result */ +- ucmd = gsmd_ucmd_fill(strlen(resp) + 1, GSMD_MSG_PHONEBOOK, ++ /* ++ * [+CPBF: <index1>,<number>,<type>,<text>[[...] ++ * <CR><LF>+CPBF: <index2>,<unmber>,<type>,<text>]] ++ */ ++ ucmd = gsmd_ucmd_fill(sizeof(int), GSMD_MSG_PHONEBOOK, + GSMD_PHONEBOOK_FIND, 0); + if (!ucmd) + return -ENOMEM; + +- strcpy(ucmd->buf, resp); ++ num = (int*) ucmd->buf; ++ ++ *num = 0; ++ ++ ptr1 = strtok(resp, "\n"); ++ ++ while (ptr1) { ++ gps = (struct gsmd_phonebooks *) malloc(sizeof(struct gsmd_phonebooks)); ++ ptr2 = strchr(ptr1, ' '); ++ gps->pb.index = atoi(ptr2+1); ++ ++ fcomma = strchr(ptr1, '"'); ++ lcomma = strchr(fcomma+1, '"'); ++ strncpy(gps->pb.numb, fcomma + 1, (lcomma-fcomma-1)); ++ gps->pb.numb[(lcomma - fcomma) - 1] = '\0'; ++ ++ gps->pb.type = atoi(lcomma + 2); ++ ++ ptr2 = strrchr(ptr1, ','); ++ fcomma = ptr2 + 1; ++ lcomma = strchr(fcomma + 1, '"'); ++ strncpy(gps->pb.text, fcomma + 1, (lcomma - fcomma - 1)); ++ gps->pb.text[(lcomma - fcomma) - 1] = '\0'; ++ ++ llist_add_tail(&gps->list, &gu->pb_find_list); ++ ++ (*num)++; ++ ++ ptr1 = strtok(NULL, "\n"); ++ } + + usock_cmd_enqueue(ucmd, gu); ++ + return 0; + } + +@@ -1102,22 +1137,51 @@ + { + struct gsmd_user *gu = ctx; + struct gsmd_ucmd *ucmd; ++ struct gsmd_phonebooks *gps; ++ char *fcomma, *lcomma, *ptr1, *ptr2 = NULL; ++ int *num; + + DEBUGP("resp: %s\n", resp); + + /* +- * +CPBR: 4,"1234",129,"6C5F745E7965" +- * +CPBR: 5,"5678",129,"800062115BB6" +- * +CPBR: 6,"7890",129,"810280AA591A" +- * +CPBR: 8,"36874",129,"005300650061006E" +- * ++ * [+CPBR: <index1>,<number>,<type>,<text>[[...] ++ * <CR><LF>+CPBR: <index2>,<unmber>,<type>,<text>]] + */ +- ucmd = gsmd_ucmd_fill(strlen(resp)+1, GSMD_MSG_PHONEBOOK, ++ ucmd = gsmd_ucmd_fill(sizeof(int), GSMD_MSG_PHONEBOOK, + GSMD_PHONEBOOK_READRG, 0); + if (!ucmd) + return -ENOMEM; + +- strcpy(ucmd->buf, resp); ++ num = (int*) ucmd->buf; ++ ++ *num = 0; ++ ++ ptr1 = strtok(resp, "\n"); ++ ++ while(ptr1) { ++ gps = (struct gsmd_phonebooks *) malloc(sizeof(struct gsmd_phonebooks)); ++ ptr2 = strchr(ptr1, ' '); ++ gps->pb.index = atoi(ptr2+1); ++ ++ fcomma = strchr(ptr1, '"'); ++ lcomma = strchr(fcomma+1, '"'); ++ strncpy(gps->pb.numb, fcomma + 1, (lcomma-fcomma-1)); ++ gps->pb.numb[(lcomma - fcomma) - 1] = '\0'; ++ ++ gps->pb.type = atoi(lcomma + 2); ++ ++ ptr2 = strrchr(ptr1, ','); ++ fcomma = ptr2 + 1; ++ lcomma = strchr(fcomma + 1, '"'); ++ strncpy(gps->pb.text, fcomma + 1, (lcomma - fcomma - 1)); ++ gps->pb.text[(lcomma - fcomma) - 1] = '\0'; ++ ++ llist_add_tail(&gps->list, &gu->pb_readrg_list); ++ ++ (*num)++; ++ ++ ptr1 = strtok(NULL, "\n"); ++ } + + usock_cmd_enqueue(ucmd, gu); + +@@ -1209,22 +1273,38 @@ + static int phonebook_list_storage_cb(struct gsmd_atcmd *cmd, + void *ctx, char *resp) + { +- /* +CPBS: ("EN","BD","FD","DC","LD","RC","LR","MT","AD", +- * "SM","SD","MC","LM","AF","ON","UD") */ + /* TODO; using link list ; need to handle command error */ + struct gsmd_user *gu = ctx; + struct gsmd_ucmd *ucmd; ++ struct gsmd_phonebook_storage *gps; ++ char *ptr; + + DEBUGP("resp: %s\n", resp); + +- ucmd = gsmd_ucmd_fill(strlen(resp) + 1, ++ /* ++ * +CPBS: (<storage>s) ++ */ ++ ++ ucmd = gsmd_ucmd_fill(sizeof(*gps), + GSMD_MSG_PHONEBOOK, + GSMD_PHONEBOOK_LIST_STORAGE, 0); + + if (!ucmd) + return -ENOMEM; + +- strcpy(ucmd->buf, resp); ++ gps = (struct gsmd_phonebook_storage *) ucmd->buf; ++ gps->num = 0; ++ ++ if (!strncmp(resp, "+CPBS", 5)) { ++ char* delim = "(,"; ++ ptr = strpbrk(resp, delim); ++ while ( ptr ) { ++ strncpy(gps->mem[gps->num].type, ptr+2, 2); ++ gps->mem[gps->num].type[2] = '\0'; ++ ptr = strpbrk(ptr+2, delim); ++ gps->num++; ++ } ++ } + + usock_cmd_enqueue(ucmd, gu); + +@@ -1235,11 +1315,13 @@ + struct gsmd_msg_hdr *gph,int len) + { + struct gsmd_atcmd *cmd = NULL; ++ struct gsmd_ucmd *ucmd = NULL; + struct gsmd_phonebook_readrg *gpr; + struct gsmd_phonebook *gp; + struct gsmd_phonebook_find *gpf; +- int *index; +- int atcmd_len; ++ struct gsmd_phonebooks *cur, *cur2; ++ int *index, *num; ++ int atcmd_len, i; + char *storage; + char buf[1024]; + +@@ -1343,6 +1425,66 @@ + cmd = atcmd_fill("AT+CPBR=?", 9+1, + &phonebook_get_support_cb, gu, gph->id); + break; ++ case GSMD_PHONEBOOK_RETRIEVE_READRG: ++ if (len < sizeof(*gph) + sizeof(int)) ++ return -EINVAL; ++ ++ num = (int *) ((void *)gph + sizeof(*gph)); ++ ++ ucmd = gsmd_ucmd_fill(sizeof(struct gsmd_phonebook)*(*num), ++ GSMD_MSG_PHONEBOOK, ++ GSMD_PHONEBOOK_RETRIEVE_READRG, 0); ++ if (!ucmd) ++ return -ENOMEM; ++ ++ gp = (struct gsmd_phonebook*) ucmd->buf; ++ ++ if (!llist_empty(&gu->pb_readrg_list)) { ++ ++ llist_for_each_entry_safe(cur, cur2, ++ &gu->pb_readrg_list, list) { ++ gp->index = cur->pb.index; ++ strcpy(gp->numb, cur->pb.numb); ++ gp->type = cur->pb.type; ++ strcpy(gp->text, cur->pb.text); ++ gp++; ++ ++ llist_del(&cur->list); ++ free(cur); ++ } ++ } ++ ++ usock_cmd_enqueue(ucmd, gu); ++ ++ break; ++ case GSMD_PHONEBOOK_RETRIEVE_FIND: ++ if (len < sizeof(*gph) + sizeof(int)) ++ return -EINVAL; ++ ++ num = (int *) ((void *)gph + sizeof(*gph)); ++ ++ ucmd = gsmd_ucmd_fill(sizeof(struct gsmd_phonebook)*(*num), GSMD_MSG_PHONEBOOK, ++ GSMD_PHONEBOOK_RETRIEVE_FIND, 0); ++ if (!ucmd) ++ return -ENOMEM; ++ ++ gp = (struct gsmd_phonebook*) ucmd->buf; ++ ++ if (!llist_empty(&gu->pb_find_list)) { ++ llist_for_each_entry_safe(cur, cur2, &gu->pb_find_list, list) { ++ gp->index = cur->pb.index; ++ strcpy(gp->numb, cur->pb.numb); ++ gp->type = cur->pb.type; ++ strcpy(gp->text, cur->pb.text); ++ gp++; ++ ++ llist_del(&cur->list); ++ free(cur); ++ } ++ } ++ ++ usock_cmd_enqueue(ucmd, gu); ++ break; + default: + return -EINVAL; + } +@@ -1468,6 +1610,8 @@ + newuser->gsmd = g; + newuser->subscriptions = 0xffffffff; + INIT_LLIST_HEAD(&newuser->finished_ucmds); ++ INIT_LLIST_HEAD(&newuser->pb_readrg_list); ++ INIT_LLIST_HEAD(&newuser->pb_find_list); + + llist_add(&newuser->list, &g->users); + gsmd_register_fd(&newuser->gfd); diff --git a/meta/recipes-connectivity/gsm/files/028_shell-phonebook-find-and-read-range-support.patch b/meta/recipes-connectivity/gsm/files/028_shell-phonebook-find-and-read-range-support.patch new file mode 100644 index 000000000..a531fa81a --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/028_shell-phonebook-find-and-read-range-support.patch @@ -0,0 +1,266 @@ +From: Sean Chiang <sean_chiang@openmoko.com> +Subject: [PATCH] improvement for find and read phonebooks in shell + +This patch improves the functions to find and read phonebooks in shell. + +Besides prr and pf, I add two new commands pRr and pRf to retrieve the +phonebook. + +Signed-off-by: Jim Huang <jserv@openmoko.org> + +Upstream-Status: Inappropriate [not used] + +Index: gsm/src/util/shell.c +=================================================================== +--- gsm.orig/src/util/shell.c 2007-09-17 23:57:51.000000000 +0800 ++++ gsm/src/util/shell.c 2007-09-17 23:59:04.000000000 +0800 +@@ -34,8 +34,6 @@ + #include <gsmd/usock.h> + #include <gsmd/ts0705.h> + +-#include <common/linux_list.h> +- + #ifndef __GSMD__ + #define __GSMD__ + #include <gsmd/talloc.h> +@@ -43,9 +41,8 @@ + #endif + + #define STDIN_BUF_SIZE 1024 +- +-static LLIST_HEAD(storage_list); +-static LLIST_HEAD(phonebook_list); ++static int nFIND = 0; ++static int nREADRG = 0; + + /* this is the handler for receiving passthrough responses */ + static int pt_msghandler(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh) +@@ -62,46 +59,23 @@ + struct gsmd_phonebook_storage *gpst; + char *payload; + char *fcomma, *lcomma, *ptr = NULL; ++ int *num; + char buf[128]; ++ int i; + + switch (gmh->msg_subtype) { +-#if 0 + case GSMD_PHONEBOOK_FIND: ++ num = (int *) ((char *)gmh + sizeof(*gmh)); ++ printf("Records:%d\n", *num); ++ ++ nFIND = *num; ++ break; + case GSMD_PHONEBOOK_READRG: +- payload = (char *)gmh + sizeof(*gmh); ++ num = (int *) ((char *)gmh + sizeof(*gmh)); ++ printf("Records:%d\n", *num); + +- if (!strncmp(payload, "+CPBR", 5) || +- !strncmp(payload, "+CPBF", 5)) { +- gp = (struct gsmd_phonebook *) malloc(sizeof(struct gsmd_phonebook)); +- ptr = strchr(payload, ' '); +- gp->index = atoi(ptr+1); +- +- fcomma = strchr(payload, '"'); +- lcomma = strchr(fcomma+1, '"'); +- strncpy(gp->numb, fcomma + 1, (lcomma-fcomma-1)); +- gp->numb[(lcomma - fcomma) - 1] = '\0'; +- +- gp->type = atoi(lcomma + 2); +- +- ptr = strrchr(payload, ','); +- fcomma = ptr + 1; +- lcomma = strchr(fcomma + 1, '"'); +- strncpy(gp->text, fcomma + 1, (lcomma - fcomma - 1)); +- gp->text[(lcomma - fcomma) - 1] = '\0'; +- +- llist_add_tail(&gp->list, &phonebook_list); +- +-#if 0 +- llist_for_each_entry(gp, &phonebook_list, list) { +- printf("%d, %s, %d, %s\n", gp->index, gp->numb, gp->type, gp->text); +- } +-#endif +- printf("%d, %s, %d, %s\n", gp->index, gp->numb, gp->type, gp->text); +- } +- else +- printf("%s\n", payload); ++ nREADRG = *num; + break; +-#endif + case GSMD_PHONEBOOK_READ: + gp = (struct gsmd_phonebook *) ((char *)gmh + sizeof(*gmh)); + if (gp->index) +@@ -115,48 +89,18 @@ + gps = (struct gsmd_phonebook_support *) ((char *)gmh + sizeof(*gmh)); + printf("(1-%d), %d, %d\n", gps->index, gps->nlength, gps->tlength); + break; +-#if 0 +- case GSMD_PHONEBOOK_LIST_STORAGE: +- payload = (char *)gmh + sizeof(*gmh); + +- if (!strncmp(payload, "+CPBS", 5)) { +- char* delim = "(,"; +- struct gsmd_phonebook_storage *cur, *cur2; +- +- /* Remove previous record */ +- if (!llist_empty(&storage_list)) { +- llist_for_each_entry_safe(cur, cur2, +- &storage_list, list) { +- llist_del(&cur->list); +- talloc_free(cur); +- } +- } +- +- ptr = strpbrk(payload, delim); +- +- while ( ptr ) { +- gpst = (struct gsmd_phonebook_storage *) malloc(sizeof(struct gsmd_phonebook_storage)); +- strncpy(gpst->storage, ptr+2, 2); +- gpst->storage[2] = '\0'; +- +- ptr = strpbrk(ptr+2, delim); +- +- llist_add_tail(&gpst->list, &storage_list); +- } ++ case GSMD_PHONEBOOK_LIST_STORAGE: ++ gpst = (struct gsmd_phonebook_storage *)((char *)gmh + sizeof(*gmh)); + +- if (llist_empty(&storage_list)) +- return 0; ++ for (i = 0; i < gpst->num; i++) { ++ printf("%s, ", gpst->mem[i].type); ++ } + +- llist_for_each_entry(cur, &storage_list, list) { +- printf("\n%s",cur->storage); +- } ++ printf("\n"); + +- printf("\n"); +- } +- else +- printf("%s\n", payload); + break; +-#endif ++ + case GSMD_PHONEBOOK_WRITE: + case GSMD_PHONEBOOK_DELETE: + case GSMD_PHONEBOOK_SET_STORAGE: +@@ -164,6 +108,26 @@ + payload = (char *)gmh + sizeof(*gmh); + printf("%s\n", payload); + break; ++ case GSMD_PHONEBOOK_RETRIEVE_READRG: ++ gp = (struct gsmd_phonebook *) ((char *)gmh + sizeof(*gmh)); ++ ++ for (i=0; i<nREADRG; i++) { ++ printf("%d,%s,%d,%s\n", gp->index, gp->numb, gp->type, gp->text); ++ gp++; ++ } ++ ++ nREADRG = 0; ++ break; ++ case GSMD_PHONEBOOK_RETRIEVE_FIND: ++ gp = (struct gsmd_phonebook *) ((char *)gmh + sizeof(*gmh)); ++ ++ for (i = 0; i < nFIND; i++) { ++ printf("%d,%s,%d,%s\n", gp->index, gp->numb, gp->type, gp->text); ++ gp++; ++ } ++ ++ nFIND = 0; ++ break; + default: + return -EINVAL; + } +@@ -381,11 +345,13 @@ + "\tpd\tPB Delete (pb=index)\n" + "\tpr\tPB Read (pr=index)\n" + "\tprr\tPB Read Range (prr=index1,index2)\n" +- "\tpf\tPB Find (pff=indtext)\n" ++ "\tpf\tPB Find (pf=indtext)\n" + "\tpw\tPB Write (pw=index,number,text)\n" + "\tps\tPB Support\n" + "\tpm\tPB Memory\n" + "\tpp\tPB Set Memory (pp=storage)\n" ++ "\tpRr\tRetrieve Readrg Records\n" ++ "\tpRf\tRetrieve Find Records\n" + "\tsd\tSMS Delete (sd=index,delflg)\n" + "\tsl\tSMS List (sl=stat)\n" + "\tsr\tSMS Read (sr=index)\n" +@@ -509,48 +475,21 @@ + printf("Delete Phonebook Entry\n"); + ptr = strchr(buf, '='); + lgsm_pb_del_entry(lgsmh, atoi(ptr+1)); +-#if 0 + } else if ( !strncmp(buf, "prr", 3)) { + printf("Read Phonebook Entries\n"); + struct lgsm_phonebook_readrg pb_readrg; +- struct gsmd_phonebook *gp_cur, *gp_cur2; +- +- /* Remove records */ +- if (!llist_empty(&phonebook_list)) { +- llist_for_each_entry_safe(gp_cur, +- gp_cur2, +- &phonebook_list, +- list) { +- llist_del(&gp_cur->list); +- talloc_free(gp_cur); +- } +- } + + ptr = strchr(buf, '='); + pb_readrg.index1 = atoi(ptr+1); + ptr = strchr(buf, ','); + pb_readrg.index2 = atoi(ptr+1); + lgsm_pb_read_entries(lgsmh, &pb_readrg); +-#endif + } else if ( !strncmp(buf, "pr", 2)) { + ptr = strchr(buf, '='); + lgsm_pb_read_entry(lgsmh, atoi(ptr+1)); +-#if 0 + } else if ( !strncmp(buf, "pf", 2)) { + printf("Find Phonebook Entry\n"); + struct lgsm_phonebook_find pb_find; +- struct gsmd_phonebook *gp_cur, *gp_cur2; +- +- /* Remove records */ +- if (!llist_empty(&phonebook_list)) { +- llist_for_each_entry_safe(gp_cur, +- gp_cur2, +- &phonebook_list, +- list) { +- llist_del(&gp_cur->list); +- talloc_free(gp_cur); +- } +- } + + ptr = strchr(buf, '='); + strncpy(pb_find.findtext, +@@ -559,7 +498,6 @@ + pb_find.findtext[strlen(ptr+1)] = '\0'; + + lgsm_pb_find_entry(lgsmh, &pb_find); +-#endif + } else if ( !strncmp(buf, "pw", 2)) { + printf("Write Phonebook Entry\n"); + struct lgsm_phonebook pb; +@@ -591,6 +529,16 @@ + } else if ( !strncmp(buf, "ps", 2)) { + printf("Get Phonebook Support\n"); + lgsm_pb_get_support(lgsmh); ++ } else if( !strncmp(buf, "pRr", 3) ) { ++ printf("Retrieve Readrg Records\n"); ++ ++ if ( nREADRG ) ++ lgsm_pb_retrieve_readrg(lgsmh, nREADRG); ++ } else if( !strncmp(buf, "pRf", 3) ) { ++ printf("Retrieve Find Records\n"); ++ ++ if ( nFIND ) ++ lgsm_pb_retrieve_find(lgsmh, nFIND); + } else if ( !strncmp(buf, "sd", 2)) { + printf("Delete SMS\n"); + struct lgsm_sms_delete sms_del; diff --git a/meta/recipes-connectivity/gsm/files/default b/meta/recipes-connectivity/gsm/files/default new file mode 100644 index 000000000..6ef4f6db5 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/default @@ -0,0 +1,59 @@ +# gsmd This shell script configures for the gsmd init script. + +. /etc/init.d/functions + +case `machine_id` in + "gta01"|"gta02") + GSMD_OPTS="-s 115200 -F" + if [ -d '/sys/bus/platform/devices/gta01-pm-gsm.0' ] ; then + GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on" + GSM_RES="/sys/bus/platform/devices/gta01-pm-gsm.0/reset" + else + GSM_POW="/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on" + GSM_RES="/sys/bus/platform/devices/neo1973-pm-gsm.0/reset" + fi + GSM_DEV="/dev/ttySAC0" + GSM_DL="/sys/devices/platform/neo1973-pm-gsm.0/download" + ;; + "htc_apache"|"htc_blueangel"|"htc_universal") + GSMD_OPTS="-s 115200 -F" + GSM_DEV="/dev/ttyS0" + ;; + "htc_himalaya") + GSMD_OPTS="-s 115200 -F" + GSM_DEV="/dev/ttyS2" + ;; + "htc_magician") + GSMD_OPTS="-s 115200 -F" + GSM_DEV="/dev/ttyS1" + ;; + "palm_treo_650") + GSMD_OPTS="-s 460800 -F -w 1" + GSM_DEV="/dev/ttyS0" + ;; + "motorola_ezx_platform") + GSMD_OPTS="-s 115200 -F -v ti" + GSM_DEV="/dev/mux0" + ;; + "omap3430_ldp_board") + # Need a machine for the Zoom modem, but this will do + GSMD_OPTS="-s 460800 -F -v ti -m gta01" + GSM_DEV="/dev/ttyS0" + ;; + *) + # Unknown board + + # If you must specify special options, uncomment and modify the next line + #GSMD_OPTS="-s 115200 -F" + + # If your GSM device needs to be powered up, uncomment and modify the next line + #GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on" + + # If your GSM device then needs to be reset, uncomment and modify the next line + #GSM_RES="/sys/bus/platform/devices/gta01-pm-gsm.0/reset" + + # This should be in a common /etc/default/serial, together with + # BT_DEV and IR_DEV for devices that have those on a serial port + #GSM_DEV="/dev/ttyS1" + ;; +esac diff --git a/meta/recipes-connectivity/gsm/files/fix_machine_init.patch b/meta/recipes-connectivity/gsm/files/fix_machine_init.patch new file mode 100644 index 000000000..1f135d508 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/fix_machine_init.patch @@ -0,0 +1,28 @@ +Rebase the patch to latest version. + +By Dongxiao Xu <dongxiao.xu@intel.com> + +Upstream-Status: Pending + +diff -ruN gsm-orig/src/gsmd/gsmd.c gsm/src/gsmd/gsmd.c +--- gsm-orig/src/gsmd/gsmd.c 2010-11-25 10:14:22.000000000 +0800 ++++ gsm/src/gsmd/gsmd.c 2010-11-25 10:14:52.000000000 +0800 +@@ -196,14 +196,11 @@ + + sms_cb_init(gsmd); + +- if (gsmd->vendorpl && gsmd->vendorpl->initsettings){ ++ if (gsmd->vendorpl && gsmd->vendorpl->initsettings) + rc |= gsmd->vendorpl->initsettings(gsmd); +- if (gsmd->machinepl && gsmd->machinepl->initsettings) +- rc |= gsmd->machinepl->initsettings(gsmd); +- return rc; +- } +- else +- return rc; ++ if (gsmd->machinepl && gsmd->machinepl->initsettings) ++ rc |= gsmd->machinepl->initsettings(gsmd); ++ return rc; + } + + static int firstcmd_response = 0; diff --git a/meta/recipes-connectivity/gsm/files/gsmd b/meta/recipes-connectivity/gsm/files/gsmd new file mode 100644 index 000000000..dc10e6309 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/gsmd @@ -0,0 +1,47 @@ +#! /bin/sh +# +# gsmd This shell script starts and stops gsmd. +# +# chkconfig: 345 90 40 +# description: Gsmd manages access to a serial- or USB-connected GSM +# processname: gsmd + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +[ -f /etc/default/rcS ] && . /etc/default/rcS +[ -f /etc/default/gsmd ] && . /etc/default/gsmd + +case "$1" in + start) + [ -n "$GSM_POW" ] && ( echo "0" >$GSM_POW; sleep 1 ) + [ -n "$GSM_POW" ] && ( echo "1" >$GSM_POW; sleep 1 ) + [ -n "$GSM_RES" ] && ( echo "1" >$GSM_RES; sleep 1 ) + [ -n "$GSM_RES" ] && ( echo "0" >$GSM_RES; sleep 2 ) + + echo -n "Starting GSM daemon: " + start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -d -l syslog + + if [ $? = 0 ]; then + echo "gsmd." + else + echo "(failed.)" + fi + ;; + stop) + [ -n "$GSM_POW" ] && echo "0" >$GSM_POW + + echo -n "Stopping GSM daemon: " + start-stop-daemon -K -x /usr/sbin/gsmd + echo "gsmd." + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/gsmd {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/meta/recipes-connectivity/gsm/files/install-ts-headers.patch b/meta/recipes-connectivity/gsm/files/install-ts-headers.patch new file mode 100644 index 000000000..b77b6d908 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/install-ts-headers.patch @@ -0,0 +1,13 @@ +Upstream-Status: Inappropriate [not used] + +Index: gsm/include/gsmd/Makefile.am +=================================================================== +--- gsm.orig/include/gsmd/Makefile.am 2007-10-29 21:05:57.000000000 +0100 ++++ gsm/include/gsmd/Makefile.am 2007-10-29 21:06:03.000000000 +0100 +@@ -1,4 +1,4 @@ + +-pkginclude_HEADERS = event.h usock.h ++pkginclude_HEADERS = event.h ts0705.h ts0707.h usock.h + +-noinst_HEADERS = atcmd.h gsmd.h select.h ts0705.h ts0707.h unsolicited.h usock.h vendorplugin.h ++noinst_HEADERS = atcmd.h gsmd.h select.h unsolicited.h usock.h vendorplugin.h diff --git a/meta/recipes-connectivity/gsm/files/lgsm_send_fix_return_value.patch b/meta/recipes-connectivity/gsm/files/lgsm_send_fix_return_value.patch new file mode 100644 index 000000000..9ff1c9d28 --- /dev/null +++ b/meta/recipes-connectivity/gsm/files/lgsm_send_fix_return_value.patch @@ -0,0 +1,13 @@ +Upstream-Status: Inappropriate [not used] + +--- gsm/src/libgsmd/libgsmd.c.orig 2007-09-25 00:41:56.000000000 -0500 ++++ gsm/src/libgsmd/libgsmd.c 2007-09-25 00:43:44.000000000 -0500 +@@ -210,7 +210,7 @@ + pos += rc; + } + } +- return 0; ++ return (sizeof(*gmh) + gmh->len); + } + + struct gsmd_msg_hdr *lgsm_gmh_fill(int type, int subtype, int payload_len) diff --git a/meta/recipes-connectivity/gsm/gsmd.inc b/meta/recipes-connectivity/gsm/gsmd.inc new file mode 100644 index 000000000..a96851874 --- /dev/null +++ b/meta/recipes-connectivity/gsm/gsmd.inc @@ -0,0 +1,108 @@ +SUMMARY = "GSM libraries and daemons" +DESCRIPTION = "GSM libraries and daemons implementing the 07.10 specification" +HOMEPAGE = "http://www.openmoko.org" +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://COPYING.library;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://src/util/event.c;beginline=1;endline=21;md5=7fc982f6308a591d1e3581e59c6768ce \ + file://src/libgsmd/libgsmd_sms.c;beginline=1;endline=19;md5=7bd4cdfab49cfba6a2afc020ee0b0806" +SECTION = "libs/gsm" +PROVIDES += "gsmd" +RPROVIDES_${PN} = "libgsmd0 libgsmd gsmd gsmd-devel" +PV = "0.1+svnr${SRCPV}" +PR = "r2" + +SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \ + file://fix_machine_init.patch \ + file://gsmd \ + file://default" +S = "${WORKDIR}/gsm" + +inherit autotools pkgconfig update-rc.d + +UPDATERCPN = "gsmd" +INITSCRIPT_NAME = "gsmd" +INITSCRIPT_PARAMS = "defaults 35" + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/gsmd ${D}/${sysconfdir}/init.d/ + install -d ${D}/${sysconfdir}/default + install ${WORKDIR}/default ${D}/${sysconfdir}/default/gsmd +} + +PACKAGES =+ "\ + ${PN}-tools \ + ${BASEPN}-plugins \ + ${BASEPN}-plugin-machine-generic \ + ${BASEPN}-plugin-machine-telit \ + ${BASEPN}-plugin-machine-tihtc \ + ${BASEPN}-plugin-machine-gta01 \ + ${BASEPN}-plugin-vendor-bcm \ + ${BASEPN}-plugin-vendor-qc \ + ${BASEPN}-plugin-vendor-ti \ + ${BASEPN}-plugin-vendor-telit \ + ${BASEPN}-plugin-vendor-tihtc \ +" + +ALLOW_EMPTY_${BASEPN}-plugin-machine-gta01 = "1" + +RDEPENDS_${BASEPN}-plugins = "\ + ${BASEPN}-plugin-machine-generic \ + ${BASEPN}-plugin-machine-telit \ + ${BASEPN}-plugin-machine-tihtc \ + ${BASEPN}-plugin-machine-gta01 \ + ${BASEPN}-plugin-vendor-bcm \ + ${BASEPN}-plugin-vendor-qc \ + ${BASEPN}-plugin-vendor-ti \ + ${BASEPN}-plugin-vendor-telit \ + ${BASEPN}-plugin-vendor-tihtc \ +" + +RDEPENDS_${PN} += "update-rc.d initscripts" +RRECOMMENDS_${PN} += "${BASEPN}-plugins" + +FILES_${PN}-dbg += "${libdir}/gsmd/.debug/*" +FILES_${PN}-dev += "${libdir}/gsmd/*.so ${libdir}/gsmd/*.la" +FILES_${PN}-staticdev += "${libdir}/gsmd/*.a" +FILES_${PN}-tools = "${bindir}/*" +FILES_${BASEPN}-plugins = "" +FILES_${BASEPN}-plugin-machine-generic = "${libdir}/gsmd/libgsmd-machine_generic.so.*" +FILES_${BASEPN}-plugin-machine-tihtc = "${libdir}/gsmd/libgsmd-machine_tihtc.so.*" +FILES_${BASEPN}-plugin-machine-telit = "${libdir}/gsmd/libgsmd-machine_telit.so.*" +FILES_${BASEPN}-plugin-machine-gta01 = "${libdir}/gsmd/libgsmd-machine_gta01.so.*" +FILES_${BASEPN}-plugin-vendor-qc = "${libdir}/gsmd/libgsmd-vendor_qc.so.*" +FILES_${BASEPN}-plugin-vendor-bcm = "${libdir}/gsmd/libgsmd-vendor_bcm.so.*" +FILES_${BASEPN}-plugin-vendor-ti = "${libdir}/gsmd/libgsmd-vendor_ti.so.*" +FILES_${BASEPN}-plugin-vendor-telit = "${libdir}/gsmd/libgsmd-vendor_telit.so.*" +FILES_${BASEPN}-plugin-vendor-tihtc = "${libdir}/gsmd/libgsmd-vendor_tihtc.so.*" + +PACKAGES_DYNAMIC = "lib${BASEPN}* ${BASEPN}" + +ALLOW_EMPTY_${BASEPN}-plugins = "1" + +RCONFLICTS_lib${BASEPN} = "lib${CONFLICTNAME}" +RCONFLICTS_${BASEPN} = "${CONFLICTNAME}" +RCONFLICTS_${BASEPN}-plugins = "${CONFLICTNAME}-plugins" +RCONFLICTS_${BASEPN}-plugin-machine-generic = "${CONFLICTNAME}-plugin-machine-generic" +RCONFLICTS_${BASEPN}-plugin-machine-telit = "${CONFLICTNAME}-plugin-machine-telit" +RCONFLICTS_${BASEPN}-plugin-machine-tihtc = "${CONFLICTNAME}-plugin-machine-tihtc" +RCONFLICTS_${BASEPN}-plugin-machine-gta01 = "${CONFLICTNAME}-plugin-machine-gta01" +RCONFLICTS_${BASEPN}-plugin-vendor-qc = "${CONFLICTNAME}-plugin-vendor-qc" +RCONFLICTS_${BASEPN}-plugin-vendor-bcm = "${CONFLICTNAME}-plugin-vendor-bcm" +RCONFLICTS_${BASEPN}-plugin-vendor-ti = "${CONFLICTNAME}-plugin-vendor-ti" +RCONFLICTS_${BASEPN}-plugin-vendor-telit = "${CONFLICTNAME}-plugin-vendor-telit" +RCONFLICTS_${BASEPN}-plugin-vendor-tihtc = "${CONFLICTNAME}-plugin-vendor-tihtc" + +RPROVIDES_lib${BASEPN} += "lib${CONFLICTNAME}" +RPROVIDES_${BASEPN} = "${CONFLICTNAME}" +RPROVIDES_${BASEPN}-plugins = "${CONFLICTNAME}-plugins" +RPROVIDES_${BASEPN}-plugin-machine-generic = "${CONFLICTNAME}-plugin-machine-generic" +RPROVIDES_${BASEPN}-plugin-machine-telit = "${CONFLICTNAME}-plugin-machine-telit" +RPROVIDES_${BASEPN}-plugin-machine-tihtc = "${CONFLICTNAME}-plugin-machine-tihtc" +RPROVIDES_${BASEPN}-plugin-machine-gta01 = "${CONFLICTNAME}-plugin-machine-gta01" +RPROVIDES_${BASEPN}-plugin-vendor-qc = "${CONFLICTNAME}-plugin-vendor-qc" +RPROVIDES_${BASEPN}-plugin-vendor-bcm = "${CONFLICTNAME}-plugin-vendor-bcm" +RPROVIDES_${BASEPN}-plugin-vendor-ti = "${CONFLICTNAME}-plugin-vendor-ti" +RPROVIDES_${BASEPN}-plugin-vendor-telit = "${CONFLICTNAME}-plugin-vendor-telit" +RPROVIDES_${BASEPN}-plugin-vendor-tihtc = "${CONFLICTNAME}-plugin-vendor-tihtc" diff --git a/meta/recipes-connectivity/gsm/libgsmd_svn.bb b/meta/recipes-connectivity/gsm/libgsmd_svn.bb new file mode 100644 index 000000000..ea8eaaea0 --- /dev/null +++ b/meta/recipes-connectivity/gsm/libgsmd_svn.bb @@ -0,0 +1,6 @@ +BASEPN = "gsmd" +CONFLICTNAME = "gsmd-devel" + +SRCREV = "5394" +require gsmd.inc + diff --git a/meta/recipes-connectivity/gupnp/gssdp-0.10.0/introspection.patch b/meta/recipes-connectivity/gupnp/gssdp-0.10.0/introspection.patch new file mode 100644 index 000000000..39c1502af --- /dev/null +++ b/meta/recipes-connectivity/gupnp/gssdp-0.10.0/introspection.patch @@ -0,0 +1,104 @@ +Copied from gobject-introspection/m4/introspection.m4 + +Upstream-Status: Inappropriate [configuration] + +Signed-off-By: Dongxiao Xu <dongxiao.xu@intel.com> + +diff -ruN gssdp-0.9.0-orig/m4/introspection.m4 gssdp-0.9.0/m4/introspection.m4 +--- gssdp-0.9.0-orig/m4/introspection.m4 1970-01-01 08:00:00.000000000 +0800 ++++ gssdp-0.9.0/m4/introspection.m4 2010-12-06 11:08:16.000000000 +0800 +@@ -0,0 +1,94 @@ ++dnl -*- mode: autoconf -*- ++dnl Copyright 2009 Johan Dahlin ++dnl ++dnl This file is free software; the author(s) gives unlimited ++dnl permission to copy and/or distribute it, with or without ++dnl modifications, as long as this notice is preserved. ++dnl ++ ++# serial 1 ++ ++m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], ++[ ++ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first ++ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first ++ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first ++ ++ dnl enable/disable introspection ++ m4_if([$2], [require], ++ [dnl ++ enable_introspection=yes ++ ],[dnl ++ AC_ARG_ENABLE(introspection, ++ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], ++ [Enable introspection for this build]),, ++ [enable_introspection=auto]) ++ ])dnl ++ ++ AC_MSG_CHECKING([for gobject-introspection]) ++ ++ dnl presence/version checking ++ AS_CASE([$enable_introspection], ++ [no], [dnl ++ found_introspection="no (disabled, use --enable-introspection to enable)" ++ ],dnl ++ [yes],[dnl ++ PKG_CHECK_EXISTS([gobject-introspection-1.0],, ++ AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) ++ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], ++ found_introspection=yes, ++ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) ++ ],dnl ++ [auto],[dnl ++ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) ++ ],dnl ++ [dnl ++ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) ++ ])dnl ++ ++ AC_MSG_RESULT([$found_introspection]) ++ ++ INTROSPECTION_SCANNER= ++ INTROSPECTION_COMPILER= ++ INTROSPECTION_GENERATE= ++ INTROSPECTION_GIRDIR= ++ INTROSPECTION_TYPELIBDIR= ++ if test "x$found_introspection" = "xyes"; then ++ 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` ++ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` ++ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" ++ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` ++ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` ++ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection ++ fi ++ AC_SUBST(INTROSPECTION_SCANNER) ++ AC_SUBST(INTROSPECTION_COMPILER) ++ AC_SUBST(INTROSPECTION_GENERATE) ++ AC_SUBST(INTROSPECTION_GIRDIR) ++ AC_SUBST(INTROSPECTION_TYPELIBDIR) ++ AC_SUBST(INTROSPECTION_CFLAGS) ++ AC_SUBST(INTROSPECTION_LIBS) ++ AC_SUBST(INTROSPECTION_MAKEFILE) ++ ++ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") ++]) ++ ++ ++dnl Usage: ++dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) ++ ++AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], ++[ ++ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) ++]) ++ ++dnl Usage: ++dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) ++ ++ ++AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], ++[ ++ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) ++]) diff --git a/meta/recipes-connectivity/gupnp/gssdp_0.10.0.bb b/meta/recipes-connectivity/gupnp/gssdp_0.10.0.bb new file mode 100644 index 000000000..dcc40b8b9 --- /dev/null +++ b/meta/recipes-connectivity/gupnp/gssdp_0.10.0.bb @@ -0,0 +1,26 @@ +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 libglade" + +SRC_URI = "http://gupnp.org/sites/all/files/sources/${BPN}-${PV}.tar.gz \ + file://introspection.patch" + +SRC_URI[md5sum] = "725c32e8f92a072cc34f0e091937df2a" +SRC_URI[sha256sum] = "8eaab799f699836770ec2fcc08abfef2f824a82ae959c6af7b39ffb6968b9fd7" + +inherit autotools pkgconfig + +PACKAGES =+ "gssdp-tools" + +FILES_gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade" + +EXTRA_OECONF = "--disable-introspection" + +PR = "r1" + +SRC_URI[md5sum] = "aec6a56ac1d4f8a4837da83f2d152556" +SRC_URI[sha256sum] = "94de92bb4f7906ed2f047b0146a3b21d53d09908fe1f0149484f61c6afc598ea" + + diff --git a/meta/recipes-connectivity/gupnp/gupnp-0.16.1/introspection.patch b/meta/recipes-connectivity/gupnp/gupnp-0.16.1/introspection.patch new file mode 100644 index 000000000..86d57a742 --- /dev/null +++ b/meta/recipes-connectivity/gupnp/gupnp-0.16.1/introspection.patch @@ -0,0 +1,104 @@ +Copied from gobject-introspection/m4/introspection.m4 + +Upstream-Status: Inappropriate [configuration] + +Signed-off-By: Dongxiao Xu <dongxiao.xu@intel.com> + +diff -ruN gupnp-0.16.1-orig/m4/introspection.m4 gupnp-0.16.1/m4/introspection.m4 +--- gupnp-0.16.1-orig/m4/introspection.m4 1970-01-01 08:00:00.000000000 +0800 ++++ gupnp-0.16.1/m4/introspection.m4 2010-12-06 11:08:16.000000000 +0800 +@@ -0,0 +1,94 @@ ++dnl -*- mode: autoconf -*- ++dnl Copyright 2009 Johan Dahlin ++dnl ++dnl This file is free software; the author(s) gives unlimited ++dnl permission to copy and/or distribute it, with or without ++dnl modifications, as long as this notice is preserved. ++dnl ++ ++# serial 1 ++ ++m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], ++[ ++ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first ++ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first ++ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first ++ ++ dnl enable/disable introspection ++ m4_if([$2], [require], ++ [dnl ++ enable_introspection=yes ++ ],[dnl ++ AC_ARG_ENABLE(introspection, ++ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], ++ [Enable introspection for this build]),, ++ [enable_introspection=auto]) ++ ])dnl ++ ++ AC_MSG_CHECKING([for gobject-introspection]) ++ ++ dnl presence/version checking ++ AS_CASE([$enable_introspection], ++ [no], [dnl ++ found_introspection="no (disabled, use --enable-introspection to enable)" ++ ],dnl ++ [yes],[dnl ++ PKG_CHECK_EXISTS([gobject-introspection-1.0],, ++ AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) ++ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], ++ found_introspection=yes, ++ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) ++ ],dnl ++ [auto],[dnl ++ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) ++ ],dnl ++ [dnl ++ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) ++ ])dnl ++ ++ AC_MSG_RESULT([$found_introspection]) ++ ++ INTROSPECTION_SCANNER= ++ INTROSPECTION_COMPILER= ++ INTROSPECTION_GENERATE= ++ INTROSPECTION_GIRDIR= ++ INTROSPECTION_TYPELIBDIR= ++ if test "x$found_introspection" = "xyes"; then ++ 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` ++ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` ++ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" ++ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` ++ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` ++ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection ++ fi ++ AC_SUBST(INTROSPECTION_SCANNER) ++ AC_SUBST(INTROSPECTION_COMPILER) ++ AC_SUBST(INTROSPECTION_GENERATE) ++ AC_SUBST(INTROSPECTION_GIRDIR) ++ AC_SUBST(INTROSPECTION_TYPELIBDIR) ++ AC_SUBST(INTROSPECTION_CFLAGS) ++ AC_SUBST(INTROSPECTION_LIBS) ++ AC_SUBST(INTROSPECTION_MAKEFILE) ++ ++ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") ++]) ++ ++ ++dnl Usage: ++dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) ++ ++AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], ++[ ++ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) ++]) ++ ++dnl Usage: ++dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) ++ ++ ++AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], ++[ ++ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) ++]) diff --git a/meta/recipes-connectivity/gupnp/gupnp-av_0.8.0.bb b/meta/recipes-connectivity/gupnp/gupnp-av_0.8.0.bb new file mode 100644 index 000000000..ae96edaad --- /dev/null +++ b/meta/recipes-connectivity/gupnp/gupnp-av_0.8.0.bb @@ -0,0 +1,15 @@ +SUMMARY = "Helpers for AV applications using UPnP" +DESCRIPTION = "GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP." +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libgupnp-av/gupnp-av.h;beginline=1;endline=22;md5=d344132a8766641fcb11213ff5982086" +DEPENDS = "gupnp" + +SRC_URI = "http://gupnp.org/sites/all/files/sources/${BPN}-${PV}.tar.gz" + +PR = "r1" + +inherit autotools pkgconfig + +SRC_URI[md5sum] = "8a41a3bb60b50fceb5ece71c0dc4dcfb" +SRC_URI[sha256sum] = "e6aa032377488cedc4e347519bd30701c583780b7c54f00bab083f2316a93dc9" diff --git a/meta/recipes-connectivity/gupnp/gupnp-tools_0.8.1.bb b/meta/recipes-connectivity/gupnp/gupnp-tools_0.8.1.bb new file mode 100644 index 000000000..2ee7462f2 --- /dev/null +++ b/meta/recipes-connectivity/gupnp/gupnp-tools_0.8.1.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "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+ libglade gnome-icon-theme" + +SRC_URI = "http://gupnp.org/sites/all/files/sources/${BPN}-${PV}.tar.gz" + +PR = "r0" + +inherit autotools pkgconfig + +SRC_URI[md5sum] = "d8a44a8c19b1cc10b8e5508448d8493f" +SRC_URI[sha256sum] = "3b46a76fcbb0188b8d2c406e514edc7662d65f48774c81e5a19f93d7706db302" diff --git a/meta/recipes-connectivity/gupnp/gupnp_0.16.1.bb b/meta/recipes-connectivity/gupnp/gupnp_0.16.1.bb new file mode 100644 index 000000000..8460c16c1 --- /dev/null +++ b/meta/recipes-connectivity/gupnp/gupnp_0.16.1.bb @@ -0,0 +1,29 @@ +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+" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libgupnp/gupnp.h;beginline=1;endline=20;md5=28c49b17d623afc3335efc2e511879e1" +DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2 gnome-icon-theme" + +SRC_URI = "http://gupnp.org/sites/all/files/sources/${BPN}-${PV}.tar.gz \ + file://introspection.patch" + +SRC_URI[md5sum] = "021bb237741532af4bca50157ff326e4" +SRC_URI[sha256sum] = "f01a1f4fd36ce161a3df29fa83e1a0a2fb40d3c9f30f6b403e7791688ad24cfe" + +PR = "r1" + +EXTRA_OECONF = "--disable-introspection" + +inherit autotools pkgconfig + +FILES_${PN} = "${libdir}/*.so.*" +FILES_${PN}-dev += "${bindir}/gupnp-binding-tool" + +SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess" + +gupnp_sysroot_preprocess () { + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -m 755 ${D}${bindir}/gupnp-binding-tool ${SYSROOT_DESTDIR}${bindir_crossscripts}/ +} + diff --git a/meta/recipes-connectivity/gypsy/files/fix-unused-but-set-variable-warning.patch b/meta/recipes-connectivity/gypsy/files/fix-unused-but-set-variable-warning.patch new file mode 100644 index 000000000..d276b2cd5 --- /dev/null +++ b/meta/recipes-connectivity/gypsy/files/fix-unused-but-set-variable-warning.patch @@ -0,0 +1,18 @@ +Upstream-Status: Accepted + +Index: gypsy-0.8/gypsy/gypsy-time.c +=================================================================== +--- gypsy-0.8.orig/gypsy/gypsy-time.c ++++ gypsy-0.8/gypsy/gypsy-time.c +@@ -156,10 +156,10 @@ get_property (GObject *object, + GParamSpec *pspec) + { + GypsyTimePrivate *priv; +- + priv = GET_PRIVATE (object); + switch (prop_id) { + case PROP_PATH: ++ g_value_set_string (value, priv->object_path); + break; + + default: diff --git a/meta/recipes-connectivity/gypsy/files/fixups.patch b/meta/recipes-connectivity/gypsy/files/fixups.patch new file mode 100644 index 000000000..de4d92ea1 --- /dev/null +++ b/meta/recipes-connectivity/gypsy/files/fixups.patch @@ -0,0 +1,21 @@ +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/recipes-connectivity/gypsy/gypsy.inc b/meta/recipes-connectivity/gypsy/gypsy.inc new file mode 100644 index 000000000..11a72046f --- /dev/null +++ b/meta/recipes-connectivity/gypsy/gypsy.inc @@ -0,0 +1,19 @@ +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 = "x11" +DEPENDS = "glib-2.0 dbus bluez4 dbus-glib" + +inherit autotools pkgconfig + +EXTRA_OECONF += "--with-distro=debian" + +do_configure_prepend () { + touch ${S}/gtk-doc.make +} + +FILES_${PN} += "/usr/share/dbus-1/services/" diff --git a/meta/recipes-connectivity/gypsy/gypsy_0.8.bb b/meta/recipes-connectivity/gypsy/gypsy_0.8.bb new file mode 100644 index 000000000..59a34fa66 --- /dev/null +++ b/meta/recipes-connectivity/gypsy/gypsy_0.8.bb @@ -0,0 +1,26 @@ +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+ & LGPLv2+" +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" + +SECTION = "x11" +DEPENDS = "glib-2.0 dbus bluez4 dbus-glib libxslt" + +SRC_URI = "http://gypsy.freedesktop.org/releases/gypsy-${PV}.tar.gz \ + file://fix-unused-but-set-variable-warning.patch \ + " +PR = "r2" + +inherit autotools pkgconfig + +FILES_${PN} += "/usr/share/dbus-1/system-services/" + +SRC_URI[md5sum] = "32b8db24db86d2dac87b391dd255f4bf" +SRC_URI[sha256sum] = "1986a58189614a950725c3bc7d05faa3b84695f35cb696326f340ef87fc3acaa" diff --git a/meta/recipes-connectivity/gypsy/gypsy_git.bb b/meta/recipes-connectivity/gypsy/gypsy_git.bb new file mode 100644 index 000000000..b123e1181 --- /dev/null +++ b/meta/recipes-connectivity/gypsy/gypsy_git.bb @@ -0,0 +1,16 @@ +require gypsy.inc + +DEFAULT_PREFERENCE = "-1" + +SRCREV = "3652e1f37e82b8e63983e30fda3482cd099a8cf5" +PV = "0.8+git${SRCPV}" +S = "${WORKDIR}/git" + +LICENSE = "GPLv2+ & LGPLv2+" +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;protocol=git \ + file://fixups.patch" diff --git a/meta/recipes-connectivity/iproute2/iproute2-3.2.0/configure-cross.patch b/meta/recipes-connectivity/iproute2/iproute2-3.2.0/configure-cross.patch new file mode 100644 index 000000000..bed7b8466 --- /dev/null +++ b/meta/recipes-connectivity/iproute2/iproute2-3.2.0/configure-cross.patch @@ -0,0 +1,76 @@ +From 85b0589b4843c03e8e6fd9416d71ea449a73c5c0 Mon Sep 17 00:00:00 2001 +From: Koen Kooi <koen@dominion.thruhere.net> +Date: Thu, 3 Nov 2011 10:46:16 +0100 +Subject: [PATCH] make configure cross compile safe + +According to Kevin Tian: +Upstream-Status: Pending + +Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> +Signed-off-by: Shane Wang <shane.wang@intel.com> + +diff -r e4e1b14b9c4a configure +--- a/configure Sun Jan 22 15:26:47 2012 +0800 ++++ b/configure Sun Jan 22 15:29:38 2012 +0800 +@@ -2,6 +2,7 @@ + # This is not an autconf generated configure + # + INCLUDE=${1:-"$PWD/include"} ++SYSROOT=$1 + + check_atm() + { +@@ -13,7 +14,7 @@ + return 0; + } + EOF +-gcc -I$INCLUDE -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1 ++$CC -I$INCLUDE -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1 + if [ $? -eq 0 ] + then + echo "TC_CONFIG_ATM:=y" >>Config +@@ -47,7 +48,7 @@ + + EOF + +-if gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL $(pkg-config xtables --cflags --libs) -ldl >/dev/null 2>&1 ++if $CC -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL $(pkg-config xtables --cflags --libs) -ldl >/dev/null 2>&1 + then + echo "TC_CONFIG_XT:=y" >>Config + echo "using xtables" +@@ -84,7 +85,7 @@ + } + + EOF +-gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1 ++$CC -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1 + + if [ $? -eq 0 ] + then +@@ -124,7 +125,7 @@ + } + + EOF +-gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1 ++$CC -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1 + + if [ $? -eq 0 ] + then +@@ -145,7 +146,7 @@ + check_ipt_lib_dir() + { + IPT_LIB_DIR="" +- for dir in /lib /usr/lib /usr/local/lib ++ for dir in $SYSROOT/lib $SYSROOT/usr/lib $SYSROOT/usr/local/lib + do + for file in $dir/{xtables,iptables}/lib*t_*so ; do + if [ -f $file ]; then +@@ -168,7 +169,7 @@ + return 0; + } + EOF +-gcc -I$INCLUDE -o /tmp/setnstest /tmp/setnstest.c >/dev/null 2>&1 ++$CC -I$INCLUDE -o /tmp/setnstest /tmp/setnstest.c >/dev/null 2>&1 + if [ $? -eq 0 ] + then + echo "IP_CONFIG_SETNS:=y" >>Config diff --git a/meta/recipes-connectivity/iproute2/iproute2.inc b/meta/recipes-connectivity/iproute2/iproute2.inc new file mode 100644 index 000000000..86847efe1 --- /dev/null +++ b/meta/recipes-connectivity/iproute2/iproute2.inc @@ -0,0 +1,37 @@ +SUMMARY = "TCP / IP networking and traffic control utilities" +DESCRIPTION = "Iproute2 is a collection of utilities for controlling \ +TCP / IP networking and traffic control in Linux. Of the utilities ip \ +and tc are the most important. ip controls IPv4 and IPv6 \ +configuration and tc stands for traffic control." +HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2" +SECTION = "base" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://ip/ip.c;beginline=3;endline=8;md5=689d691d0410a4b64d3899f8d6e31817" + +DEPENDS = "flex-native bison-native" + +inherit update-alternatives + +EXTRA_OEMAKE = "CC='${CC}' KERNEL_INCLUDE=${STAGING_KERNEL_DIR}/include DOCDIR=${docdir}/iproute2 SUBDIRS='lib tc ip' SBINDIR=/sbin" + +do_install () { + oe_runmake DESTDIR=${D} install + mv ${D}${base_sbindir}/ip ${D}${base_sbindir}/ip.iproute2 + install -d ${D}${datadir} + mv ${D}/share/* ${D}${datadir}/ || true + rm ${D}/share -rf || true +} + +# There are only .so files in iproute2 +INSANE_SKIP_${PN} = "dev-so" + +FILES_${PN} += "${base_libdir}/tc" +FILES_${PN}-dbg += "${base_libdir}/tc/.debug" + +ALTERNATIVE_NAME = "ip" +ALTERNATIVE_PATH = "${base_sbindir}/ip.iproute2" +ALTERNATIVE_LINK = "${base_bindir}/ip" +ALTERNATIVE_PRIORITY = "100" + +PARALLEL_MAKE = "" diff --git a/meta/recipes-connectivity/iproute2/iproute2_3.2.0.bb b/meta/recipes-connectivity/iproute2/iproute2_3.2.0.bb new file mode 100644 index 000000000..5af12af5b --- /dev/null +++ b/meta/recipes-connectivity/iproute2/iproute2_3.2.0.bb @@ -0,0 +1,11 @@ +require iproute2.inc + +PR = "r1" + +#v3.2.0 tag is "447c118f138171b260ad045ad6e1b17f9ef462e2" +#but it was not fully tested and had build error, and the next commit fixed it. +SRCREV = "13603f6a9e46f08576f6284a0ef1ce1fbf94ffe0" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git \ + file://configure-cross.patch" +S = "${WORKDIR}/git" + diff --git a/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init b/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init new file mode 100755 index 000000000..63750f187 --- /dev/null +++ b/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init @@ -0,0 +1,80 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: irda +# Required-Start: $network $remote_fs +# Required-Stop: $network $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Infrared port support +### END INIT INFO + +module_id() { + awk 'BEGIN { FS=": " } /Hardware/ { print $2 } ' </proc/cpuinfo +} + +if [ ! -f /etc/sysconfig/irda ]; then + + case `module_id` in + "HP iPAQ H2200" | "HP iPAQ HX4700" | "HTC Universal") + IRDA=yes + DEVICE=/dev/ttyS2 + DONGLE= + DISCOVERY= + ;; + *) + IRDA=yes + DEVICE=/dev/ttyS1 + DONGLE= + DISCOVERY= + ;; + esac + + mkdir -p /etc/sysconfig + echo "IRDA=$IRDA" > /etc/sysconfig/irda + if [ $IRDA = "yes" ]; then + echo "DEVICE=$DEVICE" >> /etc/sysconfig/irda + echo "DONGLE=$DONGLE" >> /etc/sysconfig/irda + echo "DISCOVERY=$DISCOVERY" >> /etc/sysconfig/irda + fi +fi + +. /etc/sysconfig/irda + +# Check that irda is up. +[ ${IRDA} = "no" ] && exit 0 + +[ -f /usr/sbin/irattach ] || exit 0 + +ARGS= +if [ $DONGLE ]; then + ARGS="$ARGS -d $DONGLE" +fi +if [ "$DISCOVERY" = "yes" ];then + ARGS="$ARGS -s" +fi + +case "$1" in + start) + echo -n "Starting IrDA: " + irattach ${DEVICE} ${ARGS} > /dev/null 2>&1 & + echo "$NAME." + ;; + stop) + echo -n "Stopping IrDA: " + killall irattach > /dev/null 2>&1 + echo "$NAME." + ;; + restart|force-reload) + echo -n "Restarting IrDA: " + irattach ${DEVICE} ${ARGS} > /dev/null 2>&1 & + sleep 1 + killall irattach > /dev/null 2>&1 + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + diff --git a/meta/recipes-connectivity/irda-utils/irda-utils_0.9.18.bb b/meta/recipes-connectivity/irda-utils/irda-utils_0.9.18.bb new file mode 100644 index 000000000..a000a786c --- /dev/null +++ b/meta/recipes-connectivity/irda-utils/irda-utils_0.9.18.bb @@ -0,0 +1,40 @@ +SUMMARY = "Common files for IrDA" +DESCRIPTION = "Provides common files needed to use IrDA. \ +IrDA allows communication over Infrared with other devices \ +such as phones and laptops." +HOMEPAGE = "http://irda.sourceforge.net/" +BUGTRACKER = "irda-users@lists.sourceforge.net" +SECTION = "base" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://irdadump/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://smcinit/COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://man/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://irdadump/irdadump.c;beginline=1;endline=24;md5=d78b9dce3cd78c2220250c9c7a2be178" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/irda/irda-utils-${PV}.tar.gz \ + file://init" + +SRC_URI[md5sum] = "84dc12aa4c3f61fccb8d8919bf4079bb" +SRC_URI[sha256sum] = "61980551e46b2eaa9e17ad31cbc1a638074611fc33bff34163d10c7a67a9fdc6" + +export SYS_INCLUDES="-I${STAGING_INCDIR}" + +inherit autotools + +INITSCRIPT_NAME = "irattach" +INITSCRIPT_PARAMS = "defaults 20" + +do_compile () { + oe_runmake -e -C irattach + oe_runmake -e -C irdaping +} + +do_install () { + install -d ${D}${sbindir} + oe_runmake -C irattach ROOT="${D}" install + oe_runmake -C irdaping ROOT="${D}" install + + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME} +} diff --git a/meta/recipes-connectivity/libnss-mdns/files/alignment-fix.patch b/meta/recipes-connectivity/libnss-mdns/files/alignment-fix.patch new file mode 100644 index 000000000..70de305ba --- /dev/null +++ b/meta/recipes-connectivity/libnss-mdns/files/alignment-fix.patch @@ -0,0 +1,13 @@ +Upstream-Status: Pending + +--- nss-mdns-0.6/src/nss.c.orig 2005-09-25 17:27:51 +0200 ++++ nss-mdns-0.6/src/nss.c 2005-09-25 17:28:55 +0200 +@@ -456,6 +456,8 @@ + result->h_addrtype = af; + result->h_length = address_length; + ++ idx+=(sizeof(char*)-idx%sizeof(char*)); /* Align on 32 bit boundary */ ++ + /* Check if there's enough space for the addresses */ + if (buflen < idx+u.data_len+sizeof(char*)*(u.count+1)) { + *errnop = ERANGE; diff --git a/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb b/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb new file mode 100644 index 000000000..87707142d --- /dev/null +++ b/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb @@ -0,0 +1,37 @@ +DESCRIPTION = "NSS module for Multicast DNS name resolution" +HOMEPAGE = "http://0pointer.de/lennart/projects/nss-mdns/" +SECTION = "libs" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1" + +DEPENDS = "avahi" +RDEPENDS_${PN} = "avahi-daemon" +PR = "r4" + +SRC_URI = "http://0pointer.de/lennart/projects/nss-mdns/nss-mdns-${PV}.tar.gz" + +SRC_URI[md5sum] = "03938f17646efbb50aa70ba5f99f51d7" +SRC_URI[sha256sum] = "1e683c2e7c3921814706d62fbbd3e9cbf493a75fa00255e0e715508d8134fa6d" +S = "${WORKDIR}/nss-mdns-${PV}" + +inherit autotools + +# suppress warning, but don't bother with autonamer +LEAD_SONAME = "libnss_mdns.so" +DEBIANNAME_${PN} = "libnss-mdns" + +EXTRA_OECONF = "--libdir=${base_libdir} --disable-lynx --enable-avahi" + +# TODO: pattern based configuration update +pkg_postinst_${PN} () { + cat $D/etc/nsswitch.conf | grep "hosts:\s*files dns$" > /dev/null && { + sed -i 's/hosts:\s*files dns/& mdns4/' $D/etc/nsswitch.conf + } +} + +pkg_prerm_${PN} () { + cat /etc/nsswitch.conf | grep "hosts:\s*files dns mdns4$" > /dev/null && { + sed -i 's/\(hosts:\s*files dns\) mdns4*/\1/' /etc/nsswitch.conf + } +} diff --git a/meta/recipes-connectivity/libpcap/libpcap-1.2.1/aclocal.patch b/meta/recipes-connectivity/libpcap/libpcap-1.2.1/aclocal.patch new file mode 100644 index 000000000..469d122ee --- /dev/null +++ b/meta/recipes-connectivity/libpcap/libpcap-1.2.1/aclocal.patch @@ -0,0 +1,167 @@ +Upstream-Status: Inappropriate [configuration] + +diff -ruN libpcap-1.1.1-orig/aclocal.m4 libpcap-1.1.1/aclocal.m4 +--- libpcap-1.1.1-orig/aclocal.m4 2010-06-29 10:46:32.815117569 +0800 ++++ libpcap-1.1.1/aclocal.m4 2010-06-29 10:49:17.150149949 +0800 +@@ -37,7 +37,7 @@ + dnl AC_LBL_C_INIT. Now, we run AC_LBL_C_INIT_BEFORE_CC, AC_PROG_CC, + dnl and AC_LBL_C_INIT at the top level. + dnl +-AC_DEFUN(AC_LBL_C_INIT_BEFORE_CC, ++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]) +@@ -90,7 +90,7 @@ + dnl ac_cv_lbl_gcc_vers + dnl LBL_CFLAGS + dnl +-AC_DEFUN(AC_LBL_C_INIT, ++AC_DEFUN([AC_LBL_C_INIT], + [AC_PREREQ(2.50) + AC_BEFORE([$0], [AC_LBL_FIXINCLUDES]) + AC_BEFORE([$0], [AC_LBL_DEVEL]) +@@ -217,7 +217,7 @@ + dnl V_SONAME_OPT + dnl V_RPATH_OPT + dnl +-AC_DEFUN(AC_LBL_SHLIBS_INIT, ++AC_DEFUN([AC_LBL_SHLIBS_INIT], + [AC_PREREQ(2.50) + if test "$GCC" = yes ; then + # +@@ -361,7 +361,7 @@ + # Make sure we use the V_CCOPT flags, because some of those might + # disable inlining. + # +-AC_DEFUN(AC_LBL_C_INLINE, ++AC_DEFUN([AC_LBL_C_INLINE], + [AC_MSG_CHECKING(for inline) + save_CFLAGS="$CFLAGS" + CFLAGS="$V_CCOPT" +@@ -407,7 +407,7 @@ + dnl + dnl AC_LBL_FIXINCLUDES + dnl +-AC_DEFUN(AC_LBL_FIXINCLUDES, ++AC_DEFUN([AC_LBL_FIXINCLUDES], + [if test "$GCC" = yes ; then + AC_MSG_CHECKING(for ANSI ioctl definitions) + AC_CACHE_VAL(ac_cv_lbl_gcc_fixincludes, +@@ -453,7 +453,7 @@ + dnl $2 (yacc appended) + dnl $3 (optional flex and bison -P prefix) + dnl +-AC_DEFUN(AC_LBL_LEX_AND_YACC, ++AC_DEFUN([AC_LBL_LEX_AND_YACC], + [AC_ARG_WITH(flex, [ --without-flex don't use flex]) + AC_ARG_WITH(bison, [ --without-bison don't use bison]) + if test "$with_flex" = no ; then +@@ -506,7 +506,7 @@ + dnl + dnl DECLWAITSTATUS (defined) + dnl +-AC_DEFUN(AC_LBL_UNION_WAIT, ++AC_DEFUN([AC_LBL_UNION_WAIT], + [AC_MSG_CHECKING(if union wait is used) + AC_CACHE_VAL(ac_cv_lbl_union_wait, + AC_TRY_COMPILE([ +@@ -535,7 +535,7 @@ + dnl + dnl HAVE_SOCKADDR_SA_LEN (defined) + dnl +-AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN, ++AC_DEFUN([AC_LBL_SOCKADDR_SA_LEN], + [AC_MSG_CHECKING(if sockaddr struct has the sa_len member) + AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len, + AC_TRY_COMPILE([ +@@ -560,7 +560,7 @@ + dnl + dnl HAVE_SOCKADDR_STORAGE (defined) + dnl +-AC_DEFUN(AC_LBL_SOCKADDR_STORAGE, ++AC_DEFUN([AC_LBL_SOCKADDR_STORAGE], + [AC_MSG_CHECKING(if sockaddr_storage struct exists) + AC_CACHE_VAL(ac_cv_lbl_has_sockaddr_storage, + AC_TRY_COMPILE([ +@@ -593,7 +593,7 @@ + dnl won't be using code that would use that member, or we wouldn't + dnl compile in any case). + dnl +-AC_DEFUN(AC_LBL_HP_PPA_INFO_T_DL_MODULE_ID_1, ++AC_DEFUN([AC_LBL_HP_PPA_INFO_T_DL_MODULE_ID_1], + [AC_MSG_CHECKING(if dl_hp_ppa_info_t struct has dl_module_id_1 member) + AC_CACHE_VAL(ac_cv_lbl_dl_hp_ppa_info_t_has_dl_module_id_1, + AC_TRY_COMPILE([ +@@ -619,7 +619,7 @@ + dnl + dnl ac_cv_lbl_have_run_path (yes or no) + dnl +-AC_DEFUN(AC_LBL_HAVE_RUN_PATH, ++AC_DEFUN([AC_LBL_HAVE_RUN_PATH], + [AC_MSG_CHECKING(for ${CC-cc} -R) + AC_CACHE_VAL(ac_cv_lbl_have_run_path, + [echo 'main(){}' > conftest.c +@@ -644,7 +644,7 @@ + dnl + dnl LBL_ALIGN (DEFINED) + dnl +-AC_DEFUN(AC_LBL_UNALIGNED_ACCESS, ++AC_DEFUN([AC_LBL_UNALIGNED_ACCESS], + [AC_MSG_CHECKING(if unaligned accesses fail) + AC_CACHE_VAL(ac_cv_lbl_unaligned_fail, + [case "$host_cpu" in +@@ -749,7 +749,7 @@ + dnl HAVE_OS_PROTO_H (defined) + dnl os-proto.h (symlinked) + dnl +-AC_DEFUN(AC_LBL_DEVEL, ++AC_DEFUN([AC_LBL_DEVEL], + [rm -f os-proto.h + if test "${LBL_CFLAGS+set}" = set; then + $1="$$1 ${LBL_CFLAGS}" +@@ -886,7 +886,7 @@ + dnl statically and happen to have a libresolv.a lying around (and no + dnl libnsl.a). + dnl +-AC_DEFUN(AC_LBL_LIBRARY_NET, [ ++AC_DEFUN([AC_LBL_LIBRARY_NET], [ + # Most operating systems have gethostbyname() in the default searched + # libraries (i.e. libc): + # Some OSes (eg. Solaris) place it in libnsl +@@ -909,7 +909,7 @@ + dnl Test for __attribute__ + dnl + +-AC_DEFUN(AC_C___ATTRIBUTE__, [ ++AC_DEFUN([AC_C___ATTRIBUTE__], [ + AC_MSG_CHECKING(for __attribute__) + AC_CACHE_VAL(ac_cv___attribute__, [ + AC_COMPILE_IFELSE( +@@ -947,7 +947,7 @@ + dnl + dnl -Scott Barron + dnl +-AC_DEFUN(AC_LBL_TPACKET_STATS, ++AC_DEFUN([AC_LBL_TPACKET_STATS], + [AC_MSG_CHECKING(if if_packet.h has tpacket_stats defined) + AC_CACHE_VAL(ac_cv_lbl_tpacket_stats, + AC_TRY_COMPILE([ +@@ -976,7 +976,7 @@ + dnl doesn't have that member (which is OK, as either we won't be using + dnl code that would use that member, or we wouldn't compile in any case). + dnl +-AC_DEFUN(AC_LBL_LINUX_TPACKET_AUXDATA_TP_VLAN_TCI, ++AC_DEFUN([AC_LBL_LINUX_TPACKET_AUXDATA_TP_VLAN_TCI], + [AC_MSG_CHECKING(if tpacket_auxdata struct has tp_vlan_tci member) + AC_CACHE_VAL(ac_cv_lbl_dl_hp_ppa_info_t_has_dl_module_id_1, + AC_TRY_COMPILE([ +@@ -1003,7 +1003,7 @@ + dnl + dnl HAVE_DLPI_PASSIVE (defined) + dnl +-AC_DEFUN(AC_LBL_DL_PASSIVE_REQ_T, ++AC_DEFUN([AC_LBL_DL_PASSIVE_REQ_T], + [AC_MSG_CHECKING(if dl_passive_req_t struct exists) + AC_CACHE_VAL(ac_cv_lbl_has_dl_passive_req_t, + AC_TRY_COMPILE([ diff --git a/meta/recipes-connectivity/libpcap/libpcap-1.2.1/ieee80215-arphrd.patch b/meta/recipes-connectivity/libpcap/libpcap-1.2.1/ieee80215-arphrd.patch new file mode 100644 index 000000000..2f5cd213b --- /dev/null +++ b/meta/recipes-connectivity/libpcap/libpcap-1.2.1/ieee80215-arphrd.patch @@ -0,0 +1,24 @@ +Upstream-Status: Pending + +Index: libpcap-1.0.0/pcap-linux.c +=================================================================== +--- libpcap-1.0.0.orig/pcap-linux.c 2009-01-28 11:58:54.000000000 +0300 ++++ libpcap-1.0.0/pcap-linux.c 2009-01-28 11:59:04.000000000 +0300 +@@ -1616,6 +1616,17 @@ + * so let's use "Linux-cooked" mode. Jean II */ + //handle->md.cooked = 1; + break; ++#ifndef ARPHRD_IEEE80215 ++#define ARPHRD_IEEE80215 805 ++#endif ++#ifndef ARPHRD_IEEE80215_PHY ++#define ARPHRD_IEEE80215_PHY 806 ++#endif ++ ++ case ARPHRD_IEEE80215: ++ case ARPHRD_IEEE80215_PHY: ++ handle->linktype = DLT_IEEE802_15_4; ++ break; + + /* ARPHRD_LAPD is unofficial and randomly allocated, if reallocation + * is needed, please report it to <daniele@orlandi.com> */ diff --git a/meta/recipes-connectivity/libpcap/libpcap.inc b/meta/recipes-connectivity/libpcap/libpcap.inc new file mode 100644 index 000000000..427078f7e --- /dev/null +++ b/meta/recipes-connectivity/libpcap/libpcap.inc @@ -0,0 +1,32 @@ +SUMMARY = "Interface for user-level network packet capture" +DESCRIPT = "Libpcap provides a portable framework for low-level network \ +monitoring. Libpcap can provide network statistics collection, \ +security monitoring and network debugging." +HOMEPAGE = "http://www.tcpdump.org/" +BUGTRACKER = "http://sourceforge.net/tracker/?group_id=53067&atid=469577" +SECTION = "libs/network" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867 \ + file://pcap.h;beginline=1;endline=34;md5=8d6cf7e17d5745010d633e30bc529ea9" +DEPENDS = "flex-native bison-native" + +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'bluetooth', 'bluetooth', '', d)}" +PACKAGECONFIG[bluetooth] = "--enable-bluetooth,--disable-bluetooth,bluez4" + +INC_PR = "r1" + +SRC_URI = "http://www.tcpdump.org/release/libpcap-${PV}.tar.gz" + +inherit autotools binconfig + +EXTRA_OECONF = "--with-pcap=linux" + +CPPFLAGS_prepend = "-I${S} " +CFLAGS_prepend = "-I${S} " +CXXFLAGS_prepend = "-I${S} " + +do_configure_prepend () { + if [ ! -e acinclude.m4 ]; then + cat aclocal.m4 > acinclude.m4 + fi +} diff --git a/meta/recipes-connectivity/libpcap/libpcap_1.2.1.bb b/meta/recipes-connectivity/libpcap/libpcap_1.2.1.bb new file mode 100644 index 000000000..91bedf728 --- /dev/null +++ b/meta/recipes-connectivity/libpcap/libpcap_1.2.1.bb @@ -0,0 +1,20 @@ +require libpcap.inc + +PR = "${INC_PR}.0" + +SRC_URI += "file://aclocal.patch \ + file://ieee80215-arphrd.patch" + +SRC_URI[md5sum] = "06046e0e81efc60566daf1cc96c77d46" +SRC_URI[sha256sum] = "a135a6ef7e539729a57c7ed345bdb9b64159e13404174006a7972eb33f00debd" + +# +# make install doesn't cover the shared lib +# make install-shared is just broken (no symlinks) +# +do_install_prepend () { + install -d ${D}${libdir} + install -d ${D}${bindir} + oe_runmake install-shared DESTDIR=${D} + oe_libinstall -a -so libpcap ${D}${libdir} +} diff --git a/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb new file mode 100644 index 000000000..47c9ed927 --- /dev/null +++ b/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Mobile Broadband Service Provider Database" +SECTION = "network" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://COPYING;md5=87964579b2a8ece4bc6744d2dc9a8b04" +SRCREV = "d9995ef693cb1ea7237f928df18e03cccba96f16" +PV = "1.0.0+gitr${SRCPV}" +PE = "1" +PR = "r0" + +SRC_URI = "git://git.gnome.org/mobile-broadband-provider-info;protocol=git" +S = "${WORKDIR}/git" + +inherit autotools diff --git a/meta/recipes-connectivity/nfs-utils/files/fix-ac-prereq.patch b/meta/recipes-connectivity/nfs-utils/files/fix-ac-prereq.patch new file mode 100644 index 000000000..09c90616d --- /dev/null +++ b/meta/recipes-connectivity/nfs-utils/files/fix-ac-prereq.patch @@ -0,0 +1,15 @@ +Upstream-Status: Inappropriate [configuration] + +diff --git a/configure.in b/configure.in +index f5d54fb..c105988 100644 +--- a/configure.in ++++ b/configure.in +@@ -1,7 +1,7 @@ + # -*- Autoconf -*- + # Process this file with autoconf to produce a configure script. + +-AC_PREREQ([2.66]) ++AC_PREREQ([2.65]) + AC_INIT([libnfsidmap],[0.24],[linux-nfs@vger.kernel.org]) + AC_CONFIG_SRCDIR([nfsidmap.h]) + AC_CONFIG_MACRO_DIR([m4]) diff --git a/meta/recipes-connectivity/nfs-utils/libnfsidmap_0.24.bb b/meta/recipes-connectivity/nfs-utils/libnfsidmap_0.24.bb new file mode 100644 index 000000000..eff75ecd5 --- /dev/null +++ b/meta/recipes-connectivity/nfs-utils/libnfsidmap_0.24.bb @@ -0,0 +1,19 @@ +SUMMARY = "NFS id mapping library" +DESCRIPTION = "NFS id mapping library" +HOMEPAGE = "http://www.citi.umich.edu/projects/nfsv4/linux/" +SECTION = "libs" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=d9c6a2a0ca6017fda7cd905ed2739b37" +PR = "r0" + +SRC_URI = "http://www.citi.umich.edu/projects/nfsv4/linux/libnfsidmap/${BPN}-${PV}.tar.gz \ + file://fix-ac-prereq.patch \ + " + +SRC_URI[md5sum] = "d71a1ee9881d5b5814ff3ec41256937d" +SRC_URI[sha256sum] = "59501432e683336d7a290da13767e92afb5b86f42ea4254041225fe218e8dd47" + +inherit autotools + +EXTRA_OECONF = "--disable-ldap" diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-1.0.6-uclibc.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-1.0.6-uclibc.patch new file mode 100644 index 000000000..6d46d3a59 --- /dev/null +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-1.0.6-uclibc.patch @@ -0,0 +1,22 @@ +Upstream-Status: Inappropriate [embedded specific] + +Index: nfs-utils-1.2.3/support/nfs/svc_socket.c +=================================================================== +--- nfs-utils-1.2.3.orig/support/nfs/svc_socket.c ++++ nfs-utils-1.2.3/support/nfs/svc_socket.c +@@ -67,6 +67,7 @@ svc_socket (u_long number, int type, int + memset (&addr, 0, sizeof (addr)); + addr.sin_family = AF_INET; + ++#ifndef __UCLIBC__ /* neither getrpcbynumber() nor getrpcbynumber_r() is SuSv3 */ + ret = getrpcbynumber_r (number, &rpcbuf, rpcdata, sizeof rpcdata, + &rpcp); + if (ret == 0 && rpcp != NULL) +@@ -100,6 +101,7 @@ svc_socket (u_long number, int type, int + } + } + else ++#endif + { + addr.sin_port = 0; + if (bind (sock, (struct sockaddr *) &addr, len) < 0) diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-1.2.3-uclibc-libio.h.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-1.2.3-uclibc-libio.h.patch new file mode 100644 index 000000000..465144a32 --- /dev/null +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-1.2.3-uclibc-libio.h.patch @@ -0,0 +1,26 @@ +[PATCH] fix build with uClibc + +uClibc doesn't have/need libio.h, so don't include it from sockaddr.h + +Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> +--- + support/include/sockaddr.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +Upstream-Status: Pending + +Index: nfs-utils-1.2.3/support/include/sockaddr.h +=================================================================== +--- nfs-utils-1.2.3.orig/support/include/sockaddr.h ++++ nfs-utils-1.2.3/support/include/sockaddr.h +@@ -20,7 +20,10 @@ + #ifndef NFS_UTILS_SOCKADDR_H + #define NFS_UTILS_SOCKADDR_H + ++/* uClibc doesn't have/need libio.h */ ++#ifndef __UCLIBC__ + #include <libio.h> ++#endif + #include <stdbool.h> + #include <sys/socket.h> + #include <netinet/in.h> diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver new file mode 100644 index 000000000..e460e26af --- /dev/null +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver @@ -0,0 +1,153 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: nfs-kernel-server +# Required-Start: $remote_fs $portmap hwclock +# Required-Stop: $remote_fs $portmap hwclock +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Kernel NFS server support +# Description: NFS is a popular protocol for file sharing across +# TCP/IP networks. This service provides NFS server +# functionality, which is configured via the +# /etc/exports file. +### END INIT INFO +# +# Startup script for nfs-utils +# +# +# The environment variable NFS_SERVERS may be set in /etc/default/nfsd +# Other control variables may be overridden here too +test -r /etc/default/nfsd && . /etc/default/nfsd +# +# Location of executables: +test -x "$NFS_MOUNTD" || NFS_MOUNTD=/usr/sbin/rpc.mountd +test -x "$NFS_NFSD" || NFS_NFSD=/usr/sbin/rpc.nfsd +test -x "$NFS_STATD" || NFS_STATD=/usr/sbin/rpc.statd +# +# The user mode program must also exist (it just starts the kernel +# threads using the kernel module code). +test -x "$NFS_MOUNTD" || exit 0 +test -x "$NFS_NFSD" || exit 0 +# +# Default is 8 threads, value is settable between 1 and the truely +# ridiculous 99 +test "$NFS_SERVERS" != "" && test "$NFS_SERVERS" -gt 0 && test "$NFS_SERVERS" -lt 100 || NFS_SERVERS=8 +# +# The default state directory is /var/lib/nfs +test -n "$NFS_STATEDIR" || NFS_STATEDIR=/var/lib/nfs +# +#---------------------------------------------------------------------- +# Startup and shutdown functions. +# Actual startup/shutdown is at the end of this file. +#directories +create_directories(){ + echo -n 'creating NFS state directory: ' + mkdir -p "$NFS_STATEDIR" + ( cd "$NFS_STATEDIR" + umask 077 + mkdir -p sm sm.bak + test -w sm/state || { + rm -f sm/state + :>sm/state + } + umask 022 + for file in xtab etab smtab rmtab + do + test -w "$file" || { + rm -f "$file" + :>"$file" + } + done + ) + echo done +} +#mountd +start_mountd(){ + echo -n 'starting mountd: ' + start-stop-daemon --start --exec "$NFS_MOUNTD" -- "-f /etc/exports $@" + echo done +} +stop_mountd(){ + echo -n 'stopping mountd: ' + start-stop-daemon --stop --quiet --exec "$NFS_MOUNTD" + echo done +} +# +#nfsd +start_nfsd(){ + echo -n "starting $1 nfsd kernel threads: " + start-stop-daemon --start --exec "$NFS_NFSD" -- "$@" + echo done +} +delay_nfsd(){ + for delay in 0 1 2 3 4 5 6 7 8 9 + do + if pidof nfsd >/dev/null + then + echo -n . + sleep 1 + else + return 0 + fi + done + return 1 +} +stop_nfsd(){ + # WARNING: this kills any process with the executable + # name 'nfsd'. + echo -n 'stopping nfsd: ' + start-stop-daemon --stop --quiet --signal 1 --name nfsd + if delay_nfsd || { + echo failed + echo ' using signal 9: ' + start-stop-daemon --stop --quiet --signal 9 --name nfsd + delay_nfsd + } + then + echo done + else + echo failed + fi +} + +#statd +start_statd(){ + echo -n "starting statd: " + start-stop-daemon --start --exec "$NFS_STATD" + echo done +} +stop_statd(){ + # WARNING: this kills any process with the executable + # name 'statd'. + echo -n 'stopping statd: ' + start-stop-daemon --stop --quiet --signal 1 --name statd + echo done +} +#---------------------------------------------------------------------- +# +# supported options: +# start +# stop +# reload: reloads the exports file +# restart: stops and starts mountd +#FIXME: need to create the /var/lib/nfs/... directories +case "$1" in +start) create_directories + start_nfsd "$NFS_SERVERS" + start_mountd + start_statd + test -r /etc/exports && exportfs -a;; +stop) exportfs -ua + stop_statd + stop_mountd + stop_nfsd;; +reload) test -r /etc/exports && exportfs -r;; +restart)exportfs -ua + stop_mountd + stop_statd + # restart does not restart the kernel threads, + # only the user mode processes + start_mountd + start_statd + test -r /etc/exports && exportfs -a;; +esac diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb new file mode 100644 index 000000000..eb18aaaa9 --- /dev/null +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.3.bb @@ -0,0 +1,61 @@ +SUMMARY = "userspace utilities for kernel nfs" +DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ +NFS server and related tools." +HOMEPAGE = "http://nfs.sourceforge.net/" +SECTION = "console/network" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +# util-linux for libblkid +DEPENDS = "libcap libnfsidmap libevent util-linux tcp-wrappers" +RDEPENDS_${PN} = "portmap" +RRECOMMENDS_${PN} = "kernel-module-nfsd" + +PR = "r4" + +SRC_URI = "${SOURCEFORGE_MIRROR}/nfs/nfs-utils-${PV}.tar.bz2 \ + file://nfs-utils-1.0.6-uclibc.patch \ + file://nfs-utils-1.2.3-uclibc-libio.h.patch \ + file://nfsserver" + +SRC_URI[md5sum] = "1131dc5f27c4f3905a6e7ee0d594fd4d" +SRC_URI[sha256sum] = "5575ece941097cbfa67fbe0d220dfa11b73f5e6d991e7939c9339bd72259ff19" + +PARALLEL_MAKE = "" + +# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will +# pull in the remainder of the dependencies. + +INITSCRIPT_NAME = "nfsserver" +# The server has no dependencies at the user run levels, so just put +# it in at the default levels. It must be terminated before the network +# in the shutdown levels, but that works fine. +INITSCRIPT_PARAMS = "defaults" + +inherit autotools update-rc.d + +# --enable-uuid is need for cross-compiling +EXTRA_OECONF = "--with-statduser=nobody \ + --enable-nfsv41 \ + --enable-uuid \ + --disable-gss \ + --disable-tirpc \ + --with-statedir=/var/lib/nfs" + +INHIBIT_AUTO_STAGE = "1" + +PACKAGES =+ "${PN}-client ${PN}-stats" +FILES_${PN}-client = "${base_sbindir}/*mount.nfs*" +FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat" +RDEPENDS_${PN}-stats = "python" + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver + + # the following are built by CC_FOR_BUILD + rm -f ${D}${sbindir}/rpcdebug + rm -f ${D}${sbindir}/rpcgen + rm -f ${D}${sbindir}/locktest +} diff --git a/meta/recipes-connectivity/ofono/ofono.inc b/meta/recipes-connectivity/ofono/ofono.inc new file mode 100644 index 000000000..573c77891 --- /dev/null +++ b/meta/recipes-connectivity/ofono/ofono.inc @@ -0,0 +1,24 @@ +HOMEPAGE = "http://www.ofono.org" +SUMMARY = "open source telephony" +DESCRIPTION = "oFono is a stack for mobile telephony devices on Linux. oFono supports speaking to telephony devices through specific drivers, or with generic AT commands." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee" + +inherit autotools pkgconfig update-rc.d + +DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info ${@base_contains('DISTRO_FEATURES', 'bluetooth','bluez4', '', d)}" + +INITSCRIPT_NAME = "ofono" +INITSCRIPT_PARAMS = "defaults 22" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono +} + +PACKAGES =+ "${PN}-tests" + +FILES_${PN} += "${base_libdir}/udev ${systemd_unitdir}" +FILES_${PN}-tests = "${libdir}/ofono" +RDEPENDS_${PN}-tests = "python python-pygobject" diff --git a/meta/recipes-connectivity/ofono/ofono/ofono b/meta/recipes-connectivity/ofono/ofono/ofono new file mode 100644 index 000000000..cc9970929 --- /dev/null +++ b/meta/recipes-connectivity/ofono/ofono/ofono @@ -0,0 +1,42 @@ +#!/bin/sh + +DAEMON=/usr/sbin/ofonod +PIDFILE=/var/run/ofonod.pid +DESC="Telephony daemon" + +if [ -f /etc/default/ofono ] ; then + . /etc/default/ofono +fi + +set -e + +do_start() { + $DAEMON +} + +do_stop() { + start-stop-daemon --stop --name ofonod --quiet +} + +case "$1" in + start) + echo "Starting $DESC" + do_start + ;; + stop) + echo "Stopping $DESC" + do_stop + ;; + restart|force-reload) + echo "Restarting $DESC" + do_stop + sleep 1 + do_start + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/meta/recipes-connectivity/ofono/ofono_1.6.bb b/meta/recipes-connectivity/ofono/ofono_1.6.bb new file mode 100644 index 000000000..386ffee70 --- /dev/null +++ b/meta/recipes-connectivity/ofono/ofono_1.6.bb @@ -0,0 +1,15 @@ +require ofono.inc + +SRC_URI = "\ + ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.bz2 \ + file://ofono \ +" +SRC_URI[md5sum] = "d863b2b650a525cf75056085398bc8ef" +SRC_URI[sha256sum] = "63e38ea1cf35b00ecbab7611c6caa2adcd33eb10495f7a9f72013d4ab7a14c98" + + +EXTRA_OECONF += "\ + --enable-test \ + ${@base_contains('DISTRO_FEATURES', 'bluetooth','--enable-bluetooth', '--disable-bluetooth', d)} \ +" + diff --git a/meta/recipes-connectivity/ofono/ofono_git.bb b/meta/recipes-connectivity/ofono/ofono_git.bb new file mode 100644 index 000000000..a44b411ab --- /dev/null +++ b/meta/recipes-connectivity/ofono/ofono_git.bb @@ -0,0 +1,18 @@ +require ofono.inc + +S = "${WORKDIR}/git" +SRCREV = "14544d5996836f628613c2ce544380ee6fc8f514" +PV = "0.12-git${SRCPV}" +PR = "r3" + +SRC_URI = "git://git.kernel.org/pub/scm/network/ofono/ofono.git;protocol=git \ + file://ofono" + +EXTRA_OECONF += "\ + ${@base_contains('DISTRO_FEATURES', 'bluetooth','--enable-bluetooth', '--disable-bluetooth', d)} \ +" + +do_configure_prepend () { + ${S}/bootstrap +} + diff --git a/meta/recipes-connectivity/openssh/openssh-6.0p1/init b/meta/recipes-connectivity/openssh/openssh-6.0p1/init new file mode 100644 index 000000000..055dd22e1 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.0p1/init @@ -0,0 +1,92 @@ +#! /bin/sh +set -e + +# /etc/init.d/ssh: start and stop the OpenBSD "secure shell" daemon + +test -x /usr/sbin/sshd || exit 0 +( /usr/sbin/sshd -\? 2>&1 | grep -q OpenSSH ) 2>/dev/null || exit 0 + +if test -f /etc/default/ssh; then + . /etc/default/ssh +fi + +check_for_no_start() { + # forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists + if [ -e /etc/ssh/sshd_not_to_be_run ]; then + echo "OpenBSD Secure Shell server not in use (/etc/ssh/sshd_not_to_be_run)" + exit 0 + fi +} + +check_privsep_dir() { + # Create the PrivSep empty dir if necessary + if [ ! -d /var/run/sshd ]; then + mkdir /var/run/sshd + chmod 0755 /var/run/sshd + fi +} + +check_config() { + /usr/sbin/sshd -t || exit 1 +} + +check_keys() { + # create keys if necessary + if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then + echo " generating ssh RSA key..." + ssh-keygen -q -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa + fi + if [ ! -f /etc/ssh/ssh_host_ecdsa_key ]; then + echo " generating ssh ECDSA key..." + ssh-keygen -q -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa + fi + if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then + echo " generating ssh DSA key..." + ssh-keygen -q -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa + fi +} + +export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" + +case "$1" in + start) + check_for_no_start + echo "Starting OpenBSD Secure Shell server: sshd" + check_keys + check_privsep_dir + start-stop-daemon -S -x /usr/sbin/sshd -- $SSHD_OPTS + echo "done." + ;; + stop) + echo -n "Stopping OpenBSD Secure Shell server: sshd" + start-stop-daemon -K -x /usr/sbin/sshd + echo "." + ;; + + reload|force-reload) + check_for_no_start + check_keys + check_config + echo -n "Reloading OpenBSD Secure Shell server's configuration" + start-stop-daemon -K -s 1 -x /usr/sbin/sshd + echo "." + ;; + + restart) + check_keys + check_config + echo -n "Restarting OpenBSD Secure Shell server: sshd" + start-stop-daemon -K -x /usr/sbin/sshd + check_for_no_start + check_privsep_dir + sleep 2 + start-stop-daemon -S -x /usr/sbin/sshd -- $SSHD_OPTS + echo "." + ;; + + *) + echo "Usage: /etc/init.d/ssh {start|stop|reload|force-reload|restart}" + exit 1 +esac + +exit 0 diff --git a/meta/recipes-connectivity/openssh/openssh-6.0p1/nostrip.patch b/meta/recipes-connectivity/openssh/openssh-6.0p1/nostrip.patch new file mode 100644 index 000000000..33111f549 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.0p1/nostrip.patch @@ -0,0 +1,20 @@ +Disable stripping binaries during make install. + +Upstream-Status: Inappropriate [configuration] + +Build system specific. + +Signed-off-by: Scott Garman <scott.a.garman@intel.com> + +diff -ur openssh-5.6p1.orig/Makefile.in openssh-5.6p1/Makefile.in +--- openssh-5.6p1.orig/Makefile.in 2010-05-11 23:51:39.000000000 -0700 ++++ openssh-5.6p1/Makefile.in 2010-08-30 16:49:54.000000000 -0700 +@@ -29,7 +29,7 @@ + RAND_HELPER=$(libexecdir)/ssh-rand-helper + PRIVSEP_PATH=@PRIVSEP_PATH@ + SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ +-STRIP_OPT=@STRIP_OPT@ ++STRIP_OPT= + + PATHS= -DSSHDIR=\"$(sysconfdir)\" \ + -D_PATH_SSH_PROGRAM=\"$(SSH_PROGRAM)\" \ diff --git a/meta/recipes-connectivity/openssh/openssh-6.0p1/ssh_config b/meta/recipes-connectivity/openssh/openssh-6.0p1/ssh_config new file mode 100644 index 000000000..4a4a649ba --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.0p1/ssh_config @@ -0,0 +1,46 @@ +# $OpenBSD: ssh_config,v 1.25 2009/02/17 01:28:32 djm Exp $ + +# This is the ssh client system-wide configuration file. See +# ssh_config(5) for more information. This file provides defaults for +# users, and the values can be changed in per-user configuration files +# or on the command line. + +# Configuration data is parsed as follows: +# 1. command line options +# 2. user-specific file +# 3. system-wide file +# Any configuration value is only changed the first time it is set. +# Thus, host-specific definitions should be at the beginning of the +# configuration file, and defaults at the end. + +# Site-wide defaults for some commonly used options. For a comprehensive +# list of available options, their meanings and defaults, please see the +# ssh_config(5) man page. + +Host * + ForwardAgent yes + ForwardX11 yes +# RhostsRSAAuthentication no +# RSAAuthentication yes +# PasswordAuthentication yes +# HostbasedAuthentication no +# GSSAPIAuthentication no +# GSSAPIDelegateCredentials no +# BatchMode no +# CheckHostIP yes +# AddressFamily any +# ConnectTimeout 0 +# StrictHostKeyChecking ask +# IdentityFile ~/.ssh/identity +# IdentityFile ~/.ssh/id_rsa +# IdentityFile ~/.ssh/id_dsa +# Port 22 +# Protocol 2,1 +# Cipher 3des +# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc +# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160 +# EscapeChar ~ +# Tunnel no +# TunnelDevice any:any +# PermitLocalCommand no +# VisualHostKey no diff --git a/meta/recipes-connectivity/openssh/openssh-6.0p1/sshd b/meta/recipes-connectivity/openssh/openssh-6.0p1/sshd new file mode 100644 index 000000000..4882e58b4 --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.0p1/sshd @@ -0,0 +1,10 @@ +#%PAM-1.0 + +auth include common-auth +account required pam_nologin.so +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/recipes-connectivity/openssh/openssh-6.0p1/sshd_config b/meta/recipes-connectivity/openssh/openssh-6.0p1/sshd_config new file mode 100644 index 000000000..4f9b626fb --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh-6.0p1/sshd_config @@ -0,0 +1,119 @@ +# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options change a +# default value. + +#Port 22 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +# Disable legacy (protocol version 1) support in the server for new +# installations. In future the default will change to require explicit +# activation of protocol 1 +Protocol 2 + +# HostKey for protocol version 1 +#HostKey /etc/ssh/ssh_host_key +# HostKeys for protocol version 2 +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_dsa_key + +# Lifetime and size of ephemeral version 1 server key +#KeyRegenerationInterval 1h +#ServerKeyBits 1024 + +# Logging +# obsoletes QuietMode and FascistLogging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +#PermitRootLogin yes +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + +#RSAAuthentication yes +#PubkeyAuthentication yes +#AuthorizedKeysFile .ssh/authorized_keys + +# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts +#RhostsRSAAuthentication no +# similar for protocol version 2 +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# RhostsRSAAuthentication and HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +#PasswordAuthentication yes +#PermitEmptyPasswords no + +# Change to no to disable s/key passwords +#ChallengeResponseAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +#UsePAM no + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PrintMotd yes +#PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +UsePrivilegeSeparation yes +#PermitUserEnvironment no +Compression no +ClientAliveInterval 15 +ClientAliveCountMax 4 +#UseDNS yes +#PidFile /var/run/sshd.pid +#MaxStartups 10 +#PermitTunnel no +#ChrootDirectory none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/libexec/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# ForceCommand cvs server diff --git a/meta/recipes-connectivity/openssh/openssh_6.0p1.bb b/meta/recipes-connectivity/openssh/openssh_6.0p1.bb new file mode 100644 index 000000000..dba08a19a --- /dev/null +++ b/meta/recipes-connectivity/openssh/openssh_6.0p1.bb @@ -0,0 +1,119 @@ +SUMMARY = "Secure rlogin/rsh/rcp/telnet replacement" +DESCRIPTION = "Secure rlogin/rsh/rcp/telnet replacement (OpenSSH) \ +Ssh (Secure Shell) is a program for logging into a remote machine \ +and for executing commands on a remote machine." +HOMEPAGE = "http://openssh.org" +SECTION = "console/network" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENCE;md5=e326045657e842541d3f35aada442507" + +PR = "r0" + +DEPENDS = "zlib openssl" +DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +RPROVIDES = "ssh sshd" + +CONFLICTS_${PN} = "dropbear" +RCONFLICTS_${PN}-sshd = "dropbear" +RCONFLICTS_${PN}-keygen = "ssh-keygen" + +SRC_URI = "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \ + file://nostrip.patch \ + file://sshd_config \ + file://ssh_config \ + file://init \ + ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}" + +PAM_SRC_URI = "file://sshd" +SRC_URI[md5sum] = "3c9347aa67862881c5da3f3b1c08da7b" +SRC_URI[sha256sum] = "589d48e952d6c017e667873486b5df63222f9133d417d0002bd6429d9bd882de" + +inherit useradd update-rc.d + +USERADD_PACKAGES = "${PN}-sshd" +USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd" +INITSCRIPT_PACKAGES = "${PN}-sshd" +INITSCRIPT_NAME_${PN}-sshd = "sshd" +INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9" + +inherit autotools + +# LFS support: +CFLAGS += "-D__FILE_OFFSET_BITS=64" +export LD = "${CC}" + +EXTRA_OECONF = "--with-rand-helper=no \ + ${@base_contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ + --without-zlib-version-check \ + --with-privsep-path=/var/run/sshd \ + --sysconfdir=${sysconfdir}/ssh \ + --with-xauth=/usr/bin/xauth" + +# This is a workaround for uclibc because including stdio.h +# pulls in pthreads.h and causes conflicts in function prototypes. +# This results in compilation failure, so unless this is fixed, +# disable pam for uclibc. +EXTRA_OECONF_append_libc-uclibc=" --without-pam" + +do_configure_prepend () { + if [ ! -e acinclude.m4 -a -e aclocal.m4 ]; then + cp aclocal.m4 acinclude.m4 + fi +} + +do_compile_append () { + install -m 0644 ${WORKDIR}/sshd_config ${S}/ + install -m 0644 ${WORKDIR}/ssh_config ${S}/ +} + +do_install_append () { + for i in ${DISTRO_FEATURES}; + do + if [ ${i} = "pam" ]; then + install -d ${D}${sysconfdir}/pam.d + install -m 0755 ${WORKDIR}/sshd ${D}${sysconfdir}/pam.d/sshd + fi + done + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/sshd + mv ${D}${bindir}/scp ${D}${bindir}/scp.${PN} + mv ${D}${bindir}/ssh ${D}${bindir}/ssh.${PN} + rm -f ${D}${bindir}/slogin ${D}${datadir}/Ssh.bin + rmdir ${D}/var/run/sshd ${D}/var/run ${D}/var +} + +ALLOW_EMPTY_${PN} = "1" + +PACKAGES =+ "${PN}-keygen ${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-sftp ${PN}-misc ${PN}-sftp-server" +FILES_${PN}-scp = "${bindir}/scp.${PN}" +FILES_${PN}-ssh = "${bindir}/ssh.${PN} ${sysconfdir}/ssh/ssh_config" +FILES_${PN}-sshd = "${sbindir}/sshd ${sysconfdir}/init.d/sshd" +FILES_${PN}-sshd += "${sysconfdir}/ssh/moduli ${sysconfdir}/ssh/sshd_config" +FILES_${PN}-sftp = "${bindir}/sftp" +FILES_${PN}-sftp-server = "${libexecdir}/sftp-server" +FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*" +FILES_${PN}-keygen = "${bindir}/ssh-keygen" + +RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen" +DEPENDS_${PN}-sshd += "update-rc.d" +RDEPENDS_${PN}-sshd += "update-rc.d ${PN}-keygen" + +pkg_postinst_${PN}-scp () { + update-alternatives --install ${bindir}/scp scp scp.${PN} 90 +} + +pkg_postinst_${PN}-ssh () { + update-alternatives --install ${bindir}/ssh ssh ssh.${PN} 90 +} + +pkg_postrm_${PN}-ssh () { + update-alternatives --remove ${bindir}/ssh ssh.${PN} +} + +pkg_postrm_${PN}-scp () { + update-alternatives --remove ${bindir}/scp scp.${PN} +} + +CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config" +CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config" diff --git a/meta/recipes-connectivity/openssl/ocf-linux.inc b/meta/recipes-connectivity/openssl/ocf-linux.inc new file mode 100644 index 000000000..f4ec7c99c --- /dev/null +++ b/meta/recipes-connectivity/openssl/ocf-linux.inc @@ -0,0 +1,25 @@ +DESCRIPTION = "Install required headers to enable OCF Linux support" +LICENSE = "BSD" + +LIC_FILES_CHKSUM = "file://README;md5=b02a793c9b7893b4ce1f39f0b231ccd7" + +INC_PR = "r3" + +SRC_URI = "http://sourceforge.net/projects/ocf-linux/files/ocf-linux/${PV}/ocf-linux-${PV}.tar.gz" + +S = "${WORKDIR}/ocf-linux-${PV}" + +# Need to unpack the the ocf-linux.tar.gz file contained inside the +# downloaded tarball +# Install the OCF Linux headers so that other packages such as openssl +# can find them. The headers must be in a crypto directory according to +# the README file. +do_install() { + cd ${S} + tar xzf ocf-linux.tar.gz + install -d ${D}${includedir}/crypto + install -m 0644 ${S}/ocf/*.h ${D}${includedir}/crypto/ +} + +ALLOW_EMPTY = "1" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-connectivity/openssl/ocf-linux_20100325.bb b/meta/recipes-connectivity/openssl/ocf-linux_20100325.bb new file mode 100644 index 000000000..9dccc3c32 --- /dev/null +++ b/meta/recipes-connectivity/openssl/ocf-linux_20100325.bb @@ -0,0 +1,6 @@ +require ocf-linux.inc + +PR = "${INC_PR}.0" + +SRC_URI[md5sum] = "ce5ad54aa94226d496df1f0f3cf0c11f" +SRC_URI[sha256sum] = "9d17cbd13849939c70699b520280e3b94cf77401cdc131108d4aeaaeea587f6b" diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/configure-targets.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/configure-targets.patch new file mode 100644 index 000000000..3d253d8f6 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/configure-targets.patch @@ -0,0 +1,32 @@ +Upstream-Status: Inappropriate [embedded specific] + +The number of colons are important :) + + +Index: openssl-1.0.0h/Configure +=================================================================== +--- openssl-1.0.0h.orig/Configure 2012-04-23 09:16:09.521511921 -0700 ++++ openssl-1.0.0h/Configure 2012-04-23 09:17:41.829516389 -0700 +@@ -380,6 +380,22 @@ + "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + ++ # Linux on ARM ++"linux-elf-arm","$ENV{'CC'}:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-elf-armeb","$ENV{'CC'}:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-gnueabi-arm","$ENV{'CC'}:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-gnueabi-armeb","$ENV{'CC'}:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-uclibceabi-arm","$ENV{'CC'}:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-uclibceabi-armeb","$ENV{'CC'}:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++ ++"linux-avr32","$ENV{'CC'}:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).", ++ ++#### Linux on MIPS/MIPS64 ++"linux-mips","$ENV{'CC'}:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-mips64","$ENV{'CC'}:-DB_ENDIAN -DTERMIO -mabi=64 -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-mips64el","$ENV{'CC'}:-DL_ENDIAN -DTERMIO -mabi=64 -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-mipsel","$ENV{'CC'}:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++ + #### *BSD [do see comment about ${BSDthreads} above!] + "BSD-generic32","gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "BSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/c_rehash-compat.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/c_rehash-compat.patch new file mode 100644 index 000000000..8f9a034a0 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/c_rehash-compat.patch @@ -0,0 +1,45 @@ +Upstream-Status: Backport [debian] + +From 83f318d68bbdab1ca898c94576a838cc97df4700 Mon Sep 17 00:00:00 2001 +From: Ludwig Nussel <ludwig.nussel@suse.de> +Date: Wed, 21 Apr 2010 15:52:10 +0200 +Subject: [PATCH] also create old hash for compatibility + +--- + tools/c_rehash.in | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +Index: openssl-1.0.0c/tools/c_rehash.in +=================================================================== +--- openssl-1.0.0c.orig/tools/c_rehash.in 2010-04-14 16:07:28.000000000 -0700 ++++ openssl-1.0.0c/tools/c_rehash.in 2011-08-12 23:06:41.976664773 -0700 +@@ -83,6 +83,7 @@ + next; + } + link_hash_cert($fname) if($cert); ++ link_hash_cert_old($fname) if($cert); + link_hash_crl($fname) if($crl); + } + } +@@ -116,8 +117,9 @@ + + sub link_hash_cert { + my $fname = $_[0]; ++ my $hashopt = $_[1] || '-subject_hash'; + $fname =~ s/'/'\\''/g; +- my ($hash, $fprint) = `"$openssl" x509 -hash -fingerprint -noout -in "$fname"`; ++ my ($hash, $fprint) = `"$openssl" x509 $hashopt -fingerprint -noout -in "$fname"`; + chomp $hash; + chomp $fprint; + $fprint =~ s/^.*=//; +@@ -147,6 +149,10 @@ + $hashlist{$hash} = $fprint; + } + ++sub link_hash_cert_old { ++ link_hash_cert($_[0], '-subject_hash_old'); ++} ++ + # Same as above except for a CRL. CRL links are of the form <hash>.r<n> + + sub link_hash_crl { diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/ca.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/ca.patch new file mode 100644 index 000000000..aba4d4298 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/ca.patch @@ -0,0 +1,22 @@ +Upstream-Status: Backport [debian] + +Index: openssl-0.9.8m/apps/CA.pl.in +=================================================================== +--- openssl-0.9.8m.orig/apps/CA.pl.in 2006-04-28 00:28:51.000000000 +0000 ++++ openssl-0.9.8m/apps/CA.pl.in 2010-02-27 00:36:51.000000000 +0000 +@@ -65,6 +65,7 @@ + foreach (@ARGV) { + if ( /^(-\?|-h|-help)$/ ) { + print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify\n"; ++ print STDERR "usage: CA -signcert certfile keyfile|-newcert|-newreq|-newca|-sign|-verify\n"; + exit 0; + } elsif (/^-newcert$/) { + # create a certificate +@@ -165,6 +166,7 @@ + } else { + print STDERR "Unknown arg $_\n"; + print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify\n"; ++ print STDERR "usage: CA -signcert certfile keyfile|-newcert|-newreq|-newca|-sign|-verify\n"; + exit 1; + } + } diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/debian-targets.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/debian-targets.patch new file mode 100644 index 000000000..9feae38b1 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/debian-targets.patch @@ -0,0 +1,54 @@ +Upstream-Status: Backport [debian] + +Index: openssl-1.0.0c/Configure +=================================================================== +--- openssl-1.0.0c.orig/Configure 2010-12-12 17:27:02.000000000 +0100 ++++ openssl-1.0.0c/Configure 2010-12-12 17:34:47.000000000 +0100 +@@ -331,6 +331,47 @@ + "osf1-alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared:::.so", + "tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared::-msym:.so", + ++# Debian GNU/* (various architectures) ++"debian-alpha","gcc:-DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-alpha-ev4","gcc:-DTERMIO -O3 -Wa,--noexecstack -mcpu=ev4 -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-alpha-ev5","gcc:-DTERMIO -O3 -Wa,--noexecstack -mcpu=ev5 -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-armeb","gcc:-DB_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-armel","gcc:-DL_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-armhf","gcc:-DL_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-amd64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::", ++"debian-avr32", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -fomit-frame-pointer -g -Wall::-D_REENTRANT::-ldl:BN_LLONG_BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-kfreebsd-amd64","gcc:-m64 -DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-kfreebsd-i386","gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-hppa","gcc:-DB_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-hurd-i386","gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -mtune=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-ia64","gcc:-DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-i386","gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-i386-i486","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i486 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-i386-i586","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i586 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-i386-i686/cmov","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i686 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-m68k","gcc:-DB_ENDIAN -DTERMIO -O2 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-mips", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-mipsel", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-netbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-netbsd-m68k", "gcc:-DB_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -Wall::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-netbsd-sparc", "gcc:-DB_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -mv8 -Wall::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-openbsd-alpha","gcc:-DTERMIOS -O3 -Wa,--noexecstack -g::(unknown):::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-openbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -m486::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-openbsd-mips","gcc:-O2 -Wa,--noexecstack -g -DL_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-powerpc","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-powerpcspe","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-ppc64","gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-s390","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-sh3", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-sh4", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-sh3eb", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-sh4eb", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-m32r","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-sparc","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-sparc-v8","gcc:-DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -mcpu=v8 -g -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-sparc-v9","gcc:-DB_ENDIAN -DTERMIO -O3 -mcpu=v9 -Wa,--noexecstack -Wa,-Av8plus -g -Wall -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"debian-sparc64","gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++ + #### + #### Variety of LINUX:-) + #### diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/make-targets.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/make-targets.patch new file mode 100644 index 000000000..f7a6dfdc2 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/make-targets.patch @@ -0,0 +1,15 @@ +Upstream-Status: Backport [debian] + +Index: openssl-1.0.0c/Makefile.org +=================================================================== +--- openssl-1.0.0c.orig/Makefile.org 2010-12-12 16:10:12.000000000 +0100 ++++ openssl-1.0.0c/Makefile.org 2010-12-12 16:11:27.000000000 +0100 +@@ -109,7 +109,7 @@ + ZLIB_INCLUDE= + LIBZLIB= + +-DIRS= crypto ssl engines apps test tools ++DIRS= crypto ssl engines apps tools + ENGDIRS= ccgost + SHLIBDIRS= crypto ssl + diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/man-dir.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/man-dir.patch new file mode 100644 index 000000000..4085e3b1d --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/man-dir.patch @@ -0,0 +1,15 @@ +Upstream-Status: Backport [debian] + +Index: openssl-1.0.0c/Makefile.org +=================================================================== +--- openssl-1.0.0c.orig/Makefile.org 2010-12-12 16:11:27.000000000 +0100 ++++ openssl-1.0.0c/Makefile.org 2010-12-12 16:11:37.000000000 +0100 +@@ -131,7 +131,7 @@ + + MAKEFILE= Makefile + +-MANDIR=$(OPENSSLDIR)/man ++MANDIR=/usr/share/man + MAN1=1 + MAN3=3 + MANSUFFIX= diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/man-section.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/man-section.patch new file mode 100644 index 000000000..e8b92681d --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/man-section.patch @@ -0,0 +1,34 @@ +Upstream-Status: Backport [debian] + +Index: openssl-1.0.0c/Makefile.org +=================================================================== +--- openssl-1.0.0c.orig/Makefile.org 2010-12-12 16:11:37.000000000 +0100 ++++ openssl-1.0.0c/Makefile.org 2010-12-12 16:13:28.000000000 +0100 +@@ -134,7 +134,8 @@ + MANDIR=/usr/share/man + MAN1=1 + MAN3=3 +-MANSUFFIX= ++MANSUFFIX=ssl ++MANSECTION=SSL + HTMLSUFFIX=html + HTMLDIR=$(OPENSSLDIR)/html + SHELL=/bin/sh +@@ -606,7 +607,7 @@ + echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ + (cd `$(PERL) util/dirname.pl $$i`; \ + sh -c "$$pod2man \ +- --section=$$sec --center=OpenSSL \ ++ --section=$${sec}$(MANSECTION) --center=OpenSSL \ + --release=$(VERSION) `basename $$i`") \ + > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ + $(PERL) util/extract-names.pl < $$i | \ +@@ -623,7 +624,7 @@ + echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ + (cd `$(PERL) util/dirname.pl $$i`; \ + sh -c "$$pod2man \ +- --section=$$sec --center=OpenSSL \ ++ --section=$${sec}$(MANSECTION) --center=OpenSSL \ + --release=$(VERSION) `basename $$i`") \ + > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ + $(PERL) util/extract-names.pl < $$i | \ diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/no-rpath.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/no-rpath.patch new file mode 100644 index 000000000..1ccb3b86e --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/no-rpath.patch @@ -0,0 +1,15 @@ +Upstream-Status: Backport [debian] + +Index: openssl-1.0.0c/Makefile.shared +=================================================================== +--- openssl-1.0.0c.orig/Makefile.shared 2010-08-21 13:36:49.000000000 +0200 ++++ openssl-1.0.0c/Makefile.shared 2010-12-12 16:13:36.000000000 +0100 +@@ -153,7 +153,7 @@ + NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ + SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" + +-DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" ++DO_GNU_APP=LDFLAGS="$(CFLAGS)" + + #This is rather special. It's a special target with which one can link + #applications without bothering with any features that have anything to diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/no-symbolic.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/no-symbolic.patch new file mode 100644 index 000000000..cc4408ab7 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/no-symbolic.patch @@ -0,0 +1,15 @@ +Upstream-Status: Backport [debian] + +Index: openssl-1.0.0c/Makefile.shared +=================================================================== +--- openssl-1.0.0c.orig/Makefile.shared 2010-12-12 16:13:36.000000000 +0100 ++++ openssl-1.0.0c/Makefile.shared 2010-12-12 16:13:44.000000000 +0100 +@@ -151,7 +151,7 @@ + SHLIB_SUFFIX=; \ + ALLSYMSFLAGS='-Wl,--whole-archive'; \ + NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ +- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" ++ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" + + DO_GNU_APP=LDFLAGS="$(CFLAGS)" + diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/pic.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/pic.patch new file mode 100644 index 000000000..e36824109 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/pic.patch @@ -0,0 +1,242 @@ +Upstream-Status: Backport [debian] + +Index: openssl-1.0.0c/crypto/Makefile +=================================================================== +--- openssl-1.0.0c.orig/crypto/Makefile 2010-07-27 00:09:59.000000000 +0200 ++++ openssl-1.0.0c/crypto/Makefile 2010-12-12 18:05:36.000000000 +0100 +@@ -58,7 +58,7 @@ + echo " #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \ + echo '#endif' ) >buildinf.h + +-x86cpuid.s: x86cpuid.pl perlasm/x86asm.pl ++x86cpuid.S: x86cpuid.pl perlasm/x86asm.pl + $(PERL) x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@ + + applink.o: $(TOP)/ms/applink.c +@@ -70,7 +70,7 @@ + uplink-cof.s: $(TOP)/ms/uplink.pl + $(PERL) $(TOP)/ms/uplink.pl coff > $@ + +-x86_64cpuid.s: x86_64cpuid.pl ++x86_64cpuid.S: x86_64cpuid.pl + $(PERL) x86_64cpuid.pl $(PERLASM_SCHEME) > $@ + ia64cpuid.s: ia64cpuid.S + $(CC) $(CFLAGS) -E ia64cpuid.S > $@ +Index: openssl-1.0.0c/crypto/x86_64cpuid.pl +=================================================================== +--- openssl-1.0.0c.orig/crypto/x86_64cpuid.pl 2010-04-14 21:25:09.000000000 +0200 ++++ openssl-1.0.0c/crypto/x86_64cpuid.pl 2010-12-12 18:05:36.000000000 +0100 +@@ -14,7 +14,11 @@ + print<<___; + .extern OPENSSL_cpuid_setup + .section .init ++#ifdef OPENSSL_PIC ++ call OPENSSL_cpuid_setup\@PLT ++#else + call OPENSSL_cpuid_setup ++#endif + + .text + +Index: openssl-1.0.0c/crypto/des/asm/desboth.pl +=================================================================== +--- openssl-1.0.0c.orig/crypto/des/asm/desboth.pl 2001-10-24 23:20:56.000000000 +0200 ++++ openssl-1.0.0c/crypto/des/asm/desboth.pl 2010-12-12 18:05:36.000000000 +0100 +@@ -16,6 +16,11 @@ + + &push("edi"); + ++ &call (&label("pic_point0")); ++ &set_label("pic_point0"); ++ &blindpop("ebp"); ++ &add ("ebp", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]"); ++ + &comment(""); + &comment("Load the data words"); + &mov($L,&DWP(0,"ebx","",0)); +@@ -47,15 +52,21 @@ + &mov(&swtmp(2), (DWC(($enc)?"1":"0"))); + &mov(&swtmp(1), "eax"); + &mov(&swtmp(0), "ebx"); +- &call("DES_encrypt2"); ++ &exch("ebx", "ebp"); ++ &call("DES_encrypt2\@PLT"); ++ &exch("ebx", "ebp"); + &mov(&swtmp(2), (DWC(($enc)?"0":"1"))); + &mov(&swtmp(1), "edi"); + &mov(&swtmp(0), "ebx"); +- &call("DES_encrypt2"); ++ &exch("ebx", "ebp"); ++ &call("DES_encrypt2\@PLT"); ++ &exch("ebx", "ebp"); + &mov(&swtmp(2), (DWC(($enc)?"1":"0"))); + &mov(&swtmp(1), "esi"); + &mov(&swtmp(0), "ebx"); +- &call("DES_encrypt2"); ++ &exch("ebx", "ebp"); ++ &call("DES_encrypt2\@PLT"); ++ &exch("ebx", "ebp"); + + &stack_pop(3); + &mov($L,&DWP(0,"ebx","",0)); +Index: openssl-1.0.0c/crypto/rc4/Makefile +=================================================================== +--- openssl-1.0.0c.orig/crypto/rc4/Makefile 2009-02-11 11:01:36.000000000 +0100 ++++ openssl-1.0.0c/crypto/rc4/Makefile 2010-12-12 18:05:36.000000000 +0100 +@@ -44,7 +44,7 @@ + rc4-586.s: asm/rc4-586.pl ../perlasm/x86asm.pl + $(PERL) asm/rc4-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@ + +-rc4-x86_64.s: asm/rc4-x86_64.pl ++rc4-x86_64.S: asm/rc4-x86_64.pl + $(PERL) asm/rc4-x86_64.pl $(PERLASM_SCHEME) > $@ + + rc4-ia64.S: asm/rc4-ia64.pl +Index: openssl-1.0.0c/crypto/rc4/asm/rc4-x86_64.pl +=================================================================== +--- openssl-1.0.0c.orig/crypto/rc4/asm/rc4-x86_64.pl 2009-04-27 21:31:04.000000000 +0200 ++++ openssl-1.0.0c/crypto/rc4/asm/rc4-x86_64.pl 2010-12-12 18:05:36.000000000 +0100 +@@ -279,7 +279,11 @@ + xor %r10,%r10 + xor %r11,%r11 + ++#ifdef OPENSSL_PIC ++ mov OPENSSL_ia32cap_P\@GOTPCREL(%rip),$idx#d ++#else + mov OPENSSL_ia32cap_P(%rip),$idx#d ++#endif + bt \$20,$idx#d + jnc .Lw1stloop + bt \$30,$idx#d +@@ -346,7 +350,11 @@ + .align 16 + RC4_options: + lea .Lopts(%rip),%rax ++#ifdef OPENSSL_PIC ++ mov OPENSSL_ia32cap_P\@GOTPCREL(%rip),%edx ++#else + mov OPENSSL_ia32cap_P(%rip),%edx ++#endif + bt \$20,%edx + jnc .Ldone + add \$12,%rax +Index: openssl-1.0.0c/crypto/perlasm/cbc.pl +=================================================================== +--- openssl-1.0.0c.orig/crypto/perlasm/cbc.pl 2005-05-09 23:48:00.000000000 +0200 ++++ openssl-1.0.0c/crypto/perlasm/cbc.pl 2010-12-12 18:05:36.000000000 +0100 +@@ -122,7 +122,11 @@ + &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call + &mov(&DWP($data_off+4,"esp","",0), "ebx"); # + +- &call($enc_func); ++ &call (&label("pic_point0")); ++ &set_label("pic_point0"); ++ &blindpop("ebx"); ++ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]"); ++ &call("$enc_func\@PLT"); + + &mov("eax", &DWP($data_off,"esp","",0)); + &mov("ebx", &DWP($data_off+4,"esp","",0)); +@@ -187,7 +191,11 @@ + &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call + &mov(&DWP($data_off+4,"esp","",0), "ebx"); # + +- &call($enc_func); ++ &call (&label("pic_point1")); ++ &set_label("pic_point1"); ++ &blindpop("ebx"); ++ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point1") . "]"); ++ &call("$enc_func\@PLT"); + + &mov("eax", &DWP($data_off,"esp","",0)); + &mov("ebx", &DWP($data_off+4,"esp","",0)); +@@ -220,7 +228,11 @@ + &mov(&DWP($data_off,"esp","",0), "eax"); # put back + &mov(&DWP($data_off+4,"esp","",0), "ebx"); # + +- &call($dec_func); ++ &call (&label("pic_point2")); ++ &set_label("pic_point2"); ++ &blindpop("ebx"); ++ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point2") . "]"); ++ &call("$dec_func\@PLT"); + + &mov("eax", &DWP($data_off,"esp","",0)); # get return + &mov("ebx", &DWP($data_off+4,"esp","",0)); # +@@ -263,7 +275,11 @@ + &mov(&DWP($data_off,"esp","",0), "eax"); # put back + &mov(&DWP($data_off+4,"esp","",0), "ebx"); # + +- &call($dec_func); ++ &call (&label("pic_point3")); ++ &set_label("pic_point3"); ++ &blindpop("ebx"); ++ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point3") . "]"); ++ &call("$dec_func\@PLT"); + + &mov("eax", &DWP($data_off,"esp","",0)); # get return + &mov("ebx", &DWP($data_off+4,"esp","",0)); # +Index: openssl-1.0.0c/crypto/perlasm/x86_64-xlate.pl +=================================================================== +--- openssl-1.0.0c.orig/crypto/perlasm/x86_64-xlate.pl 2010-12-12 18:05:36.000000000 +0100 ++++ openssl-1.0.0c/crypto/perlasm/x86_64-xlate.pl 2010-12-12 18:05:36.000000000 +0100 +@@ -638,7 +638,7 @@ + + chomp($line); + +- $line =~ s|[#!].*$||; # get rid of asm-style comments... ++# $line =~ s|[#!].*$||; # get rid of asm-style comments... + $line =~ s|/\*.*\*/||; # ... and C-style comments... + $line =~ s|^\s+||; # ... and skip white spaces in beginning + +Index: openssl-1.0.0c/crypto/perlasm/x86gas.pl +=================================================================== +--- openssl-1.0.0c.orig/crypto/perlasm/x86gas.pl 2008-12-17 20:56:47.000000000 +0100 ++++ openssl-1.0.0c/crypto/perlasm/x86gas.pl 2010-12-12 18:05:36.000000000 +0100 +@@ -209,7 +209,17 @@ + if ($::elf) + { $initseg.=<<___; + .section .init ++#ifdef OPENSSL_PIC ++ pushl %ebx ++ call .pic_point0 ++.pic_point0: ++ popl %ebx ++ addl \$_GLOBAL_OFFSET_TABLE_+[.-.pic_point0],%ebx ++ call $f\@PLT ++ popl %ebx ++#else + call $f ++#endif + jmp .Linitalign + .align $align + .Linitalign: +Index: openssl-1.0.0c/crypto/aes/asm/aes-x86_64.pl +=================================================================== +--- openssl-1.0.0c.orig/crypto/aes/asm/aes-x86_64.pl 2008-12-27 14:32:21.000000000 +0100 ++++ openssl-1.0.0c/crypto/aes/asm/aes-x86_64.pl 2010-12-12 18:05:36.000000000 +0100 +@@ -1669,7 +1669,11 @@ + lea .LAES_Td(%rip),$sbox + .Lcbc_picked_te: + ++#ifdef OPENSSL_PIC ++ mov OPENSSL_ia32cap_P\@GOTPCREL(%rip),%r10d ++#else + mov OPENSSL_ia32cap_P(%rip),%r10d ++#endif + cmp \$$speed_limit,%rdx + jb .Lcbc_slow_prologue + test \$15,%rdx +Index: openssl-1.0.0c/crypto/aes/Makefile +=================================================================== +--- openssl-1.0.0c.orig/crypto/aes/Makefile 2010-12-12 18:15:06.000000000 +0100 ++++ openssl-1.0.0c/crypto/aes/Makefile 2010-12-12 18:15:30.000000000 +0100 +@@ -51,7 +51,7 @@ + aes-586.s: asm/aes-586.pl ../perlasm/x86asm.pl + $(PERL) asm/aes-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@ + +-aes-x86_64.s: asm/aes-x86_64.pl ++aes-x86_64.S: asm/aes-x86_64.pl + $(PERL) asm/aes-x86_64.pl $(PERLASM_SCHEME) > $@ + + aes-sparcv9.s: asm/aes-sparcv9.pl diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/version-script.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/version-script.patch new file mode 100644 index 000000000..a79c082ef --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/debian/version-script.patch @@ -0,0 +1,4511 @@ +Upstream-Status: Backport [debian] + +Index: openssl-1.0.0e/Configure +=================================================================== +--- openssl-1.0.0e.orig/Configure 2011-10-04 22:49:47.599379260 -0700 ++++ openssl-1.0.0e/Configure 2011-10-04 22:49:53.263407376 -0700 +@@ -1486,6 +1486,8 @@ + } + } + ++$shared_ldflag .= " -Wl,--version-script=openssl.ld"; ++ + open(IN,'<Makefile.org') || die "unable to read Makefile.org:$!\n"; + unlink("$Makefile.new") || die "unable to remove old $Makefile.new:$!\n" if -e "$Makefile.new"; + open(OUT,">$Makefile.new") || die "unable to create $Makefile.new:$!\n"; +Index: openssl-1.0.0e/openssl.ld +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ openssl-1.0.0e/openssl.ld 2011-10-04 22:49:53.295407572 -0700 +@@ -0,0 +1,4461 @@ ++OPENSSL_1.0.0 { ++ global: ++ BIO_f_ssl; ++ BIO_new_buffer_ssl_connect; ++ BIO_new_ssl; ++ BIO_new_ssl_connect; ++ BIO_proxy_ssl_copy_session_id; ++ BIO_ssl_copy_session_id; ++ BIO_ssl_shutdown; ++ d2i_SSL_SESSION; ++ DTLSv1_client_method; ++ DTLSv1_method; ++ DTLSv1_server_method; ++ ERR_load_SSL_strings; ++ i2d_SSL_SESSION; ++ kssl_build_principal_2; ++ kssl_cget_tkt; ++ kssl_check_authent; ++ kssl_ctx_free; ++ kssl_ctx_new; ++ kssl_ctx_setkey; ++ kssl_ctx_setprinc; ++ kssl_ctx_setstring; ++ kssl_ctx_show; ++ kssl_err_set; ++ kssl_krb5_free_data_contents; ++ kssl_sget_tkt; ++ kssl_skip_confound; ++ kssl_validate_times; ++ PEM_read_bio_SSL_SESSION; ++ PEM_read_SSL_SESSION; ++ PEM_write_bio_SSL_SESSION; ++ PEM_write_SSL_SESSION; ++ SSL_accept; ++ SSL_add_client_CA; ++ SSL_add_dir_cert_subjects_to_stack; ++ SSL_add_dir_cert_subjs_to_stk; ++ SSL_add_file_cert_subjects_to_stack; ++ SSL_add_file_cert_subjs_to_stk; ++ SSL_alert_desc_string; ++ SSL_alert_desc_string_long; ++ SSL_alert_type_string; ++ SSL_alert_type_string_long; ++ SSL_callback_ctrl; ++ SSL_check_private_key; ++ SSL_CIPHER_description; ++ SSL_CIPHER_get_bits; ++ SSL_CIPHER_get_name; ++ SSL_CIPHER_get_version; ++ SSL_clear; ++ SSL_COMP_add_compression_method; ++ SSL_COMP_get_compression_methods; ++ SSL_COMP_get_compress_methods; ++ SSL_COMP_get_name; ++ SSL_connect; ++ SSL_copy_session_id; ++ SSL_ctrl; ++ SSL_CTX_add_client_CA; ++ SSL_CTX_add_session; ++ SSL_CTX_callback_ctrl; ++ SSL_CTX_check_private_key; ++ SSL_CTX_ctrl; ++ SSL_CTX_flush_sessions; ++ SSL_CTX_free; ++ SSL_CTX_get_cert_store; ++ SSL_CTX_get_client_CA_list; ++ SSL_CTX_get_client_cert_cb; ++ SSL_CTX_get_ex_data; ++ SSL_CTX_get_ex_new_index; ++ SSL_CTX_get_info_callback; ++ SSL_CTX_get_quiet_shutdown; ++ SSL_CTX_get_timeout; ++ SSL_CTX_get_verify_callback; ++ SSL_CTX_get_verify_depth; ++ SSL_CTX_get_verify_mode; ++ SSL_CTX_load_verify_locations; ++ SSL_CTX_new; ++ SSL_CTX_remove_session; ++ SSL_CTX_sess_get_get_cb; ++ SSL_CTX_sess_get_new_cb; ++ SSL_CTX_sess_get_remove_cb; ++ SSL_CTX_sessions; ++ SSL_CTX_sess_set_get_cb; ++ SSL_CTX_sess_set_new_cb; ++ SSL_CTX_sess_set_remove_cb; ++ SSL_CTX_set1_param; ++ SSL_CTX_set_cert_store; ++ SSL_CTX_set_cert_verify_callback; ++ SSL_CTX_set_cert_verify_cb; ++ SSL_CTX_set_cipher_list; ++ SSL_CTX_set_client_CA_list; ++ SSL_CTX_set_client_cert_cb; ++ SSL_CTX_set_client_cert_engine; ++ SSL_CTX_set_cookie_generate_cb; ++ SSL_CTX_set_cookie_verify_cb; ++ SSL_CTX_set_default_passwd_cb; ++ SSL_CTX_set_default_passwd_cb_userdata; ++ SSL_CTX_set_default_verify_paths; ++ SSL_CTX_set_def_passwd_cb_ud; ++ SSL_CTX_set_def_verify_paths; ++ SSL_CTX_set_ex_data; ++ SSL_CTX_set_generate_session_id; ++ SSL_CTX_set_info_callback; ++ SSL_CTX_set_msg_callback; ++ SSL_CTX_set_psk_client_callback; ++ SSL_CTX_set_psk_server_callback; ++ SSL_CTX_set_purpose; ++ SSL_CTX_set_quiet_shutdown; ++ SSL_CTX_set_session_id_context; ++ SSL_CTX_set_ssl_version; ++ SSL_CTX_set_timeout; ++ SSL_CTX_set_tmp_dh_callback; ++ SSL_CTX_set_tmp_ecdh_callback; ++ SSL_CTX_set_tmp_rsa_callback; ++ SSL_CTX_set_trust; ++ SSL_CTX_set_verify; ++ SSL_CTX_set_verify_depth; ++ SSL_CTX_use_cert_chain_file; ++ SSL_CTX_use_certificate; ++ SSL_CTX_use_certificate_ASN1; ++ SSL_CTX_use_certificate_chain_file; ++ SSL_CTX_use_certificate_file; ++ SSL_CTX_use_PrivateKey; ++ SSL_CTX_use_PrivateKey_ASN1; ++ SSL_CTX_use_PrivateKey_file; ++ SSL_CTX_use_psk_identity_hint; ++ SSL_CTX_use_RSAPrivateKey; ++ SSL_CTX_use_RSAPrivateKey_ASN1; ++ SSL_CTX_use_RSAPrivateKey_file; ++ SSL_do_handshake; ++ SSL_dup; ++ SSL_dup_CA_list; ++ SSLeay_add_ssl_algorithms; ++ SSL_free; ++ SSL_get1_session; ++ SSL_get_certificate; ++ SSL_get_cipher_list; ++ SSL_get_ciphers; ++ SSL_get_client_CA_list; ++ SSL_get_current_cipher; ++ SSL_get_current_compression; ++ SSL_get_current_expansion; ++ SSL_get_default_timeout; ++ SSL_get_error; ++ SSL_get_ex_data; ++ SSL_get_ex_data_X509_STORE_CTX_idx; ++ SSL_get_ex_d_X509_STORE_CTX_idx; ++ SSL_get_ex_new_index; ++ SSL_get_fd; ++ SSL_get_finished; ++ SSL_get_info_callback; ++ SSL_get_peer_cert_chain; ++ SSL_get_peer_certificate; ++ SSL_get_peer_finished; ++ SSL_get_privatekey; ++ SSL_get_psk_identity; ++ SSL_get_psk_identity_hint; ++ SSL_get_quiet_shutdown; ++ SSL_get_rbio; ++ SSL_get_read_ahead; ++ SSL_get_rfd; ++ SSL_get_servername; ++ SSL_get_servername_type; ++ SSL_get_session; ++ SSL_get_shared_ciphers; ++ SSL_get_shutdown; ++ SSL_get_SSL_CTX; ++ SSL_get_ssl_method; ++ SSL_get_verify_callback; ++ SSL_get_verify_depth; ++ SSL_get_verify_mode; ++ SSL_get_verify_result; ++ SSL_get_version; ++ SSL_get_wbio; ++ SSL_get_wfd; ++ SSL_has_matching_session_id; ++ SSL_library_init; ++ SSL_load_client_CA_file; ++ SSL_load_error_strings; ++ SSL_new; ++ SSL_peek; ++ SSL_pending; ++ SSL_read; ++ SSL_renegotiate; ++ SSL_renegotiate_pending; ++ SSL_rstate_string; ++ SSL_rstate_string_long; ++ SSL_SESSION_cmp; ++ SSL_SESSION_free; ++ SSL_SESSION_get_ex_data; ++ SSL_SESSION_get_ex_new_index; ++ SSL_SESSION_get_id; ++ SSL_SESSION_get_time; ++ SSL_SESSION_get_timeout; ++ SSL_SESSION_hash; ++ SSL_SESSION_new; ++ SSL_SESSION_print; ++ SSL_SESSION_print_fp; ++ SSL_SESSION_set_ex_data; ++ SSL_SESSION_set_time; ++ SSL_SESSION_set_timeout; ++ SSL_set1_param; ++ SSL_set_accept_state; ++ SSL_set_bio; ++ SSL_set_cipher_list; ++ SSL_set_client_CA_list; ++ SSL_set_connect_state; ++ SSL_set_ex_data; ++ SSL_set_fd; ++ SSL_set_generate_session_id; ++ SSL_set_info_callback; ++ SSL_set_msg_callback; ++ SSL_set_psk_client_callback; ++ SSL_set_psk_server_callback; ++ SSL_set_purpose; ++ SSL_set_quiet_shutdown; ++ SSL_set_read_ahead; ++ SSL_set_rfd; ++ SSL_set_session; ++ SSL_set_session_id_context; ++ SSL_set_session_secret_cb; ++ SSL_set_session_ticket_ext; ++ SSL_set_session_ticket_ext_cb; ++ SSL_set_shutdown; ++ SSL_set_SSL_CTX; ++ SSL_set_ssl_method; ++ SSL_set_tmp_dh_callback; ++ SSL_set_tmp_ecdh_callback; ++ SSL_set_tmp_rsa_callback; ++ SSL_set_trust; ++ SSL_set_verify; ++ SSL_set_verify_depth; ++ SSL_set_verify_result; ++ SSL_set_wfd; ++ SSL_shutdown; ++ SSL_state; ++ SSL_state_string; ++ SSL_state_string_long; ++ SSL_use_certificate; ++ SSL_use_certificate_ASN1; ++ SSL_use_certificate_file; ++ SSL_use_PrivateKey; ++ SSL_use_PrivateKey_ASN1; ++ SSL_use_PrivateKey_file; ++ SSL_use_psk_identity_hint; ++ SSL_use_RSAPrivateKey; ++ SSL_use_RSAPrivateKey_ASN1; ++ SSL_use_RSAPrivateKey_file; ++ SSLv23_client_method; ++ SSLv23_method; ++ SSLv23_server_method; ++ SSLv2_client_method; ++ SSLv2_method; ++ SSLv2_server_method; ++ SSLv3_client_method; ++ SSLv3_method; ++ SSLv3_server_method; ++ SSL_version; ++ SSL_want; ++ SSL_write; ++ TLSv1_client_method; ++ TLSv1_method; ++ TLSv1_server_method; ++ ++ ++ SSLeay; ++ SSLeay_version; ++ ASN1_BIT_STRING_asn1_meth; ++ ASN1_HEADER_free; ++ ASN1_HEADER_new; ++ ASN1_IA5STRING_asn1_meth; ++ ASN1_INTEGER_get; ++ ASN1_INTEGER_set; ++ ASN1_INTEGER_to_BN; ++ ASN1_OBJECT_create; ++ ASN1_OBJECT_free; ++ ASN1_OBJECT_new; ++ ASN1_PRINTABLE_type; ++ ASN1_STRING_cmp; ++ ASN1_STRING_dup; ++ ASN1_STRING_free; ++ ASN1_STRING_new; ++ ASN1_STRING_print; ++ ASN1_STRING_set; ++ ASN1_STRING_type_new; ++ ASN1_TYPE_free; ++ ASN1_TYPE_new; ++ ASN1_UNIVERSALSTRING_to_string; ++ ASN1_UTCTIME_check; ++ ASN1_UTCTIME_print; ++ ASN1_UTCTIME_set; ++ ASN1_check_infinite_end; ++ ASN1_d2i_bio; ++ ASN1_d2i_fp; ++ ASN1_digest; ++ ASN1_dup; ++ ASN1_get_object; ++ ASN1_i2d_bio; ++ ASN1_i2d_fp; ++ ASN1_object_size; ++ ASN1_parse; ++ ASN1_put_object; ++ ASN1_sign; ++ ASN1_verify; ++ BF_cbc_encrypt; ++ BF_cfb64_encrypt; ++ BF_ecb_encrypt; ++ BF_encrypt; ++ BF_ofb64_encrypt; ++ BF_options; ++ BF_set_key; ++ BIO_CONNECT_free; ++ BIO_CONNECT_new; ++ BIO_accept; ++ BIO_ctrl; ++ BIO_int_ctrl; ++ BIO_debug_callback; ++ BIO_dump; ++ BIO_dup_chain; ++ BIO_f_base64; ++ BIO_f_buffer; ++ BIO_f_cipher; ++ BIO_f_md; ++ BIO_f_null; ++ BIO_f_proxy_server; ++ BIO_fd_non_fatal_error; ++ BIO_fd_should_retry; ++ BIO_find_type; ++ BIO_free; ++ BIO_free_all; ++ BIO_get_accept_socket; ++ BIO_get_filter_bio; ++ BIO_get_host_ip; ++ BIO_get_port; ++ BIO_get_retry_BIO; ++ BIO_get_retry_reason; ++ BIO_gethostbyname; ++ BIO_gets; ++ BIO_new; ++ BIO_new_accept; ++ BIO_new_connect; ++ BIO_new_fd; ++ BIO_new_file; ++ BIO_new_fp; ++ BIO_new_socket; ++ BIO_pop; ++ BIO_printf; ++ BIO_push; ++ BIO_puts; ++ BIO_read; ++ BIO_s_accept; ++ BIO_s_connect; ++ BIO_s_fd; ++ BIO_s_file; ++ BIO_s_mem; ++ BIO_s_null; ++ BIO_s_proxy_client; ++ BIO_s_socket; ++ BIO_set; ++ BIO_set_cipher; ++ BIO_set_tcp_ndelay; ++ BIO_sock_cleanup; ++ BIO_sock_error; ++ BIO_sock_init; ++ BIO_sock_non_fatal_error; ++ BIO_sock_should_retry; ++ BIO_socket_ioctl; ++ BIO_write; ++ BN_CTX_free; ++ BN_CTX_new; ++ BN_MONT_CTX_free; ++ BN_MONT_CTX_new; ++ BN_MONT_CTX_set; ++ BN_add; ++ BN_add_word; ++ BN_hex2bn; ++ BN_bin2bn; ++ BN_bn2hex; ++ BN_bn2bin; ++ BN_clear; ++ BN_clear_bit; ++ BN_clear_free; ++ BN_cmp; ++ BN_copy; ++ BN_div; ++ BN_div_word; ++ BN_dup; ++ BN_free; ++ BN_from_montgomery; ++ BN_gcd; ++ BN_generate_prime; ++ BN_get_word; ++ BN_is_bit_set; ++ BN_is_prime; ++ BN_lshift; ++ BN_lshift1; ++ BN_mask_bits; ++ BN_mod; ++ BN_mod_exp; ++ BN_mod_exp_mont; ++ BN_mod_exp_simple; ++ BN_mod_inverse; ++ BN_mod_mul; ++ BN_mod_mul_montgomery; ++ BN_mod_word; ++ BN_mul; ++ BN_new; ++ BN_num_bits; ++ BN_num_bits_word; ++ BN_options; ++ BN_print; ++ BN_print_fp; ++ BN_rand; ++ BN_reciprocal; ++ BN_rshift; ++ BN_rshift1; ++ BN_set_bit; ++ BN_set_word; ++ BN_sqr; ++ BN_sub; ++ BN_to_ASN1_INTEGER; ++ BN_ucmp; ++ BN_value_one; ++ BUF_MEM_free; ++ BUF_MEM_grow; ++ BUF_MEM_new; ++ BUF_strdup; ++ CONF_free; ++ CONF_get_number; ++ CONF_get_section; ++ CONF_get_string; ++ CONF_load; ++ CRYPTO_add_lock; ++ CRYPTO_dbg_free; ++ CRYPTO_dbg_malloc; ++ CRYPTO_dbg_realloc; ++ CRYPTO_dbg_remalloc; ++ CRYPTO_free; ++ CRYPTO_get_add_lock_callback; ++ CRYPTO_get_id_callback; ++ CRYPTO_get_lock_name; ++ CRYPTO_get_locking_callback; ++ CRYPTO_get_mem_functions; ++ CRYPTO_lock; ++ CRYPTO_malloc; ++ CRYPTO_mem_ctrl; ++ CRYPTO_mem_leaks; ++ CRYPTO_mem_leaks_cb; ++ CRYPTO_mem_leaks_fp; ++ CRYPTO_realloc; ++ CRYPTO_remalloc; ++ CRYPTO_set_add_lock_callback; ++ CRYPTO_set_id_callback; ++ CRYPTO_set_locking_callback; ++ CRYPTO_set_mem_functions; ++ CRYPTO_thread_id; ++ DH_check; ++ DH_compute_key; ++ DH_free; ++ DH_generate_key; ++ DH_generate_parameters; ++ DH_new; ++ DH_size; ++ DHparams_print; ++ DHparams_print_fp; ++ DSA_free; ++ DSA_generate_key; ++ DSA_generate_parameters; ++ DSA_is_prime; ++ DSA_new; ++ DSA_print; ++ DSA_print_fp; ++ DSA_sign; ++ DSA_sign_setup; ++ DSA_size; ++ DSA_verify; ++ DSAparams_print; ++ DSAparams_print_fp; ++ ERR_clear_error; ++ ERR_error_string; ++ ERR_free_strings; ++ ERR_func_error_string; ++ ERR_get_err_state_table; ++ ERR_get_error; ++ ERR_get_error_line; ++ ERR_get_state; ++ ERR_get_string_table; ++ ERR_lib_error_string; ++ ERR_load_ASN1_strings; ++ ERR_load_BIO_strings; ++ ERR_load_BN_strings; ++ ERR_load_BUF_strings; ++ ERR_load_CONF_strings; ++ ERR_load_DH_strings; ++ ERR_load_DSA_strings; ++ ERR_load_ERR_strings; ++ ERR_load_EVP_strings; ++ ERR_load_OBJ_strings; ++ ERR_load_PEM_strings; ++ ERR_load_PROXY_strings; ++ ERR_load_RSA_strings; ++ ERR_load_X509_strings; ++ ERR_load_crypto_strings; ++ ERR_load_strings; ++ ERR_peek_error; ++ ERR_peek_error_line; ++ ERR_print_errors; ++ ERR_print_errors_fp; ++ ERR_put_error; ++ ERR_reason_error_string; ++ ERR_remove_state; ++ EVP_BytesToKey; ++ EVP_CIPHER_CTX_cleanup; ++ EVP_CipherFinal; ++ EVP_CipherInit; ++ EVP_CipherUpdate; ++ EVP_DecodeBlock; ++ EVP_DecodeFinal; ++ EVP_DecodeInit; ++ EVP_DecodeUpdate; ++ EVP_DecryptFinal; ++ EVP_DecryptInit; ++ EVP_DecryptUpdate; ++ EVP_DigestFinal; ++ EVP_DigestInit; ++ EVP_DigestUpdate; ++ EVP_EncodeBlock; ++ EVP_EncodeFinal; ++ EVP_EncodeInit; ++ EVP_EncodeUpdate; ++ EVP_EncryptFinal; ++ EVP_EncryptInit; ++ EVP_EncryptUpdate; ++ EVP_OpenFinal; ++ EVP_OpenInit; ++ EVP_PKEY_assign; ++ EVP_PKEY_copy_parameters; ++ EVP_PKEY_free; ++ EVP_PKEY_missing_parameters; ++ EVP_PKEY_new; ++ EVP_PKEY_save_parameters; ++ EVP_PKEY_size; ++ EVP_PKEY_type; ++ EVP_SealFinal; ++ EVP_SealInit; ++ EVP_SignFinal; ++ EVP_VerifyFinal; ++ EVP_add_alias; ++ EVP_add_cipher; ++ EVP_add_digest; ++ EVP_bf_cbc; ++ EVP_bf_cfb64; ++ EVP_bf_ecb; ++ EVP_bf_ofb; ++ EVP_cleanup; ++ EVP_des_cbc; ++ EVP_des_cfb64; ++ EVP_des_ecb; ++ EVP_des_ede; ++ EVP_des_ede3; ++ EVP_des_ede3_cbc; ++ EVP_des_ede3_cfb64; ++ EVP_des_ede3_ofb; ++ EVP_des_ede_cbc; ++ EVP_des_ede_cfb64; ++ EVP_des_ede_ofb; ++ EVP_des_ofb; ++ EVP_desx_cbc; ++ EVP_dss; ++ EVP_dss1; ++ EVP_enc_null; ++ EVP_get_cipherbyname; ++ EVP_get_digestbyname; ++ EVP_get_pw_prompt; ++ EVP_idea_cbc; ++ EVP_idea_cfb64; ++ EVP_idea_ecb; ++ EVP_idea_ofb; ++ EVP_md2; ++ EVP_md5; ++ EVP_md_null; ++ EVP_rc2_cbc; ++ EVP_rc2_cfb64; ++ EVP_rc2_ecb; ++ EVP_rc2_ofb; ++ EVP_rc4; ++ EVP_read_pw_string; ++ EVP_set_pw_prompt; ++ EVP_sha; ++ EVP_sha1; ++ MD2; ++ MD2_Final; ++ MD2_Init; ++ MD2_Update; ++ MD2_options; ++ MD5; ++ MD5_Final; ++ MD5_Init; ++ MD5_Update; ++ MDC2; ++ MDC2_Final; ++ MDC2_Init; ++ MDC2_Update; ++ NETSCAPE_SPKAC_free; ++ NETSCAPE_SPKAC_new; ++ NETSCAPE_SPKI_free; ++ NETSCAPE_SPKI_new; ++ NETSCAPE_SPKI_sign; ++ NETSCAPE_SPKI_verify; ++ OBJ_add_object; ++ OBJ_bsearch; ++ OBJ_cleanup; ++ OBJ_cmp; ++ OBJ_create; ++ OBJ_dup; ++ OBJ_ln2nid; ++ OBJ_new_nid; ++ OBJ_nid2ln; ++ OBJ_nid2obj; ++ OBJ_nid2sn; ++ OBJ_obj2nid; ++ OBJ_sn2nid; ++ OBJ_txt2nid; ++ PEM_ASN1_read; ++ PEM_ASN1_read_bio; ++ PEM_ASN1_write; ++ PEM_ASN1_write_bio; ++ PEM_SealFinal; ++ PEM_SealInit; ++ PEM_SealUpdate; ++ PEM_SignFinal; ++ PEM_SignInit; ++ PEM_SignUpdate; ++ PEM_X509_INFO_read; ++ PEM_X509_INFO_read_bio; ++ PEM_X509_INFO_write_bio; ++ PEM_dek_info; ++ PEM_do_header; ++ PEM_get_EVP_CIPHER_INFO; ++ PEM_proc_type; ++ PEM_read; ++ PEM_read_DHparams; ++ PEM_read_DSAPrivateKey; ++ PEM_read_DSAparams; ++ PEM_read_PKCS7; ++ PEM_read_PrivateKey; ++ PEM_read_RSAPrivateKey; ++ PEM_read_X509; ++ PEM_read_X509_CRL; ++ PEM_read_X509_REQ; ++ PEM_read_bio; ++ PEM_read_bio_DHparams; ++ PEM_read_bio_DSAPrivateKey; ++ PEM_read_bio_DSAparams; ++ PEM_read_bio_PKCS7; ++ PEM_read_bio_PrivateKey; ++ PEM_read_bio_RSAPrivateKey; ++ PEM_read_bio_X509; ++ PEM_read_bio_X509_CRL; ++ PEM_read_bio_X509_REQ; ++ PEM_write; ++ PEM_write_DHparams; ++ PEM_write_DSAPrivateKey; ++ PEM_write_DSAparams; ++ PEM_write_PKCS7; ++ PEM_write_PrivateKey; ++ PEM_write_RSAPrivateKey; ++ PEM_write_X509; ++ PEM_write_X509_CRL; ++ PEM_write_X509_REQ; ++ PEM_write_bio; ++ PEM_write_bio_DHparams; ++ PEM_write_bio_DSAPrivateKey; ++ PEM_write_bio_DSAparams; ++ PEM_write_bio_PKCS7; ++ PEM_write_bio_PrivateKey; ++ PEM_write_bio_RSAPrivateKey; ++ PEM_write_bio_X509; ++ PEM_write_bio_X509_CRL; ++ PEM_write_bio_X509_REQ; ++ PKCS7_DIGEST_free; ++ PKCS7_DIGEST_new; ++ PKCS7_ENCRYPT_free; ++ PKCS7_ENCRYPT_new; ++ PKCS7_ENC_CONTENT_free; ++ PKCS7_ENC_CONTENT_new; ++ PKCS7_ENVELOPE_free; ++ PKCS7_ENVELOPE_new; ++ PKCS7_ISSUER_AND_SERIAL_digest; ++ PKCS7_ISSUER_AND_SERIAL_free; ++ PKCS7_ISSUER_AND_SERIAL_new; ++ PKCS7_RECIP_INFO_free; ++ PKCS7_RECIP_INFO_new; ++ PKCS7_SIGNED_free; ++ PKCS7_SIGNED_new; ++ PKCS7_SIGNER_INFO_free; ++ PKCS7_SIGNER_INFO_new; ++ PKCS7_SIGN_ENVELOPE_free; ++ PKCS7_SIGN_ENVELOPE_new; ++ PKCS7_dup; ++ PKCS7_free; ++ PKCS7_new; ++ PROXY_ENTRY_add_noproxy; ++ PROXY_ENTRY_clear_noproxy; ++ PROXY_ENTRY_free; ++ PROXY_ENTRY_get_noproxy; ++ PROXY_ENTRY_new; ++ PROXY_ENTRY_set_server; ++ PROXY_add_noproxy; ++ PROXY_add_server; ++ PROXY_check_by_host; ++ PROXY_check_url; ++ PROXY_clear_noproxy; ++ PROXY_free; ++ PROXY_get_noproxy; ++ PROXY_get_proxies; ++ PROXY_get_proxy_entry; ++ PROXY_load_conf; ++ PROXY_new; ++ PROXY_print; ++ RAND_bytes; ++ RAND_cleanup; ++ RAND_file_name; ++ RAND_load_file; ++ RAND_screen; ++ RAND_seed; ++ RAND_write_file; ++ RC2_cbc_encrypt; ++ RC2_cfb64_encrypt; ++ RC2_ecb_encrypt; ++ RC2_encrypt; ++ RC2_ofb64_encrypt; ++ RC2_set_key; ++ RC4; ++ RC4_options; ++ RC4_set_key; ++ RSAPrivateKey_asn1_meth; ++ RSAPrivateKey_dup; ++ RSAPublicKey_dup; ++ RSA_PKCS1_SSLeay; ++ RSA_free; ++ RSA_generate_key; ++ RSA_new; ++ RSA_new_method; ++ RSA_print; ++ RSA_print_fp; ++ RSA_private_decrypt; ++ RSA_private_encrypt; ++ RSA_public_decrypt; ++ RSA_public_encrypt; ++ RSA_set_default_method; ++ RSA_sign; ++ RSA_sign_ASN1_OCTET_STRING; ++ RSA_size; ++ RSA_verify; ++ RSA_verify_ASN1_OCTET_STRING; ++ SHA; ++ SHA1; ++ SHA1_Final; ++ SHA1_Init; ++ SHA1_Update; ++ SHA_Final; ++ SHA_Init; ++ SHA_Update; ++ OpenSSL_add_all_algorithms; ++ OpenSSL_add_all_ciphers; ++ OpenSSL_add_all_digests; ++ TXT_DB_create_index; ++ TXT_DB_free; ++ TXT_DB_get_by_index; ++ TXT_DB_insert; ++ TXT_DB_read; ++ TXT_DB_write; ++ X509_ALGOR_free; ++ X509_ALGOR_new; ++ X509_ATTRIBUTE_free; ++ X509_ATTRIBUTE_new; ++ X509_CINF_free; ++ X509_CINF_new; ++ X509_CRL_INFO_free; ++ X509_CRL_INFO_new; ++ X509_CRL_add_ext; ++ X509_CRL_cmp; ++ X509_CRL_delete_ext; ++ X509_CRL_dup; ++ X509_CRL_free; ++ X509_CRL_get_ext; ++ X509_CRL_get_ext_by_NID; ++ X509_CRL_get_ext_by_OBJ; ++ X509_CRL_get_ext_by_critical; ++ X509_CRL_get_ext_count; ++ X509_CRL_new; ++ X509_CRL_sign; ++ X509_CRL_verify; ++ X509_EXTENSION_create_by_NID; ++ X509_EXTENSION_create_by_OBJ; ++ X509_EXTENSION_dup; ++ X509_EXTENSION_free; ++ X509_EXTENSION_get_critical; ++ X509_EXTENSION_get_data; ++ X509_EXTENSION_get_object; ++ X509_EXTENSION_new; ++ X509_EXTENSION_set_critical; ++ X509_EXTENSION_set_data; ++ X509_EXTENSION_set_object; ++ X509_INFO_free; ++ X509_INFO_new; ++ X509_LOOKUP_by_alias; ++ X509_LOOKUP_by_fingerprint; ++ X509_LOOKUP_by_issuer_serial; ++ X509_LOOKUP_by_subject; ++ X509_LOOKUP_ctrl; ++ X509_LOOKUP_file; ++ X509_LOOKUP_free; ++ X509_LOOKUP_hash_dir; ++ X509_LOOKUP_init; ++ X509_LOOKUP_new; ++ X509_LOOKUP_shutdown; ++ X509_NAME_ENTRY_create_by_NID; ++ X509_NAME_ENTRY_create_by_OBJ; ++ X509_NAME_ENTRY_dup; ++ X509_NAME_ENTRY_free; ++ X509_NAME_ENTRY_get_data; ++ X509_NAME_ENTRY_get_object; ++ X509_NAME_ENTRY_new; ++ X509_NAME_ENTRY_set_data; ++ X509_NAME_ENTRY_set_object; ++ X509_NAME_add_entry; ++ X509_NAME_cmp; ++ X509_NAME_delete_entry; ++ X509_NAME_digest; ++ X509_NAME_dup; ++ X509_NAME_entry_count; ++ X509_NAME_free; ++ X509_NAME_get_entry; ++ X509_NAME_get_index_by_NID; ++ X509_NAME_get_index_by_OBJ; ++ X509_NAME_get_text_by_NID; ++ X509_NAME_get_text_by_OBJ; ++ X509_NAME_hash; ++ X509_NAME_new; ++ X509_NAME_oneline; ++ X509_NAME_print; ++ X509_NAME_set; ++ X509_OBJECT_free_contents; ++ X509_OBJECT_retrieve_by_subject; ++ X509_OBJECT_up_ref_count; ++ X509_PKEY_free; ++ X509_PKEY_new; ++ X509_PUBKEY_free; ++ X509_PUBKEY_get; ++ X509_PUBKEY_new; ++ X509_PUBKEY_set; ++ X509_REQ_INFO_free; ++ X509_REQ_INFO_new; ++ X509_REQ_dup; ++ X509_REQ_free; ++ X509_REQ_get_pubkey; ++ X509_REQ_new; ++ X509_REQ_print; ++ X509_REQ_print_fp; ++ X509_REQ_set_pubkey; ++ X509_REQ_set_subject_name; ++ X509_REQ_set_version; ++ X509_REQ_sign; ++ X509_REQ_to_X509; ++ X509_REQ_verify; ++ X509_REVOKED_add_ext; ++ X509_REVOKED_delete_ext; ++ X509_REVOKED_free; ++ X509_REVOKED_get_ext; ++ X509_REVOKED_get_ext_by_NID; ++ X509_REVOKED_get_ext_by_OBJ; ++ X509_REVOKED_get_ext_by_critical; ++ X509_REVOKED_get_ext_by_critic; ++ X509_REVOKED_get_ext_count; ++ X509_REVOKED_new; ++ X509_SIG_free; ++ X509_SIG_new; ++ X509_STORE_CTX_cleanup; ++ X509_STORE_CTX_init; ++ X509_STORE_add_cert; ++ X509_STORE_add_lookup; ++ X509_STORE_free; ++ X509_STORE_get_by_subject; ++ X509_STORE_load_locations; ++ X509_STORE_new; ++ X509_STORE_set_default_paths; ++ X509_VAL_free; ++ X509_VAL_new; ++ X509_add_ext; ++ X509_asn1_meth; ++ X509_certificate_type; ++ X509_check_private_key; ++ X509_cmp_current_time; ++ X509_delete_ext; ++ X509_digest; ++ X509_dup; ++ X509_free; ++ X509_get_default_cert_area; ++ X509_get_default_cert_dir; ++ X509_get_default_cert_dir_env; ++ X509_get_default_cert_file; ++ X509_get_default_cert_file_env; ++ X509_get_default_private_dir; ++ X509_get_ext; ++ X509_get_ext_by_NID; ++ X509_get_ext_by_OBJ; ++ X509_get_ext_by_critical; ++ X509_get_ext_count; ++ X509_get_issuer_name; ++ X509_get_pubkey; ++ X509_get_pubkey_parameters; ++ X509_get_serialNumber; ++ X509_get_subject_name; ++ X509_gmtime_adj; ++ X509_issuer_and_serial_cmp; ++ X509_issuer_and_serial_hash; ++ X509_issuer_name_cmp; ++ X509_issuer_name_hash; ++ X509_load_cert_file; ++ X509_new; ++ X509_print; ++ X509_print_fp; ++ X509_set_issuer_name; ++ X509_set_notAfter; ++ X509_set_notBefore; ++ X509_set_pubkey; ++ X509_set_serialNumber; ++ X509_set_subject_name; ++ X509_set_version; ++ X509_sign; ++ X509_subject_name_cmp; ++ X509_subject_name_hash; ++ X509_to_X509_REQ; ++ X509_verify; ++ X509_verify_cert; ++ X509_verify_cert_error_string; ++ X509v3_add_ext; ++ X509v3_add_extension; ++ X509v3_add_netscape_extensions; ++ X509v3_add_standard_extensions; ++ X509v3_cleanup_extensions; ++ X509v3_data_type_by_NID; ++ X509v3_data_type_by_OBJ; ++ X509v3_delete_ext; ++ X509v3_get_ext; ++ X509v3_get_ext_by_NID; ++ X509v3_get_ext_by_OBJ; ++ X509v3_get_ext_by_critical; ++ X509v3_get_ext_count; ++ X509v3_pack_string; ++ X509v3_pack_type_by_NID; ++ X509v3_pack_type_by_OBJ; ++ X509v3_unpack_string; ++ _des_crypt; ++ a2d_ASN1_OBJECT; ++ a2i_ASN1_INTEGER; ++ a2i_ASN1_STRING; ++ asn1_Finish; ++ asn1_GetSequence; ++ bn_div_words; ++ bn_expand2; ++ bn_mul_add_words; ++ bn_mul_words; ++ BN_uadd; ++ BN_usub; ++ bn_sqr_words; ++ _ossl_old_crypt; ++ d2i_ASN1_BIT_STRING; ++ d2i_ASN1_BOOLEAN; ++ d2i_ASN1_HEADER; ++ d2i_ASN1_IA5STRING; ++ d2i_ASN1_INTEGER; ++ d2i_ASN1_OBJECT; ++ d2i_ASN1_OCTET_STRING; ++ d2i_ASN1_PRINTABLE; ++ d2i_ASN1_PRINTABLESTRING; ++ d2i_ASN1_SET; ++ d2i_ASN1_T61STRING; ++ d2i_ASN1_TYPE; ++ d2i_ASN1_UTCTIME; ++ d2i_ASN1_bytes; ++ d2i_ASN1_type_bytes; ++ d2i_DHparams; ++ d2i_DSAPrivateKey; ++ d2i_DSAPrivateKey_bio; ++ d2i_DSAPrivateKey_fp; ++ d2i_DSAPublicKey; ++ d2i_DSAparams; ++ d2i_NETSCAPE_SPKAC; ++ d2i_NETSCAPE_SPKI; ++ d2i_Netscape_RSA; ++ d2i_PKCS7; ++ d2i_PKCS7_DIGEST; ++ d2i_PKCS7_ENCRYPT; ++ d2i_PKCS7_ENC_CONTENT; ++ d2i_PKCS7_ENVELOPE; ++ d2i_PKCS7_ISSUER_AND_SERIAL; ++ d2i_PKCS7_RECIP_INFO; ++ d2i_PKCS7_SIGNED; ++ d2i_PKCS7_SIGNER_INFO; ++ d2i_PKCS7_SIGN_ENVELOPE; ++ d2i_PKCS7_bio; ++ d2i_PKCS7_fp; ++ d2i_PrivateKey; ++ d2i_PublicKey; ++ d2i_RSAPrivateKey; ++ d2i_RSAPrivateKey_bio; ++ d2i_RSAPrivateKey_fp; ++ d2i_RSAPublicKey; ++ d2i_X509; ++ d2i_X509_ALGOR; ++ d2i_X509_ATTRIBUTE; ++ d2i_X509_CINF; ++ d2i_X509_CRL; ++ d2i_X509_CRL_INFO; ++ d2i_X509_CRL_bio; ++ d2i_X509_CRL_fp; ++ d2i_X509_EXTENSION; ++ d2i_X509_NAME; ++ d2i_X509_NAME_ENTRY; ++ d2i_X509_PKEY; ++ d2i_X509_PUBKEY; ++ d2i_X509_REQ; ++ d2i_X509_REQ_INFO; ++ d2i_X509_REQ_bio; ++ d2i_X509_REQ_fp; ++ d2i_X509_REVOKED; ++ d2i_X509_SIG; ++ d2i_X509_VAL; ++ d2i_X509_bio; ++ d2i_X509_fp; ++ DES_cbc_cksum; ++ DES_cbc_encrypt; ++ DES_cblock_print_file; ++ DES_cfb64_encrypt; ++ DES_cfb_encrypt; ++ DES_decrypt3; ++ DES_ecb3_encrypt; ++ DES_ecb_encrypt; ++ DES_ede3_cbc_encrypt; ++ DES_ede3_cfb64_encrypt; ++ DES_ede3_ofb64_encrypt; ++ DES_enc_read; ++ DES_enc_write; ++ DES_encrypt1; ++ DES_encrypt2; ++ DES_encrypt3; ++ DES_fcrypt; ++ DES_is_weak_key; ++ DES_key_sched; ++ DES_ncbc_encrypt; ++ DES_ofb64_encrypt; ++ DES_ofb_encrypt; ++ DES_options; ++ DES_pcbc_encrypt; ++ DES_quad_cksum; ++ DES_random_key; ++ _ossl_old_des_random_seed; ++ _ossl_old_des_read_2passwords; ++ _ossl_old_des_read_password; ++ _ossl_old_des_read_pw; ++ _ossl_old_des_read_pw_string; ++ DES_set_key; ++ DES_set_odd_parity; ++ DES_string_to_2keys; ++ DES_string_to_key; ++ DES_xcbc_encrypt; ++ DES_xwhite_in2out; ++ fcrypt_body; ++ i2a_ASN1_INTEGER; ++ i2a_ASN1_OBJECT; ++ i2a_ASN1_STRING; ++ i2d_ASN1_BIT_STRING; ++ i2d_ASN1_BOOLEAN; ++ i2d_ASN1_HEADER; ++ i2d_ASN1_IA5STRING; ++ i2d_ASN1_INTEGER; ++ i2d_ASN1_OBJECT; ++ i2d_ASN1_OCTET_STRING; ++ i2d_ASN1_PRINTABLE; ++ i2d_ASN1_SET; ++ i2d_ASN1_TYPE; ++ i2d_ASN1_UTCTIME; ++ i2d_ASN1_bytes; ++ i2d_DHparams; ++ i2d_DSAPrivateKey; ++ i2d_DSAPrivateKey_bio; ++ i2d_DSAPrivateKey_fp; ++ i2d_DSAPublicKey; ++ i2d_DSAparams; ++ i2d_NETSCAPE_SPKAC; ++ i2d_NETSCAPE_SPKI; ++ i2d_Netscape_RSA; ++ i2d_PKCS7; ++ i2d_PKCS7_DIGEST; ++ i2d_PKCS7_ENCRYPT; ++ i2d_PKCS7_ENC_CONTENT; ++ i2d_PKCS7_ENVELOPE; ++ i2d_PKCS7_ISSUER_AND_SERIAL; ++ i2d_PKCS7_RECIP_INFO; ++ i2d_PKCS7_SIGNED; ++ i2d_PKCS7_SIGNER_INFO; ++ i2d_PKCS7_SIGN_ENVELOPE; ++ i2d_PKCS7_bio; ++ i2d_PKCS7_fp; ++ i2d_PrivateKey; ++ i2d_PublicKey; ++ i2d_RSAPrivateKey; ++ i2d_RSAPrivateKey_bio; ++ i2d_RSAPrivateKey_fp; ++ i2d_RSAPublicKey; ++ i2d_X509; ++ i2d_X509_ALGOR; ++ i2d_X509_ATTRIBUTE; ++ i2d_X509_CINF; ++ i2d_X509_CRL; ++ i2d_X509_CRL_INFO; ++ i2d_X509_CRL_bio; ++ i2d_X509_CRL_fp; ++ i2d_X509_EXTENSION; ++ i2d_X509_NAME; ++ i2d_X509_NAME_ENTRY; ++ i2d_X509_PKEY; ++ i2d_X509_PUBKEY; ++ i2d_X509_REQ; ++ i2d_X509_REQ_INFO; ++ i2d_X509_REQ_bio; ++ i2d_X509_REQ_fp; ++ i2d_X509_REVOKED; ++ i2d_X509_SIG; ++ i2d_X509_VAL; ++ i2d_X509_bio; ++ i2d_X509_fp; ++ idea_cbc_encrypt; ++ idea_cfb64_encrypt; ++ idea_ecb_encrypt; ++ idea_encrypt; ++ idea_ofb64_encrypt; ++ idea_options; ++ idea_set_decrypt_key; ++ idea_set_encrypt_key; ++ lh_delete; ++ lh_doall; ++ lh_doall_arg; ++ lh_free; ++ lh_insert; ++ lh_new; ++ lh_node_stats; ++ lh_node_stats_bio; ++ lh_node_usage_stats; ++ lh_node_usage_stats_bio; ++ lh_retrieve; ++ lh_stats; ++ lh_stats_bio; ++ lh_strhash; ++ sk_delete; ++ sk_delete_ptr; ++ sk_dup; ++ sk_find; ++ sk_free; ++ sk_insert; ++ sk_new; ++ sk_pop; ++ sk_pop_free; ++ sk_push; ++ sk_set_cmp_func; ++ sk_shift; ++ sk_unshift; ++ sk_zero; ++ BIO_f_nbio_test; ++ ASN1_TYPE_get; ++ ASN1_TYPE_set; ++ PKCS7_content_free; ++ ERR_load_PKCS7_strings; ++ X509_find_by_issuer_and_serial; ++ X509_find_by_subject; ++ PKCS7_ctrl; ++ PKCS7_set_type; ++ PKCS7_set_content; ++ PKCS7_SIGNER_INFO_set; ++ PKCS7_add_signer; ++ PKCS7_add_certificate; ++ PKCS7_add_crl; ++ PKCS7_content_new; ++ PKCS7_dataSign; ++ PKCS7_dataVerify; ++ PKCS7_dataInit; ++ PKCS7_add_signature; ++ PKCS7_cert_from_signer_info; ++ PKCS7_get_signer_info; ++ EVP_delete_alias; ++ EVP_mdc2; ++ PEM_read_bio_RSAPublicKey; ++ PEM_write_bio_RSAPublicKey; ++ d2i_RSAPublicKey_bio; ++ i2d_RSAPublicKey_bio; ++ PEM_read_RSAPublicKey; ++ PEM_write_RSAPublicKey; ++ d2i_RSAPublicKey_fp; ++ i2d_RSAPublicKey_fp; ++ BIO_copy_next_retry; ++ RSA_flags; ++ X509_STORE_add_crl; ++ X509_load_crl_file; ++ EVP_rc2_40_cbc; ++ EVP_rc4_40; ++ EVP_CIPHER_CTX_init; ++ HMAC; ++ HMAC_Init; ++ HMAC_Update; ++ HMAC_Final; ++ ERR_get_next_error_library; ++ EVP_PKEY_cmp_parameters; ++ HMAC_cleanup; ++ BIO_ptr_ctrl; ++ BIO_new_file_internal; ++ BIO_new_fp_internal; ++ BIO_s_file_internal; ++ BN_BLINDING_convert; ++ BN_BLINDING_invert; ++ BN_BLINDING_update; ++ RSA_blinding_on; ++ RSA_blinding_off; ++ i2t_ASN1_OBJECT; ++ BN_BLINDING_new; ++ BN_BLINDING_free; ++ EVP_cast5_cbc; ++ EVP_cast5_cfb64; ++ EVP_cast5_ecb; ++ EVP_cast5_ofb; ++ BF_decrypt; ++ CAST_set_key; ++ CAST_encrypt; ++ CAST_decrypt; ++ CAST_ecb_encrypt; ++ CAST_cbc_encrypt; ++ CAST_cfb64_encrypt; ++ CAST_ofb64_encrypt; ++ RC2_decrypt; ++ OBJ_create_objects; ++ BN_exp; ++ BN_mul_word; ++ BN_sub_word; ++ BN_dec2bn; ++ BN_bn2dec; ++ BIO_ghbn_ctrl; ++ CRYPTO_free_ex_data; ++ CRYPTO_get_ex_data; ++ CRYPTO_set_ex_data; ++ ERR_load_CRYPTO_strings; ++ ERR_load_CRYPTOlib_strings; ++ EVP_PKEY_bits; ++ MD5_Transform; ++ SHA1_Transform; ++ SHA_Transform; ++ X509_STORE_CTX_get_chain; ++ X509_STORE_CTX_get_current_cert; ++ X509_STORE_CTX_get_error; ++ X509_STORE_CTX_get_error_depth; ++ X509_STORE_CTX_get_ex_data; ++ X509_STORE_CTX_set_cert; ++ X509_STORE_CTX_set_chain; ++ X509_STORE_CTX_set_error; ++ X509_STORE_CTX_set_ex_data; ++ CRYPTO_dup_ex_data; ++ CRYPTO_get_new_lockid; ++ CRYPTO_new_ex_data; ++ RSA_set_ex_data; ++ RSA_get_ex_data; ++ RSA_get_ex_new_index; ++ RSA_padding_add_PKCS1_type_1; ++ RSA_padding_add_PKCS1_type_2; ++ RSA_padding_add_SSLv23; ++ RSA_padding_add_none; ++ RSA_padding_check_PKCS1_type_1; ++ RSA_padding_check_PKCS1_type_2; ++ RSA_padding_check_SSLv23; ++ RSA_padding_check_none; ++ bn_add_words; ++ d2i_Netscape_RSA_2; ++ CRYPTO_get_ex_new_index; ++ RIPEMD160_Init; ++ RIPEMD160_Update; ++ RIPEMD160_Final; ++ RIPEMD160; ++ RIPEMD160_Transform; ++ RC5_32_set_key; ++ RC5_32_ecb_encrypt; ++ RC5_32_encrypt; ++ RC5_32_decrypt; ++ RC5_32_cbc_encrypt; ++ RC5_32_cfb64_encrypt; ++ RC5_32_ofb64_encrypt; ++ BN_bn2mpi; ++ BN_mpi2bn; ++ ASN1_BIT_STRING_get_bit; ++ ASN1_BIT_STRING_set_bit; ++ BIO_get_ex_data; ++ BIO_get_ex_new_index; ++ BIO_set_ex_data; ++ X509v3_get_key_usage; ++ X509v3_set_key_usage; ++ a2i_X509v3_key_usage; ++ i2a_X509v3_key_usage; ++ EVP_PKEY_decrypt; ++ EVP_PKEY_encrypt; ++ PKCS7_RECIP_INFO_set; ++ PKCS7_add_recipient; ++ PKCS7_add_recipient_info; ++ PKCS7_set_cipher; ++ ASN1_TYPE_get_int_octetstring; ++ ASN1_TYPE_get_octetstring; ++ ASN1_TYPE_set_int_octetstring; ++ ASN1_TYPE_set_octetstring; ++ ASN1_UTCTIME_set_string; ++ ERR_add_error_data; ++ ERR_set_error_data; ++ EVP_CIPHER_asn1_to_param; ++ EVP_CIPHER_param_to_asn1; ++ EVP_CIPHER_get_asn1_iv; ++ EVP_CIPHER_set_asn1_iv; ++ EVP_rc5_32_12_16_cbc; ++ EVP_rc5_32_12_16_cfb64; ++ EVP_rc5_32_12_16_ecb; ++ EVP_rc5_32_12_16_ofb; ++ asn1_add_error; ++ d2i_ASN1_BMPSTRING; ++ i2d_ASN1_BMPSTRING; ++ BIO_f_ber; ++ BN_init; ++ COMP_CTX_new; ++ COMP_CTX_free; ++ COMP_CTX_compress_block; ++ COMP_CTX_expand_block; ++ X509_STORE_CTX_get_ex_new_index; ++ OBJ_NAME_add; ++ BIO_socket_nbio; ++ EVP_rc2_64_cbc; ++ OBJ_NAME_cleanup; ++ OBJ_NAME_get; ++ OBJ_NAME_init; ++ OBJ_NAME_new_index; ++ OBJ_NAME_remove; ++ BN_MONT_CTX_copy; ++ BIO_new_socks4a_connect; ++ BIO_s_socks4a_connect; ++ PROXY_set_connect_mode; ++ RAND_SSLeay; ++ RAND_set_rand_method; ++ RSA_memory_lock; ++ bn_sub_words; ++ bn_mul_normal; ++ bn_mul_comba8; ++ bn_mul_comba4; ++ bn_sqr_normal; ++ bn_sqr_comba8; ++ bn_sqr_comba4; ++ bn_cmp_words; ++ bn_mul_recursive; ++ bn_mul_part_recursive; ++ bn_sqr_recursive; ++ bn_mul_low_normal; ++ BN_RECP_CTX_init; ++ BN_RECP_CTX_new; ++ BN_RECP_CTX_free; ++ BN_RECP_CTX_set; ++ BN_mod_mul_reciprocal; ++ BN_mod_exp_recp; ++ BN_div_recp; ++ BN_CTX_init; ++ BN_MONT_CTX_init; ++ RAND_get_rand_method; ++ PKCS7_add_attribute; ++ PKCS7_add_signed_attribute; ++ PKCS7_digest_from_attributes; ++ PKCS7_get_attribute; ++ PKCS7_get_issuer_and_serial; ++ PKCS7_get_signed_attribute; ++ COMP_compress_block; ++ COMP_expand_block; ++ COMP_rle; ++ COMP_zlib; ++ ms_time_diff; ++ ms_time_new; ++ ms_time_free; ++ ms_time_cmp; ++ ms_time_get; ++ PKCS7_set_attributes; ++ PKCS7_set_signed_attributes; ++ X509_ATTRIBUTE_create; ++ X509_ATTRIBUTE_dup; ++ ASN1_GENERALIZEDTIME_check; ++ ASN1_GENERALIZEDTIME_print; ++ ASN1_GENERALIZEDTIME_set; ++ ASN1_GENERALIZEDTIME_set_string; ++ ASN1_TIME_print; ++ BASIC_CONSTRAINTS_free; ++ BASIC_CONSTRAINTS_new; ++ ERR_load_X509V3_strings; ++ NETSCAPE_CERT_SEQUENCE_free; ++ NETSCAPE_CERT_SEQUENCE_new; ++ OBJ_txt2obj; ++ PEM_read_NETSCAPE_CERT_SEQUENCE; ++ PEM_read_NS_CERT_SEQ; ++ PEM_read_bio_NETSCAPE_CERT_SEQUENCE; ++ PEM_read_bio_NS_CERT_SEQ; ++ PEM_write_NETSCAPE_CERT_SEQUENCE; ++ PEM_write_NS_CERT_SEQ; ++ PEM_write_bio_NETSCAPE_CERT_SEQUENCE; ++ PEM_write_bio_NS_CERT_SEQ; ++ X509V3_EXT_add; ++ X509V3_EXT_add_alias; ++ X509V3_EXT_add_conf; ++ X509V3_EXT_cleanup; ++ X509V3_EXT_conf; ++ X509V3_EXT_conf_nid; ++ X509V3_EXT_get; ++ X509V3_EXT_get_nid; ++ X509V3_EXT_print; ++ X509V3_EXT_print_fp; ++ X509V3_add_standard_extensions; ++ X509V3_add_value; ++ X509V3_add_value_bool; ++ X509V3_add_value_int; ++ X509V3_conf_free; ++ X509V3_get_value_bool; ++ X509V3_get_value_int; ++ X509V3_parse_list; ++ d2i_ASN1_GENERALIZEDTIME; ++ d2i_ASN1_TIME; ++ d2i_BASIC_CONSTRAINTS; ++ d2i_NETSCAPE_CERT_SEQUENCE; ++ d2i_ext_ku; ++ ext_ku_free; ++ ext_ku_new; ++ i2d_ASN1_GENERALIZEDTIME; ++ i2d_ASN1_TIME; ++ i2d_BASIC_CONSTRAINTS; ++ i2d_NETSCAPE_CERT_SEQUENCE; ++ i2d_ext_ku; ++ EVP_MD_CTX_copy; ++ i2d_ASN1_ENUMERATED; ++ d2i_ASN1_ENUMERATED; ++ ASN1_ENUMERATED_set; ++ ASN1_ENUMERATED_get; ++ BN_to_ASN1_ENUMERATED; ++ ASN1_ENUMERATED_to_BN; ++ i2a_ASN1_ENUMERATED; ++ a2i_ASN1_ENUMERATED; ++ i2d_GENERAL_NAME; ++ d2i_GENERAL_NAME; ++ GENERAL_NAME_new; ++ GENERAL_NAME_free; ++ GENERAL_NAMES_new; ++ GENERAL_NAMES_free; ++ d2i_GENERAL_NAMES; ++ i2d_GENERAL_NAMES; ++ i2v_GENERAL_NAMES; ++ i2s_ASN1_OCTET_STRING; ++ s2i_ASN1_OCTET_STRING; ++ X509V3_EXT_check_conf; ++ hex_to_string; ++ string_to_hex; ++ DES_ede3_cbcm_encrypt; ++ RSA_padding_add_PKCS1_OAEP; ++ RSA_padding_check_PKCS1_OAEP; ++ X509_CRL_print_fp; ++ X509_CRL_print; ++ i2v_GENERAL_NAME; ++ v2i_GENERAL_NAME; ++ i2d_PKEY_USAGE_PERIOD; ++ d2i_PKEY_USAGE_PERIOD; ++ PKEY_USAGE_PERIOD_new; ++ PKEY_USAGE_PERIOD_free; ++ v2i_GENERAL_NAMES; ++ i2s_ASN1_INTEGER; ++ X509V3_EXT_d2i; ++ name_cmp; ++ str_dup; ++ i2s_ASN1_ENUMERATED; ++ i2s_ASN1_ENUMERATED_TABLE; ++ BIO_s_log; ++ BIO_f_reliable; ++ PKCS7_dataFinal; ++ PKCS7_dataDecode; ++ X509V3_EXT_CRL_add_conf; ++ BN_set_params; ++ BN_get_params; ++ BIO_get_ex_num; ++ BIO_set_ex_free_func; ++ EVP_ripemd160; ++ ASN1_TIME_set; ++ i2d_AUTHORITY_KEYID; ++ d2i_AUTHORITY_KEYID; ++ AUTHORITY_KEYID_new; ++ AUTHORITY_KEYID_free; ++ ASN1_seq_unpack; ++ ASN1_seq_pack; ++ ASN1_unpack_string; ++ ASN1_pack_string; ++ PKCS12_pack_safebag; ++ PKCS12_MAKE_KEYBAG; ++ PKCS8_encrypt; ++ PKCS12_MAKE_SHKEYBAG; ++ PKCS12_pack_p7data; ++ PKCS12_pack_p7encdata; ++ PKCS12_add_localkeyid; ++ PKCS12_add_friendlyname_asc; ++ PKCS12_add_friendlyname_uni; ++ PKCS12_get_friendlyname; ++ PKCS12_pbe_crypt; ++ PKCS12_decrypt_d2i; ++ PKCS12_i2d_encrypt; ++ PKCS12_init; ++ PKCS12_key_gen_asc; ++ PKCS12_key_gen_uni; ++ PKCS12_gen_mac; ++ PKCS12_verify_mac; ++ PKCS12_set_mac; ++ PKCS12_setup_mac; ++ OPENSSL_asc2uni; ++ OPENSSL_uni2asc; ++ i2d_PKCS12_BAGS; ++ PKCS12_BAGS_new; ++ d2i_PKCS12_BAGS; ++ PKCS12_BAGS_free; ++ i2d_PKCS12; ++ d2i_PKCS12; ++ PKCS12_new; ++ PKCS12_free; ++ i2d_PKCS12_MAC_DATA; ++ PKCS12_MAC_DATA_new; ++ d2i_PKCS12_MAC_DATA; ++ PKCS12_MAC_DATA_free; ++ i2d_PKCS12_SAFEBAG; ++ PKCS12_SAFEBAG_new; ++ d2i_PKCS12_SAFEBAG; ++ PKCS12_SAFEBAG_free; ++ ERR_load_PKCS12_strings; ++ PKCS12_PBE_add; ++ PKCS8_add_keyusage; ++ PKCS12_get_attr_gen; ++ PKCS12_parse; ++ PKCS12_create; ++ i2d_PKCS12_bio; ++ i2d_PKCS12_fp; ++ d2i_PKCS12_bio; ++ d2i_PKCS12_fp; ++ i2d_PBEPARAM; ++ PBEPARAM_new; ++ d2i_PBEPARAM; ++ PBEPARAM_free; ++ i2d_PKCS8_PRIV_KEY_INFO; ++ PKCS8_PRIV_KEY_INFO_new; ++ d2i_PKCS8_PRIV_KEY_INFO; ++ PKCS8_PRIV_KEY_INFO_free; ++ EVP_PKCS82PKEY; ++ EVP_PKEY2PKCS8; ++ PKCS8_set_broken; ++ EVP_PBE_ALGOR_CipherInit; ++ EVP_PBE_alg_add; ++ PKCS5_pbe_set; ++ EVP_PBE_cleanup; ++ i2d_SXNET; ++ d2i_SXNET; ++ SXNET_new; ++ SXNET_free; ++ i2d_SXNETID; ++ d2i_SXNETID; ++ SXNETID_new; ++ SXNETID_free; ++ DSA_SIG_new; ++ DSA_SIG_free; ++ DSA_do_sign; ++ DSA_do_verify; ++ d2i_DSA_SIG; ++ i2d_DSA_SIG; ++ i2d_ASN1_VISIBLESTRING; ++ d2i_ASN1_VISIBLESTRING; ++ i2d_ASN1_UTF8STRING; ++ d2i_ASN1_UTF8STRING; ++ i2d_DIRECTORYSTRING; ++ d2i_DIRECTORYSTRING; ++ i2d_DISPLAYTEXT; ++ d2i_DISPLAYTEXT; ++ d2i_ASN1_SET_OF_X509; ++ i2d_ASN1_SET_OF_X509; ++ i2d_PBKDF2PARAM; ++ PBKDF2PARAM_new; ++ d2i_PBKDF2PARAM; ++ PBKDF2PARAM_free; ++ i2d_PBE2PARAM; ++ PBE2PARAM_new; ++ d2i_PBE2PARAM; ++ PBE2PARAM_free; ++ d2i_ASN1_SET_OF_GENERAL_NAME; ++ i2d_ASN1_SET_OF_GENERAL_NAME; ++ d2i_ASN1_SET_OF_SXNETID; ++ i2d_ASN1_SET_OF_SXNETID; ++ d2i_ASN1_SET_OF_POLICYQUALINFO; ++ i2d_ASN1_SET_OF_POLICYQUALINFO; ++ d2i_ASN1_SET_OF_POLICYINFO; ++ i2d_ASN1_SET_OF_POLICYINFO; ++ SXNET_add_id_asc; ++ SXNET_add_id_ulong; ++ SXNET_add_id_INTEGER; ++ SXNET_get_id_asc; ++ SXNET_get_id_ulong; ++ SXNET_get_id_INTEGER; ++ X509V3_set_conf_lhash; ++ i2d_CERTIFICATEPOLICIES; ++ CERTIFICATEPOLICIES_new; ++ CERTIFICATEPOLICIES_free; ++ d2i_CERTIFICATEPOLICIES; ++ i2d_POLICYINFO; ++ POLICYINFO_new; ++ d2i_POLICYINFO; ++ POLICYINFO_free; ++ i2d_POLICYQUALINFO; ++ POLICYQUALINFO_new; ++ d2i_POLICYQUALINFO; ++ POLICYQUALINFO_free; ++ i2d_USERNOTICE; ++ USERNOTICE_new; ++ d2i_USERNOTICE; ++ USERNOTICE_free; ++ i2d_NOTICEREF; ++ NOTICEREF_new; ++ d2i_NOTICEREF; ++ NOTICEREF_free; ++ X509V3_get_string; ++ X509V3_get_section; ++ X509V3_string_free; ++ X509V3_section_free; ++ X509V3_set_ctx; ++ s2i_ASN1_INTEGER; ++ CRYPTO_set_locked_mem_functions; ++ CRYPTO_get_locked_mem_functions; ++ CRYPTO_malloc_locked; ++ CRYPTO_free_locked; ++ BN_mod_exp2_mont; ++ ERR_get_error_line_data; ++ ERR_peek_error_line_data; ++ PKCS12_PBE_keyivgen; ++ X509_ALGOR_dup; ++ d2i_ASN1_SET_OF_DIST_POINT; ++ i2d_ASN1_SET_OF_DIST_POINT; ++ i2d_CRL_DIST_POINTS; ++ CRL_DIST_POINTS_new; ++ CRL_DIST_POINTS_free; ++ d2i_CRL_DIST_POINTS; ++ i2d_DIST_POINT; ++ DIST_POINT_new; ++ d2i_DIST_POINT; ++ DIST_POINT_free; ++ i2d_DIST_POINT_NAME; ++ DIST_POINT_NAME_new; ++ DIST_POINT_NAME_free; ++ d2i_DIST_POINT_NAME; ++ X509V3_add_value_uchar; ++ d2i_ASN1_SET_OF_X509_ATTRIBUTE; ++ i2d_ASN1_SET_OF_ASN1_TYPE; ++ d2i_ASN1_SET_OF_X509_EXTENSION; ++ d2i_ASN1_SET_OF_X509_NAME_ENTRY; ++ d2i_ASN1_SET_OF_ASN1_TYPE; ++ i2d_ASN1_SET_OF_X509_ATTRIBUTE; ++ i2d_ASN1_SET_OF_X509_EXTENSION; ++ i2d_ASN1_SET_OF_X509_NAME_ENTRY; ++ X509V3_EXT_i2d; ++ X509V3_EXT_val_prn; ++ X509V3_EXT_add_list; ++ EVP_CIPHER_type; ++ EVP_PBE_CipherInit; ++ X509V3_add_value_bool_nf; ++ d2i_ASN1_UINTEGER; ++ sk_value; ++ sk_num; ++ sk_set; ++ i2d_ASN1_SET_OF_X509_REVOKED; ++ sk_sort; ++ d2i_ASN1_SET_OF_X509_REVOKED; ++ i2d_ASN1_SET_OF_X509_ALGOR; ++ i2d_ASN1_SET_OF_X509_CRL; ++ d2i_ASN1_SET_OF_X509_ALGOR; ++ d2i_ASN1_SET_OF_X509_CRL; ++ i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO; ++ i2d_ASN1_SET_OF_PKCS7_RECIP_INFO; ++ d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO; ++ d2i_ASN1_SET_OF_PKCS7_RECIP_INFO; ++ PKCS5_PBE_add; ++ PEM_write_bio_PKCS8; ++ i2d_PKCS8_fp; ++ PEM_read_bio_PKCS8_PRIV_KEY_INFO; ++ PEM_read_bio_P8_PRIV_KEY_INFO; ++ d2i_PKCS8_bio; ++ d2i_PKCS8_PRIV_KEY_INFO_fp; ++ PEM_write_bio_PKCS8_PRIV_KEY_INFO; ++ PEM_write_bio_P8_PRIV_KEY_INFO; ++ PEM_read_PKCS8; ++ d2i_PKCS8_PRIV_KEY_INFO_bio; ++ d2i_PKCS8_fp; ++ PEM_write_PKCS8; ++ PEM_read_PKCS8_PRIV_KEY_INFO; ++ PEM_read_P8_PRIV_KEY_INFO; ++ PEM_read_bio_PKCS8; ++ PEM_write_PKCS8_PRIV_KEY_INFO; ++ PEM_write_P8_PRIV_KEY_INFO; ++ PKCS5_PBE_keyivgen; ++ i2d_PKCS8_bio; ++ i2d_PKCS8_PRIV_KEY_INFO_fp; ++ i2d_PKCS8_PRIV_KEY_INFO_bio; ++ BIO_s_bio; ++ PKCS5_pbe2_set; ++ PKCS5_PBKDF2_HMAC_SHA1; ++ PKCS5_v2_PBE_keyivgen; ++ PEM_write_bio_PKCS8PrivateKey; ++ PEM_write_PKCS8PrivateKey; ++ BIO_ctrl_get_read_request; ++ BIO_ctrl_pending; ++ BIO_ctrl_wpending; ++ BIO_new_bio_pair; ++ BIO_ctrl_get_write_guarantee; ++ CRYPTO_num_locks; ++ CONF_load_bio; ++ CONF_load_fp; ++ i2d_ASN1_SET_OF_ASN1_OBJECT; ++ d2i_ASN1_SET_OF_ASN1_OBJECT; ++ PKCS7_signatureVerify; ++ RSA_set_method; ++ RSA_get_method; ++ RSA_get_default_method; ++ RSA_check_key; ++ OBJ_obj2txt; ++ DSA_dup_DH; ++ X509_REQ_get_extensions; ++ X509_REQ_set_extension_nids; ++ BIO_nwrite; ++ X509_REQ_extension_nid; ++ BIO_nread; ++ X509_REQ_get_extension_nids; ++ BIO_nwrite0; ++ X509_REQ_add_extensions_nid; ++ BIO_nread0; ++ X509_REQ_add_extensions; ++ BIO_new_mem_buf; ++ DH_set_ex_data; ++ DH_set_method; ++ DSA_OpenSSL; ++ DH_get_ex_data; ++ DH_get_ex_new_index; ++ DSA_new_method; ++ DH_new_method; ++ DH_OpenSSL; ++ DSA_get_ex_new_index; ++ DH_get_default_method; ++ DSA_set_ex_data; ++ DH_set_default_method; ++ DSA_get_ex_data; ++ X509V3_EXT_REQ_add_conf; ++ NETSCAPE_SPKI_print; ++ NETSCAPE_SPKI_set_pubkey; ++ NETSCAPE_SPKI_b64_encode; ++ NETSCAPE_SPKI_get_pubkey; ++ NETSCAPE_SPKI_b64_decode; ++ UTF8_putc; ++ UTF8_getc; ++ RSA_null_method; ++ ASN1_tag2str; ++ BIO_ctrl_reset_read_request; ++ DISPLAYTEXT_new; ++ ASN1_GENERALIZEDTIME_free; ++ X509_REVOKED_get_ext_d2i; ++ X509_set_ex_data; ++ X509_reject_set_bit_asc; ++ X509_NAME_add_entry_by_txt; ++ X509_NAME_add_entry_by_NID; ++ X509_PURPOSE_get0; ++ PEM_read_X509_AUX; ++ d2i_AUTHORITY_INFO_ACCESS; ++ PEM_write_PUBKEY; ++ ACCESS_DESCRIPTION_new; ++ X509_CERT_AUX_free; ++ d2i_ACCESS_DESCRIPTION; ++ X509_trust_clear; ++ X509_TRUST_add; ++ ASN1_VISIBLESTRING_new; ++ X509_alias_set1; ++ ASN1_PRINTABLESTRING_free; ++ EVP_PKEY_get1_DSA; ++ ASN1_BMPSTRING_new; ++ ASN1_mbstring_copy; ++ ASN1_UTF8STRING_new; ++ DSA_get_default_method; ++ i2d_ASN1_SET_OF_ACCESS_DESCRIPTION; ++ ASN1_T61STRING_free; ++ DSA_set_method; ++ X509_get_ex_data; ++ ASN1_STRING_type; ++ X509_PURPOSE_get_by_sname; ++ ASN1_TIME_free; ++ ASN1_OCTET_STRING_cmp; ++ ASN1_BIT_STRING_new; ++ X509_get_ext_d2i; ++ PEM_read_bio_X509_AUX; ++ ASN1_STRING_set_default_mask_asc; ++ ASN1_STRING_set_def_mask_asc; ++ PEM_write_bio_RSA_PUBKEY; ++ ASN1_INTEGER_cmp; ++ d2i_RSA_PUBKEY_fp; ++ X509_trust_set_bit_asc; ++ PEM_write_bio_DSA_PUBKEY; ++ X509_STORE_CTX_free; ++ EVP_PKEY_set1_DSA; ++ i2d_DSA_PUBKEY_fp; ++ X509_load_cert_crl_file; ++ ASN1_TIME_new; ++ i2d_RSA_PUBKEY; ++ X509_STORE_CTX_purpose_inherit; ++ PEM_read_RSA_PUBKEY; ++ d2i_X509_AUX; ++ i2d_DSA_PUBKEY; ++ X509_CERT_AUX_print; ++ PEM_read_DSA_PUBKEY; ++ i2d_RSA_PUBKEY_bio; ++ ASN1_BIT_STRING_num_asc; ++ i2d_PUBKEY; ++ ASN1_UTCTIME_free; ++ DSA_set_default_method; ++ X509_PURPOSE_get_by_id; ++ ACCESS_DESCRIPTION_free; ++ PEM_read_bio_PUBKEY; ++ ASN1_STRING_set_by_NID; ++ X509_PURPOSE_get_id; ++ DISPLAYTEXT_free; ++ OTHERNAME_new; ++ X509_CERT_AUX_new; ++ X509_TRUST_cleanup; ++ X509_NAME_add_entry_by_OBJ; ++ X509_CRL_get_ext_d2i; ++ X509_PURPOSE_get0_name; ++ PEM_read_PUBKEY; ++ i2d_DSA_PUBKEY_bio; ++ i2d_OTHERNAME; ++ ASN1_OCTET_STRING_free; ++ ASN1_BIT_STRING_set_asc; ++ X509_get_ex_new_index; ++ ASN1_STRING_TABLE_cleanup; ++ X509_TRUST_get_by_id; ++ X509_PURPOSE_get_trust; ++ ASN1_STRING_length; ++ d2i_ASN1_SET_OF_ACCESS_DESCRIPTION; ++ ASN1_PRINTABLESTRING_new; ++ X509V3_get_d2i; ++ ASN1_ENUMERATED_free; ++ i2d_X509_CERT_AUX; ++ X509_STORE_CTX_set_trust; ++ ASN1_STRING_set_default_mask; ++ X509_STORE_CTX_new; ++ EVP_PKEY_get1_RSA; ++ DIRECTORYSTRING_free; ++ PEM_write_X509_AUX; ++ ASN1_OCTET_STRING_set; ++ d2i_DSA_PUBKEY_fp; ++ d2i_RSA_PUBKEY; ++ X509_TRUST_get0_name; ++ X509_TRUST_get0; ++ AUTHORITY_INFO_ACCESS_free; ++ ASN1_IA5STRING_new; ++ d2i_DSA_PUBKEY; ++ X509_check_purpose; ++ ASN1_ENUMERATED_new; ++ d2i_RSA_PUBKEY_bio; ++ d2i_PUBKEY; ++ X509_TRUST_get_trust; ++ X509_TRUST_get_flags; ++ ASN1_BMPSTRING_free; ++ ASN1_T61STRING_new; ++ ASN1_UTCTIME_new; ++ i2d_AUTHORITY_INFO_ACCESS; ++ EVP_PKEY_set1_RSA; ++ X509_STORE_CTX_set_purpose; ++ ASN1_IA5STRING_free; ++ PEM_write_bio_X509_AUX; ++ X509_PURPOSE_get_count; ++ CRYPTO_add_info; ++ X509_NAME_ENTRY_create_by_txt; ++ ASN1_STRING_get_default_mask; ++ X509_alias_get0; ++ ASN1_STRING_data; ++ i2d_ACCESS_DESCRIPTION; ++ X509_trust_set_bit; ++ ASN1_BIT_STRING_free; ++ PEM_read_bio_RSA_PUBKEY; ++ X509_add1_reject_object; ++ X509_check_trust; ++ PEM_read_bio_DSA_PUBKEY; ++ X509_PURPOSE_add; ++ ASN1_STRING_TABLE_get; ++ ASN1_UTF8STRING_free; ++ d2i_DSA_PUBKEY_bio; ++ PEM_write_RSA_PUBKEY; ++ d2i_OTHERNAME; ++ X509_reject_set_bit; ++ PEM_write_DSA_PUBKEY; ++ X509_PURPOSE_get0_sname; ++ EVP_PKEY_set1_DH; ++ ASN1_OCTET_STRING_dup; ++ ASN1_BIT_STRING_set; ++ X509_TRUST_get_count; ++ ASN1_INTEGER_free; ++ OTHERNAME_free; ++ i2d_RSA_PUBKEY_fp; ++ ASN1_INTEGER_dup; ++ d2i_X509_CERT_AUX; ++ PEM_write_bio_PUBKEY; ++ ASN1_VISIBLESTRING_free; ++ X509_PURPOSE_cleanup; ++ ASN1_mbstring_ncopy; ++ ASN1_GENERALIZEDTIME_new; ++ EVP_PKEY_get1_DH; ++ ASN1_OCTET_STRING_new; ++ ASN1_INTEGER_new; ++ i2d_X509_AUX; ++ ASN1_BIT_STRING_name_print; ++ X509_cmp; ++ ASN1_STRING_length_set; ++ DIRECTORYSTRING_new; ++ X509_add1_trust_object; ++ PKCS12_newpass; ++ SMIME_write_PKCS7; ++ SMIME_read_PKCS7; ++ DES_set_key_checked; ++ PKCS7_verify; ++ PKCS7_encrypt; ++ DES_set_key_unchecked; ++ SMIME_crlf_copy; ++ i2d_ASN1_PRINTABLESTRING; ++ PKCS7_get0_signers; ++ PKCS7_decrypt; ++ SMIME_text; ++ PKCS7_simple_smimecap; ++ PKCS7_get_smimecap; ++ PKCS7_sign; ++ PKCS7_add_attrib_smimecap; ++ CRYPTO_dbg_set_options; ++ CRYPTO_remove_all_info; ++ CRYPTO_get_mem_debug_functions; ++ CRYPTO_is_mem_check_on; ++ CRYPTO_set_mem_debug_functions; ++ CRYPTO_pop_info; ++ CRYPTO_push_info_; ++ CRYPTO_set_mem_debug_options; ++ PEM_write_PKCS8PrivateKey_nid; ++ PEM_write_bio_PKCS8PrivateKey_nid; ++ PEM_write_bio_PKCS8PrivKey_nid; ++ d2i_PKCS8PrivateKey_bio; ++ ASN1_NULL_free; ++ d2i_ASN1_NULL; ++ ASN1_NULL_new; ++ i2d_PKCS8PrivateKey_bio; ++ i2d_PKCS8PrivateKey_fp; ++ i2d_ASN1_NULL; ++ i2d_PKCS8PrivateKey_nid_fp; ++ d2i_PKCS8PrivateKey_fp; ++ i2d_PKCS8PrivateKey_nid_bio; ++ i2d_PKCS8PrivateKeyInfo_fp; ++ i2d_PKCS8PrivateKeyInfo_bio; ++ PEM_cb; ++ i2d_PrivateKey_fp; ++ d2i_PrivateKey_bio; ++ d2i_PrivateKey_fp; ++ i2d_PrivateKey_bio; ++ X509_reject_clear; ++ X509_TRUST_set_default; ++ d2i_AutoPrivateKey; ++ X509_ATTRIBUTE_get0_type; ++ X509_ATTRIBUTE_set1_data; ++ X509at_get_attr; ++ X509at_get_attr_count; ++ X509_ATTRIBUTE_create_by_NID; ++ X509_ATTRIBUTE_set1_object; ++ X509_ATTRIBUTE_count; ++ X509_ATTRIBUTE_create_by_OBJ; ++ X509_ATTRIBUTE_get0_object; ++ X509at_get_attr_by_NID; ++ X509at_add1_attr; ++ X509_ATTRIBUTE_get0_data; ++ X509at_delete_attr; ++ X509at_get_attr_by_OBJ; ++ RAND_add; ++ BIO_number_written; ++ BIO_number_read; ++ X509_STORE_CTX_get1_chain; ++ ERR_load_RAND_strings; ++ RAND_pseudo_bytes; ++ X509_REQ_get_attr_by_NID; ++ X509_REQ_get_attr; ++ X509_REQ_add1_attr_by_NID; ++ X509_REQ_get_attr_by_OBJ; ++ X509at_add1_attr_by_NID; ++ X509_REQ_add1_attr_by_OBJ; ++ X509_REQ_get_attr_count; ++ X509_REQ_add1_attr; ++ X509_REQ_delete_attr; ++ X509at_add1_attr_by_OBJ; ++ X509_REQ_add1_attr_by_txt; ++ X509_ATTRIBUTE_create_by_txt; ++ X509at_add1_attr_by_txt; ++ BN_pseudo_rand; ++ BN_is_prime_fasttest; ++ BN_CTX_end; ++ BN_CTX_start; ++ BN_CTX_get; ++ EVP_PKEY2PKCS8_broken; ++ ASN1_STRING_TABLE_add; ++ CRYPTO_dbg_get_options; ++ AUTHORITY_INFO_ACCESS_new; ++ CRYPTO_get_mem_debug_options; ++ DES_crypt; ++ PEM_write_bio_X509_REQ_NEW; ++ PEM_write_X509_REQ_NEW; ++ BIO_callback_ctrl; ++ RAND_egd; ++ RAND_status; ++ bn_dump1; ++ DES_check_key_parity; ++ lh_num_items; ++ RAND_event; ++ DSO_new; ++ DSO_new_method; ++ DSO_free; ++ DSO_flags; ++ DSO_up; ++ DSO_set_default_method; ++ DSO_get_default_method; ++ DSO_get_method; ++ DSO_set_method; ++ DSO_load; ++ DSO_bind_var; ++ DSO_METHOD_null; ++ DSO_METHOD_openssl; ++ DSO_METHOD_dlfcn; ++ DSO_METHOD_win32; ++ ERR_load_DSO_strings; ++ DSO_METHOD_dl; ++ NCONF_load; ++ NCONF_load_fp; ++ NCONF_new; ++ NCONF_get_string; ++ NCONF_free; ++ NCONF_get_number; ++ CONF_dump_fp; ++ NCONF_load_bio; ++ NCONF_dump_fp; ++ NCONF_get_section; ++ NCONF_dump_bio; ++ CONF_dump_bio; ++ NCONF_free_data; ++ CONF_set_default_method; ++ ERR_error_string_n; ++ BIO_snprintf; ++ DSO_ctrl; ++ i2d_ASN1_SET_OF_ASN1_INTEGER; ++ i2d_ASN1_SET_OF_PKCS12_SAFEBAG; ++ i2d_ASN1_SET_OF_PKCS7; ++ BIO_vfree; ++ d2i_ASN1_SET_OF_ASN1_INTEGER; ++ d2i_ASN1_SET_OF_PKCS12_SAFEBAG; ++ ASN1_UTCTIME_get; ++ X509_REQ_digest; ++ X509_CRL_digest; ++ d2i_ASN1_SET_OF_PKCS7; ++ EVP_CIPHER_CTX_set_key_length; ++ EVP_CIPHER_CTX_ctrl; ++ BN_mod_exp_mont_word; ++ RAND_egd_bytes; ++ X509_REQ_get1_email; ++ X509_get1_email; ++ X509_email_free; ++ i2d_RSA_NET; ++ d2i_RSA_NET_2; ++ d2i_RSA_NET; ++ DSO_bind_func; ++ CRYPTO_get_new_dynlockid; ++ sk_new_null; ++ CRYPTO_set_dynlock_destroy_callback; ++ CRYPTO_set_dynlock_destroy_cb; ++ CRYPTO_destroy_dynlockid; ++ CRYPTO_set_dynlock_size; ++ CRYPTO_set_dynlock_create_callback; ++ CRYPTO_set_dynlock_create_cb; ++ CRYPTO_set_dynlock_lock_callback; ++ CRYPTO_set_dynlock_lock_cb; ++ CRYPTO_get_dynlock_lock_callback; ++ CRYPTO_get_dynlock_lock_cb; ++ CRYPTO_get_dynlock_destroy_callback; ++ CRYPTO_get_dynlock_destroy_cb; ++ CRYPTO_get_dynlock_value; ++ CRYPTO_get_dynlock_create_callback; ++ CRYPTO_get_dynlock_create_cb; ++ c2i_ASN1_BIT_STRING; ++ i2c_ASN1_BIT_STRING; ++ RAND_poll; ++ c2i_ASN1_INTEGER; ++ i2c_ASN1_INTEGER; ++ BIO_dump_indent; ++ ASN1_parse_dump; ++ c2i_ASN1_OBJECT; ++ X509_NAME_print_ex_fp; ++ ASN1_STRING_print_ex_fp; ++ X509_NAME_print_ex; ++ ASN1_STRING_print_ex; ++ MD4; ++ MD4_Transform; ++ MD4_Final; ++ MD4_Update; ++ MD4_Init; ++ EVP_md4; ++ i2d_PUBKEY_bio; ++ i2d_PUBKEY_fp; ++ d2i_PUBKEY_bio; ++ ASN1_STRING_to_UTF8; ++ BIO_vprintf; ++ BIO_vsnprintf; ++ d2i_PUBKEY_fp; ++ X509_cmp_time; ++ X509_STORE_CTX_set_time; ++ X509_STORE_CTX_get1_issuer; ++ X509_OBJECT_retrieve_match; ++ X509_OBJECT_idx_by_subject; ++ X509_STORE_CTX_set_flags; ++ X509_STORE_CTX_trusted_stack; ++ X509_time_adj; ++ X509_check_issued; ++ ASN1_UTCTIME_cmp_time_t; ++ DES_set_weak_key_flag; ++ DES_check_key; ++ DES_rw_mode; ++ RSA_PKCS1_RSAref; ++ X509_keyid_set1; ++ BIO_next; ++ DSO_METHOD_vms; ++ BIO_f_linebuffer; ++ BN_bntest_rand; ++ OPENSSL_issetugid; ++ BN_rand_range; ++ ERR_load_ENGINE_strings; ++ ENGINE_set_DSA; ++ ENGINE_get_finish_function; ++ ENGINE_get_default_RSA; ++ ENGINE_get_BN_mod_exp; ++ DSA_get_default_openssl_method; ++ ENGINE_set_DH; ++ ENGINE_set_def_BN_mod_exp_crt; ++ ENGINE_set_default_BN_mod_exp_crt; ++ ENGINE_init; ++ DH_get_default_openssl_method; ++ RSA_set_default_openssl_method; ++ ENGINE_finish; ++ ENGINE_load_public_key; ++ ENGINE_get_DH; ++ ENGINE_ctrl; ++ ENGINE_get_init_function; ++ ENGINE_set_init_function; ++ ENGINE_set_default_DSA; ++ ENGINE_get_name; ++ ENGINE_get_last; ++ ENGINE_get_prev; ++ ENGINE_get_default_DH; ++ ENGINE_get_RSA; ++ ENGINE_set_default; ++ ENGINE_get_RAND; ++ ENGINE_get_first; ++ ENGINE_by_id; ++ ENGINE_set_finish_function; ++ ENGINE_get_def_BN_mod_exp_crt; ++ ENGINE_get_default_BN_mod_exp_crt; ++ RSA_get_default_openssl_method; ++ ENGINE_set_RSA; ++ ENGINE_load_private_key; ++ ENGINE_set_default_RAND; ++ ENGINE_set_BN_mod_exp; ++ ENGINE_remove; ++ ENGINE_free; ++ ENGINE_get_BN_mod_exp_crt; ++ ENGINE_get_next; ++ ENGINE_set_name; ++ ENGINE_get_default_DSA; ++ ENGINE_set_default_BN_mod_exp; ++ ENGINE_set_default_RSA; ++ ENGINE_get_default_RAND; ++ ENGINE_get_default_BN_mod_exp; ++ ENGINE_set_RAND; ++ ENGINE_set_id; ++ ENGINE_set_BN_mod_exp_crt; ++ ENGINE_set_default_DH; ++ ENGINE_new; ++ ENGINE_get_id; ++ DSA_set_default_openssl_method; ++ ENGINE_add; ++ DH_set_default_openssl_method; ++ ENGINE_get_DSA; ++ ENGINE_get_ctrl_function; ++ ENGINE_set_ctrl_function; ++ BN_pseudo_rand_range; ++ X509_STORE_CTX_set_verify_cb; ++ ERR_load_COMP_strings; ++ PKCS12_item_decrypt_d2i; ++ ASN1_UTF8STRING_it; ++ ASN1_UTF8STRING_it; ++ ENGINE_unregister_ciphers; ++ ENGINE_get_ciphers; ++ d2i_OCSP_BASICRESP; ++ KRB5_CHECKSUM_it; ++ KRB5_CHECKSUM_it; ++ EC_POINT_add; ++ ASN1_item_ex_i2d; ++ OCSP_CERTID_it; ++ OCSP_CERTID_it; ++ d2i_OCSP_RESPBYTES; ++ X509V3_add1_i2d; ++ PKCS7_ENVELOPE_it; ++ PKCS7_ENVELOPE_it; ++ UI_add_input_boolean; ++ ENGINE_unregister_RSA; ++ X509V3_EXT_nconf; ++ ASN1_GENERALSTRING_free; ++ d2i_OCSP_CERTSTATUS; ++ X509_REVOKED_set_serialNumber; ++ X509_print_ex; ++ OCSP_ONEREQ_get1_ext_d2i; ++ ENGINE_register_all_RAND; ++ ENGINE_load_dynamic; ++ PBKDF2PARAM_it; ++ PBKDF2PARAM_it; ++ EXTENDED_KEY_USAGE_new; ++ EC_GROUP_clear_free; ++ OCSP_sendreq_bio; ++ ASN1_item_digest; ++ OCSP_BASICRESP_delete_ext; ++ OCSP_SIGNATURE_it; ++ OCSP_SIGNATURE_it; ++ X509_CRL_it; ++ X509_CRL_it; ++ OCSP_BASICRESP_add_ext; ++ KRB5_ENCKEY_it; ++ KRB5_ENCKEY_it; ++ UI_method_set_closer; ++ X509_STORE_set_purpose; ++ i2d_ASN1_GENERALSTRING; ++ OCSP_response_status; ++ i2d_OCSP_SERVICELOC; ++ ENGINE_get_digest_engine; ++ EC_GROUP_set_curve_GFp; ++ OCSP_REQUEST_get_ext_by_OBJ; ++ _ossl_old_des_random_key; ++ ASN1_T61STRING_it; ++ ASN1_T61STRING_it; ++ EC_GROUP_method_of; ++ i2d_KRB5_APREQ; ++ _ossl_old_des_encrypt; ++ ASN1_PRINTABLE_new; ++ HMAC_Init_ex; ++ d2i_KRB5_AUTHENT; ++ OCSP_archive_cutoff_new; ++ EC_POINT_set_Jprojective_coordinates_GFp; ++ EC_POINT_set_Jproj_coords_GFp; ++ _ossl_old_des_is_weak_key; ++ OCSP_BASICRESP_get_ext_by_OBJ; ++ EC_POINT_oct2point; ++ OCSP_SINGLERESP_get_ext_count; ++ UI_ctrl; ++ _shadow_DES_rw_mode; ++ _shadow_DES_rw_mode; ++ asn1_do_adb; ++ ASN1_template_i2d; ++ ENGINE_register_DH; ++ UI_construct_prompt; ++ X509_STORE_set_trust; ++ UI_dup_input_string; ++ d2i_KRB5_APREQ; ++ EVP_MD_CTX_copy_ex; ++ OCSP_request_is_signed; ++ i2d_OCSP_REQINFO; ++ KRB5_ENCKEY_free; ++ OCSP_resp_get0; ++ GENERAL_NAME_it; ++ GENERAL_NAME_it; ++ ASN1_GENERALIZEDTIME_it; ++ ASN1_GENERALIZEDTIME_it; ++ X509_STORE_set_flags; ++ EC_POINT_set_compressed_coordinates_GFp; ++ EC_POINT_set_compr_coords_GFp; ++ OCSP_response_status_str; ++ d2i_OCSP_REVOKEDINFO; ++ OCSP_basic_add1_cert; ++ ERR_get_implementation; ++ EVP_CipherFinal_ex; ++ OCSP_CERTSTATUS_new; ++ CRYPTO_cleanup_all_ex_data; ++ OCSP_resp_find; ++ BN_nnmod; ++ X509_CRL_sort; ++ X509_REVOKED_set_revocationDate; ++ ENGINE_register_RAND; ++ OCSP_SERVICELOC_new; ++ EC_POINT_set_affine_coordinates_GFp; ++ EC_POINT_set_affine_coords_GFp; ++ _ossl_old_des_options; ++ SXNET_it; ++ SXNET_it; ++ UI_dup_input_boolean; ++ PKCS12_add_CSPName_asc; ++ EC_POINT_is_at_infinity; ++ ENGINE_load_cryptodev; ++ DSO_convert_filename; ++ POLICYQUALINFO_it; ++ POLICYQUALINFO_it; ++ ENGINE_register_ciphers; ++ BN_mod_lshift_quick; ++ DSO_set_filename; ++ ASN1_item_free; ++ KRB5_TKTBODY_free; ++ AUTHORITY_KEYID_it; ++ AUTHORITY_KEYID_it; ++ KRB5_APREQBODY_new; ++ X509V3_EXT_REQ_add_nconf; ++ ENGINE_ctrl_cmd_string; ++ i2d_OCSP_RESPDATA; ++ EVP_MD_CTX_init; ++ EXTENDED_KEY_USAGE_free; ++ PKCS7_ATTR_SIGN_it; ++ PKCS7_ATTR_SIGN_it; ++ UI_add_error_string; ++ KRB5_CHECKSUM_free; ++ OCSP_REQUEST_get_ext; ++ ENGINE_load_ubsec; ++ ENGINE_register_all_digests; ++ PKEY_USAGE_PERIOD_it; ++ PKEY_USAGE_PERIOD_it; ++ PKCS12_unpack_authsafes; ++ ASN1_item_unpack; ++ NETSCAPE_SPKAC_it; ++ NETSCAPE_SPKAC_it; ++ X509_REVOKED_it; ++ X509_REVOKED_it; ++ ASN1_STRING_encode; ++ EVP_aes_128_ecb; ++ KRB5_AUTHENT_free; ++ OCSP_BASICRESP_get_ext_by_critical; ++ OCSP_BASICRESP_get_ext_by_crit; ++ OCSP_cert_status_str; ++ d2i_OCSP_REQUEST; ++ UI_dup_info_string; ++ _ossl_old_des_xwhite_in2out; ++ PKCS12_it; ++ PKCS12_it; ++ OCSP_SINGLERESP_get_ext_by_critical; ++ OCSP_SINGLERESP_get_ext_by_crit; ++ OCSP_CERTSTATUS_free; ++ _ossl_old_des_crypt; ++ ASN1_item_i2d; ++ EVP_DecryptFinal_ex; ++ ENGINE_load_openssl; ++ ENGINE_get_cmd_defns; ++ ENGINE_set_load_privkey_function; ++ ENGINE_set_load_privkey_fn; ++ EVP_EncryptFinal_ex; ++ ENGINE_set_default_digests; ++ X509_get0_pubkey_bitstr; ++ asn1_ex_i2c; ++ ENGINE_register_RSA; ++ ENGINE_unregister_DSA; ++ _ossl_old_des_key_sched; ++ X509_EXTENSION_it; ++ X509_EXTENSION_it; ++ i2d_KRB5_AUTHENT; ++ SXNETID_it; ++ SXNETID_it; ++ d2i_OCSP_SINGLERESP; ++ EDIPARTYNAME_new; ++ PKCS12_certbag2x509; ++ _ossl_old_des_ofb64_encrypt; ++ d2i_EXTENDED_KEY_USAGE; ++ ERR_print_errors_cb; ++ ENGINE_set_ciphers; ++ d2i_KRB5_APREQBODY; ++ UI_method_get_flusher; ++ X509_PUBKEY_it; ++ X509_PUBKEY_it; ++ _ossl_old_des_enc_read; ++ PKCS7_ENCRYPT_it; ++ PKCS7_ENCRYPT_it; ++ i2d_OCSP_RESPONSE; ++ EC_GROUP_get_cofactor; ++ PKCS12_unpack_p7data; ++ d2i_KRB5_AUTHDATA; ++ OCSP_copy_nonce; ++ KRB5_AUTHDATA_new; ++ OCSP_RESPDATA_new; ++ EC_GFp_mont_method; ++ OCSP_REVOKEDINFO_free; ++ UI_get_ex_data; ++ KRB5_APREQBODY_free; ++ EC_GROUP_get0_generator; ++ UI_get_default_method; ++ X509V3_set_nconf; ++ PKCS12_item_i2d_encrypt; ++ X509_add1_ext_i2d; ++ PKCS7_SIGNER_INFO_it; ++ PKCS7_SIGNER_INFO_it; ++ KRB5_PRINCNAME_new; ++ PKCS12_SAFEBAG_it; ++ PKCS12_SAFEBAG_it; ++ EC_GROUP_get_order; ++ d2i_OCSP_RESPID; ++ OCSP_request_verify; ++ NCONF_get_number_e; ++ _ossl_old_des_decrypt3; ++ X509_signature_print; ++ OCSP_SINGLERESP_free; ++ ENGINE_load_builtin_engines; ++ i2d_OCSP_ONEREQ; ++ OCSP_REQUEST_add_ext; ++ OCSP_RESPBYTES_new; ++ EVP_MD_CTX_create; ++ OCSP_resp_find_status; ++ X509_ALGOR_it; ++ X509_ALGOR_it; ++ ASN1_TIME_it; ++ ASN1_TIME_it; ++ OCSP_request_set1_name; ++ OCSP_ONEREQ_get_ext_count; ++ UI_get0_result; ++ PKCS12_AUTHSAFES_it; ++ PKCS12_AUTHSAFES_it; ++ EVP_aes_256_ecb; ++ PKCS12_pack_authsafes; ++ ASN1_IA5STRING_it; ++ ASN1_IA5STRING_it; ++ UI_get_input_flags; ++ EC_GROUP_set_generator; ++ _ossl_old_des_string_to_2keys; ++ OCSP_CERTID_free; ++ X509_CERT_AUX_it; ++ X509_CERT_AUX_it; ++ CERTIFICATEPOLICIES_it; ++ CERTIFICATEPOLICIES_it; ++ _ossl_old_des_ede3_cbc_encrypt; ++ RAND_set_rand_engine; ++ DSO_get_loaded_filename; ++ X509_ATTRIBUTE_it; ++ X509_ATTRIBUTE_it; ++ OCSP_ONEREQ_get_ext_by_NID; ++ PKCS12_decrypt_skey; ++ KRB5_AUTHENT_it; ++ KRB5_AUTHENT_it; ++ UI_dup_error_string; ++ RSAPublicKey_it; ++ RSAPublicKey_it; ++ i2d_OCSP_REQUEST; ++ PKCS12_x509crl2certbag; ++ OCSP_SERVICELOC_it; ++ OCSP_SERVICELOC_it; ++ ASN1_item_sign; ++ X509_CRL_set_issuer_name; ++ OBJ_NAME_do_all_sorted; ++ i2d_OCSP_BASICRESP; ++ i2d_OCSP_RESPBYTES; ++ PKCS12_unpack_p7encdata; ++ HMAC_CTX_init; ++ ENGINE_get_digest; ++ OCSP_RESPONSE_print; ++ KRB5_TKTBODY_it; ++ KRB5_TKTBODY_it; ++ ACCESS_DESCRIPTION_it; ++ ACCESS_DESCRIPTION_it; ++ PKCS7_ISSUER_AND_SERIAL_it; ++ PKCS7_ISSUER_AND_SERIAL_it; ++ PBE2PARAM_it; ++ PBE2PARAM_it; ++ PKCS12_certbag2x509crl; ++ PKCS7_SIGNED_it; ++ PKCS7_SIGNED_it; ++ ENGINE_get_cipher; ++ i2d_OCSP_CRLID; ++ OCSP_SINGLERESP_new; ++ ENGINE_cmd_is_executable; ++ RSA_up_ref; ++ ASN1_GENERALSTRING_it; ++ ASN1_GENERALSTRING_it; ++ ENGINE_register_DSA; ++ X509V3_EXT_add_nconf_sk; ++ ENGINE_set_load_pubkey_function; ++ PKCS8_decrypt; ++ PEM_bytes_read_bio; ++ DIRECTORYSTRING_it; ++ DIRECTORYSTRING_it; ++ d2i_OCSP_CRLID; ++ EC_POINT_is_on_curve; ++ CRYPTO_set_locked_mem_ex_functions; ++ CRYPTO_set_locked_mem_ex_funcs; ++ d2i_KRB5_CHECKSUM; ++ ASN1_item_dup; ++ X509_it; ++ X509_it; ++ BN_mod_add; ++ KRB5_AUTHDATA_free; ++ _ossl_old_des_cbc_cksum; ++ ASN1_item_verify; ++ CRYPTO_set_mem_ex_functions; ++ EC_POINT_get_Jprojective_coordinates_GFp; ++ EC_POINT_get_Jproj_coords_GFp; ++ ZLONG_it; ++ ZLONG_it; ++ CRYPTO_get_locked_mem_ex_functions; ++ CRYPTO_get_locked_mem_ex_funcs; ++ ASN1_TIME_check; ++ UI_get0_user_data; ++ HMAC_CTX_cleanup; ++ DSA_up_ref; ++ _ossl_old_des_ede3_cfb64_encrypt; ++ _ossl_odes_ede3_cfb64_encrypt; ++ ASN1_BMPSTRING_it; ++ ASN1_BMPSTRING_it; ++ ASN1_tag2bit; ++ UI_method_set_flusher; ++ X509_ocspid_print; ++ KRB5_ENCDATA_it; ++ KRB5_ENCDATA_it; ++ ENGINE_get_load_pubkey_function; ++ UI_add_user_data; ++ OCSP_REQUEST_delete_ext; ++ UI_get_method; ++ OCSP_ONEREQ_free; ++ ASN1_PRINTABLESTRING_it; ++ ASN1_PRINTABLESTRING_it; ++ X509_CRL_set_nextUpdate; ++ OCSP_REQUEST_it; ++ OCSP_REQUEST_it; ++ OCSP_BASICRESP_it; ++ OCSP_BASICRESP_it; ++ AES_ecb_encrypt; ++ BN_mod_sqr; ++ NETSCAPE_CERT_SEQUENCE_it; ++ NETSCAPE_CERT_SEQUENCE_it; ++ GENERAL_NAMES_it; ++ GENERAL_NAMES_it; ++ AUTHORITY_INFO_ACCESS_it; ++ AUTHORITY_INFO_ACCESS_it; ++ ASN1_FBOOLEAN_it; ++ ASN1_FBOOLEAN_it; ++ UI_set_ex_data; ++ _ossl_old_des_string_to_key; ++ ENGINE_register_all_RSA; ++ d2i_KRB5_PRINCNAME; ++ OCSP_RESPBYTES_it; ++ OCSP_RESPBYTES_it; ++ X509_CINF_it; ++ X509_CINF_it; ++ ENGINE_unregister_digests; ++ d2i_EDIPARTYNAME; ++ d2i_OCSP_SERVICELOC; ++ ENGINE_get_digests; ++ _ossl_old_des_set_odd_parity; ++ OCSP_RESPDATA_free; ++ d2i_KRB5_TICKET; ++ OTHERNAME_it; ++ OTHERNAME_it; ++ EVP_MD_CTX_cleanup; ++ d2i_ASN1_GENERALSTRING; ++ X509_CRL_set_version; ++ BN_mod_sub; ++ OCSP_SINGLERESP_get_ext_by_NID; ++ ENGINE_get_ex_new_index; ++ OCSP_REQUEST_free; ++ OCSP_REQUEST_add1_ext_i2d; ++ X509_VAL_it; ++ X509_VAL_it; ++ EC_POINTs_make_affine; ++ EC_POINT_mul; ++ X509V3_EXT_add_nconf; ++ X509_TRUST_set; ++ X509_CRL_add1_ext_i2d; ++ _ossl_old_des_fcrypt; ++ DISPLAYTEXT_it; ++ DISPLAYTEXT_it; ++ X509_CRL_set_lastUpdate; ++ OCSP_BASICRESP_free; ++ OCSP_BASICRESP_add1_ext_i2d; ++ d2i_KRB5_AUTHENTBODY; ++ CRYPTO_set_ex_data_implementation; ++ CRYPTO_set_ex_data_impl; ++ KRB5_ENCDATA_new; ++ DSO_up_ref; ++ OCSP_crl_reason_str; ++ UI_get0_result_string; ++ ASN1_GENERALSTRING_new; ++ X509_SIG_it; ++ X509_SIG_it; ++ ERR_set_implementation; ++ ERR_load_EC_strings; ++ UI_get0_action_string; ++ OCSP_ONEREQ_get_ext; ++ EC_POINT_method_of; ++ i2d_KRB5_APREQBODY; ++ _ossl_old_des_ecb3_encrypt; ++ CRYPTO_get_mem_ex_functions; ++ ENGINE_get_ex_data; ++ UI_destroy_method; ++ ASN1_item_i2d_bio; ++ OCSP_ONEREQ_get_ext_by_OBJ; ++ ASN1_primitive_new; ++ ASN1_PRINTABLE_it; ++ ASN1_PRINTABLE_it; ++ EVP_aes_192_ecb; ++ OCSP_SIGNATURE_new; ++ LONG_it; ++ LONG_it; ++ ASN1_VISIBLESTRING_it; ++ ASN1_VISIBLESTRING_it; ++ OCSP_SINGLERESP_add1_ext_i2d; ++ d2i_OCSP_CERTID; ++ ASN1_item_d2i_fp; ++ CRL_DIST_POINTS_it; ++ CRL_DIST_POINTS_it; ++ GENERAL_NAME_print; ++ OCSP_SINGLERESP_delete_ext; ++ PKCS12_SAFEBAGS_it; ++ PKCS12_SAFEBAGS_it; ++ d2i_OCSP_SIGNATURE; ++ OCSP_request_add1_nonce; ++ ENGINE_set_cmd_defns; ++ OCSP_SERVICELOC_free; ++ EC_GROUP_free; ++ ASN1_BIT_STRING_it; ++ ASN1_BIT_STRING_it; ++ X509_REQ_it; ++ X509_REQ_it; ++ _ossl_old_des_cbc_encrypt; ++ ERR_unload_strings; ++ PKCS7_SIGN_ENVELOPE_it; ++ PKCS7_SIGN_ENVELOPE_it; ++ EDIPARTYNAME_free; ++ OCSP_REQINFO_free; ++ EC_GROUP_new_curve_GFp; ++ OCSP_REQUEST_get1_ext_d2i; ++ PKCS12_item_pack_safebag; ++ asn1_ex_c2i; ++ ENGINE_register_digests; ++ i2d_OCSP_REVOKEDINFO; ++ asn1_enc_restore; ++ UI_free; ++ UI_new_method; ++ EVP_EncryptInit_ex; ++ X509_pubkey_digest; ++ EC_POINT_invert; ++ OCSP_basic_sign; ++ i2d_OCSP_RESPID; ++ OCSP_check_nonce; ++ ENGINE_ctrl_cmd; ++ d2i_KRB5_ENCKEY; ++ OCSP_parse_url; ++ OCSP_SINGLERESP_get_ext; ++ OCSP_CRLID_free; ++ OCSP_BASICRESP_get1_ext_d2i; ++ RSAPrivateKey_it; ++ RSAPrivateKey_it; ++ ENGINE_register_all_DH; ++ i2d_EDIPARTYNAME; ++ EC_POINT_get_affine_coordinates_GFp; ++ EC_POINT_get_affine_coords_GFp; ++ OCSP_CRLID_new; ++ ENGINE_get_flags; ++ OCSP_ONEREQ_it; ++ OCSP_ONEREQ_it; ++ UI_process; ++ ASN1_INTEGER_it; ++ ASN1_INTEGER_it; ++ EVP_CipherInit_ex; ++ UI_get_string_type; ++ ENGINE_unregister_DH; ++ ENGINE_register_all_DSA; ++ OCSP_ONEREQ_get_ext_by_critical; ++ bn_dup_expand; ++ OCSP_cert_id_new; ++ BASIC_CONSTRAINTS_it; ++ BASIC_CONSTRAINTS_it; ++ BN_mod_add_quick; ++ EC_POINT_new; ++ EVP_MD_CTX_destroy; ++ OCSP_RESPBYTES_free; ++ EVP_aes_128_cbc; ++ OCSP_SINGLERESP_get1_ext_d2i; ++ EC_POINT_free; ++ DH_up_ref; ++ X509_NAME_ENTRY_it; ++ X509_NAME_ENTRY_it; ++ UI_get_ex_new_index; ++ BN_mod_sub_quick; ++ OCSP_ONEREQ_add_ext; ++ OCSP_request_sign; ++ EVP_DigestFinal_ex; ++ ENGINE_set_digests; ++ OCSP_id_issuer_cmp; ++ OBJ_NAME_do_all; ++ EC_POINTs_mul; ++ ENGINE_register_complete; ++ X509V3_EXT_nconf_nid; ++ ASN1_SEQUENCE_it; ++ ASN1_SEQUENCE_it; ++ UI_set_default_method; ++ RAND_query_egd_bytes; ++ UI_method_get_writer; ++ UI_OpenSSL; ++ PEM_def_callback; ++ ENGINE_cleanup; ++ DIST_POINT_it; ++ DIST_POINT_it; ++ OCSP_SINGLERESP_it; ++ OCSP_SINGLERESP_it; ++ d2i_KRB5_TKTBODY; ++ EC_POINT_cmp; ++ OCSP_REVOKEDINFO_new; ++ i2d_OCSP_CERTSTATUS; ++ OCSP_basic_add1_nonce; ++ ASN1_item_ex_d2i; ++ BN_mod_lshift1_quick; ++ UI_set_method; ++ OCSP_id_get0_info; ++ BN_mod_sqrt; ++ EC_GROUP_copy; ++ KRB5_ENCDATA_free; ++ _ossl_old_des_cfb_encrypt; ++ OCSP_SINGLERESP_get_ext_by_OBJ; ++ OCSP_cert_to_id; ++ OCSP_RESPID_new; ++ OCSP_RESPDATA_it; ++ OCSP_RESPDATA_it; ++ d2i_OCSP_RESPDATA; ++ ENGINE_register_all_complete; ++ OCSP_check_validity; ++ PKCS12_BAGS_it; ++ PKCS12_BAGS_it; ++ OCSP_url_svcloc_new; ++ ASN1_template_free; ++ OCSP_SINGLERESP_add_ext; ++ KRB5_AUTHENTBODY_it; ++ KRB5_AUTHENTBODY_it; ++ X509_supported_extension; ++ i2d_KRB5_AUTHDATA; ++ UI_method_get_opener; ++ ENGINE_set_ex_data; ++ OCSP_REQUEST_print; ++ CBIGNUM_it; ++ CBIGNUM_it; ++ KRB5_TICKET_new; ++ KRB5_APREQ_new; ++ EC_GROUP_get_curve_GFp; ++ KRB5_ENCKEY_new; ++ ASN1_template_d2i; ++ _ossl_old_des_quad_cksum; ++ OCSP_single_get0_status; ++ BN_swap; ++ POLICYINFO_it; ++ POLICYINFO_it; ++ ENGINE_set_destroy_function; ++ asn1_enc_free; ++ OCSP_RESPID_it; ++ OCSP_RESPID_it; ++ EC_GROUP_new; ++ EVP_aes_256_cbc; ++ i2d_KRB5_PRINCNAME; ++ _ossl_old_des_encrypt2; ++ _ossl_old_des_encrypt3; ++ PKCS8_PRIV_KEY_INFO_it; ++ PKCS8_PRIV_KEY_INFO_it; ++ OCSP_REQINFO_it; ++ OCSP_REQINFO_it; ++ PBEPARAM_it; ++ PBEPARAM_it; ++ KRB5_AUTHENTBODY_new; ++ X509_CRL_add0_revoked; ++ EDIPARTYNAME_it; ++ EDIPARTYNAME_it; ++ NETSCAPE_SPKI_it; ++ NETSCAPE_SPKI_it; ++ UI_get0_test_string; ++ ENGINE_get_cipher_engine; ++ ENGINE_register_all_ciphers; ++ EC_POINT_copy; ++ BN_kronecker; ++ _ossl_old_des_ede3_ofb64_encrypt; ++ _ossl_odes_ede3_ofb64_encrypt; ++ UI_method_get_reader; ++ OCSP_BASICRESP_get_ext_count; ++ ASN1_ENUMERATED_it; ++ ASN1_ENUMERATED_it; ++ UI_set_result; ++ i2d_KRB5_TICKET; ++ X509_print_ex_fp; ++ EVP_CIPHER_CTX_set_padding; ++ d2i_OCSP_RESPONSE; ++ ASN1_UTCTIME_it; ++ ASN1_UTCTIME_it; ++ _ossl_old_des_enc_write; ++ OCSP_RESPONSE_new; ++ AES_set_encrypt_key; ++ OCSP_resp_count; ++ KRB5_CHECKSUM_new; ++ ENGINE_load_cswift; ++ OCSP_onereq_get0_id; ++ ENGINE_set_default_ciphers; ++ NOTICEREF_it; ++ NOTICEREF_it; ++ X509V3_EXT_CRL_add_nconf; ++ OCSP_REVOKEDINFO_it; ++ OCSP_REVOKEDINFO_it; ++ AES_encrypt; ++ OCSP_REQUEST_new; ++ ASN1_ANY_it; ++ ASN1_ANY_it; ++ CRYPTO_ex_data_new_class; ++ _ossl_old_des_ncbc_encrypt; ++ i2d_KRB5_TKTBODY; ++ EC_POINT_clear_free; ++ AES_decrypt; ++ asn1_enc_init; ++ UI_get_result_maxsize; ++ OCSP_CERTID_new; ++ ENGINE_unregister_RAND; ++ UI_method_get_closer; ++ d2i_KRB5_ENCDATA; ++ OCSP_request_onereq_count; ++ OCSP_basic_verify; ++ KRB5_AUTHENTBODY_free; ++ ASN1_item_d2i; ++ ASN1_primitive_free; ++ i2d_EXTENDED_KEY_USAGE; ++ i2d_OCSP_SIGNATURE; ++ asn1_enc_save; ++ ENGINE_load_nuron; ++ _ossl_old_des_pcbc_encrypt; ++ PKCS12_MAC_DATA_it; ++ PKCS12_MAC_DATA_it; ++ OCSP_accept_responses_new; ++ asn1_do_lock; ++ PKCS7_ATTR_VERIFY_it; ++ PKCS7_ATTR_VERIFY_it; ++ KRB5_APREQBODY_it; ++ KRB5_APREQBODY_it; ++ i2d_OCSP_SINGLERESP; ++ ASN1_item_ex_new; ++ UI_add_verify_string; ++ _ossl_old_des_set_key; ++ KRB5_PRINCNAME_it; ++ KRB5_PRINCNAME_it; ++ EVP_DecryptInit_ex; ++ i2d_OCSP_CERTID; ++ ASN1_item_d2i_bio; ++ EC_POINT_dbl; ++ asn1_get_choice_selector; ++ i2d_KRB5_CHECKSUM; ++ ENGINE_set_table_flags; ++ AES_options; ++ ENGINE_load_chil; ++ OCSP_id_cmp; ++ OCSP_BASICRESP_new; ++ OCSP_REQUEST_get_ext_by_NID; ++ KRB5_APREQ_it; ++ KRB5_APREQ_it; ++ ENGINE_get_destroy_function; ++ CONF_set_nconf; ++ ASN1_PRINTABLE_free; ++ OCSP_BASICRESP_get_ext_by_NID; ++ DIST_POINT_NAME_it; ++ DIST_POINT_NAME_it; ++ X509V3_extensions_print; ++ _ossl_old_des_cfb64_encrypt; ++ X509_REVOKED_add1_ext_i2d; ++ _ossl_old_des_ofb_encrypt; ++ KRB5_TKTBODY_new; ++ ASN1_OCTET_STRING_it; ++ ASN1_OCTET_STRING_it; ++ ERR_load_UI_strings; ++ i2d_KRB5_ENCKEY; ++ ASN1_template_new; ++ OCSP_SIGNATURE_free; ++ ASN1_item_i2d_fp; ++ KRB5_PRINCNAME_free; ++ PKCS7_RECIP_INFO_it; ++ PKCS7_RECIP_INFO_it; ++ EXTENDED_KEY_USAGE_it; ++ EXTENDED_KEY_USAGE_it; ++ EC_GFp_simple_method; ++ EC_GROUP_precompute_mult; ++ OCSP_request_onereq_get0; ++ UI_method_set_writer; ++ KRB5_AUTHENT_new; ++ X509_CRL_INFO_it; ++ X509_CRL_INFO_it; ++ DSO_set_name_converter; ++ AES_set_decrypt_key; ++ PKCS7_DIGEST_it; ++ PKCS7_DIGEST_it; ++ PKCS12_x5092certbag; ++ EVP_DigestInit_ex; ++ i2a_ACCESS_DESCRIPTION; ++ OCSP_RESPONSE_it; ++ OCSP_RESPONSE_it; ++ PKCS7_ENC_CONTENT_it; ++ PKCS7_ENC_CONTENT_it; ++ OCSP_request_add0_id; ++ EC_POINT_make_affine; ++ DSO_get_filename; ++ OCSP_CERTSTATUS_it; ++ OCSP_CERTSTATUS_it; ++ OCSP_request_add1_cert; ++ UI_get0_output_string; ++ UI_dup_verify_string; ++ BN_mod_lshift; ++ KRB5_AUTHDATA_it; ++ KRB5_AUTHDATA_it; ++ asn1_set_choice_selector; ++ OCSP_basic_add1_status; ++ OCSP_RESPID_free; ++ asn1_get_field_ptr; ++ UI_add_input_string; ++ OCSP_CRLID_it; ++ OCSP_CRLID_it; ++ i2d_KRB5_AUTHENTBODY; ++ OCSP_REQUEST_get_ext_count; ++ ENGINE_load_atalla; ++ X509_NAME_it; ++ X509_NAME_it; ++ USERNOTICE_it; ++ USERNOTICE_it; ++ OCSP_REQINFO_new; ++ OCSP_BASICRESP_get_ext; ++ CRYPTO_get_ex_data_implementation; ++ CRYPTO_get_ex_data_impl; ++ ASN1_item_pack; ++ i2d_KRB5_ENCDATA; ++ X509_PURPOSE_set; ++ X509_REQ_INFO_it; ++ X509_REQ_INFO_it; ++ UI_method_set_opener; ++ ASN1_item_ex_free; ++ ASN1_BOOLEAN_it; ++ ASN1_BOOLEAN_it; ++ ENGINE_get_table_flags; ++ UI_create_method; ++ OCSP_ONEREQ_add1_ext_i2d; ++ _shadow_DES_check_key; ++ _shadow_DES_check_key; ++ d2i_OCSP_REQINFO; ++ UI_add_info_string; ++ UI_get_result_minsize; ++ ASN1_NULL_it; ++ ASN1_NULL_it; ++ BN_mod_lshift1; ++ d2i_OCSP_ONEREQ; ++ OCSP_ONEREQ_new; ++ KRB5_TICKET_it; ++ KRB5_TICKET_it; ++ EVP_aes_192_cbc; ++ KRB5_TICKET_free; ++ UI_new; ++ OCSP_response_create; ++ _ossl_old_des_xcbc_encrypt; ++ PKCS7_it; ++ PKCS7_it; ++ OCSP_REQUEST_get_ext_by_critical; ++ OCSP_REQUEST_get_ext_by_crit; ++ ENGINE_set_flags; ++ _ossl_old_des_ecb_encrypt; ++ OCSP_response_get1_basic; ++ EVP_Digest; ++ OCSP_ONEREQ_delete_ext; ++ ASN1_TBOOLEAN_it; ++ ASN1_TBOOLEAN_it; ++ ASN1_item_new; ++ ASN1_TIME_to_generalizedtime; ++ BIGNUM_it; ++ BIGNUM_it; ++ AES_cbc_encrypt; ++ ENGINE_get_load_privkey_function; ++ ENGINE_get_load_privkey_fn; ++ OCSP_RESPONSE_free; ++ UI_method_set_reader; ++ i2d_ASN1_T61STRING; ++ EC_POINT_set_to_infinity; ++ ERR_load_OCSP_strings; ++ EC_POINT_point2oct; ++ KRB5_APREQ_free; ++ ASN1_OBJECT_it; ++ ASN1_OBJECT_it; ++ OCSP_crlID_new; ++ OCSP_crlID2_new; ++ CONF_modules_load_file; ++ CONF_imodule_set_usr_data; ++ ENGINE_set_default_string; ++ CONF_module_get_usr_data; ++ ASN1_add_oid_module; ++ CONF_modules_finish; ++ OPENSSL_config; ++ CONF_modules_unload; ++ CONF_imodule_get_value; ++ CONF_module_set_usr_data; ++ CONF_parse_list; ++ CONF_module_add; ++ CONF_get1_default_config_file; ++ CONF_imodule_get_flags; ++ CONF_imodule_get_module; ++ CONF_modules_load; ++ CONF_imodule_get_name; ++ ERR_peek_top_error; ++ CONF_imodule_get_usr_data; ++ CONF_imodule_set_flags; ++ ENGINE_add_conf_module; ++ ERR_peek_last_error_line; ++ ERR_peek_last_error_line_data; ++ ERR_peek_last_error; ++ DES_read_2passwords; ++ DES_read_password; ++ UI_UTIL_read_pw; ++ UI_UTIL_read_pw_string; ++ ENGINE_load_aep; ++ ENGINE_load_sureware; ++ OPENSSL_add_all_algorithms_noconf; ++ OPENSSL_add_all_algo_noconf; ++ OPENSSL_add_all_algorithms_conf; ++ OPENSSL_add_all_algo_conf; ++ OPENSSL_load_builtin_modules; ++ AES_ofb128_encrypt; ++ AES_ctr128_encrypt; ++ AES_cfb128_encrypt; ++ ENGINE_load_4758cca; ++ _ossl_096_des_random_seed; ++ EVP_aes_256_ofb; ++ EVP_aes_192_ofb; ++ EVP_aes_128_cfb128; ++ EVP_aes_256_cfb128; ++ EVP_aes_128_ofb; ++ EVP_aes_192_cfb128; ++ CONF_modules_free; ++ NCONF_default; ++ OPENSSL_no_config; ++ NCONF_WIN32; ++ ASN1_UNIVERSALSTRING_new; ++ EVP_des_ede_ecb; ++ i2d_ASN1_UNIVERSALSTRING; ++ ASN1_UNIVERSALSTRING_free; ++ ASN1_UNIVERSALSTRING_it; ++ ASN1_UNIVERSALSTRING_it; ++ d2i_ASN1_UNIVERSALSTRING; ++ EVP_des_ede3_ecb; ++ X509_REQ_print_ex; ++ ENGINE_up_ref; ++ BUF_MEM_grow_clean; ++ CRYPTO_realloc_clean; ++ BUF_strlcat; ++ BIO_indent; ++ BUF_strlcpy; ++ OpenSSLDie; ++ OPENSSL_cleanse; ++ ENGINE_setup_bsd_cryptodev; ++ ERR_release_err_state_table; ++ EVP_aes_128_cfb8; ++ FIPS_corrupt_rsa; ++ FIPS_selftest_des; ++ EVP_aes_128_cfb1; ++ EVP_aes_192_cfb8; ++ FIPS_mode_set; ++ FIPS_selftest_dsa; ++ EVP_aes_256_cfb8; ++ FIPS_allow_md5; ++ DES_ede3_cfb_encrypt; ++ EVP_des_ede3_cfb8; ++ FIPS_rand_seeded; ++ AES_cfbr_encrypt_block; ++ AES_cfb8_encrypt; ++ FIPS_rand_seed; ++ FIPS_corrupt_des; ++ EVP_aes_192_cfb1; ++ FIPS_selftest_aes; ++ FIPS_set_prng_key; ++ EVP_des_cfb8; ++ FIPS_corrupt_dsa; ++ FIPS_test_mode; ++ FIPS_rand_method; ++ EVP_aes_256_cfb1; ++ ERR_load_FIPS_strings; ++ FIPS_corrupt_aes; ++ FIPS_selftest_sha1; ++ FIPS_selftest_rsa; ++ FIPS_corrupt_sha1; ++ EVP_des_cfb1; ++ FIPS_dsa_check; ++ AES_cfb1_encrypt; ++ EVP_des_ede3_cfb1; ++ FIPS_rand_check; ++ FIPS_md5_allowed; ++ FIPS_mode; ++ FIPS_selftest_failed; ++ sk_is_sorted; ++ X509_check_ca; ++ private_idea_set_encrypt_key; ++ HMAC_CTX_set_flags; ++ private_SHA_Init; ++ private_CAST_set_key; ++ private_RIPEMD160_Init; ++ private_RC5_32_set_key; ++ private_MD5_Init; ++ private_RC4_set_key; ++ private_MDC2_Init; ++ private_RC2_set_key; ++ private_MD4_Init; ++ private_BF_set_key; ++ private_MD2_Init; ++ d2i_PROXY_CERT_INFO_EXTENSION; ++ PROXY_POLICY_it; ++ PROXY_POLICY_it; ++ i2d_PROXY_POLICY; ++ i2d_PROXY_CERT_INFO_EXTENSION; ++ d2i_PROXY_POLICY; ++ PROXY_CERT_INFO_EXTENSION_new; ++ PROXY_CERT_INFO_EXTENSION_free; ++ PROXY_CERT_INFO_EXTENSION_it; ++ PROXY_CERT_INFO_EXTENSION_it; ++ PROXY_POLICY_free; ++ PROXY_POLICY_new; ++ BN_MONT_CTX_set_locked; ++ FIPS_selftest_rng; ++ EVP_sha384; ++ EVP_sha512; ++ EVP_sha224; ++ EVP_sha256; ++ FIPS_selftest_hmac; ++ FIPS_corrupt_rng; ++ BN_mod_exp_mont_consttime; ++ RSA_X931_hash_id; ++ RSA_padding_check_X931; ++ RSA_verify_PKCS1_PSS; ++ RSA_padding_add_X931; ++ RSA_padding_add_PKCS1_PSS; ++ PKCS1_MGF1; ++ BN_X931_generate_Xpq; ++ RSA_X931_generate_key; ++ BN_X931_derive_prime; ++ BN_X931_generate_prime; ++ RSA_X931_derive; ++ BIO_new_dgram; ++ BN_get0_nist_prime_384; ++ ERR_set_mark; ++ X509_STORE_CTX_set0_crls; ++ ENGINE_set_STORE; ++ ENGINE_register_ECDSA; ++ STORE_meth_set_list_start_fn; ++ STORE_method_set_list_start_function; ++ BN_BLINDING_invert_ex; ++ NAME_CONSTRAINTS_free; ++ STORE_ATTR_INFO_set_number; ++ BN_BLINDING_get_thread_id; ++ X509_STORE_CTX_set0_param; ++ POLICY_MAPPING_it; ++ POLICY_MAPPING_it; ++ STORE_parse_attrs_start; ++ POLICY_CONSTRAINTS_free; ++ EVP_PKEY_add1_attr_by_NID; ++ BN_nist_mod_192; ++ EC_GROUP_get_trinomial_basis; ++ STORE_set_method; ++ GENERAL_SUBTREE_free; ++ NAME_CONSTRAINTS_it; ++ NAME_CONSTRAINTS_it; ++ ECDH_get_default_method; ++ PKCS12_add_safe; ++ EC_KEY_new_by_curve_name; ++ STORE_meth_get_update_store_fn; ++ STORE_method_get_update_store_function; ++ ENGINE_register_ECDH; ++ SHA512_Update; ++ i2d_ECPrivateKey; ++ BN_get0_nist_prime_192; ++ STORE_modify_certificate; ++ EC_POINT_set_affine_coordinates_GF2m; ++ EC_POINT_set_affine_coords_GF2m; ++ BN_GF2m_mod_exp_arr; ++ STORE_ATTR_INFO_modify_number; ++ X509_keyid_get0; ++ ENGINE_load_gmp; ++ pitem_new; ++ BN_GF2m_mod_mul_arr; ++ STORE_list_public_key_endp; ++ o2i_ECPublicKey; ++ EC_KEY_copy; ++ BIO_dump_fp; ++ X509_policy_node_get0_parent; ++ EC_GROUP_check_discriminant; ++ i2o_ECPublicKey; ++ EC_KEY_precompute_mult; ++ a2i_IPADDRESS; ++ STORE_meth_set_initialise_fn; ++ STORE_method_set_initialise_function; ++ X509_STORE_CTX_set_depth; ++ X509_VERIFY_PARAM_inherit; ++ EC_POINT_point2bn; ++ STORE_ATTR_INFO_set_dn; ++ X509_policy_tree_get0_policies; ++ EC_GROUP_new_curve_GF2m; ++ STORE_destroy_method; ++ ENGINE_unregister_STORE; ++ EVP_PKEY_get1_EC_KEY; ++ STORE_ATTR_INFO_get0_number; ++ ENGINE_get_default_ECDH; ++ EC_KEY_get_conv_form; ++ ASN1_OCTET_STRING_NDEF_it; ++ ASN1_OCTET_STRING_NDEF_it; ++ STORE_delete_public_key; ++ STORE_get_public_key; ++ STORE_modify_arbitrary; ++ ENGINE_get_static_state; ++ pqueue_iterator; ++ ECDSA_SIG_new; ++ OPENSSL_DIR_end; ++ BN_GF2m_mod_sqr; ++ EC_POINT_bn2point; ++ X509_VERIFY_PARAM_set_depth; ++ EC_KEY_set_asn1_flag; ++ STORE_get_method; ++ EC_KEY_get_key_method_data; ++ ECDSA_sign_ex; ++ STORE_parse_attrs_end; ++ EC_GROUP_get_point_conversion_form; ++ EC_GROUP_get_point_conv_form; ++ STORE_method_set_store_function; ++ STORE_ATTR_INFO_in; ++ PEM_read_bio_ECPKParameters; ++ EC_GROUP_get_pentanomial_basis; ++ EVP_PKEY_add1_attr_by_txt; ++ BN_BLINDING_set_flags; ++ X509_VERIFY_PARAM_set1_policies; ++ X509_VERIFY_PARAM_set1_name; ++ X509_VERIFY_PARAM_set_purpose; ++ STORE_get_number; ++ ECDSA_sign_setup; ++ BN_GF2m_mod_solve_quad_arr; ++ EC_KEY_up_ref; ++ POLICY_MAPPING_free; ++ BN_GF2m_mod_div; ++ X509_VERIFY_PARAM_set_flags; ++ EC_KEY_free; ++ STORE_meth_set_list_next_fn; ++ STORE_method_set_list_next_function; ++ PEM_write_bio_ECPrivateKey; ++ d2i_EC_PUBKEY; ++ STORE_meth_get_generate_fn; ++ STORE_method_get_generate_function; ++ STORE_meth_set_list_end_fn; ++ STORE_method_set_list_end_function; ++ pqueue_print; ++ EC_GROUP_have_precompute_mult; ++ EC_KEY_print_fp; ++ BN_GF2m_mod_arr; ++ PEM_write_bio_X509_CERT_PAIR; ++ EVP_PKEY_cmp; ++ X509_policy_level_node_count; ++ STORE_new_engine; ++ STORE_list_public_key_start; ++ X509_VERIFY_PARAM_new; ++ ECDH_get_ex_data; ++ EVP_PKEY_get_attr; ++ ECDSA_do_sign; ++ ENGINE_unregister_ECDH; ++ ECDH_OpenSSL; ++ EC_KEY_set_conv_form; ++ EC_POINT_dup; ++ GENERAL_SUBTREE_new; ++ STORE_list_crl_endp; ++ EC_get_builtin_curves; ++ X509_policy_node_get0_qualifiers; ++ X509_pcy_node_get0_qualifiers; ++ STORE_list_crl_end; ++ EVP_PKEY_set1_EC_KEY; ++ BN_GF2m_mod_sqrt_arr; ++ i2d_ECPrivateKey_bio; ++ ECPKParameters_print_fp; ++ pqueue_find; ++ ECDSA_SIG_free; ++ PEM_write_bio_ECPKParameters; ++ STORE_method_set_ctrl_function; ++ STORE_list_public_key_end; ++ EC_KEY_set_private_key; ++ pqueue_peek; ++ STORE_get_arbitrary; ++ STORE_store_crl; ++ X509_policy_node_get0_policy; ++ PKCS12_add_safes; ++ BN_BLINDING_convert_ex; ++ X509_policy_tree_free; ++ OPENSSL_ia32cap_loc; ++ BN_GF2m_poly2arr; ++ STORE_ctrl; ++ STORE_ATTR_INFO_compare; ++ BN_get0_nist_prime_224; ++ i2d_ECParameters; ++ i2d_ECPKParameters; ++ BN_GENCB_call; ++ d2i_ECPKParameters; ++ STORE_meth_set_generate_fn; ++ STORE_method_set_generate_function; ++ ENGINE_set_ECDH; ++ NAME_CONSTRAINTS_new; ++ SHA256_Init; ++ EC_KEY_get0_public_key; ++ PEM_write_bio_EC_PUBKEY; ++ STORE_ATTR_INFO_set_cstr; ++ STORE_list_crl_next; ++ STORE_ATTR_INFO_in_range; ++ ECParameters_print; ++ STORE_meth_set_delete_fn; ++ STORE_method_set_delete_function; ++ STORE_list_certificate_next; ++ ASN1_generate_nconf; ++ BUF_memdup; ++ BN_GF2m_mod_mul; ++ STORE_meth_get_list_next_fn; ++ STORE_method_get_list_next_function; ++ STORE_ATTR_INFO_get0_dn; ++ STORE_list_private_key_next; ++ EC_GROUP_set_seed; ++ X509_VERIFY_PARAM_set_trust; ++ STORE_ATTR_INFO_free; ++ STORE_get_private_key; ++ EVP_PKEY_get_attr_count; ++ STORE_ATTR_INFO_new; ++ EC_GROUP_get_curve_GF2m; ++ STORE_meth_set_revoke_fn; ++ STORE_method_set_revoke_function; ++ STORE_store_number; ++ BN_is_prime_ex; ++ STORE_revoke_public_key; ++ X509_STORE_CTX_get0_param; ++ STORE_delete_arbitrary; ++ PEM_read_X509_CERT_PAIR; ++ X509_STORE_set_depth; ++ ECDSA_get_ex_data; ++ SHA224; ++ BIO_dump_indent_fp; ++ EC_KEY_set_group; ++ BUF_strndup; ++ STORE_list_certificate_start; ++ BN_GF2m_mod; ++ X509_REQ_check_private_key; ++ EC_GROUP_get_seed_len; ++ ERR_load_STORE_strings; ++ PEM_read_bio_EC_PUBKEY; ++ STORE_list_private_key_end; ++ i2d_EC_PUBKEY; ++ ECDSA_get_default_method; ++ ASN1_put_eoc; ++ X509_STORE_CTX_get_explicit_policy; ++ X509_STORE_CTX_get_expl_policy; ++ X509_VERIFY_PARAM_table_cleanup; ++ STORE_modify_private_key; ++ X509_VERIFY_PARAM_free; ++ EC_METHOD_get_field_type; ++ EC_GFp_nist_method; ++ STORE_meth_set_modify_fn; ++ STORE_method_set_modify_function; ++ STORE_parse_attrs_next; ++ ENGINE_load_padlock; ++ EC_GROUP_set_curve_name; ++ X509_CERT_PAIR_it; ++ X509_CERT_PAIR_it; ++ STORE_meth_get_revoke_fn; ++ STORE_method_get_revoke_function; ++ STORE_method_set_get_function; ++ STORE_modify_number; ++ STORE_method_get_store_function; ++ STORE_store_private_key; ++ BN_GF2m_mod_sqr_arr; ++ RSA_setup_blinding; ++ BIO_s_datagram; ++ STORE_Memory; ++ sk_find_ex; ++ EC_GROUP_set_curve_GF2m; ++ ENGINE_set_default_ECDSA; ++ POLICY_CONSTRAINTS_new; ++ BN_GF2m_mod_sqrt; ++ ECDH_set_default_method; ++ EC_KEY_generate_key; ++ SHA384_Update; ++ BN_GF2m_arr2poly; ++ STORE_method_get_get_function; ++ STORE_meth_set_cleanup_fn; ++ STORE_method_set_cleanup_function; ++ EC_GROUP_check; ++ d2i_ECPrivateKey_bio; ++ EC_KEY_insert_key_method_data; ++ STORE_meth_get_lock_store_fn; ++ STORE_method_get_lock_store_function; ++ X509_VERIFY_PARAM_get_depth; ++ SHA224_Final; ++ STORE_meth_set_update_store_fn; ++ STORE_method_set_update_store_function; ++ SHA224_Update; ++ d2i_ECPrivateKey; ++ ASN1_item_ndef_i2d; ++ STORE_delete_private_key; ++ ERR_pop_to_mark; ++ ENGINE_register_all_STORE; ++ X509_policy_level_get0_node; ++ i2d_PKCS7_NDEF; ++ EC_GROUP_get_degree; ++ ASN1_generate_v3; ++ STORE_ATTR_INFO_modify_cstr; ++ X509_policy_tree_level_count; ++ BN_GF2m_add; ++ EC_KEY_get0_group; ++ STORE_generate_crl; ++ STORE_store_public_key; ++ X509_CERT_PAIR_free; ++ STORE_revoke_private_key; ++ BN_nist_mod_224; ++ SHA512_Final; ++ STORE_ATTR_INFO_modify_dn; ++ STORE_meth_get_initialise_fn; ++ STORE_method_get_initialise_function; ++ STORE_delete_number; ++ i2d_EC_PUBKEY_bio; ++ BIO_dgram_non_fatal_error; ++ EC_GROUP_get_asn1_flag; ++ STORE_ATTR_INFO_in_ex; ++ STORE_list_crl_start; ++ ECDH_get_ex_new_index; ++ STORE_meth_get_modify_fn; ++ STORE_method_get_modify_function; ++ v2i_ASN1_BIT_STRING; ++ STORE_store_certificate; ++ OBJ_bsearch_ex; ++ X509_STORE_CTX_set_default; ++ STORE_ATTR_INFO_set_sha1str; ++ BN_GF2m_mod_inv; ++ BN_GF2m_mod_exp; ++ STORE_modify_public_key; ++ STORE_meth_get_list_start_fn; ++ STORE_method_get_list_start_function; ++ EC_GROUP_get0_seed; ++ STORE_store_arbitrary; ++ STORE_meth_set_unlock_store_fn; ++ STORE_method_set_unlock_store_function; ++ BN_GF2m_mod_div_arr; ++ ENGINE_set_ECDSA; ++ STORE_create_method; ++ ECPKParameters_print; ++ EC_KEY_get0_private_key; ++ PEM_write_EC_PUBKEY; ++ X509_VERIFY_PARAM_set1; ++ ECDH_set_method; ++ v2i_GENERAL_NAME_ex; ++ ECDH_set_ex_data; ++ STORE_generate_key; ++ BN_nist_mod_521; ++ X509_policy_tree_get0_level; ++ EC_GROUP_set_point_conversion_form; ++ EC_GROUP_set_point_conv_form; ++ PEM_read_EC_PUBKEY; ++ i2d_ECDSA_SIG; ++ ECDSA_OpenSSL; ++ STORE_delete_crl; ++ EC_KEY_get_enc_flags; ++ ASN1_const_check_infinite_end; ++ EVP_PKEY_delete_attr; ++ ECDSA_set_default_method; ++ EC_POINT_set_compressed_coordinates_GF2m; ++ EC_POINT_set_compr_coords_GF2m; ++ EC_GROUP_cmp; ++ STORE_revoke_certificate; ++ BN_get0_nist_prime_256; ++ STORE_meth_get_delete_fn; ++ STORE_method_get_delete_function; ++ SHA224_Init; ++ PEM_read_ECPrivateKey; ++ SHA512_Init; ++ STORE_parse_attrs_endp; ++ BN_set_negative; ++ ERR_load_ECDSA_strings; ++ EC_GROUP_get_basis_type; ++ STORE_list_public_key_next; ++ i2v_ASN1_BIT_STRING; ++ STORE_OBJECT_free; ++ BN_nist_mod_384; ++ i2d_X509_CERT_PAIR; ++ PEM_write_ECPKParameters; ++ ECDH_compute_key; ++ STORE_ATTR_INFO_get0_sha1str; ++ ENGINE_register_all_ECDH; ++ pqueue_pop; ++ STORE_ATTR_INFO_get0_cstr; ++ POLICY_CONSTRAINTS_it; ++ POLICY_CONSTRAINTS_it; ++ STORE_get_ex_new_index; ++ EVP_PKEY_get_attr_by_OBJ; ++ X509_VERIFY_PARAM_add0_policy; ++ BN_GF2m_mod_solve_quad; ++ SHA256; ++ i2d_ECPrivateKey_fp; ++ X509_policy_tree_get0_user_policies; ++ X509_pcy_tree_get0_usr_policies; ++ OPENSSL_DIR_read; ++ ENGINE_register_all_ECDSA; ++ X509_VERIFY_PARAM_lookup; ++ EC_POINT_get_affine_coordinates_GF2m; ++ EC_POINT_get_affine_coords_GF2m; ++ EC_GROUP_dup; ++ ENGINE_get_default_ECDSA; ++ EC_KEY_new; ++ SHA256_Transform; ++ EC_KEY_set_enc_flags; ++ ECDSA_verify; ++ EC_POINT_point2hex; ++ ENGINE_get_STORE; ++ SHA512; ++ STORE_get_certificate; ++ ECDSA_do_sign_ex; ++ ECDSA_do_verify; ++ d2i_ECPrivateKey_fp; ++ STORE_delete_certificate; ++ SHA512_Transform; ++ X509_STORE_set1_param; ++ STORE_method_get_ctrl_function; ++ STORE_free; ++ PEM_write_ECPrivateKey; ++ STORE_meth_get_unlock_store_fn; ++ STORE_method_get_unlock_store_function; ++ STORE_get_ex_data; ++ EC_KEY_set_public_key; ++ PEM_read_ECPKParameters; ++ X509_CERT_PAIR_new; ++ ENGINE_register_STORE; ++ RSA_generate_key_ex; ++ DSA_generate_parameters_ex; ++ ECParameters_print_fp; ++ X509V3_NAME_from_section; ++ EVP_PKEY_add1_attr; ++ STORE_modify_crl; ++ STORE_list_private_key_start; ++ POLICY_MAPPINGS_it; ++ POLICY_MAPPINGS_it; ++ GENERAL_SUBTREE_it; ++ GENERAL_SUBTREE_it; ++ EC_GROUP_get_curve_name; ++ PEM_write_X509_CERT_PAIR; ++ BIO_dump_indent_cb; ++ d2i_X509_CERT_PAIR; ++ STORE_list_private_key_endp; ++ asn1_const_Finish; ++ i2d_EC_PUBKEY_fp; ++ BN_nist_mod_256; ++ X509_VERIFY_PARAM_add0_table; ++ pqueue_free; ++ BN_BLINDING_create_param; ++ ECDSA_size; ++ d2i_EC_PUBKEY_bio; ++ BN_get0_nist_prime_521; ++ STORE_ATTR_INFO_modify_sha1str; ++ BN_generate_prime_ex; ++ EC_GROUP_new_by_curve_name; ++ SHA256_Final; ++ DH_generate_parameters_ex; ++ PEM_read_bio_ECPrivateKey; ++ STORE_meth_get_cleanup_fn; ++ STORE_method_get_cleanup_function; ++ ENGINE_get_ECDH; ++ d2i_ECDSA_SIG; ++ BN_is_prime_fasttest_ex; ++ ECDSA_sign; ++ X509_policy_check; ++ EVP_PKEY_get_attr_by_NID; ++ STORE_set_ex_data; ++ ENGINE_get_ECDSA; ++ EVP_ecdsa; ++ BN_BLINDING_get_flags; ++ PKCS12_add_cert; ++ STORE_OBJECT_new; ++ ERR_load_ECDH_strings; ++ EC_KEY_dup; ++ EVP_CIPHER_CTX_rand_key; ++ ECDSA_set_method; ++ a2i_IPADDRESS_NC; ++ d2i_ECParameters; ++ STORE_list_certificate_end; ++ STORE_get_crl; ++ X509_POLICY_NODE_print; ++ SHA384_Init; ++ EC_GF2m_simple_method; ++ ECDSA_set_ex_data; ++ SHA384_Final; ++ PKCS7_set_digest; ++ EC_KEY_print; ++ STORE_meth_set_lock_store_fn; ++ STORE_method_set_lock_store_function; ++ ECDSA_get_ex_new_index; ++ SHA384; ++ POLICY_MAPPING_new; ++ STORE_list_certificate_endp; ++ X509_STORE_CTX_get0_policy_tree; ++ EC_GROUP_set_asn1_flag; ++ EC_KEY_check_key; ++ d2i_EC_PUBKEY_fp; ++ PKCS7_set0_type_other; ++ PEM_read_bio_X509_CERT_PAIR; ++ pqueue_next; ++ STORE_meth_get_list_end_fn; ++ STORE_method_get_list_end_function; ++ EVP_PKEY_add1_attr_by_OBJ; ++ X509_VERIFY_PARAM_set_time; ++ pqueue_new; ++ ENGINE_set_default_ECDH; ++ STORE_new_method; ++ PKCS12_add_key; ++ DSO_merge; ++ EC_POINT_hex2point; ++ BIO_dump_cb; ++ SHA256_Update; ++ pqueue_insert; ++ pitem_free; ++ BN_GF2m_mod_inv_arr; ++ ENGINE_unregister_ECDSA; ++ BN_BLINDING_set_thread_id; ++ get_rfc3526_prime_8192; ++ X509_VERIFY_PARAM_clear_flags; ++ get_rfc2409_prime_1024; ++ DH_check_pub_key; ++ get_rfc3526_prime_2048; ++ get_rfc3526_prime_6144; ++ get_rfc3526_prime_1536; ++ get_rfc3526_prime_3072; ++ get_rfc3526_prime_4096; ++ get_rfc2409_prime_768; ++ X509_VERIFY_PARAM_get_flags; ++ EVP_CIPHER_CTX_new; ++ EVP_CIPHER_CTX_free; ++ Camellia_cbc_encrypt; ++ Camellia_cfb128_encrypt; ++ Camellia_cfb1_encrypt; ++ Camellia_cfb8_encrypt; ++ Camellia_ctr128_encrypt; ++ Camellia_cfbr_encrypt_block; ++ Camellia_decrypt; ++ Camellia_ecb_encrypt; ++ Camellia_encrypt; ++ Camellia_ofb128_encrypt; ++ Camellia_set_key; ++ EVP_camellia_128_cbc; ++ EVP_camellia_128_cfb128; ++ EVP_camellia_128_cfb1; ++ EVP_camellia_128_cfb8; ++ EVP_camellia_128_ecb; ++ EVP_camellia_128_ofb; ++ EVP_camellia_192_cbc; ++ EVP_camellia_192_cfb128; ++ EVP_camellia_192_cfb1; ++ EVP_camellia_192_cfb8; ++ EVP_camellia_192_ecb; ++ EVP_camellia_192_ofb; ++ EVP_camellia_256_cbc; ++ EVP_camellia_256_cfb128; ++ EVP_camellia_256_cfb1; ++ EVP_camellia_256_cfb8; ++ EVP_camellia_256_ecb; ++ EVP_camellia_256_ofb; ++ a2i_ipadd; ++ ASIdentifiers_free; ++ i2d_ASIdOrRange; ++ EVP_CIPHER_block_size; ++ v3_asid_is_canonical; ++ IPAddressChoice_free; ++ EVP_CIPHER_CTX_set_app_data; ++ BIO_set_callback_arg; ++ v3_addr_add_prefix; ++ IPAddressOrRange_it; ++ IPAddressOrRange_it; ++ BIO_set_flags; ++ ASIdentifiers_it; ++ ASIdentifiers_it; ++ v3_addr_get_range; ++ BIO_method_type; ++ v3_addr_inherits; ++ IPAddressChoice_it; ++ IPAddressChoice_it; ++ AES_ige_encrypt; ++ v3_addr_add_range; ++ EVP_CIPHER_CTX_nid; ++ d2i_ASRange; ++ v3_addr_add_inherit; ++ v3_asid_add_id_or_range; ++ v3_addr_validate_resource_set; ++ EVP_CIPHER_iv_length; ++ EVP_MD_type; ++ v3_asid_canonize; ++ IPAddressRange_free; ++ v3_asid_add_inherit; ++ EVP_CIPHER_CTX_key_length; ++ IPAddressRange_new; ++ ASIdOrRange_new; ++ EVP_MD_size; ++ EVP_MD_CTX_test_flags; ++ BIO_clear_flags; ++ i2d_ASRange; ++ IPAddressRange_it; ++ IPAddressRange_it; ++ IPAddressChoice_new; ++ ASIdentifierChoice_new; ++ ASRange_free; ++ EVP_MD_pkey_type; ++ EVP_MD_CTX_clear_flags; ++ IPAddressFamily_free; ++ i2d_IPAddressFamily; ++ IPAddressOrRange_new; ++ EVP_CIPHER_flags; ++ v3_asid_validate_resource_set; ++ d2i_IPAddressRange; ++ AES_bi_ige_encrypt; ++ BIO_get_callback; ++ IPAddressOrRange_free; ++ v3_addr_subset; ++ d2i_IPAddressFamily; ++ v3_asid_subset; ++ BIO_test_flags; ++ i2d_ASIdentifierChoice; ++ ASRange_it; ++ ASRange_it; ++ d2i_ASIdentifiers; ++ ASRange_new; ++ d2i_IPAddressChoice; ++ v3_addr_get_afi; ++ EVP_CIPHER_key_length; ++ EVP_Cipher; ++ i2d_IPAddressOrRange; ++ ASIdOrRange_it; ++ ASIdOrRange_it; ++ EVP_CIPHER_nid; ++ i2d_IPAddressChoice; ++ EVP_CIPHER_CTX_block_size; ++ ASIdentifiers_new; ++ v3_addr_validate_path; ++ IPAddressFamily_new; ++ EVP_MD_CTX_set_flags; ++ v3_addr_is_canonical; ++ i2d_IPAddressRange; ++ IPAddressFamily_it; ++ IPAddressFamily_it; ++ v3_asid_inherits; ++ EVP_CIPHER_CTX_cipher; ++ EVP_CIPHER_CTX_get_app_data; ++ EVP_MD_block_size; ++ EVP_CIPHER_CTX_flags; ++ v3_asid_validate_path; ++ d2i_IPAddressOrRange; ++ v3_addr_canonize; ++ ASIdentifierChoice_it; ++ ASIdentifierChoice_it; ++ EVP_MD_CTX_md; ++ d2i_ASIdentifierChoice; ++ BIO_method_name; ++ EVP_CIPHER_CTX_iv_length; ++ ASIdOrRange_free; ++ ASIdentifierChoice_free; ++ BIO_get_callback_arg; ++ BIO_set_callback; ++ d2i_ASIdOrRange; ++ i2d_ASIdentifiers; ++ SEED_decrypt; ++ SEED_encrypt; ++ SEED_cbc_encrypt; ++ EVP_seed_ofb; ++ SEED_cfb128_encrypt; ++ SEED_ofb128_encrypt; ++ EVP_seed_cbc; ++ SEED_ecb_encrypt; ++ EVP_seed_ecb; ++ SEED_set_key; ++ EVP_seed_cfb128; ++ X509_EXTENSIONS_it; ++ X509_EXTENSIONS_it; ++ X509_get1_ocsp; ++ OCSP_REQ_CTX_free; ++ i2d_X509_EXTENSIONS; ++ OCSP_sendreq_nbio; ++ OCSP_sendreq_new; ++ d2i_X509_EXTENSIONS; ++ X509_ALGORS_it; ++ X509_ALGORS_it; ++ X509_ALGOR_get0; ++ X509_ALGOR_set0; ++ AES_unwrap_key; ++ AES_wrap_key; ++ X509at_get0_data_by_OBJ; ++ ASN1_TYPE_set1; ++ ASN1_STRING_set0; ++ i2d_X509_ALGORS; ++ BIO_f_zlib; ++ COMP_zlib_cleanup; ++ d2i_X509_ALGORS; ++ CMS_ReceiptRequest_free; ++ PEM_write_CMS; ++ CMS_add0_CertificateChoices; ++ CMS_unsigned_add1_attr_by_OBJ; ++ ERR_load_CMS_strings; ++ CMS_sign_receipt; ++ i2d_CMS_ContentInfo; ++ CMS_signed_delete_attr; ++ d2i_CMS_bio; ++ CMS_unsigned_get_attr_by_NID; ++ CMS_verify; ++ SMIME_read_CMS; ++ CMS_decrypt_set1_key; ++ CMS_SignerInfo_get0_algs; ++ CMS_add1_cert; ++ CMS_set_detached; ++ CMS_encrypt; ++ CMS_EnvelopedData_create; ++ CMS_uncompress; ++ CMS_add0_crl; ++ CMS_SignerInfo_verify_content; ++ CMS_unsigned_get0_data_by_OBJ; ++ PEM_write_bio_CMS; ++ CMS_unsigned_get_attr; ++ CMS_RecipientInfo_ktri_cert_cmp; ++ CMS_RecipientInfo_ktri_get0_algs; ++ CMS_RecipInfo_ktri_get0_algs; ++ CMS_ContentInfo_free; ++ CMS_final; ++ CMS_add_simple_smimecap; ++ CMS_SignerInfo_verify; ++ CMS_data; ++ CMS_ContentInfo_it; ++ CMS_ContentInfo_it; ++ d2i_CMS_ReceiptRequest; ++ CMS_compress; ++ CMS_digest_create; ++ CMS_SignerInfo_cert_cmp; ++ CMS_SignerInfo_sign; ++ CMS_data_create; ++ i2d_CMS_bio; ++ CMS_EncryptedData_set1_key; ++ CMS_decrypt; ++ int_smime_write_ASN1; ++ CMS_unsigned_delete_attr; ++ CMS_unsigned_get_attr_count; ++ CMS_add_smimecap; ++ PEM_read_CMS; ++ CMS_signed_get_attr_by_OBJ; ++ d2i_CMS_ContentInfo; ++ CMS_add_standard_smimecap; ++ CMS_ContentInfo_new; ++ CMS_RecipientInfo_type; ++ CMS_get0_type; ++ CMS_is_detached; ++ CMS_sign; ++ CMS_signed_add1_attr; ++ CMS_unsigned_get_attr_by_OBJ; ++ SMIME_write_CMS; ++ CMS_EncryptedData_decrypt; ++ CMS_get0_RecipientInfos; ++ CMS_add0_RevocationInfoChoice; ++ CMS_decrypt_set1_pkey; ++ CMS_SignerInfo_set1_signer_cert; ++ CMS_get0_signers; ++ CMS_ReceiptRequest_get0_values; ++ CMS_signed_get0_data_by_OBJ; ++ CMS_get0_SignerInfos; ++ CMS_add0_cert; ++ CMS_EncryptedData_encrypt; ++ CMS_digest_verify; ++ CMS_set1_signers_certs; ++ CMS_signed_get_attr; ++ CMS_RecipientInfo_set0_key; ++ CMS_SignedData_init; ++ CMS_RecipientInfo_kekri_get0_id; ++ CMS_verify_receipt; ++ CMS_ReceiptRequest_it; ++ CMS_ReceiptRequest_it; ++ PEM_read_bio_CMS; ++ CMS_get1_crls; ++ CMS_add0_recipient_key; ++ SMIME_read_ASN1; ++ CMS_ReceiptRequest_new; ++ CMS_get0_content; ++ CMS_get1_ReceiptRequest; ++ CMS_signed_add1_attr_by_OBJ; ++ CMS_RecipientInfo_kekri_id_cmp; ++ CMS_add1_ReceiptRequest; ++ CMS_SignerInfo_get0_signer_id; ++ CMS_unsigned_add1_attr_by_NID; ++ CMS_unsigned_add1_attr; ++ CMS_signed_get_attr_by_NID; ++ CMS_get1_certs; ++ CMS_signed_add1_attr_by_NID; ++ CMS_unsigned_add1_attr_by_txt; ++ CMS_dataFinal; ++ CMS_RecipientInfo_ktri_get0_signer_id; ++ CMS_RecipInfo_ktri_get0_sigr_id; ++ i2d_CMS_ReceiptRequest; ++ CMS_add1_recipient_cert; ++ CMS_dataInit; ++ CMS_signed_add1_attr_by_txt; ++ CMS_RecipientInfo_decrypt; ++ CMS_signed_get_attr_count; ++ CMS_get0_eContentType; ++ CMS_set1_eContentType; ++ CMS_ReceiptRequest_create0; ++ CMS_add1_signer; ++ CMS_RecipientInfo_set0_pkey; ++ ENGINE_set_load_ssl_client_cert_function; ++ ENGINE_set_ld_ssl_clnt_cert_fn; ++ ENGINE_get_ssl_client_cert_function; ++ ENGINE_get_ssl_client_cert_fn; ++ ENGINE_load_ssl_client_cert; ++ ENGINE_load_capi; ++ OPENSSL_isservice; ++ FIPS_dsa_sig_decode; ++ EVP_CIPHER_CTX_clear_flags; ++ FIPS_rand_status; ++ FIPS_rand_set_key; ++ CRYPTO_set_mem_info_functions; ++ RSA_X931_generate_key_ex; ++ int_ERR_set_state_func; ++ int_EVP_MD_set_engine_callbacks; ++ int_CRYPTO_set_do_dynlock_callback; ++ FIPS_rng_stick; ++ EVP_CIPHER_CTX_set_flags; ++ BN_X931_generate_prime_ex; ++ FIPS_selftest_check; ++ FIPS_rand_set_dt; ++ CRYPTO_dbg_pop_info; ++ FIPS_dsa_free; ++ RSA_X931_derive_ex; ++ FIPS_rsa_new; ++ FIPS_rand_bytes; ++ fips_cipher_test; ++ EVP_CIPHER_CTX_test_flags; ++ CRYPTO_malloc_debug_init; ++ CRYPTO_dbg_push_info; ++ FIPS_corrupt_rsa_keygen; ++ FIPS_dh_new; ++ FIPS_corrupt_dsa_keygen; ++ FIPS_dh_free; ++ fips_pkey_signature_test; ++ EVP_add_alg_module; ++ int_RAND_init_engine_callbacks; ++ int_EVP_CIPHER_set_engine_callbacks; ++ int_EVP_MD_init_engine_callbacks; ++ FIPS_rand_test_mode; ++ FIPS_rand_reset; ++ FIPS_dsa_new; ++ int_RAND_set_callbacks; ++ BN_X931_derive_prime_ex; ++ int_ERR_lib_init; ++ int_EVP_CIPHER_init_engine_callbacks; ++ FIPS_rsa_free; ++ FIPS_dsa_sig_encode; ++ CRYPTO_dbg_remove_all_info; ++ OPENSSL_init; ++ private_Camellia_set_key; ++ CRYPTO_strdup; ++ JPAKE_STEP3A_process; ++ JPAKE_STEP1_release; ++ JPAKE_get_shared_key; ++ JPAKE_STEP3B_init; ++ JPAKE_STEP1_generate; ++ JPAKE_STEP1_init; ++ JPAKE_STEP3B_process; ++ JPAKE_STEP2_generate; ++ JPAKE_CTX_new; ++ JPAKE_CTX_free; ++ JPAKE_STEP3B_release; ++ JPAKE_STEP3A_release; ++ JPAKE_STEP2_process; ++ JPAKE_STEP3B_generate; ++ JPAKE_STEP1_process; ++ JPAKE_STEP3A_generate; ++ JPAKE_STEP2_release; ++ JPAKE_STEP3A_init; ++ ERR_load_JPAKE_strings; ++ JPAKE_STEP2_init; ++ pqueue_size; ++ i2d_TS_ACCURACY; ++ i2d_TS_MSG_IMPRINT_fp; ++ i2d_TS_MSG_IMPRINT; ++ EVP_PKEY_print_public; ++ EVP_PKEY_CTX_new; ++ i2d_TS_TST_INFO; ++ EVP_PKEY_asn1_find; ++ DSO_METHOD_beos; ++ TS_CONF_load_cert; ++ TS_REQ_get_ext; ++ EVP_PKEY_sign_init; ++ ASN1_item_print; ++ TS_TST_INFO_set_nonce; ++ TS_RESP_dup; ++ ENGINE_register_pkey_meths; ++ EVP_PKEY_asn1_add0; ++ PKCS7_add0_attrib_signing_time; ++ i2d_TS_TST_INFO_fp; ++ BIO_asn1_get_prefix; ++ TS_TST_INFO_set_time; ++ EVP_PKEY_meth_set_decrypt; ++ EVP_PKEY_set_type_str; ++ EVP_PKEY_CTX_get_keygen_info; ++ TS_REQ_set_policy_id; ++ d2i_TS_RESP_fp; ++ ENGINE_get_pkey_asn1_meth_engine; ++ ENGINE_get_pkey_asn1_meth_eng; ++ WHIRLPOOL_Init; ++ TS_RESP_set_status_info; ++ EVP_PKEY_keygen; ++ EVP_DigestSignInit; ++ TS_ACCURACY_set_millis; ++ TS_REQ_dup; ++ GENERAL_NAME_dup; ++ ASN1_SEQUENCE_ANY_it; ++ ASN1_SEQUENCE_ANY_it; ++ WHIRLPOOL; ++ X509_STORE_get1_crls; ++ ENGINE_get_pkey_asn1_meth; ++ EVP_PKEY_asn1_new; ++ BIO_new_NDEF; ++ ENGINE_get_pkey_meth; ++ TS_MSG_IMPRINT_set_algo; ++ i2d_TS_TST_INFO_bio; ++ TS_TST_INFO_set_ordering; ++ TS_TST_INFO_get_ext_by_OBJ; ++ CRYPTO_THREADID_set_pointer; ++ TS_CONF_get_tsa_section; ++ SMIME_write_ASN1; ++ TS_RESP_CTX_set_signer_key; ++ EVP_PKEY_encrypt_old; ++ EVP_PKEY_encrypt_init; ++ CRYPTO_THREADID_cpy; ++ ASN1_PCTX_get_cert_flags; ++ i2d_ESS_SIGNING_CERT; ++ TS_CONF_load_key; ++ i2d_ASN1_SEQUENCE_ANY; ++ d2i_TS_MSG_IMPRINT_bio; ++ EVP_PKEY_asn1_set_public; ++ b2i_PublicKey_bio; ++ BIO_asn1_set_prefix; ++ EVP_PKEY_new_mac_key; ++ BIO_new_CMS; ++ CRYPTO_THREADID_cmp; ++ TS_REQ_ext_free; ++ EVP_PKEY_asn1_set_free; ++ EVP_PKEY_get0_asn1; ++ d2i_NETSCAPE_X509; ++ EVP_PKEY_verify_recover_init; ++ EVP_PKEY_CTX_set_data; ++ EVP_PKEY_keygen_init; ++ TS_RESP_CTX_set_status_info; ++ TS_MSG_IMPRINT_get_algo; ++ TS_REQ_print_bio; ++ EVP_PKEY_CTX_ctrl_str; ++ EVP_PKEY_get_default_digest_nid; ++ PEM_write_bio_PKCS7_stream; ++ TS_MSG_IMPRINT_print_bio; ++ BN_asc2bn; ++ TS_REQ_get_policy_id; ++ ENGINE_set_default_pkey_asn1_meths; ++ ENGINE_set_def_pkey_asn1_meths; ++ d2i_TS_ACCURACY; ++ DSO_global_lookup; ++ TS_CONF_set_tsa_name; ++ i2d_ASN1_SET_ANY; ++ ENGINE_load_gost; ++ WHIRLPOOL_BitUpdate; ++ ASN1_PCTX_get_flags; ++ TS_TST_INFO_get_ext_by_NID; ++ TS_RESP_new; ++ ESS_CERT_ID_dup; ++ TS_STATUS_INFO_dup; ++ TS_REQ_delete_ext; ++ EVP_DigestVerifyFinal; ++ EVP_PKEY_print_params; ++ i2d_CMS_bio_stream; ++ TS_REQ_get_msg_imprint; ++ OBJ_find_sigid_by_algs; ++ TS_TST_INFO_get_serial; ++ TS_REQ_get_nonce; ++ X509_PUBKEY_set0_param; ++ EVP_PKEY_CTX_set0_keygen_info; ++ DIST_POINT_set_dpname; ++ i2d_ISSUING_DIST_POINT; ++ ASN1_SET_ANY_it; ++ ASN1_SET_ANY_it; ++ EVP_PKEY_CTX_get_data; ++ TS_STATUS_INFO_print_bio; ++ EVP_PKEY_derive_init; ++ d2i_TS_TST_INFO; ++ EVP_PKEY_asn1_add_alias; ++ d2i_TS_RESP_bio; ++ OTHERNAME_cmp; ++ GENERAL_NAME_set0_value; ++ PKCS7_RECIP_INFO_get0_alg; ++ TS_RESP_CTX_new; ++ TS_RESP_set_tst_info; ++ PKCS7_final; ++ EVP_PKEY_base_id; ++ TS_RESP_CTX_set_signer_cert; ++ TS_REQ_set_msg_imprint; ++ EVP_PKEY_CTX_ctrl; ++ TS_CONF_set_digests; ++ d2i_TS_MSG_IMPRINT; ++ EVP_PKEY_meth_set_ctrl; ++ TS_REQ_get_ext_by_NID; ++ PKCS5_pbe_set0_algor; ++ BN_BLINDING_thread_id; ++ TS_ACCURACY_new; ++ X509_CRL_METHOD_free; ++ ASN1_PCTX_get_nm_flags; ++ EVP_PKEY_meth_set_sign; ++ CRYPTO_THREADID_current; ++ EVP_PKEY_decrypt_init; ++ NETSCAPE_X509_free; ++ i2b_PVK_bio; ++ EVP_PKEY_print_private; ++ GENERAL_NAME_get0_value; ++ b2i_PVK_bio; ++ ASN1_UTCTIME_adj; ++ TS_TST_INFO_new; ++ EVP_MD_do_all_sorted; ++ TS_CONF_set_default_engine; ++ TS_ACCURACY_set_seconds; ++ TS_TST_INFO_get_time; ++ PKCS8_pkey_get0; ++ EVP_PKEY_asn1_get0; ++ OBJ_add_sigid; ++ PKCS7_SIGNER_INFO_sign; ++ EVP_PKEY_paramgen_init; ++ EVP_PKEY_sign; ++ OBJ_sigid_free; ++ EVP_PKEY_meth_set_init; ++ d2i_ESS_ISSUER_SERIAL; ++ ISSUING_DIST_POINT_new; ++ ASN1_TIME_adj; ++ TS_OBJ_print_bio; ++ EVP_PKEY_meth_set_verify_recover; ++ EVP_PKEY_meth_set_vrfy_recover; ++ TS_RESP_get_status_info; ++ CMS_stream; ++ EVP_PKEY_CTX_set_cb; ++ PKCS7_to_TS_TST_INFO; ++ ASN1_PCTX_get_oid_flags; ++ TS_TST_INFO_add_ext; ++ EVP_PKEY_meth_set_derive; ++ i2d_TS_RESP_fp; ++ i2d_TS_MSG_IMPRINT_bio; ++ TS_RESP_CTX_set_accuracy; ++ TS_REQ_set_nonce; ++ ESS_CERT_ID_new; ++ ENGINE_pkey_asn1_find_str; ++ TS_REQ_get_ext_count; ++ BUF_reverse; ++ TS_TST_INFO_print_bio; ++ d2i_ISSUING_DIST_POINT; ++ ENGINE_get_pkey_meths; ++ i2b_PrivateKey_bio; ++ i2d_TS_RESP; ++ b2i_PublicKey; ++ TS_VERIFY_CTX_cleanup; ++ TS_STATUS_INFO_free; ++ TS_RESP_verify_token; ++ OBJ_bsearch_ex_; ++ ASN1_bn_print; ++ EVP_PKEY_asn1_get_count; ++ ENGINE_register_pkey_asn1_meths; ++ ASN1_PCTX_set_nm_flags; ++ EVP_DigestVerifyInit; ++ ENGINE_set_default_pkey_meths; ++ TS_TST_INFO_get_policy_id; ++ TS_REQ_get_cert_req; ++ X509_CRL_set_meth_data; ++ PKCS8_pkey_set0; ++ ASN1_STRING_copy; ++ d2i_TS_TST_INFO_fp; ++ X509_CRL_match; ++ EVP_PKEY_asn1_set_private; ++ TS_TST_INFO_get_ext_d2i; ++ TS_RESP_CTX_add_policy; ++ d2i_TS_RESP; ++ TS_CONF_load_certs; ++ TS_TST_INFO_get_msg_imprint; ++ ERR_load_TS_strings; ++ TS_TST_INFO_get_version; ++ EVP_PKEY_CTX_dup; ++ EVP_PKEY_meth_set_verify; ++ i2b_PublicKey_bio; ++ TS_CONF_set_certs; ++ EVP_PKEY_asn1_get0_info; ++ TS_VERIFY_CTX_free; ++ TS_REQ_get_ext_by_critical; ++ TS_RESP_CTX_set_serial_cb; ++ X509_CRL_get_meth_data; ++ TS_RESP_CTX_set_time_cb; ++ TS_MSG_IMPRINT_get_msg; ++ TS_TST_INFO_ext_free; ++ TS_REQ_get_version; ++ TS_REQ_add_ext; ++ EVP_PKEY_CTX_set_app_data; ++ OBJ_bsearch_; ++ EVP_PKEY_meth_set_verifyctx; ++ i2d_PKCS7_bio_stream; ++ CRYPTO_THREADID_set_numeric; ++ PKCS7_sign_add_signer; ++ d2i_TS_TST_INFO_bio; ++ TS_TST_INFO_get_ordering; ++ TS_RESP_print_bio; ++ TS_TST_INFO_get_exts; ++ HMAC_CTX_copy; ++ PKCS5_pbe2_set_iv; ++ ENGINE_get_pkey_asn1_meths; ++ b2i_PrivateKey; ++ EVP_PKEY_CTX_get_app_data; ++ TS_REQ_set_cert_req; ++ CRYPTO_THREADID_set_callback; ++ TS_CONF_set_serial; ++ TS_TST_INFO_free; ++ d2i_TS_REQ_fp; ++ TS_RESP_verify_response; ++ i2d_ESS_ISSUER_SERIAL; ++ TS_ACCURACY_get_seconds; ++ EVP_CIPHER_do_all; ++ b2i_PrivateKey_bio; ++ OCSP_CERTID_dup; ++ X509_PUBKEY_get0_param; ++ TS_MSG_IMPRINT_dup; ++ PKCS7_print_ctx; ++ i2d_TS_REQ_bio; ++ EVP_whirlpool; ++ EVP_PKEY_asn1_set_param; ++ EVP_PKEY_meth_set_encrypt; ++ ASN1_PCTX_set_flags; ++ i2d_ESS_CERT_ID; ++ TS_VERIFY_CTX_new; ++ TS_RESP_CTX_set_extension_cb; ++ ENGINE_register_all_pkey_meths; ++ TS_RESP_CTX_set_status_info_cond; ++ TS_RESP_CTX_set_stat_info_cond; ++ EVP_PKEY_verify; ++ WHIRLPOOL_Final; ++ X509_CRL_METHOD_new; ++ EVP_DigestSignFinal; ++ TS_RESP_CTX_set_def_policy; ++ NETSCAPE_X509_it; ++ NETSCAPE_X509_it; ++ TS_RESP_create_response; ++ PKCS7_SIGNER_INFO_get0_algs; ++ TS_TST_INFO_get_nonce; ++ EVP_PKEY_decrypt_old; ++ TS_TST_INFO_set_policy_id; ++ TS_CONF_set_ess_cert_id_chain; ++ EVP_PKEY_CTX_get0_pkey; ++ d2i_TS_REQ; ++ EVP_PKEY_asn1_find_str; ++ BIO_f_asn1; ++ ESS_SIGNING_CERT_new; ++ EVP_PBE_find; ++ X509_CRL_get0_by_cert; ++ EVP_PKEY_derive; ++ i2d_TS_REQ; ++ TS_TST_INFO_delete_ext; ++ ESS_ISSUER_SERIAL_free; ++ ASN1_PCTX_set_str_flags; ++ ENGINE_get_pkey_asn1_meth_str; ++ TS_CONF_set_signer_key; ++ TS_ACCURACY_get_millis; ++ TS_RESP_get_token; ++ TS_ACCURACY_dup; ++ ENGINE_register_all_pkey_asn1_meths; ++ ENGINE_reg_all_pkey_asn1_meths; ++ X509_CRL_set_default_method; ++ CRYPTO_THREADID_hash; ++ CMS_ContentInfo_print_ctx; ++ TS_RESP_free; ++ ISSUING_DIST_POINT_free; ++ ESS_ISSUER_SERIAL_new; ++ CMS_add1_crl; ++ PKCS7_add1_attrib_digest; ++ TS_RESP_CTX_add_md; ++ TS_TST_INFO_dup; ++ ENGINE_set_pkey_asn1_meths; ++ PEM_write_bio_Parameters; ++ TS_TST_INFO_get_accuracy; ++ X509_CRL_get0_by_serial; ++ TS_TST_INFO_set_version; ++ TS_RESP_CTX_get_tst_info; ++ TS_RESP_verify_signature; ++ CRYPTO_THREADID_get_callback; ++ TS_TST_INFO_get_tsa; ++ TS_STATUS_INFO_new; ++ EVP_PKEY_CTX_get_cb; ++ TS_REQ_get_ext_d2i; ++ GENERAL_NAME_set0_othername; ++ TS_TST_INFO_get_ext_count; ++ TS_RESP_CTX_get_request; ++ i2d_NETSCAPE_X509; ++ ENGINE_get_pkey_meth_engine; ++ EVP_PKEY_meth_set_signctx; ++ EVP_PKEY_asn1_copy; ++ ASN1_TYPE_cmp; ++ EVP_CIPHER_do_all_sorted; ++ EVP_PKEY_CTX_free; ++ ISSUING_DIST_POINT_it; ++ ISSUING_DIST_POINT_it; ++ d2i_TS_MSG_IMPRINT_fp; ++ X509_STORE_get1_certs; ++ EVP_PKEY_CTX_get_operation; ++ d2i_ESS_SIGNING_CERT; ++ TS_CONF_set_ordering; ++ EVP_PBE_alg_add_type; ++ TS_REQ_set_version; ++ EVP_PKEY_get0; ++ BIO_asn1_set_suffix; ++ i2d_TS_STATUS_INFO; ++ EVP_MD_do_all; ++ TS_TST_INFO_set_accuracy; ++ PKCS7_add_attrib_content_type; ++ ERR_remove_thread_state; ++ EVP_PKEY_meth_add0; ++ TS_TST_INFO_set_tsa; ++ EVP_PKEY_meth_new; ++ WHIRLPOOL_Update; ++ TS_CONF_set_accuracy; ++ ASN1_PCTX_set_oid_flags; ++ ESS_SIGNING_CERT_dup; ++ d2i_TS_REQ_bio; ++ X509_time_adj_ex; ++ TS_RESP_CTX_add_flags; ++ d2i_TS_STATUS_INFO; ++ TS_MSG_IMPRINT_set_msg; ++ BIO_asn1_get_suffix; ++ TS_REQ_free; ++ EVP_PKEY_meth_free; ++ TS_REQ_get_exts; ++ TS_RESP_CTX_set_clock_precision_digits; ++ TS_RESP_CTX_set_clk_prec_digits; ++ TS_RESP_CTX_add_failure_info; ++ i2d_TS_RESP_bio; ++ EVP_PKEY_CTX_get0_peerkey; ++ PEM_write_bio_CMS_stream; ++ TS_REQ_new; ++ TS_MSG_IMPRINT_new; ++ EVP_PKEY_meth_find; ++ EVP_PKEY_id; ++ TS_TST_INFO_set_serial; ++ a2i_GENERAL_NAME; ++ TS_CONF_set_crypto_device; ++ EVP_PKEY_verify_init; ++ TS_CONF_set_policies; ++ ASN1_PCTX_new; ++ ESS_CERT_ID_free; ++ ENGINE_unregister_pkey_meths; ++ TS_MSG_IMPRINT_free; ++ TS_VERIFY_CTX_init; ++ PKCS7_stream; ++ TS_RESP_CTX_set_certs; ++ TS_CONF_set_def_policy; ++ ASN1_GENERALIZEDTIME_adj; ++ NETSCAPE_X509_new; ++ TS_ACCURACY_free; ++ TS_RESP_get_tst_info; ++ EVP_PKEY_derive_set_peer; ++ PEM_read_bio_Parameters; ++ TS_CONF_set_clock_precision_digits; ++ TS_CONF_set_clk_prec_digits; ++ ESS_ISSUER_SERIAL_dup; ++ TS_ACCURACY_get_micros; ++ ASN1_PCTX_get_str_flags; ++ NAME_CONSTRAINTS_check; ++ ASN1_BIT_STRING_check; ++ X509_check_akid; ++ ENGINE_unregister_pkey_asn1_meths; ++ ENGINE_unreg_pkey_asn1_meths; ++ ASN1_PCTX_free; ++ PEM_write_bio_ASN1_stream; ++ i2d_ASN1_bio_stream; ++ TS_X509_ALGOR_print_bio; ++ EVP_PKEY_meth_set_cleanup; ++ EVP_PKEY_asn1_free; ++ ESS_SIGNING_CERT_free; ++ TS_TST_INFO_set_msg_imprint; ++ GENERAL_NAME_cmp; ++ d2i_ASN1_SET_ANY; ++ ENGINE_set_pkey_meths; ++ i2d_TS_REQ_fp; ++ d2i_ASN1_SEQUENCE_ANY; ++ GENERAL_NAME_get0_otherName; ++ d2i_ESS_CERT_ID; ++ OBJ_find_sigid_algs; ++ EVP_PKEY_meth_set_keygen; ++ PKCS5_PBKDF2_HMAC; ++ EVP_PKEY_paramgen; ++ EVP_PKEY_meth_set_paramgen; ++ BIO_new_PKCS7; ++ EVP_PKEY_verify_recover; ++ TS_ext_print_bio; ++ TS_ASN1_INTEGER_print_bio; ++ check_defer; ++ DSO_pathbyaddr; ++ EVP_PKEY_set_type; ++ TS_ACCURACY_set_micros; ++ TS_REQ_to_TS_VERIFY_CTX; ++ EVP_PKEY_meth_set_copy; ++ ASN1_PCTX_set_cert_flags; ++ TS_TST_INFO_get_ext; ++ EVP_PKEY_asn1_set_ctrl; ++ TS_TST_INFO_get_ext_by_critical; ++ EVP_PKEY_CTX_new_id; ++ TS_REQ_get_ext_by_OBJ; ++ TS_CONF_set_signer_cert; ++ X509_NAME_hash_old; ++ ASN1_TIME_set_string; ++ EVP_MD_flags; ++ TS_RESP_CTX_free; ++ DSAparams_dup; ++ DHparams_dup; ++ OCSP_REQ_CTX_add1_header; ++ OCSP_REQ_CTX_set1_req; ++ X509_STORE_set_verify_cb; ++ X509_STORE_CTX_get0_current_crl; ++ X509_STORE_CTX_get0_parent_ctx; ++ X509_STORE_CTX_get0_current_issuer; ++ X509_STORE_CTX_get0_cur_issuer; ++ X509_issuer_name_hash_old; ++ X509_subject_name_hash_old; ++ EVP_CIPHER_CTX_copy; ++ UI_method_get_prompt_constructor; ++ UI_method_get_prompt_constructr; ++ UI_method_set_prompt_constructor; ++ UI_method_set_prompt_constructr; ++ EVP_read_pw_string_min; ++ CRYPTO_cts128_encrypt; ++ CRYPTO_cts128_decrypt_block; ++ CRYPTO_cfb128_1_encrypt; ++ CRYPTO_cbc128_encrypt; ++ CRYPTO_ctr128_encrypt; ++ CRYPTO_ofb128_encrypt; ++ CRYPTO_cts128_decrypt; ++ CRYPTO_cts128_encrypt_block; ++ CRYPTO_cbc128_decrypt; ++ CRYPTO_cfb128_encrypt; ++ CRYPTO_cfb128_8_encrypt; ++ ++ local: ++ *; ++}; ++ +Index: openssl-1.0.0e/engines/openssl.ld +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ openssl-1.0.0e/engines/openssl.ld 2011-10-04 22:49:53.295407572 -0700 +@@ -0,0 +1,10 @@ ++OPENSSL_1.0.0 { ++ global: ++ bind_engine; ++ v_check; ++ OPENSSL_init; ++ OPENSSL_finish; ++ local: ++ *; ++}; ++ +Index: openssl-1.0.0e/engines/ccgost/openssl.ld +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ openssl-1.0.0e/engines/ccgost/openssl.ld 2011-10-04 22:49:53.339407745 -0700 +@@ -0,0 +1,10 @@ ++OPENSSL_1.0.0 { ++ global: ++ bind_engine; ++ v_check; ++ OPENSSL_init; ++ OPENSSL_finish; ++ local: ++ *; ++}; ++ diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/engines-install-in-libdir-ssl.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/engines-install-in-libdir-ssl.patch new file mode 100644 index 000000000..d8a6f1a23 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/engines-install-in-libdir-ssl.patch @@ -0,0 +1,56 @@ +Upstream-Status: Inappropriate [configuration] + + +Index: openssl-1.0.0/engines/Makefile +=================================================================== +--- openssl-1.0.0.orig/engines/Makefile ++++ openssl-1.0.0/engines/Makefile +@@ -107,7 +107,7 @@ + @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... + @if [ -n "$(SHARED_LIBS)" ]; then \ + set -e; \ +- $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines; \ ++ $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines; \ + for l in $(LIBNAMES); do \ + ( echo installing $$l; \ + pfx=lib; \ +@@ -119,13 +119,13 @@ + *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ + *) sfx=".bad";; \ + esac; \ +- cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ ++ cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ + else \ + sfx=".so"; \ +- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ ++ cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ + fi; \ +- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ +- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ ++ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ ++ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx ); \ + done; \ + fi + @target=install; $(RECURSIVE_MAKE) +Index: openssl-1.0.0/engines/ccgost/Makefile +=================================================================== +--- openssl-1.0.0.orig/engines/ccgost/Makefile ++++ openssl-1.0.0/engines/ccgost/Makefile +@@ -53,13 +53,13 @@ + *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ + *) sfx=".bad";; \ + esac; \ +- cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ ++ cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ + else \ + sfx=".so"; \ +- cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ ++ cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ + fi; \ +- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ +- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx; \ ++ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ ++ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx; \ + fi + + links: diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/oe-ldflags.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/oe-ldflags.patch new file mode 100644 index 000000000..292e13dc5 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/oe-ldflags.patch @@ -0,0 +1,24 @@ +Upstream-Status: Inappropriate [open-embedded] + +Index: openssl-1.0.0/Makefile.shared +=================================================================== +--- openssl-1.0.0.orig/Makefile.shared ++++ openssl-1.0.0/Makefile.shared +@@ -92,7 +92,7 @@ + LINK_APP= \ + ( $(SET_X); \ + LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ +- LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ ++ LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$(OE_LDFLAGS) $${LDFLAGS:-$(CFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ +@@ -102,7 +102,7 @@ + ( $(SET_X); \ + LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ + SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \ +- SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ ++ SHAREDFLAGS="$(OE_LDFLAGS) $${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/openssl-fix-link.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/openssl-fix-link.patch new file mode 100644 index 000000000..154106cbc --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/openssl-fix-link.patch @@ -0,0 +1,35 @@ +From aabfb6f78af8e337d3239142117ba303fce55e7e Mon Sep 17 00:00:00 2001 +From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +Date: Thu, 22 Sep 2011 08:55:26 +0200 +Subject: [PATCH] fix the parallel build regarding shared libraries. + +Upstream-Status: Pending +--- + .../openssl-1.0.0e/Makefile.org | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile.org +index 3c7aea1..6326cd6 100644 +--- a/Makefile.org ++++ b/Makefile.org +@@ -243,13 +243,13 @@ build_libs: build_crypto build_ssl build_engines + + build_crypto: + @dir=crypto; target=all; $(BUILD_ONE_CMD) +-build_ssl: ++build_ssl: build_crypto + @dir=ssl; target=all; $(BUILD_ONE_CMD) +-build_engines: ++build_engines: build_crypto + @dir=engines; target=all; $(BUILD_ONE_CMD) +-build_apps: ++build_apps: build_crypto build_ssl + @dir=apps; target=all; $(BUILD_ONE_CMD) +-build_tests: ++build_tests: build_crypto build_ssl + @dir=test; target=all; $(BUILD_ONE_CMD) + build_tools: + @dir=tools; target=all; $(BUILD_ONE_CMD) +-- +1.6.6.1 + diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/openssl_fix_for_x32.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/openssl_fix_for_x32.patch new file mode 100644 index 000000000..3191ce963 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/openssl_fix_for_x32.patch @@ -0,0 +1,90 @@ +Upstream-Status: Pending + +Received from H J Liu @ Intel +Make the assembly syntax compatible with x32 gcc. Othewise x32 gcc throws errors. +Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/07/13 + +ported the patch to the 1.0.0e version +Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/01 +Index: openssl-1.0.0e/Configure +=================================================================== +--- openssl-1.0.0e.orig/Configure ++++ openssl-1.0.0e/Configure +@@ -393,6 +393,7 @@ my %table=( + "linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", ++"linux-x32", "gcc:-mx32 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32", + "linux-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", + #### SPARC Linux setups + # Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently +Index: openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c +=================================================================== +--- openssl-1.0.0e.orig/crypto/bn/asm/x86_64-gcc.c ++++ openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c +@@ -55,7 +55,7 @@ + * machine. + */ + +-#ifdef _WIN64 ++#if defined _WIN64 || !defined __LP64__ + #define BN_ULONG unsigned long long + #else + #define BN_ULONG unsigned long +@@ -192,9 +192,9 @@ BN_ULONG bn_add_words (BN_ULONG *rp, con + asm ( + " subq %2,%2 \n" + ".p2align 4 \n" +- "1: movq (%4,%2,8),%0 \n" +- " adcq (%5,%2,8),%0 \n" +- " movq %0,(%3,%2,8) \n" ++ "1: movq (%q4,%2,8),%0 \n" ++ " adcq (%q5,%2,8),%0 \n" ++ " movq %0,(%q3,%2,8) \n" + " leaq 1(%2),%2 \n" + " loop 1b \n" + " sbbq %0,%0 \n" +@@ -215,9 +215,9 @@ BN_ULONG bn_sub_words (BN_ULONG *rp, con + asm ( + " subq %2,%2 \n" + ".p2align 4 \n" +- "1: movq (%4,%2,8),%0 \n" +- " sbbq (%5,%2,8),%0 \n" +- " movq %0,(%3,%2,8) \n" ++ "1: movq (%q4,%2,8),%0 \n" ++ " sbbq (%q5,%2,8),%0 \n" ++ " movq %0,(%q3,%2,8) \n" + " leaq 1(%2),%2 \n" + " loop 1b \n" + " sbbq %0,%0 \n" +Index: openssl-1.0.0e/crypto/bn/bn.h +=================================================================== +--- openssl-1.0.0e.orig/crypto/bn/bn.h ++++ openssl-1.0.0e/crypto/bn/bn.h +@@ -172,6 +172,13 @@ extern "C" { + # endif + #endif + ++/* Address type. */ ++#ifdef _WIN64 ++#define BN_ADDR unsigned long long ++#else ++#define BN_ADDR unsigned long ++#endif ++ + /* assuming long is 64bit - this is the DEC Alpha + * unsigned long long is only 64 bits :-(, don't define + * BN_LLONG for the DEC Alpha */ +Index: openssl-1.0.0e/crypto/bn/bn_exp.c +=================================================================== +--- openssl-1.0.0e.orig/crypto/bn/bn_exp.c ++++ openssl-1.0.0e/crypto/bn/bn_exp.c +@@ -561,7 +561,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBU + + /* Given a pointer value, compute the next address that is a cache line multiple. */ + #define MOD_EXP_CTIME_ALIGN(x_) \ +- ((unsigned char*)(x_) + (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - (((BN_ULONG)(x_)) & (MOD_EXP_CTIME_MIN_CACHE_LINE_MASK)))) ++ ((unsigned char*)(x_) + (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - (((BN_ADDR)(x_)) & (MOD_EXP_CTIME_MIN_CACHE_LINE_MASK)))) + + /* This variant of BN_mod_exp_mont() uses fixed windows and the special + * precomputation memory layout to limit data-dependency to a minimum diff --git a/meta/recipes-connectivity/openssl/openssl-1.0.0i/shared-libs.patch b/meta/recipes-connectivity/openssl/openssl-1.0.0i/shared-libs.patch new file mode 100644 index 000000000..09986731a --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl-1.0.0i/shared-libs.patch @@ -0,0 +1,50 @@ +Upstream-Status: Inappropriate [configuration] + +Index: openssl-1.0.0/crypto/Makefile +=================================================================== +--- openssl-1.0.0.orig/crypto/Makefile ++++ openssl-1.0.0/crypto/Makefile +@@ -104,7 +104,7 @@ + + shared: buildinf.h lib subdirs + if [ -n "$(SHARED_LIBS)" ]; then \ +- (cd ..; $(MAKE) $(SHARED_LIB)); \ ++ (cd ..; $(MAKE) -e $(SHARED_LIB)); \ + fi + + libs: +Index: openssl-1.0.0/Makefile.org +=================================================================== +--- openssl-1.0.0.orig/Makefile.org ++++ openssl-1.0.0/Makefile.org +@@ -260,7 +260,7 @@ + + libcrypto$(SHLIB_EXT): libcrypto.a + @if [ "$(SHLIB_TARGET)" != "" ]; then \ +- $(MAKE) SHLIBDIRS=crypto build-shared; \ ++ $(MAKE) -e SHLIBDIRS=crypto build-shared; \ + else \ + echo "There's no support for shared libraries on this platform" >&2; \ + exit 1; \ +@@ -268,7 +268,7 @@ + + libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a + @if [ "$(SHLIB_TARGET)" != "" ]; then \ +- $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ ++ $(MAKE) -e SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ + else \ + echo "There's no support for shared libraries on this platform" >&2; \ + exit 1; \ +Index: openssl-1.0.0/ssl/Makefile +=================================================================== +--- openssl-1.0.0.orig/ssl/Makefile ++++ openssl-1.0.0/ssl/Makefile +@@ -62,7 +62,7 @@ + + shared: lib + if [ -n "$(SHARED_LIBS)" ]; then \ +- (cd ..; $(MAKE) $(SHARED_LIB)); \ ++ (cd ..; $(MAKE) -e $(SHARED_LIB)); \ + fi + + files: diff --git a/meta/recipes-connectivity/openssl/openssl.inc b/meta/recipes-connectivity/openssl/openssl.inc new file mode 100644 index 000000000..089b9a488 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl.inc @@ -0,0 +1,150 @@ +SUMMARY = "Secure Socket Layer" +DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." +HOMEPAGE = "http://www.openssl.org/" +BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" +SECTION = "libs/network" + +# Big Jump for OpenSSL 1.0 support with meta-oe +INC_PR = "r15" + +# "openssl | SSLeay" dual license +LICENSE = "openssl" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a8f968107345e0b75aa8c2ecaa7ec8" + +DEPENDS = "perl-native-runtime" + +SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ + " +S = "${WORKDIR}/openssl-${PV}" + +AR_append = " r" +CFLAG = "${@base_conditional('SITEINFO_ENDIANNESS', 'le', '-DL_ENDIAN', '-DB_ENDIAN', d)} \ + -DTERMIO ${FULL_OPTIMIZATION} -Wall" + +# Avoid binaries being marked as requiring an executable stack (which causes +# issues with SELinux on the host) +CFLAG_append_virtclass-native = " -Wa,--noexecstack" + +# -02 does not work on mipsel: ssh hangs when it tries to read /dev/urandom +CFLAG_mtx-1 := "${@'${CFLAG}'.replace('-O2', '')}" +CFLAG_mtx-2 := "${@'${CFLAG}'.replace('-O2', '')}" + +export DIRS = "crypto ssl apps" +export EX_LIBS = "-lgcc -ldl" +export AS = "${CC} -c" + +inherit pkgconfig siteinfo + +PACKAGES =+ "libcrypto libssl ${PN}-misc" +FILES_libcrypto = "${base_libdir}/libcrypto${SOLIBS}" +FILES_libssl = "${libdir}/libssl.so.*" +FILES_${PN} =+ " ${libdir}/ssl/*" +FILES_${PN}-misc = "${libdir}/ssl/misc ${libdir}/ssl/openssl.cnf" +FILES_${PN}-dev += "${base_libdir}/libcrypto${SOLIBSDEV}" + +do_configure_prepend_darwin () { + sed -i -e '/version-script=openssl\.ld/d' Configure +} + +do_configure () { + cd util + perl perlpath.pl ${STAGING_BINDIR_NATIVE} + cd .. + ln -sf apps/openssl.pod crypto/crypto.pod ssl/ssl.pod doc/ + + os=${HOST_OS} + if [ "x$os" = "xlinux-uclibc" ]; then + os=linux + elif [ "x$os" = "xlinux-uclibceabi" ]; then + os=linux + elif [ "x$os" = "xlinux-gnueabi" ]; then + os=linux + fi + target="$os-${HOST_ARCH}" + case $target in + linux-arm) + target=linux-elf-arm + ;; + linux-armeb) + target=linux-elf-armeb + ;; + linux-sh3) + target=debian-sh3 + ;; + linux-sh4) + target=debian-sh4 + ;; + linux-i486) + target=debian-i386-i486 + ;; + linux-i586 | linux-viac3) + target=debian-i386-i586 + ;; + linux-i686) + target=debian-i386-i686/cmov + ;; + linux-gnux32-x86_64) + target=linux-x32 + ;; + linux-gnu64-x86_64) + target=linux-x86_64 + ;; + linux-mips) + target=debian-mips + ;; + linux-mipsel) + target=debian-mipsel + ;; + linux-powerpc) + target=linux-ppc + ;; + linux-gnuspe-powerpc) + target=linux-ppc + ;; + linux-powerpc64) + target=linux-ppc64 + ;; + linux-supersparc) + target=linux-sparcv8 + ;; + linux-sparc) + target=linux-sparcv8 + ;; + darwin-i386) + target=darwin-i386-cc + ;; + esac + # inject machine-specific flags + sed -i -e "s|^\(\"$target\",\s*\"[^:]\+\):\([^:]\+\)|\1:${CFLAG}|g" Configure + useprefix=${prefix} + if [ "x$useprefix" = "x" ]; then + useprefix=/ + fi + perl ./Configure ${EXTRA_OECONF} shared --prefix=$useprefix --openssldir=${libdir}/ssl --libdir=`basename ${libdir}` $target +} + +do_compile () { + oe_runmake +} + +do_install () { + oe_runmake INSTALL_PREFIX="${D}" MANDIR="${mandir}" install + + oe_libinstall -so libcrypto ${D}${libdir} + oe_libinstall -so libssl ${D}${libdir} + + # Moving libcrypto to /lib + if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then + mkdir -p ${D}/${base_libdir}/ + mv ${D}${libdir}/libcrypto* ${D}${base_libdir}/ + sed -i s#libdir=\$\{exec_prefix\}\/lib#libdir=${base_libdir}# ${D}/${libdir}/pkgconfig/libcrypto.pc + fi + + install -d ${D}${includedir} + cp --dereference -R include/openssl ${D}${includedir} + sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/ssl/misc/CA.pl + +} + +BBCLASSEXTEND = "native nativesdk" + diff --git a/meta/recipes-connectivity/openssl/openssl_1.0.0i.bb b/meta/recipes-connectivity/openssl/openssl_1.0.0i.bb new file mode 100644 index 000000000..ca15a3843 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl_1.0.0i.bb @@ -0,0 +1,45 @@ +require openssl.inc + +# For target side versions of openssl enable support for OCF Linux driver +# if they are available. +DEPENDS += "ocf-linux" + +CFLAG += "-DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS" + +PR = "${INC_PR}.2" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a8f968107345e0b75aa8c2ecaa7ec8" + +export DIRS = "crypto ssl apps engines" +export OE_LDFLAGS="${LDFLAGS}" + +SRC_URI += "file://configure-targets.patch \ + file://shared-libs.patch \ + file://oe-ldflags.patch \ + file://engines-install-in-libdir-ssl.patch \ + file://openssl-fix-link.patch \ + file://debian/version-script.patch \ + file://debian/pic.patch \ + file://debian/c_rehash-compat.patch \ + file://debian/ca.patch \ + file://debian/make-targets.patch \ + file://debian/no-rpath.patch \ + file://debian/man-dir.patch \ + file://debian/man-section.patch \ + file://debian/no-symbolic.patch \ + file://debian/debian-targets.patch \ + file://openssl_fix_for_x32.patch \ + " + +SRC_URI[md5sum] = "b4df9c11af454fd68178c85a1d5f328f" +SRC_URI[sha256sum] = "548262d15777c504be1ab9bb8fabef1e14a3de54837a6593c8f403dd843d5e57" + +PACKAGES =+ " \ + ${PN}-engines \ + ${PN}-engines-dbg \ + " + +FILES_${PN}-engines = "${libdir}/ssl/engines/*.so ${libdir}/engines" +FILES_${PN}-engines-dbg = "${libdir}/ssl/engines/.debug" + +PARALLEL_MAKEINST = "" diff --git a/meta/recipes-connectivity/portmap/portmap-6.0/destdir-no-strip.patch b/meta/recipes-connectivity/portmap/portmap-6.0/destdir-no-strip.patch new file mode 100644 index 000000000..2fbf784b7 --- /dev/null +++ b/meta/recipes-connectivity/portmap/portmap-6.0/destdir-no-strip.patch @@ -0,0 +1,46 @@ +Upstream-Status: Backport + +From: Mike Frysinger <vapier@gentoo.org> +Date: Sun, 13 May 2007 21:15:12 +0000 (-0400) +Subject: respect DESTDIR and dont use -s with install +X-Git-Url: http://neil.brown.name/git?p=portmap;a=commitdiff_plain;h=603c59b978c04df2354f68d4a2dc676a758ff46d + +respect DESTDIR and dont use -s with install + +$(DESTDIR) is the standard for installing into other trees, not $(BASEDIR) ... +so I've converted the Makefile to use that. I've also left in $(BASEDIR) as a +default to support old installs; not sure if you'd just cut it. + +Stripping should be left to the person to handle, not automatically done by +the install step. Also, `install -s` always calls `strip` which is +wrong/undesired in cross-compiling scenarios. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Signed-off-by: Neil Brown <neilb@suse.de> +--- + +diff --git a/Makefile b/Makefile +index 9e9a4b4..5343428 100644 +--- a/Makefile ++++ b/Makefile +@@ -135,13 +135,14 @@ from_local: CPPFLAGS += -DTEST + portmap.man : portmap.8 + sed $(MAN_SED) < portmap.8 > portmap.man + ++DESTDIR = $(BASEDIR) + install: all +- install -o root -g root -m 0755 -s portmap ${BASEDIR}/sbin +- install -o root -g root -m 0755 -s pmap_dump ${BASEDIR}/sbin +- install -o root -g root -m 0755 -s pmap_set ${BASEDIR}/sbin +- install -o root -g root -m 0644 portmap.man ${BASEDIR}/usr/share/man/man8/portmap.8 +- install -o root -g root -m 0644 pmap_dump.8 ${BASEDIR}/usr/share/man/man8 +- install -o root -g root -m 0644 pmap_set.8 ${BASEDIR}/usr/share/man/man8 ++ install -o root -g root -m 0755 portmap $(DESTDIR)/sbin ++ install -o root -g root -m 0755 pmap_dump $(DESTDIR)/sbin ++ install -o root -g root -m 0755 pmap_set $(DESTDIR)/sbin ++ install -o root -g root -m 0644 portmap.man $(DESTDIR)/usr/share/man/man8/portmap.8 ++ install -o root -g root -m 0644 pmap_dump.8 $(DESTDIR)/usr/share/man/man8 ++ install -o root -g root -m 0644 pmap_set.8 $(DESTDIR)/usr/share/man/man8 + + clean: + rm -f *.o portmap pmap_dump pmap_set from_local \ diff --git a/meta/recipes-connectivity/portmap/portmap-6.0/tcpd-config.patch b/meta/recipes-connectivity/portmap/portmap-6.0/tcpd-config.patch new file mode 100644 index 000000000..2f2505809 --- /dev/null +++ b/meta/recipes-connectivity/portmap/portmap-6.0/tcpd-config.patch @@ -0,0 +1,30 @@ +Upstream-Status: Backport + +From: Mike Frysinger <vapier@gentoo.org> +Date: Sun, 13 May 2007 21:17:32 +0000 (-0400) +Subject: fix building with tcpd support disabled +X-Git-Url: http://neil.brown.name/git?p=portmap;a=commitdiff_plain;h=7847207aed1b44faf077eed14a9ac9c68244eba5 + +fix building with tcpd support disabled + +Make sure pmap_check.c only includes tcpd.h when HOSTS_ACCESS is defined. + +Signed-off-by: Timothy Redaelli <drizzt@gentoo.org> +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Signed-off-by: Neil Brown <neilb@suse.de> +--- + +diff --git a/pmap_check.c b/pmap_check.c +index 84f2c12..443a822 100644 +--- a/pmap_check.c ++++ b/pmap_check.c +@@ -44,7 +44,9 @@ + #include <netinet/in.h> + #include <rpc/rpcent.h> + #endif ++#ifdef HOSTS_ACCESS + #include <tcpd.h> ++#endif + #include <arpa/inet.h> + #include <grp.h> + diff --git a/meta/recipes-connectivity/portmap/portmap.inc b/meta/recipes-connectivity/portmap/portmap.inc new file mode 100644 index 000000000..0dfa78caa --- /dev/null +++ b/meta/recipes-connectivity/portmap/portmap.inc @@ -0,0 +1,31 @@ +DESCRIPTION = "RPC program number mapper." +HOMEPAGE = "http://neil.brown.name/portmap/" +SECTION = "console/network" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://portmap.c;beginline=2;endline=31;md5=51ff67e66ec84b2009b017b1f94afbf4 \ + file://from_local.c;beginline=9;endline=35;md5=1bec938a2268b8b423c58801ace3adc1" +DEPENDS = "virtual/fakeroot-native" + +SRC_URI = "${DEBIAN_MIRROR}/main/p/portmap/portmap_5.orig.tar.gz \ + ${DEBIAN_MIRROR}/main/p/portmap/portmap_${PV}.diff.gz \ + file://portmap.init \ + file://make.patch;apply=yes" +S = "${WORKDIR}/portmap_5beta" + +INITSCRIPT_NAME = "portmap" +INITSCRIPT_PARAMS = "start 43 S . start 32 0 6 . stop 81 1 ." + +inherit update-rc.d + +sbindir = "/sbin" + +fakeroot do_install() { + install -d ${D}${sysconfdir}/init.d + install -d ${D}${base_sbindir} + install -m 0755 ${WORKDIR}/portmap.init ${D}${sysconfdir}/init.d/portmap + oe_runmake 'docdir=${docdir}/portmap' 'DESTDIR=${D}' install +} + +PACKAGES =+ "portmap-utils" +FILES_portmap-utils = "/sbin/pmap_set /sbin/pmap_dump" +FILES_${PN}-doc += "${docdir}" diff --git a/meta/recipes-connectivity/portmap/portmap/portmap.init b/meta/recipes-connectivity/portmap/portmap/portmap.init new file mode 100755 index 000000000..e46513e11 --- /dev/null +++ b/meta/recipes-connectivity/portmap/portmap/portmap.init @@ -0,0 +1,59 @@ +#!/bin/sh +# +### BEGIN INIT INFO +# Provides: portmap +# Required-Start: $network +# Required-Stop: $network +# Default-Start: S 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: The RPC portmapper +# Description: Portmap is a server that converts RPC (Remote +# Procedure Call) program numbers into DARPA +# protocol port numbers. It must be running in +# order to make RPC calls. Services that use +# RPC include NFS and NIS. +### END INIT INFO + +test -f /sbin/portmap || exit 0 + +case "$1" in + start) + echo "Starting portmap daemon..." + start-stop-daemon --start --quiet --exec /sbin/portmap + + if [ -f /var/run/portmap.upgrade-state ]; then + echo "Restoring old RPC service information..." + sleep 1 # needs a short pause or pmap_set won't work. :( + pmap_set </var/run/portmap.upgrade-state + rm -f /var/run/portmap.upgrade-state + echo "done." + fi + + ;; + stop) + echo "Stopping portmap daemon..." + start-stop-daemon --stop --quiet --exec /sbin/portmap + ;; + reload) + ;; + force-reload) + $0 restart + ;; + restart) + pmap_dump >/var/run/portmap.state + $0 stop + $0 start + if [ ! -f /var/run/portmap.upgrade-state ]; then + sleep 1 + pmap_set </var/run/portmap.state + fi + rm -f /var/run/portmap.state + ;; + *) + echo "Usage: /etc/init.d/portmap {start|stop|reload|restart}" + exit 1 + ;; +esac + +exit 0 + diff --git a/meta/recipes-connectivity/portmap/portmap_6.0.bb b/meta/recipes-connectivity/portmap/portmap_6.0.bb new file mode 100644 index 000000000..07aa3601f --- /dev/null +++ b/meta/recipes-connectivity/portmap/portmap_6.0.bb @@ -0,0 +1,23 @@ +require portmap.inc + +DEPENDS += "tcp-wrappers" +PR = "r7" + +SRC_URI = "http://www.sourcefiles.org/Networking/Tools/Miscellanenous/portmap-6.0.tgz \ + file://destdir-no-strip.patch \ + file://tcpd-config.patch \ + file://portmap.init" + +SRC_URI[md5sum] = "ac108ab68bf0f34477f8317791aaf1ff" +SRC_URI[sha256sum] = "02c820d39f3e6e729d1bea3287a2d8a6c684f1006fb9612f97dcad4a281d41de" + +S = "${WORKDIR}/${BPN}_${PV}/" + +CPPFLAGS += "-DFACILITY=LOG_DAEMON -DENABLE_DNS -DHOSTS_ACCESS" +CFLAGS += "-Wall -Wstrict-prototypes -fPIC" + +fakeroot do_install() { + install -d ${D}${mandir}/man8/ ${D}${base_sbindir} ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/portmap.init ${D}${sysconfdir}/init.d/portmap + oe_runmake install DESTDIR=${D} +} diff --git a/meta/recipes-connectivity/ppp-dialin/files/host-peer b/meta/recipes-connectivity/ppp-dialin/files/host-peer new file mode 100644 index 000000000..e7e2e11d4 --- /dev/null +++ b/meta/recipes-connectivity/ppp-dialin/files/host-peer @@ -0,0 +1,11 @@ +-detach +defaultroute +nocrtscts +lock +noauth +lcp-echo-interval 5 +lcp-echo-failure 3 +usepeerdns +115200 +local +asyncmap 0 diff --git a/meta/recipes-connectivity/ppp-dialin/files/ppp-dialin b/meta/recipes-connectivity/ppp-dialin/files/ppp-dialin new file mode 100644 index 000000000..ea2771311 --- /dev/null +++ b/meta/recipes-connectivity/ppp-dialin/files/ppp-dialin @@ -0,0 +1,3 @@ +#!/bin/sh + +/usr/sbin/pppd call host diff --git a/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb b/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb new file mode 100644 index 000000000..d239c20b2 --- /dev/null +++ b/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb @@ -0,0 +1,26 @@ +SECTION = "console/network" +DESCRIPTION = "Enables PPP dial-in through a serial connection" +DEPENDS = "ppp" +RDEPENDS_${PN} = "ppp" +PR = "r8" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "file://host-peer \ + file://ppp-dialin" + +inherit allarch useradd + +do_install() { + install -d ${D}${sysconfdir}/ppp/peers + install -m 0644 ${WORKDIR}/host-peer ${D}${sysconfdir}/ppp/peers/host + + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/ppp-dialin ${D}${sbindir} +} + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --home /dev/null \ + --no-create-home --shell ${sbindir}/ppp-dialin \ + --no-user-group --gid nogroup ppp" diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/08setupdns b/meta/recipes-connectivity/ppp/ppp-2.4.5/08setupdns new file mode 100644 index 000000000..998219de9 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/08setupdns @@ -0,0 +1,12 @@ +#!/bin/sh +ACTUALCONF=/var/run/resolv.conf +PPPCONF=/var/run/ppp/resolv.conf +if [ -f $PPPCONF ] ; then + if [ -f $ACTUALCONF ] ; then + if [ ! -h $ACTUALCONF -o ! "`readlink $ACTUALCONF 2>&1`" = "$PPPCONF" ] ; then + mv $ACTUALCONF $ACTUALCONF.ppporig + fi + fi + + ln -sf $PPPCONF $ACTUALCONF +fi diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/92removedns b/meta/recipes-connectivity/ppp/ppp-2.4.5/92removedns new file mode 100644 index 000000000..2eadec689 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/92removedns @@ -0,0 +1,5 @@ +#!/bin/sh +ACTUALCONF=/var/run/resolv.conf +if [ -f $ACTUALCONF.ppporig ] ; then + mv $ACTUALCONF.ppporig $ACTUALCONF +fi diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/cifdefroute.patch b/meta/recipes-connectivity/ppp/ppp-2.4.5/cifdefroute.patch new file mode 100644 index 000000000..db4dbc27a --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/cifdefroute.patch @@ -0,0 +1,292 @@ +This patch comes from OpenEmbedded. +The original patch is from Debian / SuSE to implement replacedefaultroute +Rebased it to fit ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com> + +Upstream-Status: Inappropriate [debian/suse patches] + +diff -urN ppp-2.4.5-orig/pppd/ipcp.c ppp-2.4.5/pppd/ipcp.c +--- ppp-2.4.5-orig/pppd/ipcp.c 2010-06-30 15:51:12.050166398 +0800 ++++ ppp-2.4.5/pppd/ipcp.c 2010-06-30 16:40:00.478716855 +0800 +@@ -198,6 +198,16 @@ + "disable defaultroute option", OPT_ALIAS | OPT_A2CLR, + &ipcp_wantoptions[0].default_route }, + ++#ifdef __linux__ ++ { "replacedefaultroute", o_bool, ++ &ipcp_wantoptions[0].replace_default_route, ++ "Replace default route", 1 ++ }, ++ { "noreplacedefaultroute", o_bool, ++ &ipcp_allowoptions[0].replace_default_route, ++ "Never replace default route", OPT_A2COPY, ++ &ipcp_wantoptions[0].replace_default_route }, ++#endif + { "proxyarp", o_bool, &ipcp_wantoptions[0].proxy_arp, + "Add proxy ARP entry", OPT_ENABLE|1, &ipcp_allowoptions[0].proxy_arp }, + { "noproxyarp", o_bool, &ipcp_allowoptions[0].proxy_arp, +@@ -271,7 +281,7 @@ + ip_active_pkt + }; + +-static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t)); ++static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t, bool)); + static void ipcp_script __P((char *, int)); /* Run an up/down script */ + static void ipcp_script_done __P((void *)); + +@@ -1742,7 +1752,12 @@ + if (!sifnpmode(u, PPP_IP, NPMODE_QUEUE)) + return 0; + if (wo->default_route) ++#ifndef __linux__ + if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr)) ++#else ++ if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr, ++ wo->replace_default_route)) ++#endif + default_route_set[u] = 1; + if (wo->proxy_arp) + if (sifproxyarp(u, wo->hisaddr)) +@@ -1830,7 +1845,8 @@ + */ + if (demand) { + if (go->ouraddr != wo->ouraddr || ho->hisaddr != wo->hisaddr) { +- ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr); ++ ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr, ++ wo->replace_default_route); + if (go->ouraddr != wo->ouraddr) { + warn("Local IP address changed to %I", go->ouraddr); + script_setenv("OLDIPLOCAL", ip_ntoa(wo->ouraddr), 0); +@@ -1855,7 +1871,12 @@ + + /* assign a default route through the interface if required */ + if (ipcp_wantoptions[f->unit].default_route) ++#ifndef __linux__ + if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr)) ++#else ++ if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr, ++ wo->replace_default_route)) ++#endif + default_route_set[f->unit] = 1; + + /* Make a proxy ARP entry if requested. */ +@@ -1905,7 +1926,12 @@ + + /* assign a default route through the interface if required */ + if (ipcp_wantoptions[f->unit].default_route) ++#ifndef __linux__ + if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr)) ++#else ++ if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr, ++ wo->replace_default_route)) ++#endif + default_route_set[f->unit] = 1; + + /* Make a proxy ARP entry if requested. */ +@@ -1983,7 +2009,7 @@ + sifnpmode(f->unit, PPP_IP, NPMODE_DROP); + sifdown(f->unit); + ipcp_clear_addrs(f->unit, ipcp_gotoptions[f->unit].ouraddr, +- ipcp_hisoptions[f->unit].hisaddr); ++ ipcp_hisoptions[f->unit].hisaddr, 0); + } + + /* Execute the ip-down script */ +@@ -1999,12 +2025,21 @@ + * proxy arp entries, etc. + */ + static void +-ipcp_clear_addrs(unit, ouraddr, hisaddr) ++ipcp_clear_addrs(unit, ouraddr, hisaddr, replacedefaultroute) + int unit; + u_int32_t ouraddr; /* local address */ + u_int32_t hisaddr; /* remote address */ ++ bool replacedefaultroute; + { +- if (proxy_arp_set[unit]) { ++ /* If replacedefaultroute, sifdefaultroute will be called soon ++ * with replacedefaultroute set and that will overwrite the current ++ * default route. This is the case only when doing demand, otherwise ++ * during demand, this cifdefaultroute would restore the old default ++ * route which is not what we want in this case. In the non-demand ++ * case, we'll delete the default route and restore the old if there ++ * is one saved by an sifdefaultroute with replacedefaultroute. ++ */ ++ if (!replacedefaultroute && default_route_set[unit]) { + cifproxyarp(unit, hisaddr); + proxy_arp_set[unit] = 0; + } +diff -urN ppp-2.4.5-orig/pppd/ipcp.h ppp-2.4.5/pppd/ipcp.h +--- ppp-2.4.5-orig/pppd/ipcp.h 2010-06-30 15:51:12.043682063 +0800 ++++ ppp-2.4.5/pppd/ipcp.h 2010-06-30 16:40:49.586203129 +0800 +@@ -70,6 +70,7 @@ + bool old_addrs; /* Use old (IP-Addresses) option? */ + bool req_addr; /* Ask peer to send IP address? */ + bool default_route; /* Assign default route through interface? */ ++ bool replace_default_route; /* Replace default route through interface? */ + bool proxy_arp; /* Make proxy ARP entry for peer? */ + bool neg_vj; /* Van Jacobson Compression? */ + bool old_vj; /* use old (short) form of VJ option? */ +diff -urN ppp-2.4.5-orig/pppd/pppd.8 ppp-2.4.5/pppd/pppd.8 +--- ppp-2.4.5-orig/pppd/pppd.8 2010-06-30 15:51:12.043682063 +0800 ++++ ppp-2.4.5/pppd/pppd.8 2010-06-30 16:42:47.102413859 +0800 +@@ -121,6 +121,13 @@ + This entry is removed when the PPP connection is broken. This option + is privileged if the \fInodefaultroute\fR option has been specified. + .TP ++.B replacedefaultroute ++This option is a flag to the defaultroute option. If defaultroute is ++set and this flag is also set, pppd replaces an existing default route ++with the new default route. ++ ++ ++.TP + .B disconnect \fIscript + Execute the command specified by \fIscript\fR, by passing it to a + shell, after +@@ -717,7 +724,12 @@ + .TP + .B nodefaultroute + Disable the \fIdefaultroute\fR option. The system administrator who +-wishes to prevent users from creating default routes with pppd ++wishes to prevent users from adding a default route with pppd ++can do so by placing this option in the /etc/ppp/options file. ++.TP ++.B noreplacedefaultroute ++Disable the \fIreplacedefaultroute\fR option. The system administrator who ++wishes to prevent users from replacing a default route with pppd + can do so by placing this option in the /etc/ppp/options file. + .TP + .B nodeflate +diff -urN ppp-2.4.5-orig/pppd/pppd.h ppp-2.4.5/pppd/pppd.h +--- ppp-2.4.5-orig/pppd/pppd.h 2010-06-30 15:51:12.050166398 +0800 ++++ ppp-2.4.5/pppd/pppd.h 2010-06-30 16:43:36.514148327 +0800 +@@ -643,7 +643,11 @@ + int cif6addr __P((int, eui64_t, eui64_t)); + /* Remove an IPv6 address from i/f */ + #endif ++#ifndef __linux__ + int sifdefaultroute __P((int, u_int32_t, u_int32_t)); ++#else ++int sifdefaultroute __P((int, u_int32_t, u_int32_t, bool replace_default_rt)); ++#endif + /* Create default route through i/f */ + int cifdefaultroute __P((int, u_int32_t, u_int32_t)); + /* Delete default route through i/f */ +diff -urN ppp-2.4.5-orig/pppd/sys-linux.c ppp-2.4.5/pppd/sys-linux.c +--- ppp-2.4.5-orig/pppd/sys-linux.c 2010-06-30 15:51:12.050166398 +0800 ++++ ppp-2.4.5/pppd/sys-linux.c 2010-06-30 16:54:00.362716231 +0800 +@@ -206,6 +206,8 @@ + + static int if_is_up; /* Interface has been marked up */ + static int have_default_route; /* Gateway for default route added */ ++static struct rtentry old_def_rt; /* Old default route */ ++static int default_rt_repl_rest; /* replace and restore old default rt */ + static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */ + static char proxy_arp_dev[16]; /* Device for proxy arp entry */ + static u_int32_t our_old_addr; /* for detecting address changes */ +@@ -1537,6 +1539,9 @@ + p = NULL; + } + ++ SET_SA_FAMILY (rt->rt_dst, AF_INET); ++ SET_SA_FAMILY (rt->rt_gateway, AF_INET); ++ + SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16); + SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16); + SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16); +@@ -1606,20 +1611,51 @@ + /******************************************************************** + * + * sifdefaultroute - assign a default route through the address given. +- */ +- +-int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway) +-{ +- struct rtentry rt; +- +- if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) { +- if (rt.rt_flags & RTF_GATEWAY) +- error("not replacing existing default route via %I", +- SIN_ADDR(rt.rt_gateway)); +- else +- error("not replacing existing default route through %s", +- rt.rt_dev); +- return 0; ++ * ++ * If the global default_rt_repl_rest flag is set, then this function ++ * already replaced the original system defaultroute with some other ++ * route and it should just replace the current defaultroute with ++ * another one, without saving the current route. Use: demand mode, ++ * when pppd sets first a defaultroute it it's temporary ppp0 addresses ++ * and then changes the temporary addresses to the addresses for the real ++ * ppp connection when it has come up. ++ */ ++ ++int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway, bool replace) ++{ ++ struct rtentry rt, tmp_rt; ++ struct rtentry *del_rt = NULL; ++ ++ if (default_rt_repl_rest) { ++ /* We have already reclaced the original defaultroute, if we ++ * are called again, we will delete the current default route ++ * and set the new default route in this function. ++ * - this is normally only the case the doing demand: */ ++ if (defaultroute_exists( &tmp_rt )) ++ del_rt = &tmp_rt; ++ } else if ( defaultroute_exists( &old_def_rt ) && ++ strcmp( old_def_rt.rt_dev, ifname ) != 0) { ++ /* We did not yet replace an existing default route, let's ++ * check if we should save and replace a default route: ++ */ ++ u_int32_t old_gateway = SIN_ADDR(old_def_rt.rt_gateway); ++ if (old_gateway != gateway) { ++ if (!replace) { ++ error("not replacing default route to %s [%I]", ++ old_def_rt.rt_dev, old_gateway); ++ return 0; ++ } else { ++ // we need to copy rt_dev because we need it permanent too: ++ char * tmp_dev = malloc(strlen(old_def_rt.rt_dev)+1); ++ strcpy(tmp_dev, old_def_rt.rt_dev); ++ old_def_rt.rt_dev = tmp_dev; ++ ++ notice("replacing old default route to %s [%I]", ++ old_def_rt.rt_dev, old_gateway); ++ default_rt_repl_rest = 1; ++ del_rt = &old_def_rt; ++ } ++ } + } + + memset (&rt, 0, sizeof (rt)); +@@ -1638,6 +1674,12 @@ + error("default route ioctl(SIOCADDRT): %m"); + return 0; + } ++ if (default_rt_repl_rest && del_rt) ++ if (ioctl(sock_fd, SIOCDELRT, del_rt) < 0) { ++ if ( ! ok_error ( errno )) ++ error("del old default route ioctl(SIOCDELRT): %m(%d)", errno); ++ return 0; ++ } + + have_default_route = 1; + return 1; +@@ -1673,6 +1715,16 @@ + return 0; + } + } ++ if (default_rt_repl_rest) { ++ notice("restoring old default route to %s [%I]", ++ old_def_rt.rt_dev, SIN_ADDR(old_def_rt.rt_gateway)); ++ if (ioctl(sock_fd, SIOCADDRT, &old_def_rt) < 0) { ++ if ( ! ok_error ( errno )) ++ error("restore default route ioctl(SIOCADDRT): %m(%d)", errno); ++ return 0; ++ } ++ default_rt_repl_rest = 0; ++ } + + return 1; + } diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/enable-ipv6.patch b/meta/recipes-connectivity/ppp/ppp-2.4.5/enable-ipv6.patch new file mode 100644 index 000000000..e5fc3f4de --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/enable-ipv6.patch @@ -0,0 +1,15 @@ +The patch comes from OpenEmbedded + +Upstream-Status: Inappropriate [enable feature] + +--- ppp-2.4.3/pppd/Makefile.linux.orig 2005-10-28 21:07:40.396359250 +0100 ++++ ppp-2.4.3/pppd/Makefile.linux 2005-10-28 21:07:54.217223000 +0100 +@@ -62,7 +62,7 @@ + + HAS_SHADOW=y + #USE_PAM=y +-#HAVE_INET6=y ++HAVE_INET6=y + + # Enable plugins + PLUGIN=y diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/init b/meta/recipes-connectivity/ppp/ppp-2.4.5/init new file mode 100755 index 000000000..5b3b7abe2 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/init @@ -0,0 +1,50 @@ +#!/bin/sh +# +# /etc/init.d/ppp: start or stop PPP link. +# +# If you want PPP started on boot time (most dialup systems won't need it) +# rename the /etc/ppp/no_ppp_on_boot file to /etc/ppp/ppp_on_boot, and +# follow the instructions in the comments in that file. + +test -x /usr/sbin/pppd -a -f /etc/ppp/ppp_on_boot || exit 0 +if [ -x /etc/ppp/ppp_on_boot ]; then RUNFILE=1; fi + +case "$1" in + start) + echo -n "Starting up PPP link: pppd" + if [ "$RUNFILE" = "1" ]; then + /etc/ppp/ppp_on_boot + else + pppd call provider + fi + echo "." + ;; + stop) + echo -n "Shutting down PPP link: pppd" + if [ "$RUNFILE" = "1" ]; then + poff + else + poff provider + fi + echo "." + ;; + restart|force-reload) + echo -n "Restarting PPP link: pppd" + if [ "$RUNFILE" = "1" ]; then + poff + sleep 5 + /etc/ppp/ppp_on_boot + else + poff provider + sleep 5 + pppd call provider + fi + echo "." + ;; + *) + echo "Usage: /etc/init.d/ppp {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/ip-down b/meta/recipes-connectivity/ppp/ppp-2.4.5/ip-down new file mode 100755 index 000000000..06d35487a --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/ip-down @@ -0,0 +1,43 @@ +#!/bin/sh +# +# $Id: ip-down,v 1.2 1998/02/10 21:21:55 phil Exp $ +# +# This script is run by the pppd _after_ the link is brought down. +# It uses run-parts to run scripts in /etc/ppp/ip-down.d, so to delete +# routes, unset IP addresses etc. you should create script(s) there. +# +# Be aware that other packages may include /etc/ppp/ip-down.d scripts (named +# after that package), so choose local script names with that in mind. +# +# This script is called with the following arguments: +# Arg Name Example +# $1 Interface name ppp0 +# $2 The tty ttyS1 +# $3 The link speed 38400 +# $4 Local IP number 12.34.56.78 +# $5 Peer IP number 12.34.56.99 +# $6 Optional ``ipparam'' value foo + +# The environment is cleared before executing this script +# so the path must be reset +PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin +export PATH +# These variables are for the use of the scripts run by run-parts +PPP_IFACE="$1" +PPP_TTY="$2" +PPP_SPEED="$3" +PPP_LOCAL="$4" +PPP_REMOTE="$5" +PPP_IPPARAM="$6" +export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM + +# as an additional convenience, $PPP_TTYNAME is set to the tty name, +# stripped of /dev/ (if present) for easier matching. +PPP_TTYNAME=`/usr/bin/basename "$2"` +export PPP_TTYNAME + +# Main Script starts here + +run-parts /etc/ppp/ip-down.d + +# last line diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/ip-up b/meta/recipes-connectivity/ppp/ppp-2.4.5/ip-up new file mode 100755 index 000000000..fc2fae9fe --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/ip-up @@ -0,0 +1,44 @@ +#!/bin/sh +# +# $Id: ip-up,v 1.2 1998/02/10 21:25:34 phil Exp $ +# +# This script is run by the pppd after the link is established. +# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes, +# set IP address, run the mailq etc. you should create script(s) there. +# +# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named +# after that package), so choose local script names with that in mind. +# +# This script is called with the following arguments: +# Arg Name Example +# $1 Interface name ppp0 +# $2 The tty ttyS1 +# $3 The link speed 38400 +# $4 Local IP number 12.34.56.78 +# $5 Peer IP number 12.34.56.99 +# $6 Optional ``ipparam'' value foo + +# The environment is cleared before executing this script +# so the path must be reset +PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin +export PATH +# These variables are for the use of the scripts run by run-parts +PPP_IFACE="$1" +PPP_TTY="$2" +PPP_SPEED="$3" +PPP_LOCAL="$4" +PPP_REMOTE="$5" +PPP_IPPARAM="$6" +export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM + + +# as an additional convenience, $PPP_TTYNAME is set to the tty name, +# stripped of /dev/ (if present) for easier matching. +PPP_TTYNAME=`/usr/bin/basename "$2"` +export PPP_TTYNAME + +# Main Script starts here + +run-parts /etc/ppp/ip-up.d + +# last line diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/makefile-remove-hard-usr-reference.patch b/meta/recipes-connectivity/ppp/ppp-2.4.5/makefile-remove-hard-usr-reference.patch new file mode 100644 index 000000000..8cc354af9 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/makefile-remove-hard-usr-reference.patch @@ -0,0 +1,21 @@ +The patch comes from OpenEmbedded. +Rebased for ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com> + +Upstream-Status: Inappropriate [configuration] + +diff -urN ppp-2.4.5-orig/pppd/Makefile.linux ppp-2.4.5/pppd/Makefile.linux +--- ppp-2.4.5-orig/pppd/Makefile.linux 2010-06-30 15:51:12.043682063 +0800 ++++ ppp-2.4.5/pppd/Makefile.linux 2010-06-30 17:08:21.806363042 +0800 +@@ -117,10 +117,10 @@ + #LIBS += -lshadow $(LIBS) + endif + +-ifneq ($(wildcard /usr/include/crypt.h),) ++#ifneq ($(wildcard /usr/include/crypt.h),) + CFLAGS += -DHAVE_CRYPT_H=1 + LIBS += -lcrypt +-endif ++#endif + + ifdef NEEDDES + ifndef USE_CRYPT diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/makefile.patch b/meta/recipes-connectivity/ppp/ppp-2.4.5/makefile.patch new file mode 100644 index 000000000..2d09baf5d --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/makefile.patch @@ -0,0 +1,95 @@ +The patch comes from OpenEmbedded +Rebased for ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com> + +Upstream-Status: Inappropriate [configuration] + +diff -ruN ppp-2.4.5-orig/chat/Makefile.linux ppp-2.4.5/chat/Makefile.linux +--- ppp-2.4.5-orig/chat/Makefile.linux 2010-06-30 15:51:12.050166398 +0800 ++++ ppp-2.4.5/chat/Makefile.linux 2010-06-30 15:51:30.450118446 +0800 +@@ -25,7 +25,7 @@ + + install: chat + mkdir -p $(BINDIR) $(MANDIR) +- $(INSTALL) -s -c chat $(BINDIR) ++ $(INSTALL) -c chat $(BINDIR) + $(INSTALL) -c -m 644 chat.8 $(MANDIR) + + clean: +diff -ruN ppp-2.4.5-orig/pppd/Makefile.linux ppp-2.4.5/pppd/Makefile.linux +--- ppp-2.4.5-orig/pppd/Makefile.linux 2010-06-30 15:51:12.043682063 +0800 ++++ ppp-2.4.5/pppd/Makefile.linux 2010-06-30 15:52:11.214170607 +0800 +@@ -99,7 +99,7 @@ + CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include + LIBS += -lsrp -L/usr/local/ssl/lib -lcrypto + TARGETS += srp-entry +-EXTRAINSTALL = $(INSTALL) -s -c -m 555 srp-entry $(BINDIR)/srp-entry ++EXTRAINSTALL = $(INSTALL) -c -m 555 srp-entry $(BINDIR)/srp-entry + MANPAGES += srp-entry.8 + EXTRACLEAN += srp-entry.o + NEEDDES=y +@@ -200,7 +200,7 @@ + install: pppd + mkdir -p $(BINDIR) $(MANDIR) + $(EXTRAINSTALL) +- $(INSTALL) -s -c -m 555 pppd $(BINDIR)/pppd ++ $(INSTALL) -c -m 555 pppd $(BINDIR)/pppd + if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \ + chmod o-rx,u+s $(BINDIR)/pppd; fi + $(INSTALL) -c -m 444 pppd.8 $(MANDIR) +diff -ruN ppp-2.4.5-orig/pppd/plugins/radius/Makefile.linux ppp-2.4.5/pppd/plugins/radius/Makefile.linux +--- ppp-2.4.5-orig/pppd/plugins/radius/Makefile.linux 2010-06-30 15:51:12.047676187 +0800 ++++ ppp-2.4.5/pppd/plugins/radius/Makefile.linux 2010-06-30 15:53:47.750182267 +0800 +@@ -36,11 +36,11 @@ + + install: all + $(INSTALL) -d -m 755 $(LIBDIR) +- $(INSTALL) -s -c -m 755 radius.so $(LIBDIR) +- $(INSTALL) -s -c -m 755 radattr.so $(LIBDIR) +- $(INSTALL) -s -c -m 755 radrealms.so $(LIBDIR) +- $(INSTALL) -c -m 444 pppd-radius.8 $(MANDIR) +- $(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR) ++ $(INSTALL) -c -m 755 radius.so $(LIBDIR) ++ $(INSTALL) -c -m 755 radattr.so $(LIBDIR) ++ $(INSTALL) -c -m 755 radrealms.so $(LIBDIR) ++ $(INSTALL) -m 444 pppd-radius.8 $(MANDIR) ++ $(INSTALL) -m 444 pppd-radattr.8 $(MANDIR) + + radius.so: radius.o libradiusclient.a + $(CC) -o radius.so -shared radius.o libradiusclient.a +diff -ruN ppp-2.4.5-orig/pppd/plugins/rp-pppoe/Makefile.linux ppp-2.4.5/pppd/plugins/rp-pppoe/Makefile.linux +--- ppp-2.4.5-orig/pppd/plugins/rp-pppoe/Makefile.linux 2010-06-30 15:51:12.047676187 +0800 ++++ ppp-2.4.5/pppd/plugins/rp-pppoe/Makefile.linux 2010-06-30 15:53:15.454486877 +0800 +@@ -43,9 +43,9 @@ + + install: all + $(INSTALL) -d -m 755 $(LIBDIR) +- $(INSTALL) -s -c -m 4550 rp-pppoe.so $(LIBDIR) ++ $(INSTALL) -c -m 4550 rp-pppoe.so $(LIBDIR) + $(INSTALL) -d -m 755 $(BINDIR) +- $(INSTALL) -s -c -m 555 pppoe-discovery $(BINDIR) ++ $(INSTALL) -c -m 555 pppoe-discovery $(BINDIR) + + clean: + rm -f *.o *.so pppoe-discovery +diff -ruN ppp-2.4.5-orig/pppdump/Makefile.linux ppp-2.4.5/pppdump/Makefile.linux +--- ppp-2.4.5-orig/pppdump/Makefile.linux 2010-06-30 15:51:12.058183383 +0800 ++++ ppp-2.4.5/pppdump/Makefile.linux 2010-06-30 15:52:25.762183537 +0800 +@@ -17,5 +17,5 @@ + + install: + mkdir -p $(BINDIR) $(MANDIR) +- $(INSTALL) -s -c pppdump $(BINDIR) ++ $(INSTALL) -c pppdump $(BINDIR) + $(INSTALL) -c -m 444 pppdump.8 $(MANDIR) +diff -ruN ppp-2.4.5-orig/pppstats/Makefile.linux ppp-2.4.5/pppstats/Makefile.linux +--- ppp-2.4.5-orig/pppstats/Makefile.linux 2010-06-30 15:51:12.058183383 +0800 ++++ ppp-2.4.5/pppstats/Makefile.linux 2010-06-30 15:52:42.486341081 +0800 +@@ -22,7 +22,7 @@ + + install: pppstats + -mkdir -p $(MANDIR) +- $(INSTALL) -s -c pppstats $(BINDIR) ++ $(INSTALL) -c pppstats $(BINDIR) + $(INSTALL) -c -m 444 pppstats.8 $(MANDIR) + + pppstats: $(PPPSTATSRCS) diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/poff b/meta/recipes-connectivity/ppp/ppp-2.4.5/poff new file mode 100644 index 000000000..0521a9406 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/poff @@ -0,0 +1,26 @@ +#!/bin/sh + +# Lets see how many pppds are running.... +set -- `cat /var/run/ppp*.pid 2>/dev/null` + +case $# in + 0) # pppd only creates a pid file once ppp is up, so let's try killing pppd + # on the assumption that we've not got that far yet. + killall pppd + ;; + 1) # If only one was running then it can be killed (apparently killall + # caused problems for some, so lets try killing the pid from the file) + kill $1 + ;; + *) # More than one! Aieehh.. Dont know which one to kill. + echo "More than one pppd running. None stopped" + exit 1 + ;; +esac + +if [ -r /var/run/ppp-quick ] +then + rm -f /var/run/ppp-quick +fi + +exit 0 diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/pon b/meta/recipes-connectivity/ppp/ppp-2.4.5/pon new file mode 100644 index 000000000..91c059501 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/pon @@ -0,0 +1,9 @@ +#!/bin/sh + +if [ "$1" = "quick" ] +then + touch /var/run/ppp-quick + shift +fi + +/usr/sbin/pppd call ${1:-provider} diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/pppd-resolv-varrun.patch b/meta/recipes-connectivity/ppp/ppp-2.4.5/pppd-resolv-varrun.patch new file mode 100644 index 000000000..a72414ff8 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/pppd-resolv-varrun.patch @@ -0,0 +1,45 @@ +The patch comes from OpenEmbedded +Rebased for ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com> + +Upstream-Status: Inappropriate [embedded specific] + +diff -ruN ppp-2.4.5-orig/pppd/ipcp.c ppp-2.4.5/pppd/ipcp.c +--- ppp-2.4.5-orig/pppd/ipcp.c 2010-06-30 15:51:12.050166398 +0800 ++++ ppp-2.4.5/pppd/ipcp.c 2010-06-30 17:02:33.930393283 +0800 +@@ -55,6 +55,8 @@ + #include <sys/socket.h> + #include <netinet/in.h> + #include <arpa/inet.h> ++#include <sys/stat.h> ++#include <unistd.h> + + #include "pppd.h" + #include "fsm.h" +@@ -2095,6 +2097,14 @@ + u_int32_t peerdns1, peerdns2; + { + FILE *f; ++ struct stat dirinfo; ++ ++ if(stat(_PATH_OUTDIR, &dirinfo)) { ++ if(mkdir(_PATH_OUTDIR, 0775)) { ++ error("Failed to create directory %s: %m", _PATH_OUTDIR); ++ return; ++ } ++ } + + f = fopen(_PATH_RESOLV, "w"); + if (f == NULL) { +diff -ruN ppp-2.4.5-orig/pppd/pathnames.h ppp-2.4.5/pppd/pathnames.h +--- ppp-2.4.5-orig/pppd/pathnames.h 2010-06-30 15:51:12.043682063 +0800 ++++ ppp-2.4.5/pppd/pathnames.h 2010-06-30 17:03:20.594371055 +0800 +@@ -30,7 +30,8 @@ + #define _PATH_TTYOPT _ROOT_PATH "/etc/ppp/options." + #define _PATH_CONNERRS _ROOT_PATH "/etc/ppp/connect-errors" + #define _PATH_PEERFILES _ROOT_PATH "/etc/ppp/peers/" +-#define _PATH_RESOLV _ROOT_PATH "/etc/ppp/resolv.conf" ++#define _PATH_OUTDIR _ROOT_PATH _PATH_VARRUN "/ppp" ++#define _PATH_RESOLV _PATH_OUTDIR "/resolv.conf" + + #define _PATH_USEROPT ".ppprc" + #define _PATH_PSEUDONYM ".ppp_pseudonym" diff --git a/meta/recipes-connectivity/ppp/ppp-2.4.5/update_if_pppol2tp.patch b/meta/recipes-connectivity/ppp/ppp-2.4.5/update_if_pppol2tp.patch new file mode 100644 index 000000000..e034f19d8 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp-2.4.5/update_if_pppol2tp.patch @@ -0,0 +1,54 @@ +Upstream-Status: Pending +diff --git a/include/linux/if_pppol2tp.h b/include/linux/if_pppol2tp.h +index 4113d6a..7ee86b2 100644 +--- a/include/linux/if_pppol2tp.h ++++ b/include/linux/if_pppol2tp.h +@@ -2,7 +2,7 @@ + * Linux PPP over L2TP (PPPoL2TP) Socket Implementation (RFC 2661) + * + * This file supplies definitions required by the PPP over L2TP driver +- * (pppol2tp.c). All version information wrt this file is located in pppol2tp.c ++ * (l2tp_ppp.c). All version information wrt this file is located in l2tp_ppp.c + * + * License: + * This program is free software; you can redistribute it and/or +@@ -15,14 +15,14 @@ + #ifndef __LINUX_IF_PPPOL2TP_H + #define __LINUX_IF_PPPOL2TP_H + +-#include <asm/types.h> ++#include <linux/types.h> ++ + + /* Structure used to connect() the socket to a particular tunnel UDP + * socket. + */ +-struct pppol2tp_addr +-{ +- pid_t pid; /* pid that owns the fd. ++struct pppol2tp_addr { ++ __kernel_pid_t pid; /* pid that owns the fd. + * 0 => current */ + int fd; /* FD of UDP socket to use */ + +@@ -32,6 +32,20 @@ struct pppol2tp_addr + __u16 d_tunnel, d_session; /* For sending outgoing packets */ + }; + ++/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32 ++ * bits. So we need a different sockaddr structure. ++ */ ++struct pppol2tpv3_addr { ++ pid_t pid; /* pid that owns the fd. ++ * 0 => current */ ++ int fd; /* FD of UDP or IP socket to use */ ++ ++ struct sockaddr_in addr; /* IP address and port to send to */ ++ ++ __u32 s_tunnel, s_session; /* For matching incoming packets */ ++ __u32 d_tunnel, d_session; /* For sending outgoing packets */ ++}; ++ + /* Socket options: + * DEBUG - bitmask of debug message categories + * SENDSEQ - 0 => don't send packets with sequence numbers diff --git a/meta/recipes-connectivity/ppp/ppp_2.4.5.bb b/meta/recipes-connectivity/ppp/ppp_2.4.5.bb new file mode 100644 index 000000000..ed815d36e --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp_2.4.5.bb @@ -0,0 +1,74 @@ +SUMMARY = "Point-to-Point Protocol (PPP) support" +DESCRIPTION = "ppp (Paul's PPP Package) is an open source package which implements \ +the Point-to-Point Protocol (PPP) on Linux and Solaris systems." +SECTION = "console/network" +HOMEPAGE = "http://samba.org/ppp/" +BUGTRACKER = "http://ppp.samba.org/cgi-bin/ppp-bugs" +DEPENDS = "libpcap" +LICENSE = "BSD & GPLv2+ & LGPLv2+ & PD" +LIC_FILES_CHKSUM = "file://pppd/ccp.c;beginline=1;endline=29;md5=e2c43fe6e81ff77d87dc9c290a424dea \ + file://pppd/plugins/passprompt.c;beginline=1;endline=10;md5=3bcbcdbf0e369c9a3e0b8c8275b065d8 \ + file://pppd/tdb.c;beginline=1;endline=27;md5=4ca3a9991b011038d085d6675ae7c4e6 \ + file://chat/chat.c;beginline=1;endline=15;md5=0d374b8545ee5c62d7aff1acbd38add2" +PR = "r4" + +SRC_URI = "http://ppp.samba.org/ftp/ppp/ppp-${PV}.tar.gz \ + file://makefile.patch \ + file://cifdefroute.patch \ + file://pppd-resolv-varrun.patch \ + file://enable-ipv6.patch \ + file://makefile-remove-hard-usr-reference.patch \ + file://update_if_pppol2tp.patch \ + file://pon \ + file://poff \ + file://init \ + file://ip-up \ + file://ip-down \ + file://08setupdns \ + file://92removedns" + +SRC_URI[md5sum] = "4621bc56167b6953ec4071043fe0ec57" +SRC_URI[sha256sum] = "43317afec9299f9920b96f840414c977f0385410202d48e56d2fdb8230003505" + +inherit autotools + +TARGET_CC_ARCH += " ${LDFLAGS}" +EXTRA_OEMAKE = "STRIPPROG=${STRIP} MANDIR=${D}${datadir}/man/man8 INCDIR=${D}${includedir} LIBDIR=${D}${libdir}/pppd/${PV} BINDIR=${D}${sbindir}" +EXTRA_OECONF = "--disable-strip" + +do_install_append () { + make install-etcppp ETCDIR=${D}/${sysconfdir}/ppp + mkdir -p ${D}${bindir}/ ${D}${sysconfdir}/init.d + mkdir -p ${D}${sysconfdir}/ppp/ip-up.d/ + mkdir -p ${D}${sysconfdir}/ppp/ip-down.d/ + install -m 0755 ${WORKDIR}/pon ${D}${bindir}/pon + install -m 0755 ${WORKDIR}/poff ${D}${bindir}/poff + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/ppp + install -m 0755 ${WORKDIR}/ip-up ${D}${sysconfdir}/ppp/ + install -m 0755 ${WORKDIR}/ip-down ${D}${sysconfdir}/ppp/ + install -m 0755 ${WORKDIR}/08setupdns ${D}${sysconfdir}/ppp/ip-up.d/ + install -m 0755 ${WORKDIR}/92removedns ${D}${sysconfdir}/ppp/ip-down.d/ + rm -rf ${D}/${mandir}/man8/man8 + chmod u+s ${D}${sbindir}/pppd +} + +CONFFILES_${PN} = "${sysconfdir}/ppp/pap-secrets ${sysconfdir}/ppp/chap-secrets ${sysconfdir}/ppp/options" +PACKAGES =+ "${PN}-oa ${PN}-oe ${PN}-radius ${PN}-winbind ${PN}-minconn ${PN}-password ${PN}-l2tp ${PN}-tools" +FILES_${PN} = "${sysconfdir} ${bindir} ${sbindir}/chat ${sbindir}/pppd" +FILES_${PN}-dbg += "${libdir}/pppd/${PV}/.debug" +FILES_${PN}-oa = "${libdir}/pppd/${PV}/pppoatm.so" +FILES_${PN}-oe = "${sbindir}/pppoe-discovery ${libdir}/pppd/${PV}/rp-pppoe.so" +FILES_${PN}-radius = "${libdir}/pppd/${PV}/radius.so ${libdir}/pppd/${PV}/radattr.so ${libdir}/pppd/${PV}/radrealms.so" +FILES_${PN}-winbind = "${libdir}/pppd/${PV}/winbind.so" +FILES_${PN}-minconn = "${libdir}/pppd/${PV}/minconn.so" +FILES_${PN}-password = "${libdir}/pppd/${PV}/pass*.so" +FILES_${PN}-l2tp = "${libdir}/pppd/${PV}/*l2tp.so" +FILES_${PN}-tools = "${sbindir}/pppstats ${sbindir}/pppdump" +DESCRIPTION_${PN}-oa = "Plugin for PPP needed for PPP-over-ATM" +DESCRIPTION_${PN}-oe = "Plugin for PPP needed for PPP-over-Ethernet" +DESCRIPTION_${PN}-radius = "Plugin for PPP that are related to RADIUS" +DESCRIPTION_${PN}-winbind = "Plugin for PPP to authenticate against Samba or Windows" +DESCRIPTION_${PN}-minconn = "Plugin for PPP to specify a minimum connect time before the idle timeout applies" +DESCRIPTION_${PN}-password = "Plugin for PPP to get passwords via a pipe" +DESCRIPTION_${PN}-l2tp = "Plugin for PPP for l2tp support" +DESCRIPTION_${PN}-tools = "The pppdump and pppstats utitilities" diff --git a/meta/recipes-connectivity/resolvconf/resolvconf_1.65.bb b/meta/recipes-connectivity/resolvconf/resolvconf_1.65.bb new file mode 100644 index 000000000..9b7553d3e --- /dev/null +++ b/meta/recipes-connectivity/resolvconf/resolvconf_1.65.bb @@ -0,0 +1,34 @@ +SUMMARY = "name server information handler" +DESCRIPTION = "Resolvconf is a framework for keeping track of the system's \ +information about currently available nameservers. It sets \ +itself up as the intermediary between programs that supply \ +nameserver information and programs that need nameserver \ +information." +SECTION = "console/network" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b" +AUTHOR = "Thomas Hood" +HOMEPAGE = "http://packages.debian.org/resolvconf" +RDEPENDS_${PN} = "bash" +PR = "r0" + +SRC_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/resolvconf_${PV}.tar.gz" + +SRC_URI[md5sum] = "8411411956f986a43021fa7e71d1bae8" +SRC_URI[sha256sum] = "3876a50a71c5e3e08373b7e41d5ca9a6cf19cf48e9decb3ab0a7c67261d58785" + +inherit allarch + +do_compile () { + : +} + +do_install () { + install -d ${D}${sysconfdir} ${D}${base_sbindir} ${D}${localstatedir}/volatile/run/resolvconf/interface + install -d ${D}${mandir}/man8 ${D}${docdir}/${P} + cp -pPR etc/* ${D}${sysconfdir}/ + chown -R root:root ${D}${sysconfdir}/ + install -m 0755 bin/resolvconf ${D}${base_sbindir}/ + install -m 0644 README ${D}${docdir}/${P}/ + install -m 0644 man/resolvconf.8 ${D}${mandir}/man8/ +} diff --git a/meta/recipes-connectivity/socat/files/compile.patch b/meta/recipes-connectivity/socat/files/compile.patch new file mode 100644 index 000000000..4d1a0b65c --- /dev/null +++ b/meta/recipes-connectivity/socat/files/compile.patch @@ -0,0 +1,946 @@ +Upstream-Status: Inappropriate [configuration] + +The patch is from http://git.openembedded.org/openembedded/tree/recipes/socat/files/compile.patch +and was rebased to socat-1.7.2.0. + +Signed-off-by: Dexuan Cui <dexuan.cui@intel.com> +Fri Dec 16 17:12:17 CST 2011 + +diff -Nru socat-1.7.2.0.orig/configure.in socat-1.7.2.0/configure.in +--- socat-1.7.2.0.orig/configure.in 2011-12-04 21:34:16.000000000 +0800 ++++ socat-1.7.2.0/configure.in 2011-12-16 17:08:59.698367071 +0800 +@@ -88,7 +88,7 @@ + + + dnl Check for extra socket library (for Solaris) +-AC_CHECK_FUNC(hstrerror, , AC_CHECK_LIB(resolv, hstrerror, [LIBS="$LIBS -lresolv"; AC_DEFINE(HAVE_HSTRERROR)])) ++AC_CHECK_FUNC(hstrerror, , AC_CHECK_LIB(resolv, hstrerror, [LIBS="$LIBS -lresolv"; AC_DEFINE(HAVE_HSTRERROR, [1], [STRERROR])])) + AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent)) + AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt)) + +@@ -102,7 +102,7 @@ + [sc_cv_have_prototype_hstrerror=yes]); + CFLAGS="$CFLAGS1"]) + if test $sc_cv_have_prototype_hstrerror = yes; then +- AC_DEFINE(HAVE_PROTOTYPE_HSTRERROR) ++ AC_DEFINE(HAVE_PROTOTYPE_HSTRERROR, [1], [Has Strerror]) + fi + AC_MSG_RESULT($sc_cv_have_prototype_hstrerror) + +@@ -111,83 +111,83 @@ + AC_ARG_ENABLE(help, [ --disable-help disable help], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_HELP) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_HELP, [1], [With help]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_HELP) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_HELP, [1], [With help]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include STDIO support) + AC_ARG_ENABLE(stdio, [ --disable-stdio disable STDIO support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_STDIO) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_STDIO, [1], [With stdio]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_STDIO) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_STDIO, [1], [With stdio]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include FD-number support) + AC_ARG_ENABLE(fdnum, [ --disable-fdnum disable FD-number support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_FDNUM) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_FDNUM, [1], [With fdnum]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_FDNUM) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_FDNUM, [1], [With fdnum]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include direct file support) + AC_ARG_ENABLE(file, [ --disable-file disable direct file support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_FILE) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_FILE, [1], [With file]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_FILE) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_FILE, [1], [With file]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include direct create support) + AC_ARG_ENABLE(creat, [ --disable-creat disable direct create support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_CREAT) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_CREAT, [1], [With creat]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_CREAT) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_CREAT, [1], [With creat]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include gopen support) + AC_ARG_ENABLE(gopen, [ --disable-gopen disable open for UNIX socket support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_GOPEN) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_GOPEN, [1], [With gopen]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_GOPEN) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_GOPEN, [1], [With gopen]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include explicit pipe support) + AC_ARG_ENABLE(pipe, [ --disable-pipe disable pipe support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_PIPE) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_PIPE, [1], [With pipe]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_PIPE) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_PIPE, [1], [With pipe]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include explicit termios support) + AC_ARG_ENABLE(termios, [ --disable-termios disable termios support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_TERMIOS) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_TERMIOS, [1], [With termios]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_TERMIOS) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_TERMIOS, [1], [With termios]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include UNIX socket support) + AC_ARG_ENABLE(unix, [ --disable-unix disable UNIX domain socket support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_UNIX) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_UNIX, [1], [With unix]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_UNIX) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_UNIX, [1], [With unix]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include abstract UNIX socket support) + AC_ARG_ENABLE(abstract_unixsocket, [ --disable-abstract-unixsocket disable abstract UNIX domain socket support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_ABSTRACT_UNIXSOCKET) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_ABSTRACT_UNIXSOCKET, [1], [With abstract unix socket]) AC_MSG_RESULT(yes);; + esac], + [ case "`uname`" in + Linux) +- AC_DEFINE(WITH_ABSTRACT_UNIXSOCKET) AC_MSG_RESULT(yes);; ++ AC_DEFINE(WITH_ABSTRACT_UNIXSOCKET, [1], [With abstract unix socket]) AC_MSG_RESULT(yes);; + *) + AC_MSG_RESULT(no);; + esac]) +@@ -196,9 +196,9 @@ + AC_ARG_ENABLE(ip4, [ --disable-ip4 disable IPv4 support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_IP4) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_IP4, [1], [with ipv4]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_IP4) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_IP4, [1], [with ipv4]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include IPv6 support) + AC_ARG_ENABLE(ip6, [ --disable-ip6 disable IPv6 support], +@@ -209,7 +209,7 @@ + [ AC_MSG_RESULT(yes); WITH_IP6=1 ]) + if test "$WITH_IP6"; then + AC_CHECK_HEADERS([netinet/ip6.h], +- [AC_DEFINE(HAVE_NETINET_IP6_H) AC_DEFINE(WITH_IP6)], ++ [AC_DEFINE(HAVE_NETINET_IP6_H) AC_DEFINE(WITH_IP6, [1], [with ipv6])], + [AC_MSG_WARN([include file netinet/ip6.h not found, disabling IP6])], + [AC_INCLUDES_DEFAULT + #ifdef HAVE_NETINET_IN_H +@@ -242,17 +242,17 @@ + AC_ARG_ENABLE(rawip, [ --disable-rawip disable raw IP support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_RAWIP) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_RAWIP, [1], [With reawip]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_RAWIP) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_RAWIP, [1], [With rawip]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include generic socket support) + AC_ARG_ENABLE(rawsocket, [ --disable-genericsocket disable generic socket support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_GENERICSOCKET) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_GENERICSOCKET, [1], [With genericsocket]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_GENERICSOCKET) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_GENERICSOCKET, [1], [With genericsocket]) AC_MSG_RESULT(yes)]) + AC_MSG_CHECKING(whether to include raw network interface support) + AC_ARG_ENABLE(interface, [ --disable-interface disable network interface support], + [case "$enableval" in +@@ -262,35 +262,35 @@ + [AC_MSG_RESULT(yes); WITH_INTERFACE=1 ]) + if test "$WITH_INTERFACE"; then + AC_CHECK_HEADER(netpacket/packet.h, +- AC_DEFINE(HAVE_NETPACKET_PACKET_H), ++ AC_DEFINE(HAVE_NETPACKET_PACKET_H, [1], [Has packet.h]), + [WITH_INTERFACE=; + AC_MSG_WARN([include file netpacket/packet.h not found, disabling interface])]) + fi + if test "$WITH_INTERFACE"; then + AC_CHECK_HEADER(netinet/if_ether.h, +- AC_DEFINE(HAVE_NETINET_IF_ETHER_H), ++ AC_DEFINE(HAVE_NETINET_IF_ETHER_H, [1], [Has if_ether.h]), + [WITH_INTERFACE=; + AC_MSG_WARN([include file netinet/if_ether.h not found, disabling interface])]) + fi + if test "$WITH_INTERFACE"; then +- AC_DEFINE(WITH_INTERFACE) ++ AC_DEFINE(WITH_INTERFACE, [1], [Wither interface]) + fi + + AC_MSG_CHECKING(whether to include TCP support) + AC_ARG_ENABLE(tcp, [ --disable-tcp disable TCP support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_TCP) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_TCP, [1], [With TCP]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_TCP) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_TCP, [1], [With TCP]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include UDP support) + AC_ARG_ENABLE(udp, [ --disable-udp disable UDP support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_UDP) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_UDP, [1], [With UDP]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_UDP) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_UDP, [1], [With UDP]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include SCTP support) + AC_ARG_ENABLE(sctp, [ --disable-sctp disable SCTP support], +@@ -310,7 +310,7 @@ + [sc_cv_define_ipproto_sctp=no])]) + AC_MSG_RESULT($sc_cv_define_ipproto_sctp) + if test $sc_cv_define_ipproto_sctp = yes; then +- AC_DEFINE(WITH_SCTP) ++ AC_DEFINE(WITH_SCTP, [1], [With SCTP]) + else + AC_MSG_WARN([IPPROTO_SCTP undefined, disabling SCTP support]) + fi +@@ -320,65 +320,65 @@ + AC_ARG_ENABLE(listen, [ --disable-listen disable listen support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_LISTEN) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_LISTEN, [1], [With listen]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_LISTEN) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_LISTEN, [1], [With listen]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include socks4 support) + AC_ARG_ENABLE(socks4, [ --disable-socks4 disable socks4 support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_SOCKS4) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_SOCKS4, [1], [With socks]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_SOCKS4) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_SOCKS4, [1], [With socks]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include socks4a support) + AC_ARG_ENABLE(socks4a, [ --disable-socks4a disable socks4a support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_SOCKS4A) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_SOCKS4A, [1], [With socks4a]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_SOCKS4A) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_SOCKS4A, [1], [With socks4a]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include proxy connect support) + AC_ARG_ENABLE(proxy, [ --disable-proxy disable proxy connect support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_PROXY) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_PROXY, [1], [With proxy]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_PROXY) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_PROXY, [1], [With proxy]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include exec support) + AC_ARG_ENABLE(exec, [ --disable-exec disable exec support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_EXEC) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_EXEC, [1], [With exec]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_EXEC) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_EXEC, [1], [With exec]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING([whether to include system (shell) support]) + AC_ARG_ENABLE(system, [ --disable-system disable system (shell) support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_SYSTEM) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_SYSTEM, [1], [With system]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_SYSTEM) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_SYSTEM, [1], [With system]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include pty address support) + AC_ARG_ENABLE(pty, [ --disable-pty disable pty support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_PTY) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_PTY, [1], [With pty]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_PTY) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_PTY, [1], [With pty]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include ext2 fs attributes support) + AC_ARG_ENABLE(ext2, [ --disable-ext2 disable ext2 fs attributes support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_EXT2) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_EXT2, [1], [With ext2]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_EXT2) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_EXT2, [1], [With ext2]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(whether to include readline support) + AC_ARG_ENABLE(readline, [ --disable-readline disable readline support], +@@ -423,10 +423,10 @@ + + if test -n "$sc_usable_readline_found"; then + AC_MSG_RESULT(yes) +- AC_DEFINE(HAVE_READLINE_READLINE_H,1) +- AC_DEFINE(HAVE_READLINE_HISTORY_H,1) +- AC_DEFINE(HAVE_LIBREADLINE,1) +- AC_DEFINE(WITH_READLINE,1) ++ AC_DEFINE(HAVE_READLINE_READLINE_H,1, [have readline]) ++ AC_DEFINE(HAVE_READLINE_HISTORY_H,1, [have history]) ++ AC_DEFINE(HAVE_LIBREADLINE,1, [have readline]) ++ AC_DEFINE(WITH_READLINE,1, [with readline]) + break + else + AC_MSG_RESULT(no) +@@ -469,7 +469,7 @@ + done]) + ]) + if test "$sc_cv_have_openssl_ssl_h" = "yes"; then +- AC_DEFINE(HAVE_OPENSSL_SSL_H) ++ AC_DEFINE(HAVE_OPENSSL_SSL_H, [1], [have openssl.h]) + fi + AC_MSG_NOTICE(checked for openssl/ssl.h... $sc_cv_have_openssl_ssl_h) + fi # end checking for openssl/ssl.h +@@ -501,7 +501,7 @@ + ] + ) + if test "$sc_cv_have_libssl" = 'yes'; then +- AC_DEFINE(HAVE_LIBSSL) ++ AC_DEFINE(HAVE_LIBSSL, [1], [libssl]) + fi + AC_MSG_RESULT($sc_cv_have_libssl) + fi +@@ -529,7 +529,7 @@ + #fi + if test -n "$WITH_OPENSSL"; then + if test "$sc_cv_have_openssl_ssl_h" = "yes" -a "$sc_cv_have_libssl" = "yes"; then +- AC_DEFINE(WITH_OPENSSL) ++ AC_DEFINE(WITH_OPENSSL, [1], [With openssl]) + else + AC_MSG_WARN([not all components of OpenSSL found, disabling it]); + fi +@@ -577,7 +577,7 @@ + )] + ) + if test "$sv_cv_have_openssl_fips_h" = "yes"; then +- AC_DEFINE(HAVE_OPENSSL_FIPS_H) ++ AC_DEFINE(HAVE_OPENSSL_FIPS_H, [1], [OpenSSL fips.h]) + fi + AC_MSG_NOTICE(checked for openssl/fips.h... $sc_cv_have_openssl_ssl_h) + fi +@@ -608,15 +608,15 @@ + ] + ) + if test "$sc_cv_have_libcrypto" = 'yes'; then +- AC_DEFINE(HAVE_LIBCRYPTO) ++ AC_DEFINE(HAVE_LIBCRYPTO, [1], [libcrypto]) + fi + AC_MSG_RESULT($sc_cv_have_libcrypto) + fi + + if test -n "$WITH_FIPS"; then + if test "$sc_cv_have_openssl_fips_h" = 'yes' -a "$sc_cv_have_libcrypto" = 'yes'; then +- AC_DEFINE(WITH_FIPS) +- AC_DEFINE(OPENSSL_FIPS) ++ AC_DEFINE(WITH_FIPS, [1], [With fips]) ++ AC_DEFINE(OPENSSL_FIPS, [1], [openssl fips]) + else + AC_MSG_WARN([not all components of OpenSSL FIPS found, disabling it]); + fi +@@ -637,17 +637,17 @@ + fi + # + if test -n "$WITH_TUN"; then +- AC_DEFINE(WITH_TUN) ++ AC_DEFINE(WITH_TUN, [1], [with tun]) + fi + + AC_MSG_CHECKING(whether to include system call tracing) + AC_ARG_ENABLE(sycls, [ --disable-sycls disable system call tracing], + [case "$enableval" in + no) SYCLS=""; SSLCLS=""; AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_SYCLS) ++ *) AC_DEFINE(WITH_SYCLS, [1], [syscls]) + SYCLS="sycls.c"; SSLCLS="sslcls.c"; AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_SYCLS) ++ [AC_DEFINE(WITH_SYCLS, [1], [syscls]) + SYCLS="sycls.c"; SSLCLS="sslcls.c"; AC_MSG_RESULT(yes)]) + AC_SUBST(SYCLS) + AC_SUBST(SSLCLS) +@@ -656,31 +656,31 @@ + AC_ARG_ENABLE(filan, [ --disable-filan disable file descriptor analyzer], + [case "$enableval" in + no) FILAN=""; AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_FILAN) FILAN="filan.c"; AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_FILAN, [1], [filan]) FILAN="filan.c"; AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_FILAN) FILAN="filan.c"; AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_FILAN, [1], [filan]) FILAN="filan.c"; AC_MSG_RESULT(yes)]) + AC_SUBST(FILAN) + + AC_MSG_CHECKING(whether to include retry support) + AC_ARG_ENABLE(retry, [ --disable-retry disable retry support], + [case "$enableval" in + no) AC_MSG_RESULT(no);; +- *) AC_DEFINE(WITH_RETRY) AC_MSG_RESULT(yes);; ++ *) AC_DEFINE(WITH_RETRY, [1], [retry]) AC_MSG_RESULT(yes);; + esac], +- [AC_DEFINE(WITH_RETRY) AC_MSG_RESULT(yes)]) ++ [AC_DEFINE(WITH_RETRY, [1], [retry]) AC_MSG_RESULT(yes)]) + + AC_MSG_CHECKING(included message level) + AC_ARG_ENABLE(msglevel, [ --enable-msglevel=N set max verbosity to debug,info,notice,warn,error,fatal], + [case "$enableval" in +- debug) AC_DEFINE(WITH_MSGLEVEL,0) AC_MSG_RESULT(debug);; +- info) AC_DEFINE(WITH_MSGLEVEL,1) AC_MSG_RESULT(info);; +- notice) AC_DEFINE(WITH_MSGLEVEL,2) AC_MSG_RESULT(notice);; +- warn) AC_DEFINE(WITH_MSGLEVEL,3) AC_MSG_RESULT(warn);; +- error) AC_DEFINE(WITH_MSGLEVEL,4) AC_MSG_RESULT(error);; +- fatal) AC_DEFINE(WITH_MSGLEVEL,5) AC_MSG_RESULT(fatal);; +- *) AC_DEFINE(WITH_MSGLEVEL,0) AC_MSG_RESULT(debug);; ++ debug) AC_DEFINE(WITH_MSGLEVEL,0, [msglevel]) AC_MSG_RESULT(debug);; ++ info) AC_DEFINE(WITH_MSGLEVEL,1, [msglevel]) AC_MSG_RESULT(info);; ++ notice) AC_DEFINE(WITH_MSGLEVEL,2, [msglevel]) AC_MSG_RESULT(notice);; ++ warn) AC_DEFINE(WITH_MSGLEVEL,3, [msglevel]) AC_MSG_RESULT(warn);; ++ error) AC_DEFINE(WITH_MSGLEVEL,4, [msglevel]) AC_MSG_RESULT(error);; ++ fatal) AC_DEFINE(WITH_MSGLEVEL,5, [msglevel]) AC_MSG_RESULT(fatal);; ++ *) AC_DEFINE(WITH_MSGLEVEL,0, [msglevel]) AC_MSG_RESULT(debug);; + esac], +- [AC_DEFINE(WITH_MSGLEVEL,0) AC_MSG_RESULT(debug)]) ++ [AC_DEFINE(WITH_MSGLEVEL,0, [msglevel]) AC_MSG_RESULT(debug)]) + + #AC_SUBST(V_INCL) + +@@ -697,7 +697,7 @@ + AC_HEADER_TIME + + dnl Check for extra realtime library (for Solaris) +-AC_CHECK_FUNC(nanosleep, AC_DEFINE(HAVE_NANOSLEEP), AC_CHECK_LIB(rt, nanosleep, [LIBS="-lrt $LIBS"; AC_DEFINE(HAVE_NANOSLEEP)])) ++AC_CHECK_FUNC(nanosleep, AC_DEFINE(HAVE_NANOSLEEP, [1], [have nanosleep]), AC_CHECK_LIB(rt, nanosleep, [LIBS="-lrt $LIBS"; AC_DEFINE(HAVE_NANOSLEEP, [1], [have nanosleep])])) + #AC_CHECK_FUNC(nanosleep, , AC_CHECK_LIB(rt, nanosleep)) + + dnl Checks for library functions. +@@ -719,7 +719,7 @@ + [sc_cv_type_longlong=yes], + [sc_cv_type_longlong=no])]) + if test $sc_cv_type_longlong = yes; then +- AC_DEFINE(HAVE_TYPE_LONGLONG) ++ AC_DEFINE(HAVE_TYPE_LONGLONG, [1], [have type long long]) + fi + AC_MSG_RESULT($sc_cv_type_longlong) + +@@ -735,7 +735,7 @@ + [sc_cv_type_socklen=yes], + [sc_cv_type_socklen=no])]) + if test $sc_cv_type_socklen = yes; then +- AC_DEFINE(HAVE_TYPE_SOCKLEN) ++ AC_DEFINE(HAVE_TYPE_SOCKLEN, [1], [Has Socklen]) + fi + AC_MSG_RESULT($sc_cv_type_socklen) + +@@ -745,7 +745,7 @@ + [sc_cv_type_stat64=yes], + [sc_cv_type_stat64=no])]) + if test $sc_cv_type_stat64 = yes; then +- AC_DEFINE(HAVE_TYPE_STAT64) ++ AC_DEFINE(HAVE_TYPE_STAT64, [1], [Has stat64]) + fi + AC_MSG_RESULT($sc_cv_type_stat64) + +@@ -755,7 +755,7 @@ + [sc_cv_type_off64=yes], + [sc_cv_type_off64=no])]) + if test $sc_cv_type_off64 = yes; then +- AC_DEFINE(HAVE_TYPE_OFF64) ++ AC_DEFINE(HAVE_TYPE_OFF64, [1], [have off64]) + fi + AC_MSG_RESULT($sc_cv_type_off64) + +@@ -765,7 +765,7 @@ + [sc_cv_type_sighandler=yes], + [sc_cv_type_sighandler=no])]) + if test $sc_cv_type_sighandler = yes; then +- AC_DEFINE(HAVE_TYPE_SIGHANDLER) ++ AC_DEFINE(HAVE_TYPE_SIGHANDLER, [1], [have type sighandler]) + fi + AC_MSG_RESULT($sc_cv_type_socklen) + +@@ -783,7 +783,7 @@ + [sc_cv_type_uint8=yes], + [sc_cv_type_uint8=no])]) + if test $sc_cv_type_uint8 = yes; then +- AC_DEFINE(HAVE_TYPE_UINT8) ++ AC_DEFINE(HAVE_TYPE_UINT8, [1], [have uint8]) + fi + AC_MSG_RESULT($sc_cv_type_uint8) + +@@ -801,7 +801,7 @@ + [sc_cv_type_uint16=yes], + [sc_cv_type_uint16=no])]) + if test $sc_cv_type_uint16 = yes; then +- AC_DEFINE(HAVE_TYPE_UINT16) ++ AC_DEFINE(HAVE_TYPE_UINT16, [1], [have uint16t]) + fi + AC_MSG_RESULT($sc_cv_type_uint16) + +@@ -819,7 +819,7 @@ + [sc_cv_type_uint32=yes], + [sc_cv_type_uint32=no])]) + if test $sc_cv_type_uint32 = yes; then +- AC_DEFINE(HAVE_TYPE_UINT32) ++ AC_DEFINE(HAVE_TYPE_UINT32, [1], [have uint32]) + fi + AC_MSG_RESULT($sc_cv_type_uint32) + +@@ -837,7 +837,7 @@ + [sc_cv_type_uint64=yes], + [sc_cv_type_uint64=no])]) + if test $sc_cv_type_uint64 = yes; then +- AC_DEFINE(HAVE_TYPE_UINT64) ++ AC_DEFINE(HAVE_TYPE_UINT64, [1], [have uint64] ) + fi + AC_MSG_RESULT($sc_cv_type_uint64) + +@@ -859,7 +859,7 @@ + #include <sys/select.h> + #endif], + [fd_set s; s.fds_bits[0]=0;], +-[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FDS_BITS)], ++[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FDS_BITS, [1], [have fds bits])], + [AC_MSG_RESULT(no);]) + + AC_MSG_CHECKING(for sa_family_t) +@@ -870,7 +870,7 @@ + [sc_cv_type_sa_family_t=yes], + [sc_cv_type_sa_family_t=no])]) + if test $sc_cv_type_sa_family_t = yes; then +- AC_DEFINE(HAVE_TYPE_SA_FAMILY_T) ++ AC_DEFINE(HAVE_TYPE_SA_FAMILY_T, [1], [have sa family_t type]) + fi + AC_MSG_RESULT($sc_cv_type_sa_family_t) + +@@ -880,7 +880,7 @@ + [sc_cv_struct_sigaction_sa_sigaction=yes], + [sc_cv_struct_sigaction_sa_sigaction=no])]) + if test $sc_cv_struct_sigaction_sa_sigaction = yes; then +- AC_DEFINE(HAVE_STRUCT_SIGACTION_SA_SIGACTION) ++ AC_DEFINE(HAVE_STRUCT_SIGACTION_SA_SIGACTION, [1], [sigaction]) + fi + AC_MSG_RESULT($sc_cv_struct_sigaction_sa_sigaction) + +@@ -888,11 +888,11 @@ + AC_MSG_CHECKING(for termios.c_ispeed) + AC_CACHE_VAL(sc_cv_termios_ispeed, + [AC_TRY_COMPILE([#include <termios.h>], +-[struct termios t; t.c_ispeed=0;], ++[struct termios t; t.c_ispeed=ISPEED_OFFSET; t.c_ospeed=OSPEED_OFFSET;], + [sc_cv_termios_ispeed=yes], + [sc_cv_termios_ispeed=no])]) + if test $sc_cv_termios_ispeed = yes; then +- AC_DEFINE(HAVE_TERMIOS_ISPEED) ++ AC_DEFINE(HAVE_TERMIOS_ISPEED, [1], [have ispeed]) + fi + AC_MSG_RESULT($sc_cv_termios_ispeed) + +@@ -923,7 +923,7 @@ + LIBS="$LIBS1" + AC_MSG_RESULT($ac_cv_ispeed_offset) + if test $ac_cv_ispeed_offset -ge 0; then +- AC_DEFINE_UNQUOTED(ISPEED_OFFSET, $ac_cv_ispeed_offset) ++ AC_DEFINE_UNQUOTED(ISPEED_OFFSET, $ac_cv_ispeed_offset, [have ispeed]) + fi + fi + +@@ -942,7 +942,7 @@ + )] + )]) + if test $ac_cv_svid3 = yes; then +- AC_DEFINE(_SVID3) ++ AC_DEFINE(_SVID3, [1], [svid3]) + fi + AC_MSG_RESULT($ac_cv_svid3) + +@@ -957,7 +957,7 @@ + [sc_cv_struct_timespec=yes], + [sc_cv_struct_timespec=no])]) + if test $sc_cv_struct_timespec = yes; then +- AC_DEFINE(HAVE_STRUCT_TIMESPEC) ++ AC_DEFINE(HAVE_STRUCT_TIMESPEC, [1], [struct timespec]) + fi + AC_MSG_RESULT($sc_cv_struct_timespec) + +@@ -970,7 +970,7 @@ + [sc_cv_struct_linger=yes], + [sc_cv_struct_linger=no])]) + if test $sc_cv_struct_linger = yes; then +- AC_DEFINE(HAVE_STRUCT_LINGER) ++ AC_DEFINE(HAVE_STRUCT_LINGER, [1], [struct linger]) + fi + AC_MSG_RESULT($sc_cv_struct_linger) + +@@ -984,7 +984,7 @@ + [sc_cv_struct_ip_mreq=yes], + [sc_cv_struct_ip_mreq=no])]) + if test $sc_cv_struct_ip_mreq = yes; then +- AC_DEFINE(HAVE_STRUCT_IP_MREQ) ++ AC_DEFINE(HAVE_STRUCT_IP_MREQ, [1], [have struct ip mreq]) + fi + AC_MSG_RESULT($sc_cv_struct_ip_mreq) + +@@ -997,7 +997,7 @@ + [sc_cv_struct_ip_mreqn=yes], + [sc_cv_struct_ip_mreqn=no])]) + if test $sc_cv_struct_ip_mreqn = yes; then +- AC_DEFINE(HAVE_STRUCT_IP_MREQN) ++ AC_DEFINE(HAVE_STRUCT_IP_MREQN, [1], [have struct ip mreqn]) + fi + AC_MSG_RESULT($sc_cv_struct_ip_mreqn) + +@@ -1010,7 +1010,7 @@ + [sc_cv_struct_ipv6_mreq=yes], + [sc_cv_struct_ipv6_mreq=no])]) + if test $sc_cv_struct_ipv6_mreq = yes; then +- AC_DEFINE(HAVE_STRUCT_IPV6_MREQ) ++ AC_DEFINE(HAVE_STRUCT_IPV6_MREQ, [1], [have struct ipv5 mreq]) + fi + AC_MSG_RESULT($sc_cv_struct_ipv6_mreq) + +@@ -1024,7 +1024,7 @@ + [sc_cv_struct_ifreq=yes], + [sc_cv_struct_ifreq=no])]) + if test $sc_cv_struct_ifreq = yes; then +- AC_DEFINE(HAVE_STRUCT_IFREQ) ++ AC_DEFINE(HAVE_STRUCT_IFREQ, [1], [have struct ifreq]) + fi + AC_MSG_RESULT($sc_cv_struct_ifreq) + +@@ -1039,7 +1039,7 @@ + [sc_cv_struct_ifreq_ifr_index=yes], + [sc_cv_struct_ifreq_ifr_index=no])]) + if test $sc_cv_struct_ifreq_ifr_index = yes; then +- AC_DEFINE(HAVE_STRUCT_IFREQ_IFR_INDEX) ++ AC_DEFINE(HAVE_STRUCT_IFREQ_IFR_INDEX, [1], [have struct ifreq ifr]) + fi + AC_MSG_RESULT($sc_cv_struct_ifreq_ifr_index) + +@@ -1054,7 +1054,7 @@ + [sc_cv_struct_ifreq_ifr_ifindex=yes], + [sc_cv_struct_ifreq_ifr_ifindex=no])]) + if test $sc_cv_struct_ifreq_ifr_ifindex = yes; then +- AC_DEFINE(HAVE_STRUCT_IFREQ_IFR_IFINDEX) ++ AC_DEFINE(HAVE_STRUCT_IFREQ_IFR_IFINDEX, [1], [have struct ifreq ifindex]) + fi + AC_MSG_RESULT($sc_cv_struct_ifreq_ifr_ifindex) + +@@ -1069,7 +1069,7 @@ + [sc_cv_struct_sockaddr_salen=yes], + [sc_cv_struct_sockaddr_salen=no])]) + if test $sc_cv_struct_sockaddr_salen = yes; then +- AC_DEFINE(HAVE_STRUCT_SOCKADDR_SALEN) ++ AC_DEFINE(HAVE_STRUCT_SOCKADDR_SALEN, [1], [sockaddr salen]) + fi + AC_MSG_RESULT($sc_cv_struct_sockaddr_salen) + +@@ -1080,31 +1080,31 @@ + #include <netinet/in.h>], + [struct sockaddr_in6 sa6;sa6.sin6_addr.s6_addr[0]=0;], + [AC_MSG_RESULT(s6_addr); +- AC_DEFINE(HAVE_IP6_SOCKADDR, 0)], ++ AC_DEFINE(HAVE_IP6_SOCKADDR, 0, [ip6 sockaddr])], + [AC_TRY_COMPILE([#include <sys/types.h> + #include <netinet/in.h>], + [struct sockaddr_in6 sa6;sa6.sin6_addr.u6_addr.u6_addr16[0]=0;], + [AC_MSG_RESULT(u6_addr.u6_addr16); +- AC_DEFINE(HAVE_IP6_SOCKADDR, 1)], ++ AC_DEFINE(HAVE_IP6_SOCKADDR, 1, [ip6 sockaddr])], + [AC_TRY_COMPILE([#include <sys/types.h> + #include <netinet/in.h>], + [struct sockaddr_in6 sa6;sa6.sin6_addr.u6_addr16[0]=0;], +- [AC_MSG_RESULT(u6_addr16); AC_DEFINE(HAVE_IP6_SOCKADDR, 2)], ++ [AC_MSG_RESULT(u6_addr16); AC_DEFINE(HAVE_IP6_SOCKADDR, 2, [ip6 sockaddr])], + [AC_TRY_COMPILE([#include <sys/types.h> + #include <netinet/in.h>], + [struct sockaddr_in6 sa6;sa6.sin6_addr.in6_u.u6_addr16[0]=0;], + [AC_MSG_RESULT(in6_u.u6_addr16); +- AC_DEFINE(HAVE_IP6_SOCKADDR, 3)], ++ AC_DEFINE(HAVE_IP6_SOCKADDR, 3, [ip6 sockaddr])], + [AC_TRY_COMPILE([#include <sys/types.h> + #include <netinet/in.h>], + [struct sockaddr_in6 sa6;sa6.sin6_addr._S6_un._S6_u32[0]=0;], + [AC_MSG_RESULT(_S6_un._S6_u32); +- AC_DEFINE(HAVE_IP6_SOCKADDR, 4)], ++ AC_DEFINE(HAVE_IP6_SOCKADDR, 4, [ip6 sockaddr])], + [AC_TRY_COMPILE([#include <sys/types.h> + #include <netinet/in.h>], + [struct sockaddr_in6 sa6;sa6.sin6_addr.__u6_addr.__u6_addr32[0]=0;], + [AC_MSG_RESULT(__u6_addr.__u6_addr32); +- AC_DEFINE(HAVE_IP6_SOCKADDR, 5)], ++ AC_DEFINE(HAVE_IP6_SOCKADDR, 5, [ip6 sockaddr])], + + [AC_MSG_RESULT([none or unknown])] + )])])])])]) +@@ -1116,7 +1116,7 @@ + [sc_cv_struct_iovec=yes], + [sc_cv_struct_iovec=no])]) + if test $sc_cv_struct_iovec = yes; then +- AC_DEFINE(HAVE_STRUCT_IOVEC) ++ AC_DEFINE(HAVE_STRUCT_IOVEC, [1], [have struct iovec]) + fi + AC_MSG_RESULT($sc_cv_struct_iovec) + +@@ -1129,7 +1129,7 @@ + [sc_cv_struct_msghdr_msgcontrol=yes], + [sc_cv_struct_msghdr_msgcontrol=no])]) + if test $sc_cv_struct_msghdr_msgcontrol = yes; then +- AC_DEFINE(HAVE_STRUCT_MSGHDR_MSGCONTROL) ++ AC_DEFINE(HAVE_STRUCT_MSGHDR_MSGCONTROL, [1], [have struct msgcontrol]) + fi + AC_MSG_RESULT($sc_cv_struct_msghdr_msgcontrol) + +@@ -1142,7 +1142,7 @@ + [sc_cv_struct_msghdr_msgcontrollen=yes], + [sc_cv_struct_msghdr_msgcontrollen=no])]) + if test $sc_cv_struct_msghdr_msgcontrollen = yes; then +- AC_DEFINE(HAVE_STRUCT_MSGHDR_MSGCONTROLLEN) ++ AC_DEFINE(HAVE_STRUCT_MSGHDR_MSGCONTROLLEN, [1], [have struct msghdr msgcontrollen]) + fi + AC_MSG_RESULT($sc_cv_struct_msghdr_msgcontrollen) + +@@ -1155,7 +1155,7 @@ + [sc_cv_struct_msghdr_msgflags=yes], + [sc_cv_struct_msghdr_msgflags=no])]) + if test $sc_cv_struct_msghdr_msgflags = yes; then +- AC_DEFINE(HAVE_STRUCT_MSGHDR_MSGFLAGS) ++ AC_DEFINE(HAVE_STRUCT_MSGHDR_MSGFLAGS, [1], [msgflags]) + fi + AC_MSG_RESULT($sc_cv_struct_msghdr_msgflags) + +@@ -1168,7 +1168,7 @@ + [sc_cv_struct_cmsghdr=yes], + [sc_cv_struct_cmsghdr=no])]) + if test $sc_cv_struct_cmsghdr = yes; then +- AC_DEFINE(HAVE_STRUCT_CMSGHDR) ++ AC_DEFINE(HAVE_STRUCT_CMSGHDR, [1], [have cmshdr]) + fi + AC_MSG_RESULT($sc_cv_struct_cmsghdr) + +@@ -1181,7 +1181,7 @@ + [sc_cv_struct_in_pktinfo=yes], + [sc_cv_struct_in_pktinfo=no])]) + if test $sc_cv_struct_in_pktinfo = yes; then +- AC_DEFINE(HAVE_STRUCT_IN_PKTINFO) ++ AC_DEFINE(HAVE_STRUCT_IN_PKTINFO, [1], [pktinfo]) + fi + AC_MSG_RESULT($sc_cv_struct_in_pktinfo) + +@@ -1211,7 +1211,7 @@ + [sc_cv_struct_ip_ip_hl=yes], + [sc_cv_struct_ip_ip_hl=no])]) + if test $sc_cv_struct_ip_ip_hl = yes; then +- AC_DEFINE(HAVE_STRUCT_IP_IP_HL) ++ AC_DEFINE(HAVE_STRUCT_IP_IP_HL, [1], [foo]) + fi + AC_MSG_RESULT($sc_cv_struct_ip_ip_hl) + +@@ -1219,19 +1219,19 @@ + dnl Library function checks + + dnl Check sigaction() +-AC_CHECK_FUNC(sigaction, AC_DEFINE(HAVE_SIGACTION)) ++AC_CHECK_FUNC(sigaction, AC_DEFINE(HAVE_SIGACTION, [1], [foo])) + + dnl Check for 64bit versions of system calls +-AC_CHECK_FUNC(stat64, AC_DEFINE(HAVE_STAT64)) +-AC_CHECK_FUNC(fstat64, AC_DEFINE(HAVE_FSTAT64)) +-AC_CHECK_FUNC(lstat64, AC_DEFINE(HAVE_LSTAT64)) +-AC_CHECK_FUNC(lseek64, AC_DEFINE(HAVE_LSEEK64)) +-AC_CHECK_FUNC(truncate64, AC_DEFINE(HAVE_TRUNCATE64)) +-AC_CHECK_FUNC(ftruncate64, AC_DEFINE(HAVE_FTRUNCATE64)) +- +-AC_CHECK_FUNC(strtoll, AC_DEFINE(HAVE_STRTOLL)) +-AC_CHECK_FUNC(hstrerror, AC_DEFINE(HAVE_HSTRERROR)) +-AC_CHECK_FUNC(inet_ntop, AC_DEFINE(HAVE_INET_NTOP)) ++AC_CHECK_FUNC(stat64, AC_DEFINE(HAVE_STAT64, [1], [foo])) ++AC_CHECK_FUNC(fstat64, AC_DEFINE(HAVE_FSTAT64, [1], [foo])) ++AC_CHECK_FUNC(lstat64, AC_DEFINE(HAVE_LSTAT64, [1], [foo])) ++AC_CHECK_FUNC(lseek64, AC_DEFINE(HAVE_LSEEK64, [1], [foo])) ++AC_CHECK_FUNC(truncate64, AC_DEFINE(HAVE_TRUNCATE64, [1], [foo])) ++AC_CHECK_FUNC(ftruncate64, AC_DEFINE(HAVE_FTRUNCATE64, [1], [foo])) ++ ++AC_CHECK_FUNC(strtoll, AC_DEFINE(HAVE_STRTOLL, [1], [foo])) ++AC_CHECK_FUNC(hstrerror, AC_DEFINE(HAVE_HSTRERROR, [1], [foo])) ++AC_CHECK_FUNC(inet_ntop, AC_DEFINE(HAVE_INET_NTOP, [1], [foo])) + + #if test "$ac_cv_func_hstrerror" = "yes"; then + # AC_MSG_CHECKING(if _XOPEN_SOURCE_EXTENDED is helpful) +@@ -1254,25 +1254,26 @@ + + dnl Search for openpty() + # MacOS +-AC_CHECK_FUNC(openpty, AC_DEFINE(HAVE_OPENPTY)) ++AC_CHECK_FUNC(openpty, AC_DEFINE(HAVE_OPENPTY, [1], [foo])) + # AIX + AC_CHECK_LIB(bsd, openpty, +- [LIBS="-lbsd $LIBS"; AC_DEFINE(HAVE_OPENPTY)]) ++ [LIBS="-lbsd $LIBS"; AC_DEFINE(HAVE_OPENPTY, [1], [foo])]) + # Linux 2.4 + AC_CHECK_LIB(util, openpty, +- [LIBS="-lutil $LIBS"; AC_DEFINE(HAVE_OPENPTY)]) ++ [LIBS="-lutil $LIBS"; AC_DEFINE(HAVE_OPENPTY, [1], [foo])]) ++ + + dnl Search for flock() + # with Linux it's in libc, with AIX in libbsd +-AC_CHECK_FUNC(flock, AC_DEFINE(HAVE_FLOCK), ++AC_CHECK_FUNC(flock, AC_DEFINE(HAVE_FLOCK, [1], [have flock]), + AC_CHECK_LIB(bsd, flock, [LIBS="-lbsd $LIBS"])) + + dnl Search for setenv() +-AC_CHECK_FUNC(setenv, AC_DEFINE(HAVE_SETENV), ++AC_CHECK_FUNC(setenv, AC_DEFINE(HAVE_SETENV, [1], [have setenv]), + AC_CHECK_LIB(isode, setenv, [LIBS="-lisode $LIBS"])) + + dnl Search for unsetenv() +-AC_CHECK_FUNC(unsetenv, AC_DEFINE(HAVE_UNSETENV)) ++AC_CHECK_FUNC(unsetenv, AC_DEFINE(HAVE_UNSETENV, [1], [have unsetenv])) + + dnl Search for SSLv2_client_method, SSLv2_server_method + AC_CHECK_FUNC(SSLv3_client_method, AC_DEFINE(HAVE_SSLv3_client_method), AC_CHECK_LIB(crypt, SSLv3_client_method, [LIBS=-lcrypt $LIBS])) +@@ -1295,7 +1296,7 @@ + [ac_cv_have_z_modifier=no], + [ac_cv_have_z_modifier=no])]) + if test $ac_cv_have_z_modifier = yes; then +- AC_DEFINE(HAVE_FORMAT_Z) ++ AC_DEFINE(HAVE_FORMAT_Z, [1], [have format z]) + fi + AC_MSG_RESULT($ac_cv_have_z_modifier) + +@@ -1334,7 +1335,8 @@ + [$2=-1] + ) + LIBS="$LIBS1"]) +-AC_DEFINE_UNQUOTED($1_SHIFT, ${$2}) ++SHIFT_NAME="$1"_SHIFT ++AC_DEFINE_UNQUOTED($SHIFT_NAME, ${$2}, [foo]) + if test "$2" = -1; then + AC_MSG_WARN(please determine $1_SHIFT manually) + fi +@@ -1374,7 +1376,7 @@ + [$4="0 /* unknown, taking default */" + ]) ]) ]) ]) ]) ]) ]) ]) + CFLAGS="$CFLAGS1" ]) +-AC_DEFINE_UNQUOTED($3, ${$4}) ++AC_DEFINE_UNQUOTED($3, ${$4}, [foo]) + ]) + + dnl find what physical type (basic C type) describes the given struct or union +@@ -1406,7 +1408,7 @@ + [$5="0 /* unknown, taking default */" + ]) ]) ]) ]) ]) ]) ]) ]) + CFLAGS="$CFLAGS1" ]) +-AC_DEFINE_UNQUOTED($4, ${$5}) ++AC_DEFINE_UNQUOTED($4, ${$5}, [foo]) + ]) + + AC_BASIC_TYPE([#include <stdlib.h>], size_t, HAVE_BASIC_SIZE_T, sc_cv_type_sizet_basic) +@@ -1465,13 +1467,13 @@ + + AC_MSG_CHECKING(for /dev/ptmx) + if test -c /dev/ptmx; then +- AC_DEFINE(HAVE_DEV_PTMX, 1) ++ AC_DEFINE(HAVE_DEV_PTMX, 1, [ptmx]) + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + AC_MSG_CHECKING(for /dev/ptc) + if test -c /dev/ptc; then +- AC_DEFINE(HAVE_DEV_PTC) ++ AC_DEFINE(HAVE_DEV_PTC, 1, [ptc]) + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) +@@ -1480,7 +1482,7 @@ + + AC_MSG_CHECKING(for /proc) + if test -d /proc; then +- AC_DEFINE(HAVE_PROC_DIR, 1) ++ AC_DEFINE(HAVE_PROC_DIR, 1, [procdir]) + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) +@@ -1488,7 +1490,7 @@ + + AC_MSG_CHECKING(for /proc/*/fd) + if test -d /proc/$$/fd; then +- AC_DEFINE(HAVE_PROC_DIR_FD, 1) ++ AC_DEFINE(HAVE_PROC_DIR_FD, 1, [procdir fd]) + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) +@@ -1528,7 +1530,7 @@ + done]) + ]) + if test "$sc_cv_have_tcpd_h" = "yes"; then +- AC_DEFINE(HAVE_TCPD_H) ++ AC_DEFINE(HAVE_TCPD_H, [1], [have tcpd]) + fi + AC_MSG_NOTICE(checked for tcpd.h... $sc_cv_have_tcpd_h) + fi # end checking for tcpd.h +@@ -1561,14 +1563,14 @@ + ] + ) + if test "$sc_cv_have_libwrap" = 'yes'; then +- AC_DEFINE(HAVE_LIBWRAP) ++ AC_DEFINE(HAVE_LIBWRAP, [1], [libwrap]) + fi + AC_MSG_RESULT($sc_cv_have_libwrap) + fi + # + if test -n "$WITH_LIBWRAP"; then + if test "$sc_cv_have_tcpd_h" = "yes" -a "$sc_cv_have_libwrap" = "yes"; then +- AC_DEFINE(WITH_LIBWRAP) ++ AC_DEFINE(WITH_LIBWRAP, [1], [libwrap]) + else + AC_MSG_WARN([not all components of tcp wrappers found, disabling it]); + fi +@@ -1583,7 +1585,7 @@ + [sc_cv_have_hosts_allow_table=yes], + [sc_cv_have_hosts_allow_table=no])]) + if test $sc_cv_have_hosts_allow_table = yes; then +- AC_DEFINE(HAVE_HOSTS_ALLOW_TABLE) ++ AC_DEFINE(HAVE_HOSTS_ALLOW_TABLE, [1], [hosts allow table]) + fi + AC_MSG_RESULT($sc_cv_have_hosts_allow_table) + fi # test -n "$WITH_LIBWRAP" diff --git a/meta/recipes-connectivity/socat/socat_1.7.2.0.bb b/meta/recipes-connectivity/socat/socat_1.7.2.0.bb new file mode 100644 index 000000000..1273dcf0f --- /dev/null +++ b/meta/recipes-connectivity/socat/socat_1.7.2.0.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Socat is a relay for bidirectional data \ +transfer between two independent data channels." +HOMEPAGE = "http://www.dest-unreach.org/socat/" + +SECTION = "console/network" + +DEPENDS = "openssl" + +LICENSE = "GPL-2.0+-with-OpenSSL-exception" + +PR = "r0" +SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2;name=src \ + file://compile.patch" + +LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760 \ + file://README;beginline=252;endline=282;md5=79246f11a1db0b6ccec54d1fb711c01e" + +SRC_URI[src.md5sum] = "eb563dd00b9d39a49fb62a677fc941fe" +SRC_URI[src.sha256sum] = "59b3bde927c14fbc3f9e42c782971710da8a89bbf46f7531f09a681754041802" + +EXTRA_OECONF = " --disable-termios " + +inherit autotools + +do_install_prepend () { + mkdir -p ${D}${bindir} + install -d ${D}${bindir} ${D}${mandir}/man1 +} diff --git a/meta/recipes-connectivity/telepathy/libtelepathy/doublefix.patch b/meta/recipes-connectivity/telepathy/libtelepathy/doublefix.patch new file mode 100644 index 000000000..a7737fbf0 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/libtelepathy/doublefix.patch @@ -0,0 +1,18 @@ +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/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch b/meta/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch new file mode 100644 index 000000000..37679ab76 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch @@ -0,0 +1,15 @@ +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/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb b/meta/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb new file mode 100644 index 000000000..a7c666795 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb @@ -0,0 +1,23 @@ +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" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://src/tp-conn.c;beginline=1;endline=19;md5=4c58069f77d601cc59200bce5396c7cb" +PR = "r4" + +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 + +FILES_${PN} += "${datadir}/telepathy \ + ${datadir}/dbus-1" diff --git a/meta/recipes-connectivity/telepathy/telepathy-glib_0.18.1.bb b/meta/recipes-connectivity/telepathy/telepathy-glib_0.18.1.bb new file mode 100644 index 000000000..81da5f89d --- /dev/null +++ b/meta/recipes-connectivity/telepathy/telepathy-glib_0.18.1.bb @@ -0,0 +1,24 @@ +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" +LICENSE = "LGPLv2.1+" +PR = "r0" + +SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "461732739e3fbf8467991bbe661fb29a" +SRC_URI[sha256sum] = "3738256689e34c22ddf9c4eb33f44ce7505c18fb1a14c53b8e56dd9c262f4c6d" + +LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e" + +inherit autotools pkgconfig gettext + +FILES_${PN} += "${datadir}/telepathy \ + ${datadir}/dbus-1" + +do_install_append() { + rmdir ${D}${bindir} + rmdir ${D}${libexecdir} + rmdir ${D}${servicedir} +} diff --git a/meta/recipes-connectivity/telepathy/telepathy-idle_0.1.11.bb b/meta/recipes-connectivity/telepathy/telepathy-idle_0.1.11.bb new file mode 100644 index 000000000..291f4f6f5 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/telepathy-idle_0.1.11.bb @@ -0,0 +1,18 @@ +SUMMARY = "Telepathy IRC connection manager" +DESCRIPTION = "Telepathy implementation of the Internet Relay Chat protocols." +HOMEPAGE = "http://telepathy.freedesktop.org/wiki/" +DEPENDS = "glib-2.0 dbus telepathy-glib openssl" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://src/idle.c;beginline=1;endline=19;md5=b06b1e2594423111a1a7910b0eefc7f9" +PR = "r1" + +SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "be277e8f0bd32ae56af799f0ff4ec72e" +SRC_URI[sha256sum] = "047ccbec0b91ac187467ede5a90966f9ec881df56fd8c80cb3bce3710f66fda0" + +inherit autotools pkgconfig + +FILES_${PN} += "${datadir}/telepathy \ + ${datadir}/dbus-1" diff --git a/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.12.0.bb b/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.12.0.bb new file mode 100644 index 000000000..65b5d89a5 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.12.0.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "Central control for Telepathy connection managers" +HOMEPAGE = "http://mission-control.sourceforge.net/" +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" + +SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-mission-control/telepathy-mission-control-${PV}.tar.gz" + +PR = "r0" + +inherit autotools pkgconfig + +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.*" + +SRC_URI[md5sum] = "f39dcfef785a37dc21efa9af06be2e61" +SRC_URI[sha256sum] = "660aeb65543e1b029dfde6a895934cb20b766644bae2a68c0030052aa6645e77" diff --git a/meta/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch b/meta/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch new file mode 100644 index 000000000..248824606 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch @@ -0,0 +1,43 @@ +Add dependency of __init__.py + +Tasks must be done after exec of __init__, which creates the +src/_generated directory that tasks are based on. + +Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> + +Upstream-Status: Submitted +(However it seems that this project is out of maintanence.) + +diff -ruN telepathy-python-0.15.19-orig/src/Makefile.am telepathy-python-0.15.19/src/Makefile.am +--- telepathy-python-0.15.19-orig/src/Makefile.am 2011-03-10 08:51:49.000000000 +0800 ++++ telepathy-python-0.15.19/src/Makefile.am 2011-03-10 08:54:45.000000000 +0800 +@@ -39,17 +39,17 @@ + XSLTPROC_OPTS = --nonet --novalid --xinclude + tools_dir = $(top_srcdir)/tools + +-_generated/interfaces.py: $(tools_dir)/python-interfaces-generator.xsl $(wildcard $(spec_dir)/*.xml) ++_generated/interfaces.py: _generated/__init__.py $(tools_dir)/python-interfaces-generator.xsl $(wildcard $(spec_dir)/*.xml) + $(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \ + $(tools_dir)/python-interfaces-generator.xsl \ + $(spec_dir)/all.xml + +-_generated/constants.py: $(tools_dir)/python-constants-generator.xsl $(wildcard $(spec_dir)/*.xml) ++_generated/constants.py: _generated/__init__.py $(tools_dir)/python-constants-generator.xsl $(wildcard $(spec_dir)/*.xml) + $(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \ + $(tools_dir)/python-constants-generator.xsl \ + $(spec_dir)/all.xml + +-_generated/errors.py: $(tools_dir)/python-errors-generator.xsl $(wildcard $(spec_dir)/*.xml) ++_generated/errors.py: _generated/__init__.py $(tools_dir)/python-errors-generator.xsl $(wildcard $(spec_dir)/*.xml) + $(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \ + $(tools_dir)/python-errors-generator.xsl \ + $(spec_dir)/all.xml +@@ -58,7 +58,7 @@ + $(AM_V_GEN)$(mkdir_p) $(dir $@) + @echo "# Placeholder for package" > $@ + +-_generated/%.py: $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml ++_generated/%.py: _generated/__init__.py $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml + $(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \ + $(tools_dir)/spec-to-python.xsl \ + $(spec_dir)/$*.xml diff --git a/meta/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch b/meta/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch new file mode 100644 index 000000000..df95a4c13 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch @@ -0,0 +1,26 @@ +commit f6c67662145de889055a86a6b3b12c70a45fc8d5 +Author: Dongxiao Xu <dongxiao.xu@intel.com> +Date: Wed Sep 7 16:02:20 2011 +0800 + + Avoid duplicated installation of errors.py + + newer version of autotools don't seem to like listing files to install + twice. Remove one errors.py from the installation list. + + Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> + + Upstream-Status: Inappropirate [upstream inactive] + +diff --git a/src/Makefile.am b/src/Makefile.am +index 5c27dfe..7536e43 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -11,7 +11,7 @@ telepathy_PYTHON = \ + + # telepathy._generated.* auto-generated modules + spec_dir = $(top_srcdir)/spec +-spec_files := $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml)) ++spec_files := $(filter-out _generated/errors.py, $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml))) + + BUILT_SOURCES = \ + _generated/interfaces.py \ diff --git a/meta/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb b/meta/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb new file mode 100644 index 000000000..0113854d9 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "Telepathy framework - Python package" +HOMEPAGE = "http://telepathy.freedesktop.org/wiki/" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://src/utils.py;beginline=1;endline=17;md5=9a07d1a9791a7429a14e7b25c6c86822" + +RDEPENDS_${PN} += "python-dbus" + +SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ + file://parallel_make.patch \ + file://remove_duplicate_install.patch" + +PR = "r4" + +inherit autotools + +SRC_URI[md5sum] = "f7ca25ab3c88874015b7e9728f7f3017" +SRC_URI[sha256sum] = "244c0e1bf4bbd78ae298ea659fe10bf3a73738db550156767cc2477aedf72376" + +FILES_${PN} += "\ + ${libdir}/python*/site-packages/telepathy/*.py \ + ${libdir}/python*/site-packages/telepathy/*/*.py \ + " + +do_install_append () { + rm -f ${D}${libdir}/python*/site-packages/telepathy/*.pyc + rm -f ${D}${libdir}/python*/site-packages/telepathy/*.pyo + rm -f ${D}${libdir}/python*/site-packages/telepathy/*/*.pyc + rm -f ${D}${libdir}/python*/site-packages/telepathy/*/*.pyo +} diff --git a/meta/recipes-connectivity/wireless-tools/wireless-tools/avoid_strip.patch b/meta/recipes-connectivity/wireless-tools/wireless-tools/avoid_strip.patch new file mode 100644 index 000000000..f34e243de --- /dev/null +++ b/meta/recipes-connectivity/wireless-tools/wireless-tools/avoid_strip.patch @@ -0,0 +1,21 @@ +wireless_tools: Avoid stripping iwmulticall + +Upstream-Status: Inappropriate [other] + The removed code was from upstream. + +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> + +diff -ur wireless_tools.29.orig/Makefile wireless_tools.29/Makefile +--- wireless_tools.29.orig/Makefile 2011-06-18 11:35:12.183907453 -0500 ++++ wireless_tools.29/Makefile 2011-06-18 11:38:09.995907985 -0500 +@@ -135,9 +135,8 @@ + + macaddr: macaddr.o $(IWLIB) + +-# Always do symbol stripping here + iwmulticall: iwmulticall.o +- $(CC) $(LDFLAGS) -Wl,-s $(XCFLAGS) -o $@ $^ $(LIBS) ++ $(CC) $(LDFLAGS) $(STRIPFLAGS) $(XCFLAGS) -o $@ $^ $(LIBS) + + # It's a kind of magic... + wireless.h: diff --git a/meta/recipes-connectivity/wireless-tools/wireless-tools/man.patch b/meta/recipes-connectivity/wireless-tools/wireless-tools/man.patch new file mode 100644 index 000000000..8e16215ff --- /dev/null +++ b/meta/recipes-connectivity/wireless-tools/wireless-tools/man.patch @@ -0,0 +1,15 @@ +Upstream-Status: Inappropriate [configuration] + +--- wireless_tools.26/Makefile.orig 2003-06-18 03:38:58.000000000 +0200 ++++ wireless_tools.26/Makefile 2004-07-03 23:35:29.000000000 +0200 +@@ -57,8 +57,8 @@ + # Install directories + INSTALL_DIR= $(PREFIX)/sbin/ + INSTALL_LIB= $(PREFIX)/lib/ +-INSTALL_INC= $(PREFIX)/include/ +-INSTALL_MAN= $(PREFIX)/man/ ++INSTALL_INC= $(PREFIX)/usr/include/ ++INSTALL_MAN= $(PREFIX)/usr/share/man/ + + # Use local header if the version of wireless extensions is specified + ifdef FORCE_WEXT_VERSION diff --git a/meta/recipes-connectivity/wireless-tools/wireless-tools/remove.ldconfig.call.patch b/meta/recipes-connectivity/wireless-tools/wireless-tools/remove.ldconfig.call.patch new file mode 100644 index 000000000..3a22c3f1e --- /dev/null +++ b/meta/recipes-connectivity/wireless-tools/wireless-tools/remove.ldconfig.call.patch @@ -0,0 +1,19 @@ +When /etc/ld.so.cache is writeable by user running bitbake then it creates invalid cache +(in my case libstdc++.so cannot be found after building zlib(-native) and I have to call +touch */libstdc++.so && /sbin/ldconfig to fix it. + +So remove ldconfig call from make install-libs + +Upstream-Status: Inappropriate [disable feature] + +diff -uNr wireless_tools.29.orig/Makefile wireless_tools.29/Makefile +--- wireless_tools.29.orig/Makefile 2007-09-18 01:56:46.000000000 +0200 ++++ wireless_tools.29/Makefile 2012-02-15 20:46:41.780763514 +0100 +@@ -163,7 +163,6 @@ + install -m 755 $(DYNAMIC) $(INSTALL_LIB) + ln -sfn $(DYNAMIC) $(INSTALL_LIB)/$(DYNAMIC_LINK) + @echo "*** Don't forget to add $(INSTALL_LIB) to /etc/ld.so.conf, and run ldconfig as root. ***" +- @$(LDCONFIG) || echo "*** Could not run ldconfig ! ***" + + # Install the static library + install-static:: $(STATIC) diff --git a/meta/recipes-connectivity/wireless-tools/wireless-tools/wireless-tools.if-pre-up b/meta/recipes-connectivity/wireless-tools/wireless-tools/wireless-tools.if-pre-up new file mode 100755 index 000000000..2518a5c83 --- /dev/null +++ b/meta/recipes-connectivity/wireless-tools/wireless-tools/wireless-tools.if-pre-up @@ -0,0 +1,122 @@ +#!/bin/sh + +case "$METHOD" in loopback) exit 0 ;; esac + +IWCONFIG=/sbin/iwconfig +IWPRIV=/sbin/iwpriv + +if [ ! -x $IWCONFIG ]; then + exit 0 +fi + +# Detect and do nothing for linux-wlan-ng interfaces; +# which are configured by thier own if-pre-up script. +if [ -n "$IF_WIRELESS_TYPE" -a "$IF_WIRELESS_TYPE" = "wlan-ng" ]; then + exit 0 +fi + +if [ -n "$IF_NEEDS_RESET" ]; then + $IWPRIV "$IFACE" reset 1 + sleep 1 +fi + +if [ -n "$IF_NEEDS_FIRMWARE" ]; then + $IF_NEEDS_FIRMWARE "$IFACE" +fi + +if [ -n "$IF_WIRELESS_SENS" ]; then + $IWCONFIG "$IFACE" sens $IF_WIRELESS_SENS +fi + +if [ -n "$IF_WIRELESS_RATE" ]; then + $IWCONFIG "$IFACE" rate $IF_WIRELESS_RATE +fi + +if [ -n "$IF_WIRELESS_RTS" ]; then + $IWCONFIG "$IFACE" rts $IF_WIRELESS_RTS +fi + +if [ -n "$IF_WIRELESS_FRAG" ]; then + $IWCONFIG "$IFACE" frag $IF_WIRELESS_FRAG +fi + +if [ -n "$IF_WIRELESS_POWER" ]; then + $IWCONFIG "$IFACE" power $IF_WIRELESS_POWER +fi + +if [ -n "$IF_WIRELESS_POWERPERIOD" ]; then + $IWCONFIG "$IFACE" power period $IF_WIRELESS_POWERPERIOD +fi + +if [ -n "$IF_WIRELESS_POWERTIMEOUT" ]; then + $IWCONFIG "$IFACE" power timeout $IF_WIRELESS_POWERTIMEOUT +fi + +if [ -n "$IF_WIRELESS_TXPOWER" ]; then + $IWCONFIG "$IFACE" txpower $IF_WIRELESS_TXPOWER +fi + +if [ -n "$IF_WIRELESS_RETRY" ]; then + $IWCONFIG "$IFACE" retry $IF_WIRELESS_RETRY +fi + +if [ -n "$IF_WIRELESS_NICK" ]; then + $IWCONFIG "$IFACE" nick "$IF_WIRELESS_NICK" +fi + +if [ -n "$IF_WIRELESS_NWID" ]; then + $IWCONFIG "$IFACE" nwid "$IF_WIRELESS_NWID" +fi + +if [ -n "$IF_WIRELESS_ENC" ]; then + eval $IWCONFIG "$IFACE" enc $IF_WIRELESS_ENC +fi + +if [ -n "$IF_WIRELESS_KEY" ]; then + eval $IWCONFIG "$IFACE" key $IF_WIRELESS_KEY +fi + +if [ -n "$IF_WIRELESS_KEY1" ]; then + $IWCONFIG "$IFACE" key [1] "$IF_WIRELESS_KEY1" +fi + +if [ -n "$IF_WIRELESS_KEY2" ]; then + $IWCONFIG "$IFACE" key [2] "$IF_WIRELESS_KEY2" +fi + +if [ -n "$IF_WIRELESS_KEY3" ]; then + $IWCONFIG "$IFACE" key [3] "$IF_WIRELESS_KEY3" +fi + +if [ -n "$IF_WIRELESS_KEY4" ]; then + $IWCONFIG "$IFACE" key [4] "$IF_WIRELESS_KEY4" +fi + +if [ -n "$IF_WIRELESS_DEFAULTKEY" ]; then + $IWCONFIG "$IFACE" key ["$IF_WIRELESS_DEFAULTKEY"] +fi + +if [ -n "$IF_WIRELESS_KEYMODE" ]; then + $IWCONFIG "$IFACE" key "$IF_WIRELESS_KEYMODE" +fi + +if [ -n "$IF_WIRELESS_MODE" ]; then + $IWCONFIG "$IFACE" mode $IF_WIRELESS_MODE +fi + +if [ -n "$IF_WIRELESS_FREQ" ]; then + $IWCONFIG "$IFACE" freq $IF_WIRELESS_FREQ +fi + +if [ -n "$IF_WIRELESS_CHANNEL" ]; then + $IWCONFIG "$IFACE" channel $IF_WIRELESS_CHANNEL +fi + +if [ -n "$IF_WIRELESS_ESSID" ]; then + $IWCONFIG "$IFACE" essid "$IF_WIRELESS_ESSID" +fi + +if [ -n "$IF_WIRELESS_COMMIT" ]; then + $IWCONFIG "$IFACE" commit +fi + diff --git a/meta/recipes-connectivity/wireless-tools/wireless-tools/zzz-wireless.if-pre-up b/meta/recipes-connectivity/wireless-tools/wireless-tools/zzz-wireless.if-pre-up new file mode 100644 index 000000000..4c8e95bf2 --- /dev/null +++ b/meta/recipes-connectivity/wireless-tools/wireless-tools/zzz-wireless.if-pre-up @@ -0,0 +1,34 @@ +#!/bin/sh +# +# /etc/network/if-pre-up.d/zzz-wireless +# by Stefan Tomanek (stefan@pico.ruhr.de) + + +IWCONFIG=/sbin/iwconfig +IFCONFIG=/sbin/ifconfig +GREP=/bin/grep +LOGGER=/usr/bin/logger +SLEEP=/bin/sleep + +# How long do we wait for association? +RETRIES=15 +SLEEPTIME=1 + +# Only sleep if we use DHCP (add others methods seperated by spaces) +ONLY_FOR="static dhcp" + +if [ -z "$IF_WIRELESS_TYPE" ] && echo "$ONLY_FOR" | grep -q "$METHOD" ; then + $IFCONFIG $IFACE up + $LOGGER Checking for WLAN association... + while ( [ $RETRIES -gt 0 ] && ($IWCONFIG "$IFACE" | $GREP -q "Access Point: Not-Associated") ); do + $LOGGER No association yet, $RETRIES retries until timeout + RETRIES=$(($RETRIES-1)) + $SLEEP $SLEEPTIME + done + + if [ $RETRIES -eq 0 ]; then + $LOGGER Timeout waiting for association, continuing anyway... + else + $LOGGER Found association! + fi +fi diff --git a/meta/recipes-connectivity/wireless-tools/wireless-tools_29.bb b/meta/recipes-connectivity/wireless-tools/wireless-tools_29.bb new file mode 100644 index 000000000..209f29ae2 --- /dev/null +++ b/meta/recipes-connectivity/wireless-tools/wireless-tools_29.bb @@ -0,0 +1,55 @@ +DESCRIPTION = "Tools for the Linux Standard Wireless Extension Subsystem" +HOMEPAGE = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html" +LICENSE = "GPLv2 & (LGPLv2.1 | MPL-1.1 | BSD)" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://iwconfig.c;beginline=1;endline=12;md5=cf710eb1795c376eb10ea4ff04649caf \ + file://iwevent.c;beginline=59;endline=72;md5=d66a10026d4394f0a5b1c5587bce4537 \ + file://sample_enc.c;beginline=1;endline=4;md5=838372be07874260b566bae2f6ed33b6" +SECTION = "base" +PE = "1" +PR = "r4" + +SRC_URI = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz \ + file://remove.ldconfig.call.patch \ + file://man.patch \ + file://wireless-tools.if-pre-up \ + file://zzz-wireless.if-pre-up \ + file://avoid_strip.patch" + +SRC_URI[md5sum] = "e06c222e186f7cc013fd272d023710cb" +SRC_URI[sha256sum] = "6fb80935fe208538131ce2c4178221bab1078a1656306bce8909c19887e2e5a1" +S = "${WORKDIR}/wireless_tools.29" + +CFLAGS =+ "-I${S}" +EXTRA_OEMAKE = "-e 'BUILD_SHARED=y' \ + 'INSTALL_DIR=${D}${base_sbindir}' \ + 'INSTALL_LIB=${D}${libdir}' \ + 'INSTALL_INC=${D}${includedir}' \ + 'INSTALL_MAN=${D}${mandir}'" + +do_compile() { + oe_runmake all libiw.a +} + +do_install() { + oe_runmake PREFIX=${D} install-iwmulticall install-dynamic install-man install-hdr + install -d ${D}${sbindir} + install -m 0755 ifrename ${D}${sbindir}/ifrename + # Disabled by RP - 20/8/08 - We don't seem to need/use these + #install -d ${D}${sysconfdir}/network/if-pre-up.d + #install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools + #install ${WORKDIR}/zzz-wireless.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/zzz-wireless +} + +PACKAGES = "libiw-dbg ifrename-dbg ${PN}-dbg \ +libiw libiw-dev libiw-doc ifrename-doc ifrename ${PN} ${PN}-doc" + +FILES_libiw-dbg = "${libdir}/.debug/*.so.*" +FILES_ifrename-dbg = "${sbindir}/.debug/ifrename" +FILES_libiw = "${libdir}/*.so.*" +FILES_libiw-dev = "${libdir}/*.a ${libdir}/*.so ${includedir}" +FILES_libiw-doc = "${mandir}/man7" +FILES_ifrename = "${sbindir}/ifrename" +FILES_ifrename-doc = "${mandir}/man8/ifrename.8 ${mandir}/man5/iftab.5" +FILES_${PN} = "${bindir} ${sbindir}/iw* ${base_sbindir} ${base_bindir} ${sysconfdir}/network" +FILES_${PN}-doc = "${mandir}" diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/99_wpa_supplicant b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/99_wpa_supplicant new file mode 100644 index 000000000..6ff4dd882 --- /dev/null +++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/99_wpa_supplicant @@ -0,0 +1 @@ +d root root 0700 /var/run/wpa_supplicant none diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/defconfig-gnutls b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/defconfig-gnutls new file mode 100644 index 000000000..e03338fe0 --- /dev/null +++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/defconfig-gnutls @@ -0,0 +1,409 @@ +# Example wpa_supplicant build time configuration +# +# This file lists the configuration options that are used when building the +# hostapd binary. All lines starting with # are ignored. Configuration option +# lines must be commented out complete, if they are not to be included, i.e., +# just setting VARIABLE=n is not disabling that variable. +# +# This file is included in Makefile, so variables like CFLAGS and LIBS can also +# be modified from here. In most cases, these lines should use += in order not +# to override previous values of the variables. + + +# Uncomment following two lines and fix the paths if you have installed OpenSSL +# or GnuTLS in non-default location +#CFLAGS += -I/usr/local/openssl/include +#LIBS += -L/usr/local/openssl/lib + +# Some Red Hat versions seem to include kerberos header files from OpenSSL, but +# the kerberos files are not in the default include path. Following line can be +# used to fix build issues on such systems (krb5.h not found). +#CFLAGS += -I/usr/include/kerberos + +# Example configuration for various cross-compilation platforms + +#### sveasoft (e.g., for Linksys WRT54G) ###################################### +#CC=mipsel-uclibc-gcc +#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc +#CFLAGS += -Os +#CPPFLAGS += -I../src/include -I../../src/router/openssl/include +#LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl +############################################################################### + +#### openwrt (e.g., for Linksys WRT54G) ####################################### +#CC=mipsel-uclibc-gcc +#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc +#CFLAGS += -Os +#CPPFLAGS=-I../src/include -I../openssl-0.9.7d/include \ +# -I../WRT54GS/release/src/include +#LIBS = -lssl +############################################################################### + + +# Driver interface for Host AP driver +CONFIG_DRIVER_HOSTAP=y + +# Driver interface for Agere driver +#CONFIG_DRIVER_HERMES=y +# Change include directories to match with the local setup +#CFLAGS += -I../../hcf -I../../include -I../../include/hcf +#CFLAGS += -I../../include/wireless + +# Driver interface for madwifi driver +# Deprecated; use CONFIG_DRIVER_WEXT=y instead. +#CONFIG_DRIVER_MADWIFI=y +# Set include directory to the madwifi source tree +#CFLAGS += -I../../madwifi + +# Driver interface for ndiswrapper +# Deprecated; use CONFIG_DRIVER_WEXT=y instead. +#CONFIG_DRIVER_NDISWRAPPER=y + +# Driver interface for Atmel driver +# CONFIG_DRIVER_ATMEL=y + +# Driver interface for old Broadcom driver +# Please note that the newer Broadcom driver ("hybrid Linux driver") supports +# Linux wireless extensions and does not need (or even work) with the old +# driver wrapper. Use CONFIG_DRIVER_WEXT=y with that driver. +#CONFIG_DRIVER_BROADCOM=y +# Example path for wlioctl.h; change to match your configuration +#CFLAGS += -I/opt/WRT54GS/release/src/include + +# Driver interface for Intel ipw2100/2200 driver +# Deprecated; use CONFIG_DRIVER_WEXT=y instead. +#CONFIG_DRIVER_IPW=y + +# Driver interface for Ralink driver +#CONFIG_DRIVER_RALINK=y + +# Driver interface for generic Linux wireless extensions +CONFIG_DRIVER_WEXT=y + +# Driver interface for Linux drivers using the nl80211 kernel interface +CONFIG_LIBNL20=y +CONFIG_DRIVER_NL80211=y + +# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver) +#CONFIG_DRIVER_BSD=y +#CFLAGS += -I/usr/local/include +#LIBS += -L/usr/local/lib +#LIBS_p += -L/usr/local/lib +#LIBS_c += -L/usr/local/lib + +# Driver interface for Windows NDIS +#CONFIG_DRIVER_NDIS=y +#CFLAGS += -I/usr/include/w32api/ddk +#LIBS += -L/usr/local/lib +# For native build using mingw +#CONFIG_NATIVE_WINDOWS=y +# Additional directories for cross-compilation on Linux host for mingw target +#CFLAGS += -I/opt/mingw/mingw32/include/ddk +#LIBS += -L/opt/mingw/mingw32/lib +#CC=mingw32-gcc +# By default, driver_ndis uses WinPcap for low-level operations. This can be +# replaced with the following option which replaces WinPcap calls with NDISUIO. +# However, this requires that WZC is disabled (net stop wzcsvc) before starting +# wpa_supplicant. +# CONFIG_USE_NDISUIO=y + +# Driver interface for development testing +#CONFIG_DRIVER_TEST=y + +# Include client MLME (management frame processing) for test driver +# This can be used to test MLME operations in hostapd with the test interface. +# space. +#CONFIG_CLIENT_MLME=y + +# Driver interface for wired Ethernet drivers +CONFIG_DRIVER_WIRED=y + +# Driver interface for the Broadcom RoboSwitch family +#CONFIG_DRIVER_ROBOSWITCH=y + +# Driver interface for no driver (e.g., WPS ER only) +#CONFIG_DRIVER_NONE=y + +# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is +# included) +CONFIG_IEEE8021X_EAPOL=y + +# EAP-MD5 +CONFIG_EAP_MD5=y + +# EAP-MSCHAPv2 +CONFIG_EAP_MSCHAPV2=y + +# EAP-TLS +CONFIG_EAP_TLS=y + +# EAL-PEAP +CONFIG_EAP_PEAP=y + +# EAP-TTLS +CONFIG_EAP_TTLS=y + +# EAP-FAST +# Note: Default OpenSSL package does not include support for all the +# functionality needed for EAP-FAST. If EAP-FAST is enabled with OpenSSL, +# the OpenSSL library must be patched (openssl-0.9.8d-tls-extensions.patch) +# to add the needed functions. +#CONFIG_EAP_FAST=y + +# EAP-GTC +CONFIG_EAP_GTC=y + +# EAP-OTP +CONFIG_EAP_OTP=y + +# EAP-SIM (enable CONFIG_PCSC, if EAP-SIM is used) +#CONFIG_EAP_SIM=y + +# EAP-PSK (experimental; this is _not_ needed for WPA-PSK) +#CONFIG_EAP_PSK=y + +# EAP-PAX +#CONFIG_EAP_PAX=y + +# LEAP +CONFIG_EAP_LEAP=y + +# EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used) +#CONFIG_EAP_AKA=y + +# EAP-AKA' (enable CONFIG_PCSC, if EAP-AKA' is used). +# This requires CONFIG_EAP_AKA to be enabled, too. +#CONFIG_EAP_AKA_PRIME=y + +# Enable USIM simulator (Milenage) for EAP-AKA +#CONFIG_USIM_SIMULATOR=y + +# EAP-SAKE +#CONFIG_EAP_SAKE=y + +# EAP-GPSK +#CONFIG_EAP_GPSK=y +# Include support for optional SHA256 cipher suite in EAP-GPSK +#CONFIG_EAP_GPSK_SHA256=y + +# EAP-TNC and related Trusted Network Connect support (experimental) +#CONFIG_EAP_TNC=y + +# Wi-Fi Protected Setup (WPS) +#CONFIG_WPS=y + +# EAP-IKEv2 +#CONFIG_EAP_IKEV2=y + +# PKCS#12 (PFX) support (used to read private key and certificate file from +# a file that usually has extension .p12 or .pfx) +CONFIG_PKCS12=y + +# Smartcard support (i.e., private key on a smartcard), e.g., with openssl +# engine. +CONFIG_SMARTCARD=y + +# PC/SC interface for smartcards (USIM, GSM SIM) +# Enable this if EAP-SIM or EAP-AKA is included +#CONFIG_PCSC=y + +# Development testing +#CONFIG_EAPOL_TEST=y + +# Select control interface backend for external programs, e.g, wpa_cli: +# unix = UNIX domain sockets (default for Linux/*BSD) +# udp = UDP sockets using localhost (127.0.0.1) +# named_pipe = Windows Named Pipe (default for Windows) +# y = use default (backwards compatibility) +# If this option is commented out, control interface is not included in the +# build. +CONFIG_CTRL_IFACE=y + +# Include support for GNU Readline and History Libraries in wpa_cli. +# When building a wpa_cli binary for distribution, please note that these +# libraries are licensed under GPL and as such, BSD license may not apply for +# the resulting binary. +#CONFIG_READLINE=y + +# Remove debugging code that is printing out debug message to stdout. +# This can be used to reduce the size of the wpa_supplicant considerably +# if debugging code is not needed. The size reduction can be around 35% +# (e.g., 90 kB). +#CONFIG_NO_STDOUT_DEBUG=y + +# Remove WPA support, e.g., for wired-only IEEE 802.1X supplicant, to save +# 35-50 kB in code size. +#CONFIG_NO_WPA=y + +# Remove WPA2 support. This allows WPA to be used, but removes WPA2 code to +# save about 1 kB in code size when building only WPA-Personal (no EAP support) +# or 6 kB if building for WPA-Enterprise. +#CONFIG_NO_WPA2=y + +# Remove IEEE 802.11i/WPA-Personal ASCII passphrase support +# This option can be used to reduce code size by removing support for +# converting ASCII passphrases into PSK. If this functionality is removed, the +# PSK can only be configured as the 64-octet hexstring (e.g., from +# wpa_passphrase). This saves about 0.5 kB in code size. +#CONFIG_NO_WPA_PASSPHRASE=y + +# Disable scan result processing (ap_mode=1) to save code size by about 1 kB. +# This can be used if ap_scan=1 mode is never enabled. +#CONFIG_NO_SCAN_PROCESSING=y + +# Select configuration backend: +# file = text file (e.g., wpa_supplicant.conf; note: the configuration file +# path is given on command line, not here; this option is just used to +# select the backend that allows configuration files to be used) +# winreg = Windows registry (see win_example.reg for an example) +CONFIG_BACKEND=file + +# Remove configuration write functionality (i.e., to allow the configuration +# file to be updated based on runtime configuration changes). The runtime +# configuration can still be changed, the changes are just not going to be +# persistent over restarts. This option can be used to reduce code size by +# about 3.5 kB. +#CONFIG_NO_CONFIG_WRITE=y + +# Remove support for configuration blobs to reduce code size by about 1.5 kB. +#CONFIG_NO_CONFIG_BLOBS=y + +# Select program entry point implementation: +# main = UNIX/POSIX like main() function (default) +# main_winsvc = Windows service (read parameters from registry) +# main_none = Very basic example (development use only) +#CONFIG_MAIN=main + +# Select wrapper for operatins system and C library specific functions +# unix = UNIX/POSIX like systems (default) +# win32 = Windows systems +# none = Empty template +#CONFIG_OS=unix + +# Select event loop implementation +# eloop = select() loop (default) +# eloop_win = Windows events and WaitForMultipleObject() loop +# eloop_none = Empty template +#CONFIG_ELOOP=eloop + +# Select layer 2 packet implementation +# linux = Linux packet socket (default) +# pcap = libpcap/libdnet/WinPcap +# freebsd = FreeBSD libpcap +# winpcap = WinPcap with receive thread +# ndis = Windows NDISUIO (note: requires CONFIG_USE_NDISUIO=y) +# none = Empty template +#CONFIG_L2_PACKET=linux + +# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS) +CONFIG_PEERKEY=y + +# IEEE 802.11w (management frame protection) +# This version is an experimental implementation based on IEEE 802.11w/D1.0 +# draft and is subject to change since the standard has not yet been finalized. +# Driver support is also needed for IEEE 802.11w. +#CONFIG_IEEE80211W=y + +# Select TLS implementation +# openssl = OpenSSL (default) +# gnutls = GnuTLS (needed for TLS/IA, see also CONFIG_GNUTLS_EXTRA) +# internal = Internal TLSv1 implementation (experimental) +# none = Empty template +#CONFIG_TLS=openssl + +# Whether to enable TLS/IA support, which is required for EAP-TTLSv1. +# You need CONFIG_TLS=gnutls for this to have any effect. Please note that +# even though the core GnuTLS library is released under LGPL, this extra +# library uses GPL and as such, the terms of GPL apply to the combination +# of wpa_supplicant and GnuTLS if this option is enabled. BSD license may not +# apply for distribution of the resulting binary. +#CONFIG_GNUTLS_EXTRA=y + +# If CONFIG_TLS=internal is used, additional library and include paths are +# needed for LibTomMath. Alternatively, an integrated, minimal version of +# LibTomMath can be used. See beginning of libtommath.c for details on benefits +# and drawbacks of this option. +#CONFIG_INTERNAL_LIBTOMMATH=y +#ifndef CONFIG_INTERNAL_LIBTOMMATH +#LTM_PATH=/usr/src/libtommath-0.39 +#CFLAGS += -I$(LTM_PATH) +#LIBS += -L$(LTM_PATH) +#LIBS_p += -L$(LTM_PATH) +#endif +# At the cost of about 4 kB of additional binary size, the internal LibTomMath +# can be configured to include faster routines for exptmod, sqr, and div to +# speed up DH and RSA calculation considerably +#CONFIG_INTERNAL_LIBTOMMATH_FAST=y + +# Include NDIS event processing through WMI into wpa_supplicant/wpasvc. +# This is only for Windows builds and requires WMI-related header files and +# WbemUuid.Lib from Platform SDK even when building with MinGW. +#CONFIG_NDIS_EVENTS_INTEGRATED=y +#PLATFORMSDKLIB="/opt/Program Files/Microsoft Platform SDK/Lib" + +# Add support for old DBus control interface +# (fi.epitest.hostap.WPASupplicant) +#CONFIG_CTRL_IFACE_DBUS=y + +# Add support for new DBus control interface +# (fi.w1.hostap.wpa_supplicant1) +#CONFIG_CTRL_IFACE_DBUS_NEW=y + +# Add introspection support for new DBus control interface +#CONFIG_CTRL_IFACE_DBUS_INTRO=y + +# Add support for loading EAP methods dynamically as shared libraries. +# When this option is enabled, each EAP method can be either included +# statically (CONFIG_EAP_<method>=y) or dynamically (CONFIG_EAP_<method>=dyn). +# Dynamic EAP methods are build as shared objects (eap_*.so) and they need to +# be loaded in the beginning of the wpa_supplicant configuration file +# (see load_dynamic_eap parameter in the example file) before being used in +# the network blocks. +# +# Note that some shared parts of EAP methods are included in the main program +# and in order to be able to use dynamic EAP methods using these parts, the +# main program must have been build with the EAP method enabled (=y or =dyn). +# This means that EAP-TLS/PEAP/TTLS/FAST cannot be added as dynamic libraries +# unless at least one of them was included in the main build to force inclusion +# of the shared code. Similarly, at least one of EAP-SIM/AKA must be included +# in the main build to be able to load these methods dynamically. +# +# Please also note that using dynamic libraries will increase the total binary +# size. Thus, it may not be the best option for targets that have limited +# amount of memory/flash. +#CONFIG_DYNAMIC_EAP_METHODS=y + +# IEEE Std 802.11r-2008 (Fast BSS Transition) +#CONFIG_IEEE80211R=y + +# Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt) +#CONFIG_DEBUG_FILE=y + +# Enable privilege separation (see README 'Privilege separation' for details) +#CONFIG_PRIVSEP=y + +# Enable mitigation against certain attacks against TKIP by delaying Michael +# MIC error reports by a random amount of time between 0 and 60 seconds +#CONFIG_DELAYED_MIC_ERROR_REPORT=y + +# Enable tracing code for developer debugging +# This tracks use of memory allocations and other registrations and reports +# incorrect use with a backtrace of call (or allocation) location. +#CONFIG_WPA_TRACE=y +# For BSD, comment out these. +#LIBS += -lexecinfo +#LIBS_p += -lexecinfo +#LIBS_c += -lexecinfo + +# Use libbfd to get more details for developer debugging +# This enables use of libbfd to get more detailed symbols for the backtraces +# generated by CONFIG_WPA_TRACE=y. +#CONFIG_WPA_TRACE_BFD=y +# For BSD, comment out these. +#LIBS += -lbfd -liberty -lz +#LIBS_p += -lbfd -liberty -lz +#LIBS_c += -lbfd -liberty -lz +CONFIG_TLS = gnutls +#CONFIG_GNUTLS_EXTRA=y +CONFIG_CTRL_IFACE_DBUS=y +CONFIG_CTRL_IFACE_DBUS_NEW=y diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa-supplicant.sh b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa-supplicant.sh new file mode 100644 index 000000000..5c9e5d33a --- /dev/null +++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa-supplicant.sh @@ -0,0 +1,85 @@ +#!/bin/sh + + +WPA_SUP_BIN="/usr/sbin/wpa_supplicant" +WPA_SUP_PNAME="wpa_supplicant" +WPA_SUP_PIDFILE="/var/run/wpa_supplicant.$IFACE.pid" +WPA_SUP_OPTIONS="-B -P $WPA_SUP_PIDFILE -i $IFACE" + +VERBOSITY=0 + + +if [ -s "$IF_WPA_CONF" ]; then + WPA_SUP_CONF="-c $IF_WPA_CONF" +else + exit 0 +fi + +if [ ! -x "$WPA_SUP_BIN" ]; then + + if [ "$VERBOSITY" = "1" ]; then + echo "$WPA_SUP_PNAME: binaries not executable or missing from $WPA_SUP_BIN" + fi + + exit 1 +fi + +if [ "$MODE" = "start" ] ; then + # driver type of interface, defaults to wext when undefined + if [ -s "/etc/wpa_supplicant/driver.$IFACE" ]; then + IF_WPA_DRIVER=$(cat "/etc/wpa_supplicant/driver.$IFACE") + elif [ -z "$IF_WPA_DRIVER" ]; then + + if [ "$VERBOSITY" = "1" ]; then + echo "$WPA_SUP_PNAME: wpa-driver not provided, using \"wext\"" + fi + + IF_WPA_DRIVER="wext" + fi + + # if we have passed the criteria, start wpa_supplicant + if [ -n "$WPA_SUP_CONF" ]; then + + if [ "$VERBOSITY" = "1" ]; then + echo "$WPA_SUP_PNAME: $WPA_SUP_BIN $WPA_SUP_OPTIONS $WPA_SUP_CONF -D $IF_WPA_DRIVER" + fi + + start-stop-daemon --start --quiet \ + --name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \ + -- $WPA_SUP_OPTIONS $WPA_SUP_CONF -D $IF_WPA_DRIVER + fi + + # if the interface socket exists, then wpa_supplicant was invoked successfully + if [ -S "$WPA_COMMON_CTRL_IFACE/$IFACE" ]; then + + if [ "$VERBOSITY" = "1" ]; then + echo "$WPA_SUP_PNAME: ctrl_interface socket located at $WPA_COMMON_CTRL_IFACE/$IFACE" + fi + + exit 0 + + fi + +elif [ "$MODE" = "stop" ]; then + + if [ -f "$WPA_SUP_PIDFILE" ]; then + + if [ "$VERBOSITY" = "1" ]; then + echo "$WPA_SUP_PNAME: terminating $WPA_SUP_PNAME daemon" + fi + + start-stop-daemon --stop --quiet \ + --name $WPA_SUP_PNAME --pidfile $WPA_SUP_PIDFILE + + if [ -S "$WPA_COMMON_CTRL_IFACE/$IFACE" ]; then + rm -f $WPA_COMMON_CTRL_IFACE/$IFACE + fi + + if [ -f "$WPA_SUP_PIDFILE" ]; then + rm -f $WPA_SUP_PIDFILE + fi + fi + +fi + +exit 0 diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa_supplicant.conf b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa_supplicant.conf new file mode 100644 index 000000000..68258f5ee --- /dev/null +++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa_supplicant.conf @@ -0,0 +1,690 @@ +##### Example wpa_supplicant configuration file ############################### +# +# This file describes configuration file format and lists all available option. +# Please also take a look at simpler configuration examples in 'examples' +# subdirectory. +# +# Empty lines and lines starting with # are ignored + +# NOTE! This file may contain password information and should probably be made +# readable only by root user on multiuser systems. + +# Note: All file paths in this configuration file should use full (absolute, +# not relative to working directory) path in order to allow working directory +# to be changed. This can happen if wpa_supplicant is run in the background. + +# Whether to allow wpa_supplicant to update (overwrite) configuration +# +# This option can be used to allow wpa_supplicant to overwrite configuration +# file whenever configuration is changed (e.g., new network block is added with +# wpa_cli or wpa_gui, or a password is changed). This is required for +# wpa_cli/wpa_gui to be able to store the configuration changes permanently. +# Please note that overwriting configuration file will remove the comments from +# it. +#update_config=1 + +# global configuration (shared by all network blocks) +# +# Parameters for the control interface. If this is specified, wpa_supplicant +# will open a control interface that is available for external programs to +# manage wpa_supplicant. The meaning of this string depends on which control +# interface mechanism is used. For all cases, the existence of this parameter +# in configuration is used to determine whether the control interface is +# enabled. +# +# For UNIX domain sockets (default on Linux and BSD): This is a directory that +# will be created for UNIX domain sockets for listening to requests from +# external programs (CLI/GUI, etc.) for status information and configuration. +# The socket file will be named based on the interface name, so multiple +# wpa_supplicant processes can be run at the same time if more than one +# interface is used. +# /var/run/wpa_supplicant is the recommended directory for sockets and by +# default, wpa_cli will use it when trying to connect with wpa_supplicant. +# +# Access control for the control interface can be configured by setting the +# directory to allow only members of a group to use sockets. This way, it is +# possible to run wpa_supplicant as root (since it needs to change network +# configuration and open raw sockets) and still allow GUI/CLI components to be +# run as non-root users. However, since the control interface can be used to +# change the network configuration, this access needs to be protected in many +# cases. By default, wpa_supplicant is configured to use gid 0 (root). If you +# want to allow non-root users to use the control interface, add a new group +# and change this value to match with that group. Add users that should have +# control interface access to this group. If this variable is commented out or +# not included in the configuration file, group will not be changed from the +# value it got by default when the directory or socket was created. +# +# When configuring both the directory and group, use following format: +# DIR=/var/run/wpa_supplicant GROUP=wheel +# DIR=/var/run/wpa_supplicant GROUP=0 +# (group can be either group name or gid) +# +# For UDP connections (default on Windows): The value will be ignored. This +# variable is just used to select that the control interface is to be created. +# The value can be set to, e.g., udp (ctrl_interface=udp) +# +# For Windows Named Pipe: This value can be used to set the security descriptor +# for controlling access to the control interface. Security descriptor can be +# set using Security Descriptor String Format (see http://msdn.microsoft.com/ +# library/default.asp?url=/library/en-us/secauthz/security/ +# security_descriptor_string_format.asp). The descriptor string needs to be +# prefixed with SDDL=. For example, ctrl_interface=SDDL=D: would set an empty +# DACL (which will reject all connections). See README-Windows.txt for more +# information about SDDL string format. +# +ctrl_interface=/var/run/wpa_supplicant + +# IEEE 802.1X/EAPOL version +# wpa_supplicant is implemented based on IEEE Std 802.1X-2004 which defines +# EAPOL version 2. However, there are many APs that do not handle the new +# version number correctly (they seem to drop the frames completely). In order +# to make wpa_supplicant interoperate with these APs, the version number is set +# to 1 by default. This configuration value can be used to set it to the new +# version (2). +eapol_version=1 + +# AP scanning/selection +# By default, wpa_supplicant requests driver to perform AP scanning and then +# uses the scan results to select a suitable AP. Another alternative is to +# allow the driver to take care of AP scanning and selection and use +# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association +# information from the driver. +# 1: wpa_supplicant initiates scanning and AP selection +# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association +# parameters (e.g., WPA IE generation); this mode can also be used with +# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with +# APs (i.e., external program needs to control association). This mode must +# also be used when using wired Ethernet drivers. +# 2: like 0, but associate with APs using security policy and SSID (but not +# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to +# enable operation with hidden SSIDs and optimized roaming; in this mode, +# the network blocks in the configuration file are tried one by one until +# the driver reports successful association; each network block should have +# explicit security policy (i.e., only one option in the lists) for +# key_mgmt, pairwise, group, proto variables +ap_scan=1 + +# EAP fast re-authentication +# By default, fast re-authentication is enabled for all EAP methods that +# support it. This variable can be used to disable fast re-authentication. +# Normally, there is no need to disable this. +fast_reauth=1 + +# OpenSSL Engine support +# These options can be used to load OpenSSL engines. +# The two engines that are supported currently are shown below: +# They are both from the opensc project (http://www.opensc.org/) +# By default no engines are loaded. +# make the opensc engine available +#opensc_engine_path=/usr/lib/opensc/engine_opensc.so +# make the pkcs11 engine available +#pkcs11_engine_path=/usr/lib/opensc/engine_pkcs11.so +# configure the path to the pkcs11 module required by the pkcs11 engine +#pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so + +# Dynamic EAP methods +# If EAP methods were built dynamically as shared object files, they need to be +# loaded here before being used in the network blocks. By default, EAP methods +# are included statically in the build, so these lines are not needed +#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_tls.so +#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_md5.so + +# Driver interface parameters +# This field can be used to configure arbitrary driver interace parameters. The +# format is specific to the selected driver interface. This field is not used +# in most cases. +#driver_param="field=value" + +# Maximum lifetime for PMKSA in seconds; default 43200 +#dot11RSNAConfigPMKLifetime=43200 +# Threshold for reauthentication (percentage of PMK lifetime); default 70 +#dot11RSNAConfigPMKReauthThreshold=70 +# Timeout for security association negotiation in seconds; default 60 +#dot11RSNAConfigSATimeout=60 + +# network block +# +# Each network (usually AP's sharing the same SSID) is configured as a separate +# block in this configuration file. The network blocks are in preference order +# (the first match is used). +# +# network block fields: +# +# disabled: +# 0 = this network can be used (default) +# 1 = this network block is disabled (can be enabled through ctrl_iface, +# e.g., with wpa_cli or wpa_gui) +# +# id_str: Network identifier string for external scripts. This value is passed +# to external action script through wpa_cli as WPA_ID_STR environment +# variable to make it easier to do network specific configuration. +# +# ssid: SSID (mandatory); either as an ASCII string with double quotation or +# as hex string; network name +# +# scan_ssid: +# 0 = do not scan this SSID with specific Probe Request frames (default) +# 1 = scan with SSID-specific Probe Request frames (this can be used to +# find APs that do not accept broadcast SSID or use multiple SSIDs; +# this will add latency to scanning, so enable this only when needed) +# +# bssid: BSSID (optional); if set, this network block is used only when +# associating with the AP using the configured BSSID +# +# priority: priority group (integer) +# By default, all networks will get same priority group (0). If some of the +# networks are more desirable, this field can be used to change the order in +# which wpa_supplicant goes through the networks when selecting a BSS. The +# priority groups will be iterated in decreasing priority (i.e., the larger the +# priority value, the sooner the network is matched against the scan results). +# Within each priority group, networks will be selected based on security +# policy, signal strength, etc. +# Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not +# using this priority to select the order for scanning. Instead, they try the +# networks in the order that used in the configuration file. +# +# mode: IEEE 802.11 operation mode +# 0 = infrastructure (Managed) mode, i.e., associate with an AP (default) +# 1 = IBSS (ad-hoc, peer-to-peer) +# Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP) +# and key_mgmt=WPA-NONE (fixed group key TKIP/CCMP). In addition, ap_scan has +# to be set to 2 for IBSS. WPA-None requires following network block options: +# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not +# both), and psk must also be set. +# +# proto: list of accepted protocols +# WPA = WPA/IEEE 802.11i/D3.0 +# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN) +# If not set, this defaults to: WPA RSN +# +# key_mgmt: list of accepted authenticated key management protocols +# WPA-PSK = WPA pre-shared key (this requires 'psk' field) +# WPA-EAP = WPA using EAP authentication (this can use an external +# program, e.g., Xsupplicant, for IEEE 802.1X EAP Authentication +# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically +# generated WEP keys +# NONE = WPA is not used; plaintext or static WEP could be used +# If not set, this defaults to: WPA-PSK WPA-EAP +# +# auth_alg: list of allowed IEEE 802.11 authentication algorithms +# OPEN = Open System authentication (required for WPA/WPA2) +# SHARED = Shared Key authentication (requires static WEP keys) +# LEAP = LEAP/Network EAP (only used with LEAP) +# If not set, automatic selection is used (Open System with LEAP enabled if +# LEAP is allowed as one of the EAP methods). +# +# pairwise: list of accepted pairwise (unicast) ciphers for WPA +# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] +# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] +# NONE = Use only Group Keys (deprecated, should not be included if APs support +# pairwise keys) +# If not set, this defaults to: CCMP TKIP +# +# group: list of accepted group (broadcast/multicast) ciphers for WPA +# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] +# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] +# WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key +# WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11] +# If not set, this defaults to: CCMP TKIP WEP104 WEP40 +# +# psk: WPA preshared key; 256-bit pre-shared key +# The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e., +# 32 bytes or as an ASCII passphrase (in which case, the real PSK will be +# generated using the passphrase and SSID). ASCII passphrase must be between +# 8 and 63 characters (inclusive). +# This field is not needed, if WPA-EAP is used. +# Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys +# from ASCII passphrase. This process uses lot of CPU and wpa_supplicant +# startup and reconfiguration time can be optimized by generating the PSK only +# only when the passphrase or SSID has actually changed. +# +# eapol_flags: IEEE 802.1X/EAPOL options (bit field) +# Dynamic WEP key required for non-WPA mode +# bit0 (1): require dynamically generated unicast WEP key +# bit1 (2): require dynamically generated broadcast WEP key +# (3 = require both keys; default) +# Note: When using wired authentication, eapol_flags must be set to 0 for the +# authentication to be completed successfully. +# +# proactive_key_caching: +# Enable/disable opportunistic PMKSA caching for WPA2. +# 0 = disabled (default) +# 1 = enabled +# +# wep_key0..3: Static WEP key (ASCII in double quotation, e.g. "abcde" or +# hex without quotation, e.g., 0102030405) +# wep_tx_keyidx: Default WEP key index (TX) (0..3) +# +# peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e DLS) is +# allowed. This is only used with RSN/WPA2. +# 0 = disabled (default) +# 1 = enabled +#peerkey=1 +# +# Following fields are only used with internal EAP implementation. +# eap: space-separated list of accepted EAP methods +# MD5 = EAP-MD5 (unsecure and does not generate keying material -> +# cannot be used with WPA; to be used as a Phase 2 method +# with EAP-PEAP or EAP-TTLS) +# MSCHAPV2 = EAP-MSCHAPv2 (cannot be used separately with WPA; to be used +# as a Phase 2 method with EAP-PEAP or EAP-TTLS) +# OTP = EAP-OTP (cannot be used separately with WPA; to be used +# as a Phase 2 method with EAP-PEAP or EAP-TTLS) +# GTC = EAP-GTC (cannot be used separately with WPA; to be used +# as a Phase 2 method with EAP-PEAP or EAP-TTLS) +# TLS = EAP-TLS (client and server certificate) +# PEAP = EAP-PEAP (with tunnelled EAP authentication) +# TTLS = EAP-TTLS (with tunnelled EAP or PAP/CHAP/MSCHAP/MSCHAPV2 +# authentication) +# If not set, all compiled in methods are allowed. +# +# identity: Identity string for EAP +# anonymous_identity: Anonymous identity string for EAP (to be used as the +# unencrypted identity with EAP types that support different tunnelled +# identity, e.g., EAP-TTLS) +# password: Password string for EAP +# ca_cert: File path to CA certificate file (PEM/DER). This file can have one +# or more trusted CA certificates. If ca_cert and ca_path are not +# included, server certificate will not be verified. This is insecure and +# a trusted CA certificate should always be configured when using +# EAP-TLS/TTLS/PEAP. Full path should be used since working directory may +# change when wpa_supplicant is run in the background. +# On Windows, trusted CA certificates can be loaded from the system +# certificate store by setting this to cert_store://<name>, e.g., +# ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT". +# Note that when running wpa_supplicant as an application, the user +# certificate store (My user account) is used, whereas computer store +# (Computer account) is used when running wpasvc as a service. +# ca_path: Directory path for CA certificate files (PEM). This path may +# contain multiple CA certificates in OpenSSL format. Common use for this +# is to point to system trusted CA list which is often installed into +# directory like /etc/ssl/certs. If configured, these certificates are +# added to the list of trusted CAs. ca_cert may also be included in that +# case, but it is not required. +# client_cert: File path to client certificate file (PEM/DER) +# Full path should be used since working directory may change when +# wpa_supplicant is run in the background. +# Alternatively, a named configuration blob can be used by setting this +# to blob://<blob name>. +# private_key: File path to client private key file (PEM/DER/PFX) +# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be +# commented out. Both the private key and certificate will be read from +# the PKCS#12 file in this case. Full path should be used since working +# directory may change when wpa_supplicant is run in the background. +# Windows certificate store can be used by leaving client_cert out and +# configuring private_key in one of the following formats: +# cert://substring_to_match +# hash://certificate_thumbprint_in_hex +# for example: private_key="hash://63093aa9c47f56ae88334c7b65a4" +# Note that when running wpa_supplicant as an application, the user +# certificate store (My user account) is used, whereas computer store +# (Computer account) is used when running wpasvc as a service. +# Alternatively, a named configuration blob can be used by setting this +# to blob://<blob name>. +# private_key_passwd: Password for private key file (if left out, this will be +# asked through control interface) +# dh_file: File path to DH/DSA parameters file (in PEM format) +# This is an optional configuration file for setting parameters for an +# ephemeral DH key exchange. In most cases, the default RSA +# authentication does not use this configuration. However, it is possible +# setup RSA to use ephemeral DH key exchange. In addition, ciphers with +# DSA keys always use ephemeral DH keys. This can be used to achieve +# forward secrecy. If the file is in DSA parameters format, it will be +# automatically converted into DH params. +# subject_match: Substring to be matched against the subject of the +# authentication server certificate. If this string is set, the server +# sertificate is only accepted if it contains this string in the subject. +# The subject string is in following format: +# /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com +# altsubject_match: Semicolon separated string of entries to be matched against +# the alternative subject name of the authentication server certificate. +# If this string is set, the server sertificate is only accepted if it +# contains one of the entries in an alternative subject name extension. +# altSubjectName string is in following format: TYPE:VALUE +# Example: EMAIL:server@example.com +# Example: DNS:server.example.com;DNS:server2.example.com +# Following types are supported: EMAIL, DNS, URI +# phase1: Phase1 (outer authentication, i.e., TLS tunnel) parameters +# (string with field-value pairs, e.g., "peapver=0" or +# "peapver=1 peaplabel=1") +# 'peapver' can be used to force which PEAP version (0 or 1) is used. +# 'peaplabel=1' can be used to force new label, "client PEAP encryption", +# to be used during key derivation when PEAPv1 or newer. Most existing +# PEAPv1 implementation seem to be using the old label, "client EAP +# encryption", and wpa_supplicant is now using that as the default value. +# Some servers, e.g., Radiator, may require peaplabel=1 configuration to +# interoperate with PEAPv1; see eap_testing.txt for more details. +# 'peap_outer_success=0' can be used to terminate PEAP authentication on +# tunneled EAP-Success. This is required with some RADIUS servers that +# implement draft-josefsson-pppext-eap-tls-eap-05.txt (e.g., +# Lucent NavisRadius v4.4.0 with PEAP in "IETF Draft 5" mode) +# include_tls_length=1 can be used to force wpa_supplicant to include +# TLS Message Length field in all TLS messages even if they are not +# fragmented. +# sim_min_num_chal=3 can be used to configure EAP-SIM to require three +# challenges (by default, it accepts 2 or 3) +# phase2: Phase2 (inner authentication with TLS tunnel) parameters +# (string with field-value pairs, e.g., "auth=MSCHAPV2" for EAP-PEAP or +# "autheap=MSCHAPV2 autheap=MD5" for EAP-TTLS) +# Following certificate/private key fields are used in inner Phase2 +# authentication when using EAP-TTLS or EAP-PEAP. +# ca_cert2: File path to CA certificate file. This file can have one or more +# trusted CA certificates. If ca_cert2 and ca_path2 are not included, +# server certificate will not be verified. This is insecure and a trusted +# CA certificate should always be configured. +# ca_path2: Directory path for CA certificate files (PEM) +# client_cert2: File path to client certificate file +# private_key2: File path to client private key file +# private_key2_passwd: Password for private key file +# dh_file2: File path to DH/DSA parameters file (in PEM format) +# subject_match2: Substring to be matched against the subject of the +# authentication server certificate. +# altsubject_match2: Substring to be matched against the alternative subject +# name of the authentication server certificate. +# +# fragment_size: Maximum EAP fragment size in bytes (default 1398). +# This value limits the fragment size for EAP methods that support +# fragmentation (e.g., EAP-TLS and EAP-PEAP). This value should be set +# small enough to make the EAP messages fit in MTU of the network +# interface used for EAPOL. The default value is suitable for most +# cases. +# +# EAP-PSK variables: +# eappsk: 16-byte (128-bit, 32 hex digits) pre-shared key in hex format +# nai: user NAI +# +# EAP-PAX variables: +# eappsk: 16-byte (128-bit, 32 hex digits) pre-shared key in hex format +# +# EAP-SAKE variables: +# eappsk: 32-byte (256-bit, 64 hex digits) pre-shared key in hex format +# (this is concatenation of Root-Secret-A and Root-Secret-B) +# nai: user NAI (PEERID) +# +# EAP-GPSK variables: +# eappsk: Pre-shared key in hex format (at least 128 bits, i.e., 32 hex digits) +# nai: user NAI (ID_Client) +# +# EAP-FAST variables: +# pac_file: File path for the PAC entries. wpa_supplicant will need to be able +# to create this file and write updates to it when PAC is being +# provisioned or refreshed. Full path to the file should be used since +# working directory may change when wpa_supplicant is run in the +# background. Alternatively, a named configuration blob can be used by +# setting this to blob://<blob name> +# phase1: fast_provisioning=1 option enables in-line provisioning of EAP-FAST +# credentials (PAC) +# +# wpa_supplicant supports number of "EAP workarounds" to work around +# interoperability issues with incorrectly behaving authentication servers. +# These are enabled by default because some of the issues are present in large +# number of authentication servers. Strict EAP conformance mode can be +# configured by disabling workarounds with eap_workaround=0. + +# Example blocks: + +# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers +network={ + ssid="simple" + psk="very secret passphrase" + priority=5 +} + +# Same as previous, but request SSID-specific scanning (for APs that reject +# broadcast SSID) +network={ + ssid="second ssid" + scan_ssid=1 + psk="very secret passphrase" + priority=2 +} + +# Only WPA-PSK is used. Any valid cipher combination is accepted. +network={ + ssid="example" + proto=WPA + key_mgmt=WPA-PSK + pairwise=CCMP TKIP + group=CCMP TKIP WEP104 WEP40 + psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb + priority=2 +} + +# Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104 +# or WEP40 as the group cipher will not be accepted. +network={ + ssid="example" + proto=RSN + key_mgmt=WPA-EAP + pairwise=CCMP TKIP + group=CCMP TKIP + eap=TLS + identity="user@example.com" + ca_cert="/etc/cert/ca.pem" + client_cert="/etc/cert/user.pem" + private_key="/etc/cert/user.prv" + private_key_passwd="password" + priority=1 +} + +# EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel +# (e.g., Radiator) +network={ + ssid="example" + key_mgmt=WPA-EAP + eap=PEAP + identity="user@example.com" + password="foobar" + ca_cert="/etc/cert/ca.pem" + phase1="peaplabel=1" + phase2="auth=MSCHAPV2" + priority=10 +} + +# EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the +# unencrypted use. Real identity is sent only within an encrypted TLS tunnel. +network={ + ssid="example" + key_mgmt=WPA-EAP + eap=TTLS + identity="user@example.com" + anonymous_identity="anonymous@example.com" + password="foobar" + ca_cert="/etc/cert/ca.pem" + priority=2 +} + +# EAP-TTLS/MSCHAPv2 configuration with anonymous identity for the unencrypted +# use. Real identity is sent only within an encrypted TLS tunnel. +network={ + ssid="example" + key_mgmt=WPA-EAP + eap=TTLS + identity="user@example.com" + anonymous_identity="anonymous@example.com" + password="foobar" + ca_cert="/etc/cert/ca.pem" + phase2="auth=MSCHAPV2" +} + +# WPA-EAP, EAP-TTLS with different CA certificate used for outer and inner +# authentication. +network={ + ssid="example" + key_mgmt=WPA-EAP + eap=TTLS + # Phase1 / outer authentication + anonymous_identity="anonymous@example.com" + ca_cert="/etc/cert/ca.pem" + # Phase 2 / inner authentication + phase2="autheap=TLS" + ca_cert2="/etc/cert/ca2.pem" + client_cert2="/etc/cer/user.pem" + private_key2="/etc/cer/user.prv" + private_key2_passwd="password" + priority=2 +} + +# Both WPA-PSK and WPA-EAP is accepted. Only CCMP is accepted as pairwise and +# group cipher. +network={ + ssid="example" + bssid=00:11:22:33:44:55 + proto=WPA RSN + key_mgmt=WPA-PSK WPA-EAP + pairwise=CCMP + group=CCMP + psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb +} + +# Special characters in SSID, so use hex string. Default to WPA-PSK, WPA-EAP +# and all valid ciphers. +network={ + ssid=00010203 + psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f +} + + +# IEEE 802.1X/EAPOL with dynamically generated WEP keys (i.e., no WPA) using +# EAP-TLS for authentication and key generation; require both unicast and +# broadcast WEP keys. +network={ + ssid="1x-test" + key_mgmt=IEEE8021X + eap=TLS + identity="user@example.com" + ca_cert="/etc/cert/ca.pem" + client_cert="/etc/cert/user.pem" + private_key="/etc/cert/user.prv" + private_key_passwd="password" + eapol_flags=3 +} + + +# LEAP with dynamic WEP keys +network={ + ssid="leap-example" + key_mgmt=IEEE8021X + eap=LEAP + identity="user" + password="foobar" +} + +# Plaintext connection (no WPA, no IEEE 802.1X) +network={ + ssid="plaintext-test" + key_mgmt=NONE +} + + +# Shared WEP key connection (no WPA, no IEEE 802.1X) +network={ + ssid="static-wep-test" + key_mgmt=NONE + wep_key0="abcde" + wep_key1=0102030405 + wep_key2="1234567890123" + wep_tx_keyidx=0 + priority=5 +} + + +# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key +# IEEE 802.11 authentication +network={ + ssid="static-wep-test2" + key_mgmt=NONE + wep_key0="abcde" + wep_key1=0102030405 + wep_key2="1234567890123" + wep_tx_keyidx=0 + priority=5 + auth_alg=SHARED +} + + +# IBSS/ad-hoc network with WPA-None/TKIP. +network={ + ssid="test adhoc" + mode=1 + proto=WPA + key_mgmt=WPA-NONE + pairwise=NONE + group=TKIP + psk="secret passphrase" +} + + +# Catch all example that allows more or less all configuration modes +network={ + ssid="example" + scan_ssid=1 + key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE + pairwise=CCMP TKIP + group=CCMP TKIP WEP104 WEP40 + psk="very secret passphrase" + eap=TTLS PEAP TLS + identity="user@example.com" + password="foobar" + ca_cert="/etc/cert/ca.pem" + client_cert="/etc/cert/user.pem" + private_key="/etc/cert/user.prv" + private_key_passwd="password" + phase1="peaplabel=0" +} + +# Example of EAP-TLS with smartcard (openssl engine) +network={ + ssid="example" + key_mgmt=WPA-EAP + eap=TLS + proto=RSN + pairwise=CCMP TKIP + group=CCMP TKIP + identity="user@example.com" + ca_cert="/etc/cert/ca.pem" + client_cert="/etc/cert/user.pem" + + engine=1 + + # The engine configured here must be available. Look at + # OpenSSL engine support in the global section. + # The key available through the engine must be the private key + # matching the client certificate configured above. + + # use the opensc engine + #engine_id="opensc" + #key_id="45" + + # use the pkcs11 engine + engine_id="pkcs11" + key_id="id_45" + + # Optional PIN configuration; this can be left out and PIN will be + # asked through the control interface + pin="1234" +} + +# Example configuration showing how to use an inlined blob as a CA certificate +# data instead of using external file +network={ + ssid="example" + key_mgmt=WPA-EAP + eap=TTLS + identity="user@example.com" + anonymous_identity="anonymous@example.com" + password="foobar" + ca_cert="blob://exampleblob" + priority=20 +} + +blob-base64-exampleblob={ +SGVsbG8gV29ybGQhCg== +} + + +# Wildcard match for SSID (plaintext APs only). This example select any +# open AP regardless of its SSID. +network={ + key_mgmt=NONE +} diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa_supplicant.conf-sane b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa_supplicant.conf-sane new file mode 100644 index 000000000..c91ffe0c8 --- /dev/null +++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.3/wpa_supplicant.conf-sane @@ -0,0 +1,7 @@ +ctrl_interface=/var/run/wpa_supplicant +ctrl_interface_group=0 +update_config=1 + +network={ + key_mgmt=NONE +} diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.inc b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.inc new file mode 100644 index 000000000..aabb3df85 --- /dev/null +++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant-0.7.inc @@ -0,0 +1,79 @@ +DESCRIPTION = "A Client for Wi-Fi Protected Access (WPA)." +HOMEPAGE = "http://hostap.epitest.fi/wpa_supplicant/" +BUGTRACKER = "http://hostap.epitest.fi/bugz/" +SECTION = "network" +LICENSE = "GPLv2 | BSD" +LIC_FILES_CHKSUM = "file://../COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ + file://../README;md5=54cfc88015d3ce83f7156e63c6bb1738 \ + file://wpa_supplicant.c;beginline=1;endline=17;md5=acdc5a4b0d6345f21f136eace747260e" +DEPENDS = "gnutls dbus libnl" +RRECOMMENDS_${PN} = "wpa-supplicant-passphrase wpa-supplicant-cli" + +SRC_URI = "http://hostap.epitest.fi/releases/wpa_supplicant-${PV}.tar.gz \ + file://defconfig-gnutls \ + file://wpa-supplicant.sh \ + file://wpa_supplicant.conf \ + file://wpa_supplicant.conf-sane \ + file://99_wpa_supplicant" + +S = "${WORKDIR}/wpa_supplicant-${PV}/wpa_supplicant" + +PACKAGES_prepend = "wpa-supplicant-passphrase wpa-supplicant-cli " +FILES_wpa-supplicant-passphrase = "${sbindir}/wpa_passphrase" +FILES_wpa-supplicant-cli = "${sbindir}/wpa_cli" +FILES_${PN} += "${datadir}/dbus-1/system-services/*" + +do_configure () { + install -m 0755 ${WORKDIR}/defconfig-gnutls .config +} + +export EXTRA_CFLAGS = "${CFLAGS}" +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS + oe_runmake +} + +do_install () { + install -d ${D}${sbindir} + install -m 755 wpa_supplicant ${D}${sbindir} + install -m 755 wpa_cli ${D}${sbindir} + + install -d ${D}${bindir} + install -m 755 wpa_passphrase ${D}${bindir} + + install -d ${D}${docdir}/wpa_supplicant + install -m 644 README ${WORKDIR}/wpa_supplicant.conf ${D}${docdir}/wpa_supplicant + + install -d ${D}${sysconfdir} + install -m 600 ${WORKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf + + install -d ${D}${sysconfdir}/network/if-pre-up.d/ + install -d ${D}${sysconfdir}/network/if-post-down.d/ + install -d ${D}${sysconfdir}/network/if-down.d/ + install -m 644 ${WORKDIR}/wpa_supplicant.conf ${D}${sysconfdir} + install -m 755 ${WORKDIR}/wpa-supplicant.sh ${D}${sysconfdir}/network/if-pre-up.d/wpa-supplicant + cd ${D}${sysconfdir}/network/ && \ + ln -sf ../if-pre-up.d/wpa-supplicant if-post-down.d/wpa-supplicant + + install -d ${D}/${sysconfdir}/dbus-1/system.d + install -m 644 ${S}/dbus/dbus-wpa_supplicant.conf ${D}/${sysconfdir}/dbus-1/system.d + install -d ${D}/${datadir}/dbus-1/system-services + install -m 644 ${S}/dbus/*.service ${D}/${datadir}/dbus-1/system-services + sed -i -e s:${base_sbindir}:${sbindir}:g ${D}/${datadir}/dbus-1/system-services/*.service + + install -d ${D}/etc/default/volatiles + install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles +} + +pkg_postinst_wpa-supplicant () { + # If we're offline, we don't need to do this. + if [ "x$D" != "x" ]; then + exit 0 + fi + + DBUSPID=`pidof dbus-daemon` + + if [ "x$DBUSPID" != "x" ]; then + /etc/init.d/dbus-1 reload + fi +} diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_0.7.3.bb b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_0.7.3.bb new file mode 100644 index 000000000..dc2eb6ca5 --- /dev/null +++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_0.7.3.bb @@ -0,0 +1,6 @@ +require wpa-supplicant-0.7.inc + +PR = "r9" + +SRC_URI[md5sum] = "f516f191384a9a546e3f5145c08addda" +SRC_URI[sha256sum] = "d0cd50caa85346ccc376dcda5ed3c258eef19a93b3cade39d25760118ad59443" diff --git a/meta/recipes-connectivity/zeroconf/zeroconf/compilefix.patch b/meta/recipes-connectivity/zeroconf/zeroconf/compilefix.patch new file mode 100644 index 000000000..328e574a9 --- /dev/null +++ b/meta/recipes-connectivity/zeroconf/zeroconf/compilefix.patch @@ -0,0 +1,19 @@ +| zeroconf.c: In function 'main': +| zeroconf.c:145: error: 'PATH_MAX' undeclared (first use in this function) + +RP - 4/9/09 + +Upstream-Status: Pending + +Index: zeroconf-0.9/zeroconf.c +=================================================================== +--- zeroconf-0.9.orig/zeroconf.c 2009-09-04 10:05:25.000000000 +0100 ++++ zeroconf-0.9/zeroconf.c 2009-09-04 10:05:42.000000000 +0100 +@@ -33,6 +33,7 @@ + #include <net/if_arp.h> + #include <sys/time.h> + #include <signal.h> ++#include <limits.h> + + #include "delay.h" + diff --git a/meta/recipes-connectivity/zeroconf/zeroconf/debian-zeroconf b/meta/recipes-connectivity/zeroconf/zeroconf/debian-zeroconf new file mode 100644 index 000000000..c3705d278 --- /dev/null +++ b/meta/recipes-connectivity/zeroconf/zeroconf/debian-zeroconf @@ -0,0 +1,51 @@ +#!/bin/sh + +if [ ! -x /usr/sbin/zeroconf ]; then + exit 0 +fi + +# IPv4 link-local addresses (zeroconf) are +# only applicable on the 'inet' address family +[ "X$ADDRFAM" != "Xinet" ] && exit 0 + +# However there are some methods where it doesn't +# make any sense to configure an IPv4LL address + +# not on loopback +[ "X$METHOD" = "Xloopback" ] && exit 0 + +# not on ppp or wvdial either +[ "X$METHOD" = "Xppp" ] && exit 0 +[ "X$METHOD" = "Xwvdial" ] && exit 0 + +# The administrator may have blacklisted interfaces +# or only want zeroconf in a fallback situation +[ -f /etc/default/zeroconf ] && + . /etc/default/zeroconf + +[ -n "$DISABLE" ] && exit 0 + +for BLACK in $IFBLACKLIST; do + case $IFACE in + $BLACK) + exit 0 + ;; + esac +done + +# should we only allocate an address if we do not already have one? +if [ -n "$FALLBACK" ]; then + /bin/ip addr show $IFACE scope global | grep -q "inet" + IP=$? + if [ $IP -eq 0 ]; then + /bin/ip route add 169.254.0.0/16 dev $IFACE + exit 0 + fi +fi + +# otherwise, run if we aren't already going +if [ ! -r /var/run/zeroconf.$IFACE.pid ]; then + /usr/sbin/zeroconf -i $IFACE +fi + +exit 0 diff --git a/meta/recipes-connectivity/zeroconf/zeroconf/zeroconf-default b/meta/recipes-connectivity/zeroconf/zeroconf/zeroconf-default new file mode 100644 index 000000000..cc07b275f --- /dev/null +++ b/meta/recipes-connectivity/zeroconf/zeroconf/zeroconf-default @@ -0,0 +1,17 @@ +# Default for zeroconf + +# disable zeroconf +# If you want to disable zeroconf completely, uncomment the following line +# this may be useful if you are debugging zeroconf or starting it manually +#DISABLE=yes + +# black-listed interfaces +# Interfaces which you never wish to have zeroconf run on should +# be listed here. e.g. "eth2 wlan1" in a space seperated string +IFBLACKLIST="" + +# fallback only +# If you would only like a link-local address if you were unable to +# obtain an address via DHCP then uncomment the following line +#FALLBACK=yes + diff --git a/meta/recipes-connectivity/zeroconf/zeroconf_0.9.bb b/meta/recipes-connectivity/zeroconf/zeroconf_0.9.bb new file mode 100644 index 000000000..f755940f1 --- /dev/null +++ b/meta/recipes-connectivity/zeroconf/zeroconf_0.9.bb @@ -0,0 +1,34 @@ +SUMMARY = "IPv4 link-local address allocator" +DESCRIPTION = "Zeroconf is a program that is used to claim IPv4 \ +link-local addresses. IPv4 link-local addresses are useful when setting \ +up ad-hoc networking between devices without the involvement of a either \ +a DHCP server or network administrator. \ +These addresses are allocated from the 169.254.0.0/16 address range and \ +are normally attached to each Ethernet device in your computer. \ +Addresses are assigned randomly by each host and, in case of collision, \ +both hosts (are supposed to) renumber." +AUTHOR = "Anand Kumria <wildfire@progsoc.uts.edu.au>" +HOMEPAGE = "http://www.progsoc.org/~wildfire/zeroconf/" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \ + file://zeroconf.c;beginline=1;endline=13;md5=a5bada96e1e34b08eb7446b28e2630b2" +SECTION = "net" + +PR = "r1" + +SRC_URI = "http://www.progsoc.org/~wildfire/zeroconf/download/${BPN}-${PV}.tar.gz \ + file://compilefix.patch \ + file://zeroconf-default \ + file://debian-zeroconf" + +SRC_URI[md5sum] = "bdafb16b008ebb5633e4e581f77821d2" +SRC_URI[sha256sum] = "a8c74df127753e2310fa1e072f3c9ca44a404bb0bbce9cfec7a84c6dff8bec7b" + +do_install () { + install -d ${D}${sbindir} + install -d ${D}${sysconfdir}/network/if-up.d + install -d ${D}${sysconfdir}/default + install -c -m 755 ${S}/zeroconf ${D}${sbindir}/zeroconf + install -c -m 755 ${WORKDIR}/debian-zeroconf ${D}${sysconfdir}/network/if-up.d/zeroconf + install -c ${WORKDIR}/zeroconf-default ${D}${sysconfdir}/default/zeroconf +} |
