Added
Link Here
|
1 |
PORTNAME= compass |
2 |
DISTVERSIONPREFIX= v |
3 |
DISTVERSION= 1.43.0 |
4 |
CATEGORIES= databases |
5 |
MASTER_SITES= https://cloud.mongodb.com/static/font/:fonts \ |
6 |
https://registry.npmjs.org/fs-xattr/-/:fs_xattr \ |
7 |
https://registry.npmjs.org/kerberos/-/:kerberos \ |
8 |
https://registry.npmjs.org/mongodb-client-encryption/-/:mongoclienc \ |
9 |
https://registry.npmjs.org/os-dns-native/-/:dns |
10 |
DISTFILES= EuclidCircularA-Semibold-WebXL.woff2:fonts \ |
11 |
EuclidCircularA-Semibold-WebXL.woff:fonts \ |
12 |
EuclidCircularA-SemiboldItalic-WebXL.woff2:fonts \ |
13 |
EuclidCircularA-SemiboldItalic-WebXL.woff:fonts \ |
14 |
EuclidCircularA-Medium-WebXL.woff2:fonts \ |
15 |
EuclidCircularA-Medium-WebXL.woff:fonts \ |
16 |
EuclidCircularA-MediumItalic-WebXL.woff2:fonts \ |
17 |
EuclidCircularA-MediumItalic-WebXL.woff:fonts \ |
18 |
EuclidCircularA-Regular-WebXL.woff2:fonts \ |
19 |
EuclidCircularA-Regular-WebXL.woff:fonts \ |
20 |
EuclidCircularA-RegularItalic-WebXL.woff2:fonts \ |
21 |
EuclidCircularA-RegularItalic-WebXL.woff:fonts \ |
22 |
fs-xattr-${NPM_FSXATTR_VER}.tgz:fs_xattr \ |
23 |
kerberos-${NPM_KERBEROS_VER}.tgz:kerberos \ |
24 |
mongodb-client-encryption-${MONGO_CLIENC_VER}.tgz:mongoclienc \ |
25 |
os-dns-native-${NPM_OSDNSNATIVE_VER}.tgz:dns |
26 |
DIST_SUBDIR= ${PORTNAME} |
27 |
EXTRACT_ONLY= ${DISTFILE_DEFAULT} |
28 |
|
29 |
MAINTAINER= hiroo.ono+freebsd@gmail.com |
30 |
COMMENT= Powerful GUI for MongoDB |
31 |
WWW= https://www.mongodb.com/products/compass/ |
32 |
|
33 |
LICENSE= SSPLv1 |
34 |
LICENSE_NAME= Server Side Public License |
35 |
LICENSE_FILE= ${WRKSRC}/LICENSE |
36 |
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept |
37 |
|
38 |
DISTCACHEFILES= ${DISTCACHEFILE_npm} \ |
39 |
${DISTCACHEFILE_gyp} \ |
40 |
${DISTCACHEFILE_yarn} \ |
41 |
${DISTCACHEFILE_cargo} |
42 |
DISTCACHEFILE_npm= ${DISTDIR}/${DIST_SUBDIR}/dotnpm-${DISTVERSION}.tar.xz |
43 |
DISTCACHEFILE_gyp= ${DISTDIR}/${DIST_SUBDIR}/dotgyp-${DISTVERSION}.tar.xz |
44 |
DISTCACHEFILE_yarn= ${DISTDIR}/${DIST_SUBDIR}/dotyarn-${DISTVERSION}.tar.xz |
45 |
DISTCACHEFILE_cargo= ${DISTDIR}/${DIST_SUBDIR}/dotcargo-${DISTVERSION}.tar.xz |
46 |
APPMODFILE= ${WRKDIR}/compass_node_modules.tar |
47 |
|
48 |
ONLY_FOR_ARCHS= amd64 arm64 |
49 |
USES= gettext-runtime gl gnome iconv jpeg nodejs:env python:build \ |
50 |
xorg |
51 |
USE_GL= gbm gl |
52 |
USE_GNOME= atk cairo gdkpixbuf2 glib20 gtk30 libxml2 libxslt pango |
53 |
USE_XORG= x11 xcb xcomposite xdamage xext xfixes xi xrandr xrender xtst |
54 |
USE_LDCONFIG= ${DATADIR} |
55 |
|
56 |
USE_GITHUB= yes |
57 |
GH_TUPLE= mongodb-js:compass:${DISTVERSIONPREFIX}${DISTVERSION} \ |
58 |
mongodb-js:reflux-state-mixin:e050454cb3be029c3e7fd2ee6a08111e4d15161f:reflux \ |
59 |
mongodb-js:zstd:${DISTVERSIONPREFIX}${MONGO_ZSTD_VER}:zstd \ |
60 |
napi-rs:napi-rs:@napi-rs/cli@${NPM_NAPI_VER}:napi |
61 |
|
62 |
FETCH_DEPENDS= npm-node${NODEJS_VERSION}>0:www/npm-node${NODEJS_VERSION} \ |
63 |
yarn-node${NODEJS_VERSION}>0:www/yarn-node${NODEJS_VERSION} \ |
64 |
cargo:lang/rust |
65 |
# Do not use USES=cmake, because compass itself does not build with cmake. |
66 |
# The npm module it depends on uses cmake to build. |
67 |
BUILD_DEPENDS= electron${ELECTRON_VER_MAJOR}:devel/electron${ELECTRON_VER_MAJOR} \ |
68 |
npm-node${NODEJS_VERSION}>0:www/npm-node${NODEJS_VERSION} \ |
69 |
yarn-node${NODEJS_VERSION}>0:www/yarn-node${NODEJS_VERSION} \ |
70 |
cmake:devel/cmake-core \ |
71 |
cargo:lang/rust \ |
72 |
pkg-config:devel/pkgconf \ |
73 |
zip:archivers/zip |
74 |
LIB_DEPENDS= libmongocrypt.so:databases/libmongocrypt \ |
75 |
libatk-bridge-2.0.so:accessibility/at-spi2-core \ |
76 |
libatspi.so:accessibility/at-spi2-core \ |
77 |
libFLAC.so:audio/flac \ |
78 |
libopus.so:audio/opus \ |
79 |
libdbus-1.so:devel/dbus \ |
80 |
libicuuc.so:devel/icu \ |
81 |
libepoll-shim.so:devel/libepoll-shim \ |
82 |
libevent.so:devel/libevent \ |
83 |
libffi.so:devel/libffi \ |
84 |
libnotify.so:devel/libnotify \ |
85 |
libpci.so:devel/libpci \ |
86 |
libnspr4.so:devel/nspr \ |
87 |
libre2.so:devel/re2 \ |
88 |
libdrm.so:graphics/libdrm \ |
89 |
libpng.so:graphics/png \ |
90 |
libwayland-client.so:graphics/wayland \ |
91 |
libwebp.so:graphics/webp \ |
92 |
libdav1d.so:multimedia/dav1d \ |
93 |
libva.so:multimedia/libva \ |
94 |
libopenh264.so:multimedia/openh264 \ |
95 |
libharfbuzz.so:print/harfbuzz \ |
96 |
libsecret-1.so:security/libsecret \ |
97 |
libnss3.so:security/nss \ |
98 |
libexpat.so:textproc/expat2 \ |
99 |
libxkbcommon.so:x11/libxkbcommon \ |
100 |
libxshmfence.so:x11/libxshmfence \ |
101 |
libfontconfig.so:x11-fonts/fontconfig |
102 |
TEST_DEPENDS= Xvfb:x11-servers/xorg-server@xvfb |
103 |
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib |
104 |
CUPS_LIB_DEPENDS= libcups.so:print/cups |
105 |
PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire |
106 |
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio |
107 |
SNDIO_PREVENTS= ALSA PULSEAUDIO |
108 |
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio |
109 |
|
110 |
PORTDOCS= AUTHORS \ |
111 |
CODE_OF_CONDUCT.md \ |
112 |
CONTRIBUTING.md \ |
113 |
README.md \ |
114 |
THIRD-PARTY-NOTICES.md |
115 |
|
116 |
# Options have to be in accord with electron29. |
117 |
OPTIONS_DEFINE= DOCS CUPS PIPEWIRE |
118 |
OPTIONS_DEFAULT= DOCS CUPS PIPEWIRE SNDIO GSSAPI_BASE |
119 |
OPTIONS_GROUP= AUDIO |
120 |
OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO |
121 |
OPTIONS_SINGLE= GSSAPI |
122 |
OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT |
123 |
GSSAPI_BASE_USES= gssapi |
124 |
GSSAPI_HEIMDAL_USES= gssapi:heimdal |
125 |
GSSAPI_MIT_USES= gssapi:mit |
126 |
|
127 |
PATCH_STRIP= -p1 |
128 |
|
129 |
CXXFLAGS+= -DNODE_API_EXPERIMENTAL \ |
130 |
-DNODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT |
131 |
MAKE_ENV+= ${PATH_ENV} |
132 |
MAKE_ENV+= HOME=${WRKDIR} |
133 |
MAKE_ENV+= ELECTRON_SKIP_BINARY_DOWNLOAD=1 |
134 |
.if defined(QUIET) |
135 |
MAKE_ENV+= QUIET=yes |
136 |
.else |
137 |
MAKE_ENV+= DEBUG=true |
138 |
.endif |
139 |
PATH_ENV= PATH=$${PATH}:${WRKSRC}/node_modules/.bin |
140 |
PATH_ENV_zstd= PATH=$${PATH}:${MONGO_ZSTD_DIR}/node_modules/.bin |
141 |
TEST_ENV+= HOME=${WRKDIR} |
142 |
TEST_ENV+= PATH=$${PATH}:${WRKSRC}/node_modules/.bin |
143 |
HADRON_ENV+= PATH=$${PATH}:${WRKSRC}/node_modules/.bin |
144 |
HADRON_ENV+= HADRON_SKIP_INSTALLER=true |
145 |
HADRON_ENV+= ELECTRON_SKIP_BINARY_DOWNLOAD=1 |
146 |
HADRON_ENV+= APPMOD=${APPMODFILE} |
147 |
HADRON_ENV+= DEBUG=hadron* |
148 |
|
149 |
ELECTRON_DIR= ${.CURDIR}/../../devel/electron29 |
150 |
.include "${ELECTRON_DIR}/Makefile.version" |
151 |
ELECTRON_DOWNLOAD_URL= https://github.com/electron/electron/releases/download/v${ELECTRON_VER} |
152 |
ELECTRON_DOWNLOAD_URL_HASH!= /sbin/sha256 -q -s ${ELECTRON_DOWNLOAD_URL} |
153 |
.if defined(ARCH) && ${ARCH} == amd64 |
154 |
ELECTRON_ARCH= x64 |
155 |
NAPI_TARGET= x86_64-unknown-freebsd |
156 |
.elif defined(ARCH) && ${ARCH} == arm64 |
157 |
ELECTRON_ARCH= arm64 |
158 |
NAPI_TARGET= aarch64-unknown-freebsd |
159 |
.endif |
160 |
|
161 |
MONGO_CLIENC_VER= 6.0.0 |
162 |
MONGO_ZSTD_VER= 1.0.0 |
163 |
NPM_FSXATTR_VER= 0.3.1 |
164 |
NPM_KERBEROS_VER= 2.1.0 |
165 |
NPM_NAPI_VER= 2.9.0 |
166 |
COMPASS_DIR= ${WRKSRC}/packages/compass |
167 |
MONGO_ZSTD_DIR= ${WRKDIR}/zstd-${MONGO_ZSTD_VER} |
168 |
NODE_MODULES_DIR= ${WRKSRC}/node_modules |
169 |
NPM_NAPI_DIR= ${WRKDIR}/napi-rs--napi-rs-cli-${NPM_NAPI_VER} |
170 |
DISTTMP_DIR= ${WRKDIR}/dist-tmp |
171 |
|
172 |
NPM_OSDNSNATIVE_VER= 1.2.1 |
173 |
|
174 |
# WC=/usr/bin/wc |
175 |
|
176 |
post-fetch: ${DISTCACHEFILES} |
177 |
|
178 |
${DISTCACHEFILE_npm}: |
179 |
# Cache npm modules to avoid network connection at later stages |
180 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm cache add \ |
181 |
$$(cat ${FILESDIR}/package-*.list) |
182 |
|
183 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_DEFAULT} -C ${WRKDIR} |
184 |
${MKDIR} ${NODE_MODULES_DIR} |
185 |
${REINPLACE_CMD} -E ' \ |
186 |
s,^( *"electron"): *"[0-9~^].*"(.*)$$,\1: "${ELECTRON_VER}"\2,; \ |
187 |
' ${WRKSRC}/package-lock.json |
188 |
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm --ignore-scripts -- install |
189 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm cache add \ |
190 |
electron@${ELECTRON_VER} \ |
191 |
$$(npm view electron@${ELECTRON_VER:C/\.[^\.]*$//} version | \ |
192 |
${TAIL} -1 | ${SED} -E 's, .*,,') |
193 |
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm --ignore-scripts -- install \ |
194 |
electron@~${ELECTRON_VER} |
195 |
|
196 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/fs-xattr-${NPM_FSXATTR_VER}.tgz \ |
197 |
-C ${WRKDIR} |
198 |
${MKDIR} ${WRKDIR}/package/node_modules |
199 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
200 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
201 |
npm --ignore-scripts install node-gyp-cache@0.2.1 |
202 |
${RM} -rd ${WRKDIR}/package |
203 |
|
204 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/mongodb-client-encryption-${MONGO_CLIENC_VER}.tgz \ |
205 |
-C ${WRKDIR} |
206 |
${MKDIR} ${WRKDIR}/package/node_modules |
207 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
208 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
209 |
npm --ignore-scripts install |
210 |
${RM} -rd ${WRKDIR}/package |
211 |
|
212 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/os-dns-native-${NPM_OSDNSNATIVE_VER}.tgz \ |
213 |
-C ${WRKDIR} |
214 |
${MKDIR} ${WRKDIR}/package/node_modules |
215 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
216 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
217 |
npm --ignore-scripts install |
218 |
${RM} -rd ${WRKDIR}/package |
219 |
|
220 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_zstd} -C ${WRKDIR} |
221 |
${MKDIR} ${MONGO_ZSTD_DIR}/node_modules |
222 |
cd ${MONGO_ZSTD_DIR} && \ |
223 |
${PATCH} -p1 < ${FILESDIR}/mongodb-js-zstd.patch |
224 |
cd ${MONGO_ZSTD_DIR} && \ |
225 |
${SETENV} ${MAKE_ENV} ${PATH_ENV_zstd} \ |
226 |
npm --ignore-scripts -- install |
227 |
${RM} -rd ${MONGO_ZSTD_DIR} |
228 |
|
229 |
# Back up npm cache |
230 |
cd ${WRKDIR} && ${TAR} cJf ${DISTCACHEFILE_npm} .npm |
231 |
|
232 |
${DISTCACHEFILE_gyp}: |
233 |
# To prepare cache cached by node-gyp-cache when rebuilding |
234 |
# fs-xattr, mongodb-client-encryption and os-dns-native, |
235 |
# install node-gyp-cache and do |
236 |
# npm exec node-gyp-cache rebuild for fs-xattr, |
237 |
# npm run install for mongodb-client-encryption and |
238 |
# npm run install for os-dns-native |
239 |
# which is OK to fail here (because of python absent). |
240 |
${ECHO} "node_gyp = node-gyp-cache" >> ${WRKDIR}/.npmrc |
241 |
|
242 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/fs-xattr-${NPM_FSXATTR_VER}.tgz \ |
243 |
-C ${WRKDIR} |
244 |
${MKDIR} ${WRKDIR}/package/node_modules |
245 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
246 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
247 |
npm install node-gyp-cache@0.2.1 |
248 |
-cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
249 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
250 |
npm exec node-gyp-cache rebuild |
251 |
${RM} -rd ${WRKDIR}/package /tmp/work |
252 |
|
253 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/mongodb-client-encryption-${MONGO_CLIENC_VER}.tgz \ |
254 |
-C ${WRKDIR} |
255 |
${MKDIR} ${WRKDIR}/package/node_modules |
256 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
257 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
258 |
npm install node-gyp-cache@0.2.1 |
259 |
-cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
260 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
261 |
npm run install |
262 |
${RM} -rd ${WRKDIR}/package /tmp/work |
263 |
|
264 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/os-dns-native-${NPM_OSDNSNATIVE_VER}.tgz \ |
265 |
-C ${WRKDIR} |
266 |
${MKDIR} ${WRKDIR}/package/node_modules |
267 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
268 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
269 |
npm install node-gyp-cache@0.2.1 |
270 |
-cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
271 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
272 |
npm run install |
273 |
|
274 |
# Back up node-gyp-cache cache |
275 |
cd ${WRKDIR} && ${TAR} cJf ${DISTCACHEFILE_gyp} .cache |
276 |
|
277 |
${DISTCACHEFILE_yarn}: |
278 |
# Do yarn install to cache node modules for napi-rs-cli. |
279 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_napi} -C ${WRKDIR} |
280 |
cd ${WRKDIR}/napi-rs--napi-rs-cli-${NPM_NAPI_VER} && \ |
281 |
${PATCH} < ${FILESDIR}/napi-rs-cli-yarn.lock.patch |
282 |
${MKDIR} ${NPM_NAPI_DIR}/node_modules |
283 |
cd ${NPM_NAPI_DIR} && ${PATCH} -p1 < ${FILESDIR}/napi-cli.patch |
284 |
# If yarn fails at this stage, please retry. It tends to fail |
285 |
# sometimes. |
286 |
cd ${NPM_NAPI_DIR} && ${SETENV} ${MAKE_ENV} yarn install |
287 |
|
288 |
# Back up yarn cache |
289 |
cd ${NPM_NAPI_DIR} && ${TAR} cJf ${DISTCACHEFILE_yarn} .yarn |
290 |
|
291 |
${DISTCACHEFILE_cargo}: |
292 |
# Cache cargo crates for zstd. |
293 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_zstd} -C ${WRKDIR} |
294 |
cd ${MONGO_ZSTD_DIR} && ${SETENV} ${MAKE_ENV} \ |
295 |
cargo fetch |
296 |
# Back up cargo cache |
297 |
cd ${WRKDIR} && ${TAR} cJf ${DISTCACHEFILE_cargo} .cargo |
298 |
|
299 |
post-extract: |
300 |
# Restore npm and node-gyp-cache cache |
301 |
${TAR} xf ${DISTCACHEFILE_npm} -C ${WRKDIR} |
302 |
${TAR} xf ${DISTCACHEFILE_gyp} -C ${WRKDIR} |
303 |
${TAR} xf ${DISTCACHEFILE_cargo} -C ${WRKDIR} |
304 |
|
305 |
# Fonts |
306 |
-${MKDIR} ${WRKSRC}/packages/compass/src/app/fonts |
307 |
for font in ${DISTDIR}/${DIST_SUBDIR}/*.woff*; do \ |
308 |
${INSTALL_DATA} $${font} \ |
309 |
${WRKSRC}/packages/compass/src/app/fonts; \ |
310 |
done |
311 |
|
312 |
# Without npm cache verify, installing |
313 |
# mongodb-tools@https://codeload... fails. |
314 |
# if npm cache verify fails by 'too many open files', |
315 |
# set MAX_FILES_compass=16384 in poudriere.conf. |
316 |
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm cache verify |
317 |
|
318 |
post-patch: |
319 |
# Remove unsupported thing |
320 |
# ${REINPLACE_CMD} -E \ |
321 |
's|^( *)(initialInView.*)|\1//\2|' \ |
322 |
${WRKSRC}/packages/compass-components/src/components/workspace-container.tsx |
323 |
|
324 |
pre-build: |
325 |
# Prepare kerberos |
326 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/kerberos-${NPM_KERBEROS_VER}.tgz \ |
327 |
-C ${WRKDIR} |
328 |
cd ${WRKDIR}/package && ${PATCH} -p1 < ${FILESDIR}/kerberos.patch |
329 |
. if empty(PORT_OPTIONS:MGSSAPI_MIT) |
330 |
cd ${WRKDIR}/package && ${PATCH} -p1 < ${FILESDIR}/kerberos-heimdal.patch |
331 |
. endif |
332 |
${FIND} ${WRKDIR}/package -name \*.orig -or -name \*.bak -delete |
333 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm pack file:${WRKDIR}/package |
334 |
${RM} -rd ${WRKDIR}/package |
335 |
|
336 |
# Prepare mongodb-client-encryption |
337 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/mongodb-client-encryption-${MONGO_CLIENC_VER}.tgz \ |
338 |
-C ${WRKDIR} |
339 |
cd ${WRKDIR}/package && ${PATCH} -p1 < ${FILESDIR}/mongodb-client-encryption.patch |
340 |
${REINPLACE_CMD} -E \ |
341 |
's|^(.*\.include_dir.*)$$|\1 "/usr/include", "${PREFIX}/include"|' \ |
342 |
${WRKDIR}/package/binding.gyp |
343 |
${REINPLACE_CMD} -E \ |
344 |
"s|^( *').*(lib.*-static.*\.a)('.*)$$|\1${PREFIX}/lib/\2\3|" \ |
345 |
${WRKDIR}/package/binding.gyp |
346 |
${FIND} ${WRKDIR}/package -name \*.orig -or -name \*.bak -delete |
347 |
${MKDIR} ${WRKDIR}/package/node_modules |
348 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
349 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
350 |
npm --offline -- install node-gyp-cache@0.2.1 |
351 |
${ECHO} "node_gyp = node-gyp-cache" >> ${WRKDIR}/.npmrc |
352 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
353 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
354 |
node-gyp rebuild --python=${PYTHON_CMD} |
355 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm pack file:${WRKDIR}/package |
356 |
${RM} -rd ${WRKDIR}/package |
357 |
|
358 |
# Prepare fs-xattr |
359 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/fs-xattr-${NPM_FSXATTR_VER}.tgz \ |
360 |
-C ${WRKDIR} |
361 |
cd ${WRKDIR}/package && ${PATCH} -p1 < ${FILESDIR}/fs-xattr.patch |
362 |
${CP} ${FILESDIR}/xattr.h ${WRKDIR}/package/src |
363 |
${CP} ${FILESDIR}/xattr_api.c ${WRKDIR}/package/src |
364 |
${MKDIR} ${WRKDIR}/package/node_modules |
365 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
366 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
367 |
npm --offline -- install node-gyp-cache@0.2.1 |
368 |
# ${ECHO} "node_gyp = node-gyp-cache" >> ${WRKDIR}/.npmrc |
369 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
370 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
371 |
npm exec node-gyp-cache rebuild --python=${PYTHON_CMD} |
372 |
${FIND} ${WRKDIR}/package -name \*.orig -or -name \*.bak -delete |
373 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm pack file:${WRKDIR}/package |
374 |
${RM} -rd ${WRKDIR}/package |
375 |
|
376 |
# Prepare os-dns-native |
377 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/os-dns-native-${NPM_OSDNSNATIVE_VER}.tgz \ |
378 |
-C ${WRKDIR} |
379 |
cd ${WRKDIR} && ${PATCH} -p0 < ${FILESDIR}/os-dns-native.patch |
380 |
${MKDIR} ${WRKDIR}/package/node_modules |
381 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
382 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
383 |
npm --offline -- install node-gyp-cache@0.2.1 |
384 |
${ECHO} "node-gyp = node-gyp-cache" >> ${WRKDIR}/.npmrc |
385 |
cd ${WRKDIR}/package && ${SETENV} ${MAKE_ENV} \ |
386 |
PATH=${PATH}:${WRKDIR}/package/node_modules/.bin \ |
387 |
npm run install |
388 |
${FIND} ${WRKDIR}/package -name \*.orig -or -name \*.bak -delete |
389 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm pack file:${WRKDIR}/package |
390 |
${RM} -rd ${WRKDIR}/package |
391 |
|
392 |
# Prepare napi-rs-cli (for mongodb-js-zstd) |
393 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_napi} -C ${WRKDIR} |
394 |
${TAR} xf ${DISTCACHEFILE_yarn} -C ${NPM_NAPI_DIR} |
395 |
cd ${WRKDIR}/napi-rs--napi-rs-cli-${NPM_NAPI_VER} && \ |
396 |
${PATCH} < ${FILESDIR}/napi-rs-cli-yarn.lock.patch |
397 |
${MKDIR} ${NPM_NAPI_DIR}/node_modules |
398 |
cd ${NPM_NAPI_DIR} && ${PATCH} -p1 < ${FILESDIR}/napi-cli.patch |
399 |
cd ${NPM_NAPI_DIR} && ${SETENV} ${MAKE_ENV} yarn install |
400 |
cd ${NPM_NAPI_DIR} && ${SETENV} ${MAKE_ENV} \ |
401 |
PATH=$${PATH}:${NPM_NAPI_DIR}/node_modules/.bin npm run build |
402 |
${FIND} ${NPM_NAPI_DIR} -name \*.orig -or -name \*.bak -delete |
403 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm pack file:${NPM_NAPI_DIR}/cli |
404 |
|
405 |
# Prepare mongodb-js-zstd. |
406 |
${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_zstd} -C ${WRKDIR} |
407 |
|
408 |
# Avoid some errors by version unmatches. |
409 |
# ${REINPLACE_CMD} -E ' \ |
410 |
s,^( *"color-name"): *"[0-9~^].*"(.*)$$,\1: "1.1.4"\2,; \ |
411 |
s,^( *"decamelize"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
412 |
s,^( *"escape-string-regexp"): *".[0-9].*"(.*)$$,\1: "4.0.0"\2,; \ |
413 |
s,^( *"has-flag"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
414 |
s,^( *"is-plain-obj"): *"[0-9~^].*"(.*)$$,\1: "2.1.0"\2,; \ |
415 |
s,^( *"path-exists"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
416 |
' ${MONGO_ZSTD_DIR}/package-lock.json |
417 |
# for pjson in $$(find ${MONGO_ZSTD_DIR} -name package.json -print); do \ |
418 |
${REINPLACE_CMD} -E ' \ |
419 |
s,^( *"color-name"): *"[0-9~^].*"(.*)$$,\1: "1.1.4"\2,; \ |
420 |
s,^( *"decamelize"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
421 |
s,^( *"escape-string-regexp"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
422 |
s,^( *"has-flag"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
423 |
s,^( *"is-plain-obj"): *"[0-9~^].*"(.*)$$,\1: "2.1.0"\2,; \ |
424 |
s,^( *"path-exists"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
425 |
' $${pjson}; done |
426 |
|
427 |
# Install node_modules for zstd. |
428 |
${MKDIR} ${MONGO_ZSTD_DIR}/node_modules |
429 |
cd ${MONGO_ZSTD_DIR} && \ |
430 |
${PATCH} -p1 < ${FILESDIR}/mongodb-js-zstd.patch |
431 |
cd ${MONGO_ZSTD_DIR} && \ |
432 |
${SETENV} ${MAKE_ENV} ${PATH_ENV_zstd} \ |
433 |
npm --offline -- install \ |
434 |
${WRKDIR}/napi-rs-cli-${NPM_NAPI_VER}.tgz \ |
435 |
# add-stream@1.0.0 \ |
436 |
array-ify@1.0.0 \ |
437 |
array-union@2.1.0 \ |
438 |
arrify@1.0.1 \ |
439 |
check-error@1.0.2 \ |
440 |
color-name@1.1.4 \ |
441 |
concat-map@0.0.1 \ |
442 |
decamelize@4.0.0 \ |
443 |
decamelize-keys@1.1.0 \ |
444 |
escape-string-regexp@4.0.0 \ |
445 |
find-up@5.0.0 \ |
446 |
fs-access@1.0.1 \ |
447 |
fs.realpath@1.0.0 \ |
448 |
get-func-name@2.0.0 \ |
449 |
git-remote-origin-url@2.0.0 \ |
450 |
gitconfiglocal@1.0.0 \ |
451 |
has-flag@4.0.0 \ |
452 |
inflight@1.0.6 \ |
453 |
is-arrayish@0.2.1 \ |
454 |
is-extglob@2.1.1 \ |
455 |
is-plain-obj@2.1.0 \ |
456 |
is-text-path@1.0.1 \ |
457 |
isarray@1.0.0 \ |
458 |
isexe@2.0.0 \ |
459 |
json-stringify-safe@5.0.1 \ |
460 |
jsonparse@1.3.1 \ |
461 |
load-json-file@4.0.0 \ |
462 |
locate-path@6.0.0 \ |
463 |
lodash.ismatch@4.4.0 \ |
464 |
map-obj@1.0.1 \ |
465 |
null-check@1.0.0 \ |
466 |
once@1.4.0 \ |
467 |
p-locate@5.0.0 \ |
468 |
p-try@2.2.0 \ |
469 |
parse-json@5.2.0 \ |
470 |
path-exists@4.0.0 \ |
471 |
path-is-absolute@1.0.1 \ |
472 |
pify@3.0.0 \ |
473 |
q@1.5.1 \ |
474 |
read-pkg@5.2.0 \ |
475 |
read-pkg-up@7.0.1 \ |
476 |
require-directory@2.1.1 \ |
477 |
strip-bom@3.0.0 \ |
478 |
through@2.3.8 \ |
479 |
typedarray@0.0.6 \ |
480 |
util-deprecate@1.0.2 \ |
481 |
wordwrap@1.0.0 \ |
482 |
wrappy@1.0.2 |
483 |
cd ${MONGO_ZSTD_DIR} && \ |
484 |
${SETENV} ${MAKE_ENV} ${PATH_ENV_zstd} CARGO_NET_OFFLINE=true \ |
485 |
napi build --platform --release --target ${NAPI_TARGET} && \ |
486 |
${SETENV} ${MAKE_ENV} ${PATH_ENV_zstd} ${INSTALL_LIB} \ |
487 |
zstd.freebsd-${ELECTRON_ARCH}.node npm/freebsd-${ELECTRON_ARCH}/ |
488 |
${FIND} ${MONGO_ZSTD_DIR} -name \*.orig -or -name \*.bak -delete |
489 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm pack file:${MONGO_ZSTD_DIR} |
490 |
cd ${WRKDIR} && ${SETENV} ${MAKE_ENV} npm pack \ |
491 |
file:${MONGO_ZSTD_DIR}/npm/freebsd-${ELECTRON_ARCH} |
492 |
|
493 |
# Without these, there is a tendency to select the oldest version |
494 |
# and the package installation fails. |
495 |
# Split the sed script into some parts. It seems to be too long. |
496 |
# ${REINPLACE_CMD} -E ' \ |
497 |
s,^( *"array-union"): *"[0-9~^].*"(.*)$$,\1: "2.1.0"\2,; \ |
498 |
s,^( *"browser-stdout"): *"[0-9~^].*"(.*)$$,\1: "1.3.1"\2,; \ |
499 |
s,^( *"caller-path"): *"[0-9~^].*"(.*)$$,\1: "2.0.0"\2,; \ |
500 |
s,^( *"callsites"): *"[0-9~^].*"(.*)$$,\1: "3.1.0"\2,; \ |
501 |
s,^( *"chai"): *"[0-9~^].*"(.*)$$,\1: "4.3.6"\2,; \ |
502 |
s,^( *"chalk"): *"[0-9~^].*"(.*)$$,\1: "4.1.2"\2,; \ |
503 |
s,^( *"cli-cursor"): *"[0-9~^].*"(.*)$$,\1: "3.1.0"\2,; \ |
504 |
s,^( *"color-name"): *"[0-9~^].*"(.*)$$,\1: "1.1.4"\2,; \ |
505 |
s,^( *"commander"): *"[0-9~^].*"(.*)$$,\1: "7.2.0"\2,; \ |
506 |
s,^( *"debug"): *"[0-9~^].*"(.*)$$,\1: "4.3.4"\2,; \ |
507 |
s,^( *"deep-eql"): *"[0-9~^].*"(.*)$$,\1: "3.0.1"\2,; \ |
508 |
s,^( *"define-property"): *"[0-9~^].*"(.*)$$,\1: "2.0.2"\2,; \ |
509 |
s,^( *"detect-indent"): *"[0-9~^].*"(.*)$$,\1: "6.1.0"\2,; \ |
510 |
s,^( *"diff"): *"[0-9~^].*"(.*)$$,\1: "5.0.0"\2,; \ |
511 |
s,^( *"eslint"): *"[0-9~^].*"(.*)$$,\1: "7.32.0"\2,; \ |
512 |
s,^( *"eslint-plugin-react"): *"[0-9~^].*"(.*)$$,\1: "7.32.2"\2,; \ |
513 |
s,^( *"eslint-scope"): *"[0-9~^].*"(.*)$$,\1: "5.1.1"\2,; \ |
514 |
s,^( *"fast-deep-equal"): *"[0-9~^].*"(.*)$$,\1: "3.1.3"\2,; \ |
515 |
s,^( *"figures"): *"[0-9~^].*"(.*)$$,\1: "3.2.0"\2,; \ |
516 |
s,^( *"file-entry-cache"): *"[0-9~^].*"(.*)$$,\1: "5.0.1"\2,; \ |
517 |
s,^( *"fill-range"): *"[0-9~^].*"(.*)$$,\1: "7.0.1"\2,; \ |
518 |
s,^( *"glob"): *"[0-9~^].*"(.*)$$,\1: "8.0.3"\2,; \ |
519 |
s,^( *"glob-parent"): *"[0-9~^].*"(.*)$$,\1: "5.1.2"\2,; \ |
520 |
s,^( *"global-prefix"): *"[0-9~^].*"(.*)$$,\1: "3.0.0"\2,; \ |
521 |
s,^( *"growl"): *"[0-9~^].*"(.*)$$,\1: "1.10.5"\2,; \ |
522 |
s,^( *"has-flag"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
523 |
s,^( *"has-value"): *"[0-9~^].*"(.*)$$,\1: "1.0.0"\2,; \ |
524 |
s,^( *"has-values"): *"[0-9~^].*"(.*)$$,\1: "1.0.0"\2,; \ |
525 |
s,^( *"he"): *"[0-9~^].*"(.*)$$,\1: "1.2.0"\2,; \ |
526 |
s,^( *"http-errors"): *"[0-9~^].*"(.*)$$,\1: "2.0.0"\2,; \ |
527 |
s,^( *"inherits"): *"[0-9~^].*"(.*)$$,\1: "2.0.4"\2,; \ |
528 |
s,^( *"inquirer"): *"[0-9~^].*"(.*)$$,\1: "6.5.2"\2,; \ |
529 |
s,^( *"is-fullwidth-code-point"): *"[0-9~^].*"(.*)$$,\1: "3.0.0"\2,; \ |
530 |
s,^( *"is-number"): *"[0-9~^].*"(.*)$$,\1: "7.0.0"\2,; \ |
531 |
s,^( *"is-stream"): *"[0-9~^].*"(.*)$$,\1: "2.0.0"\2,; \ |
532 |
' ${WRKSRC}/package-lock.json |
533 |
# ${REINPLACE_CMD} -E ' \ |
534 |
s,^( *"js-tokens"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
535 |
s,^( *"json3"): *"[0-9~^].*"(.*)$$,\1: "3.3.3"\2,; \ |
536 |
s,^( *"jsonfile"): *"[0-9~^].*"(.*)$$,\1: "6.1.0"\2,; \ |
537 |
s,^( *"jsx-ast-utils"): *"[0-9~^].*"(.*)$$,\1: "3.3.3"\2,; \ |
538 |
s,^( *"kind-of"): *"[0-9~^].*"(.*)$$,\1: "6.0.3"\2,; \ |
539 |
s,^( *"levn"): *"[0-9~^].*"(.*)$$,\1: "0.4.1"\2,; \ |
540 |
s,^( *"mkdirp"): *"[0-9~^].*"(.*)$$,\1: "1.0.4"\2,; \ |
541 |
s,^( *"ms"): *"[0-9~^].*"(.*)$$,\1: "2.1.3"\2,; \ |
542 |
s,^( *"mute-stream"): *"[0-9~^].*"(.*)$$,\1: "0.0.8"\2,; \ |
543 |
s,^( *"npm-run-path"): *"[0-9~^].*"(.*)$$,\1: "4.0.1"\2,; \ |
544 |
s,^( *"path-exists"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
545 |
s,^( *"path-key"): *"[0-9~^].*"(.*)$$,\1: "3.1.1"\2,; \ |
546 |
s,^( *"pify"): *"[0-9~^].*"(.*)$$,\1: "5.0.0"\2,; \ |
547 |
s,^( *"prelude-ls"): *"[0-9~^].*"(.*)$$,\1: "1.2.1"\2,; \ |
548 |
s,^( *"progress"): *"[0-9~^].*"(.*)$$,\1: "2.0.3"\2,; \ |
549 |
s,^( *"punycode"): *"[0-9~^].*"(.*)$$,\1: "2.1.1"\2,; \ |
550 |
s,^( *"readable-stream"): *"[0-9~^].*"(.*)$$,\1: "4.3.0"\2,; \ |
551 |
s,^( *"resolve-from"): *"[0-9~^].*"(.*)$$,\1: "5.0.0"\2,; \ |
552 |
s,^( *"restore-cursor"): *"[0-9~^].*"(.*)$$,\1: "3.1.0"\2,; \ |
553 |
s,^( *"run-async"): *"[0-9~^].*"(.*)$$,\1: "2.4.1"\2,; \ |
554 |
' ${WRKSRC}/package-lock.json |
555 |
# ${REINPLACE_CMD} -E ' \ |
556 |
s,^( *"shebang-command"): *"[0-9~^].*"(.*)$$,\1: "2.0.0"\2,; \ |
557 |
s,^( *"shebang-regex"): *"[0-9~^].*"(.*)$$,\1: "3.0.0"\2,; \ |
558 |
s,^( *"shelljs"): *"[0-9~^].*"(.*)$$,\1: "0.8.4"\2,; \ |
559 |
s,^( *"sinon"): *"[0-9~^].*"(.*)$$,\1: "9.2.4"\2,; \ |
560 |
s,^( *"slash"): *"[0-9~^].*"(.*)$$,\1: "3.0.0"\2,; \ |
561 |
s,^( *"sort-keys"): *"[0-9~^].*"(.*)$$,\1: "4.2.0"\2,; \ |
562 |
s,^( *"strip-ansi"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
563 |
s,^( *"strip-bom"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
564 |
s,^( *"strip-bom-buf"): *"[0-9~^].*"(.*)$$,\1: "2.0.0"\2,; \ |
565 |
s,^( *"strip-bom-stream"): *"[0-9~^].*"(.*)$$,\1: "4.0.0"\2,; \ |
566 |
s,^( *"strip-json-comments"): *"[0-9~^].*"(.*)$$,\1: "3.1.1"\2,; \ |
567 |
s,^( *"supports-color"): *"[0-9~^].*"(.*)$$,\1: "6.0.0"\2,; \ |
568 |
s,^( *"table"): *"[0-9~^].*"(.*)$$,\1: "5.4.6"\2,; \ |
569 |
s,^( *"to-regex-range"): *"[0-9~^].*"(.*)$$,\1: "5.0.1"\2,; \ |
570 |
s,^( *"type-check"): *"[0-9~^].*"(.*)$$,\1: "0.4.0"\2,; \ |
571 |
s,^( *"type-detect"): *"[0-9~^].*"(.*)$$,\1: "4.0.8"\2,; \ |
572 |
s,^( *"html-webpack-plugin"): *"[0-9~^].*"(.*)$$,\1: "5.5.3"\2,; \ |
573 |
s,^( *"tapable"): *"[0-9~^].*"(.*)$$,\1: "2.2.1"\2,; \ |
574 |
s,^( *"webpack"): *"[0-9~^].*"(.*)$$,\1: "5.55.1"\2,; \ |
575 |
s,^( *"webpack-bundle-analyzer"): *"[0-9~^].*"(.*)$$,\1: "4.4.2"\2,; \ |
576 |
s,^( *"webpack-cli"): *"[0-9~^].*"(.*)$$,\1: "5.1.4"\2,; \ |
577 |
s,^( *"webpack-merge"): *"[0-9~^].*"(.*)$$,\1: "5.8.0"\2,; \ |
578 |
s,^( *"write"): *"[0-9~^].*"(.*)$$,\1: "1.0.3"\2,; \ |
579 |
s,^( *"xmlbuilder"): *"[0-9~^].*"(.*)$$,\1: "9.0.7"\2,; \ |
580 |
s,^( *"yargs"): *"[0-9~^].*"(.*)$$,\1: "17.3.1"\2,; \ |
581 |
s,^( *"yargs-parser"): *"[0-9~^].*"(.*)$$,\1: "21.1.1"\2,; \ |
582 |
' ${WRKSRC}/package-lock.json |
583 |
# for pjson in $$(find ${WRKSRC} -name package.json -print); do \ |
584 |
${REINPLACE_CMD} -E ' \ |
585 |
s,^( *"chai"): *"[0-9~^].*"(.*)$$,\1: "4.3.6"\2,; \ |
586 |
s,^( *"chalk"): *"[0-9~^].*"(.*)$$,\1: "4.1.2"\2,; \ |
587 |
s,^( *"commander"): *"[0-9~^].*"(.*)$$,\1: "7.2.0"\2,; \ |
588 |
s,^( *"figures"): *"[0-9~^].*"(.*)$$,\1: "3.2.0"\2,; \ |
589 |
s,^( *"pify"): *"[0-9~^].*"(.*)$$,\1: "5.0.0"\2,; \ |
590 |
s,^( *"resolve-from"): *"[0-9~^].*"(.*)$$,\1: "5.0.0"\2,; \ |
591 |
s,^( *"sinon"): *"[0-9~^].*"(.*)$$,\1: "9.2.4"\2,; \ |
592 |
s,^( *"html-webpack-plugin"): *"[0-9~^].*"(.*)$$,\1: "5.5.3"\2,; \ |
593 |
s,^( *"tapable"): *"[0-9~^].*"(.*)$$,\1: "2.2.1"\2,; \ |
594 |
s,^( *"webpack"): *"[0-9~^].*"(.*)$$,\1: "5.55.1"\2,; \ |
595 |
s,^( *"webpack-bundle-analyzer"): *"[0-9~^].*"(.*)$$,\1: "4.4.2"\2,; \ |
596 |
s,^( *"webpack-cli"): *"[0-9~^].*"(.*)$$,\1: "5.1.4"\2,; \ |
597 |
s,^( *"webpack-merge"): *"[0-9~^].*"(.*)$$,\1: "5.8.0"\2,; \ |
598 |
s,^( *"yargs"): *"[0-9~^].*"(.*)$$,\1: "17.3.1"\2,; \ |
599 |
' $${pjson}; done |
600 |
|
601 |
# Replace "git+ssh:" and "github:" entry with "file:" |
602 |
# to exported tarballs. |
603 |
${REINPLACE_CMD} -E ' \ |
604 |
s,"(resolved|from|version)": "git\+ssh:.*/reflux-state-mixin\.git.*","\1": "file://${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_reflux}",; \ |
605 |
s,"(reflux-state-mixin|resolved|from)": "(.+@)?github:mongodb-js/reflux-state-mixin(.[0-9a-f]+)?","\1": "file://${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_reflux}",; \ |
606 |
' ${WRKSRC}/package-lock.json |
607 |
|
608 |
for pjson in $$(find ${WRKSRC} -name package.json -print); do \ |
609 |
${REINPLACE_CMD} -E ' \ |
610 |
s,"(reflux-state-mixin)": "github:mongodb-js/reflux-state-mixin","\1": "file://${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_reflux}",; \ |
611 |
' $${pjson}; done |
612 |
|
613 |
# Install node modules |
614 |
${MKDIR} ${NODE_MODULES_DIR} |
615 |
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm install --offline \ |
616 |
${DISTDIR}/${DIST_SUBDIR}/${DISTFILE_reflux} \ |
617 |
${WRKDIR}/fs-xattr-${NPM_FSXATTR_VER}.tgz \ |
618 |
${WRKDIR}/kerberos-${NPM_KERBEROS_VER}.tgz \ |
619 |
${WRKDIR}/napi-rs-cli-${NPM_NAPI_VER}.tgz \ |
620 |
${WRKDIR}/mongodb-js-zstd-*.tgz \ |
621 |
${WRKDIR}/mongodb-client-encryption-${MONGO_CLIENC_VER}.tgz \ |
622 |
${WRKDIR}/os-dns-native-${NPM_OSDNSNATIVE_VER}.tgz |
623 |
|
624 |
# Install electron without build. |
625 |
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ |
626 |
npm --offline --omit-dev --ignore-scripts -- install \ |
627 |
electron@${ELECTRON_VER} |
628 |
|
629 |
# Install node modules for production (APPMOD) |
630 |
${MKDIR} ${DISTTMP_DIR}/node_modules |
631 |
cd ${DISTTMP_DIR} && ${SETENV} ${MAKE_ENV} \ |
632 |
npm --offline --omit-dev -- install \ |
633 |
${WRKDIR}/kerberos-${NPM_KERBEROS_VER}.tgz \ |
634 |
${WRKDIR}/mongodb-client-encryption-${MONGO_CLIENC_VER}.tgz \ |
635 |
# @mongosh/node-runtime-worker-thread@1.8.0 \ |
636 |
clipboard@2.0.6 \ |
637 |
keytar@7.9.0 \ |
638 |
system-ca@1.0.2 |
639 |
-${RM} ${APPMODFILE} |
640 |
${TAR} -cf ${APPMODFILE} --exclude python3 \ |
641 |
-C ${DISTTMP_DIR} node_modules |
642 |
|
643 |
do-build: |
644 |
# Set up download zip file for electron-packager |
645 |
cd ${WRKSRC}/node_modules/electron-packager/src && \ |
646 |
${PATCH} -p1 < ${FILESDIR}/electron-packager.patch |
647 |
cd ${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR} && \ |
648 |
zip -q -r ${WRKDIR}/electron-v${ELECTRON_VER}-freebsd-${ELECTRON_ARCH}.zip . |
649 |
|
650 |
# Install electron |
651 |
${CP} -R ${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR} \ |
652 |
${NODE_MODULES_DIR}/electron/dist |
653 |
${ECHO} "electron" > ${NODE_MODULES_DIR}/electron/path.txt |
654 |
|
655 |
# Build MongoDB Compass |
656 |
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} lerna run bootstrap --stream |
657 |
cd ${WRKSRC} && ${SETENV} ${HADRON_ENV} npm run package-compass |
658 |
|
659 |
do-install: |
660 |
# Install MongoDB Compass |
661 |
-${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps |
662 |
${INSTALL_DATA} ${WRKSRC}/packages/compass/app-icons/linux/mongodb-compass.png \ |
663 |
${STAGEDIR}${PREFIX}/share/pixmaps/ |
664 |
-${MKDIR} ${STAGEDIR}${DESKTOPDIR} |
665 |
${INSTALL_DATA} ${FILESDIR}/mongodb-compass.desktop \ |
666 |
${STAGEDIR}${DESKTOPDIR}/ |
667 |
-${MKDIR} ${STAGEDIR}${DATADIR} |
668 |
cd ${COMPASS_DIR}/dist/MongoDB* && ${TAR} cf - . | \ |
669 |
${TAR} xf - -C ${STAGEDIR}${DATADIR} |
670 |
.for f in chromedriver mksnapshot v8_context_snapshot_generator |
671 |
${RM} ${STAGEDIR}${DATADIR}/${f} |
672 |
.endfor |
673 |
${RM} -r ${STAGEDIR}${DATADIR}/gen |
674 |
${RM} -r ${STAGEDIR}${DATADIR}/node_headers |
675 |
${RLN} ${STAGEDIR}${DATADIR}/MongoDB* \ |
676 |
${STAGEDIR}${PREFIX}/bin/${PORTNAME} |
677 |
${FIND} ${STAGEDIR}${DATADIR} -name \*.node -exec ${STRIP_CMD} {} \; |
678 |
|
679 |
# Install documents |
680 |
do-install-DOCS-on: |
681 |
-${MKDIR} ${STAGEDIR}${DOCSDIR} |
682 |
.for f in ${PORTDOCS} |
683 |
${INSTALL_MAN} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR} |
684 |
.endfor |
685 |
|
686 |
post-stage: |
687 |
cd ${STAGEDIR}${PREFIX} && \ |
688 |
${FIND} ${DATADIR_REL}/resources/app.asar.unpacked/build \ |
689 |
-type f -o -type l > ${WRKDIR}/PLIST.unpacked |
690 |
cd ${WRKDIR} && ${SED} -i -e "/PLIST.unpacked/r PLIST.unpacked" ${TMPPLIST} |
691 |
|
692 |
do-test: |
693 |
cd ${WRKSRC}/packages/compass && \ |
694 |
${SETENV} ${TEST_ENV} \ |
695 |
xvfb-maybe electron-mocha --no-sandbox "./src/main/*.spec.*" |
696 |
|
697 |
post-clean: |
698 |
.for file in ${DISTCACHEFILES} compass_node_modules.tar |
699 |
${RM} ${DISTDIR}/${DIST_SUBDIR}/${file} |
700 |
.endfor |
701 |
|
702 |
.include <bsd.port.mk> |