diff --git a/network/library/openpgm/actions.py b/network/library/openpgm/actions.py new file mode 100644 index 0000000000..bbeec47f49 --- /dev/null +++ b/network/library/openpgm/actions.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import libtools +from pisi.actionsapi import get + +def setup(): + shelltools.cd("openpgm/pgm/") + shelltools.system("pwd") + libtools.libtoolize("-fc") + autotools.aclocal() + autotools.autoheader() + autotools.automake("--add-missing --copy") + autotools.autoconf() + # suppress c compiler warnings + pisitools.cflags.add("-Wno-cpp -Wno-unused-result") + autotools.configure() + +def build(): + shelltools.cd("openpgm/pgm/") + autotools.make() + +def install(): + shelltools.cd("openpgm/pgm/") + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) \ No newline at end of file diff --git a/network/library/openpgm/files/openpgm-01-makefile-am.patch b/network/library/openpgm/files/openpgm-01-makefile-am.patch new file mode 100644 index 0000000000..b9c8da4a40 --- /dev/null +++ b/network/library/openpgm/files/openpgm-01-makefile-am.patch @@ -0,0 +1,11 @@ +--- openpgm-release-5-2-122/openpgm/pgm/Makefile.am 2012-12-04 03:56:54.000000000 +0100 ++++ openpgm-release-5-2-122/openpgm/pgm/Makefile2.am 2019-10-30 22:09:31.457801206 +0100 +@@ -54,7 +54,7 @@ + histogram.c \ + version.c + +-share_includedir = $(includedir)/pgm-@RELEASE_INFO@/pgm ++share_includedir = $(includedir)/pgm + share_include_HEADERS = \ + include/pgm/atomic.h \ + include/pgm/engine.h \ diff --git a/network/library/openpgm/files/openpgm-02-c-func.patch b/network/library/openpgm/files/openpgm-02-c-func.patch new file mode 100644 index 0000000000..8a14d980e7 --- /dev/null +++ b/network/library/openpgm/files/openpgm-02-c-func.patch @@ -0,0 +1,129 @@ +diff --git a/openpgm/pgm/include/impl/messages.h b/openpgm/pgm/include/impl/messages.h +index 812393f..1655e9c 100644 +--- a/openpgm/pgm/include/impl/messages.h ++++ b/openpgm/pgm/include/impl/messages.h +@@ -185,14 +185,14 @@ static inline void pgm_fatal (const char* format, ...) { + #define pgm_warn_if_reached() \ + do { \ + pgm_warn ("file %s: line %d (%s): code should not be reached", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__); \ ++ __FILE__, __LINE__, __func__); \ + } while (0) + #define pgm_warn_if_fail(expr) \ + do { \ + if (PGM_LIKELY (expr)); \ + else \ + pgm_warn ("file %s: line %d (%s): runtime check failed: (%s)", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \ ++ __FILE__, __LINE__, __func__, #expr); \ + } while (0) + + +@@ -210,14 +210,14 @@ static inline void pgm_fatal (const char* format, ...) { + if (PGM_LIKELY(expr)); \ + else { \ + pgm_fatal ("file %s: line %d (%s): assertion failed: (%s)", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \ ++ __FILE__, __LINE__, __func__, #expr); \ + abort (); \ + } \ + } while (0) + # define pgm_assert_not_reached() \ + do { \ + pgm_fatal ("file %s: line %d (%s): should not be reached", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__); \ ++ __FILE__, __LINE__, __func__); \ + abort (); \ + } while (0) + # define pgm_assert_cmpint(n1, cmp, n2) \ +@@ -226,7 +226,7 @@ static inline void pgm_fatal (const char* format, ...) { + if (PGM_LIKELY(_n1 cmp _n2)); \ + else { \ + pgm_fatal ("file %s: line %d (%s): assertion failed (%s): (%" PRIi64 " %s %" PRIi64 ")", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__, #n1 " " #cmp " " #n2, _n1, #cmp, _n2); \ ++ __FILE__, __LINE__, __func__, #n1 " " #cmp " " #n2, _n1, #cmp, _n2); \ + abort (); \ + } \ + } while (0) +@@ -236,7 +236,7 @@ static inline void pgm_fatal (const char* format, ...) { + if (PGM_LIKELY(_n1 cmp _n2)); \ + else { \ + pgm_fatal ("file %s: line %d (%s): assertion failed (%s): (%" PRIu64 " %s %" PRIu64 ")", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__, #n1 " " #cmp " " #n2, _n1, #cmp, _n2); \ ++ __FILE__, __LINE__, __func__, #n1 " " #cmp " " #n2, _n1, #cmp, _n2); \ + abort (); \ + } \ + } while (0) +@@ -295,7 +295,7 @@ static inline void pgm_fatal (const char* format, ...) { + if (PGM_LIKELY(expr)); \ + else { \ + pgm_warn ("file %s: line %d (%s): assertion `%s' failed", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \ ++ __FILE__, __LINE__, __func__, #expr); \ + return; \ + } \ + } while (0) +@@ -304,20 +304,20 @@ static inline void pgm_fatal (const char* format, ...) { + if (PGM_LIKELY(expr)); \ + else { \ + pgm_warn ("file %s: line %d (%s): assertion `%s' failed", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \ ++ __FILE__, __LINE__, __func__, #expr); \ + return (val); \ + } \ + } while (0) + # define pgm_return_if_reached() \ + do { \ + pgm_warn ("file %s: line %d (%s): should not be reached", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__); \ ++ __FILE__, __LINE__, __func__); \ + return; \ + } while (0) + # define pgm_return_val_if_reached(val) \ + do { \ + pgm_warn ("file %s: line %d (%s): should not be reached", \ +- __FILE__, __LINE__, __PRETTY_FUNCTION__); \ ++ __FILE__, __LINE__, __func__); \ + return (val); \ + } while (0) + +diff --git a/openpgm/pgm/mem.c b/openpgm/pgm/mem.c +index 5697baf..d3d5295 100644 +--- a/openpgm/pgm/mem.c ++++ b/openpgm/pgm/mem.c +@@ -163,7 +163,7 @@ pgm_malloc ( + + #ifdef __GNUC__ + pgm_fatal ("file %s: line %d (%s): failed to allocate %" PRIzu " bytes", +- __FILE__, __LINE__, __PRETTY_FUNCTION__, ++ __FILE__, __LINE__, __func__, + n_bytes); + #else + pgm_fatal ("file %s: line %d: failed to allocate %" PRIzu " bytes", +@@ -186,7 +186,7 @@ pgm_malloc_n ( + if (SIZE_OVERFLOWS (n_blocks, block_bytes)) { + #ifdef __GNUC__ + pgm_fatal ("file %s: line %d (%s): overflow allocating %" PRIzu "*%" PRIzu " bytes", +- __FILE__, __LINE__, __PRETTY_FUNCTION__, ++ __FILE__, __LINE__, __func__, + n_blocks, block_bytes); + #else + pgm_fatal ("file %s: line %d: overflow allocating %" PRIzu "*%" PRIzu " bytes", +@@ -210,7 +210,7 @@ pgm_malloc0 ( + + #ifdef __GNUC__ + pgm_fatal ("file %s: line %d (%s): failed to allocate %" PRIzu " bytes", +- __FILE__, __LINE__, __PRETTY_FUNCTION__, ++ __FILE__, __LINE__, __func__, + n_bytes); + #else + pgm_fatal ("file %s: line %d: failed to allocate %" PRIzu " bytes", +@@ -236,7 +236,7 @@ pgm_malloc0_n ( + + #ifdef __GNUC__ + pgm_fatal ("file %s: line %d (%s): failed to allocate %" PRIzu "*%" PRIzu " bytes", +- __FILE__, __LINE__, __PRETTY_FUNCTION__, ++ __FILE__, __LINE__, __func__, + n_blocks, block_bytes); + #else + pgm_fatal ("file %s: line %d: failed to allocate %" PRIzu "*%" PRIzu " bytes", diff --git a/network/library/openpgm/files/openpgm-03-pkgconfig.patch b/network/library/openpgm/files/openpgm-03-pkgconfig.patch new file mode 100644 index 0000000000..9d3701cddc --- /dev/null +++ b/network/library/openpgm/files/openpgm-03-pkgconfig.patch @@ -0,0 +1,11 @@ +diff --git a/openpgm/pgm/openpgm-5.2.pc.in b/openpgm/pgm/openpgm-5.2.pc.in +index 1e56d944..9e30a6da 100644 +--- a/openpgm/pgm/openpgm-5.2.pc.in ++++ b/openpgm/pgm/openpgm-5.2.pc.in +@@ -9,4 +9,4 @@ Version: @PACKAGE_VERSION@ + # packagers may wish to move @LIBS@ to Libs.private for platforms with + # versions of pkg-config that support static linking. + Libs: -L${libdir} -lpgm @LIBS@ +-Cflags: -I${includedir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@ -I${libdir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@/include ++Cflags: -I${includedir} + diff --git a/network/library/openpgm/files/openpgm-04-py-version-gen.patch b/network/library/openpgm/files/openpgm-04-py-version-gen.patch new file mode 100644 index 0000000000..cc338698f0 --- /dev/null +++ b/network/library/openpgm/files/openpgm-04-py-version-gen.patch @@ -0,0 +1,59 @@ +diff --git a/openpgm/pgm/version_generator.py b/openpgm/pgm/version_generator.py +index e489aef..581eabe 100755 +--- a/openpgm/pgm/version_generator.py ++++ b/openpgm/pgm/version_generator.py +@@ -1,19 +1,25 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + import os + import platform + import time + +-build_date = time.strftime ("%Y-%m-%d") +-build_time = time.strftime ("%H:%M:%S") +-build_rev = filter (str.isdigit, "$Revision$") ++timestamp = time.gmtime(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))) ++build_date = time.strftime ("%Y-%m-%d", timestamp) ++build_time = time.strftime ("%H:%M:%S", timestamp) ++build_rev = ''.join (list (filter (str.isdigit, "$Revision$"))) ++build_system = platform.system() ++build_machine = platform.machine() ++if 'SOURCE_DATE_EPOCH' in os.environ: ++ build_system = 'BuildSystem' ++ build_machine = 'BuildMachine' + +-print """ ++print (""" + /* vim:ts=8:sts=8:sw=4:noai:noexpandtab + * + * OpenPGM version. + * +- * Copyright (c) 2006-2011 Miru Limited. ++ * Copyright (c) 2006-2014 Miru Limited. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -41,15 +47,16 @@ + + const unsigned pgm_major_version = 5; + const unsigned pgm_minor_version = 2; + const unsigned pgm_micro_version = 122; +-const char* pgm_build_date = "%s"; +-const char* pgm_build_time = "%s"; +-const char* pgm_build_system = "%s"; +-const char* pgm_build_machine = "%s"; +-const char* pgm_build_revision = "%s"; ++const char* pgm_build_date = "{0}"; ++const char* pgm_build_time = "{1}"; ++const char* pgm_build_system = "{2}"; ++const char* pgm_build_machine = "{3}"; ++const char* pgm_build_revision = "{4}"; + + + /* eof */ +-"""%(build_date, build_time, platform.system(), platform.machine(), build_rev) ++""".format (build_date, build_time, build_system, build_machine, build_rev)) + + # end of file ++ diff --git a/network/library/openpgm/files/openpgm-05-fix-setgid.patch b/network/library/openpgm/files/openpgm-05-fix-setgid.patch new file mode 100644 index 0000000000..459d542a6a --- /dev/null +++ b/network/library/openpgm/files/openpgm-05-fix-setgid.patch @@ -0,0 +1,14 @@ +--- openpgm-release-5-2-122/openpgm/pgm/engine.c.org 2019-11-10 14:56:31.815959556 +0100 ++++ openpgm-release-5-2-122/openpgm/pgm/engine.c 2019-11-10 14:57:33.990743464 +0100 +@@ -262,8 +262,9 @@ + { + #ifndef _WIN32 + if (0 == getuid()) { +- setuid((gid_t)65534); +- setgid((uid_t)65534); ++ setgroups(0, NULL); ++ setgid((gid_t)65534); ++ setuid((uid_t)65534); + } + #endif + } diff --git a/network/library/openpgm/pspec.xml b/network/library/openpgm/pspec.xml new file mode 100644 index 0000000000..a0718a989e --- /dev/null +++ b/network/library/openpgm/pspec.xml @@ -0,0 +1,56 @@ + + + + + openpgm + https://www.freshports.org/net/openpgm/ + + Blue Devil + bluedevil@sctzine.com + + LGPL2.1 + network.library + library + Implementation of the PGM reliable multicast protocol + OpenPGM is an open source implementation of the Pragmatic General Multicast (PGM) specification in RFC 3208 available at www.ietf.org. PGM is a reliable and scalable multicast protocol that enables receivers to detect loss, request retransmission of lost data, or notify an application of unrecoverable loss. + https://github.com/steve-o/openpgm/archive/release-5-2-122.tar.gz + + + + + + + + + + + openpgm + Implementation of the PGM reliable multicast protocol + + /usr/lib + /usr/share/doc/libpgm + + + + + openpgm-devel + Development files for openpgm + + openpgm + + + /usr/include/ + /usr/lib/pkgconfig + + + + + + 2019-12-30 + 5.2.122 + First pisi release + Blue Devil + bluedevil@sctzine.com + + + \ No newline at end of file diff --git a/network/library/openpgm/translations.xml b/network/library/openpgm/translations.xml new file mode 100644 index 0000000000..1f86a73483 --- /dev/null +++ b/network/library/openpgm/translations.xml @@ -0,0 +1,13 @@ + + + + openpgm + Guvenilir coklu yayin protolu PGM'nin uygulamasi + OpenPGM, RFC 3208'de belirtilen Pragmatik Genel Coklu Yayın(Pragmatic General Multicast - PGM) uygulamasıdır. + + + openpgm-devel + openpgm için geliştirme dosyaları + openpgm-devel, openpgm için geliştirme dosyaları sunar. + + \ No newline at end of file