From d6c47a1198c5ae2cad6cc917b6ce5e4683ea9156 Mon Sep 17 00:00:00 2001 From: Max Radermacher Date: Mon, 15 Sep 2025 15:45:28 -0500 Subject: [PATCH] Move protobuf/ into Protos/ --- .swiftlint.yml | 2 +- Signal.xcodeproj/project.pbxproj | 28 +++---- .../Backups/Backup.pb.swift | 0 .../{protobuf => Protos}/Backups/Backup.proto | 0 SignalServiceKit/Protos/Backups/README.md | 7 ++ .../parse-libsignal-comparator-failure.py | 0 SignalServiceKit/Protos/Makefile | 58 ++++++++++++++ .../Specifications}/DeviceTransfer.proto | 0 .../Specifications}/Fingerprint.proto | 0 .../Specifications}/Groups.proto | 0 .../Specifications}/MobileCoinExternal.proto | 0 .../Specifications}/Provisioning.proto | 0 .../Protos/Specifications/README.md | 18 +++++ .../Specifications}/Registration.proto | 0 .../Specifications}/SessionRecord.proto | 0 .../Specifications}/SignalIOS.proto | 0 .../Specifications}/SignalService.proto | 0 .../Specifications}/StorageService.proto | 0 .../Specifications}/WebSocketResources.proto | 0 .../Specifications}/svr2.proto | 0 SignalServiceKit/protobuf/Backups/README.md | 7 -- .../Backups/generate-backup-protos.sh | 17 ---- SignalServiceKit/protobuf/Makefile | 79 ------------------- SignalServiceKit/protobuf/README.md | 22 ------ 24 files changed, 97 insertions(+), 141 deletions(-) rename SignalServiceKit/{protobuf => Protos}/Backups/Backup.pb.swift (100%) rename SignalServiceKit/{protobuf => Protos}/Backups/Backup.proto (100%) create mode 100644 SignalServiceKit/Protos/Backups/README.md rename SignalServiceKit/{protobuf => Protos}/Backups/parse-libsignal-comparator-failure.py (100%) create mode 100644 SignalServiceKit/Protos/Makefile rename SignalServiceKit/{protobuf => Protos/Specifications}/DeviceTransfer.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/Fingerprint.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/Groups.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/MobileCoinExternal.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/Provisioning.proto (100%) create mode 100644 SignalServiceKit/Protos/Specifications/README.md rename SignalServiceKit/{protobuf => Protos/Specifications}/Registration.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/SessionRecord.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/SignalIOS.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/SignalService.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/StorageService.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/WebSocketResources.proto (100%) rename SignalServiceKit/{protobuf => Protos/Specifications}/svr2.proto (100%) delete mode 100644 SignalServiceKit/protobuf/Backups/README.md delete mode 100755 SignalServiceKit/protobuf/Backups/generate-backup-protos.sh delete mode 100644 SignalServiceKit/protobuf/Makefile delete mode 100644 SignalServiceKit/protobuf/README.md diff --git a/.swiftlint.yml b/.swiftlint.yml index 356487c511..9b6620a941 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -2,7 +2,7 @@ excluded: - Pods - ThirdParty - SignalServiceKit/Protos/Generated -- SignalServiceKit/protobuf/Backups +- SignalServiceKit/Protos/Backups # SwiftLint has trouble with these files. See . - Signal/Emoji/Emoji+SkinTones.swift - Signal/Emoji/EmojiWithSkinTones+String.swift diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index e622c34964..a0779a1921 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -2643,7 +2643,6 @@ D962346B2C0E937500DAF6CB /* InterleavingCompositeCursor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D931080A2B338CE5006A034E /* InterleavingCompositeCursor.swift */; }; D962346D2C0E957800DAF6CB /* DeleteForMeMostRecentAddressableMessageCursor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D962346C2C0E957800DAF6CB /* DeleteForMeMostRecentAddressableMessageCursor.swift */; }; D96234702C0E99DE00DAF6CB /* DeleteForMeMostRecentAddressableMessageCursorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D962346F2C0E99DE00DAF6CB /* DeleteForMeMostRecentAddressableMessageCursorTest.swift */; }; - D96269D92C58407400152314 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = D96269D82C58407400152314 /* README.md */; }; D962FC432E149ECF004DB623 /* BackupSettingsAttachmentDownloadTrackerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D962FC422E149EC7004DB623 /* BackupSettingsAttachmentDownloadTrackerTest.swift */; }; D9680CF32DBB0B2D005DD5BE /* ChooseBackupPlanViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9680CF22DBB0B28005DD5BE /* ChooseBackupPlanViewController.swift */; }; D9683D792D485BD300F423F4 /* chat_item_direct_story_reply_with_edits_07.binproto in Resources */ = {isa = PBXBuildFile; fileRef = D9683D6B2D485BD300F423F4 /* chat_item_direct_story_reply_with_edits_07.binproto */; }; @@ -5701,7 +5700,7 @@ C154CB932E0C6607009F878C /* RegistrationCoordinatorBackupErrorPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegistrationCoordinatorBackupErrorPresenter.swift; sourceTree = ""; }; C15837EE29A592BA00176927 /* UsernameValidationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UsernameValidationManager.swift; sourceTree = ""; }; C15C31142D9B3F7F0071E54C /* RegistrationChoiceButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegistrationChoiceButton.swift; sourceTree = ""; }; - C15EE0902D5D53420070838C /* Registration.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = Registration.proto; path = SignalServiceKit/protobuf/Registration.proto; sourceTree = SOURCE_ROOT; }; + C15EE0902D5D53420070838C /* Registration.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = Registration.proto; sourceTree = ""; }; C15EE0922D5D5AC00070838C /* Registration.pb.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Registration.pb.swift; sourceTree = ""; }; C1661A192C3D939300AB887F /* ArchivedPaymentHistoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArchivedPaymentHistoryItem.swift; sourceTree = ""; }; C1661A1B2C3D93AE00AB887F /* TSPaymentModelHistoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSPaymentModelHistoryItem.swift; sourceTree = ""; }; @@ -6764,16 +6763,16 @@ D9CD40612A155C4800545803 /* TSInfoMessage+PersistableGroupUpdateItemTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TSInfoMessage+PersistableGroupUpdateItemTest.swift"; sourceTree = ""; }; D9D1A6EA2DD69CFE00050A85 /* DonationReceiptCredentialRedemptionJobFinderTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DonationReceiptCredentialRedemptionJobFinderTest.swift; sourceTree = ""; }; D9D321692A8AC9B0004FC110 /* OutgoingGroupCallUpdateMessageTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingGroupCallUpdateMessageTest.swift; sourceTree = ""; }; - D9D3217B2A8FEA9B004FC110 /* Groups.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = Groups.proto; path = SignalServiceKit/protobuf/Groups.proto; sourceTree = SOURCE_ROOT; }; - D9D3217C2A8FEA9B004FC110 /* DeviceTransfer.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = DeviceTransfer.proto; path = SignalServiceKit/protobuf/DeviceTransfer.proto; sourceTree = SOURCE_ROOT; }; - D9D3217D2A8FEA9C004FC110 /* Fingerprint.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = Fingerprint.proto; path = SignalServiceKit/protobuf/Fingerprint.proto; sourceTree = SOURCE_ROOT; }; - D9D3217E2A8FEA9C004FC110 /* SessionRecord.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = SessionRecord.proto; path = SignalServiceKit/protobuf/SessionRecord.proto; sourceTree = SOURCE_ROOT; }; - D9D3217F2A8FEA9C004FC110 /* SignalIOS.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = SignalIOS.proto; path = SignalServiceKit/protobuf/SignalIOS.proto; sourceTree = SOURCE_ROOT; }; - D9D321802A8FEA9C004FC110 /* StorageService.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = StorageService.proto; path = SignalServiceKit/protobuf/StorageService.proto; sourceTree = SOURCE_ROOT; }; - D9D321812A8FEA9C004FC110 /* SignalService.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = SignalService.proto; path = SignalServiceKit/protobuf/SignalService.proto; sourceTree = SOURCE_ROOT; }; - D9D321822A8FEA9C004FC110 /* Provisioning.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = Provisioning.proto; path = SignalServiceKit/protobuf/Provisioning.proto; sourceTree = SOURCE_ROOT; }; - D9D321842A8FEA9D004FC110 /* svr2.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = svr2.proto; path = SignalServiceKit/protobuf/svr2.proto; sourceTree = SOURCE_ROOT; }; - D9D321852A8FEA9D004FC110 /* WebSocketResources.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; name = WebSocketResources.proto; path = SignalServiceKit/protobuf/WebSocketResources.proto; sourceTree = SOURCE_ROOT; }; + D9D3217B2A8FEA9B004FC110 /* Groups.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = Groups.proto; sourceTree = ""; }; + D9D3217C2A8FEA9B004FC110 /* DeviceTransfer.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = DeviceTransfer.proto; sourceTree = ""; }; + D9D3217D2A8FEA9C004FC110 /* Fingerprint.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = Fingerprint.proto; sourceTree = ""; }; + D9D3217E2A8FEA9C004FC110 /* SessionRecord.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = SessionRecord.proto; sourceTree = ""; }; + D9D3217F2A8FEA9C004FC110 /* SignalIOS.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = SignalIOS.proto; sourceTree = ""; }; + D9D321802A8FEA9C004FC110 /* StorageService.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = StorageService.proto; sourceTree = ""; }; + D9D321812A8FEA9C004FC110 /* SignalService.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = SignalService.proto; sourceTree = ""; }; + D9D321822A8FEA9C004FC110 /* Provisioning.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = Provisioning.proto; sourceTree = ""; }; + D9D321842A8FEA9D004FC110 /* svr2.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = svr2.proto; sourceTree = ""; }; + D9D321852A8FEA9D004FC110 /* WebSocketResources.proto */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.protobuf; path = WebSocketResources.proto; sourceTree = ""; }; D9DB37EE2B7180DD007B16C8 /* CallRecordAssociatedInteraction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallRecordAssociatedInteraction.swift; sourceTree = ""; }; D9DB37F22B71B037007B16C8 /* OutgoingCallLogEventSyncMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingCallLogEventSyncMessage.swift; sourceTree = ""; }; D9DB37F82B72A770007B16C8 /* CallRecordDeleteAllJobQueue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallRecordDeleteAllJobQueue.swift; sourceTree = ""; }; @@ -12303,7 +12302,7 @@ D96269D82C58407400152314 /* README.md */, ); name = Backups; - path = SignalServiceKit/protobuf/Backups; + path = SignalServiceKit/Protos/Backups; sourceTree = SOURCE_ROOT; }; D91A39E62AE2F42000F57A61 /* Subscriptions */ = { @@ -12879,7 +12878,7 @@ D9D321842A8FEA9D004FC110 /* svr2.proto */, D9D321852A8FEA9D004FC110 /* WebSocketResources.proto */, ); - name = Specifications; + path = Specifications; sourceTree = ""; }; D9DCFDAC2A3BB22800C73C0B /* QRCodes */ = { @@ -15200,7 +15199,6 @@ F9B0DC5C28948656004E07B7 /* GTSR3.crt in Resources */, F9B0DC5F28948656004E07B7 /* GTSR4.crt in Resources */, F9B0DC5328948656004E07B7 /* isrgrootx1.crt in Resources */, - D96269D92C58407400152314 /* README.md in Resources */, F9B0DC4F28948656004E07B7 /* schema.sql in Resources */, F9B0DC5928948656004E07B7 /* signal-messenger.cer in Resources */, ); diff --git a/SignalServiceKit/protobuf/Backups/Backup.pb.swift b/SignalServiceKit/Protos/Backups/Backup.pb.swift similarity index 100% rename from SignalServiceKit/protobuf/Backups/Backup.pb.swift rename to SignalServiceKit/Protos/Backups/Backup.pb.swift diff --git a/SignalServiceKit/protobuf/Backups/Backup.proto b/SignalServiceKit/Protos/Backups/Backup.proto similarity index 100% rename from SignalServiceKit/protobuf/Backups/Backup.proto rename to SignalServiceKit/Protos/Backups/Backup.proto diff --git a/SignalServiceKit/Protos/Backups/README.md b/SignalServiceKit/Protos/Backups/README.md new file mode 100644 index 0000000000..1f8031fe77 --- /dev/null +++ b/SignalServiceKit/Protos/Backups/README.md @@ -0,0 +1,7 @@ +# Backup protos + +## `Swift-Protobuf` + +We use [`Swift-Protobuf`](https://github.com/apple/swift-protobuf) to generate Swift code for working with `Backup.proto`, much like we do for all our other proto definitions. + +However, unlike (most of) the other protos, we do not use the "wrapper" code generated by `$REPO_ROOT/Scripts/protos/ProtoWrappers.py` to wrap the `Swift-Protobuf`-generated code for Backups because `ProtoWrappers.py` is incompatible with some of the syntactic structures we use in `Backup.proto`. diff --git a/SignalServiceKit/protobuf/Backups/parse-libsignal-comparator-failure.py b/SignalServiceKit/Protos/Backups/parse-libsignal-comparator-failure.py similarity index 100% rename from SignalServiceKit/protobuf/Backups/parse-libsignal-comparator-failure.py rename to SignalServiceKit/Protos/Backups/parse-libsignal-comparator-failure.py diff --git a/SignalServiceKit/Protos/Makefile b/SignalServiceKit/Protos/Makefile new file mode 100644 index 0000000000..83ee4b41b1 --- /dev/null +++ b/SignalServiceKit/Protos/Makefile @@ -0,0 +1,58 @@ +# +# Copyright 2023 Signal Messenger, LLC +# SPDX-License-Identifier: AGPL-3.0-only +# + +# See README.md in Specifications for prerequisite setup. + +PROTOC=protoc --proto_path=Specifications +WRAPPER_SCRIPT=../../Scripts/protos/ProtoWrappers.py --proto-dir=Specifications --verbose + +all: registration_protos signal_service_protos provisioning_protos fingerprint_protos websocket_protos signal_ios_protos storage_service_protos groups_protos device_transfer_protos session_record_protos svr_protos mobilecoin_protos backup_protos + +signal_service_protos: Specifications/SignalService.proto + $(PROTOC) --swift_out=Generated SignalService.proto + $(WRAPPER_SCRIPT) --dst-dir=Generated --wrapper-prefix=SSKProto --proto-prefix=SignalServiceProtos --proto-file=SignalService.proto + +provisioning_protos: Specifications/Provisioning.proto + $(PROTOC) --swift_out=Generated Provisioning.proto + $(WRAPPER_SCRIPT) --dst-dir=Generated --wrapper-prefix=ProvisioningProto --proto-prefix=ProvisioningProtos --proto-file=Provisioning.proto + +fingerprint_protos: Specifications/Fingerprint.proto + $(PROTOC) --swift_out=Generated Fingerprint.proto + $(WRAPPER_SCRIPT) --dst-dir=Generated --wrapper-prefix=FingerprintProto --proto-prefix=FingerprintProtos --proto-file=Fingerprint.proto + +websocket_protos: Specifications/WebSocketResources.proto + $(PROTOC) --swift_out=Generated WebSocketResources.proto + $(WRAPPER_SCRIPT) --dst-dir=Generated --wrapper-prefix=WebSocketProto --proto-prefix=WebSocketProtos --proto-file=WebSocketResources.proto + +signal_ios_protos: Specifications/SignalIOS.proto + $(PROTOC) --swift_out=Generated SignalIOS.proto + $(WRAPPER_SCRIPT) --dst-dir=Generated --wrapper-prefix=SignalIOSProto --proto-prefix=IOSProtos --proto-file=SignalIOS.proto + +storage_service_protos: Specifications/StorageService.proto + $(PROTOC) --swift_out=Generated StorageService.proto + $(WRAPPER_SCRIPT) --dst-dir=Generated --wrapper-prefix=StorageServiceProto --proto-prefix=StorageServiceProtos --proto-file=StorageService.proto + +groups_protos: Specifications/Groups.proto + $(PROTOC) --swift_out=Generated Groups.proto + $(WRAPPER_SCRIPT) --dst-dir=Generated --wrapper-prefix=GroupsProto --proto-prefix=GroupsProtos --proto-file=Groups.proto + +device_transfer_protos: Specifications/DeviceTransfer.proto + $(PROTOC) --swift_out=Generated DeviceTransfer.proto + $(WRAPPER_SCRIPT) --dst-dir=Generated --wrapper-prefix=DeviceTransferProto --proto-prefix=DeviceTransferProtos --proto-file=DeviceTransfer.proto + +session_record_protos: Specifications/SessionRecord.proto + $(PROTOC) --swift_out=Generated SessionRecord.proto + +svr_protos: Specifications/svr2.proto + $(PROTOC) --swift_out=Generated svr2.proto + +mobilecoin_protos: Specifications/MobileCoinExternal.proto + $(PROTOC) --swift_out=Generated MobileCoinExternal.proto + +registration_protos: Specifications/Registration.proto + $(PROTOC) --swift_out=Generated Registration.proto + +backup_protos: Backups/Backup.proto + $(PROTOC) --swift_out=Backups --proto_path=Backups --swift_opt=Visibility=public --swift_opt=UseAccessLevelOnImports=true Backup.proto diff --git a/SignalServiceKit/protobuf/DeviceTransfer.proto b/SignalServiceKit/Protos/Specifications/DeviceTransfer.proto similarity index 100% rename from SignalServiceKit/protobuf/DeviceTransfer.proto rename to SignalServiceKit/Protos/Specifications/DeviceTransfer.proto diff --git a/SignalServiceKit/protobuf/Fingerprint.proto b/SignalServiceKit/Protos/Specifications/Fingerprint.proto similarity index 100% rename from SignalServiceKit/protobuf/Fingerprint.proto rename to SignalServiceKit/Protos/Specifications/Fingerprint.proto diff --git a/SignalServiceKit/protobuf/Groups.proto b/SignalServiceKit/Protos/Specifications/Groups.proto similarity index 100% rename from SignalServiceKit/protobuf/Groups.proto rename to SignalServiceKit/Protos/Specifications/Groups.proto diff --git a/SignalServiceKit/protobuf/MobileCoinExternal.proto b/SignalServiceKit/Protos/Specifications/MobileCoinExternal.proto similarity index 100% rename from SignalServiceKit/protobuf/MobileCoinExternal.proto rename to SignalServiceKit/Protos/Specifications/MobileCoinExternal.proto diff --git a/SignalServiceKit/protobuf/Provisioning.proto b/SignalServiceKit/Protos/Specifications/Provisioning.proto similarity index 100% rename from SignalServiceKit/protobuf/Provisioning.proto rename to SignalServiceKit/Protos/Specifications/Provisioning.proto diff --git a/SignalServiceKit/Protos/Specifications/README.md b/SignalServiceKit/Protos/Specifications/README.md new file mode 100644 index 0000000000..d9944ec2d6 --- /dev/null +++ b/SignalServiceKit/Protos/Specifications/README.md @@ -0,0 +1,18 @@ +# SignalServiceKit Protobufs + +These protobuf definitions are the same as/compatible with Signal-Android and +Signal-Desktop, though modified slightly to match iOS conventions. + +## Prerequisites + +Install Apple's `swift-protobuf` (*not* the similarly named `protobuf-swift`) + + brew install swift-protobuf + +This should install an up-to-date protobuf package as a dependency. + +## Compiling Protos + + cd SignalServiceKit/Protos + make + diff --git a/SignalServiceKit/protobuf/Registration.proto b/SignalServiceKit/Protos/Specifications/Registration.proto similarity index 100% rename from SignalServiceKit/protobuf/Registration.proto rename to SignalServiceKit/Protos/Specifications/Registration.proto diff --git a/SignalServiceKit/protobuf/SessionRecord.proto b/SignalServiceKit/Protos/Specifications/SessionRecord.proto similarity index 100% rename from SignalServiceKit/protobuf/SessionRecord.proto rename to SignalServiceKit/Protos/Specifications/SessionRecord.proto diff --git a/SignalServiceKit/protobuf/SignalIOS.proto b/SignalServiceKit/Protos/Specifications/SignalIOS.proto similarity index 100% rename from SignalServiceKit/protobuf/SignalIOS.proto rename to SignalServiceKit/Protos/Specifications/SignalIOS.proto diff --git a/SignalServiceKit/protobuf/SignalService.proto b/SignalServiceKit/Protos/Specifications/SignalService.proto similarity index 100% rename from SignalServiceKit/protobuf/SignalService.proto rename to SignalServiceKit/Protos/Specifications/SignalService.proto diff --git a/SignalServiceKit/protobuf/StorageService.proto b/SignalServiceKit/Protos/Specifications/StorageService.proto similarity index 100% rename from SignalServiceKit/protobuf/StorageService.proto rename to SignalServiceKit/Protos/Specifications/StorageService.proto diff --git a/SignalServiceKit/protobuf/WebSocketResources.proto b/SignalServiceKit/Protos/Specifications/WebSocketResources.proto similarity index 100% rename from SignalServiceKit/protobuf/WebSocketResources.proto rename to SignalServiceKit/Protos/Specifications/WebSocketResources.proto diff --git a/SignalServiceKit/protobuf/svr2.proto b/SignalServiceKit/Protos/Specifications/svr2.proto similarity index 100% rename from SignalServiceKit/protobuf/svr2.proto rename to SignalServiceKit/Protos/Specifications/svr2.proto diff --git a/SignalServiceKit/protobuf/Backups/README.md b/SignalServiceKit/protobuf/Backups/README.md deleted file mode 100644 index 432b170db5..0000000000 --- a/SignalServiceKit/protobuf/Backups/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Backup protos - -## `Swift-Protobuf` - -We use [`Swift-Protobuf`](https://github.com/apple/swift-protobuf) to generate Swift code for working with `Backup.proto`, much like we do for all our other proto definitions. - -However, unlike the other protos, we do not use the "wrapper" code generated by `$REPO_ROOT/Scripts/protos/ProtoWrappers.py` to wrap the `Swift-Protobuf`-generated code for Backups, because `ProtoWrappers.py` is incompatible with some of the syntactic structures we use in `Backup.proto`. diff --git a/SignalServiceKit/protobuf/Backups/generate-backup-protos.sh b/SignalServiceKit/protobuf/Backups/generate-backup-protos.sh deleted file mode 100755 index 3e217c0a0b..0000000000 --- a/SignalServiceKit/protobuf/Backups/generate-backup-protos.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -REPO_ROOT=$(git rev-parse --show-toplevel) -BACKUP_PROTO_DIR="$REPO_ROOT/SignalServiceKit/protobuf/Backups" -BACKUP_PROTO_FILE="$BACKUP_PROTO_DIR/Backup.proto" -BACKUP_SWIFT_FILE="$BACKUP_PROTO_DIR/Backup.pb.swift" - -echo "Generating Backup.pb.swift file with protoc and Swift-Protobuf..." - -protoc \ - --proto_path="$BACKUP_PROTO_DIR" \ - --swift_out="$BACKUP_PROTO_DIR" \ - --swift_opt=Visibility=public \ - --swift_opt=UseAccessLevelOnImports=true \ - "$BACKUP_PROTO_FILE" - -"$REPO_ROOT"/Scripts/lint/lint-license-headers --fix "$BACKUP_PROTO_FILE" diff --git a/SignalServiceKit/protobuf/Makefile b/SignalServiceKit/protobuf/Makefile deleted file mode 100644 index bba6d2a6d6..0000000000 --- a/SignalServiceKit/protobuf/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# Copyright 2023 Signal Messenger, LLC -# SPDX-License-Identifier: AGPL-3.0-only -# - -# See README.md in this dir for prerequisite setup. - -PROTOC=protoc \ - --proto_path='./' -WRAPPER_SCRIPT=../../Scripts/protos/ProtoWrappers.py \ - --proto-dir='./' --verbose - -all: registration_protos signal_service_protos provisioning_protos fingerprint_protos websocket_protos signal_ios_protos storage_service_protos groups_protos device_transfer_protos session_record_protos svr_protos mobilecoin_protos - -signal_service_protos: SignalService.proto - $(PROTOC) --swift_out=../Protos/Generated \ - SignalService.proto - $(WRAPPER_SCRIPT) --dst-dir=../Protos/Generated \ - --wrapper-prefix=SSKProto --proto-prefix=SignalServiceProtos --proto-file=SignalService.proto - -provisioning_protos: Provisioning.proto - $(PROTOC) --swift_out=../Protos/Generated \ - Provisioning.proto - $(WRAPPER_SCRIPT) --dst-dir=../Protos/Generated \ - --wrapper-prefix=ProvisioningProto --proto-prefix=ProvisioningProtos --proto-file=Provisioning.proto - -fingerprint_protos: Fingerprint.proto - $(PROTOC) --swift_out=../Protos/Generated \ - Fingerprint.proto - $(WRAPPER_SCRIPT) --dst-dir=../Protos/Generated \ - --wrapper-prefix=FingerprintProto --proto-prefix=FingerprintProtos --proto-file=Fingerprint.proto - -websocket_protos: WebSocketResources.proto - $(PROTOC) --swift_out=../Protos/Generated \ - WebSocketResources.proto - $(WRAPPER_SCRIPT) --dst-dir=../Protos/Generated \ - --wrapper-prefix=WebSocketProto --proto-prefix=WebSocketProtos --proto-file=WebSocketResources.proto - -signal_ios_protos: SignalIOS.proto - $(PROTOC) --swift_out=../Protos/Generated \ - SignalIOS.proto - $(WRAPPER_SCRIPT) --dst-dir=../Protos/Generated \ - --wrapper-prefix=SignalIOSProto --proto-prefix=IOSProtos --proto-file=SignalIOS.proto - -storage_service_protos: StorageService.proto - $(PROTOC) --swift_out=../Protos/Generated \ - StorageService.proto - $(WRAPPER_SCRIPT) --dst-dir=../Protos/Generated \ - --wrapper-prefix=StorageServiceProto --proto-prefix=StorageServiceProtos --proto-file=StorageService.proto - -# TODO: Copy schema from zkgroup repository. -# TODO: Insert the following lines into the schema: -# -# // iOS - package name determines class prefix -# package GroupsProtos; -# -groups_protos: Groups.proto - $(PROTOC) --swift_out=../Protos/Generated \ - Groups.proto - $(WRAPPER_SCRIPT) --dst-dir=../Protos/Generated \ - --wrapper-prefix=GroupsProto --proto-prefix=GroupsProtos --proto-file=Groups.proto - -device_transfer_protos: DeviceTransfer.proto - $(PROTOC) --swift_out=../Protos/Generated \ - DeviceTransfer.proto - $(WRAPPER_SCRIPT) --dst-dir=../Protos/Generated \ - --wrapper-prefix=DeviceTransferProto --proto-prefix=DeviceTransferProtos --proto-file=DeviceTransfer.proto - -session_record_protos: SessionRecord.proto - $(PROTOC) --swift_out=../Protos/Generated SessionRecord.proto - -svr_protos: svr2.proto - $(PROTOC) --swift_out=../Protos/Generated svr2.proto - -mobilecoin_protos: MobileCoinExternal.proto - $(PROTOC) --swift_out=../Protos/Generated MobileCoinExternal.proto - -registration_protos: Registration.proto - $(PROTOC) --swift_out=../Protos/Generated Registration.proto diff --git a/SignalServiceKit/protobuf/README.md b/SignalServiceKit/protobuf/README.md deleted file mode 100644 index 48e3174512..0000000000 --- a/SignalServiceKit/protobuf/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# SignalServiceKit Protobufs - -These protobuf definitions are copied from Signal-Android, but modified -to match some iOS conventions. - -## Prerequisites - -Install Apple's `swift-protobuf` (*not* the similarly named `protobuf-swift`) - - brew install swift-protobuf - -This should install an up to date protobuf package as a dependency. Note that -since we use the legacy proto2 format, we need to specify this in our .proto -files. - - syntax = "proto2"; - -## Building Protobuf - - cd ~/src/WhisperSystems/SignalServiceKit/protobuf - make -