Index: devel/p4/Makefile =================================================================== --- devel/p4/Makefile +++ devel/p4/Makefile @@ -2,25 +2,21 @@ # $FreeBSD$ PORTNAME= p4 -PORTVERSION= 2016.1.1492381 +PORTVERSION= ${YEAR}.${MAJOR}.${MINOR} +PORTREVISION= 1 CATEGORIES= devel -MASTER_SITES= ftp://ftp.perforce.com/perforce/${P4VERSION}/bin.${PLATFORM}/ \ - http://filehost.perforce.com/perforce/${P4VERSION}/bin.${PLATFORM}/ -DISTNAME= p4 -EXTRACT_SUFX= -EXTRACT_ONLY= # none +MASTER_SITES= https://swarm.workshop.perforce.com/projects/perforce_software-p4/archives/:zip +DISTNAME= ${YEAR}-${MAJOR} +DISTFILES= ${ZIP_FILES}:zip +EXTRACT_ONLY= ${ZIP_FILES} MAINTAINER= gordon@FreeBSD.org COMMENT= Perforce client -# The LICENSE file is not included in the distfile, but Catherine Louie of -# Perforce Support assures me that the LICENSE file on swarm also applies to -# the binary distribution. -# https://swarm.workshop.perforce.com/projects/perforce_software-p4/files/2016-1/LICENSE LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE -NO_BUILD= yes -NO_WRKSUBDIR= yes +BUILD_DEPENDS= ${JAM}:devel/jam PLIST_FILES= bin/p4 @@ -28,7 +24,16 @@ .include "Makefile.inc" +# Sadly, Jam always returns 1 even on success. Ignore its return value and +# detect build errors during the install phase. +do-build: + cd ${WRKSRC} && ${SETENV} C++="${CXX}" C++FLAGS="${CXXFLAGS}" \ + CCFLAGS="${CFLAGS}" \ + LINKFLAGS="${LDFLAGS}" \ + OSVER=${OSVER} \ + ${JAM} -dx -j${MAKE_JOBS_NUMBER} || true + do-install: - ${INSTALL_PROGRAM} ${DISTDIR}/${DIST_SUBDIR}/p4 ${STAGEDIR}${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKSRC}/p4-bin/p4 ${STAGEDIR}${PREFIX}/bin .include Index: devel/p4/Makefile.inc =================================================================== --- devel/p4/Makefile.inc +++ devel/p4/Makefile.inc @@ -1,22 +1,8 @@ -# Figure out what to install -.if ${OPSYS} == FreeBSD - -ONLY_FOR_ARCHS?= amd64 i386 - -.if ${ARCH} == amd64 -PLATFORM= freebsd100x86_64 - -.elif ${ARCH} == i386 -PLATFORM= freebsd100x86 - -.else -IGNORE= unsupported OS release, sorry -.endif - -.else -IGNORE= ${OPSYS} is unsupported, sorry -.endif - +ZIP_FILES= ${DISTNAME}.zip P4VERSION?= r${PORTVERSION:S/^20//:C/\.[0-9]+$//} -DIST_SUBDIR?= perforce/${PORTVERSION}/bin.${PLATFORM} -DISTINFO_FILE?= ${MASTERDIR}/distinfo.${PLATFORM} +YEAR= 2016 +MAJOR= 1 +MINOR= 1492381 + +JAM?= ${LOCALBASE}/bin/jam +OSVER?= ${OSREL:S/.//} Index: devel/p4/distinfo =================================================================== --- /dev/null +++ devel/p4/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1517531476 +SHA256 (2016-1.zip) = 75ee76a2eb1b6a866b61c2e6bd473aa57ff796d8e5e2f2497d219bf5628a4fc7 +SIZE (2016-1.zip) = 2249015 Index: devel/p4/distinfo.freebsd100x86 =================================================================== --- devel/p4/distinfo.freebsd100x86 +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1488697272 -SHA256 (perforce/2016.1.1492381/bin.freebsd100x86/p4) = e5bec189bd219e0f9074bfe46f945c4af9ce8c9d8fae1eb82c33577e5412425a -SIZE (perforce/2016.1.1492381/bin.freebsd100x86/p4) = 3177020 Index: devel/p4/distinfo.freebsd100x86_64 =================================================================== --- devel/p4/distinfo.freebsd100x86_64 +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1488697269 -SHA256 (perforce/2016.1.1492381/bin.freebsd100x86_64/p4) = a5668b5747bbeef58bf3003483b4831df7036b1b8af303eead9f2d7ca88f4e5b -SIZE (perforce/2016.1.1492381/bin.freebsd100x86_64/p4) = 3683848 Index: devel/p4/files/patch-Jamrules =================================================================== --- /dev/null +++ devel/p4/files/patch-Jamrules @@ -0,0 +1,28 @@ +--- Jamrules.orig 2018-02-01 21:40:54 UTC ++++ Jamrules +@@ -449,12 +449,11 @@ + # P4BIN is set to ../p4-bin (relative to P4) + + SubDir AllP4 p4 ; # where we are +- SubDir AllP4 p4-bin ; # where we want to be ++ SubDir AllP4 p4 p4-bin ; # where we want to be + SubDir P4BIN ; # name is that + SubDir AllP4 p4 ; # back to where we started + + EXEC_SUB_TOKENS = +- $(OS:L)$(OSVER:EL)$(OSPLAT:EL) + $(BUILD) + $(TYPE:L) ; + +@@ -931,11 +930,6 @@ + OPTIM += -Wno-parentheses -Wno-switch -fwrapv ; + + _mflags = ; +- switch $(OSPLAT:U) +- { +- case X86 : _mflags = -m32 ; +- case X86_64 : _mflags = -m64 ; +- } + + $(GENFLAGS) += $(_mflags) -pipe ; + LINKFLAGS += $(_mflags) ; Index: devel/p4api/Makefile =================================================================== --- devel/p4api/Makefile +++ devel/p4api/Makefile @@ -1,41 +1,55 @@ # $FreeBSD$ PORTNAME= p4api -PORTVERSION= 2016.1.1492381 +PORTVERSION= ${YEAR}.${MAJOR}.${MINOR} +PORTREVISION= 1 CATEGORIES= devel -MASTER_SITES= ftp://ftp.perforce.com/perforce/${P4VERSION}/bin.${PLATFORM}/:tar \ +MASTER_SITES= https://swarm.workshop.perforce.com/projects/perforce_software-p4/archives/:zip \ ftp://ftp.perforce.com/perforce/${P4VERSION}/doc/manuals/p4api/:pdf -EXTRACT_SUFX= -DISTFILES= ${TAR_FILES}:tar p4api.pdf:pdf -EXTRACT_ONLY= ${TAR_FILES} +DISTNAME= ${YEAR}-${MAJOR} +DISTFILES= ${ZIP_FILES}:zip p4api.pdf:pdf +EXTRACT_ONLY= ${ZIP_FILES} MAINTAINER= gordon@FreeBSD.org COMMENT= Perforce API (static libraries and header files) -# The LICENSE file is not included in the distfile, but Catherine Louie of -# Perforce Support assures me that the LICENSE file on swarm also applies to -# the binary distribution. -# https://swarm.workshop.perforce.com/projects/perforce_software-p4/files/2016-1/LICENSE LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE -NO_BUILD= yes +BUILD_DEPENDS= ${JAM}:devel/jam OPTIONS_DEFINE= DOCS EXAMPLES -.include +USES= zip -.include "${.CURDIR}/../p4/Makefile.inc" +WRKSRC= ${WRKDIR}/${DISTNAME} -TAR_FILES= p4api.tgz +.include +.include "../p4/Makefile.inc" +# Sadly, Jam always returns 1 even on success. Ignore its return value and +# detect build errors during the install phase. +do-build: + cd ${WRKSRC} && ${SETENV} C++="${CXX}" C++FLAGS="${CXXFLAGS}" \ + CCFLAGS="${CFLAGS}" \ + LINKFLAGS="${LDFLAGS}" \ + OSVER=${OSVER} \ + API=1 \ + TYPE=pic \ + ${JAM} -dx -j${MAKE_JOBS_NUMBER} || true + do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/include/perforce - cd ${WRKSRC}/include/p4 && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/include/perforce + cd ${WRKSRC}/p4-bin/bin.pic/p4api-*/include/p4 && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/include/perforce ${MKDIR} ${STAGEDIR}${PREFIX}/lib/perforce - cd ${WRKSRC}/lib && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/perforce + cd ${WRKSRC}/p4-bin/bin.pic/p4api-*/lib && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/perforce + +do-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} - ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/p4api.pdf ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${DISTDIR}/p4api.pdf ${STAGEDIR}${DOCSDIR} + +do-install-EXAMPLES-on: ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} - cd ${WRKSRC}/sample && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} + cd ${WRKSRC}/p4-bin/bin.pic/p4api-*/sample && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} .include Index: devel/p4api/distinfo =================================================================== --- /dev/null +++ devel/p4api/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1517528733 +SHA256 (2016-1.zip) = 75ee76a2eb1b6a866b61c2e6bd473aa57ff796d8e5e2f2497d219bf5628a4fc7 +SIZE (2016-1.zip) = 2249015 +SHA256 (p4api.pdf) = df5e388c2753925d8411d98a14d7b634ef2543d4a0a04a340513e89d887ab57b +SIZE (p4api.pdf) = 1908708 Index: devel/p4api/distinfo.freebsd100x86 =================================================================== --- devel/p4api/distinfo.freebsd100x86 +++ /dev/null @@ -1,5 +0,0 @@ -TIMESTAMP = 1488697449 -SHA256 (perforce/2016.1.1492381/bin.freebsd100x86/p4api.tgz) = 9bd8114b24c4c6fe633eb3825441d48f04154792b77bc02feb175fe3b10d73ed -SIZE (perforce/2016.1.1492381/bin.freebsd100x86/p4api.tgz) = 3905939 -SHA256 (perforce/2016.1.1492381/bin.freebsd100x86/p4api.pdf) = df5e388c2753925d8411d98a14d7b634ef2543d4a0a04a340513e89d887ab57b -SIZE (perforce/2016.1.1492381/bin.freebsd100x86/p4api.pdf) = 1908708 Index: devel/p4api/distinfo.freebsd100x86_64 =================================================================== --- devel/p4api/distinfo.freebsd100x86_64 +++ /dev/null @@ -1,5 +0,0 @@ -TIMESTAMP = 1488697441 -SHA256 (perforce/2016.1.1492381/bin.freebsd100x86_64/p4api.tgz) = 7d7892be5d6895a60e996df15b065eebad98fd7632e668dca4ba80b6f73c6830 -SIZE (perforce/2016.1.1492381/bin.freebsd100x86_64/p4api.tgz) = 4175401 -SHA256 (perforce/2016.1.1492381/bin.freebsd100x86_64/p4api.pdf) = df5e388c2753925d8411d98a14d7b634ef2543d4a0a04a340513e89d887ab57b -SIZE (perforce/2016.1.1492381/bin.freebsd100x86_64/p4api.pdf) = 1908708 Index: devel/p4api/files/patch-Jamrules =================================================================== --- /dev/null +++ devel/p4api/files/patch-Jamrules @@ -0,0 +1,28 @@ +--- Jamrules.orig 2018-02-01 21:40:54 UTC ++++ Jamrules +@@ -449,12 +449,11 @@ + # P4BIN is set to ../p4-bin (relative to P4) + + SubDir AllP4 p4 ; # where we are +- SubDir AllP4 p4-bin ; # where we want to be ++ SubDir AllP4 p4 p4-bin ; # where we want to be + SubDir P4BIN ; # name is that + SubDir AllP4 p4 ; # back to where we started + + EXEC_SUB_TOKENS = +- $(OS:L)$(OSVER:EL)$(OSPLAT:EL) + $(BUILD) + $(TYPE:L) ; + +@@ -931,11 +930,6 @@ + OPTIM += -Wno-parentheses -Wno-switch -fwrapv ; + + _mflags = ; +- switch $(OSPLAT:U) +- { +- case X86 : _mflags = -m32 ; +- case X86_64 : _mflags = -m64 ; +- } + + $(GENFLAGS) += $(_mflags) -pipe ; + LINKFLAGS += $(_mflags) ;