diff options
-rw-r--r-- | metadata/pkg_desc_index | 1 | ||||
-rw-r--r-- | net-libs/wvstreams/Manifest | 1 | ||||
-rw-r--r-- | net-libs/wvstreams/files/wvstreams-4.6.1-fix-c++14.patch | 36 | ||||
-rw-r--r-- | net-libs/wvstreams/files/wvstreams-4.6.1-gcc47.patch | 50 | ||||
-rw-r--r-- | net-libs/wvstreams/files/wvstreams-4.6.1-glibc212.patch | 23 | ||||
-rw-r--r-- | net-libs/wvstreams/files/wvstreams-4.6.1-openssl-1.0.0.patch | 16 | ||||
-rw-r--r-- | net-libs/wvstreams/files/wvstreams-4.6.1-openssl-1.1.0.patch | 25 | ||||
-rw-r--r-- | net-libs/wvstreams/files/wvstreams-4.6.1-parallel-make.patch | 56 | ||||
-rw-r--r-- | net-libs/wvstreams/metadata.xml | 16 | ||||
-rw-r--r-- | net-libs/wvstreams/wvstreams-4.6.1-r3.ebuild | 105 | ||||
-rw-r--r-- | profiles/use.local.desc | 1 |
11 files changed, 330 insertions, 0 deletions
diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index index 8b0d8ba8..200c84be 100644 --- a/metadata/pkg_desc_index +++ b/metadata/pkg_desc_index @@ -87,6 +87,7 @@ net-dialup/martian-modem 20100123-r2: ltmodem alternative driver providing suppo net-dns/host 20070128-r1: A powerful command-line DNS query and test tool net-dns/noip-updater 2.1.9-r4: no-ip.com dynamic DNS updater net-firewall/firewall-mv 10.2: Initialize iptables and net-related sysctl variables +net-libs/wvstreams 4.6.1-r3: A network programming library in C++ net-misc/openrdate 1.2: use TCP or UDP to retrieve the current time of another machine net-misc/sshstart 3.00: Start ssh-agent/ssh-add only if you really use ssh or friends net-print/foo2zjs 20160722: Support for printing to ZjStream-based printers diff --git a/net-libs/wvstreams/Manifest b/net-libs/wvstreams/Manifest new file mode 100644 index 00000000..c49a26b9 --- /dev/null +++ b/net-libs/wvstreams/Manifest @@ -0,0 +1 @@ +DIST wvstreams-4.6.1.tar.gz 1118456 SHA256 8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633 diff --git a/net-libs/wvstreams/files/wvstreams-4.6.1-fix-c++14.patch b/net-libs/wvstreams/files/wvstreams-4.6.1-fix-c++14.patch new file mode 100644 index 00000000..b2c2efd5 --- /dev/null +++ b/net-libs/wvstreams/files/wvstreams-4.6.1-fix-c++14.patch @@ -0,0 +1,36 @@ +Fix building with C++14, which errors out due to explicit operator bool() conversion +See also: https://bugs.gentoo.org/show_bug.cgi?id=594058 + +--- a/streams/wvstream.cc ++++ b/streams/wvstream.cc +@@ -907,9 +907,9 @@ + + if (forceable) + { +- si.wants.readable = readcb; +- si.wants.writable = writecb; +- si.wants.isexception = exceptcb; ++ si.wants.readable = static_cast<bool>(readcb); ++ si.wants.writable = static_cast<bool>(writecb); ++ si.wants.isexception = static_cast<bool>(exceptcb); + } + else + { +@@ -1019,7 +1019,7 @@ + + IWvStream::SelectRequest WvStream::get_select_request() + { +- return IWvStream::SelectRequest(readcb, writecb, exceptcb); ++ return IWvStream::SelectRequest(static_cast<bool>(readcb), static_cast<bool>(writecb), static_cast<bool>(exceptcb)); + } + + +@@ -1107,7 +1107,7 @@ + // inefficient, because if the alarm was expired then pre_select() + // returned true anyway and short-circuited the previous select(). + TRACE("hello-%p\n", this); +- return !alarm_was_ticking || select(0, readcb, writecb, exceptcb); ++ return !alarm_was_ticking || select(0, static_cast<bool>(readcb), static_cast<bool>(writecb), static_cast<bool>(exceptcb)); + } + + diff --git a/net-libs/wvstreams/files/wvstreams-4.6.1-gcc47.patch b/net-libs/wvstreams/files/wvstreams-4.6.1-gcc47.patch new file mode 100644 index 00000000..b284da8f --- /dev/null +++ b/net-libs/wvstreams/files/wvstreams-4.6.1-gcc47.patch @@ -0,0 +1,50 @@ +http://bugs.gentoo.org/419563 +http://bugs.gentoo.org/419971 + +See -gcc47-patch and -magic.patch in Fedora git: + +http://pkgs.fedoraproject.org/gitweb/?p=libwvstreams.git;a=tree + +--- include/wvtask.h ++++ include/wvtask.h +@@ -45,7 +45,8 @@ + typedef void TaskFunc(void *userdata); + + static int taskcount, numtasks, numrunning; +- int magic_number, *stack_magic; ++ int volatile magic_number; ++ int *stack_magic; + WvString name; + int tid; + +@@ -84,7 +85,7 @@ + static WvTaskMan *singleton; + static int links; + +- static int magic_number; ++ static int volatile magic_number; + static WvTaskList all_tasks, free_tasks; + + static void get_stack(WvTask &task, size_t size); +--- include/wvuid.h ++++ include/wvuid.h +@@ -7,6 +7,7 @@ + #ifndef __WVUID_H + #define __WVUID_H + ++#include <unistd.h> + #include "wvstring.h" + + #if WIN32 +--- utils/wvtask.cc ++++ utils/wvtask.cc +@@ -58,7 +58,8 @@ + int WvTask::taskcount, WvTask::numtasks, WvTask::numrunning; + + WvTaskMan *WvTaskMan::singleton; +-int WvTaskMan::links, WvTaskMan::magic_number; ++int WvTaskMan::links; ++int volatile WvTaskMan::magic_number; + WvTaskList WvTaskMan::all_tasks, WvTaskMan::free_tasks; + ucontext_t WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return, + WvTaskMan::toplevel; diff --git a/net-libs/wvstreams/files/wvstreams-4.6.1-glibc212.patch b/net-libs/wvstreams/files/wvstreams-4.6.1-glibc212.patch new file mode 100644 index 00000000..473d3e83 --- /dev/null +++ b/net-libs/wvstreams/files/wvstreams-4.6.1-glibc212.patch @@ -0,0 +1,23 @@ +http://bugs.gentoo.org/333301 + +--- ipstreams/wvunixdgsocket.cc ++++ ipstreams/wvunixdgsocket.cc +@@ -1,5 +1,5 @@ + #include "wvunixdgsocket.h" +-#ifdef MACOS ++#if defined(MACOS) || defined(__GNUC__) + #include <sys/types.h> + #include <sys/stat.h> + #endif +--- streams/wvatomicfile.cc ++++ streams/wvatomicfile.cc +@@ -11,7 +11,8 @@ + #include "wvfileutils.h" + #include "wvstrutils.h" + +-#ifdef MACOS ++#if defined(MACOS) || defined(__GNUC__) ++#include <sys/types.h> + #include <sys/stat.h> + #endif + diff --git a/net-libs/wvstreams/files/wvstreams-4.6.1-openssl-1.0.0.patch b/net-libs/wvstreams/files/wvstreams-4.6.1-openssl-1.0.0.patch new file mode 100644 index 00000000..c27e7233 --- /dev/null +++ b/net-libs/wvstreams/files/wvstreams-4.6.1-openssl-1.0.0.patch @@ -0,0 +1,16 @@ +http://bugs.gentoo.org/304283 + +--- crypto/wvx509.cc ++++ crypto/wvx509.cc +@@ -1157,7 +1157,11 @@ + + if (ext) + { ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ const X509V3_EXT_METHOD *method = X509V3_EXT_get(ext); ++#else + X509V3_EXT_METHOD *method = X509V3_EXT_get(ext); ++#endif + if (!method) + { + WvDynBuf buf; diff --git a/net-libs/wvstreams/files/wvstreams-4.6.1-openssl-1.1.0.patch b/net-libs/wvstreams/files/wvstreams-4.6.1-openssl-1.1.0.patch new file mode 100644 index 00000000..6a06731e --- /dev/null +++ b/net-libs/wvstreams/files/wvstreams-4.6.1-openssl-1.1.0.patch @@ -0,0 +1,25 @@ +# https://bugs.gentoo.org/show_bug.cgi?id=614810 +# https://build.opensuse.org/package/view_file/openSUSE:Factory:ARM/wvstreams/wvstreams-openssl.patch +--- 1/crypto/wvblowfish.cc ++++ 1/crypto/wvblowfish.cc +@@ -77,7 +77,8 @@ + // if flushing on encryption, add some randomized padding + size_t padlen = 8 - remainder; + unsigned char *pad = in.alloc(padlen); +- RAND_pseudo_bytes(pad, padlen); ++ if (RAND_bytes(pad, padlen) != 1) ++ return false; + len += 8; + } + else // nothing we can do here, flushing does not make sense! +--- 1/crypto/wvtripledes.cc ++++ 1/crypto/wvtripledes.cc +@@ -78,6 +78,8 @@ + size_t padlen = 8 - remainder; + unsigned char *pad = in.alloc(padlen); + RAND_pseudo_bytes(pad, padlen); ++ if(RAND_bytes(pad, padlen) != 1) ++ return false; + len += 8; + } + else // nothing we can do here, flushing does not make sense! diff --git a/net-libs/wvstreams/files/wvstreams-4.6.1-parallel-make.patch b/net-libs/wvstreams/files/wvstreams-4.6.1-parallel-make.patch new file mode 100644 index 00000000..d6f7d6e7 --- /dev/null +++ b/net-libs/wvstreams/files/wvstreams-4.6.1-parallel-make.patch @@ -0,0 +1,56 @@ +--- Makefile ++++ Makefile +@@ -131,12 +131,19 @@ + # libwvstreams: stream/event handling library + # + TARGETS += libwvstreams.so +-TARGETS += crypto/tests/ssltest ipstreams/tests/unixtest ++TARGETS += crypto/tests/ssltest ++crypto/tests/ssltest: $(LIBWVSTREAMS) ++ ++TARGETS += ipstreams/tests/unixtest ++ipstreams/tests/unixtest: $(LIBWVSTREAMS) ++ + TARGETS += crypto/tests/printcert ++crypto/tests/printcert: $(LIBWVSTREAMS) + + ifndef _MACOS + ifneq ("$(with_readline)", "no") + TARGETS += ipstreams/tests/wsd ++ ipstreams/tests/wsd: $(LIBWVSTREAMS) + ipstreams/tests/wsd-LIBS += -lreadline + else + TEST_SKIP_OBJS += ipstreams/tests/wsd +@@ -179,7 +186,11 @@ + # + ifneq ("$(with_dbus)", "no") + TARGETS += libwvdbus.so +- TARGETS += dbus/tests/wvdbus dbus/tests/wvdbusd ++ TARGETS += dbus/tests/wvdbus ++ dbus/tests/wvdbus: $(LIBWVDBUS) ++ ++ TARGETS += dbus/tests/wvdbusd ++ dbus/tests/wvdbusd: $(LIBWVDBUS) + TESTS += $(call tests_cc,dbus/tests) + libwvdbus_OBJS += $(call objects,dbus) + libwvdbus.so: $(libwvdbus_OBJS) $(LIBWVSTREAMS) +--- wvrules-posix.mk ++++ wvrules-posix.mk +@@ -85,12 +85,15 @@ + $(AR) s $1 + endef + +-CC: FORCE ++CC: + @CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ + $(WVSTREAMS)/gen-cc CC c + +-CXX: FORCE ++CXX: + @CC="$(CXX)" CFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ + $(WVSTREAMS)/gen-cc CXX cc + ++#All files must depend on the above two rules. This is a godawful hack. ++$(shell find -type f '(' -name '*.c' -o -name '*.cc' ')' ): CC CXX ++ + wvlink=$(LINK_MSG)$(WVLINK_CC) $(LDFLAGS) $($1-LDFLAGS) -o $1 $(filter %.o %.a %.so, $2) $($1-LIBS) $(XX_LIBS) $(LDLIBS) $(PRELIBS) $(LIBS) diff --git a/net-libs/wvstreams/metadata.xml b/net-libs/wvstreams/metadata.xml new file mode 100644 index 00000000..048f0f83 --- /dev/null +++ b/net-libs/wvstreams/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <upstream> + <remote-id type="google-code">wvstreams</remote-id> + </upstream> + <use> + <flag name="boost"> + Use <pkg>dev-libs/boost</pkg> to provide TR1-compatible + functional interface. This USE flag is only needed with GCC + earlier than version 4.1, or with other compilares not providing + said interface. + </flag> + </use> +</pkgmetadata> diff --git a/net-libs/wvstreams/wvstreams-4.6.1-r3.ebuild b/net-libs/wvstreams/wvstreams-4.6.1-r3.ebuild new file mode 100644 index 00000000..428f633c --- /dev/null +++ b/net-libs/wvstreams/wvstreams-4.6.1-r3.ebuild @@ -0,0 +1,105 @@ +# Copyright 2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +RESTRICT="mirror" +inherit autotools flag-o-matic toolchain-funcs versionator + +# Unfixed: https://bugs.gentoo.org/show_bug.cgi?id=614810 + +DESCRIPTION="A network programming library in C++" +HOMEPAGE="http://alumnit.ca/wiki/?WvStreams" +SRC_URI="https://wvstreams.googlecode.com/files/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 hppa ppc sparc x86" +IUSE="pam doc +ssl +dbus debug boost" + +#Tests fail if openssl is not compiled with -DPURIFY. Gentoo's isn't. FAIL! +RESTRICT="test" + +#QA Fail: xplc is compiled as a part of wvstreams. +#It'll take a larger patching effort to get it extracted, since upstream integrated it +#more tightly this time. Probably for the better since upstream xplc seems dead. + +RDEPEND="sys-libs/readline:0= + sys-libs/zlib + dbus? ( >=sys-apps/dbus-1.4.20 ) + dev-libs/openssl:0= + pam? ( virtual/pam )" +DEPEND="${RDEPEND} + virtual/pkgconfig + doc? ( app-doc/doxygen ) + boost? ( >=dev-libs/boost-1.34.1:= )" + +DOCS="ChangeLog README*" + +pkg_pretend() { + [[ ${MERGE_TYPE} == "binary" ]] && return + + if ! use boost && ! version_is_at_least 4.1 "$(gcc-fullversion)"; then + eerror "This package requires the active gcc to be at least version 4.1" + eerror "or USE=boost must be installed." + die "Please activate >=sys-devel/gcc-4.1 with gcc-config." + fi +} + +src_prepare() { + eapply -p0 "${FILESDIR}"/${P}-parallel-make.patch \ + "${FILESDIR}"/${P}-openssl-1.0.0.patch \ + "${FILESDIR}"/${P}-glibc212.patch \ + "${FILESDIR}"/${P}-gcc47.patch + eapply "${FILESDIR}"/${P}-fix-c++14.patch + + sed -i \ + -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' \ + -e 's:AM_PROG_CC_STDC:AC_PROG_CC:' \ + configure.ac argp/configure.ac || die + + default + eautoreconf +} + +src_configure() { + append-flags -fno-strict-aliasing + append-flags -fno-tree-dce -fno-optimize-sibling-calls #421375 + + tc-export AR CXX + + use boost && export ac_cv_header_tr1_functional=no + + econf \ + --localstatedir=/var \ + $(use_enable debug) \ + --disable-optimization \ + $(use_with dbus) \ + --with-openssl \ + $(use_with pam) \ + --without-tcl \ + --without-qt \ + --with-zlib \ + --without-valgrind +} + +src_compile() { + default + + if use doc; then + doxygen || die + fi +} + +src_test() { + emake test +} + +src_install() { + default + + if use doc; then + #the list of files is too big for dohtml -r Docs/doxy-html/* + cd Docs/doxy-html + dodoc -r * + fi +} diff --git a/profiles/use.local.desc b/profiles/use.local.desc index fcd41bc7..75581b9e 100644 --- a/profiles/use.local.desc +++ b/profiles/use.local.desc @@ -204,6 +204,7 @@ media-tv/sundtek-tv:pax_kernel - Mark package which is necessary if you use a PA media-video/avidemux:nvenc - Adds support for NVIDIA Encoder (NVENC) API for hardware accelerated encoding on NVIDIA cards. net-dns/noip-updater:ezipupd - Use user/group ezipupd instead of nobody: Useful if you restrict outgoing network traffic for user nobody net-firewall/firewall-mv:old-openrc - Install rudimentary support for /etc/modules.load.d for sys-apps/openrc-0.21.5 or older. This is a temporary hack of /etc/conf.d/modules which should not be used with more recent versions of sys-apps/openrc. Therefore, newer or older versions of openrc are blocked depending on this flag, respectively. +net-libs/wvstreams:boost - Use dev-libs/boost to provide TR1-compatible functional interface. This USE flag is only needed with GCC earlier than version 4.1, or with other compilares not providing said interface. net-misc/sshstart:keychain - Pull in keychain as dependency. Not required, but recommended for smoother operation. net-print/foo2zjs:foo2zjs_devices_hp1000 - HP LJ 1000 firmware net-print/foo2zjs:foo2zjs_devices_hp1005 - HP LJ 1005 firmware |