-
Notifications
You must be signed in to change notification settings - Fork 220
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/dev' into stable
- Loading branch information
Showing
24 changed files
with
389 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,7 +3,6 @@ | |
|
||
*.a | ||
*.o | ||
*.plist | ||
*.so | ||
|
||
build/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/var/log/lokinet.log 644 5 5M $D0 J |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,53 @@ | ||
#!/bin/sh | ||
set -x | ||
test `whoami` == root || exit 1 | ||
|
||
touch /var/lib/lokinet/suspend-launchd-service # Prevent restarting on exit | ||
# this is for dns tomfoolery | ||
scutil_query() | ||
{ | ||
key=$1 | ||
|
||
scutil<<EOT | ||
open | ||
get $key | ||
d.show | ||
close | ||
EOT | ||
} | ||
|
||
# get guid for service | ||
SERVICE_GUID=`scutil_query State:/Network/Global/IPv4 \ | ||
| grep "PrimaryService" \ | ||
| awk '{print $3}'` | ||
|
||
# get name of network service | ||
SERVICE_NAME=`scutil_query Setup:/Network/Service/$SERVICE_GUID \ | ||
| grep "UserDefinedName" \ | ||
| awk -F': ' '{print $2}'` | ||
|
||
# tell dns to be "empty" so that it's reset | ||
networksetup -setdnsservers "$SERVICE_NAME" empty | ||
|
||
# Prevent restarting on exit | ||
touch /var/lib/lokinet/suspend-launchd-service | ||
|
||
# shut off lokinet gracefully | ||
pgrep lokinet$ && /opt/lokinet/bin/lokinet-vpn --kill | ||
|
||
# kill the gui and such | ||
killall LokinetGUI | ||
killall lokinet | ||
sleep 5 # Give it some time to shut down before we bring launchd into this | ||
launchctl stop network.loki.lokinet.daemon | ||
launchctl unload /Library/LaunchDaemons/network.loki.lokinet.daemon.plist | ||
# if the launch daemon is there kill it | ||
/bin/launchctl stop network.loki.lokinet.daemon | ||
/bin/launchctl unload /Library/LaunchDaemons/network.loki.lokinet.daemon.plist | ||
|
||
# kill it and make sure it's dead | ||
killall -9 lokinet | ||
|
||
rm -rf /Library/LaunchDaemons/network.loki.lokinet.daemon.plist | ||
rm -rf /Applications/Lokinet/ | ||
rm -rf /Applications/LokinetGUI.app | ||
rm -rf /var/lib/lokinet | ||
rm -rf /usr/local/lokinet/ | ||
rm -rf /opt/lokinet | ||
|
||
rm -f /etc/newsyslog.d/lokinet.conf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#!/bin/sh | ||
|
||
|
||
# this is for dns tomfoolery | ||
scutil_query() | ||
{ | ||
key=$1 | ||
|
||
scutil<<EOT | ||
open | ||
get $key | ||
d.show | ||
close | ||
EOT | ||
} | ||
|
||
# get guid for service | ||
SERVICE_GUID=`scutil_query State:/Network/Global/IPv4 \ | ||
| grep "PrimaryService" \ | ||
| awk '{print $3}'` | ||
|
||
# get name of network service | ||
SERVICE_NAME=`scutil_query Setup:/Network/Service/$SERVICE_GUID \ | ||
| grep "UserDefinedName" \ | ||
| awk -F': ' '{print $2}'` | ||
|
||
# tell dns to be "empty" so that it's reset | ||
networksetup -setdnsservers "$SERVICE_NAME" empty | ||
# suspend existing lokinet if it's there | ||
[ -e /var/lib/lokinet ] && touch /var/lib/lokinet/suspend-launchd-service | ||
# kill it | ||
killall lokinet || true | ||
# wait a sec | ||
sleep 1 | ||
# make sure it's fucking dead | ||
killall -9 lokinet || true | ||
|
||
# check for prexisting lokinet and kill it if it's there | ||
[ -e /Library/LaunchDaemons/network.loki.lokinet.daemon.plist ] && ( | ||
launchctl stop network.loki.lokinet.daemon ; | ||
launchctl unload /Library/LaunchDaemons/network.loki.lokinet.daemon.plist ; | ||
rm -rf /Library/LaunchDaemons/network.loki.lokinet.daemon.plist | ||
) | ||
|
||
# clear out the install dir beforehand | ||
rm -rf /opt/lokinet |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
cmake_minimum_required(VERSION 3.10) # bionic's cmake version | ||
|
||
# Has to be set before `project()`, and ignored on non-macos: | ||
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12 CACHE STRING "macOS deployment target (Apple clang only)") | ||
|
||
find_program(CCACHE_PROGRAM ccache) | ||
if(CCACHE_PROGRAM) | ||
foreach(lang C CXX) | ||
if(NOT DEFINED CMAKE_${lang}_COMPILER_LAUNCHER AND NOT CMAKE_${lang}_COMPILER MATCHES ".*/ccache") | ||
message(STATUS "Enabling ccache for ${lang}") | ||
set(CMAKE_${lang}_COMPILER_LAUNCHER ${CCACHE_PROGRAM} CACHE STRING "") | ||
endif() | ||
endforeach() | ||
endif() | ||
|
||
set(PROJECT_NAME lokinet-uninstaller) | ||
project(${PROJECT_NAME} | ||
VERSION 0.0.1 | ||
DESCRIPTION "lokinet uninstaller for macos" | ||
LANGUAGES CXX) | ||
|
||
add_executable(${PROJECT_NAME} | ||
main.cpp) | ||
|
||
find_package(Qt5 COMPONENTS Widgets REQUIRED) | ||
|
||
target_link_libraries(${PROJECT_NAME} PRIVATE | ||
"-framework Security" | ||
Qt5::Core Qt5::Widgets) | ||
|
||
set_target_properties(${PROJECT_NAME} | ||
PROPERTIES | ||
CXX_STANDARD 17 | ||
CXX_EXTENSIONS OFF | ||
CXX_STANDARD_REQUIRED ON | ||
) | ||
|
||
|
||
set(MACOS_SIGN "" | ||
CACHE STRING "enable codesigning -- use a 'Apple Distribution' key (or key description) from `security find-identity -v`") | ||
|
||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lokinet-uninstall.icns | ||
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/mk-icns.sh ${CMAKE_CURRENT_SOURCE_DIR}/icon.svg ${CMAKE_CURRENT_BINARY_DIR}/lokinet-uninstall.icns | ||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/icon.svg ${CMAKE_CURRENT_SOURCE_DIR}/mk-icns.sh) | ||
|
||
target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/lokinet-uninstall.icns) | ||
|
||
set_target_properties(${PROJECT_NAME} | ||
PROPERTIES | ||
MACOSX_BUNDLE TRUE | ||
OUTPUT_NAME UninstallLokinet | ||
RESOURCE "${CMAKE_CURRENT_BINARY_DIR}/lokinet-uninstall.icns") | ||
|
||
set(MACOSX_BUNDLE_BUNDLE_NAME UninstallLokinet) | ||
set(MACOSX_BUNDLE_GUI_IDENTIFIER org.lokinet.lokinet-uninstaller) | ||
set(MACOSX_BUNDLE_INFO_STRING "Lokinet uninstaller") | ||
set(MACOSX_BUNDLE_ICON_FILE lokinet-uninstall.icns) | ||
set(MACOSX_BUNDLE_LONG_VERSION_STRING ${PROJECT_VERSION}) | ||
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}) | ||
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) | ||
set(MACOSX_BUNDLE_COPYRIGHT "© 2020, The Loki Project") | ||
|
||
get_target_property(uic_location Qt5::uic IMPORTED_LOCATION) | ||
get_filename_component(qt_dir ${uic_location} DIRECTORY) | ||
|
||
if(MACOS_SIGN) | ||
add_custom_command(TARGET ${PROJECT_NAME} | ||
POST_BUILD | ||
COMMAND echo "Running qt magic macos deploy script" | ||
COMMAND "${qt_dir}/macdeployqt" UninstallLokinet.app -always-overwrite | ||
COMMAND echo "Signing app bundle and everything inside it" | ||
COMMAND codesign -s "${MACOS_SIGN}" --deep --strict --options runtime --force -vvv UninstallLokinet.app | ||
) | ||
else() | ||
add_custom_command(TARGET ${PROJECT_NAME} | ||
POST_BUILD | ||
COMMAND echo "Running qt magic macos deploy script" | ||
COMMAND "${qt_dir}/macdeployqt" UninstallLokinet.app -always-overwrite | ||
) | ||
endif() | ||
|
||
install(TARGETS lokinet-uninstaller | ||
RUNTIME DESTINATION bin | ||
BUNDLE DESTINATION . | ||
RESOURCE DESTINATION .) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.