update_dependencies.sh 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. #!/bin/sh
  2. # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
  3. #
  4. # Update dependencies.sh file with the latest avaliable versions
  5. BASEDIR=$(dirname $0)
  6. OUTPUT=""
  7. function log_header()
  8. {
  9. echo "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved." >> "$OUTPUT"
  10. }
  11. function log_variable()
  12. {
  13. echo "$1=${!1}" >> "$OUTPUT"
  14. }
  15. TP2_LATEST="/mnt/vol/engshare/fbcode/third-party2"
  16. ## $1 => lib name
  17. ## $2 => lib version (if not provided, will try to pick latest)
  18. ## $3 => platform (if not provided, will try to pick latest gcc)
  19. ##
  20. ## get_lib_base will set a variable named ${LIB_NAME}_BASE to the lib location
  21. function get_lib_base()
  22. {
  23. local lib_name=$1
  24. local lib_version=$2
  25. local lib_platform=$3
  26. local result="$TP2_LATEST/$lib_name/"
  27. # Lib Version
  28. if [ -z "$lib_version" ] || [ "$lib_version" = "LATEST" ]; then
  29. # version is not provided, use latest
  30. result=`ls -dr1v $result/*/ | head -n1`
  31. else
  32. result="$result/$lib_version/"
  33. fi
  34. # Lib Platform
  35. if [ -z "$lib_platform" ]; then
  36. # platform is not provided, use latest gcc
  37. result=`ls -dr1v $result/gcc-*[^fb]/ | head -n1`
  38. else
  39. echo $lib_platform
  40. result="$result/$lib_platform/"
  41. fi
  42. result=`ls -1d $result/*/ | head -n1`
  43. # lib_name => LIB_NAME_BASE
  44. local __res_var=${lib_name^^}"_BASE"
  45. __res_var=`echo $__res_var | tr - _`
  46. # LIB_NAME_BASE=$result
  47. eval $__res_var=`readlink -f $result`
  48. log_variable $__res_var
  49. }
  50. ###########################################################
  51. # platform007 dependencies #
  52. ###########################################################
  53. OUTPUT="$BASEDIR/dependencies_platform007.sh"
  54. rm -f "$OUTPUT"
  55. touch "$OUTPUT"
  56. echo "Writing dependencies to $OUTPUT"
  57. # Compilers locations
  58. GCC_BASE=`readlink -f $TP2_LATEST/gcc/7.x/centos7-native/*/`
  59. CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos7-native/*/`
  60. log_header
  61. log_variable GCC_BASE
  62. log_variable CLANG_BASE
  63. # Libraries locations
  64. get_lib_base libgcc 7.x platform007
  65. get_lib_base glibc 2.26 platform007
  66. get_lib_base snappy LATEST platform007
  67. get_lib_base zlib LATEST platform007
  68. get_lib_base bzip2 LATEST platform007
  69. get_lib_base lz4 LATEST platform007
  70. get_lib_base zstd LATEST platform007
  71. get_lib_base gflags LATEST platform007
  72. get_lib_base jemalloc LATEST platform007
  73. get_lib_base numa LATEST platform007
  74. get_lib_base libunwind LATEST platform007
  75. get_lib_base tbb LATEST platform007
  76. get_lib_base liburing LATEST platform007
  77. get_lib_base kernel-headers fb platform007
  78. get_lib_base binutils LATEST centos7-native
  79. get_lib_base valgrind LATEST platform007
  80. get_lib_base lua 5.3.4 platform007
  81. git diff $OUTPUT
  82. ###########################################################
  83. # 5.x dependencies #
  84. ###########################################################
  85. OUTPUT="$BASEDIR/dependencies.sh"
  86. rm -f "$OUTPUT"
  87. touch "$OUTPUT"
  88. echo "Writing dependencies to $OUTPUT"
  89. # Compilers locations
  90. GCC_BASE=`readlink -f $TP2_LATEST/gcc/5.x/centos7-native/*/`
  91. CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos7-native/*/`
  92. log_header
  93. log_variable GCC_BASE
  94. log_variable CLANG_BASE
  95. # Libraries locations
  96. get_lib_base libgcc 5.x gcc-5-glibc-2.23
  97. get_lib_base glibc 2.23 gcc-5-glibc-2.23
  98. get_lib_base snappy LATEST gcc-5-glibc-2.23
  99. get_lib_base zlib LATEST gcc-5-glibc-2.23
  100. get_lib_base bzip2 LATEST gcc-5-glibc-2.23
  101. get_lib_base lz4 LATEST gcc-5-glibc-2.23
  102. get_lib_base zstd LATEST gcc-5-glibc-2.23
  103. get_lib_base gflags LATEST gcc-5-glibc-2.23
  104. get_lib_base jemalloc LATEST gcc-5-glibc-2.23
  105. get_lib_base numa LATEST gcc-5-glibc-2.23
  106. get_lib_base libunwind LATEST gcc-5-glibc-2.23
  107. get_lib_base tbb LATEST gcc-5-glibc-2.23
  108. get_lib_base kernel-headers 4.0.9-36_fbk5_2933_gd092e3f gcc-5-glibc-2.23
  109. get_lib_base binutils LATEST centos7-native
  110. get_lib_base valgrind LATEST gcc-5-glibc-2.23
  111. get_lib_base lua 5.2.3 gcc-5-glibc-2.23
  112. git diff $OUTPUT
  113. ###########################################################
  114. # 4.8.1 dependencies #
  115. ###########################################################
  116. OUTPUT="$BASEDIR/dependencies_4.8.1.sh"
  117. rm -f "$OUTPUT"
  118. touch "$OUTPUT"
  119. echo "Writing 4.8.1 dependencies to $OUTPUT"
  120. # Compilers locations
  121. GCC_BASE=`readlink -f $TP2_LATEST/gcc/4.8.1/centos6-native/*/`
  122. CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos6-native/*/`
  123. log_header
  124. log_variable GCC_BASE
  125. log_variable CLANG_BASE
  126. # Libraries locations
  127. get_lib_base libgcc 4.8.1 gcc-4.8.1-glibc-2.17
  128. get_lib_base glibc 2.17 gcc-4.8.1-glibc-2.17
  129. get_lib_base snappy LATEST gcc-4.8.1-glibc-2.17
  130. get_lib_base zlib LATEST gcc-4.8.1-glibc-2.17
  131. get_lib_base bzip2 LATEST gcc-4.8.1-glibc-2.17
  132. get_lib_base lz4 LATEST gcc-4.8.1-glibc-2.17
  133. get_lib_base zstd LATEST gcc-4.8.1-glibc-2.17
  134. get_lib_base gflags LATEST gcc-4.8.1-glibc-2.17
  135. get_lib_base jemalloc LATEST gcc-4.8.1-glibc-2.17
  136. get_lib_base numa LATEST gcc-4.8.1-glibc-2.17
  137. get_lib_base libunwind LATEST gcc-4.8.1-glibc-2.17
  138. get_lib_base tbb 4.0_update2 gcc-4.8.1-glibc-2.17
  139. get_lib_base kernel-headers LATEST gcc-4.8.1-glibc-2.17
  140. get_lib_base binutils LATEST centos6-native
  141. get_lib_base valgrind 3.8.1 gcc-4.8.1-glibc-2.17
  142. get_lib_base lua 5.2.3 centos6-native
  143. git diff $OUTPUT