@@ -46,6 +46,7 @@ get_distro ()
46
46
# get_mongodb_download_url_for "linux-distro-version-architecture" "latest|44|42|40|36|34|32|30|28|26|24"
47
47
# Sets EXTRACT to appropriate extract command
48
48
# Sets MONGODB_DOWNLOAD_URL to the appropriate download url
49
+ # Sets MONGO_CRYPT_SHARED_DOWNLOAD_URL to the corresponding URL to a crypt_shared library archive
49
50
get_mongodb_download_url_for ()
50
51
{
51
52
_DISTRO=$1
@@ -54,10 +55,10 @@ get_mongodb_download_url_for ()
54
55
# Set VERSION_RAPID to the latest rapid release each quarter.
55
56
VERSION_RAPID=" 5.3.1"
56
57
VERSION_60_LATEST=" v6.0-latest"
57
- VERSION_60=" 6.0.0-rc8 "
58
- VERSION_50=" 5.0.8 "
59
- VERSION_44=" 4.4.13 "
60
- VERSION_42=" 4.2.19 "
58
+ VERSION_60=" 6.0.0"
59
+ VERSION_50=" 5.0.9 "
60
+ VERSION_44=" 4.4.15 "
61
+ VERSION_42=" 4.2.21 "
61
62
VERSION_40=" 4.0.28"
62
63
VERSION_36=" 3.6.23"
63
64
VERSION_34=" 3.4.24"
@@ -317,6 +318,8 @@ get_mongodb_download_url_for ()
317
318
linux-ubuntu-18.04-aarch64)
318
319
MONGODB_LATEST=" http://downloads.10gen.com/linux/mongodb-linux-aarch64-enterprise-ubuntu1804-latest.tgz"
319
320
MONGODB_RAPID=" http://downloads.10gen.com/linux/mongodb-linux-aarch64-enterprise-ubuntu1804-${VERSION_RAPID} .tgz"
321
+ MONGODB_60_LATEST=" http://downloads.10gen.com/linux/mongodb-linux-aarch64-enterprise-ubuntu1804-${VERSION_60_LATEST} .tgz"
322
+ MONGODB_60=" http://downloads.10gen.com/linux/mongodb-linux-aarch64-enterprise-ubuntu1804-${VERSION_60} .tgz"
320
323
MONGODB_50=" http://downloads.10gen.com/linux/mongodb-linux-aarch64-enterprise-ubuntu1804-${VERSION_50} .tgz"
321
324
MONGODB_44=" http://downloads.10gen.com/linux/mongodb-linux-aarch64-enterprise-ubuntu1804-${VERSION_44} .tgz"
322
325
MONGODB_42=" http://downloads.10gen.com/linux/mongodb-linux-aarch64-enterprise-ubuntu1804-${VERSION_42} .tgz"
@@ -399,8 +402,8 @@ get_mongodb_download_url_for ()
399
402
EXTRACT=" /cygdrive/c/Progra~2/7-Zip/7z.exe x"
400
403
MONGODB_LATEST=" http://downloads.10gen.com/windows/mongodb-windows-x86_64-enterprise-latest.zip"
401
404
MONGODB_RAPID=" http://downloads.10gen.com/windows/mongodb-windows-x86_64-enterprise-${VERSION_RAPID} .zip"
402
- MONGODB_60_LATEST=" http://downloads.10gen.com/windows/mongodb-windows-x86_64-enterprise-${VERSION_60_LATEST} .tgz "
403
- MONGODB_60=" http://downloads.10gen.com/windows/mongodb-windows-x86_64-enterprise-${VERSION_60} .tgz "
405
+ MONGODB_60_LATEST=" http://downloads.10gen.com/windows/mongodb-windows-x86_64-enterprise-${VERSION_60_LATEST} .zip "
406
+ MONGODB_60=" http://downloads.10gen.com/windows/mongodb-windows-x86_64-enterprise-${VERSION_60} .zip "
404
407
MONGODB_50=" http://downloads.10gen.com/windows/mongodb-windows-x86_64-enterprise-${VERSION_50} .zip"
405
408
MONGODB_44=" http://downloads.10gen.com/windows/mongodb-windows-x86_64-enterprise-${VERSION_44} .zip"
406
409
MONGODB_42=" http://downloads.10gen.com/win32/mongodb-win32-x86_64-enterprise-windows-64-${VERSION_42} .zip"
@@ -466,25 +469,47 @@ get_mongodb_download_url_for ()
466
469
;;
467
470
esac
468
471
472
+ # The crypt_shared package is available on server 6.0 and newer.
473
+ VERSION_INCLUDES_CRYPT_SHARED=YES
469
474
case " $_VERSION " in
470
- latest) MONGODB_DOWNLOAD_URL=$MONGODB_LATEST ;;
471
- rapid) MONGODB_DOWNLOAD_URL=$MONGODB_RAPID ;;
475
+ latest) MONGODB_DOWNLOAD_URL=$MONGODB_LATEST
476
+ # If latest is not at least 6.0 on this OS, the crypt_shared package will not be available.
477
+ if [ -z $MONGODB_60 ]; then
478
+ VERSION_INCLUDES_CRYPT_SHARED=NO
479
+ fi ;;
480
+ rapid) MONGODB_DOWNLOAD_URL=$MONGODB_RAPID
481
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
472
482
v6.0-latest) MONGODB_DOWNLOAD_URL=$MONGODB_60_LATEST ;;
473
483
6.0) MONGODB_DOWNLOAD_URL=$MONGODB_60 ;;
474
- 5.0) MONGODB_DOWNLOAD_URL=$MONGODB_50 ;;
475
- 4.4) MONGODB_DOWNLOAD_URL=$MONGODB_44 ;;
476
- 4.2) MONGODB_DOWNLOAD_URL=$MONGODB_42 ;;
477
- 4.0) MONGODB_DOWNLOAD_URL=$MONGODB_40 ;;
478
- 3.6) MONGODB_DOWNLOAD_URL=$MONGODB_36 ;;
479
- 3.4) MONGODB_DOWNLOAD_URL=$MONGODB_34 ;;
480
- 3.2) MONGODB_DOWNLOAD_URL=$MONGODB_32 ;;
481
- 3.0) MONGODB_DOWNLOAD_URL=$MONGODB_30 ;;
482
- 2.6) MONGODB_DOWNLOAD_URL=$MONGODB_26 ;;
483
- 2.4) MONGODB_DOWNLOAD_URL=$MONGODB_24 ;;
484
+ 5.0) MONGODB_DOWNLOAD_URL=$MONGODB_50
485
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
486
+ 4.4) MONGODB_DOWNLOAD_URL=$MONGODB_44
487
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
488
+ 4.2) MONGODB_DOWNLOAD_URL=$MONGODB_42
489
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
490
+ 4.0) MONGODB_DOWNLOAD_URL=$MONGODB_40
491
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
492
+ 3.6) MONGODB_DOWNLOAD_URL=$MONGODB_36
493
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
494
+ 3.4) MONGODB_DOWNLOAD_URL=$MONGODB_34
495
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
496
+ 3.2) MONGODB_DOWNLOAD_URL=$MONGODB_32
497
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
498
+ 3.0) MONGODB_DOWNLOAD_URL=$MONGODB_30
499
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
500
+ 2.6) MONGODB_DOWNLOAD_URL=$MONGODB_26
501
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
502
+ 2.4) MONGODB_DOWNLOAD_URL=$MONGODB_24
503
+ VERSION_INCLUDES_CRYPT_SHARED=NO ;;
484
504
esac
485
505
486
506
[ -z " $MONGODB_DOWNLOAD_URL " ] && MONGODB_DOWNLOAD_URL=" Unknown version: $_VERSION for $_DISTRO "
487
507
508
+ if [ " $VERSION_INCLUDES_CRYPT_SHARED " = " YES" ]; then
509
+ # The crypt_shared package is simply the same file URL with the "mongodb-"
510
+ # prefix replaced with "mongo_crypt_shared_v1-"
511
+ MONGO_CRYPT_SHARED_DOWNLOAD_URL=" $( printf ' %s' " $MONGODB_DOWNLOAD_URL " | sed ' s|/mongodb-|/mongo_crypt_shared_v1-|' ) "
512
+ fi
488
513
echo $MONGODB_DOWNLOAD_URL
489
514
}
490
515
@@ -537,3 +562,34 @@ download_and_extract ()
537
562
echo " Download legacy shell from 5.0 ... end"
538
563
fi
539
564
}
565
+
566
+ # download_and_extract_crypt_shared downloads and extracts a crypt_shared package into the current directory.
567
+ # Use get_mongodb_download_url_for to get a MONGO_CRYPT_SHARED_DOWNLOAD_URL.
568
+ download_and_extract_crypt_shared ()
569
+ {
570
+ MONGO_CRYPT_SHARED_DOWNLOAD_URL=$1
571
+ EXTRACT=$2
572
+ __CRYPT_SHARED_LIB_PATH=${3:- CRYPT_SHARED_LIB_PATH}
573
+ mkdir crypt_shared_download
574
+ cd crypt_shared_download
575
+ curl --retry 8 -sS $MONGO_CRYPT_SHARED_DOWNLOAD_URL --max-time 300 --output crypt_shared-binaries.tgz
576
+ $EXTRACT crypt_shared-binaries.tgz
577
+
578
+ LIBRARY_NAME=" mongo_crypt_v1"
579
+ # Windows package includes .dll in 'bin' directory.
580
+ if [ -d ./bin ]; then
581
+ cp bin/$LIBRARY_NAME .* ..
582
+ else
583
+ cp lib/$LIBRARY_NAME .* ..
584
+ fi
585
+ cd ..
586
+ rm -rf crypt_shared_download
587
+
588
+ RELATIVE_CRYPT_SHARED_LIB_PATH=" $( find . -maxdepth 1 -type f \( -name " $LIBRARY_NAME .dll" -o -name " $LIBRARY_NAME .so" -o -name " $LIBRARY_NAME .dylib" \) ) "
589
+ ABSOLUTE_CRYPT_SHARED_LIB_PATH=$( pwd) /$( basename $RELATIVE_CRYPT_SHARED_LIB_PATH )
590
+ if [ " Windows_NT" = " $OS " ]; then
591
+ # If we're on Windows, convert the "cygdrive" path to Windows-style paths.
592
+ ABSOLUTE_CRYPT_SHARED_LIB_PATH=$( cygpath -m $ABSOLUTE_CRYPT_SHARED_LIB_PATH )
593
+ fi
594
+ eval $__CRYPT_SHARED_LIB_PATH =$ABSOLUTE_CRYPT_SHARED_LIB_PATH
595
+ }
0 commit comments