svn commit: r460727 - in head/devel: p4 p4/files p4api p4api/files
Alan Somers
asomers at FreeBSD.org
Fri Feb 2 19:07:22 UTC 2018
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 at 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 at 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) ;
More information about the svn-ports-head
mailing list