| @@ -1,89 +1,92 @@ | | | @@ -1,89 +1,92 @@ |
1 | # $NetBSD: Makefile,v 1.12 2019/08/08 16:47:26 gdt Exp $ | | 1 | # $NetBSD: Makefile,v 1.13 2019/10/25 00:41:37 gdt Exp $ |
2 | | | 2 | |
| | | 3 | # Update to 5.11.50 is on old because of crashing. |
3 | DISTNAME= unifi-5.10.26 | | 4 | DISTNAME= unifi-5.10.26 |
4 | CATEGORIES= net | | 5 | CATEGORIES= net |
5 | MASTER_SITES= -http://dl.ubnt.com/unifi/${PKGVERSION_NOREV}/UniFi.unix.zip | | 6 | MASTER_SITES= -http://dl.ubnt.com/unifi/${PKGVERSION_NOREV}/UniFi.unix.zip |
6 | EXTRACT_SUFX= .zip | | 7 | EXTRACT_SUFX= .zip |
7 | | | 8 | |
| | | 9 | # Updates must be tested to not only build but actually function under |
| | | 10 | # at least NetBSD 8/amd64 with actual UBNT hardware. |
8 | MAINTAINER= gdt@NetBSD.org | | 11 | MAINTAINER= gdt@NetBSD.org |
9 | HOMEPAGE= https://www.ubnt.com/download/unifi/ | | 12 | HOMEPAGE= https://www.ubnt.com/download/unifi/ |
10 | # The content that belongs in NEWS are often in a blog. | | 13 | # The content that belongs in NEWS are often in a blog. |
11 | #BLOGPAGE= https://community.ui.com/releases | | 14 | #BLOGPAGE= https://community.ui.com/releases |
12 | COMMENT= Provisioning software for network products made by Ubiquiti | | 15 | COMMENT= Provisioning software for network products made by Ubiquiti |
13 | LICENSE= ubiquiti-license | | 16 | LICENSE= ubiquiti-license |
14 | | | 17 | |
15 | # Bundled firmware images cannot be redistributed | | 18 | # Bundled firmware images cannot be redistributed |
16 | RESTRICTED= No permission to redistribute | | 19 | RESTRICTED= No permission to redistribute |
17 | NO_BIN_ON_CDROM= ${RESTRICTED} | | 20 | NO_BIN_ON_CDROM= ${RESTRICTED} |
18 | NO_BIN_ON_FTP= ${RESTRICTED} | | 21 | NO_BIN_ON_FTP= ${RESTRICTED} |
19 | NO_SRC_ON_CDROM= ${RESTRICTED} | | 22 | NO_SRC_ON_CDROM= ${RESTRICTED} |
20 | NO_SRC_ON_FTP= ${RESTRICTED} | | 23 | NO_SRC_ON_FTP= ${RESTRICTED} |
21 | | | 24 | |
22 | DISTFILES= ${DEFAULT_DISTFILES} | | 25 | DISTFILES= ${DEFAULT_DISTFILES} |
23 | EXTRACT_ONLY= ${DEFAULT_DISTFILES} | | 26 | EXTRACT_ONLY= ${DEFAULT_DISTFILES} |
24 | | | 27 | |
25 | # Unifi bundles snappy-java-1.0.5.jar, which contains native code. | | 28 | # Unifi bundles snappy-java-1.0.5.jar, which contains native code. |
26 | # We can use the bundled snappy-java but we must recompile the native portion | | 29 | # We can use the bundled snappy-java but we must recompile the native portion |
27 | # because it only ship linux binaries. The rcd script takes care of loading the | | 30 | # because it only ship linux binaries. The rcd script takes care of loading the |
28 | # correct library. | | 31 | # correct library. |
29 | SNAPPY_JAVA= snappy-java-1.0.5.4 | | 32 | SNAPPY_JAVA= snappy-java-1.0.5.4 |
30 | SITES.${SNAPPY_JAVA}.tar.gz= -https://github.com/xerial/snappy-java/archive/${SNAPPY_JAVA:S/snappy-java-//}.tar.gz | | 33 | SITES.${SNAPPY_JAVA}.tar.gz= -https://github.com/xerial/snappy-java/archive/${SNAPPY_JAVA:S/snappy-java-//}.tar.gz |
31 | DISTFILES+= ${SNAPPY_JAVA}.tar.gz | | 34 | DISTFILES+= ${SNAPPY_JAVA}.tar.gz |
32 | EXTRACT_ONLY+= ${SNAPPY_JAVA}.tar.gz | | 35 | EXTRACT_ONLY+= ${SNAPPY_JAVA}.tar.gz |
33 | | | 36 | |
34 | SNAPPY= snappy-1.0.5 | | 37 | SNAPPY= snappy-1.0.5 |
35 | SITES.${SNAPPY}.tar.gz= http://download.openpkg.org/components/cache/snappy/ \ | | 38 | SITES.${SNAPPY}.tar.gz= http://download.openpkg.org/components/cache/snappy/ \ |
36 | http://ftp.NetBSD.org/pub/pkgsrc/distfiles/snappy-java10/ | | 39 | http://ftp.NetBSD.org/pub/pkgsrc/distfiles/snappy-java10/ |
37 | DISTFILES+= ${SNAPPY}.tar.gz | | 40 | DISTFILES+= ${SNAPPY}.tar.gz |
38 | EXTRACT_ONLY+= ${SNAPPY}.tar.gz | | 41 | EXTRACT_ONLY+= ${SNAPPY}.tar.gz |
39 | | | 42 | |
40 | CHECK_SHLIBS_SKIP= unifi/lib/native/* | | 43 | CHECK_SHLIBS_SKIP= unifi/lib/native/* |
41 | INSTALLATION_DIRS= unifi | | 44 | INSTALLATION_DIRS= unifi |
42 | | | 45 | |
43 | # Emulated JDK doesn't work due to epoll issues. Also, would require | | 46 | # Emulated JDK doesn't work due to epoll issues. Also, would require |
44 | # matching emulated native libraries, and we only compile actual | | 47 | # matching emulated native libraries, and we only compile actual |
45 | # native libaries. | | 48 | # native libaries. |
46 | PKG_JVMS_ACCEPTED= openjdk8 | | 49 | PKG_JVMS_ACCEPTED= openjdk8 |
47 | PKGSRC_MAKE_ENV+= JAVA_HOME=${PKG_JAVA_HOME} | | 50 | PKGSRC_MAKE_ENV+= JAVA_HOME=${PKG_JAVA_HOME} |
48 | USE_LANGUAGES= c c++ # for snappy JNI library | | 51 | USE_LANGUAGES= c c++ # for snappy JNI library |
49 | USE_TOOLS+= gmake pax | | 52 | USE_TOOLS+= gmake pax |
50 | WRKSRC= ${WRKDIR}/UniFi | | 53 | WRKSRC= ${WRKDIR}/UniFi |
51 | | | 54 | |
52 | # Upstream documents 3.4.15, but 3.4.4 actually works. Avoid mongodb4 because it | | 55 | # Upstream documents 3.4.15, but 3.4.4 actually works. Avoid mongodb4 because it |
53 | # has a problematic license. | | 56 | # has a problematic license. |
54 | DEPENDS+= mongodb>=3.4.4:../../databases/mongodb3 | | 57 | DEPENDS+= mongodb>=3.4.4:../../databases/mongodb3 |
55 | | | 58 | |
56 | FILES_SUBST+= UNIFI_USER=${UNIFI_USER:Q} UNIFI_GROUP=${UNIFI_GROUP:Q} | | 59 | FILES_SUBST+= UNIFI_USER=${UNIFI_USER:Q} UNIFI_GROUP=${UNIFI_GROUP:Q} |
57 | FILES_SUBST+= JAVA=${PKG_JAVA_HOME}/bin/java | | 60 | FILES_SUBST+= JAVA=${PKG_JAVA_HOME}/bin/java |
58 | RCD_SCRIPTS= unifi | | 61 | RCD_SCRIPTS= unifi |
59 | UNIFI_USER?= unifi | | 62 | UNIFI_USER?= unifi |
60 | UNIFI_GROUP?= unifi | | 63 | UNIFI_GROUP?= unifi |
61 | PKG_USERS_VARS= UNIFI_USER | | 64 | PKG_USERS_VARS= UNIFI_USER |
62 | PKG_GROUPS_VARS= UNIFI_GROUP | | 65 | PKG_GROUPS_VARS= UNIFI_GROUP |
63 | PKG_GROUPS= ${UNIFI_GROUP} | | 66 | PKG_GROUPS= ${UNIFI_GROUP} |
64 | PKG_USERS= ${UNIFI_USER}:${UNIFI_GROUP} | | 67 | PKG_USERS= ${UNIFI_USER}:${UNIFI_GROUP} |
65 | | | 68 | |
66 | .for d in data logs run work | | 69 | .for d in data logs run work |
67 | OWN_DIRS_PERMS+= ${PREFIX}/unifi/${d} ${UNIFI_USER} ${UNIFI_GROUP} 0700 | | 70 | OWN_DIRS_PERMS+= ${PREFIX}/unifi/${d} ${UNIFI_USER} ${UNIFI_GROUP} 0700 |
68 | .endfor | | 71 | .endfor |
69 | | | 72 | |
70 | .include "../../mk/bsd.prefs.mk" | | 73 | .include "../../mk/bsd.prefs.mk" |
71 | | | 74 | |
72 | post-extract: | | 75 | post-extract: |
73 | # drop executable bit | | 76 | # drop executable bit |
74 | find ${WRKSRC} -type f -print | xargs chmod -x | | 77 | find ${WRKSRC} -type f -print | xargs chmod -x |
75 | mkdir ${WRKDIR}/${SNAPPY_JAVA}/target | | 78 | mkdir ${WRKDIR}/${SNAPPY_JAVA}/target |
76 | ln -s ${WRKDIR}/${SNAPPY} ${WRKDIR}/${SNAPPY_JAVA}/target | | 79 | ln -s ${WRKDIR}/${SNAPPY} ${WRKDIR}/${SNAPPY_JAVA}/target |
77 | | | 80 | |
78 | do-build: | | 81 | do-build: |
79 | # bundled mongod is a linux binary; replace with symlink to native binary | | 82 | # bundled mongod is a linux binary; replace with symlink to native binary |
80 | rm -f ${WRKSRC}/bin/mongod | | 83 | rm -f ${WRKSRC}/bin/mongod |
81 | ln -s ${PREFIX}/bin/mongod ${WRKSRC}/bin/mongod | | 84 | ln -s ${PREFIX}/bin/mongod ${WRKSRC}/bin/mongod |
82 | cd ${WRKDIR}/${SNAPPY_JAVA} && ${BUILD_MAKE_CMD} native | | 85 | cd ${WRKDIR}/${SNAPPY_JAVA} && ${BUILD_MAKE_CMD} native |
83 | | | 86 | |
84 | do-install: | | 87 | do-install: |
85 | cd ${WRKSRC} && pax -rw . ${DESTDIR}${PREFIX}/unifi | | 88 | cd ${WRKSRC} && pax -rw . ${DESTDIR}${PREFIX}/unifi |
86 | ${INSTALL_LIB} ${WRKDIR}/${SNAPPY_JAVA}/target/snappy-1.0.5-Default/libsnappyjava.so ${DESTDIR}${PREFIX}/unifi/lib | | 89 | ${INSTALL_LIB} ${WRKDIR}/${SNAPPY_JAVA}/target/snappy-1.0.5-Default/libsnappyjava.so ${DESTDIR}${PREFIX}/unifi/lib |
87 | | | 90 | |
88 | .include "../../mk/java-vm.mk" | | 91 | .include "../../mk/java-vm.mk" |
89 | .include "../../mk/bsd.pkg.mk" | | 92 | .include "../../mk/bsd.pkg.mk" |