Add recipe and patch for pyenet.

Note that due to the way that cython extensions are built, this actually
uses the enet sources. They are pulled in via a second source archive
and then symlinked into place for the pyenet build to pick them up.
This commit is contained in:
Michael Lotz
2015-10-24 21:44:34 +00:00
parent 9f5c75ef6a
commit afd1448d80
2 changed files with 112 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
From 0d76ac64d30acd2a26ef8d662a3a00940ba98a57 Mon Sep 17 00:00:00 2001
From: Michael Lotz <mmlr@mlotz.ch>
Date: Sat, 24 Oct 2015 20:47:49 +0000
Subject: [PATCH 1/2] Declare availability of get{addr|name}info(), link
libnetwork.
---
setup.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 95d55e8..7a2642f 100644
--- a/setup.py
+++ b/setup.py
@@ -28,7 +28,11 @@ if sys.platform == 'win32':
define_macros.extend([('WIN32', None)])
libraries.extend(['ws2_32', 'Winmm'])
-if sys.platform != 'darwin':
+if sys.platform == 'haiku1':
+ define_macros.extend([('HAS_GETADDRINFO', None), ('HAS_GETNAMEINFO', None)])
+ libraries.extend(['network'])
+
+elif sys.platform != 'darwin':
define_macros.extend([('HAS_GETHOSTBYNAME_R', None), ('HAS_GETHOSTBYADDR_R', None)])
ext_modules = [
--
2.2.2
From 224a284bb15f6a06b41a6743fd33d9d94140fe77 Mon Sep 17 00:00:00 2001
From: Michael Lotz <mmlr@mlotz.ch>
Date: Sat, 24 Oct 2015 21:12:27 +0000
Subject: [PATCH 2/2] Disable strict aliasing as the wrapper is not aliasing
clean.
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 7a2642f..9521285 100644
--- a/setup.py
+++ b/setup.py
@@ -38,7 +38,7 @@ elif sys.platform != 'darwin':
ext_modules = [
Extension(
"enet",
- extra_compile_args=["-O3"],
+ extra_compile_args=['-O3', '-fno-strict-aliasing'],
sources=source_files,
include_dirs=["enet/include/"],
define_macros=define_macros,
--
2.2.2

View File

@@ -0,0 +1,55 @@
SUMMARY="A python wrapper for the ENet library"
DESCRIPTION="pyenet is a python wrapper for the ENet library by Lee Salzman, \
http://enet.bespin.org.\
It was originally written by Scott Robinson scott@tranzoa.com and is currently \
maintained by Andrew Resch andrewresch@gmail.com."
HOMEPAGE="https://github.com/aresch/pyenet"
SOURCE_URI="https://github.com/aresch/pyenet/archive/265b18eda4556c893f5851f6dcb1084bddc758a7.tar.gz"
CHECKSUM_SHA256="b29256914593af0ad606eccb92dc143ab89dc2e8c83ea7405b98459528639943"
SOURCE_DIR="pyenet-265b18eda4556c893f5851f6dcb1084bddc758a7"
# Note that at the time of writing the latest stable release of enet does not
# contain getaddrinfo() support. The specific commit introducing this support
# (which is also currently the HEAD) is therefore used here.
SOURCE_URI_2="https://github.com/lsalzman/enet/archive/5f476546edabdf37509cd3448d1a616f5eca535d.tar.gz"
CHECKSUM_SHA256_2="1c49f074d611b3e00c79abd94cb1df8f1b4bb013ebd20e0d03015ddac955ff16"
SOURCE_DIR_2="enet-5f476546edabdf37509cd3448d1a616f5eca535d"
LICENSE="
BSD (3-clause)
MIT
"
COPYRIGHT="2003 Scott Robinson; 2009,2010 Andrew Resch"
REVISION="1"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PATCHES="pyenet-$portVersion.patchset"
PROVIDES="
pyenet = $portVersion
"
REQUIRES="
haiku
cmd:python
"
BUILD_PREREQUIRES="
haiku_devel
cmd:cython
cmd:gcc
cmd:python
"
BUILD()
{
ln -sf $sourceDir2 enet
python setup.py build
}
INSTALL()
{
python setup.py install --prefix=$prefix
}