Compare commits
2 commits
3dedca4de3
...
4695791b4d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4695791b4d | ||
|
|
2c68a405be |
8 changed files with 255 additions and 71 deletions
2
.github/workflows/release-if-needed.yaml
vendored
2
.github/workflows/release-if-needed.yaml
vendored
|
|
@ -9,6 +9,8 @@ jobs:
|
|||
create:
|
||||
name: Create Release If Needed
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
|
|
|||
34
.github/workflows/release-linux.yml
vendored
34
.github/workflows/release-linux.yml
vendored
|
|
@ -1,34 +0,0 @@
|
|||
name: Release (Linux)
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- created
|
||||
jobs:
|
||||
appimage:
|
||||
name: Build AppImage
|
||||
runs-on: ubuntu-latest
|
||||
container: docker
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Build AppImage
|
||||
run: |
|
||||
docker build -t appimage-builder . -f burrow-gtk/build-aux/Dockerfile
|
||||
docker create --name temp appimage-builder
|
||||
docker cp temp:/app/burrow-gtk/build-appimage/Burrow-x86_64.AppImage .
|
||||
docker rm temp
|
||||
- name: Get Build Number
|
||||
id: version
|
||||
shell: bash
|
||||
run: |
|
||||
echo "BUILD_NUMBER=$(Tools/version.sh)" >> $GITHUB_OUTPUT
|
||||
- name: Attach Artifacts
|
||||
uses: SierraSoftworks/gh-releases@v1.0.7
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
release_tag: builds/${{ steps.version.outputs.BUILD_NUMBER }}
|
||||
overwrite: "true"
|
||||
files: |
|
||||
Burrow-x86_64.AppImage
|
||||
|
|
@ -15,20 +15,25 @@
|
|||
D000363D2BB8928E00E582EC /* NetworkCarouselView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000363C2BB8928E00E582EC /* NetworkCarouselView.swift */; };
|
||||
D000363F2BB895FB00E582EC /* OAuth2.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000363E2BB895FB00E582EC /* OAuth2.swift */; };
|
||||
D001173B2B30341C00D87C25 /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = D001173A2B30341C00D87C25 /* Logging.swift */; };
|
||||
D00117442B30372900D87C25 /* libBurrowShared.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D00117382B30341C00D87C25 /* libBurrowShared.a */; };
|
||||
D00117452B30372C00D87C25 /* libBurrowShared.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D00117382B30341C00D87C25 /* libBurrowShared.a */; };
|
||||
D00AA8972A4669BC005C8102 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00AA8962A4669BC005C8102 /* AppDelegate.swift */; };
|
||||
D01A79312B81630D0024EC91 /* NetworkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A79302B81630D0024EC91 /* NetworkView.swift */; };
|
||||
D020F65829E4A697002790F6 /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020F65729E4A697002790F6 /* PacketTunnelProvider.swift */; };
|
||||
D020F65D29E4A697002790F6 /* BurrowNetworkExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = D020F65329E4A697002790F6 /* BurrowNetworkExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
D032E6522B8A79C20006B8AD /* HackClub.swift in Sources */ = {isa = PBXBuildFile; fileRef = D032E6512B8A79C20006B8AD /* HackClub.swift */; };
|
||||
D032E6542B8A79DA0006B8AD /* WireGuard.swift in Sources */ = {isa = PBXBuildFile; fileRef = D032E6532B8A79DA0006B8AD /* WireGuard.swift */; };
|
||||
D05B9F7629E39EEC008CB1F9 /* BurrowApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B9F7529E39EEC008CB1F9 /* BurrowApp.swift */; };
|
||||
D05B9F7829E39EEC008CB1F9 /* BurrowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B9F7729E39EEC008CB1F9 /* BurrowView.swift */; };
|
||||
D05B9F7A29E39EED008CB1F9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D05B9F7929E39EED008CB1F9 /* Assets.xcassets */; };
|
||||
D05EF8C82B81818D0017AB4F /* FloatingButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05EF8C72B81818D0017AB4F /* FloatingButtonStyle.swift */; };
|
||||
D06EB6462C3B5458005401CE /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06EB6452C3B5458005401CE /* main.swift */; };
|
||||
D06EB6542C3B56ED005401CE /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D020F65729E4A697002790F6 /* PacketTunnelProvider.swift */; };
|
||||
D08252762B5C9FC4005DA378 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08252752B5C9FC4005DA378 /* Constants.swift */; };
|
||||
D09150422B9D2AF700BE3CB0 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = D09150412B9D2AF700BE3CB0 /* MainMenu.xib */; };
|
||||
D0A14BCA2C3B57C000685DCE /* libBurrowShared.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0A14BC82C3B57BC00685DCE /* libBurrowShared.a */; };
|
||||
D0A14BCB2C3B57C700685DCE /* libBurrowShared.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0A14BC82C3B57BC00685DCE /* libBurrowShared.a */; };
|
||||
D0A14BCC2C3B57D600685DCE /* libburrow.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCC6032A09535900AD070D /* libburrow.a */; };
|
||||
D0A14BE72C3B586F00685DCE /* BurrowSystemNetworkExtension.systemextension in Embed System Extensions */ = {isa = PBXBuildFile; fileRef = D0A14BCF2C3B57FE00685DCE /* BurrowSystemNetworkExtension.systemextension */; platformFilters = (macos, ); settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
D0A14BE82C3B588C00685DCE /* BurrowNetworkExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = D0A14BCE2C3B57FE00685DCE /* BurrowNetworkExtension.appex */; platformFilter = ios; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
D0A14BE92C3B58EC00685DCE /* libBurrowShared.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0A14BC82C3B57BC00685DCE /* libBurrowShared.a */; };
|
||||
D0BCC5FD2A086D4700AD070D /* NetworkExtension+Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BCC5FC2A086D4700AD070D /* NetworkExtension+Async.swift */; };
|
||||
D0BCC6082A0981FE00AD070D /* Tunnel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B98FC629FDC5B5004E7149 /* Tunnel.swift */; };
|
||||
D0BCC6092A09A03E00AD070D /* libburrow.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCC6032A09535900AD070D /* libburrow.a */; };
|
||||
|
|
@ -60,6 +65,20 @@
|
|||
remoteGlobalIDString = D020F65229E4A697002790F6;
|
||||
remoteInfo = BurrowNetworkExtension;
|
||||
};
|
||||
D06EB6492C3B5458005401CE /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D05B9F6A29E39EEC008CB1F9 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = D06EB63F2C3B5458005401CE;
|
||||
remoteInfo = SystemNetworkExtension;
|
||||
};
|
||||
D06EB6502C3B548F005401CE /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D05B9F6A29E39EEC008CB1F9 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = D00117372B30341C00D87C25;
|
||||
remoteInfo = Shared;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
|
|
@ -69,11 +88,22 @@
|
|||
dstPath = "";
|
||||
dstSubfolderSpec = 13;
|
||||
files = (
|
||||
D020F65D29E4A697002790F6 /* BurrowNetworkExtension.appex in Embed Foundation Extensions */,
|
||||
D0A14BE82C3B588C00685DCE /* BurrowNetworkExtension.appex in Embed Foundation Extensions */,
|
||||
);
|
||||
name = "Embed Foundation Extensions";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
D06EB64B2C3B5458005401CE /* Embed System Extensions */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "$(SYSTEM_EXTENSIONS_FOLDER_PATH)";
|
||||
dstSubfolderSpec = 16;
|
||||
files = (
|
||||
D0A14BE72C3B586F00685DCE /* BurrowSystemNetworkExtension.systemextension in Embed System Extensions */,
|
||||
);
|
||||
name = "Embed System Extensions";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
|
|
@ -84,7 +114,6 @@
|
|||
D000363E2BB895FB00E582EC /* OAuth2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuth2.swift; sourceTree = "<group>"; };
|
||||
D00117302B2FFFC900D87C25 /* NWConnection+Async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NWConnection+Async.swift"; sourceTree = "<group>"; };
|
||||
D00117322B3001A400D87C25 /* NewlineProtocolFramer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewlineProtocolFramer.swift; sourceTree = "<group>"; };
|
||||
D00117382B30341C00D87C25 /* libBurrowShared.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBurrowShared.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D001173A2B30341C00D87C25 /* Logging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logging.swift; sourceTree = "<group>"; };
|
||||
D00117412B30347800D87C25 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = "<group>"; };
|
||||
D00117422B30348D00D87C25 /* Shared.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Shared.xcconfig; sourceTree = "<group>"; };
|
||||
|
|
@ -95,7 +124,6 @@
|
|||
D020F64229E4A1FF002790F6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D020F64929E4A34B002790F6 /* App.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = App.xcconfig; sourceTree = "<group>"; };
|
||||
D020F64A29E4A452002790F6 /* App.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = App.xcconfig; sourceTree = "<group>"; };
|
||||
D020F65329E4A697002790F6 /* BurrowNetworkExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = BurrowNetworkExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D020F65729E4A697002790F6 /* PacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacketTunnelProvider.swift; sourceTree = "<group>"; };
|
||||
D020F65929E4A697002790F6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D020F66229E4A6E5002790F6 /* NetworkExtension.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = NetworkExtension.xcconfig; sourceTree = "<group>"; };
|
||||
|
|
@ -107,14 +135,20 @@
|
|||
D032E6512B8A79C20006B8AD /* HackClub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HackClub.swift; sourceTree = "<group>"; };
|
||||
D032E6532B8A79DA0006B8AD /* WireGuard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WireGuard.swift; sourceTree = "<group>"; };
|
||||
D04A3E1D2BAF465F0043EC85 /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = "<group>"; };
|
||||
D05B9F7229E39EEC008CB1F9 /* Burrow.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Burrow.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D05B9F7529E39EEC008CB1F9 /* BurrowApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BurrowApp.swift; sourceTree = "<group>"; };
|
||||
D05B9F7729E39EEC008CB1F9 /* BurrowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BurrowView.swift; sourceTree = "<group>"; };
|
||||
D05B9F7929E39EED008CB1F9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
D05EF8C72B81818D0017AB4F /* FloatingButtonStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FloatingButtonStyle.swift; sourceTree = "<group>"; };
|
||||
D06EB6452C3B5458005401CE /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = "<group>"; };
|
||||
D06EB6472C3B5458005401CE /* System-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "System-Info.plist"; sourceTree = "<group>"; };
|
||||
D06EB6532C3B5605005401CE /* SystemNetworkExtension.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = SystemNetworkExtension.xcconfig; sourceTree = "<group>"; };
|
||||
D08252742B5C9DEB005DA378 /* Constants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Constants.h; sourceTree = "<group>"; };
|
||||
D08252752B5C9FC4005DA378 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
|
||||
D09150412B9D2AF700BE3CB0 /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = "<group>"; };
|
||||
D0A14BC82C3B57BC00685DCE /* libBurrowShared.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBurrowShared.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0A14BCD2C3B57FE00685DCE /* Burrow.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Burrow.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0A14BCE2C3B57FE00685DCE /* BurrowNetworkExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = BurrowNetworkExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0A14BCF2C3B57FE00685DCE /* BurrowSystemNetworkExtension.systemextension */ = {isa = PBXFileReference; explicitFileType = "wrapper.system-extension"; includeInIndex = 0; path = BurrowSystemNetworkExtension.systemextension; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0B98FBF29FD8072004E7149 /* build-rust.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "build-rust.sh"; sourceTree = "<group>"; };
|
||||
D0B98FC629FDC5B5004E7149 /* Tunnel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tunnel.swift; sourceTree = "<group>"; };
|
||||
D0B98FD829FDDB6F004E7149 /* libburrow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libburrow.h; sourceTree = "<group>"; };
|
||||
|
|
@ -139,7 +173,7 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D00117442B30372900D87C25 /* libBurrowShared.a in Frameworks */,
|
||||
D0A14BCB2C3B57C700685DCE /* libBurrowShared.a in Frameworks */,
|
||||
D0BCC6092A09A03E00AD070D /* libburrow.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
|
@ -148,7 +182,16 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D00117452B30372C00D87C25 /* libBurrowShared.a in Frameworks */,
|
||||
D0A14BE92C3B58EC00685DCE /* libBurrowShared.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
D06EB63D2C3B5458005401CE /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0A14BCC2C3B57D600685DCE /* libburrow.a in Frameworks */,
|
||||
D0A14BCA2C3B57C000685DCE /* libBurrowShared.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -179,13 +222,6 @@
|
|||
path = Constants;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D00117432B30372900D87C25 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D020F63C29E4A1FF002790F6 /* Configuration */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -203,10 +239,13 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
D020F65729E4A697002790F6 /* PacketTunnelProvider.swift */,
|
||||
D06EB6452C3B5458005401CE /* main.swift */,
|
||||
D020F65929E4A697002790F6 /* Info.plist */,
|
||||
D020F66729E4A95D002790F6 /* NetworkExtension-iOS.entitlements */,
|
||||
D06EB6472C3B5458005401CE /* System-Info.plist */,
|
||||
D020F66629E4A95D002790F6 /* NetworkExtension-macOS.entitlements */,
|
||||
D020F66229E4A6E5002790F6 /* NetworkExtension.xcconfig */,
|
||||
D06EB6532C3B5605005401CE /* SystemNetworkExtension.xcconfig */,
|
||||
D0B98FD729FDDB57004E7149 /* libburrow */,
|
||||
);
|
||||
path = NetworkExtension;
|
||||
|
|
@ -229,21 +268,13 @@
|
|||
D020F65629E4A697002790F6 /* NetworkExtension */,
|
||||
D00117392B30341C00D87C25 /* Shared */,
|
||||
D020F63C29E4A1FF002790F6 /* Configuration */,
|
||||
D05B9F7329E39EEC008CB1F9 /* Products */,
|
||||
D00117432B30372900D87C25 /* Frameworks */,
|
||||
D0A14BC92C3B57C000685DCE /* Frameworks */,
|
||||
D0A14BCD2C3B57FE00685DCE /* Burrow.app */,
|
||||
D0A14BCE2C3B57FE00685DCE /* BurrowNetworkExtension.appex */,
|
||||
D0A14BCF2C3B57FE00685DCE /* BurrowSystemNetworkExtension.systemextension */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D05B9F7329E39EEC008CB1F9 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D05B9F7229E39EEC008CB1F9 /* Burrow.app */,
|
||||
D020F65329E4A697002790F6 /* BurrowNetworkExtension.appex */,
|
||||
D00117382B30341C00D87C25 /* libBurrowShared.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D05B9F7429E39EEC008CB1F9 /* App */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -270,6 +301,14 @@
|
|||
path = App;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0A14BC92C3B57C000685DCE /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0A14BC82C3B57BC00685DCE /* libBurrowShared.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0B98FD729FDDB57004E7149 /* libburrow */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -290,6 +329,7 @@
|
|||
buildPhases = (
|
||||
D00117342B30341C00D87C25 /* Sources */,
|
||||
D00117352B30341C00D87C25 /* Frameworks */,
|
||||
D06EB6522C3B54AB005401CE /* Compile Rust */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
|
@ -297,14 +337,13 @@
|
|||
);
|
||||
name = Shared;
|
||||
productName = Shared;
|
||||
productReference = D00117382B30341C00D87C25 /* libBurrowShared.a */;
|
||||
productReference = D0A14BC82C3B57BC00685DCE /* libBurrowShared.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
D020F65229E4A697002790F6 /* NetworkExtension */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D020F65E29E4A697002790F6 /* Build configuration list for PBXNativeTarget "NetworkExtension" */;
|
||||
buildPhases = (
|
||||
D0BCC60B2A09A0C100AD070D /* Compile Rust */,
|
||||
D020F64F29E4A697002790F6 /* Sources */,
|
||||
D020F65029E4A697002790F6 /* Frameworks */,
|
||||
D020F65129E4A697002790F6 /* Resources */,
|
||||
|
|
@ -316,7 +355,7 @@
|
|||
);
|
||||
name = NetworkExtension;
|
||||
productName = BurrowNetworkExtension;
|
||||
productReference = D020F65329E4A697002790F6 /* BurrowNetworkExtension.appex */;
|
||||
productReference = D0A14BCE2C3B57FE00685DCE /* BurrowNetworkExtension.appex */;
|
||||
productType = "com.apple.product-type.app-extension";
|
||||
};
|
||||
D05B9F7129E39EEC008CB1F9 /* App */ = {
|
||||
|
|
@ -328,18 +367,38 @@
|
|||
D05B9F6F29E39EEC008CB1F9 /* Frameworks */,
|
||||
D05B9F7029E39EEC008CB1F9 /* Resources */,
|
||||
D020F66129E4A697002790F6 /* Embed Foundation Extensions */,
|
||||
D06EB64B2C3B5458005401CE /* Embed System Extensions */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
D00117472B30373100D87C25 /* PBXTargetDependency */,
|
||||
D020F65C29E4A697002790F6 /* PBXTargetDependency */,
|
||||
D06EB64A2C3B5458005401CE /* PBXTargetDependency */,
|
||||
);
|
||||
name = App;
|
||||
productName = Burrow;
|
||||
productReference = D05B9F7229E39EEC008CB1F9 /* Burrow.app */;
|
||||
productReference = D0A14BCD2C3B57FE00685DCE /* Burrow.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
D06EB63F2C3B5458005401CE /* SystemNetworkExtension */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D06EB64D2C3B5458005401CE /* Build configuration list for PBXNativeTarget "SystemNetworkExtension" */;
|
||||
buildPhases = (
|
||||
D06EB63C2C3B5458005401CE /* Sources */,
|
||||
D06EB63D2C3B5458005401CE /* Frameworks */,
|
||||
D06EB63E2C3B5458005401CE /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
D06EB6512C3B548F005401CE /* PBXTargetDependency */,
|
||||
);
|
||||
name = SystemNetworkExtension;
|
||||
productName = SystemNetworkExtension;
|
||||
productReference = D0A14BCF2C3B57FE00685DCE /* BurrowSystemNetworkExtension.systemextension */;
|
||||
productType = "com.apple.product-type.system-extension";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
|
|
@ -347,7 +406,7 @@
|
|||
isa = PBXProject;
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = 1;
|
||||
LastSwiftUpdateCheck = 1510;
|
||||
LastSwiftUpdateCheck = 1600;
|
||||
LastUpgradeCheck = 1520;
|
||||
TargetAttributes = {
|
||||
D00117372B30341C00D87C25 = {
|
||||
|
|
@ -359,6 +418,9 @@
|
|||
D05B9F7129E39EEC008CB1F9 = {
|
||||
CreatedOnToolsVersion = 14.3;
|
||||
};
|
||||
D06EB63F2C3B5458005401CE = {
|
||||
CreatedOnToolsVersion = 16.0;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D05B9F6D29E39EEC008CB1F9 /* Build configuration list for PBXProject "Burrow" */;
|
||||
|
|
@ -372,12 +434,13 @@
|
|||
mainGroup = D05B9F6929E39EEC008CB1F9;
|
||||
packageReferences = (
|
||||
);
|
||||
productRefGroup = D05B9F7329E39EEC008CB1F9 /* Products */;
|
||||
productRefGroup = D05B9F6929E39EEC008CB1F9;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D05B9F7129E39EEC008CB1F9 /* App */,
|
||||
D020F65229E4A697002790F6 /* NetworkExtension */,
|
||||
D06EB63F2C3B5458005401CE /* SystemNetworkExtension */,
|
||||
D00117372B30341C00D87C25 /* Shared */,
|
||||
);
|
||||
};
|
||||
|
|
@ -400,6 +463,13 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
D06EB63E2C3B5458005401CE /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
|
|
@ -424,25 +494,25 @@
|
|||
shellPath = /bin/sh;
|
||||
shellScript = "\"$PROJECT_DIR/../Tools/version.sh\"\n";
|
||||
};
|
||||
D0BCC60B2A09A0C100AD070D /* Compile Rust */ = {
|
||||
D06EB6522C3B54AB005401CE /* Compile Rust */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"$(PROJECT_DIR)/../",
|
||||
);
|
||||
name = "Compile Rust";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(BUILT_PRODUCTS_DIR)/libburrow.a",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PROJECT_DIR}/NetworkExtension/libburrow/build-rust.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
|
|
@ -491,6 +561,15 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
D06EB63C2C3B5458005401CE /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D06EB6462C3B5458005401CE /* main.swift in Sources */,
|
||||
D06EB6542C3B56ED005401CE /* PacketTunnelProvider.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
|
|
@ -506,9 +585,23 @@
|
|||
};
|
||||
D020F65C29E4A697002790F6 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
platformFilter = ios;
|
||||
target = D020F65229E4A697002790F6 /* NetworkExtension */;
|
||||
targetProxy = D020F65B29E4A697002790F6 /* PBXContainerItemProxy */;
|
||||
};
|
||||
D06EB64A2C3B5458005401CE /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
platformFilters = (
|
||||
macos,
|
||||
);
|
||||
target = D06EB63F2C3B5458005401CE /* SystemNetworkExtension */;
|
||||
targetProxy = D06EB6492C3B5458005401CE /* PBXContainerItemProxy */;
|
||||
};
|
||||
D06EB6512C3B548F005401CE /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = D00117372B30341C00D87C25 /* Shared */;
|
||||
targetProxy = D06EB6502C3B548F005401CE /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
|
|
@ -568,6 +661,20 @@
|
|||
};
|
||||
name = Release;
|
||||
};
|
||||
D06EB64E2C3B5458005401CE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D06EB6532C3B5605005401CE /* SystemNetworkExtension.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
D06EB64F2C3B5458005401CE /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D06EB6532C3B5605005401CE /* SystemNetworkExtension.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
|
|
@ -607,6 +714,15 @@
|
|||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
D06EB64D2C3B5458005401CE /* Build configuration list for PBXNativeTarget "SystemNetworkExtension" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D06EB64E2C3B5458005401CE /* Debug */,
|
||||
D06EB64F2C3B5458005401CE /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D05B9F6A29E39EEC008CB1F9 /* Project object */;
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ FUSE_BUILD_SCRIPT_PHASES = YES
|
|||
APP_GROUP_IDENTIFIER = group.$(APP_BUNDLE_IDENTIFIER)
|
||||
APP_GROUP_IDENTIFIER[sdk=macosx*] = $(DEVELOPMENT_TEAM).$(APP_BUNDLE_IDENTIFIER)
|
||||
NETWORK_EXTENSION_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).network
|
||||
SYSTEM_NETWORK_EXTENSION_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).network-systemextension
|
||||
|
||||
// Swift
|
||||
SWIFT_VERSION = 5.0
|
||||
|
|
|
|||
18
Apple/NetworkExtension/System-Info.plist
Normal file
18
Apple/NetworkExtension/System-Info.plist
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSSystemExtensionUsageDescription</key>
|
||||
<string>Needed to install Burrow outside of the App Store</string>
|
||||
<key>NetworkExtension</key>
|
||||
<dict>
|
||||
<key>NEMachServiceName</key>
|
||||
<string>$(APP_GROUP_IDENTIFIER).system-extension</string>
|
||||
<key>NEProviderClasses</key>
|
||||
<dict>
|
||||
<key>com.apple.networkextension.packet-tunnel</key>
|
||||
<string>$(PRODUCT_MODULE_NAME).PacketTunnelProvider</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
11
Apple/NetworkExtension/SystemNetworkExtension.xcconfig
Normal file
11
Apple/NetworkExtension/SystemNetworkExtension.xcconfig
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#include "../Configuration/Extension.xcconfig"
|
||||
|
||||
PRODUCT_NAME = BurrowSystemNetworkExtension
|
||||
PRODUCT_BUNDLE_IDENTIFIER = $(SYSTEM_NETWORK_EXTENSION_BUNDLE_IDENTIFIER)
|
||||
|
||||
INFOPLIST_FILE = NetworkExtension/System-Info.plist
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks
|
||||
|
||||
CODE_SIGN_ENTITLEMENTS = NetworkExtension/NetworkExtension-macOS.entitlements
|
||||
|
||||
SWIFT_INCLUDE_PATHS = $(inherited) $(PROJECT_DIR)/NetworkExtension
|
||||
8
Apple/NetworkExtension/main.swift
Normal file
8
Apple/NetworkExtension/main.swift
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import Foundation
|
||||
import NetworkExtension
|
||||
|
||||
autoreleasepool {
|
||||
NEProvider.startSystemExtensionMode()
|
||||
}
|
||||
|
||||
dispatchMain()
|
||||
62
Tools/export-developer-id.sh
Normal file
62
Tools/export-developer-id.sh
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
|
||||
export PATH="$PATH:/opt/homebrew/bin:/usr/local/bin:/etc/profiles/per-user/$USER/bin"
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"/..
|
||||
|
||||
ARCHIVE_PATH="$1"
|
||||
if [[ -z $ARCHIVE_PATH ]]; then
|
||||
echo "export-developer-id.sh <achive-path>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
APP_PATH="$ARCHIVE_PATH/Products/Applications/Burrow.app"
|
||||
|
||||
codesign -d --entitlements Burrow.entitlements --xml "$APP_PATH"
|
||||
|
||||
|
||||
TAG_PREFIX="builds/"
|
||||
|
||||
CURRENT_BUILD=$(git tag --points-at HEAD | tail -n 1)
|
||||
LATEST_BUILD="$TAG_PREFIX$(git tag -l "builds/[0-9]*" | cut -d'/' -f 2 | sort -n | tail -n 1)"
|
||||
|
||||
CURRENT_BUILD_NUMBER=${CURRENT_BUILD#$TAG_PREFIX}
|
||||
LATEST_BUILD_NUMBER=${LATEST_BUILD#$TAG_PREFIX}
|
||||
if [[ -z $LATEST_BUILD_NUMBER ]]; then
|
||||
LATEST_BUILD_NUMBER="0"
|
||||
fi
|
||||
|
||||
if [[ ! -z $LATEST_BUILD && $(git merge-base --is-ancestor $LATEST_BUILD HEAD) -ne 0 ]]; then
|
||||
echo "error: HEAD is not descended from build $LATEST_BUILD_NUMBER" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BUILD_NUMBER=$LATEST_BUILD_NUMBER
|
||||
|
||||
if [[ $# -gt 0 && "$1" == "increment" ]]; then
|
||||
NEW_BUILD_NUMBER=$((LATEST_BUILD_NUMBER + 1))
|
||||
NEW_TAG="$TAG_PREFIX$NEW_BUILD_NUMBER"
|
||||
BUILD_NUMBER=$NEW_BUILD_NUMBER
|
||||
|
||||
git tag $NEW_TAG
|
||||
git push --quiet origin $NEW_TAG
|
||||
gh release create "$NEW_TAG" -t "Build $BUILD_NUMBER" --verify-tag --generate-notes >/dev/null
|
||||
fi
|
||||
|
||||
if [[ -z $(grep $BUILD_NUMBER Apple/Configuration/Version.xcconfig 2>/dev/null) ]]; then
|
||||
echo "CURRENT_PROJECT_VERSION = $BUILD_NUMBER" > Apple/Configuration/Version.xcconfig
|
||||
git update-index --assume-unchanged Apple/Configuration/Version.xcconfig
|
||||
fi
|
||||
|
||||
if [[ $# -gt 0 && "$1" == "status" ]]; then
|
||||
if [[ $CURRENT_BUILD_NUMBER -eq $LATEST_BUILD_NUMBER ]]; then
|
||||
echo "clean"
|
||||
else
|
||||
echo "dirty"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo $BUILD_NUMBER
|
||||
Loading…
Add table
Add a link
Reference in a new issue