Index: devel/py-p4python/Makefile =================================================================== --- /dev/null +++ devel/py-p4python/Makefile @@ -0,0 +1,21 @@ +# $FreeBSD$ + +PORTNAME= p4python +PORTVERSION= 2016.1.1447008 +CATEGORIES= devel +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= asomers@FreeBSD.org +COMMENT= Python bindings for the Perforce API + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE.txt + +BUILD_DEPENDS+= ${LOCALBASE}/lib/perforce/libclient.a:devel/p4api +RUN_DEPENDS:= ${BUILD_DEPENDS} + +USES= dos2unix python +USE_PYTHON= distutils autoplist + +.include Index: devel/py-p4python/distinfo =================================================================== --- /dev/null +++ devel/py-p4python/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1495215469 +SHA256 (p4python-2016.1.1447008.tar.gz) = 1907f3c7ace54763651c1ccf20b92e6e9e72de58b240c591d6291ebb24ef0f1b +SIZE (p4python-2016.1.1447008.tar.gz) = 84231 Index: devel/py-p4python/files/patch-setup.py =================================================================== --- /dev/null +++ devel/py-p4python/files/patch-setup.py @@ -0,0 +1,44 @@ +--- setup.py.orig 2017-05-19 17:13:22 UTC ++++ setup.py +@@ -102,7 +102,12 @@ class P4APIFtp: + + elif system == "FreeBSD": + platform_str += "freebsd" +- release = uname.release ++ if sys.version_info.major == 3: ++ release = uname.release ++ elif sys.version_info.major == 2: ++ release = uname[2] ++ else: ++ raise Exception("Unknown python version %s" % sys.version) + + value = int(''.join(itertools.takewhile(lambda s: s.isdigit(), release))) + +@@ -217,6 +222,8 @@ class VersionInfo: + verFile = os.path.join(p4ApiDir, "sample", "Version") + if not os.path.exists(verFile): + verFile = os.path.join(p4ApiDir, "Version") ++ if not os.path.exists(verFile): ++ verFile = os.path.join(p4ApiDir, "share", "examples", "p4api", "Version") + input = open(verFile) + for line in input: + for pattern, handler in self.patterns: +@@ -475,8 +482,16 @@ def do_setup(p4_api_dir, ssl): + else: + print ("API Release %s.%s" % (ryear, rversion)) + +- inc_path = [p4_api_dir, os.path.join(p4_api_dir, "include", "p4")] +- lib_path = [p4_api_dir, os.path.join(p4_api_dir, "lib")] ++ inc_dir = os.path.join(p4_api_dir, "include", "p4") ++ if not os.path.exists(inc_dir): ++ inc_dir = os.path.join(p4_api_dir, "include", "perforce") ++ ++ lib_dir = os.path.join(p4_api_dir, "lib", "perforce") ++ if not os.path.exists(lib_dir): ++ lib_dir = os.path.join(p4_api_dir, "lib") ++ ++ inc_path = [p4_api_dir, inc_dir] ++ lib_path = [p4_api_dir, lib_dir] + if ssl: + lib_path.append( ssl ) + Index: devel/py-p4python/pkg-descr =================================================================== --- /dev/null +++ devel/py-p4python/pkg-descr @@ -0,0 +1,4 @@ +The Python bindings for the Perforce Client API provide convenient classes +within Python for communicating with Perforce SCM servers. + +WWW: https://www.perforce.com/perforce/doc.current/manuals/p4script/03_python.html