Date: Fri, 2 Feb 2018 19:07:21 +0000 (UTC) From: Alan Somers <asomers@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r460727 - in head/devel: p4 p4/files p4api p4api/files Message-ID: <201802021907.w12J7LMe042208@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: asomers (src committer) Date: Fri Feb 2 19:07:21 2018 New Revision: 460727 URL: https://svnweb.freebsd.org/changeset/ports/460727 Log: devel/p4 devel/p4api: build from source Build devel/p4 and devel/p4api from source rather than use the prebuilt binary downloads. This fixes p4api on FreeBSD 12. The ports originally used the binaries because source wasn't available until a few years ago. By happy accident, building from source also makes the ports available on non-Intel architectures. PR: 225613 Reviewed by: brd Approved by: brd (ports) Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D14162 Added: head/devel/p4/distinfo (contents, props changed) head/devel/p4/files/ head/devel/p4/files/patch-Jamrules (contents, props changed) head/devel/p4api/distinfo (contents, props changed) head/devel/p4api/files/ head/devel/p4api/files/patch-Jamrules (contents, props changed) Deleted: head/devel/p4/distinfo.freebsd100x86 head/devel/p4/distinfo.freebsd100x86_64 head/devel/p4api/distinfo.freebsd100x86 head/devel/p4api/distinfo.freebsd100x86_64 Modified: head/devel/p4/Makefile head/devel/p4/Makefile.inc head/devel/p4api/Makefile Modified: head/devel/p4/Makefile ============================================================================== --- head/devel/p4/Makefile Fri Feb 2 18:54:12 2018 (r460726) +++ head/devel/p4/Makefile Fri Feb 2 19:07:21 2018 (r460727) @@ -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 @@ PLIST_FILES= bin/p4 .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 <bsd.port.post.mk> Modified: head/devel/p4/Makefile.inc ============================================================================== --- head/devel/p4/Makefile.inc Fri Feb 2 18:54:12 2018 (r460726) +++ head/devel/p4/Makefile.inc Fri Feb 2 19:07:21 2018 (r460727) @@ -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/.//} Added: head/devel/p4/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/p4/distinfo Fri Feb 2 19:07:21 2018 (r460727) @@ -0,0 +1,3 @@ +TIMESTAMP = 1517531476 +SHA256 (2016-1.zip) = 75ee76a2eb1b6a866b61c2e6bd473aa57ff796d8e5e2f2497d219bf5628a4fc7 +SIZE (2016-1.zip) = 2249015 Added: head/devel/p4/files/patch-Jamrules ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/p4/files/patch-Jamrules Fri Feb 2 19:07:21 2018 (r460727) @@ -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) ; Modified: head/devel/p4api/Makefile ============================================================================== --- head/devel/p4api/Makefile Fri Feb 2 18:54:12 2018 (r460726) +++ head/devel/p4api/Makefile Fri Feb 2 19:07:21 2018 (r460727) @@ -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 <bsd.port.pre.mk> +USES= zip -.include "${.CURDIR}/../p4/Makefile.inc" +WRKSRC= ${WRKDIR}/${DISTNAME} -TAR_FILES= p4api.tgz +.include <bsd.port.pre.mk> +.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 <bsd.port.post.mk> Added: head/devel/p4api/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/p4api/distinfo Fri Feb 2 19:07:21 2018 (r460727) @@ -0,0 +1,5 @@ +TIMESTAMP = 1517528733 +SHA256 (2016-1.zip) = 75ee76a2eb1b6a866b61c2e6bd473aa57ff796d8e5e2f2497d219bf5628a4fc7 +SIZE (2016-1.zip) = 2249015 +SHA256 (p4api.pdf) = df5e388c2753925d8411d98a14d7b634ef2543d4a0a04a340513e89d887ab57b +SIZE (p4api.pdf) = 1908708 Added: head/devel/p4api/files/patch-Jamrules ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/p4api/files/patch-Jamrules Fri Feb 2 19:07:21 2018 (r460727) @@ -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) ;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802021907.w12J7LMe042208>