diff options
author | Igor Pashev <igor.pashev@nexenta.com> | 2012-09-24 07:50:06 +0400 |
---|---|---|
committer | Igor Pashev <igor.pashev@nexenta.com> | 2012-09-24 07:50:06 +0400 |
commit | 66890fd48bba612044f1104f5376e58016e9168e (patch) | |
tree | db17d1096a7a551e6ca1f43f830025e4c5f907a0 | |
parent | 8347d01cc71290efcbb7771adcc90f80549bfa0f (diff) | |
download | cibs-66890fd48bba612044f1104f5376e58016e9168e.tar.gz |
Examples: openpgm + zeromq
-rw-r--r-- | examples/openpgm/Makefile | 26 | ||||
-rw-r--r-- | examples/openpgm/libpgm.p5m | 68 | ||||
-rw-r--r-- | examples/openpgm/patches/000_ifr_netmask.patch | 15 | ||||
-rw-r--r-- | examples/openpgm/patches/010_ifa_flags.patch | 107 | ||||
-rw-r--r-- | examples/zeromq/Makefile | 32 | ||||
-rw-r--r-- | examples/zeromq/zeromq.p5m | 51 |
6 files changed, 299 insertions, 0 deletions
diff --git a/examples/openpgm/Makefile b/examples/openpgm/Makefile new file mode 100644 index 0000000..534f229 --- /dev/null +++ b/examples/openpgm/Makefile @@ -0,0 +1,26 @@ +include /usr/share/cibs/rules/ips.mk +include /usr/share/cibs/rules/archive.mk +include /usr/share/cibs/rules/patch.mk +include /usr/share/cibs/rules/autoreconf.mk +include /usr/share/cibs/rules/autotools.mk +include /usr/share/cibs/rules/32.mk +include /usr/share/cibs/rules/64.mk + +configure := $(sourcedir)/openpgm/pgm/configure + +summary := open source implementation of the Pragmatic General Multicast (PGM) specification in RFC 3208 +license := LGPL +license-file := openpgm/pgm/COPYING + +# build-conflicts += + +home := https://code.google.com/p/openpgm/ +name := libpgm +version := 5.1.118 +archive := $(name)-$(version).tar.bz2 +download := https://openpgm.googlecode.com/files/$(archive) +checksum := \ + md5:f561caa7902220eff4d1e2004ba5eedc \ + sha1:76888874a938c26870096105249990c5fdfa9ec2 \ + sha256:7806ab830e3993db77590877fa8133037a86fb6f22e99418a5c7075d93d3aa8b \ + size:857603 diff --git a/examples/openpgm/libpgm.p5m b/examples/openpgm/libpgm.p5m new file mode 100644 index 0000000..881f3ab --- /dev/null +++ b/examples/openpgm/libpgm.p5m @@ -0,0 +1,68 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license +# at http://www.opensource.org/licenses/CDDL-1.0 +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each file. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright (C) 2012, Nexenta Systems, Inc. All rights reserved. +# + + +set name=pkg.fmri value=pkg:/library/libpgm@$(ips_version) +set name=pkg.summary value="$(summary)" +set name=info.upstream-url value="$(home)" +set name=info.source_url value="$(download)" +license $(license-file) license="$(license)" + +dir path=usr +dir path=usr/lib +dir path=usr/lib/$(MACH64) +dir path=usr/lib/$(MACH64)/pkgconfig +dir path=usr/lib/pkgconfig +dir path=usr/include +dir path=usr/include/pgm-5.1 +dir path=usr/include/pgm-5.1/pgm +file path=usr/lib/$(MACH64)/libpgm-5.1.so.0.0.118 +file path=usr/lib/$(MACH64)/pkgconfig/openpgm-5.1.pc +file path=usr/lib/libpgm-5.1.so.0.0.118 +file path=usr/lib/pkgconfig/openpgm-5.1.pc +file path=usr/include/pgm-5.1/pgm/msgv.h +file path=usr/include/pgm-5.1/pgm/time.h +file path=usr/include/pgm-5.1/pgm/skbuff.h +file path=usr/include/pgm-5.1/pgm/messages.h +file path=usr/include/pgm-5.1/pgm/macros.h +file path=usr/include/pgm-5.1/pgm/zinttypes.h +file path=usr/include/pgm-5.1/pgm/winint.h +file path=usr/include/pgm-5.1/pgm/packet.h +file path=usr/include/pgm-5.1/pgm/list.h +file path=usr/include/pgm-5.1/pgm/atomic.h +file path=usr/include/pgm-5.1/pgm/pgm.h +file path=usr/include/pgm-5.1/pgm/engine.h +file path=usr/include/pgm-5.1/pgm/in.h +file path=usr/include/pgm-5.1/pgm/tsi.h +file path=usr/include/pgm-5.1/pgm/error.h +file path=usr/include/pgm-5.1/pgm/version.h +file path=usr/include/pgm-5.1/pgm/wininttypes.h +file path=usr/include/pgm-5.1/pgm/types.h +file path=usr/include/pgm-5.1/pgm/socket.h +file path=usr/include/pgm-5.1/pgm/gsi.h +file path=usr/include/pgm-5.1/pgm/mem.h +file path=usr/include/pgm-5.1/pgm/if.h +link path=usr/lib/libpgm-5.1.so.0 target=libpgm-5.1.so.0.0.118 +link path=usr/lib/$(MACH64)/libpgm-5.1.so.0 target=libpgm-5.1.so.0.0.118 +link path=usr/lib/$(MACH64)/libpgm.so target=libpgm-5.1.so.0.0.118 +link path=usr/lib/libpgm.so target=libpgm-5.1.so.0.0.118 diff --git a/examples/openpgm/patches/000_ifr_netmask.patch b/examples/openpgm/patches/000_ifr_netmask.patch new file mode 100644 index 0000000..20fc94e --- /dev/null +++ b/examples/openpgm/patches/000_ifr_netmask.patch @@ -0,0 +1,15 @@ +Index: libpgm-5.1.118-1~dfsg/openpgm/pgm/configure.ac +=================================================================== +--- libpgm-5.1.118-1~dfsg.orig/openpgm/pgm/configure.ac 2011-09-27 17:59:08.000000000 +0000 ++++ libpgm-5.1.118-1~dfsg/openpgm/pgm/configure.ac 2012-06-06 20:21:04.407905323 +0000 +@@ -184,8 +184,8 @@ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <sys/types.h> + #include <ifaddrs.h>]], +- [[struct ifaddrs ifa; +-ifa.ifa_netmask = (struct sockaddr*)0;]])], ++ [[struct ifreq ifr; ++ifr.ifr_netmask = (struct sockaddr*)0;]])], + [AC_MSG_RESULT([yes]) + CFLAGS="$CFLAGS -DCONFIG_HAVE_IFR_NETMASK"], + [AC_MSG_RESULT([no])]) diff --git a/examples/openpgm/patches/010_ifa_flags.patch b/examples/openpgm/patches/010_ifa_flags.patch new file mode 100644 index 0000000..f362703 --- /dev/null +++ b/examples/openpgm/patches/010_ifa_flags.patch @@ -0,0 +1,107 @@ +Descriptions: on illumos ifa_flags is uint64_t +Bug: http://code.google.com/p/openpgm/issues/detail?id=25 + +diff -dubr libpgm-5.1.118/openpgm/pgm/getifaddrs.c libpgm-5.1.118.flags/openpgm/pgm/getifaddrs.c +--- libpgm-5.1.118/openpgm/pgm/getifaddrs.c 2011-09-27 21:59:08.000000000 +0400 ++++ libpgm-5.1.118.flags/openpgm/pgm/getifaddrs.c 2012-09-24 05:25:16.404925472 +0400 +@@ -813,6 +813,68 @@ + return TRUE; + } + #endif /* _WIN32 */ ++#if defined( HAVE_GETIFADDRS ) ++static ++bool ++_pgm_getifaddrs ( ++ struct pgm_ifaddrs_t** restrict ifap, ++ pgm_error_t** restrict error ++ ) ++{ ++ struct ifaddrs *_ifap, *_ifa; ++ const int e = getifaddrs (&_ifap); ++ if (-1 == e) { ++ char errbuf[1024]; ++ pgm_set_error (error, ++ PGM_ERROR_DOMAIN_IF, ++ pgm_error_from_errno (errno), ++ _("getifaddrs failed: %s"), ++ pgm_strerror_s (errbuf, sizeof (errbuf), errno)); ++ return FALSE; ++ } ++ ++ int n = 0, k = 0; ++ for (_ifa = _ifap; _ifa; _ifa = _ifa->ifa_next) ++ ++n; ++ ++ struct _pgm_ifaddrs_t* ifa = pgm_new0 (struct _pgm_ifaddrs_t, n); ++ struct _pgm_ifaddrs_t* ift = ifa; ++ for (_ifa = _ifap; _ifa; _ifa = _ifa->ifa_next) ++ { ++/* ensure IP adapter */ ++ if (NULL == _ifa->ifa_addr || ++ (_ifa->ifa_addr->sa_family != AF_INET && ++ _ifa->ifa_addr->sa_family != AF_INET6) ) ++ { ++ continue; ++ } ++ ++/* address */ ++ ift->_ifa.ifa_addr = (void*)&ift->_addr; ++ memcpy (ift->_ifa.ifa_addr, _ifa->ifa_addr, pgm_sockaddr_len (_ifa->ifa_addr)); ++ ++/* name */ ++ ift->_ifa.ifa_name = ift->_name; ++ pgm_strncpy_s (ift->_ifa.ifa_name, IF_NAMESIZE, _ifa->ifa_name, _TRUNCATE); ++ ++/* flags */ ++ ift->_ifa.ifa_flags = _ifa->ifa_flags; ++ ++/* netmask */ ++ ift->_ifa.ifa_netmask = (void*)&ift->_netmask; ++ memcpy (ift->_ifa.ifa_netmask, _ifa->ifa_netmask, pgm_sockaddr_len (_ifa->ifa_netmask)); ++ ++/* next */ ++ if (k++ < (n - 1)) { ++ ift->_ifa.ifa_next = (struct pgm_ifaddrs_t*)(ift + 1); ++ ift = (struct _pgm_ifaddrs_t*)(ift->_ifa.ifa_next); ++ } ++ } ++ freeifaddrs (_ifap); ++ *ifap = (struct pgm_ifaddrs_t*)ifa; ++ return TRUE; ++} ++#endif /* HAVE_GETIFADDRS */ + + /* returns TRUE on success setting ifap to a linked list of system interfaces, + * returns FALSE on failure and sets error appropriately. +@@ -830,17 +892,7 @@ + (void*)ifap, (void*)error); + + #ifdef CONFIG_HAVE_GETIFADDRS +- const int e = getifaddrs ((struct ifaddrs**)ifap); +- if (-1 == e) { +- char errbuf[1024]; +- pgm_set_error (error, +- PGM_ERROR_DOMAIN_IF, +- pgm_error_from_errno (errno), +- _("getifaddrs failed: %s"), +- pgm_strerror_s (errbuf, sizeof (errbuf), errno)); +- return FALSE; +- } +- return TRUE; ++ return _pgm_getifaddrs (ifap, error); + #elif defined(CONFIG_TARGET_WINE) + return _pgm_getadaptersinfo (ifap, error); + #elif defined(_WIN32) +@@ -861,11 +913,7 @@ + { + pgm_return_if_fail (NULL != ifa); + +-#ifdef CONFIG_HAVE_GETIFADDRS +- freeifaddrs ((struct ifaddrs*)ifa); +-#else + pgm_free (ifa); +-#endif + } + + /* eof */ +Только в libpgm-5.1.118.flags/openpgm/pgm: getifaddrs.c.orig diff --git a/examples/zeromq/Makefile b/examples/zeromq/Makefile new file mode 100644 index 0000000..5b20f6d --- /dev/null +++ b/examples/zeromq/Makefile @@ -0,0 +1,32 @@ +include /usr/share/cibs/rules/ips.mk +include /usr/share/cibs/rules/archive.mk +#include /usr/share/cibs/rules/patch.mk +#include /usr/share/cibs/rules/autoreconf.mk +include /usr/share/cibs/rules/autotools.mk +include /usr/share/cibs/rules/32.mk +include /usr/share/cibs/rules/64.mk + + +summary := The ZeroMQ messaging library +license := LGPL +license-file := COPYING.LESSER + +build-depends += \ + pkg:/library/libpgm + +#/usr/gcc/4.3/bin/gcc -m32 -luuid -o test +#ld: warning: file libdladm.so.1: required by /usr/lib/libdlpi.so.1, not found +configure-env += LDFLAGS="-L/lib" + +configure-options += --with-system-pgm + +home := http://www.zeromq.org +name := zeromq +version := 2.2.0 +archive := $(name)-$(version).tar.gz +download := http://download.zeromq.org/$(archive) +checksum := \ + md5:1b11aae09b19d18276d0717b2ea288f6 \ + sha1:e4bc024c33d3e62f658640625e061ce4e8bd1ff1 \ + sha256:43904aeb9ea6844f72ca02e4e53bf1d481a1a0264e64979da761464e88604637 \ + size:1900378 diff --git a/examples/zeromq/zeromq.p5m b/examples/zeromq/zeromq.p5m new file mode 100644 index 0000000..7b6e20b --- /dev/null +++ b/examples/zeromq/zeromq.p5m @@ -0,0 +1,51 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license +# at http://www.opensource.org/licenses/CDDL-1.0 +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each file. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright (C) 2012, Nexenta Systems, Inc. All rights reserved. +# + + +set name=pkg.fmri value=pkg:/library/libzmq@$(ips_version) +set name=pkg.summary value="$(summary)" +set name=info.upstream-url value="$(home)" +set name=info.source_url value="$(download)" +license $(license-file) license="$(license)" + +dir path=usr +dir path=usr/include +dir path=usr/lib +dir path=usr/lib/$(MACH64) +dir path=usr/lib/$(MACH64)/pkgconfig +dir path=usr/lib/pkgconfig +dir path=usr/share +dir path=usr/share/man +dir path=usr/share/man/man3 +dir path=usr/share/man/man7 +file path=usr/include/zmq.h +file path=usr/include/zmq.hpp +file path=usr/include/zmq_utils.h +file path=usr/lib/$(MACH64)/libzmq.so.1.0.1 +file path=usr/lib/$(MACH64)/pkgconfig/libzmq.pc +file path=usr/lib/libzmq.so.1.0.1 +file path=usr/lib/pkgconfig/libzmq.pc +link path=usr/lib/$(MACH64)/libzmq.so target=libzmq.so.1.0.1 +link path=usr/lib/$(MACH64)/libzmq.so.1 target=libzmq.so.1.0.1 +link path=usr/lib/libzmq.so target=libzmq.so.1.0.1 +link path=usr/lib/libzmq.so.1 target=libzmq.so.1.0.1 |