commit:     9a73152f596d1c7895c02436204386c755141cc0
Author:     Louis Sautier <sautier.louis <AT> gmail <DOT> com>
AuthorDate: Sun Mar 20 03:55:32 2016 +0000
Commit:     Sven Wegener <swegener <AT> gentoo <DOT> org>
CommitDate: Thu Mar 24 08:14:19 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a73152f

net-nntp/nzbget: bump to 17.0_pre1660, EAPI=6

- add tests
- drop the dependency on libpar2 and libsigc++ as the package provides its
  own modified libpar2 (see
  
https://github.com/nzbget/nzbget/commit/2e0ba0e3d10a63316670fad4dd1c052b7583afe9)
- this versions requires a C++14-compatible compiler, add a pkg_pretend check 
and a
  missing macro

Package-Manager: portage-2.2.28

 net-nntp/nzbget/Manifest                           |   1 +
 .../nzbget-17.0_pre1660-add-missing-macro.patch    | 583 +++++++++++++++++++++
 net-nntp/nzbget/nzbget-17.0_pre1660.ebuild         | 126 +++++
 3 files changed, 710 insertions(+)

diff --git a/net-nntp/nzbget/Manifest b/net-nntp/nzbget/Manifest
index b7988a4..8c584ac 100644
--- a/net-nntp/nzbget/Manifest
+++ b/net-nntp/nzbget/Manifest
@@ -2,3 +2,4 @@ DIST nzbget-14.1.tar.gz 1332334 SHA256 
a16b816b61f7035cc373e9b77094ca474d5b7b7f7
 DIST nzbget-14.2.tar.gz 1332612 SHA256 
bb24afb47dc01766c5e5c02d7565190082c6e13ffed565969a2ec52e21104677 SHA512 
0e1e9c1307927f6ac4772d9138901893a9782fad137756ca40617ea7e8dd7946f2927f3f5303d676d09920de0a005cb1313292fda0c5d0288d73fc8e0f949516
 WHIRLPOOL 
7fb9c5c44515e1ed4a02213af6f8a13e41452a85a710ba9e59483c8c95b9d9bc1f2c475f81d0a75ab982292fccd5ce797f2396fe09ec7339d31ea551f3c36a4e
 DIST nzbget-15.0.tar.gz 1466814 SHA256 
3ef13f3e5917e4cda19c4fc0cd37e79967a19b4e3448c239ff24e37712a6cc0a SHA512 
7233bea56f99e541155eac3e1d31f2603a407aee7055492c2bf20efc9b40a58e9e5f3b7ee7dada9278cb4bdc8b30a0e62f377235e12ac43c88f9111864d3a706
 WHIRLPOOL 
f8d53ef7637a09f1e98fe5866693bc99c96212f460b00072d5ac8164c59c9053ab8805262d97e136eccc14f6af9be220541b2ea22d01bd2ed191114cbfdcfac0
 DIST nzbget-16.4-src.tar.gz 1585908 SHA256 
8e9e3ee75d2d08a8e438b2809f504a627a9334ed239579a540b75fa97bff4d0f SHA512 
12ebde277abac5f719f374861013fa391f4698d850ac57c55787609fec54490fb09437c6a803fc0ca935c482ed5ccd16c525e17ba40a514f7a54316dc04ee874
 WHIRLPOOL 
2d1c21d45a74eaea7dcb1c99c9b409f506547189c832b432331ae2b64ee67050245acb8ff1cd522bd64460d9d7ac806b344fd0f3bbc21de4bfca12dcc815692d
+DIST nzbget-17.0_pre1660.tar.gz 1596763 SHA256 
3f54ccf915572b7a1db5f5bd0188ef4eb631fe03a41efeec8b29572bbada7c5d SHA512 
bd385713207166f3847ed3f50d250d809ca53ac4a267f22859c8bdb0b9be0235c94401db13fe721a16ff011b51bfaaee9b177078877b5faf8b8563633a40bd15
 WHIRLPOOL 
bb7bddc8a7f597da01e33de8075d21bf3008cc9d08d02393e9e1719cded8ab903575997942bab389f71a4d95ccdc4602a1d099cb013d76c8c22bc8ef510835e2

diff --git a/net-nntp/nzbget/files/nzbget-17.0_pre1660-add-missing-macro.patch 
b/net-nntp/nzbget/files/nzbget-17.0_pre1660-add-missing-macro.patch
new file mode 100644
index 0000000..6b99fc1
--- /dev/null
+++ b/net-nntp/nzbget/files/nzbget-17.0_pre1660-add-missing-macro.patch
@@ -0,0 +1,583 @@
+diff --git a/configure.ac b/configure.ac
+index 96cb50b..aa15148 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -29,6 +29,7 @@ AC_CONFIG_SRCDIR([daemon/main/nzbget.cpp])
+ AC_CONFIG_HEADERS([config.h])
+ AM_MAINTAINER_MODE
+ 
++m4_include([posix/ax_cxx_compile_stdcxx.m4])
+ 
+ dnl
+ dnl Set default library path, if not specified in environment variable 
"LIBPREF".
+diff --git a/posix/ax_cxx_compile_stdcxx.m4 b/posix/ax_cxx_compile_stdcxx.m4
+new file mode 100644
+index 0000000..f387b87
+--- /dev/null
++++ b/posix/ax_cxx_compile_stdcxx.m4
+@@ -0,0 +1,565 @@
++# ===========================================================================
++#   http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++#   AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
++#
++# DESCRIPTION
++#
++#   Check for baseline language coverage in the compiler for the specified
++#   version of the C++ standard.  If necessary, add switches to CXXFLAGS to
++#   enable support.  VERSION may be '11' (for the C++11 standard) or '14'
++#   (for the C++14 standard).
++#
++#   The second argument, if specified, indicates whether you insist on an
++#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
++#   -std=c++11).  If neither is specified, you get whatever works, with
++#   preference for an extended mode.
++#
++#   The third argument, if specified 'mandatory' or if left unspecified,
++#   indicates that baseline support for the specified C++ standard is
++#   required and that the macro should error out if no mode with that
++#   support is found.  If specified 'optional', then configuration proceeds
++#   regardless, after defining HAVE_CXX${VERSION} if and only if a
++#   supporting mode is found.
++#
++# LICENSE
++#
++#   Copyright (c) 2008 Benjamin Kosnik <b...@redhat.com>
++#   Copyright (c) 2012 Zack Weinberg <za...@panix.com>
++#   Copyright (c) 2013 Roy Stogner <royst...@ices.utexas.edu>
++#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov 
<soko...@google.com>
++#   Copyright (c) 2015 Paul Norman <penor...@mac.com>
++#   Copyright (c) 2015 Moritz Klammler <mor...@klammler.eu>
++#
++#   Copying and distribution of this file, with or without modification, are
++#   permitted in any medium without royalty provided the copyright notice
++#   and this notice are preserved.  This file is offered as-is, without any
++#   warranty.
++
++#serial 1
++
++dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
++dnl  (serial version number 13).
++
++AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
++  m4_if([$1], [11], [],
++        [$1], [14], [],
++        [$1], [17], [m4_fatal([support for C++17 not yet implemented in 
AX_CXX_COMPILE_STDCXX])],
++        [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
++  m4_if([$2], [], [],
++        [$2], [ext], [],
++        [$2], [noext], [],
++        [m4_fatal([invalid second argument `$2' to 
AX_CXX_COMPILE_STDCXX])])dnl
++  m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
++        [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
++        [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
++        [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
++  AC_LANG_PUSH([C++])dnl
++  ac_success=no
++  AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
++  ax_cv_cxx_compile_cxx$1,
++  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
++    [ax_cv_cxx_compile_cxx$1=yes],
++    [ax_cv_cxx_compile_cxx$1=no])])
++  if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
++    ac_success=yes
++  fi
++
++  m4_if([$2], [ext], [], [dnl
++  if test x$ac_success = xno; then
++    dnl HP's aCC needs +std=c++11 according to:
++    dnl 
http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
++    dnl Cray's crayCC needs "-h std=c++11"
++    for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
++      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
++      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
++                     $cachevar,
++        [ac_save_CXXFLAGS="$CXXFLAGS"
++         CXXFLAGS="$CXXFLAGS $switch"
++         
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
++          [eval $cachevar=yes],
++          [eval $cachevar=no])
++         CXXFLAGS="$ac_save_CXXFLAGS"])
++      if eval test x\$$cachevar = xyes; then
++        CXXFLAGS="$CXXFLAGS $switch"
++        ac_success=yes
++        break
++      fi
++    done
++  fi])
++
++  m4_if([$2], [noext], [], [dnl
++  if test x$ac_success = xno; then
++    for switch in -std=gnu++$1 -std=gnu++0x; do
++      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
++      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
++                     $cachevar,
++        [ac_save_CXXFLAGS="$CXXFLAGS"
++         CXXFLAGS="$CXXFLAGS $switch"
++         
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
++          [eval $cachevar=yes],
++          [eval $cachevar=no])
++         CXXFLAGS="$ac_save_CXXFLAGS"])
++      if eval test x\$$cachevar = xyes; then
++        CXXFLAGS="$CXXFLAGS $switch"
++        ac_success=yes
++        break
++      fi
++    done
++  fi])
++
++  AC_LANG_POP([C++])
++  if test x$ax_cxx_compile_cxx$1_required = xtrue; then
++    if test x$ac_success = xno; then
++      AC_MSG_ERROR([*** A compiler with support for C++$1 language features 
is required.])
++    fi
++  else
++    if test x$ac_success = xno; then
++      HAVE_CXX$1=0
++      AC_MSG_NOTICE([No compiler with C++$1 support was found])
++    else
++      HAVE_CXX$1=1
++      AC_DEFINE(HAVE_CXX$1,1,
++                [define if the compiler supports basic C++$1 syntax])
++    fi
++
++    AC_SUBST(HAVE_CXX$1)
++  fi
++])
++
++
++dnl  Test body for checking C++11 support
++
++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
++  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
++)
++
++
++dnl  Test body for checking C++14 support
++
++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
++  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
++  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
++)
++
++
++dnl  Tests for new features in C++11
++
++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
++
++// If the compiler admits that it is not ready for C++11, why torture it?
++// Hopefully, this will speed up the test.
++
++#ifndef __cplusplus
++
++#error "This is not a C++ compiler"
++
++#elif __cplusplus < 201103L
++
++#error "This is not a C++11 compiler"
++
++#else
++
++namespace cxx11
++{
++
++  namespace test_static_assert
++  {
++
++    template <typename T>
++    struct check
++    {
++      static_assert(sizeof(int) <= sizeof(T), "not big enough");
++    };
++
++  }
++
++  namespace test_final_override
++  {
++
++    struct Base
++    {
++      virtual void f() {}
++    };
++
++    struct Derived : public Base
++    {
++      virtual void f() override {}
++    };
++
++  }
++
++  namespace test_double_right_angle_brackets
++  {
++
++    template < typename T >
++    struct check {};
++
++    typedef check<void> single_type;
++    typedef check<check<void>> double_type;
++    typedef check<check<check<void>>> triple_type;
++    typedef check<check<check<check<void>>>> quadruple_type;
++
++  }
++
++  namespace test_decltype
++  {
++
++    int
++    f()
++    {
++      int a = 1;
++      decltype(a) b = 2;
++      return a + b;
++    }
++
++  }
++
++  namespace test_type_deduction
++  {
++
++    template < typename T1, typename T2 >
++    struct is_same
++    {
++      static const bool value = false;
++    };
++
++    template < typename T >
++    struct is_same<T, T>
++    {
++      static const bool value = true;
++    };
++
++    template < typename T1, typename T2 >
++    auto
++    add(T1 a1, T2 a2) -> decltype(a1 + a2)
++    {
++      return a1 + a2;
++    }
++
++    int
++    test(const int c, volatile int v)
++    {
++      static_assert(is_same<int, decltype(0)>::value == true, "");
++      static_assert(is_same<int, decltype(c)>::value == false, "");
++      static_assert(is_same<int, decltype(v)>::value == false, "");
++      auto ac = c;
++      auto av = v;
++      auto sumi = ac + av + 'x';
++      auto sumf = ac + av + 1.0;
++      static_assert(is_same<int, decltype(ac)>::value == true, "");
++      static_assert(is_same<int, decltype(av)>::value == true, "");
++      static_assert(is_same<int, decltype(sumi)>::value == true, "");
++      static_assert(is_same<int, decltype(sumf)>::value == false, "");
++      static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
++      return (sumf > 0.0) ? sumi : add(c, v);
++    }
++
++  }
++
++  namespace test_noexcept
++  {
++
++    int f() { return 0; }
++    int g() noexcept { return 0; }
++
++    static_assert(noexcept(f()) == false, "");
++    static_assert(noexcept(g()) == true, "");
++
++  }
++
++  namespace test_constexpr
++  {
++
++    template < typename CharT >
++    unsigned long constexpr
++    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
++    {
++      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
++    }
++
++    template < typename CharT >
++    unsigned long constexpr
++    strlen_c(const CharT *const s) noexcept
++    {
++      return strlen_c_r(s, 0UL);
++    }
++
++    static_assert(strlen_c("") == 0UL, "");
++    static_assert(strlen_c("1") == 1UL, "");
++    static_assert(strlen_c("example") == 7UL, "");
++    static_assert(strlen_c("another\0example") == 7UL, "");
++
++  }
++
++  namespace test_rvalue_references
++  {
++
++    template < int N >
++    struct answer
++    {
++      static constexpr int value = N;
++    };
++
++    answer<1> f(int&)       { return answer<1>(); }
++    answer<2> f(const int&) { return answer<2>(); }
++    answer<3> f(int&&)      { return answer<3>(); }
++
++    void
++    test()
++    {
++      int i = 0;
++      const int c = 0;
++      static_assert(decltype(f(i))::value == 1, "");
++      static_assert(decltype(f(c))::value == 2, "");
++      static_assert(decltype(f(0))::value == 3, "");
++    }
++
++  }
++
++  namespace test_uniform_initialization
++  {
++
++    struct test
++    {
++      static const int zero {};
++      static const int one {1};
++    };
++
++    static_assert(test::zero == 0, "");
++    static_assert(test::one == 1, "");
++
++  }
++
++  namespace test_lambdas
++  {
++
++    void
++    test1()
++    {
++      auto lambda1 = [](){};
++      auto lambda2 = lambda1;
++      lambda1();
++      lambda2();
++    }
++
++    int
++    test2()
++    {
++      auto a = [](int i, int j){ return i + j; }(1, 2);
++      auto b = []() -> int { return '0'; }();
++      auto c = [=](){ return a + b; }();
++      auto d = [&](){ return c; }();
++      auto e = [a, &b](int x) mutable {
++        const auto identity = [](int y){ return y; };
++        for (auto i = 0; i < a; ++i)
++          a += b--;
++        return x + identity(a + b);
++      }(0);
++      return a + b + c + d + e;
++    }
++
++    int
++    test3()
++    {
++      const auto nullary = [](){ return 0; };
++      const auto unary = [](int x){ return x; };
++      using nullary_t = decltype(nullary);
++      using unary_t = decltype(unary);
++      const auto higher1st = [](nullary_t f){ return f(); };
++      const auto higher2nd = [unary](nullary_t f1){
++        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
++      };
++      return higher1st(nullary) + higher2nd(nullary)(unary);
++    }
++
++  }
++
++  namespace test_variadic_templates
++  {
++
++    template <int...>
++    struct sum;
++
++    template <int N0, int... N1toN>
++    struct sum<N0, N1toN...>
++    {
++      static constexpr auto value = N0 + sum<N1toN...>::value;
++    };
++
++    template <>
++    struct sum<>
++    {
++      static constexpr auto value = 0;
++    };
++
++    static_assert(sum<>::value == 0, "");
++    static_assert(sum<1>::value == 1, "");
++    static_assert(sum<23>::value == 23, "");
++    static_assert(sum<1, 2>::value == 3, "");
++    static_assert(sum<5, 5, 11>::value == 21, "");
++    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
++
++  }
++
++  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
++  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
++  // because of this.
++  namespace test_template_alias_sfinae
++  {
++
++    struct foo {};
++
++    template<typename T>
++    using member = typename T::member_type;
++
++    template<typename T>
++    void func(...) {}
++
++    template<typename T>
++    void func(member<T>*) {}
++
++    void test();
++
++    void test() { func<foo>(0); }
++
++  }
++
++}  // namespace cxx11
++
++#endif  // __cplusplus >= 201103L
++
++]])
++
++
++dnl  Tests for new features in C++14
++
++m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
++
++// If the compiler admits that it is not ready for C++14, why torture it?
++// Hopefully, this will speed up the test.
++
++#ifndef __cplusplus
++
++#error "This is not a C++ compiler"
++
++//check for full C++14 support (disabed)
++//#elif __cplusplus < 201402L
++
++// check for partial C++14 support (accept gcc 4.9)
++#elif __cplusplus < 201300L
++
++#error "This is not a C++14 compiler"
++
++#else
++
++namespace cxx14
++{
++
++  namespace test_polymorphic_lambdas
++  {
++
++    int
++    test()
++    {
++      const auto lambda = [](auto&&... args){
++        const auto istiny = [](auto x){
++          return (sizeof(x) == 1UL) ? 1 : 0;
++        };
++        const int aretiny[] = { istiny(args)... };
++        return aretiny[0];
++      };
++      return lambda(1, 1L, 1.0f, '1');
++    }
++
++  }
++
++  namespace test_binary_literals
++  {
++
++    constexpr auto ivii = 0b0000000000101010;
++    static_assert(ivii == 42, "wrong value");
++
++  }
++
++/*
++  namespace test_generalized_constexpr
++  {
++
++    template < typename CharT >
++    constexpr unsigned long
++    strlen_c(const CharT *const s) noexcept
++    {
++      auto length = 0UL;
++      for (auto p = s; *p; ++p)
++        ++length;
++      return length;
++    }
++
++    static_assert(strlen_c("") == 0UL, "");
++    static_assert(strlen_c("x") == 1UL, "");
++    static_assert(strlen_c("test") == 4UL, "");
++    static_assert(strlen_c("another\0test") == 7UL, "");
++
++  }
++*/
++
++  namespace test_lambda_init_capture
++  {
++
++    int
++    test()
++    {
++      auto x = 0;
++      const auto lambda1 = [a = x](int b){ return a + b; };
++      const auto lambda2 = [a = lambda1(x)](){ return a; };
++      return lambda2();
++    }
++
++  }
++
++  namespace test_digit_seperators
++  {
++
++    constexpr auto ten_million = 100'000'000;
++    static_assert(ten_million == 100000000, "");
++
++  }
++
++  namespace test_return_type_deduction
++  {
++
++    auto f(int& x) { return x; }
++    decltype(auto) g(int& x) { return x; }
++
++    template < typename T1, typename T2 >
++    struct is_same
++    {
++      static constexpr auto value = false;
++    };
++
++    template < typename T >
++    struct is_same<T, T>
++    {
++      static constexpr auto value = true;
++    };
++
++    int
++    test()
++    {
++      auto x = 0;
++      static_assert(is_same<int, decltype(f(x))>::value, "");
++      static_assert(is_same<int&, decltype(g(x))>::value, "");
++      return x;
++    }
++
++  }
++
++}  // namespace cxx14
++
++#endif  // __cplusplus >= 201402L
++
++]])

diff --git a/net-nntp/nzbget/nzbget-17.0_pre1660.ebuild 
b/net-nntp/nzbget/nzbget-17.0_pre1660.ebuild
new file mode 100644
index 0000000..f184e35
--- /dev/null
+++ b/net-nntp/nzbget/nzbget-17.0_pre1660.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit autotools eutils flag-o-matic user
+
+MY_PV=${PV/_pre/-r}
+MY_P=${PN}-${PV/_pre/-testing-r}
+
+DESCRIPTION="A command-line based binary newsgrapper supporting .nzb files"
+HOMEPAGE="http://nzbget.net/";
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${MY_PV}/${MY_P}-src.tar.gz
 -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="debug gnutls ncurses parcheck ssl test zlib"
+
+RDEPEND="dev-libs/libxml2
+       ncurses? ( sys-libs/ncurses:0 )
+       ssl? (
+               gnutls? ( net-libs/gnutls )
+               !gnutls? ( dev-libs/openssl:0= )
+       )
+       zlib? ( sys-libs/zlib )"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig"
+DOCS=( ChangeLog README nzbget.conf )
+
+S=${WORKDIR}/${PN}-${PV/_pre*/-testing}
+
+# Fix linking for ncurses[tinfo]
+# https://github.com/nzbget/nzbget/issues/188
+# https://bugs.gentoo.org/527262
+
+# Add a missing autoconf macro
+# https://github.com/nzbget/nzbget/pull/189
+PATCHES=(
+       "${FILESDIR}/${PN}-14.0_pre1145-tinfo.patch"
+       "${FILESDIR}/${PN}-17.0_pre1660-add-missing-macro.patch"
+)
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]] && ! test-flag-CXX -std=c++14; then
+               eerror "${P} requires a C++14-capable compiler. Your current 
compiler"
+               eerror "does not seem to support the -std=c++14 option. Please"
+               eerror "upgrade to gcc-4.9 or an equivalent version supporting 
C++14."
+               die "The currently active compiler does not support -std=c++14"
+       fi
+}
+
+src_prepare() {
+       default
+       sed -i 's:^ScriptDir=.*:ScriptDir=/usr/share/nzbget/ppscripts:' 
nzbget.conf || die
+
+       sed \
+               -e 's:^MainDir=.*:MainDir=/var/lib/nzbget:' \
+               -e 's:^LockFile=.*:LockFile=/run/nzbget/nzbget.pid:' \
+               -e 's:^LogFile=.*:LogFile=/var/log/nzbget/nzbget.log:' \
+               -e 's:^WebDir=.*:WebDir=/usr/share/nzbget/webui:' \
+               -e 
's:^ConfigTemplate=.*:ConfigTemplate=/usr/share/nzbget/nzbget.conf:' \
+               -e 's:^DaemonUsername=.*:DaemonUsername=nzbget:' \
+               nzbget.conf > nzbgetd.conf || die
+
+       # Don't install a duplicate README which causes make install to fail
+       # https://github.com/nzbget/nzbget/issues/135 
+       sed -i "\|^\tlib/par2/README|d" Makefile.am || die
+
+       eautoreconf
+}
+
+src_configure() {
+       econf \
+               $(use_enable debug) \
+               $(use_enable ncurses curses) \
+               $(use_enable parcheck) \
+               $(use_enable ssl tls) \
+               $(use_enable zlib gzip) \
+               $(use_enable test tests) \
+               --with-tlslib=$(usex gnutls GnuTLS OpenSSL)
+}
+
+src_test() {
+       ./nzbget --tests || die "Tests failed"
+}
+
+src_install() {
+       default
+
+       insinto /etc
+       doins nzbget.conf
+       doins nzbgetd.conf
+
+       keepdir /var/lib/nzbget/{dst,nzb,queue,tmp}
+       keepdir /var/log/nzbget
+
+       newinitd "${FILESDIR}"/nzbget.initd nzbget
+       newconfd "${FILESDIR}"/nzbget.confd nzbget
+}
+
+pkg_preinst() {
+       enewgroup nzbget
+       enewuser nzbget -1 -1 /var/lib/nzbget nzbget
+
+       fowners nzbget:nzbget /var/lib/nzbget/{dst,nzb,queue,tmp}
+       fperms 750 /var/lib/nzbget/{queue,tmp}
+       fperms 770 /var/lib/nzbget/{dst,nzb}
+
+       fowners nzbget:nzbget /var/log/nzbget
+       fperms 750 /var/log/nzbget
+
+       fowners nzbget:nzbget /etc/nzbgetd.conf
+       fperms 640 /etc/nzbgetd.conf
+}
+
+pkg_postinst() {
+       if [[ -z ${REPLACING_VERSIONS} ]] ; then
+               elog
+               elog "Please add users that you want to be able to use the 
system-wide"
+               elog "nzbget daemon to the nzbget group. To access the daemon 
run nzbget"
+               elog "with the --configfile /etc/nzbgetd.conf option."
+               elog
+       fi
+}

Reply via email to