| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #Required libraries: | 
					
						
							|  |  |  | # "libssl.so" | 
					
						
							|  |  |  | # "libcrypto.so" | 
					
						
							| 
									
										
										
										
											2020-03-25 20:48:35 +01:00
										 |  |  | # "libDataPipes-Rtc-Shared.so" | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | # "libjemalloc.so.2" | 
					
						
							|  |  |  | # "libsqlite3.so.0" | 
					
						
							|  |  |  | # "libTeaMusic.so" | 
					
						
							| 
									
										
										
										
											2020-01-25 14:37:59 +01:00
										 |  |  | # "libnice.so.10" | 
					
						
							|  |  |  | # "libpcre.so.3" (only for web) | 
					
						
							| 
									
										
										
										
											2020-01-25 16:00:21 +01:00
										 |  |  | # "libgobject-2.0.so.0" (only for web) | 
					
						
							|  |  |  | # "libglib-2.0.so.0" (only for web) | 
					
						
							|  |  |  | # "libffi.so.7" | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | [[ -z "${build_os_type}" ]] && { echo "missing build os type"; exit 1; } | 
					
						
							|  |  |  | [[ -z "${build_os_arch}" ]] && { echo "missing build os arch"; exit 1; } | 
					
						
							|  |  |  | build_path="out/${build_os_type}_${build_os_arch}/" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function query_system_link() { | 
					
						
							| 
									
										
										
										
											2020-02-16 14:15:30 +00:00
										 |  |  |     local _binary="$2" | 
					
						
							|  |  |  |     [[ -z "$_binary" ]] && _binary="../../../environment/TeaSpeakServer" | 
					
						
							|  |  |  |     data=$(ldd "$_binary" | grep "$1") | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  |     # shellcheck disable=SC2206 | 
					
						
							|  |  |  |     data=($data) | 
					
						
							|  |  |  |     library_path=${data[2]} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-16 14:15:30 +00:00
										 |  |  |     [[ -z "${library_path}" ]] && { echo "failed to resolve library path for $1 in $_binary"; exit 1; } | 
					
						
							|  |  |  |     [[ "${library_path}" == "not" ]] && { echo "failed to resolve library path for $1 in $_binary"; exit 1; } | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd $(dirname $0) || exit 1 | 
					
						
							|  |  |  | cd env || { echo "failed to enter env"; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [[ -d libs ]] && { | 
					
						
							|  |  |  |     rm -r libs || { echo "failed to delete old lib folder"; exit 1; } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | mkdir libs || { echo "failed to create lib directory"; exit 1; } | 
					
						
							|  |  |  | cd libs || { echo "failed to enter lib directory"; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-25 15:05:48 +01:00
										 |  |  | # Creating copied | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | library_base=$(realpath ../../../../../libraries) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Setting up ssl | 
					
						
							| 
									
										
										
										
											2020-03-02 21:00:18 +01:00
										 |  |  | query_system_link "libssl.so.1.1" | 
					
						
							|  |  |  | cp "${library_path}" . || { echo "failed to copy libssl.so.1.1"; exit 1; } | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Setting up crypto | 
					
						
							| 
									
										
										
										
											2020-03-02 21:00:18 +01:00
										 |  |  | query_system_link "libcrypto.so.1.1" | 
					
						
							|  |  |  | cp "${library_path}" . || { echo "failed to copy libcrypto.so.1.1"; exit 1; } | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Setting up DataPipes | 
					
						
							| 
									
										
										
										
											2020-03-25 20:48:35 +01:00
										 |  |  | library_path=$(realpath "${library_base}/DataPipes/${build_path}/lib/libDataPipes-Rtc-Shared.so") | 
					
						
							|  |  |  | cp "$library_path" . || { echo "failed to copy libDataPipes-Rtc-Shared.so"; exit 1; } | 
					
						
							| 
									
										
										
										
											2020-02-16 14:15:30 +00:00
										 |  |  | _dp_path="$library_path" | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Setting up Sqlite3 | 
					
						
							|  |  |  | query_system_link "libsqlite3.so.0" | 
					
						
							| 
									
										
										
										
											2020-01-25 15:05:48 +01:00
										 |  |  | cp "${library_path}" . || { echo "failed to copy libsqlite3.so.0"; exit 1; } | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Setting up jemalloc | 
					
						
							|  |  |  | query_system_link "libjemalloc.so.2" | 
					
						
							| 
									
										
										
										
											2020-01-25 15:05:48 +01:00
										 |  |  | cp "${library_path}" . || { echo "failed to copy libjemalloc.so.2"; exit 1; } | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Setting up TeaMusic | 
					
						
							|  |  |  | library_path=$(realpath "../../../../MusicBot/libs/libTeaMusic.so") | 
					
						
							| 
									
										
										
										
											2020-01-25 15:05:48 +01:00
										 |  |  | cp "$library_path" . || { echo "failed to copy libTeaMusic.so"; exit 1; } | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-25 14:37:59 +01:00
										 |  |  | if ldd "../../../environment/TeaSpeakServer" | grep -q "libnice.so.10"; then | 
					
						
							|  |  |  |     echo "Adding web libraries" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Setting up libnice | 
					
						
							|  |  |  |     library_path=$(realpath "${library_base}/libnice/${build_os_type}_${build_os_arch}/lib/libnice.so.10") | 
					
						
							| 
									
										
										
										
											2020-01-25 16:00:21 +01:00
										 |  |  |     cp "$library_path" libnice.so.10 || { echo "failed to copy libnice.so.10"; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     glib_libs=$(realpath "${library_base}//glibc/${build_os_type}_${build_os_arch}/lib/"*"/") | 
					
						
							|  |  |  |     cp "$glib_libs/libgobject-2.0.so.0" . || { echo "failed to copy libgobject-2.0.so.0"; exit 1; } | 
					
						
							|  |  |  |     cp "$glib_libs/libgmodule-2.0.so.0" . || { echo "failed to copy libgmodule-2.0.so.0"; exit 1; } | 
					
						
							|  |  |  |     cp "$glib_libs/libglib-2.0.so.0" . || { echo "failed to copy libglib-2.0.so.0"; exit 1; } | 
					
						
							|  |  |  |     cp "$glib_libs/libgio-2.0.so.0" . || { echo "failed to copy libgio-2.0.so.0"; exit 1; } | 
					
						
							|  |  |  |     cp "$glib_libs/libffi.so.7" . || { echo "failed to copy libffi.so.7"; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # "libgobject-2.0.so.0" (only for web) | 
					
						
							|  |  |  |     # "libglib-2.0.so.0" (only for web) | 
					
						
							| 
									
										
										
										
											2020-01-25 14:37:59 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # Setting up libpcre | 
					
						
							| 
									
										
										
										
											2020-02-16 14:15:30 +00:00
										 |  |  |     query_system_link "libpcre.so.3" "$_dp_path" | 
					
						
							| 
									
										
										
										
											2020-01-25 15:05:48 +01:00
										 |  |  |     cp "${library_path}" . || { echo "failed to copy libpcre.so.3"; exit 1; } | 
					
						
							| 
									
										
										
										
											2020-01-25 14:37:59 +01:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2020-01-24 19:39:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-25 16:00:21 +01:00
										 |  |  | # Doing some prostprocessing | 
					
						
							|  |  |  | chmod 755 * | 
					
						
							| 
									
										
										
										
											2020-01-25 15:05:48 +01:00
										 |  |  | for file in *.so*; do | 
					
						
							|  |  |  |     echo "Editing rpath for $file" | 
					
						
							| 
									
										
										
										
											2020-01-25 16:00:21 +01:00
										 |  |  |     strip -s "$file" | 
					
						
							| 
									
										
										
										
											2020-01-25 15:05:48 +01:00
										 |  |  |     patchelf --set-rpath "./libs/:./" "$file" | 
					
						
							|  |  |  | done | 
					
						
							| 
									
										
										
										
											2020-01-24 19:23:40 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-16 14:15:30 +00:00
										 |  |  | echo "All libraries have been copied successfully" |