diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 21f37012..85a13141 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -152,7 +152,6 @@ jobs: export QT_MACOS_ROOT_DIR="${{ runner.temp }}/Qt/${{ env.QT_VERSION }}/macos" export QT_IOS_BIN=$QT_BIN_DIR export PATH=$PATH:~/go/bin - cd client mkdir build-ios $QT_IOS_BIN/qt-cmake . -B build-ios -GXcode -DQT_HOST_PATH=$QT_MACOS_ROOT_DIR diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 0d6d32fc..00accf6a 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -378,7 +378,7 @@ if(IOS) set_target_properties(${PROJECT} PROPERTIES XCODE_ATTRIBUTE_SWIFT_VERSION "5.0" XCODE_ATTRIBUTE_CLANG_ENABLE_MODULES "YES" - XCODE_ATTRIBUTE_SWIFT_OBJC_BRIDGING_HEADER "${CMAKE_SOURCE_DIR}/platforms/ios/WireGuard-Bridging-Header.h" + XCODE_ATTRIBUTE_SWIFT_OBJC_BRIDGING_HEADER "${CMAKE_CURRENT_LIST_DIR}/platforms/ios/WireGuard-Bridging-Header.h" XCODE_ATTRIBUTE_SWIFT_PRECOMPILE_BRIDGING_HEADER "NO" XCODE_ATTRIBUTE_SWIFT_OPTIMIZATION_LEVEL "-Onone" XCODE_ATTRIBUTE_SWIFT_OBJC_INTERFACE_HEADER_NAME "AmneziaVPN-Swift.h" @@ -387,7 +387,7 @@ if(IOS) set_target_properties(${PROJECT} PROPERTIES OUTPUT_NAME "AmneziaVPN" MACOSX_BUNDLE ON - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/ios/app/Info.plist.in + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/ios/app/Info.plist.in MACOSX_BUNDLE_BUNDLE_NAME "AmneziaVPN" MACOSX_BUNDLE_BUNDLE_VERSION "${BUILD_ID}" MACOSX_BUNDLE_COPYRIGHT "MPL-2.0" @@ -396,14 +396,14 @@ if(IOS) MACOSX_BUNDLE_LONG_VERSION_STRING "${CMAKE_PROJECT_VERSION}-${BUILD_ID}" MACOSX_BUNDLE_SHORT_VERSION_STRING "${CMAKE_PROJECT_VERSION}" XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "${BUILD_IOS_APP_IDENTIFIER}" - XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/ios/app/main.entitlements" + XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_LIST_DIR}/ios/app/main.entitlements" XCODE_ATTRIBUTE_MARKETING_VERSION "${CMAKE_PROJECT_VERSION}" XCODE_GENERATE_SCHEME TRUE MACOSX_BUNDLE_ICON_FILE "AppIcon" ) - target_include_directories(${PROJECT} PRIVATE ${CMAKE_SOURCE_DIR}) + target_include_directories(${PROJECT} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) target_compile_options(${PROJECT} PRIVATE -DGROUP_ID=\"${BUILD_IOS_GROUP_IDENTIFIER}\" @@ -412,20 +412,20 @@ if(IOS) target_sources(${PROJECT} PRIVATE - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/Shared/Keychain.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/IPAddressRange.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/InterfaceConfiguration.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/Shared/Model/NETunnelProviderProtocol+Extension.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/TunnelConfiguration.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/Shared/Model/TunnelConfiguration+WgQuickConfig.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/Endpoint.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/Shared/Model/String+ArrayConversion.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/PeerConfiguration.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/DNSServer.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardApp/LocalizationHelper.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/Shared/FileManager+Extension.swift - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKitC/x25519.c - ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/PrivateKey.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/Shared/Keychain.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/IPAddressRange.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/InterfaceConfiguration.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/Shared/Model/NETunnelProviderProtocol+Extension.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/TunnelConfiguration.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/Shared/Model/TunnelConfiguration+WgQuickConfig.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/Endpoint.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/Shared/Model/String+ArrayConversion.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/PeerConfiguration.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/DNSServer.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardApp/LocalizationHelper.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/Shared/FileManager+Extension.swift + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKitC/x25519.c + ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKit/PrivateKey.swift ) target_sources(${PROJECT} PRIVATE @@ -434,21 +434,21 @@ if(IOS) ) target_sources(${PROJECT} PRIVATE - ${CMAKE_SOURCE_DIR}/ios/app/launch.png - ${CMAKE_SOURCE_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard + ${CMAKE_CURRENT_LIST_DIR}/ios/app/launch.png + ${CMAKE_CURRENT_LIST_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard ) set_source_files_properties( - ${CMAKE_SOURCE_DIR}/ios/app/launch.png - ${CMAKE_SOURCE_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard + ${CMAKE_CURRENT_LIST_DIR}/ios/app/launch.png + ${CMAKE_CURRENT_LIST_DIR}/ios/app/AmneziaVPNLaunchScreen.storyboard PROPERTIES MACOSX_PACKAGE_LOCATION "Resources" ) target_sources(${PROJECT} PRIVATE - ${CMAKE_SOURCE_DIR}/ios/Media.xcassets + ${CMAKE_CURRENT_LIST_DIR}/ios/Media.xcassets ) set_source_files_properties( - ${CMAKE_SOURCE_DIR}/ios/Media.xcassets + ${CMAKE_CURRENT_LIST_DIR}/ios/Media.xcassets PROPERTIES MACOSX_PACKAGE_LOCATION "Resources" ) diff --git a/client/cmake/osxtools.cmake b/client/cmake/osxtools.cmake index 9e711d46..705a0ad0 100644 --- a/client/cmake/osxtools.cmake +++ b/client/cmake/osxtools.cmake @@ -80,7 +80,7 @@ function(osx_bundle_assetcatalog TARGET) add_custom_command(TARGET ${TARGET} POST_BUILD COMMENT "Bundling asset catalog" COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/xcassets $/${XCASSETS_RESOURCE_DIR} - COMMAND ${CMAKE_SOURCE_DIR}/scripts/macos/merge_plist.py ${XCASSETS_GEN_PLIST} -o $/Info.plist + COMMAND ${CMAKE_CURRENT_LIST_DIR}/scripts/macos/merge_plist.py ${XCASSETS_GEN_PLIST} -o $/Info.plist ) target_sources(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/xcassets/Assets.car) @@ -125,7 +125,7 @@ function(osx_codesign_target TARGET) get_target_property(CODESIGN_ENTITLEMENTS ${TARGET} XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS) if(CODESIGN_ENTITLEMENTS) add_custom_command(TARGET ${TARGET} POST_BUILD - COMMAND ${CMAKE_SOURCE_DIR}/scripts/utils/make_template.py ${CODESIGN_ENTITLEMENTS} + COMMAND ${CMAKE_CURRENT_LIST_DIR}/scripts/utils/make_template.py ${CODESIGN_ENTITLEMENTS} -k PRODUCT_BUNDLE_IDENTIFIER=$ -k DEVELOPMENT_TEAM=$ -o ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_codesign.entitlements diff --git a/client/deploy/data/macos/AmneziaVPN.plist b/client/deploy/data/macos/AmneziaVPN.plist deleted file mode 100644 index 8dabbc9e..00000000 --- a/client/deploy/data/macos/AmneziaVPN.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - Label - AmneziaVPN-service - ProgramArguments - - /Applications/AmneziaVPN.app/Contents/MacOS/AmneziaVPN-service - - KeepAlive - - Sockets - - Listeners - - SockServiceName - 5959 - SockType - stream - SockFamily - IPv4 - - - - diff --git a/client/deploy/data/macos/ck-client b/client/deploy/data/macos/ck-client deleted file mode 100755 index 5095a014..00000000 Binary files a/client/deploy/data/macos/ck-client and /dev/null differ diff --git a/client/deploy/data/macos/openvpn b/client/deploy/data/macos/openvpn deleted file mode 100755 index f1c08e93..00000000 Binary files a/client/deploy/data/macos/openvpn and /dev/null differ diff --git a/client/deploy/data/macos/post_install.sh b/client/deploy/data/macos/post_install.sh deleted file mode 100755 index acd3f93f..00000000 --- a/client/deploy/data/macos/post_install.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -APP_NAME=AmneziaVPN -PLIST_NAME=$APP_NAME.plist -LAUNCH_DAEMONS_PLIST_NAME=/Library/LaunchDaemons/$PLIST_NAME -LOG_FOLDER=/var/log/$APP_NAME -LOG_FILE="$LOG_FOLDER/post-install.log" -APP_PATH=/Applications/$APP_NAME.app - -if launchctl list "$APP_NAME-service" &> /dev/null; then - launchctl unload $LAUNCH_DAEMONS_PLIST_NAME - rm -f $LAUNCH_DAEMONS_PLIST_NAME -fi - -tar xzf $APP_PATH/$APP_NAME.tar.gz -C $APP_PATH -rm -f $APP_PATH/$APP_NAME.tar.gz -sudo chmod -R a-w $APP_PATH/ -sudo chown -R root $APP_PATH/ -sudo chgrp -R wheel $APP_PATH/ - -rm -rf $LOG_FOLDER -mkdir -p $LOG_FOLDER - -echo "`date` Script started" > $LOG_FILE - -killall -9 $APP_NAME-service 2>> $LOG_FILE - -mv -f $APP_PATH/$PLIST_NAME $LAUNCH_DAEMONS_PLIST_NAME 2>> $LOG_FILE -chown root:wheel $LAUNCH_DAEMONS_PLIST_NAME -launchctl load $LAUNCH_DAEMONS_PLIST_NAME - -echo "`date` Service status: $?" >> $LOG_FILE -echo "`date` Script finished" >> $LOG_FILE - -#rm -- "$0" diff --git a/client/deploy/data/macos/post_uninstall.sh b/client/deploy/data/macos/post_uninstall.sh deleted file mode 100755 index 6e8e9fa8..00000000 --- a/client/deploy/data/macos/post_uninstall.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -APP_NAME=AmneziaVPN -PLIST_NAME=$APP_NAME.plist -LAUNCH_DAEMONS_PLIST_NAME=/Library/LaunchDaemons/$PLIST_NAME - -if launchctl list "$APP_NAME-service" &> /dev/null; then - launchctl unload $LAUNCH_DAEMONS_PLIST_NAME - rm -f $LAUNCH_DAEMONS_PLIST_NAME -fi - -rm -rf "$HOME/Library/Application Support/$APP_NAME" -rm -rf /var/log/$APP_NAME -rm -rf /Applications/$APP_NAME.app/Contents diff --git a/client/deploy/data/macos/ss-local b/client/deploy/data/macos/ss-local deleted file mode 100755 index b1e501a3..00000000 Binary files a/client/deploy/data/macos/ss-local and /dev/null differ diff --git a/client/deploy/data/macos/ss-tunnel b/client/deploy/data/macos/ss-tunnel deleted file mode 100755 index e5fc361c..00000000 Binary files a/client/deploy/data/macos/ss-tunnel and /dev/null differ diff --git a/client/deploy/data/macos/update-resolv-conf.sh b/client/deploy/data/macos/update-resolv-conf.sh deleted file mode 100755 index cba62f77..00000000 --- a/client/deploy/data/macos/update-resolv-conf.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/bash - -# Mac name-resolution updater based on @cl's script here: -# https://blog.netnerds.net/2011/10/openvpn-update-client-dns-on-mac-os-x-using-from-the-command-line/ -# Openvpn envar parsing taken from the script in debian's openvpn package. -# Smushed together and improved by @andrewgdotcom. - -# Parses DHCP options from openvpn to update resolv.conf -# To use set as 'up' and 'down' script in your openvpn *.conf: -# up /etc/openvpn/update-resolv-conf -# down /etc/openvpn/update-resolv-conf - -[ "$script_type" ] || exit 0 -[ "$dev" ] || exit 0 - -PATH=$PATH:/usr/sbin/ -NMSRVRS=() -SRCHS=() - -# Get adapter list -IFS=$'\n' read -d '' -ra adapters < <(networksetup -listallnetworkservices |grep -v denotes) || true - -split_into_parts() -{ - part1="$1" - part2="$2" - part3="$3" -} - -update_all_dns() -{ - for adapter in "${adapters[@]}" - do - echo updating dns for $adapter - # set dns server to the vpn dns server - if [[ "${SRCHS[@]}" ]]; then - networksetup -setsearchdomains "$adapter" "${SRCHS[@]}" - fi - if [[ "${NMSRVRS[@]}" ]]; then - networksetup -setdnsservers "$adapter" "${NMSRVRS[@]}" - fi - done -} - -clear_all_dns() -{ - for adapter in "${adapters[@]}" - do - echo updating dns for $adapter - networksetup -setdnsservers "$adapter" empty - networksetup -setsearchdomains "$adapter" empty - done -} - -case "$script_type" in - up) - for optionvarname in ${!foreign_option_*} ; do - option="${!optionvarname}" - echo "$option" - split_into_parts $option - if [ "$part1" = "dhcp-option" ] ; then - if [ "$part2" = "DNS" ] ; then - NMSRVRS=(${NMSRVRS[@]} $part3) - elif [ "$part2" = "DOMAIN" ] ; then - SRCHS=(${SRCHS[@]} $part3) - fi - fi - done - update_all_dns - ;; - down) - clear_all_dns - ;; -esac diff --git a/client/ios/networkextension/CMakeLists.txt b/client/ios/networkextension/CMakeLists.txt index ef26fcf6..77a7b732 100644 --- a/client/ios/networkextension/CMakeLists.txt +++ b/client/ios/networkextension/CMakeLists.txt @@ -35,7 +35,7 @@ target_link_libraries(networkextension PRIVATE ${FW_UI_KIT}) target_compile_options(networkextension PRIVATE -DGROUP_ID=\"${BUILD_IOS_GROUP_IDENTIFIER}\") target_compile_options(networkextension PRIVATE -DNETWORK_EXTENSION=1) -set(WG_APPLE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources) +set(WG_APPLE_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources) target_sources(networkextension PRIVATE ${WG_APPLE_SOURCE_DIR}/WireGuardKit/WireGuardAdapter.swift @@ -57,15 +57,15 @@ target_sources(networkextension PRIVATE ${WG_APPLE_SOURCE_DIR}/WireGuardKit/Array+ConcurrentMap.swift ${WG_APPLE_SOURCE_DIR}/WireGuardKit/IPAddress+AddrInfo.swift ${WG_APPLE_SOURCE_DIR}/WireGuardKit/PrivateKey.swift - ${CMAKE_SOURCE_DIR}/platforms/ios/iostunnel.swift - ${CMAKE_SOURCE_DIR}/platforms/ios/iosglue.mm - ${CMAKE_SOURCE_DIR}/platforms/ios/ioslogger.swift + ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/iostunnel.swift + ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/iosglue.mm + ${CMAKE_CURRENT_LIST_DIR}/platforms/ios/ioslogger.swift ) ## Build wireguard-go-version.h execute_process( COMMAND go list -m golang.zx2c4.com/wireguard - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKitGo + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKitGo OUTPUT_VARIABLE WG_VERSION_FULL ) string(REGEX REPLACE ".*v\([0-9.]*\).*" "\\1" WG_VERSION_STRING 1.1.1) @@ -74,7 +74,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/wireguard-go-version.h.in target_sources(networkextension PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/wireguard-go-version.h) -target_include_directories(networkextension PRIVATE ${CMAKE_SOURCE_DIR}) +target_include_directories(networkextension PRIVATE ${CMAKE_CURRENT_LIST_DIR}) target_include_directories(networkextension PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) ## HACK: Build only the first architecture, this will break universal builds @@ -90,13 +90,13 @@ endif() ## TODO: The upstream makefile also makes an attempt to patch the golang runtime ## to provide the boot-time clock instead of an uptime clock. We should probably ## make an attempt to do the same, somehow? -include(${CMAKE_SOURCE_DIR}/cmake/golang.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/cmake/golang.cmake) if(OSXARCH STREQUAL "x86_64") set(GOARCH amd64) else() set(GOARCH ${FIRST_OSX_ARCHITECTURE}) endif() -add_go_library(libwg-go ${CMAKE_SOURCE_DIR}/3rd/wireguard-apple/Sources/WireGuardKitGo/api-apple.go +add_go_library(libwg-go ${CMAKE_CURRENT_LIST_DIR}/3rd/wireguard-apple/Sources/WireGuardKitGo/api-apple.go GOOS ios GOARCH ${GOARCH} CGO_CFLAGS -arch ${OSXARCH}